From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id Op1QALYNqWb1oDYAWB0awg (envelope-from ) for ; Tue, 30 Jul 2024 11:58:46 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=lists.lttng.org header.i=@lists.lttng.org header.a=rsa-sha256 header.s=default header.b=u19yr2Sq; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id EC6161E0D0; Tue, 30 Jul 2024 11:58:45 -0400 (EDT) Received: from lists.lttng.org (lists.lttng.org [167.114.26.123]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id DE0051E030 for ; Tue, 30 Jul 2024 11:58:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lists.lttng.org; s=default; t=1722355123; bh=R7kLPGPsblntcZ4NkFiX4GB2NKV5Ts480KO2iTInROA=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=u19yr2SqPKk+ukvjG/buoM7SGC2Sc4xdU7ye2CWq2YrsVdz17yj9QmgBw7CzKBgP7 QPRLoeOiTkuBjls9hpZQKuQENxRFJVYAJ/UJEkWtZg641IYL3nsDFGAxZYJwHpAEZE er3xQD8g2HaPJYu6zD7r9hbd+TpM/p/gAbMRYF5JiE+XvbritZX6GITcddR3KGuc/T aEYTY7DxzR5heTaHztPvSmA3+tMcbIpkNYek+HyKNm4O4K4C/3y+oEqr/VRUdJfg12 MO0VaTl2qpnHeBNcdt3gVlUJC2MY6SYp2qO1p54h469GYY/ocsR2YzRMYbpBnUXDQ+ 5nkcLkE8o9wpw== Received: from lists-lttng01.efficios.com (localhost [IPv6:::1]) by lists.lttng.org (Postfix) with ESMTP id 4WYKdv1Jxdz14wT; Tue, 30 Jul 2024 11:58:43 -0400 (EDT) Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020117.outbound.protection.outlook.com [52.101.191.117]) by lists.lttng.org (Postfix) with ESMTPS id 4WYKds6kprz159P for ; Tue, 30 Jul 2024 11:58:41 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e9xIS0ZowsNhUCoCvdQXhQ7XZa1eCorgnl0UwzT21L+zTRNA/h63Zzed/aNl4CRHC9L07Dj3Fckkcj/OMASDBJ+BvTJkmX7Q1XxdbAhlA5eHFEZWnx6k+EqCwcAPAOLhRrC+48Zzf5H8VXuIZlKmHwxInkKdXYV/zhN9LaB7Y6q9LM8le7sRqfpZOmu6FLPneOpTxtfVdjk+F0GPboaICRJkh3+GvFnfc5hCek2NumZLvqa4wJbXqtF3h+OYsJ+PWcFoFNa+9Lo9jbfE5JDeT2xXJWNd5n3yx9s7TcpUvCfhvEud8UZGGoaWMwoHtH32X/CbnnjpZb7v5KkAhAqZDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=SATtrgp0mZHyHJKbGdE3GjA5G9We3fbiS2qlP3L0Bfk=; b=nXeobFjAHyNO90ecjSQ8Ul2/wA9ft9VvJeMZM2WZpfa9wl81b7vr14/3y/xiiwkuFdcJpEIN2eL8+auF3UHvcmTvQnkqn431bqc/p3WmiqV2T74CQl+6NbMOhq/umSQd4Hrjjc4wtqJ5ujrTorPpLfmJlY72j6XPVYNjL0jFG/7/G8HR941zS3WDkIKB7fWfke8GPVlJ389mLILqWn0NJJrGSyGU9Zhxmbw8c4WxyRT8rpof8T2UCpjGreHqwhhsdI+TsmOdU2UBsQ6JiihgIZ6/Y1/YbBFbqOL1POC+sw1AVEURXq4bGv/GGegMkfEuYAovGfMgyFYuLeJwTARQJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none Received: from YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:e8::14) by YT3PR01MB6487.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:72::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.19; Tue, 30 Jul 2024 15:58:39 +0000 Received: from YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM ([fe80::e27c:c1e2:e6e:9256]) by YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM ([fe80::e27c:c1e2:e6e:9256%5]) with mapi id 15.20.7828.016; Tue, 30 Jul 2024 15:58:39 +0000 Message-ID: <5471fd8d-060a-416f-81ff-914818aa72c3@efficios.com> Date: Tue, 30 Jul 2024 11:58:37 -0400 User-Agent: Mozilla Thunderbird To: Brian Hutchinson Cc: lttng-dev@lists.lttng.org, yocto@lists.yoctoproject.org References: <33527830-3bf3-4bc3-a53d-55eaefb74902@efficios.com> <09087915-9e15-4485-b3d3-f48b245690ec@efficios.com> <85e9d8f5-572e-4d3b-87f7-5ad7d21dfb3f@efficios.com> Content-Language: en-US In-Reply-To: X-ClientProxiedBy: YQBPR0101CA0303.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6d::14) To YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:e8::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT4PR01MB10341:EE_|YT3PR01MB6487:EE_ X-MS-Office365-Filtering-Correlation-Id: b3c27648-982e-47c2-7c26-08dcb0b07a32 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eDFmYVhSLzZ3MHZMMmU0UGVhTmEyTjk3M01Uei9MY1FCVVRlN2ZLOStGNHBt?= =?utf-8?B?S2sxaUdkQ0cydEtIcU5oQjV4RlYyMG16TG5MY3VBOFpDNklWb0htSTQzVCts?= =?utf-8?B?Z0E2VGJQWFdOS0tDc1dETVQyeUd2Z1hkR0o5VE5Kd2k2c2tieGJnVTZidnVw?= =?utf-8?B?bzM0bU9QNFlHOTRuazYxWGVnQzB4dHQ2VSswR285REdSa3FUeFFCWjF2aW5r?= =?utf-8?B?U1RPcXRpQXI1WkpDNjZCcFNaQlg1amFJVEgxbS9RYzc0MkNqQkhjNE9PSS9N?= =?utf-8?B?K0tid1ZsTHlyZVJKRG5mbWtiYzhNYk5mSmRodm5WbHNNWnIrMi9UV0VLVmg0?= =?utf-8?B?dGVMcHZUV0FkUGNUSW5jTFI3RVhyVlF0dGY5NC9pdXQzMGJReUhiOEhHQ203?= =?utf-8?B?bU84N0YvZzhkazZpMTVYZDhaVEkrVk9KdjYvd0haUmRJdUU3VUJhZ0dzMklH?= =?utf-8?B?Z1kzdEwyODV0WTUyWVhzbW1jd3ZoU0lnOENZcllBckNxWlVIRlVvTklFVTF6?= =?utf-8?B?Q2l5TTh0QTkxNWNOTHhXajAwTkJvN1R3Z2FRNDY2cG5neFVhVXRqNmtKNFgy?= =?utf-8?B?SkJRN3JnWENjTVAvNUY4a3QrVkxmQ2NIWllMZ3ZGQzB2YXg4cjZhb01UdWs5?= =?utf-8?B?QVB4VGlWb28rcnUvQ1h3OVhoQWpWU2RBc04xVmVuZEN3NTRIVW9rbFFNekEw?= =?utf-8?B?c0h5NXlPWHFKSUJ2RjNxUzNBMjlZY2hPUDFrQWF4RzduMFJTWHBnRGF5SGVk?= =?utf-8?B?dzFoTFl6blJNMHN6cExsU2x6aUpyakMwS2dBdlFyNzFnSkZjSkFJOVBvaENu?= =?utf-8?B?UG16UytBTjZpK0RoYlZSRy8wWUJZS0ZPZTFvK0ROVzErOHhvNGxCdWRnYzAv?= =?utf-8?B?QzlHUGsrZFRGRy9CSGJmR1BkWHM0RHFrZUZsYkpTdExXc2NQOFZhcTV3dCtl?= =?utf-8?B?dTVkd3l3VUsvcWVGWkkxbUxvdGsrdTIxOU0zQ2VMalM3NU9qd0dSZVZlUzFF?= =?utf-8?B?TnJBMGVCTGxBZ2xlMm94RzZpRCt1YTJrdlRPdlNYVTZNMzRxVVgxc0hoQVlJ?= =?utf-8?B?ZGkrWkN0NjEvRm0vMHorLy9yU1NJazV3V0hWWEtDbE85c1ppWnhMOFVzUE9a?= =?utf-8?B?ZW5ncDdMNTluWE1lMjV6d1hFdStlQkpIVmJNaHZMNFltdVkxSmt6SS9BK0NW?= =?utf-8?B?VWU1RzZEeGJwanhtMWNtSXZvTXlCLzJZdGJXR0VqaTRUc1p3dVM2ZjJ1dy9y?= =?utf-8?B?SFA4WnFXaDFhU2pmYlZzOHEwa3pGY3FWeWlZU05MRXFqVUhxRWpFTVV2WW4z?= =?utf-8?B?RVhUU2V2dFl1eGs5aEZSV1hNR2gzYUhXRTVyanhvQW44eTNreTA4QTV3TXNN?= =?utf-8?B?ODdxQ2Q1ZDYyS3AxK0dwY0poamFWUWxGTUpTbjF3U1V3MkMyT0tnSjFnajdX?= =?utf-8?B?RjVaMGxpNG5oOUNuaGZsQXg5Y3U2L0ZZNzh0bjNJT2dYRU94T3ora0txOCtI?= =?utf-8?B?S013YnBmUEV1cWtMNGpTbVRDclhFSHFRNVowcXVRTjkyZlpYK201K0Z0ajc4?= =?utf-8?B?SXowRHN6MkNiaDFVbUJGZ1F3Ky9FWGFUREE0ZnRGNVBlcmxLNENSODJVanlV?= =?utf-8?B?U0FVRjE3aTN4SlRyczZMeWVRYy9PTnE1aWJ4Z3RhWmYvcEpHWGJqdXlTRzV2?= =?utf-8?B?djYvTFo5UnN6KzFkRWJQSlZaOGwwSklleEpOcGR2dnRJbkFUdFZuK29pUEdW?= =?utf-8?Q?2Jm+nbdoljJIIsaPD4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkRzQ3RabzJhc0hlZThaU21pZENoQTlqRWJXdWZaeTJUSk1aRlF6VnBTcHIy?= =?utf-8?B?aWduQUwyN2VFd3hSN3cyZGRSTUd3RlFra2EzVWNiYkVBS1VxT1FnemdycE8z?= =?utf-8?B?ajhnVGNhVU9id2tVdUhRbjJBVllBaEpodGFETnFxWUVLNS90eHFLRnhEUXpq?= =?utf-8?B?OHREY3kyZWJOTU9lelVxeTkyUzh0cTNldktzVmM0a2RvN2VBSVlPdmtyeHRO?= =?utf-8?B?anRxTXlKWjkwTmV5V3gyK0h4bVozWWR4ZnFRaEdoM0NOeVdyUUlTQktET1J5?= =?utf-8?B?RUw4VTV1eWFvTGFnN015RnFmZzFkUU5uWGw2MmtiWEQzc2JsYUVXbDBSbnN2?= =?utf-8?B?QTNBYzcveGJ0c3BtRnRYSVpvUjNyRlFQZHdVeHpzMlZTdGJtSS82dUlWa0Ri?= =?utf-8?B?SDZYTDZtNW4vdndMT3ZwdVdWUkF1SkRZa0RmUW1IVnhjazQ3VTB5RjlkdEVw?= =?utf-8?B?RlcyWlgzK2I0c3UvNXpEWDNWOFlhdlZMZEdIZXkzTGh2Z1VSck1zMUVzbGFy?= =?utf-8?B?Mm5JbDZuVllHeE1LZVErMUhnWDZkaDVRU0J1OTlBelNoT0JZN0Rza3F0MGFR?= =?utf-8?B?ajlGZCs4d1N5VjVGM0QvUEFXVjVRRWpwNjZWdVNMS09kSEZ4Y1RpZHIvNXky?= =?utf-8?B?R1JiK045OTNLNlRSWkdNaVdJbjdtNXYvWUR1VjlWNVozcnNVKytEb1RUdW14?= =?utf-8?B?N1JWdE5jcWc2cHJyZUE2L0VlZ3JpV0ZGbnFnOEU0b0R4NHVpR3pQYVByYjZS?= =?utf-8?B?dHowWTBJRkFFZGc0YjJRWjQ1R05CejN1ZXk5c1p5allwSUdjUDQ4bU5tbE1F?= =?utf-8?B?OFYyaGh4eDBHNDhqU0pRa2JyeENxMFF3bWhDcUFzSkQ3Z3N0dEpjMXI0ZU9p?= =?utf-8?B?S3FzcFAzekwzN2xMVG1HdFk0WGhYYkJHSGh4TnVHdCthU2lLaHAwN2I3ODdU?= =?utf-8?B?Qi9pdE51OC8wL3ZQQitzRG1vVXQrQ2ViQVhpS3BFZk9XL2crUGdpeWplZEpQ?= =?utf-8?B?b01LN24yLytPSGs0WDdMUWNaL3VBRTlzUXd6UWNBSVpWSlRGYVF2NzROSVdC?= =?utf-8?B?MWRKbXB2bVdpWFFpQzRPaWtFemdNbXZhRzk3VlUyRkhLSXEwL2lMc3JLWk1a?= =?utf-8?B?R2pobVpqS3MrMnNHTUw5N2JZbk5CbFNZUnZjUncyQndSY1BrSmF3Q0VoT01r?= =?utf-8?B?RnVwSGMvWUU5NEZNeXdFWVJzMHd6Mlh5WkFvRENmckZVZzVoZ2MrWE03a011?= =?utf-8?B?RkU1RFNkUjZ2QW51RC84dHlGOTFaQ1JLck9tNm10cVp5UExsdjY4OE83SlBo?= =?utf-8?B?UDJsN3pkc2hjRWRBK0puSUlwbStnalJYYndBZUhNMVlzV05pVndla2RiLzNI?= =?utf-8?B?UUlNcFZNUEdCdmQ1Qml0REVjUmRtTm1LMnRPNTB0MXFCVHVFZksrU1IySW96?= =?utf-8?B?dWJjTW03emlJS21ZRW1OK0RlbnNld09RbGhlVEs2aGhGcHd1MW1tdUFSMDRW?= =?utf-8?B?SUcyQTZZM0VoR0NwNEd4SW4zNmd0MGxlOWRHWFU1OUovbjFnVkZieXZBTFRS?= =?utf-8?B?K0FkekJzVVJRczQxMWNSd1owMXkvQjBieHo1U3Q4RkxhOXkrWkJST21aVjVp?= =?utf-8?B?cWJVQk54NmNEYlNsLzFxMk96YmRkcGhiZi9qNXdIQ0JxdWY0MjN3Y1J3MzNX?= =?utf-8?B?Z2UyZ0dvOERXbzZxYk4wdy8wVUY3d2U0WllLYjNTNCsyeEFDQ2dpWjlnK1Jt?= =?utf-8?B?eGxhVXVMMmhqdFErTjN2K0hDM3BwRlptZm1oUmhIVUxYemFydFJxc29VTWE2?= =?utf-8?B?UGNrYlQzcTJkWTVuWTZRN1RMQU05eDQ4RkwydE1yRTM3YzdYdCt1VVBPQ2hG?= =?utf-8?B?MDFFUDhmS1BWMUl1Q2JUbm1FUzJnUFNUZU9vZUYzU3BTdXV1WUZ5aTBqY2pj?= =?utf-8?B?aTByK1BxYjhISTFBZmFvRVhOUEZvaUVQVlgxNzdsZWhiRFlmb1E5aGpsb09D?= =?utf-8?B?MGNlS0E3VzBGK0szcytGY3ozdW8xRVFqYXBsc0JsZGJrL3pCQ1d2UVpUTkdN?= =?utf-8?B?eXZRQmtDbDZ5Nk56TzdSZTZnWTFqR3p3Q3pxcXNESm8vc3lhSy9PbnB5SU55?= =?utf-8?B?aVBFbHVCVWNXdit4dWg2cFhRVTg5MmNIOUNLLzlOalRtQUZrdU82VDVTYUQ0?= =?utf-8?B?a0E9PQ==?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3c27648-982e-47c2-7c26-08dcb0b07a32 X-MS-Exchange-CrossTenant-AuthSource: YT4PR01MB10341.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2024 15:58:39.2009 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6SHsY/djpmm3vpK53nEwyRscCRvTOfw8E1mBYqzcOkhXQcYBpI1EkdfYVUx1uyLGEjFSREyNxUPTRkrbH3oGHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT3PR01MB6487 Subject: Re: [lttng-dev] Using lttng-ust 2.13.6 from Yocto Kirkstone and getting weird segfault saying strlen_asimd.S can't be found. X-BeenThere: lttng-dev@lists.lttng.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: LTTng development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Kienan Stewart via lttng-dev Reply-To: Kienan Stewart Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" SGkgQnJpYW4sCgpPbiA3LzMwLzI0IDExOjU0IEFNLCBCcmlhbiBIdXRjaGluc29uIHdyb3RlOgo+ IEhpIEtpZW5hbiwKPiAKPiBJIG5vdGljZWQgbG9va2luZyB0aHJ1IHRoZSAzOGsgbGluZSBMVFRO R19VU1RfREVCVUcgc2Vzc2lvbiB0aGlzIGxpbmU6Cj4gCj4gIiAgICAgICA4MTA6ICAgICAvdXNy L2xpYi9saWJsdHRuZy11c3Quc28uMTogZXJyb3I6IHN5bWJvbCBsb29rdXAKPiBlcnJvcjogdW5k ZWZpbmVkIHN5bWJvbDogbHR0X3Byb2JlX3JlZ2lzdGVyIChmYXRhbCkiCj4gID4gLi4uIGFuZCBp dCBqb2dnZWQgbXkgbWVtb3J5IHRoYXQgSSBkaWQgc2VlIHNvbWUgYWJpIGNvbmZsaWN0IG1lc3Nh Z2VzCj4gaW4gbHR0bmctdXN0ICJtYWtlIGNoZWNrIiB0aGF0IEkgZG9uJ3Qga25vdyBpZiB0aGV5 IGFyZSAiZ29vZCIgb3IKPiAiYmFkIiBidXQgY291bGQgYmUgcmVsYXRlZD8/Pwo+IAoKVGhpcyBp cyBob3cgbHR0bmctdXN0LnNvLjEgY2hlY2tzIGZvciBsdHRuZy11c3Quc28uMCBpbiB0aGUgc2Ft ZSAKcHJvY2Vzcy4gSXQncyBub3JtYWwuCgpDLmYuIApodHRwczovL2dpdGh1Yi5jb20vbHR0bmcv bHR0bmctdXN0L2Jsb2IvNWRiODU1ODM5ZDQ1MjZjYjJiODBjNDUwOTY4ODRiN2Y2MTM2ZGE5Zi9z cmMvbGliL2x0dG5nLXVzdC9sdHRuZy11c3QtY29tbS5jI0wyMjIxCgo+IEFueXdheSwgYXR0YWNo aW5nIGEgdGFyIG9mIGx0dG5nLXVzdCBhbmQgbHR0bmctdG9vbHMgIm1ha2UgY2hlY2siIGZvcgo+ IHlvdXIgZW5qb3ltZW50Lgo+IAo+IFJlZ2FyZHMsCj4gCj4gQnJpYW4KPiAKPiAKPiAKPiAKPiBP biBUdWUsIEp1bCAzMCwgMjAyNCBhdCA4OjQw4oCvQU0gQnJpYW4gSHV0Y2hpbnNvbiA8Yi5odXRj aG1hbkBnbWFpbC5jb20+IHdyb3RlOgo+Pgo+PiBPbiBNb24sIEp1bCAyOSwgMjAyNCBhdCAzOjAz 4oCvUE0gS2llbmFuIFN0ZXdhcnQgPGtzdGV3YXJ0QGVmZmljaW9zLmNvbT4gd3JvdGU6Cj4+Pgo+ Pj4gSGkgQnJpYW4sCj4+Pgo+Pj4gT24gNy8yNS8yNCAzOjU0IFBNLCBCcmlhbiBIdXRjaGluc29u IHdyb3RlOgo+Pj4+IEhpIEtpZW5hbiwKPj4+Pgo+Pj4+IEknbGwgYW5zd2VyIHlvdXIgcXVlc3Rp b25zIGJlbG93LCBidXQgSSd2ZSBnb3QgcXVlc3Rpb25zIG9uIHdoYXQgSSBzYXcKPj4+PiBidWls ZGluZyBhbmQgaW5zdGFsbGluZyBsdHRuZy10b29scyAoMi4xMy4xMykgYW5kIGx0dG5nLXVzdCAo Mi4xMy44KS4KPj4+Pgo+Pj4+IEJhc2VkIG9uIHRoZSBzdHJ1Z2dsZXMgSSd2ZSBoYWQgdHJ5aW5n IHRvIGdldCBsdHRuZyB0byB3b3JrIHdpdGggbXkKPj4+PiBhcHAgb3ZlciB2YXJpb3VzIFlvY3Rv IHZlcnNpb25zIChEdW5mZWxsICYgS2lya3N0b25lKSBhbmQgbHR0bmcKPj4+PiB2ZXJzaW9uLCBJ IHRoaW5rIHRoZSBwcm9ibGVtcyBJJ20gZmFjaW5nIGFyZSBtb3N0bHkgYXJvdW5kIEMrKyBhbmQK Pj4+PiB3ZWFrIGFuZCBoaWRkZW4gc3ltYm9scyBpbiBZb2N0byB0b29sY2hhaW4uCj4+Pj4KPj4+ PiBXaGVuIEkgc3RhcnRlZCBteSBhcHAgd2l0aCB0aGUgb3B0aW9ucyB5b3UgbWVudGlvbmVkIHBy ZXZpb3VzbHkgYQo+Pj4+IHdoaWxlIGJhY2ssIElkIHNlZSB0aGluZ3MgbGlrZToKPj4+Pgo+Pj4+ ICMgTFRUTkdfVVNUX0RFQlVHPTEgTFRUTkdfVVNUX1JFR0lTVEVSX1RJTUVPVVQ9LTEgL29wdC90 Yy9UcmFmZmljQ29udHJvbGxlcgo+Pj4+IGxpYmx0dG5nX3VzdF90cmFjZXBvaW50WzQwMTIvNDAx Ml06IFlvdXIgY29tcGlsZXIgdHJlYXRzIHdlYWsgc3ltYm9scwo+Pj4+IHdpdGggaGlkZGVuIHZp c2liaWxpdHkgZm9yIGludGVnZXIgb2JqZWN0cyBhcyBTQU1FIGFkZHJlc3MgYmV0d2Vlbgo+Pj4+ IGNvbXBpbGUgdW5pdHMgcGFydCBvZiB0aGUgc2FtZSBtb2R1bGUuIChpbiBjaGVja193ZWFrX2hp ZGRlbigpIGF0Cj4+Pj4gdHJhY2Vwb2ludC5jOjEwMTIpCj4+Pj4gbGlibHR0bmdfdXN0X3RyYWNl cG9pbnRbNDAxMi80MDEyXTogWW91ciBjb21waWxlciB0cmVhdHMgd2VhayBzeW1ib2xzCj4+Pj4g d2l0aCBoaWRkZW4gdmlzaWJpbGl0eSBmb3IgcG9pbnRlciBvYmplY3RzIGFzIFNBTUUgYWRkcmVz cyBiZXR3ZWVuCj4+Pj4gY29tcGlsZSB1bml0cyBwYXJ0IG9mIHRoZSBzYW1lIG1vZHVsZS4gKGlu IGNoZWNrX3dlYWtfaGlkZGVuKCkgYXQKPj4+PiB0cmFjZXBvaW50LmM6MTAxNikKPj4+PiBsaWJs dHRuZ191c3RfdHJhY2Vwb2ludFs0MDEyLzQwMTJdOiBZb3VyIGNvbXBpbGVyIHRyZWF0cyB3ZWFr IHN5bWJvbHMKPj4+PiB3aXRoIGhpZGRlbiB2aXNpYmlsaXR5IGZvciAyNC1ieXRlIHN0cnVjdHVy ZSBvYmplY3RzIGFzIFNBTUUgYWRkcmVzcwo+Pj4+IGJldHdlZW4gY29tcGlsZSB1bml0cyBwYXJ0 IG9mIHRoZSBzYW1lIG1vZHVsZS4gKGluIGNoZWNrX3dlYWtfaGlkZGVuKCkKPj4+PiBhdCB0cmFj ZXBvaW50LmM6MTAyMCkKPj4+Pgo+Pj4KPj4+IFRoZXNlIG1lc3NhZ2VzIGFyZSBleHRyYSBpbmZv cm1hdGlvbiBmb3IgZGVidWdnaW5nIGFuZCBub3QgaW5kaWNhdGl2ZSBvZgo+Pj4gYSBwcm9ibGVt IGluIG9mIGl0c2VsZi4gQy5mLgo+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2x0dG5nL2x0dG5nLXVz dC9ibG9iLzI0ZjcxOTNjOWI5MThiZjcxNGE0MGU5ZmM5MDhlZWI0OTc4YWRhMWMvc3JjL2xpYi9s dHRuZy11c3QtdHJhY2Vwb2ludC90cmFjZXBvaW50LmMjTDEwMTAKPj4+Cj4+PiBUaGVyZSBpcyBh IHVuaXQgdGVzdCByZWxhdGVkIHRvIHRoaXM6Cj4+PiBodHRwczovL2dpdGh1Yi5jb20vbHR0bmcv bHR0bmctdXN0L2Jsb2IvMjRmNzE5M2M5YjkxOGJmNzE0YTQwZTlmYzkwOGVlYjQ5NzhhZGExYy90 ZXN0cy91bml0L2djYy13ZWFrLWhpZGRlbi9tYWluLmMjTDc2Cj4+Pgo+Pj4KPj4+PiBJIGZ1cnRo ZXIgcmVzZWFyY2hlZCB0aGlzIHdob2xlICd3ZWFrIHN5bWJvbCcgYW5kICdoaWRkZW4gdmlzaWJp bGl0eScKPj4+PiB0b3BpYyBpbiB0aGUgbHR0bmctZGV2IGFyY2hpdmVzIGFuZCBpdCBzbWVsbHMg YSBsb3QgbGlrZSB3aGF0IEkndmUKPj4+PiBiZWVuIHNlZWluZy4gIFlvdSBzaG91bGQgYmUgYWJs ZSB0byBtaXggYm90aCB0cmFjZWYgYW5kIHRyYWNlcG9pbnQKPj4+PiBjYWxscyBpbiBzb3VjZSBj b2RlIC4uLiBidXQgSSBjb3VsZCBub3QuICBJIGNvdWxkIGdldCBhIHRyYWNlZiBjYWxsIHRvCj4+ Pj4gd29yayBidXQgaWYgSSBwdXQgYSB0cmFjZXBvaW50IGNhbGwgaW4gdGhlIHNhbWUgY29kZSB0 aGVuIG5vdGhpbmcKPj4+PiB3b3VsZCB3b3JrLiAgVGhpcyB3YXMgd2l0aCBEdW5mZWxsIDMuMS43 IGFuZCBlYXJsaWVyIHZlcnNpb25zIG9mCj4+Pj4gbHR0bmcuCj4+Pj4KPj4+PiBBdCBvbmUgcG9p bnQgSSBjb3VsZCBnZXQgYSB0cmFjZXBvaW50IGNhbGwgdG8gd29yayBidXQgSSdkIGhhdmUgdG8g bGV0Cj4+Pj4gb3VyIGNtYWtlIGJ1aWxkIHN5c3RlbSBidWlsZCBhbmQgbGluayB0aGUgdHBwLmMg ZmlsZSBhbmQgdGhlbiB0dXJuCj4+Pj4gYXJvdW5kIGFuZCB1c2UgZ2NjIHRvIHJlY29tcGlsZSBp dCBhbmQgY29weSBpdCB0byB3aGVyZSBhbGwgdGhlCj4+Pj4gb2JqZWN0cyB3ZXJlIHRvIGNyZWF0 ZSB0aGUgaHVnZSAuYSBsaWJyYXJ5IHRoZSBhcHAgd2FzIGJ1aWx0IGFnYWluc3QuCj4+Pj4gVGhh dCdzIHdoZW4gSSBmaXJzdCBsZWFybmVkIHRoZXJlIGFyZSBpc3N1ZXMgd2l0aCBDKysuICBJIHRo aW5rIGcrKyBpcwo+Pj4+IHVzZWQgdG8gYnVpbGQgZXZlbiAuYyBmaWxlcyB0aGF0IGFyZW4ndCBj KysuCj4+Pj4KPj4+PiBUaGVuIGlmIEkgdHJpZWQgdG8gcHV0IGEgdHJhY2Vwb2ludCBpbiBhbm90 aGVyIHN1YiBwcm9qZWN0LCBub25lIG9mCj4+Pj4gdGhlIHRyYWNlcG9pbnRzIHdvdWxkIHdvcmsg YW5kIEknZCBnZXQgZW1wdHkgdHJhY2VzLiAgVGhpcyBpcyBhCj4+Pj4gc3ltcHRvbSBvZiB0aGUg J3dlYWsgc3ltYm9scyB3aXRoIGhpZGRlbiB2aXNpYmlsaXR5JyBpc3N1ZSAuLi4gYW5kIEkKPj4+ PiBmaW5hbGx5IGZvdW5kIG90aGVycyB0aGF0IHdlcmUgaGF2aW5nIHNhbWUgaXNzdWUgaW4gdGhl IGFyY2hpdmVzLiAgSQo+Pj4+IGRvbid0IGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGlzc3VlcyBoZXJl LCBhbHRob3VnaCBJIGRvIHVuZGVyc3RhbmQgc29tZQo+Pj4+IG9mIHdoYXQncyBnb2luZyBvbiAu Li4gSSBqdXN0IGRvbid0IGtub3cgd2hhdCB0byBkbyBhYm91dCBpdC4KPj4+Pgo+Pj4KPj4+IFlv dSBzYWlkIGluaXRpYWxseSBzYWlkIHRoYXQgeW91J3JlIHVzaW5nIGBsdHRuZ191c3RfdHJhY2Vw b2ludGAgZXhhY3RseQo+Pj4gYXMgdGhlIGhlbGxvIHdvcmxkIGZyb20gdGhlIGRvY3VtZW50YXRp b247IGhvd2V2ZXIsIHlvdSBoYXZlIGp1c3QKPj4+IGRlc2NyaWJlZCBzZXZlcmFsIGF0dGVtcHRz IGF0IGRvaW5nIGRpZmZlcmVudCB0aGluZ3MuIFdoaWNoIGNhc2UgYXJlIHdlCj4+PiB0cnlpbmcg dG8gdW5kZXJzdGFuZCBoZXJlPwo+Pgo+PiBsdHRuZ191c3RfdHJhY2Vwb2ludC4gIEkgb25seSBt ZW50aW9uZWQgcHJpb3IgdGVzdHMgZm9yIGNvbnRleHQgdG8KPj4gc2ltaWxhciBzdHJ1Z2dsZXMg ZnJvbSBhIHllYXIgb3IgbW9yZSBhZ28uCj4+Cj4+Cj4+Pgo+Pj4+IEF0IHRoaXMgcG9pbnQgSSB3 YXMgYmVpbmcgZW5jb3VyYWdlZCB0byBrZWVwIHVwZ3JhZGluZyB0byBuZXdlcgo+Pj4+IHZlcnNp b25zIG9mIGx0dG5nLiAgT3VyIGFwcCBuZXZlciBjaGFuZ2VkLCBnY2MgJiBsdHRuZyBldGMuLCBr ZXB0Cj4+Pj4gY2hhbmdpbmcuICBOb3cgd2l0aCBuZXdlciB2ZXJzaW9ucyBub3RoaW5nIHJ1bnMs IGFsbCBJIGdldCBpcyBhbgo+Pj4+IGltbWVkaWF0ZSBzZWdmYXVsdC4gIEFnYWluLCBJJ20gYnVp bGRpbmcganVzdCBsaWtlIEkgZGlkIGJlZm9yZSBhIHllYXIKPj4+PiBvciBzbyBhZ28gd2l0aCBv bGRlciB2ZXJzaW9ucyBvZiBZb2N0byBhbmQgbHR0bmcuICBJIHNheSBhbGwgb2YgdGhhdAo+Pj4+ IHRvIGdpdmUgcGVyc3BlY3RpdmUgYW5kIGhpc3Rvcnkgb2Ygd2hhdCBJJ3ZlIHNlZW4gYW5kIGV4 cGVyaWVuY2VkLgo+Pj4+IE5vdyB0aGlzIFRMUyB0aGluZyBoYXMgZW50ZXJlZCB0aGUgcGljdHVy ZSB0b28gYW5kIHNvIGZhciBJJ3ZlIG9ubHkKPj4+PiBjaGFuZ2VkIGx0dG5nLCBJIGRvbid0IGtu b3cgaWYgSSBzaG91bGQgYmUgYXBwbHlpbmcgcGF0Y2hlcyB0byBteSBnY2MKPj4+PiBmb3IgdGhh dCBpc3N1ZS4gIExpa2UgSSBzYWlkLCBJJ20gY3VycmVudGx5IHVzaW5nIFlvY3RvIEtpcmtzdG9u ZQo+Pj4+IDQuMC4xOCBhbmQgNi4xLjM4IGtlcm5lbC4KPj4+Pgo+Pj4+IE5vdyBJJ2xsIG1vdmUg aW50byB0aGUgYXJlYSBvZiB0aGluZ3MgSSd2ZSBzZWVuIGJ1aWxkaW5nL2luc3RhbGxpbmcKPj4+ PiBsdHRuZy10b29scyBhbmQgbHR0bmctdXN0IG5hdGl2ZWx5IG9uIHRoZSB0YXJnZXQgZW52aXJv bm1lbnQgSSd2ZQo+Pj4+IHNldHVwIHdoZXJlIEkgY2FuIHJ1biAnbWFrZSBjaGVjaycgZXRjLiAg VGhlc2UgYXJlIGluIHRoZSBjYXRlZ29yeSBvZgo+Pj4+ICJoZXksIGlzIHRoaXMgb2ssIHNob3Vs ZCBJIGJlIHdvcnJpZWQgYWJvdXQgdGhpcyI6Cj4+Pj4KPj4+PiBXaGlsZSBidWlsZGluZyBsdHRu Zy10b29scyBJIHNlZSB0aGluZ3MgbGlrZToKPj4+Pgo+Pj4+ICoqKiBXYXJuaW5nOiBMaW5raW5n IHRoZSBleGVjdXRhYmxlIHVzZXJzcGFjZS1wcm9iZS1lbGYtYmluYXJ5IGFnYWluc3QKPj4+PiB0 aGUgbG9hZGFibGUgbW9kdWxlCj4+Pj4gKioqIGxpYmZvby5zbyBpcyBub3QgcG9ydGFibGUhCj4+ Pj4KPj4+Cj4+PiBUaGUgbGlicmFyeSBpcyBmb3IgYSB0ZXN0IHByb2dyYW0uIE15IHVuZGVyc3Rh bmRpbmcgaXMgdGhhdCB0aGUgbGlicmFyeQo+Pj4gaXMgY29tcGlsZWQgdGhhdCB3YXkgdG8gZm9y Y2UgYSBzdHJpcHBlZCBzaGFyZWQgb2JqZWN0IHRvIGJlIHByb2R1Y2VkIGluCj4+PiBvcmRlciB0 byB2YWxpZGF0ZSB0aGF0IHN5bWJvbCBsb29rdXBzIGluIGxpYnJhcmllcyB3aXRoIG5vIHN5bXRh Ygo+Pj4gZnVuY3Rpb24gYXMgZXhwZWN0ZWQgYnkgdXNpbmcgdGhlIGR5bnN5bSB0YWJsZS4KPj4+ Cj4+PiBDLmYuCj4+PiBodHRwczovL2dpdGh1Yi5jb20vbHR0bmcvbHR0bmctdG9vbHMvY29tbWl0 L2VmM2RmZTVkMzFjODhmYjU0ODE4OWE2NDQxYWFmOGIyYWZjMGJkNGIKPj4+Cj4+Pj4gSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC4uLy4uLy4uL3NyYy9jb21tb24vbWFjcm9zLmg6MTUsCj4+Pj4gICAg ICAgICAgICAgICAgICAgZnJvbSAuLi8uLi8uLi9pbmNsdWRlL2x0dG5nL2hlYWx0aC1pbnRlcm5h bC5oOjE5LAo+Pj4+ICAgICAgICAgICAgICAgICAgIGZyb20gbHR0bmctY3RsLWhlYWx0aC5jOjE5 Ogo+Pj4+IEluIGZ1bmN0aW9uICdsdHRuZ19zdHJubGVuJywKPj4+PiAgICAgIGlubGluZWQgZnJv bSAnbHR0bmdfc3RybmNweScgYXQgLi4vLi4vLi4vc3JjL2NvbW1vbi9tYWNyb3MuaDoxMjg6NiwK Pj4+PiAgICAgIGlubGluZWQgZnJvbSAnc2V0X2hlYWx0aF9zb2NrZXRfcGF0aCcgYXQgbHR0bmct Y3RsLWhlYWx0aC5jOjE0Njo5LAo+Pj4+ICAgICAgaW5saW5lZCBmcm9tICdsdHRuZ19oZWFsdGhf cXVlcnknIGF0IGx0dG5nLWN0bC1oZWFsdGguYzoyNjQ6ODoKPj4+PiAuLi8uLi8uLi9zcmMvY29t bW9uL2NvbXBhdC9zdHJpbmcuaDoxOToxNjogd2FybmluZzogJ3N0cm5sZW4nCj4+Pj4gc3BlY2lm aWVkIGJvdW5kIDQwOTYgbWF5IGV4Y2VlZCBzb3VyY2Ugc2l6ZSAzNyBbLVdzdHJpbmdvcC1vdmVy cmVhZF0KPj4+PiAgICAgMTkgfCAgICAgICAgIHJldHVybiBzdHJubGVuKHN0ciwgbWF4KTsKPj4+ PiAgICAgICAgfCAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgo+Pj4+IGx0dG5nLWN0 bC1oZWFsdGguYzogQXQgdG9wIGxldmVsOgo+Pj4+IGNjMTogbm90ZTogdW5yZWNvZ25pemVkIGNv bW1hbmQtbGluZSBvcHRpb24KPj4+PiAnLVduby1pbmNvbXBsZXRlLXNldGptcC1kZWNsYXJhdGlv bicgbWF5IGhhdmUgYmVlbiBpbnRlbmRlZCB0byBzaWxlbmNlCj4+Pj4gZWFybGllciBkaWFnbm9z dGljcwo+Pj4KPj4+IFRoaXMgd2FybmluZyBpcyBhZGRyZXNzZWQgaW4KPj4+IGh0dHBzOi8vZ2l0 aHViLmNvbS9sdHRuZy9sdHRuZy10b29scy9jb21taXQvYjI1YTU5OTE2MTA2ZTUwNTViZTUxNmY2 MWYxODNhNDhmNDU5YjBiMwo+Pj4KPj4+PiAqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQg bGlicmFyeSBsaWJiYXIubGEgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlCj4+Pj4gKioqIGxp Ynp6ei5zbyBpcyBub3QgcG9ydGFibGUhCj4+Pj4KPj4+PiAqKiogV2FybmluZzogTGlua2luZyB0 aGUgc2hhcmVkIGxpYnJhcnkgbGliZm9vLmxhIGFnYWluc3QgdGhlIGxvYWRhYmxlIG1vZHVsZQo+ Pj4+ICoqKiBsaWJiYXIuc28gaXMgbm90IHBvcnRhYmxlIQo+Pj4+Cj4+Pj4gV2hpbGUgaW5zdGFs bGluZyBsdHRuZy10b29scyBJIHNlZSB0aGluZ3MgbGlrZSB0aGlzOgo+Pj4+Cj4+Pj4gbWFrZVs0 XTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvb3B0L2x0dG5nL2x0dG5nLXRvb2xzLTIuMTMuMTMvc3Jj L2xpYi9sdHRuZy1jdGwnCj4+Pj4gICAgQ0MgICAgICAgbHR0bmctY3RsLmxvCj4+Pj4gICAgQ0Mg ICAgICAgc25hcHNob3QubG8KPj4+PiAgICBDQyAgICAgICBsdHRuZy1jdGwtaGVhbHRoLmxvCj4+ Pj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uLy4uL3NyYy9jb21tb24vbWFjcm9zLmg6MTUs Cj4+Pj4gICAgICAgICAgICAgICAgICAgZnJvbSAuLi8uLi8uLi9pbmNsdWRlL2x0dG5nL2hlYWx0 aC1pbnRlcm5hbC5oOjE5LAo+Pj4+ICAgICAgICAgICAgICAgICAgIGZyb20gbHR0bmctY3RsLWhl YWx0aC5jOjE5Ogo+Pj4+IEluIGZ1bmN0aW9uICdsdHRuZ19zdHJubGVuJywKPj4+PiAgICAgIGlu bGluZWQgZnJvbSAnbHR0bmdfc3RybmNweScgYXQgLi4vLi4vLi4vc3JjL2NvbW1vbi9tYWNyb3Mu aDoxMjg6NiwKPj4+PiAgICAgIGlubGluZWQgZnJvbSAnc2V0X2hlYWx0aF9zb2NrZXRfcGF0aCcg YXQgbHR0bmctY3RsLWhlYWx0aC5jOjE0Njo5LAo+Pj4+ICAgICAgaW5saW5lZCBmcm9tICdsdHRu Z19oZWFsdGhfcXVlcnknIGF0IGx0dG5nLWN0bC1oZWFsdGguYzoyNjQ6ODoKPj4+PiAuLi8uLi8u Li9zcmMvY29tbW9uL2NvbXBhdC9zdHJpbmcuaDoxOToxNjogd2FybmluZzogJ3N0cm5sZW4nCj4+ Pj4gc3BlY2lmaWVkIGJvdW5kIDQwOTYgbWF5IGV4Y2VlZCBzb3VyY2Ugc2l6ZSAzNyBbLVdzdHJp bmdvcC1vdmVycmVhZF0KPj4+PiAgICAgMTkgfCAgICAgICAgIHJldHVybiBzdHJubGVuKHN0ciwg bWF4KTsKPj4+PiAgICAgICAgfCAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgo+Pj4+ IGx0dG5nLWN0bC1oZWFsdGguYzogQXQgdG9wIGxldmVsOgo+Pj4+IGNjMTogbm90ZTogdW5yZWNv Z25pemVkIGNvbW1hbmQtbGluZSBvcHRpb24KPj4+PiAnLVduby1pbmNvbXBsZXRlLXNldGptcC1k ZWNsYXJhdGlvbicgbWF5IGhhdmUgYmVlbiBpbnRlbmRlZCB0byBzaWxlbmNlCj4+Pj4gZWFybGll ciBkaWFnbm9zdGljcwo+Pj4+Cj4+Pj4gTWFraW5nIGluc3RhbGwgaW4gdHJpZ2dlci1jb25kaXRp b24tZXZlbnQtbWF0Y2hlcwo+Pj4+IG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeQo+Pj4+ICcv b3B0L2x0dG5nL2x0dG5nLXRvb2xzLTIuMTMuMTMvZG9jL2V4YW1wbGVzL3RyaWdnZXItY29uZGl0 aW9uLWV2ZW50LW1hdGNoZXMnCj4+Pj4gICAgQ0MgICAgICAgaW5zdHJ1bWVudGVkLWFwcC5vCj4+ Pj4gICAgQ0MgICAgICAgdHJhY2Vwb2ludC10cmlnZ2VyLWV4YW1wbGUubwo+Pj4+ICAgIEFSICAg ICAgIGxpYnRyYWNlcG9pbnQtdHJpZ2dlci1leGFtcGxlLmEKPj4+PiBhcjogYHUnIG1vZGlmaWVy IGlnbm9yZWQgc2luY2UgYEQnIGlzIHRoZSBkZWZhdWx0IChzZWUgYFUnKQo+Pj4+Cj4+Pj4gV2hp bGUgYnVpbGRpbmcgbHR0bmctdXN0IEkgc2VlIHRoaW5ncyBsaWtlOgo+Pj4+Cj4+Pj4gTWFraW5n IGFsbCBpbiB1dGlscwo+Pj4+IG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeQo+Pj4+ICcvaG9t ZS9pYWRtaW4vbHR0bmctdXN0L2x0dG5nLXVzdC0yLjEzLjgvdGVzdHMvdXRpbHMnCj4+Pj4gICAg Q0MgICAgICAgdGFwLm8KPj4+PiAgICBBUiAgICAgICBsaWJ0YXAuYQo+Pj4+IGFyOiBgdScgbW9k aWZpZXIgaWdub3JlZCBzaW5jZSBgRCcgaXMgdGhlIGRlZmF1bHQgKHNlZSBgVScpCj4+Pj4KPj4+ Cj4+PiBXaGlsZSBsaWJ0b29sIG5vdyB1c2VzIGBjcmAgYnkgZGVmYXVsdCwgYXV0b21ha2Ugc3Rp bGwgZGVmaW5lcyB0aGUKPj4+IGRlZmF1bHQgdG8gYGNydWAgd2hpY2ggaXMgd2hhdCBlbmRzIHVw IGdldHRpbmcgdXNlZCBpbiB0aGUgZXhhbXBsZS4KPj4+IFNpbmNlIG1hbnkgZGlzdHJvcyBoYXZl IGNoYW5nZWQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYXIgc3VjaCB0aGF0ICdEJyBpcwo+Pj4gdGhl IGRlZmF1bHQgcmF0aGVyIHRoYW4gdGhlIHByZXZpb3VzIGJlaGF2aW91ciAnVScsICd1JyBpcyBy ZWR1bmRhbnQuCj4+Pgo+Pj4gVGhlIGJlaGF2aW91ciBpbiBhdXRvbWFrZSBoYXMgYmVlbiBjaGFu Z2VkIGluIGF1dG9tYWtlIDEuMTYuOTArLgo+Pj4KPj4+IEMuZi4KPj4+IGh0dHBzOi8vZ2l0aHVi LmNvbS9hdXRvdG9vbHMtbWlycm9yL2xpYnRvb2wvY29tbWl0LzQxODEyOWJjNjNhZmMzMTI3MDFl ODRjYjhhZmE1Y2E0MTNkZjFhYjUKPj4+Cj4+PiBDLmYuCj4+PiBodHRwOi8vZ2l0LnNhdmFubmFo LmdudS5vcmcvY2dpdC9hdXRvbWFrZS5naXQvY29tbWl0Lz9pZD04Y2RiZGRhNWFlYzY1MmMzNTZm ZTZkYmJhOTY4MTAyMDIxNzZhZTc1Cj4+Pgo+Pj4+ICoqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBz aGFyZWQgbGlicmFyeSBsaWJ6ZXJvLmxhIGFnYWluc3QgdGhlCj4+Pj4gbG9hZGFibGUgbW9kdWxl Cj4+Pj4gKioqIGxpYmZha2V1c3QwLnNvIGlzIG5vdCBwb3J0YWJsZSEKPj4+PiAgICBDQ0xEICAg ICBhcHBfbm91c3RfaW5kaXJlY3RfYWJpMAo+Pj4+Cj4+Pj4gKioqIFdhcm5pbmc6IExpbmtpbmcg dGhlIGV4ZWN1dGFibGUgYXBwX25vdXN0X2luZGlyZWN0X2FiaTAgYWdhaW5zdAo+Pj4+IHRoZSBs b2FkYWJsZSBtb2R1bGUKPj4+PiAqKiogbGliemVyby5zbyBpcyBub3QgcG9ydGFibGUhCj4+Pj4g ICAgQ0MgICAgICAgYXBwX25vdXN0X2luZGlyZWN0X2FiaTBfYWJpMS1hcHBfbm91c3Qubwo+Pj4+ ICAgIENDICAgICAgIGxpYm9uZS5sbwo+Pj4+ICAgIENDTEQgICAgIGxpYm9uZS5sYQo+Pj4+ICAg IENDTEQgICAgIGFwcF9ub3VzdF9pbmRpcmVjdF9hYmkwX2FiaTEKPj4+Pgo+Pj4+ICoqKiBXYXJu aW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlIGFwcF9ub3VzdF9pbmRpcmVjdF9hYmkwX2FiaTEK Pj4+PiBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUKPj4+PiAqKiogbGliemVyby5zbyBpcyBu b3QgcG9ydGFibGUhCj4+Pj4KPj4+PiAqKiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJs ZSBhcHBfbm91c3RfaW5kaXJlY3RfYWJpMF9hYmkxCj4+Pj4gYWdhaW5zdCB0aGUgbG9hZGFibGUg bW9kdWxlCj4+Pj4gKioqIGxpYm9uZS5zbyBpcyBub3QgcG9ydGFibGUhCj4+Pj4gICAgQ0MgICAg ICAgYXBwX25vdXN0X2luZGlyZWN0X2FiaTEtYXBwX25vdXN0Lm8KPj4+PiAgICBDQ0xEICAgICBh cHBfbm91c3RfaW5kaXJlY3RfYWJpMQo+Pj4+Cj4+Pj4gKioqIFdhcm5pbmc6IExpbmtpbmcgdGhl IGV4ZWN1dGFibGUgYXBwX25vdXN0X2luZGlyZWN0X2FiaTBfYWJpMQo+Pj4+IGFnYWluc3QgdGhl IGxvYWRhYmxlIG1vZHVsZQo+Pj4+ICoqKiBsaWJvbmUuc28gaXMgbm90IHBvcnRhYmxlIQo+Pj4+ ICAgIENDICAgICAgIGFwcF9ub3VzdF9pbmRpcmVjdF9hYmkxLWFwcF9ub3VzdC5vCj4+Pj4gICAg Q0NMRCAgICAgYXBwX25vdXN0X2luZGlyZWN0X2FiaTEKPj4+Pgo+Pj4+ICoqKiBXYXJuaW5nOiBM aW5raW5nIHRoZSBleGVjdXRhYmxlIGFwcF9ub3VzdF9pbmRpcmVjdF9hYmkxIGFnYWluc3QKPj4+ PiB0aGUgbG9hZGFibGUgbW9kdWxlCj4+Pj4gKioqIGxpYm9uZS5zbyBpcyBub3QgcG9ydGFibGUh Cj4+Pj4gICAgQ0MgICAgICAgYXBwX3VzdC5vCj4+Pj4gICAgQ0MgICAgICAgdHAubwo+Pj4+ICAg IENDTEQgICAgIGFwcF91c3QKPj4+PiAgICBDQyAgICAgICBhcHBfdXN0X2Rsb3Blbi5vCj4+Pj4g ICAgQ0NMRCAgICAgYXBwX3VzdF9kbG9wZW4KPj4+PiAgICBDQyAgICAgICBhcHBfdXN0X2luZGly ZWN0X2FiaTAtYXBwX3VzdC5vCj4+Pj4gICAgQ0MgICAgICAgYXBwX3VzdF9pbmRpcmVjdF9hYmkw LXRwLm8KPj4+PiAgICBDQ0xEICAgICBhcHBfdXN0X2luZGlyZWN0X2FiaTAKPj4+Pgo+Pj4+ICoq KiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlIGFwcF91c3RfaW5kaXJlY3RfYWJpMCBh Z2FpbnN0IHRoZQo+Pj4+IGxvYWRhYmxlIG1vZHVsZQo+Pj4+ICoqKiBsaWJ6ZXJvLnNvIGlzIG5v dCBwb3J0YWJsZSEKPj4+PiAgICBDQyAgICAgICBhcHBfdXN0X2luZGlyZWN0X2FiaTBfYWJpMS1h cHBfdXN0Lm8KPj4+PiAgICBDQyAgICAgICBhcHBfdXN0X2luZGlyZWN0X2FiaTBfYWJpMS10cC5v Cj4+Pj4gICAgQ0NMRCAgICAgYXBwX3VzdF9pbmRpcmVjdF9hYmkwX2FiaTEKPj4+Pgo+Pj4+ICoq KiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlIGFwcF91c3RfaW5kaXJlY3RfYWJpMF9h YmkxIGFnYWluc3QKPj4+PiB0aGUgbG9hZGFibGUgbW9kdWxlCj4+Pj4gKioqIGxpYnplcm8uc28g aXMgbm90IHBvcnRhYmxlIQo+Pj4+Cj4+Pj4gSSBkb24ndCBrbm93IGlmIHRoZXNlIGFyZSBvayBv ciBpZiBJIHNob3VsZCBiZSB3b3JyaWVkIGFib3V0IGFueSBvZiB0aGF0Lgo+Pj4+Cj4+Pgo+Pj4g VGhlc2UgYXJlIGFsbCBmb3IgZGlmZmVyZW50IHRlc3RzLgo+Pj4KPj4+PiAuLi4gbm93IG9uIHRv IHlvdXIgcXVlc3Rpb25zIGJlbG93Lgo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IE9uIFdlZCwgSnVsIDI0 LCAyMDI0IGF0IDEyOjA04oCvUE0gS2llbmFuIFN0ZXdhcnQgPGtzdGV3YXJ0QGVmZmljaW9zLmNv bT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+IEhpIEJyaWFuLAo+Pj4+Pgo+Pj4+PiBPbiA3LzIyLzI0IDY6 MDAgUE0sIEJyaWFuIEh1dGNoaW5zb24gd3JvdGU6Cj4+Pj4+PiBIaSBLaWVuYW4sCj4+Pj4+Pgo+ Pj4+Pj4gVG9vayBhIHdoaWxlIHRvIGdhdGhlciB5b3VyIGdyb2NlcnkgbGlzdCBidXQgSSB0aGlu ayBJIGhhdmUgbW9zdCBvZiBpdAo+Pj4+Pj4gYmVsb3cgOykKPj4+Pj4KPj4+Pj4gdGhhbmtzIGZv ciBhbGwgdGhlIGV4dHJhIGluZm8uIFJlcGxpZXMgaW5saW5lIGJlbG93LCBidXQgSSdsbCBjdXQg YSBsb3QKPj4+Pj4gb2YgdGhlIGxvbmcgb3V0cHV0IGZvciByZWFkYWJpbGl0eS4KPj4+Pj4KPj4+ Pj4gdGw7ZHIgdGhlIGVudmlyb25tZW50IGNvbnRpbnVlcyB0byBiZSB3ZWlyZCwgYnV0IG15IHBy ZXNlbnQgc3VzcGljaW9uIGlzCj4+Pj4+IHRoYXQgc29tZXRoaW5nIGluIGVpdGhlciBjb21waWxh dGlvbiwgdGhlIGxpbmtpbmcgb2YgeW91ciBhcHAgKGVnLiB3aXRoCj4+Pj4+IGxkIHdoZW4gcHJv ZHVjaW5nIHRoZSBleGVjdXRhYmxlKSwgb3Igc29tZSBwb3N0IGxpbmtpbmcgc3RyaXBwaW5nIG1p Z2h0Cj4+Pj4+IGJlIGNhdXNpbmcgaXNzdWVzLgo+Pj4+Cj4+Pj4gSSdtIG5vdCBhd2FyZSBvZiBh bnkgc3RyaXBwaW5nIHRoYXQncyBnb2luZyBvbi4gIEluIGZhY3QgZXZlcnl0aGluZyBpcwo+Pj4+ IGJlaW5nIGJ1aWx0IHdpdGggZGVidWcgc3ltYm9scyBhdCB0aGUgbW9tZW50IGFuZCBJIGV2ZW4g dHVybmVkIG9mZgo+Pj4+IG9wdGltaXphdGlvbiAuLi4gZXZlbiB1c2VkIHRoZSBkZWJ1ZyBmcmll bmRseSAtTyBmbGFnIHRvIHNlZSBpZiB0aGF0Cj4+Pj4gbWFkZSBhIGRpZmZlcmVuY2UuCj4+Pj4K Pj4+Pj4KPj4+Pj4gSSB3aWxsIHN0b3AgZGlnZ2luZyBpbnRvIGZ1cnRoZXIgaHlwb3RoZXRpY2Fs cyBvbiBteSBzaWRlIGFzIHRoZXJlIGlzIG5vCj4+Pj4+IHJlcHJvZHVjZXIgZm9yIGJvdGggdGhl IGVudmlyb25tZW50IGFuZCB0aGUgYXBwbGljYXRpb24uIElmIHlvdSBldmVyIGVuZAo+Pj4+PiB1 cCB3aXRoIGEgbWluaW1hbCByZXByb2R1Y2VyIHRoYXQgeW91IGNhbiBzaGFyZSwgSSdkIGJlIG1v cmUgdGhhbiBoYXBweQo+Pj4+PiB0byBleGFtaW5lIGl0Lgo+Pj4+Cj4+Pj4gSSdtIHBsYW5uaW5n IG9uIHRyeWluZyB0byBtYWtlIGEgc21hbGwgcmVwcm9kdWNlciBJIGNhbiBzaGFyZSBidXQgbm90 IHRoZXJlIHlldC4KPj4+Pgo+Pj4KPj4+IEdyZWF0ISBJIGFwcHJlY2lhdGUgdGhhdCB5b3UncmUg dGFraW5nIHRoZSB0aW1lIHRvIGRvIHNvLgo+Pj4KPj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBJIG1heSBo YXZlIG5vdCBiZWVuIGNsZWFyLiAgTW9zdCBvZiB0aGUgYXBwbGljYXRpb24gY29tcG9uZW50cyBh cmUKPj4+Pj4+IHN0YXRpY2FsbHkgbGlua2VkIGJ1dCBJIHRoaW5rIHRoZXJlIGFyZSBzb21lIHRo YXQgYXJlIGJ1aWx0IGFzIHNoYXJlZAo+Pj4+Pj4gb2JqZWN0cyAoLnNvJ3MpIHNvIHRoYXQncyB3 aGF0IEkgd2FzIHJlZmVycmluZyB0by4gIEkga25vdyB0aGF0Cj4+Pj4+PiBsdHRuZy11c3QgaXMg ZHluYW1pY2FsbHkgbGlua2VkIC4uLiBJIHRoaW5rIHRoZSBsdHRuZy11c3QgZG9jcyBzYXkgdGhp cwo+Pj4+Pj4gaXMgb25seSBvcHRpb24gYnV0IGFsc28gbWFrZXMgcmVmZXJlbmNlIHRvIHRoZSBm YWN0IHN0YXRpYyBsaW5raW5nIHdhcwo+Pj4+Pj4gb25jZSBwb3NzaWJsZSAoaW4gc29tZSB2ZXJz aW9ucyBvZiB0aGUgZG9jdW1lbnRhdGlvbikgYnV0IG5vdCBzdXBwb3J0ZWQKPj4+Pj4+IGFueW1v cmUgKEkgcHJvYmFibHkgaGF2ZSB0aGUgZG9jcyBtZW1vcml6ZWQgYnkgbm93IGhhLCBoYSAuLi4g SSd2ZQo+Pj4+Pj4gbG9va2VkIGF0IG1hbnksIG1hbnkgdmVyc2lvbnMgb2YgdGhlbSkuCj4+Pj4+ Pgo+Pj4+Pj4gSnVzdCBmb3IgZnVsbCBkaXNjbG9zdXJlIG15IGxkZCBsb29rcyBsaWtlOgo+Pj4+ Pj4KPj4+Pj4+ICAgICAgICAgICBsaW51eC12ZHNvLnNvLjEgKDB4MDAwMGZmZmZhYjE5NjAwMCkK Pj4+Pj4+ICAgICAgICAgICBsaWJmY2dpLnNvLjAgPT4gL3Vzci9saWIvbGliZmNnaS5zby4wICgw eDAwMDBmZmZmYTU3ZjAwMDApCj4+Pj4+PiAgICAgICAgICAgbGlibHR0bmctdXN0LnNvLjEgPT4g L3Vzci9saWIvbGlibHR0bmctdXN0LnNvLjEKPj4+Pj4+ICgweDAwMDBmZmZmYTU3NTAwMDApCj4+ Pj4+PiAgICAgICAgICAgbGlieG1sMi5zby4yID0+IC91c3IvbGliL2xpYnhtbDIuc28uMiAoMHgw MDAwZmZmZmE1NWQwMDAwKQo+Pj4+Pj4gICAgICAgICAgIGxpYnJ0LnNvLjEgPT4gL2xpYi9saWJy dC5zby4xICgweDAwMDBmZmZmYTU1YjAwMDApCj4+Pj4+PiAgICAgICAgICAgbGlibS5zby42ID0+ IC9saWIvbGlibS5zby42ICgweDAwMDBmZmZmYTU1MTAwMDApCj4+Pj4+PiAgICAgICAgICAgbGli c3RkYysrLnNvLjYgPT4gL3Vzci9saWIvbGlic3RkYysrLnNvLjYgKDB4MDAwMGZmZmZhNTJmMDAw MCkKPj4+Pj4+ICAgICAgICAgICBsaWJnY2Nfcy5zby4xID0+IC9saWIvbGliZ2NjX3Muc28uMSAo MHgwMDAwZmZmZmE1MmMwMDAwKQo+Pj4+Pj4gICAgICAgICAgIGxpYmMuc28uNiA9PiAvbGliL2xp YmMuc28uNiAoMHgwMDAwZmZmZmE1MTEwMDAwKQo+Pj4+Pj4gICAgICAgICAgIC9saWIvbGQtbGlu dXgtYWFyY2g2NC5zby4xICgweDAwMDBmZmZmYWIxNWQwMDApCj4+Pj4+PiAgICAgICAgICAgbGli bHR0bmctdXN0LWNvbW1vbi5zby4xID0+Cj4+Pj4+PiAvdXNyL2xvY2FsL2xpYi9saWJsdHRuZy11 c3QtY29tbW9uLnNvLjEgKDB4MDAwMGZmZmZhNTBlMDAwMCkKPj4+Pj4+ICAgICAgICAgICBsaWJs dHRuZy11c3QtdHJhY2Vwb2ludC5zby4xID0+Cj4+Pj4+PiAvdXNyL2xvY2FsL2xpYi9saWJsdHRu Zy11c3QtdHJhY2Vwb2ludC5zby4xICgweDAwMDBmZmZmYTUwYTAwMDApCj4+Pj4+PiAgICAgICAg ICAgbGlicHRocmVhZC5zby4wID0+IC9saWIvbGlicHRocmVhZC5zby4wICgweDAwMDBmZmZmYTUw ODAwMDApCj4+Pj4+PiAgICAgICAgICAgbGliei5zby4xID0+IC9saWIvbGliei5zby4xICgweDAw MDBmZmZmYTUwNTAwMDApCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4KPj4+Pj4gSSBmaW5kIGl0IHZlcnkg c3VzcGljaW91cyB0aGF0IGBsaWJsdHRuZy11c3Quc28uMWAgaXMgaW4gYC91c3IvbGliYCwKPj4+ Pj4gd2hpbGUgdGhlIG90aGVyIGx0dG5nLXVzdCBsaWJyYXJpZXMgYXJlIGJlaW5nIGxvYWRlZCBm cm9tIGAvdXNyL2xvY2FsL2xpYmAuCj4+Pj4KPj4+PiBTbyBZb2N0byBwdXRzIGFsbCBvZiB0aGUg bHR0bmcgbGlicyBpbnRvIC91c3IvbGliLiAgV2hlbiBJIHNlbnQgdGhlCj4+Pj4gcHJldmlvdXMg aW5mbyBJIHdhcyB1c2luZyBsdHRuZy10b29scyBhbmQgbW9kdWxlcyBidWlsdCBieSBZb2N0by9P RQo+Pj4+IGFuZCBJIHNldHVwIGEgbmF0aXZlIGJ1aWxkIGVudmlyb25tZW50IG9uIHRoZSB0YXJn ZXQgc28gSSBjb3VsZCBydW4KPj4+PiAnbWFrZSBjaGVjaycgZXRjLiwgYW5kIHRoYXQncyB3aHkg dGhlcmUgd2VyZSB0aGluZ3MgaW4gL3Vzci9sb2NhbC9saWIKPj4+PiBiZWNhdXNlIHRoYXQncyB3 aGVyZSB5b3UgZ3V5cyB3YW50IHN0dWZmIHRvIGJlLiAgU28gSSBhY3R1YWxseSBsZWZ0Cj4+Pj4g dGhlIGx0dG5nLXVzdCBpbnN0YWxsYWJsZXMgaW4gL3Vzci9sb2NhbC9idWlsZCBidXQgYWxzbyBj b3BpZWQgdGhlbSB0bwo+Pj4+IC91c3IvbGliIHRvIG92ZXJ3cml0ZSBvbGQgWW9jdG8gdmVyc2lv bnMgdGhlcmUuCj4+Pj4KPj4+Cj4+PiBJdCdzIG5vdCBzbyBtdWNoIHRoYXQgaXQncyAid2hlcmUg d2Ugd2FudCBpdCB0byBiZSIuIFRoZSBkb2N1bWVudGF0aW9uCj4+PiB1c2VzIGAvdXNyL2xvY2Fs L2xpYmAgYmVjYXVzZSBgL3Vzci9sb2NhbGAgaXMgbWVhbnQgZm9yIHNvZnR3YXJlCj4+PiBpbnN0 YWxsZWQgYnkgdGhlIHN5c2FkbWluIGFkbWluaXN0cmF0b3IsIGFzIGlzIHRoZSBjYXNlIHdoZW4g YnVpbGRpbmcgYQo+Pj4gY3VzdG9tIHZlcnNpb24uIGAvdXNyL2xpYmAgc2hvdWxkIGJlIHVzZWQg YnkgcGFja2FnZXMgc2hpcHBlZCB3aXRoIHRoZQo+Pj4gc3lzdGVtLgo+Pj4KPj4+IEMuZi4gaHR0 cHM6Ly9yZWZzcGVjcy5saW51eGZvdW5kYXRpb24ub3JnL0ZIU18zLjAvZmhzL2NoMDRzMDkuaHRt bAo+Pj4KPj4+IFlvdSdyZSBmcmVlIHRvIGRvIGFzIHlvdSBzZWUgZml0LCBidXQgd2hlbiB5b3Ug c3RhcnQgbWl4aW5nIGFuZCBtYXRjaGluZwo+Pj4gbGlicmFyaWVzIGFuZCBzb21lIGFyZSBwdXQg aW4gL3Vzci9saWIgYnkgeW91ciBzeXN0ZW0gcGFja2FnZXMgYW5kIHNvbWUKPj4+IHlvdSBtb3Zl IHRoZXJlIG1hbnVhbGx5IEkgZmluZCBpdCBtb3JlIGRpZmZpY3VsdCB0byBmb2xsb3cgd2hhdCBp cyBnb2luZyBvbi4KPj4+Cj4+Pj4+Cj4+Pj4+IFRoaXMgaW5mb3JtYXRpb24gYWxzbyBtYXRjaGVz IHRoZSBzdGF0ZWR1bXAgYW5kIHRoZSBMRF9ERUJVRyBpbmZvIGZyb20KPj4+Pj4gbGF0ZXIgb24u Cj4+Pj4+Cj4+Pj4+IENvdWxkIHlvdSB2ZXJpZnkgc29tZSBvZiB0aGUgZm9sbG93aW5nIGluZm9y bWF0aW9uOgo+Pj4+Pgo+Pj4+PiAxLiBJbiB5b3VyIGJ1aWxkIHJvb3QgZm9yIGx0dG5nLXVzdCwg ZW51bWVyYXRlIGFsbCB0aGUgbGlibHR0bmcqc28KPj4+Pj4gZmlsZXMuIEZvciBlYWNoIHNoYXJl ZCBvYmplY3QsIHJ1biBgZmlsZSAkbGlibmFtZWAgYW5kIHJlY29yZCB0aGUgdmFsdWUKPj4+Pj4g b2YgdGhlIEJ1aWxkSUQgaGFzaC5SNWpvdwo+Pj4+Cj4+Pj4gU29ycnksIEknbSBub3QgZm9sbG93 aW5nIHlvdSBoZXJlLiAgVGhlIG9ubHkgYnVpbGRJRCBoYXNoIEkgY2FuIHRoaW5rCj4+Pj4gb2Yg aXMgd2l0aCAnZXUtdW5zdHJpcCAtbicgYnV0IHRoYXQncyBvbiBjb3JlIGZpbGVzLCBub3QgaW5k aXZpZHVhbAo+Pj4+IGxpYnMuICBBbmQgbG9va2luZyBhdCB0aGUgb3B0aW9ucyBJIGhhdmUgZm9y ICdmaWxlJyBvbiBteSB0YXJnZXQsIEkKPj4+PiBkb24ndCBzZWUgYW55dGhpbmcgdGhhdCBsb29r cyBsaWtlIHdoYXQgeW91IGFyZSBhc2tpbmcuCj4+Pgo+Pj4gUGVyaGFwcyBJIHdhc24ndCBjbGVh ciwgdGhlIGNvbW1hbmQgdG8gcnVuIGlzIHJlYWxseSBqdXN0IGBmaWxlYC4gQXMgYQo+Pj4gZnVs bGVyIGV4YW1wbGU6Cj4+Pgo+Pj4gYGBgCj4+PiAkIGZpbGUgLi9zcmMvbGliL2x0dG5nLXVzdC1m b3JrLy5saWJzL2xpYmx0dG5nLXVzdC1mb3JrLnNvLjEuMC4wCj4+PiAuL3NyYy9saWIvbHR0bmct dXN0LWZvcmsvLmxpYnMvbGlibHR0bmctdXN0LWZvcmsuc28uMS4wLjA6IEVMRiA2NC1iaXQKPj4+ IExTQiBzaGFyZWQgb2JqZWN0LCB4ODYtNjQsIHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5 IGxpbmtlZCwKPj4+IEJ1aWxkSURbc2hhMV09YjJiNGEwZmM0NDljZjMxN2UzMmMyM2UwYmI1N2Vh MWFkNzAyYjcwMiwgd2l0aCBkZWJ1Z19pbmZvLAo+Pj4gbm90IHN0cmlwcGVkCj4+Cj4+IE9rLCBm ZWVsIHN0dXBpZCBub3cuICBXaGVuIEkgcmFuIHRoZSBjb21tYW5kIGJlZm9yZSwgSSB1c2VkIHNo b3J0IG5hbWUKPj4gYW5kIGRpZG4ndCBkbyBpdCBvbiB0aGUgbG9uZyBuYW1lIGFuZCBqdXN0IGdv dCBiYWNrOgo+Pgo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmctdXN0LnNvCj4+IC91c3IvbGli L2xpYmx0dG5nLXVzdC5zbzogc3ltYm9saWMgbGluayB0byBsaWJsdHRuZy11c3Quc28uMS4wLjAK Pj4KPj4gLi4uIGFuZCBpbW1lZGlhdGVseSBsb29rZWQgYXQgbWFuIHBhZ2UgdG8gdHJ5IHRvIGZp Z3VyZSBvdXQgd2hhdAo+PiBzd2l0Y2ggc2hvd2VkIEJ1aWxkSUQgZXRjLiwgaGEsIGhhLgo+Pgo+ PiBXaGVuIEkgZG8gaXQgb24gbG9uZyBuYW1lIGhlcmUgaXMgd2hhdCBJIHNlZToKPj4KPj4gIyBm aWxlIC91c3IvbGliL2xpYmx0dG5nLXVzdC1jb21tb24uc28uMS4wLjAKPj4gL3Vzci9saWIvbGli bHR0bmctdXN0LWNvbW1vbi5zby4xLjAuMDogRUxGIDY0LWJpdCBMU0Igc2hhcmVkIG9iamVjdCwK Pj4gQVJNIGFhcmNoNjQsIHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4g QnVpbGRJRFtzaGExXT1hNTBjOWE3NzE2M2I2YjkxZTFmODRlNTdkMTY3YzdiNzdhZTcwN2EzLCB3 aXRoCj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0 bmctdXN0LWN0bC5zby41LjAuMAo+PiAvdXNyL2xpYi9saWJsdHRuZy11c3QtY3RsLnNvLjUuMC4w OiBFTEYgNjQtYml0IExTQiBzaGFyZWQgb2JqZWN0LCBBUk0KPj4gYWFyY2g2NCwgdmVyc2lvbiAx IChTWVNWKSwgZHluYW1pY2FsbHkgbGlua2VkLAo+PiBCdWlsZElEW3NoYTFdPTU0N2NjY2FjMDg3 MjFlZDFjOWE3ZjNjN2ViZjFkZTg0ZGRiYTdmYmEsIHdpdGgKPj4gZGVidWdfaW5mbywgbm90IHN0 cmlwcGVkCj4+ICMgZmlsZSAvdXNyL2xpYi9saWJsdHRuZy11c3QtY3lnLXByb2ZpbGUtZmFzdC5z by4xLjAuMAo+PiAvdXNyL2xpYi9saWJsdHRuZy11c3QtY3lnLXByb2ZpbGUtZmFzdC5zby4xLjAu MDogRUxGIDY0LWJpdCBMU0Igc2hhcmVkCj4+IG9iamVjdCwgQVJNIGFhcmNoNjQsIHZlcnNpb24g MSAoU1lTViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVpbGRJRFtzaGExXT1hZDVmNzFlZjVl ODNhYjlhOTcyNDg4OTc2YzQ3ZGIyNjVkMzM2MGI5LCB3aXRoCj4+IGRlYnVnX2luZm8sIG5vdCBz dHJpcHBlZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmctdXN0LWN5Zy1wcm9maWxlLnNvLjEu MC4wCj4+IC91c3IvbGliL2xpYmx0dG5nLXVzdC1jeWctcHJvZmlsZS5zby4xLjAuMDogRUxGIDY0 LWJpdCBMU0Igc2hhcmVkCj4+IG9iamVjdCwgQVJNIGFhcmNoNjQsIHZlcnNpb24gMSAoU1lTViks IGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVpbGRJRFtzaGExXT1jMmMyNDZjMTk3M2JkMzI0MWFh NGY3MjI5ZmNiY2IyN2ViZTA4ZTgyLCB3aXRoCj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+ PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmctdXN0LWRsLnNvLjEuMC4wCj4+IC91c3IvbGliL2xp Ymx0dG5nLXVzdC1kbC5zby4xLjAuMDogRUxGIDY0LWJpdCBMU0Igc2hhcmVkIG9iamVjdCwgQVJN Cj4+IGFhcmNoNjQsIHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVp bGRJRFtzaGExXT02MDgyZWU4OGM5Mzk0MzE5YmMzYWRmZjE2YjBiM2VhOWY4ZDU0OWVjLCB3aXRo Cj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmct dXN0LWZkLnNvLjEuMC4wCj4+IC91c3IvbGliL2xpYmx0dG5nLXVzdC1mZC5zby4xLjAuMDogRUxG IDY0LWJpdCBMU0Igc2hhcmVkIG9iamVjdCwgQVJNCj4+IGFhcmNoNjQsIHZlcnNpb24gMSAoU1lT ViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVpbGRJRFtzaGExXT1hMjgxMzI0NWFmOTFhYmU5 ODYxNTc3MWRmZDdkNWYxOWIwMzNhNDEwLCB3aXRoCj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBl ZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmctdXN0LWZvcmsuc28uMS4wLjAKPj4gL3Vzci9s aWIvbGlibHR0bmctdXN0LWZvcmsuc28uMS4wLjA6IEVMRiA2NC1iaXQgTFNCIHNoYXJlZCBvYmpl Y3QsIEFSTQo+PiBhYXJjaDY0LCB2ZXJzaW9uIDEgKFNZU1YpLCBkeW5hbWljYWxseSBsaW5rZWQs Cj4+IEJ1aWxkSURbc2hhMV09ODZhZmE1MzgwODUwMjg3MzgzMGMwMjI5MGY0NzdkNGZmODAxM2Fm Yiwgd2l0aAo+PiBkZWJ1Z19pbmZvLCBub3Qgc3RyaXBwZWQKPj4gIyBmaWxlIC91c3IvbGliL2xp Ymx0dG5nLXVzdC1saWJjLXdyYXBwZXIuc28uMS4wLjAKPj4gL3Vzci9saWIvbGlibHR0bmctdXN0 LWxpYmMtd3JhcHBlci5zby4xLjAuMDogRUxGIDY0LWJpdCBMU0Igc2hhcmVkCj4+IG9iamVjdCwg QVJNIGFhcmNoNjQsIHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVp bGRJRFtzaGExXT01MmYzOTE4NzVhMzc4YjVmMmM0Njc0N2E1ODAyMGI4NmNiN2M5YTgzLCB3aXRo Cj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmct dXN0LXB0aHJlYWQtd3JhcHBlci5zby4xLjAuMAo+PiAvdXNyL2xpYi9saWJsdHRuZy11c3QtcHRo cmVhZC13cmFwcGVyLnNvLjEuMC4wOiBFTEYgNjQtYml0IExTQiBzaGFyZWQKPj4gb2JqZWN0LCBB Uk0gYWFyY2g2NCwgdmVyc2lvbiAxIChTWVNWKSwgZHluYW1pY2FsbHkgbGlua2VkLAo+PiBCdWls ZElEW3NoYTFdPTcxMjcyMjNhN2U4ZWQ2N2M2Njk3Yjk1YWUxZjhhYzEwN2RmN2U0N2UsIHdpdGgK Pj4gZGVidWdfaW5mbywgbm90IHN0cmlwcGVkCj4+ICMgZmlsZSAvdXNyL2xpYi9saWJsdHRuZy11 c3QtdHJhY2Vwb2ludC5zby4xLjAuMAo+PiAvdXNyL2xpYi9saWJsdHRuZy11c3QtdHJhY2Vwb2lu dC5zby4xLjAuMDogRUxGIDY0LWJpdCBMU0Igc2hhcmVkCj4+IG9iamVjdCwgQVJNIGFhcmNoNjQs IHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5IGxpbmtlZCwKPj4gQnVpbGRJRFtzaGExXT01 OTcxYjRkODRlYzFlZmU2MWM2ZDQ3YzM4ZTkyZGUyMDU2OWYwZjQ5LCB3aXRoCj4+IGRlYnVnX2lu Zm8sIG5vdCBzdHJpcHBlZAo+PiAjIGZpbGUgL3Vzci9saWIvbGlibHR0bmctdXN0LnNvLjEuMC4w Cj4+IC91c3IvbGliL2xpYmx0dG5nLXVzdC5zby4xLjAuMDogRUxGIDY0LWJpdCBMU0Igc2hhcmVk IG9iamVjdCwgQVJNCj4+IGFhcmNoNjQsIHZlcnNpb24gMSAoU1lTViksIGR5bmFtaWNhbGx5IGxp bmtlZCwKPj4gQnVpbGRJRFtzaGExXT1jZTcwOTdhZTliYmY0MmEwMmRjY2QzODZmZGZiZDM3ZTMy MjQ4NThiLCB3aXRoCj4+IGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+Pgo+Pgo+PiBjdXR0aW5n IHNvbWUgc3R1ZmYgb3V0IGNhdXNlIGl0J3MgZ2V0dGluZyBsb25nIGFnYWluLgo+Pgo+Pj4KPj4+ IFNvdW5kcyBsaWtlIGBtYWtlIGNoZWNrYCBmb3IgbHR0bmctdG9vbHMgcGFzc2VkIHRoZW4/Cj4+ Cj4+IEF0IGZpcnN0IG5vLiAgQnV0IEkgdGhpbmsgdGhpcyBpcyBiZWNhdXNlIEkgYnVpbHQgdGhl IG5ldyBsdHRuZy10b29scwo+PiBpbiBteSBvbiB0YXJnZXQgbmF0aXZlIGVudmlyb25tZW50IGFu ZCByYW4gbWFrZSBjaGVjayBhbmQgZm9yZ290IHRvIGRvCj4+IG1ha2UgaW5zdGFsbCBmaXJzdCwg c28gaXQgd2FzIHVzaW5nIHRoZSBvbGRlciB2ZXJzaW9uIG9mIGx0dG5nLXRvb2xzLgo+Pgo+PiBT byB0aGVuIEkgcmFuIG1ha2UgaW5zdGFsbCBvZiBsdHRuZy10b29scyBhbmQgZXZlbiBkaWQgYSBt YWtlIGNsZWFuCj4+IGFuZCByZWJ1aWxkIG9mIGx0dG5nLXVzdCBhbmQgcmUtaW5zdGFsbGVkIGl0 IGFuZCByYW4gbWFrZSBjaGVjayBvbgo+PiBib3RoIChhbmQgdGhpbmdzIGxvb2tlZCBhIGxvdCBi ZXR0ZXIpIC4uLiB0aGF0J3Mgd2hlcmUgdGhvc2Ugd2FybmluZ3MKPj4gZXRjLiwgSSBhc2tlZCB5 b3UgYWJvdXQgY2FtZSBmcm9tLgo+Pgo+Pj4KPj4+IE15IHVuZGVyc3RhbmRpbmcgYXQgdGhpcyBw b2ludCBpcyB0aGUgdW5pdCB0ZXN0cyBhcmUgcGFzc2luZyBmb3IKPj4+IExUVG5nLVVTVCBvbiB5 b3VyIHN5c3RlbSwgYXMgYXJlIHRoZSB1bml0IGFuZCByZWdyZXNzaW9uIHRlc3RzIGZvcgo+Pj4g TFRUbmctdG9vbHMuIFRoZSBleGFtcGxlIHByb2dyYW1zIHNoaXBwZWQgd2l0aCBMVFRuZy1VU1Qg d29yayBvbiB5b3VyCj4+PiBzeXN0ZW0sIGFzIGRvZXMgdGhlIGV4YW1wbGUgZnJvbSB0aGUgZG9j dW1lbnRhdGlvbi4gVGhlIHN0YXRlZHVtcAo+Pj4gdHJhY2Vwb2ludHMgbG9hZGVkIGZyb20gTFRU bmctVVNUIGFyZSBhbHNvIHdvcmtpbmcgZmluZSwgYXMgZXZpbmNlZCBieQo+Pj4gdGhlIHByb2dy YW0gbG9ncyBhbmQgdGhlIExUVG5nIHRyYWNlIHlvdSBzaGFyZWQuCj4+Pgo+Pj4gRGVzcGl0ZSBt eSBjb25mdXNpb24gYWJvdXQgaG93IGV4YWN0bHkgeW91J3JlIHVzaW5nIHRoZSBgaGVsbG8gd29y bGRgCj4+PiB0cmFjZXBvaW50IGluIHlvdXIgYXBwbGljYXRpb24gKGFzIHlvdSd2ZSBub3cgZGVz Y3JpYmVkIHNldmVyYWwKPj4+IHZhcmlhdGlvbnMpLCB0aGUgZGlyZWN0aW9uIHRoaXMgcG9pbnRz IHRvIGZvciBtZSBhcmUgZGV0YWlscyByZWxhdGVkIHRvCj4+PiBob3cgeW91J3JlIHVzaW5nIExU VG5nLVVTVCBhbmQvb3IgaG93IGFyZSB5b3VyIGJ1aWxkaW5nIGFuZCBsaW5raW5nIHlvdXIKPj4+ IGFwcGxpY2F0aW9uLiBUbyBiZSBjbGVhciwgSSBkb24ndCBtZWFuIHRvIHNheSB0aGF0IHRoZXJl IGlzIG9yIGlzIG5vdCBhbgo+Pj4gaXNzdWUgaW4gTFRUbmctVVNULCBidXQgdG8gcG9pbnQgYXQg d2hlcmUgdG8gZXhhbWluZSBuZXh0IGluIGRldGFpbAo+Pj4gaW5jbHVkaW5nIGFuYWx5c2lzIG9m IHRoZSBwcm9kdWNlZCBvYmplY3QgZmlsZXMuCj4+Cj4+IEkgY29tcGFyZWQgdGhlIGRvYy9leGFt cGxlcy9oZWxsby1zdGF0aWMtbGliIHRvIHdoYXQgSSBwaWNrZWQgb3V0IG9mCj4+IHRoZSBMVFRu ZyBkb2N1bWVudGF0aW9uIG9uIHRoZSB3ZWIgc2l0ZSAiUXVpY2sgc3RhcnQiIHNlY3Rpb24gYW5k IHRoZQo+PiB0cmFjZXByb3ZpZGVyIGhlYWRkZXIgZmlsZSBpcyBpbmNsdWRpbmcgc3RkZGVmLmgg YW5kIG1pbmUgaXNuJ3QgYW5kCj4+IHRoZSBkb2MvZXhhbXBsZXMvaGVsbG8tc3RhdGljLWxpYi9o ZWxsby5jIGNvZGUgaXMgZG9pbmcgYSBzaWdoYW5kbGVyCj4+IGFuZCBtaW5lIGlzbid0IGRvaW5n IGFueSBvZiB0aGF0IGVpdGhlci4gIEkgdGhpbmsgSSd2ZSBwcm9iYWJseSBwb3N0ZWQKPj4gaXQg YmVmb3JlIGJ1dCB3aWxsIGRvIGl0IGFnYWluLiAgSGVyZSBpcyB3aGF0IEknbSBjYWxsaW5nIG15 ICJoZWxsbyIuCj4+IEl0J3MgZnJvbSB0aGUgbHR0bmcgZG9jdW1lbnRhdGlvbiBidXQgSSBjdXQg aXQgZG93biBldmVuIGZ1cnRoZXIganVzdAo+PiB0byBtYWtlIHN1cmUgSSBkaWRuJ3QgZmF0IGZp bmdlciBzb21ldGhpbmcuICBMaWtlIEkgc2FpZCBiZWZvcmUsIHRoZQo+PiBmdWxsIGhlbGxvIGV4 YW1wbGUgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiB3b3Jrcy4gIEJ1dCB3aGVuIEkgY2FsbAo+PiBw cmV0dHkgbXVjaCB0aGUgc2FtZSBjb2RlIGZyb20gbXkgYXBwIGl0IHNlZyBmYXVsdHMuCj4+Cj4+ IEkgZG9uJ3Qga25vdyBpZiB0aGUgZGlmZmVyZW5jZXMgSSBzZWUgYmV0d2VlbiBteSAiaGVsbG8i IGFuZCB0aGUKPj4gImhlbGxvLXN0YXRpYy1saWIiIG1hdHRlci4KPj4KPj4gaGVsbG8tdHAuaDoK Pj4KPj4gI3VuZGVmIExUVE5HX1VTVF9UUkFDRVBPSU5UX1BST1ZJREVSCj4+ICNkZWZpbmUgTFRU TkdfVVNUX1RSQUNFUE9JTlRfUFJPVklERVIgaGVsbG9fd29ybGQKPj4KPj4gI3VuZGVmIExUVE5H X1VTVF9UUkFDRVBPSU5UX0lOQ0xVREUKPj4gI2RlZmluZSBMVFROR19VU1RfVFJBQ0VQT0lOVF9J TkNMVURFICIuL2hlbGxvLXRwLmgiCj4+Cj4+ICNpZiAhZGVmaW5lZChfSEVMTE9fVFBfSCkgfHwg ZGVmaW5lZChMVFROR19VU1RfVFJBQ0VQT0lOVF9IRUFERVJfTVVMVElfUkVBRCkKPj4gI2RlZmlu ZSBfSEVMTE9fVFBfSAo+Pgo+PiAjaW5jbHVkZSA8bHR0bmcvdHJhY2Vwb2ludC5oPgo+Pgo+PiBM VFROR19VU1RfVFJBQ0VQT0lOVF9FVkVOVCgKPj4gICAgIGhlbGxvX3dvcmxkLAo+PiAgICAgbXlf Zmlyc3RfdHJhY2Vwb2ludCwKPj4gICAgIExUVE5HX1VTVF9UUF9BUkdTKAo+PiAgICAgICAgIGlu dCwgbXlfaW50ZWdlcl9hcmcKPj4gICAgICksCj4+ICAgICBMVFROR19VU1RfVFBfRklFTERTKAo+ PiAgICAgICAgIGx0dG5nX3VzdF9maWVsZF9pbnRlZ2VyKGludCwgbXlfaW50ZWdlcl9maWVsZCwg bXlfaW50ZWdlcl9hcmcpCj4+ICAgICApCj4+ICkKPj4KPj4gI2VuZGlmIC8qIF9IRUxMT19UUF9I ICovCj4+Cj4+ICNpbmNsdWRlIDxsdHRuZy90cmFjZXBvaW50LWV2ZW50Lmg+Cj4+Cj4+IGhlbGxv LXRwLmM6Cj4+Cj4+ICNkZWZpbmUgTFRUTkdfVVNUX1RSQUNFUE9JTlRfQ1JFQVRFX1BST0JFUwo+ Pgo+PiAjaW5jbHVkZSAiaGVsbG8tdHAuaCIKPj4KPj4gIEZyb20gbXlfYXBwOgo+Pgo+PiAjZGVm aW5lIExUVE5HX1VTVF9UUkFDRVBPSU5UX0RFRklORQo+PiAvLyNkZWZpbmUgTFRUTkdfVVNUX1RS QUNFUE9JTlRfUFJPQkVfRFlOQU1JQ19MSU5LQUdFCj4+ICNpbmNsdWRlICJoZWxsby10cC5oIgo+ Pgo+PiAuCj4+IC4KPj4gLgo+PiBsdHRuZ191c3RfdHJhY2Vwb2ludChoZWxsb193b3JsZCwgbXlf Zmlyc3RfdHJhY2Vwb2ludCwgMjMsICJoaSB0aGVyZSEiKTsKPj4KPj4gSW4gdGhlIGFib3ZlIGNh c2UgdGhlIHRwcCBpcyBzdGF0aWMgYnV0IEkndmUgdHJpZWQgdG8gbWFrZSBpdCBhIHNoYXJlZAo+ PiBvYmplY3QgdG9vICh0aHVzIHRoZSBjb21tZW50ZWQgb3V0IERZTkFNSUNfTElOS0FHRSBhYm92 ZSkgYnV0IGdldCB0aGUKPj4gc2FtZSByZXN1bHQuCj4+Cj4+IEFnYWluLCBJIHRoaW5rIHRoZSBp c3N1ZSBpcyBwcm9iYWJseSBnKysgYW5kIHdlYWsvaGlkZGVuIHN5bWJvbAo+PiByZWxhdGVkIGFu ZCBvciBUTFMgYnV0IHRoYXQncyBiYXNlZCBvbiB0aGUgdG90YWxpdHkgb2Ygd2hhdCBJJ3ZlCj4+ IGV4cGVyaWVuY2VkIG92ZXIgdGhlIHBhc3QgeWVhciBvciBzbyBhbmQgc2VlaW5nIHRoZQo+PiBl eHBlcmllbmNlcy9wcm9ibGVtcyBvZiBvdGhlcnMgaW4gdGhlIGx0dG5nLWRldiBhcmNoaXZlcy4K Pj4KPj4gUmVnYXJkcywKPj4KPj4gQnJpYW4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbHR0bmctZGV2IG1haWxpbmcgbGlzdApsdHRuZy1kZXZAbGlzdHMu bHR0bmcub3JnCmh0dHBzOi8vbGlzdHMubHR0bmcub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m by9sdHRuZy1kZXYK