From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id yILyDUd3UGfb1QMAWB0awg (envelope-from ) for ; Wed, 04 Dec 2024 10:37:43 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=Rbw/yRqM; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 34B001E15E; Wed, 4 Dec 2024 10:37:43 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 41AC81E092 for ; Wed, 4 Dec 2024 10:37:41 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D22803858CD9 for ; Wed, 4 Dec 2024 15:37:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D22803858CD9 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=Rbw/yRqM Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20f::7]) by sourceware.org (Postfix) with ESMTPS id EA3023858D20 for ; Wed, 4 Dec 2024 15:36:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EA3023858D20 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=htecgroup.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=htecgroup.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EA3023858D20 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c20f::7 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1733326615; cv=pass; b=VNSWGuAxlfOSDnGwLQIFyRQSdIbvrFkBrG6A2uNH9BFHQlvtA9kmIWTq/qkUsv7siyJEAyaMVRY94vUP5R5bOa6Va5WJGBh6kkEOI8y3S8loZps072j5mYWfmYH0aCX8KasXUYml3UZFntxVF2j7E1Xx+VouISduCfzcldPxuXM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1733326615; c=relaxed/simple; bh=UWSm1VR3Zmwk6DLc2H94df7U/yf5kt62e1AaBOM0q0g=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=UIo7KMrYmfwNQzz45WeqIpgvF9D47DZWg86vdnZzavL8P9mujEnMDbUfohm6X0OMN3Gx3GPIGGL6t7ONKwG+zgCfrymtRuRTQRslO57ilo+Coo4zY5XsTsmOOOR8rYX495uKngOLiQWvjzaunjNhS25JG+CtYV5IqN5Xd6/02W8= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EA3023858D20 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p3tYUYGhn4SiiOBANyUyxpX/EFuRpx6dy1ngv7YlhBZVSitf53E/ScwArdMfZTGYv0N+7xntx6VOZBiKFi2YnT2F6tKL2qP5jquiviH4M/Qmf4xbfNEphU9vMrMEJbpke6TYCSEuzCs+4CH76SA2yL+sW0P2kiba8OqLufrFLtb7pcdzx2bSDHUVgUmnoxFfHLk8ZHQ94B8mmzu9gjdiMbkBqo5EMe77npvqfH4IVKr2rkJdnUPh156xCYHe4CRBpXaApuf6rRdp3FyWVZM4i+rl5vPJofUeB9VSdmUC4e8b4VUeCTjqYRTsilk3dsCK497UQO7TnAQPdG82jN5atA== 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=UWSm1VR3Zmwk6DLc2H94df7U/yf5kt62e1AaBOM0q0g=; b=gLmSQOjR9u+dTu+D54eMF37HpNPpTd/riuolBF9Lovl/PAPltij+RwbPrj5kucmMcsSbbvAUtP3gShWyjNBXLQWS60SMBLK6TYdKfNbpCXUmaX2PXdwqBBt2tFk4z+HDKBmvILdlettDuaPbXof7eNm+X4M3a1FrMle0jN2fRNxysEeoBysUehc4Fj9V2PSXl7yT26RIHaS1jntgMPAstCcHqgJ4RdOcRd9D8QMDhBqfPH74ZlLYrrOhGlKcHEbpcmvTealszX//hThlqBkfjJUtE8MSBzrGqvNr8qglMsGmXbf7PXiRo36mCTFXyBtZNpTlAdLMXA2WyShwZJd3Mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UWSm1VR3Zmwk6DLc2H94df7U/yf5kt62e1AaBOM0q0g=; b=Rbw/yRqM6rYCHaqvDpnF1R612/Z2SeOX15srBUNdQE6HU104cXJ7zFThISRWBilOR/GnwoUa08JNorKdwiMwt1xYFHFLPkMhsiTILVomcpmfLIK5tyhBmwGIzByDPi98hP7tp3qk+hL8b7pO5B4lQFwsyID8NZObIxwloDyNCP1qjv00ZGEuYovl4tcXnTZ98yY+2Cv3RFcCiwfEfUzBIe0LacZsIR9j75Pjqxica1nnspKN1hpMpxJMHRvurXOUtK7kaTMzF7BT/0GBQDLaN/o0ktI6yiomrtWBLkA8IYnzA6oJe4l13LvcRa43JuvZZefJQgGD+2xLPgt5imzZag== Received: from PR3PR09MB4361.eurprd09.prod.outlook.com (2603:10a6:102:36::24) by VI0PR09MB7616.eurprd09.prod.outlook.com (2603:10a6:800:23f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.21; Wed, 4 Dec 2024 15:36:46 +0000 Received: from PR3PR09MB4361.eurprd09.prod.outlook.com ([fe80::5a48:eb91:741a:802c]) by PR3PR09MB4361.eurprd09.prod.outlook.com ([fe80::5a48:eb91:741a:802c%6]) with mapi id 15.20.8230.010; Wed, 4 Dec 2024 15:36:46 +0000 From: Milica Matic To: "gdb-patches@sourceware.org" CC: Djordje Todorovic , "dragan.mladjenovic@htecgroup.com" , Milos Kalicanin , "aburgess@redhat.com" , "simark@simark.ca" , "macro@orcam.me.uk" , "cfu@wavecomp.com" Subject: Re: [PATCH^6] gdb: mips: Add MIPSR6 support Thread-Topic: [PATCH^6] gdb: mips: Add MIPSR6 support Thread-Index: AQHbMf7zfO3Bfvod8U+FmPQX9/uNjLLWU4J7 Date: Wed, 4 Dec 2024 15:36:46 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PR3PR09MB4361:EE_|VI0PR09MB7616:EE_ x-ms-office365-filtering-correlation-id: 4b03d830-c41f-40ee-b615-08dd1479765b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|7053199007|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?UG5KcU4zVTJQRzB6RXE3aGhiOGR1UHhsMENGRlMvQ2RnWEF6dVZCWXNZVlI2?= =?utf-8?B?MTR1ZTYyTldmb1R3T3FxQ2wrWUhKd1pJVnlCbHg0bEtYcUpuS2YySzBKeDh4?= =?utf-8?B?RVdmcGRUL215Qm9nTm9ubktvZlByeXlnNnZCK2k0Z1FtNHhYUmxyVDZqc0Jn?= =?utf-8?B?ZVNBSXpOWFNUdS81bnVEWU9XczRhUTF5MUVId1F4UjRTcFpmM2kwSlVIUnUr?= =?utf-8?B?ck5NSVRYTzNrdFlneHFpZTZNYjZQZFBSZ0JXOE1tUHNmUysvbkwxempQUGZ0?= =?utf-8?B?bndEdWYxWktydmNRMUpYbSsyQTc1bGRBdXA0ektZSk1hVXRrMmVKeldpbXcw?= =?utf-8?B?TXIwY00rbk1zcEhDTElvQkN1dVNPNll2Uk93VDNQbnNsWFVobzJ5QklZV1VS?= =?utf-8?B?b21WTno5Ujh1N1lkOHFWTllnSHMwN2pFYWd1ZXJuY2RLejEvd0FyZ20rakZS?= =?utf-8?B?cmxFSGk1RllWKzhnbjhNN2RNcE5iOUFNNFRKZTVOY1Rsck5wSEVsNllJekJI?= =?utf-8?B?eHJFWHU5OWdqeDBsTC9RWkd6cEtzcjVDRnVMWEc1cTF2L1llUnBVNTIrb21M?= =?utf-8?B?K3JtNFRiZUVPdkJycS90MFc4TVdlRWpKT1dYazIzMlgzcUlEeE5XVkk2SWRl?= =?utf-8?B?Ky84NngxM3RMNG00TnZTTXF2L2lwOHYya1grUkoyMU5KL3ZIWElkMGFiQlZF?= =?utf-8?B?YTV5Y3hVSDc0c2x5S3E4cXUrdVFGNGF4T1FqemlFQUlOSG84SERhY1NCaHpS?= =?utf-8?B?cXp4NGNtaXVQTGt1aEtwSDZ3dW5mQVZqNGlTNURZeWxtTUlocjJKUmhua3dI?= =?utf-8?B?UWpKUGZibE5PdmdNYkZRWDIzczQ1MWJCdHE1NHQyL1Flalp2RmVqeFRLVGF2?= =?utf-8?B?eXp4d3hQc3ExL0NPSTYrZFlCalBqUVNwRmtRNldBSDlyZlA1Z0daci9VM1FU?= =?utf-8?B?dlRnRU9YUkp3U1ZaSkxHU0NJbkk1aDZ5OWlMek5YSWhDRUxBeHFwc3AvZ1kz?= =?utf-8?B?dFhpQ3I4dVcrK1lmUmZwK0g0MFVVOG9tSDBLbDZkdW8yU3hSNHRncE9vMHF6?= =?utf-8?B?VmdwQ2Vuc091SFgxajl0MUFVQ1RHdEl1NDlBaHM5enE5OG1XZ1A0MUZyQ252?= =?utf-8?B?TUZBTjZiVDlYZGtwaEg2OWoxa3p3WEhlVUlsUFhwaVFLYXN2cUhpbjR0cmY4?= =?utf-8?B?RUdMMksxMkg0ZmFaTm5UbEU0a2E2amdSdEN6UXBHWktEaE4vakFPNjdyM01I?= =?utf-8?B?TC8xN0pMa2JKSUJXMGtBU21hYnkyVHBmY0JkNkxLaEFJZVhxZ0lnc1FBUWZD?= =?utf-8?B?ZkNKTFRzNExLNm0vWXNvdGY5RklQc2I0WHZwdmlKOUc1SEk1MzNuU2JxVHo0?= =?utf-8?B?eVdnWEJSUUh3aDNJcmY3ZEdTd2ZrL0JQWUZKVmVXT2tCSzJ0K01GbGNsWTdV?= =?utf-8?B?cmV5ZllFbTFyK1ZCcDJTTjlpZC83SStTR0ZVRFVOWmxma28vVXZBanJTdkt3?= =?utf-8?B?SmZuMFZpUmFDeVNJdDBkRmdNeDBFbUZlbE9TRmwyMm1aVTc3QjRnQ1kvZm5x?= =?utf-8?B?RUZ6Ykp0Q21lQUEwUDFRTXh5U09zZEVsOUhrL3RSMnZ1azJlMzVUZlVTTkQ1?= =?utf-8?B?eXVYNlh0K21tWlhvQXhDcFFPOWJjYW9wOGRTWTh2ZVhFYXBMMjk0Sk5ZSmxn?= =?utf-8?B?eE5Ca0Q5N2VCOWpuRFk0TU9ub1FsbEhBaFNnZjV1c3NHd3cvMmpFM0dTUGZa?= =?utf-8?B?ZHg4ODhYVitYS2RRU2VXRks1WVFETDV3ZWFLL0pqaStLR1Y1VVVpZ1lLdHlV?= =?utf-8?Q?LJVGylMXinZciM2AbMSyoAtsU5izLXhYQsG+4=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PR3PR09MB4361.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(7053199007)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZXY0U2l5THhEMWhjRFYrN01JNHVNcG5maXF1RXRJdm9weVdwa2JLQ0Zpc3dh?= =?utf-8?B?dklxbHYxVE5hamVrT0oxbUVkRlpPTWlIUEtFTUtTTXJiYUdqSHM5d0xacUpw?= =?utf-8?B?YnhMb2Z1bFdIcTVzWktLWnZtajUzSUlsL3ppYVV0T2FtS1hlTDJsdTA4Q3Ny?= =?utf-8?B?RFhtM29uZHdENkdtVng1a0ZDYnVaTzBMdjdkdmpsMDdodGhaRXU3TkVQQUpF?= =?utf-8?B?VzlGeG1GWFBRbE1IWlRsN1oyaE1sMUZHUm9PZ29hREVmSUN1ZStRZXpQYURW?= =?utf-8?B?cVhwejBDZWxMbkhUYnQ2TmpkV3lxMlFhTktwS0tZdFJ1QzhGWmN4KzltZWdy?= =?utf-8?B?dDFXcEdaRmdyMTBaRWQvcnd4aXlNay9mZnNqQ0trNUgzNGNENWVMSVhzYXB3?= =?utf-8?B?ZDBMOG9MaHN6VFpXRVhsWUJOK0I4ZmltWm5GbDZHY0JVUGdyeDdmZ1pDK0JV?= =?utf-8?B?dEhMazF1VFpJS0RDWFh3dWNzWnBuRURBSUpvN2pPUG5qTGIzWkJVQjRMbWkv?= =?utf-8?B?RWZwNjE5UUtkdHFJT0tTLytZTExoTVpVQ2poTHlrMUNxRjdFczlZTXNlRXkz?= =?utf-8?B?SnpRQTdyeWgrbTVYUFNjNnBUMElaeXdPQVc3QW1FT09XTDJQbjVJY0JmNW93?= =?utf-8?B?dXRoYUVhWTNNMXpyaWFSaUpyVnJvQlRrcmtTNHhVSmVIZnpXa0ZIdGlDdyt6?= =?utf-8?B?dDdqOXg5V2UyOHhOZ2JRdVdwZ3FYcFZndzR3Ykpnb2ZLRlpwbEl1VW0yRjJL?= =?utf-8?B?YjBaWUdqd2tFU2JRYVJxTDd4S1kwRzAzZlZKaHZUR3NIOXp2aGE0ek5MenZs?= =?utf-8?B?NkV5VW5VNXhNNncwdnlXUDRKeUxUdmxLMzNNZmFpUnFmTVhnZFNaTXdKRXdp?= =?utf-8?B?NG5IMUhHSFRHalZMNTQvYlRoV0djaEQ0KzNURUFLMWNZWEROT2xYeU1vRmZV?= =?utf-8?B?TFpRTlZ4MjZvRXBxMmRGcGtNN3RKdGNRTVZUakVmS0p5YUlDcmRCR1k1REFY?= =?utf-8?B?YlVnRnFsOVdtNkV4eXlTcWxTZVhOSFJSTVpmSWtEQlFXKzdFYk9YbkVJMzF1?= =?utf-8?B?b2tXTXc0T202R08wbSt6amlmSkRxcU04N3hvRDF4SzlVNkZKWFlHTzFkc3FJ?= =?utf-8?B?R2RHMUV0ZmlzZkgvRnpBU1FXY1RPS2ZmUjNBUmI3VkJmcHgwNjVtYm12Wis5?= =?utf-8?B?TEpOTVFuV3gxSVVreERiYjJUODlmSEtZb1p2WjgvaVlsOGxSRDFjNEI3NkQy?= =?utf-8?B?MGt5eTJHSUhJNExCVEhKeGdjVlhEQkZ0bnZSMEZCYi9EdW5GT2o0Mk5jZDJ6?= =?utf-8?B?WmlFWVV2MjBDQ0tXNE01cVNVWXRxamtMZTFpS29Ic05lcXc2SnMvNERFZnJt?= =?utf-8?B?UzZMdCs0Sjl1eFppZG9taE1yak9TUFFDb2V6R0NYNGlDaHE0cE9ZUVd0MytE?= =?utf-8?B?QjBmUUlzME9jVmEvd1VMWENYOE1aSFpBbzRyZUxRdUN4ZGZBaU1QeUorWFNU?= =?utf-8?B?K3pXUlVtWHZWMmdGKzNFQWlYcW8veUJhaXQ1a3hyOWl3Y0RWUmxXNi8xcCs2?= =?utf-8?B?ZWtOWm5VTzlNbE1xWkV4Q1RtSU0rTllBcWpHdGRoMHpqWTZ6Y0NGTnRiQ3d6?= =?utf-8?B?bkIxSnpLMjFTcHppdU9VYk4vR0MzNkcrTHdBbVlPWGZBdVRnVEFIUHh5eUc5?= =?utf-8?B?cGpRT0tiZlFYd0ZJazFCQnlCSWxFeWtpeU1ZRlArVXdRQml6VHcrU2VVcklj?= =?utf-8?B?dUpMMDZNYU1VaWdMc2g0dW4rNEEvMFE3b09HS3p1blIrTktWdmNwRkJmNmNQ?= =?utf-8?B?SUVsNE5nVy9mZTBFWTUyS1lBc0RNRTNKYnNTOFlYRmp2OWNabGh6T09oQmht?= =?utf-8?B?Wm1EbldmWjgxYkI4c2MzMkE0bVpLMGhZQ05rYWltTklpV3Rqcm5WQWRXVTZa?= =?utf-8?B?cEg0RysyNFdOSStEQ202ZzhPNkI4bFVwaUNRQVhIN2tKbjEyQXFjZ2c0R1FE?= =?utf-8?B?akRLQmRnQnY3bWpBZ1BBdnNNaVdEd0k5d3JkeVdwZmVDdW1OZG5rczJYWkNR?= =?utf-8?B?QzNFQVN4M0tabklsenVZUXFaa29LTkxFWW9VYWxNRGx1eHRUSm1Ha2MxVjZF?= =?utf-8?Q?FJQaQDHA3klecIMpUWHEFbVLV?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PR3PR09MB4361.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b03d830-c41f-40ee-b615-08dd1479765b X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2024 15:36:46.5514 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mMe7nlbd0qYBHb9gOLr/CEd4JeUcVAe+a5+FmIhjK46vRasxYm5jhmGpNGcliLbuDf04sHcvuZo5S+/hkSi4wrXmWkERvWJUl8L4UxtSNwk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR09MB7616 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org UGluZy4KCkNhbiB5b3UgcGxlYXNlIHByb3ZpZGUgZmVlZGJhY2s/ClRoYW5rIHlvdSB2ZXJ5IG11 Y2ggaW4gYWR2YW5jZS4KCgpNaWxpY2EKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJvbTogTWlsaWNhIE1hdGljIDxtaWxpY2EubWF0aWNAaHRlY2dyb3VwLmNvbT4K U2VudDogRnJpZGF5LCBOb3ZlbWJlciA4LCAyMDI0IDIwOjIwClRvOiBnZGItcGF0Y2hlc0Bzb3Vy Y2V3YXJlLm9yZwpDYzogRGpvcmRqZSBUb2Rvcm92aWM7IGRyYWdhbi5tbGFkamVub3ZpY0BodGVj Z3JvdXAuY29tOyBNaWxvcyBLYWxpY2FuaW47IGFidXJnZXNzQHJlZGhhdC5jb207IHNpbWFya0Bz aW1hcmsuY2E7IG1hY3JvQG9yY2FtLm1lLnVrOyBjZnVAd2F2ZWNvbXAuY29tClN1YmplY3Q6IFtQ QVRDSF42XSBnZGI6IG1pcHM6IEFkZCBNSVBTUjYgc3VwcG9ydAoKSW50cm9kdWNlIG5ldyBpbnN0 cnVjdGlvbiBlbmNvZGluZ3MgZnJvbSBSZWxlYXNlIDYgb2YgdGhlIE1JUFMKYXJjaGl0ZWN0dXJl IFsxXS4gU3VwcG9ydCBicmVha3BvaW50cyBhbmQgc2luZ2xlIHN0ZXBwaW5nIHdpdGgKY29tcGFj dCBicmFuY2hlcywgZm9yYmlkZGVuIHNsb3RzLCBuZXcgYnJhbmNoIGluc3RydWN0aW9uIGFuZApu ZXcgYXRvbWljIGxvYWQtc3RvcmUgaW5zdHJ1Y3Rpb24gZW5jb2RpbmdzLgoKQ2hhbmdlcyBmcm9t IHY1OiBTeW5jIHdpdGggY3VycmVudCBtYXN0ZXIuCgpbMV0gIk1JUFM2NCBBcmNoaXRlY3R1cmUg Zm9yIFByb2dyYW1tZXJzIFZvbHVtZSBJSS1BOiBUaGUgTUlQUzY0CiAgICBJbnN0cnVjdGlvbiBT ZXQgUmVmZXJlbmNlIE1hbnVhbCIsIERvY3VtZW50IE51bWJlcjogTUQwMDA4NywKICAgIFJldmlz aW9uIDYuMDYsIERlY2VtYmVyIDE1LCAyMDE2LCBTZWN0aW9uIDMgIlRoZSBNSVBTNjQKICAgIElu c3RydWN0aW9uIFNldCIsIHBwLiA0Mi01MzAKaHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdz LmNvbS9kb3dubG9hZHMtbWlwcy9kb2N1bWVudHMvTUQwMDA4Ny0yQi1NSVBTNjRCSVMtQUZQLTYu MDYucGRmCgoyMDI0LTA1LTE1CkFuZHJldyBCZW5uZXR0ICA8YW5kcmV3LmJlbm5ldHRAaW1ndGVj LmNvbT4KTWF0dGhldyBGb3J0dW5lICA8bWF0dGhldy5mb3J0dW5lQG1pcHMuY29tPgpGYXJheiBT aGFoYmF6a2VyICA8ZnNoYWhiYXprZXJAd2F2ZWNvbXAuY29tPgoKZ2RiL0NoYW5nZUxvZzoKICAg ICAgICAqIG1pcHMtdGRlcC5jIChpc19taXBzcjZfaXNhKTogTmV3LgogICAgICAgIChiMHMyMV9p bW0pOiBOZXcgZGVmaW5lLgogICAgICAgIChtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0MjEsIG1pcHMz Ml9yZWxhdGl2ZV9vZmZzZXQyNik6IE5ldy4KICAgICAgICAoaXNfYWRkMzJiaXRfb3ZlcmZsb3cs IGlzX2FkZDY0Yml0X292ZXJmbG93KTogTmV3LgogICAgICAgIChtaXBzMzJfbmV4dF9wYyk6IEhh bmRsZSByNiBjb21wYWN0IGFuZCBmcHUgY29wcm9jZXNzb3IgYnJhbmNoZXMuCiAgICAgICAgTW92 ZSBoYW5kbGluZyBvZiBCTEVaLCBCR1RaIG9wY29kZSBpbnRvIC4uLgogICAgICAgIChtaXBzMzJf Ymxlel9wYyk6IE5ldy4KICAgICAgICAobWlwczMyX2luc3RydWN0aW9uX2lzX2NvbXBhY3RfYnJh bmNoKTogTmV3LgogICAgICAgIChtaXBzMzJfaW5zbl9hdF9wY19oYXNfZm9yYmlkZGVuX3Nsb3Qp OiAgTmV3LgogICAgICAgIChtaXBzMzJfc2Nhbl9wcm9sb2d1ZSk6IElnbm9yZSBwcmUtcjYgYWRk aSBlbmNvZGluZyBvbiByNi4KICAgICAgICBTdG9wIGF0IGNvbXBhY3QgYnJhbmNoIGFsc28uCiAg ICAgICAgKExMU0NfUjZfT1BDT0RFLExMX1I2X0ZVTkNULExMRV9GVU5DVCwKICAgICAgICBMTERf UjZfRlVOQ1QsU0NfUjZfRlVOQ1QsU0NFX0ZVTkNULAogICAgICAgIFNDRF9SNl9GVU5DVDogTmV3 IGRlZmluZXMuCiAgICAgICAgKGlzX2xsX2luc24sIGlzX3NjX2luc24pOiBOZXcuCiAgICAgICAg KG1pcHNfZGVhbF93aXRoX2F0b21pY19zZXF1ZW5jZSk6IFVzZSBpc19sbF9pbnNuL2lzX3NjX2lu c24uCiAgICAgICAgSGFuZGxlIGNvbXBhY3QgYnJhbmNoZXMuCiAgICAgICAgKG1pcHNfYWJvdXRf dG9fcmV0dXJuKTogSGFuZGxlIGpyYyBhbmQgbWFjcm8ganIuCiAgICAgICAgKG1pcHMzMl9zdGFj a19mcmFtZV9kZXN0cm95ZWRfcCk6IExpa2V3aXNlLgogICAgICAgIChtaXBzMzJfaW5zdHJ1Y3Rp b25faGFzX2RlbGF5X3Nsb3QpOiBEb24ndCBoYW5kbGUgSkFMWCBvbiByNi4KICAgICAgICBIYW5k bGUgY29tcGFjdCBicmFuY2hlcyBhbmQgY29wcm9jZXNzb3IgYnJhbmNoZXMuCiAgICAgICAgKG1p cHNfYWRqdXN0X2JyZWFrcG9pbnRfYWRkcmVzcyk6IFNraXAgZm9yYmlkZGVuIHNsb3QgZm9yCiAg ICAgICAgY29tcGFjdCBicmFuY2hlcy4KCgoKCi0tLQogZ2RiL21pcHMtdGRlcC5jICAgICAgICAg ICAgICAgICAgICAgICB8IDUzNCArKysrKysrKysrKysrLS0KIGdkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvbWlwcy02NC1yNi5jICAgfCA5MTggKysrKysrKysrKysrKysrKysrKysrKysrKysKIGdkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvbWlwcy02NC1yNi5leHAgfCAgNzYgKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE0ODQgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9taXBzLTY0LXI2LmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuZXhwCgpkaWZmIC0tZ2l0IGEvZ2Ri L21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCmluZGV4IGMwMGVmYmQwMmFkLi4xNzNiZmUw YjhmOCAxMDA2NDQKLS0tIGEvZ2RiL21pcHMtdGRlcC5jCisrKyBiL2dkYi9taXBzLXRkZXAuYwpA QCAtNzYsNiArNzYsMTAgQEAgc3RhdGljIGludCBtaXBzMTZfaW5zbl9hdF9wY19oYXNfZGVsYXlf c2xvdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiBzdGF0aWMgdm9pZCBtaXBzX3ByaW50X2Zs b2F0X2luZm8gKHN0cnVjdCBnZGJhcmNoICosIHN0cnVjdCB1aV9maWxlICosCiDigILigILigILi gILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILi gIIgICBjb25zdCBmcmFtZV9pbmZvX3B0ciAmLCBjb25zdCBjaGFyICopOwoKK3N0YXRpYyB2b2lk CittaXBzX3JlYWRfZnBfcmVnaXN0ZXJfc2luZ2xlIChjb25zdCBmcmFtZV9pbmZvX3B0ciAmZnJh bWUsIGludCByZWdubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiX2J5dGUgKnJh cmVfYnVmZmVyKTsKKwogLyogQSB1c2VmdWwgYml0IGluIHRoZSBDUDAgc3RhdHVzIHJlZ2lzdGVy IChNSVBTX1BTX1JFR05VTSkuICAqLwogLyogVGhpcyBiaXQgaXMgc2V0IGlmIHdlIGFyZSBlbXVs YXRpbmcgMzItYml0IEZQUnMgb24gYSA2NC1iaXQgY2hpcC4gICovCiAjZGVmaW5lIFNUMF9GUiAo MSA8PCAyNikKQEAgLTMyNSw2ICszMjksMTYgQEAgbWlwc19hYmlfcmVnc2l6ZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gpCiAgICAgfQogfQoKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBnZGJhcmNo IGlzIGJhc2VkIG9uIE1JUFMgUmVsZWFzZSA2LiAgKi8KK3N0YXRpYyBib29sCitpc19taXBzcjZf aXNhIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKK3sKKyAgY29uc3Qgc3RydWN0IGJmZF9hcmNo X2luZm8gKmluZm8gPSBnZGJhcmNoX2JmZF9hcmNoX2luZm8gKGdkYmFyY2gpOworCisgIHJldHVy biAoaW5mby0+bWFjaCA9PSBiZmRfbWFjaF9taXBzaXNhMzJyNgorICAgICAgICAgfHwgaW5mby0+ bWFjaCA9PSBiZmRfbWFjaF9taXBzaXNhNjRyNik7Cit9CisKIC8qIE1JUFMxNi9taWNyb01JUFMg ZnVuY3Rpb24gYWRkcmVzc2VzIGFyZSBvZGQgKGJpdCAwIGlzIHNldCkuICBIZXJlCiAgICBhcmUg c29tZSBmdW5jdGlvbnMgdG8gaGFuZGxlIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggY29tcHJl c3NlZAogICAgY29kZSBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRlc3RpbmcsIHNldHRp bmcsIG9yIGNsZWFyaW5nCkBAIC0xNDk2LDYgKzE1MTAsNyBAQCBtaXBzX2ZldGNoX2luc3RydWN0 aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgcmV0dXJuIGV4dHJhY3RfdW5zaWduZWRf aW50ZWdlciAoYnVmLCBpbnN0bGVuLCBieXRlX29yZGVyKTsKIH0KCisKIC8qIFRoZXNlIGFyZSB0 aGUgZmllbGRzIG9mIDMyIGJpdCBtaXBzIGluc3RydWN0aW9ucy4gICovCiAjZGVmaW5lIG1pcHMz Ml9vcCh4KSAoeCA+PiAyNikKICNkZWZpbmUgaXR5cGVfb3AoeCkgKHggPj4gMjYpCkBAIC0xNTM4 LDYgKzE1NTMsNyBAQCBtaXBzX2ZldGNoX2luc3RydWN0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKICNkZWZpbmUgYjBzMTFfb3AoeCkgKCh4KSAmIDB4N2ZmKQogI2RlZmluZSBiMHMxMl9p bW0oeCkgKCh4KSAmIDB4ZmZmKQogI2RlZmluZSBiMHMxNl9pbW0oeCkgKCh4KSAmIDB4ZmZmZikK KyNkZWZpbmUgYjBzMjFfaW1tKHgpICgoeCkgJiAweDFmZmZmZikKICNkZWZpbmUgYjBzMjZfaW1t KHgpICgoeCkgJiAweDNmZmZmZmYpCiAjZGVmaW5lIGI2czEwX2V4dCh4KSAoKCh4KSA+PiA2KSAm IDB4M2ZmKQogI2RlZmluZSBiMTFzNV9yZWcoeCkgKCgoeCkgPj4gMTEpICYgMHgxZikKQEAgLTE1 NzQsNiArMTU5MCwxOCBAQCBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChVTE9OR0VTVCBpbnN0KQog ICByZXR1cm4gKChpdHlwZV9pbW1lZGlhdGUgKGluc3QpIF4gMHg4MDAwKSAtIDB4ODAwMCkgPDwg MjsKIH0KCitzdGF0aWMgTE9OR0VTVAorbWlwczMyX3JlbGF0aXZlX29mZnNldDIxIChVTE9OR0VT VCBpbnNuKQoreworICByZXR1cm4gKChiMHMyMV9pbW0gKGluc24pIF4gMHgxMDAwMDApIC0gMHgx MDAwMDApIDw8IDI7Cit9CisKK3N0YXRpYyBMT05HRVNUCittaXBzMzJfcmVsYXRpdmVfb2Zmc2V0 MjYgKFVMT05HRVNUIGluc24pCit7CisgIHJldHVybiAoKGIwczI2X2ltbSAoaW5zbikgXiAweDIw MDAwMDApIC0gMHgyMDAwMDAwKSA8PCAyOworfQorCiAvKiBEZXRlcm1pbmUgdGhlIGFkZHJlc3Mg b2YgdGhlIG5leHQgaW5zdHJ1Y3Rpb24gZXhlY3V0ZWQgYWZ0ZXIgdGhlIElOU1QKICAgIGZsb2F0 aW5nIGNvbmRpdGlvbiBicmFuY2ggaW5zdHJ1Y3Rpb24gYXQgUEMuICBDT1VOVCBzcGVjaWZpZXMg dGhlCiAgICBudW1iZXIgb2YgdGhlIGZsb2F0aW5nIGNvbmRpdGlvbiBiaXRzIHRlc3RlZCBieSB0 aGUgYnJhbmNoLiAgKi8KQEAgLTE2MzIsNiArMTY2MCw3MSBAQCBpc19vY3Rlb25fYmJpdF9vcCAo aW50IG9wLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICAgcmV0dXJuIDA7CiB9Cgorc3RhdGlj IGludAoraXNfYWRkMzJiaXRfb3ZlcmZsb3cgKGludDMyX3QgYSwgaW50MzJfdCBiKQoreworICBp bnQzMl90IHIgPSAodWludDMyX3QpIGEgKyAodWludDMyX3QpIGI7CisgIHJldHVybiAoYSA8IDAg JiYgYiA8IDAgJiYgciA+PSAwKSB8fCAoYSA+PSAwICYmIGIgPj0gMCAmJiByIDwgMCk7Cit9CisK K3N0YXRpYyBpbnQKK2lzX2FkZDY0Yml0X292ZXJmbG93IChpbnQ2NF90IGEsIGludDY0X3QgYikK K3sKKyAgaWYgKGEgIT0gKGludDMyX3QpYSkKKyAgICByZXR1cm4gMTsKKyAgaWYgKGIgIT0gKGlu dDMyX3QpYikKKyAgICByZXR1cm4gMTsKKyAgcmV0dXJuIGlzX2FkZDMyYml0X292ZXJmbG93ICgo aW50MzJfdClhLCAoaW50MzJfdCliKTsKK30KKworLyogQ2FsY3VsYXRlIGFkZHJlc3Mgb2YgbmV4 dCBpbnN0cnVjdGlvbiBhZnRlciBCTEVaLiAgKi8KKworc3RhdGljIENPUkVfQUREUgorbWlwczMy X2JsZXpfcGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLAorICAgICAgICAgICAgICAgVUxPTkdFU1QgaW5zdCwgQ09SRV9BRERSIHBjLCBpbnQgaW52 ZXJ0KQoreworICBpbnQgcnMgPSBpdHlwZV9ycyAoaW5zdCk7CisgIGludCBydCA9IGl0eXBlX3J0 IChpbnN0KTsKKyAgTE9OR0VTVCB2YWxfcnMgPSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVn Y2FjaGUsIHJzKTsKKyAgTE9OR0VTVCB2YWxfcnQgPSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAo cmVnY2FjaGUsIHJ0KTsKKyAgVUxPTkdFU1QgdXZhbF9ycyA9IHJlZ2NhY2hlX3Jhd19nZXRfdW5z aWduZWQgKHJlZ2NhY2hlLCBycyk7CisgIFVMT05HRVNUIHV2YWxfcnQgPSByZWdjYWNoZV9yYXdf Z2V0X3Vuc2lnbmVkIChyZWdjYWNoZSwgcnQpOworICBpbnQgdGFrZW4gPSAwOworICBpbnQgZGVs YXlfc2xvdF9zaXplID0gNDsKKworICAvKiBCTEVaLCBCTEVaTCwgQkdUWiwgQkdUWkwgICovCisg IGlmIChydCA9PSAwKQorICAgIHRha2VuID0gKHZhbF9ycyA8PSAwKTsKKyAgZWxzZSBpZiAoaXNf bWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisgICAgeworICAgICAgLyogQkxFWkFMQywgQkdUWkFMQyAg Ki8KKyAgICAgIGlmIChycyA9PSAwICYmIHJ0ICE9IDApCisgICAgICAgdGFrZW4gPSAodmFsX3J0 IDw9IDApOworICAgICAgLyogQkdFWkFMQywgQkxUWkFMQyAgKi8KKyAgICAgIGVsc2UgaWYgKHJz ID09IHJ0ICYmIHJ0ICE9IDApCisgICAgICAgdGFrZW4gPSAodmFsX3J0ID49IDApOworICAgICAg LyogQkdFVUMsIEJMVFVDICAqLworICAgICAgZWxzZSBpZiAocnMgIT0gcnQgJiYgcnMgIT0gMCAm JiBydCAhPSAwKQorICAgICAgIHRha2VuID0gKHV2YWxfcnMgPj0gdXZhbF9ydCk7CisKKyAgICAg IC8qIFN0ZXAgdGhyb3VnaCB0aGUgZm9yYmlkZGVuIHNsb3QgdG8gYXZvaWQgcmVwZWF0ZWQgZXhj ZXB0aW9ucyB3ZSBkbworICAgICAgICBub3QgY3VycmVudGx5IGhhdmUgYWNjZXNzIHRvIHRoZSBC RCBiaXQgd2hlbiBoaXR0aW5nIGEgYnJlYWtwb2ludAorICAgICAgICBhbmQgdGhlcmVmb3JlIGNh bm5vdCB0ZWxsIGlmIHRoZSBicmVha3BvaW50IGhpdCBvbiB0aGUgYnJhbmNoIG9yIHRoZQorICAg ICAgICBmb3JiaWRkZW4gc2xvdC4gICovCisgICAgICAvKiBkZWxheV9zbG90X3NpemUgPSAwOyAg Ki8KKyAgICB9CisKKyAgaWYgKGludmVydCkKKyAgICB0YWtlbiA9ICF0YWtlbjsKKworICAvKiBD YWxjdWxhdGUgYnJhbmNoIHRhcmdldC4gICovCisgIGlmICh0YWtlbikKKyAgICBwYyArPSBtaXBz MzJfcmVsYXRpdmVfb2Zmc2V0IChpbnN0KTsKKyAgZWxzZQorICAgIHBjICs9IGRlbGF5X3Nsb3Rf c2l6ZTsKKworICByZXR1cm4gcGM7Cit9CgogLyogRGV0ZXJtaW5lIHdoZXJlIHRvIHNldCBhIHNp bmdsZSBzdGVwIGJyZWFrcG9pbnQgd2hpbGUgY29uc2lkZXJpbmcKICAgIGJyYW5jaCBwcmVkaWN0 aW9uLiAgKi8KQEAgLTE2NDIsMTIgKzE3MzUsMTcgQEAgbWlwczMyX25leHRfcGMgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykKICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSByZWdjYWNoZS0+YXJjaCAoKTsKICAgdW5zaWduZWQgbG9uZyBpbnN0OwogICBpbnQgb3A7 CisgIGludCBtaXBzNjRiaXRyZWcgPSAwOworCisgIGlmIChtaXBzX2lzYV9yZWdzaXplIChnZGJh cmNoKSA9PSA4KQorICAgIG1pcHM2NGJpdHJlZyA9IDE7CisKICAgaW5zdCA9IG1pcHNfZmV0Y2hf aW5zdHJ1Y3Rpb24gKGdkYmFyY2gsIElTQV9NSVBTLCBwYywgTlVMTCk7CiAgIG9wID0gaXR5cGVf b3AgKGluc3QpOwogICBpZiAoKGluc3QgJiAweGUwMDAwMDAwKSAhPSAwKeKAguKAguKAguKAguKA guKAguKAguKAguKAguKAgi8qIE5vdCBhIHNwZWNpYWwsIGp1bXAgb3IgYnJhbmNoCiDigILigILi gILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILi gILigILigILigILigILigILigILigIIgICBpbnN0cnVjdGlvbi4gICovCiAgICAgewotICAgICAg aWYgKG9wID4+IDIgPT0gNSkKKyAgICAgIGlmIChvcCA+PiAyID09IDUgJiYgKChvcCAmIDB4MDIp ID09IDAgfHwgaXR5cGVfcnQgKGluc3QpID09IDApKQog4oCC4oCC4oCC4oCC4oCCLyogQkVRTCwg Qk5FTCwgQkxFWkwsIEJHVFpMOiBiaXRzIDAxMDF4eCAqLwog4oCC4oCC4oCC4oCC4oCCewog4oCC 4oCC4oCC4oCC4oCCICBzd2l0Y2ggKG9wICYgMHgwMykKQEAgLTE2NTcsNyArMTc1NSw3IEBAIG1p cHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpCiDi gILigILigILigILigIIgICAgY2FzZSAxOuKAguKAguKAguKAguKAguKAguKAgi8qIEJORUwgKi8K IOKAguKAguKAguKAguKAgiAgICAgIGdvdG8gbmVxX2JyYW5jaDsKIOKAguKAguKAguKAguKAgiAg ICBjYXNlIDI64oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogQkxFWkwgKi8KLeKAguKAguKAguKAguKA giAgICAgIGdvdG8gbGVzc19icmFuY2g7CisgICAgICAgICAgICAgZ290byBsZXpfYnJhbmNoOwog 4oCC4oCC4oCC4oCC4oCCICAgIGNhc2UgMzrigILigILigILigILigILigILigIIvKiBCR1RaTCAq Lwog4oCC4oCC4oCC4oCC4oCCICAgICAgZ290byBncmVhdGVyX2JyYW5jaDsKIOKAguKAguKAguKA guKAgiAgICBkZWZhdWx0OgpAQCAtMTY2NywxNSArMTc2NSwxOSBAQCBtaXBzMzJfbmV4dF9wYyAo c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQogICAgICAgZWxzZSBpZiAo b3AgPT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDgpCiDigILigILigILigILigIIvKiBCQzFG LCBCQzFGTCwgQkMxVCwgQkMxVEw6IDAxMDAwMSAwMTAwMCAqLwog4oCC4oCC4oCC4oCC4oCCcGMg PSBtaXBzMzJfYmMxX3BjIChnZGJhcmNoLCByZWdjYWNoZSwgaW5zdCwgcGMgKyA0LCAxKTsKLSAg ICAgIGVsc2UgaWYgKG9wID09IDE3ICYmIGl0eXBlX3JzIChpbnN0KSA9PSA5CisgICAgICBlbHNl IGlmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkKKyAgICAgICAgICAgICAgJiYgb3AgPT0gMTcK KyAgICAgICAgICAgICAgJiYgaXR5cGVfcnMgKGluc3QpID09IDkKIOKAguKAguKAguKAguKAgiAg ICAgICAmJiAoaXR5cGVfcnQgKGluc3QpICYgMikgPT0gMCkKIOKAguKAguKAguKAguKAgi8qIEJD MUFOWTJGLCBCQzFBTlkyVDogMDEwMDAxIDAxMDAxIHh4eDB4ICovCiDigILigILigILigILigIJw YyA9IG1pcHMzMl9iYzFfcGMgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyArIDQsIDIpOwot ICAgICAgZWxzZSBpZiAob3AgPT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDEwCisgICAgICBl bHNlIGlmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkKKyAgICAgICAgICAgICAgJiYgb3AgPT0g MTcKKyAgICAgICAgICAgICAgJiYgaXR5cGVfcnMgKGluc3QpID09IDEwCiDigILigILigILigILi gIIgICAgICAgJiYgKGl0eXBlX3J0IChpbnN0KSAmIDIpID09IDApCiDigILigILigILigILigIIv KiBCQzFBTlk0RiwgQkMxQU5ZNFQ6IDAxMDAwMSAwMTAxMCB4eHgweCAqLwog4oCC4oCC4oCC4oCC 4oCCcGMgPSBtaXBzMzJfYmMxX3BjIChnZGJhcmNoLCByZWdjYWNoZSwgaW5zdCwgcGMgKyA0LCA0 KTsKLSAgICAgIGVsc2UgaWYgKG9wID09IDI5KQorICAgICAgZWxzZSBpZiAoIWlzX21pcHNyNl9p c2EgKGdkYmFyY2gpICYmIG9wID09IDI5KQog4oCC4oCC4oCC4oCC4oCCLyogSkFMWDogMDExMTAx ICovCiDigILigILigILigILigIIvKiBUaGUgbmV3IFBDIHdpbGwgYmUgYWx0ZXJuYXRlIG1vZGUu ICAqLwog4oCC4oCC4oCC4oCC4oCCewpAQCAtMTcwMyw3ICsxODA1LDEyOCBAQCBtaXBzMzJfbmV4 dF9wYyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQog4oCC4oCC4oCC 4oCC4oCCICBlbHNlCiDigILigILigILigILigIIgICAgcGMgKz0gODsgICAgICAgIC8qIEFmdGVy IHRoZSBkZWxheSBzbG90LiAgKi8KIOKAguKAguKAguKAguKAgn0KLQorICAgICAgZWxzZSBpZiAo aXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisgICAgICAgeworICAgICAgICAgLyogQk9WQywgQkVR WkFMQywgQkVRQyBhbmQgQk5WQywgQk5FWkFMQywgQk5FQyAgKi8KKyAgICAgICAgIGlmIChvcCA9 PSA4IHx8IG9wID09IDI0KQorICAgICAgICAgICB7CisgICAgICAgICAgICAgaW50IHJzID0gcnR5 cGVfcnMgKGluc3QpOworICAgICAgICAgICAgIGludCBydCA9IHJ0eXBlX3J0IChpbnN0KTsKKyAg ICAgICAgICAgICBMT05HRVNUIHZhbF9ycyA9IHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVkIChyZWdj YWNoZSwgcnMpOworICAgICAgICAgICAgIExPTkdFU1QgdmFsX3J0ID0gcmVnY2FjaGVfcmF3X2dl dF9zaWduZWQgKHJlZ2NhY2hlLCBydCk7CisgICAgICAgICAgICAgaW50IHRha2VuID0gMDsKKyAg ICAgICAgICAgICAvKiBCT1ZDIChCTlZDKSAgKi8KKyAgICAgICAgICAgICBpZiAocnMgPj0gcnQp CisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGlmIChtaXBzNjRiaXRyZWcgPT0g MSkKKyAgICAgICAgICAgICAgICAgICB0YWtlbiA9IGlzX2FkZDY0Yml0X292ZXJmbG93ICh2YWxf cnMsIHZhbF9ydCk7CisgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICB0 YWtlbiA9IGlzX2FkZDMyYml0X292ZXJmbG93ICh2YWxfcnMsIHZhbF9ydCk7CisgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgLyogQkVRWkFMQyAoQk5FWkFMQykgICovCisgICAgICAgICAg ICAgZWxzZSBpZiAocnMgPCBydCAmJiBycyA9PSAwKQorICAgICAgICAgICAgICAgdGFrZW4gPSAo dmFsX3J0ID09IDApOworICAgICAgICAgICAgIC8qIEJFUUMgKEJORUMpICAqLworICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgIHRha2VuID0gKHZhbF9ycyA9PSB2YWxfcnQpOworCisg ICAgICAgICAgICAgLyogQk5WQywgQk5FWkFMQywgQk5FQyAgKi8KKyAgICAgICAgICAgICBpZiAo b3AgPT0gMjQpCisgICAgICAgICAgICAgICB0YWtlbiA9ICF0YWtlbjsKKworICAgICAgICAgICAg IGlmICh0YWtlbikKKyAgICAgICAgICAgICAgIHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQg KGluc3QpICsgNDsKKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAvKiBTdGVwIHRo cm91Z2ggdGhlIGZvcmJpZGRlbiBzbG90IHRvIGF2b2lkIHJlcGVhdGVkIGV4Y2VwdGlvbnMKKyAg ICAgICAgICAgICAgICAgIHdlIGRvIG5vdCBjdXJyZW50bHkgaGF2ZSBhY2Nlc3MgdG8gdGhlIEJE IGJpdCB3aGVuIGhpdHRpbmcgYQorICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludCBhbmQgdGhl cmVmb3JlIGNhbm5vdCB0ZWxsIGlmIHRoZSBicmVha3BvaW50CisgICAgICAgICAgICAgICAgICBo aXQgb24gdGhlIGJyYW5jaCBvciB0aGUgZm9yYmlkZGVuIHNsb3QuICAqLworICAgICAgICAgICAg ICAgcGMgKz0gODsKKyAgICAgICAgICAgfQorICAgICAgICAgLyogQkMxRVFaLCBCQzFORVogICov CisgICAgICAgICBlbHNlIGlmIChvcCA9PSAxNyAmJiAoaXR5cGVfcnMgKGluc3QpID09IDkgfHwg aXR5cGVfcnMgKGluc3QpID09IDEzKSkKKyAgICAgICAgICAgeworICAgICAgICAgICAgIGdkYl9i eXRlIHN0YXR1czsKKyAgICAgICAgICAgICBnZGJfYnl0ZSB0cnVlX3ZhbCA9IDA7CisgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGZwID0gKGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbWlwc19yZWdudW0gKGdkYmFyY2gpLT5mcDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpdHlwZV9ydCAoaW5zdCkpOworICAg ICAgICAgICAgIHN0cnVjdCBmcmFtZV9pbmZvX3B0ciBmcmFtZSA9IGdldF9jdXJyZW50X2ZyYW1l ICgpOworICAgICAgICAgICAgIGdkYl9ieXRlICpyYXdfYnVmZmVyID0gKGdkYl9ieXRlICopIGFs bG9jYSAoc2l6ZW9mIChnZGJfYnl0ZSkgKiA0KTsKKyAgICAgICAgICAgICBtaXBzX3JlYWRfZnBf cmVnaXN0ZXJfc2luZ2xlIChmcmFtZSwgZnAsIHJhd19idWZmZXIpOworCisgICAgICAgICAgICAg aWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCkgPT0gQkZEX0VORElBTl9CSUcpCisgICAg ICAgICAgICAgICBzdGF0dXMgPSAqKHJhd19idWZmZXIgKyAzKTsKKyAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICBzdGF0dXMgPSAqKHJhd19idWZmZXIpOworCisgICAgICAgICAgICAg aWYgKGl0eXBlX3JzIChpbnN0KSA9PSAxMykKKyAgICAgICAgICAgICAgIHRydWVfdmFsID0gMTsK KworICAgICAgICAgICAgIGlmICgoc3RhdHVzICYgMHgxKSA9PSB0cnVlX3ZhbCkKKyAgICAgICAg ICAgICAgIHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQgKGluc3QpICsgNDsKKyAgICAgICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICBwYyArPSA4OworICAgICAgICAgICB9CisgICAgICAg ICBlbHNlIGlmIChvcCA9PSAyMiB8fCBvcCA9PSAyMykKKyAgICAgICAgIC8qIEJMRVpDLCBCR0Va QywgQkdFQywgQkdUWkMsIEJMVFpDLCBCTFRDICAqLworICAgICAgICAgICB7CisgICAgICAgICAg ICAgaW50IHJzID0gcnR5cGVfcnMgKGluc3QpOworICAgICAgICAgICAgIGludCBydCA9IHJ0eXBl X3J0IChpbnN0KTsKKyAgICAgICAgICAgICBMT05HRVNUIHZhbF9ycyA9IHJlZ2NhY2hlX3Jhd19n ZXRfc2lnbmVkIChyZWdjYWNoZSwgcnMpOworICAgICAgICAgICAgIExPTkdFU1QgdmFsX3J0ID0g cmVnY2FjaGVfcmF3X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBydCk7CisgICAgICAgICAgICAgaW50 IHRha2VuID0gMDsKKyAgICAgICAgICAgICAvKiBUaGUgUjUgcnQgPT0gMCBjYXNlIGlzIGhhbmRs ZWQgYWJvdmUgc28gd2UgdHJlYXQgaXQgYXMKKyAgICAgICAgICAgICAgICBhbiB1bmtub3duIGlu c3RydWN0aW9uIGhlcmUgZm9yIGZ1dHVyZSBJU0EgdXNhZ2UuICAqLworICAgICAgICAgICAgIGlm IChycyA9PSAwICYmIHJ0ICE9IDApCisgICAgICAgICAgICAgICB0YWtlbiA9ICh2YWxfcnQgPD0g MCk7CisgICAgICAgICAgICAgZWxzZSBpZiAocnMgPT0gcnQgJiYgcnQgIT0gMCkKKyAgICAgICAg ICAgICAgIHRha2VuID0gKHZhbF9ydCA+PSAwKTsKKyAgICAgICAgICAgICBlbHNlIGlmIChycyAh PSBydCAmJiBycyAhPSAwICYmIHJ0ICE9IDApCisgICAgICAgICAgICAgICB0YWtlbiA9ICh2YWxf cnMgPj0gdmFsX3J0KTsKKworICAgICAgICAgICAgIGlmIChvcCA9PSAyMykKKyAgICAgICAgICAg ICAgIHRha2VuID0gIXRha2VuOworCisgICAgICAgICAgICAgaWYgKHRha2VuKQorICAgICAgICAg ICAgICAgcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCkgKyA0OworICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgIC8qIFN0ZXAgdGhyb3VnaCB0aGUgZm9yYmlkZGVuIHNs b3QgdG8gYXZvaWQgcmVwZWF0ZWQgZXhjZXB0aW9ucworICAgICAgICAgICAgICAgICAgd2UgZG8g bm90IGN1cnJlbnRseSBoYXZlIGFjY2VzcyB0byB0aGUgQkQgYml0IHdoZW4gaGl0dGluZyBhCisg ICAgICAgICAgICAgICAgICBicmVha3BvaW50IGFuZCB0aGVyZWZvcmUgY2Fubm90IHRlbGwgaWYg dGhlIGJyZWFrcG9pbnQKKyAgICAgICAgICAgICAgICAgIGhpdCBvbiB0aGUgYnJhbmNoIG9yIHRo ZSBmb3JiaWRkZW4gc2xvdC4gICovCisgICAgICAgICAgICAgICBwYyArPSA4OworICAgICAgICAg ICB9CisgICAgICAgICBlbHNlIGlmIChvcCA9PSA1MCB8fCBvcCA9PSA1OCkKKyAgICAgICAgIC8q IEJDLCBCQUxDICAqLworICAgICAgICAgICBwYyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0MjYg KGluc3QpICsgNDsKKyAgICAgICAgIGVsc2UgaWYgKChvcCA9PSA1NCB8fCBvcCA9PSA2MikKKyAg ICAgICAgICAgICAgICAgICYmIHJ0eXBlX3JzIChpbnN0KSA9PSAwKQorICAgICAgICAgLyogSklD LCBKSUFMQyAgKi8KKyAgICAgICAgICAgeworICAgICAgICAgICAgIHBjID0gcmVnY2FjaGVfcmF3 X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBpdHlwZV9ydCAoaW5zdCkpOworICAgICAgICAgICAgIHBj ICs9IChpdHlwZV9pbW1lZGlhdGUgKGluc3QpIF4gMHg4MDAwKSAtIDB4ODAwMDsKKyAgICAgICAg ICAgfQorICAgICAgICAgZWxzZSBpZiAob3AgPT0gNTQgfHwgb3AgPT0gNjIpCisgICAgICAgICAv KiBCRVFaQywgQk5FWkMgICovCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICBpbnQgcnMgPSBp dHlwZV9ycyAoaW5zdCk7CisgICAgICAgICAgICAgTE9OR0VTVCByc192YWwgPSByZWdjYWNoZV9y YXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIHJzKTsKKyAgICAgICAgICAgICBpbnQgdGFrZW4gPSAo cnNfdmFsID09IDApOworICAgICAgICAgICAgIGlmIChvcCA9PSA2MikKKyAgICAgICAgICAgICAg IHRha2VuID0gIXRha2VuOworICAgICAgICAgICAgIGlmICh0YWtlbikKKyAgICAgICAgICAgICAg IHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQyMSAoaW5zdCkgKyA0OworICAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgIC8qIFN0ZXAgdGhyb3VnaCB0aGUgZm9yYmlkZGVuIHNsb3Qg dG8gYXZvaWQgcmVwZWF0ZWQgZXhjZXB0aW9ucworICAgICAgICAgICAgICAgICAgd2UgZG8gbm90 IGN1cnJlbnRseSBoYXZlIGFjY2VzcyB0byB0aGUgQkQgYml0IHdoZW4gaGl0dGluZyBhCisgICAg ICAgICAgICAgICAgICBicmVha3BvaW50IGFuZCB0aGVyZWZvcmUgY2Fubm90IHRlbGwgaWYgdGhl IGJyZWFrcG9pbnQKKyAgICAgICAgICAgICAgICAgIGhpdCBvbiB0aGUgYnJhbmNoIG9yIHRoZSBm b3JiaWRkZW4gc2xvdC4gICovCisgICAgICAgICAgICAgICBwYyArPSA4OworICAgICAgICAgICB9 CisgICAgICAgICBlbHNlCisgICAgICAgICAgIHBjICs9IDQ7ICAgICAgICAgICAgLyogTm90IGEg YnJhbmNoLCBuZXh0IGluc3RydWN0aW9uIGlzIGVhc3kuICAqLworICAgICAgIH0KICAgICAgIGVs c2UKIOKAguKAguKAguKAguKAgnBjICs9IDQ74oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC LyogTm90IGEgYnJhbmNoLCBuZXh0IGluc3RydWN0aW9uIGlzIGVhc3kuICAqLwogICAgIH0KQEAg LTE3NDcsNyArMTk3MCw2IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBDT1JFX0FERFIgcGMpCiDigILigILigILigILigIIgICAgICBjYXNlIDI64oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogQkxUWkwgKi8KIOKAguKAguKAguKAguKAgiAgICAg IGNhc2UgMTY64oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogQkxUWkFMICovCiDigILi gILigILigILigIIgICAgICBjYXNlIDE4OuKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgi8q IEJMVFpBTEwgKi8KLeKAguKAguKAguKAguKAgiAgICAgIGxlc3NfYnJhbmNoOgog4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCaWYgKHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVkIChyZWdj YWNoZSwgaXR5cGVfcnMgKGluc3QpKSA8IDApCiDigILigILigILigILigILigILigILigILigILi gILigIIgIHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQgKGluc3QpICsgNDsKIOKAguKAguKA guKAguKAguKAguKAguKAguKAguKAguKAgmVsc2UKQEAgLTE3NjMsMjIgKzE5ODUsMzggQEAgbWlw czMyX25leHRfcGMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykKIOKA guKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgcGMgKz0gODvigILigIIvKiBhZnRlciB0 aGUgZGVsYXkgc2xvdCAqLwog4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCYnJlYWs7 CiDigILigILigILigILigIIgICAgICBjYXNlIDB4MWM64oCC4oCCLyogQlBPU0dFMzIgKi8KKyAg ICAgICAgICAgICBjYXNlIDB4MWQ6ICAgICAgICAvKiBCUE9TR0UzMkMgICovCiDigILigILigILi gILigIIgICAgICBjYXNlIDB4MWU64oCC4oCCLyogQlBPU0dFNjQgKi8KIOKAguKAguKAguKAguKA guKAguKAguKAguKAguKAguKAgnBjICs9IDQ7CiDigILigILigILigILigILigILigILigILigILi gILigIJpZiAoaXR5cGVfcnMgKGluc3QpID09IDApCiDigILigILigILigILigILigILigILigILi gILigILigIIgIHsKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgICB1bnNpZ25l ZCBpbnQgcG9zID0gKG9wICYgMikgPyA2NCA6IDMyOwog4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCCICAgIGludCBkc3BjdGwgPSBtaXBzX3JlZ251bSAoZ2RiYXJjaCktPmRzcGN0bDsK KyAgICAgICAgICAgICAgICAgICBpbnQgZGVsYXlfc2xvdF9zaXplID0gNDsKCiDigILigILigILi gILigILigILigILigILigILigILigIIgICAgaWYgKGRzcGN0bCA9PSAtMSkKIOKAguKAguKAguKA guKAguKAguKAguKAguKAguKAguKAgiAgICAgIC8qIE5vIHdheSB0byBoYW5kbGU7IGl0J2xsIG1v c3QgbGlrZWx5IHRyYXAgYW55d2F5LiAgKi8KIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKA guKAgiAgICAgIGJyZWFrOwoKKyAgICAgICAgICAgICAgICAgICAvKiBCUE9TR0UzMkMgICovCisg ICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDB4MWQpCisgICAgICAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAg LyogU3RlcCB0aHJvdWdoIHRoZSBmb3JiaWRkZW4gc2xvdCB0byBhdm9pZCByZXBlYXRlZAorICAg ICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zIHdlIGRvIG5vdCBjdXJyZW50bHkgaGF2 ZSBhY2Nlc3MgdG8gdGhlIEJECisgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdCB3aGVuIGhp dHRpbmcgYSBicmVha3BvaW50IGFuZCB0aGVyZWZvcmUgY2Fubm90CisgICAgICAgICAgICAgICAg ICAgICAgICAgIHRlbGwgaWYgdGhlIGJyZWFrcG9pbnQgaGl0IG9uIHRoZSBicmFuY2ggb3IgdGhl CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmJpZGRlbiBzbG90LiAgKi8KKyAgICAgICAg ICAgICAgICAgICAgICAgLyogZGVsYXlfc2xvdF9zaXplID0gMDsgICovCisgICAgICAgICAgICAg ICAgICAgICB9CisKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgICBpZiAoKHJl Z2NhY2hlX3Jhd19nZXRfdW5zaWduZWQgKHJlZ2NhY2hlLAog4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCICAgIGRzcGN0bCkgJiAweDdmKSA+PSBwb3MpCiDi gILigILigILigILigILigILigILigILigILigILigIIgICAgICBwYyArPSBtaXBzMzJfcmVsYXRp dmVfb2Zmc2V0IChpbnN0KTsKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgICBl bHNlCi3igILigILigILigILigILigILigILigILigILigILigIIgICAgICBwYyArPSA0OworICAg ICAgICAgICAgICAgICAgICAgcGMgKz0gZGVsYXlfc2xvdF9zaXplOwog4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCCICB9CiDigILigILigILigILigILigILigILigILigILigILigIJi cmVhazsKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgi8qIEFsbCBvZiB0aGUgb3Ro ZXIgaW5zdHJ1Y3Rpb25zIGluIHRoZSBSRUdJTU0gY2F0ZWdvcnkgKi8KQEAgLTE4MTIsMTkgKzIw NTAsMTQgQEAgbWlwczMyX25leHRfcGMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVf QUREUiBwYykKIOKAguKAguKAguKAguKAgiAgZWxzZQog4oCC4oCC4oCC4oCC4oCCICAgIHBjICs9 IDg7CiDigILigILigILigILigIIgIGJyZWFrOwot4oCC4oCC4oCC4oCC4oCCY2FzZSA2OuKAguKA guKAguKAguKAguKAguKAguKAguKAguKAguKAgi8qIEJMRVosIEJMRVpMICovCi3igILigILigILi gILigIIgIGlmIChyZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIGl0eXBlX3JzIChp bnN0KSkgPD0gMCkKLeKAguKAguKAguKAguKAgiAgICBwYyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zm c2V0IChpbnN0KSArIDQ7Ci3igILigILigILigILigIIgIGVsc2UKLeKAguKAguKAguKAguKAgiAg ICBwYyArPSA4OworICAgICAgIGNhc2UgNjogICAgICAgICAvKiBCTEVaLCBCTEVaTCwgQkxFWkFM QywgQkdFWkFMQywgQkdFVUMgICovCisgICAgICAgbGV6X2JyYW5jaDoKKyAgICAgICAgIHBjID0g bWlwczMyX2JsZXpfcGMgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyArIDQsIDApOwog4oCC 4oCC4oCC4oCC4oCCICBicmVhazsKIOKAguKAguKAguKAguKAgmNhc2UgNzoKIOKAguKAguKAguKA guKAgmRlZmF1bHQ6Ci3igILigILigILigILigIJncmVhdGVyX2JyYW5jaDrigILigILigIIvKiBC R1RaLCBCR1RaTCAqLwot4oCC4oCC4oCC4oCC4oCCICBpZiAocmVnY2FjaGVfcmF3X2dldF9zaWdu ZWQgKHJlZ2NhY2hlLCBpdHlwZV9ycyAoaW5zdCkpID4gMCkKLeKAguKAguKAguKAguKAgiAgICBw YyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChpbnN0KSArIDQ7Ci3igILigILigILigILigIIg IGVsc2UKLeKAguKAguKAguKAguKAgiAgICBwYyArPSA4OworICAgICAgIGdyZWF0ZXJfYnJhbmNo OiAvKiBCR1RaLCBCR1RaTCwgQkdUWkFMQywgQkxUWkFMQywgQkxUVUMgICovCisgICAgICAgICBw YyA9IG1pcHMzMl9ibGV6X3BjIChnZGJhcmNoLCByZWdjYWNoZSwgaW5zdCwgcGMgKyA0LCAxKTsK IOKAguKAguKAguKAguKAgiAgYnJlYWs7CiDigILigILigILigILigIJ94oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogc3dpdGNoICovCiAgICAgfeKA guKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKA guKAguKAguKAguKAgi8qIGVsc2UgKi8KQEAgLTI0NDcsNiArMjY4MCw3MiBAQCBtaWNyb21pcHNf aW5zdHJ1Y3Rpb25faXNfY29tcGFjdF9icmFuY2ggKHVuc2lnbmVkIHNob3J0IGluc24pCiAgICAg fQogfQoKKy8qIFJldHVybiBub24temVybyBpZiB0aGUgTUlQUyBpbnN0cnVjdGlvbiBJTlNOIGlz IGEgY29tcGFjdCBicmFuY2gKKyAgIG9yIGp1bXAuICBBIHZhbHVlIG9mIDEgaW5kaWNhdGVzIGFu IHVuY29uZGl0aW9uYWwgY29tcGFjdCBicmFuY2gKKyAgIGFuZCBhIHZhbHVlIG9mIDIgaW5kaWNh dGVzIGEgY29uZGl0aW9uYWwgY29tcGFjdCBicmFuY2guICAqLworCitzdGF0aWMgaW50CittaXBz MzJfaW5zdHJ1Y3Rpb25faXNfY29tcGFjdF9icmFuY2ggKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBVTE9OR0VTVCBpbnNuKQoreworICBzd2l0Y2ggKGl0eXBlX29wIChpbnNuKSkKKyAgICB7Cisg ICAgLyogQkMgICovCisgICAgY2FzZSA1MDoKKyAgICAvKiBCQUxDICAqLworICAgIGNhc2UgNTg6 CisgICAgICBpZiAoaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisgICAgICAgcmV0dXJuIDE7Cisg ICAgICBicmVhazsKKyAgICAvKiBCT1ZDLCBCRVFaQUxDLCBCRVFDICAqLworICAgIGNhc2UgODoK KyAgICAvKiBCTlZDLCBCTkVaQUxDLCBCTkVDICAqLworICAgIGNhc2UgMjQ6CisgICAgICBpZiAo aXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisgICAgICAgcmV0dXJuIDI7CisgICAgICBicmVhazsK KyAgICAvKiBCRVFaQywgSklDICAqLworICAgIGNhc2UgNTQ6CisgICAgLyogQk5FWkMsIEpJQUxD ICAqLworICAgIGNhc2UgNjI6CisgICAgICBpZiAoaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpCisg ICAgICAgLyogSklDLCBKSUFMQyBhcmUgdW5jb25kaXRpb25hbCAgKi8KKyAgICAgICByZXR1cm4g KGl0eXBlX3JzIChpbnNuKSA9PSAwKSA/IDEgOiAyOworICAgICAgYnJlYWs7CisgICAgLyogQkxF WkMsIEJHRVpDLCBCR0VDICAqLworICAgIGNhc2UgMjI6CisgICAgLyogQkdUWkMsIEJMVFpDLCBC TFRDICAqLworICAgIGNhc2UgMjM6CisgICAgLyogQkxFWkFMQywgQkdFWkFMQywgQkdFVUMgICov CisgICAgY2FzZSA2OgorICAgIC8qIEJHVFpBTEMsIEJMVFpBTEMsIEJMVFVDICAqLworICAgIGNh c2UgNzoKKyAgICAgIGlmIChpc19taXBzcjZfaXNhIChnZGJhcmNoKQorICAgICAgICAgJiYgaXR5 cGVfcnQgKGluc24pICE9IDApCisgICAgICAgcmV0dXJuIDI7CisgICAgICBicmVhazsKKyAgICAv KiBCUE9TR0UzMkMgICovCisgICAgY2FzZSAxOgorICAgICAgaWYgKGlzX21pcHNyNl9pc2EgKGdk YmFyY2gpCisgICAgICAgICAmJiBpdHlwZV9ydCAoaW5zbikgPT0gMHgxZCAmJiBpdHlwZV9ycyAo aW5zbikgPT0gMCkKKyAgICAgICByZXR1cm4gMjsKKyAgICB9CisgIHJldHVybiAwOworfQorCisv KiBSZXR1cm4gdHJ1ZSBpZiBhIHN0YW5kYXJkIE1JUFMgaW5zdHJ1Y3Rpb24gYXQgQUREUiBoYXMg YSBicmFuY2gKKyAgIGZvcmJpZGRlbiBzbG90IChpLmUuIGl0IGlzIGEgY29uZGl0aW9uYWwgY29t cGFjdCBicmFuY2ggaW5zdHJ1Y3Rpb24pLiAgKi8KKworc3RhdGljIGJvb2wKK21pcHMzMl9pbnNu X2F0X3BjX2hhc19mb3JiaWRkZW5fc2xvdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVf QUREUiBhZGRyKQoreworICBpbnQgc3RhdHVzOworICBVTE9OR0VTVCBpbnNuID0gbWlwc19mZXRj aF9pbnN0cnVjdGlvbiAoZ2RiYXJjaCwgSVNBX01JUFMsIGFkZHIsICZzdGF0dXMpOworICBpZiAo c3RhdHVzKQorICAgIHJldHVybiBmYWxzZTsKKworICByZXR1cm4gbWlwczMyX2luc3RydWN0aW9u X2lzX2NvbXBhY3RfYnJhbmNoIChnZGJhcmNoLCBpbnNuKSA9PSAyOworfQorCiBzdHJ1Y3QgbWlw c19mcmFtZV9jYWNoZQogewogICBDT1JFX0FERFIgYmFzZTsKQEAgLTM0OTAsNyArMzc4OSw4IEBA IG1pcHMzMl9zY2FuX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgICAgIHJl ZyA9IGhpZ2hfd29yZCAmIDB4MWY7CgogICAgICAgaWYgKGhpZ2hfd29yZCA9PSAweDI3YmTigILi gILigILigILigILigILigILigILigILigILigILigIIvKiBhZGRpdSAkc3AsJHNwLC1pICovCi3i gILigILigILigILigIIgIHx8IGhpZ2hfd29yZCA9PSAweDIzYmTigILigILigILigILigILigIIv KiBhZGRpICRzcCwkc3AsLWkgKi8KKyAgICAgICAgIHx8IChoaWdoX3dvcmQgPT0gMHgyM2JkICAg ICAgIC8qIGFkZGkgJHNwLCRzcCwtaSAgKi8KKyAgICAgICAgICAgICAmJiAhaXNfbWlwc3I2X2lz YSAoZ2RiYXJjaCkpCiDigILigILigILigILigIIgIHx8IGhpZ2hfd29yZCA9PSAweDY3YmQp4oCC 4oCC4oCC4oCC4oCCLyogZGFkZGl1ICRzcCwkc3AsLWkgKi8KIOKAguKAguKAguKAguKAgnsKIOKA guKAguKAguKAguKAgiAgaWYgKG9mZnNldCA8IDAp4oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogTmVn YXRpdmUgc3RhY2sgYWRqdXN0bWVudD8gICovCkBAIC0zNjI4LDcgKzM5MjgsOSBAQCBtaXBzMzJf c2Nhbl9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCgogICAgICAgLyogQSBqdW1w IG9yIGJyYW5jaCwgb3IgZW5vdWdoIG5vbi1wcm9sb2d1ZSBpbnNucyBzZWVuPyAgSWYgc28sCiDi gILigILigILigILigIIgdGhlbiB3ZSBtdXN0IGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBw cm9sb2d1ZSBieSBub3cuICAqLwotICAgICAgaWYgKHByZXZfZGVsYXlfc2xvdCB8fCBub25fcHJv bG9ndWVfaW5zbnMgPiAxKQorICAgICAgaWYgKHByZXZfZGVsYXlfc2xvdAorICAgICAgICAgfHwg bm9uX3Byb2xvZ3VlX2luc25zID4gMQorICAgICAgICAgfHwgbWlwczMyX2luc3RydWN0aW9uX2lz X2NvbXBhY3RfYnJhbmNoIChnZGJhcmNoLCBpbnN0KSkKIOKAguKAguKAguKAguKAgmJyZWFrOwoK ICAgICAgIHByZXZfbm9uX3Byb2xvZ3VlX2luc24gPSB0aGlzX25vbl9wcm9sb2d1ZV9pbnNuOwpA QCAtMzkzMyw2ICs0MjM1LDY3IEBAIG1pcHNfYWRkcl9iaXRzX3JlbW92ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyKQogI2RlZmluZSBMTERfT1BDT0RFIDB4MzQKICNk ZWZpbmUgU0NfT1BDT0RFIDB4MzgKICNkZWZpbmUgU0NEX09QQ09ERSAweDNjCisjZGVmaW5lIExM U0NfUjZfT1BDT0RFIDB4MWYKKyNkZWZpbmUgTExfUjZfRlVOQ1QgMHgzNgorI2RlZmluZSBMTEVf RlVOQ1QgMHgyZQorI2RlZmluZSBMTERfUjZfRlVOQ1QgMHgzNworI2RlZmluZSBTQ19SNl9GVU5D VCAweDI2CisjZGVmaW5lIFNDRV9GVU5DVCAweDFlCisjZGVmaW5lIFNDRF9SNl9GVU5DVCAweDI3 CisKKy8qIERldGVybWluZSB3aGV0aGVyIGluc3RydWN0aW9uICdpbnNuJyBpcyBvZiAnbG9hZCBs aW5rZWQgWCcgdHlwZS4KKyAgIExML1NDIGluc3RydWN0aW9ucyBwcm92aWRlIHByaW1pdGl2ZXMg dG8gaW1wbGVtZW50IGF0b21pYworICAgcmVhZC1tb2RpZnktd3JpdGUgb3BlcmF0aW9ucyBmb3Ig c3luY2hyb25pemFibGUgbWVtb3J5IGxvY2F0aW9ucy4gICovCisKK3N0YXRpYyBib29sCitpc19s bF9pbnNuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgVUxPTkdFU1QgaW5zbikKK3sKKyAgaWYg KGl0eXBlX29wIChpbnNuKSA9PSBMTF9PUENPREUKKyAgICAgIHx8IGl0eXBlX29wIChpbnNuKSA9 PSBMTERfT1BDT0RFKQorICAgIHJldHVybiB0cnVlOworCisgIGlmIChydHlwZV9vcCAoaW5zbikg PT0gTExTQ19SNl9PUENPREUKKyAgICAgICYmIHJ0eXBlX2Z1bmN0IChpbnNuKSA9PSBMTEVfRlVO Q1QKKyAgICAgICYmIChpbnNuICYgMHg0MCkgPT0gMCkKKyAgICByZXR1cm4gdHJ1ZTsKKworICAv KiBIYW5kbGUgTEwgYW5kIExMUCB2YXJpZXRpZXMuICAqLworICBpZiAoaXNfbWlwc3I2X2lzYSAo Z2RiYXJjaCkKKyAgICAgICYmIHJ0eXBlX29wIChpbnNuKSA9PSBMTFNDX1I2X09QQ09ERQorICAg ICAgJiYgKHJ0eXBlX2Z1bmN0IChpbnNuKSA9PSBMTF9SNl9GVU5DVAorICAgICAgICAgfHwgcnR5 cGVfZnVuY3QgKGluc24pID09IExMRF9SNl9GVU5DVAorICAgICAgICAgfHwgcnR5cGVfZnVuY3Qg KGluc24pID09IExMRV9GVU5DVCkpCisgICAgcmV0dXJuIHRydWU7CisKKyAgcmV0dXJuIGZhbHNl OworfQorCisvKiBEZXRlcm1pbmUgd2hldGhlciBpbnN0cnVjdGlvbiAnaW5zbicgaXMgb2YgJ3N0 b3JlIGNvbmRpdGlvbmFsIFgnIHR5cGUuCisgICBTQyBpbnN0cnVjdGlvbnMgYW5kIHZhcmlldGll cyBwZXJmb3JtIGNvbXBsZXRpb24gb2YgcmVhZC1tb2RpZnktd3JpdGUKKyAgIGF0b21pYyBzZXF1 ZW5jZS4gICovCisKK3N0YXRpYyBib29sCitpc19zY19pbnNuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgVUxPTkdFU1QgaW5zbikKK3sKKyAgaWYgKGl0eXBlX29wIChpbnNuKSA9PSBTQ19PUENP REUKKyAgICAgIHx8IGl0eXBlX29wIChpbnNuKSA9PSBTQ0RfT1BDT0RFKQorICAgIHJldHVybiB0 cnVlOworCisgIGlmIChydHlwZV9vcCAoaW5zbikgPT0gTExTQ19SNl9PUENPREUKKyAgICAgICYm IHJ0eXBlX2Z1bmN0IChpbnNuKSA9PSBTQ0VfRlVOQ1QKKyAgICAgICYmIChpbnNuICYgMHg0MCkg PT0gMCkKKyAgICByZXR1cm4gdHJ1ZTsKKworICAvKiBIYW5kbGUgU0MgYW5kIFNDUCB2YXJpZXRp ZXMuICAqLworICBpZiAoaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkKKyAgICAgICYmIHJ0eXBlX29w IChpbnNuKSA9PSBMTFNDX1I2X09QQ09ERQorICAgICAgJiYgKHJ0eXBlX2Z1bmN0IChpbnNuKSA9 PSBTQ19SNl9GVU5DVAorICAgICAgICAgfHwgcnR5cGVfZnVuY3QgKGluc24pID09IFNDRF9SNl9G VU5DVAorICAgICAgICAgfHwgcnR5cGVfZnVuY3QgKGluc24pID09IFNDRV9GVU5DVCkpCisgICAg cmV0dXJuIHRydWU7CisKKyAgcmV0dXJuIGZhbHNlOworfQoKIHN0YXRpYyBzdGQ6OnZlY3RvcjxD T1JFX0FERFI+CiBtaXBzX2RlYWxfd2l0aF9hdG9taWNfc2VxdWVuY2UgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCkBAIC0zOTQ1LDEwICs0MzA4LDExIEBAIG1pcHNfZGVh bF93aXRoX2F0b21pY19zZXF1ZW5jZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQURE UiBwYykKICAgaW50IGluZGV4OwogICBpbnQgbGFzdF9icmVha3BvaW50ID0gMDsgLyogRGVmYXVs dHMgdG8gMCAobm8gYnJlYWtwb2ludHMgcGxhY2VkKS4gICovCiAgIGNvbnN0IGludCBhdG9taWNf c2VxdWVuY2VfbGVuZ3RoID0gMTY7IC8qIEluc3RydWN0aW9uIHNlcXVlbmNlIGxlbmd0aC4gICov CisgIGJvb2wgaXNfbWlwc3I2ID0gaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCk7CgogICBpbnNuID0g bWlwc19mZXRjaF9pbnN0cnVjdGlvbiAoZ2RiYXJjaCwgSVNBX01JUFMsIGxvYywgTlVMTCk7CiAg IC8qIEFzc3VtZSBhbGwgYXRvbWljIHNlcXVlbmNlcyBzdGFydCB3aXRoIGEgbGwvbGxkIGluc3Ry dWN0aW9uLiAgKi8KLSAgaWYgKGl0eXBlX29wIChpbnNuKSAhPSBMTF9PUENPREUgJiYgaXR5cGVf b3AgKGluc24pICE9IExMRF9PUENPREUpCisgIGlmICghaXNfbGxfaW5zbiAoZ2RiYXJjaCwgaW5z bikpCiAgICAgcmV0dXJuIHt9OwoKICAgLyogQXNzdW1lIHRoYXQgbm8gYXRvbWljIHNlcXVlbmNl IGlzIGxvbmdlciB0aGFuICJhdG9taWNfc2VxdWVuY2VfbGVuZ3RoIgpAQCAtMzk3OCwyOCArNDM0 Miw3MiBAQCBtaXBzX2RlYWxfd2l0aF9hdG9taWNfc2VxdWVuY2UgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBDT1JFX0FERFIgcGMpCiDigILigILigILigILigIIgIHJldHVybiB7fTsgLyogZmFs bGJhY2sgdG8gdGhlIHN0YW5kYXJkIHNpbmdsZS1zdGVwIGNvZGUuICAqLwog4oCC4oCC4oCC4oCC 4oCCY2FzZSA0OiAvKiBCRVEgKi8KIOKAguKAguKAguKAguKAgmNhc2UgNTogLyogQk5FICovCi3i gILigILigILigILigIJjYXNlIDY6IC8qIEJMRVogKi8KLeKAguKAguKAguKAguKAgmNhc2UgNzog LyogQkdUWiAqLwog4oCC4oCC4oCC4oCC4oCCY2FzZSAyMDogLyogQkVRTCAqLwog4oCC4oCC4oCC 4oCC4oCCY2FzZSAyMTogLyogQk5FTCAqLwot4oCC4oCC4oCC4oCC4oCCY2FzZSAyMjogLyogQkxF WkwgKi8KLeKAguKAguKAguKAguKAgmNhc2UgMjM6IC8qIEJHVFRMICovCisgICAgICAgY2FzZSAy MjogLyogQkxFWkwgKEJMRVpDLCBCR0VaQywgQkdFQykgICovCisgICAgICAgY2FzZSAyMzogLyog QkdUWkwgKEJHVFpDLCBCTFRaQywgQkxUQykgICovCiDigILigILigILigILigIIgIGlzX2JyYW5j aCA9IDE7CiDigILigILigILigILigIIgIGJyZWFrOworICAgICAgIGNhc2UgNjogLyogQkxFWiAo QkxFWkFMQywgQkdFWkFMQywgQkdFVUMpICAqLworICAgICAgIGNhc2UgNzogLyogQkdUWiAoQkdU WkFMQywgQkxUWkFMQywgQkxUVUMpICAqLworICAgICAgICAgaWYgKGlzX21pcHNyNikKKyAgICAg ICAgICAgeworICAgICAgICAgICAgIC8qIEJMRVpBTEMsIEJHVFpBTEMgICovCisgICAgICAgICAg ICAgaWYgKGl0eXBlX3JzIChpbnNuKSA9PSAwICYmIGl0eXBlX3J0IChpbnNuKSAhPSAwKQorICAg ICAgICAgICAgICAgcmV0dXJuIHt9OyAvKiBmYWxsYmFjayB0byB0aGUgc3RhbmRhcmQgc2luZ2xl LXN0ZXAgY29kZS4gICovCisgICAgICAgICAgICAgLyogQkdFWkFMQywgQkxUWkFMQyAgKi8KKyAg ICAgICAgICAgICBlbHNlIGlmIChpdHlwZV9ycyAoaW5zbikgPT0gaXR5cGVfcnQgKGluc24pCisg ICAgICAgICAgICAgICAgICAgICAgJiYgaXR5cGVfcnQgKGluc24pICE9IDApCisgICAgICAgICAg ICAgICByZXR1cm4ge307IC8qIGZhbGxiYWNrIHRvIHRoZSBzdGFuZGFyZCBzaW5nbGUtc3RlcCBj b2RlLiAgKi8KKyAgICAgICAgICAgfQorICAgICAgICAgaXNfYnJhbmNoID0gMTsKKyAgICAgICAg IGJyZWFrOworICAgICAgIGNhc2UgODogLyogQk9WQywgQkVRWkFMQywgQkVRQyAgKi8KKyAgICAg ICBjYXNlIDI0OiAvKiBCTlZDLCBCTkVaQUxDLCBCTkVDICAqLworICAgICAgICAgaWYgKGlzX21p cHNyNikKKyAgICAgICAgICAgaXNfYnJhbmNoID0gMTsKKyAgICAgICAgIGJyZWFrOworICAgICAg IGNhc2UgNTA6IC8qIEJDICAqLworICAgICAgIGNhc2UgNTg6IC8qIEJBTEMgICovCisgICAgICAg ICBpZiAoaXNfbWlwc3I2KQorICAgICAgICAgICByZXR1cm4ge307IC8qIGZhbGxiYWNrIHRvIHRo ZSBzdGFuZGFyZCBzaW5nbGUtc3RlcCBjb2RlLiAgKi8KKyAgICAgICAgIGJyZWFrOworICAgICAg IGNhc2UgNTQ6IC8qIEJFUVpDLCBKSUMgICovCisgICAgICAgY2FzZSA2MjogLyogQk5FWkMsIEpJ QUxDICAqLworICAgICAgICAgaWYgKGlzX21pcHNyNikKKyAgICAgICAgICAgeworICAgICAgICAg ICAgIGlmIChpdHlwZV9ycyAoaW5zbikgPT0gMCkgLyogSklDLCBKSUFMQyAgKi8KKyAgICAgICAg ICAgICAgIHJldHVybiB7fTsgLyogZmFsbGJhY2sgdG8gdGhlIHN0YW5kYXJkIHNpbmdsZS1zdGVw IGNvZGUuICAqLworICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgIGlzX2JyYW5jaCA9 IDI7IC8qIE1hcmtlciBmb3IgYnJhbmNoZXMgd2l0aCBhIDIxLWJpdCBvZmZzZXQuICAqLworICAg ICAgICAgICB9CisgICAgICAgICBicmVhazsKIOKAguKAguKAguKAguKAgmNhc2UgMTc6IC8qIENP UDEgKi8KLeKAguKAguKAguKAguKAgiAgaXNfYnJhbmNoID0gKChpdHlwZV9ycyAoaW5zbikgPT0g OSB8fCBpdHlwZV9ycyAoaW5zbikgPT0gMTApCi3igILigILigILigILigILigILigILigILigILi gILigIIgICAgICAgJiYgKGl0eXBlX3J0IChpbnNuKSAmIDB4MikgPT0gMCk7Ci3igILigILigILi gILigIIgIGlmIChpc19icmFuY2gpIC8qIEJDMUFOWTJGLCBCQzFBTlkyVCwgQkMxQU5ZNEYsIEJD MUFOWTRUICovCisgICAgICAgICBpc19icmFuY2ggPSAoKCFpc19taXBzcjYKKyAgICAgICAgICAg ICAgICAgICAgICAgLyogQkMxQU5ZMkYsIEJDMUFOWTJULCBCQzFBTlk0RiwgQkMxQU5ZNFQgICov CisgICAgICAgICAgICAgICAgICAgICAgICYmIChpdHlwZV9ycyAoaW5zbikgPT0gOSB8fCBpdHlw ZV9ycyAoaW5zbikgPT0gMTApCisgICAgICAgICAgICAgICAgICAgICAgICYmIChpdHlwZV9ydCAo aW5zbikgJiAweDIpID09IDApCisgICAgICAgICAgICAgICAgICAgICAgLyogQlouZGY6ICAwMTAw MDEgMTEweHggICovCisgICAgICAgICAgICAgICAgICAgICAgfHwgKGl0eXBlX3JzIChpbnNuKSAm IDB4MTgpID09IDB4MTgpOworICAgICAgICAgaWYgKGlzX2JyYW5jaCAhPSAwKQog4oCC4oCC4oCC 4oCC4oCCICAgIGJyZWFrOwog4oCC4oCC4oCC4oCC4oCCICBbW2ZhbGx0aHJvdWdoXV07CiDigILi gILigILigILigIJjYXNlIDE4OiAvKiBDT1AyICovCiDigILigILigILigILigIJjYXNlIDE5OiAv KiBDT1AzICovCi3igILigILigILigILigIIgIGlzX2JyYW5jaCA9IChpdHlwZV9ycyAoaW5zbikg PT0gOCk7IC8qIEJDekYsIEJDekZMLCBCQ3pULCBCQ3pUTCAqLworICAgICAgICAgLyogQkN6Riwg QkN6RkwsIEJDelQsIEJDelRMLCBCQypFUVosIEJDKk5FWiAgKi8KKyAgICAgICAgIGlzX2JyYW5j aCA9ICgoaXR5cGVfcnMgKGluc24pID09IDgpCisgICAgICAgICAgICAgICAgICAgICAgfHwgKGlz X21pcHNyNgorICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoaXR5cGVfcnMgKGluc24pID09 IDkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGl0eXBlX3JzIChpbnNuKSA9PSAx MykpKTsKIOKAguKAguKAguKAguKAgiAgYnJlYWs7CiDigILigILigILigILigIJ9Ci0gICAgICBp ZiAoaXNfYnJhbmNoKQorICAgICAgaWYgKGlzX2JyYW5jaCAhPSAwKQog4oCC4oCC4oCC4oCC4oCC ewot4oCC4oCC4oCC4oCC4oCCICBicmFuY2hfYnAgPSBsb2MgKyBtaXBzMzJfcmVsYXRpdmVfb2Zm c2V0IChpbnNuKSArIDQ7CisgICAgICAgICAvKiBJcyB0aGlzIGEgc3BlY2lhbCBQQzIxX1MyIGJy YW5jaD8gICovCisgICAgICAgICBpZiAoaXNfYnJhbmNoID09IDIpCisgICAgICAgICAgIGJyYW5j aF9icCA9IGxvYyArIG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQyMSAoaW5zbikgKyA0OworICAgICAg ICAgZWxzZQorICAgICAgICAgICBicmFuY2hfYnAgPSBsb2MgKyBtaXBzMzJfcmVsYXRpdmVfb2Zm c2V0IChpbnNuKSArIDQ7CiDigILigILigILigILigIIgIGlmIChsYXN0X2JyZWFrcG9pbnQgPj0g MSkKIOKAguKAguKAguKAguKAgiAgICByZXR1cm4ge307IC8qIE1vcmUgdGhhbiBvbmUgYnJhbmNo IGZvdW5kLCBmYWxsYmFjayB0byB0aGUKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKA guKAguKAguKAguKAguKAguKAgiAgc3RhbmRhcmQgc2luZ2xlLXN0ZXAgY29kZS4gICovCkBAIC00 MDA3LDEyICs0NDE1LDEyIEBAIG1pcHNfZGVhbF93aXRoX2F0b21pY19zZXF1ZW5jZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYykKIOKAguKAguKAguKAguKAgiAgbGFzdF9i cmVha3BvaW50Kys7CiDigILigILigILigILigIJ9CgotICAgICAgaWYgKGl0eXBlX29wIChpbnNu KSA9PSBTQ19PUENPREUgfHwgaXR5cGVfb3AgKGluc24pID09IFNDRF9PUENPREUpCisgICAgICBp ZiAoaXNfc2NfaW5zbiAoZ2RiYXJjaCwgaW5zbikpCiDigILigILigILigILigIJicmVhazsKICAg ICB9CgogICAvKiBBc3N1bWUgdGhhdCB0aGUgYXRvbWljIHNlcXVlbmNlIGVuZHMgd2l0aCBhIHNj L3NjZCBpbnN0cnVjdGlvbi4gICovCi0gIGlmIChpdHlwZV9vcCAoaW5zbikgIT0gU0NfT1BDT0RF ICYmIGl0eXBlX29wIChpbnNuKSAhPSBTQ0RfT1BDT0RFKQorICBpZiAoIWlzX3NjX2luc24gKGdk YmFyY2gsIGluc24pKQogICAgIHJldHVybiB7fTsKCiAgIGxvYyArPSBNSVBTX0lOU04zMl9TSVpF OwpAQCAtNDE2MSw3ICs0NTY5LDcgQEAgbWljcm9taXBzX2RlYWxfd2l0aF9hdG9taWNfc2VxdWVu Y2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAog4oCC4oCC4oCC4oCC4oCCICAgIH0KIOKAguKA guKAguKAguKAgiAgYnJlYWs7CiDigILigILigILigILigIJ9Ci0gICAgICBpZiAoaXNfYnJhbmNo KQorICAgICAgaWYgKGlzX2JyYW5jaCAhPSAwKQog4oCC4oCC4oCC4oCC4oCCewog4oCC4oCC4oCC 4oCC4oCCICBpZiAobGFzdF9icmVha3BvaW50ID49IDEpCiDigILigILigILigILigIIgICAgcmV0 dXJuIHt9OyAvKiBNb3JlIHRoYW4gb25lIGJyYW5jaCBmb3VuZCwgZmFsbGJhY2sgdG8gdGhlCkBA IC00MjM3LDggKzQ2NDUsMTQgQEAgbWlwc19hYm91dF90b19yZXR1cm4gKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCiAgIGdkYl9hc3NlcnQgKG1pcHNfcGNfaXNfbWlwcyAo cGMpKTsKCiAgIGluc24gPSBtaXBzX2ZldGNoX2luc3RydWN0aW9uIChnZGJhcmNoLCBJU0FfTUlQ UywgcGMsIE5VTEwpOwotICBoaW50ID0gMHg3YzA7Ci0gIHJldHVybiAoaW5zbiAmIH5oaW50KSA9 PSAweDNlMDAwMDg74oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCCLyoganIoLmhiKSAkcmEgKi8KKyAgLyogTWFzayB0aGUgaGludCBhbmQgdGhlIGphbHIvanIg Yml0LiAgKi8KKyAgaGludCA9IDB4N2MxOworCisgIGlmIChpc19taXBzcjZfaXNhIChnZGJhcmNo KSAmJiBpbnNuID09IDB4ZDgxZjAwMDApIC8qIGpyYyAkMzEgICovCisgICAgcmV0dXJuIDE7CisK KyAgLyoganIoLmhiKSAkcmEgYW5kICJqYWxyKC5oYikgJHJhIiAgKi8KKyAgcmV0dXJuICgoaW5z biAmIH5oaW50KSA9PSAweDNlMDAwMDgpOwogfQoKCkBAIC02NzU1LDcgKzcxNjksOSBAQCBtaXBz MzJfc3RhY2tfZnJhbWVfZGVzdHJveWVkX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JF X0FERFIgcGMpCgog4oCC4oCC4oCC4oCC4oCCICBpZiAoaGlnaF93b3JkICE9IDB4MjdiZOKAguKA guKAguKAguKAgi8qIGFkZGl1ICRzcCwkc3Asb2Zmc2V0ICovCiDigILigILigILigILigIIgICAg ICAmJiBoaWdoX3dvcmQgIT0gMHg2N2Jk4oCC4oCCLyogZGFkZGl1ICRzcCwkc3Asb2Zmc2V0ICov Ci3igILigILigILigILigIIgICAgICAmJiBpbnN0ICE9IDB4MDNlMDAwMDjigILigILigIIvKiBq ciAkcmEgKi8KKyAgICAgICAgICAgICAmJiAoaW5zdCAmIH4weDEpICE9IDB4MDNlMDAwMDggLyog anIgJDMxIG9yIGphbHIgJDAsICQzMSAgKi8KKyAgICAgICAgICAgICAmJiAoIWlzX21pcHNyNl9p c2EgKGdkYmFyY2gpCisgICAgICAgICAgICAgICAgIHx8IGluc3QgIT0gMHhkODFmMDAwMCkgLyog anJjICQzMSAgKi8KIOKAguKAguKAguKAguKAgiAgICAgICYmIGluc3QgIT0gMHgwMDAwMDAwMCni gILigIIvKiBub3AgKi8KIOKAguKAguKAguKAguKAgiAgICByZXR1cm4gMDsKIOKAguKAguKAguKA guKAgn0KQEAgLTcxMzQsMjIgKzc1NTAsMzEgQEAgbWlwczMyX2luc3RydWN0aW9uX2hhc19kZWxh eV9zbG90IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgVUxPTkdFU1QgaW5zdCkKICAgaW50IG9w OwogICBpbnQgcnM7CiAgIGludCBydDsKKyAgYm9vbCBpc19taXBzcjYgPSBpc19taXBzcjZfaXNh IChnZGJhcmNoKTsKCiAgIG9wID0gaXR5cGVfb3AgKGluc3QpOwogICBpZiAoKGluc3QgJiAweGUw MDAwMDAwKSAhPSAwKQogICAgIHsKICAgICAgIHJzID0gaXR5cGVfcnMgKGluc3QpOwogICAgICAg cnQgPSBpdHlwZV9ydCAoaW5zdCk7Ci0gICAgICByZXR1cm4gKGlzX29jdGVvbl9iYml0X29wIChv cCwgZ2RiYXJjaCkKLeKAguKAguKAguKAguKAgiAgICAgIHx8IG9wID4+IDIgPT0gNeKAguKAguKA gi8qIEJFUUwsIEJORUwsIEJMRVpMLCBCR1RaTDogYml0cyAwMTAxeHggICovCi3igILigILigILi gILigIIgICAgICB8fCBvcCA9PSAyOeKAgi8qIEpBTFg6IGJpdHMgMDExMTAxICAqLworICAgICAg cmV0dXJuIChpc19vY3Rlb25fYmJpdF9vcCAob3AsIGdkYmFyY2gpCisgICAgICAgICAgICAgfHwg KG9wID4+IDEgPT0gMTApIC8qIEJFUUwsIEJORUw6IGJpdHMgMDEwMTB4ICAqLworICAgICAgICAg ICAgIHx8IChvcCA+PiAxID09IDExICYmIHJ0ID09IDApIC8qIEJMRVpMLCBCR1RaTDogYml0cyAw MTAxMXggICovCisgICAgICAgICAgICAgfHwgKCFpc19taXBzcjYgJiYgb3AgPT0gMjkpICAgICAg IC8qIEpBTFg6IGJpdHMgMDExMTAxICAqLwog4oCC4oCC4oCC4oCC4oCCICAgICAgfHwgKG9wID09 IDE3CiDigILigILigILigILigILigILigILigILigILigILigIIgICYmIChycyA9PSA4CiDigILi gILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILi gILigILigIIvKiBCQzFGLCBCQzFGTCwgQkMxVCwgQkMxVEw6IDAxMDAwMSAwMTAwMCAgKi8KLeKA guKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgICAgIHx8IChycyA9PSA5ICYmIChydCAm IDB4MikgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgIHx8ICghaXNfbWlwc3I2ICYmIHJzID09 IDkgJiYgKHJ0ICYgMHgyKSA9PSAwKQog4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCLyogQkMxQU5ZMkYsIEJDMUFOWTJU OiBiaXRzIDAxMDAwMSAwMTAwMSAgKi8KLeKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKA giAgICAgIHx8IChycyA9PSAxMCAmJiAocnQgJiAweDIpID09IDApKSkpOworICAgICAgICAgICAg ICAgICAgICAgfHwgKCFpc19taXBzcjYgJiYgcnMgPT0gMTAgJiYgKHJ0ICYgMHgyKSA9PSAwKSkp CiDigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILigILi gILigILigILigILigIIvKiBCQzFBTlk0RiwgQkMxQU5ZNFQ6IGJpdHMgMDEwMDAxIDAxMDEwICAq LworICAgICAgICAgICAgIHx8IChpc19taXBzcjYKKyAgICAgICAgICAgICAgICAgJiYgKChvcCA9 PSAxNworICAgICAgICAgICAgICAgICAgICAgICYmIChycyA9PSA5ICAvKiBCQzFFUVo6IDAxMDAw MSAwMTAwMSAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnMgPT0gMTMpKSAgLyog QkMxTkVaOiAwMTAwMDEgMDExMDEgICovCisgICAgICAgICAgICAgICAgICAgICB8fCAob3AgPT0g MTgKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAocnMgPT0gOSAgLyogQkMyRVFaOiAwMTAw MTAgMDEwMDEgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHJzID09IDEzKSkp KSk7ICAvKiBCQzJORVo6IDAxMDAxMCAwMTEwMSAgKi8KICAgICB9CiAgIGVsc2UKICAgICBzd2l0 Y2ggKG9wICYgMHgwNynigILigILigILigILigILigILigIIvKiBleHRyYWN0IGJpdHMgMjgsMjcs MjYgICovCkBAIC03MTY4LDcgKzc1OTMsMTEgQEAgbWlwczMyX2luc3RydWN0aW9uX2hhc19kZWxh eV9zbG90IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgVUxPTkdFU1QgaW5zdCkKIOKAguKAguKA guKAguKAguKAguKAguKAguKAguKAguKAgnx8ICgocnQgJiAweDFlKSA9PSAweDFjICYmIHJzID09 IDApKTsKIOKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKA guKAguKAguKAguKAguKAguKAgi8qIEJQT1NHRTMyLCBCUE9TR0U2NDogYml0cyAxMTEweCAgKi8K IOKAguKAguKAguKAguKAgmJyZWFrO+KAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKA guKAguKAguKAguKAguKAguKAgi8qIGVuZCBSRUdJTU0gICovCi0gICAgICBkZWZhdWx0OuKAguKA guKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgi8qIEosIEpBTCwgQkVRLCBC TkUsIEJMRVosIEJHVFogICovCisgICAgICAgY2FzZSA2OiAgICAgICAgICAgICAgICAgLyogQkxF WiAgKi8KKyAgICAgICBjYXNlIDc6ICAgICAgICAgICAgICAgICAvKiBCR1RaICAqLworICAgICAg ICByZXR1cm4gKGl0eXBlX3J0IChpbnN0KSA9PSAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBk ZWZhdWx0OiAgICAgICAgICAgICAgICAgLyogSiwgSkFMLCBCRVEsIEJORSAgKi8KIOKAguKAguKA guKAguKAgnJldHVybiAxOwog4oCC4oCC4oCC4oCC4oCCYnJlYWs7CiAgICAgICB9CkBAIC03Mzgw LDcgKzc4MDksMTggQEAgbWlwc19hZGp1c3RfYnJlYWtwb2ludF9hZGRyZXNzIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGJwYWRkcikKCiAgICAgIFNvLCB3ZSdsbCB1c2UgdGhl IHNlY29uZCBzb2x1dGlvbi4gIFRvIGRvIHRoaXMgd2UgbmVlZCB0byBrbm93IGlmCiAgICAgIHRo ZSBpbnN0cnVjdGlvbiB3ZSdyZSB0cnlpbmcgdG8gc2V0IHRoZSBicmVha3BvaW50IG9uIGlzIGlu IHRoZQotICAgICBicmFuY2ggZGVsYXkgc2xvdC4gICovCisgICAgIGJyYW5jaCBkZWxheSBzbG90 LgorCisgICAgIEEgc2ltaWxhciBwcm9ibGVtIG9jY3VycyBmb3IgYnJlYWtwb2ludHMgb24gZm9y YmlkZGVuIHNsb3RzIHdoZXJlCisgICAgIHRoZSB0cmFwIHdpbGwgYmUgcmVwb3J0ZWQgZm9yIHRo ZSBicmFuY2ggd2l0aCB0aGUgQkQgYml0IHNldC4KKyAgICAgSW4gdGhpcyBjYXNlIGl0IHdvdWxk IGJlIGlkZWFsIHRvIHJlY292ZXIgdXNpbmcgc29sdXRpb24gMSBmcm9tCisgICAgIGFib3ZlIGFz IHRoZXJlIGlzIG5vIHByb2JsZW0gd2l0aCB0aGUgYnJhbmNoIGJlaW5nIHNraXBwZWQKKyAgICAg KHNpbmNlIHRoZSBmb3JiaWRkZW4gc2xvdCBvbmx5IGV4aXN0cyBvbiBub3QtdGFrZW4gYnJhbmNo ZXMpLgorICAgICBIb3dldmVyLCB0aGUgQkQgYml0IGlzIG5vdCBhdmFpbGFibGUgaW4gYWxsIHNj ZW5hcmlvcyBjdXJyZW50bHkKKyAgICAgc28gaW5zdGVhZCB3ZSBtb3ZlIHRoZSBicmVha3BvaW50 IG9uIHRvIHRoZSBuZXh0IGluc3RydWN0aW9uLgorICAgICBUaGlzIG1lYW5zIHRoYXQgaXQgaXMg bm90IHBvc3NpYmxlIHRvIHN0b3Agb24gYW4gaW5zdHJ1Y3Rpb24KKyAgICAgdGhhdCBjYW4gYmUg aW4gYSBmb3JiaWRkZW4gc2xvdCBldmVuIGlmIHRoYXQgaW5zdHJ1Y3Rpb24gaXMKKyAgICAganVt cGVkIHRvIGRpcmVjdGx5LiAgKi8KCiAgIGJvdW5kYXJ5ID0gbWlwc19zZWdtZW50X2JvdW5kYXJ5 IChicGFkZHIpOwoKQEAgLTc0MDIsNiArNzg0MiwxMiBAQCBtaXBzX2FkanVzdF9icmVha3BvaW50 X2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYnBhZGRyKQogICAg ICAgcHJldl9hZGRyID0gYnBhZGRyIC0gNDsKICAgICAgIGlmIChtaXBzMzJfaW5zbl9hdF9wY19o YXNfZGVsYXlfc2xvdCAoZ2RiYXJjaCwgcHJldl9hZGRyKSkKIOKAguKAguKAguKAguKAgmJwYWRk ciA9IHByZXZfYWRkcjsKKyAgICAgIC8qIElmIHRoZSBwcmV2aW91cyBpbnN0cnVjdGlvbiBoYXMg YSBmb3JiaWRkZW4gc2xvdCwgd2UgaGF2ZSB0bworICAgICAgICBtb3ZlIHRoZSBicmVha3BvaW50 IHRvIHRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb24gdG8gcHJldmVudAorICAgICAgICBicmVha3Bv aW50cyBpbiBmb3JiaWRkZW4gc2xvdHMgYmVpbmcgcmVwb3J0ZWQgYXMgdW5rbm93bgorICAgICAg ICB0cmFwcy4gICovCisgICAgICBlbHNlIGlmIChtaXBzMzJfaW5zbl9hdF9wY19oYXNfZm9yYmlk ZGVuX3Nsb3QgKGdkYmFyY2gsIHByZXZfYWRkcikpCisgICAgICAgYnBhZGRyICs9IDQ7CiAgICAg fQogICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9taXBz LTY0LXI2LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTNmNDNlZTI0ZDAKLS0tIC9kZXYvbnVsbAor KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuYwpAQCAtMCwwICsxLDkxOCBA QAorLyoKKyAgIENvcHlyaWdodCAyMDIzLTIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorKi8KKworI2RlZmluZSB4c3RyKHMpIHN0cihzKQorI2RlZmluZSBzdHIocykgI3MK KworLyogPT09PT09PT09PT09IG1hY3JvcyBmcm9tIHNpbS90ZXN0dXRpbHMvbWlwcy91dGlscy1y Ni5pbmMgPT09PT09PT09PT09PSAqLworCisvKiA1OCBpcyBsb2NhbCBsYWJlbCB0byBleGl0IHdp dGggZXJyY29kZSAhPSAwLCBpbmRpY2F0aW5nIGVycm9yLiAgKi8KKyNkZWZpbmUgZnBfYXNzZXJ0 KGEsIGIpICJiZXEgIiB4c3RyIChhKSAiLCAiIHhzdHIgKGIpICIsIDFmIFxuXHQiIFwKKyAgIm5v cCBcblx0IiBcCisgICJiIDU4ZiBcblx0IiBcCisgICJub3AgXG5cdCIgXAorICAiMTogXG5cdCIK KworLyogQ2xvYmJlcnM6ICQ0LCQ2LCQ3LiAgKi8KKyNkZWZpbmUgcjZja18xcihpbnN0LCBhLCBy ZXQpIFwKKyAgImxpICQ0LCAiIHhzdHIgKGEpICIgICAgXG5cdCIgXAorICAibGkgJDYsICIgeHN0 ciAocmV0KSAiICBcblx0IiBcCisgIHhzdHIgKGluc3QpICIgJDcsICQ0ICAgIFxuXHQiIFwKKyAg ZnBfYXNzZXJ0ICgkNiwgJDcpCisKKy8qIENsb2JiZXJzOiAkNCwkNiwkNy4gICovCisjZGVmaW5l IHI2Y2tfMWRyKGluc3QsIGEsIHJldCkgXAorICAibGQgJDQsICIgeHN0ciAoYSkgIiAgIFxuXHQi IFwKKyAgImxkICQ2LCAiIHhzdHIgKHJldCkgIiBcblx0IiBcCisgIHhzdHIgKGluc3QpICIgJDcs ICQ0ICAgXG5cdCIgXAorICBmcF9hc3NlcnQgKCQ2LCAkNykKKworLyogQ2xvYmJlcnM6ICQ0LCQ1 LCQ2LCQ3LiAgKi8KKyNkZWZpbmUgcjZja18ycihpbnN0LCBhLCBiLCByZXQpIFwKKyAgImxpICQ0 LCAiIHhzdHIgKGEpICIgICBcblx0IiBcCisgICJsaSAkNSwgIiB4c3RyIChiKSAiICAgXG5cdCIg XAorICAibGkgJDYsICIgeHN0ciAocmV0KSAiIFxuXHQiIFwKKyAgeHN0ciAoaW5zdCkgIiAkNywg JDQsICQ1ICAgXG5cdCIgXAorICBmcF9hc3NlcnQgKCQ2LCAkNykKKworLyogQ2xvYmJlcnM6ICQ0 LCQ1LCQ2LCQ3LiAgKi8KKyNkZWZpbmUgcjZja18yZHIoaW5zdCwgYSwgYiwgcmV0KSBcCisgICJs ZCAkNCwgIiB4c3RyIChhKSAiICAgIFxuXHQiIFwKKyAgImxkICQ1LCAiIHhzdHIgKGIpICIgICAg XG5cdCIgXAorICAibGQgJDYsICIgeHN0ciAocmV0KSAiICBcblx0IiBcCisgIHhzdHIgKGluc3Qp ICIgJDcsICQ0LCAkNSAgXG5cdCIgXAorICBmcF9hc3NlcnQgKCQ2LCAkNykKKworLyogQ2xvYmJl cnM6ICQ0LCQ1LCQ2LCQ3LiAgKi8KKyNkZWZpbmUgcjZja18yZHIxaShpbnN0LCBhLCBiLCBpbW0s IHJldCkgXAorICAibGQgJDQsICIgeHN0ciAoYSkgIiAgICAgIFxuXHQiIFwKKyAgImxkICQ1LCAi IHhzdHIgKGIpICIgICAgICBcblx0IiBcCisgICJsZCAkNiwgIiB4c3RyIChyZXQpICIgICAgXG5c dCIgXAorICB4c3RyIChpbnN0KSAiICQ3LCAkNCwgJDUsICIgeHN0ciAoaW1tKSAiICBcblx0IiBc CisgIGZwX2Fzc2VydCAoJDYsICQ3KQorCisvKiBDbG9iYmVyczogJDQsJDYsJDcuICAqLworI2Rl ZmluZSByNmNrXzFyMWkoaW5zdCwgYSwgaW1tLCByZXQpIFwKKyAgImxpICQ0LCAiIHhzdHIgKGEp ICIgICAgICBcblx0IiBcCisgICJsaSAkNiwgIiB4c3RyIChyZXQpICIgICAgXG5cdCIgXAorICB4 c3RyIChpbnN0KSAiICQ3LCAkNCwgIiB4c3RyIChpbW0pICIgIFxuXHQiIFwKKyAgZnBfYXNzZXJ0 ICgkNiwgJDcpCisKKy8qIENsb2JiZXJzOiAkNCwkNiwkNy4gICovCisjZGVmaW5lIHI2Y2tfMWRy MWkoaW5zdCwgYSwgaW1tLCByZXQpIFwKKyAgImxkICQ0LCAiIHhzdHIgKGEpICIgICAgIFxuXHQi IFwKKyAgImxkICQ2LCAiIHhzdHIgKHJldCkgIiAgIFxuXHQiIFwKKyAgeHN0ciAoaW5zdCkgIiAk NywgJDQsICIgeHN0ciAoaW1tKSAiICBcblx0IiBcCisgIGZwX2Fzc2VydCAoJDYsICQ3KQorCisv KiBDbG9iYmVyczogJDQsJDYuICAqLworI2RlZmluZSByNmNrXzBkcjFpKGluc3QsIGEsIGltbSwg cmV0KSBcCisgICJsZCAkNCwgIiB4c3RyIChhKSAiICAgICBcblx0IiBcCisgICJsZCAkNiwgIiB4 c3RyIChyZXQpICIgICBcblx0IiBcCisgIHhzdHIgKGluc3QpICIgJDQsICQ0LCAiIHhzdHIgKGlt bSkgIiAgIFxuXHQiIFwKKyAgZnBfYXNzZXJ0ICgkNiwgJDQpCisKKy8qIENsb2JiZXJzOiAkNCwk NSwkNiwkNy4gICovCisjZGVmaW5lIHI2Y2tfMnIxaShpbnN0LCBhLCBiLCBpbW0sIHJldCkgXAor ICAibGkgJDQsICIgeHN0ciAoYSkgIiAgICAgXG5cdCIgXAorICAibGkgJDUsICIgeHN0ciAoYikg IiAgICAgXG5cdCIgXAorICAibGkgJDYsICIgeHN0ciAocmV0KSAiICAgXG5cdCIgXAorICB4c3Ry IChpbnN0KSAiICQ3LCAkNCwgJDUsICIgeHN0ciAoaW1tKSAiICAgXG5cdCIgXAorICBmcF9hc3Nl cnQgKCQ2LCAkNykKKworLyogQ2xvYmJlcnM6ICQ0LCQ1LCQ2LCQ3LCQ4LCRmMiwkZjQsJGY2LiAg Ki8KKyNkZWZpbmUgcjZja18zcyhpbnN0LCBhLCBiLCBjLCByZXQpIFwKKyAgImxpICQ0LCAiIHhz dHIgKGEpICIgICAgIFxuXHQiIFwKKyAgImxpICQ1LCAiIHhzdHIgKGIpICIgICAgIFxuXHQiIFwK KyAgImxpICQ2LCAiIHhzdHIgKGMpICIgICAgIFxuXHQiIFwKKyAgImxpICQ3LCAiIHhzdHIgKHJl dCkgIiAgIFxuXHQiIFwKKyAgIm10YzEgJDQsICRmMiAgICAgICAgICAgXG5cdCIgXAorICAibXRj MSAkNSwgJGY0ICAgICAgICAgICBcblx0IiBcCisgICJtdGMxICQ2LCAkZjYgICAgICAgICAgIFxu XHQiIFwKKyAgeHN0ciAoaW5zdCkgIiAkZjIsICRmNCwgJGY2ICAgICAgIFxuXHQiIFwKKyAgIm1m YzEgJDgsICRmMiAgICAgICAgICAgXG5cdCIgXAorICBmcF9hc3NlcnQgKCQ3LCAkOCkKKworLyog Q2xvYmJlcnM6ICQ0LCQ1LCQ2LCQ3LCRmMiwkZjQuICAqLworI2RlZmluZSByNmNrXzJzKGluc3Qs IGEsIGIsIHJldCkgXAorICAibGkgJDQsICIgeHN0ciAoYSkgIiAgICAgICBcblx0IiBcCisgICJs aSAkNSwgIiB4c3RyIChiKSAiICAgICAgIFxuXHQiIFwKKyAgImxpICQ2LCAiIHhzdHIgKHJldCkg IiAgICAgXG5cdCIgXAorICAibXRjMSAkNCwgJGYyICAgICAgICAgICAgIFxuXHQiIFwKKyAgIm10 YzEgJDUsICRmNCAgICAgICAgICAgICBcblx0IiBcCisgIHhzdHIgKGluc3QpICIgJGYyLCAkZjQg ICAgIFxuXHQiIFwKKyAgIm1mYzEgJDcsICRmMiAgICAgICAgICAgICBcblx0IiBcCisgIGZwX2Fz c2VydCAoJDYsICQ3KQorCisvKiBDbG9iYmVyczogJDQsJDUsJDYsJDcsJDgsJDksJDEwLCRmMiwk ZjQuICAqLworI2RlZmluZSByNmNrXzJkKGluc3QsIGEsIGIsIHJldCkgXAorICAiLmRhdGEgICAg ICAgICAgICAgICAgICBcblx0IiBcCisgICIxOiAuZHdvcmQgIiB4c3RyIChhKSAiICAgIFxuXHQi IFwKKyAgIjI6IC5kd29yZCAiIHhzdHIgKGIpICIgICAgXG5cdCIgXAorICAiMzogLmR3b3JkICIg eHN0ciAocmV0KSAiICBcblx0IiBcCisgICIudGV4dCAgICAgICAgICAgICAgICAgICBcblx0IiBc CisgICJkbGEgJDQsIDFiICAgICAgICAgICAgICBcblx0IiBcCisgICJkbGEgJDUsIDJiICAgICAg ICAgICAgICBcblx0IiBcCisgICJkbGEgJDYsIDNiICAgICAgICAgICAgICBcblx0IiBcCisgICJs ZGMxICRmMiwgMCgkNCkgICAgICAgIFxuXHQiIFwKKyAgImxkYzEgJGY0LCAwKCQ1KSAgICAgICAg XG5cdCIgXAorICAibHcgJDcsIDAoJDYpICAgICAgICAgICBcblx0IiBcCisgICJsdyAkOCwgNCgk NikgICAgICAgICAgIFxuXHQiIFwKKyAgeHN0ciAoaW5zdCkgIiAkZjIsICRmNCAgIFxuXHQiIFwK KyAgIm1maGMxICQ5LCAkZjIgICAgICAgICAgXG5cdCIgXAorICAibWZjMSAkMTAsICRmMiAgICAg ICAgICBcblx0IiBcCisgIGZwX2Fzc2VydCAoJDcsICQ5KSBcCisgIGZwX2Fzc2VydCAoJDgsICQx MCkKKworLyogQ2xvYmJlcnM6ICQyLCQ0LCQ1LCQ2LCQ3LCQ4LCQ5LCQxMCwkZjIsJGY0LCRmNi4g ICovCisjZGVmaW5lIHI2Y2tfM2QoaW5zdCwgYSwgYiwgYywgcmV0KSBcCisgICIuZGF0YSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXAorICAiMTogLmR3b3JkICIgeHN0ciAo YSkgIiAgICAgICAgICAgICAgICAgIFxuXHQiIFwKKyAgIjI6IC5kd29yZCAiIHhzdHIgKGIpICIg ICAgICAgICAgICAgICAgICBcblx0IiBcCisgICIzOiAuZHdvcmQgIiB4c3RyIChjKSAiICAgICAg ICAgICAgICAgICAgXG5cdCIgXAorICAiNDogLmR3b3JkICIgeHN0ciAocmV0KSAiICAgICAgICAg ICAgICAgIFxuXHQiIFwKKyAgIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IiBcCisgICJkbGEgJDQsIDFiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwK KyAgImRsYSAkNSwgMmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXAorICAiZGxh ICQ2LCAzYiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiBcCisgICJkbGEgJDIsIDRi ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwKKyAgImxkYzEgJGYyLCAwKCQ0KSAg ICAgICAgICAgICAgICAgICAgICBcblx0IiBcCisgICJsZGMxICRmNCwgMCgkNSkgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIgXAorICAibGRjMSAkZjYsIDAoJDYpICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiIFwKKyAgImx3ICQ3LCAwKCQyKSAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IiBcCisgICJsdyAkOCwgNCgkMikgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXAorICB4 c3RyIChpbnN0KSAiICRmMiwgJGY0LCAkZjYgICAgICAgICAgICBcblx0IiBcCisgICJtZmhjMSAk OSwgJGYyICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXAorICAibWZjMSAkMTAsICRmMiAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwKKyAgZnBfYXNzZXJ0ICgkNywgJDkpIFwKKyAg ZnBfYXNzZXJ0ICgkOCwgJDEwKQorCisKKy8qID09PT09PT09PT09PSBtYWNyb3MgZnJvbSBzaW0v dGVzdHV0aWxzL21pcHMvdGVzdHV0aWxzLmluYyA9PT09PT09PT09PT09ICovCisKKy8qIFB1dCB2 YWx1ZSAndmFsJyBpbnRvIHJlZ2lzdGVyICdyZWcnLgorICAgQ2xvYmJlcnM6IE5vbmUuICAqLwor I2RlZmluZSBsb2FkMzIocmVnLCB2YWwpIFwKKyAgImxpICAiIHhzdHIgKHJlZykgIiwgIiB4c3Ry ICh2YWwpICIgICAgIFxuXHQiCisKKy8qIENoZWNrIHdoZXRoZXIgdHdvIHJlZ2lzdGVycyBjb250 YWluIHRoZSBzYW1lIHZhbHVlLgorICAgQ2xvYmJlcnM6IE5vbmUuICAqLworI2RlZmluZSBjaGVj a3JlZyhyZWcsIGV4cHJlZykgXAorICAiLnNldCBwdXNoICAgICAgICAgXG5cdCIgXAorICAiLnNl dCBub2F0ICAgICAgICAgXG5cdCIgXAorICAiLnNldCBub3Jlb3JkZXIgICAgXG5cdCIgXAorICAi YmVxICIgIHhzdHIgKGV4cHJlZykgIiwgIiB4c3RyIChyZWcpICIsIDkwMWYgICAgXG5cdCIgXAor ICAibm9wICAgICAgICAgICAgICAgXG5cdCIgXAorICAiYiA1OGYgICAgICAgICAgICAgIFxuXHQi IFwKKyAgIm5vcCAgICAgICAgICAgICAgICBcblx0IiBcCisgICI5MDE6ICAgICAgICAgICAgICAg ICAgIFxuXHQiIFwKKyAgIi5zZXQgcG9wICAgICAgICAgICBcblx0IgorCisvKiBDaGVjayBpZiBy ZWdpc3RlciAncmVnJyBjb250YWlucyB2YWx1ZSAndmFsJy4KKyAgIENsb2JiZXJzOiAkMS4gICov CisjZGVmaW5lIGNoZWNrMzIocmVnLCB2YWwpIFwKKyAgIi5zZXQgcHVzaCAgICAgICAgIFxuXHQi IFwKKyAgIi5zZXQgbm9hdCAgICAgICAgIFxuXHQiIFwKKyAgbG9hZDMyICgkMSwgdmFsKSBcCisg IGNoZWNrcmVnIChyZWcsICQxKSBcCisgICIuc2V0IHBvcCAgICAgICAgICBcblx0IgorCisvKiBD aGVja3BhaXIgYmFzZWQgb24gZW5kaWFuZXNzCisgICBDbG9iYmVyczogJDEuICAqLworI2RlZmlu ZSBjaGVja3BhaXJfeGVuZGlhbihsbywgaGksIGJhc2UsIGVjLCB3KSBcCisgICIuc2V0IG5vYXQg ICAgICAgICAgICAgICBcblx0IiBcCisgICJsdyAgICQxLCAiIHhzdHIgKGVjKSAiICAgXG5cdCIg XAorICAiYW5kaSAkMSwgJDEsIDB4MSAgICAgICAgXG5cdCIgXAorICAiYmVxeiAgJDEsIDJmICAg ICAgICAgICAgXG5cdCIgXAorICAiLnNldCBhdCAgICAgICAgICAgICAgICAgXG5cdCIgXAorICAi MTogICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwKKyAgY2hlY2twYWlyX2JlXyMjdyAo bG8sIGhpLCBiYXNlKSBcCisgICJiIDNmICAgICAgICAgICAgICAgICAgICBcblx0IiBcCisgICJu b3AgICAgICAgICAgICAgICAgICAgICBcblx0IiBcCisgICIyOiAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIgXAorICBjaGVja3BhaXJfbGVfIyN3IChsbywgaGksIGJhc2UpIFwKKyAgIjM6 ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorCisKKy8qIENoZWNrIGhpLWxvIHJlZ2lz dGVyIHBhaXIgYWdhaW5zdCBkYXRhIHN0b3JlZCBhdCBiYXNlK28xIGFuZCBiYXNlK28yLgorICAg Q2xvYmJlcnM6ICQxIC0gJDUuICAqLworI2RlZmluZSAgY2hlY2twYWlyKGxvLCBoaSwgYmFzZSwg dywgbzEsIG8yKSBcCisgICJtb3ZlICAkMiwgIiB4c3RyIChsbykgIiAgIFxuXHQiIFwKKyAgIm1v dmUgICQzLCAiIHhzdHIgKGhpKSAiICAgXG5cdCIgXAorICAiLnNldCBub2F0ICAgICAgICAgICAg ICAgIFxuXHQiIFwKKyAgImRsYSAgICQxLCAiIHhzdHIgKGJhc2UpICIgIFxuXHQiIFwKKyAgImwi IHhzdHIgKHcpICIgJDQsICIgeHN0ciAobzEpICIoJDEpICBcblx0IiBcCisgICJsIiB4c3RyICh3 KSAgIiAkNSwgIiB4c3RyIChvMikgIigkMSkgIFxuXHQiIFwKKyAgIi5zZXQgYXQgICAgICAgICAg ICAgICAgICBcblx0IiBcCisgIGNoZWNrcmVnICgkMiwgJDQpIFwKKyAgY2hlY2tyZWcgKCQzLCAk NSkKKworI2RlZmluZSBjaGVja3BhaXJfbGVfZChsbywgaGksIGJhc2UpIFwKKyAgY2hlY2twYWly IChsbywgaGksIGJhc2UsIHcsIDAsIDQpCisKKyNkZWZpbmUgY2hlY2twYWlyX2JlX2QobG8sIGhp LCBiYXNlKSBcCisgIGNoZWNrcGFpciAobG8sIGhpLCBiYXNlLCB3LCA0LCAwKQorCisKKyNkZWZp bmUgY2hlY2twYWlyX2xlX3EobG8sIGhpLCBiYXNlKSBcCisgIGNoZWNrcGFpciAobG8sIGhpLCBi YXNlLCBkLCAwLCA4KQorCisjZGVmaW5lIGNoZWNrcGFpcl9iZV9xKGxvLCBoaSwgYmFzZSkgXAor ICBjaGVja3BhaXIgKGxvLCBoaSwgYmFzZSwgZCwgOCwgMCkKKworI2RlZmluZSBjaGVja3BhaXJf cXdvcmQobG8sIGhpLCBiYXNlLCBvZSkgXAorICBjaGVja3BhaXJfeGVuZGlhbiAobG8sIGhpLCBi YXNlLCBvZSwgcSkKKworI2RlZmluZSBjaGVja3BhaXJfZHdvcmQobG8sIGhpLCBiYXNlLCBvZSkg XAorICBjaGVja3BhaXJfeGVuZGlhbiAobG8sIGhpLCBiYXNlLCBvZSwgZCkKKwordm9pZAorYWJv cnQgKHZvaWQpOworCisvKiBUZXN0cyBicmFuY2ggaW5zdHJ1Y3Rpb25zLiAgKi8KKworaW50Cit0 ZXN0X3I2X2JyYW5jaCAodm9pZCkKK3sKKy8qIFVzaW5nIHZvbGF0aWxlIHRvIHByZXZlbnQgY2Vy dGFpbiBvcHRpbWl6YXRpb25zIHdoaWNoIGNvdWxkIGNhdXNlCisgKiBpbnN0cnVjdGlvbiBkZWxl dGlvbi4KKyAqICdlcnInIGlkZW50aWZpZXMgaW5zdHJ1Y3Rpb24gd2hpY2ggKGV2ZW50dWFsbHkp IGNhdXNlZCBlcnJvci4KKyAqIChlcnIgPT0gMCkgPT0+IGFsbCBpbnN0cnVjdGlvbnMgZXhlY3V0 ZWQgc3VjY2Vzc2Z1bGx5LiAgKi8KKworICB2b2xhdGlsZSBpbnQgZXJyID0gLTE7CisgIHZvbGF0 aWxlIGludCBhMTQgPSAweGZmZmZmZmZmOworICB2b2xhdGlsZSBpbnQgYTEzID0gMHgxMjM7Cisg IHZvbGF0aWxlIGludCBhMTIgPSAweDQ1OworICB2b2xhdGlsZSBpbnQgYTcgPSAweDQ1OworICB2 b2xhdGlsZSBpbnQgYTggPSAweGZmZmZmZmZlOworICB2b2xhdGlsZSBpbnQgYTkgPSAyMTQ3NDgz NjQ3OworICB2b2xhdGlsZSBpbnQgYTExID0gMDsKKyAgdm9sYXRpbGUgaW50IGExMCA9IDA7CisK KyAgYXNtICgKKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICBcblx0IiAvKiBDcmVhdGUgbmV3IHNj b3BlIGZvciBhc20gY29uZmlndXJhdGlvbi4gICovCisgICIuc2V0IG5vcmVvcmRlciAgICAgICAg XG5cdCIgLyogRG9uJ3QgYWxsb3cgcmVvcmRlcmluZyBvZiBpbnN0cnVjdGlvbnMuICAqLworICAi bGkgJVtlcnJdLCAxICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImJvdmMgJVthMTJdLCAlW2Ex M10sIExmYWlsICAgIFxuXHQiIC8qIEJPVkMgKi8KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJib3ZjICVbYTldLCAlW2ExM10sIEwyICAgICAgICBcblx0IgorICAi bm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiTDI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwg MiAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibnZjICVbYTldLCAlW2ExM10sIExmYWlsICAg ICBcblx0IiAvKiBCTlZDICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiYm52YyAlW2ExMl0sICVbYTEzXSwgTDMgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAg ICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkwzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsaSAlW2Vycl0sIDMgICAgICAgICAg ICAgICAgICBcblx0IgorICAiYmVxYyAlW2ExMl0sICVbYTEzXSwgTGZhaWwgICAgXG5cdCIgLyog QkVRQyAqLworICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImJlcWMg JVthMTJdLCAlW2E3XSwgTDQgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg Im5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMNDogICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICAibGkgJVtlcnJdLCA0ICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgImJuZWMgJVthMTJdLCAlW2E3XSwgTGZhaWwgICAgIFxuXHQiIC8qIEJORUMgKi8KKyAg Im5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibmVjICVbYTEyXSwgJVth MTNdLCBMNSAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCIKKyAgImxpICVbZXJyXSwgNSAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibHRj ICVbYTEzXSwgJVthMTJdLCBMZmFpbCAgICBcblx0IiAvKiBCTFRDICovCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmx0YyAlW2ExMl0sICVbYTEzXSwgTDYgICAg ICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiIExm YWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKKyAgIkw2OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg ICJMNzogICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVtlcnJdLCA3ICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgImJnZWMgJVthMTJdLCAlW2ExM10sIExmYWlsICAgIFxu XHQiIC8qIEJHRUMgKi8KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg ICJiZ2VjICVbYTEzXSwgJVthMTJdLCBMOCAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDg6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkw5OiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiCisgICJsaSAlW2Vycl0sIDkgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmx0 dWMgJVthMTRdLCAlW2ExM10sIExmYWlsICAgXG5cdCIgLyogQkxUVUMgKi8KKyAgIm5vcCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibHR1YyAlW2E4XSwgJVthMTRdLCBMMTAg ICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIg TGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0IgorICAiTDEwOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgIkwxMTogICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsaSAlW2Vycl0sIDEx ICAgICAgICAgICAgICAgICBcblx0IgorICAiYmdldWMgJVthMTNdLCAlW2ExNF0sIExmYWlsICAg XG5cdCIgLyogQkdFVUMgKi8KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJiZ2V1YyAlW2ExNF0sICVbYThdLCBMMTIgICAgICBcblx0IgorICAibm9wICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDEyOiAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkwxMzogICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJsaSAlW2Vycl0sIDEzICAgICAgICAgICAgICAgICBcblx0IgorICAi Ymx0emMgJVthMTNdLCBMZmFpbCAgICAgICAgICAgXG5cdCIgLyogQkxUWkMgKi8KKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibHR6YyAlW2ExMV0sIExmYWlsICAg ICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg ImJsdHpjICVbYTE0XSwgTDE0ICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMMTQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVtlcnJdLCAxNCAgICAgICAgICAgICAg ICAgXG5cdCIKKyAgImJsZXpjICVbYTEzXSwgTGZhaWwgICAgICAgICAgIFxuXHQiIC8qIEJMRVpD ICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmxlemMgJVth MTFdLCBMMTQ1ICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkwxNDU6ICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgICJibGV6YyAlW2ExNF0sIEwxNSAgICAgICAgICAgICBcblx0Igor ICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAiTDE1OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJy XSwgMTUgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZ2V6YyAlW2E4XSwgTGZhaWwgICAgICAg ICAgICBcblx0IiAvKiBCR0VaQyAqLworICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgImJnZXpjICVbYTExXSwgTDE1NSAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJM MTU1OiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmdlemMgJVthMTNdLCBMMTYg ICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkwxNjogICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisgICJsaSAlW2Vycl0sIDE2ICAgICAgICAgICAgICAgICBcblx0IgorICAiYmd0emMg JVthOF0sIExmYWlsICAgICAgICAgICAgXG5cdCIgLyogQkdUWkMgKi8KKyAgIm5vcCAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZ3R6YyAlW2ExMV0sIExmYWlsICAgICAgICAg ICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImJndHpj ICVbYTEzXSwgTDE3ICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg Im5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsaSAlW2ExMF0sIDAgICAg ICAgICAgICAgICAgICBcblx0IgorICAiTDE3OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgImxpICVbZXJyXSwgMTcgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibGV6YWxjICVb YTEyXSwgTGZhaWwgICAgICAgICBcblx0IiAvKiBCTEVaQUxDICovCisgICJub3AgICAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0IgorICAiYmxlemFsYyAlW2ExMV0sIExyZXQgICAgICAgICAg XG5cdCIKKyAgImxpICVbYTEwXSwgMSAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZXF6YyAl W2ExMF0sIEwxNzUgICAgICAgICAgICBcblx0IiAvKiBCRVFaQyAqLworICAibm9wICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgODUzMSAgICAgICAgICAgICAg IFxuXHQiCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkwxNzU6ICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJsaSAlW2Vycl0sIDIzNTMxICAgICAgICAgICAgICBcblx0IgorICAi YmxlemFsYyAlW2ExNF0sIExyZXQgICAgICAgICAgXG5cdCIKKyAgImxpICVbYTEwXSwgMSAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICJiZXF6YyAlW2ExMF0sIEwxOCAgICAgICAgICAgICBcblx0 IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0IgorICAiTDE4OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVb ZXJyXSwgMTggICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZ2V6YWxjICVbYTE0XSwgTGZhaWwg ICAgICAgICBcblx0IiAvKiBCR0VaQUxDICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0IgorICAiYmdlemFsYyAlW2ExMV0sIExyZXQgICAgICAgICAgXG5cdCIKKyAgImxp ICVbYTEwXSwgMSAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZXF6YyAlW2ExMF0sIEwxODUg ICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0IgorICAiTDE4NTogICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgImJnZXphbGMgJVthMTJdLCBMcmV0ICAgICAgICAgIFxuXHQiCisgICJsaSAlW2Ex MF0sIDEgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmVxemMgJVthMTBdLCBMMTkgICAgICAg ICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJi IExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgIkwxOTogICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJsaSAlW2Vycl0sIDE5ICAgICAgICAgICAgICAgICBcblx0IgorICAiYmd0emFsYyAlW2Ex NF0sIExmYWlsICAgICAgICAgXG5cdCIgLyogQkdUWkFMQyAqLworICAibm9wICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgImJndHphbGMgJVthMTFdLCBMZmFpbCAgICAgICAgIFxu XHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYmd0emFsYyAl W2ExMl0sIExyZXQgICAgICAgICAgXG5cdCIKKyAgImxpICVbYTEwXSwgMSAgICAgICAgICAgICAg ICAgIFxuXHQiCisgICJiZXF6YyAlW2ExMF0sIEwyMCAgICAgICAgICAgICBcblx0IgorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAiTDIwOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgMjAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJibHR6YWxjICVbYTEyXSwgTGZhaWwgICAgICAgICBc blx0IiAvKiBCTFRaQUxDICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiYmx0emFsYyAlW2ExMV0sIExmYWlsICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibHR6YWxjICVbYTE0XSwgTHJldCAgICAgICAg ICBcblx0IgorICAibGkgJVthMTBdLCAxICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImJlcXpj ICVbYTEwXSwgTDIxICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg Im5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMMjE6ICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICAibGkgJVtlcnJdLCAyMSAgICAgICAgICAgICAgICAgXG5c dCIKKyAgImJjIEwyMiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIEJDICovCisgICJi IExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgIkwyMjogICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJsaSAlW2Vycl0sIDIyICAgICAgICAgICAgICAgICBcblx0IgorICAiYmFsYyBMcmV0ICAg ICAgICAgICAgICAgICAgICAgXG5cdCIgLyogQkFMQyAqLworICAibGkgJVthMTBdLCAxICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgImJlcXpjICVbYTEwXSwgTDIzICAgICAgICAgICAgIFxuXHQi CisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisgICJMMjM6ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVtl cnJdLCAyMyAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImphbCBHZXRQQyAgICAgICAgICAgICAg ICAgICAgIFxuXHQiIC8qIEpBTCAqLworICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgImppYyAkNiwgNCAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIEpJQyAqLwor ICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAiTDI0OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJy XSwgMjQgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsaSAlW2ExMF0sIDEgICAgICAgICAgICAg ICAgICBcblx0IgorICAiamFsIEdldFBDICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5v cCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJqaWFsYyAkNiwgMjAgICAgICAg ICAgICAgICAgICBcblx0IiAvKiBKSUFMQyAqLworICAibm9wICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgImJlcXpjICVbYTEwXSwgTDI1ICAgICAgICAgICAgIFxuXHQiCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYiBMZmFpbCAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJMSklBTENSRVQ6ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVthMTBdLCAw ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImpyICQzMSAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiIC8qIEpSICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAiTDI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgMjUg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJqYWwgR2V0UEMgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm1vdmUgJVth MTFdLCAkNiAgICAgICAgICAgICAgIFxuXHQiCisgICJuYWwgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImFk ZGl1ICVbYTExXSwgMTIgICAgICAgICAgICAgIFxuXHQiIC8qIEFERElVICovCisgICJiZXFjICVb YTExXSwgJDMxLCBMMjYgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDI2OiAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgMjYgICAgICAgICAgICAgICAgIFxuXHQi CisgICJiYWxjIExyZXQgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVthMTBdLCAx ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImJlcXpjICVbYTEwXSwgTGVuZCAgICAgICAgICAg IFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYiBMZmFp bCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJMcmV0OiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAi bGkgJVthMTBdLCAwICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImRhZGRpdSAkMzEsIDQgICAg ICAgICAgICAgICAgIFxuXHQiIC8qIERBRERJVSAqLworICAianJjICQzMSAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIgLyogSlJDICovCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0IgorICAiR2V0UEM6ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm1vdmUg JDYsICQzMSAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJqciAkMzEgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAiTGVuZDogICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg ImxpICVbZXJyXSwgMCAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMZmFpbDogICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICAiLnNldCBwb3AgICAgICAgICAgICAgICAgICAgICAgXG5c dCIgLyogUmVzdG9yZSBwcmV2aW91cyBjb25maWcgKi8KKyAgOiBbZXJyXSAiK3IiKGVyciksIFth MTRdICIrciIoYTE0KSwgW2ExM10gIityIihhMTMpLCBbYTEyXSAiK3IiKGExMiksCisgICAgW2E3 XSAiK3IiKGE3KSwgW2E4XSAiK3IiKGE4KSwgW2E5XSAiK3IiKGE5KSwgW2ExMF0gIityIihhMTAp LCBbYTExXSAiK3IiKGExMSkKKyAgOiAvKiBpbnB1dHMgKi8KKyAgOiAiJDMxIiwgIiQ2IiAvKiBj bG9iYmVycyAqLworICApOworCisgIHJldHVybiBlcnI7Cit9CisKKy8qIFRlc3RzIGZvcmJpZGRl biBzbG90IGJyYW5jaGluZyBpLmUuIGNvbmRpdGlvbmFsIGNvbXBhY3QgYnJhbmNoCisgICBpbnN0 cnVjdGlvbnMuICAqLworCitpbnQKK3Rlc3RfcjZfZm9yYmlkZGVuICh2b2lkKQoreworICB2b2xh dGlsZSBpbnQgZXJyID0gLTE7CisgIHZvbGF0aWxlIGludCBhNCA9IDA7CisgIHZvbGF0aWxlIGlu dCBhMiA9IDA7CisgIHZvbGF0aWxlIGludCBhMSA9IDA7CisKKyAgYXNtICgKKyAgIi5zZXQgcHVz aCAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLnNldCBub3Jlb3JkZXIgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisvKiBUZXN0IGlmIEZTIGlzIGlnbm9yZWQgd2hlbiBicmFuY2gg aXMgdGFrZW4gKi8KKyAgImxpICVbZXJyXSwgMSAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAibGkgJVthNF0sIDAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZXF6YWxjICVb YTRdLCBMNDEgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgLTg1ICAgICAgICAg ICAgICAgICAgICBcblx0IgorICAiTDQyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiCisgICJiIExmYWlsMiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDQxOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJibGV6ICVbZXJyXSwgTGZhaWwyICAgICAgICAgICAg ICAgXG5cdCIKKy8qIFRlc3QgaWYgRlMgaXMgdXNlZCB3aGVuIGJyYW5jaCBpcyBub3QgdGFrZW4g Ki8KKyAgImxpICVbZXJyXSwgMiAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibGkgJVth NF0sIDEgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJibGV6YyAlW2E0XSwgTDQzICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgImFkZGl1ICVbYTRdLCAlW2E0XSwgMSAgICAgICAgICAg ICBcblx0IgorICAibGkgJVthMl0sIDIgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJi ZXEgJVthNF0sICVbYTJdLCBMNDQgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiTDQzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgImIgTGZhaWwyICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMNDQ6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgMyAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAibGkgJVthNF0sIDMgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiZXF6 YWxjICVbYTRdLCBMZmFpbDIgICAgICAgICAgICAgXG5cdCIKKy8qIE5vdGU6ICdiYyBMNDUnIGlu c3RlYWQgbm9wIHdvdWxkIGNhdXNlIFNlZ0ZhdWx0OiBJbGxlZ2FsIGluc3RydWN0aW9uOgorICAg Rm9yYmlkZGVuIHNsb3QgY2F1c2VzIGFuIGVycm9yIHdoZW4gaXQgY29udGFpbnMgYSBicmFuY2gu ICAqLworICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiIExl bmQyICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0IgorICAiTDQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg ImIgTGZhaWwyICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibm9wICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJMZW5kMjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKKyAgImxpICVbZXJyXSwgMCAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiTGZhaWwyOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5zZXQgcG9wICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICA6IFtlcnJdICIrciIgKGVyciksIFthNF0gIityIihhNCks IFthMl0gIityIihhMiksIFthMV0gIityIihhMSkgLyogb3V0cHV0cyAqLworICA6IC8qIGlucHV0 cyAqLworICA6ICIkMzEiIC8qIGNsb2JiZXJzICovCisgICk7CisKKyAgcmV0dXJuIGVycjsKK30K KworaW50Cit0ZXN0X3I2XzY0ICh2b2lkKQoreworICB2b2xhdGlsZSBpbnQgZXJyID0gMDsKKwor ICBhc20gKAorICAiLnNldCBwdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAiLnNldCBub3Jlb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiLmRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAiZHZhbDogLmR3b3JkIDB4YWE1NWJiNjZjYzc3ZGQ4OCAgICAgICAgICAgICBcblx0IgorICAi ZDE6ICAgLmR3b3JkIDB4YWFhYWJiYmJjY2NjZGRkZCAgICAgICAgICAgICBcblx0IgorICAiZDU6 ICAgLmR3b3JkIDB4MDAwMDAwMDAwMDAwMDBkZCAgICAgICAgICAgICBcblx0IgorICAiZDc6ICAg LmR3b3JkIDB4ZWVlZWZmZmYwMDAwMTExMSAgICAgICAgICAgICBcblx0IgorICAiZDg6ICAgLmR3 b3JkIDB4YmJjY2NjZGRkZGVlZWVmZiAgICAgICAgICAgICBcblx0IgorICAiZDk6ICAgLmR3b3Jk IDB4MDAwMDAwZGRhYWFhYmJiYiAgICAgICAgICAgICBcblx0IgorICAiZHZhbDE6IC53b3JkIDB4 MTIzNGFiY2QgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiZHZhbDI6IC53b3JkIDB4ZmZl ZTAwMDAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiZHZhbDM6IC5kd29yZCAweGZmZmZm ZmZmZmZmZmZmZmYgICAgICAgICAgICBcblx0IgorICAiICAuZmlsbCAyNDAsMSwwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiZHZhbDQ6IC5kd29yZCAweDU1NTU1NTU1NTU1 NTU1NTUgICAgICAgICAgICBcblx0IgorICAiICAuZmlsbCAgMjY0LDEsMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorCisvKiBSZWdpc3RlciAkMTEgc3RvcmVzIGluc3RydWN0aW9u IGN1cnJlbnRseSBiZWluZyB0ZXN0ZWQgYW5kIGhlbmNlCisgKiBpZGVudGlmaWVzIGVycm9yIGlm IGl0IG9jY3Vycy4gICovCisgICIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisKKyAgImxpICQxMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIgLyogVGVzdCBEQUxJR04gKi8KKyAgcjZja18yZHIxaSAoZGFsaWduLCBkNywg ZDEsIDMsIGQ4KQorICByNmNrXzJkcjFpIChkYWxpZ24sIGQxLCBkNSwgNCwgZDkpCisKKyAgImxp ICQxMSwgMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLyogVGVzdCBM RFBDICovCisgICJsZCAkNSwgZHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJsZHBjICQ0LCBkdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg IGZwX2Fzc2VydCAoJDQsICQ1KQorCisgICJsaSAkMTEsIDMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiIC8qIFRlc3QgTFdVUEMgKi8KKyAgImx3dSAkNSwgZHZhbDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImx3dXBjICQ0LCBkdmFsMSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgZnBfYXNzZXJ0ICgkNCwgJDUpCisgICJs d3UgJDUsIGR2YWwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsd3Vw YyAkNCwgZHZhbDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgIGZwX2Fzc2Vy dCAoJDQsICQ1KQorCisgICJsaSAkMTEsIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiIC8qIFRlc3QgTExEICovCisgICJsZCAkNSwgZHZhbDMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJkbGEgJDMsIGR2YWw0ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICJsbGQgJDQsIC0yNDgoJDMpICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgIGZwX2Fzc2VydCAoJDQsICQ1KQorCisgICJsaSAkMTEsIDUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIFRlc3QgU0NEICovCisgICJs bGQgJDQsIC0yNDgoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJkbGkg JDQsIDB4YWZhZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJzY2QgJDQs IC0yNDgoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsZCAkNSwgZHZh bDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJkbGkgJDQsIDB4YWZh ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgIGZwX2Fzc2VydCAoJDQsICQ1 KQorCisgICJMZW5kMzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJsaSAkMTEsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg ICI1ODogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJt b3ZlICVbZXJyXSwgJDExICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICIuc2V0 IHBvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICA6IFtlcnJd ICIrciIgKGVycikgLyogb3V0cHV0cyAqLworICAgOiAgICAgICAgICAgICAgICAgIC8qIGlucHV0 cyAqLworICAgOiAiJDMiLCAiJDQiLCAiJDUiLCAiJDYiLCAiJDciLCAiJDExIiAvKiBjbG9iYmVy cyAqLworICApOworCisgIHJldHVybiBlcnI7Cit9CisKK2ludAordGVzdF9yNiAodm9pZCkKK3sK KyAgdm9sYXRpbGUgaW50IGVyciA9IDA7CisKKyAgYXNtICgKKyAgIi5zZXQgcHVzaCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICIuc2V0 IG5vcmVvcmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAiLmRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgImR2YWxfMTogIC53b3JkIDB4YWJjZDEyMzQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJkdmFsXzI6IC53b3JkIDB4MTIzNGVl ZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmZpbGwgMjQ4 LDEsMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgImR2YWxfMzogLndvcmQgMHg1NTU1NTU1NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICIuZmlsbCAgMjYwLDEsMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiZHZhbF80OiAud29yZCAweGFhYWFhYWFhICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi50ZXh0ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJs aSAkMTEsIDEgICAgICAgICAgICBcblx0IiAvKiBBRERJVVBDICovCisgICJqYWwgR2V0UENfMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5v cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAiYWRkaXUgJDQsICQ2LCA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgICJhZGRpdXBjICQ1LCA0ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgZnBfYXNzZXJ0ICgkNCwgJDUpCisKKyAgImxp ICQxMSwgMiAgICAgICAgICAgIFxuXHQiIC8qIEFVSVBDICovCisgICJqYWwgR2V0UENfMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAiYWRkaXUgJDQsICQ2LCA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJhdWkgJDQsICQ0LCA4ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImF1aXBjICQ1LCA4ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICBmcF9hc3NlcnQgKCQ0LCAkNSkK KworICAibGkgJDExLCAzICAgICAgICAgICAgXG5cdCIgLyogQUxVSVBDICovCisgICJqYWwgR2V0 UENfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0IgorICAiYWRkaXUgJDQsICQ2LCAxNiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICJhdWkgJDQsICQ0LCA4ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICQ3LCAweGZmZmYwMDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiYW5kICQ0LCAk NCwgJDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg ICJhbHVpcGMgJDUsIDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCIKKyAgZnBfYXNzZXJ0ICgkNCwgJDUpCisKKyAgImxpICQxMSwgNCAgICAgICAgICAg IFxuXHQiIC8qIExXUEMgKi8KKyAgImx3ICQ1LCBkdmFsXzEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibHdwYyAkNCwgZHZhbF8xICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgIGZwX2Fzc2VydCAoJDQs ICQ1KQorICAibHcgJDUsIGR2YWxfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgICJsd3BjICQ0LCBkdmFsXzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgZnBfYXNzZXJ0ICgkNCwgJDUpCisKKy8qIFRl c3RpbmcgTEwgZm9sbG93cy4KKyAqIE5PVEU6IE1heSBiZSByZWR1bmRhbnQgYmVjYXVzZSBTQyBh bHJlYWR5IGNvbnRhaW5zIExMIGluIGl0cyB0ZXN0LiAgKi8KKyAgImxpICQxMSwgNSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJsdyAkNSwg ZHZhbF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgImRsYSAkMywgZHZhbF8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0IgorICAibGwgJDQsIC0yNTIoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgIGZwX2Fzc2VydCAoJDQsICQ1KQorCisgICJsaSAkMTEs IDYgICAgICAgIFxuXHQiICAgIC8qIExMLVNDIHNlcXVlbmNlICovCisgICJsbCAkNCwgLTI1Migk MykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxp ICQ0LCAweGFmYWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAic2MgJDQsIC0yNTIoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiCisgICJsdyAkNSwgZHZhbF8yICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICQ0LCAweGFmYWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICBmcF9hc3NlcnQgKCQ0LCAk NSkKKyAgImIgTGVuZDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJHZXRQQ18yOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm1vdmUgJDYsICQzMSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAianIgJDMx ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJMZW5kNDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgImxpICQxMSwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0IgorICAiNTg6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJtb3ZlICVbZXJyXSwgJDExICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5zZXQgcG9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICA6IFtlcnJdICIrciIoZXJyKSAgLyogb3V0cHV0cyAqLworICA6IC8qIGlucHV0cyAqLworICA6 ICIkMyIsICIkNCIsICIkNSIsICIkNiIsICIkNyIsICIkOCIsICIkOSIsICIkMTAiLAorICAgICIk MTEiLCAiJDMxIiAvKiBjbG9iYmVycyAqLworICApOworCisgIHJldHVybiBlcnI7Cit9CisKKy8q IEZvciBmcHUtYnJhbmNoaW5nIHRlc3RpbmcsIGJjMWVxL2VxeiBhcmUgZW5vdWdoLiAgKi8KKwor aW50Cit0ZXN0X3I2X2ZwdSAodm9pZCkKK3sKKyAgdm9sYXRpbGUgaW50IGVyciA9IDA7CisKKyAg YXNtICgKKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAiLnNldCBub3Jlb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisvKiBUZXN0 IHFOYU4gZm9ybWF0IGlzIDc1NC0yMDA4ICovCisgICJsaSAkMTEsIDEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICQ0LCAweDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAibGkgJDUsIDB4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisgICJsaSAkNiwgMHg3ZmMwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgIm10YzEgJDQsICRmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAibXRj MSAkNSwgJGY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJkaXYucyAkZjYs ICRmMiwgJGY0ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm1mYzEgJDgsICRmNiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICBmcF9hc3NlcnQgKCQ2LCAkOCkKKworICAi bGkgJDExLCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAgLyogYmMxZXF6 ICovCisgICJsaSAkMTAsIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisg ICJtdGMxICQxMCwgJGYyICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJtdGMx ICQwLCAkZjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiYzFlcXogJGYy LCA1OGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJiYzFlcXogJGY0LCBMNjIgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiCisgICJiIDU4ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisiTDYyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJsaSAkMTEsIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiICAvKiBi YzFuZXogKi8KKyAgImJjMW5leiAkZjQsIDU4ZiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg ImJjMW5leiAkZjIsIExlbmQ4ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImIgNThmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm5vcCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyJMZW5kODogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICQxMSwgMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgIjU4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgIm1vdmUgJVtlcnJdLCAkMTEgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgIi5zZXQgcG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgOiBbZXJyXSAiK3IiKGVycikgIC8qIG91dHB1dHMgKi8KKyAgOiAgICAgICAgICAgICAgICAg IC8qIGlucHV0cyAqLworICA6ICIkNCIsICIkNSIsICIkNiIsICIkOCIsICIkMTAiLCAiJDExIiwg IiQzMSIsCisgICAgIiRmMiIsICIkZjQiLCAiJGY2IiAvKiBjbG9iYmVycyAqLworICApOworCisg IHJldHVybiBlcnI7Cit9CisKKy8qIFI2IHNwZWNpZmljIHRlc3RzIGZvciBtaXBzNjQgKDY0LWJp dCkuICAqLworCitpbnQKK3Rlc3RfcjZfbGxzY19kcCAodm9pZCkKK3sKKyAgdm9sYXRpbGUgaW50 IGVyciA9IDA7CisKKyAgYXNtICgKKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5zZXQgbm9yZW9yZGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5kYXRhICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5hbGlnbiAxNiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgInRlc3RfZGF0 YTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi53 b3JkIDB4YWFhYWFhYWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgIi53b3JkIDB4YmJiYmJiYmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgIi53b3JkIDB4Y2NjY2NjY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgIi53b3JkIDB4ZGRkZGRkZGQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgIi5hbGlnbiAxNiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImVuZF9jaGVjazogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5ieXRlIDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5ieXRlIDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5ieXRlIDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIi5ieXRl IDB4MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg Ii50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgImxpICQxMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCIgLyogTExXUCAqLworICAibGx3cCAkMiwgJDMsIHRlc3RfZGF0YSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICBjaGVja3BhaXJfZHdvcmQgKCQyLCAkMywgdGVz dF9kYXRhLCBlbmRfY2hlY2spCisgICJzbGwgJDIsICQyLCAxICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJzcmwgJDMsICQzLCAxICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJtb3ZlICAkczAsICQyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJzY3dwICQyLCAkMywgdGVz dF9kYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgIGNoZWNrMzIgKCQy LCAxKQorICBjaGVja3BhaXJfZHdvcmQgKCRzMCwgJDMsIHRlc3RfZGF0YSwgZW5kX2NoZWNrKQor ICAvKiBUZXN0IFNDV1AsIGRvbmUgKi8KKyAgImxpICQxMSwgMiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxpICQxMSwgMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLyogTExEUCAqLworICAibGxkcCAk MiwgJDMsIHRlc3RfZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICBj aGVja3BhaXJfcXdvcmQgKCQyLCAkMywgdGVzdF9kYXRhLCBlbmRfY2hlY2spCisgICJkc2xsICQy LCAkMiwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICJk c3JsICQzLCAkMywgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi CisgICJtb3ZlICRzMCwgJDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiCisgICJzY2RwICQyLCAkMywgdGVzdF9kYXRhICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiCisgIGNoZWNrMzIgKCQyLCAxKQorICBjaGVja3BhaXJfcXdvcmQgKCRzMCwg JDMsIHRlc3RfZGF0YSwgZW5kX2NoZWNrKQorICAibGkgJDExLCA0ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvKiBTQ0RQIGRvbmUgKi8KKyAgIkxlbmQ1 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg ImxpICQxMSwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIKKyAgIjU4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCIKKyAgIm1vdmUgJVtlcnJdLCAkMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIKKyAgIi5zZXQgcG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIKKyAgOiBbZXJyXSAiK3IiKGVycikgLyogb3V0cHV0cyAqLwor ICA6IC8qIGlucHV0cyAqLworICA6ICIkMiIsICIkMyIsICIkNCIsICIkNSIsICIkNiIsICIkNyIs ICIkOCIsICIkOSIsICIkMTAiLCAiJDExIiwKKyAgICAiJDMxIiwgIiRzMCIgIC8qIGNsb2JiZXJz ICovCisgICk7CisKKyAgcmV0dXJuIGVycjsKK30KKworLyogUjYgc3BlY2lmaWMgdGVzdHMgZm9y IG1pcHMzMiAoMzItYml0KS4gICovCisKK2ludAordGVzdF9yNl9sbHNjX3dwICh2b2lkKQorewor ICB2b2xhdGlsZSBpbnQgZXJyID0gMDsKKworICBhc20gKAorICAiLnNldCBwdXNoICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLnNldCBub3Jlb3Jk ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmRhdGEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAi LmFsaWduIDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 IgorICAidGVzdF9kYXRhXzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0IgorICAiLndvcmQgMHhhYWFhYWFhYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0IgorICAiLndvcmQgMHhiYmJiYmJiYiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0IgorICAiLmFsaWduIDggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiZW5kX2NoZWNrXzI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmJ5dGUgMCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmJ5dGUgMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmJ5dGUgMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAiLmJ5 dGUgMHgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Igor ICAiLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IgorICAibGkgJDExLCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0IiAvKiBUZXN0IExMV1AgKi8KKyAgImxsd3AgJDIsICQzLCB0ZXN0X2RhdGFfMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgY2hlY2twYWlyX2R3b3JkICgkMiwg JDMsIHRlc3RfZGF0YV8yLCBlbmRfY2hlY2tfMikKKyAgInNsbCAkMiwgJDIsIDEgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgInNybCAkMywgJDMsIDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIm1vdmUgICRzMCwg JDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgInNjd3Ag JDIsICQzLCB0ZXN0X2RhdGFfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAg Y2hlY2szMiAoJDIsIDEpCisgIGNoZWNrcGFpcl9kd29yZCAoJHMwLCAkMywgdGVzdF9kYXRhXzIs IGVuZF9jaGVja18yKQorLyogVGVzdCBTQ1dQLCBkb25lLiAgKi8KKyAgImxpICQxMSwgMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgIkxlbmQ2OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgImxp ICQxMSwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIK KyAgIjU4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCIKKyAgIm1vdmUgJVtlcnJdLCAkMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCIKKyAgIi5zZXQgcG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCIKKyAgOiBbZXJyXSAiK3IiKGVycikgLyogb3V0cHV0cyAqLworICA6 IC8qIGlucHV0cyAqLworICA6ICIkMiIsICIkMyIsICIkNCIsICIkNSIsICIkNiIsICIkNyIsICIk OCIsICIkOSIsICIkMTAiLAorICAgICIkMTEiLCAiJDMxIiwgIiRzMCIgIC8qIGNsb2JiZXJzICov CisgICk7CisKKyAgcmV0dXJuIGVycjsKK30KKworLyogQW55IHRlc3RfcjZfKiBmdW5jdGlvbiBy ZXR1cm5zIG5vbi16ZXJvID0+IGZhaWx1cmUuICAqLworI2RlZmluZSBFWFBFQ1QoWCkgaWYgKChY KSkgYWJvcnQgKCk7CisKK2ludAorbWFpbiAodm9pZCkKK3sKKyAgRVhQRUNUICh0ZXN0X3I2X2Jy YW5jaCAoKSk7CisKKyAgRVhQRUNUICh0ZXN0X3I2X2ZvcmJpZGRlbiAoKSk7CisKKyAgRVhQRUNU ICh0ZXN0X3I2XzY0ICgpKTsKKworICBFWFBFQ1QgKHRlc3RfcjYgKCkpOworCisgIEVYUEVDVCAo dGVzdF9yNl9mcHUgKCkpOworCisgIEVYUEVDVCAodGVzdF9yNl9sbHNjX2RwICgpKTsKKworICBF WFBFQ1QgKHRlc3RfcjZfbGxzY193cCAoKSk7CisKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9taXBzLTY0LXI2LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNWY3NGI0NzJlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL21pcHMtNjQtcjYuZXhwCkBAIC0wLDAgKzEsNzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIz LTIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIE1JUFMgUmVsZWFzZSA2IHBhdGNoIHRlc3Rz ICMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFNlbmQgJ3NpJyB0byBnZGIgdW50aWwg aW5mZXJpb3IgZXhpdHMuCitwcm9jIHN0ZXBpIHt9IHsKKyAgICBnbG9iYWwgZ2RiX3Byb21wdAor ICAgIHNldCB0aW1lb3V0IFtnZXRfbGFyZ2VzdF90aW1lb3V0XQorICAgIHNldCBzdGFydCBbdGlt ZXN0YW1wXQorICAgIHdoaWxlIHsgW3RpbWVzdGFtcF0gLSAkc3RhcnQgPCAzKiR0aW1lb3V0IH0g eworICAgICAgIGdkYl90ZXN0X211bHRpcGxlICJzdGVwaSIgIiIgIHsKKyAgICAgICAgICAgLXJl ICIuKmV4aXRlZCBub3JtYWxseS4qIiB7CisgICAgICAgICAgICAgICBwYXNzICJzdWNjZXNzIgor ICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgIH0KKyAgICAgICAgICAgLXJlICIuKlRo ZSBwcm9ncmFtIGlzIG5vdCBiZWluZyBydW4uKiIgeworICAgICAgICAgICAgICAgZmFpbCAiZmFp bHVyZSIKKyAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICB9CisgICAgICAgICAgIC1y ZSAiLipCcmVha3BvaW50Lip0ZXN0Xy4qJGdkYl9wcm9tcHQgJCIgeworICAgICAgICAgICB9Cisg ICAgICAgICAgIC1yZSAiJGdkYl9wcm9tcHQuKiIgeworICAgICAgICAgICB9CisgICAgICAgfQor ICAgIH0KKyAgICBmYWlsICJ0ZXN0IGZhaWxlZCIKKyAgICByZXR1cm4KK30KKworcmVxdWlyZSB7 aXN0YXJnZXQgIiptaXBzKiJ9CisKK3NldCB0ZXN0ZmlsZSAibWlwcy02NC1yNiIKK3NldCBzcmNm aWxlICR7dGVzdGZpbGV9LmMKK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0 ZmlsZX0KKworaWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgIiR7 YmluZmlsZX0iICIke3NyY2ZpbGV9IiB7ZGVidWcgbm93YXJuaW5nc31dfSB7CisgICAgdW50ZXN0 ZWQgImZhaWxlZCB0byBwcmVwYXJlIgorICAgIHJldHVybgorfQorCisjIE5hdGl2ZSBuZWVkcyBy dW4uCitpZiB7ICFbcnVudG9fbWFpbl0gfSB7CisgICAgdW50ZXN0ZWQgImNvdWxkbid0IHJ1biB0 byBtYWluIgorICAgIHJldHVybgorfQorCitzZXQgdGVzdHMgIiIKK2ZvcmVhY2ggbiBbbGlzdCAi cjZfYnJhbmNoIiAicjZfZm9yYmlkZGVuIiAicjZfNjQiICJyNiIgInI2X2ZwdSIgInI2X2xsc2Nf ZHAiICJyNl9sbHNjX3dwIl0geworICAgIGxhcHBlbmQgdGVzdHMgInRlc3RfJG4iCit9CisKKyMg UHV0IGJyZWFrcG9pbnQgb24gZWFjaCB0ZXN0LWZ1bmN0aW9uCitmb3JlYWNoIGZ1bmMgJHRlc3Rz IHsKKyAgICBpZiB7IVtnZGJfYnJlYWtwb2ludCAiJGZ1bmMiXX0geworICAgICAgIHVudGVzdGVk ICJjb3VsZG4ndCBwdXQgYnJlYWtwb2ludCB0byAkZnVuYyIKKyAgICAgICByZXR1cm4KKyAgICB9 Cit9CisKKyMgU3RlcCB0aHJvdWdoIHRoZSBiaW5hcnkKK3N0ZXBpCi0tCjIuMzQuMQoKCgoKVGVz dGVkIG9uIGJvYXJkIChNSVBTIElJIGJvYXJkLCBhcmNoaXRlY3R1cmUgbWlwczMycjIsIGxpdHRs ZS1lbmRpYW4sIHdpdGggYSBoYXJkd2FyZSBGUFUgdW5pdCBpbmNvbXBhdGlibGUgd2l0aCBzb2Z0 d2FyZSBGUFUpLCBubyByZWdyZXNzaW9ucyBub3RpY2VkIGluIHRlc3RzLgpBZnRlciB0ZXN0aW5n IG9uIHRoZSBib2FyZCwgdHdvIHRlc3RzIGdkYi5hcmNoL21pcHMtZnByZWdzZXQtY29yZS5leHAg YW5kIGdkYi5hcmNoL3NraXAtcHJvbG9ndWUuZXhwIGZhaWxlZCwgd2l0aCBhbmQgd2l0aG91dCBv dXIgcGF0Y2ggYXBwbGllZC4KVGhlIGZhaWx1cmUgb2YgZ2RiLmFyY2gvbWlwcy1mcHJlZ3NldC1j b3JlLmV4cCBpcyBkdWUgdG8gYW4gb2xkZXIga2VybmVsIHZlcnNpb24gb24gdGhlIGJvYXJkLCB3 aGljaCByZXN1bHRzIGluIGFuIGluY29ycmVjdCBjb3JlIGZpbGUgZ2VuZXJhdGVkIGJ5IHRoZSBz eXN0ZW0uIEhvd2V2ZXIsIGlmIHdlIGNyZWF0ZSB0aGUgY29yZSBmaWxlIHVzaW5nIHRoZSBnY29y ZSBjb21tYW5kLCB0aGUgdGVzdCBwYXNzZXMgc3VjY2Vzc2Z1bGx5LgpUaGUgZ2RiLmFyY2gvc2tp cC1wcm9sb2d1ZS5leHAgdGVzdCB3YXMgYWRkZWQgaW4gY29tbWl0IDNiZDBmNWM0ZDk5MjRiZTQ3 NmJkY2Y2YTNkNzdkN2IyMTJkMjI1MjMgYnkgVG9tIGRlIFZyaWVzIG9uIFNlcHRlbWJlciA0LCAy MDI0LiBUaGlzIHRlc3Qgd2FzIHZlcmlmaWVkIG9ubHkgb24gQVJNIGFuZCBpcyBsaWtlbHkgdW50 ZXN0ZWQgYW5kIG5vdCBhZGFwdGVkIGZvciBNSVBTIGFyY2hpdGVjdHVyZS4KCg==