From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web12.9242.1650039841196197105 for ; Fri, 15 Apr 2022 09:24:01 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=MIYb5JgX; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=01048758a1=brian.johnson@hpe.com) Received: from pps.filterd (m0150242.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 23FDJmBj020388; Fri, 15 Apr 2022 16:23:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=HnAY9qIHc3sqKKyvmYZLFQJc/KGk/GRWmY5rXj4Sm7Q=; b=MIYb5JgXyXRFhquh8loYfXWkdeB1RKjbSN0c8T1+MKzCS3V+mPWMuAB4xMXcHtgM2J14 riJYticP9tNl3dMw5k1Z56nn3omAsEKPMxSx0v9+LR+MJlHT+YXhyv31eiX2OFBzLpgO 1dbJm+t3o9IUuvTL/B7Q174E0qvZ7ZxMcCtfJHXd6iBvzyaD/hX9p1T70LIoise+pG07 DlMBj+xUbpjl/V3Ab9W9jq5U62sKPSkal/cTVJBhnECFJEGFvgi5M+d6aS47d8KSYlgS PhncJfClsdus0BMdgg8ZUGRPLhE3NsDaofdvBE+G/UKMSvab2g2CmpyMcYilQDfGj5ph PQ== Received: from p1lg14878.it.hpe.com (p1lg14878.it.hpe.com [16.230.97.204]) by mx0a-002e3701.pphosted.com (PPS) with ESMTPS id 3ff9fx18vb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Apr 2022 16:23:59 +0000 Received: from p1wg14925.americas.hpqcorp.net (unknown [10.119.18.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14878.it.hpe.com (Postfix) with ESMTPS id 9962D131BC; Fri, 15 Apr 2022 16:23:58 +0000 (UTC) Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14925.americas.hpqcorp.net (10.119.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Fri, 15 Apr 2022 04:23:03 -1200 Received: from p1wg14919.americas.hpqcorp.net (16.230.19.122) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15 via Frontend Transport; Fri, 15 Apr 2022 04:23:03 -1200 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Fri, 15 Apr 2022 04:23:03 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NashP4EEicTaEMvzdD0OObU+oZtROIYDDw0UNBUM2XNQhCoZ1u2VQwDRIhdoU5SFGjxno0o5Bz4xQvvElAOKJbE0MY33hFTNUTJnGXYU1oPr+4TaqY7GLS4ZcdBlpY4tRuB3imabLrq4LC/eodXoxYy1EVfOFMwsL9WJRJsX0Gr8ZV/gVPYSGqUv6vykFORJzTGqxlmmRhnn4kusHhkaT/KTlTo60A0At6+1WjHgrGmv7zqFmVHmmf+1cUMtBssE3a8I6FnjgabxPXtgEcc/9fSrFf000fU8eUqIMruN07G7zszuoxP7dhENaPWH+m+mZHCQpBsgEUYmj/eMcSiRTw== 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=8ae+2I3MzBP2E0V3Zf8cex3ndZ3n+4FLeB0Qrw5NQxI=; b=R1gCxHm9Ah1j5+uTRFnKtM0XqKRmmIB++h+vEptrbv6Qv/3ueRYDK77zHkHk1IDn1SWMryv/1F+sBDgu3Av6NRT/DPwgzHxtjbiWHuyWCkqastq/j89V7ecpkknLF0JjRWsgFlTeJ4kzoy0MBJL9RYbbwD4K6HSXcnp7k9n825LfpO4omu95kycl6y8NhpY3xNIxRkUdnZA1O4IdMOwgsepwnLHZL5oNniUsQgvLCaZNI8YJWLxzWVwVivAXn8q1fo8fMp7VC2T03TcWBx2edOth/upQV/IZTLVfvIAMma8KmAS4YYKDAKhepnzVzMmlmhXCPIjR5cc1RAFtbeBOvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:151::12) by SJ0PR84MB1435.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:a03:431::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Fri, 15 Apr 2022 16:23:01 +0000 Received: from PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM ([fe80::3021:466b:c5f2:7c4f]) by PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM ([fe80::3021:466b:c5f2:7c4f%8]) with mapi id 15.20.5164.020; Fri, 15 Apr 2022 16:23:01 +0000 Message-ID: <094f2e37-55ea-bd3e-a918-cd4ce1a48830@hpe.com> Date: Fri, 15 Apr 2022 11:22:56 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [edk2-devel] [edk2-discuss] GSoC Proposal To: , , Andrew Fish , "devel@edk2.groups.io" CC: "mhaeuser@posteo.de" , Pedro Falcato , "adachristine18@gmail.com" , "Shi, Steven" References: <865CD9EA-0EB4-4DE9-AFC6-DCB505A067EE@posteo.de> <47C4D916-19E4-48E8-BB81-982F9B70B5DC@apple.com> <56CE4C08-4232-4897-9B0F-6C6443C2C48D@intel.com> From: "Brian J. Johnson" Organization: HPE In-Reply-To: <56CE4C08-4232-4897-9B0F-6C6443C2C48D@intel.com> X-ClientProxiedBy: SA9PR13CA0013.namprd13.prod.outlook.com (2603:10b6:806:21::18) To PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:151::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f60866f8-5211-48d4-1309-08da1efc35c7 X-MS-TrafficTypeDiagnostic: SJ0PR84MB1435:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6TpyfvCZjOJzpv1DMkxGa5FSpBO3WqLoZXfkNWBtdJNId0gc0nxsdwZjozXeCnmbXu7l+Zh29VTUODF+gvGbLiGZkmaefVEPHeCzFaMmtWCrkFDCAyNVD9oPMYtkOsAIoKd5n11sDrtBaTJs8ZpMc5BG+U74ArQ5jMGWp1qHswgyzjhfemkxl636w9NNXDNrR8xvLJWo+k9urVZSRcWkUf3jWJZ029+WKlaVET4s7OWf1kfvWyH0QfPjG2icRzU/gxf5sOcqPkV/6EY2L5X9kk4meU7yH1bOotXWZjNWNrLIvF4BWVg+ARkyFM8uIfhHS6MwzA6wd3gz0OBC/TDqbnGptiRKtyOC80Gu23xxoxys/P7gvl1M65KOoUCGiLXtO71u8mRqrJ1A4YCo0zXLicURAsHCdvB8yFkllTyuN3h+8hHtypIIHBr1R1sFAkg1DerPIoA4JMliJkuYSYS9oN/eS0J0okDXJfz0f/RRTvjIU2BG84WrOF0mICpEALZkMOs4nvvc/Gg60+McDPi22Z0oYm9eAP5cG1RoifUWY+COx9ppAHEfE46ETVKCHmYgg4VNVrqpl7kB3CmKZEYmQoGKrnAJ6tt8DgYwyzTb/ivydDpiD763/oup7vT0hwYtd10cYGYTRtzDviwdahFUH6rTJYeXVfnX5I5HrSGbXVANXao/96GvmU+HaeoZoM1Wz1fAWmkhBLDyCOX2sYx2xNe2NU/6pIHduXDtB/Kc5rfSzi+KpoD7QbN3JBTZkJ7tXObuwnMwwikos2KrY3uZg3ch1e3aeveknFelG/rKVe6/jMyLLUw95+mB+kC2C0Wbsv0YQQrd8vSmTPL5Y5A9omyq3GupZl+VSQULS661M9V8NzW40VIsBCMxPlgtfPt0 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230001)(366004)(110136005)(54906003)(186003)(26005)(66574015)(6512007)(2616005)(53546011)(6506007)(31686004)(36756003)(6486002)(508600001)(966005)(8936002)(66476007)(30864003)(31696002)(18074004)(5660300002)(316002)(66556008)(66946007)(2906002)(8676002)(83380400001)(6666004)(36916002)(38100700002)(86362001)(82960400001)(4326008)(45980500001)(43740500002)(443494004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VU9XTjFTbE0rai9RYzZCWkxEWG15QVduRTNHVHZaODZtSlJaY2FGWkN4ZTJs?= =?utf-8?B?VTQ1RGpIb2JOR2lUamFYZmtKZkludFNPKy9pZkpxaUJCYkF1cVpUb3VubTZX?= =?utf-8?B?bGNEeDZEOU1Sc2pQSDJZVFBMdnhEd3hPMG1oZko3TlZGWm9IVzV3RWMrZHRh?= =?utf-8?B?dy83M2NjbTY4ZjNEVm1kSXJuTWJ6dVgzZFhxMkpYbXNoNFpQbS9DakpLaTFI?= =?utf-8?B?Nkk2YjU2RC9XMGg3TUJOYTIvRlpHeVMxUUFIa0c3MEFxNUljbFp4ZUNSZHE0?= =?utf-8?B?d3JmVWtKdnRFMGljWVlHa09GSHl6Z21hUjNkNFpWQ2FzZndHM0k3cDgxUFVr?= =?utf-8?B?NEIrZUJJc0MwTDluM2c3RU92WTdWdFBUZklsNEVuRG04enlTL0tFb3JQdTZN?= =?utf-8?B?Tk01N05sRnVicHNtbVhwb0VNdlk4cHp5cmJCT04xc0hFSlNYQWMzVFdqcTZr?= =?utf-8?B?eERtZXBjUFNIL2I0elcxbUhLN0dKK2FIa1NPSnk5VnVGQUtDU3BtekJXaTl3?= =?utf-8?B?a3owcHU0SHNvbHlqSGJqVnFONUsxS0JVNnpjSnFpWlVFbGE4OXN4N2wwc1RF?= =?utf-8?B?KzA3WW9rVHVqcXBMamd4U3R0c1JmNGNHemdlMGNSTVdyV2wyeG5qMFBRbDZq?= =?utf-8?B?TUV1elVLVXhiQlVjSEpVdkJ5MjJzbFl5c0dBL3NwcXB2UTVseWp6dWpzLzdB?= =?utf-8?B?aWR3NnpBSFRVWC8zMTIzWGZ0NkNueVYzSFo3Qjk2NStuc2t5VWViODIybTBy?= =?utf-8?B?Q1RoRnlXQW14WGJNSG5hSm03VmpjTzlta0poZjFTdXR4UGQ0QUZDYTFHanlO?= =?utf-8?B?RHU1SVR3YTV0R2lSbzkzSFNWcmJGTERtS2prazRNbE9Cek1XSjlxRVF1d2d3?= =?utf-8?B?RzZCZTlLak1BbzhqN1ZBNWwvd2JWK2wyZHhjVnFWZEpiTFkwZEpJeHlaRXZB?= =?utf-8?B?bUZYcjl1eHhOcnNyRjhNeG54TldHT0c5SjMvT2F1Sjd1VnlFMlM0SnMwUklR?= =?utf-8?B?b1BpMGVybFUwSGUzUlFIVk5GUk43ZmRYYkxwcUpGYzdnN0dMSUpHY1d1M1lN?= =?utf-8?B?eVRFTWFRMXpQbjBiZ0I2NVdHL2dvblkxb1orYllMMjRaTGhpYUxWWk03R1NV?= =?utf-8?B?TmtBdzFrMGRpWXJSUVowQkZRbDF4NjNFYVdGc1M0UnRUaTB1SUlKR01SNjlP?= =?utf-8?B?R0lRcVBUeVRTemowUHBlVTcwQzNnZWtCL0lvek0xMUtRVmw1elVhdWJtVWlY?= =?utf-8?B?SkpMUlR2Um5nQVpPcGZ2S0FmdFlVbFQ1a1ZEaHFaeWpPMVFDODRnRG9RRExR?= =?utf-8?B?elE0RGVvcEZKT295Y1d0NWhDQll1SFBJWTJlQUdjU21TdTVsZFRnZ3Z5YUNS?= =?utf-8?B?c0lhdll0RzRZcVRZbGN1NXM0R1dDcEl4YXJvNTNxRDFESFE3dlVHREs2MDdl?= =?utf-8?B?VVFqZEFmSHd3S0l3K2hKQTd6aC9Wd2xvVkpMb01BNWdiUy8weUFiVWlKK0c2?= =?utf-8?B?dXJhaWdBanc0eG1yLzljY0MyeU9Xb294MjFCQU5TTWhxaXJsN3VrQ1FIdC92?= =?utf-8?B?THZtL2tyTnllZW04OGdyaW5YQzRnUmlqbjJSNExJSmlLdXd0dXhiYzEvd3pL?= =?utf-8?B?Y0VRZ2F2YUdoZkRrdzZVbERTa1VJY1o4Tmt1QmNObXY2YXl6NHBreFRuQlg3?= =?utf-8?B?N2p3d24xbGpBRVZJQUxYOXdUcWlrRjFRQUFndXdzajhtc3J2Q2wzM0RnTEhw?= =?utf-8?B?N2MxODBBdWpZTlBNU1dyRE1RRlZXaHlBcGFIM0RoaFQyNnpZckpmNkdZc2I0?= =?utf-8?B?dXdveUdwL2xuQVdsRitLMmFCYzhiQy82M1lHNG83bFg2Y3FxazZaM045aVJt?= =?utf-8?B?QlB3QUJvWXRIbjl3WGVidWRMTXJ1N1JBSGVZR1pyN3Axa2hXeXoyMzg4REVR?= =?utf-8?B?YzQvRzZ3cUNJc1JOKzFldXhNZ2lndURpQ3FGcFkvejFiS1NBa3FPUHNtZmlV?= =?utf-8?B?amVsZ20zcS9DNVZ0L243RFIveXFHK1N4dUNXdTFMWENQczR3REQvNUZMU3Y0?= =?utf-8?B?QUVtWUNBK3dPU3M1c2xIcDljOUtPRWNUckhkeHRxR1JlRFVBTkQydkRHU0w0?= =?utf-8?B?UlVOTC8zbjlqSVE5Zkk2bWZNS1FYQTh4Z1V0L1ljSmpJRkVKQ1hmL0FtQStk?= =?utf-8?B?N055cFJsQjZOb0tybmVuMlBCejNRM0NLT25GMGZINzJtdnlRTnFScVRLcWVs?= =?utf-8?B?ekdOYUpCTTRHKzgvTWNLSisrem5ZZU1nMEhMZjQyTGIrNGZ4QW1hKyttYnlT?= =?utf-8?B?R05hcmxaeTdTWlhvWHhhc2xhUk5VUGU2dUcxeWx6UlFKbHVqNndoUT09?= X-MS-Exchange-CrossTenant-Network-Message-Id: f60866f8-5211-48d4-1309-08da1efc35c7 X-MS-Exchange-CrossTenant-AuthSource: PH7PR84MB1582.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2022 16:23:01.1208 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7zrNsgNUGH+zXqu6f/gv73303bRJxUKZP14ygBnXKn5TJ5UiVkk/OfCBQQUjrl3YvEssDGgnRerbMwiGpHTABQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR84MB1435 X-OriginatorOrg: hpe.com X-Proofpoint-ORIG-GUID: wdbZRkaSj-NkMcBhDpKIfjX078KUqUUS X-Proofpoint-GUID: wdbZRkaSj-NkMcBhDpKIfjX078KUqUUS X-Proofpoint-UnRewURL: 6 URL's were un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-04-15_06,2022-04-15_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 mlxscore=0 impostorscore=0 mlxlogscore=999 spamscore=0 clxscore=1011 bulkscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204150093 Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 TmF0ZSwgQW5kcmV3LCBNYXJ2aW4sIFBlZHJvLCBBZGEsIGV0IGFsLA0KDQpUaGlzIGlzIGEgZ3Jl YXQgZGlzY3Vzc2lvbi4gIEkndmUgYmVlbiBkZWJhdGluZyB3aGVyZSB0byB3ZWlnaCBpbi4uLg0K DQpJIGFncmVlIHRoYXQgc29tZSBzb3J0IG9mIGxpYnJhcnkgc2hhcmluZyB0byByZWR1Y2UgaW1h Z2Ugc2l6ZSB3b3VsZCBiZSANCnZlcnkgaGVscGZ1bC4gIEFsdGhvdWdoIHNvbWUgcGFydHMgb2Yg dGhlIEJJT1MgYXJlIGJ1aWx0IHNlcGFyYXRlbHksIA0KbGFyZ2UgcGFydHMgb2YgaXQgYXJlIGNv bXBpbGVkIGF0IHRoZSBzYW1lIHRpbWUsIHNvIHRoZXJlIHNob3VsZCBiZSANCmFtcGxlIG9wcG9y dHVuaXR5IGZvciB0b29sLWRpcmVjdGVkIHNoYXJpbmcuICBTb21lIGZvcm0gb2YgcHJlLWxpbmtp bmcgDQptb2R1bGVzIHRvZ2V0aGVyIG1heSBiZSB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gdGhhdC4g IEJ1dCBob3dldmVyIGl0IGdldHMgDQppbXBsZW1lbnRlZCwgd2Ugc2hvdWxkIHRyeSB0byBtYWtl IGl0IGF1dG9tYXRpYzogIHJlcXVpcmluZyBsaWJyYXJ5IA0Kd3JpdGVycyB0byBtYW51YWxseSBh ZGQgYSBsb3Qgb2YgbWV0YWRhdGEgb3Igd3JpdGUgdGh1bmtzIG9yIHNoaW1zIHdvdWxkIA0KYmUg YSBiYXJyaWVyIHRvIGFkb3B0aW9uLg0KDQpJIGFsc28gYWdyZWUgdGhhdCBQRUkgaGFzIGFjcXVp cmVkIGZhciB0b28gbXVjaCBmdW5jdGlvbmFsaXR5IG92ZXIgdGltZSwgDQphbmQgd2UgYmFkbHkg bmVlZCB0byBmaW5kIHNvbWUgd2F5IHRvIHJldmVyc2UgdGhhdC4gIFBFSSBpcyBwdWxsaW5nIGlu IA0KbW9yZSBhbmQgbW9yZSBvZiB0aGUgaC93IGluaXRpYWxpemF0aW9uLCBsZWF2aW5nIERYRSBt YWlubHkgdG8gcHJvdmlkZSANCnRoZSBib290IGludGVyZmFjZSAoQUNQSSwgVUVGSSBzZXJ2aWNl cywgc2V0dXAgc2NyZWVucywgZXRjLikgIFRoYXQgcHV0cyANCm1vcmUgYW5kIG1vcmUgcHJlc3N1 cmUgb24gWElQIHN0b3JhZ2UgYW5kIGNhY2hlLWFzLVJBTS4gIEhvdyBjYW4gd2UgDQplbmNvdXJh Z2UgYSBjaGFuZ2U/DQoNClRoYW5rcywNCkJyaWFuIEouIEpvaG5zb24NCg0KDQpPbiA0LzE1LzIy IDAzOjE1LCBOYXRlIERlU2ltb25lIHdyb3RlOg0KPiBIaSBBbmRyZXcsDQo+IA0KPiBPbiA0LzE0 LzIyLCA3OjQzIFBNLCAiQW5kcmV3IEZpc2giIDxhZmlzaEBhcHBsZS5jb20+IHdyb3RlOg0KPj4N Cj4+DQo+Pj4gT24gQXByIDE0LCAyMDIyLCBhdCA2OjA2IFBNLCBOYXRlIERlU2ltb25lIDxuYXRo YW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+IHdyb3RlOg0KPj4+DQo+Pj4gSGkgTWFydmluLA0K Pj4+DQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1hcnZpbg0K Pj4+PiBIw6R1c2VyDQo+Pj4+IFNlbnQ6IFRodXJzZGF5LCBBcHJpbCAxNCwgMjAyMiAxMjo1NiBB TQ0KPj4+PiBUbzogZGlzY3Vzc0BlZGsyLmdyb3Vwcy5pbzsgRGVzaW1vbmUsIE5hdGhhbmllbCBM DQo+Pj4+IDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+Pj4+IENjOiBQZWRybyBG YWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT47IGVkazItZGV2ZWwtZ3JvdXBzLWlvDQo+ Pj4+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz47IGFkYWNocmlzdGluZTE4QGdtYWlsLmNvbTsgU2hp LCBTdGV2ZW4NCj4+Pj4gPHN0ZXZlbi5zaGlAaW50ZWwuY29tPg0KPj4+PiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtlZGsyLWRpc2N1c3NdIEdTb0MgUHJvcG9zYWwNCj4+Pj4NCj4+Pj4gSSBm ZWVsIGxpa2UgdGhlcmUgYXJlIHNvIG1hbnkgbXVjaCBlYXNpZXIgc29sdXRpb25zIHRvIHRoaXMg cHJvYmxlbSB0aGF0IGFyZSBhdA0KPj4+PiBtb3N0IGxpbWl0ZWQgYnkgdGhlIGNsZWFyIHNwZWNp ZmljYXRpb24uIFRoZSBVRUZJIHNwZWNpZmljYXRpb24gd2l0aCByZWdhcmRzIHRvDQo+Pj4+IGJv b3RpbmcgYW5kIGFsbCBvZiB0aGF0IG9idmlvdXNseSBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZS4N Cj4+Pg0KPj4+IElmIHlvdSBoYXZlIGEgYmV0dGVyIGlkZWEgdGhhdCByZXRhaW5zIGNvbXBhdGli aWxpdHkgd2l0aCB0aGUgZXhpc3RpbmcgVUVGSSBQSSB0aGVuIEkgd291bGQgYmUgaGFwcHkgdG8g aGVhciBpdC4gVWx0aW1hdGVseSBhbnl0aGluZyB3ZSBkbyBuZWVkcyB0byBiZSBhIHB1cmUgZXh0 ZW5zaW9uIHRoYXQgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGNvZGUuIEdpdmVuIHRo YXQgcmVzdHJpY3Rpb24gaGF2aW5nIHRoZSBhYmlsaXR5IHRvIGNvYWxlc2NlIGFsbCB0aGUgTGli cmFyeUNsYXNzZXMgaW50byBhIHNpbmdsZSBtb2R1bGUgYW5kIGhhdmUgY3Jvc3MtbW9kdWxlIGxp bmtpbmcgc2VlbXMgbGlrZSB0aGUgYmVzdCB3YXkgdG8gaGFuZGxlIGl0IHRvIG1lLg0KPj4+DQo+ Pj4+IFRoZSBVRUZJIFBJIHNwZWNpZmljYXRpb24gcGFydHMgdGhhdCBkZWFsIGFib3V0IGludGVy bmFsIHN0cnVjdHVyZSwgYXMgZmFyIGFzIEkga25vdywgYXJlDQo+Pj4+IG9ubHkgaW4gcGxhY2Ug dG8gbWFrZSBpdCBlYXN5IHRvIGludGVncmF0ZSBJbnRlbCBJUC4NCj4+Pg0KPj4+IEl0cyBub3Qg anVzdCBmb3IgSW50ZWwuIFRoZSBiaWdnZXN0IHJlYXNvbiBmb3IgaXQgdG8gaW5jcmVhc2UgdGhl IHN0YW5kYXJkaXphdGlvbiBvZiB0aGUgYm9vdCBmbG93IGFjcm9zcyB0aGUgUEMgZWNvc3lzdGVt LiBXZSBoYXZlIGxlYXJuZWQgZnJvbSBleHBlcmllbmNlIHRoYXQgZmlybXdhcmUgaXMgc3VwZXIg Y3JpdGljYWwgdG8gZ2V0IGEgcHJvZHVjdCBvdXQgdGhlIGRvb3IgYnV0IGl0IGlzIGFsc28gZGlm ZmljdWx0IHRvIHdyaXRlLiBTbyB3ZSB0cnkgdG8gbWFrZSBpdCBhcyByZXVzYWJsZSBhcyBodW1h bmx5IHBvc3NpYmxlLg0KPj4+DQo+Pj4+IEluIGZhY3QsIEkgZG9u4oCZdCAqa25vdyosIGJ1dCBJ 4oCZbSBwcmV0dHkgc3VyZSB0aGUgdmVyeSBzdHJpY3Qgc2VwYXJhdGlvbiBiZXR3ZWVuIFBFSSBh bmQgRFhFIHdhcw0KPj4+PiBwcmVzZXJ2ZWQgbW9zdGx5IGJlY2F1c2UgTVJDIHdhcyAzMi1iaXQt b25seSBmb3IgYSBsb25nIHRpbWUuIEdsYWQgdGhhdA0KPj4+PiBzZWVtcyB0byBoYXZlIGJlZW4g cmVzb2x2ZWQsIEFNRCBkb2VzIG1lbW9yeSBpbml0IGJ5IFBTUCBub3dhZGF5cy4NCj4+Pg0KPj4+ IEhhdmluZyBsZXNzIGNvbXBsZXggZWFybHkgc3RhZ2VzIGNoYWluIGxvYWQgbW9yZSBjb21wbGV4 IGxhdGVyIHN0YWdlcyBpcyBhIGNvbW1vbiBkZXNpZ24gcGF0dGVybiBpbiBmaXJtd2FyZSwgbm90 IGp1c3QgVUVGSS4gRm9yIGV4YW1wbGUsIHlvdXIgdHlwaWNhbCBBUk0gc3lzdGVtIGxvYWRzIGtp bmRhIGxpa2UgdGhpczoNCj4+Pg0KPj4+IFBCTCAoU29DIFJPTSkgLS0+IFNCTCAoUkFNIEluaXQp IC0tPiBBUk0gVHJ1c3QgWm9uZSAtLT4gSHlwZXJ2aXNvciAtLT4gRURLIElJIG9yIFUtQm9vdCBv ciBMaXR0bGVLZXJuZWwgKHdoaWNoIHJ1bnMgYW5kcm9pZCBmYXN0Ym9vdCkNCj4+Pg0KPj4+IENv bXBhcmluZyByZWxhdGl2ZSBjb21wbGV4aXR5IEkgYmVsaWV2ZSB0aGUgSW50ZWwgVUVGSSBQSSBk ZXNpZ24gaXMgYWN0dWFsbHkgcHJldHR5IHNpbXBsZSB3aGVuIHlvdSBjb25zaWRlciBob3cgbXVj aCBpdCBnZXRzIGRvbmU6DQo+Pj4NCj4+PiBVY29kZSBST00gLS0+IFNFQyArIFBFSSAtLT4gRFhF ICsgU01NICsgQkRTDQo+Pj4NCj4+PiBNeSBiaWdnZXN0IGNyaXRpY2lzbSBvZiB0aGUgZGVzaWdu IGlzIHRoYXQgdGhlIHN0cmljdCBzZXBhcmF0aW9uIGJldHdlZW4gUEVJIGFuZCBEWEUgZG9lc24n dCBleGlzdCBiZXR3ZWVuIERYRSwgU01NLCBhbmQgQkRTIPCfmIoNCj4+Pg0KPj4+IFRoZXJlIGFy ZSBhIGZldyByZWFzb25zIHdoeSBQRUkgd2FzIDMyLWJpdCBmb3IgcXVpdGUgc29tZSB0aW1lLiBU aGUgYmlnZ2VzdCBvbmUgaXMgdGhlIGNvZGUgc2l6ZSBpbmNyZWFzZSwgNjQtYml0IHg4NiBjb2Rl IGlzIDIwLTMwJSBsYXJnZXIgdGhhbiAzMi1iaXQgeDg2IGNvZGUuIFNpbmNlIHRoZSBvbmx5IFJB TSBQcmUtTWVtb3J5IGNvZGUgaGFzIGFjY2VzcyB0byBpcyB0aGUgY2FjaGUgb25ib2FyZCB0aGUg cHJvY2Vzc29yIGFuZCBmb3Igc2VjdXJpdHkgcmVhc29ucyBhbGwgdGhhdCBjb2RlIGhhcyB0byBm aXQgd2l0aGluIHRoYXQgUkFNIHdlIGdlbmVyYWxseSBkbyBldmVyeXRoaW5nIHdlIGNhbiB0byBt YWtlIHRoYXQgaW1hZ2UgYXMgc21hbGwgYXMgcG9zc2libGUuIFNlY29uZCwgNjQtYml0IHJlcXVp cmVzIGEgcGFnZSB0YWJsZSBhbmQgc2luY2Ugd2UgZGVzaXJlZCB0byBrZWVwIFBFSSBzaW1wbGUg d2UgdHJpZWQgdG8gYXZvaWQgdGhhdC4gRmluYWxseSwgdGhlIFBJIHNwZWMgZGlkbid0IGFsbG93 IGEgNjQtYml0IFBFSSB1bnRpbCByZWNlbnRseS4gTVJDIGlzIDMyLWJpdCBjb2RlIGp1c3QgYmVj YXVzZSB0aGF0IGlzIHdoYXQgUEVJIGhhcHBlbnMgdG8gYmUuIFBvcnRpbmcgaXQgdG8gNjQtYml0 IGlzIG5vdCB0ZXJyaWJseSBkaWZmaWN1bHQuDQo+Pj4NCj4+PiBVbHRpbWF0ZWx5IHRoZSBtaXgg b2YgMzIvNjQtYml0IGRvZXMgY2F1c2Ugc29tZSBkaWZmaWN1bHRpZXMuIEFueSBkYXRhIHN0cnVj dHVyZXMgdGhhdCBnZXQgc2hhcmVkIGJldHdlZW4gUEVJIGFuZCBEWEUgKEhPQnMsIFBDRHMsIGV0 Yy4pIG5lZWQgdG8gcmVzb2x2ZSB0byB0aGUgc2FtZSBzaXplIGFuZCBwYWNraW5nLiBMaWJyYXJ5 Q2xhc3NlcyBuZWVkIHRvIGJlIHdyaXR0ZW4gdG8gY29tcGlsZSBwcm9wZXJseSBpbiBib3RoIG1v ZGVzLiBJbiB0aGUgY2FzZSBvZiBGU1AgQVBJIG1vZGUgeW91IG5lZWQgdG8gcmVzb3J0IHRvIHRo dW5raW5nIGJldHdlZW4gMzIgYW5kIDY0LWJpdCBtb2RlcyBkdXJpbmcgRFhFLiBNb3JlIG9yIGxl c3Mgd2UgZGVjaWRlZCB0aGF0IHRoZSBjb3N0cyBhcmUgc3RhcnRpbmcgdG8gb3V0d2VpZ2ggdGhl IGFkdmFudGFnZXMuDQo+Pj4NCj4+DQo+PiBJ4oCZZCBhbHNvIHBvaW50IG91dCB0aGF0IHg4NiBW TXMgdXNlIFg2NCAoeDg2LTY0KSBQRUkgdG9kYXkgYW5kIGl0IHdvcmtzIHNvIHRoZSAzMi1iaXQv NjQtYml0IG1peCBoYXMgbm90aGluZyB0byBkbyB3aXRoIFVFRkkvUEkvZWRrMi4NCj4+DQo+PiBJ biB0aGUgUEMgZWNvc3lzdGVtIGEgc2luZ2xlIGNoaXBzZXQgZmFtaWx5IGNhbiBwb3dlciB0aG91 c2FuZHMgb2YgdW5pcXVlIGRlc2lnbnMuIFNvIHRoZSAgRFJBTSBtZW1vcnkgbmVlZHMgdG8gYmUg ZXh0ZXJuYWwsIHN1cHBvcnQgbG90cyBvZiBkaWZmZXJlbnQgY2hpcHNldCBwYWNrYWdlcyhzaWdu YWwgaW50ZWdyaXR5Li4uKSwgc3VwcG9ydCB0aGUgbG93ZXN0IGNvc3QgdGhyb3VnaCB0aGUgaGln aGVzdCBjb3N0IERSQU0gYW5kIHRob3VzYW5kcyBvZiBkaWZmZXJlbnQgYm9hcmQgbGF5b3V0cy4g U28gcHJvZ3JhbWluZyBEUkFNIHRha2VzIGEgbWFzdGVycyBkZWdyZWUgaW4gYW50ZW5uYSBkZXNp Z24uIEnigJl2ZSBzZWVuIE1SQyAoTWVtb3J5IFJlZmVyZW5jZSBDb2RlKSB3aXRoIG92ZXIgYSBN aUIgb2YgREVCVUcgcHJpbnRzIGluIGl0LCBhbmQgaXQgbGl0ZXJhbGx5IGlzIHByaW50aW5nIGhp c3RvZ3JhbXMgb2Ygd2hhdCBpdCBpcyB0dW5pbmcuIFNvIGFsbCB0aGlzIGNvZGUgaGFzIHRvIHJ1 biBiZWZvcmUgdGhlIHN5c3RlbSBoYXMgYW55IERSQU0sIHRodXMgaXQgaXMgcnVubmluZyB1c2lu ZyB0aGUgY2FjaGUgYXMgUkFNLiBJ4oCZdmUgbm90IGxvb2tlZCBhdCB0aGUgeDg2IGFyY2hpdGVj dHVyZSBzcGVjcyBmb3JtIHRoZSB2ZW5kb3JzIGluIGEgd2hpbGUsIGJ1dCBiYWNrIGluIHRoZSBk YXkgdGhleSBkaWQgbm90IHN1cHBvcnQgcGFnZSB0YWJsZXMgaW4gUk9NIG9yIHBpbm5lZCBjYWNo ZWQuIE5vdyBpdCBtaWdodCB3b3JrLCBidXQgaWYgaXQgYnJlYWtzIHlvdXIgQ1BVIHZlbmRvciBi bGFtZXMgeW91IHNvIHlvdSBkb27igJl0IGNvZGUgUEVJIGluIFg2NOKApi4NCj4+DQo+PiBXZSBj b250cmlidXRlZCB0aGUgMXN0IGVkazIgQVJNIHBsYXRmb3JtLCBCZWFnbGUgQm9hcmQsIGFuZCBJ dCB3YXMgYSBsb25nIHRpbWUgYWdvIGJ1dCBJIHNlZW0gdG8gcmVtZW1iZXIgdGhlIG1hc2sgUk9N IHVzZWQgYSB0YWJsZSBpbiBOT1IgRkxBU0ggdG8gaW5pdCBtZW1vcnkgYW5kIHRoZW4gY29waWVk IGFuIGltYWdlIGZyb20gTk9SIEZMQVNIIGludG8gRFJBTSBhbmQganVtcGVkIHRvIGl0LiBTbyBQ RUkgaXMga2luZCBvZiBub3QgcmVhbGx5IG5lZWRlZCBhbmQgd2UgaW1wbGVtZW50ZWQgYSBQcmVQ RUkgYW5kIGp1bXBlZCBkaXJlY3RseSB0byBEWEUuDQo+Pg0KPj4gR2l2ZW4gSSB3YXMgYXJvdW5k IGJhY2sgaW4gdGhlIGRheSB3aGVuIGFsbCB0aGlzIHN0dWZmIHdhcyBkZXNpZ25lZCBJIGNhbiBz YXkgU0VDIHdhcyBhbHdheXMgYSBwbGFjZSBob2xkZXIgZm9yIHNlY3VyaXR5IGNvZGUsIGFzIHNl Y3VyaXR5IGNvZGUgYWx3YXlzIGhhcyB0byBydW4gMXN0LiBQRUkgKFByZSBFRkkpIHdhcyBkZXNp Z25lZCB0byBnZXQgRFJBTSBwcm9ncmFtbWVkIGFuZCB0aGVuIGp1bXAgdG8gRFhFLiBJdCBraW5k IG9mIGFsc28gZmVsbCBpbiBuYXR1cmFsbHkgdG8gQUNQSSBTMyBmbG93IHNpbmNlIHRoYXQgd2Fz IHR1cm5pbmcgbWVtb3J5IGJhY2sgb24uIFdoZW4gd2UgZGVzaWduZWQgUEVJIHdlIGtpbmQgb2Yg dGhvdWdoIG9mIGl0IG1vcmUgbGlrZSBhIGJvb3QgbG9hZGVyIHN0YWdlIGZvciB0aGUgZmlybXdh cmUgdGhhdCB0dXJuZWQgb24gbWVtb3J5IGFuZCBhbGwgdGhlIHdvcmsgd291bGQgaGFwcGVuIGlu IERYRS4gVGhlbiByZWFsaXR5IHN0cmlrZXMgYW5kIHRoZSBleGlzdGluZyBCSU9TIGFzc2VtYmx5 IHByb2dyYW1tZXJzIHN0YXJ0IGxlYXJuaW5nIEMgKGxvdHMgb2YgIGNyYW5reSBwZW9wbGUpIGFu ZCB0aGV5IHN0YXJ0IGhhdmluZyB0byBsZWFybiBhbGwgYWJvdXQgUEVJIHRvIHR1cm4gb24gbWVt b3J5LiBUaGV5IGhhZCB0byB3cml0ZSBhIGJpZyBjaHVuayBvZiBjb2RlIGZvciB0aGUgbWVtb3J5 IGluaXQgaW4gUEVJLiBUaGVzZSBmb2xrcyBoYWQgbmV2ZXIgd3JpdHRlbiBhbnkgRUZJIGNvZGUs IHNvIHRvIHRoZW0gaXQgd2FzIGVhc2llciB0byBtb3ZlIGEgbG90IG9mIHRoZSBjaGlwc2V0IGlu aXQgY29kZSBpbnRvIFBFSSBhcyB0aGF0IGlzIHRoZSB3b3JsZCB0aGV5IGhhZCB0byBmaWd1cmUg b3V0IHRvIGdldCBtZW1vcnkgdHVybmVkIG9uLiBJIG1lYW4gd2h5IGxlYXJuIEVGSSBpZiB5b3Ug ZG9u4oCZdCBoYXZlIHRvPyBTbyB0aGF0IGlzIGhvdyB3ZSBnZXQgc28gbXVjaCBjb2RlIGluIElB MzIgKGkzODYpIG9uIHNvbWUgcGxhdGZvcm1zLiBUaGlzIHN0YXJ0IGtpbmQgb2YgYmlhc2VkIGZ1 dHVyZSBjaG9pY2VzIGFuZCBob3cgdG8gZW5hYmxlIG5vbiBlZGsyIGNvZGUgYmFzZXPigKYuDQo+ IA0KPiBPbmUgb2YgdGhlIGJpZyByZWFzb25zIGEgbG90IG9mIGNvZGUgdGhhdCBzaG91bGQgaGF2 ZSBiZWVuIHdyaXR0ZW4gaW4gRFhFIGVuZGVkIHVwIGluIFBFSSBpcyB1bmZvcnR1bmF0ZWx5IGR1 ZSB0byB0aGUgRlNQIGFuZCBpdHMgaW5hYmlsaXR5IHRvIHN1cHBvcnQgRFhFIGNvZGUuDQo+IA0K Pj4NCj4+IFRoYW5rcywNCj4+DQo+PiBBbmRyZXcgRmlzaA0KPj4NCj4+DQo+Pj4+DQo+Pj4+IEZv ciBtYW55IGdvb2QgcmVhc29ucywgTGludXggZG9lcyBub3QgcHJvdmlkZSBhIHN0YWJsZSBrZXJu ZWwgQVBJLiBUaGlzDQo+Pj4+IGFsbG93cyB0byBlYXNpbHkgZGVwbG95IGJyZWFraW5nIGNoYW5n ZXMgYWNyb3NzIHRoZSBlbnRpcmUgY29kZWJhc2UuDQo+Pj4+IE9idmlvdXNseSwgdGhpcyBpcyBp bmZlYXNpYmxlIGF0IGEgbGFyZ2Ugc2NhbGUgd2hlbiB5b3UgbmVlZCB0byBpbnRlZ3JhdGUgSVAN Cj4+Pj4gYmxvYnMsIGJ1dCBpdCB3b3VsZCBhbHJlYWR5IGhlbHAgdG8gYnJlYWsgdGhlIGV4cGVj dGF0aW9uIHRoYXQgVUVGSSBQSSBpcyBhDQo+Pj4+IHBlcmZlY3RseSBmb3J3YXJkcy0gYW5kIGJh Y2t3YXJkcy1jb21wYXRpYmxlIHN5c3RlbS4gRFhFIGhhcyBTZXRNZW0gYW5kDQo+Pj4+IENvcHlN ZW0gYXMgcGFydCBvZiBnQlMuIE1heWJlIEkgZG9u4oCZdCBsaWtlIGl0IHRoYXQgbXVjaCBhcyBw YXJ0IG9mIHRoZSBzcGVjDQo+Pj4+IGl0c2VsZiwgYnV0IGl04oCZcyBhIGdvb2QgaWRlYSB0ZWNo bmljYWxseS4gSeKAmWQgcHJvYmFibHkgb3B0IHRvIGhhdmUgYSBxdWlja2x5DQo+Pj4+IGFjY2Vz c2libGUgaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIGltcG9ydGFudCBmdW5jdGlvbiBwb2ludGVy cyBhcHBlbmRlZCB0bw0KPj4+PiBQRUkgYW5kIERYRSBzZXJ2aWNlcywgdXNlZCBieSBpbi10cmVl IG1vZHVsZXMuIFRoaXMgbWF5IGJyZWFrIGJvdGgNCj4+Pj4gZm9yd2FyZHMtIGFuZCBiYWNrd2Fy ZHMtY29tcGF0aWJpbGl0eSwgYnV0IGFzIGl0IG9ubHkgYXBwbGllcyB0byBpbi10cmVlDQo+Pj4+ IG1vZHVsZXMsIHRoYXQgaXMgZmluZSBzbyBsb25nIGFzIHdlIGxldCBnbyBvZiB0aGUgY29tcGF0 aWJpbGl0eSBub3Rpb25zLiBQUElzDQo+Pj4+IGFuZCBwcm90b2NvbHMgYXJlIGFuIG9wdGlvbiB0 b28gb2YgY291cnNlLCBidXQgdGhleSBoYXZlIGEgbG9va3VwDQo+Pj4+IHBlcmZvcm1hbmNlIHBl bmFsdHkuIENvbXBhcmVkIHRvIGR5bmFtaWMgbGlua2luZywgdGhhdCBzaG91bGQgaG9wZWZ1bGx5 IGJlDQo+Pj4+IG5lZ2xpZ2libGUgaG93ZXZlci4NCj4+Pj4NCj4+Pj4gQWJzb2x1dGVseSBvcHRp b25hbCB0byByZWFkLCBJIGRvbuKAmXQgaW50ZW5kIHRvIHdhc3RlIGFueW9uZeKAmXMgdGltZSBt dWNoLA0KPj4+PiBzb21lIHBoaWxvc29waGljYWwgc3R1ZmYgYWJvdXQgbXkgcmF0aW9uYWxlOg0K Pj4+Pg0KPj4+PiBJZiB5b3Ugc3RhcnRlZCBVRUZJIGZyb20gc2NyYXRjaCByaWdodCBub3csIHdv dWxkIGl0IGhhdmUgc3RyaWN0bHkgc2VwYXJhdGVkDQo+Pj4+IFBFSSBhbmQgRFhFPw0KPj4+DQo+ Pj4gRm9yIHN1cmUgYSBjbGVhbiBzbGF0ZSBkZXNpZ24gc3RhcnRlZCB0b2RheSB3b3VsZCBsb29r IGEgbG90IGRpZmZlcmVudCB0aGFuIFBFSS9EWEUuLi4gd2hpY2ggd2FzIGEgY2xlYW4gc2xhdGUg ZGVzaWduIGNpcmNhIDE5OTgg8J+Yii4gSW4gbXkgb3BpbmlvbiwgaWYgd2Ugd2VyZSB0byBzdWRk ZW5seSBnbyBiYWNrIHRvIHRoZSBkcmF3aW5nIGJvYXJkIHdlIHdvdWxkIGJ1aWxkIHNvbWV0aGlu ZyB0aGF0IGlzIG11Y2ggY2xvc2VyIHRvIGEgZnVsbCBPUyBub3cgdGhhbiB3ZSBkaWQgYmFjayB0 aGVuLiBUaGVyZSBoYXZlIGJlZW4gY2FzZXMgd2hlcmUgbm90IGJlaW5nIGFibGUgdG8gdXNlIGlu dGVycnVwdCBoYW5kbGVycyBhbmQgbm90IGhhdmluZyB0aHJlYWQgc2NoZWR1bGluZyBoYXMgcHJl dmVudGVkIGltcGxlbWVudGF0aW9uIG9mIGRlc2lyZWQgZmVhdHVyZXMuIFRoZSBBUk0gZ3V5cyBi dWlsdCBMaXR0bGVLZXJuZWwgKGh0dHBzOi8vZ2l0aHViLmNvbS9saXR0bGVrZXJuZWwvbGspIGZv ciBhIGxvdCBvZiB0aGVzZSByZWFzb25zLiBJbiB0aGUgZGF0YSBjZW50ZXIgd29ybGQgc29tZSBo YXZlIGRlY2lkZWQgdG8gZ28gdG8gdGhlIGV4dHJlbWUgb2YgcHV0dGluZyBhbiBlbnRpcmUgY29w eSBvZiBMaW51eCBpbiBTUEkgc28gdGhleSBjYW4gZG8gYSBuZXR3b3JrIGJvb3QgdGhhdCBkb3du bG9hZHMgdGhlIE9TIGltYWdlIHVzaW5nIEJpdFRvcnJlbnQhDQo+Pj4NCj4+Pj4gVGhlIGR1cGxp Y2F0aW9uIGJldHdlZW4gUEVJIGFuZCBEWEUgY29yZSwgYW5kIGJ5IGV4dGVuc2lvbg0KPj4+PiBN TSBjb3JlLCB3b3VsZCBiZSBteSBtb3N0IG9idmlvdXMgcGxhY2UgdG8gc3RhcnQgcmVkdWNpbmcg c2l6ZS4gSSB3b3VsZA0KPj4+PiBwcm9iYWJseSBvcHQgZm9yIGEgUEVJL0RYRSBoeWJyaWQgd2hl cmUgaXQgc3RhcnRzIGluIOKAnm1pbmltYWwgbW9kZeKAnCAobWF5YmUNCj4+Pj4gdGhpbmsgb2Yg UEVJIG1vcmUgbGlrZSBhIG1pY3Jva2VybmVsIGhlcmUpIGFuZCBhZnRlciBtZW1vcnkgaXMgaW5p dGlhbGlzZWQsIHRoZQ0KPj4+PiByZXN0IG9mIERYRSBpcyBsb2FkZWQuIEFuZCBNTSBjb3JlIHdv dWxkIGdldCBubyBsb2FkaW5nIGF0IGFsbCwgdGhpcw0KPj4+PiByZXF1aXJlbWVudCBoYXMgZ2xh ZGx5IGJlZW4gZHJvcHBlZCBhZ2VzIGFnby4gSnVzdCBvbmUgcHJlbGlua2VkIHNuYXBzaG90DQo+ Pj4+IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHdpdGggYSByZWxvY2F0aW9uIHRhYmxlIGFuZCBhIHNh ZmUgc2VsZi1yZWxvY2F0b3Igb24gZW50cnkNCj4+Pj4gKHRoaXMgaXMgbmVlZGVkIGF0IHRoZSB2 ZXJ5IGxlYXN0IGZvciBBUk0pLg0KPj4+Pg0KPj4+PiBJcm9uaWNhbGx5LCB3aXRoIG15IGlkZWEg Zm9yIE1NLCBkeW5hbWljIGxvYWRpbmcgd291bGQgYmUgZnJlZSBhcyBldmVyeXRoaW5nDQo+Pj4+ IGlzIHByZWxpbmtlZCBhbnl3YXkuIFRoZSBzYW1lIGlzIHRydWUgZm9yIFBFSSBYSVAsIGl0IGlz IHByZWxpbmtlZCBieSBuYXR1cmUuDQo+Pj4NCj4+PiBBY3R1YWxseSBQb3N0LU1lbW9yeSBQRUkg Y2FuIGhhdmUgbm9uLXByZWxpbmtlZCBQRUlNcy4gQW5kIHRoYXQgZG9lcyBnZXQgdXNlZCBmb3Ig dGhlIFBFSSBHT1AgZHJpdmVyLg0KPj4+DQo+Pj4+IFdoYXQgSSBkbyBub3QgbGlrZSBpcyB0aGUg YWRkaXRpb25hbCBkeW5hbWljIGxpbmtpbmcgY29kZSBhdCBsb2FkLXRpbWUgZm9yIG5vbi0NCj4+ Pj4gWElQIG1vZHVsZXMuIFRob3VnaCwgdGhlIG1vcmUgSSB0aGluayBhYm91dCBpdCwgdGhlIG1v cmUgSSB3b25kZXIgd2hldGhlcg0KPj4+PiBub3QgdGhlIGVudGlyZXR5IG9mIFVFRkkgY291bGQg YmUgY29tcG9zZWQgb2YgcHJlbGlua2VkLCByZWxvY2F0YWJsZQ0KPj4+PiBtZW1vcnkgc25hcHNo b3RzIHdpdGhvdXQgdHJhZGl0aW9uYWwgaW1hZ2UgbG9hZGluZyBlbnRpcmVseSAoZm9yIGluLUZX DQo+Pj4+IHN0dWZmKS4gbWFjT1MgaGFzIGEgc2ltaWxhciBjb25jZXB0IHdpdGggaXRzIOKAnEtl cm5lbCBDb2xsZWN0aW9uc+KAnS4gV2VsbCwgd2F5DQo+Pj4+IHRvbyBtdWNoIG9mZi10b3BpYyBu b3cuIDopDQo+Pj4NCj4+PiBJZiB5b3UgbWFrZSB0aGUgYXNzdW1wdGlvbiB0aGF0IDEwMCUgb2Yg dGhlIGNvZGUgaXMgY29tcGlsZWQgYWxsIGF0IG9uY2UgdGhlbiB5ZXMgdGhhdCB3b3Jrcy4gVUVG SSB3YXMgZGVzaWduZWQgc28gdGhhdCBhc3N1bXB0aW9uIGRvZXMgbm90IG5lZWQgdG8gYmUgdHJ1 ZS4gVGhlcmUgYXJlIGdvb2QgdXNlIGNhc2VzIGZvciBpdDogT3BST01zLCBnZW5lcmljIE9TIGxv YWRlcnMsIG5ldHdvcmsgYm9vdCwgZXRjLg0KPj4+DQo+Pj4gVGhhbmtzLA0KPj4+IE5hdGUNCj4+ Pg0KPj4+Pg0KPj4+PiBXaHkgYW0gSSBleHBsYWluaW5nIGFsbCB0aGlzIGRlc3BpdGUgdGhlIGZh Y3QgZXZlcnlvbmUga25vd3MgdGhpcyB3aWxsIG5ldmVyDQo+Pj4+IGhhcHBlbj8gQmVjYXVzZSBJ IGRvbuKAmXQgbGlrZSB0aGUgbm90aW9uIG9mIGZpeGluZyBpc3N1ZXMgb2YgYW4gYWxyZWFkeQ0K Pj4+PiBvdmVyY29tcGxpY2F0ZWQgc3lzdGVtIGJ5IGFkZGluZyBldmVuIG1vcmUgY29tcGxpY2F0 ZWQgc3R1ZmYuIEVzcGVjaWFsbHkNCj4+Pj4gd2hlbiB0aGUgZXhpc3Rpbmcgb3ZlcmNvbXBsaWNh dGVkIHN0dWZmIGlzIGFscmVhZHkgdW5jb21mb3J0YWJseSBicm9rZW4uDQo+Pj4+DQo+Pj4+IEJl c3QgcmVnYXJkcywNCj4+Pj4gTWFydmluDQo+Pj4+DQo+Pj4+PiBGb3IgWElQIFBFSSBjb2Rl4oCm IGl0IHdpbGwgcmVhbGx5IGhlbHAgYW5kIHdvdWxkIGJlIHZlcnkgdGltZWx5IHNpbmNlIHRoZQ0K Pj4+PiB0cmFuc2l0aW9uIG9mIFBFSSBmcm9tIDMyLWJpdCB0byA2NC1iaXQgaXMgZ29pbmcgdG8g aW5jcmVhc2UgdGhlIHNpemUgb2YgUEVJIGJ5DQo+Pj4+IH4yMCUuDQo+Pj4+Pg0KPj4+Pj4gVGhh bmtzLA0KPj4+Pj4gTmF0ZQ0KPj4+Pj4NCj4+Pj4+IEZyb206IFBlZHJvIEZhbGNhdG8gPHBlZHJv LmZhbGNhdG9AZ21haWwuY29tPg0KPj4+Pj4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAxMywgMjAy MiAxMTo0MyBBTQ0KPj4+Pj4gVG86IGVkazItZGV2ZWwtZ3JvdXBzLWlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz47IE1hcnZpbiBIw6R1c2VyDQo+Pj4+PiA8bWhhZXVzZXJAcG9zdGVvLmRlPg0KPj4+ Pj4gQ2M6IGRpc2N1c3NAZWRrMi5ncm91cHMuaW87IGFkYWNocmlzdGluZTE4QGdtYWlsLmNvbTsg RGVzaW1vbmUsDQo+Pj4+PiBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwu Y29tPjsgU2hpLCBTdGV2ZW4NCj4+Pj4+IDxzdGV2ZW4uc2hpQGludGVsLmNvbT4NCj4+Pj4+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItZGlzY3Vzc10gR1NvQyBQcm9wb3NhbA0KPj4+ Pj4NCj4+Pj4+IEhpIE1hcnZpbiwgQWRhLA0KPj4+Pj4NCj4+Pj4+IFNvbWUgY29tbWVudHM6DQo+ Pj4+Pg0KPj4+Pj4gSSBkb24ndCB0aGluayB0aGUgcHVycG9zZSBvZiB0aGUgZHluYW1pYyBsaW5r ZXIgaXMgdG8gdHJlYXQgRUZJIGFzIGENCj4+Pj4+IGNvbXBsZXRlIG9wZXJhdGluZyBzeXN0ZW0s IGJ1dCB0byB0cnkgdG8gZWxpbWluYXRlIHRoZSBzdGF0aWMgbGlua2luZw0KPj4+Pj4gdGhhdCBt YXkgYmUgbmVlZGxlc3NseSBkdXBsaWNhdGluZyBjb2RlIHRoYXQgY291bGQgaW5zdGVhZCBiZSBw dXQgaW4gYQ0KPj4+PiBzaW5nbGUgZHluYW1pYyBsaWJyYXJ5LiBGb3IgaW5zdGFuY2UsIE1kZVBr ZyBhbmQgTWRlTW9kdWxlUGtnIGFyZSBsaW5rZWQNCj4+Pj4gaW50byBhICpsb3QqIG9mIC5lZmks IGluc3RlYWQgb2YgYmVpbmcganVzdCBhIGxpYnJhcnkuIEl0J2QgYmUgbmljZSB0byBzZWUgc29t ZQ0KPj4+PiBudW1iZXJzIG9uIHRoaXMgKHNvbWV0aGluZyBsaWtlIEdvb2dsZSdzIGJsb2F0eSBj b3VsZCBiZSBydW4gb24gZXZlcnkgLmVmaQ0KPj4+PiBmaWxlLCBpbiBvcmRlciB0byB1bmRlcnN0 YW5kIGhvdyBtdWNoIGZpbGUgc3BhY2Ugd2Ugd291bGQgYWN0dWFsbHkgc2F2ZSkuDQo+Pj4+Pg0K Pj4+Pj4gT3RoZXIgY29tbWVudHMgaW5saW5lLg0KPj4+Pj4NCj4+Pj4+IE9uIFdlZCwgQXByIDEz LCAyMDIyIGF0IDQ6MTUgUE0gTWFydmluIEjDpHVzZXINCj4+Pj4gPG1oYWV1c2VyQHBvc3Rlby5k ZTxtYWlsdG86bWhhZXVzZXJAcG9zdGVvLmRlPj4gd3JvdGU6DQo+Pj4+Pg0KPj4+Pj4gT24gMTMu IEFwciAyMDIyLCBhdCAxNjozOCwgQWRhIENocmlzdGluZQ0KPj4+PiA8YWRhY2hyaXN0aW5lMThA Z21haWwuY29tPG1haWx0bzphZGFjaHJpc3RpbmUxOEBnbWFpbC5jb20+PiB3cm90ZToNCj4+Pj4+ IGkgd2FzIHJlcGx5aW5nIHZpYSB0aGUgZ3JvdXBzLmlvPGh0dHA6Ly9ncm91cHMuaW8gPiB3ZWIg aW50ZXJmYWNlLCBJJ20NCj4+Pj4+IGd1ZXNzaW5nIHRoYXQgbWVzc2VkIHVwIHRoZSB0aHJlYWQ/ IGkgaGF2ZW4ndCB1c2VkIG1haWxpbmcgbGlzdHMNCj4+Pj4+IGJlZm9yZSBhbmQgZG9uJ3Qga25v dyBob3cgdGhleSB3b3JrLiBJJ2xsIHVzZSBteSBtYWlsIGNsaWVudCBmcm9tIGhlcmUgb24uDQo+ Pj4+Pg0KPj4+Pj4gSSdtIG9uIGJvYXJkIHdpdGggbm90IHRyZWF0aW5nIEVGSSBhcyBhbiBvcGVy YXRpbmcgc3lzdGVtLiB0aGUgbW9yZSBpDQo+Pj4+PiB0aGluayBhYm91dCBpdCB0aGUgbW9yZSBp dCBsb29rcyBsaWtlIHNjb3BlIGNyZWVwLg0KPj4+Pj4NCj4+Pj4+IEFncmVlZC4NCj4+Pj4+DQo+ Pj4+Pg0KPj4+Pj4gSSdtIG5vdCBxdWl0ZSBhcyBlbnRodXNpYXN0aWMNCj4+Pj4+IGFib3V0IGl0 IGFzIGkgd2FzIGF0IGZpcnN0IGdsYW5jZS4NCj4+Pj4+DQo+Pj4+PiBJJ20gc3RpbGwga2VlbiBv biBkb2luZyBteSBnc29jIHByb3Bvc2FsIGZvciBlZGssIHRob3VnaCwgYW5kIGV2ZW4gaWYNCj4+ Pj4+IHRoaXMgdGFzayBhbmQgdGhlIGFjcGljYSBhcHBsaWNhdGlvbiBhcmUgZGVjaWRlZCB0byBi ZSBvdXQgb2Ygc2NvcGUNCj4+Pj4+IHVuaXQgdGVzdGluZywNCj4+Pj4+DQo+Pj4+PiBIb3cgYWJv dXQgZnV6ei10ZXN0aW5nPyBUaGlzIGlzIGFsc28gc29tZXRoaW5nIGVkazIgbmVlZHMgcXVpdGUg YmFkbHkuIEF0DQo+Pj4+IEFjaWRhbnRoZXJhLCB3ZSBjb21waWxlIGVkazIgY29kZSBpbiB1c2Vy c3BhY2Ugb3V0c2lkZSB0aGUgZWRrMiBidWlsZA0KPj4+PiBzeXN0ZW0gYW5kIGZ1enogd2l0aCBk dW1teSBhcHBsaWNhdGlvbnMuDQo+Pj4+Pg0KPj4+Pj4gTm90ZTogZnV6emluZyBpcyBhbHNvIHBh cnQgb2YgdGhlIExMVk0gaW5zdHJ1bWVudGF0aW9uIHN1aXRlIChzZWUNCj4+Pj4gaHR0cHM6Ly9s bHZtLm9yZy9kb2NzL0xpYkZ1enplci5odG1sICkgYW5kIGlzIHNvbWV0aGluZyBJIGNvdWxkIGhh cHBpbHkNCj4+Pj4gbWVudG9yLg0KPj4+Pj4gY2xhbmcgaW50ZWdyYXRpb24NCj4+Pj4+DQo+Pj4+ PiBQZWRybyBhbmQgVml0YWx5IGFyZSBsb29raW5nIGZvciBzb21lb25lIHRvIGZpbmlzaCBBU2Fu Og0KPj4+Pj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3RvcGljLzkwMDEwOTc4Izg3 OTkxDQo+Pj4+PiBUaGVyZSBhcmUgd29ya2luZyBVQlNhbiBjb25jZXB0cywgYnV0IHRoZXkgYWxz byBuZWVkIHRvIGJlIG1haW5saW5lZC4NCj4+Pj4+DQo+Pj4+PiBJcyBWaXRhbHkgZ29pbmcgdG8g YmUgYSBtZW50b3I/IEkgd2FzIGFzc3VtaW5nIGl0IHdhcyBnb2luZyB0byBiZSBtZSBhbmQNCj4+ Pj4gc29tZSBvdGhlciwgbW9yZSBzZW5pb3IsIG1lbnRvciAocG9zc2libHkgU3RldmVuIFNoaSwg d2hpY2ggSSBpbmNsdWRlZCBpbg0KPj4+PiB0aGUgdGFzaykuDQo+Pj4+PiBBbnl3YXksIHJlOiBB U0FOLCBpZiB0aGUgcHJvamVjdCBpbmNsdWRlcyBBU0FOLCBVQlNBTiBhbmQgcG9zc2libHkNCj4+ Pj4+IHNvbWUgb3RoZXIgc2FuaXRpemVyIGl0J3MgcXVpdGUgcG9zc2libGUgdGhhdCBpdCBjb3Vs ZCBiZSBjb25zaWRlcmVkIGEgbGFyZ2UNCj4+Pj4gcHJvamVjdCAod2hpY2ggbWVhbnMgbW9yZSBo b3VycyBidXQgYSBsYXJnZXIgc3RpcGVuZCB0b28pLiBGdXp6aW5nICsNCj4+Pj4gY292ZXJhZ2Ug Y291bGQgYmUgdmVyeSBuaWNlIGFkZGl0aW9ucyB0byB0aGlzIHByb2plY3QgaWRlYS4NCj4+Pj4+ IEFsc28sIGlzIHN0cmVzcy10ZXN0aW5nIGEgZGVjZW50IGlkZWE/DQo+Pj4+Pg0KPj4+Pj4NCj4+ Pj4+IGFuZCBzb3VyY2UtbGV2ZWwgZGVidWdnaW5nIGFyZSBhbGwgcmVsZXZhbnQgdG8gbXkgaW50 ZXJlc3RzLg0KPj4+Pj4NCj4+Pj4+IGhvdyBhYm91dCB5b3VyIGlkZWFzIGZvciBzZWN1cml0eSBz dHVmZj8NCj4+Pj4+DQo+Pj4+PiBJIHdhbnQgdGhlIGVudGlyZXR5IG9mIE1NIHRvIGxldmVyYWdl IFNtbU1lbUxpYiBhbmQgdG8gc3VwcG9ydCBTTUFQLg0KPj4+PiBTbW1NZW1MaWIgd291bGQgdGhl biBoYW5kbGUgVUVGSS0+TU1SQU0gYW5kIEJhc2VNZW1vcnlMaWIgd291bGQNCj4+Pj4gb25seSB3 b3JrIG9uIE1NUkFNLiBBbHNvIGV2YWx1YXRpb24gb2YgaG93IHRvIGJlc3QgYXZvaWQgcG9pbnRl cnMgaW4gTU0NCj4+Pj4gY29tbXVuaWNhdGlvbiBidWZmZXJzIHdvdWxkIGJlIG5pY2UuDQo+Pj4+ Pg0KPj4+Pj4gVGhlcmUgYWxzbyBpcyBhIGJ1bmNoIG9mIG90aGVyIHN0dWZmLCBsaWtlIHdvcmtp bmcgb3V0IG1vdmluZyBhIHBhcnQgb2YNCj4+Pj4gQ3B1RHhlIGludG8gRHhlQ29yZSB0byBoYXZl IG1lbW9yeSBwcm90ZWN0aW9uIGxpdmUgaW1tZWRpYXRlbHksIG1lbW9yeQ0KPj4+PiBwcm90ZWN0 aW9uIGluIFBFSSwgYSByZXBsYWNlbWVudCBmb3IgdGhlIFRFIGZvcm1hdCAoaXTigJlzIGJ1Z2d5 IGFuZCBtb3N0DQo+Pj4+IHBsYXRmb3JtcyBtb3N0bHkgYWJhbmRvbmVkIGl0IG92ZXIgdmFyaW91 cyBpc3N1ZXMpLCBhbmQgYWx0ZXJuYXRpdmVzIHRvDQo+Pj4+IGd1YXJkaW5nIGNyaXRpY2FsIGNv ZGUgd2l0aCBTTU0gKGxpa2UgYWxsb3dpbmcgTlZSQU0gY29tbWl0cyBvbmx5IGFzIHBhcnQNCj4+ Pj4gb2YgYSByZWJvb3QpLg0KPj4+Pj4NCj4+Pj4+IEkgcGVyc29uYWxseSBmaW5kIGFsbCBvZiB0 aG9zZSBwcm9qZWN0cyB2ZXJ5IGltcG9ydGFudCwgYnV0IEkgY2Fubm90DQo+Pj4+PiBwcm9taXNl IG1hbnkgcGVvcGxlIGFncmVlLiBFc3BlY2lhbGx5IHRob3NlIHRoYXQgaW1wb3NlIGdsb2JhbCBj aGFuZ2VzDQo+Pj4+PiAobW9zdCBub3RhYmx5IHRoZSBURSByZXBsYWNlbWVudCkgbWF5IGJlIHZl cnkgdGVkaW91cyB0byBzdWJtaXQuDQo+Pj4+PiBHbGFkbHksIEkgYmVsaWV2ZSB5b3UgY2FuIHN1 Ym1pdCBtdWx0aXBsZSBwcm9wb3NhbHMgKD8pDQo+Pj4+Pg0KPj4+Pj4gQmVzdCByZWdhcmRzLA0K Pj4+Pj4gTWFydmluDQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+IEknbSBub3QgdmVyeSBrbm93bGVkZ2Vh YmxlIGFib3V0DQo+Pj4+PiB0cnVzdGVkIHBsYXRmb3JtIG9yIHNlY3VyZSBib290IGJ1dCBJJ20g d2lsbGluZyB0byBsZWFybiB3aGF0ZXZlciBpcw0KPj4+Pj4gbmVjZXNzYXJ5IHRvIGdldCBzb21l dGhpbmcgc3B1biB1cCBmb3IgbXkgcHJvcG9zYWwuDQo+Pj4+Pg0KPj4+Pj4gT24gV2VkLCBBcHIg MTMsIDIwMjIsIDEyOjA1IE1hcnZpbiBIw6R1c2VyDQo+Pj4+IDxtaGFldXNlckBwb3N0ZW8uZGU8 bWFpbHRvOm1oYWV1c2VyQHBvc3Rlby5kZT4+IHdyb3RlOg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+PiBE byB5b3UgdXNlIHRoZSDigJxyZXBseSBhbGzigJ0gb3B0aW9uIGluIHlvdXIgbWFpbCBjbGllbnQ/ IExvb2tzIGxpa2UgbXkNCj4+Pj4+IENDcyBoYXZlIGJlZW4gZHJvcHBlZCBhZ2Fpbi4gQ29tbWVu dHMgaW5saW5lLg0KPj4+Pj4NCj4+Pj4+IE9uIDEzLiBBcHIgMjAyMiwgYXQgMTI6NTQsIEFkYSBD aHJpc3RpbmUNCj4+Pj4+IDxhZGFjaHJpc3RpbmUxOEBnbWFpbC5jb208bWFpbHRvOmFkYWNocmlz dGluZTE4QGdtYWlsLmNvbT4+DQo+Pj4+PiB3cm90ZToNCj4+Pj4+IEhpLCBNYXJ2aW4NCj4+Pj4+ DQo+Pj4+PiBJdHMgc2ltaWxhcml0eSB0byBteSBvd24gbGF0ZXN0IGV4cGVyaW1lbnQgaXMgdGhl IGtleSB0byB3aGF0IGdyYWJiZWQNCj4+Pj4+IG15IGF0dGVudGlvbi4gSSBoYXZlIG5vIHBhcnRp Y3VsYXIgdXNlIGNhc2UgaW4gbWluZCBmb3IgaXQsIGJ1dCBJIHNlZQ0KPj4+Pj4gaXRzIHBvdGVu dGlhbCBmb3IgYW55Ym9keSBkZXZlbG9waW5nIGxhcmdlciBhcHBsaWNhdGlvbnMgaW4gdGhhdCB3 aGVuDQo+Pj4+PiBhIGxpYnJhcnkgaXMgY2hhbmdlZCB0aGVyZSdzIG5vIG5lZWQgdG8gZGlzdHJp YnV0ZSBhIG5ldyB2ZXJzaW9uIG9mDQo+Pj4+PiB0aGUgd2hvbGUgYmluYXJ5LCBqdXN0IHRoZSBy ZWxldmFudCBsaWJyYXJ5IG1vZHVsZS4NCj4+Pj4+DQo+Pj4+PiBJIHJlYWxseSBkbyBub3QgbGlr ZSB0aGUgdHJlbmQgb2YgdHJlYXRpbmcgVUVGSSBhcyBhIGZ1bGwtZmxlZGdlZCBPUyAtDQo+Pj4+ PiBpdCBpcyBub3QuIFRoZSBtb3N0IHVzZWQgVUVGSSBhcHBsaWNhdGlvbnMsIE9TIGxvYWRlcnMs IGFyZSByZWFsbHkgbm90DQo+Pj4+PiB0aGF0IGh1Z2UgYW5kIGFyZSBkaXN0cmlidXRlZCBhcyBw YXJ0IG9mIHRoZSBPUyBpbWFnZSBhbnl3YXkuIEV2ZW4gZm9yDQo+Pj4+PiBsZXNzIHVzZWQgYXBw bGljYXRpb25zLCB5b3Ugd2lsbCBhbHdheXMgZ2V0IGEgZnVsbCBzbmFwc2hvdCBhbnlob3cuDQo+ Pj4+PiBHbGFkbHkgd2UgZG9u4oCZdCBoYXZlIGF1dG8tdXBkYXRlIGFuZCBwYWNrYWdlIG1hbmFn ZW1lbnQgeWV0LiA6KQ0KPj4+Pj4NCj4+Pj4+DQo+Pj4+PiBJIHNsZXB0IG9uIGl0IGFuZCBpdCBv Y2N1cnJlZCB0byBtZSB0aGF0IHRoZSB3aG9sZSB0aGluZyBjb3VsZCBvcGVyYXRlDQo+Pj4+PiBz aW1pbGFybHkgdG8gdGhlIHNoZWxsIHByb3RvY29sIGluIHRoYXQgdGhlIGxpbmtlci9sb2FkZXIg aXMgaXRzZWxmIGFuDQo+Pj4+PiBhcHBsaWNhdGlvbiB0aGF0IGRvZXMgYSBMb2FkSW1hZ2UoKSBv biB0aGUgYXBwbGljYXRpb24gbmVlZGluZyBkeW5hbWljDQo+Pj4+PiBsaW5raW5nIGZhY2lsaXRp ZXMuDQo+Pj4+Pg0KPj4+Pj4gVGhhdCB3b3VsZCBtZWFuIHRoZSBsaW5rZXIgaXRzZWxmIGlzIHNo aXBwZWQgd2l0aCBldmVyeSBhcHBsaWNhdGlvbg0KPj4+Pj4gdGhhdCByZXF1aXJlcyBpdD8gT3Ro ZXJ3aXNlIGl0IGRvZXNu4oCZdCBtYWtlIG11Y2ggc2Vuc2UgZm9yIGl0IHRvIGJlIGFuDQo+Pj4+ PiBhcHAgYW5kIGJlbG934oCZcyBwcm9ibGVtcyBhcHBseS4NCj4+Pj4+DQo+Pj4+PiBJZiBob3dl dmVyIHRoZSB3aG9sZSBwbGFuIGlzIG1ha2luZyB0aGUgbGlua2VyIGFzIGEgRFhFIGFuZCBpbmNs dWRpbmcNCj4+Pj4+IGl0IHdpdGggdGhlIGZpcm13YXJlLCB0aGF0IEknbSBub3QgcXVpdGUgYXMg c3VyZSBhYm91dC4gVGhhdCB3b3VsZA0KPj4+Pj4gbmVjZXNzYXJpbHkgdGllIGFueSBhcHBsaWNh dGlvbnMgdXNpbmcgZHluYW1pYyBsaW5raW5nIHRvIFRpYW5vQ29yZSBvcg0KPj4+Pj4gYW55IGZp cm13YXJlIGRpc3RyaWJ1dGlvbiB0aGF0IGRlcml2ZXMgZnJvbSBpdC4NCj4+Pj4+DQo+Pj4+PiBJ IHRoaW5rIHRoYXQgd2FzIHRoZSBpZGVhIHJlZmVycmVkIHRvIGFzIOKAnGVkazIgY29yZeKAnSBi eSBTdGV2ZW4sIGJ1dA0KPj4+Pj4gSeKAmWQgbGlrZSB0byBoZWFyIGhpcyBwcm9wb3NhbCB0byBi ZSBzdXJlLiBWaXJ0dWFsbHkgZXZlcnlvbmUgdXNlcw0KPj4+Pj4gZWRrMiwgc28gdGhhdCBpdHNl bGYgaXMgbm90IHRoZSBwcm9ibGVtLCBidXQgdmVyc2lvbmluZyBpcy4gVmVuZG9ycw0KPj4+Pj4g YXJlIHNsb3cgdG8gdXBkYXRlIHRoZWlyIHNuYXBzaG90cyBvciBoYXZlIGp1c3QgZ2l2ZW4gdXAg ZG9pbmcgdGhhdA0KPj4+Pj4gZW50aXJlbHkuIERpc3RyaWJ1dGluZyBpdCBmb3IgZXh0ZXJuYWwg YXBwbGljYXRpb25zIGxpa2UgT1MgbG9hZGVycw0KPj4+Pj4gd291bGQgbWVhbiB0aGlzIGNhbiBi ZSBsZXZlcmFnZWQgcHJvYmFibHkgbm8gZWFybGllciB0aGFuIDEwIHllYXJzDQo+Pj4+PiBmcm9t IG5vdy4gQW5kIGZvciBpbi1maXJtd2FyZSB0aGluZ3MsIEkgaGF2ZSBhIGhhcmQgdGltZSB0aGlu a2luZyBhYm91dCBhDQo+Pj4+IHVzZS1jYXNlIHRoYXQgb3V0d2VpZ2hzIHRoZSBkcmF3YmFja3Mu DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+IFRvIHNoaWZ0IHRoZSB0b3BpYyBzbGlnaHRseSBiYWNrIHRv IEdTb0MsIGhvd2V2ZXIsIEknbSB3aWxsaW5nIHRvIHdvcmsNCj4+Pj4+IG9uIG90aGVyIGl0ZW1z IG9uIHRoZSB0YXNrIGxpc3QuIFVuaXQgdGVzdGluZyBhbmQgYW4gQUNQSUNBDQo+Pj4+PiBhcHBs aWNhdGlvbiBhcmUgdGhlIGFsdGVybmF0aXZlIHByb2plY3RzIEkgaGFkIHRob3VnaHQgYWJvdXQu IEkgbmVlZA0KPj4+Pj4gdG8gY2hvb3NlIGZhaXJseSBzb29uIGFzIHRoZSBwcm9wb3NhbCBkZWFk bGluZSBpcyBuZXh0IFR1ZXNkYXkuIEkga25vdw0KPj4+Pj4gYSB0aW55IGJpdCBhYm91dCBwb3J0 aW5nIEFDUElDQSBhcyBJIGFsc28gaGF2ZSBwbGFucyB0byBpbmNvcnBvcmF0ZSBpdCBpbnRvIG15 DQo+Pj4+IG93biBwcm9qZWN0Lg0KPj4+Pj4NCj4+Pj4+IEkgaGF2ZSBhIGZldyBtb3JlIGlkZWFz IGZvciBzZWN1cml0eSBzdHVmZiwgYnV0IE5hdGUgZGlkIG5vdCBjb25maXJtDQo+Pj4+PiB0aGVt IGFzIGFwcHJvcHJpYXRlIHlldCBhbmQgSeKAmW0gbm90IGhlcmUgdG8gZHJpdmUgeW91IGF3YXkg ZnJvbSB0aGlzDQo+Pj4+PiBzcGVjaWZpYyB0YXNrIChvciB0aGUgb3RoZXJzKS4gSG93ZXZlciwg SeKAmW0gc3RpbGwgY3VyaW91cyBhbmQNCj4+Pj4+IGNvbmNlcm5lZC4gOikNCj4+Pj4+DQo+Pj4+ PiBCZXN0IHJlZ2FyZHMsDQo+Pj4+PiBNYXJ2aW4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+ DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gLS0NCj4+Pj4+IFBlZHJvIEZhbGNh dG8NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+Pg0K Pj4+Pg0KPj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4NCj4+DQo+IA0KPiAN Cj4gDQo+IA0KPiANCj4gDQoNCg==