From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id KDEnB6w+QGiCsgAAWB0awg (envelope-from ) for ; Wed, 04 Jun 2025 08:40:12 -0400 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=JMpYg2tr; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 189BC1E102; Wed, 4 Jun 2025 08:40:12 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-9.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 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 72CAE1E089 for ; Wed, 4 Jun 2025 08:40:09 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1D2C83857B98 for ; Wed, 4 Jun 2025 12:40:09 +0000 (GMT) Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::3]) by sourceware.org (Postfix) with ESMTPS id 33B523858408 for ; Wed, 4 Jun 2025 12:39:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33B523858408 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 33B523858408 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c200::3 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1749040756; cv=pass; b=xqbusV0BPNXgQT5INLzGkE+R9MjptOiUeCGyIQuc75iyr5ogduDjtsIMGZg9WBpTHaR9FJ5UXICdyNbt6W+/b0ZzyGoSEF7vseAKnayXyLkJKr17KwzZEIM7x4dp2itoU5MD8BvUQsaVZPaXg4aclNcLAwizznJrmMQfpJzAIF4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1749040756; c=relaxed/simple; bh=WShE/MMbi0CuFEgKu0SkTDyFMRjue2Wr2YA763ZlTqs=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Xu4GiKZyQf8WVa+RP9J05koAvsMVDbAmcW5s0hvqBFoPNvN9GAhY7yB9liFIi/NWbslsfYFpBrkv2HMze32y0xam6HxtVnfkvJZ8O1zs3kr68zkQDypkcEcBBIG0nyxVyGerZXUuCahZtNJ3dajlTEoNsbnY7s93/vDNVz8fAbY= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rUFwVLw5soxTFLUg1c2HSHmrAmjrkMMMd5XM8B+gTm2pkOZepH3n59wSsRZdvEJLQEUwpZZXyASRh/Y4kB+IyEt+WDpwfW7l1mVxtoRgBFCWHZQ2og/r3zR8+wFiWJuEDRfuKawJS3XHcz+x/C6rnK5TNoGBRHYUgDDoKj/VUU5DnUg6MZBrAbQ3LsXyrYt8iV9rlNYVvM+yNlzSHAh0ALiuPAyxsvDfiUJBcinLMOXOHCc3Gu92g12VFMxsU4TOTmx++8ytYvoXR68gO1NawmYNDFTlOKGv3mA47AlN9yYXmiFA6Ici7I1e2svTjdcwx0INCUR05woX73OuRVYcVQ== 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=WShE/MMbi0CuFEgKu0SkTDyFMRjue2Wr2YA763ZlTqs=; b=O/G/VQQbxkmBEG05QI8JcSjLNQzxV3NA4owEXx9MKEnzbnkK7aStQvpkTDk+QF5z+wSjgWFBQ4lv6zd3SEoVvVNBb6D52dm1C+liBU79lYLJqRrWi5xT0UOpqeZctcOEzvEgUjoT5oepqwivV69CmxJAhiRkvFewZtfiYWNAkd4JT0LmmrG/9J/YrJBKAYNm9cPz8aZnKVg8lTTsBEUKZSAJO4lzQQqC0dsYsX17Aa1ks9uhNZ0X9C98vi4zU9yDVNcUgisptE+s0zTZQLQS3TiPL2k0e3ExoygUNvaJdva3oHnCHZNbI+lGKH2JEn/Qp4LDtsKQO2HmjsWi+E2i+w== 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=WShE/MMbi0CuFEgKu0SkTDyFMRjue2Wr2YA763ZlTqs=; b=JMpYg2trPv/1PcFcvY9Ts0FS/Gy7PgI8Uk9uq3XZoX2+Sva+WncfF1vL32OsDD7UIO+HPkL06f863do8uX0pz7NOaCN7zOjvkhrwKfgpe3ZqmingtY/zMi44xa2kmq80rlULTbx4wcotJsuySHMkAUdJhWhYY5IzZren9eJbKXZ12yXCWIz/MLEZ/SWIRO4OOTnL+kYUYjm/Ue7d1DDw5K0+dpAEKqyHdiGs4HTpWdBg2IZhueelhRZwxV/jmq7fe+bq+cIbGWXaiTiv4Cjf5CFSC8pnj78VRza0M08KMt8qGJlLMNNxHuvcAtI1WWFcyom/mRZ9RgtWsnnozWfV3A== Received: from PAVPR09MB6451.eurprd09.prod.outlook.com (2603:10a6:102:304::13) by AM8PR09MB5413.eurprd09.prod.outlook.com (2603:10a6:20b:328::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.37; Wed, 4 Jun 2025 12:39:10 +0000 Received: from PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d]) by PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d%5]) with mapi id 15.20.8769.031; Wed, 4 Jun 2025 12:39:10 +0000 From: Jovan Dmitrovic To: "gdb-patches@sourceware.org" CC: Djordje Todorovic , Milica Matic , "Maciej W . Rozycki" , Jovan Dmitrovic Subject: [PATCH v13 2/2] gdb: mips: Add MIPSR6 support Thread-Topic: [PATCH v13 2/2] gdb: mips: Add MIPSR6 support Thread-Index: AQHb1U2r9aPWFACCHUi6rWpp36X8pQ== Date: Wed, 4 Jun 2025 12:39:10 +0000 Message-ID: <20250604123838.501596-3-jovan.dmitrovic@htecgroup.com> References: <20250604123838.501596-1-jovan.dmitrovic@htecgroup.com> In-Reply-To: <20250604123838.501596-1-jovan.dmitrovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: PAVPR09MB6451:EE_|AM8PR09MB5413:EE_ x-ms-office365-filtering-correlation-id: fb4442cf-76c0-4c75-e23f-08dda364cdeb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018|13003099007; x-microsoft-antispam-message-info: =?utf-8?B?anBlV0xmK2krc3ZKMWdxcjkvd2dyZWdYRzN0MUczMmNRa1V6YnI0NklFbmJF?= =?utf-8?B?SGxQOFRxWmIrQmd1T21OY3FiejgzdlFnZjVyZU5BNWFjWE5ERDFpeGgvU21m?= =?utf-8?B?WmdlSTNxNXJSV2NWaGpBMkViN3UyTzl0NEp5UzkwbmtSYWllTC94WWs0T3pt?= =?utf-8?B?RmQ2ajl1ZmRpSUR1YW9JQXFDLyt5QzZFS0sxanpPb0tFdGRCY2RQdkVCMUoy?= =?utf-8?B?TXVMZk03K1B5TEE5Yks5Z0ExMlcwb1F4VWMvZXpEUVRoYjNuSEVKcjZSK01n?= =?utf-8?B?akIzbTZRNm5xRG1aZHZKRzJlL0pCVUZQbE4xaWhyQzVDWGMyTS85a2RtUytL?= =?utf-8?B?MklBY0NleGRjZXQvVjBBUkdrSFBldWpPNGtlR3d4WkhLbjF2WnhHcy9VMThp?= =?utf-8?B?RXJndm8xNmkvRGY3cDYxd0Jja3dYYzZuS1JYTUkzL2FjSnBDNEc0UGFLblhH?= =?utf-8?B?aXd4L1FTb3Z0WVFoWkZaNVBQbGo1eGpwaUJ5cjdIR0hyamdpWnhKWVNTTEpj?= =?utf-8?B?VnRjVnJGZmxsV3RjWkNLTkhIQmJxUDZvdUN4a3JNcHA1TUNlNDZ0eGlHVWpv?= =?utf-8?B?RUU3cjRZVHV6ellFOXovTVFQUnFlQzl2eFNnMkhjSUozVVdOSExYMEVNOU81?= =?utf-8?B?MGZtSnJ0OU5hdnVoTkF2Rk5FZFNJbWxtWDFZSm1IQWxTNHRHR0t1dlZ3UE93?= =?utf-8?B?elZRaDEreVRwQUpLd01hd2M5bzZVeStJb0loQWxaY1VaU1lNSnB0K1ZIUThX?= =?utf-8?B?SE1HVVIyOGQ0bU5zbllRbm1tTGQrMmc4Y0hkQVo4Wld1TklRaHhCcUlxdVRa?= =?utf-8?B?dkJMbmNRVEN3WEJTRWY5WENQS0M2dXpmTkNmRnhSR25uSXYrYnZzZE5jZXhT?= =?utf-8?B?eDFPUFlkWDlJcllxQ0xwd3VJUysxeXQ5ajZCMVhwbEsrbzBvdlpvcWt6RFJl?= =?utf-8?B?NkhXdlRpQ3Z0ME9YNmZQQ3RVQ09qaHNoZzN4UHlxTmpRVXJQcllqcDgwaC9C?= =?utf-8?B?RnQ5Nmg1NkNmTlRoYkswUmVWR1BDcDVHTGN4bGxyckphZGFLZmJlNGE5RTIv?= =?utf-8?B?R0NGQVI2UlordHBQU3dpd1ZhS3dTNUs2ZGtVSkFtd3F0azZsQ3piemdkOENo?= =?utf-8?B?b291bk96N0lsTytML1gyYmlaaGp0MVh1aTQ1TGt2N3VIdVVWTXIvNGltWjc5?= =?utf-8?B?V1VEZ3VzVDRkRnphV1RsQ2grNDI0N0FKVkZOYnZvMEtrR1BiTXIvSHR1TFRj?= =?utf-8?B?TThjOVptZ29nVnBBcGxkRGVnN1ZrZDUwNUlZK014Z3FaL3gxVWpFcXdvckFv?= =?utf-8?B?VkpCckswU2R1aW5QSHVIcDdPaUVuVVNsSmtIVUYvVThVVlN6SGVJT1V4czRC?= =?utf-8?B?U2NZUnB6OGVnZy9sbkJmRE1zQ1Ivdk5uUmFMZnBPMnhzdzhUUXpnTnJiWVND?= =?utf-8?B?WWp3RXRWTXRGOFRnUTV3NlIxcnJKYmd5aFl0UUxvTEVQMzJXMUpyY0lFMEdC?= =?utf-8?B?YnBmNCtJSEM2WGFKK3VkdFRxWlRCcXQ0NmNOU0xUUTBIOGc5d3ZRazBZOWZD?= =?utf-8?B?SHVaclBGK0xlTlJ4QTBNK0pvcXYwS1BJVGlLOThwVjN6bFJIdFdvWUVrQkZP?= =?utf-8?B?bHpvMmJkV1RDb2N6SWRLUnlqalVmVzgwOWxLMGlHSGdQaGs2cmVocEJGYkZv?= =?utf-8?B?YnNsNklHajhNY3lTRU03MDgwT0ptb0ZSSVdBQ3FkazY1cUxScU1ubWR0SHNk?= =?utf-8?B?U0dFdnVmZldGMlVJUWFXRXpyYmcxbTJSUHU3bEMyRlU2bGdrbGJXTzNWT2F3?= =?utf-8?B?MTRpTjhKK3c3TW90S1EvMTU2M1JsYS9aS29nT1EyMldsSmJIZThwNHlzSnNJ?= =?utf-8?B?bG1NWGdXb01MUUk1cmltNVlJZno2UkNRZlprZm9xRERLYnpYUEY4RWNwLzVL?= =?utf-8?B?WEszSEJkUmFtVEpCQnJxM29zd3p1NmFxYlMxMnNlOUR0TkVZVmdDRWlxdVF2?= =?utf-8?Q?qi48kMmFYyjS3djzmam2Za6sq7cb7I=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAVPR09MB6451.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(38070700018)(13003099007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YUE1SnJYTWFEQXJOU29NdUNFWGlqdGF3UTUwSTFCUDBjQmxldC9XU3dGWk1Q?= =?utf-8?B?QWZmNEVoSENXejE5UnhsMC91d3N1SlhXMDZkYVBJZFZFRXViTXd0bEFNWFJm?= =?utf-8?B?R3g5WlFJcDF3ek13Y29DbHVtT3UvYkZNUitGL1ZCL29HWm5pbC9pbTM1ajlO?= =?utf-8?B?WUhERVFETEQ2S2lTYzFkcTlWeGpTeGFPeEgzMWZLOTZlK3ZsNU01R3hwNVE4?= =?utf-8?B?OHJYYlJzS0lOaEtEaHFkNm5nb2VOOWZBU2xkRUc2U3pYbHFQOEJUVDRjV1Ax?= =?utf-8?B?OXM0dFoxV2VsQ29scmpkc0UvSUJCZHRKeHFaMXdhMHFwNzVJbCs1T244Q3lu?= =?utf-8?B?ei81VWd4VXArb25ndG9HT21nV3dMb1k1Rklwc2Z3SWw1N3BIV3Z2bjdLM1RN?= =?utf-8?B?ZUI2WW9SbVR2ZHhSbTFhRXMxaGcrUEFFK0h3Wm53MUZIVURyTWQ0NUdvYUhj?= =?utf-8?B?TzZqWmtQQ0RLOXp2Z3lOL2F6S29pb1NJMUJ2aXhha0ozVWNlRGtuMkgyd3N6?= =?utf-8?B?cHgzdld6ZXIwMmczeFVWd0JyN29OMndZL1hnUEpJVHFRRDl1K2JSTFBKeGx3?= =?utf-8?B?b3ZxVXRmZkhaSUxPOE1SQVhDQW1IMFBHcTBlNFJJR1FIdk8xV0xMYzFCSFdB?= =?utf-8?B?TCtac3d4MW1JMEdHbEFFVWJyN0JmMmNOK25ELzVBaXdWc1E0L0RuM2hUaUZo?= =?utf-8?B?VmFHdUlCWkl0TVErZlFpU3kxR3JwSFZFSkxZQW52YlRDVU5yb0NNL3J5c2Ja?= =?utf-8?B?cGVsUjNtUlA0Q25ueU80MjJJMkJIQlFkZ1pSUExIeEpYaDFvc2kxcnFDbTJX?= =?utf-8?B?bGVWZCt6Z2tGUXk4dHFRVzFHeFpyVW11QTVid0Vud2N5ajZCaGVYOExmNTlY?= =?utf-8?B?YVgzWUV2bmRtUzRSdEZtWFNieHNsd1VpSy9pRTlybnlSazdNN0lOTmRTcm9Q?= =?utf-8?B?b2NieWVXMnQ4K09VT3VqVm9KakdBYnFhM0tDWFpXT0lpQ1krTTNTeG53TmdM?= =?utf-8?B?ZnE4LzlRMnVNcWltU0d4NFhRWnE2RkN6SlJYVklEUjhkNGZDdTZ0OWlkREVU?= =?utf-8?B?QkwwTG9GZnBkY3RORWgxNFFrdHArbnc4d3FONHhPZEdlbXB4Q2I3Wkp5dXhi?= =?utf-8?B?VEZlcXNiQU5GTDhmZjFFUjVrZ2FLbVlsNFhDak1aMktCS1pjc28vRmZ2d0VT?= =?utf-8?B?SllMWVJZck12WExERi9oM3lEamk0S3pIV0s2T1ZsSUd6VHVLSlhHOUNSTG5K?= =?utf-8?B?QXVSbWsrRk9odzlQbFo3cWhaVUdEajFxTTI0RkxiZEx4ODZFemFHcENKQ3Br?= =?utf-8?B?eFp0MXZ1cm03Q0RUWWlGYy9yUVhJN0tlT3JuL2hxRVdQUGVNSzZlSGd1WDQv?= =?utf-8?B?R3pxVkRxbWRjZWNXSGV5akU4UVVYTXlVbVhWSG9NZmFiTzRJUlRUdlhpd0Vw?= =?utf-8?B?cHl2dXdDdUJDbkdPcEh3R0ZFc3dmZlE0dDVCVks5ak1xVEJ4UW1rcWRWdERl?= =?utf-8?B?QmpHcnBKcVpHWHZhRWV6cHZvdkNkOCtoeWUzTzFTMU5VamNWdGp5VXNscG5I?= =?utf-8?B?TjczWmRlTGJuU1gvRXlTc2xlNWc2ZUNmaEoxb0NwaGVZK1VLaU1COVpWZ2c4?= =?utf-8?B?UmFFQktOdUs2UHB2Ulk3UVQ3MXIrZWVOQkUvWFBrYndoQmY0aGdFS01oYmwy?= =?utf-8?B?YU43Y0Zna3N1MGZxWmZGQmZ1clVqeVRnaEpnNVpxMjIvb1hjV29SWnluaXQ3?= =?utf-8?B?Rk1aSDMyNlNhL2FOQzFiT2VocUlkaDdqRmNoSUcrVmdVczFldTlieDZCSDg0?= =?utf-8?B?VmJUUk9VQ1hDY3hJZVY5MExSZ0ZITlpFWU5PUjFtSlNMdGpZR1NnTHZnUDI0?= =?utf-8?B?Z0RoK05qU2R5aTB2SVZmNFpYL0pTOFE0RGZSNjkwNUtKdVA5UFAwdzRGcGZ2?= =?utf-8?B?Zmw2bGxId29KMzQ0WjJubEsxa3NldmZLZ1h3c3BHd3lVSnVqbndWelRFYzVU?= =?utf-8?B?NFRUYjZFREpCSVY5TXMxbnF2WS91cU0rSVlBczBxcFJNcFA1Qm43VkZmTjZl?= =?utf-8?B?aUkvcVBaN0FiblpoUDV2Q3ZJUDNYcjZkS09FWTJEZzJObmI4UDZGQm9FMXFi?= =?utf-8?B?U1E4S1VWd3hGbnZ5UzVnaVNSQzl0ZXFTMFpLMlYybzFUSEFIazRtQVo3SVpK?= =?utf-8?Q?pPlozh8SXD4cpg1NyIFnoxU=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <0B4CC9680888604E9F44ECEF1CD37517@eurprd09.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR09MB6451.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb4442cf-76c0-4c75-e23f-08dda364cdeb X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2025 12:39:10.3070 (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: o9oJIfvn8UzR4g7++Eqvekwu+Toiu/cOdEqkrT5SpWkDwXy7W9e6Y8FW5lS5sduJXO9ysvSmQqZ83l/oP4p9krPItjMkTWdZjZgl46lF2ps= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR09MB5413 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 RnJvbTogTWlsaWNhIE1hdGljIDxtaWxpY2EubWF0aWNAaHRlY2dyb3VwLmNvbT4NCg0KSW50cm9k dWNlIG5ldyBpbnN0cnVjdGlvbiBlbmNvZGluZ3MgZnJvbSBSZWxlYXNlIDYgb2YgdGhlIE1JUFMN CmFyY2hpdGVjdHVyZSBbMV0uIFN1cHBvcnQgYnJlYWtwb2ludHMgYW5kIHNpbmdsZSBzdGVwcGlu ZyB3aXRoDQpjb21wYWN0IGJyYW5jaGVzLCBmb3JiaWRkZW4gc2xvdHMsIG5ldyBicmFuY2ggaW5z dHJ1Y3Rpb24gYW5kDQpuZXcgYXRvbWljIGxvYWQtc3RvcmUgaW5zdHJ1Y3Rpb24gZW5jb2Rpbmdz Lg0KDQpTaWduZWQtb2ZmLWJ5OiBNaWxpY2EgTWF0aWMgPG1pbGljYS5tYXRpY0BodGVjZ3JvdXAu Y29tPg0KU2lnbmVkLW9mZi1ieTogSm92YW4gRG1pdHJvdmnEhyA8am92YW4uZG1pdHJvdmljQGh0 ZWNncm91cC5jb20+DQotLS0NCiBnZGIvbWlwcy10ZGVwLmMgICAgICAgICAgICAgICAgICAgICAg IHwgNTQ4ICsrKysrKysrKysrKystLQ0KIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvbWlwcy02NC1y Ni5jICAgfCA5MTYgKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBnZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL21pcHMtNjQtcjYuZXhwIHwgIDc0ICsrKw0KIDMgZmlsZXMgY2hhbmdlZCwgMTQ5NiBp bnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9taXBzLTY0LXI2LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9taXBzLTY0LXI2LmV4cA0KDQpkaWZmIC0tZ2l0IGEvZ2RiL21pcHMt dGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jDQppbmRleCA0ODI4NGFiZGQ3My4uOWNmNzNlMzA1NDAg MTAwNjQ0DQotLS0gYS9nZGIvbWlwcy10ZGVwLmMNCisrKyBiL2dkYi9taXBzLXRkZXAuYw0KQEAg LTc2LDYgKzc2LDEwIEBAIHN0YXRpYyBpbnQgbWlwczE2X2luc25fYXRfcGNfaGFzX2RlbGF5X3Ns b3QgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIHN0YXRpYyB2b2lkIG1pcHNfcHJpbnRfZmxv YXRfaW5mbyAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IHVpX2ZpbGUgKiwNCiAJCQkJICAgY29u c3QgZnJhbWVfaW5mb19wdHIgJiwgY29uc3QgY2hhciAqKTsNCiANCitzdGF0aWMgdm9pZA0KK21p cHNfcmVhZF9mcF9yZWdpc3Rlcl9zaW5nbGUgKGNvbnN0IGZyYW1lX2luZm9fcHRyICZmcmFtZSwg aW50IHJlZ25vLA0KKwkJCSAgICAgIGdkYjo6YXJyYXlfdmlldzxnZGJfYnl0ZT4gcmFyZV9idWZm ZXIpOw0KKw0KIC8qIEEgdXNlZnVsIGJpdCBpbiB0aGUgQ1AwIHN0YXR1cyByZWdpc3RlciAoTUlQ U19QU19SRUdOVU0pLg0KICAgIFRoaXMgYml0IGlzIHNldCBpZiB3ZSBhcmUgZW11bGF0aW5nIDMy LWJpdCBGUFJzIG9uIGEgNjQtYml0IGNoaXAuICAqLw0KICNkZWZpbmUgU1QwX0ZSICgxIDw8IDI2 KQ0KQEAgLTMyNiw2ICszMzAsMTcgQEAgbWlwc19hYmlfcmVnc2l6ZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gpDQogICAgIH0NCiB9DQogDQorLyogUmV0dXJuIHRydWUgaWYgdGhlIGdkYmFyY2gg aXMgYmFzZWQgb24gTUlQUyBSZWxlYXNlIDYuICAqLw0KKw0KK3N0YXRpYyBib29sDQoraXNfbWlw c3I2X2lzYSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpDQorew0KKyAgY29uc3Qgc3RydWN0IGJm ZF9hcmNoX2luZm8gKmluZm8gPSBnZGJhcmNoX2JmZF9hcmNoX2luZm8gKGdkYmFyY2gpOw0KKw0K KyAgcmV0dXJuIChpbmZvLT5tYWNoID09IGJmZF9tYWNoX21pcHNpc2EzMnI2DQorCSAgfHwgaW5m by0+bWFjaCA9PSBiZmRfbWFjaF9taXBzaXNhNjRyNik7DQorfQ0KKw0KIC8qIE1JUFMxNi9taWNy b01JUFMgZnVuY3Rpb24gYWRkcmVzc2VzIGFyZSBvZGQgKGJpdCAwIGlzIHNldCkuICBIZXJlDQog ICAgYXJlIHNvbWUgZnVuY3Rpb25zIHRvIGhhbmRsZSBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRo IGNvbXByZXNzZWQNCiAgICBjb2RlIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGVzdGlu Zywgc2V0dGluZywgb3IgY2xlYXJpbmcNCkBAIC0xNTU0LDYgKzE1NjksNyBAQCBtaXBzX2ZldGNo X2luc3RydWN0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCiAjZGVmaW5lIGIwczExX29w KHgpICgoeCkgJiAweDdmZikNCiAjZGVmaW5lIGIwczEyX2ltbSh4KSAoKHgpICYgMHhmZmYpDQog I2RlZmluZSBiMHMxNl9pbW0oeCkgKCh4KSAmIDB4ZmZmZikNCisjZGVmaW5lIGIwczIxX2ltbSh4 KSAoKHgpICYgMHgxZmZmZmYpDQogI2RlZmluZSBiMHMyNl9pbW0oeCkgKCh4KSAmIDB4M2ZmZmZm ZikNCiAjZGVmaW5lIGI2czEwX2V4dCh4KSAoKCh4KSA+PiA2KSAmIDB4M2ZmKQ0KICNkZWZpbmUg YjExczVfcmVnKHgpICgoKHgpID4+IDExKSAmIDB4MWYpDQpAQCAtMTU5MCw2ICsxNjA2LDI0IEBA IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQgKFVMT05HRVNUIGluc3QpDQogICByZXR1cm4gKChpdHlw ZV9pbW1lZGlhdGUgKGluc3QpIF4gMHg4MDAwKSAtIDB4ODAwMCkgPDwgMjsNCiB9DQogDQorLyog Q2FsY3VsYXRlcyBwYy1yZWxhdGl2ZSBvZmZzZXQgZnJvbSBsb3dlciAyMSBiaXRzIG9mIGluc3Ry dWN0aW9uLg0KKyAgIFVzZWQgYnkgQkVRWkMsIEJORVpDLiAgKi8NCisNCitzdGF0aWMgTE9OR0VT VA0KK21pcHMzMl9yZWxhdGl2ZV9vZmZzZXQyMSAoVUxPTkdFU1QgaW5zbikNCit7DQorICByZXR1 cm4gKChiMHMyMV9pbW0gKGluc24pIF4gMHgxMDAwMDApIC0gMHgxMDAwMDApIDw8IDI7DQorfQ0K Kw0KKy8qIENhbGN1bGF0ZXMgcGMtcmVsYXRpdmUgb2Zmc2V0IGZyb20gbG93ZXIgMjYgYml0cyBv ZiBhbiBpbnN0cnVjdGlvbi4NCisgICBVc2VkIGJ5IEJDLCBCQUxDLiAgKi8NCisNCitzdGF0aWMg TE9OR0VTVA0KK21pcHMzMl9yZWxhdGl2ZV9vZmZzZXQyNiAoVUxPTkdFU1QgaW5zbikNCit7DQor ICByZXR1cm4gKChiMHMyNl9pbW0gKGluc24pIF4gMHgyMDAwMDAwKSAtIDB4MjAwMDAwMCkgPDwg MjsNCit9DQorDQogLyogRGV0ZXJtaW5lIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IGluc3RydWN0 aW9uIGV4ZWN1dGVkIGFmdGVyIHRoZSBJTlNUDQogICAgZmxvYXRpbmcgY29uZGl0aW9uIGJyYW5j aCBpbnN0cnVjdGlvbiBhdCBQQy4gIENPVU5UIHNwZWNpZmllcyB0aGUNCiAgICBudW1iZXIgb2Yg dGhlIGZsb2F0aW5nIGNvbmRpdGlvbiBiaXRzIHRlc3RlZCBieSB0aGUgYnJhbmNoLiAgKi8NCkBA IC0xNjUwLDYgKzE2ODQsNzcgQEAgaXNfb2N0ZW9uX2JiaXRfb3AgKGludCBvcCwgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gpDQogICByZXR1cm4gMDsNCiB9DQogDQorLyogRGV0ZWN0cyB3aGV0aGVy IG92ZXJmbG93IG9jY3VycyB3aGVuIGFkZGluZyB0d28gMzItYml0IGludGVnZXJzLiAgKi8NCisN CitzdGF0aWMgYm9vbA0KK2lzX2FkZDMyYml0X292ZXJmbG93IChpbnQzMl90IGEsIGludDMyX3Qg YikNCit7DQorICBpbnQzMl90IHIgPSAodWludDMyX3QpIGEgKyAodWludDMyX3QpIGI7DQorICBy ZXR1cm4gKGEgPCAwICYmIGIgPCAwICYmIHIgPj0gMCkgfHwgKGEgPiAwICYmIGIgPiAwICYmIHIg PD0gMCk7DQorfQ0KKw0KKy8qIEhlbHBlciBmdW5jdGlvbiBmb3IgQk9WQyBhbmQgQk5WQyBpbnN0 cnVjdGlvbnMgd2hpY2ggYXJlIGludHJvZHVjZWQgaW4NCisgICBNSVBTIFJlbGVhc2UgNi4NCisN CisgICBCT1ZDIHBlcmZvcm1zIGEgc2lnbmVkIDMyLWJpdCBhZGRpdGlvbiBvZiB0d28gcmVnaXN0 ZXJzLiAgQk9WQyBkaXNjYXJkcyB0aGUNCisgICBzdW0sIGJ1dCBkZXRlY3RzIHNpZ25lZCAzMi1i aXQgaW50ZWdlciBvdmVyZmxvdyBvZiB0aGUgc3VtIChhbmQgdGhlIGlucHV0cywNCisgICBpbiBN SVBTNjQpLCBhbmQgYnJhbmNoZXMgaWYgc3VjaCBvdmVyZmxvdyBpcyBkZXRlY3RlZC4NCisNCisg ICBCTlZDIGRvZXMgdGhlIG9wcG9zaXRlLCBpLmUuIGJyYW5jaGVzIGlmIHN1Y2ggb3ZlcmZsb3cg aXMgbm90IGRldGVjdGVkLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK2lzX2FkZDY0Yml0X292ZXJm bG93IChpbnQ2NF90IGEsIGludDY0X3QgYikNCit7DQorICBpZiAoYSAhPSAoaW50MzJfdCkgYSkN CisgICAgcmV0dXJuIHRydWU7DQorICBpZiAoYiAhPSAoaW50MzJfdCkgYikNCisgICAgcmV0dXJu IHRydWU7DQorICByZXR1cm4gaXNfYWRkMzJiaXRfb3ZlcmZsb3cgKChpbnQzMl90KSBhLCAoaW50 MzJfdCkgYik7DQorfQ0KKw0KKyNkZWZpbmUgREVMQVlfU0xPVF9TSVpFIDQNCisNCisvKiBDYWxj dWxhdGUgYWRkcmVzcyBvZiBuZXh0IGluc3RydWN0aW9uIGFmdGVyIEJMRVouICAqLw0KKw0KK3N0 YXRpYyBDT1JFX0FERFINCittaXBzMzJfYmxlel9wYyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsDQorCQlVTE9OR0VTVCBpbnN0LCBDT1JFX0FERFIg cGMsIGludCBpbnZlcnQpDQorew0KKyAgaW50IHJzID0gaXR5cGVfcnMgKGluc3QpOw0KKyAgaW50 IHJ0ID0gaXR5cGVfcnQgKGluc3QpOw0KKyAgTE9OR0VTVCB2YWxfcnMgPSByZWdjYWNoZV9yYXdf Z2V0X3NpZ25lZCAocmVnY2FjaGUsIHJzKTsNCisgIExPTkdFU1QgdmFsX3J0ID0gcmVnY2FjaGVf cmF3X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBydCk7DQorICBVTE9OR0VTVCB1dmFsX3JzID0gcmVn Y2FjaGVfcmF3X2dldF91bnNpZ25lZCAocmVnY2FjaGUsIHJzKTsNCisgIFVMT05HRVNUIHV2YWxf cnQgPSByZWdjYWNoZV9yYXdfZ2V0X3Vuc2lnbmVkIChyZWdjYWNoZSwgcnQpOw0KKyAgYm9vbCB0 YWtlbiA9IGZhbHNlOw0KKw0KKyAgLyogQkxFWiwgQkxFWkwsIEJHVFosIEJHVFpMICAqLw0KKyAg aWYgKHJ0ID09IDApDQorICAgIHRha2VuID0gKHZhbF9ycyA8PSAwKTsNCisgIGVsc2UgaWYgKGlz X21pcHNyNl9pc2EgKGdkYmFyY2gpKQ0KKyAgICB7DQorICAgICAgLyogQkxFWkFMQywgQkdUWkFM QyAgKi8NCisgICAgICBpZiAocnMgPT0gMCAmJiBydCAhPSAwKQ0KKwl0YWtlbiA9ICh2YWxfcnQg PD0gMCk7DQorICAgICAgLyogQkdFWkFMQywgQkxUWkFMQyAgKi8NCisgICAgICBlbHNlIGlmIChy cyA9PSBydCAmJiBydCAhPSAwKQ0KKwl0YWtlbiA9ICh2YWxfcnQgPj0gMCk7DQorICAgICAgLyog QkdFVUMsIEJMVFVDICAqLw0KKyAgICAgIGVsc2UgaWYgKHJzICE9IHJ0ICYmIHJzICE9IDAgJiYg cnQgIT0gMCkNCisJdGFrZW4gPSAodXZhbF9ycyA+PSB1dmFsX3J0KTsNCisgICAgfQ0KKw0KKyAg aWYgKGludmVydCkNCisgICAgdGFrZW4gPSAhdGFrZW47DQorDQorICAvKiBDYWxjdWxhdGUgYnJh bmNoIHRhcmdldC4gICovDQorICBpZiAodGFrZW4pDQorICAgIHBjICs9IG1pcHMzMl9yZWxhdGl2 ZV9vZmZzZXQgKGluc3QpOw0KKyAgZWxzZQ0KKyAgICBwYyArPSBERUxBWV9TTE9UX1NJWkU7DQor DQorICByZXR1cm4gcGM7DQorfQ0KIA0KIC8qIERldGVybWluZSB3aGVyZSB0byBzZXQgYSBzaW5n bGUgc3RlcCBicmVha3BvaW50IHdoaWxlIGNvbnNpZGVyaW5nDQogICAgYnJhbmNoIHByZWRpY3Rp b24uICAqLw0KQEAgLTE2NjAsMTEgKzE3NjUsMTYgQEAgbWlwczMyX25leHRfcGMgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykNCiAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7DQogICB1bnNpZ25lZCBsb25nIGluc3Q7DQogICBpbnQg b3A7DQorICBib29sIG1pcHM2NGJpdHJlZyA9IGZhbHNlOw0KKw0KKyAgaWYgKG1pcHNfaXNhX3Jl Z3NpemUgKGdkYmFyY2gpID09IDgpDQorICAgIG1pcHM2NGJpdHJlZyA9IHRydWU7DQorDQogICBp bnN0ID0gbWlwc19mZXRjaF9pbnN0cnVjdGlvbiAoZ2RiYXJjaCwgSVNBX01JUFMsIHBjLCBOVUxM KTsNCiAgIG9wID0gaXR5cGVfb3AgKGluc3QpOw0KICAgaWYgKChpbnN0ICYgMHhlMDAwMDAwMCkg IT0gMCkgLyogTm90IGEgc3BlY2lhbCwganVtcCBvciBicmFuY2ggaW5zdHJ1Y3Rpb24uICAqLw0K ICAgICB7DQotICAgICAgaWYgKG9wID4+IDIgPT0gNSkNCisgICAgICBpZiAob3AgPj4gMiA9PSA1 ICYmICgob3AgJiAweDAyKSA9PSAwIHx8IGl0eXBlX3J0IChpbnN0KSA9PSAwKSkNCiAJew0KIAkg IC8qIEJFUUwsIEJORUwsIEJMRVpMLCBCR1RaTDogYml0cyAwMTAxeHggKi8NCiAJICBzd2l0Y2gg KG9wICYgMHgwMykNCkBAIC0xNjc0LDcgKzE3ODQsNyBAQCBtaXBzMzJfbmV4dF9wYyAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkgICAgY2FzZSAxOgkJLyogQk5F TCAqLw0KIAkgICAgICBnb3RvIG5lcV9icmFuY2g7DQogCSAgICBjYXNlIDI6CQkvKiBCTEVaTCAq Lw0KLQkgICAgICBnb3RvIGxlc3NfYnJhbmNoOw0KKwkgICAgICBnb3RvIGxlel9icmFuY2g7DQog CSAgICBjYXNlIDM6CQkvKiBCR1RaTCAqLw0KIAkgICAgICBnb3RvIGdyZWF0ZXJfYnJhbmNoOw0K IAkgICAgZGVmYXVsdDoNCkBAIC0xNjg2LDE5ICsxNzk2LDIzIEBAIG1pcHMzMl9uZXh0X3BjIChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCSAgLyogQkMxRiwgQkMx RkwsIEJDMVQsIEJDMVRMOiAwMTAwMDEgMDEwMDAgKi8NCiAJICBwYyA9IG1pcHMzMl9iYzFfcGMg KGdkYmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyArIDQsIDEpOw0KIAl9DQotICAgICAgZWxzZSBp ZiAob3AgPT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDkNCisgICAgICBlbHNlIGlmICghaXNf bWlwc3I2X2lzYSAoZ2RiYXJjaCkNCisJICAgICAgICYmIG9wID09IDE3DQorCSAgICAgICAmJiBp dHlwZV9ycyAoaW5zdCkgPT0gOQ0KIAkgICAgICAgJiYgKGl0eXBlX3J0IChpbnN0KSAmIDIpID09 IDApDQogCXsNCiAJICAvKiBCQzFBTlkyRiwgQkMxQU5ZMlQ6IDAxMDAwMSAwMTAwMSB4eHgweCAq Lw0KIAkgIHBjID0gbWlwczMyX2JjMV9wYyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluc3QsIHBjICsg NCwgMik7DQogCX0NCi0gICAgICBlbHNlIGlmIChvcCA9PSAxNyAmJiBpdHlwZV9ycyAoaW5zdCkg PT0gMTANCisgICAgICBlbHNlIGlmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkNCisJICAgICAg ICYmIG9wID09IDE3DQorCSAgICAgICAmJiBpdHlwZV9ycyAoaW5zdCkgPT0gMTANCiAJICAgICAg ICYmIChpdHlwZV9ydCAoaW5zdCkgJiAyKSA9PSAwKQ0KIAl7DQogCSAgLyogQkMxQU5ZNEYsIEJD MUFOWTRUOiAwMTAwMDEgMDEwMTAgeHh4MHggKi8NCiAJICBwYyA9IG1pcHMzMl9iYzFfcGMgKGdk YmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyArIDQsIDQpOw0KIAl9DQotICAgICAgZWxzZSBpZiAo b3AgPT0gMjkpDQorICAgICAgZWxzZSBpZiAoIWlzX21pcHNyNl9pc2EgKGdkYmFyY2gpICYmIG9w ID09IDI5KQ0KIAl7DQogCSAgLyogSkFMWDogMDExMTAxDQogCSAgICAgVGhlIG5ldyBQQyB3aWxs IGJlIGFsdGVybmF0ZSBtb2RlLiAgKi8NCkBAIC0xNzMxLDcgKzE4NDUsMTQ4IEBAIG1pcHMzMl9u ZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCSAgICAg IHBjICs9IDg7DQogCSAgICB9DQogCX0NCisgICAgICBlbHNlIGlmIChpc19taXBzcjZfaXNhIChn ZGJhcmNoKSkNCisJew0KKwkgIGlmIChvcCA9PSA4IHx8IG9wID09IDI0KQ0KKwkgICAgew0KKwkg ICAgICAvKiBCT1ZDLCBCRVFaQUxDLCBCRVFDIGFuZCBCTlZDLCBCTkVaQUxDLCBCTkVDICAqLw0K KwkgICAgICBpbnQgcnMgPSBydHlwZV9ycyAoaW5zdCk7DQorCSAgICAgIGludCBydCA9IHJ0eXBl X3J0IChpbnN0KTsNCisJICAgICAgTE9OR0VTVCB2YWxfcnMgPSByZWdjYWNoZV9yYXdfZ2V0X3Np Z25lZCAocmVnY2FjaGUsIHJzKTsNCisJICAgICAgTE9OR0VTVCB2YWxfcnQgPSByZWdjYWNoZV9y YXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIHJ0KTsNCisJICAgICAgYm9vbCB0YWtlbiA9IGZhbHNl Ow0KKwkgICAgICBpZiAocnMgPj0gcnQpDQorCQl7DQorCQkgIC8qIEJPVkMgKEJOVkMpICAqLw0K KwkJICBpZiAobWlwczY0Yml0cmVnKQ0KKwkJICAgIHRha2VuID0gaXNfYWRkNjRiaXRfb3ZlcmZs b3cgKHZhbF9ycywgdmFsX3J0KTsNCisJCSAgZWxzZQ0KKwkJICAgIHRha2VuID0gaXNfYWRkMzJi aXRfb3ZlcmZsb3cgKHZhbF9ycywgdmFsX3J0KTsNCisJCX0NCisJICAgICAgZWxzZSBpZiAocnMg PCBydCAmJiBycyA9PSAwKQ0KKwkJew0KKwkJICAvKiBCRVFaQUxDIChCTkVaQUxDKSAgKi8NCisJ CSAgdGFrZW4gPSAodmFsX3J0ID09IDApOw0KKwkJfQ0KKwkgICAgICBlbHNlDQorCQl7DQorCQkg IC8qIEJFUUMgKEJORUMpICAqLw0KKwkJICB0YWtlbiA9ICh2YWxfcnMgPT0gdmFsX3J0KTsNCisJ CX0NCiANCisJICAgICAgaWYgKG9wID09IDI0KQ0KKwkJew0KKwkJICAvKiBCTlZDLCBCTkVaQUxD LCBCTkVDICAqLw0KKwkJICB0YWtlbiA9ICF0YWtlbjsNCisJCX0NCisNCisJICAgICAgaWYgKHRh a2VuKQ0KKwkJcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCkgKyA0Ow0KKwkgICAg ICBlbHNlDQorCQl7DQorCQkgIC8qIFN0ZXAgdGhyb3VnaCB0aGUgZm9yYmlkZGVuIHNsb3QgdG8g YXZvaWQgcmVwZWF0ZWQNCisJCSAgICAgZXhjZXB0aW9ucy4NCisJCSAgICAgV2UgZG8gbm90IGN1 cnJlbnRseSBoYXZlIGFjY2VzcyB0byB0aGUgQkQgYml0IHdoZW4gaGl0dGluZw0KKwkJICAgICBh IGJyZWFrcG9pbnQgYW5kIHRoZXJlZm9yZSBjYW5ub3QgdGVsbCBpZiB0aGUgYnJlYWtwb2ludA0K KwkJICAgICBoaXQgb24gdGhlIGJyYW5jaCBvciB0aGUgZm9yYmlkZGVuIHNsb3QuICAqLw0KKwkJ ICBwYyArPSA4Ow0KKwkJfQ0KKwkgICAgfQ0KKwkgIGVsc2UgaWYgKG9wID09IDE3ICYmIChpdHlw ZV9ycyAoaW5zdCkgPT0gOSB8fCBpdHlwZV9ycyAoaW5zdCkgPT0gMTMpKQ0KKwkgICAgew0KKwkg ICAgICAvKiBCQzFFUVosIEJDMU5FWiAgKi8NCisJICAgICAgZ2RiX2J5dGUgc3RhdHVzOw0KKwkg ICAgICBnZGJfYnl0ZSB0cnVlX3ZhbCA9IDA7DQorCSAgICAgIHVuc2lnbmVkIGludCBmcCA9IChn ZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKQ0KKwkJCQkgKyBtaXBzX3JlZ251bSAoZ2RiYXJjaCkt PmZwMA0KKwkJCQkgKyBpdHlwZV9ydCAoaW5zdCkpOw0KKwkgICAgICBzdHJ1Y3QgZnJhbWVfaW5m b19wdHIgZnJhbWUgPSBnZXRfY3VycmVudF9mcmFtZSAoKTsNCisJICAgICAgZ2RiX2J5dGUgKmJ1 Zl90bXAgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChzaXplb2YgKGdkYl9ieXRlKSAqIDQpOw0KKwkg ICAgICBnZGI6OmFycmF5X3ZpZXc8Z2RiX2J5dGU+IHJhd19idWZmZXIgPSBnZGI6Om1ha2VfYXJy YXlfdmlldyAoYnVmX3RtcCwgc2l6ZW9mIChnZGJfYnl0ZSkgKiA0KTsNCisJICAgICAgbWlwc19y ZWFkX2ZwX3JlZ2lzdGVyX3NpbmdsZSAoZnJhbWUsIGZwLCByYXdfYnVmZmVyKTsNCisNCisJICAg ICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCkgPT0gQkZEX0VORElBTl9CSUcpDQor CQlzdGF0dXMgPSByYXdfYnVmZmVyWzNdOw0KKwkgICAgICBlbHNlDQorCQlzdGF0dXMgPSByYXdf YnVmZmVyWzBdOw0KKw0KKwkgICAgICBpZiAoaXR5cGVfcnMgKGluc3QpID09IDEzKQ0KKwkJdHJ1 ZV92YWwgPSAxOw0KKw0KKwkgICAgICBpZiAoKHN0YXR1cyAmIDB4MSkgPT0gdHJ1ZV92YWwpDQor CQlwYyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChpbnN0KSArIDQ7DQorCSAgICAgIGVsc2UN CisJCXBjICs9IDg7DQorCSAgICB9DQorCSAgZWxzZSBpZiAob3AgPT0gMjIgfHwgb3AgPT0gMjMp DQorCSAgICB7DQorCSAgICAgIC8qIEJMRVpDLCBCR0VaQywgQkdFQywgQkdUWkMsIEJMVFpDLCBC TFRDICAqLw0KKwkgICAgICBpbnQgcnMgPSBydHlwZV9ycyAoaW5zdCk7DQorCSAgICAgIGludCBy dCA9IHJ0eXBlX3J0IChpbnN0KTsNCisJICAgICAgTE9OR0VTVCB2YWxfcnMgPSByZWdjYWNoZV9y YXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIHJzKTsNCisJICAgICAgTE9OR0VTVCB2YWxfcnQgPSBy ZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIHJ0KTsNCisJICAgICAgYm9vbCB0YWtl biA9IGZhbHNlOw0KKwkgICAgICAvKiBUaGUgUjUgcnQgPT0gMCBjYXNlIGlzIGhhbmRsZWQgYWJv dmUgc28gd2UgdHJlYXQgaXQgYXMNCisJCSBhbiB1bmtub3duIGluc3RydWN0aW9uIGhlcmUgZm9y IGZ1dHVyZSBJU0EgdXNhZ2UuICAqLw0KKwkgICAgICBpZiAocnMgPT0gMCAmJiBydCAhPSAwKQ0K KwkJdGFrZW4gPSAodmFsX3J0IDw9IDApOw0KKwkgICAgICBlbHNlIGlmIChycyA9PSBydCAmJiBy dCAhPSAwKQ0KKwkJdGFrZW4gPSAodmFsX3J0ID49IDApOw0KKwkgICAgICBlbHNlIGlmIChycyAh PSBydCAmJiBycyAhPSAwICYmIHJ0ICE9IDApDQorCQl0YWtlbiA9ICh2YWxfcnMgPj0gdmFsX3J0 KTsNCisNCisJICAgICAgaWYgKG9wID09IDIzKQ0KKwkJdGFrZW4gPSAhdGFrZW47DQorDQorCSAg ICAgIGlmICh0YWtlbikNCisJCSBwYyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChpbnN0KSAr IDQ7DQorCSAgICAgIGVsc2UNCisJCXsNCisJCSAgLyogU3RlcCB0aHJvdWdoIHRoZSBmb3JiaWRk ZW4gc2xvdCB0byBhdm9pZCByZXBlYXRlZA0KKwkJICAgICBleGNlcHRpb25zLg0KKwkJICAgICBX ZSBkbyBub3QgY3VycmVudGx5IGhhdmUgYWNjZXNzIHRvIHRoZSBCRCBiaXQgd2hlbiBoaXR0aW5n DQorCQkgICAgIGEgYnJlYWtwb2ludCBhbmQgdGhlcmVmb3JlIGNhbm5vdCB0ZWxsIGlmIHRoZSBi cmVha3BvaW50DQorCQkgICAgIGhpdCBvbiB0aGUgYnJhbmNoIG9yIHRoZSBmb3JiaWRkZW4gc2xv dC4gICovDQorCQkgIHBjICs9IDg7DQorCQl9DQorCSAgICB9DQorCSAgZWxzZSBpZiAob3AgPT0g NTAgfHwgb3AgPT0gNTgpDQorCSAgICB7DQorCSAgICAgIC8qIEJDLCBCQUxDICAqLw0KKwkgICAg ICBwYyArPSBtaXBzMzJfcmVsYXRpdmVfb2Zmc2V0MjYgKGluc3QpICsgNDsNCisJICAgIH0NCisJ ICBlbHNlIGlmICgob3AgPT0gNTQgfHwgb3AgPT0gNjIpDQorCQkgICAmJiBydHlwZV9ycyAoaW5z dCkgPT0gMCkNCisJICAgIHsNCisJICAgICAgLyogSklDLCBKSUFMQyAgKi8NCisJICAgICAgcGMg PSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIGl0eXBlX3J0IChpbnN0KSk7DQor CSAgICAgIHBjICs9IChpdHlwZV9pbW1lZGlhdGUgKGluc3QpIF4gMHg4MDAwKSAtIDB4ODAwMDsN CisJICAgIH0NCisJICBlbHNlIGlmIChvcCA9PSA1NCB8fCBvcCA9PSA2MikNCisJICAgIHsNCisJ ICAgICAgLyogQkVRWkMsIEJORVpDICAqLw0KKwkgICAgICBpbnQgcnMgPSBpdHlwZV9ycyAoaW5z dCk7DQorCSAgICAgIExPTkdFU1QgcnNfdmFsID0gcmVnY2FjaGVfcmF3X2dldF9zaWduZWQgKHJl Z2NhY2hlLCBycyk7DQorCSAgICAgIGJvb2wgdGFrZW4gPSAocnNfdmFsID09IDApOw0KKwkgICAg ICBpZiAob3AgPT0gNjIpDQorCQl0YWtlbiA9ICF0YWtlbjsNCisJICAgICAgaWYgKHRha2VuKQ0K KwkJcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldDIxIChpbnN0KSArIDQ7DQorCSAgICAgIGVs c2UNCisJCXsNCisJCSAgLyogU3RlcCB0aHJvdWdoIHRoZSBmb3JiaWRkZW4gc2xvdCB0byBhdm9p ZCByZXBlYXRlZCBleGNlcHRpb25zDQorCQkgICAgIHdlIGRvIG5vdCBjdXJyZW50bHkgaGF2ZSBh Y2Nlc3MgdG8gdGhlIEJEIGJpdCB3aGVuIGhpdHRpbmcgYQ0KKwkJICAgICBicmVha3BvaW50IGFu ZCB0aGVyZWZvcmUgY2Fubm90IHRlbGwgaWYgdGhlIGJyZWFrcG9pbnQNCisJCSAgICAgaGl0IG9u IHRoZSBicmFuY2ggb3IgdGhlIGZvcmJpZGRlbiBzbG90LiAgKi8NCisJCSAgcGMgKz0gODsNCisJ CX0NCisJICAgIH0NCisJICBlbHNlDQorCSAgICB7DQorCSAgICAgIC8qIE5vdCBhIGJyYW5jaCwg bmV4dCBpbnN0cnVjdGlvbiBpcyBlYXN5LiAgKi8NCisJICAgICAgcGMgKz0gNDsNCisJICAgIH0N CisJfQ0KICAgICAgIGVsc2UNCiAJcGMgKz0gNDsJCS8qIE5vdCBhIGJyYW5jaCwgbmV4dCBpbnN0 cnVjdGlvbiBpcyBlYXN5LiAgKi8NCiAgICAgfQ0KQEAgLTE3NzUsNyArMjAzMCw2IEBAIG1pcHMz Ml9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCSAg ICAgIGNhc2UgMjoJCS8qIEJMVFpMICovDQogCSAgICAgIGNhc2UgMTY6CQkvKiBCTFRaQUwgKi8N CiAJICAgICAgY2FzZSAxODoJCS8qIEJMVFpBTEwgKi8NCi0JICAgICAgbGVzc19icmFuY2g6DQog CQlpZiAocmVnY2FjaGVfcmF3X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBpdHlwZV9ycyAoaW5zdCkp IDwgMCkNCiAJCSAgcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCkgKyA0Ow0KIAkJ ZWxzZQ0KQEAgLTE3OTEsNiArMjA0NSw3IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCQkgIHBjICs9IDg7CS8qIGFmdGVyIHRoZSBk ZWxheSBzbG90ICovDQogCQlicmVhazsNCiAJICAgICAgY2FzZSAweDFjOgkvKiBCUE9TR0UzMiAq Lw0KKwkgICAgICBjYXNlIDB4MWQ6CS8qIEJQT1NHRTMyQyAgKi8NCiAJICAgICAgY2FzZSAweDFl OgkvKiBCUE9TR0U2NCAqLw0KIAkJcGMgKz0gNDsNCiAJCWlmIChpdHlwZV9ycyAoaW5zdCkgPT0g MCkNCkBAIC0xODA0LDExICsyMDU5LDE4IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCQkJYnJlYWs7DQogCQkgICAgICB9DQogDQor CQkgICAgLyogQlBPU0dFMzJDICAqLw0KKwkJICAgIGlmIChvcCA9PSAweDFkKQ0KKwkJICAgICAg ew0KKwkJCWlmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpDQorCQkJICBicmVhazsNCisJCSAg ICAgIH0NCisNCiAJCSAgICBpZiAoKHJlZ2NhY2hlX3Jhd19nZXRfdW5zaWduZWQgKHJlZ2NhY2hl LA0KIAkJCQkJCSAgICBkc3BjdGwpICYgMHg3ZikgPj0gcG9zKQ0KIAkJICAgICAgcGMgKz0gbWlw czMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCk7DQogCQkgICAgZWxzZQ0KLQkJICAgICAgcGMgKz0g NDsNCisJCSAgICAgIHBjICs9IERFTEFZX1NMT1RfU0laRTsNCiAJCSAgfQ0KIAkJYnJlYWs7DQog CQkvKiBBbGwgb2YgdGhlIG90aGVyIGluc3RydWN0aW9ucyBpbiB0aGUgUkVHSU1NIGNhdGVnb3J5 ICovDQpAQCAtMTg0MiwxOSArMjEwNCwxNCBAQCBtaXBzMzJfbmV4dF9wYyAoc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkgIGVsc2UNCiAJICAgIHBjICs9IDg7DQog CSAgYnJlYWs7DQotCWNhc2UgNjoJCS8qIEJMRVosIEJMRVpMICovDQotCSAgaWYgKHJlZ2NhY2hl X3Jhd19nZXRfc2lnbmVkIChyZWdjYWNoZSwgaXR5cGVfcnMgKGluc3QpKSA8PSAwKQ0KLQkgICAg cGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCkgKyA0Ow0KLQkgIGVsc2UNCi0JICAg IHBjICs9IDg7DQorCWNhc2UgNjoJCS8qIEJMRVosIEJMRVpMLCBCTEVaQUxDLCBCR0VaQUxDLCBC R0VVQyAgKi8NCisJbGV6X2JyYW5jaDoNCisJICBwYyA9IG1pcHMzMl9ibGV6X3BjIChnZGJhcmNo LCByZWdjYWNoZSwgaW5zdCwgcGMgKyA0LCAwKTsNCiAJICBicmVhazsNCiAJY2FzZSA3Og0KIAlk ZWZhdWx0Og0KLQlncmVhdGVyX2JyYW5jaDogLyogQkdUWiwgQkdUWkwgKi8NCi0JICBpZiAocmVn Y2FjaGVfcmF3X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBpdHlwZV9ycyAoaW5zdCkpID4gMCkNCi0J ICAgIHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQgKGluc3QpICsgNDsNCi0JICBlbHNlDQot CSAgICBwYyArPSA4Ow0KKwlncmVhdGVyX2JyYW5jaDogLyogQkdUWiwgQkdUWkwsIEJHVFpBTEMs IEJMVFpBTEMsIEJMVFVDICAqLw0KKwkgIHBjID0gbWlwczMyX2JsZXpfcGMgKGdkYmFyY2gsIHJl Z2NhY2hlLCBpbnN0LCBwYyArIDQsIDEpOw0KIAkgIGJyZWFrOw0KIAl9CQkJLyogc3dpdGNoICov DQogICAgIH0JCQkJLyogZWxzZSAqLw0KQEAgLTI0ODcsNiArMjc0NCw2MyBAQCBtaWNyb21pcHNf aW5zdHJ1Y3Rpb25faXNfY29tcGFjdF9icmFuY2ggKHVuc2lnbmVkIHNob3J0IGluc24pDQogICAg IH0NCiB9DQogDQorLyogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBNSVBTIGluc3RydWN0aW9uIElO U04gaXMgYSBjb21wYWN0IGJyYW5jaA0KKyAgIG9yIGp1bXAuICBBIHZhbHVlIG9mIDEgaW5kaWNh dGVzIGFuIHVuY29uZGl0aW9uYWwgY29tcGFjdCBicmFuY2gNCisgICBhbmQgYSB2YWx1ZSBvZiAy IGluZGljYXRlcyBhIGNvbmRpdGlvbmFsIGNvbXBhY3QgYnJhbmNoLiAgKi8NCisNCitzdGF0aWMg aW50DQorbWlwczMyX2luc3RydWN0aW9uX2lzX2NvbXBhY3RfYnJhbmNoIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgVUxPTkdFU1QgaW5zbikNCit7DQorICBzd2l0Y2ggKGl0eXBlX29wIChpbnNu KSkNCisgICAgew0KKyAgICBjYXNlIDUwOiAvKiBCQyAgKi8NCisgICAgY2FzZSA1ODogLyogQkFM QyAgKi8NCisgICAgICBpZiAoaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpDQorCXJldHVybiAxOw0K KyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIDg6IC8qIEJPVkMsIEJFUVpBTEMsIEJFUUMgICovDQor ICAgIGNhc2UgMjQ6IC8qIEJOVkMsIEJORVpBTEMsIEJORUMgICovDQorICAgICAgaWYgKGlzX21p cHNyNl9pc2EgKGdkYmFyY2gpKQ0KKwlyZXR1cm4gMjsNCisgICAgICBicmVhazsNCisgICAgY2Fz ZSA1NDogLyogQkVRWkMsIEpJQyAgKi8NCisgICAgY2FzZSA2MjogLyogQk5FWkMsIEpJQUxDICAq Lw0KKyAgICAgIGlmIChpc19taXBzcjZfaXNhIChnZGJhcmNoKSkNCisJew0KKwkgIC8qIEpJQywg SklBTEMgYXJlIHVuY29uZGl0aW9uYWwgICovDQorCSAgcmV0dXJuIChpdHlwZV9ycyAoaW5zbikg PT0gMCkgPyAxIDogMjsNCisJfQ0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIDIyOiAvKiBCTEVa QywgQkdFWkMsIEJHRUMgICovDQorICAgIGNhc2UgMjM6IC8qIEJHVFpDLCBCTFRaQywgQkxUQyAg Ki8NCisgICAgY2FzZSA2OiAvKiBCTEVaQUxDLCBCR0VaQUxDLCBCR0VVQyAgKi8NCisgICAgY2Fz ZSA3OiAvKiBCR1RaQUxDLCBCTFRaQUxDLCBCTFRVQyAgKi8NCisgICAgICBpZiAoaXNfbWlwc3I2 X2lzYSAoZ2RiYXJjaCkNCisJICAmJiBpdHlwZV9ydCAoaW5zbikgIT0gMCkNCisJcmV0dXJuIDI7 DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgMTogLyogQlBPU0dFMzJDICAqLw0KKyAgICAgIGlm IChpc19taXBzcjZfaXNhIChnZGJhcmNoKQ0KKwkgICYmIGl0eXBlX3J0IChpbnNuKSA9PSAweDFk ICYmIGl0eXBlX3JzIChpbnNuKSA9PSAwKQ0KKwlyZXR1cm4gMjsNCisgICAgfQ0KKyAgcmV0dXJu IDA7DQorfQ0KKw0KKy8qIFJldHVybiB0cnVlIGlmIGEgc3RhbmRhcmQgTUlQUyBpbnN0cnVjdGlv biBhdCBBRERSIGhhcyBhIGJyYW5jaA0KKyAgIGZvcmJpZGRlbiBzbG90IChpLmUuIGl0IGlzIGEg Y29uZGl0aW9uYWwgY29tcGFjdCBicmFuY2ggaW5zdHJ1Y3Rpb24pLiAgKi8NCisNCitzdGF0aWMg Ym9vbA0KK21pcHMzMl9pbnNuX2F0X3BjX2hhc19mb3JiaWRkZW5fc2xvdCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyKQ0KK3sNCisgIGludCBzdGF0dXM7DQorICBVTE9O R0VTVCBpbnNuID0gbWlwc19mZXRjaF9pbnN0cnVjdGlvbiAoZ2RiYXJjaCwgSVNBX01JUFMsIGFk ZHIsICZzdGF0dXMpOw0KKyAgaWYgKHN0YXR1cykNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAg cmV0dXJuIG1pcHMzMl9pbnN0cnVjdGlvbl9pc19jb21wYWN0X2JyYW5jaCAoZ2RiYXJjaCwgaW5z bikgPT0gMjsNCit9DQorDQogc3RydWN0IG1pcHNfZnJhbWVfY2FjaGUNCiB7DQogICBDT1JFX0FE RFIgYmFzZTsNCkBAIC0zNTMwLDcgKzM4NDQsOCBAQCBtaXBzMzJfc2Nhbl9wcm9sb2d1ZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsDQogICAgICAgcmVnID0gaGlnaF93b3JkICYgMHgxZjsNCiAN CiAgICAgICBpZiAoaGlnaF93b3JkID09IDB4MjdiZAkJLyogYWRkaXUgJHNwLCRzcCwtaSAqLw0K LQkgIHx8IGhpZ2hfd29yZCA9PSAweDIzYmQJLyogYWRkaSAkc3AsJHNwLC1pICovDQorCSAgfHwg KGhpZ2hfd29yZCA9PSAweDIzYmQJLyogYWRkaSAkc3AsJHNwLC1pICAqLw0KKwkgICAgICAmJiAh aXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkpDQogCSAgfHwgaGlnaF93b3JkID09IDB4NjdiZCkJLyog ZGFkZGl1ICRzcCwkc3AsLWkgKi8NCiAJew0KIAkgIGlmIChvZmZzZXQgPCAwKQkJLyogTmVnYXRp dmUgc3RhY2sgYWRqdXN0bWVudD8gICovDQpAQCAtMzY3MCw3ICszOTg1LDkgQEAgbWlwczMyX3Nj YW5fcHJvbG9ndWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIA0KICAgICAgIC8qIEEganVt cCBvciBicmFuY2gsIG9yIGVub3VnaCBub24tcHJvbG9ndWUgaW5zbnMgc2Vlbj8gIElmIHNvLA0K IAkgdGhlbiB3ZSBtdXN0IGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBwcm9sb2d1ZSBieSBu b3cuICAqLw0KLSAgICAgIGlmIChwcmV2X2RlbGF5X3Nsb3QgfHwgbm9uX3Byb2xvZ3VlX2luc25z ID4gMSkNCisgICAgICBpZiAocHJldl9kZWxheV9zbG90DQorCSAgfHwgbm9uX3Byb2xvZ3VlX2lu c25zID4gMQ0KKwkgIHx8IG1pcHMzMl9pbnN0cnVjdGlvbl9pc19jb21wYWN0X2JyYW5jaCAoZ2Ri YXJjaCwgaW5zdCkpDQogCWJyZWFrOw0KIA0KICAgICAgIHByZXZfbm9uX3Byb2xvZ3VlX2luc24g PSB0aGlzX25vbl9wcm9sb2d1ZV9pbnNuOw0KQEAgLTM5NzYsNiArNDI5Myw3MCBAQCBtaXBzX2Fk ZHJfYml0c19yZW1vdmUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRkcikN CiAjZGVmaW5lIExMRF9PUENPREUgMHgzNA0KICNkZWZpbmUgU0NfT1BDT0RFIDB4MzgNCiAjZGVm aW5lIFNDRF9PUENPREUgMHgzYw0KKyNkZWZpbmUgTExTQ19SNl9PUENPREUgMHgxZg0KKyNkZWZp bmUgTExfUjZfRlVOQ1QgMHgzNg0KKyNkZWZpbmUgTExFX0ZVTkNUIDB4MmUNCisjZGVmaW5lIExM RF9SNl9GVU5DVCAweDM3DQorI2RlZmluZSBTQ19SNl9GVU5DVCAweDI2DQorI2RlZmluZSBTQ0Vf RlVOQ1QgMHgxZQ0KKyNkZWZpbmUgU0NEX1I2X0ZVTkNUIDB4MjcNCisNCisvKiBEZXRlcm1pbmUg d2hldGhlciBpbnN0cnVjdGlvbiAnaW5zbicgaXMgb2YgJ2xvYWQgbGlua2VkIFgnIHR5cGUuDQor ICAgTEwvU0MgaW5zdHJ1Y3Rpb25zIHByb3ZpZGUgcHJpbWl0aXZlcyB0byBpbXBsZW1lbnQgYXRv bWljDQorICAgcmVhZC1tb2RpZnktd3JpdGUgb3BlcmF0aW9ucyBmb3Igc3luY2hyb25pemFibGUg bWVtb3J5IGxvY2F0aW9ucy4gICovDQorDQorc3RhdGljIGJvb2wNCitpc19sbF9pbnNuIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgVUxPTkdFU1QgaW5zbikNCit7DQorICBpZiAoaXR5cGVfb3Ag KGluc24pID09IExMX09QQ09ERQ0KKyAgICAgIHx8IGl0eXBlX29wIChpbnNuKSA9PSBMTERfT1BD T0RFKQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisNCisgIGlmIChydHlwZV9vcCAoaW5zbikgPT0gTExT Q19SNl9PUENPREUNCisgICAgICAmJiBydHlwZV9mdW5jdCAoaW5zbikgPT0gTExFX0ZVTkNUDQor ICAgICAgJiYgKGluc24gJiAweDQwKSA9PSAwKQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisNCisgIC8q IEhhbmRsZSBMTCBhbmQgTExQIHZhcmlldGllcy4gICovDQorICBpZiAoaXNfbWlwc3I2X2lzYSAo Z2RiYXJjaCkNCisgICAgICAmJiBydHlwZV9vcCAoaW5zbikgPT0gTExTQ19SNl9PUENPREUNCisg ICAgICAmJiAocnR5cGVfZnVuY3QgKGluc24pID09IExMX1I2X0ZVTkNUDQorCSAgfHwgcnR5cGVf ZnVuY3QgKGluc24pID09IExMRF9SNl9GVU5DVA0KKwkgIHx8IHJ0eXBlX2Z1bmN0IChpbnNuKSA9 PSBMTEVfRlVOQ1QpKQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisNCisgIHJldHVybiBmYWxzZTsNCit9 DQorDQorLyogRGV0ZXJtaW5lIHdoZXRoZXIgaW5zdHJ1Y3Rpb24gJ2luc24nIGlzIG9mICdzdG9y ZSBjb25kaXRpb25hbCBYJyB0eXBlLg0KKyAgIFNDIGluc3RydWN0aW9ucyBhbmQgdmFyaWV0aWVz IHBlcmZvcm0gY29tcGxldGlvbiBvZiByZWFkLW1vZGlmeS13cml0ZQ0KKyAgIGF0b21pYyBzZXF1 ZW5jZS4gICovDQorDQorc3RhdGljIGJvb2wNCitpc19zY19pbnNuIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgVUxPTkdFU1QgaW5zbikNCit7DQorICBpZiAoaXR5cGVfb3AgKGluc24pID09IFND X09QQ09ERQ0KKyAgICAgIHx8IGl0eXBlX29wIChpbnNuKSA9PSBTQ0RfT1BDT0RFKQ0KKyAgICBy ZXR1cm4gdHJ1ZTsNCisNCisgIGlmIChydHlwZV9vcCAoaW5zbikgPT0gTExTQ19SNl9PUENPREUN CisgICAgICAmJiBydHlwZV9mdW5jdCAoaW5zbikgPT0gU0NFX0ZVTkNUDQorICAgICAgJiYgKGlu c24gJiAweDQwKSA9PSAwKQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisNCisgIC8qIEhhbmRsZSBTQyBh bmQgU0NQIHZhcmlldGllcy4gICovDQorICBpZiAoaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkNCisg ICAgICAmJiBydHlwZV9vcCAoaW5zbikgPT0gTExTQ19SNl9PUENPREUNCisgICAgICAmJiAocnR5 cGVfZnVuY3QgKGluc24pID09IFNDX1I2X0ZVTkNUDQorCSAgfHwgcnR5cGVfZnVuY3QgKGluc24p ID09IFNDRF9SNl9GVU5DVA0KKwkgIHx8IHJ0eXBlX2Z1bmN0IChpbnNuKSA9PSBTQ0VfRlVOQ1Qp KQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisNCisgIHJldHVybiBmYWxzZTsNCit9DQorDQorLyogSGFu ZGxlIG1pcHMgYXRvbWljIHNlcXVlbmNlIHdoaWNoIHN0YXJ0cyB3aXRoIExML0xMRCBhbmQgZW5k cyB3aXRoDQorICAgU0MvU0NEIGluc3RydWN0aW9uLiAgKi8NCiANCiBzdGF0aWMgc3RkOjp2ZWN0 b3I8Q09SRV9BRERSPg0KIG1pcHNfZGVhbF93aXRoX2F0b21pY19zZXF1ZW5jZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYykNCkBAIC0zOTg4LDEwICs0MzY5LDExIEBAIG1p cHNfZGVhbF93aXRoX2F0b21pY19zZXF1ZW5jZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENP UkVfQUREUiBwYykNCiAgIGludCBpbmRleDsNCiAgIGludCBsYXN0X2JyZWFrcG9pbnQgPSAwOyAv KiBEZWZhdWx0cyB0byAwIChubyBicmVha3BvaW50cyBwbGFjZWQpLiAgKi8NCiAgIGNvbnN0IGlu dCBhdG9taWNfc2VxdWVuY2VfbGVuZ3RoID0gMTY7IC8qIEluc3RydWN0aW9uIHNlcXVlbmNlIGxl bmd0aC4gICovDQorICBib29sIGlzX21pcHNyNiA9IGlzX21pcHNyNl9pc2EgKGdkYmFyY2gpOw0K IA0KICAgaW5zbiA9IG1pcHNfZmV0Y2hfaW5zdHJ1Y3Rpb24gKGdkYmFyY2gsIElTQV9NSVBTLCBs b2MsIE5VTEwpOw0KICAgLyogQXNzdW1lIGFsbCBhdG9taWMgc2VxdWVuY2VzIHN0YXJ0IHdpdGgg YSBsbC9sbGQgaW5zdHJ1Y3Rpb24uICAqLw0KLSAgaWYgKGl0eXBlX29wIChpbnNuKSAhPSBMTF9P UENPREUgJiYgaXR5cGVfb3AgKGluc24pICE9IExMRF9PUENPREUpDQorICBpZiAoIWlzX2xsX2lu c24gKGdkYmFyY2gsIGluc24pKQ0KICAgICByZXR1cm4ge307DQogDQogICAvKiBBc3N1bWUgdGhh dCBubyBhdG9taWMgc2VxdWVuY2UgaXMgbG9uZ2VyIHRoYW4gImF0b21pY19zZXF1ZW5jZV9sZW5n dGgiDQpAQCAtNDAyMSwyOCArNDQwMyw3MiBAQCBtaXBzX2RlYWxfd2l0aF9hdG9taWNfc2VxdWVu Y2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpDQogCSAgcmV0dXJuIHt9 OyAvKiBmYWxsYmFjayB0byB0aGUgc3RhbmRhcmQgc2luZ2xlLXN0ZXAgY29kZS4gICovDQogCWNh c2UgNDogLyogQkVRICovDQogCWNhc2UgNTogLyogQk5FICovDQotCWNhc2UgNjogLyogQkxFWiAq Lw0KLQljYXNlIDc6IC8qIEJHVFogKi8NCiAJY2FzZSAyMDogLyogQkVRTCAqLw0KIAljYXNlIDIx OiAvKiBCTkVMICovDQotCWNhc2UgMjI6IC8qIEJMRVpMICovDQotCWNhc2UgMjM6IC8qIEJHVFRM ICovDQorCWNhc2UgMjI6IC8qIEJMRVpMIChCTEVaQywgQkdFWkMsIEJHRUMpICAqLw0KKwljYXNl IDIzOiAvKiBCR1RaTCAoQkdUWkMsIEJMVFpDLCBCTFRDKSAgKi8NCiAJICBpc19icmFuY2ggPSAx Ow0KIAkgIGJyZWFrOw0KKwljYXNlIDY6IC8qIEJMRVogKEJMRVpBTEMsIEJHRVpBTEMsIEJHRVVD KSAgKi8NCisJY2FzZSA3OiAvKiBCR1RaIChCR1RaQUxDLCBCTFRaQUxDLCBCTFRVQykgICovDQor CSAgaWYgKGlzX21pcHNyNikNCisJICAgIHsNCisJICAgICAgLyogQkxFWkFMQywgQkdUWkFMQyAg Ki8NCisJICAgICAgaWYgKGl0eXBlX3JzIChpbnNuKSA9PSAwICYmIGl0eXBlX3J0IChpbnNuKSAh PSAwKQ0KKwkJcmV0dXJuIHt9OyAvKiBmYWxsYmFjayB0byB0aGUgc3RhbmRhcmQgc2luZ2xlLXN0 ZXAgY29kZS4gICovDQorCSAgICAgIC8qIEJHRVpBTEMsIEJMVFpBTEMgICovDQorCSAgICAgIGVs c2UgaWYgKGl0eXBlX3JzIChpbnNuKSA9PSBpdHlwZV9ydCAoaW5zbikNCisJCSAgICAgICAmJiBp dHlwZV9ydCAoaW5zbikgIT0gMCkNCisJCXJldHVybiB7fTsgLyogZmFsbGJhY2sgdG8gdGhlIHN0 YW5kYXJkIHNpbmdsZS1zdGVwIGNvZGUuICAqLw0KKwkgICAgfQ0KKwkgIGlzX2JyYW5jaCA9IDE7 DQorCSAgYnJlYWs7DQorCWNhc2UgODogLyogQk9WQywgQkVRWkFMQywgQkVRQyAgKi8NCisJY2Fz ZSAyNDogLyogQk5WQywgQk5FWkFMQywgQk5FQyAgKi8NCisJICBpZiAoaXNfbWlwc3I2KQ0KKwkg ICAgaXNfYnJhbmNoID0gMTsNCisJICBicmVhazsNCisJY2FzZSA1MDogLyogQkMgICovDQorCWNh c2UgNTg6IC8qIEJBTEMgICovDQorCSAgaWYgKGlzX21pcHNyNikNCisJICAgIHJldHVybiB7fTsg LyogZmFsbGJhY2sgdG8gdGhlIHN0YW5kYXJkIHNpbmdsZS1zdGVwIGNvZGUuICAqLw0KKwkgIGJy ZWFrOw0KKwljYXNlIDU0OiAvKiBCRVFaQywgSklDICAqLw0KKwljYXNlIDYyOiAvKiBCTkVaQywg SklBTEMgICovDQorCSAgaWYgKGlzX21pcHNyNikNCisJICAgIHsNCisJICAgICAgaWYgKGl0eXBl X3JzIChpbnNuKSA9PSAwKSAvKiBKSUMsIEpJQUxDICAqLw0KKwkJcmV0dXJuIHt9OyAvKiBmYWxs YmFjayB0byB0aGUgc3RhbmRhcmQgc2luZ2xlLXN0ZXAgY29kZS4gICovDQorCSAgICAgIGVsc2UN CisJCWlzX2JyYW5jaCA9IDI7IC8qIE1hcmtlciBmb3IgYnJhbmNoZXMgd2l0aCBhIDIxLWJpdCBv ZmZzZXQuICAqLw0KKwkgICAgfQ0KKwkgIGJyZWFrOw0KIAljYXNlIDE3OiAvKiBDT1AxICovDQot CSAgaXNfYnJhbmNoID0gKChpdHlwZV9ycyAoaW5zbikgPT0gOSB8fCBpdHlwZV9ycyAoaW5zbikg PT0gMTApDQotCQkgICAgICAgJiYgKGl0eXBlX3J0IChpbnNuKSAmIDB4MikgPT0gMCk7DQotCSAg aWYgKGlzX2JyYW5jaCkgLyogQkMxQU5ZMkYsIEJDMUFOWTJULCBCQzFBTlk0RiwgQkMxQU5ZNFQg Ki8NCisJICBpc19icmFuY2ggPSAoKCFpc19taXBzcjYNCisJCSAgICAgICAvKiBCQzFBTlkyRiwg QkMxQU5ZMlQsIEJDMUFOWTRGLCBCQzFBTlk0VCAgKi8NCisJCQkmJiAoaXR5cGVfcnMgKGluc24p ID09IDkgfHwgaXR5cGVfcnMgKGluc24pID09IDEwKQ0KKwkJCSYmIChpdHlwZV9ydCAoaW5zbikg JiAweDIpID09IDApDQorCQkgICAgICAgLyogQlouZGY6ICAwMTAwMDEgMTEweHggICovDQorCQkg ICAgICAgfHwgKGl0eXBlX3JzIChpbnNuKSAmIDB4MTgpID09IDB4MTgpOw0KKwkgIGlmIChpc19i cmFuY2ggIT0gMCkNCiAJICAgIGJyZWFrOw0KIAkgIFtbZmFsbHRocm91Z2hdXTsNCiAJY2FzZSAx ODogLyogQ09QMiAqLw0KIAljYXNlIDE5OiAvKiBDT1AzICovDQotCSAgaXNfYnJhbmNoID0gKGl0 eXBlX3JzIChpbnNuKSA9PSA4KTsgLyogQkN6RiwgQkN6RkwsIEJDelQsIEJDelRMICovDQorCSAg LyogQkN6RiwgQkN6RkwsIEJDelQsIEJDelRMLCBCQypFUVosIEJDKk5FWiAgKi8NCisJICBpc19i cmFuY2ggPSAoKGl0eXBlX3JzIChpbnNuKSA9PSA4KQ0KKwkJICAgICAgIHx8IChpc19taXBzcjYN CisJCQkgICAmJiAoaXR5cGVfcnMgKGluc24pID09IDkNCisJCQkgICAgICAgfHwgaXR5cGVfcnMg KGluc24pID09IDEzKSkpOw0KIAkgIGJyZWFrOw0KIAl9DQotICAgICAgaWYgKGlzX2JyYW5jaCkN CisgICAgICBpZiAoaXNfYnJhbmNoICE9IDApDQogCXsNCi0JICBicmFuY2hfYnAgPSBsb2MgKyBt aXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChpbnNuKSArIDQ7DQorCSAgLyogSXMgdGhpcyBhIHNwZWNp YWwgUEMyMV9TMiBicmFuY2g/ICAqLw0KKwkgIGlmIChpc19icmFuY2ggPT0gMikNCisJICAgIGJy YW5jaF9icCA9IGxvYyArIG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQyMSAoaW5zbikgKyA0Ow0KKwkg IGVsc2UNCisJICAgIGJyYW5jaF9icCA9IGxvYyArIG1pcHMzMl9yZWxhdGl2ZV9vZmZzZXQgKGlu c24pICsgNDsNCiAJICBpZiAobGFzdF9icmVha3BvaW50ID49IDEpDQogCSAgICByZXR1cm4ge307 IC8qIE1vcmUgdGhhbiBvbmUgYnJhbmNoIGZvdW5kLCBmYWxsYmFjayB0byB0aGUNCiAJCQkgIHN0 YW5kYXJkIHNpbmdsZS1zdGVwIGNvZGUuICAqLw0KQEAgLTQwNTAsMTIgKzQ0NzYsMTIgQEAgbWlw c19kZWFsX3dpdGhfYXRvbWljX3NlcXVlbmNlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09S RV9BRERSIHBjKQ0KIAkgIGxhc3RfYnJlYWtwb2ludCsrOw0KIAl9DQogDQotICAgICAgaWYgKGl0 eXBlX29wIChpbnNuKSA9PSBTQ19PUENPREUgfHwgaXR5cGVfb3AgKGluc24pID09IFNDRF9PUENP REUpDQorICAgICAgaWYgKGlzX3NjX2luc24gKGdkYmFyY2gsIGluc24pKQ0KIAlicmVhazsNCiAg ICAgfQ0KIA0KICAgLyogQXNzdW1lIHRoYXQgdGhlIGF0b21pYyBzZXF1ZW5jZSBlbmRzIHdpdGgg YSBzYy9zY2QgaW5zdHJ1Y3Rpb24uICAqLw0KLSAgaWYgKGl0eXBlX29wIChpbnNuKSAhPSBTQ19P UENPREUgJiYgaXR5cGVfb3AgKGluc24pICE9IFNDRF9PUENPREUpDQorICBpZiAoIWlzX3NjX2lu c24gKGdkYmFyY2gsIGluc24pKQ0KICAgICByZXR1cm4ge307DQogDQogICBsb2MgKz0gTUlQU19J TlNOMzJfU0laRTsNCkBAIC00MjA0LDcgKzQ2MzAsNyBAQCBtaWNyb21pcHNfZGVhbF93aXRoX2F0 b21pY19zZXF1ZW5jZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQogCSAgICB9DQogCSAgYnJl YWs7DQogCX0NCi0gICAgICBpZiAoaXNfYnJhbmNoKQ0KKyAgICAgIGlmIChpc19icmFuY2ggIT0g MCkNCiAJew0KIAkgIGlmIChsYXN0X2JyZWFrcG9pbnQgPj0gMSkNCiAJICAgIHJldHVybiB7fTsg LyogTW9yZSB0aGFuIG9uZSBicmFuY2ggZm91bmQsIGZhbGxiYWNrIHRvIHRoZQ0KQEAgLTQyODAs OCArNDcwNiwxNCBAQCBtaXBzX2Fib3V0X3RvX3JldHVybiAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIENPUkVfQUREUiBwYykNCiAgIGdkYl9hc3NlcnQgKG1pcHNfcGNfaXNfbWlwcyAocGMpKTsN CiANCiAgIGluc24gPSBtaXBzX2ZldGNoX2luc3RydWN0aW9uIChnZGJhcmNoLCBJU0FfTUlQUywg cGMsIE5VTEwpOw0KLSAgaGludCA9IDB4N2MwOw0KLSAgcmV0dXJuIChpbnNuICYgfmhpbnQpID09 IDB4M2UwMDAwODsJCQkvKiBqciguaGIpICRyYSAqLw0KKyAgLyogTWFzayB0aGUgaGludCBhbmQg dGhlIGphbHIvanIgYml0LiAgKi8NCisgIGhpbnQgPSAweDdjMTsNCisNCisgIGlmIChpc19taXBz cjZfaXNhIChnZGJhcmNoKSAmJiBpbnNuID09IDB4ZDgxZjAwMDApIC8qIGpyYyAkMzEgICovDQor ICAgIHJldHVybiAxOw0KKw0KKyAgLyoganIoLmhiKSAkcmEgYW5kICJqYWxyKC5oYikgJHJhIiAg Ki8NCisgIHJldHVybiAoKGluc24gJiB+aGludCkgPT0gMHgzZTAwMDA4KTsNCiB9DQogDQogLyog VGhpcyBmZW5jZXBvc3QgbG9va3MgaGlnaGx5IHN1c3BpY2lvdXMgdG8gbWUuICBSZW1vdmluZyBp dCBhbHNvDQpAQCAtNjc5OSw3ICs3MjMxLDkgQEAgbWlwczMyX3N0YWNrX2ZyYW1lX2Rlc3Ryb3ll ZF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQ0KIA0KIAkgIGlmICho aWdoX3dvcmQgIT0gMHgyN2JkCS8qIGFkZGl1ICRzcCwkc3Asb2Zmc2V0ICovDQogCSAgICAgICYm IGhpZ2hfd29yZCAhPSAweDY3YmQJLyogZGFkZGl1ICRzcCwkc3Asb2Zmc2V0ICovDQotCSAgICAg ICYmIGluc3QgIT0gMHgwM2UwMDAwOAkvKiBqciAkcmEgKi8NCisJICAgICAgJiYgKGluc3QgJiB+ MHgxKSAhPSAweDAzZTAwMDA4IC8qIGpyICQzMSBvciBqYWxyICQwLCAkMzEgICovDQorCSAgICAg ICYmICghaXNfbWlwc3I2X2lzYSAoZ2RiYXJjaCkNCisJCSAgfHwgaW5zdCAhPSAweGQ4MWYwMDAw KSAvKiBqcmMgJDMxICAqLw0KIAkgICAgICAmJiBpbnN0ICE9IDB4MDAwMDAwMDApCS8qIG5vcCAq Lw0KIAkgICAgcmV0dXJuIDA7DQogCX0NCkBAIC03MTc3LDYgKzc2MTEsNyBAQCBtaXBzMzJfaW5z dHJ1Y3Rpb25faGFzX2RlbGF5X3Nsb3QgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBVTE9OR0VT VCBpbnN0KQ0KICAgaW50IG9wOw0KICAgaW50IHJzOw0KICAgaW50IHJ0Ow0KKyAgYm9vbCBpc19t aXBzcjYgPSBpc19taXBzcjZfaXNhIChnZGJhcmNoKTsNCiANCiAgIG9wID0gaXR5cGVfb3AgKGlu c3QpOw0KICAgaWYgKChpbnN0ICYgMHhlMDAwMDAwMCkgIT0gMCkNCkBAIC03MTg0LDE1ICs3NjE5 LDIzIEBAIG1pcHMzMl9pbnN0cnVjdGlvbl9oYXNfZGVsYXlfc2xvdCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIFVMT05HRVNUIGluc3QpDQogICAgICAgcnMgPSBpdHlwZV9ycyAoaW5zdCk7DQog ICAgICAgcnQgPSBpdHlwZV9ydCAoaW5zdCk7DQogICAgICAgcmV0dXJuIChpc19vY3Rlb25fYmJp dF9vcCAob3AsIGdkYmFyY2gpDQotCSAgICAgIHx8IG9wID4+IDIgPT0gNQkvKiBCRVFMLCBCTkVM LCBCTEVaTCwgQkdUWkw6IGJpdHMgMDEwMXh4ICAqLw0KLQkgICAgICB8fCBvcCA9PSAyOQkvKiBK QUxYOiBiaXRzIDAxMTEwMSAgKi8NCisJICAgICAgfHwgKG9wID4+IDEgPT0gMTApIC8qIEJFUUws IEJORUw6IGJpdHMgMDEwMTB4ICAqLw0KKwkgICAgICB8fCAob3AgPj4gMSA9PSAxMSAmJiBydCA9 PSAwKSAvKiBCTEVaTCwgQkdUWkw6IGJpdHMgMDEwMTF4ICAqLw0KKwkgICAgICB8fCAoIWlzX21p cHNyNiAmJiBvcCA9PSAyOSkJLyogSkFMWDogYml0cyAwMTExMDEgICovDQogCSAgICAgIHx8IChv cCA9PSAxNw0KIAkJICAmJiAocnMgPT0gOA0KIAkJCQkvKiBCQzFGLCBCQzFGTCwgQkMxVCwgQkMx VEw6IDAxMDAwMSAwMTAwMCAgKi8NCi0JCSAgICAgIHx8IChycyA9PSA5ICYmIChydCAmIDB4Mikg PT0gMCkNCisJCSAgICAgIHx8ICghaXNfbWlwc3I2ICYmIHJzID09IDkgJiYgKHJ0ICYgMHgyKSA9 PSAwKQ0KIAkJCQkvKiBCQzFBTlkyRiwgQkMxQU5ZMlQ6IGJpdHMgMDEwMDAxIDAxMDAxICAqLw0K LQkJICAgICAgfHwgKHJzID09IDEwICYmIChydCAmIDB4MikgPT0gMCkpKSk7DQorCQkgICAgICB8 fCAoIWlzX21pcHNyNiAmJiBycyA9PSAxMCAmJiAocnQgJiAweDIpID09IDApKSkNCiAJCQkJLyog QkMxQU5ZNEYsIEJDMUFOWTRUOiBiaXRzIDAxMDAwMSAwMTAxMCAgKi8NCisJICAgICAgfHwgKGlz X21pcHNyNg0KKwkJICAmJiAoKG9wID09IDE3DQorCQkgICAgICAgJiYgKHJzID09IDkgIC8qIEJD MUVRWjogMDEwMDAxIDAxMDAxICAqLw0KKwkJCSAgIHx8IHJzID09IDEzKSkgIC8qIEJDMU5FWjog MDEwMDAxIDAxMTAxICAqLw0KKwkJICAgICAgfHwgKG9wID09IDE4DQorCQkJICAmJiAocnMgPT0g OSAgLyogQkMyRVFaOiAwMTAwMTAgMDEwMDEgICovDQorCQkJICAgICAgfHwgcnMgPT0gMTMpKSkp KTsgIC8qIEJDMk5FWjogMDEwMDEwIDAxMTAxICAqLw0KICAgICB9DQogICBlbHNlDQogICAgIHN3 aXRjaCAob3AgJiAweDA3KQkJLyogZXh0cmFjdCBiaXRzIDI4LDI3LDI2ICAqLw0KQEAgLTcyMTEs NyArNzY1NCwxMSBAQCBtaXBzMzJfaW5zdHJ1Y3Rpb25faGFzX2RlbGF5X3Nsb3QgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBVTE9OR0VTVCBpbnN0KQ0KIAkJfHwgKChydCAmIDB4MWUpID09IDB4 MWMgJiYgcnMgPT0gMCkpOw0KIAkJCQkvKiBCUE9TR0UzMiwgQlBPU0dFNjQ6IGJpdHMgMTExMHgg ICovDQogCWJyZWFrOwkJCS8qIGVuZCBSRUdJTU0gICovDQotICAgICAgZGVmYXVsdDoJCQkvKiBK LCBKQUwsIEJFUSwgQk5FLCBCTEVaLCBCR1RaICAqLw0KKyAgICAgIGNhc2UgNjoJCSAvKiBCTEVa ICAqLw0KKyAgICAgIGNhc2UgNzoJCSAvKiBCR1RaICAqLw0KKwlyZXR1cm4gKGl0eXBlX3J0IChp bnN0KSA9PSAwKTsNCisJYnJlYWs7DQorICAgICAgZGVmYXVsdDoJCSAvKiBKLCBKQUwsIEJFUSwg Qk5FICAqLw0KIAlyZXR1cm4gMTsNCiAJYnJlYWs7DQogICAgICAgfQ0KQEAgLTc0MjMsNyArNzg3 MCwxOCBAQCBtaXBzX2FkanVzdF9icmVha3BvaW50X2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBDT1JFX0FERFIgYnBhZGRyKQ0KIA0KICAgICAgU28sIHdlJ2xsIHVzZSB0aGUgc2Vj b25kIHNvbHV0aW9uLiAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRvIGtub3cgaWYNCiAgICAgIHRoZSBp bnN0cnVjdGlvbiB3ZSdyZSB0cnlpbmcgdG8gc2V0IHRoZSBicmVha3BvaW50IG9uIGlzIGluIHRo ZQ0KLSAgICAgYnJhbmNoIGRlbGF5IHNsb3QuICAqLw0KKyAgICAgYnJhbmNoIGRlbGF5IHNsb3Qu DQorDQorICAgICBBIHNpbWlsYXIgcHJvYmxlbSBvY2N1cnMgZm9yIGJyZWFrcG9pbnRzIG9uIGZv cmJpZGRlbiBzbG90cyB3aGVyZQ0KKyAgICAgdGhlIHRyYXAgd2lsbCBiZSByZXBvcnRlZCBmb3Ig dGhlIGJyYW5jaCB3aXRoIHRoZSBCRCBiaXQgc2V0Lg0KKyAgICAgSW4gdGhpcyBjYXNlIGl0IHdv dWxkIGJlIGlkZWFsIHRvIHJlY292ZXIgdXNpbmcgc29sdXRpb24gMSBmcm9tDQorICAgICBhYm92 ZSBhcyB0aGVyZSBpcyBubyBwcm9ibGVtIHdpdGggdGhlIGJyYW5jaCBiZWluZyBza2lwcGVkDQor ICAgICAoc2luY2UgdGhlIGZvcmJpZGRlbiBzbG90IG9ubHkgZXhpc3RzIG9uIG5vdC10YWtlbiBi cmFuY2hlcykuDQorICAgICBIb3dldmVyLCB0aGUgQkQgYml0IGlzIG5vdCBhdmFpbGFibGUgaW4g YWxsIHNjZW5hcmlvcyBjdXJyZW50bHkNCisgICAgIHNvIGluc3RlYWQgd2UgbW92ZSB0aGUgYnJl YWtwb2ludCBvbiB0byB0aGUgbmV4dCBpbnN0cnVjdGlvbi4NCisgICAgIFRoaXMgbWVhbnMgdGhh dCBpdCBpcyBub3QgcG9zc2libGUgdG8gc3RvcCBvbiBhbiBpbnN0cnVjdGlvbg0KKyAgICAgdGhh dCBjYW4gYmUgaW4gYSBmb3JiaWRkZW4gc2xvdCBldmVuIGlmIHRoYXQgaW5zdHJ1Y3Rpb24gaXMN CisgICAgIGp1bXBlZCB0byBkaXJlY3RseS4gICovDQogDQogICBib3VuZGFyeSA9IG1pcHNfc2Vn bWVudF9ib3VuZGFyeSAoYnBhZGRyKTsNCiANCkBAIC03NDQ1LDYgKzc5MDMsMTIgQEAgbWlwc19h ZGp1c3RfYnJlYWtwb2ludF9hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9B RERSIGJwYWRkcikNCiAgICAgICBwcmV2X2FkZHIgPSBicGFkZHIgLSA0Ow0KICAgICAgIGlmICht aXBzMzJfaW5zbl9hdF9wY19oYXNfZGVsYXlfc2xvdCAoZ2RiYXJjaCwgcHJldl9hZGRyKSkNCiAJ YnBhZGRyID0gcHJldl9hZGRyOw0KKyAgICAgIC8qIElmIHRoZSBwcmV2aW91cyBpbnN0cnVjdGlv biBoYXMgYSBmb3JiaWRkZW4gc2xvdCwgd2UgaGF2ZSB0bw0KKwkgbW92ZSB0aGUgYnJlYWtwb2lu dCB0byB0aGUgZm9sbG93aW5nIGluc3RydWN0aW9uIHRvIHByZXZlbnQNCisJIGJyZWFrcG9pbnRz IGluIGZvcmJpZGRlbiBzbG90cyBiZWluZyByZXBvcnRlZCBhcyB1bmtub3duDQorCSB0cmFwcy4g ICovDQorICAgICAgZWxzZSBpZiAobWlwczMyX2luc25fYXRfcGNfaGFzX2ZvcmJpZGRlbl9zbG90 IChnZGJhcmNoLCBwcmV2X2FkZHIpKQ0KKwlicGFkZHIgKz0gNDsNCiAgICAgfQ0KICAgZWxzZQ0K ICAgICB7DQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9taXBzLTY0LXI2LmMg Yi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lMWExZGQwNDFjYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9taXBzLTY0LXI2LmMNCkBAIC0wLDAgKzEsOTE2IEBADQor LyoNCisgICBDb3B5cmlnaHQgMjAyMy0yMDI1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j Lg0KKw0KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0K KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorDQorICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UNCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4NCisqLw0KKw0KKyNkZWZpbmUgeHN0cihzKSBzdHIocykNCisj ZGVmaW5lIHN0cihzKSAjcw0KKw0KKy8qID09PT09PT09PT09PSBtYWNyb3MgZnJvbSBzaW0vdGVz dHV0aWxzL21pcHMvdXRpbHMtcjYuaW5jID09PT09PT09PT09PT0gKi8NCisNCisvKiA1OCBpcyBs b2NhbCBsYWJlbCB0byBleGl0IHdpdGggZXJyY29kZSAhPSAwLCBpbmRpY2F0aW5nIGVycm9yLiAg Ki8NCisjZGVmaW5lIGZwX2Fzc2VydChhLCBiKSAiYmVxICIgeHN0ciAoYSkgIiwgIiB4c3RyIChi KSAiLCAxZiBcblx0IiBcDQorICAibm9wIFxuXHQiIFwNCisgICJiIDU4ZiBcblx0IiBcDQorICAi bm9wIFxuXHQiIFwNCisgICIxOiBcblx0Ig0KKw0KKy8qIENsb2JiZXJzOiAkNCwkNiwkNy4gICov DQorI2RlZmluZSByNmNrXzFyKGluc3QsIGEsIHJldCkgXA0KKyAgImxpICQ0LCAiIHhzdHIgKGEp ICIgICAgXG5cdCIgXA0KKyAgImxpICQ2LCAiIHhzdHIgKHJldCkgIiAgXG5cdCIgXA0KKyAgeHN0 ciAoaW5zdCkgIiAkNywgJDQgICAgXG5cdCIgXA0KKyAgZnBfYXNzZXJ0ICgkNiwgJDcpDQorDQor LyogQ2xvYmJlcnM6ICQ0LCQ2LCQ3LiAgKi8NCisjZGVmaW5lIHI2Y2tfMWRyKGluc3QsIGEsIHJl dCkgXA0KKyAgImxkICQ0LCAiIHhzdHIgKGEpICIgICBcblx0IiBcDQorICAibGQgJDYsICIgeHN0 ciAocmV0KSAiIFxuXHQiIFwNCisgIHhzdHIgKGluc3QpICIgJDcsICQ0ICAgXG5cdCIgXA0KKyAg ZnBfYXNzZXJ0ICgkNiwgJDcpDQorDQorLyogQ2xvYmJlcnM6ICQ0LCQ1LCQ2LCQ3LiAgKi8NCisj ZGVmaW5lIHI2Y2tfMnIoaW5zdCwgYSwgYiwgcmV0KSBcDQorICAibGkgJDQsICIgeHN0ciAoYSkg IiAgIFxuXHQiIFwNCisgICJsaSAkNSwgIiB4c3RyIChiKSAiICAgXG5cdCIgXA0KKyAgImxpICQ2 LCAiIHhzdHIgKHJldCkgIiBcblx0IiBcDQorICB4c3RyIChpbnN0KSAiICQ3LCAkNCwgJDUgICBc blx0IiBcDQorICBmcF9hc3NlcnQgKCQ2LCAkNykNCisNCisvKiBDbG9iYmVyczogJDQsJDUsJDYs JDcuICAqLw0KKyNkZWZpbmUgcjZja18yZHIoaW5zdCwgYSwgYiwgcmV0KSBcDQorICAibGQgJDQs ICIgeHN0ciAoYSkgIiAgICBcblx0IiBcDQorICAibGQgJDUsICIgeHN0ciAoYikgIiAgICBcblx0 IiBcDQorICAibGQgJDYsICIgeHN0ciAocmV0KSAiICBcblx0IiBcDQorICB4c3RyIChpbnN0KSAi ICQ3LCAkNCwgJDUgIFxuXHQiIFwNCisgIGZwX2Fzc2VydCAoJDYsICQ3KQ0KKw0KKy8qIENsb2Ji ZXJzOiAkNCwkNSwkNiwkNy4gICovDQorI2RlZmluZSByNmNrXzJkcjFpKGluc3QsIGEsIGIsIGlt bSwgcmV0KSBcDQorICAibGQgJDQsICIgeHN0ciAoYSkgIiAgICAgIFxuXHQiIFwNCisgICJsZCAk NSwgIiB4c3RyIChiKSAiICAgICAgXG5cdCIgXA0KKyAgImxkICQ2LCAiIHhzdHIgKHJldCkgIiAg ICBcblx0IiBcDQorICB4c3RyIChpbnN0KSAiICQ3LCAkNCwgJDUsICIgeHN0ciAoaW1tKSAiICBc blx0IiBcDQorICBmcF9hc3NlcnQgKCQ2LCAkNykNCisNCisvKiBDbG9iYmVyczogJDQsJDYsJDcu ICAqLw0KKyNkZWZpbmUgcjZja18xcjFpKGluc3QsIGEsIGltbSwgcmV0KSBcDQorICAibGkgJDQs ICIgeHN0ciAoYSkgIiAgICAgIFxuXHQiIFwNCisgICJsaSAkNiwgIiB4c3RyIChyZXQpICIgICAg XG5cdCIgXA0KKyAgeHN0ciAoaW5zdCkgIiAkNywgJDQsICIgeHN0ciAoaW1tKSAiICBcblx0IiBc DQorICBmcF9hc3NlcnQgKCQ2LCAkNykNCisNCisvKiBDbG9iYmVyczogJDQsJDYsJDcuICAqLw0K KyNkZWZpbmUgcjZja18xZHIxaShpbnN0LCBhLCBpbW0sIHJldCkgXA0KKyAgImxkICQ0LCAiIHhz dHIgKGEpICIgICAgIFxuXHQiIFwNCisgICJsZCAkNiwgIiB4c3RyIChyZXQpICIgICBcblx0IiBc DQorICB4c3RyIChpbnN0KSAiICQ3LCAkNCwgIiB4c3RyIChpbW0pICIgIFxuXHQiIFwNCisgIGZw X2Fzc2VydCAoJDYsICQ3KQ0KKw0KKy8qIENsb2JiZXJzOiAkNCwkNi4gICovDQorI2RlZmluZSBy NmNrXzBkcjFpKGluc3QsIGEsIGltbSwgcmV0KSBcDQorICAibGQgJDQsICIgeHN0ciAoYSkgIiAg ICAgXG5cdCIgXA0KKyAgImxkICQ2LCAiIHhzdHIgKHJldCkgIiAgIFxuXHQiIFwNCisgIHhzdHIg KGluc3QpICIgJDQsICQ0LCAiIHhzdHIgKGltbSkgIiAgIFxuXHQiIFwNCisgIGZwX2Fzc2VydCAo JDYsICQ0KQ0KKw0KKy8qIENsb2JiZXJzOiAkNCwkNSwkNiwkNy4gICovDQorI2RlZmluZSByNmNr XzJyMWkoaW5zdCwgYSwgYiwgaW1tLCByZXQpIFwNCisgICJsaSAkNCwgIiB4c3RyIChhKSAiICAg ICBcblx0IiBcDQorICAibGkgJDUsICIgeHN0ciAoYikgIiAgICAgXG5cdCIgXA0KKyAgImxpICQ2 LCAiIHhzdHIgKHJldCkgIiAgIFxuXHQiIFwNCisgIHhzdHIgKGluc3QpICIgJDcsICQ0LCAkNSwg IiB4c3RyIChpbW0pICIgICBcblx0IiBcDQorICBmcF9hc3NlcnQgKCQ2LCAkNykNCisNCisvKiBD bG9iYmVyczogJDQsJDUsJDYsJDcsJDgsJGYyLCRmNCwkZjYuICAqLw0KKyNkZWZpbmUgcjZja18z cyhpbnN0LCBhLCBiLCBjLCByZXQpIFwNCisgICJsaSAkNCwgIiB4c3RyIChhKSAiICAgICBcblx0 IiBcDQorICAibGkgJDUsICIgeHN0ciAoYikgIiAgICAgXG5cdCIgXA0KKyAgImxpICQ2LCAiIHhz dHIgKGMpICIgICAgIFxuXHQiIFwNCisgICJsaSAkNywgIiB4c3RyIChyZXQpICIgICBcblx0IiBc DQorICAibXRjMSAkNCwgJGYyICAgICAgICAgICBcblx0IiBcDQorICAibXRjMSAkNSwgJGY0ICAg ICAgICAgICBcblx0IiBcDQorICAibXRjMSAkNiwgJGY2ICAgICAgICAgICBcblx0IiBcDQorICB4 c3RyIChpbnN0KSAiICRmMiwgJGY0LCAkZjYgICAgICAgXG5cdCIgXA0KKyAgIm1mYzEgJDgsICRm MiAgICAgICAgICAgXG5cdCIgXA0KKyAgZnBfYXNzZXJ0ICgkNywgJDgpDQorDQorLyogQ2xvYmJl cnM6ICQ0LCQ1LCQ2LCQ3LCRmMiwkZjQuICAqLw0KKyNkZWZpbmUgcjZja18ycyhpbnN0LCBhLCBi LCByZXQpIFwNCisgICJsaSAkNCwgIiB4c3RyIChhKSAiICAgICAgIFxuXHQiIFwNCisgICJsaSAk NSwgIiB4c3RyIChiKSAiICAgICAgIFxuXHQiIFwNCisgICJsaSAkNiwgIiB4c3RyIChyZXQpICIg ICAgIFxuXHQiIFwNCisgICJtdGMxICQ0LCAkZjIgICAgICAgICAgICAgXG5cdCIgXA0KKyAgIm10 YzEgJDUsICRmNCAgICAgICAgICAgICBcblx0IiBcDQorICB4c3RyIChpbnN0KSAiICRmMiwgJGY0 ICAgICBcblx0IiBcDQorICAibWZjMSAkNywgJGYyICAgICAgICAgICAgIFxuXHQiIFwNCisgIGZw X2Fzc2VydCAoJDYsICQ3KQ0KKw0KKy8qIENsb2JiZXJzOiAkNCwkNSwkNiwkNywkOCwkOSwkMTAs JGYyLCRmNC4gICovDQorI2RlZmluZSByNmNrXzJkKGluc3QsIGEsIGIsIHJldCkgXA0KKyAgIi5k YXRhICAgICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgIjE6IC5kd29yZCAiIHhzdHIgKGEpICIg ICAgXG5cdCIgXA0KKyAgIjI6IC5kd29yZCAiIHhzdHIgKGIpICIgICAgXG5cdCIgXA0KKyAgIjM6 IC5kd29yZCAiIHhzdHIgKHJldCkgIiAgXG5cdCIgXA0KKyAgIi50ZXh0ICAgICAgICAgICAgICAg ICAgIFxuXHQiIFwNCisgICJkbGEgJDQsIDFiICAgICAgICAgICAgICBcblx0IiBcDQorICAiZGxh ICQ1LCAyYiAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgImRsYSAkNiwgM2IgICAgICAgICAgICAg IFxuXHQiIFwNCisgICJsZGMxICRmMiwgMCgkNCkgICAgICAgIFxuXHQiIFwNCisgICJsZGMxICRm NCwgMCgkNSkgICAgICAgIFxuXHQiIFwNCisgICJsdyAkNywgMCgkNikgICAgICAgICAgIFxuXHQi IFwNCisgICJsdyAkOCwgNCgkNikgICAgICAgICAgIFxuXHQiIFwNCisgIHhzdHIgKGluc3QpICIg JGYyLCAkZjQgICBcblx0IiBcDQorICAibWZoYzEgJDksICRmMiAgICAgICAgICBcblx0IiBcDQor ICAibWZjMSAkMTAsICRmMiAgICAgICAgICBcblx0IiBcDQorICBmcF9hc3NlcnQgKCQ3LCAkOSkg XA0KKyAgZnBfYXNzZXJ0ICgkOCwgJDEwKQ0KKw0KKy8qIENsb2JiZXJzOiAkMiwkNCwkNSwkNiwk NywkOCwkOSwkMTAsJGYyLCRmNCwkZjYuICAqLw0KKyNkZWZpbmUgcjZja18zZChpbnN0LCBhLCBi LCBjLCByZXQpIFwNCisgICIuZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIgXA0KKyAgIjE6IC5kd29yZCAiIHhzdHIgKGEpICIgICAgICAgICAgICAgICAgICBcblx0IiBc DQorICAiMjogLmR3b3JkICIgeHN0ciAoYikgIiAgICAgICAgICAgICAgICAgIFxuXHQiIFwNCisg ICIzOiAuZHdvcmQgIiB4c3RyIChjKSAiICAgICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgIjQ6 IC5kd29yZCAiIHhzdHIgKHJldCkgIiAgICAgICAgICAgICAgICBcblx0IiBcDQorICAiLnRleHQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICJkbGEgJDQsIDFiICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICJkbGEgJDUsIDJiICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICJkbGEgJDYsIDNiICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiIFwNCisgICJkbGEgJDIsIDRiICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiIFwNCisgICJsZGMxICRmMiwgMCgkNCkgICAgICAgICAgICAgICAgICAgICAg XG5cdCIgXA0KKyAgImxkYzEgJGY0LCAwKCQ1KSAgICAgICAgICAgICAgICAgICAgICBcblx0IiBc DQorICAibGRjMSAkZjYsIDAoJDYpICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICJs dyAkNywgMCgkMikgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgImx3ICQ4LCA0 KCQyKSAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiBcDQorICB4c3RyIChpbnN0KSAiICRm MiwgJGY0LCAkZjYgICAgICAgICAgICBcblx0IiBcDQorICAibWZoYzEgJDksICRmMiAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICJtZmMxICQxMCwgJGYyICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCIgXA0KKyAgZnBfYXNzZXJ0ICgkNywgJDkpIFwNCisgIGZwX2Fzc2VydCAo JDgsICQxMCkNCisNCisvKiA9PT09PT09PT09PT0gbWFjcm9zIGZyb20gc2ltL3Rlc3R1dGlscy9t aXBzL3Rlc3R1dGlscy5pbmMgPT09PT09PT09PT09PSAqLw0KKw0KKy8qIFB1dCB2YWx1ZSAndmFs JyBpbnRvIHJlZ2lzdGVyICdyZWcnLg0KKyAgIENsb2JiZXJzOiBOb25lLiAgKi8NCisjZGVmaW5l IGxvYWQzMihyZWcsIHZhbCkgXA0KKyAgImxpICAiIHhzdHIgKHJlZykgIiwgIiB4c3RyICh2YWwp ICIgICAgIFxuXHQiDQorDQorLyogQ2hlY2sgd2hldGhlciB0d28gcmVnaXN0ZXJzIGNvbnRhaW4g dGhlIHNhbWUgdmFsdWUuDQorICAgQ2xvYmJlcnM6IE5vbmUuICAqLw0KKyNkZWZpbmUgY2hlY2ty ZWcocmVnLCBleHByZWcpIFwNCisgICIuc2V0IHB1c2ggICAgICAgICBcblx0IiBcDQorICAiLnNl dCBub2F0ICAgICAgICAgXG5cdCIgXA0KKyAgIi5zZXQgbm9yZW9yZGVyICAgIFxuXHQiIFwNCisg ICJiZXEgIiAgeHN0ciAoZXhwcmVnKSAiLCAiIHhzdHIgKHJlZykgIiwgOTAxZiAgICBcblx0IiBc DQorICAibm9wICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgImIgNThmICAgICAgICAgICAgICBc blx0IiBcDQorICAibm9wICAgICAgICAgICAgICAgIFxuXHQiIFwNCisgICI5MDE6ICAgICAgICAg ICAgICAgICAgIFxuXHQiIFwNCisgICIuc2V0IHBvcCAgICAgICAgICAgXG5cdCINCisNCisvKiBD aGVjayBpZiByZWdpc3RlciAncmVnJyBjb250YWlucyB2YWx1ZSAndmFsJy4NCisgICBDbG9iYmVy czogJDEuICAqLw0KKyNkZWZpbmUgY2hlY2szMihyZWcsIHZhbCkgXA0KKyAgIi5zZXQgcHVzaCAg ICAgICAgIFxuXHQiIFwNCisgICIuc2V0IG5vYXQgICAgICAgICBcblx0IiBcDQorICBsb2FkMzIg KCQxLCB2YWwpIFwNCisgIGNoZWNrcmVnIChyZWcsICQxKSBcDQorICAiLnNldCBwb3AgICAgICAg ICAgXG5cdCINCisNCisvKiBDaGVja3BhaXIgYmFzZWQgb24gZW5kaWFuZXNzDQorICAgQ2xvYmJl cnM6ICQxLiAgKi8NCisjZGVmaW5lIGNoZWNrcGFpcl94ZW5kaWFuKGxvLCBoaSwgYmFzZSwgZWMs IHcpIFwNCisgICIuc2V0IG5vYXQgICAgICAgICAgICAgICBcblx0IiBcDQorICAibHcgICAkMSwg IiB4c3RyIChlYykgIiAgIFxuXHQiIFwNCisgICJhbmRpICQxLCAkMSwgMHgxICAgICAgICBcblx0 IiBcDQorICAiYmVxeiAgJDEsIDJmICAgICAgICAgICAgXG5cdCIgXA0KKyAgIi5zZXQgYXQgICAg ICAgICAgICAgICAgIFxuXHQiIFwNCisgICIxOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCIgXA0KKyAgY2hlY2twYWlyX2JlXyMjdyAobG8sIGhpLCBiYXNlKSBcDQorICAiYiAzZiAgICAg ICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgIFxuXHQi IFwNCisgICIyOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgXA0KKyAgY2hlY2twYWly X2xlXyMjdyAobG8sIGhpLCBiYXNlKSBcDQorICAiMzogICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorDQorLyogQ2hlY2sgaGktbG8gcmVnaXN0ZXIgcGFpciBhZ2FpbnN0IGRhdGEgc3Rv cmVkIGF0IGJhc2UrbzEgYW5kIGJhc2UrbzIuDQorICAgQ2xvYmJlcnM6ICQxIC0gJDUuICAqLw0K KyNkZWZpbmUgIGNoZWNrcGFpcihsbywgaGksIGJhc2UsIHcsIG8xLCBvMikgXA0KKyAgIm1vdmUg ICQyLCAiIHhzdHIgKGxvKSAiICAgXG5cdCIgXA0KKyAgIm1vdmUgICQzLCAiIHhzdHIgKGhpKSAi ICAgXG5cdCIgXA0KKyAgIi5zZXQgbm9hdCAgICAgICAgICAgICAgICBcblx0IiBcDQorICAiZGxh ICAgJDEsICIgeHN0ciAoYmFzZSkgIiAgXG5cdCIgXA0KKyAgImwiIHhzdHIgKHcpICIgJDQsICIg eHN0ciAobzEpICIoJDEpICBcblx0IiBcDQorICAibCIgeHN0ciAodykgICIgJDUsICIgeHN0ciAo bzIpICIoJDEpICBcblx0IiBcDQorICAiLnNldCBhdCAgICAgICAgICAgICAgICAgIFxuXHQiIFwN CisgIGNoZWNrcmVnICgkMiwgJDQpIFwNCisgIGNoZWNrcmVnICgkMywgJDUpDQorDQorI2RlZmlu ZSBjaGVja3BhaXJfbGVfZChsbywgaGksIGJhc2UpIFwNCisgIGNoZWNrcGFpciAobG8sIGhpLCBi YXNlLCB3LCAwLCA0KQ0KKw0KKyNkZWZpbmUgY2hlY2twYWlyX2JlX2QobG8sIGhpLCBiYXNlKSBc DQorICBjaGVja3BhaXIgKGxvLCBoaSwgYmFzZSwgdywgNCwgMCkNCisNCisjZGVmaW5lIGNoZWNr cGFpcl9sZV9xKGxvLCBoaSwgYmFzZSkgXA0KKyAgY2hlY2twYWlyIChsbywgaGksIGJhc2UsIGQs IDAsIDgpDQorDQorI2RlZmluZSBjaGVja3BhaXJfYmVfcShsbywgaGksIGJhc2UpIFwNCisgIGNo ZWNrcGFpciAobG8sIGhpLCBiYXNlLCBkLCA4LCAwKQ0KKw0KKyNkZWZpbmUgY2hlY2twYWlyX3F3 b3JkKGxvLCBoaSwgYmFzZSwgb2UpIFwNCisgIGNoZWNrcGFpcl94ZW5kaWFuIChsbywgaGksIGJh c2UsIG9lLCBxKQ0KKw0KKyNkZWZpbmUgY2hlY2twYWlyX2R3b3JkKGxvLCBoaSwgYmFzZSwgb2Up IFwNCisgIGNoZWNrcGFpcl94ZW5kaWFuIChsbywgaGksIGJhc2UsIG9lLCBkKQ0KKw0KK3ZvaWQN CithYm9ydCAodm9pZCk7DQorDQorLyogVGVzdHMgYnJhbmNoIGluc3RydWN0aW9ucy4gICovDQor DQoraW50DQordGVzdF9yNl9icmFuY2ggKHZvaWQpDQorew0KKy8qIFVzaW5nIHZvbGF0aWxlIHRv IHByZXZlbnQgY2VydGFpbiBvcHRpbWl6YXRpb25zIHdoaWNoIGNvdWxkIGNhdXNlDQorICAgaW5z dHJ1Y3Rpb24gZGVsZXRpb24uDQorICAgJ2VycicgaWRlbnRpZmllcyBpbnN0cnVjdGlvbiB3aGlj aCAoZXZlbnR1YWxseSkgY2F1c2VkIGVycm9yLg0KKyAgIChlcnIgPT0gMCkgPT0+IGFsbCBpbnN0 cnVjdGlvbnMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LiAgKi8NCisNCisgIHZvbGF0aWxlIGludCBl cnIgPSAtMTsNCisgIHZvbGF0aWxlIGludCBhMTQgPSAweGZmZmZmZmZmOw0KKyAgdm9sYXRpbGUg aW50IGExMyA9IDB4MTIzOw0KKyAgdm9sYXRpbGUgaW50IGExMiA9IDB4NDU7DQorICB2b2xhdGls ZSBpbnQgYTcgPSAweDQ1Ow0KKyAgdm9sYXRpbGUgaW50IGE4ID0gMHhmZmZmZmZmZTsNCisgIHZv bGF0aWxlIGludCBhOSA9IDIxNDc0ODM2NDc7DQorICB2b2xhdGlsZSBpbnQgYTExID0gMDsNCisg IHZvbGF0aWxlIGludCBhMTAgPSAwOw0KKw0KKyAgYXNtICgNCisgICIuc2V0IHB1c2ggICAgICAg ICAgICAgXG5cdCIgLyogQ3JlYXRlIG5ldyBzY29wZSBmb3IgYXNtIGNvbmZpZ3VyYXRpb24uICAq Lw0KKyAgIi5zZXQgbm9yZW9yZGVyICAgICAgICBcblx0IiAvKiBEb24ndCBhbGxvdyByZW9yZGVy aW5nIG9mIGluc3RydWN0aW9ucy4gICovDQorICAibGkgJVtlcnJdLCAxICAgICAgICAgICAgICAg ICAgXG5cdCINCisgICJib3ZjICVbYTEyXSwgJVthMTNdLCBMZmFpbCAgICBcblx0IiAvKiBCT1ZD ICovDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJib3ZjICVb YTldLCAlW2ExM10sIEwyICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkwyOiAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAyICAgICAgICAgICAgICAgICAg XG5cdCINCisgICJibnZjICVbYTldLCAlW2ExM10sIExmYWlsICAgICBcblx0IiAvKiBCTlZDICov DQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJibnZjICVbYTEy XSwgJVthMTNdLCBMMyAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkwzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAzICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJiZXFjICVbYTEyXSwgJVthMTNdLCBMZmFpbCAgICBcblx0IiAvKiBCRVFDICovDQor ICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiZXFjICVbYTEyXSwg JVthN10sIEw0ICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3Ag ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkw0OiAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCA0ICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICJibmVjICVbYTEyXSwgJVthN10sIExmYWlsICAgICBcblx0IiAvKiBCTkVDICovDQorICAi bm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJibmVjICVbYTEyXSwgJVth MTNdLCBMNSAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkw1OiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCA1ICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICJibHRjICVbYTEzXSwgJVthMTJdLCBMZmFpbCAgICBcblx0IiAvKiBCTFRDICovDQorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJibHRjICVbYTEyXSwgJVthMTNd LCBMNiAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkw2OiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiTDc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJs aSAlW2Vycl0sIDcgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJnZWMgJVthMTJdLCAlW2Ex M10sIExmYWlsICAgIFxuXHQiIC8qIEJHRUMgKi8NCisgICJub3AgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0Ig0KKyAgImJnZWMgJVthMTNdLCAlW2ExMl0sIEw4ICAgICAgIFxuXHQiDQor ICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAgICAg ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorICAiTDg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMOTog ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbZXJyXSwgOSAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAiYmx0dWMgJVthMTRdLCAlW2ExM10sIExmYWlsICAgXG5cdCIg LyogQkxUVUMgKi8NCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg ImJsdHVjICVbYThdLCAlW2ExNF0sIEwxMCAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiTDEwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMMTE6ICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0Ig0KKyAgImxpICVbZXJyXSwgMTEgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAiYmdldWMgJVthMTNdLCAlW2ExNF0sIExmYWlsICAgXG5cdCIgLyogQkdFVUMgKi8NCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJnZXVjICVbYTE0XSwgJVth OF0sIEwxMiAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiTDEyOiAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJMMTM6ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg ImxpICVbZXJyXSwgMTMgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmx0emMgJVthMTNdLCBM ZmFpbCAgICAgICAgICAgXG5cdCIgLyogQkxUWkMgKi8NCisgICJub3AgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImJsdHpjICVbYTExXSwgTGZhaWwgICAgICAgICAgIFxuXHQi DQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJibHR6YyAlW2Ex NF0sIEwxNCAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkwxNDogICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAxNCAgICAgICAgICAgICAgICAgXG5c dCINCisgICJibGV6YyAlW2ExM10sIExmYWlsICAgICAgICAgICBcblx0IiAvKiBCTEVaQyAqLw0K KyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmxlemMgJVthMTFd LCBMMTQ1ICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMMTQ1OiAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImJsZXpjICVbYTE0XSwgTDE1ICAgICAgICAgICAgIFxuXHQi DQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiTDE1OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJs aSAlW2Vycl0sIDE1ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJnZXpjICVbYThdLCBMZmFp bCAgICAgICAgICAgIFxuXHQiIC8qIEJHRVpDICovDQorICAibm9wICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJiZ2V6YyAlW2ExMV0sIEwxNTUgICAgICAgICAgICBcblx0Ig0K KyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgIkwxNTU6ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmdl emMgJVthMTNdLCBMMTYgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMMTY6ICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbZXJyXSwgMTYgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiYmd0emMgJVthOF0sIExmYWlsICAgICAgICAgICAgXG5cdCIgLyogQkdU WkMgKi8NCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJndHpj ICVbYTExXSwgTGZhaWwgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJiZ3R6YyAlW2ExM10sIEwxNyAgICAgICAgICAgICBcblx0Ig0K KyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgImxpICVbYTEwXSwgMCAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiTDE3 OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAlW2Vycl0sIDE3ICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImJsZXphbGMgJVthMTJdLCBMZmFpbCAgICAgICAgIFxuXHQi IC8qIEJMRVpBTEMgKi8NCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgImJsZXphbGMgJVthMTFdLCBMcmV0ICAgICAgICAgIFxuXHQiDQorICAibGkgJVthMTBdLCAx ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiZXF6YyAlW2ExMF0sIEwxNzUgICAgICAgICAg ICBcblx0IiAvKiBCRVFaQyAqLw0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAibGkgJVtlcnJdLCA4NTMxICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWls ICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICAiTDE3NTogICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICJsaSAlW2Vycl0sIDIzNTMxICAgICAgICAgICAgICBcblx0Ig0KKyAgImJsZXphbGMgJVthMTRd LCBMcmV0ICAgICAgICAgIFxuXHQiDQorICAibGkgJVthMTBdLCAxICAgICAgICAgICAgICAgICAg XG5cdCINCisgICJiZXF6YyAlW2ExMF0sIEwxOCAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgIkwxODogICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAx OCAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiZ2V6YWxjICVbYTE0XSwgTGZhaWwgICAgICAg ICBcblx0IiAvKiBCR0VaQUxDICovDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCINCisgICJiZ2V6YWxjICVbYTExXSwgTHJldCAgICAgICAgICBcblx0Ig0KKyAgImxpICVb YTEwXSwgMSAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmVxemMgJVthMTBdLCBMMTg1ICAg ICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgImIgTGZhaWwgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMMTg1OiAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgImJnZXphbGMgJVthMTJdLCBMcmV0ICAgICAgICAgIFxuXHQiDQorICAibGkg JVthMTBdLCAxICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiZXF6YyAlW2ExMF0sIEwxOSAg ICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkwxOTogICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAxOSAgICAgICAgICAgICAgICAgXG5cdCINCisgICJi Z3R6YWxjICVbYTE0XSwgTGZhaWwgICAgICAgICBcblx0IiAvKiBCR1RaQUxDICovDQorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiZ3R6YWxjICVbYTExXSwgTGZh aWwgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiYmd0emFsYyAlW2ExMl0sIExyZXQgICAgICAgICAgXG5cdCINCisgICJsaSAlW2ExMF0s IDEgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJlcXpjICVbYTEwXSwgTDIwICAgICAgICAg ICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJi IExmYWlsICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAiTDIwOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJsaSAlW2Vycl0sIDIwICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJsdHphbGMg JVthMTJdLCBMZmFpbCAgICAgICAgIFxuXHQiIC8qIEJMVFpBTEMgKi8NCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJsdHphbGMgJVthMTFdLCBMZmFpbCAgICAg ICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJi bHR6YWxjICVbYTE0XSwgTHJldCAgICAgICAgICBcblx0Ig0KKyAgImxpICVbYTEwXSwgMSAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAiYmVxemMgJVthMTBdLCBMMjEgICAgICAgICAgICAgXG5c dCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImIgTGZhaWwg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJMMjE6ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg ImxpICVbZXJyXSwgMjEgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmMgTDIyICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIgLyogQkMgKi8NCisgICJiIExmYWlsICAgICAgICAgICAgICAg ICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAiTDIyOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAlW2Vycl0sIDIy ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJhbGMgTHJldCAgICAgICAgICAgICAgICAgICAg IFxuXHQiIC8qIEJBTEMgKi8NCisgICJsaSAlW2ExMF0sIDEgICAgICAgICAgICAgICAgICBcblx0 Ig0KKyAgImJlcXpjICVbYTEwXSwgTDIzICAgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAgICAgICAgICAgICAgICAg ICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAi TDIzOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAlW2Vycl0sIDIzICAg ICAgICAgICAgICAgICBcblx0Ig0KKyAgImphbCBHZXRQQyAgICAgICAgICAgICAgICAgICAgIFxu XHQiIC8qIEpBTCAqLw0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAiamljICQ2LCA0ICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLyogSklDICovDQorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiTDI0OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAlW2Vycl0s IDI0ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbYTEwXSwgMSAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiamFsIEdldFBDICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJu b3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImppYWxjICQ2LCAyMCAgICAg ICAgICAgICAgICAgIFxuXHQiIC8qIEpJQUxDICovDQorICAibm9wICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJiZXF6YyAlW2ExMF0sIEwyNSAgICAgICAgICAgICBcblx0Ig0K KyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgIkxKSUFMQ1JFVDogICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkg JVthMTBdLCAwICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJqciAkMzEgICAgICAgICAgICAg ICAgICAgICAgICBcblx0IiAvKiBKUiAqLw0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAiTDI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJs aSAlW2Vycl0sIDI1ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImphbCBHZXRQQyAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJtb3ZlICVbYTExXSwgJDYgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5hbCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJhZGRpdSAlW2ExMV0sIDEyICAgICAgICAgICAgICBcblx0IiAvKiBB RERJVSAqLw0KKyAgImJlcWMgJVthMTFdLCAkMzEsIEwyNiAgICAgICAgIFxuXHQiDQorICAibm9w ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWlsICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiTDI2OiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAlW2Vycl0s IDI2ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJhbGMgTHJldCAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAibGkgJVthMTBdLCAxICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJi ZXF6YyAlW2ExMF0sIExlbmQgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbCAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkxyZXQ6ICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVthMTBdLCAwICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJkYWRkaXUgJDMxLCA0ICAgICAgICAgICAgICAgICBcblx0IiAvKiBE QURESVUgKi8NCisgICJqcmMgJDMxICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvKiBKUkMg Ki8NCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIkdldFBDOiAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibW92ZSAkNiwgJDMxICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJqciAkMzEgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg IkxlbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJVtlcnJdLCAwICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICJMZmFpbDogICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgIi5zZXQgcG9wICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIFJlc3RvcmUg cHJldmlvdXMgY29uZmlnICovDQorICA6IFtlcnJdICIrciIoZXJyKSwgW2ExNF0gIityIihhMTQp LCBbYTEzXSAiK3IiKGExMyksIFthMTJdICIrciIoYTEyKSwNCisgICAgW2E3XSAiK3IiKGE3KSwg W2E4XSAiK3IiKGE4KSwgW2E5XSAiK3IiKGE5KSwgW2ExMF0gIityIihhMTApLA0KKyAgICBbYTEx XSAiK3IiKGExMSkNCisgIDogLyogaW5wdXRzICovDQorICA6ICIkMzEiLCAiJDYiIC8qIGNsb2Ji ZXJzICovDQorICApOw0KKw0KKyAgcmV0dXJuIGVycjsNCit9DQorDQorLyogVGVzdHMgZm9yYmlk ZGVuIHNsb3QgYnJhbmNoaW5nIGkuZS4gY29uZGl0aW9uYWwgY29tcGFjdCBicmFuY2gNCisgICBp bnN0cnVjdGlvbnMuICAqLw0KKw0KK2ludA0KK3Rlc3RfcjZfZm9yYmlkZGVuICh2b2lkKQ0KK3sN CisgIHZvbGF0aWxlIGludCBlcnIgPSAtMTsNCisgIHZvbGF0aWxlIGludCBhNCA9IDA7DQorICB2 b2xhdGlsZSBpbnQgYTIgPSAwOw0KKyAgdm9sYXRpbGUgaW50IGExID0gMDsNCisNCisgIGFzbSAo DQorICAiLnNldCBwdXNoICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLnNldCBu b3Jlb3JkZXIgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorLyogVGVzdCBpZiBGUyBpcyBpZ25v cmVkIHdoZW4gYnJhbmNoIGlzIHRha2VuICovDQorICAibGkgJVtlcnJdLCAxICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAibGkgJVthNF0sIDAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAiYmVxemFsYyAlW2E0XSwgTDQxICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkg JVtlcnJdLCAtODUgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiTDQyOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiBMZmFpbDIgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAiTDQxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYmxleiAl W2Vycl0sIExmYWlsMiAgICAgICAgICAgICAgIFxuXHQiDQorLyogVGVzdCBpZiBGUyBpcyB1c2Vk IHdoZW4gYnJhbmNoIGlzIG5vdCB0YWtlbiAqLw0KKyAgImxpICVbZXJyXSwgMiAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbYTRdLCAxICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgImJsZXpjICVbYTRdLCBMNDMgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImFk ZGl1ICVbYTRdLCAlW2E0XSwgMSAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbYTJdLCAyICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJlcSAlW2E0XSwgJVthMl0sIEw0NCAgICAg ICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 Ig0KKyAgIkw0MzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImIgTGZhaWwyICAgICAgICAg ICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0Ig0KKyAgIkw0NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgImxpICVbZXJyXSwgMyAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICVbYTRd LCAzICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJlcXphbGMgJVthNF0sIExmYWls MiAgICAgICAgICAgICBcblx0Ig0KKy8qIE5vdGU6ICdiYyBMNDUnIGluc3RlYWQgbm9wIHdvdWxk IGNhdXNlIFNlZ0ZhdWx0OiBJbGxlZ2FsIGluc3RydWN0aW9uOg0KKyAgIEZvcmJpZGRlbiBzbG90 IGNhdXNlcyBhbiBlcnJvciB3aGVuIGl0IGNvbnRhaW5zIGEgYnJhbmNoLiAgKi8NCisgICJub3Ag ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExlbmQyICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJMNDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJiIExmYWls MiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICJMZW5kMjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCINCisgICJsaSAlW2Vycl0sIDAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICJMZmFpbDI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuc2V0IHBvcCAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCINCisgIDogW2Vycl0gIityIiAoZXJyKSwgW2E0XSAiK3IiKGE0KSwg W2EyXSAiK3IiKGEyKSwgW2ExXSAiK3IiKGExKSAvKiBvdXRwdXRzICovDQorICA6IC8qIGlucHV0 cyAqLw0KKyAgOiAiJDMxIiAvKiBjbG9iYmVycyAqLw0KKyAgKTsNCisNCisgIHJldHVybiBlcnI7 DQorfQ0KKw0KK2ludA0KK3Rlc3RfcjZfNjQgKHZvaWQpDQorew0KKyAgdm9sYXRpbGUgaW50IGVy ciA9IDA7DQorDQorICBhc20gKA0KKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCINCisgICIuc2V0IG5vcmVvcmRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAiLmRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0Ig0KKyAgImR2YWw6IC5kd29yZCAweGFhNTViYjY2Y2M3N2RkODggICAgICAg ICAgICAgXG5cdCINCisgICJkMTogICAuZHdvcmQgMHhhYWFhYmJiYmNjY2NkZGRkICAgICAgICAg ICAgIFxuXHQiDQorICAiZDU6ICAgLmR3b3JkIDB4MDAwMDAwMDAwMDAwMDBkZCAgICAgICAgICAg ICBcblx0Ig0KKyAgImQ3OiAgIC5kd29yZCAweGVlZWVmZmZmMDAwMDExMTEgICAgICAgICAgICAg XG5cdCINCisgICJkODogICAuZHdvcmQgMHhiYmNjY2NkZGRkZWVlZWZmICAgICAgICAgICAgIFxu XHQiDQorICAiZDk6ICAgLmR3b3JkIDB4MDAwMDAwZGRhYWFhYmJiYiAgICAgICAgICAgICBcblx0 Ig0KKyAgImR2YWwxOiAud29yZCAweDEyMzRhYmNkICAgICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICJkdmFsMjogLndvcmQgMHhmZmVlMDAwMCAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAiZHZhbDM6IC5kd29yZCAweGZmZmZmZmZmZmZmZmZmZmYgICAgICAgICAgICBcblx0Ig0KKyAg IiAgLmZpbGwgMjQwLDEsMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJk dmFsNDogLmR3b3JkIDB4NTU1NTU1NTU1NTU1NTU1NSAgICAgICAgICAgIFxuXHQiDQorICAiICAu ZmlsbCAgMjY0LDEsMCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKw0KKy8qIFJl Z2lzdGVyICQxMSBzdG9yZXMgaW5zdHJ1Y3Rpb24gY3VycmVudGx5IGJlaW5nIHRlc3RlZCBhbmQg aGVuY2UNCisgKiBpZGVudGlmaWVzIGVycm9yIGlmIGl0IG9jY3Vycy4gICovDQorICAiLnRleHQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKw0KKyAgImxpICQx MSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLyogVGVzdCBEQUxJ R04gKi8NCisgIHI2Y2tfMmRyMWkgKGRhbGlnbiwgZDcsIGQxLCAzLCBkOCkNCisgIHI2Y2tfMmRy MWkgKGRhbGlnbiwgZDEsIGQ1LCA0LCBkOSkNCisNCisgICJsaSAkMTEsIDIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIFRlc3QgTERQQyAqLw0KKyAgImxkICQ1LCBk dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGRwYyAkNCwgZHZh bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgZnBfYXNzZXJ0ICgkNCwg JDUpDQorDQorICAibGkgJDExLCAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IiAvKiBUZXN0IExXVVBDICovDQorICAibHd1ICQ1LCBkdmFsMSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0Ig0KKyAgImx3dXBjICQ0LCBkdmFsMSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCINCisgIGZwX2Fzc2VydCAoJDQsICQ1KQ0KKyAgImx3dSAkNSwgZHZh bDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsd3VwYyAkNCwgZHZh bDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBmcF9hc3NlcnQgKCQ0LCAk NSkNCisNCisgICJsaSAkMTEsIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiIC8qIFRlc3QgTExEICovDQorICAibGQgJDUsIGR2YWwzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgImRsYSAkMywgZHZhbDQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJsbGQgJDQsIC0yNDgoJDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICBmcF9hc3NlcnQgKCQ0LCAkNSkNCisNCisgICJsaSAkMTEsIDUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8qIFRlc3QgU0NEICovDQorICAi bGxkICQ0LCAtMjQ4KCQzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImRs aSAkNCwgMHhhZmFmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJzY2Qg JDQsIC0yNDgoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGQgJDUs IGR2YWwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImRsaSAkNCwg MHhhZmFmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgIGZwX2Fzc2VydCAo JDQsICQ1KQ0KKw0KKyAgIkxlbmQzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCINCisgICJsaSAkMTEsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorICAiNTg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgIm1vdmUgJVtlcnJdLCAkMTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICIuc2V0IHBvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAgOiBbZXJyXSAiK3IiIChlcnIpIC8qIG91dHB1dHMgKi8NCisgICA6ICAgICAgICAgICAg ICAgICAgLyogaW5wdXRzICovDQorICAgOiAiJDMiLCAiJDQiLCAiJDUiLCAiJDYiLCAiJDciLCAi JDExIiAvKiBjbG9iYmVycyAqLw0KKyAgKTsNCisNCisgIHJldHVybiBlcnI7DQorfQ0KKw0KK2lu dA0KK3Rlc3RfcjYgKHZvaWQpDQorew0KKyAgdm9sYXRpbGUgaW50IGVyciA9IDA7DQorDQorICBh c20gKA0KKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAiLnNldCBub3Jlb3JkZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuZGF0YSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImR2YWxf MTogIC53b3JkIDB4YWJjZDEyMzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAiZHZhbF8yOiAud29yZCAweDEyMzRlZWZmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCINCisgICIuZmlsbCAyNDgsMSwwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImR2YWxfMzogLndvcmQgMHg1NTU1 NTU1NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLmZpbGwg IDI2MCwxLDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJkdmFsXzQ6IC53b3JkIDB4YWFhYWFhYWEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0Ig0KKyAgIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJDExLCAxICAgICAgICAgICAg XG5cdCIgLyogQURESVVQQyAqLw0KKyAgImphbCBHZXRQQ18yICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImFkZGl1ICQ0 LCAkNiwgOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgImFkZGl1cGMgJDUsIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0Ig0KKyAgZnBfYXNzZXJ0ICgkNCwgJDUpDQorDQorICAibGkgJDExLCAyICAgICAg ICAgICAgXG5cdCIgLyogQVVJUEMgKi8NCisgICJqYWwgR2V0UENfMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJhZGRp dSAkNCwgJDYsIDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5c dCINCisgICJhdWkgJDQsICQ0LCA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJhdWlwYyAkNSwgOCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgIGZwX2Fzc2VydCAoJDQsICQ1KQ0KKw0KKyAg ImxpICQxMSwgMyAgICAgICAgICAgIFxuXHQiIC8qIEFMVUlQQyAqLw0KKyAgImphbCBHZXRQQ18y ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg Im5vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgImFkZGl1ICQ0LCAkNiwgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0Ig0KKyAgImF1aSAkNCwgJDQsIDggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxpICQ3LCAweGZmZmYwMDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImFuZCAkNCwg JDQsICQ3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgImFsdWlwYyAkNSwgOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0Ig0KKyAgZnBfYXNzZXJ0ICgkNCwgJDUpDQorDQorICAibGkgJDExLCA0ICAgICAg ICAgICAgXG5cdCIgLyogTFdQQyAqLw0KKyAgImx3ICQ1LCBkdmFsXzEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImx3cGMgJDQsIGR2YWxfMSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgZnBfYXNz ZXJ0ICgkNCwgJDUpDQorICAibHcgJDUsIGR2YWxfMiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibHdwYyAkNCwgZHZhbF8yICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBmcF9hc3NlcnQgKCQ0LCAk NSkNCisNCisvKiBUZXN0aW5nIExMIGZvbGxvd3MuDQorICogTk9URTogTWF5IGJlIHJlZHVuZGFu dCBiZWNhdXNlIFNDIGFscmVhZHkgY29udGFpbnMgTEwgaW4gaXRzIHRlc3QuICAqLw0KKyAgImxp ICQxMSwgNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAibHcgJDUsIGR2YWxfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAiZGxhICQzLCBkdmFsXzMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGwgJDQsIC0yNTIoJDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBmcF9hc3NlcnQgKCQ0 LCAkNSkNCisNCisgICJsaSAkMTEsIDYgICAgICAgIFxuXHQiICAgIC8qIExMLVNDIHNlcXVlbmNl ICovDQorICAibGwgJDQsIC0yNTIoJDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAibGkgJDQsIDB4YWZhZiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAic2MgJDQsIC0yNTIoJDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibHcgJDUsIGR2YWxf MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAi bGkgJDQsIDB4YWZhZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorICBmcF9hc3NlcnQgKCQ0LCAkNSkNCisgICJiIExlbmQ0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICJHZXRQQ18yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG5cdCINCisgICJtb3ZlICQ2LCAkMzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICJqciAkMzEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJMZW5kNDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJsaSAkMTEs IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICI1ODogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJtb3ZlICVbZXJyXSwgJDExICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuc2V0IHBvcCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgIDogW2Vycl0gIityIihlcnIp ICAvKiBvdXRwdXRzICovDQorICA6IC8qIGlucHV0cyAqLw0KKyAgOiAiJDMiLCAiJDQiLCAiJDUi LCAiJDYiLCAiJDciLCAiJDgiLCAiJDkiLCAiJDEwIiwNCisgICAgIiQxMSIsICIkMzEiIC8qIGNs b2JiZXJzICovDQorICApOw0KKw0KKyAgcmV0dXJuIGVycjsNCit9DQorDQorLyogRm9yIGZwdS1i cmFuY2hpbmcgdGVzdGluZywgYmMxZXEvZXF6IGFyZSBlbm91Z2guICAqLw0KKw0KK2ludA0KK3Rl c3RfcjZfZnB1ICh2b2lkKQ0KK3sNCisgIHZvbGF0aWxlIGludCBlcnIgPSAwOw0KKw0KKyAgYXNt ICgNCisgICIuc2V0IHB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisg ICIuc2V0IG5vcmVvcmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisvKiBUZXN0 IHFOYU4gZm9ybWF0IGlzIDc1NC0yMDA4ICovDQorICAibGkgJDExLCAxICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJDQsIDB4MCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAibGkgJDUsIDB4MCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAibGkgJDYsIDB4N2ZjMDAwMDAgICAgICAgICAgICAgICAgICAgICAgIFxu XHQiDQorICAibXRjMSAkNCwgJGYyICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAibXRjMSAkNSwgJGY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiZGl2 LnMgJGY2LCAkZjIsICRmNCAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibWZjMSAkOCwg JGY2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBmcF9hc3NlcnQgKCQ2LCAk OCkNCisNCisgICJsaSAkMTEsIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi ICAvKiBiYzFlcXogKi8NCisgICJsaSAkMTAsIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuXHQiDQorICAibXRjMSAkMTAsICRmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgIm10YzEgJDAsICRmNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICJiYzFlcXogJGYyLCA1OGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAi bm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImJjMWVx eiAkZjQsIEw2MiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJub3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiYiA1OGYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisiTDYyOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJDExLCAzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcblx0IiAgLyogYmMxbmV6ICovDQorICAiYmMxbmV6ICRmNCwgNThmICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm5vcCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICJiYzFuZXogJGYyLCBMZW5kOCAgICAgICAgICAgICAg ICAgICAgICAgIFxuXHQiDQorICAibm9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcblx0Ig0KKyAgImIgNThmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCINCisgICJub3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorIkxlbmQ4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAg ImxpICQxMSwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICI1ODog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibW92ZSAlW2Vy cl0sICQxMSAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5zZXQgcG9wICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgIDogW2Vycl0gIityIihlcnIpICAv KiBvdXRwdXRzICovDQorICA6ICAgICAgICAgICAgICAgICAgLyogaW5wdXRzICovDQorICA6ICIk NCIsICIkNSIsICIkNiIsICIkOCIsICIkMTAiLCAiJDExIiwgIiQzMSIsDQorICAgICIkZjIiLCAi JGY0IiwgIiRmNiIgLyogY2xvYmJlcnMgKi8NCisgICk7DQorDQorICByZXR1cm4gZXJyOw0KK30N CisNCisvKiBSNiBzcGVjaWZpYyB0ZXN0cyBmb3IgbWlwczY0ICg2NC1iaXQpLiAgKi8NCisNCitp bnQNCit0ZXN0X3I2X2xsc2NfZHAgKHZvaWQpDQorew0KKyAgdm9sYXRpbGUgaW50IGVyciA9IDA7 DQorDQorICBhc20gKA0KKyAgIi5zZXQgcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCINCisgICIuc2V0IG5vcmVvcmRlciAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLmRhdGEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5hbGlnbiAxNiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJ0ZXN0X2RhdGE6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLndv cmQgMHhhYWFhYWFhYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgIi53b3JkIDB4YmJiYmJiYmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCINCisgICIud29yZCAweGNjY2NjY2NjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICAiLndvcmQgMHhkZGRkZGRkZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5hbGlnbiAxNiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJlbmRfY2hlY2s6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLmJ5dGUgMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5ieXRlIDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuYnl0 ZSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQor ICAiLmJ5dGUgMHgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0Ig0KKyAgIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG5cdCINCisgICJsaSAkMTEsIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiIC8qIExMV1AgKi8NCisgICJsbHdwICQyLCAkMywgdGVzdF9kYXRh ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBjaGVja3BhaXJfZHdvcmQg KCQyLCAkMywgdGVzdF9kYXRhLCBlbmRfY2hlY2spDQorICAic2xsICQyLCAkMiwgMSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgInNybCAkMywgJDMsIDEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJtb3ZlICAk czAsICQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAi c2N3cCAkMiwgJDMsIHRlc3RfZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0 Ig0KKyAgY2hlY2szMiAoJDIsIDEpDQorICBjaGVja3BhaXJfZHdvcmQgKCRzMCwgJDMsIHRlc3Rf ZGF0YSwgZW5kX2NoZWNrKQ0KKyAgLyogVGVzdCBTQ1dQLCBkb25lICovDQorICAibGkgJDExLCAy ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImxp ICQxMSwgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIg LyogTExEUCAqLw0KKyAgImxsZHAgJDIsICQzLCB0ZXN0X2RhdGEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG5cdCINCisgIGNoZWNrcGFpcl9xd29yZCAoJDIsICQzLCB0ZXN0X2RhdGEs IGVuZF9jaGVjaykNCisgICJkc2xsICQyLCAkMiwgMSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuXHQiDQorICAiZHNybCAkMywgJDMsIDEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm1vdmUgJHMwLCAkMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJzY2RwICQyLCAkMywgdGVzdF9k YXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICBjaGVjazMyICgkMiwg MSkNCisgIGNoZWNrcGFpcl9xd29yZCAoJHMwLCAkMywgdGVzdF9kYXRhLCBlbmRfY2hlY2spDQor ICAibGkgJDExLCA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc blx0IiAvKiBTQ0RQIGRvbmUgKi8NCisgICJMZW5kNTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAibGkgJDExLCAwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIjU4OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICJtb3ZlICVbZXJy XSwgJDExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLnNl dCBwb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgOiBbZXJyXSAiK3IiKGVycikgLyogb3V0cHV0cyAqLw0KKyAgOiAvKiBpbnB1dHMgKi8NCisg IDogIiQyIiwgIiQzIiwgIiQ0IiwgIiQ1IiwgIiQ2IiwgIiQ3IiwgIiQ4IiwgIiQ5IiwgIiQxMCIs ICIkMTEiLA0KKyAgICAiJDMxIiwgIiRzMCIgIC8qIGNsb2JiZXJzICovDQorICApOw0KKw0KKyAg cmV0dXJuIGVycjsNCit9DQorDQorLyogUjYgc3BlY2lmaWMgdGVzdHMgZm9yIG1pcHMzMiAoMzIt Yml0KS4gICovDQorDQoraW50DQordGVzdF9yNl9sbHNjX3dwICh2b2lkKQ0KK3sNCisgIHZvbGF0 aWxlIGludCBlcnIgPSAwOw0KKw0KKyAgYXNtICgNCisgICIuc2V0IHB1c2ggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLnNldCBub3Jlb3JkZXIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5kYXRhICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIu YWxpZ24gOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQi DQorICAidGVzdF9kYXRhXzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgIi53b3JkIDB4YWFhYWFhYWEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICIud29yZCAweGJiYmJiYmJiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLmFsaWduIDggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgImVuZF9jaGVja18yOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuYnl0ZSAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAiLmJ5dGUgMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIi5i eXRlIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIN CisgICIuYnl0ZSAweDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuXHQiDQorICAiLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcblx0Ig0KKyAgImxpICQxMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG5cdCIgLyogVGVzdCBMTFdQICovDQorICAibGx3cCAkMiwgJDMsIHRl c3RfZGF0YV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgY2hlY2twYWly X2R3b3JkICgkMiwgJDMsIHRlc3RfZGF0YV8yLCBlbmRfY2hlY2tfMikNCisgICJzbGwgJDIsICQy LCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICAic3Js ICQzLCAkMywgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0K KyAgIm1vdmUgICRzMCwgJDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG5cdCINCisgICJzY3dwICQyLCAkMywgdGVzdF9kYXRhXzIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuXHQiDQorICBjaGVjazMyICgkMiwgMSkNCisgIGNoZWNrcGFpcl9kd29yZCAoJHMw LCAkMywgdGVzdF9kYXRhXzIsIGVuZF9jaGVja18yKQ0KKy8qIFRlc3QgU0NXUCwgZG9uZS4gICov DQorICAibGkgJDExLCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcblx0Ig0KKyAgIkxlbmQ2OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG5cdCINCisgICJsaSAkMTEsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuXHQiDQorICAiNTg6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcblx0Ig0KKyAgIm1vdmUgJVtlcnJdLCAkMTEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCINCisgICIuc2V0IHBvcCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiDQorICA6IFtlcnJdICIr ciIoZXJyKSAvKiBvdXRwdXRzICovDQorICA6IC8qIGlucHV0cyAqLw0KKyAgOiAiJDIiLCAiJDMi LCAiJDQiLCAiJDUiLCAiJDYiLCAiJDciLCAiJDgiLCAiJDkiLCAiJDEwIiwNCisgICAgIiQxMSIs ICIkMzEiLCAiJHMwIiAgLyogY2xvYmJlcnMgKi8NCisgICk7DQorDQorICByZXR1cm4gZXJyOw0K K30NCisNCisvKiBJZiBhbnkgdGVzdF9yNl8qIGZ1bmN0aW9uIHJldHVybnMgbm9uLXplcm8sIGl0 J3MgYSBmYWlsdXJlLiAgKi8NCisjZGVmaW5lIEVYUEVDVChYKSBpZiAoKFgpKSBhYm9ydCAoKTsN CisNCitpbnQNCittYWluICh2b2lkKQ0KK3sNCisgIEVYUEVDVCAodGVzdF9yNl9icmFuY2ggKCkp Ow0KKw0KKyAgRVhQRUNUICh0ZXN0X3I2X2ZvcmJpZGRlbiAoKSk7DQorDQorICBFWFBFQ1QgKHRl c3RfcjZfNjQgKCkpOw0KKw0KKyAgRVhQRUNUICh0ZXN0X3I2ICgpKTsNCisNCisgIEVYUEVDVCAo dGVzdF9yNl9mcHUgKCkpOw0KKw0KKyAgRVhQRUNUICh0ZXN0X3I2X2xsc2NfZHAgKCkpOw0KKw0K KyAgRVhQRUNUICh0ZXN0X3I2X2xsc2Nfd3AgKCkpOw0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvbWlwcy02NC1yNi5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLmZlNWQ2ZjU4MjUyDQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5hcmNoL21pcHMtNjQtcjYuZXhwDQpAQCAtMCwwICsxLDc0IEBADQorIyBDb3B5 cmlnaHQgKEMpIDIwMjMtMjAyNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisNCisj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5DQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorIw0KKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQ0KKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisjDQor IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQ0KKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyMjIyMjIyMjIyMjIyMj IyMjIE1JUFMgUmVsZWFzZSA2IHBhdGNoIHRlc3RzICMjIyMjIyMjIyMjIyMjIyMjIw0KKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMNCisNCisjIFNlbmQgJ3NpJyB0byBnZGIgdW50aWwgaW5mZXJpb3IgZXhpdHMuDQorcHJvYyBz dGVwaSB7fSB7DQorICAgIGdsb2JhbCBnZGJfcHJvbXB0DQorICAgIHNldCB0aW1lb3V0IFtnZXRf bGFyZ2VzdF90aW1lb3V0XQ0KKyAgICBzZXQgc3RhcnQgW3RpbWVzdGFtcF0NCisgICAgd2hpbGUg eyBbdGltZXN0YW1wXSAtICRzdGFydCA8IDMqJHRpbWVvdXQgfSB7DQorCWdkYl90ZXN0X211bHRp cGxlICJzdGVwaSIgIiIgew0KKwkgICAgLXJlICIuKmV4aXRlZCBub3JtYWxseS4qIiB7DQorCQlw YXNzICJzdWNjZXNzIg0KKwkJcmV0dXJuDQorCSAgICB9DQorCSAgICAtcmUgIi4qVGhlIHByb2dy YW0gaXMgbm90IGJlaW5nIHJ1bi4qIiB7DQorCQlmYWlsICJmYWlsdXJlIg0KKwkJcmV0dXJuDQor CSAgICB9DQorCSAgICAtcmUgIi4qQnJlYWtwb2ludC4qdGVzdF8uKiRnZGJfcHJvbXB0ICQiIHsN CisJICAgIH0NCisJICAgIC1yZSAiJGdkYl9wcm9tcHQuKiIgew0KKwkgICAgfQ0KKwl9DQorICAg IH0NCisgICAgZmFpbCAidGVzdCBmYWlsZWQiDQorICAgIHJldHVybg0KK30NCisNCityZXF1aXJl IHtpc3RhcmdldCAibWlwcyoifQ0KKw0KK3N0YW5kYXJkX3Rlc3RmaWxlDQorDQoraWYgeyBbcHJl cGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7dGVzdGZpbGV9ICR7c3JjZmls ZX0ge2RlYnVnIG5vd2FybmluZ3N9XSB9IHsNCisgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBwcmVw YXJlIg0KKyAgICByZXR1cm4NCit9DQorDQorIyBOYXRpdmUgbmVlZHMgcnVuLg0KK2lmIHsgIVty dW50b19tYWluXSB9IHsNCisgICAgdW50ZXN0ZWQgImNvdWxkbid0IHJ1biB0byBtYWluIg0KKyAg ICByZXR1cm4NCit9DQorDQorc2V0IHRlc3RzICIiDQorZm9yZWFjaCBuIFtsaXN0ICJyNl9icmFu Y2giICJyNl9mb3JiaWRkZW4iICJyNl82NCIgInI2IiAicjZfZnB1IiAicjZfbGxzY19kcCIgInI2 X2xsc2Nfd3AiXSB7DQorICAgIGxhcHBlbmQgdGVzdHMgInRlc3RfJG4iDQorfQ0KKw0KKyMgUHV0 IGJyZWFrcG9pbnQgb24gZWFjaCB0ZXN0LWZ1bmN0aW9uDQorZm9yZWFjaCBmdW5jICR0ZXN0cyB7 DQorICAgIGlmIHshW2dkYl9icmVha3BvaW50ICIkZnVuYyJdfSB7DQorCXVudGVzdGVkICJjb3Vs ZG4ndCBwdXQgYnJlYWtwb2ludCB0byAkZnVuYyINCisJcmV0dXJuDQorICAgIH0NCit9DQorDQor IyBTdGVwIHRocm91Z2ggdGhlIGJpbmFyeQ0KK3N0ZXBpDQotLSANCjIuMzQuMQ0K