From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by sourceware.org (Postfix) with ESMTPS id A96EE3858C5F for ; Mon, 6 Mar 2023 10:12:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A96EE3858C5F 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=1678097562; x=1709633562; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KowpA4+aDb/K3OwS0zEl+9Upwpeu2KCOnJPa6scPo+k=; b=Ns/FSeEHikwhXZNw77zJ7mrztwgADY3O18qjx2LaNNO7wBh2kQE+8JkY ABr7Le/KzU641DXxLgaEF5tdF2AqO9cRIlKvSw92k8bQvfwcYD486nkyS j3l1jJ7MnfX+ztWy2pyIXbmJIEXqUjDxrvcIkSR48l8sdvHQNBfwqkaws b2IGAYTstC+Vn6/FTcLdx//WrYHJKm37sDBf1jZbj1pxEXH2QMU5/t5q8 CejaJ3gFTgjLduQDutji42kzvFZkQOq/PAZK2+AonhpOoa2TgUU3WX8DV RciE8jVseZLHdfRC9XPhD+wgs6KHF32Q6q+WzbD4FwzYdM+H5CqccPn8V w==; X-IronPort-AV: E=McAfee;i="6500,9779,10640"; a="337836502" X-IronPort-AV: E=Sophos;i="5.98,236,1673942400"; d="scan'208";a="337836502" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Mar 2023 02:12:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10640"; a="706386993" X-IronPort-AV: E=Sophos;i="5.98,236,1673942400"; d="scan'208";a="706386993" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 06 Mar 2023 02:12:41 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 6 Mar 2023 02:12:40 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.21; Mon, 6 Mar 2023 02:12:40 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.21 via Frontend Transport; Mon, 6 Mar 2023 02:12:40 -0800 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) 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.21; Mon, 6 Mar 2023 02:12:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bzdFVA6n33TwngQ/MKn9W/R+JRc9PIVhqWMuVDTXbNp5xRRsu8URyvyEsdOAghoBdpcKEyT6TMDvX59sPOsmX2piJSkrfX3iR2joiiIUiWpJv3Z1V8/vAsxZaLVjRtIkcrsEXjKx97hrIMs/lVhP3BpD5/UwloBDStwROM1FIg7OZiPTwwsxm5tDIr8oeEsu963rcQgQUW19A2lazS10W5prEcGpUjdFoPbpn6tqVIx2jRcIVws40tj42b5whvwpkBgAqlNEYSy2+2t12W3+6m/7GQGyw328XWUQ1EPQi+7mCDwZXPsvYPPqJrQAE6hJI8MpuHjdnXqtln0Byys1xg== 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=KowpA4+aDb/K3OwS0zEl+9Upwpeu2KCOnJPa6scPo+k=; b=m9UHCJwe2Xb41MJnKXHV6HewN8dktu33GKOkEIryMtbfS4UpHvsTOf4nGW0iJyMvyQlXsqg0LrLzIxyWm8M6MkgrtUA12Jbq89V4vUEI3hCm/lj2IuH48PbE/OuvZ7ZNDF557c4ac6caycE7Hfq5lDXUO37ZDHbRHFgs6xBgCP00QdWcrp1nzMzq8GgsLYG+bT0vIcOFD0AepZSunX9+MaapsPXFPGQTMrcjsQAirKWj6kmExlsX8IY5pHNv3qvQnuqxKuXX8XJ95GsFC35k/e0UrZsf5uH1PAhU68dV24WCk8EWB6iBCXzwnleA68tVGGjeZtA+04HF5FsliskYxA== 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 MW3PR11MB4699.namprd11.prod.outlook.com (2603:10b6:303:54::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Mon, 6 Mar 2023 10:12:32 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719%8]) with mapi id 15.20.6156.023; Mon, 6 Mar 2023 10:12:32 +0000 From: "Li, Pan2" To: Kito Cheng CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "rguenther@suse.de" , "richard.sandiford@arm.com" Subject: RE: [PATCH v3] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Topic: [PATCH v3] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Index: AQHZTXhWuGWxSBeS7UWEVFXCVJVD7K7osyIAgATZx/A= Date: Mon, 6 Mar 2023 10:12:32 +0000 Message-ID: References: <20230303023141.125126-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_|MW3PR11MB4699:EE_ x-ms-office365-filtering-correlation-id: 3dd5ab60-ab63-4c53-41c0-08db1e2b4cf9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NOD3d4iAGXUeTCsszIrBQlyCpXLWxSNFFGk8Le175BjMD9BSMzdYO66nOZnagJ5rUcTcpQrYrKGLAyNTLMCzSDUyuBNqZvOPBc3C/89LFaLspwfOPzvc903qB6C2e3Sx0gc1+wjy6IQgTJopJ2MWwFMB+nGsQSHi/vqUuhkujzypg97Mz/Pz9szmEng0IilIl9YEphxN+Uuo/AHvmy+FE5adx/ldBtAIDAJ/gtr7coYcVaT9GoTOFpt9MINyXCtzTSBi826qHavWMuOxYt+4EumoHPKJgxMRApYDv1PO6k/MnYzPjqAq7i+s40EbkCsAb10qgAirBPKUf4ELoZaNjYEG7czNcYXLIDxupJFjMmzLKKaW2g9vaDqpg632p/Hn0zje5eT2+oPJC3UC9OaEiFkA8vHZvygRJNOlt7nmIensyJGhWZLquVqkX/uNgo2EQsIK2WxIsnzIsHtHHG8WwKPkRAR5gmTydiOiA/t5JB2SfK+P/pBiC/fvjW0/yu3rpX1Ku9dbYrt+EyynqJgAZHCaBeA34TQGvZfl48EKju099bm1dYz7nAnu/O4C1Y62uqLJtEFGthDQhhxOF1vcKTUl0xiRuonCSv90lnczCV7x1w9cIOKCfPh1BLno9aWdcB45xTEV9eDBANczKyZaBSWzJ121s0MDumdy+nzU7k2nfMfyBYbRchM8jPR0gzye 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:(13230025)(346002)(366004)(136003)(396003)(39860400002)(376002)(451199018)(84970400001)(33656002)(4326008)(76116006)(66946007)(66556008)(41300700001)(8676002)(6916009)(8936002)(64756008)(66446008)(2906002)(30864003)(5660300002)(38070700005)(86362001)(82960400001)(122000001)(66476007)(38100700002)(52536014)(7696005)(71200400001)(55016003)(478600001)(54906003)(316002)(83380400001)(6506007)(9686003)(53546011)(186003)(26005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QTN0aDZ1ajljbDljWkpPcHEzVEgybUVtMGFmTEY2bDBiVmQrQms0bXRnNmhB?= =?utf-8?B?dGhtZXNMVnhwT1ZaSHlkTzBlNjlIaGpwVzdIcFVnckZyZzZsQXB5R2U2R0dy?= =?utf-8?B?WStxMGVJUjdZRU1YbW9JMWpiN2RxVzRxTmp3YzV6ci9abDVnMDJPcjZTTW9D?= =?utf-8?B?WmJ5YlBDQU5SVzFPMnFRZExydUZ2Q0FWUnRNRUR4ODRSNVNIeWZzYS9pMkx2?= =?utf-8?B?SjZrUVc4K0N3eGFOVnlEM21pNEJFSkJpeTNFQUJQUmVMMW1XTFNRZEhabVh5?= =?utf-8?B?UGUvMERCODMzVWhPOURFb2JVT3UrV25ablhTZTlPQ010YkVHUVREd2ErOStL?= =?utf-8?B?RmFRUlRLREZMVVM2aHREMzB1VjN0RmplWTJVWmFxU2Ftek1jcmYwby8rUHpX?= =?utf-8?B?eXZWaTBoc1NicVhZNTdhN094NnVNdVozVEJucG94QlloRGM3Ylc1KzQ4cHdD?= =?utf-8?B?bXlhQlg4UEpRWWtaT3FpTWN6ZThKcTBQZjNnRmJaaWJPeW1MZU1xU0h2aTVj?= =?utf-8?B?cHJUVEZSNTBmSkVyd21XSDI2RmxSZzNwYTMwM0NtaXZWUTAwL000Q0Vvdy8z?= =?utf-8?B?SjI1N3lvek5TeThobEliZlBZcitZOHhpNlFzK3R5L1NNQUpQMlZtUXN6SzVJ?= =?utf-8?B?bGtxMnlLVW9VQ0VwMHpaYWg3MHJSeUw4Mi8xajhwa0VaWTNYMzNENzBZb1kx?= =?utf-8?B?Vnh1ajM4cEZvYnFsV0QrQXNMZnpwNGVkSEl5RDlsdlQyb2NqR0JyeXVuMitF?= =?utf-8?B?b25HTUtlUlUxN3hrdVRkOHZYZ01pbStOZm1qTEQxSXprd3hQR3VxQ0JiWndC?= =?utf-8?B?VFhOaWI3K0M2YkRiOHYralVKQWFUWnNkTmV2WW55dm1LanQxbmo2aHNYRTVK?= =?utf-8?B?cklMNUhmUHZUMVdhc05BSTlISmcxSHh6b1FPcVdhcGo5dSsvemQ1VDliU2lw?= =?utf-8?B?YnB1YytyV0c0b2ZyWkVrelRIVytRNVZQVzZKVlpsWGFIMEU1blRBQUhOWVN4?= =?utf-8?B?b0JBZG9yaU1ZTWZHcDlkV0drU3JEWmpLa0lpOFJnYmExcmRETUczMFpJMk5y?= =?utf-8?B?YU4wVE5xYTh2MnVUTkNDTFBwczM5TERuS0NxRXNrSTdVb2NLenpQSjF6RXl6?= =?utf-8?B?OUY5NDduVThMMU1Nd0M4MitqTDV5VDlzT09mWVp5U2ZYai9ONCtmOWpGRGgr?= =?utf-8?B?cmNpcVFnTzRDcUN0WWVmeVdsSWsrNVVoMFAvWkxVV2pWMmFuUTgwT1RldDVV?= =?utf-8?B?ZWJpSS9PSUpsRUtRcjA0U05hTHd6aS83YXRJdlB1Q3AvczdFZCtBT09UQ0k5?= =?utf-8?B?RkdGM1o3SjFDOCtWdWE4Rnc0MDJzL0F4S05jcW9QZXdsb0pQdmhJNVcyRUFy?= =?utf-8?B?U2I0NklpLzVrenhPNEU2STJSc3ZBZkhYMWppWFVESW1YcEpNTXJsN0tOUUFs?= =?utf-8?B?THNEVk91SjJhekQzOXBITVk0SHc0QlJxZHhzNHNjWjRNTFVVRldqUStKYk9h?= =?utf-8?B?R3hJUzBsQmxJd1o3YWZ2eUl0bVFhUk14djBpRHBkeG9lUmRpdStQNmRvYnNN?= =?utf-8?B?SzgwTVEwL3dSYkx3bWFWcFh5azF1YTlrOTNRdHcwbXg2OVdvYXVpRlJXREhV?= =?utf-8?B?M0k5SkdscytvaVgvamxwVVdGN2dhWWl3MnBpVkM4YmpzSmVpTmtsMFdvWmZW?= =?utf-8?B?dUlENUU0NDMvWjdvWGp4SkFHNTBXUUhrRkRVdE5uV1BRNkVuOTNiMmo1WGdn?= =?utf-8?B?ci9PQ2lGMjhHUGpSSjFBSytpM2pSV3BEN3lPY0U0ZFNTRU9JYXFkTmtUbzdI?= =?utf-8?B?alpJZ1QyK2tkQmZoNDFINGpCdStsQ3dFbjIxVEFsN3RsdzFTRFlmUkJ1VVlj?= =?utf-8?B?ZS9KWFl4K3N1QmcxaTd5dXpSdDI0LzZwdEw4WmpacGVwVWF1THg3OWpLTkpy?= =?utf-8?B?c0JZeThLVmJ0RDc1UUFXNXRFa3EyZlEyM24yak9mczZjQUl1TTJBNWtYM3dk?= =?utf-8?B?UmM3eExRbUcyem5RRWhyd2hyNXhIckRxemtBb0tHS20rbTBLTHNyYjhrVk1N?= =?utf-8?B?K3EyeHlqRnppVHhmSUNVT25sRUlVd2lzM1ZxWnRuNmloYTBIeEVLM0ZuWXVp?= =?utf-8?Q?dsD6ZMBpxLBLBYKOMrtEr9OT6?= 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: 3dd5ab60-ab63-4c53-41c0-08db1e2b4cf9 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2023 10:12:32.6575 (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: xtMq3qESX6cziwx72GJSrh0dj0ZC/GNL6LTblfA2+smaF+B9n8avRMrqdaj53dRYsL6idGSmYnZlJu3DKgMlng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4699 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_NONE,TXREP 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: VGhhbmsgeW91LCBLaXRvLg0KDQpIaSBSaWNoYXJkIFNhbmRpZm9yZCwNCg0KQ291bGQgeW91IHBs ZWFzZSBoZWxwIHRvIHJldmlldyB0aGlzIFBBVENIIGNvbnRpbnVvdXNseT8gVGhhbmsgeW91IGFu ZCBoYXZlIGEgbmljZSBkYXkhDQoNClBhbg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogS2l0byBDaGVuZyA8a2l0by5jaGVuZ0BzaWZpdmUuY29tPiANClNlbnQ6IEZyaWRheSwg TWFyY2ggMywgMjAyMyA0OjA2IFBNDQpUbzogTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0K Q2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBqdXpoZS56aG9uZ0ByaXZhaS5haTsgcmd1ZW50 aGVyQHN1c2UuZGU7IHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20NClN1YmplY3Q6IFJlOiBbUEFU Q0ggdjNdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1c3Rt ZW50DQoNClRoYW5rcyENCg0KUklTQy1WIHBhcnQgaXMgTEdUTSwgYW5kIEkgd291bGQgbGlrZSB0 byB3YWl0IGZvciBSaWNoYXJkIFNhbmRpZm9yZCB0byBzYXkgT0sgdG8gdGhlIGdlbm1vZGVzLmNj IHBhcnQgOikNCg0KDQpPbiBGcmksIE1hciAzLCAyMDIzIGF0IDEwOjMxIEFNIDxwYW4yLmxpQGlu dGVsLmNvbT4gd3JvdGU6DQo+DQo+IEZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQo+ DQo+ICAgICAgICAgRml4IHRoZSBidWcgb2YgdGhlIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIHdp dGggdGhlIGFkanVzdG1lbnQuDQo+ICAgICAgICAgVGhlIGJpdHMgc2l6ZSBvZiB2Ym9vbCpfdCB3 aWxsIGJlIGFkanVzdGVkIHRvDQo+ICAgICAgICAgWzEsIDIsIDQsIDgsIDE2LCAzMiwgNjRdIGFj Y29yZGluZyB0byB0aGUgcnZ2IHNwZWMgMS4wIGlzYS4gVGhlDQo+ICAgICAgICAgYWRqdXN0ZWQg bW9kZSBwcmVjaXNvbiBvZiB2Ym9vbCpfdCB3aWxsIGhlbHAgdW5kZXJseWluZyBwYXNzIHRvDQo+ ICAgICAgICAgbWFrZSB0aGUgcmlnaHQgZGVjaXNpb24gZm9yIGJvdGggdGhlIGNvcnJlY3RuZXNz IGFuZCBvcHRpbWl6YXRpb24uDQo+DQo+ICAgICAgICAgR2l2ZW4gYmVsb3cgc2FtcGxlIGNvZGU6 DQo+ICAgICAgICAgdm9pZCB0ZXN0XzEoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkNCj4gICAgICAgICB7DQo+ICAgICAgICAgICB2Ym9vbDhfdCB2MiA9ICoodmJv b2w4X3QqKWluOw0KPiAgICAgICAgICAgdmJvb2wxNl90IHY1ID0gKih2Ym9vbDE2X3QqKWluOw0K PiAgICAgICAgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjU7DQo+ICAgICAgICAgICAq KHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYyOw0KPiAgICAgICAgIH0NCj4NCj4gICAgICAgICBC ZWZvcmUgdGhlIHByZWNpc2lvbiBhZGp1c3RtZW50Og0KPiAgICAgICAgIGFkZGkgICAgYTQsYTEs MTAwDQo+ICAgICAgICAgdnNldHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQo+ICAgICAgICAgYWRk aSAgICBhMSxhMSwyMDANCj4gICAgICAgICB2bG0udiAgIHYyNCwwKGEwKQ0KPiAgICAgICAgIHZz bS52ICAgdjI0LDAoYTQpDQo+ICAgICAgICAgLy8gTmVlZCBvbmUgdnNldHZsaSBhbmQgdmxtLnYg Zm9yIGNvcnJlY3RuZXNzIGhlcmUuDQo+ICAgICAgICAgdnNtLnYgICB2MjQsMChhMSkNCj4NCj4g ICAgICAgICBBZnRlciB0aGUgcHJlY2lzaW9uIGFkanVzdG1lbnQ6DQo+ICAgICAgICAgY3NyciAg ICB0MCx2bGVuYg0KPiAgICAgICAgIHNsbGkgICAgdDEsdDAsMQ0KPiAgICAgICAgIGNzcnIgICAg YTMsdmxlbmINCj4gICAgICAgICBzdWIgICAgIHNwLHNwLHQxDQo+ICAgICAgICAgc2xsaSAgICBh NCxhMywxDQo+ICAgICAgICAgYWRkICAgICBhNCxhNCxzcA0KPiAgICAgICAgIHN1YiAgICAgYTMs YTQsYTMNCj4gICAgICAgICB2c2V0dmxpIGE1LHplcm8sZTgsbTEsdGEsbWENCj4gICAgICAgICBh ZGRpICAgIGEyLGExLDIwMA0KPiAgICAgICAgIHZsbS52ICAgdjI0LDAoYTApDQo+ICAgICAgICAg dnNtLnYgICB2MjQsMChhMykNCj4gICAgICAgICBhZGRpICAgIGExLGExLDEwMA0KPiAgICAgICAg IHZzZXR2bGkgYTQsemVybyxlOCxtZjIsdGEsbWENCj4gICAgICAgICBjc3JyICAgIHQwLHZsZW5i DQo+ICAgICAgICAgdmxtLnYgICB2MjUsMChhMykNCj4gICAgICAgICB2c20udiAgIHYyNSwwKGEy KQ0KPiAgICAgICAgIHNsbGkgICAgdDEsdDAsMQ0KPiAgICAgICAgIHZzZXR2bGkgYTUsemVybyxl OCxtMSx0YSxtYQ0KPiAgICAgICAgIHZzbS52ICAgdjI0LDAoYTEpDQo+ICAgICAgICAgYWRkICAg ICBzcCxzcCx0MQ0KPiAgICAgICAgIGpyICAgICAgcmENCj4NCj4gICAgICAgICBIb3dldmVyLCB0 aGVyZSBtYXkgYmUgc29tZSBvcHRpbWl6YXRpb24gb3Bwb3J0dW5hdGVzIGFmdGVyDQo+ICAgICAg ICAgdGhlIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1lbnQuIEl0IGNhbiBiZSB0b2tlbiBjYXJlIG9m IGluDQo+ICAgICAgICAgdGhlIFJJU0MtViBiYWNrZW5kIGluIHRoZSB1bmRlcmx5aW5nIHNlcGFy dGVkIFBSKHMpLg0KPg0KPiAgICAgICAgIFBSIDEwODE4NQ0KPiAgICAgICAgIFBSIDEwODY1NA0K Pg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LW1v ZGVzLmRlZiAoQURKVVNUX1BSRUNJU0lPTik6DQo+ICAgICAgICAgKiBjb25maWcvcmlzY3Yvcmlz Y3YuY2MgKHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbik6DQo+ICAgICAgICAgKiBjb25maWcvcmlz Y3YvcmlzY3YuaCAocmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uKToNCj4gICAgICAgICAqIGdlbm1v ZGVzLmNjIChBREpVU1RfUFJFQ0lTSU9OKToNCj4gICAgICAgICAoZW1pdF9tb2RlX2FkanVzdG1l bnRzKToNCj4NCj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+DQo+ICAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTIuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTMuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTQuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3ByMTA4MTg1LTUuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3By MTA4MTg1LTYuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTcuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTguYzogTmV3IHRlc3QuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IFBhbiBMaSA8cGFuMi5saUBpbnRl bC5jb20+DQo+IC0tLQ0KPiAgZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYgICAgICAg ICAgICB8ICA4ICsrKw0KPiAgZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyAgICAgICAgICAgICAg ICAgICB8IDEyICsrKysNCj4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuaCAgICAgICAgICAgICAg ICAgICAgfCAgMSArDQo+ICBnY2MvZ2VubW9kZXMuY2MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjYgKysrKysrLQ0KPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTEuYyB8IDY4ICsrKysrKysrKysrKysrKysrKyAgDQo+IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS0yLmMgfCA2OCArKysrKysrKysrKysrKysrKysgIA0KPiBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jIHwgNjggKysrKysrKysrKysr KysrKysrICANCj4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYyB8 IDY4ICsrKysrKysrKysrKysrKysrKyAgDQo+IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9wcjEwODE4NS01LmMgfCA2OCArKysrKysrKysrKysrKysrKysgIA0KPiBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jIHwgNjggKysrKysrKysrKysrKysrKysrICAN Cj4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYyB8IDY4ICsrKysr KysrKysrKysrKysrKyAgDQo+IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS04LmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysNCj4gIDEyIGZpbGVzIGNoYW5nZWQsIDU5 OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUgDQo+IDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMS5jDQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0KPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0zLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcHIxMDgxODUtNC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYw0K Pg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYgDQo+IGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4gaW5kZXggZDUzMDVlZmE4YTYuLjEx MGJkZGNlODUxIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRl Zg0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPiBAQCAtNzIsNiAr NzIsMTQgQEAgQURKVVNUX0JZVEVTSVpFIChWTngxNkJJLCByaXNjdl92ZWN0b3JfY2h1bmtzICog DQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspOyAgQURKVVNUX0JZVEVTSVpFIChWTngz MkJJLCANCj4gcmlzY3ZfdmVjdG9yX2NodW5rcyAqIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1 bmspOyAgQURKVVNUX0JZVEVTSVpFIA0KPiAoVk54NjRCSSwgcmlzY3Zfdl9hZGp1c3RfbnVuaXRz IChWTng2NEJJbW9kZSwgOCkpOw0KPg0KPiArQURKVVNUX1BSRUNJU0lPTiAoVk54MUJJLCByaXNj dl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDFCSW1vZGUsIDEpKTsgDQo+ICtBREpVU1RfUFJFQ0lT SU9OIChWTngyQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MkJJbW9kZSwgMikpOyAN Cj4gK0FESlVTVF9QUkVDSVNJT04gKFZOeDRCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChW Tng0Qkltb2RlLCA0KSk7IA0KPiArQURKVVNUX1BSRUNJU0lPTiAoVk54OEJJLCByaXNjdl92X2Fk anVzdF9wcmVjaXNpb24gKFZOeDhCSW1vZGUsIDgpKTsgDQo+ICtBREpVU1RfUFJFQ0lTSU9OIChW TngxNkJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDE2Qkltb2RlLCANCj4gKzE2KSk7 IEFESlVTVF9QUkVDSVNJT04gKFZOeDMyQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiANCj4g KyhWTngzMkJJbW9kZSwgMzIpKTsgQURKVVNUX1BSRUNJU0lPTiAoVk54NjRCSSwgDQo+ICtyaXNj dl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDY0Qkltb2RlLCA2NCkpOw0KPiArDQo+ICAvKg0KPiAg ICAgfCBNb2RlICAgICAgICB8IE1JTl9WTEVOPTMyIHwgTUlOX1ZMRU49MzIgfCBNSU5fVkxFTj02 NCB8IE1JTl9WTEVOPTY0IHwNCj4gICAgIHwgICAgICAgICAgICAgfCBMTVVMICAgICAgICB8IFNF Vy9MTVVMICAgIHwgTE1VTCAgICAgICAgfCBTRVcvTE1VTCAgICB8DQo+IGRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyANCj4g aW5kZXggZjExYjc5NDlhNDkuLmFjNWMyNTI3ZmRlIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4gQEAg LTEwMDMsNiArMTAwMywxOCBAQCByaXNjdl92X2FkanVzdF9udW5pdHMgKG1hY2hpbmVfbW9kZSBt b2RlLCBpbnQgc2NhbGUpDQo+ICAgIHJldHVybiBzY2FsZTsNCj4gIH0NCj4NCj4gKy8qIENhbGwg ZnJvbSBBREpVU1RfUFJFQ0lTSU9OIGluIHJpc2N2LW1vZGVzLmRlZi4gIFJldHVybiB0aGUgY29y cmVjdA0KPiArICAgUFJFQ0lTSU9OIHNpemUgZm9yIGNvcnJlc3BvbmRpbmcgbWFjaGluZV9tb2Rl LiAgKi8NCj4gKw0KPiArcG9seV9pbnQ2NA0KPiArcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uICht YWNoaW5lX21vZGUgbW9kZSwgaW50IHNjYWxlKSB7DQo+ICsgIGlmIChyaXNjdl92X2V4dF92ZWN0 b3JfbW9kZV9wIChtb2RlKSkNCj4gKyAgICByZXR1cm4gcmlzY3ZfdmVjdG9yX2NodW5rcyAqIHNj YWxlOw0KPiArDQo+ICsgIHJldHVybiBzY2FsZTsNCj4gK30NCj4gKw0KPiAgLyogUmV0dXJuIHRy dWUgaWYgWCBpcyBhIHZhbGlkIGFkZHJlc3MgZm9yIG1hY2hpbmUgbW9kZSBNT0RFLiAgSWYgaXQg aXMsDQo+ICAgICBmaWxsIGluIElORk8gYXBwcm9wcmlhdGVseS4gIFNUUklDVF9QIGlzIHRydWUg aWYgUkVHX09LX1NUUklDVCBpcyBpbg0KPiAgICAgZWZmZWN0LiAgKi8NCj4gZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaCBpbmRl eCANCj4gNWJjN2YyZjQ2N2QuLjE1YjkzMTdhOGNlIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmgNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oDQo+IEBAIC0x MDI1LDYgKzEwMjUsNyBAQCBleHRlcm4gdW5zaWduZWQgcmlzY3Zfc3RhY2tfYm91bmRhcnk7ICBl eHRlcm4gDQo+IHVuc2lnbmVkIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bms7ICBleHRlcm4g cG9seV91aW50MTYgDQo+IHJpc2N2X3ZlY3Rvcl9jaHVua3M7ICBleHRlcm4gcG9seV9pbnQ2NCBy aXNjdl92X2FkanVzdF9udW5pdHMgKGVudW0gDQo+IG1hY2hpbmVfbW9kZSwgaW50KTsNCj4gK2V4 dGVybiBwb2x5X2ludDY0IHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoZW51bSBtYWNoaW5lX21v ZGUsIGludCk7DQo+ICAvKiBUaGUgbnVtYmVyIG9mIGJpdHMgYW5kIGJ5dGVzIGluIGEgUlZWIHZl Y3Rvci4gICovICAjZGVmaW5lIA0KPiBCSVRTX1BFUl9SSVNDVl9WRUNUT1IgKHBvbHlfdWludDE2 IChyaXNjdl92ZWN0b3JfY2h1bmtzICogDQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmsg KiA4KSkgICNkZWZpbmUgQllURVNfUEVSX1JJU0NWX1ZFQ1RPUiANCj4gKHBvbHlfdWludDE2IChy aXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVuaykpIA0KPiBk aWZmIC0tZ2l0IGEvZ2NjL2dlbm1vZGVzLmNjIGIvZ2NjL2dlbm1vZGVzLmNjIGluZGV4IA0KPiAy ZDQxOGYwOWFhYi4uNGIyNjIwNDBmZjggMTAwNjQ0DQo+IC0tLSBhL2djYy9nZW5tb2Rlcy5jYw0K PiArKysgYi9nY2MvZ2VubW9kZXMuY2MNCj4gQEAgLTExNCw2ICsxMTQsNyBAQCBzdGF0aWMgc3Ry dWN0IG1vZGVfYWRqdXN0ICphZGpfYWxpZ25tZW50OyAgc3RhdGljIA0KPiBzdHJ1Y3QgbW9kZV9h ZGp1c3QgKmFkal9mb3JtYXQ7ICBzdGF0aWMgc3RydWN0IG1vZGVfYWRqdXN0ICphZGpfaWJpdDsg IA0KPiBzdGF0aWMgc3RydWN0IG1vZGVfYWRqdXN0ICphZGpfZmJpdDsNCj4gK3N0YXRpYyBzdHJ1 Y3QgbW9kZV9hZGp1c3QgKmFkal9wcmVjaXNpb247DQo+DQo+ICAvKiBNb2RlIGNsYXNzIG9wZXJh dGlvbnMuICAqLw0KPiAgc3RhdGljIGVudW0gbW9kZV9jbGFzcw0KPiBAQCAtODE5LDYgKzgyMCw3 IEBAIG1ha2VfdmVjdG9yX21vZGUgKGVudW0gbW9kZV9jbGFzcyBiY2xhc3MsDQo+ICAjZGVmaW5l IEFESlVTVF9OVU5JVFMoTSwgWCkgICAgX0FERF9BREpVU1QgKG51bml0cywgTSwgWCwgUkFORE9N LCBSQU5ET00pDQo+ICAjZGVmaW5lIEFESlVTVF9CWVRFU0laRShNLCBYKSAgX0FERF9BREpVU1Qg KGJ5dGVzaXplLCBNLCBYLCBSQU5ET00sIA0KPiBSQU5ET00pICAjZGVmaW5lIEFESlVTVF9BTElH Tk1FTlQoTSwgWCkgX0FERF9BREpVU1QgKGFsaWdubWVudCwgTSwgWCwgDQo+IFJBTkRPTSwgUkFO RE9NKQ0KPiArI2RlZmluZSBBREpVU1RfUFJFQ0lTSU9OKE0sIFgpIF9BRERfQURKVVNUIChwcmVj aXNpb24sIE0sIFgsIFJBTkRPTSwgDQo+ICtSQU5ET00pDQo+ICAjZGVmaW5lIEFESlVTVF9GTE9B VF9GT1JNQVQoTSwgWCkgICAgX0FERF9BREpVU1QgKGZvcm1hdCwgTSwgWCwgRkxPQVQsIEZMT0FU KQ0KPiAgI2RlZmluZSBBREpVU1RfSUJJVChNLCBYKSAgX0FERF9BREpVU1QgKGliaXQsIE0sIFgs IEFDQ1VNLCBVQUNDVU0pICANCj4gI2RlZmluZSBBREpVU1RfRkJJVChNLCBYKSAgX0FERF9BREpV U1QgKGZiaXQsIE0sIFgsIEZSQUNULCBVQUNDVU0pIEBAIA0KPiAtMTc5NCw2ICsxNzk2LDcgQEAg ZW1pdF9yZWFsX2Zvcm1hdF9mb3JfbW9kZSAodm9pZCkgIHN0YXRpYyB2b2lkICANCj4gZW1pdF9t b2RlX2FkanVzdG1lbnRzICh2b2lkKSAgew0KPiArICBpbnQgYzsNCj4gICAgc3RydWN0IG1vZGVf YWRqdXN0ICphOw0KPiAgICBzdHJ1Y3QgbW9kZV9kYXRhICptOw0KPg0KPiBAQCAtMTgyOSw4ICsx ODMyLDkgQEAgZW1pdF9tb2RlX2FkanVzdG1lbnRzICh2b2lkKQ0KPiAgICAgICAgICAgICAgICIg KG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgbW9kZV9udW5pdHNbRV8lc21vZGVdKTtcbiIsDQo+ ICAgICAgICAgICAgICAgbS0+bmFtZSwgbS0+bmFtZSk7DQo+ICAgICAgICBwcmludGYgKCIgICAg bW9kZV9wcmVjaXNpb25bRV8lc21vZGVdID0gcHMgKiBvbGRfZmFjdG9yO1xuIiwgbS0+bmFtZSk7 DQo+IC0gICAgICBwcmludGYgKCIgICAgbW9kZV9zaXplW0VfJXNtb2RlXSA9IGV4YWN0X2RpdiAo bW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCINCj4gLSAgICAgICAgICAgICAiIEJJVFNfUEVSX1VO SVQpO1xuIiwgbS0+bmFtZSwgbS0+bmFtZSk7DQo+ICsgICAgICBwcmludGYgKCIgICAgaWYgKCFt dWx0aXBsZV9wIChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0sIg0KPiArICAgICAgICAgICAgICIg QklUU19QRVJfVU5JVCwgJm1vZGVfc2l6ZVtFXyVzbW9kZV0pKVxuIiwgbS0+bmFtZSwgbS0+bmFt ZSk7DQo+ICsgICAgICBwcmludGYgKCIgICAgICBtb2RlX3NpemVbRV8lc21vZGVdID0gLTE7XG4i LCBtLT5uYW1lKTsNCj4gICAgICAgIHByaW50ZiAoIiAgICBtb2RlX251bml0c1tFXyVzbW9kZV0g PSBwcztcbiIsIG0tPm5hbWUpOw0KPiAgICAgICAgcHJpbnRmICgiICAgIGFkanVzdF9tb2RlX21h c2sgKEVfJXNtb2RlKTtcbiIsIG0tPm5hbWUpOw0KPiAgICAgICAgcHJpbnRmICgiICB9XG4iKTsN Cj4gQEAgLTE5NjMsNiArMTk2NywyNCBAQCBlbWl0X21vZGVfYWRqdXN0bWVudHMgKHZvaWQpDQo+ ICAgICAgcHJpbnRmICgiXG4gIC8qICVzOiVkICovXG4gIFJFQUxfTU9ERV9GT1JNQVQgKEVfJXNt b2RlKSA9ICVzO1xuIiwNCj4gICAgICAgICAgICAgYS0+ZmlsZSwgYS0+bGluZSwgYS0+bW9kZS0+ bmFtZSwgYS0+YWRqdXN0bWVudCk7DQo+DQo+ICsgIC8qIEFkanVzdCBwcmVjaXNpb24gdG8gdGhl IGFjdHVhbCBiaXRzIHNpemUuICAqLyAgZm9yIChhID0gDQo+ICsgYWRqX3ByZWNpc2lvbjsgYTsg YSA9IGEtPm5leHQpDQo+ICsgICAgc3dpdGNoIChhLT5tb2RlLT5jbCkNCj4gKyAgICAgIHsNCj4g KyAgICAgICBjYXNlIE1PREVfVkVDVE9SX0JPT0w6DQo+ICsgICAgICAgICBwcmludGYgKCJcbiAg LyogJXM6JWQuICAqL1xuICBwcyA9ICVzO1xuIiwgYS0+ZmlsZSwgYS0+bGluZSwNCj4gKyAgICAg ICAgICAgICAgICAgYS0+YWRqdXN0bWVudCk7DQo+ICsgICAgICAgICBwcmludGYgKCIgIG1vZGVf cHJlY2lzaW9uW0VfJXNtb2RlXSA9IHBzO1xuIiwgYS0+bW9kZS0+bmFtZSk7DQo+ICsgICAgICAg ICBicmVhazsNCj4gKyAgICAgICBkZWZhdWx0Og0KPiArICAgICAgICAgYnJlYWs7DQo+ICsgICAg ICB9DQo+ICsNCj4gKyAgLyogRW5zdXJlIHRoZXJlIGlzIG5vIG1vZGUgc2l6ZSBlcXVhbHMgLTEu ICAqLyAgZm9yX2FsbF9tb2RlcyAoYywgDQo+ICsgbSkNCj4gKyAgICBwcmludGYgKCJcbiAgZ2Nj X2Fzc2VydCAobWF5YmVfbmUgKG1vZGVfc2l6ZVtFXyVzbW9kZV0sIC0xKSk7XG4iLA0KPiArICAg ICAgICAgICBtLT5uYW1lLCBtLT5uYW1lKTsNCj4gKw0KPiAgICBwdXRzICgifSIpOw0KPiAgfQ0K Pg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTEuYyANCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMS5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5lNzA5NjBjNWI2ZA0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS0xLmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0g Ki8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0 ZXN0X3Zib29sMV90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gKyAg ICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDFfdCop KG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0K PiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sNChpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wxX3QgdjEg PSAqKHZib29sMV90KilpbjsNCj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0K PiArDQo+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29s NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29s MV90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSB7DQo+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gKyAgICB2Ym9vbDhf dCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEw MCkgPSB2MTsNCj4gKyAgICAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiAr DQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29sMV90IHYxID0gKih2Ym9v bDFfdCopaW47DQo+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMTZfdCop KG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDFfdGhl bl92Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsN Cj4gKyAgICB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArICAgIHZib29sMzJfdCB2 MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2wxX3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29s MV90KilpbjsNCj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4g KyAgICAqKHZib29sMV90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTgsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQs XHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0K PiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4g K3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7 dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxz KjBcKFthLXhdWzAtOV0rXCl9IDE4IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYyANCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4 IDAwMDAwMDAwMDAwLi5kY2M3YTY0NGE4OA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4gQEAgLTAsMCArMSw2OCBA QA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sMShpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wyX3Qg djEgPSAqKHZib29sMl90KilpbjsNCj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWlu Ow0KPiArDQo+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZi b29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zi b29sMl90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyAgICB2Ym9v bDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDJfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0K PiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZi b29sMl90KilpbjsNCj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPiArDQo+ ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sOF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMl90aGVu X3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0K PiArICAgIHZib29sMl90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+ICsgICAgdmJvb2wxNl90IHYy ID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkg PSB2MTsNCj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0K PiArdm9pZA0KPiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wy X3QqKWluOw0KPiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiAr ICAgICoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9vbDMyX3QqKShv dXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5f dmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyAgICB2Ym9vbDY0X3QgdjIg PSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVsw LTldK1wpfSAxMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDE3IH0gfSAqLw0K PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMu YyANCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jDQo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zYWYwNTEzZTAwNg0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS0zLmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8N Cj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8N Cj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0 X3Zib29sNF90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4gKyAgICB2 Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDRfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiAr fQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w0X3QgdjEgPSAq KHZib29sNF90KilpbjsNCj4gKyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiAr DQo+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMl90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90 aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4gKyAgICB2Ym9vbDhfdCB2 MiA9ICoodmJvb2w4X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDEwMCkg PSB2MTsNCj4gKyAgICAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29sNF90IHYxID0gKih2Ym9vbDRf dCopaW47DQo+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsg ICAgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMTZfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDRfdGhlbl92 Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4g KyAgICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiArICAgIHZib29sMzJfdCB2MiA9 ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4g K3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90 KilpbjsNCj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyAg ICAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2w2NF90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIs XHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAr e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0g MSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxt XC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBc KFthLXhdWzAtOV0rXCl9IDE2IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYyANCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtNC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAwLi5lYTNjMzYwZDc1Ng0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmMNCj4gQEAgLTAsMCArMSw2OCBAQA0K PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMShpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w4X3QgdjEg PSAqKHZib29sOF90KilpbjsNCj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0K PiArDQo+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29s MV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29s OF90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSB7DQo+ICsgICAgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyAgICB2Ym9vbDJf dCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEw MCkgPSB2MTsNCj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiAr DQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w4X3QgdjEgPSAqKHZib29s OF90KilpbjsNCj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsg ICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sNF90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zi b29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiAr ICAgIHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+ICsgICAgdmJvb2wxNl90IHYyID0g Kih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiAr dm9pZA0KPiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBp bnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3Qq KWluOw0KPiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArICAg ICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQg KyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJv b2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsg ICAgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAq KHZib29sNjRfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYx Ow0KPiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxc cyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTld K1wpfSAxMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAN Cj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDE1IH0gfSAqLw0KPiBk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYyAN Cj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi45ZmM2NTlkMjQwMg0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS01LmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4g Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4g Kw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zi b29sMTZfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0 IG91dCkgew0KPiArICAgIHZib29sMTZfdCB2MSA9ICoodmJvb2wxNl90KilpbjsNCj4gKyAgICB2 Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDE2X3QqKShv dXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4g K30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDE2X3RoZW5fdmJvb2wyKGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDE2X3QgdjEg PSAqKHZib29sMTZfdCopaW47DQo+ICsgICAgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsN Cj4gKw0KPiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJv b2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJv b2wxNl90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiArICAgIHZi b29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sMTZfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiAr fQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDgoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29sMTZfdCB2MSA9 ICoodmJvb2wxNl90KilpbjsNCj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0K PiArDQo+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9v bDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9v bDE2X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiArICAgIHZi b29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2wxNl90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0K PiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDY0KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDE2X3Qg djEgPSAqKHZib29sMTZfdCopaW47DQo+ICsgICAgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3Qq KWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAg Kih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1m OCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyANCj4gK3t2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0g fSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzbVwu dlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTQgfSB9ICovDQo+IGRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jIA0KPiBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjk4Mjc1ZTUyNjdkDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBA QCAtMCwwICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVu X3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ ICsgICAgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPiArICAgIHZib29sMV90IHYy ID0gKih2Ym9vbDFfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkg PSB2MTsNCj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ ICt2b2lkDQo+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29sMzJfdCB2MSA9ICoodmJvb2wz Ml90KilpbjsNCj4gKyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsg ICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9vbDJfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDMyX3RoZW5f dmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4g KyAgICB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgICAgdmJvb2w0X3QgdjIg PSAqKHZib29sNF90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiArICAgICoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4g K3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMy X3QqKWluOw0KPiArICAgIHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyAg ICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sOF90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMzJfdGhlbl92 Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4g KyAgICB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgICAgdmJvb2wxNl90IHYy ID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29sMzJfdCB2MSA9ICoodmJv b2wzMl90KilpbjsNCj4gKyAgICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsN Cj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sNjRf dCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm1mNCxccyp0YSxccyptYX0gNiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt NCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyANCj4gK3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0K PiAre3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTIgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNtXC52XHMrdlswLTld KyxccyowXChbYS14XVswLTldK1wpfSAxMyB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMgDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMC4uOGY2ZjBiMTFmMDkNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jDQo+IEBAIC0wLDAgKzEs NjggQEANCj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wxKGlu dDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9v bDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ICsgICAgdmJvb2wxX3QgdjIgPSAqKHZib29s MV90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiAr ICAgICoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4g K3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0K PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29s NjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9vbDQoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29s NjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0 X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsg ICAgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiAr dGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiBy ZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ ICsgICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gKw0KPiArICAgICoodmJvb2w2 NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0g djI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMTYoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAgIHZib29s NjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAqKHZib29s MTZfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4g KyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0K PiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWlu Ow0KPiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArICAgICoo dmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2wzMl90Kikob3V0ICsg MjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxz KnRhLFxzKm1hfSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IA0KPiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0K PiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAr e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxtXC52 XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBcKFth LXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYyANCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtOC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwLi5kOTY5NTlkZDA2NA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmMNCj4gQEAgLTAsMCArMSw3NyBAQA0KPiAr LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5o Ig0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2wxX3QgdjEgPSAq KHZib29sMV90KilpbjsNCj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiAr DQo+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sMV90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMl90 aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyAgICB2Ym9vbDJfdCB2 MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDJfdCopKG91dCArIDEwMCkg PSB2MTsNCj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90 KilpbjsNCj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsgICAg Kih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyAgICAqKHZib29sNF90Kikob3V0ICsg MjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29s OChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAg dmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJv b2w4X3QqKWluOw0KPiArDQo+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4g KyAgICAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDE2KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47 DQo+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgICAgKih2 Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAy MDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29s MzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPiArICAg IHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4gKyAgICB2Ym9vbDMyX3QgdjIgPSAq KHZib29sMzJfdCopaW47DQo+ICsNCj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiAr dm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0 X3QqKWluOw0KPiArICAgIHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4gKw0KPiAr ICAgICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQs XHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgDQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0K PiAre3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4g K3t2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7 dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSA3IH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzbVwudlxzK3ZbMC05XSssXHMq MFwoW2EteF1bMC05XStcKX0gMTQgfSB9ICovDQo+IC0tDQo+IDIuMzQuMQ0KPg0K