From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by sourceware.org (Postfix) with ESMTPS id 8BEFF385DDF1 for ; Sun, 23 Jun 2024 12:58:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8BEFF385DDF1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8BEFF385DDF1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.198.163.19 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1719147488; cv=pass; b=OA7dYVumhRCo67ZTpnleC3TgiXnUwHI9SuP6NUmgj/ntLFyuPzMjNEjDbJKM7l8ZnzdWhA3RUGCw93mg1TwxwcqRLcGzF7vLilxugDsVRoTi8rXL/Fo00f6vxZNhw9x95aNmMxjnpIwTzKggGsUNcUlVk0iSlltmL8gDtoMzg/g= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1719147488; c=relaxed/simple; bh=N1HNU/qD16TJD9PFCAivSRSloFrGHeLtTQh+qr9Rluc=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Rrpeqj3mc5WrrZKw67jAMYXKPSYsHn1+hSC5rqZjMh+BW7glqNhI0i6p63QoXiWAKKuCgzpeIqxhL/cw8yL1gr6YfnBsELYJyd3vO4nCHNbL8wk08GERuyj3NPAepEBjooiEAwSioiLB5QbSg/14lTuuMlZeMtF1oUZNYIQWkW0= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719147486; x=1750683486; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=N1HNU/qD16TJD9PFCAivSRSloFrGHeLtTQh+qr9Rluc=; b=Sujn4U62YKAiyReYo7r2Vlrn3sxE/45Gul1/T0/rE6Va0wJoxvLVviSO pyoVnT55WaRcNFEfm4D2sXMAsI0rQJ1vwxSAAd03lL8pI2RAgPzWn1kiJ qgQLQcyvmh2WWN9Syvrg+N4Vp35Zz447GN6qecSTsLXFk5/ya+YbWsxpV zWQZ3wYNIPIIGSInDs5EjXg8DOYRbe4FKwsQdMrEMQZ6+cW0aRWJAHdw+ BNHCRz4qlqUq0K5CLnGC5t8b0GlEujuTzCOt2gnFIZt/NX8ib8YwSfckV I4VNGsEzgvNWcWbufCC4tf598BXgT6NVKR57OgglPxfe1wP84AxXiC+bN A==; X-CSE-ConnectionGUID: CKF1IFMMSHmXgeO7EyUN1w== X-CSE-MsgGUID: m3Uz7hUsRA2XcfQZfoP59w== X-IronPort-AV: E=McAfee;i="6700,10204,11112"; a="15881188" X-IronPort-AV: E=Sophos;i="6.08,260,1712646000"; d="scan'208";a="15881188" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jun 2024 05:58:05 -0700 X-CSE-ConnectionGUID: nMlRaaXwRsu8a8d0YfT4Dw== X-CSE-MsgGUID: TqEDxUJySv6DakjTO3Zbxg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,260,1712646000"; d="scan'208";a="42937188" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa010.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 23 Jun 2024 05:58:04 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 23 Jun 2024 05:58:03 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 23 Jun 2024 05:58:03 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Sun, 23 Jun 2024 05:58:03 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Sun, 23 Jun 2024 05:58:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Czudxwh7Pd5L2t/ZT3S/jvaFGPsFYPPRwD2uaVFwEJ5CEV6OHq50M+u0clPiOiUDeY5j3ERlayg7NnWJ2A3R2PJhwuL7nWKNpMzjv4NhdyPaJESzy22SzodYj0hYAKSKDCuNUAzNYkNZOq96OL0Lb7gb5DjW8vms1gLrDNZcKJQtXXo1Ow3WVno7oHjRc/UD6ZTQWwV9jYmvFxtcv7NkM65qW647voCb7GKZVhcKynSWDidyo1I5pYEXoU3PBh0QTHI2Tk2LWcq0xvUAy4/phoCmnx+RJE2jtXxQy6aBWSrW7Ckv0fkHQtoMZok6ISerXVs53vUQ25LoucLgLZ4s5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N1HNU/qD16TJD9PFCAivSRSloFrGHeLtTQh+qr9Rluc=; b=H8gCngH4pzjV//S1aXjaqQj0Aqlga5Xd84vH7NKKCJKxbhZeYViDJ7mY3VRLXOUKCbax6Vf2hRsiCPq8Y0yaLKDGSvFm9WJMNPl0N0mffSH9o5g7Ah9GtOjut+v4/Jq7LY6LhzS3Qj9LJQe+jDVANa60cpWOjcYdxaJpfOJpkVR4uBdExgVbKx/ZSWAIZm63YlSOxxuLgn6hEHtqX8JJU25OZEyKU1HjIyADl8SUH/X/T+jEVmgJ4hwYdEg3K8eL30PA3MDW0qMuBLhqqoQntZpxACS36ILdxQpdqiJbBQcTyPvGJbAunjxCqAzJBjpw0wyjEx4Xsij+URhF9P5sxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by DS0PR11MB8687.namprd11.prod.outlook.com (2603:10b6:8:1be::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.26; Sun, 23 Jun 2024 12:57:55 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59%3]) with mapi id 15.20.7698.025; Sun, 23 Jun 2024 12:57:54 +0000 From: "Li, Pan2" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "kito.cheng@gmail.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH v1] Ifcvt: Add cond tree reconcile for truncated .SAT_SUB Thread-Topic: [PATCH v1] Ifcvt: Add cond tree reconcile for truncated .SAT_SUB Thread-Index: AQHaw46naxvVnyK9tUK7iqE6FaWYKrHRyiqAgAAcEHCAAA1xAIAAVYUwgAF9TYCAAYvr0A== Date: Sun, 23 Jun 2024 12:57:54 +0000 Message-ID: References: <20240621035252.742099-1-pan2.li@intel.com> In-Reply-To: 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|DS0PR11MB8687:EE_ x-ms-office365-filtering-correlation-id: 0b4fa6a2-c322-41d3-bff5-08dc93841932 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|376011|1800799021|366013|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?ZEVrbXpvaU8wY0VrQms1VVg4RmlQSURNQ2dmYWYwSW5DWVdOTzF1cm40aTJG?= =?utf-8?B?NXJWcTEwNEZaUU1KcWwxL0h3WjRxR0d6UVNBbDFpemlodWZhNWpDTksvd3Fa?= =?utf-8?B?Q1c4aDlJWWcwUGE3bitxSWRkTUw1ckxFRGVVUk02NHlQUE45THFMZXVWUytO?= =?utf-8?B?WlV4N0tpdUhNUkZIN2RKcThNRitKWnZpOFRRRXVxYjEzREhHY3N5dEkvbUtL?= =?utf-8?B?Qy82KzNpZFIyRHBRRmYvOTlhQ3gyWGZtbHEveVFrcVpSenhja2ozNzZWbnZu?= =?utf-8?B?Z0RiVDRGRmRaRnR1NnVydFlNWjI3SGkyTXpPSWwwTWRQNy9haDlhUlRZQnhv?= =?utf-8?B?dEhWWkgyNkR0azZOWkJJRE1oWVdib3NEenhwMGtaOXV0ZUQ1cFk1d080Q1NR?= =?utf-8?B?RUwwYlVBaGNBdkw5c0JydUhsZDBMSXNSaWVkMDlONGowTDNDTVo2NkRSWkww?= =?utf-8?B?TVJiK2QwVjM1dzlZMUplcW1IWkxiZjhDd2xKQWRBT1Y3aEt2UlN0U2FXOHNU?= =?utf-8?B?SDk1cGVETm9GL21UMzBrNVJCYXJqUitmclN4bDN0R0ZOaG1DTVBHaitQaDND?= =?utf-8?B?b05RbUtXVE9PZW4zcm1wMEphQVJpU3BweTlpRVdiUTZIWFpEbFBSKzdIc0kr?= =?utf-8?B?OWYwZkZrbC9uMFR3b1p1Y08zd3dtZ3dLakoydTBWL3ZYVkdQSFBRTGdmb0VU?= =?utf-8?B?YTR2QklkMlFjOElnTFhRay90OFZIQ2RXcWovT2Z6MTk0cDdaU3A2T1RRTkp4?= =?utf-8?B?eTc5U3RkQXRxejQzOEJZUnV1dkFDTDVCWkNTN3pJdkxGYVNxL1F0T2x3UjhJ?= =?utf-8?B?UVlYcWJKNXVWNlpOdEhBNVdTWE9RejhHbUYvOGlXYVZwekpONFdFNlpiQzkr?= =?utf-8?B?bTJhYkxwOUttYy9iSGdGeGdHbFVPZ3o4NWNsbnd0eWhBczV0Y3M2RzZRTWp4?= =?utf-8?B?Qmh5TTlFdGdvT3ovZ29KYWowemZoTVRxUTVRbHRMNFdaY1N4QVUxWG1GMysx?= =?utf-8?B?dEdoK0cxQ0p3dWdsSzBJUDBxbTM2d0krQWd5M1VxakVSUThmWnBFMDNWWERZ?= =?utf-8?B?R3ZpNlExaDdsdFZlbDlMc3VpRm5rWitONGpRSllyak9yTjkvVFBxUjcyaFVu?= =?utf-8?B?K0R6SmtDTHVMMzF6NzRMbnpJeDYxbkcwaUNsNURCNmFCU3grcDkyZTYzc25I?= =?utf-8?B?MXpJS0krYlMxcnNMM2wvOVlBcUo5VWJENHBoRnF5WnROdmpmUGZ5UjZhM3BF?= =?utf-8?B?QkNxMlQ1cFFkSXdUcDRURkh3U2x0VUxkM1dseVNhZHJaN3I3ZFhFVkluOWhx?= =?utf-8?B?WnBnL2lnYXBaUXNSdTZhSXgrRVlEcWFyYldLcTNFN3FLYkFBdXgzQVphaFhC?= =?utf-8?B?SXdBbmZjVVBabGlvNEFKaFhNYVZSczYvMCt4eUdXdVVhR01DVy9ISSt5S3A0?= =?utf-8?B?RG03a25tcnZOS0U3b3BZdTJTWFdZcFNoNjZXcVJ1ZWtvbWNraFNUVkp0YzR3?= =?utf-8?B?bEkvQTdBZnJ2UmJuTmIxem5ET2tyeVpDV3hPWFcvU1VVdW9oNnUxMzhmL3Fv?= =?utf-8?B?d3dic1lPa1lkc3dTd2hNdFVFbjc3Z2hTWXdyNXVxQk5ZUkZLRDI4Z0d0bUtU?= =?utf-8?B?Z051Y0Z5STR2QlNhb0d2WGNtaDhEbGFNaW1Cb1NJSjd3cFV0U09IWEVDNE5l?= =?utf-8?B?dWtoRU1OeDJmY3RHSDJNYWkrbGtMSG0vTVRndHFLTVhITEtJME9GS3B5T005?= =?utf-8?B?RFBqMlhOMVpsYU9nYzh2N1A3VHlIT2U2OHdyTmtBcC80dmo3Z0xSSHJLbUVz?= =?utf-8?Q?toW2ifyXZ4ZSFR2B1YqAON7woaSvcUxwyoT8k=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(376011)(1800799021)(366013)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bDU3K2Z4cnNjNWprbzVjVFo1bDEzQlNsNi8rRUV6Qm9tTW1FOG82NTR0LzE3?= =?utf-8?B?NTdsQmRpZDhFOXVxcHY5TFJLQWpUdzBjMHFpbzkxK1NtLzRKaUdjVjRwQUZP?= =?utf-8?B?RHp0andLWWNNNmY2bEVkMXNsd1hOY3pUWTQ1cGFwRHdsN05YLzRBOW9hU2hp?= =?utf-8?B?NzIrL1ExNzNoQ0dRVVhTRGpldkFDMC9yREhSaDdodVpoSkM1bElLZGtKRWdq?= =?utf-8?B?WVRtWnYwWjJlM3JWbHk5bU1iWkxUWWw3STQwRlZ3RnZxOUFHa0NKQk1aMjN5?= =?utf-8?B?aC9yY2lMMzc5RlJFekxkZ2VML0xiYXhVZWJOMEQ2dXVYblRlazA1R3BNT2Mw?= =?utf-8?B?bDZhREc3cVFUWG5HdzJmbUxEV0QyNytDTWZneHh2elpiMkNwSHNabjBiNGZO?= =?utf-8?B?aDVwaHhKU2V3S3JjbTFVaS9OTHNsakwwRDFmVzdrR0I3T3R4ODZqMkFHT3Fl?= =?utf-8?B?MTl6ZVQ4bHVRWUdVanJwT2E2ckIzVm95MDNrSG11ZXhXNm5YVTA5ZldHaHVQ?= =?utf-8?B?ZVNrZDdSR2N2VlRCNk9oNlUwSHJ6dzRqQnNqRUUxTXRMdFpFRGd5d3AwTWx0?= =?utf-8?B?Smo2M0NycFVwd3E2ZDZRUFdwNkE4TWZlQ214VHZkdlJ5cWdzcnhETzlYMEt0?= =?utf-8?B?T1BtWjhkU2dyMHVncTNRc3lTSDAzdytWQUVFeE1jRmVTaVRLSWJnWUlWNHNn?= =?utf-8?B?TnpKTG1HMzNHWGRtS0hzNjlhT0paL1RwZnJIbHRmQkF5dTF0RXZZM0JQNjhu?= =?utf-8?B?TDB4UjRKZjFtZysvemEvQTdaVTR2SHJVSmx2UTRaMVVZYVpqTThjWGVkUzQw?= =?utf-8?B?aHRsUkFOK25DeXozU0kxVTBaZGFkKy9QRld3Y2lMT2FVUmo0ZGd1SEduQ3Vq?= =?utf-8?B?TVByZWFvd25OalYvK0pJREZhbFQ0eUhoZXQxOEFJN0FuZDZIQS9pRW9wOWx2?= =?utf-8?B?SVFTYjVCNC90dnFSTE1TMFowK21aTHVVT2VTMU81V09ndkRVYmRSSm52MDVx?= =?utf-8?B?ekZPYUs1OUdJMDdtdTVUZUozSThYa0dXRVlabUhrOXl4WkZNWEgrcHZXbmlh?= =?utf-8?B?alFIdEdZTCtsZEJiUXJmOGtwUUZOM2RoY3pEREpZSndia3RpRmNrOEJxNDRu?= =?utf-8?B?eEFWRUg0VzJFN0pWREJuTnNHOGJ4dEdhWm9DSDZ1aEVRWUFPTTJ6MWpIZ250?= =?utf-8?B?VWdyZW9rdWVoZWVTUmhkdSsralIvQXRTcGRIOUNjbmg1dHo1VXhyU1p1LzlO?= =?utf-8?B?Qyt0Zy9sQ091d3lQMHNraWtXbEhCYnh1WUxYRm9MT0xnV3JFZDYxanZjVTJ1?= =?utf-8?B?WWx3MzBvQk15UFN2aDRubjA5VmpoQ3NkSUMybnM3bVYzbjVGZmxSNnNqUUlk?= =?utf-8?B?N1VKakNlVEorTmowQUZ6aGZSOXVMdFZmR1ZNNW9mRTZoRmdPSFdHTktPV0or?= =?utf-8?B?ODkwdFJEaHV4Y3NLOUZXNnZUWjZmUGNXVVhLdTVhOXdnQXF3cTg1bHFnUC9X?= =?utf-8?B?SlY5NWNvM0dxTXhuNWYwdmxwL01jNjU4OEl5dm03NFI0ZzZ4UzdmZllUZTk2?= =?utf-8?B?MCtsZzVrbExwVmhXSUVyNU1DdklvZW01ZDNzdGVsZTBWWGFWREFhdmJ3eThn?= =?utf-8?B?ZjkzbFd1N2plTFdidncyVktlbEJkWjV2MC9OdFJYZk9MVEQ0bmFJQXUzMzJB?= =?utf-8?B?R29ibldOVmJ4Wk5kaFhHYzFsQm83U3lhSENhSVg0VlJXZkw4L3UxdDdZU1Mz?= =?utf-8?B?MU9Dc0RXU1luV2F0cWlEcHRPQ2lwMHVsMzlVT1FNLzRlbkhEeDd1NExBWGNX?= =?utf-8?B?K01HZ21FbzZBYXFwQ0NHcnN5SUduNFFwaTIxMXNrMkhqanRPUDNiMlFBM1F4?= =?utf-8?B?ZnlqMzIrclY1WU9nZHVUMWFZeEJZQndlT0diSCtKdE43YklCb2QwNlI1RFJQ?= =?utf-8?B?V3RIZTY0TGZ1REM2YStKNmcrSFdhZXpNZUFmd1F0ejdGd2RKMDQ4WVpnM3ZH?= =?utf-8?B?czJGNHJtQTZ5aFhiN3NsZEdUVVRCWXd2ZFpqeURQY2g1Rm1jazdVQStMSVpr?= =?utf-8?B?eEE1YjFxR3phV1ppWFFWQ1lCV3ZNWm5EWDc3dmt5cEVRZTR4MnZrdjZKc2xv?= =?utf-8?B?VFZsdFQzUkJzd1Y0TlQra1BXQmxTdUpIL25YNmJhazdlQjlacGN1SjBtVWNh?= =?utf-8?Q?4/xDerpDYk0Z/aZmUfyzUGM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b4fa6a2-c322-41d3-bff5-08dc93841932 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2024 12:57:54.7230 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wcEJtt8AS4Dr6jnvxQKeRSQqC2KVng5S+j2mHdCPiBGbWtgKfmWG4tUrsG6zZH/lMTpprh2UegbPEXLgCu+xvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB8687 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP,WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiBZb3UgbmVlZCB0byByZWZhY3RvciB0aGlzIHRvIGFkZCB0byB0aGUgc3RtdHMgcGF0dGVybiBk ZWYgc2VxdWVuY2UNCj4gIChsb29rIGZvciBhcHBlbmRfcGF0dGVybl9kZWZfc2VxIHVzZXMgZm9y IGV4YW1wbGUpDQoNClRoYW5rcyBSaWNoYXJkLCByZWFsbHkgc2F2ZSBteSBkYXksIHdpbGwgaGF2 ZSBhIHRyeSBpbiB2Mi4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+IA0KU2VudDogU2F0 dXJkYXksIEp1bmUgMjIsIDIwMjQgOToxOSBQTQ0KVG86IExpLCBQYW4yIDxwYW4yLmxpQGludGVs LmNvbT4NCkNjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsganV6aGUuemhvbmdAcml2YWkuYWk7 IGtpdG8uY2hlbmdAZ21haWwuY29tOyBqZWZmcmV5YWxhd0BnbWFpbC5jb207IHJkYXBwLmdjY0Bn bWFpbC5jb20NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIElmY3Z0OiBBZGQgY29uZCB0cmVlIHJl Y29uY2lsZSBmb3IgdHJ1bmNhdGVkIC5TQVRfU1VCDQoNCk9uIEZyaSwgSnVuIDIxLCAyMDI0IGF0 IDQ6NDXigK9QTSBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb20+IHdyb3RlOg0KPg0KPiBUaGFu a3MgUmljaGFyZCBmb3Igc3VnZ2VzdGlvbiwgdHJpZWQgdGhlIChjb252ZXJ0PyB3aXRoIGJlbG93 IGdpbXBsZSBzdG10IGJ1dCBnb3QgYSBtaXNzIGRlZiBpY2UuDQo+IFRvIGRvdWJsZSBjb25maXJt LCB0aGUgKnR5cGVfb3V0IHNob3VsZCBiZSB0aGUgdmVjdG9yIHR5cGUgb2YgbGhzLCBhbmQgd2Ug b25seSBuZWVkIHRvIGJ1aWxkDQo+IG9uZSBjdnQgc3RtdCBmcm9tIGl0eXBlIHRvIG90eXBlIGhl cmUuIE9yIGp1c3QgcmV0dXJuIHRoZSBjYWxsIGRpcmVjdGx5IGFuZCBzZXQgdGhlIHR5cGVfb3V0 IHRvIHRoZSB2X290eXBlPw0KPg0KPiBzdGF0aWMgZ2ltcGxlICoNCj4gdmVjdF9yZWNvZ19idWls ZF9iaW5hcnlfZ2ltcGxlX3N0bXQgKHZlY19pbmZvICp2aW5mbywgZ2ltcGxlICpzdG10LA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfZm4gZm4sIHRyZWUg KnR5cGVfb3V0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZSBs aHMsIHRyZWUgb3BfMCwgdHJlZSBvcF8xKQ0KPiB7DQo+ICAgdHJlZSBpdHlwZSA9IFRSRUVfVFlQ RSAob3BfMCk7DQo+ICAgdHJlZSBvdHlwZSA9IFRSRUVfVFlQRSAobGhzKTsNCj4gICB0cmVlIHZf aXR5cGUgPSBnZXRfdmVjdHlwZV9mb3Jfc2NhbGFyX3R5cGUgKHZpbmZvLCBpdHlwZSk7DQo+ICAg dHJlZSB2X290eXBlID0gZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlICh2aW5mbywgb3R5cGUp Ow0KPg0KPiAgIGlmICh2X2l0eXBlICE9IE5VTExfVFJFRSAmJiB2X290eXBlICE9IE5VTExfVFJF RQ0KPiAgICAgJiYgZGlyZWN0X2ludGVybmFsX2ZuX3N1cHBvcnRlZF9wIChmbiwgdl9pdHlwZSwg T1BUSU1JWkVfRk9SX0JPVEgpKQ0KPiAgICAgew0KPiAgICAgICBnY2FsbCAqY2FsbCA9IGdpbXBs ZV9idWlsZF9jYWxsX2ludGVybmFsIChmbiwgMiwgb3BfMCwgb3BfMSk7DQo+ICAgICAgIHRyZWUg aXR5cGVfc3NhID0gdmVjdF9yZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBlLCBOVUxMKTsNCj4NCj4g ICAgICAgZ2ltcGxlX2NhbGxfc2V0X2xocyAoY2FsbCwgaXR5cGVfc3NhKTsNCj4gICAgICAgZ2lt cGxlX2NhbGxfc2V0X25vdGhyb3cgKGNhbGwsIC8qIG5vdGhyb3dfcCAqLyBmYWxzZSk7DQo+ICAg ICAgIGdpbXBsZV9zZXRfbG9jYXRpb24gKGNhbGwsIGdpbXBsZV9sb2NhdGlvbiAoc3RtdCkpOw0K Pg0KPiAgICAgICAqdHlwZV9vdXQgPSB2X290eXBlOw0KPiAgICAgICBnaW1wbGUgKm5ld19zdG10 ID0gY2FsbDsNCj4NCj4gICAgICAgaWYgKGl0eXBlICE9IG90eXBlKQ0KPiAgICAgICAgIHsNCj4g ICAgICAgICAgIHRyZWUgb3R5cGVfc3NhID0gdmVjdF9yZWNvZ190ZW1wX3NzYV92YXIgKG90eXBl LCBOVUxMKTsNCj4gICAgICAgICAgIG5ld19zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAob3R5 cGVfc3NhLCBDT05WRVJUX0VYUFIsIGl0eXBlX3NzYSk7DQo+ICAgICAgICAgfQ0KPg0KPiAgICAg ICByZXR1cm4gbmV3X3N0bXQ7DQoNCllvdSBuZWVkIHRvIHJlZmFjdG9yIHRoaXMgdG8gYWRkIHRv IHRoZSBzdG10cyBwYXR0ZXJuIGRlZiBzZXF1ZW5jZQ0KKGxvb2sgZm9yIGFwcGVuZF9wYXR0ZXJu X2RlZl9zZXEgdXNlcyBmb3IgZXhhbXBsZSkNCg0KPiAgICAgfQ0KPg0KPiAgIHJldHVybiBOVUxM Ow0KPiB9DQo+DQo+IC0tLS0tY3V0IHRoZSBpY2UtLS0NCj4NCj4gemlwLnRlc3QuYzogSW4gZnVu Y3Rpb24g4oCYdGVzdOKAmToNCj4gemlwLnRlc3QuYzo0OjY6IGVycm9yOiBtaXNzaW5nIGRlZmlu aXRpb24NCj4gICAgIDQgfCB2b2lkIHRlc3QgKHVpbnQxNl90ICp4LCB1bnNpZ25lZCBiLCB1bnNp Z25lZCBuKQ0KPiAgICAgICB8ICAgICAgXn5+fg0KPiBmb3IgU1NBX05BTUU6IHBhdHRfNDAgaW4g c3RhdGVtZW50Og0KPiB2ZWN0X2NzdF9fMTUxID0gW3ZlY19kdXBsaWNhdGVfZXhwcl0gcGF0dF80 MDsNCj4gZHVyaW5nIEdJTVBMRSBwYXNzOiB2ZWN0DQo+IGR1bXAgZmlsZTogemlwLnRlc3QuYy4x ODB0LnZlY3QNCj4gemlwLnRlc3QuYzo0OjY6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiB2ZXJp Znlfc3NhIGZhaWxlZA0KPiAweDFkZTA4NjAgdmVyaWZ5X3NzYShib29sLCBib29sKQ0KPiAgICAg ICAgIC9ob21lL3BsaS9nY2MvNTU1L3Jpc2N2LWdudS10b29sY2hhaW4vZ2NjL19fUklTQ1ZfQlVJ TERfXy8uLi9nY2MvdHJlZS1zc2EuY2M6MTIwMw0KPiAweDE5MTlmNjkgZXhlY3V0ZV9mdW5jdGlv bl90b2RvDQo+ICAgICAgICAgL2hvbWUvcGxpL2djYy81NTUvcmlzY3YtZ251LXRvb2xjaGFpbi9n Y2MvX19SSVNDVl9CVUlMRF9fLy4uL2djYy9wYXNzZXMuY2M6MjA5Ng0KPiAweDE5MThiNDYgZG9f cGVyX2Z1bmN0aW9uDQo+ICAgICAgICAgL2hvbWUvcGxpL2djYy81NTUvcmlzY3YtZ251LXRvb2xj aGFpbi9nY2MvX19SSVNDVl9CVUlMRF9fLy4uL2djYy9wYXNzZXMuY2M6MTY4OA0KPiAweDE5MWEx MTYgZXhlY3V0ZV90b2RvDQo+DQo+IFBhbg0KPg0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+ DQo+IFNlbnQ6IEZyaWRheSwgSnVuZSAyMSwgMjAyNCA1OjI5IFBNDQo+IFRvOiBMaSwgUGFuMiA8 cGFuMi5saUBpbnRlbC5jb20+DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsganV6aGUu emhvbmdAcml2YWkuYWk7IGtpdG8uY2hlbmdAZ21haWwuY29tOyBqZWZmcmV5YWxhd0BnbWFpbC5j b207IHJkYXBwLmdjY0BnbWFpbC5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MV0gSWZjdnQ6 IEFkZCBjb25kIHRyZWUgcmVjb25jaWxlIGZvciB0cnVuY2F0ZWQgLlNBVF9TVUINCj4NCj4gT24g RnJpLCBKdW4gMjEsIDIwMjQgYXQgMTA6NTDigK9BTSBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5j b20+IHdyb3RlOg0KPiA+DQo+ID4gVGhhbmtzIFJpY2hhcmQgZm9yIGNvbW1lbnRzLg0KPiA+DQo+ ID4gPiB0byBtYXRjaCB0aGlzIGJ5IGNoYW5naW5nIGl0IHRvDQo+ID4NCj4gPiA+IC8qIFVuc2ln bmVkIHNhdHVyYXRpb24gc3ViLCBjYXNlIDIgKGJyYW5jaCB3aXRoIGdlKToNCj4gPiA+ICAgIFNB VF9VX1NVQiA9IFggPj0gWSA/IFggLSBZIDogMC4gICovDQo+ID4gPiAobWF0Y2ggKHVuc2lnbmVk X2ludGVnZXJfc2F0X3N1YiBAMCBAMSkNCj4gPiA+IChjb25kXiAoZ2UgQDAgQDEpIChjb252ZXJ0 PyAobWludXMgQDAgQDEpKSBpbnRlZ2VyX3plcm9wKQ0KPiA+ID4gIChpZiAoSU5URUdSQUxfVFlQ RV9QICh0eXBlKSAmJiBUWVBFX1VOU0lHTkVEICh0eXBlKQ0KPiA+ID4gICAgICAgJiYgdHlwZXNf bWF0Y2ggKHR5cGUsIEAwLCBAMSkpKSkNCj4gPg0KPiA+IERvIHdlIG5lZWQgYW5vdGhlciBuYW1l IGZvciB0aGlzIG1hdGNoaW5nID8gQWRkIChjb252ZXJ0PyBoZXJlIG1heSBjaGFuZ2UgdGhlIHNl bWF0aWNzIG9mIC5TQVRfU1VCLg0KPiA+IFdoZW4gd2UgY2FsbCBnaW1wbGVfdW5zaWduZWRfaW50 ZWdlcl9zYXRfc3ViIChsaHMsIG9wcywgTlVMTCksIHRoZSBjb252ZXJ0ZWQgdmFsdWUgbWF5IGJl IHJldHVybmVkIGRpZmZlcmVudA0KPiA+IHRvIHRoZSAobWludXMgQDAgQDEpLiBQbGVhc2UgY29y cmVjdCBtZSBpZiBteSB1bmRlcnN0YW5kaW5nIGlzIHdyb25nLg0KPg0KPiBJIHRoaW5rIGdpbXBs ZV91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgKGxocywgLi4uKSBzaW1wbHkgbWF0Y2hlcw0KPiAo dHlwZW9mIExIUykuU0FUX1NVQiAob3BzWzBdLCBvcHNbMV0pIG5vdywgSSBkb24ndCB0aGluayBp dCdzIG5lY2Vzc2FyeSB0bw0KPiBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdHlwZWYgTEhTIGFuZCB0 eXBlb2Ygb3BzWzBdIGFyZSBlcXVhbCBzcGVjaWFsbHk/DQo+DQo+ID4gPiBhbmQgd2hlbiB1c2lu ZyB0aGUgZ2ltcGxlX21hdGNoXyogZnVuY3Rpb24gbWFrZSBzdXJlIHRvIGNvbnNpZGVyDQo+ID4g PiB0aGF0IHRoZSAuU0FUX1NVQiAoQDAsIEAxKSBpcyBjb252ZXJ0ZWQgdG8gdGhlIHR5cGUgb2Yg dGhlIFNTQSBuYW1lDQo+ID4gPiB3ZSBtYXRjaGVkPw0KPiA+DQo+ID4gVGhpcyBtYXkgaGF2ZSBw cm9ibGVtIGZvciB2ZWN0b3IgcGFydCBJIGd1ZXNzLCByZXF1aXJlIHNvbWUgYWRkaXRpb25hbCBj aGFuZ2UgZnJvbSB2ZWN0b3JpemVfY29udmVydCB3aGVuDQo+ID4gSSB0cnkgdG8gZG8gdGhhdCBp biBwcmV2aW91cy4gTGV0IG1lIGRvdWJsZSBjaGVjayBhYm91dCBpdCwgYW5kIGtlZXAgeW91IHBv c3RlZC4NCj4NCj4gWW91IGFyZSB1c2luZyBnaW1wbGVfdW5zaWduZWRfaW50ZWdlcl9zYXRfc3Vi IGZyb20gcGF0dGVybiByZWNvZ25pdGlvbiwgdGhlDQo+IHRoaW5nIHRvIGRvIGlzIHNpbXBseSB0 byBhZGQgYSBjb252ZXJzaW9uIHN0bXQgdG8gdGhlIHBhdHRlcm4gc2VxdWVuY2UgaW4gY2FzZQ0K PiB0aGUgdHlwZXMgZGlmZmVyPw0KPg0KPiBCdXQgbWF5YmUgSSdtIG1pc3Npbmcgc29tZXRoaW5n Lg0KPg0KPiBSaWNoYXJkLg0KPg0KPiA+IFBhbg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFp bC5jb20+DQo+ID4gU2VudDogRnJpZGF5LCBKdW5lIDIxLCAyMDI0IDM6MDAgUE0NCj4gPiBUbzog TGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0KPiA+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZzsganV6aGUuemhvbmdAcml2YWkuYWk7IGtpdG8uY2hlbmdAZ21haWwuY29tOyBqZWZmcmV5 YWxhd0BnbWFpbC5jb207IHJkYXBwLmdjY0BnbWFpbC5jb20NCj4gPiBTdWJqZWN0OiBSZTogW1BB VENIIHYxXSBJZmN2dDogQWRkIGNvbmQgdHJlZSByZWNvbmNpbGUgZm9yIHRydW5jYXRlZCAuU0FU X1NVQg0KPiA+DQo+ID4gT24gRnJpLCBKdW4gMjEsIDIwMjQgYXQgNTo1M+KAr0FNIDxwYW4yLmxp QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gRnJvbTogUGFuIExpIDxwYW4yLmxpQGlu dGVsLmNvbT4NCj4gPiA+DQo+ID4gPiBUaGUgemlwIGJlbmNobWFyayBvZiBjb3JlbWFyay1wcm8g aGF2ZSBvbmUgU0FUX1NVQiBsaWtlIHBhdHRlcm4gYnV0DQo+ID4gPiB0cnVuY2F0ZWQgYXMgYmVs b3c6DQo+ID4gPg0KPiA+ID4gdm9pZCB0ZXN0ICh1aW50MTZfdCAqeCwgdW5zaWduZWQgYiwgdW5z aWduZWQgbikNCj4gPiA+IHsNCj4gPiA+ICAgdW5zaWduZWQgYSA9IDA7DQo+ID4gPiAgIHJlZ2lz dGVyIHVpbnQxNl90ICpwID0geDsNCj4gPiA+DQo+ID4gPiAgIGRvIHsNCj4gPiA+ICAgICBhID0g Ki0tcDsNCj4gPiA+ICAgICAqcCA9ICh1aW50MTZfdCkoYSA+PSBiID8gYSAtIGIgOiAwKTsgLy8g VHJ1bmNhdGUgdGhlIHJlc3VsdCBvZiBTQVRfU1VCDQo+ID4gPiAgIH0gd2hpbGUgKC0tbik7DQo+ ID4gPiB9DQo+ID4gPg0KPiA+ID4gSXQgd2lsbCBoYXZlIGdpbXBsZSBhZnRlciBpZmN2dCBwYXNz LCAgaXQgY2Fubm90IGhpdCBhbnkgcGF0dGVybiBvZg0KPiA+ID4gU0FUX1NVQiBhbmQgdGhlbiBj YW5ub3QgdmVjdG9yaXplIHRvIFNBVF9TVUIuDQo+ID4gPg0KPiA+ID4gXzIgPSBhXzExIC0gYl8x MihEKTsNCj4gPiA+IGlmdG1wLjBfMTMgPSAoc2hvcnQgdW5zaWduZWQgaW50KSBfMjsNCj4gPiA+ IF8xOCA9IGFfMTEgPj0gYl8xMihEKTsNCj4gPiA+IGlmdG1wLjBfNSA9IF8xOCA/IGlmdG1wLjBf MTMgOiAwOw0KPiA+ID4NCj4gPiA+IFRoaXMgcGF0Y2ggd291bGQgbGlrZSB0byBkbyBzb21lIHJl Y29uY2lsZSBmb3IgYWJvdmUgcGF0dGVybiB0byBtYXRjaA0KPiA+ID4gdGhlIFNBVF9TVUIgcGF0 dGVybi4gIFRoZW4gdGhlIHVuZGVybHlpbmcgdmVjdCBwYXNzIGlzIGFibGUgdG8gdmVjdG9yaXpl DQo+ID4gPiB0aGUgU0FUX1NVQi4NCj4gPg0KPiA+IEhtbS4gIEkgd2FzIHRoaW5raW5nIG9mIGFs bG93aW5nDQo+ID4NCj4gPiAvKiBVbnNpZ25lZCBzYXR1cmF0aW9uIHN1YiwgY2FzZSAyIChicmFu Y2ggd2l0aCBnZSk6DQo+ID4gICAgU0FUX1VfU1VCID0gWCA+PSBZID8gWCAtIFkgOiAwLiAgKi8N Cj4gPiAobWF0Y2ggKHVuc2lnbmVkX2ludGVnZXJfc2F0X3N1YiBAMCBAMSkNCj4gPiAgKGNvbmRe IChnZSBAMCBAMSkgKG1pbnVzIEAwIEAxKSBpbnRlZ2VyX3plcm9wKQ0KPiA+ICAoaWYgKElOVEVH UkFMX1RZUEVfUCAodHlwZSkgJiYgVFlQRV9VTlNJR05FRCAodHlwZSkNCj4gPiAgICAgICAmJiB0 eXBlc19tYXRjaCAodHlwZSwgQDAsIEAxKSkpKQ0KPiA+DQo+ID4gdG8gbWF0Y2ggdGhpcyBieSBj aGFuZ2luZyBpdCB0bw0KPiA+DQo+ID4gLyogVW5zaWduZWQgc2F0dXJhdGlvbiBzdWIsIGNhc2Ug MiAoYnJhbmNoIHdpdGggZ2UpOg0KPiA+ICAgIFNBVF9VX1NVQiA9IFggPj0gWSA/IFggLSBZIDog MC4gICovDQo+ID4gKG1hdGNoICh1bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgQDAgQDEpDQo+ID4g IChjb25kXiAoZ2UgQDAgQDEpIChjb252ZXJ0PyAobWludXMgQDAgQDEpKSBpbnRlZ2VyX3plcm9w KQ0KPiA+ICAoaWYgKElOVEVHUkFMX1RZUEVfUCAodHlwZSkgJiYgVFlQRV9VTlNJR05FRCAodHlw ZSkNCj4gPiAgICAgICAmJiB0eXBlc19tYXRjaCAodHlwZSwgQDAsIEAxKSkpKQ0KPiA+DQo+ID4g YW5kIHdoZW4gdXNpbmcgdGhlIGdpbXBsZV9tYXRjaF8qIGZ1bmN0aW9uIG1ha2Ugc3VyZSB0byBj b25zaWRlcg0KPiA+IHRoYXQgdGhlIC5TQVRfU1VCIChAMCwgQDEpIGlzIGNvbnZlcnRlZCB0byB0 aGUgdHlwZSBvZiB0aGUgU1NBIG5hbWUNCj4gPiB3ZSBtYXRjaGVkPw0KPiA+DQo+ID4gUmljaGFy ZC4NCj4gPg0KPiA+ID4gXzIgPSBhXzExIC0gYl8xMihEKTsNCj4gPiA+IF8xOCA9IGFfMTEgPj0g Yl8xMihEKTsNCj4gPiA+IF9wYXR0bXAgPSBfMTggPyBfMiA6IDA7IC8vIC5TQVRfU1VCIHBhdHRl cm4NCj4gPiA+IGlmdG1wLjBfMTMgPSAoc2hvcnQgdW5zaWduZWQgaW50KSBfcGF0dG1wOw0KPiA+ ID4gaWZ0bXAuMF81ID0gaWZ0bXAuMF8xMzsNCj4gPiA+DQo+ID4gPiBUaGUgYmVsb3cgdGVzdHMg YXJlIHJ1bm5pbmcgZm9yIHRoaXMgcGF0Y2guDQo+ID4gPiAxLiBUaGUgcnY2NGdjdiBmdWxseSBy ZWdyZXNzaW9uIHRlc3RzLg0KPiA+ID4gMi4gVGhlIHJ2NjRnY3YgYnVpbGQgd2l0aCBnbGliYy4N Cj4gPiA+IDMuIFRoZSB4ODYgYm9vdHN0cmFwIHRlc3RzLg0KPiA+ID4gNC4gVGhlIHg4NiBmdWxs eSByZWdyZXNzaW9uIHRlc3RzLg0KPiA+ID4NCj4gPiA+IGdjYy9DaGFuZ2VMb2c6DQo+ID4gPg0K PiA+ID4gICAgICAgICAqIG1hdGNoLnBkOiBBZGQgbmV3IG1hdGNoIGZvciB0cnVuYXRlZCB1bnNp Z25lZCBzYXRfc3ViLg0KPiA+ID4gICAgICAgICAqIHRyZWUtaWYtY29udi5jYyAoZ2ltcGxlX3Ry dW5jYXRlZF91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIpOg0KPiA+ID4gICAgICAgICBOZXcgZXh0 ZXJuYWwgZGVjbCBmcm9tIG1hdGNoLnBkLg0KPiA+ID4gICAgICAgICAodHJlZV9pZl9jb25kX3Jl Y29uY2lsZV91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIpOiBOZXcgZnVuYyBpbXBsDQo+ID4gPiAg ICAgICAgIHRvIHJlY29uY2lsZSB0aGUgdHJ1bmNhdGVkIHNhdF9zdWIgcGF0dGVybi4NCj4gPiA+ ICAgICAgICAgKHRyZWVfaWZfY29uZF9yZWNvbmNpbGUpOiBOZXcgZnVuYyBpbXBsIHRvIHJlY29u Y2lsZS4NCj4gPiA+ICAgICAgICAgKHBhc3NfaWZfY29udmVyc2lvbjo6ZXhlY3V0ZSk6IFRyeSB0 byByZWNvbmNpbGUgYWZ0ZXIgaWZjdnQuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogUGFu IExpIDxwYW4yLmxpQGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGdjYy9tYXRjaC5wZCAg ICAgICAgfCAgOSArKysrKw0KPiA+ID4gIGdjYy90cmVlLWlmLWNvbnYuY2MgfCA4MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDkyIGluc2VydGlvbnMoKykNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL21h dGNoLnBkIGIvZ2NjL21hdGNoLnBkDQo+ID4gPiBpbmRleCAzZDA2ODljOTMxMi4uOTYxN2E1Zjlk NWUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvbWF0Y2gucGQNCj4gPiA+ICsrKyBiL2djYy9tYXRj aC5wZA0KPiA+ID4gQEAgLTMyMTAsNiArMzIxMCwxNSBAQCBERUZJTkVfSU5UX0FORF9GTE9BVF9S T1VORF9GTiAoUklOVCkNCj4gPiA+ICAgKGlmIChJTlRFR1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZ UEVfVU5TSUdORUQgKHR5cGUpDQo+ID4gPiAgICAgICAgJiYgdHlwZXNfbWF0Y2ggKHR5cGUsIEAw LCBAMSkpKSkNCj4gPiA+DQo+ID4gPiArLyogVW5zaWduZWQgc2F0dXJhdGlvbiBzdWIgYW5kIHRo ZW4gdHJ1bmNhdGVkLCBha2E6DQo+ID4gPiArICAgVHJ1bmNhdGVkID0gWCA+PSBZID8gKE90aGVy IFR5cGUpIChYIC0gWSkgOiAwLg0KPiA+ID4gKyAqLw0KPiA+ID4gKyhtYXRjaCAodHJ1bmNhdGVk X3Vuc2lnbmVkX2ludGVnZXJfc2F0X3N1YiBAMCBAMSkNCj4gPiA+ICsgKGNvbmQgKGdlIEAwIEAx KSAoY29udmVydCAobWludXMgQDAgQDEpKSBpbnRlZ2VyX3plcm9wKQ0KPiA+ID4gKyAoaWYgKElO VEVHUkFMX1RZUEVfUCAodHlwZSkgJiYgVFlQRV9VTlNJR05FRCAodHlwZSkNCj4gPiA+ICsgICAg ICAmJiB0eXBlc19tYXRjaCAoQDAsIEAxKQ0KPiA+ID4gKyAgICAgICYmIHRyZWVfaW50X2NzdF9s dCAoVFlQRV9TSVpFICh0eXBlKSwgVFlQRV9TSVpFIChUUkVFX1RZUEUgKEAwKSkpKSkpDQo+ID4g PiArDQo+ID4gPiAgLyogeCA+ICB5ICAmJiAgeCAhPSBYWFhfTUlOICAtLT4gIHggPiB5DQo+ID4g PiAgICAgeCA+ICB5ICAmJiAgeCA9PSBYWFhfTUlOICAtLT4gIGZhbHNlIC4gKi8NCj4gPiA+ICAo Zm9yIGVxbmUgKGVxIG5lKQ0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLWlmLWNvbnYuY2Mg Yi9nY2MvdHJlZS1pZi1jb252LmNjDQo+ID4gPiBpbmRleCA1Nzk5MmI2ZGVjYS4uNTM1NzQzMTMw ZjIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdHJlZS1pZi1jb252LmNjDQo+ID4gPiArKysgYi9n Y2MvdHJlZS1pZi1jb252LmNjDQo+ID4gPiBAQCAtMzczOCw2ICszNzM4LDg3IEBAIGJpdGZpZWxk c190b19sb3dlcl9wIChjbGFzcyBsb29wICpsb29wLA0KPiA+ID4gICAgcmV0dXJuICFyZWFkc190 b19sb3dlci5pc19lbXB0eSAoKSB8fCAhd3JpdGVzX3RvX2xvd2VyLmlzX2VtcHR5ICgpOw0KPiA+ ID4gIH0NCj4gPiA+DQo+ID4gPiArZXh0ZXJuIGJvb2wgZ2ltcGxlX3RydW5jYXRlZF91bnNpZ25l ZF9pbnRlZ2VyX3NhdF9zdWIgKHRyZWUsIHRyZWUqLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUgKCopKHRyZWUpKTsNCj4g PiA+ICsNCj4gPiA+ICsvKg0KPiA+ID4gKyAqIFRyeSB0byByZWNvbmNpbGUgdGhlIHN0bXQgcGF0 dGVybiBhcyBiZWxvdyB0byBtYXRoIHRoZSBTQVRfU1VCDQo+ID4gPiArICogaW4gdmVjdG9yaXph dGlvbi4gIElmIGFuZCBvbmx5IGlmIHRoZSByZWxhdGVkIGludGVybmFsX2ZuIGhhcw0KPiA+ID4g KyAqIGJlZW4gaW1wbGVtZW50ZWQgYWxyZWFkeS4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFRoZSBy ZWNvbmNpbGUgd2lsbCBpbnNlcnQgb25lIG5ldyBzdG10IG5hbWVkICdhJyBpbiBiZWxvdyBleGFt cGxlLA0KPiA+ID4gKyAqIHJlcGxhY2UgdGhlIHN0bXQgJzQnIGJ5IG5ldyBhZGRlZCBzdG10ICdi JyBhcyB3ZWxsLiAgVGhlbiB0aGUgc3RtdA0KPiA+ID4gKyAqIHBhdHRlcm4gaXMgYWJsZSB0byBo aXQgdGhlIFNBVF9TVUIgcGF0dGVybiBpbiB0aGUgdW5kZXJseWluZyBwYXNzLg0KPiA+ID4gKyAq DQo+ID4gPiArICogMS4gXzIgPSBhXzExIC0gYl8xMihEKTsNCj4gPiA+ICsgKiAyLiBpZnRtcC4w XzEzID0gKHNob3J0IHVuc2lnbmVkIGludCkgXzI7DQo+ID4gPiArICogMy4gXzE4ID0gYV8xMSA+ PSBiXzEyKEQpOw0KPiA+ID4gKyAqIDQuIGlmdG1wLjBfNSA9IF8xOCA/IGlmdG1wLjBfMTMgOiAw Ow0KPiA+ID4gKyAqID09Pg0KPiA+ID4gKyAqIDEuIF8yID0gYV8xMSAtIGJfMTIoRCk7DQo+ID4g PiArICogMy4gXzE4ID0gYV8xMSA+PSBiXzEyKEQpOw0KPiA+ID4gKyAqIGEuIHBhdHRtcCA9IF8x OCA/IF8yIDogMDsgICAgICAgICAgICAgICAgICAgICAvLyBOZXcgaW5zZXJ0aW9uDQo+ID4gPiAr ICogMi4gaWZ0bXAuMF8xMyA9IChzaG9ydCB1bnNpZ25lZCBpbnQpIF9wYXR0bXA7IC8vIE1vdmUg YmVmb3JlDQo+ID4gPiArICogYi4gaWZ0bXAuMF81ID0gaWZ0bXAuMF8xMzsNCj4gPiA+ICsgKiAg ICA9PSBSZXBsYWNlID09PiA0LiBpZnRtcC4wXzUgPSBfMTggPyBpZnRtcC4wXzEzIDogMDsNCj4g PiA+ICsgKi8NCj4gPiA+ICtzdGF0aWMgdm9pZA0KPiA+ID4gK3RyZWVfaWZfY29uZF9yZWNvbmNp bGVfdW5zaWduZWRfaW50ZWdlcl9zYXRfc3ViIChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLA0K PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdh c3NpZ24gKnN0bXQpDQo+ID4gPiArew0KPiA+ID4gKyAgdHJlZSBvcHNbMl07DQo+ID4gPiArICB0 cmVlIGxocyA9IGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KTsNCj4gPiA+ICsgIGJvb2wgc3VwcG9y dGVkX3AgPSBkaXJlY3RfaW50ZXJuYWxfZm5fc3VwcG9ydGVkX3AgKElGTl9TQVRfU1VCLA0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU UkVFX1RZUEUgKGxocyksDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9QVElNSVpFX0ZPUl9CT1RIKTsNCj4gPiA+ICsNCj4gPiA+ICsg IGlmIChzdXBwb3J0ZWRfcCAmJiBnaW1wbGVfdHJ1bmNhdGVkX3Vuc2lnbmVkX2ludGVnZXJfc2F0 X3N1YiAobGhzLCBvcHMsIE5VTEwpKQ0KPiA+ID4gKyAgICB7DQo+ID4gPiArICAgICAgdHJlZSBj b25kID0gZ2ltcGxlX2Fzc2lnbl9yaHMxIChzdG10KTsgLy8gYWthIF8xOA0KPiA+ID4gKyAgICAg IHRyZWUgdHJ1bmNhdGVkID0gZ2ltcGxlX2Fzc2lnbl9yaHMyIChzdG10KTsgLy8gYWthIGlmdG1w LjBfMTMNCj4gPiA+ICsgICAgICBnaW1wbGUgKnN0bXRfMiA9IFNTQV9OQU1FX0RFRl9TVE1UICh0 cnVuY2F0ZWQpOw0KPiA+ID4gKyAgICAgIHRyZWUgbWludXMgPSBnaW1wbGVfYXNzaWduX3JoczEg KHN0bXRfMik7IC8vIGFrYSBfMg0KPiA+ID4gKyAgICAgIHRyZWUgcmF3X3R5cGUgPSBUUkVFX1RZ UEUgKG1pbnVzKTsNCj4gPiA+ICsgICAgICB0cmVlIHplcm8gPSBidWlsZF96ZXJvX2NzdCAocmF3 X3R5cGUpOw0KPiA+ID4gKyAgICAgIHRyZWUgdG1wID0gbWFrZV90ZW1wX3NzYV9uYW1lIChyYXdf dHlwZSwgTlVMTCwgInNhdF9zdWJfdG1wIik7DQo+ID4gPiArDQo+ID4gPiArICAgICAgLyogRm9y IHN0bXQgJ2EnIGluIGFib3ZlIGV4YW1wbGUgICovDQo+ID4gPiArICAgICAgZ2ltcGxlICpzdG10 X2EgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh0bXAsIENPTkRfRVhQUiwgY29uZCwgbWludXMsIHpl cm8pOw0KPiA+ID4gKyAgICAgIGdzaV9pbnNlcnRfYmVmb3JlIChnc2ksIHN0bXRfYSwgR1NJX1NB TUVfU1RNVCk7DQo+ID4gPiArICAgICAgdXBkYXRlX3N0bXQgKHN0bXRfYSk7DQo+ID4gPiArDQo+ ID4gPiArICAgICAgLyogRm9yIHN0bXQgJzInIGluIGFib3ZlIGV4YW1wbGUgICovDQo+ID4gPiAr ICAgICAgZ2ltcGxlX3N0bXRfaXRlcmF0b3Igc3RtdF8yX2dzaSA9IGdzaV9mb3Jfc3RtdCAoc3Rt dF8yKTsNCj4gPiA+ICsgICAgICBnc2lfbW92ZV9iZWZvcmUgKCZzdG10XzJfZ3NpLCBnc2ksIEdT SV9TQU1FX1NUTVQpOw0KPiA+ID4gKyAgICAgIGdpbXBsZV9hc3NpZ25fc2V0X3JoczEgKHN0bXRf MiwgdG1wKTsNCj4gPiA+ICsgICAgICB1cGRhdGVfc3RtdCAoc3RtdF8yKTsNCj4gPiA+ICsNCj4g PiA+ICsgICAgICAvKiBGb3Igc3RtdCAnYicgaW4gYWJvdmUgZXhhbXBsZSAgKi8NCj4gPiA+ICsg ICAgICBnaW1wbGUgKnN0bXRfYiA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKGxocywgTk9QX0VYUFIs IHRydW5jYXRlZCk7DQo+ID4gPiArICAgICAgZ3NpX3JlcGxhY2UgKGdzaSwgc3RtdF9iLCAvKiB1 cGRhdGVfZWhfaW5mbyAqLyB0cnVlKTsNCj4gPiA+ICsgICAgICB1cGRhdGVfc3RtdCAoc3RtdF9i KTsNCj4gPiA+ICsgICAgfQ0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgdm9pZA0K PiA+ID4gK3RyZWVfaWZfY29uZF9yZWNvbmNpbGUgKGZ1bmN0aW9uICpmdW4pDQo+ID4gPiArew0K PiA+ID4gKyAgYmFzaWNfYmxvY2sgYmI7DQo+ID4gPiArICBGT1JfRUFDSF9CQl9GTiAoYmIsIGZ1 bikNCj4gPiA+ICsgICAgew0KPiA+ID4gKyAgICAgIGdpbXBsZV9zdG10X2l0ZXJhdG9yIGdzaTsN Cj4gPiA+ICsgICAgICBmb3IgKGdzaSA9IGdzaV9zdGFydF9iYiAoYmIpOyAhZ3NpX2VuZF9wIChn c2kpOyBnc2lfbmV4dCAoJmdzaSkpDQo+ID4gPiArICAgICAgIHsNCj4gPiA+ICsgICAgICAgICBn aW1wbGUgKnN0bXQgPSBnc2lfc3RtdCAoZ3NpKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICBp ZiAoaXNfZ2ltcGxlX2Fzc2lnbiAoc3RtdCkpDQo+ID4gPiArICAgICAgICAgICB7DQo+ID4gPiAr ICAgICAgICAgICAgIGdhc3NpZ24gKmFzc2lnbiA9IGR5bl9jYXN0IDxnYXNzaWduICo+IChzdG10 KTsNCj4gPiA+ICsgICAgICAgICAgICAgdHJlZV9pZl9jb25kX3JlY29uY2lsZV91bnNpZ25lZF9p bnRlZ2VyX3NhdF9zdWIgKCZnc2ksIGFzc2lnbik7DQo+ID4gPiArICAgICAgICAgICB9DQo+ID4g PiArICAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gK30NCj4gPiA+DQo+ID4gPiAgLyogSWYt Y29udmVydCBMT09QIHdoZW4gaXQgaXMgbGVnYWwuICBGb3IgdGhlIG1vbWVudCB0aGlzIHBhc3Mg aGFzIG5vDQo+ID4gPiAgICAgcHJvZml0YWJpbGl0eSBhbmFseXNpcy4gIFJldHVybnMgbm9uLXpl cm8gdG9kbyBmbGFncyB3aGVuIHNvbWV0aGluZw0KPiA+ID4gQEAgLTQwNjMsNiArNDE0NCw4IEBA IHBhc3NfaWZfY29udmVyc2lvbjo6ZXhlY3V0ZSAoZnVuY3Rpb24gKmZ1bikNCj4gPiA+ICAgICAg ICAgfQ0KPiA+ID4gICAgICB9DQo+ID4gPg0KPiA+ID4gKyAgdHJlZV9pZl9jb25kX3JlY29uY2ls ZSAoZnVuKTsNCj4gPiA+ICsNCj4gPiA+ICAgIHJldHVybiAwOw0KPiA+ID4gIH0NCj4gPiA+DQo+ ID4gPiAtLQ0KPiA+ID4gMi4zNC4xDQo+ID4gPg0K