From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by sourceware.org (Postfix) with ESMTPS id 49AEB3858401 for ; Thu, 29 Jun 2023 02:52:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 49AEB3858401 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688007133; x=1719543133; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=Ndnvapq5XB4v84C7ZKAbGuOyMa16FfHqb6VMi8dr59g=; b=MmMc75Tl9dLKnzVG8x7nOdw8wdnWXqXJoSw7wUXnIxkZWVOavDZnoY6t 6U0JIzymGBhE66aBLW3tBZBTv1ZDuDBIMJpXSv281jtn1q2M2PXcGKRL+ 67j91iJ13uP1cywCBVpWZ+PkdrAwo3Wdi/3Hvi+hMfaQEU8+xHjV3dtS4 I5+0GjUZdhGflP6hvdrWkmWzVWIwKGZY2dJ1DFTLPlWaGHwY/porFi11k iExPsDUHJT/XdiqUPBBLUPMhGk5bfeBhc1eHkfa1X67OlVr9tiP9SZfhG EmWtKN8viBXM875JEclRDj0tQPJD3o1BaITK1v6aOxZMmWJO5EDxdRG8d g==; X-IronPort-AV: E=McAfee;i="6600,9927,10755"; a="341592562" X-IronPort-AV: E=Sophos;i="6.01,167,1684825200"; d="scan'208,217";a="341592562" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2023 19:52:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10755"; a="667357681" X-IronPort-AV: E=Sophos;i="6.01,167,1684825200"; d="scan'208,217";a="667357681" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga003.jf.intel.com with ESMTP; 28 Jun 2023 19:52:11 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 28 Jun 2023 19:52:10 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 28 Jun 2023 19:52:10 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Wed, 28 Jun 2023 19:52:10 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.174) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Wed, 28 Jun 2023 19:52:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hpBqFjFfncsrxPIwwzoWxfSxz13qSIEqYO6WIfxHXQ1Jsg03M44m8gHPQBruQGuMkq4R6QT86UcKDyR5fjZj0PucWR/1jcQKV0N/feCpq0fRj1S3EqE3Jh5NpIsgUUS8xKVL/SegGWIWheNQA0zN8ntgqdU5etk902wzzLpGPBfzUMYLcImunP3f7X323Xllf1F9XseM75iEKt5yg4/M2U0UP4PLBDENl7r5fbF79YNOPbYoKx8WCTw7N6EM+Ifstggv03GGcPgrGT+bCx2Ov9xG3IctbfrRMYqwPqCWvE2gFH4vhkk0X3DrpJ8njaCYU2XqZz7XHtObE71PcDCP7Q== 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=Ndnvapq5XB4v84C7ZKAbGuOyMa16FfHqb6VMi8dr59g=; b=Z3KWZGmdIEXMAes0SaPDDzvr6mckvMUiZbqEkgHslhI2dYpA3ZS0SgAS/39u/bzMv2QFfpYXWBzsN1RcTY/HOOhYnp5w7FzoI7oWWJXEtI/bJjNRJa3DrqhkFiy/G3HwD9N0dPvBdfnDc5rRMz1teFuEB/tz+bR0phbIw9Hq53t1CIFrdAZNThMGbop77batWrAU8eNBVSWRplkF0a2a3oJyj6dO2Y1hRMWTbHLakHUc6ioyw9NvhFUwiulq0ijWLmhz+qJ2L6UIgIzy6Tzfotk+necxomANoDdEwkQunhiLzHN3uxtyys+ueKJW95WAfH6ixnK4wTsah4XWYMBy8w== 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 DM4PR11MB6310.namprd11.prod.outlook.com (2603:10b6:8:a7::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Thu, 29 Jun 2023 02:52:06 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73%6]) with mapi id 15.20.6521.023; Thu, 29 Jun 2023 02:52:06 +0000 From: "Li, Pan2" To: "juzhe.zhong@rivai.ai" , Kito.cheng CC: gcc-patches , "Wang, Yanzhang" , jeffreyalaw Subject: RE: Re: [PATCH v1] RISC-V: Allow rounding mode control for RVV floating-point add Thread-Topic: Re: [PATCH v1] RISC-V: Allow rounding mode control for RVV floating-point add Thread-Index: AQHZqL2EsMKsx+RUVkWkCfXAwHfC8a+eOMOYgAAALxCAAtpHAIAAAta9gAAAdOA= Date: Thu, 29 Jun 2023 02:52:06 +0000 Message-ID: References: <20230627060617.2250903-1-pan2.li@intel.com>, <096CC5E509CCA85A+202306271459302062266@rivai.ai>, , 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_|DM4PR11MB6310:EE_ x-ms-office365-filtering-correlation-id: ea172557-ec02-4d9d-40cf-08db784bd2fd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 36EqvSwNOpts8yU39Hcuy5Z+PCqTAgnTMzthGj9GyPvJBc04OaxVGgnCNl+87uVFfTI2ZDq51uXS++VCASI6n/ITJir7eus8dOg5fmfTaxXPApeCDwnnRku2UMgSOXCiF4Z8sKd0gYCqf64B9y8ABe37lzR66FNk++U2sprKSKXJKDFWNCN+DUy5zvJSQd6M+hLKuFCc2pSE7aRGZ+QO4VxXLVCGGwmqELsbIF6TPRHINAOGjmDL9GXLpPc8zixGMq4hnYFl1s01h3sgHxo8+Za99SHk9GpN6Sqnu8bBp97vrXH21XYXVttJzzEmSgtTx6nPhtBHUl9XAlbkrG57Yqx9GwC71K9CLnn5NuFRDmOXGXOg1eoURoig/FEgD6MSPrQUTq6bnkJw5F+wgVRAZrmtErH5lr7WOis77PCvM/jalRdJoy0zPz8wQqmedqjWl1ZXC+Xa75VVQrp9u0N6954uNPPS5/Cw5Lhqz+gy/JN1dm0/TDGy6qdDCg6SS1JEIGJnRAEnUTRFc9kxduh5D6Fa2B+eZnoGQxDYi9PTnj0MvmnPuBIJJgzqm30X51zbo/bh2BNyhEOU+oo5ljOsJBsS36Q1oTH5XF5fLx0ouQU= 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:(13230028)(366004)(39860400002)(396003)(346002)(136003)(376002)(451199021)(84970400001)(53546011)(166002)(76116006)(82960400001)(30864003)(52536014)(66556008)(4326008)(66446008)(64756008)(8936002)(66946007)(8676002)(38070700005)(33656002)(66476007)(41300700001)(86362001)(122000001)(5660300002)(316002)(38100700002)(55016003)(966005)(9686003)(6506007)(186003)(7696005)(2906002)(26005)(83380400001)(54906003)(71200400001)(110136005)(478600001)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZXJRSERxNGt3ZHY5K2psRWd1dmJ4eGhVM1N4dC9pSG8xTkF2WXpYdlh0azh0?= =?utf-8?B?dEhtQ0hjOWsxdE1yMmJNMzUxZ2FFTENXMW43Wjg0OFZLb1V1a2RsMzN4Q1pC?= =?utf-8?B?bTFxTmwvSmFsbTV6Q2Zta3NjV1hYWXMvRXp1M0l6b0dhMnBNRUVxaDkvMGcv?= =?utf-8?B?eU1ZMVMxQWsvb2xNY1hsNCszNDlQUkVWS083U1Bob3JteW0vaWkwT003NWJZ?= =?utf-8?B?N0NFRDNTaDRLblVqY2tGSlZVRjZ1VVpvYmlPNWIxdUFpc1I4Qlp4ck9BWmda?= =?utf-8?B?RlZFRDlySGMvZkxLVEdMT0c1RzFoWGM0RTA4RGllclRPV1d4emtPc0NKcCtK?= =?utf-8?B?NTh6cWlWWWhhV2lPdzBVQ2ZzNnl1Y011Nk5UUFNycG5EdURQQlpPYUNzUHhO?= =?utf-8?B?elVsYzBWUmMrL2xpekJScUdQbHVQUTgvSWpSVkNsVWlESGtsRWRCVTdOc2kx?= =?utf-8?B?TjRIb1kvb3RHdFBMTEZjNE9ZdUZTTjZFVXRQUUlWWmxVTlZPRmkzQUMxelpH?= =?utf-8?B?SUNGYnVjZ2svc1BKcFRiTUZCbGdoVFN6bktUKzNHdTA0SmFLVlFYKzNneHo1?= =?utf-8?B?YmFMcHNxN2habkJxbFUxSWk4YkF1SjNoVlpxMmdzTjB3N2VqSUl0UGhwMEZj?= =?utf-8?B?Qnc4NXdqaU4rMDZBUHlHdGppeEI2Nld1bGp2SHJsdExTVCtycjNpcEQ5bEZq?= =?utf-8?B?NFU5azNOTzFwWExVbVA3KzA2UVE0Q290bS9vQ0RvYXEraFZmL0o1dmxuK1Az?= =?utf-8?B?NDJzZE01VUxMOVYxQUxPZXp0M1VueXk4SHdoUEdkNzVvaVhNVUhSV2Z5MW15?= =?utf-8?B?Y0dNandWeFZaVlBmRXlKV1FwUVFub2luV0I2ZW5ENVFRVHZEMnRzeXVBcjB5?= =?utf-8?B?SURxVmpiS3Y2ZVMvSThWU3FpTktod25ObGRBSERrRXZGK1h5TnRlMmhzbDVK?= =?utf-8?B?OXR3TkhLM3AzSkhEcWtsS2F6ZFNUL1krQXhIcURVMW5rRUNtbkl3VURkRFhy?= =?utf-8?B?RVhNL0lPMVl4OHVrZnQvZDJIZFhiRzJsOTFhQjdlc3d3c2RTem5HUTk0VUl1?= =?utf-8?B?OWZ6TDl1Slo0T0pPOCtPdlV5YjZQZkdPOTViUWFQa1JVd2pQVm9QbGI4SHFS?= =?utf-8?B?RmV5YzkyS2gyQlZUZ2doWVloNWxoZS9pVjREQk10UlEvdU0yeExzakRYZnQ3?= =?utf-8?B?TjRHMHFOWm82RG5UcUxXdW53RHZYQ3FXN3hkRW52MUtodUU1aW42aXdpeFd0?= =?utf-8?B?d01GUjlhVnFQNEYyTzZFWkFUYW5XMWxXL1ZSMVBQMWJPeTJwbCtWVnlCaEdo?= =?utf-8?B?QUpSUW8yOU92UjZRVmFFMUovOXZkMHdKK01ZcTZtenVrUTBDSXNzS1pYVmRa?= =?utf-8?B?TmNtTy9NUEtjbWkrRE9CRk8xZERjYUxsMlV6UDIxUjVWcGJyWjZyMHBnT0VB?= =?utf-8?B?WlFYM2tvYks0ZGpLWE0wNGMzdFRtbENJWVRZWlJGVDFTSlA1endXdjZ1clly?= =?utf-8?B?bGdreUIzT2o0Rm5XZVFLSENaa2tCd3hzaGNoWEFIWFVoSXZXSThKcGFCcTVa?= =?utf-8?B?cEJ0TTd0VTRjVUxLZUxhRDAxYnkvN3VaWEwxaGRlQ1g3c2xoM0JlYmQrbEh4?= =?utf-8?B?ZWlaKzdsNHlneDNNcmYxY0ZETjRNVnRHN0pOTnVoYUlyb0Z4SEdEaTV4aVdl?= =?utf-8?B?RTBRVitCVG1reW9kQ1VKalhqTmJnSTM0d29zYzh3WUhGV0lZWTRzMTdUTUY0?= =?utf-8?B?cEFQTGhvQXRlTnNWd0xwUFEwc0ZRSW45TVdPbENaRWFXV2srSFFaMU5QMEp6?= =?utf-8?B?bERhUEg3QjliUVZ0bVI4NSs5SnYxZm9ndmpDd2htNHFvZE5aUG45SWQwUEZD?= =?utf-8?B?aWE5RWJ6TUN5V1I2OHJ0Kyt6TURuMWlIb2d1a3REYlVLZEFVa1phZmprVnRW?= =?utf-8?B?OTUvVmFSZDVMbzgxNFhVSGJrSXVXOUZFdHg2b2JDU1RMbkJOVkJtZmRjWUJk?= =?utf-8?B?Z28wcU5tZlFDK2FTVkpVaTNwa2dCQ1lJUzVBVlBQZWZPTWZ6TnMrQkhSNmda?= =?utf-8?B?dWlvOTZTVnpqb0tFMFk4eHV1WTQ3UExKdHk0eGJDc3RabC9mcFFPVkxUVWU2?= =?utf-8?Q?K6FA=3D?= Content-Type: multipart/alternative; boundary="_000_MW5PR11MB5908D4824B8200F13527AE3EA925AMW5PR11MB5908namp_" 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: ea172557-ec02-4d9d-40cf-08db784bd2fd X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2023 02:52:06.0432 (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: 3/oBny4TIwCXTsrVJD2zVdEauc5yEqvtJKT9qsrdSa84xE5dFJyM7sDwkL0jIYwSZkZ+Cm/hpOz4YUTFN915RA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6310 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: --_000_MW5PR11MB5908D4824B8200F13527AE3EA925AMW5PR11MB5908namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VyZSB0aGluZywgZWNobyBvbiBiZWxvdyBwYXJ0LiBJIHRoaW5rIHdlIG5l ZWQgb25lIHBsYWNlIHRvIHB1dCBzb21ldGhpbmcgbGlrZSBzdW1tYXJ5IGZv ciB0aGlzLCBmb3IgZXhhbXBsZSwgYSB0YWJsZSB0byBpbmRpY2F0ZSBzb21l IGluZm9ybWF0aW9uIGFib3V0IHRoaXMgKGFrYSByb3VuZGluZyBtb2RlIG5l ZWRlZCBvciBub3QpLiBJIHdpbGwgdHJ5IHRvIHN1bW1hcml6ZSBvbmUgZHJh ZnQgdGhlbi4NCg0KPiBDaGVjayBTUElLRSBpbXBsZW1lbnRhdGlvbiwgbWFr ZSBzdXJlIHdoaWNoIEFQSSBuZWVkcyByb3VuZGluZyBtb2RlLCB3aGljaCBB UEkgZG9lc24ndCBuZWVkIHJvdW5kaW5nIG1vZGUuDQo+IERvIG5vdCB0cnVz dCB0aGUgcnZ2LWludHJpbnNpYy1kb2Mgc2luY2UgaXQncyBvZnRlbiB3cm9u Zy4NCj4gWW91IHNob3VsZCBjaGVjayBkb2MgdG9vLCBpZiBkb2MgaXMgd3Jv bmcsICB5b3Ugc2hvdWxkIG5vdCBvbmx5IGNvcnJlY3QgR0NDIGltcGxlbWVu dGF0aW9uIGJ1dCBhbHNvIG1ha2UgYSBmaXggUFIgdG8gdGhlIGRvYy4NCg0K UGFuDQoNCkZyb206IGp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9u Z0ByaXZhaS5haT4NClNlbnQ6IFRodXJzZGF5LCBKdW5lIDI5LCAyMDIzIDEw OjQ0IEFNDQpUbzogS2l0by5jaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUuY29t PjsgTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0KQ2M6IGdjYy1wYXRj aGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz47IFdhbmcsIFlhbnpoYW5n IDx5YW56aGFuZy53YW5nQGludGVsLmNvbT47IGplZmZyZXlhbGF3IDxqZWZm cmV5YWxhd0BnbWFpbC5jb20+DQpTdWJqZWN0OiBSZTogUmU6IFtQQVRDSCB2 MV0gUklTQy1WOiBBbGxvdyByb3VuZGluZyBtb2RlIGNvbnRyb2wgZm9yIFJW ViBmbG9hdGluZy1wb2ludCBhZGQNCg0KSGksIFBhbi4NCg0KSSB0aGluayB0 aGUgbGFzdCBzdGVwIGlzIHRvIHN1cHBvcnQgZHluYW1pYyBtb2RlIHN3aXRj aGluZyB3aGljaCBtYXkgbmVlZCB0byBjaGFuZ2UgdGhlIG1vZGUtc3dpdGNo aW5nIFBBU1MuDQoNCkFmdGVyIHRoaXMgZG9uZSwgSSBzdWdnZXN0IHlvdSBn byBvdmVyIGFsbCByb3VuZGluZyBtb2RlIEFQSSAoaW5jbHVkaW5nIGZpeGVk LXBvaW50IGFuZCBmbG9hdGluZy1wb2ludC4pDQoNCkNoZWNrIFNQSUtFIGlt cGxlbWVudGF0aW9uLCBtYWtlIHN1cmUgd2hpY2ggQVBJIG5lZWRzIHJvdW5k aW5nIG1vZGUsIHdoaWNoIEFQSSBkb2Vzbid0IG5lZWQgcm91bmRpbmcgbW9k ZS4NCkRvIG5vdCB0cnVzdCB0aGUgcnZ2LWludHJpbnNpYy1kb2Mgc2luY2Ug aXQncyBvZnRlbiB3cm9uZy4NCllvdSBzaG91bGQgY2hlY2sgZG9jIHRvbywg aWYgZG9jIGlzIHdyb25nLCAgeW91IHNob3VsZCBub3Qgb25seSBjb3JyZWN0 IEdDQyBpbXBsZW1lbnRhdGlvbiBidXQgYWxzbyBtYWtlIGEgZml4IFBSIHRv IHRoZSBkb2MuDQoNClRoYW5rcy4NCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86anV6aGUu emhvbmdAcml2YWkuYWk+DQoNCkZyb206IEtpdG8gQ2hlbmc8bWFpbHRvOmtp dG8uY2hlbmdAc2lmaXZlLmNvbT4NCkRhdGU6IDIwMjMtMDYtMjkgMTA6MzUN ClRvOiBMaSwgUGFuMjxtYWlsdG86cGFuMi5saUBpbnRlbC5jb20+DQpDQzog anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFp LmFpPjsgZ2NjLXBhdGNoZXM8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPjsgV2FuZywgWWFuemhhbmc8bWFpbHRvOnlhbnpoYW5nLndhbmdAaW50 ZWwuY29tPjsgamVmZnJleWFsYXc8bWFpbHRvOmplZmZyZXlhbGF3QGdtYWls LmNvbT4NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIFJJU0MtVjogQWxsb3cg cm91bmRpbmcgbW9kZSBjb250cm9sIGZvciBSVlYgZmxvYXRpbmctcG9pbnQg YWRkDQpMR1RNLCB0aGFua3MhDQoNCk9uIFR1ZSwgSnVuIDI3LCAyMDIzIGF0 IDM6MDLigK9QTSBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRv OnBhbjIubGlAaW50ZWwuY29tPj4gd3JvdGU6DQo+DQo+IEFjaywgdGhhbmtz IEp1emhlLg0KPg0KPg0KPg0KPiBQYW4NCj4NCj4NCj4NCj4gRnJvbToganV6 aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFp PiA8anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJp dmFpLmFpPj4NCj4gU2VudDogVHVlc2RheSwgSnVuZSAyNywgMjAyMyAzOjAw IFBNDQo+IFRvOiBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRv OnBhbjIubGlAaW50ZWwuY29tPj47IGdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZzxtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+ Pg0KPiBDYzogS2l0by5jaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPG1h aWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+PjsgTGksIFBhbjIgPHBhbjIu bGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbT4+OyBXYW5n LCBZYW56aGFuZyA8eWFuemhhbmcud2FuZ0BpbnRlbC5jb208bWFpbHRvOnlh bnpoYW5nLndhbmdAaW50ZWwuY29tPj47IGplZmZyZXlhbGF3IDxqZWZmcmV5 YWxhd0BnbWFpbC5jb208bWFpbHRvOmplZmZyZXlhbGF3QGdtYWlsLmNvbT4+ DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIFJJU0MtVjogQWxsb3cgcm91 bmRpbmcgbW9kZSBjb250cm9sIGZvciBSVlYgZmxvYXRpbmctcG9pbnQgYWRk DQo+DQo+DQo+DQo+IExHVE0uDQo+DQo+IFlvdSBjYW4gZ28gYWhlYWQgdG8g aW1wbGVtZW50IHJvdW5kaW5nIG1vZGUgb2YgZmxvYXRpbmctcG9pbnQgYnkg bW9kZS1zd2l0Y2hpbmc6DQo+DQo+DQo+DQo+IFN1Z2dlc3QgeW91IGltcGxl bWVudCByb3VuZGluZyBtb2RlIGZvciBmbG9hdGluZy1wb2luZyBhcyBmb2xs b3dzOg0KPg0KPg0KPg0KPiAxc3Qgc3RlcDogSW1wbGVtZW50IG1vZGUtc3dp dGNoaW5nIGZvciBmbG9hdGluZy1wb2ludCByb3VuZGluZyBtb2RlIGV4Y2Vw dCBEWU5BTUlDIHdoaWNoIHNob3VsZCBiZSB0b3RhbGx5IHNhbWUgYXMgZml4 ZWQtcG9pbnQuDQo+DQo+IDJuZCBzdGVwOiBTdXBwb3J0IERZTkFNSUMgcm91 bmRpbmcgbW9kZSBvbiBtb2RlLXN3aXRjaGluZyB3aGljaCBtYXkgbmVlZCB0 byBtb2RpZnkgdGhlIG1vZGUtc3dpdGNoaW5nIFBBU1MuDQo+DQo+DQo+DQo+ IFRoYW5rcy4NCj4NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4NCj4ganV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpo b25nQHJpdmFpLmFpPg0KPg0KPg0KPg0KPiBGcm9tOiBwYW4yLmxpDQo+DQo+ IERhdGU6IDIwMjMtMDYtMjcgMTQ6MDYNCj4NCj4gVG86IGdjYy1wYXRjaGVz DQo+DQo+IENDOiBqdXpoZS56aG9uZzsga2l0by5jaGVuZzsgcGFuMi5saTsg eWFuemhhbmcud2FuZzsgamVmZnJleWFsYXcNCj4NCj4gU3ViamVjdDogW1BB VENIIHYxXSBSSVNDLVY6IEFsbG93IHJvdW5kaW5nIG1vZGUgY29udHJvbCBm b3IgUlZWIGZsb2F0aW5nLXBvaW50IGFkZA0KPg0KPiBGcm9tOiBQYW4gTGkg PHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbT4+ DQo+DQo+DQo+DQo+IEFjY29yZGluZyB0byB0aGUgZG9jIGFzIGJlbG93LCB3 ZSBuZWVkIHRvIHN1cHBvcnQgdGhlIHJvdW5kaW5nIG1vZGUgb2YNCj4NCj4g dGhlIFJWViBmbG9hdGluZy1wb2ludCwgYm90aCB0aGUgc3RhdGljIGFuZCBk eW5hbWljZSBmcm0uDQo+DQo+DQo+DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9y aXNjdi1ub24taXNhL3J2di1pbnRyaW5zaWMtZG9jL3B1bGwvMjI2DQo+DQo+ DQo+DQo+IEZvciB0cmFja2luZyBhbmQgZGV2ZWxvcG1lbnQgZnJpZW5kbHks IFdlIHdpbGwgdGFrZSBzb21lIHN0ZXBzIHRvIHN1cHBvcnQNCj4NCj4gYWxs IHJvdW5kaW5nIG1vZGVzIGZvciB0aGUgUlZWIGZsb2F0aW5nLXBvaW50IHJv dW5kaW5nIG1vZGVzLg0KPg0KPg0KPg0KPiAxLiBBbGxvdyByb3VuZGluZyBt b2RlIGNvbnRyb2wgYnkgb25lIGludHJpbnNpYyAoYWthIHRoaXMgcGF0Y2gp LCB2ZmFkZC4NCj4NCj4gMi4gU3VwcG9ydCBzdGF0aWMgcm91bmRpbmcgbW9k ZSBjb250cm9sIGJ5IG1vZGUgc3dpdGNoLCBsaWtlIGZpeGVkLXBvaW50Lg0K Pg0KPiAzLiBTdXBwb3J0IGR5bmFtaWNlIHJvdW5kIG1vZGUgY29udHJvbCBi eSBtb2RlIHN3aXRjaC4NCj4NCj4gNC4gU3VwcG9ydCB0aGUgcmVzdCBmbG9h dGluZy1wb2ludCBpbnN0cnVjdGlvbnMgZm9yIGZybS4NCj4NCj4NCj4NCj4g UGxlYXNlICpOT1RFKiB0aGlzIHBhdGNoIG9ubHkgYWxsb3cgdGhlIHJvdW5k aW5nIG1vZGUgY29udHJvbCBmb3IgdGhlDQo+DQo+IHZmYWRkIGludHJpbnNp YyBBUEksIGFuZCB0aGUgcmVsYXRlZCBmcm0gd2lsbCBiZSBjb3ZlcnJlZCBi eSBzdGVwIDIuDQo+DQo+DQo+DQo+IFNpZ25lZC1vZmYtYnk6IFBhbiBMaSA8 cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29tPj4N Cj4NCj4gQ28tQXV0aG9yZWQgYnk6IEp1emhlLVpob25nIDxqdXpoZS56aG9u Z0ByaXZhaS5haTxtYWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+Pg0KPg0K Pg0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0KPg0KPg0KPiAqIGNvbmZpZy9y aXNjdi9yaXNjdi1wcm90b3MuaCAoZW51bSBmbG9hdGluZ19wb2ludF9yb3Vu ZGluZ19tb2RlKToNCj4NCj4gQWRkIG1hY3JvIGZvciBzdGF0aWMgZnJtIG1p biBhbmQgbWF4Lg0KPg0KPiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuY2MNCj4NCj4gKGNsYXNzIGJpbm9wX2ZybSk6IE5l dyBjbGFzcyBmb3IgZmxvYXRpbmctcG9pbnQgd2l0aCBmcm0uDQo+DQo+IChC QVNFKTogQWRkIHZmYWRkIGZvciBmcm0uDQo+DQo+ICogY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oOiBMaWtld2lzZS4NCj4N Cj4gKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0 aW9ucy5kZWYNCj4NCj4gKHZmYWRkX2ZybSk6IExpa2V3aXNlLg0KPg0KPiAq IGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNj DQo+DQo+IChzdHJ1Y3QgYWx1X2ZybV9kZWYpOiBOZXcgc3RydWN0IGZvciBh bHUgd2l0aCBmcm0uDQo+DQo+IChTSEFQRSk6IEFkZCBhbHUgd2l0aCBmcm0u DQo+DQo+ICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuaDogTGlrZXdpc2UuDQo+DQo+ICogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy5jYw0KPg0KPiAoZnVuY3Rpb25fY2hlY2tlcjo6 cmVwb3J0X291dF9vZl9yYW5nZV9hbmRfbm90KTogTmV3IGZ1bmN0aW9uDQo+ DQo+IGZvciByZXBvcnQgb3V0IG9mIHJhbmdlIGFuZCBub3QgdmFsLg0KPg0K PiAoZnVuY3Rpb25fY2hlY2tlcjo6cmVxdWlyZV9pbW1lZGlhdGVfcmFuZ2Vf b3IpOiBOZXcgZnVuY3Rpb24NCj4NCj4gZm9yIGNoZWNraW5nIGluIHJhbmdl IG9yIG9uZSB2YWwuDQo+DQo+ICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5oOiBBZGQgZnVuY3Rpb24gZGVjbC4NCj4NCj4NCj4NCj4g Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+DQo+DQo+DQo+ICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tZXJyb3IuYzog TmV3IHRlc3QuDQo+DQo+ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1mcm0uYzogTmV3IHRlc3QuDQo+DQo+IC0tLQ0KPg0KPiBn Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oICAgICAgICAgICAgICAg fCAgMiArDQo+DQo+IC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuY2MgICAgICB8IDI1ICsrKysrKysNCj4NCj4gLi4uL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oICAgICAgIHwgIDEgKw0KPg0K PiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYgfCAgMiArDQo+DQo+IC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtc2hhcGVzLmNjICAgICB8IDY4ICsrKysrKysrKysrKysrKysrKysNCj4N Cj4gLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaCAg ICAgIHwgIDEgKw0KPg0KPiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYyAgICAgfCA0MSArKysrKysrKysrKw0KPg0KPiBnY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oICAgICAgfCAg NCArKw0KPg0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJt LWVycm9yLmMgICAgfCAxNSArKysrDQo+DQo+IC4uLi9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0uYyAgICAgICAgICB8IDMwICsrKysrKysrDQo+ DQo+IDEwIGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspDQo+DQo+ IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWVycm9yLmMNCj4NCj4g Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0uYw0KPg0KPg0KPg0KPiBk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCj4NCj4gaW5kZXgg ZjY4NmVkYWIzZDEuLmJlZTY0ZWVlNTA0IDEwMDY0NA0KPg0KPiAtLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQo+DQo+ICsrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCj4NCj4gQEAgLTI3OCw2 ICsyNzgsOCBAQCBlbnVtIGZsb2F0aW5nX3BvaW50X3JvdW5kaW5nX21vZGUN Cj4NCj4gICAgRlJNX1JVUCA9IDMsIC8qIEFrYSAwYjAxMS4gICovDQo+DQo+ ICAgIEZSTV9STU0gPSA0LCAvKiBBa2EgMGIxMDAuICAqLw0KPg0KPiAgICBG Uk1fRFlOID0gNywgLyogQWthIDBiMTExLiAgKi8NCj4NCj4gKyAgRlJNX1NU QVRJQ19NSU4gPSBGUk1fUk5FLA0KPg0KPiArICBGUk1fU1RBVElDX01BWCA9 IEZSTV9STU0sDQo+DQo+IH07DQo+DQo+IG9wdF9tYWNoaW5lX21vZGUgdmVj dG9yaXplX3JlbGF0ZWRfbW9kZSAobWFjaGluZV9tb2RlLCBzY2FsYXJfbW9k ZSwNCj4NCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCj4NCj4gaW5kZXggNWM4 ZGVkYTkwMGQuLjFiNGMyYzZhZDY2IDEwMDY0NA0KPg0KPiAtLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0K Pg0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1iYXNlcy5jYw0KPg0KPiBAQCAtMjgxLDYgKzI4MSwyOSBAQCBwdWJs aWM6DQo+DQo+ICAgIH0NCj4NCj4gfTsNCj4NCj4gKy8qIEltcGxlbWVudHMg YmVsb3cgaW5zdHJ1Y3Rpb25zIGZvciBub3cuDQo+DQo+ICsgICAtIHZmYWRk DQo+DQo+ICsqLw0KPg0KPiArdGVtcGxhdGU8cnR4X2NvZGUgQ09ERT4NCj4N Cj4gK2NsYXNzIGJpbm9wX2ZybSA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+ DQo+ICt7DQo+DQo+ICtwdWJsaWM6DQo+DQo+ICsgIGJvb2wgaGFzX3JvdW5k aW5nX21vZGVfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IHRydWU7IH0NCj4NCj4gKw0KPg0KPiArICBydHggZXhwYW5kIChmdW5jdGlv bl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4NCj4gKyAgew0KPg0K PiArICAgIHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCj4NCj4gKyAgICAgIHsN Cj4NCj4gKyAgICAgIGNhc2UgT1BfVFlQRV92ZjoNCj4NCj4gKyByZXR1cm4g ZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF9zY2FsYXIgKENPREUs IGUudmVjdG9yX21vZGUgKCkpKTsNCj4NCj4gKyAgICAgIGNhc2UgT1BfVFlQ RV92djoNCj4NCj4gKyByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9m b3JfcHJlZCAoQ09ERSwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KPg0KPiArICAg ICAgZGVmYXVsdDoNCj4NCj4gKyBnY2NfdW5yZWFjaGFibGUgKCk7DQo+DQo+ ICsgICAgICB9DQo+DQo+ICsgIH0NCj4NCj4gK307DQo+DQo+ICsNCj4NCj4g LyogSW1wbGVtZW50cyB2cnN1Yi4gICovDQo+DQo+IGNsYXNzIHZyc3ViIDog cHVibGljIGZ1bmN0aW9uX2Jhc2UNCj4NCj4gew0KPg0KPiBAQCAtMjAwNiw2 ICsyMDI5LDcgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCB2aW90YSB2aW90 YV9vYmo7DQo+DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmlkIHZpZF9v Ymo7DQo+DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3QgYmlub3A8UExVUz4g dmZhZGRfb2JqOw0KPg0KPiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpbm9w PE1JTlVTPiB2ZnN1Yl9vYmo7DQo+DQo+ICtzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IGJpbm9wX2ZybTxQTFVTPiB2ZmFkZF9mcm1fb2JqOw0KPg0KPiBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlub3A8TUlOVVM+IHZmcnN1 Yl9vYmo7DQo+DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgd2lkZW5fYmlu b3A8UExVUz4gdmZ3YWRkX29iajsNCj4NCj4gc3RhdGljIENPTlNURVhQUiBj b25zdCB3aWRlbl9iaW5vcDxNSU5VUz4gdmZ3c3ViX29iajsNCj4NCj4gQEAg LTIyMzEsNiArMjI1NSw3IEBAIEJBU0UgKHZtc29mKQ0KPg0KPiBCQVNFICh2 aW90YSkNCj4NCj4gQkFTRSAodmlkKQ0KPg0KPiBCQVNFICh2ZmFkZCkNCj4N Cj4gK0JBU0UgKHZmYWRkX2ZybSkNCj4NCj4gQkFTRSAodmZzdWIpDQo+DQo+ IEJBU0UgKHZmcnN1YikNCj4NCj4gQkFTRSAodmZ3YWRkKQ0KPg0KPiBkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmgNCj4NCj4gaW5kZXggNjJmZjM4YTI4MTEuLjU0YTgx ZWFiMjY5IDEwMDY0NA0KPg0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oDQo+DQo+ICsrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCj4N Cj4gQEAgLTE0NSw2ICsxNDUsNyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmlvdGE7DQo+DQo+IGV4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2aWQ7DQo+DQo+IGV4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2ZmFkZDsNCj4NCj4gZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZmYWRkOw0KPg0KPiArZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZmYWRkX2ZybTsNCj4NCj4gZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZmc3ViOw0KPg0KPiBleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmZzdWI7DQo+DQo+IGV4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2ZnJzdWI7DQo+DQo+IGRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KPg0KPiBpbmRleCA4OWFm ZjI3YmYyNi4uMDM1YzllNDI1MmYgMTAwNjQ0DQo+DQo+IC0tLSBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYNCj4NCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KPg0KPiBAQCAtMjg5LDYgKzI4OSw4 IEBAIERFRl9SVlZfRlVOQ1RJT04gKHZmYWRkLCBhbHUsIGZ1bGxfcHJlZHMs IGZfdnZmX29wcykNCj4NCj4gREVGX1JWVl9GVU5DVElPTiAodmZzdWIsIGFs dSwgZnVsbF9wcmVkcywgZl92dnZfb3BzKQ0KPg0KPiBERUZfUlZWX0ZVTkNU SU9OICh2ZnN1YiwgYWx1LCBmdWxsX3ByZWRzLCBmX3Z2Zl9vcHMpDQo+DQo+ IERFRl9SVlZfRlVOQ1RJT04gKHZmcnN1YiwgYWx1LCBmdWxsX3ByZWRzLCBm X3Z2Zl9vcHMpDQo+DQo+ICtERUZfUlZWX0ZVTkNUSU9OICh2ZmFkZF9mcm0s IGFsdV9mcm0sIGZ1bGxfcHJlZHMsIGZfdnZ2X29wcykNCj4NCj4gK0RFRl9S VlZfRlVOQ1RJT04gKHZmYWRkX2ZybSwgYWx1X2ZybSwgZnVsbF9wcmVkcywg Zl92dmZfb3BzKQ0KPg0KPiAvLyAxMy4zLiBWZWN0b3IgV2lkZW5pbmcgRmxv YXRpbmctUG9pbnQgQWRkL1N1YnRyYWN0IEluc3RydWN0aW9ucw0KPg0KPiBE RUZfUlZWX0ZVTkNUSU9OICh2ZndhZGQsIHdpZGVuX2FsdSwgZnVsbF9wcmVk cywgZl93dnZfb3BzKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQo+ DQo+IGluZGV4IGM4ZGFhZTAxZjkxLi42OWE2NzEwNjQxOCAxMDA2NDQNCj4N Cj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtc2hhcGVzLmNjDQo+DQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KPg0KPiBAQCAtMjI2LDYg KzIyNiw3MyBAQCBzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNl DQo+DQo+ICAgIH0NCj4NCj4gfTsNCj4NCj4gKy8qIGFsdV9mcm1fZGVmIGNs YXNzLiAgKi8NCj4NCj4gK3N0cnVjdCBhbHVfZnJtX2RlZiA6IHB1YmxpYyBi dWlsZF9iYXNlDQo+DQo+ICt7DQo+DQo+ICsgIC8qIE5vcm1hbGl6ZSB2Zjxv cD5fZnJtIHRvIHZmPG9wPi4gICovDQo+DQo+ICsgIHN0YXRpYyB2b2lkIG5v cm1hbGl6ZV9iYXNlX25hbWUgKGNoYXIgKnRvLCBjb25zdCBjaGFyICpmcm9t LCBpbnQgbGltaXQpDQo+DQo+ICsgIHsNCj4NCj4gKyAgICBzdHJuY3B5ICh0 bywgZnJvbSwgbGltaXQgLSAxKTsNCj4NCj4gKyAgICBjaGFyICpzdWZmaXgg PSBzdHJzdHIgKHRvLCAiX2ZybSIpOw0KPg0KPiArDQo+DQo+ICsgICAgaWYg KHN1ZmZpeCkNCj4NCj4gKyAgICAgICpzdWZmaXggPSAnXDAnOw0KPg0KPiAr DQo+DQo+ICsgICAgdG9bbGltaXQgLSAxXSA9ICdcMCc7DQo+DQo+ICsgIH0N Cj4NCj4gKw0KPg0KPiArICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVp bGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0K Pg0KPiArICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlDQo+ DQo+ICsgIHsNCj4NCj4gKyAgICBjaGFyIGJhc2VfbmFtZVsxNl0gPSB7fTsN Cj4NCj4gKw0KPg0KPiArICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNh biBub3QgYmUgb3ZlcmxvYWRlZC4gICovDQo+DQo+ICsgICAgaWYgKG92ZXJs b2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRf cCAoaW5zdGFuY2UucHJlZCkpDQo+DQo+ICsgICAgICByZXR1cm4gbnVsbHB0 cjsNCj4NCj4gKw0KPg0KPiArICAgIG5vcm1hbGl6ZV9iYXNlX25hbWUgKGJh c2VfbmFtZSwgaW5zdGFuY2UuYmFzZV9uYW1lLCBzaXplb2YgKGJhc2VfbmFt ZSkpOw0KPg0KPiArDQo+DQo+ICsgICAgYi5hcHBlbmRfYmFzZV9uYW1lIChi YXNlX25hbWUpOw0KPg0KPiArDQo+DQo+ICsgICAgLyogdm9wPHNldz5fPG9w PiAtLT4gdm9wPHNldz5fPG9wPl88dHlwZT4uICAqLw0KPg0KPiArICAgIGlm ICghb3ZlcmxvYWRlZF9wKQ0KPg0KPiArICAgICAgew0KPg0KPiArIGIuYXBw ZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+ b3BdKTsNCj4NCj4gKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2lu c3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQo+DQo+ICsgICAgICB9DQo+ DQo+ICsNCj4NCj4gKyAgICAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJpbnNp Yy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeA0KPg0KPiArICAg ICAgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuICAqLw0KPg0KPiAr ICAgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQUkVE X1RZUEVfbSkNCj4NCj4gKyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgp Ow0KPg0KPiArDQo+DQo+ICsgICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRp b25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KPg0KPiArDQo+DQo+ICsg ICAgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2Vz IG5vdCBhZGQgIl9ybSIgc3VmZml4DQo+DQo+ICsgICAgICAgZm9yIHZvcF9y bSBDKysgb3ZlcmxvYWRlZCBBUEkuICAqLw0KPg0KPiArICAgIGlmICghb3Zl cmxvYWRlZF9wKQ0KPg0KPiArICAgICAgYi5hcHBlbmRfbmFtZSAoIl9ybSIp Ow0KPg0KPiArDQo+DQo+ICsgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 DQo+DQo+ICsgIH0NCj4NCj4gKw0KPg0KPiArICBib29sIGNoZWNrIChmdW5j dGlvbl9jaGVja2VyICZjKSBjb25zdCBvdmVycmlkZQ0KPg0KPiArICB7DQo+ DQo+ICsgICAgZ2NjX2Fzc2VydCAoYy5hbnlfdHlwZV9mbG9hdF9wICgpKTsN Cj4NCj4gKw0KPg0KPiArICAgIC8qIENoZWNrIHdoZXRoZXIgcm91bmRpbmcg bW9kZSBhcmd1bWVudCBpcyBhIHZhbGlkIGltbWVkaWF0ZS4gICovDQo+DQo+ ICsgICAgaWYgKGMuYmFzZS0+aGFzX3JvdW5kaW5nX21vZGVfb3BlcmFuZF9w ICgpKQ0KPg0KPiArICAgICAgew0KPg0KPiArIHVuc2lnbmVkIGludCBmcm1f bnVtID0gYy5hcmdfbnVtICgpIC0gMjsNCj4NCj4gKw0KPg0KPiArIHJldHVy biBjLnJlcXVpcmVfaW1tZWRpYXRlX3JhbmdlX29yIChmcm1fbnVtLCBGUk1f U1RBVElDX01JTiwNCj4NCj4gKyAgICAgIEZSTV9TVEFUSUNfTUFYLCBGUk1f RFlOKTsNCj4NCj4gKyAgICAgIH0NCj4NCj4gKw0KPg0KPiArICAgIHJldHVy biB0cnVlOw0KPg0KPiArICB9DQo+DQo+ICt9Ow0KPg0KPiArDQo+DQo+IC8q IHdpZGVuX2FsdV9kZWYgY2xhc3MuIEhhbmRsZSB2d2FkZC92d3N1Yi4gVW5s aWtlDQo+DQo+ICAgICB2YWRkLnZ4L3ZhZGQudnYvdndtdWwudnYvdndtdWwu dngsIHZ3YWRkLnZ2L3Z3YWRkLnZ4L3Z3YWRkLnd2L3Z3YWRkLnd4IGhhcw0K Pg0KPiAgICAgJ09QJyBzdWZmaXggaW4gb3ZlcmxvYWRlZCBBUEkuICAqLw0K Pg0KPiBAQCAtNzQzLDYgKzgxMCw3IEBAIFNIQVBFKHZzZXR2bCwgdnNldHZs bWF4KQ0KPg0KPiBTSEFQRShsb2Fkc3RvcmUsIGxvYWRzdG9yZSkNCj4NCj4g U0hBUEUoaW5kZXhlZF9sb2Fkc3RvcmUsIGluZGV4ZWRfbG9hZHN0b3JlKQ0K Pg0KPiBTSEFQRShhbHUsIGFsdSkNCj4NCj4gK1NIQVBFKGFsdV9mcm0sIGFs dV9mcm0pDQo+DQo+IFNIQVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQ0KPg0K PiBTSEFQRShub19tYXNrX3BvbGljeSwgbm9fbWFza19wb2xpY3kpDQo+DQo+ IFNIQVBFKHJldHVybl9tYXNrLCByZXR1cm5fbWFzaykNCj4NCj4gZGlmZiAt LWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmgNCj4NCj4gaW5kZXggNmE1MTcxM2MxMmMuLjE1ZmVm ODM0MmVjIDEwMDY0NA0KPg0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KPg0KPiArKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0K Pg0KPiBAQCAtMjksNiArMjksNyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IHZzZXR2bG1heDsNCj4NCj4gZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7DQo+DQo+IGV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7 DQo+DQo+IGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1 Ow0KPg0KPiArZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBh bHVfZnJtOw0KPg0KPiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHdpZGVuX2FsdTsNCj4NCj4gZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3No YXBlICpjb25zdCBub19tYXNrX3BvbGljeTsNCj4NCj4gZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZXR1cm5fbWFzazsNCj4NCj4gZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuY2MNCj4NCj4gaW5kZXggNDY2ZTM2ZDUwYjcuLjY0OGM3NjVhNWQxIDEw MDY0NA0KPg0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYw0KPg0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5jYw0KPg0KPiBAQCAtMzg1Miw2ICszODUy LDIzIEBAIGZ1bmN0aW9uX2NoZWNrZXI6OnJlcG9ydF9vdXRfb2ZfcmFuZ2Ug KHVuc2lnbmVkIGludCBhcmdubywgSE9TVF9XSURFX0lOVCBhY3R1YWwsDQo+ DQo+ICAgICBhY3R1YWwsIGFyZ25vICsgMSwgZm5kZWNsLCBtaW4sIG1heCk7 DQo+DQo+IH0NCj4NCj4gKy8qIFJlcG9ydCB0aGF0IExPQ0FUSU9OIGhhcyBh IGNhbGwgdG8gRk5ERUNMIGluIHdoaWNoIGFyZ3VtZW50IEFSR05PIGhhcw0K Pg0KPiArICAgdGhlIHZhbHVlIEFDVFVBTCwgd2hlcmVhcyB0aGUgZnVuY3Rp b24gcmVxdWlyZXMgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UNCj4NCj4gKyAgIFtN SU4sIE1BWF0gb3IgT1JfVkFMLiAgQVJHTk8gY291bnRzIGZyb20gemVyby4g ICovDQo+DQo+ICt2b2lkDQo+DQo+ICtmdW5jdGlvbl9jaGVja2VyOjpyZXBv cnRfb3V0X29mX3JhbmdlX2FuZF9ub3QgKHVuc2lnbmVkIGludCBhcmdubywN Cj4NCj4gKyAgICAgICAgSE9TVF9XSURFX0lOVCBhY3R1YWwsDQo+DQo+ICsg ICAgICAgIEhPU1RfV0lERV9JTlQgbWluLA0KPg0KPiArICAgICAgICBIT1NU X1dJREVfSU5UIG1heCwNCj4NCj4gKyAgICAgICAgSE9TVF9XSURFX0lOVCBv cl92YWwpIGNvbnN0DQo+DQo+ICt7DQo+DQo+ICsgIGVycm9yX2F0IChsb2Nh dGlvbiwNCj4NCj4gKyAgICAgInBhc3NpbmcgJXdkIHRvIGFyZ3VtZW50ICVk IG9mICVxRSwgd2hpY2ggZXhwZWN0cyINCj4NCj4gKyAgICAgIiBhIHZhbHVl IGluIHRoZSByYW5nZSBbJXdkLCAld2RdIG9yICV3ZCIsDQo+DQo+ICsgICAg IGFjdHVhbCwgYXJnbm8gKyAxLCBmbmRlY2wsIG1pbiwgbWF4LCBvcl92YWwp Ow0KPg0KPiArfQ0KPg0KPiArDQo+DQo+ICsNCj4NCj4gLyogQ2hlY2sgdGhh dCBhcmd1bWVudCBBUkdOTyBpcyBhbiBpbnRlZ2VyIGNvbnN0YW50IGV4cHJl c3Npb24gYW5kDQo+DQo+ICAgICBzdG9yZSBpdHMgdmFsdWUgaW4gVkFMVUVf T1VUIGlmIHNvLiAgVGhlIGNhbGxlciBzaG91bGQgZmlyc3QNCj4NCj4gICAg IGNoZWNrIHRoYXQgYXJndW1lbnQgQVJHTk8gZXhpc3RzLiAgKi8NCj4NCj4g QEAgLTM4OTMsNiArMzkxMCwzMCBAQCBmdW5jdGlvbl9jaGVja2VyOjpyZXF1 aXJlX2ltbWVkaWF0ZV9yYW5nZSAodW5zaWduZWQgaW50IGFyZ25vLA0KPg0K PiAgICByZXR1cm4gdHJ1ZTsNCj4NCj4gfQ0KPg0KPiArLyogQ2hlY2sgdGhh dCBhcmd1bWVudCBSRUxfQVJHTk8gaXMgYW4gaW50ZWdlciBjb25zdGFudCBl eHByZXNzaW9uIGluIHRoZQ0KPg0KPiArICAgcmFuZ2UgW01JTiwgTUFYXSBv ciBPUl9WQUwuICBSRUxfQVJHTk8gY291bnRzIGZyb20gdGhlIGVuZCBvZiB0 aGUNCj4NCj4gKyAgIHByZWRpY2F0aW9uIGFyZ3VtZW50cy4gICovDQo+DQo+ ICtib29sDQo+DQo+ICtmdW5jdGlvbl9jaGVja2VyOjpyZXF1aXJlX2ltbWVk aWF0ZV9yYW5nZV9vciAodW5zaWduZWQgaW50IGFyZ25vLA0KPg0KPiArICAg ICAgIEhPU1RfV0lERV9JTlQgbWluLA0KPg0KPiArICAgICAgIEhPU1RfV0lE RV9JTlQgbWF4LA0KPg0KPiArICAgICAgIEhPU1RfV0lERV9JTlQgb3JfdmFs KSBjb25zdA0KPg0KPiArew0KPg0KPiArICBnY2NfYXNzZXJ0IChtaW4gPj0g MCAmJiBtaW4gPD0gbWF4KTsNCj4NCj4gKyAgZ2NjX2Fzc2VydCAoYXJnbm8g PCBtX25hcmdzKTsNCj4NCj4gKw0KPg0KPiArICB0cmVlIGFyZyA9IG1fYXJn c1thcmdub107DQo+DQo+ICsgIEhPU1RfV0lERV9JTlQgYWN0dWFsID0gdHJl ZV90b191aHdpIChhcmcpOw0KPg0KPiArDQo+DQo+ICsgIGlmICghSU5fUkFO R0UgKGFjdHVhbCwgbWluLCBtYXgpICYmIGFjdHVhbCAhPSBvcl92YWwpDQo+ DQo+ICsgICAgew0KPg0KPiArICAgICAgcmVwb3J0X291dF9vZl9yYW5nZV9h bmRfbm90IChhcmdubywgYWN0dWFsLCBtaW4sIG1heCwgb3JfdmFsKTsNCj4N Cj4gKyAgICAgIHJldHVybiBmYWxzZTsNCj4NCj4gKyAgICB9DQo+DQo+ICsN Cj4NCj4gKyAgcmV0dXJuIHRydWU7DQo+DQo+ICt9DQo+DQo+ICsNCj4NCj4g LyogUGVyZm9ybSBzZW1hbnRpYyBjaGVja3Mgb24gdGhlIGNhbGwuICBSZXR1 cm4gdHJ1ZSBpZiB0aGUgY2FsbCBpcyB2YWxpZCwNCj4NCj4gICAgIG90aGVy d2lzZSByZXBvcnQgYSBzdWl0YWJsZSBlcnJvci4gICovDQo+DQo+IGJvb2wN Cj4NCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5oDQo+DQo+IGluZGV4IGIwYzNhNDJkODIwLi5lMzU4YThl NGQ5MSAxMDA2NDQNCj4NCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaA0KPg0KPiArKysgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQo+DQo+IEBAIC00NDIsNiAr NDQyLDggQEAgcHVibGljOg0KPg0KPiAgICBib29sIGNoZWNrICh2b2lkKTsN Cj4NCj4gICAgYm9vbCByZXF1aXJlX2ltbWVkaWF0ZSAodW5zaWduZWQgaW50 LCBIT1NUX1dJREVfSU5ULCBIT1NUX1dJREVfSU5UKSBjb25zdDsNCj4NCj4g KyAgYm9vbCByZXF1aXJlX2ltbWVkaWF0ZV9yYW5nZV9vciAodW5zaWduZWQg aW50LCBIT1NUX1dJREVfSU5ULA0KPg0KPiArICAgIEhPU1RfV0lERV9JTlQs IEhPU1RfV0lERV9JTlQpIGNvbnN0Ow0KPg0KPiBwcml2YXRlOg0KPg0KPiAg ICBib29sIHJlcXVpcmVfaW1tZWRpYXRlX3JhbmdlICh1bnNpZ25lZCBpbnQs IEhPU1RfV0lERV9JTlQsDQo+DQo+IEBAIC00NDksNiArNDUxLDggQEAgcHJp dmF0ZToNCj4NCj4gICAgdm9pZCByZXBvcnRfbm9uX2ljZSAodW5zaWduZWQg aW50KSBjb25zdDsNCj4NCj4gICAgdm9pZCByZXBvcnRfb3V0X29mX3Jhbmdl ICh1bnNpZ25lZCBpbnQsIEhPU1RfV0lERV9JTlQsIEhPU1RfV0lERV9JTlQs DQo+DQo+ICAgICBIT1NUX1dJREVfSU5UKSBjb25zdDsNCj4NCj4gKyAgdm9p ZCByZXBvcnRfb3V0X29mX3JhbmdlX2FuZF9ub3QgKHVuc2lnbmVkIGludCwg SE9TVF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCwNCj4NCj4gKyAgICAgSE9T VF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCkgY29uc3Q7DQo+DQo+ICAgIC8q IFRoZSB0eXBlIG9mIHRoZSByZXNvbHZlZCBmdW5jdGlvbi4gICovDQo+DQo+ ICAgIHRyZWUgbV9mbnR5cGU7DQo+DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZnJtLWVycm9yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWVycm9yLmMNCj4NCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4NCj4gaW5kZXggMDAwMDAwMDAwMDAuLjRlYmFh MTVhYjBiDQo+DQo+IC0tLSAvZGV2L251bGwNCj4NCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1lcnJvci5jDQo+DQo+IEBAIC0wLDAgKzEsMTUgQEANCj4NCj4gKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQo+DQo+ICsvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCj4NCj4gKw0KPg0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Pg0KPiArDQo+DQo+ICt0eXBlZGVmIGZsb2F0IGZsb2F0MzJfdDsNCj4NCj4g Kw0KPg0KPiArdm9pZCB0ZXN0X2Zsb2F0X3BvaW50X2ZybV9lcnJvciAoZmxv YXQzMl90ICpvdXQsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsIHNpemVfdCB2bCkNCj4NCj4gK3sNCj4NCj4gKyAgdmZsb2F0MzJtMV90 IHYxID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCBvcDIsIDUs IHZsKTsgLyogeyBkZy1lcnJvciB7cGFzc2luZyA1IHRvIGFyZ3VtZW50IDMg b2YgJ19fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0nLCB3aGljaCBleHBlY3Rz IGEgdmFsdWUgaW4gdGhlIHJhbmdlIFxbMCwgNFxdIG9yIDd9IH0gKi8NCj4N Cj4gKyAgdmZsb2F0MzJtMV90IHYyID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MV9ybSAodjEsIHYxLCA2LCB2bCk7ICAgLyogeyBkZy1lcnJvciB7cGFzc2lu ZyA2IHRvIGFyZ3VtZW50IDMgb2YgJ19fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0nLCB3aGljaCBleHBlY3RzIGEgdmFsdWUgaW4gdGhlIHJhbmdlIFxbMCwg NFxdIG9yIDd9IH0gKi8NCj4NCj4gKyAgdmZsb2F0MzJtMV90IHYzID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAodjIsIHYyLCA4LCB2bCk7ICAgLyog eyBkZy1lcnJvciB7cGFzc2luZyA4IHRvIGFyZ3VtZW50IDMgb2YgJ19fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0nLCB3aGljaCBleHBlY3RzIGEgdmFsdWUg aW4gdGhlIHJhbmdlIFxbMCwgNFxdIG9yIDd9IH0gKi8NCj4NCj4gKw0KPg0K PiArICBfX3Jpc2N2X3ZzZTMyX3ZfZjMybTEgKG91dCwgdjMsIHZsKTsNCj4N Cj4gK30NCj4NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0uYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1mcm0uYw0KPg0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPg0KPiBpbmRl eCAwMDAwMDAwMDAwMC4uOTUyNzFiMmM4MjINCj4NCj4gLS0tIC9kZXYvbnVs bA0KPg0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLmMNCj4NCj4gQEAgLTAsMCArMSwz MCBAQA0KPg0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4NCj4gKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KPg0KPiArDQo+DQo+ICsjaW5jbHVkZSAicmlz Y3ZfdmVjdG9yLmgiDQo+DQo+ICsNCj4NCj4gK3R5cGVkZWYgZmxvYXQgZmxv YXQzMl90Ow0KPg0KPiArDQo+DQo+ICt2ZmxvYXQzMm0xX3QNCj4NCj4gK3Rl c3RfcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHZmbG9hdDMybTFfdCBvcDEs IHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkgew0KPg0KPiArICByZXR1 cm4gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCBvcDIsIDAsIHZs KTsNCj4NCj4gK30NCj4NCj4gKw0KPg0KPiArdmZsb2F0MzJtMV90DQo+DQo+ ICt0ZXN0X3ZmYWRkX3Z2X2YzMm0xX21fcm0odmJvb2wzMl90IG1hc2ssIHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQo+DQo+ICsgc2l6 ZV90IHZsKSB7DQo+DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX21fcm0obWFzaywgb3AxLCBvcDIsIDAsIHZsKTsNCj4NCj4gK30NCj4N Cj4gKw0KPg0KPiArdmZsb2F0MzJtMV90DQo+DQo+ICt0ZXN0X3ZmYWRkX3Zm X2YzMm0xX3JtKHZmbG9hdDMybTFfdCBvcDEsIGZsb2F0MzJfdCBvcDIsIHNp emVfdCB2bCkgew0KPg0KPiArICByZXR1cm4gX19yaXNjdl92ZmFkZF92Zl9m MzJtMV9ybShvcDEsIG9wMiwgMCwgdmwpOw0KPg0KPiArfQ0KPg0KPiArDQo+ DQo+ICt2ZmxvYXQzMm0xX3QNCj4NCj4gK3Rlc3RfdmZhZGRfdmZfZjMybTFf bV9ybSh2Ym9vbDMyX3QgbWFzaywgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQz Ml90IG9wMiwNCj4NCj4gKyBzaXplX3QgdmwpIHsNCj4NCj4gKyAgcmV0dXJu IF9fcmlzY3ZfdmZhZGRfdmZfZjMybTFfbV9ybShtYXNrLCBvcDEsIG9wMiwg MCwgdmwpOw0KPg0KPiArfQ0KPg0KPiArDQo+DQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05 XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQo+DQo+ IC0tDQo+DQo+IDIuMzQuMQ0KPg0KPg0KPg0KPg0KDQo= --_000_MW5PR11MB5908D4824B8200F13527AE3EA925AMW5PR11MB5908namp_--