From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36EBFC64EC4 for ; Fri, 3 Mar 2023 23:51:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229771AbjCCXvc (ORCPT ); Fri, 3 Mar 2023 18:51:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229745AbjCCXvY (ORCPT ); Fri, 3 Mar 2023 18:51:24 -0500 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E631637EB; Fri, 3 Mar 2023 15:51:20 -0800 (PST) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 323LZbmN018974; Fri, 3 Mar 2023 23:51:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=HV/VHSeMLO04R4VxAoSn4F6IM3UBokKfj3L+8VfaM7Y=; b=FnQo1Dw7f30D8cad73AxC0tvHi9Jo/blLqkoKKk06fH+87/3MkHdR7TF05bkjnz64z62 VR1nN8dlb8LUzRBhWLPjKO122VotzBDmPnW9/jtfSWCMjYJZY3qMySRcr7RFTc6TaHbe BPK8BNGeimx/qkpA7eZjo9ULXjsX8IqwQbn6PbDZCIfmPj5RxgKfremnZRSeQ1ETCu+z ghZVMEj4YiiTAkLQKNJ8Egw8qa95n9CXf/xQYSMPBQbA3aCNsIsj14V9ToxeFfZUiPnD s1Q7M9UxXBlV8etus6JDponr8SvArpu/bHlJriSvtmiuOzDuUXbl7gWeCqZz6x1L1lje yw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nyb7x0nfd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 03 Mar 2023 23:51:06 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 323Lh001034818; Fri, 3 Mar 2023 23:51:05 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2175.outbound.protection.outlook.com [104.47.73.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ny8sj8w9h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 03 Mar 2023 23:51:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z6QioeLr1sopqRxZMiafjCPy1pkBPAx6WDEr0sOmqvq0QX32H4OwdTEB8mqGMG/rsE2YqTc+xoB/Bhd4O3Kbqs292RNvMor/SDVQ+W0A+2xH2sSmuS2pKIJsDNEkH6BBO61PTHGuvvpWPJh/CAURhhHj9kAQCEaG+yr1F/tCOztwO+vuoJtY9VqAfEOnV3QZ0YQ+ZUrEP4/phXszCaJd8WOIBfFmjLR9G8m6GoBcsfzIscxEL277Um9yjRbBqix7souu2EhlumiHv6WpmmFfh3vaeoqstC/8edEqxyCntVm8GJVIyUgEZZrG3NbR2dvFxZknND/l0aeYRbgLjX39vw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HV/VHSeMLO04R4VxAoSn4F6IM3UBokKfj3L+8VfaM7Y=; b=L/bNDOJhM56V+l8TjJUd2mnAljWy4DRFs3xTYuEyR1QuGGfLAozTVxJBpDmtaK61+/JD2g7TM9eAQ/LM9+oUvxbWKi/2JhayJENloek8AXuc4dHdSQSUqeIkrCiZoKuOnBYUzy3x/Vf3mZSySxlDo1KcgJ4Ata94qVGoahha1GnyxDOwuMDiQuDn3GmF7+uRbu+WO/1tU63pMHEGSEkTLN7Uy/rgQDXVWeTx4TkI+t9Bo90WG3mAtHOD4UyJji5/4T03T2cmvSVMNhUPYcxMWonGqVA4ARwoo3/gGSJBC4mi7u7rhtZAUT6f+Socgnx3WmTu0zsUDbJzIo+tWr0M9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HV/VHSeMLO04R4VxAoSn4F6IM3UBokKfj3L+8VfaM7Y=; b=zgJEcVC3sdyohTwjE7rbbAyki+LYGKSAWe4eZwjUtmBtAmBR//jbKj7EyMhTCpm+gqjpr8rrKdpnESUhSF64AdiULG7Ab1DJHLMQ0mnPZgF6fC6cZLIGy86CPlutmDqcBMF7WK0Pxjd06PmdKG1Zi/O9wxCcHF8gfeopLaaBQxg= Received: from BY5PR10MB4306.namprd10.prod.outlook.com (2603:10b6:a03:211::7) by PH0PR10MB4437.namprd10.prod.outlook.com (2603:10b6:510:3a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.12; Fri, 3 Mar 2023 23:51:02 +0000 Received: from BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::2a7c:497e:b785:dc06]) by BY5PR10MB4306.namprd10.prod.outlook.com ([fe80::2a7c:497e:b785:dc06%8]) with mapi id 15.20.6156.019; Fri, 3 Mar 2023 23:51:02 +0000 From: Allison Henderson To: "djwong@kernel.org" CC: Catherine Hoang , "david@fromorbit.com" , "willy@infradead.org" , "linux-xfs@vger.kernel.org" , Chandan Babu , "linux-fsdevel@vger.kernel.org" , "hch@infradead.org" Subject: Re: [PATCH 13/14] xfs: document the userspace fsck driver program Thread-Topic: [PATCH 13/14] xfs: document the userspace fsck driver program Thread-Index: AQHZHJ6jpSSNNtoX1Eu7P0FMXG5Ija7lxnGAgAE8AICAAxpVgA== Date: Fri, 3 Mar 2023 23:51:02 +0000 Message-ID: <88be76f153cb4cd2faff4fb95b090b0242d1a55e.camel@oracle.com> References: <167243825144.682859.12802259329489258661.stgit@magnolia> <167243825345.682859.840912842203682928.stgit@magnolia> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR10MB4306:EE_|PH0PR10MB4437:EE_ x-ms-office365-filtering-correlation-id: 51dd3728-8405-47ae-7df2-08db1c42254c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K6L7NRCGBQezEANmgXgZ2t17PZobOMRKft/lVoog0FuCyIUNEV52YYsdFByEvuv7SwDm1L3Jzso5w+gIrlUqmQ51pvCFFpvQ/Is9BUKe1jjFz9WynFLqLwd5WYlCKj7EcyCU3EOXg5MqwQ6/LLWiPyOlU7rabLdOBGw+gaPhh/N0rOzmK34ltfPwrj4uXL68ZlRGC3XkweCrvajfD5lUkKlHNAhnNHZkBOzQlIbvDPW+6S9kmPnY4sFPPoi3e9ONZMY2VHlseaEr/R4edUWx2+B+3/Y7zT7aFqFa5eXaFmsOiA7P6KBiBubgMaLLXMIqvDQeZ61qVBZG6Hm5+r6Dju1d2wQxUVo/OnEPJKX7IIpxaBNVZF7lRJgZb+BeqVx94HMaVHsIOIcIJ5e/1cDXeQXZVTr9+9KunIFqak0SseDx/E6eOO7X8HAokiZ9jjj/wdTNVVngcCvpkn6tfNBeyt0gSS8E2FnqcKzGdEeCbOeLcnPTlSbaqYoiaqSypfBDapiOPuEsDISbtT0ykX5eQaI7kPTC+v92MEgbEheO6uNcAwL61U3XA+C1pUT+mbNJCszR3quOhsecIIlgG7M/C5QjLd3zUWoMzKkkwzh2qjtbwo/cJ95Sf6ldl1wHZX6t68N2YIwuROVN09DJMmIqUYadSKaYeX/AOt5DQkDuOiSqeSgfv/pb6IRoprvTHD+clpqoAm8qKCMysaXjDPVzx0yCJCM/DT/rswmHS1j9JPg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4306.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(39860400002)(376002)(136003)(366004)(346002)(451199018)(41300700001)(66476007)(2616005)(316002)(66946007)(66556008)(6916009)(36756003)(76116006)(64756008)(54906003)(122000001)(4001150100001)(2906002)(4326008)(38070700005)(8676002)(38100700002)(66446008)(6506007)(6512007)(66574015)(83380400001)(71200400001)(478600001)(186003)(86362001)(26005)(6486002)(966005)(66899018)(44832011)(30864003)(5660300002)(8936002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MlV4ZVYvemg3NU9aK1hGMTNFQjdaTU9qZmhtNTJpTURTdGs2eEpnRjhqTStX?= =?utf-8?B?TGZncG43UndEN2VFTlNnQkxlNmZzVm40YXZueU1jcExna0RIU0laRm1vQjJZ?= =?utf-8?B?U1VKNXk3YmpGc01wZkgzblRlZVdGY3NYSjh2S2J5WldXNmNjczFnUk9IdDhL?= =?utf-8?B?aCtCUWgyVVphb3V2UDRaRW5YcERoek12cEl3dTFNSytNUzNLZjI5NE5WdGdk?= =?utf-8?B?a21KTEZtcWZRRWFueGRQdFl5NVYrM1AvVXhiK0xRbjZiQjJGNVRPbmlSejJF?= =?utf-8?B?ZkV4Y1JtWEl1Z1Q5UCs4ZVd0dENiQ1pzUUd6Q21jN1IzWFAxUWF1QWV2bFJK?= =?utf-8?B?R3lmNU1tU0RZeTBJVlJyWnRMeWx3RDBGSVZYdHdMU3VmL0IrZzZTK0w5bm02?= =?utf-8?B?UXlmeFhzVmNoSy9DcndnTG9oeEFPaXk2UXlmZ2dNUEFsV0lFSVM4WWtNbTI1?= =?utf-8?B?OGJTcGFTYzQxa2pRL2RYR0oxQXRFQXBNMUs0aFJrRm85WGF4ZVNDa1JGRWZn?= =?utf-8?B?WGVIa1FyNFlRTG1wUm16eXFMREhZQ2Q2TGg0WlJqUkZ2M3EvV0oyMDBENlkw?= =?utf-8?B?MkExL090ZnZRS1RtRHZKTHFXZnhibUk1bFByVzFld2xkWTgvY1JDT0hRNUNR?= =?utf-8?B?eThYcHVpWWN2L2JzQUFLcXBhNWtkQ0VZa1dUcTJ0ZGV3azlGUGM4aGFZcEZk?= =?utf-8?B?MXRDNUxwU0prN2RjZmJ3UDdXMk5SQjVENWVkVGNKejFxUWtUeGc2YktiWWd3?= =?utf-8?B?Ny9yYllZS2Y4UmNaWHJzUllEMDd1QjNkZVZNRXRkejU5RTRVbTVrK3h2TkI5?= =?utf-8?B?bXFVcWRlckVYcXhucm1XbEtubkREK2s0ZFNFSkhWcndIMVdxVGcxQUs0TnNE?= =?utf-8?B?VDBBRU9wOFpic1Z5cGxvVU9YaElZQTV5cDZYOEQvRFNURlFEU1pWbjdHak9U?= =?utf-8?B?UFhyYXZnQ0F5elJlSTh3NmxPVlhsdmJ2MXF4NUxvanNsNlhpenF6aENiNExP?= =?utf-8?B?TXJzT0V1T1lVSjZlQlo1S1Z4QVVmMEpIZXBOcmxGWnZxczJtQTJsYXEzOW5U?= =?utf-8?B?S2lYeHFZTHl3WFNaaW5HYmVMQTVQYzFPaitPMFdlRm5FajRPTSttVjZFcHll?= =?utf-8?B?MGtHR3B2TURaNXVZZktmU25meWR0MzhPaVFLODR3L3NvM2pCajhOMEMxdVc3?= =?utf-8?B?OEh0aG00aVVaaXNsUEFEMU9jZ3pURU5KZGFCQWVacFBPQ1REcEJMMXpmOWsv?= =?utf-8?B?THBPZU5pN2hrK0dzWFlEN2xrRUt4UVhWYW9aVWJTb3lnbitkcGR2NnZIcUlF?= =?utf-8?B?cGNjYUxhY3NKcXltSXJ5b21rWWpoVnNUS29wMkVmaTNockcyeWhHZ243cW53?= =?utf-8?B?VnN0R3VMdmFiL25US1FNbWQ0SlVEaHc0S2wraGRaRnd6UXY0M1FYYmxuWTBm?= =?utf-8?B?OVlicTVGc09ST0Z6Z09xNmUwTDlHc005WHBNdUZWbGdFOXNMbGFIUDhBOHND?= =?utf-8?B?UTE1WnNpbGVzNGxOYXJFMkd6UnNLWVBXUldKc3MrVGNYTzdOc3dZTTVHWXZZ?= =?utf-8?B?eERyK3pjRURNNVVLV1VrMEVWTE5qOGphVWJ2MERKd2pSVXhIRmwwUHI5VzZk?= =?utf-8?B?SU85T1ZNa1VsY1g3U1FvbTVkeEk1N1VQd3d3Z3c1ZjlRbUJLOTQzNHdDTVVy?= =?utf-8?B?M0Y3UEc3V2pBUTJLN25aT2JHYk5yNmJMRWM4ZHoxakxwODR4TEduWjE3SDNS?= =?utf-8?B?UU11WE9vUm1GZDhTdTJiRGt0MmZTREdwNXNFMXZ4RHhzRHV3aUJJUjJkeUE2?= =?utf-8?B?WG5GTVUwdmJ6ZGJiQjlwMnRIRUN3c3ZLenlONWZmTWxEMjRuTDhSSGVpZGZs?= =?utf-8?B?OUNQTFpzcU43RmVMaHA5L1hwWnMyYTg4K09LYkhrQWk3MEsyc3Y0T2wvd3R2?= =?utf-8?B?QzB3UFlXMmxkbzVwQ3B2UTlFT3FGM0k4dGFQaStTcGVLdnhoUTNlM2lJelBX?= =?utf-8?B?dU5HYkhHZTZRUWhvYnF4Rk9HbHIzU0VBWHlWWlRvZm9NeFEzaXFhZGRVOVc3?= =?utf-8?B?VHl1NWZ2by9LZnl1Tm0zQ0Q3QVJwdG5qcStYb2doL3BYZXM1MVluNStPNGRa?= =?utf-8?B?UkRpVE5hSjVTNDZtNE5mVVlUd2dYM1dUNFl6c29uc3pMTGttdmxKOS9HQzc1?= =?utf-8?Q?YbJ+uOSO4UHE5g7QdjvpsKo=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xATx2hAauNo5/0KnagF0zlQhb6pG3XKLk9yQx3aS1L8M5LjyJpov4pTpf8qjT+zNAaHuc0nc2CV8v0yPfYJnWgSJhNhuGxcHTBBvKjXJRwKYPR0WlCrx2l31ttqRPqe7IwbnUEhfAPOw+sb0uWg9cpXZ+47DVhlQX3dqH5iMJEpdzxt2koZxLjnu1+5XbPOu4E3pqKbTV6mGWtzKFa+vhKi5jV/YlqyqvFwWhl7Fxa3M6Ep2DvkyBdZcfVNBzM/u9LRM1FQrun3dvaRmaRE5BAtygU/77IrUmAG3vitzSuDmdOXsvEDF+LfcuAB7v0k5QStk2+ED9BGVXlRI7YQaQ4cdwQ2TY6clVNdT26YlsHVm3wvoQwcnvFWOcGYi1V+nEQSWCgfpmXJuuqdyW0Nih/v8JmcFdOL6RX08zmXiic914fBL/49WUObKR4HMZMdrlwTlbsr4x7lFund2xBMm9e5Aa0qpEhgAsAITWZq7SzBfZEjeds4y4UaLwZQmgc+hLs5akQs1YDoUuQVOLk7C4hG1rxVANBELv8A4xxX43bttzKI/bXwzjq32DRstC+5p+gSzXONTGyopfVRgkP44PlogjprUIa9BpdwXR3ixwK9LMB0HG6+w3mlbSTMgFV/HnUcF7cd1lcn6BQRNysdk6XTyxeinsbMkJIG9MnAKy6dPfbB45wUqfdExkejKsro5aneWYScr9C2ab9dm//Kd4KF4eYDOBalZFmkp34UMLWbQP98gcFenJJJLc1lAIkAWIkHJNGt/VfUUYwR71txLLOWpM6CICldSccmHWWxwDENEt0TTqNUTX9T7pelmRb3P2PXmZ6Ckba7QINZwHkWcvTWE20dV0B9wiqu9X6Mmkyc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4306.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51dd3728-8405-47ae-7df2-08db1c42254c X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2023 23:51:02.1933 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: v6FpEWVvR5tBc/eZoQJGfHGu2XHo6YPGI7PGsVXLUyPZNd6RSLD8aXcyorTY4P0BTxV2gh6+/XMvUnp60vkstmMF8GsXYYEZ5XYeunoWCjk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4437 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-03_06,2023-03-03_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303030201 X-Proofpoint-GUID: M3xYH2UGVj8YOFKaH4N-FMKALnOIZI5b X-Proofpoint-ORIG-GUID: M3xYH2UGVj8YOFKaH4N-FMKALnOIZI5b Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org T24gV2VkLCAyMDIzLTAzLTAxIGF0IDE2OjI3IC0wODAwLCBEYXJyaWNrIEouIFdvbmcgd3JvdGU6 DQo+IE9uIFdlZCwgTWFyIDAxLCAyMDIzIGF0IDA1OjM2OjU5QU0gKzAwMDAsIEFsbGlzb24gSGVu ZGVyc29uIHdyb3RlOg0KPiA+IE9uIEZyaSwgMjAyMi0xMi0zMCBhdCAxNDoxMCAtMDgwMCwgRGFy cmljayBKLiBXb25nIHdyb3RlOg0KPiA+ID4gRnJvbTogRGFycmljayBKLiBXb25nIDxkandvbmdA a2VybmVsLm9yZz4NCj4gPiA+IA0KPiA+ID4gQWRkIHRoZSBzaXh0aCBjaGFwdGVyIG9mIHRoZSBv bmxpbmUgZnNjayBkZXNpZ24gZG9jdW1lbnRhdGlvbiwNCj4gPiA+IHdoZXJlDQo+ID4gPiB3ZSBk aXNjdXNzIHRoZSBkZXRhaWxzIG9mIHRoZSBkYXRhIHN0cnVjdHVyZXMgYW5kIGFsZ29yaXRobXMg dXNlZA0KPiA+ID4gYnkNCj4gPiA+IHRoZQ0KPiA+ID4gZHJpdmVyIHByb2dyYW0geGZzX3NjcnVi Lg0KPiA+ID4gDQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0Br ZXJuZWwub3JnPg0KPiA+ID4gLS0tDQo+ID4gPiDCoC4uLi9maWxlc3lzdGVtcy94ZnMtb25saW5l LWZzY2stZGVzaWduLnJzdMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMxMw0KPiA+ID4gKysrKysrKysr KysrKysrKysrKysNCj4gPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDMxMyBpbnNlcnRpb25zKCspDQo+ ID4gPiANCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3Rl bXMveGZzLW9ubGluZS1mc2NrLWRlc2lnbi5yc3QNCj4gPiA+IGIvRG9jdW1lbnRhdGlvbi9maWxl c3lzdGVtcy94ZnMtb25saW5lLWZzY2stZGVzaWduLnJzdA0KPiA+ID4gaW5kZXggMmUyMDMxNGYx ODMxLi4wNWI5NDExZmFjN2YgMTAwNjQ0DQo+ID4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVz eXN0ZW1zL3hmcy1vbmxpbmUtZnNjay1kZXNpZ24ucnN0DQo+ID4gPiArKysgYi9Eb2N1bWVudGF0 aW9uL2ZpbGVzeXN0ZW1zL3hmcy1vbmxpbmUtZnNjay1kZXNpZ24ucnN0DQo+ID4gPiBAQCAtMzAw LDYgKzMwMCw5IEBAIFRoZSBzZXZlbiBwaGFzZXMgYXJlIGFzIGZvbGxvd3M6DQo+ID4gPiDCoDcu IFJlLWNoZWNrIHRoZSBzdW1tYXJ5IGNvdW50ZXJzIGFuZCBwcmVzZW50cyB0aGUgY2FsbGVyIHdp dGggYQ0KPiA+ID4gc3VtbWFyeSBvZg0KPiA+ID4gwqDCoMKgIHNwYWNlIHVzYWdlIGFuZCBmaWxl IGNvdW50cy4NCj4gPiA+IMKgDQo+ID4gPiArVGhpcyBhbGxvY2F0aW9uIG9mIHJlc3BvbnNpYmls aXRpZXMgd2lsbCBiZSA6cmVmOmByZXZpc2l0ZWQNCj4gPiA+IDxzY3J1YmNoZWNrPmANCj4gPiA+ ICtsYXRlciBpbiB0aGlzIGRvY3VtZW50Lg0KPiA+ID4gKw0KPiA+ID4gwqBTdGVwcyBmb3IgRWFj aCBTY3J1YiBJdGVtDQo+ID4gPiDCoC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IMKg DQo+ID4gPiBAQCAtNDUwNSwzICs0NTA4LDMxMyBAQCBUaGUgcHJvcG9zZWQgcGF0Y2hlcyBhcmUg aW4gdGhlDQo+ID4gPiDCoGBvcnBoYW5hZ2UgYWRvcHRpb24NCj4gPiA+IMKgPA0KPiA+ID4gaHR0 cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZGp3b25nL3hmcy1s aW51eC5naXQvDQo+ID4gPiBsb2cvP2g9cmVwYWlyLW9ycGhhbmFnZT5gXw0KPiA+ID4gwqBzZXJp ZXMuDQo+ID4gPiArDQo+ID4gPiArNi4gVXNlcnNwYWNlIEFsZ29yaXRobXMgYW5kIERhdGEgU3Ry dWN0dXJlcw0KPiA+ID4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCj4gPiA+ICsNCj4gPiA+ICtUaGlzIHNlY3Rpb24gZGlzY3Vzc2VzIHRoZSBrZXkgYWxnb3Jp dGhtcyBhbmQgZGF0YSBzdHJ1Y3R1cmVzIG9mDQo+ID4gPiB0aGUNCj4gPiA+IHVzZXJzcGFjZQ0K PiA+ID4gK3Byb2dyYW0sIGBgeGZzX3NjcnViYGAsIHRoYXQgcHJvdmlkZSB0aGUgYWJpbGl0eSB0 byBkcml2ZQ0KPiA+ID4gbWV0YWRhdGENCj4gPiA+IGNoZWNrcyBhbmQNCj4gPiA+ICtyZXBhaXJz IGluIHRoZSBrZXJuZWwsIHZlcmlmeSBmaWxlIGRhdGEsIGFuZCBsb29rIGZvciBvdGhlcg0KPiA+ ID4gcG90ZW50aWFsIHByb2JsZW1zLg0KPiA+ID4gKw0KPiA+ID4gKy4uIF9zY3J1YmNoZWNrOg0K PiA+ID4gKw0KPiA+ID4gK0NoZWNraW5nIE1ldGFkYXRhDQo+ID4gPiArLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiA+ICsNCj4gPiA+ICtSZWNhbGwgdGhlIDpyZWY6YHBoYXNlcyBvZiBmc2NrIHdvcms8 c2NydWJwaGFzZXM+YCBvdXRsaW5lZA0KPiA+ID4gZWFybGllci4NCj4gPiA+ICtUaGF0IHN0cnVj dHVyZSBmb2xsb3dzIG5hdHVyYWxseSBmcm9tIHRoZSBkYXRhIGRlcGVuZGVuY2llcw0KPiA+ID4g ZGVzaWduZWQNCj4gPiA+IGludG8gdGhlDQo+ID4gPiArZmlsZXN5c3RlbSBmcm9tIGl0cyBiZWdp bm5pbmdzIGluIDE5OTMuDQo+ID4gPiArSW4gWEZTLCB0aGVyZSBhcmUgc2V2ZXJhbCBncm91cHMg b2YgbWV0YWRhdGEgZGVwZW5kZW5jaWVzOg0KPiA+ID4gKw0KPiA+ID4gK2EuIEZpbGVzeXN0ZW0g c3VtbWFyeSBjb3VudHMgZGVwZW5kIG9uIGNvbnNpc3RlbmN5IHdpdGhpbiB0aGUNCj4gPiA+IGlu b2RlDQo+ID4gPiBpbmRpY2VzLA0KPiA+ID4gK8KgwqAgdGhlIGFsbG9jYXRpb24gZ3JvdXAgc3Bh Y2UgYnRyZWVzLCBhbmQgdGhlIHJlYWx0aW1lIHZvbHVtZQ0KPiA+ID4gc3BhY2UNCj4gPiA+ICvC oMKgIGluZm9ybWF0aW9uLg0KPiA+ID4gKw0KPiA+ID4gK2IuIFF1b3RhIHJlc291cmNlIGNvdW50 cyBkZXBlbmQgb24gY29uc2lzdGVuY3kgd2l0aGluIHRoZSBxdW90YQ0KPiA+ID4gZmlsZQ0KPiA+ ID4gZGF0YQ0KPiA+ID4gK8KgwqAgZm9ya3MsIGlub2RlIGluZGljZXMsIGlub2RlIHJlY29yZHMs IGFuZCB0aGUgZm9ya3Mgb2YgZXZlcnkNCj4gPiA+IGZpbGUNCj4gPiA+IG9uIHRoZQ0KPiA+ID4g K8KgwqAgc3lzdGVtLg0KPiA+ID4gKw0KPiA+ID4gK2MuIFRoZSBuYW1pbmcgaGllcmFyY2h5IGRl cGVuZHMgb24gY29uc2lzdGVuY3kgd2l0aGluIHRoZQ0KPiA+ID4gZGlyZWN0b3J5DQo+ID4gPiBh bmQNCj4gPiA+ICvCoMKgIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdHJ1Y3R1cmVzLg0KPiA+ID4gK8Kg wqAgVGhpcyBpbmNsdWRlcyBmaWxlIGxpbmsgY291bnRzLg0KPiA+ID4gKw0KPiA+ID4gK2QuIERp cmVjdG9yaWVzLCBleHRlbmRlZCBhdHRyaWJ1dGVzLCBhbmQgZmlsZSBkYXRhIGRlcGVuZCBvbg0K PiA+ID4gY29uc2lzdGVuY3kgd2l0aGluDQo+ID4gPiArwqDCoCB0aGUgZmlsZSBmb3JrcyB0aGF0 IG1hcCBkaXJlY3RvcnkgYW5kIGV4dGVuZGVkIGF0dHJpYnV0ZSBkYXRhDQo+ID4gPiB0bw0KPiA+ ID4gcGh5c2ljYWwNCj4gPiA+ICvCoMKgIHN0b3JhZ2UgbWVkaWEuDQo+ID4gPiArDQo+ID4gPiAr ZS4gVGhlIGZpbGUgZm9ya3MgZGVwZW5kcyBvbiBjb25zaXN0ZW5jeSB3aXRoaW4gaW5vZGUgcmVj b3Jkcw0KPiA+ID4gYW5kDQo+ID4gPiB0aGUgc3BhY2UNCj4gPiA+ICvCoMKgIG1ldGFkYXRhIGlu ZGljZXMgb2YgdGhlIGFsbG9jYXRpb24gZ3JvdXBzIGFuZCB0aGUgcmVhbHRpbWUNCj4gPiA+IHZv bHVtZS4NCj4gPiA+ICvCoMKgIFRoaXMgaW5jbHVkZXMgcXVvdGEgYW5kIHJlYWx0aW1lIG1ldGFk YXRhIGZpbGVzLg0KPiA+ID4gKw0KPiA+ID4gK2YuIElub2RlIHJlY29yZHMgZGVwZW5kcyBvbiBj b25zaXN0ZW5jeSB3aXRoaW4gdGhlIGlub2RlDQo+ID4gPiBtZXRhZGF0YQ0KPiA+ID4gaW5kaWNl cy4NCj4gPiA+ICsNCj4gPiA+ICtnLiBSZWFsdGltZSBzcGFjZSBtZXRhZGF0YSBkZXBlbmQgb24g dGhlIGlub2RlIHJlY29yZHMgYW5kIGRhdGENCj4gPiA+IGZvcmtzIG9mIHRoZQ0KPiA+ID4gK8Kg wqAgcmVhbHRpbWUgbWV0YWRhdGEgaW5vZGVzLg0KPiA+ID4gKw0KPiA+ID4gK2guIFRoZSBhbGxv Y2F0aW9uIGdyb3VwIG1ldGFkYXRhIGluZGljZXMgKGZyZWUgc3BhY2UsIGlub2RlcywNCj4gPiA+ IHJlZmVyZW5jZSBjb3VudCwNCj4gPiA+ICvCoMKgIGFuZCByZXZlcnNlIG1hcHBpbmcgYnRyZWVz KSBkZXBlbmQgb24gY29uc2lzdGVuY3kgd2l0aGluIHRoZQ0KPiA+ID4gQUcNCj4gPiA+IGhlYWRl cnMgYW5kDQo+ID4gPiArwqDCoCBiZXR3ZWVuIGFsbCB0aGUgQUcgbWV0YWRhdGEgYnRyZWVzLg0K PiA+ID4gKw0KPiA+ID4gK2kuIGBgeGZzX3NjcnViYGAgZGVwZW5kcyBvbiB0aGUgZmlsZXN5c3Rl bSBiZWluZyBtb3VudGVkIGFuZA0KPiA+ID4ga2VybmVsDQo+ID4gPiBzdXBwb3J0DQo+ID4gPiAr wqDCoCBmb3Igb25saW5lIGZzY2sgZnVuY3Rpb25hbGl0eS4NCj4gPiA+ICsNCj4gPiA+ICtUaGVy ZWZvcmUsIGEgbWV0YWRhdGEgZGVwZW5kZW5jeSBncmFwaCBpcyBhIGNvbnZlbmllbnQgd2F5IHRv DQo+ID4gPiBzY2hlZHVsZSBjaGVja2luZw0KPiA+ID4gK29wZXJhdGlvbnMgaW4gdGhlIGBgeGZz X3NjcnViYGAgcHJvZ3JhbToNCj4gPiA+ICsNCj4gPiA+ICstIFBoYXNlIDEgY2hlY2tzIHRoYXQg dGhlIHByb3ZpZGVkIHBhdGggbWFwcyB0byBhbiBYRlMNCj4gPiA+IGZpbGVzeXN0ZW0NCj4gPiA+ IGFuZCBkZXRlY3QNCj4gPiA+ICvCoCB0aGUga2VybmVsJ3Mgc2NydWJiaW5nIGFiaWxpdGllcywg d2hpY2ggdmFsaWRhdGVzIGdyb3VwIChpKS4NCj4gPiA+ICsNCj4gPiA+ICstIFBoYXNlIDIgc2Ny dWJzIGdyb3VwcyAoZykgYW5kIChoKSBpbiBwYXJhbGxlbCB1c2luZyBhIHRocmVhZGVkDQo+ID4g PiB3b3JrcXVldWUuDQo+ID4gPiArDQo+ID4gPiArLSBQaGFzZSAzIGNoZWNrcyBncm91cHMgKGYp LCAoZSksIGFuZCAoZCksIGluIHRoYXQgb3JkZXIuDQo+ID4gPiArwqAgVGhlc2UgZ3JvdXBzIGFy ZSBhbGwgZmlsZSBtZXRhZGF0YSwgd2hpY2ggbWVhbnMgdGhhdCBpbm9kZXMNCj4gPiA+IGFyZQ0K PiA+ID4gc2Nhbm5lZCBpbg0KPiA+ID4gK8KgIHBhcmFsbGVsLg0KPiA+IC4uLldoZW4gdGhpbmdz IGFyZSBkb25lIGluIG9yZGVyLCB0aGVuIHRoZXkgYXJlIGRvbmUgaW4gc2VyaWFsDQo+ID4gcmln aHQ/DQo+ID4gVGhpbmdzIGRvbmUgaW4gcGFyYWxsZWwgYXJlIGRvbmUgYXQgdGhlIHNhbWUgdGlt ZS7CoCBFaXRoZXIgdGhlDQo+ID4gcGhyYXNlDQo+ID4gImluIHRoYXQgb3JkZXIiIG5lZWRzIHRv IGdvIGF3YXksIG9yIHRoZSBsYXN0IGxpbmUgbmVlZHMgdG8gZHJvcA0KPiANCj4gRWFjaCBpbm9k ZSBpcyBwcm9jZXNzZWQgaW4gcGFyYWxsZWwsIGJ1dCBpbmRpdmlkdWFsIGlub2RlcyBhcmUNCj4g cHJvY2Vzc2VkDQo+IGluIGYtZS1kIG9yZGVyLg0KPiANCj4gIlBoYXNlIDMgc2NhbnMgaW5vZGVz IGluIHBhcmFsbGVsLsKgIEZvciBlYWNoIGlub2RlLCBncm91cHMgKGYpLCAoZSksDQo+IGFuZA0K PiAoZCkgYXJlIGNoZWNrZWQsIGluIHRoYXQgb3JkZXIuIg0KT2hoLCBvay4gIE5vdyB0aGF0IEkg cmUtcmVhZCBpdCwgaXQgbWFrZXMgc2Vuc2UgYnV0IGxldHMga2VlcCB0aGUgbmV3DQpvbmUNCg0K PiANCj4gPiA+ICsNCj4gPiA+ICstIFBoYXNlIDQgcmVwYWlycyBldmVyeXRoaW5nIGluIGdyb3Vw cyAoaSkgdGhyb3VnaCAoZCkgc28gdGhhdA0KPiA+ID4gcGhhc2VzIDUgYW5kIDYNCj4gPiA+ICvC oCBtYXkgcnVuIHJlbGlhYmx5Lg0KPiA+ID4gKw0KPiA+ID4gKy0gUGhhc2UgNSBzdGFydHMgYnkg Y2hlY2tpbmcgZ3JvdXBzIChiKSBhbmQgKGMpIGluIHBhcmFsbGVsDQo+ID4gPiBiZWZvcmUNCj4g PiA+IG1vdmluZyBvbg0KPiA+ID4gK8KgIHRvIGNoZWNraW5nIG5hbWVzLg0KPiA+ID4gKw0KPiA+ ID4gKy0gUGhhc2UgNiBkZXBlbmRzIG9uIGdyb3VwcyAoaSkgdGhyb3VnaCAoYikgdG8gZmluZCBm aWxlIGRhdGENCj4gPiA+IGJsb2Nrcw0KPiA+ID4gdG8gdmVyaWZ5LA0KPiA+ID4gK8KgIHRvIHJl YWQgdGhlbSwgYW5kIHRvIHJlcG9ydCB3aGljaCBibG9ja3Mgb2Ygd2hpY2ggZmlsZXMgYXJlDQo+ ID4gPiBhZmZlY3RlZC4NCj4gPiA+ICsNCj4gPiA+ICstIFBoYXNlIDcgY2hlY2tzIGdyb3VwIChh KSwgaGF2aW5nIHZhbGlkYXRlZCBldmVyeXRoaW5nIGVsc2UuDQo+ID4gPiArDQo+ID4gPiArTm90 aWNlIHRoYXQgdGhlIGRhdGEgZGVwZW5kZW5jaWVzIGJldHdlZW4gZ3JvdXBzIGFyZSBlbmZvcmNl ZCBieQ0KPiA+ID4gdGhlDQo+ID4gPiBzdHJ1Y3R1cmUNCj4gPiA+ICtvZiB0aGUgcHJvZ3JhbSBm bG93Lg0KPiA+ID4gKw0KPiA+ID4gK1BhcmFsbGVsIElub2RlIFNjYW5zDQo+ID4gPiArLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPiA+ICsNCj4gPiA+ICtBbiBYRlMgZmlsZXN5c3RlbSBjYW4gZWFz aWx5IGNvbnRhaW4gaHVuZHJlZHMgb2YgbWlsbGlvbnMgb2YNCj4gPiA+IGlub2Rlcy4NCj4gPiA+ ICtHaXZlbiB0aGF0IFhGUyB0YXJnZXRzIGluc3RhbGxhdGlvbnMgd2l0aCBsYXJnZSBoaWdoLXBl cmZvcm1hbmNlDQo+ID4gPiBzdG9yYWdlLA0KPiA+ID4gK2l0IGlzIGRlc2lyYWJsZSB0byBzY3J1 YiBpbm9kZXMgaW4gcGFyYWxsZWwgdG8gbWluaW1pemUgcnVudGltZSwNCj4gPiA+IHBhcnRpY3Vs YXJseQ0KPiA+ID4gK2lmIHRoZSBwcm9ncmFtIGhhcyBiZWVuIGludm9rZWQgbWFudWFsbHkgZnJv bSBhIGNvbW1hbmQgbGluZS4NCj4gPiA+ICtUaGlzIHJlcXVpcmVzIGNhcmVmdWwgc2NoZWR1bGlu ZyB0byBrZWVwIHRoZSB0aHJlYWRzIGFzIGV2ZW5seQ0KPiA+ID4gbG9hZGVkIGFzDQo+ID4gPiAr cG9zc2libGUuDQo+ID4gPiArDQo+ID4gPiArRWFybHkgaXRlcmF0aW9ucyBvZiB0aGUgYGB4ZnNf c2NydWJgYCBpbm9kZSBzY2FubmVyIG5hw692ZWx5DQo+ID4gPiBjcmVhdGVkDQo+ID4gPiBhIHNp bmdsZQ0KPiA+ID4gK3dvcmtxdWV1ZSBhbmQgc2NoZWR1bGVkIGEgc2luZ2xlIHdvcmtxdWV1ZSBp dGVtIHBlciBBRy4NCj4gPiA+ICtFYWNoIHdvcmtxdWV1ZSBpdGVtIHdhbGtlZCB0aGUgaW5vZGUg YnRyZWUgKHdpdGgNCj4gPiA+IGBgWEZTX0lPQ19JTlVNQkVSU2BgKSB0byBmaW5kDQo+ID4gPiAr aW5vZGUgY2h1bmtzIGFuZCB0aGVuIGNhbGxlZCBidWxrc3RhdCAoYGBYRlNfSU9DX0JVTEtTVEFU YGApIHRvDQo+ID4gPiBnYXRoZXIgZW5vdWdoDQo+ID4gPiAraW5mb3JtYXRpb24gdG8gY29uc3Ry dWN0IGZpbGUgaGFuZGxlcy4NCj4gPiA+ICtUaGUgZmlsZSBoYW5kbGUgd2FzIHRoZW4gcGFzc2Vk IHRvIGEgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgc2NydWINCj4gPiA+IGl0ZW1zIGZvciBlYWNoDQo+ ID4gPiArbWV0YWRhdGEgb2JqZWN0IG9mIGVhY2ggaW5vZGUuDQo+ID4gPiArVGhpcyBzaW1wbGUg YWxnb3JpdGhtIGxlYWRzIHRvIHRocmVhZCBiYWxhbmNpbmcgcHJvYmxlbXMgaW4NCj4gPiA+IHBo YXNlIDMNCj4gPiA+IGlmIHRoZQ0KPiA+ID4gK2ZpbGVzeXN0ZW0gY29udGFpbnMgb25lIEFHIHdp dGggYSBmZXcgbGFyZ2Ugc3BhcnNlIGZpbGVzIGFuZCB0aGUNCj4gPiA+IHJlc3Qgb2YgdGhlDQo+ ID4gPiArQUdzIGNvbnRhaW4gbWFueSBzbWFsbGVyIGZpbGVzLg0KPiA+ID4gK1RoZSBpbm9kZSBz Y2FuIGRpc3BhdGNoIGZ1bmN0aW9uIHdhcyBub3Qgc3VmZmljaWVudGx5IGdyYW51bGFyOw0KPiA+ ID4gaXQNCj4gPiA+IHNob3VsZCBoYXZlDQo+ID4gPiArYmVlbiBkaXNwYXRjaGluZyBhdCB0aGUg bGV2ZWwgb2YgaW5kaXZpZHVhbCBpbm9kZXMsIG9yLCB0bw0KPiA+ID4gY29uc3RyYWluDQo+ID4g PiBtZW1vcnkNCj4gPiA+ICtjb25zdW1wdGlvbiwgaW5vZGUgYnRyZWUgcmVjb3Jkcy4NCj4gPiA+ ICsNCj4gPiA+ICtUaGFua3MgdG8gRGF2ZSBDaGlubmVyLCBib3VuZGVkIHdvcmtxdWV1ZXMgaW4g dXNlcnNwYWNlIGVuYWJsZQ0KPiA+ID4gYGB4ZnNfc2NydWJgYCB0bw0KPiA+ID4gK2F2b2lkIHRo aXMgcHJvYmxlbSB3aXRoIGVhc2UgYnkgYWRkaW5nIGEgc2Vjb25kIHdvcmtxdWV1ZS4NCj4gPiA+ ICtKdXN0IGxpa2UgYmVmb3JlLCB0aGUgZmlyc3Qgd29ya3F1ZXVlIGlzIHNlZWRlZCB3aXRoIG9u ZQ0KPiA+ID4gd29ya3F1ZXVlDQo+ID4gPiBpdGVtIHBlciBBRywNCj4gPiA+ICthbmQgaXQgdXNl cyBJTlVNQkVSUyB0byBmaW5kIGlub2RlIGJ0cmVlIGNodW5rcy4NCj4gPiA+ICtUaGUgc2Vjb25k IHdvcmtxdWV1ZSwgaG93ZXZlciwgaXMgY29uZmlndXJlZCB3aXRoIGFuIHVwcGVyIGJvdW5kDQo+ ID4gPiBvbg0KPiA+ID4gdGhlIG51bWJlcg0KPiA+ID4gK29mIGl0ZW1zIHRoYXQgY2FuIGJlIHdh aXRpbmcgdG8gYmUgcnVuLg0KPiA+ID4gK0VhY2ggaW5vZGUgYnRyZWUgY2h1bmsgZm91bmQgYnkg dGhlIGZpcnN0IHdvcmtxdWV1ZSdzIHdvcmtlcnMNCj4gPiA+IGFyZQ0KPiA+ID4gcXVldWVkIHRv IHRoZQ0KPiA+ID4gK3NlY29uZCB3b3JrcXVldWUsIGFuZCBpdCBpcyB0aGlzIHNlY29uZCB3b3Jr cXVldWUgdGhhdCBxdWVyaWVzDQo+ID4gPiBCVUxLU1RBVCwNCj4gPiA+ICtjcmVhdGVzIGEgZmls ZSBoYW5kbGUsIGFuZCBwYXNzZXMgaXQgdG8gYSBmdW5jdGlvbiB0byBnZW5lcmF0ZQ0KPiA+ID4g c2NydWINCj4gPiA+IGl0ZW1zIGZvcg0KPiA+ID4gK2VhY2ggbWV0YWRhdGEgb2JqZWN0IG9mIGVh Y2ggaW5vZGUuDQo+ID4gPiArSWYgdGhlIHNlY29uZCB3b3JrcXVldWUgaXMgdG9vIGZ1bGwsIHRo ZSB3b3JrcXVldWUgYWRkIGZ1bmN0aW9uDQo+ID4gPiBibG9ja3MgdGhlDQo+ID4gPiArZmlyc3Qg d29ya3F1ZXVlJ3Mgd29ya2VycyB1bnRpbCB0aGUgYmFja2xvZyBlYXNlcy4NCj4gPiA+ICtUaGlz IGRvZXNuJ3QgY29tcGxldGVseSBzb2x2ZSB0aGUgYmFsYW5jaW5nIHByb2JsZW0sIGJ1dCByZWR1 Y2VzDQo+ID4gPiBpdA0KPiA+ID4gZW5vdWdoIHRvDQo+ID4gPiArbW92ZSBvbiB0byBtb3JlIHBy ZXNzaW5nIGlzc3Vlcy4NCj4gPiA+ICsNCj4gPiA+ICtUaGUgcHJvcG9zZWQgcGF0Y2hzZXRzIGFy ZSB0aGUgc2NydWINCj4gPiA+ICtgcGVyZm9ybWFuY2UgdHdlYWtzDQo+ID4gPiArPA0KPiA+ID4g aHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZGp3b25nL3hm c3Byb2dzLWRldi5nDQo+ID4gPiBpdC9sb2cvP2g9c2NydWItcGVyZm9ybWFuY2UtdHdlYWtzPmBf DQo+ID4gPiArYW5kIHRoZQ0KPiA+ID4gK2Bpbm9kZSBzY2FuIHJlYmFsYW5jZQ0KPiA+ID4gKzwN Cj4gPiA+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Rq d29uZy94ZnNwcm9ncy1kZXYuZw0KPiA+ID4gaXQvbG9nLz9oPXNjcnViLWlzY2FuLXJlYmFsYW5j ZT5gXw0KPiA+ID4gK3Nlcmllcy4NCj4gPiA+ICsNCj4gPiA+ICsuLiBfc2NydWJyZXBhaXI6DQo+ ID4gPiArDQo+ID4gPiArU2NoZWR1bGluZyBSZXBhaXJzDQo+ID4gPiArLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gPiArDQo+ID4gPiArRHVyaW5nIHBoYXNlIDIsIGNvcnJ1cHRpb25zIGFuZCBpbmNv bnNpc3RlbmNpZXMgcmVwb3J0ZWQgaW4gYW55DQo+ID4gPiBBR0kNCj4gPiA+IGhlYWRlciBvcg0K PiA+ID4gK2lub2RlIGJ0cmVlIGFyZSByZXBhaXJlZCBpbW1lZGlhdGVseSwgYmVjYXVzZSBwaGFz ZSAzIHJlbGllcyBvbg0KPiA+ID4gcHJvcGVyDQo+ID4gPiArZnVuY3Rpb25pbmcgb2YgdGhlIGlu b2RlIGluZGljZXMgdG8gZmluZCBpbm9kZXMgdG8gc2Nhbi4NCj4gPiA+ICtGYWlsZWQgcmVwYWly cyBhcmUgcmVzY2hlZHVsZWQgdG8gcGhhc2UgNC4NCj4gPiA+ICtQcm9ibGVtcyByZXBvcnRlZCBp biBhbnkgb3RoZXIgc3BhY2UgbWV0YWRhdGEgYXJlIGRlZmVycmVkIHRvDQo+ID4gPiBwaGFzZQ0K PiA+ID4gNC4NCj4gPiA+ICtPcHRpbWl6YXRpb24gb3Bwb3J0dW5pdGllcyBhcmUgYWx3YXlzIGRl ZmVycmVkIHRvIHBoYXNlIDQsIG5vDQo+ID4gPiBtYXR0ZXINCj4gPiA+IHRoZWlyDQo+ID4gPiAr b3JpZ2luLg0KPiA+ID4gKw0KPiA+ID4gK0R1cmluZyBwaGFzZSAzLCBjb3JydXB0aW9ucyBhbmQg aW5jb25zaXN0ZW5jaWVzIHJlcG9ydGVkIGluIGFueQ0KPiA+ID4gcGFydA0KPiA+ID4gb2YgYQ0K PiA+ID4gK2ZpbGUncyBtZXRhZGF0YSBhcmUgcmVwYWlyZWQgaW1tZWRpYXRlbHkgaWYgYWxsIHNw YWNlIG1ldGFkYXRhDQo+ID4gPiB3ZXJlDQo+ID4gPiB2YWxpZGF0ZWQNCj4gPiA+ICtkdXJpbmcg cGhhc2UgMi4NCj4gPiA+ICtSZXBhaXJzIHRoYXQgZmFpbCBvciBjYW5ub3QgYmUgcmVwYWlyZWQg aW1tZWRpYXRlbHkgYXJlDQo+ID4gPiBzY2hlZHVsZWQNCj4gPiA+IGZvciBwaGFzZSA0Lg0KPiA+ ID4gKw0KPiA+ID4gK0luIHRoZSBvcmlnaW5hbCBkZXNpZ24gb2YgYGB4ZnNfc2NydWJgYCwgaXQg d2FzIHRob3VnaHQgdGhhdA0KPiA+ID4gcmVwYWlycw0KPiA+ID4gd291bGQgYmUNCj4gPiA+ICtz byBpbmZyZXF1ZW50IHRoYXQgdGhlIGBgc3RydWN0IHhmc19zY3J1Yl9tZXRhZGF0YWBgIG9iamVj dHMNCj4gPiA+IHVzZWQgdG8NCj4gPiA+ICtjb21tdW5pY2F0ZSB3aXRoIHRoZSBrZXJuZWwgY291 bGQgYWxzbyBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5DQo+ID4gPiBvYmplY3QNCj4gPiA+IHRvDQo+ ID4gPiArc2NoZWR1bGUgcmVwYWlycy4NCj4gPiA+ICtXaXRoIHJlY2VudCBpbmNyZWFzZXMgaW4g dGhlIG51bWJlciBvZiBvcHRpbWl6YXRpb25zIHBvc3NpYmxlDQo+ID4gPiBmb3IgYQ0KPiA+ID4g Z2l2ZW4NCj4gPiA+ICtmaWxlc3lzdGVtIG9iamVjdCwgaXQgYmVjYW1lIG11Y2ggbW9yZSBtZW1v cnktZWZmaWNpZW50IHRvIHRyYWNrDQo+ID4gPiBhbGwNCj4gPiA+IGVsaWdpYmxlDQo+ID4gPiAr cmVwYWlycyBmb3IgYSBnaXZlbiBmaWxlc3lzdGVtIG9iamVjdCB3aXRoIGEgc2luZ2xlIHJlcGFp ciBpdGVtLg0KPiA+ID4gK0VhY2ggcmVwYWlyIGl0ZW0gcmVwcmVzZW50cyBhIHNpbmdsZSBsb2Nr YWJsZSBvYmplY3QgLS0gQUdzLA0KPiA+ID4gbWV0YWRhdGEgZmlsZXMsDQo+ID4gPiAraW5kaXZp ZHVhbCBpbm9kZXMsIG9yIGEgY2xhc3Mgb2Ygc3VtbWFyeSBpbmZvcm1hdGlvbi4NCj4gPiA+ICsN Cj4gPiA+ICtQaGFzZSA0IGlzIHJlc3BvbnNpYmxlIGZvciBzY2hlZHVsaW5nIGEgbG90IG9mIHJl cGFpciB3b3JrIGluIGFzDQo+ID4gPiBxdWljayBhDQo+ID4gPiArbWFubmVyIGFzIGlzIHByYWN0 aWNhbC4NCj4gPiA+ICtUaGUgOnJlZjpgZGF0YSBkZXBlbmRlbmNpZXMgPHNjcnViY2hlY2s+YCBv dXRsaW5lZCBlYXJsaWVyIHN0aWxsDQo+ID4gPiBhcHBseSwgd2hpY2gNCj4gPiA+ICttZWFucyB0 aGF0IGBgeGZzX3NjcnViYGAgbXVzdCB0cnkgdG8gY29tcGxldGUgdGhlIHJlcGFpciB3b3JrDQo+ ID4gPiBzY2hlZHVsZWQgYnkNCj4gPiA+ICtwaGFzZSAyIGJlZm9yZSB0cnlpbmcgcmVwYWlyIHdv cmsgc2NoZWR1bGVkIGJ5IHBoYXNlIDMuDQo+ID4gPiArVGhlIHJlcGFpciBwcm9jZXNzIGlzIGFz IGZvbGxvd3M6DQo+ID4gPiArDQo+ID4gPiArMS4gU3RhcnQgYSByb3VuZCBvZiByZXBhaXIgd2l0 aCBhIHdvcmtxdWV1ZSBhbmQgZW5vdWdoIHdvcmtlcnMNCj4gPiA+IHRvDQo+ID4gPiBrZWVwIHRo ZSBDUFVzDQo+ID4gPiArwqDCoCBhcyBidXN5IGFzIHRoZSB1c2VyIGRlc2lyZXMuDQo+ID4gPiAr DQo+ID4gPiArwqDCoCBhLiBGb3IgZWFjaCByZXBhaXIgaXRlbSBxdWV1ZWQgYnkgcGhhc2UgMiwN Cj4gPiA+ICsNCj4gPiA+ICvCoMKgwqDCoMKgIGkuwqDCoCBBc2sgdGhlIGtlcm5lbCB0byByZXBh aXIgZXZlcnl0aGluZyBsaXN0ZWQgaW4gdGhlDQo+ID4gPiByZXBhaXINCj4gPiA+IGl0ZW0gZm9y IGENCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBnaXZlbiBmaWxlc3lzdGVtIG9iamVjdC4N Cj4gPiA+ICsNCj4gPiA+ICvCoMKgwqDCoMKgIGlpLsKgIE1ha2UgYSBub3RlIGlmIHRoZSBrZXJu ZWwgbWFkZSBhbnkgcHJvZ3Jlc3MgaW4NCj4gPiA+IHJlZHVjaW5nDQo+ID4gPiB0aGUgbnVtYmVy DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2YgcmVwYWlycyBuZWVkZWQgZm9yIHRoaXMg b2JqZWN0Lg0KPiA+ID4gKw0KPiA+ID4gK8KgwqDCoMKgwqAgaWlpLiBJZiB0aGUgb2JqZWN0IG5v IGxvbmdlciByZXF1aXJlcyByZXBhaXJzLCByZXZhbGlkYXRlDQo+ID4gPiBhbGwNCj4gPiA+IG1l dGFkYXRhDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXNzb2NpYXRlZCB3aXRoIHRoaXMg b2JqZWN0Lg0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIElmIHRoZSByZXZhbGlkYXRpb24g c3VjY2VlZHMsIGRyb3AgdGhlIHJlcGFpciBpdGVtLg0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgIElmIG5vdCwgcmVxdWV1ZSB0aGUgaXRlbSBmb3IgbW9yZSByZXBhaXJzLg0KPiA+ID4gKw0K PiA+ID4gK8KgwqAgYi4gSWYgYW55IHJlcGFpcnMgd2VyZSBtYWRlLCBqdW1wIGJhY2sgdG8gMWEg dG8gcmV0cnkgYWxsIHRoZQ0KPiA+ID4gcGhhc2UgMiBpdGVtcy4NCj4gPiA+ICsNCj4gPiA+ICvC oMKgIGMuIEZvciBlYWNoIHJlcGFpciBpdGVtIHF1ZXVlZCBieSBwaGFzZSAzLA0KPiA+ID4gKw0K PiA+ID4gK8KgwqDCoMKgwqAgaS7CoMKgIEFzayB0aGUga2VybmVsIHRvIHJlcGFpciBldmVyeXRo aW5nIGxpc3RlZCBpbiB0aGUNCj4gPiA+IHJlcGFpcg0KPiA+ID4gaXRlbSBmb3IgYQ0KPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgIGdpdmVuIGZpbGVzeXN0ZW0gb2JqZWN0Lg0KPiA+ID4gKw0K PiA+ID4gK8KgwqDCoMKgwqAgaWkuwqAgTWFrZSBhIG5vdGUgaWYgdGhlIGtlcm5lbCBtYWRlIGFu eSBwcm9ncmVzcyBpbg0KPiA+ID4gcmVkdWNpbmcNCj4gPiA+IHRoZSBudW1iZXINCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoCBvZiByZXBhaXJzIG5lZWRlZCBmb3IgdGhpcyBvYmplY3QuDQo+ ID4gPiArDQo+ID4gPiArwqDCoMKgwqDCoCBpaWkuIElmIHRoZSBvYmplY3Qgbm8gbG9uZ2VyIHJl cXVpcmVzIHJlcGFpcnMsIHJldmFsaWRhdGUNCj4gPiA+IGFsbA0KPiA+ID4gbWV0YWRhdGENCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuDQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgSWYgdGhlIHJldmFsaWRhdGlvbiBzdWNjZWVkcywg ZHJvcCB0aGUgcmVwYWlyIGl0ZW0uDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgSWYgbm90 LCByZXF1ZXVlIHRoZSBpdGVtIGZvciBtb3JlIHJlcGFpcnMuDQo+ID4gPiArDQo+ID4gPiArwqDC oCBkLiBJZiBhbnkgcmVwYWlycyB3ZXJlIG1hZGUsIGp1bXAgYmFjayB0byAxYyB0byByZXRyeSBh bGwgdGhlDQo+ID4gPiBwaGFzZSAzIGl0ZW1zLg0KPiA+ID4gKw0KPiA+ID4gKzIuIElmIHN0ZXAg MSBtYWRlIGFueSByZXBhaXIgcHJvZ3Jlc3Mgb2YgYW55IGtpbmQsIGp1bXAgYmFjayB0bw0KPiA+ ID4gc3RlcA0KPiA+ID4gMSB0byBzdGFydA0KPiA+ID4gK8KgwqAgYW5vdGhlciByb3VuZCBvZiBy ZXBhaXIuDQo+ID4gPiArDQo+ID4gPiArMy4gSWYgdGhlcmUgYXJlIGl0ZW1zIGxlZnQgdG8gcmVw YWlyLCBydW4gdGhlbSBhbGwgc2VyaWFsbHkgb25lDQo+ID4gPiBtb3JlDQo+ID4gPiB0aW1lLg0K PiA+ID4gK8KgwqAgQ29tcGxhaW4gaWYgdGhlIHJlcGFpcnMgd2VyZSBub3Qgc3VjY2Vzc2Z1bCwg c2luY2UgdGhpcyBpcw0KPiA+ID4gdGhlDQo+ID4gPiBsYXN0IGNoYW5jZQ0KPiA+ID4gK8KgwqAg dG8gcmVwYWlyIGFueXRoaW5nLg0KPiA+ID4gKw0KPiA+ID4gK0NvcnJ1cHRpb25zIGFuZCBpbmNv bnNpc3RlbmNpZXMgZW5jb3VudGVyZWQgZHVyaW5nIHBoYXNlcyA1IGFuZA0KPiA+ID4gNw0KPiA+ ID4gYXJlIHJlcGFpcmVkDQo+ID4gPiAraW1tZWRpYXRlbHkuDQo+ID4gPiArQ29ycnVwdCBmaWxl IGRhdGEgYmxvY2tzIHJlcG9ydGVkIGJ5IHBoYXNlIDYgY2Fubm90IGJlIHJlY292ZXJlZA0KPiA+ ID4gYnkNCj4gPiA+IHRoZQ0KPiA+ID4gK2ZpbGVzeXN0ZW0uDQo+ID4gPiArDQo+ID4gPiArVGhl IHByb3Bvc2VkIHBhdGNoc2V0cyBhcmUgdGhlDQo+ID4gPiArYHJlcGFpciB3YXJuaW5nIGltcHJv dmVtZW50cw0KPiA+ID4gKzwNCj4gPiA+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9s aW51eC9rZXJuZWwvZ2l0L2Rqd29uZy94ZnNwcm9ncy1kZXYuZw0KPiA+ID4gaXQvbG9nLz9oPXNj cnViLWJldHRlci1yZXBhaXItd2FybmluZ3M+YF8sDQo+ID4gPiArcmVmYWN0b3Jpbmcgb2YgdGhl DQo+ID4gPiArYHJlcGFpciBkYXRhIGRlcGVuZGVuY3kNCj4gPiA+ICs8DQo+ID4gPiBodHRwczov L2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9kandvbmcveGZzcHJvZ3Mt ZGV2LmcNCj4gPiA+IGl0L2xvZy8/aD1zY3J1Yi1yZXBhaXItZGF0YS1kZXBzPmBfDQo+ID4gPiAr YW5kDQo+ID4gPiArYG9iamVjdCB0cmFja2luZw0KPiA+ID4gKzwNCj4gPiA+IGh0dHBzOi8vZ2l0 Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Rqd29uZy94ZnNwcm9ncy1kZXYu Zw0KPiA+ID4gaXQvbG9nLz9oPXNjcnViLW9iamVjdC10cmFja2luZz5gXywNCj4gPiA+ICthbmQg dGhlDQo+ID4gPiArYHJlcGFpciBzY2hlZHVsaW5nDQo+ID4gPiArPA0KPiA+ID4gaHR0cHM6Ly9n aXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZGp3b25nL3hmc3Byb2dzLWRl di5nDQo+ID4gPiBpdC9sb2cvP2g9c2NydWItcmVwYWlyLXNjaGVkdWxpbmc+YF8NCj4gPiA+ICtp bXByb3ZlbWVudCBzZXJpZXMuDQo+ID4gPiArDQo+ID4gPiArQ2hlY2tpbmcgTmFtZXMgZm9yIENv bmZ1c2FibGUgVW5pY29kZSBTZXF1ZW5jZXMNCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gKw0KPiA+ID4gK0lmIGBgeGZzX3NjcnVi YGAgc3VjY2VlZHMgaW4gdmFsaWRhdGluZyB0aGUgZmlsZXN5c3RlbSBtZXRhZGF0YQ0KPiA+ID4g YnkNCj4gPiA+IHRoZSBlbmQgb2YNCj4gPiA+ICtwaGFzZSA0LCBpdCBtb3ZlcyBvbiB0byBwaGFz ZSA1LCB3aGljaCBjaGVja3MgZm9yIHN1c3BpY2lvdXMNCj4gPiA+IGxvb2tpbmcNCj4gPiA+IG5h bWVzIGluDQo+ID4gPiArdGhlIGZpbGVzeXN0ZW0uDQo+ID4gPiArVGhlc2UgbmFtZXMgY29uc2lz dCBvZiB0aGUgZmlsZXN5c3RlbSBsYWJlbCwgbmFtZXMgaW4gZGlyZWN0b3J5DQo+ID4gPiBlbnRy aWVzLCBhbmQNCj4gPiA+ICt0aGUgbmFtZXMgb2YgZXh0ZW5kZWQgYXR0cmlidXRlcy4NCj4gPiA+ ICtMaWtlIG1vc3QgVW5peCBmaWxlc3lzdGVtcywgWEZTIGltcG9zZXMgdGhlIHNwYXJlc3Qgb2YN Cj4gPiA+IGNvbnN0cmFpbnRzDQo+ID4gPiBvbiB0aGUNCj4gPiA+ICtjb250ZW50cyBvZiBhIG5h bWUgLS0gc2xhc2hlcyBhbmQgbnVsbCBieXRlcyBhcmUgbm90IGFsbG93ZWQgaW4NCj4gPiA+IGRp cmVjdG9yeQ0KPiA+ID4gK2VudHJpZXM7IGFuZCBudWxsIGJ5dGVzIGFyZSBub3QgYWxsb3dlZCBp biBleHRlbmRlZCBhdHRyaWJ1dGVzDQo+ID4gPiBhbmQNCj4gPiBtYXliZSBzYXkgInN0YW5kYXJk IHVzZXIgYWNjZXNzaWJsZSBleHRlbmRlZCBhdHRyaWJ1dGVzIg0KPiANCj4gInVzZXJzcGFjZSB2 aXNpYmxlIj8NClRoYXRzIGZpbmUsIG1vc3RseSBJIG1lYW50IHRvIGV4Y2x1ZGUgcGFyZW50IHBv aW50ZXJzLCBidXQgSSd2ZSBzZWVuDQpvdGhlciBpZGVhcyB0aGF0IHRhbGsgYWJvdXQgdXNpbmcg eGF0dHJzIHRvIHN0b3JlIGJpbmFyeSBtZXRhZGF0YSwgc28NCnBwdHJzIG1heSBub3QgYmUgdGhl IGxhc3QgdG8gZG8gdGhpcy4NCg0KPiANCj4gSSdsbCBsaXN0LWlmeSB0aGlzIHRvbzoNCj4gDQo+ IExpa2UgbW9zdCBVbml4IGZpbGVzeXN0ZW1zLCBYRlMgaW1wb3NlcyB0aGUgc3BhcmVzdCBvZiBj b25zdHJhaW50cyBvbg0KPiB0aGUgY29udGVudHMgb2YgYSBuYW1lOg0KPiANCj4gLSBzbGFzaGVz IGFuZCBudWxsIGJ5dGVzIGFyZSBub3QgYWxsb3dlZCBpbiBkaXJlY3RvcnkgZW50cmllczsNCj4g DQo+IC0gbnVsbCBieXRlcyBhcmUgbm90IGFsbG93ZWQgaW4gdXNlcnNwYWNlLXZpc2libGUgZXh0 ZW5kZWQNCj4gYXR0cmlidXRlczsNCj4gDQo+IC0gbnVsbCBieXRlcyBhcmUgbm90IGFsbG93ZWQg aW4gdGhlIGZpbGVzeXN0ZW0gbGFiZWwNCk9rLCBJIHRoaW5rIHRoYXQgd29ya3MNCg0KPiANCj4g PiA+IHRoZQ0KPiA+ID4gK2ZpbGVzeXN0ZW0gbGFiZWwuDQo+ID4gPiArRGlyZWN0b3J5IGVudHJp ZXMgYW5kIGF0dHJpYnV0ZSBrZXlzIHN0b3JlIHRoZSBsZW5ndGggb2YgdGhlDQo+ID4gPiBuYW1l DQo+ID4gPiBleHBsaWNpdGx5DQo+ID4gPiArb25kaXNrLCB3aGljaCBtZWFucyB0aGF0IG51bGxz IGFyZSBub3QgbmFtZSB0ZXJtaW5hdG9ycy4NCj4gPiA+ICtGb3IgdGhpcyBzZWN0aW9uLCB0aGUg dGVybSAibmFtaW5nIGRvbWFpbiIgcmVmZXJzIHRvIGFueSBwbGFjZQ0KPiA+ID4gd2hlcmUNCj4g PiA+IG5hbWVzIGFyZQ0KPiA+ID4gK3ByZXNlbnRlZCB0b2dldGhlciAtLSBhbGwgdGhlIG5hbWVz IGluIGEgZGlyZWN0b3J5LCBvciBhbGwgdGhlDQo+ID4gPiBhdHRyaWJ1dGVzIG9mIGENCj4gPiA+ ICtmaWxlLg0KPiA+ID4gKw0KPiA+ID4gK0FsdGhvdWdoIHRoZSBVbml4IG5hbWluZyBjb25zdHJh aW50cyBhcmUgdmVyeSBwZXJtaXNzaXZlLCB0aGUNCj4gPiA+IHJlYWxpdHkgb2YgbW9zdA0KPiA+ ID4gK21vZGVybi1kYXkgTGludXggc3lzdGVtcyBpcyB0aGF0IHByb2dyYW1zIHdvcmsgd2l0aCBV bmljb2RlDQo+ID4gPiBjaGFyYWN0ZXIgY29kZQ0KPiA+ID4gK3BvaW50cyB0byBzdXBwb3J0IGlu dGVybmF0aW9uYWwgbGFuZ3VhZ2VzLg0KPiA+ID4gK1RoZXNlIHByb2dyYW1zIHR5cGljYWxseSBl bmNvZGUgdGhvc2UgY29kZSBwb2ludHMgaW4gVVRGLTggd2hlbg0KPiA+ID4gaW50ZXJmYWNpbmcN Cj4gPiA+ICt3aXRoIHRoZSBDIGxpYnJhcnkgYmVjYXVzZSB0aGUga2VybmVsIGV4cGVjdHMgbnVs bC10ZXJtaW5hdGVkDQo+ID4gPiBuYW1lcy4NCj4gPiA+ICtJbiB0aGUgY29tbW9uIGNhc2UsIHRo ZXJlZm9yZSwgbmFtZXMgZm91bmQgaW4gYW4gWEZTIGZpbGVzeXN0ZW0NCj4gPiA+IGFyZQ0KPiA+ ID4gYWN0dWFsbHkNCj4gPiA+ICtVVEYtOCBlbmNvZGVkIFVuaWNvZGUgZGF0YS4NCj4gPiA+ICsN Cj4gPiA+ICtUbyBtYXhpbWl6ZSBpdHMgZXhwcmVzc2l2ZW5lc3MsIHRoZSBVbmljb2RlIHN0YW5k YXJkIGRlZmluZXMNCj4gPiA+IHNlcGFyYXRlIGNvbnRyb2wNCj4gPiA+ICtwb2ludHMgZm9yIHZh cmlvdXMgY2hhcmFjdGVycyB0aGF0IHJlbmRlciBzaW1pbGFybHkgb3INCj4gPiA+IGlkZW50aWNh bGx5DQo+ID4gPiBpbiB3cml0aW5nDQo+ID4gPiArc3lzdGVtcyBhcm91bmQgdGhlIHdvcmxkLg0K PiA+ID4gK0ZvciBleGFtcGxlLCB0aGUgY2hhcmFjdGVyICJDeXJpbGxpYyBTbWFsbCBMZXR0ZXIg QSIgVSswNDMwICLQsCINCj4gPiA+IG9mdGVuIHJlbmRlcnMNCj4gPiA+ICtpZGVudGljYWxseSB0 byAiTGF0aW4gU21hbGwgTGV0dGVyIEEiIFUrMDA2MSAiYSIuDQo+ID4gDQo+ID4gDQo+ID4gPiAr DQo+ID4gPiArVGhlIHN0YW5kYXJkIGFsc28gcGVybWl0cyBjaGFyYWN0ZXJzIHRvIGJlIGNvbnN0 cnVjdGVkIGluDQo+ID4gPiBtdWx0aXBsZQ0KPiA+ID4gd2F5cyAtLQ0KPiA+ID4gK2VpdGhlciBi eSB1c2luZyBhIGRlZmluZWQgY29kZSBwb2ludCwgb3IgYnkgY29tYmluaW5nIG9uZSBjb2RlDQo+ ID4gPiBwb2ludA0KPiA+ID4gd2l0aA0KPiA+ID4gK3ZhcmlvdXMgY29tYmluaW5nIG1hcmtzLg0K PiA+ID4gK0ZvciBleGFtcGxlLCB0aGUgY2hhcmFjdGVyICJBbmdzdHJvbSBTaWduIFUrMjEyQiAi 4oSrIiBjYW4gYWxzbyBiZQ0KPiA+ID4gZXhwcmVzc2VkDQo+ID4gPiArYXMgIkxhdGluIENhcGl0 YWwgTGV0dGVyIEEiIFUrMDA0MSAiQSIgZm9sbG93ZWQgYnkgIkNvbWJpbmluZw0KPiA+ID4gUmlu Zw0KPiA+ID4gQWJvdmUiDQo+ID4gPiArVSswMzBBICLil4zMiiIuDQo+ID4gPiArQm90aCBzZXF1 ZW5jZXMgcmVuZGVyIGlkZW50aWNhbGx5Lg0KPiA+ID4gKw0KPiA+ID4gK0xpa2UgdGhlIHN0YW5k YXJkcyB0aGF0IHByZWNlZGVkIGl0LCBVbmljb2RlIGFsc28gZGVmaW5lcw0KPiA+ID4gdmFyaW91 cw0KPiA+ID4gY29udHJvbA0KPiA+ID4gK2NoYXJhY3RlcnMgdG8gYWx0ZXIgdGhlIHByZXNlbnRh dGlvbiBvZiB0ZXh0Lg0KPiA+ID4gK0ZvciBleGFtcGxlLCB0aGUgY2hhcmFjdGVyICJSaWdodC10 by1MZWZ0IE92ZXJyaWRlIiBVKzIwMkUgY2FuDQo+ID4gPiB0cmljaw0KPiA+ID4gc29tZQ0KPiA+ ID4gK3Byb2dyYW1zIGludG8gcmVuZGVyaW5nICJtb29cXHhlMlxceDgwXFx4YWVnbnAudHh0IiBh cw0KPiA+ID4gIm1vb3R4dC5wbmciLg0KPiA+ID4gK0Egc2Vjb25kIGNhdGVnb3J5IG9mIHJlbmRl cmluZyBwcm9ibGVtcyBpbnZvbHZlcyB3aGl0ZXNwYWNlDQo+ID4gPiBjaGFyYWN0ZXJzLg0KPiA+ ID4gK0lmIHRoZSBjaGFyYWN0ZXIgIlplcm8gV2lkdGggU3BhY2UiIFUrMjAwQiBpcyBlbmNvdW50 ZXJlZCBpbiBhDQo+ID4gPiBmaWxlDQo+ID4gPiBuYW1lLCB0aGUNCj4gPiA+ICtuYW1lIHdpbGwg cmVuZGVyIGlkZW50aWNhbGx5IHRvIGEgbmFtZSB0aGF0IGRvZXMgbm90IGhhdmUgdGhlDQo+ID4g PiB6ZXJvDQo+ID4gPiB3aWR0aA0KPiA+ID4gK3NwYWNlLg0KPiA+ID4gKw0KPiA+ID4gK0lmIHR3 byBuYW1lcyB3aXRoaW4gYSBuYW1pbmcgZG9tYWluIGhhdmUgZGlmZmVyZW50IGJ5dGUNCj4gPiA+ IHNlcXVlbmNlcw0KPiA+ID4gYnV0IHJlbmRlcg0KPiA+ID4gK2lkZW50aWNhbGx5LCBhIHVzZXIg bWF5IGJlIGNvbmZ1c2VkIGJ5IGl0Lg0KPiA+ID4gK1RoZSBrZXJuZWwsIGluIGl0cyBpbmRpZmZl cmVuY2UgdG8gdXBwZXIgbGV2ZWwgZW5jb2Rpbmcgc2NoZW1lcywNCj4gPiA+IHBlcm1pdHMgdGhp cy4NCj4gPiA+ICtNb3N0IGZpbGVzeXN0ZW0gZHJpdmVycyBwZXJzaXN0IHRoZSBieXRlIHNlcXVl bmNlIG5hbWVzIHRoYXQgYXJlDQo+ID4gPiBnaXZlbiB0byB0aGVtDQo+ID4gPiArYnkgdGhlIFZG Uy4NCj4gPiA+ICsNCj4gPiA+ICtUZWNobmlxdWVzIGZvciBkZXRlY3RpbmcgY29uZnVzYWJsZSBu YW1lcyBhcmUgZXhwbGFpbmVkIGluIGdyZWF0DQo+ID4gPiBkZXRhaWwgaW4NCj4gPiA+ICtzZWN0 aW9ucyA0IGFuZCA1IG9mIHRoZQ0KPiA+ID4gK2BVbmljb2RlIFNlY3VyaXR5IE1lY2hhbmlzbXMN Cj4gPiA+IDxodHRwczovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzOS8+YF8NCj4gPiA+ICtkb2N1 bWVudC4NCj4gPiBJIGRvbid0IGtub3cgdGhhdCB3ZSBuZWVkIHRoaXMgbXVjaCBkZXRhaWwgb24g Y2hhcmFjdGVyIHJlbmRlcmluZy7CoA0KPiA+IEkNCj4gPiB0aGluayB0aGUgZXhhbXBsZSBhYm92 ZSBpcyBlbm91Z2ggdG8gbWFrZSB0aGUgcG9pbnQgdGhhdCBjaGFyYWN0ZXINCj4gPiBzdHJpbmdz IGNhbiBkaWZmZXIgaW4gYmluYXJ5LCBidXQgcmVuZGVyIHRoZSBzYW1lLCBzbyB3ZSBuZWVkIHRv DQo+ID4gZGVhbA0KPiA+IHdpdGggdGhhdC7CoCBTbyBJIHRoaW5rIHRoYXQncyByZWFsbHkgYWxs IHRoZSBqdXN0aWZpY2F0aW9uIHdlIG5lZWQNCj4gPiBmb3INCj4gPiB0aGUgTkZEIHVzYWdlDQo+ IA0KPiBJIHdhbnQgdG8gbGVhdmUgdGhlIGxpbmsgaW4sIGJlY2F1c2UgVFIzOSBpcyB0aGUgY2Fu b25pY2FsIHNvdXJjZSBmb3INCj4gaW5mb3JtYXRpb24gYWJvdXQgY29uZnVzYWJpbGl0eSBkZXRl Y3Rpb24uwqAgVGhhdCBpcyB0aGUgbG9jYXRpb24NCj4gd2hlcmUNCj4gdGhlIFVuaWNvZGUgZm9s a3MgcHVibGlzaCBldmVyeXRoaW5nIHRoZXkgY3VycmVudGx5IGtub3cgb24gdGhlDQo+IHRvcGlj Lg0KDQpTdXJlLCBtYXliZSBqdXN0IGtlZXAgdGhlIGxhc3QgbGluZSB0aGVuLg0KDQpBbGxpc29u DQoNCj4gDQo+ID4gPiArYGB4ZnNfc2NydWJgYCwgd2hlbiBpdCBkZXRlY3RzIFVURi04IGVuY29k aW5nIGluIHVzZSBvbiBhDQo+ID4gPiBzeXN0ZW0sDQo+ID4gPiB1c2VzIHRoZQ0KPiA+IFdoZW4g YGB4ZnNfc2NydWJgYCBkZXRlY3RzIFVURi04IGVuY29kaW5nLCBpdCB1c2VzIHRoZS4uLg0KPiAN Cj4gQ2hhbmdlZCwgdGhhbmtzLg0KPiANCj4gPiA+ICtVbmljb2RlIG5vcm1hbGl6YXRpb24gZm9y bSBORkQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUNCj4gPiA+IGNvbmZ1c2FibGUNCj4gPiA+IG5h bWUNCj4gPiA+ICtkZXRlY3Rpb24gY29tcG9uZW50IG9mDQo+ID4gPiArYGxpYmljdSA8aHR0cHM6 Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2ljdT5gXw0KPiA+ID4gK3RvIGlkZW50aWZ5IG5hbWVz IHdpdGggYSBkaXJlY3Rvcnkgb3Igd2l0aGluIGEgZmlsZSdzIGV4dGVuZGVkDQo+ID4gPiBhdHRy aWJ1dGVzIHRoYXQNCj4gPiA+ICtjb3VsZCBiZSBjb25mdXNlZCBmb3IgZWFjaCBvdGhlci4NCj4g PiA+ICtOYW1lcyBhcmUgYWxzbyBjaGVja2VkIGZvciBjb250cm9sIGNoYXJhY3RlcnMsIG5vbi1y ZW5kZXJpbmcNCj4gPiA+IGNoYXJhY3RlcnMsIGFuZA0KPiA+ID4gK21peGluZyBvZiBiaWRpcmVj dGlvbmFsIGNoYXJhY3RlcnMuDQo+ID4gPiArQWxsIG9mIHRoZXNlIHBvdGVudGlhbCBpc3N1ZXMg YXJlIHJlcG9ydGVkIHRvIHRoZSBzeXN0ZW0NCj4gPiA+IGFkbWluaXN0cmF0b3IgZHVyaW5nDQo+ ID4gPiArcGhhc2UgNS4NCj4gPiA+ICsNCj4gPiA+ICtNZWRpYSBWZXJpZmljYXRpb24gb2YgRmls ZSBEYXRhIEV4dGVudHMNCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiA+ICsNCj4gPiA+ICtUaGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgY2FuIGVsZWN0 IHRvIGluaXRpYXRlIGEgbWVkaWEgc2NhbiBvZg0KPiA+ID4gYWxsDQo+ID4gPiBmaWxlIGRhdGEN Cj4gPiA+ICtibG9ja3MuDQo+ID4gPiArVGhpcyBzY2FuIGFmdGVyIHZhbGlkYXRpb24gb2YgYWxs IGZpbGVzeXN0ZW0gbWV0YWRhdGEgKGV4Y2VwdA0KPiA+ID4gZm9yDQo+ID4gPiB0aGUgc3VtbWFy eQ0KPiA+ID4gK2NvdW50ZXJzKSBhcyBwaGFzZSA2Lg0KPiA+ID4gK1RoZSBzY2FuIHN0YXJ0cyBi eSBjYWxsaW5nIGBgRlNfSU9DX0dFVEZTTUFQYGAgdG8gc2NhbiB0aGUNCj4gPiA+IGZpbGVzeXN0 ZW0gc3BhY2UgbWFwDQo+ID4gPiArdG8gZmluZCBhcmVhcyB0aGF0IGFyZSBhbGxvY2F0ZWQgdG8g ZmlsZSBkYXRhIGZvcmsgZXh0ZW50cy4NCj4gPiA+ICtHYXBzIGJldHdlZWVuIGRhdGEgZm9yayBl eHRlbnRzIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiA2NGsgYXJlDQo+ID4gPiB0cmVhdGVkIGFzIGlm DQo+ID4gPiArdGhleSB3ZXJlIGRhdGEgZm9yayBleHRlbnRzIHRvIHJlZHVjZSB0aGUgY29tbWFu ZCBzZXR1cA0KPiA+ID4gb3ZlcmhlYWQuDQo+ID4gPiArV2hlbiB0aGUgc3BhY2UgbWFwIHNjYW4g YWNjdW11bGF0ZXMgYSByZWdpb24gbGFyZ2VyIHRoYW4gMzJNQiwgYQ0KPiA+ID4gbWVkaWENCj4g PiA+ICt2ZXJpZmljYXRpb24gcmVxdWVzdCBpcyBzZW50IHRvIHRoZSBkaXNrIGFzIGEgZGlyZWN0 aW8gcmVhZCBvZg0KPiA+ID4gdGhlDQo+ID4gPiByYXcgYmxvY2sNCj4gPiA+ICtkZXZpY2UuDQo+ ID4gPiArDQo+ID4gPiArSWYgdGhlIHZlcmlmaWNhdGlvbiByZWFkIGZhaWxzLCBgYHhmc19zY3J1 YmBgIHJldHJpZXMgd2l0aA0KPiA+ID4gc2luZ2xlLQ0KPiA+ID4gYmxvY2sgcmVhZHMNCj4gPiA+ ICt0byBuYXJyb3cgZG93biB0aGUgZmFpbHVyZSB0byB0aGUgc3BlY2lmaWMgcmVnaW9uIG9mIHRo ZSBtZWRpYQ0KPiA+ID4gYW5kDQo+ID4gPiByZWNvcmRlZC4NCj4gPiA+ICtXaGVuIGl0IGhhcyBm aW5pc2hlZCBpc3N1aW5nIHZlcmlmaWNhdGlvbiByZXF1ZXN0cywgaXQgYWdhaW4NCj4gPiA+IHVz ZXMNCj4gPiA+IHRoZSBzcGFjZQ0KPiA+ID4gK21hcHBpbmcgaW9jdGwgdG8gbWFwIHRoZSByZWNv cmRlZCBtZWRpYSBlcnJvcnMgYmFjayB0byBtZXRhZGF0YQ0KPiA+ID4gc3RydWN0dXJlcw0KPiA+ ID4gK2FuZCByZXBvcnQgd2hhdCBoYXMgYmVlbiBsb3N0Lg0KPiA+ID4gK0ZvciBtZWRpYSBlcnJv cnMgaW4gYmxvY2tzIG93bmVkIGJ5IGZpbGVzLCB0aGUgbGFjayBvZiBwYXJlbnQNCj4gPiA+IHBv aW50ZXJzIG1lYW5zDQo+ID4gPiArdGhhdCB0aGUgZW50aXJlIGZpbGVzeXN0ZW0gbXVzdCBiZSB3 YWxrZWQgdG8gcmVwb3J0IHRoZSBmaWxlDQo+ID4gPiBwYXRocw0KPiA+ID4gYW5kIG9mZnNldHMN Cj4gPiA+ICtjb3JyZXNwb25kaW5nIHRvIHRoZSBtZWRpYSBlcnJvci4NCj4gPiA+IA0KPiA+IFRo aXMgbGFzdCBiaXQgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgd2UgY29tZSB0byBhIGRl Y2lzaW9uDQo+ID4gd2l0aA0KPiA+IHRoZSByZmMNCj4gDQo+IEknbGwgYXQgbGVhc3QgdXBkYXRl IGl0IHNpbmNlIHRoaXMgZG9jIGlzIG5vdyBwcmV0dHkgZGVlcCBpbnRvIHRoZQ0KPiBwcHRycw0K PiBzdHVmZjoNCj4gDQo+ICJGb3IgbWVkaWEgZXJyb3JzIGluIGJsb2NrcyBvd25lZCBieSBmaWxl cywgcGFyZW50IHBvaW50ZXJzIGNhbiBiZQ0KPiB1c2VkDQo+IHRvIGNvbnN0cnVjdCBmaWxlIHBh dGhzIGZyb20gaW5vZGUgbnVtYmVycyBmb3IgdXNlci1mcmllbmRseQ0KPiByZXBvcnRpbmcuIg0K PiANCj4gPiBPdGhlciB0aGFuIHRoYXQsIEkgdGhpbmsgaXQgbG9va3MgcHJldHR5IGdvb2QuDQo+ IA0KPiBXb290Lg0KPiANCj4gLS1EDQo+IA0KPiA+IEFsbGlzb24NCj4gPiANCg0K