From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.2115.1662590207932466387 for ; Wed, 07 Sep 2022 15:36:48 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ld5c0XRs; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.136, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662590207; x=1694126207; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/DXoHZqW4IjtvZ0HPGAg8dDVzPo9VxUuhreR8CgPvFM=; b=ld5c0XRsIvXsjd2a0/3QiQXRI1arRvxlGwXsAKEE3vdLYv+TQnk0df5L WQjva/ZERMPyj8/WT7gg7qN19XJRTJs2NmqcfIcSjwB4boSb7Ijp93Cfd w23Yw7+HXpVz5sxSlNOTZzQ/YvgpcSOsa3fckIKPoLFQ/a9B+Ef8U08x1 A233JdHCWbGFsWAfW4LnPXXv2rSI1UuIVFZ5Go2ZAFliGZoPDG/TXbZ8N N0mmq5OidZMEV9lQRaG/rT2j6+ue4xDpCgsXnkzFusdjwTjG8f21KSvG0 C5e0wi+/SLnaZIzWdLwPGQJfISUKNLK32M3/acTSENWxfp3aUApYcDx0h g==; X-IronPort-AV: E=McAfee;i="6500,9779,10463"; a="276750838" X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208";a="276750838" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 15:36:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208";a="565702845" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 07 Sep 2022 15:36:47 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 7 Sep 2022 15:36:46 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 7 Sep 2022 15:36:46 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 7 Sep 2022 15:36:46 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 7 Sep 2022 15:36:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kHQBqFo7MK+lR1Q3mnW68SRlqzxc5d1LafwAu4JYqDSAIGmlbK5deIxvOtbl2Ql6zxyJk7T8DudOmu07dzek1ArRPBCZ7bKHHIdJzSz9kJ9AIc84sepqGAPrGvXQkObrkwgha7KGp4eJZH1JJyAvptbcH898CL+95vkW8/65KtrD88tbxkLYo6AkrGVcKJB54/o96AtB1FlPlbTyPWgcmY6vHPTEMsOj0Y0RcOoFLqclc72wIJSjU3BNBqTpi0Yhn2WOATdobo6ggL+MD2Vlv837CEpUkUn6H9ZHJXGA5nQXJwjMoUIkVWZ6snBAt12bpn1aWt7sKuELRF8A6QAY6g== 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=/DXoHZqW4IjtvZ0HPGAg8dDVzPo9VxUuhreR8CgPvFM=; b=Kfp1yYeeTNrb7uN0LdZfu1l3wNNmkFVWgtSDAJA9SMQ/GDjCKliu7yWShBSwF2eu0VhCMyy78USzzY0Z7s1vD+9afsrpP4n/sVbQcMf34av7kUe+AwGHwa8ZQiQTaZLUjxoM83jVNS2fd1UxPzr+2luSVGbvql0AUyc1czOesqw8aAh1k5Xk5YJEILgvF2wiw8Kic2TtQibwWv+t85Eq80j6wMmH3Uu0fUC+7eUNInuUssu0vVX4UKRwYGfB4sRpC61lJ36e9QNnV/1RrK8KXvSPC/STvMrv0idxhonEpYL5YrnIWfiIzKb/OkQ8csGONsq91aufAnUv0kjg/K2MLw== 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 SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by BYAPR11MB3365.namprd11.prod.outlook.com (2603:10b6:a03:7e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.17; Wed, 7 Sep 2022 22:36:40 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::4149:e96e:480e:e1c3]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::4149:e96e:480e:e1c3%5]) with mapi id 15.20.5588.010; Wed, 7 Sep 2022 22:36:40 +0000 From: "Isaac Oram" To: =?utf-8?B?Q3J5c3RhbExlZSBb5p2O5oCh6JCxXQ==?= , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" , "Desimone, Nathaniel L" , "Gao, Liming" , =?utf-8?B?RGF2aWRIc2llaCBb6Kyd5Z2k5pm6XQ==?= Subject: Re: [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Topic: [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Index: AQHYwSEpN612sKVjEE2w0iYpje4GYa3UkidQ Date: Wed, 7 Sep 2022 22:36:40 +0000 Message-ID: References: <175c6ce10ac73a4f0b60d366bcd67b1511f3ab63.1662378708.git.CrystalLee@ami.com> In-Reply-To: <175c6ce10ac73a4f0b60d366bcd67b1511f3ab63.1662378708.git.CrystalLee@ami.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 44daab96-2375-44ec-490c-08da91216edd x-ms-traffictypediagnostic: BYAPR11MB3365:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SGd9Xe0MWAvNhxUVQEXj8U3trYPOypf6ETvmd9TPmfKMot2LVTPZIDgdevs4uFMddU1nDWXfbqo4Wv1u3wxXfXk8Fper1YABOSHPlMoRGYaRoCAToNlBBGJ28kgZtvgmAGwXVdzNIxscW+OB6ErU6u8CXkkBvN8fVwAXZg7VecFJRw/8zhsbyhwcr/9Z9iGbGoIJVRWjZ4gnIRMCs1z1M0SHIn/GnkAVqy2YQG157HH8v7OqwW6vu4sl4pvXqn2MZSd44JB7ifFxAAsEMryGE1/Ua7d4dJETekv9gUEHIj2zytdEni1EPCPLzZaYUxfQIjatNhIiR5+bb1ybbxkZufSEat7ZtiGdL8/2BFCVDXB+uRpA0Rj1DPamYF3xnGNo0XUXXRjHHd/7sDe48cWLL9eMlm1M1j+7QCt2BfAXFQL1AOIyBB7O5/YT0R873NTZLagbnEpljENLmVis1rxMRxUdZgLHDVLikKX1Bnft8Ok1EEkLWrthHnZQtyZhiG2yVgONEjN46eK2/r10kF4QDPJr4xf37ENtBnw3nUT7hRdFWQBlJsKQJSekXSdZeErTVC3MDeNXg4yck17O/CYlPn7qgitognZe/4yKOwn0UJFkm7zmQbWNwvkMLd7KJS6G/BQQOyLNCMB8+OentmQGFqjQKRJdMYB8T//Gbz6pFkV+fgkNwhDq+LuRJz5HSEZf3+ClmwvLOouYEwpWSJIa6bW90mnkWiC3VOLs77yItwemh936lnyNbls78hmBulp8rVvdPY3Gbe4yqeRgP0vxWA/4bmhCz2Ld5pJATWVbE2e3NmtKSLIFtaBK9EJo7ptu246IEnVkLidb+ad9yEvhbQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(6029001)(376002)(366004)(39860400002)(346002)(396003)(136003)(478600001)(9686003)(54906003)(316002)(966005)(19627235002)(41300700001)(26005)(110136005)(86362001)(40140700001)(33656002)(186003)(71200400001)(83380400001)(64756008)(66946007)(76116006)(8676002)(2906002)(55016003)(4326008)(8936002)(30864003)(82960400001)(5660300002)(52536014)(66556008)(66476007)(66446008)(53546011)(7696005)(38070700005)(6506007)(38100700002)(122000001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cWliSGVHLy9UWmVTTTdFZEZjVkhkRnFWck1obityRGJkak15QWxWY1JSTnhm?= =?utf-8?B?M291YTFVb0NTK2tpN2YvVTBtNEk1R2tjRHdIbEoxcGxwTkxoV1NndzE4Ym1T?= =?utf-8?B?QkZQcExvYVc3MGd0elUvUU4yd2VLSHVVTkxHcUs0YWtrNnNaaW9nWG81aUIz?= =?utf-8?B?UEw3VzlWZ3hMekNqN2xkVWFSOEtEdUZYOXQ0WjNkalExMFR3ZXFBQ1pUVGhO?= =?utf-8?B?M1lja0lQdkNHSkliOThDK0x3dE9iMXZ6ZTZSNkZSYmM1RDBRRmZLbnRMVmRG?= =?utf-8?B?UkY1Y3NhSVBwaXFtZXlBRk56N0t4K1lCTnJrVlZYeVg3eTlEeCtwN3hKUFZw?= =?utf-8?B?akZYdTFTeHlidVE4YUlmMWVESU9MVFMrdHNBZnFRSDJTZ2lybXB2M2Q2Kzlk?= =?utf-8?B?VlVMRExTWHViUmp5ZVRaekl2elNZcGlvcjRhTFh6YjlMdzBnd3I0OFJVTS9o?= =?utf-8?B?bHhXRENhM3J4Skdzd09SSUs2UklGZTNkRTNTdmU5d3pwdEpabUJENVBRYVhx?= =?utf-8?B?RUhPSUJ3VEg5azdDTW4xQ0lySW1LTmVBOHlYeDRqVlZLR2xaV1lzVHpNN3ZP?= =?utf-8?B?M3J4cW1vTU10ZDVOOWZvUEpObGhlVldnQVBmUDFNTjN5NmZSZlVad1J1NnpN?= =?utf-8?B?emVCeUd3M3grYlZJeHpSY2NpS1pUVURXRG5sU0MrZnVTeG5KZDY3ck9ob2tB?= =?utf-8?B?b1ZWbVQrWDVLZk1qcFdKODRwTXNBMHJQTTZKSVlPemZvNnFNQVcwekdlbmRM?= =?utf-8?B?dGpEbnJGdE1Ob0c1Vk1GWDQ5R1NOUE93bkg5elMxSUdDdTVCZUxYUGJTVkp4?= =?utf-8?B?RTUwanI0WDVadU16ZVplWlhwOTZTQWsxTFBENm1Nd3ZPcFBlbGVnTm1FRjhM?= =?utf-8?B?dlcxY3hIMVZ5bW00eVRYamMvWjVRVjM0cE5GbEVjZ1lLa1MzZjUwaWNUdHlE?= =?utf-8?B?N2UzcHRTdXBOeUVlWFpCOTNFQU10QkRWSnkySElEd0p1UDdEOUxUNlJtRVMy?= =?utf-8?B?Y2l4Um5rWWhyenR4aHFXREduWTJ3QjllT2tLdFMyY1dLc1F4WWtLUjNHU0VD?= =?utf-8?B?ekNCY0ZuYkwxRWpFb1h5V1BzdjNEWnNLbGRJOGNOZ29RQnVSbXFub0FMcXd1?= =?utf-8?B?a3JvUWV5U1oyY00xcGpOdFhocHJvOVZ2SHF5ZXNBOFhNYmlkaWhEWm9FZHVH?= =?utf-8?B?UHFoNVI5cFdhcU03WW42aDZORmRmU2pUS1lpbWFOUEgzeDRJL2NWOUF1QlFF?= =?utf-8?B?ZGpNbjJLWjhlZGFDRk02NjBhS0RyR0FmQ1c2alZTSWhmeWdBRjFBT1J2dFkr?= =?utf-8?B?YjdXRjJRTlVhYVpuK3BSMW5PWHA2aXgzblVpL2UwUGRHMDY0dHlTUDAzQmlj?= =?utf-8?B?bDYwc2JwWTA3eU9obUFpTHlxRDArVDhsMWwwOEJKbnVkblJxai9Pd3dEdjRP?= =?utf-8?B?RzZJM0pUcTVrdHFwMkhjdVJaWDNkOVoxcm00QUpXM2hud2xESVVONUI0VmdE?= =?utf-8?B?WUMwc1Z5Sk4yNkJQZ1pBODRiSmFxNXZBU1Z4VzZjNW5JMURscEVpdUsxcHVJ?= =?utf-8?B?NXFKci9nejVrZ20ydm9iMFZ6NGpxS2NGRTVaaHhRa1hPSEZKK3UrdDdJNkd6?= =?utf-8?B?U2hlREpvSUtCekd6bk5uUW5UdjhUVVJGdktHYWIxVUVUKzl2MkhCd200RFJP?= =?utf-8?B?ZFM0c29wanJUZkNaM0hoN2hvRlpKOENxTTR2ZzJpeGR1Q2l3akV2NlBTTXl0?= =?utf-8?B?c0pSNE1OdVJOTFhlOWRkWE1aT0V1WExsSDdtYldrbFQ5RHdCWHVGY0dJdEpB?= =?utf-8?B?ekhWT1d1bERJV1F4ZGVhN1VneDdiY2Q2bGJiYkFCdUc5NE1DUEk1L29yWHBm?= =?utf-8?B?bmZWUVJaT0MzL1V1dEJtSW51QjViZ25LVWFTQXQxWkpsUitHS3c3Q1lYT29r?= =?utf-8?B?NFhJcGZnSVQ5bDFSUGZZWmZRakM4dWZYRThOWHdleXdYWjhYOWlXWStyR1BF?= =?utf-8?B?c1ZRNWxZODdWeW1nb0thOEkzcFhoL1Y0cWxkcEY1Z0h3bENKTEl6NDgyMlZN?= =?utf-8?B?Z3hPSERTanlHdHdDMEN5NnBpOC94RkJWdUVLYWhJRjFpRTBnTmNRYXVHZE5L?= =?utf-8?Q?mBrq7umJaG4oMyNqxNJ53EmJo?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44daab96-2375-44ec-490c-08da91216edd X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2022 22:36:40.5978 (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: PYOvIZ16CFjLcioHHnF0xBgfYxOXMN8Uly0gxIbyf+Rg9noQs+ztOC+L2G6khb7L5dr9UAeu3vLr6PwTOKNyqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3365 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQoNCkxvb2tz IGdvb2QsIHRoYW5rIHlvdS4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENy eXN0YWxMZWUgW+adjuaAoeiQsV0gPENyeXN0YWxMZWVAYW1pLmNvbT4gDQpTZW50OiBNb25kYXks IFNlcHRlbWJlciA1LCAyMDIyIDU6MTUgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6 IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2Fz YWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBEZXNpbW9uZSwgTmF0aGFuaWVs IEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1p bmdAYnlvc29mdC5jb20uY24+OyBEYXZpZEhzaWVoIFvorJ3lnaTmmbpdIDxEYXZpZEhzaWVoQGFt aS5jb20+OyBDcnlzdGFsTGVlIFvmnY7mgKHokLFdIDxDcnlzdGFsTGVlQGFtaS5jb20+DQpTdWJq ZWN0OiBbUEFUQ0ggdjIgMS8xXSBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2c6IEFkZCBpbml0aWFsIHBhY2thZ2UNCg0KQWRkIGEgbmV3IGZlYXR1cmUgcGFj a2FnZSBmb3IgQWxlcnQgc3RhbmRhcmQgZm9ybWF0IHN1cHBvcnQuDQoNCkFsZXJ0IFN0YW5kYXJk IGZvcm1hdCBzcGVjaWZpY2F0aW9uKERTUDAxMzYpDQpSRUY6aHR0cHM6Ly93d3cuZG10Zi5vcmcv c2l0ZXMvZGVmYXVsdC9maWxlcy9zdGFuZGFyZHMvZG9jdW1lbnRzL0RTUDAxMzYucGRmDQoNCkNj OiBTYWkgQ2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KQ2M6IElzYWFj IE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQpDYzogTmF0ZSBEZVNpbW9uZSA8bmF0aGFu aWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj4NClNpZ25lZC1vZmYtYnk6IENyeXN0YWxMZWUgPENyeXN0YWxMZWVAYW1pLmNv bT4NCi0tLQ0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBr Zy9Bc2ZEeGUvQXNmQWNwaVRhYmxlLmMgICAgICAgICAgfCAyMzQgKysrKysrKysrKysrDQogRmVh dHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZE eGUuYyAgICAgICAgICAgICAgICB8IDM0MCArKysrKysrKysrKysrKysrKw0KIEZlYXR1cmVzL0lu dGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXZlbnQu YyAgICAgICAgICAgfCAzMTkgKysrKysrKysrKysrKysrKw0KIEZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmMgICAgICAgICAgICAg ICAgfCAzODQgKysrKysrKysrKysrKysrKysrKysNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZl YXR1cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNl ZEZlYXR1cmVzLmRzYyAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9JbnRlbC9B ZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzUGNkLmRzYyAgICAgICAg ICAgICAgIHwgICAyICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVk ZS9Qb3N0TWVtb3J5LmZkZiAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJl cy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5oICAgICAgICAgICAgICAgIHwgIDY2ICsr KysNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNm RHhlL0FzZkR4ZS5pbmYgICAgICAgICAgICAgIHwgIDUxICsrKw0KIEZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaSAgICAgICAg ICAgICAgfCAgMTUgKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVh dHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0cmEudW5pICAgICAgICAgfCAgMTMgKw0KIEZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZGZWF0dXJlUGtnLmRl YyAgICAgICAgICAgICAgfCAgNDcgKysrDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjICAgICAgICAgICAgICB8ICA0MCAr Kw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQ ZWkvQXNmUGVpLmluZiAgICAgICAgICAgICAgfCAgNTEgKysrDQogRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pICAgICAgICAg ICAgICB8ICAxNSArDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0 dXJlUGtnL0FzZlBlaS9Bc2ZQZWlFeHRyYS51bmkgICAgICAgICB8ICAxMyArDQogRmVhdHVyZXMv SW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvQXNmRmVhdHVy ZS5kc2MgICAgICAgICB8ICA1MiArKysNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZNZXNzYWdlcy5oICAgICAgICAgIHwgMTA0ICsr KysrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9J bmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvQXNmLmggfCAxNDUgKysrKysrKysNCiBGZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5 LmZkZiAgICAgICAgIHwgICA4ICsNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmICAgICAgICAgIHwgICA4ICsNCiBG ZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Q cm90b2NvbC9Bc2ZQcm90b2NvbC5oIHwgIDU3ICsrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFu ZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQgICAgICAgICAgICAgICAgICAgICAg fCAgNjMgKysrKw0KIDI1IGZpbGVzIGNoYW5nZWQsIDIwNDAgaW5zZXJ0aW9ucygrKQ0KDQpkaWZm IC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0FzZkR4ZS9Bc2ZBY3BpVGFibGUuYyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmQWNwaVRhYmxlLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwLi43ZDRhODY0ZTJjDQotLS0gL2Rldi9udWxsDQorKysgYi9G ZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0Fz ZkFjcGlUYWJsZS5jDQpAQCAtMCwwICsxLDIzNCBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgQWNw aSB0YWJsZQ0KDQorDQoNCisgIEluc3RhbGwgQXNmIEFjcGkgdGFibGUNCg0KKw0KDQorICBDb3B5 cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQor ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoN CisNCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KDQor I2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCg0KKyNpbmNsdWRlIDxQcm90b2NvbC9BY3Bp U3lzdGVtRGVzY3JpcHRpb25UYWJsZS5oPg0KDQorI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQv QWxlcnRTdGFuZGFyZEZvcm1hdFRhYmxlLmg+DQoNCisjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFy ZC9BY3BpLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvQWNwaVRhYmxlLmg+DQoNCisjaW5jbHVk ZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQoNCisNCg0KKy8vIEFTRiBUYWJsZSBEZWZpbml0 aW9ucw0KDQorLy8gQmVsb3cgYXJyYXkgc2l6ZSBkZWZpbmUgc2hvdWxkIGZvbGxvdyBtQXNmQWNw aVRhYmxlIHNldHRpbmcNCg0KKyNkZWZpbmUgQVNGX1JDVExfREVWSUNFU19BUlJBWV9MRU5HVEgg IDQNCg0KKyNkZWZpbmUgQVNGX0FERFJfREVWSUNFX0FSUkFZX0xFTkdUSCAgIDExDQoNCisNCg0K KyNwcmFnbWEgcGFjayhwdXNoLDEpDQoNCisNCg0KKy8vDQoNCisvLyBBbGVydCBSZW1vdGUgQ29u dHJvbCBTeXN0ZW0gQWN0aW9ucy4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEVG SV9BQ1BJX0FTRl9SQ1RMICAgICAgICAgICBBc2ZSY3RsOw0KDQorICBFRklfQUNQSV9BU0ZfQ09O VFJPTERBVEEgICAgQ29udHJvbERhdGFBcnJheVtBU0ZfUkNUTF9ERVZJQ0VTX0FSUkFZX0xFTkdU SF07DQoNCit9IEFDUElfQVNGX1JDVExfQUxMOw0KDQorDQoNCisvLw0KDQorLy8gU21CdXMgRGV2 aWNlcyB3aXRoIGZpeGVkIGFkZHJlc3Nlcy4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoN CisgIEVGSV9BQ1BJX0FTRl9BRERSICAgIEFzZkFkZHI7DQoNCisgIFVJTlQ4ICAgICAgICAgICAg ICAgIEZpeGVkU21CdXNBZGRyZXNzZXNbQVNGX0FERFJfREVWSUNFX0FSUkFZX0xFTkdUSF07DQoN Cit9IEFDUElfQVNGX0FERFJfQUxMOw0KDQorDQoNCisvLw0KDQorLy8gQUNQSSAxLjAgU3RydWN0 dXJlIGZvciBBU0YgRGVzY3JpcHRvciBUYWJsZS4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7 DQoNCisgIEVGSV9BQ1BJX1NEVF9IRUFERVIgICAgSGVhZGVyOw0KDQorICBFRklfQUNQSV9BU0Zf SU5GTyAgICAgIEFzZkluZm87DQoNCisgIEFDUElfQVNGX1JDVExfQUxMICAgICAgQXNmUmN0bEFs bDsNCg0KKyAgRUZJX0FDUElfQVNGX1JNQ1AgICAgICBBc2ZSbWNwOw0KDQorICBBQ1BJX0FTRl9B RERSX0FMTCAgICAgIEFzZkFkZHJBbGw7DQoNCit9IEFTRl9ERVNDUklQVElPTl9UQUJMRTsNCg0K Kw0KDQorI3ByYWdtYSBwYWNrKHBvcCkNCg0KKw0KDQorI2RlZmluZSBFRklfQUNQSV8xXzBfQVNG X0RFU0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OICAweDIwDQoNCisNCg0KK0FTRl9ERVNDUklQVElP Tl9UQUJMRSAgbUFzZkFjcGlUYWJsZSA9IHsNCg0KKyAgew0KDQorICAgIEVGSV9BQ1BJX0FTRl9E RVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUsDQoNCisgICAgc2l6ZW9mIChBU0ZfREVTQ1JJUFRJ T05fVEFCTEUpLA0KDQorICAgIEVGSV9BQ1BJXzFfMF9BU0ZfREVTQ1JJUFRJT05fVEFCTEVfUkVW SVNJT04sDQoNCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gIENoZWNrc3VtDQoNCisNCg0KKyAgICAvLyBPRU0gaWRlbnRpZmljYXRpb24NCg0K KyAgICB7ICdPJywgICdFJywgICdNJywgICdfJywgJ0knLCAnRCcgfSwNCg0KKw0KDQorICAgIC8v IE9FTSB0YWJsZSBpZGVudGlmaWNhdGlvbg0KDQorICAgIHsgJ0QnLCAgJzgnLCAgJzYnLCAgJzUn LCAnRycsICdDJywgJ0gnLCAnICd9LCAgIC8vIE9FTSB0YWJsZSBpZGVudGlmaWNhdGlvbg0KDQor DQoNCisgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gT0VNIHJldmlzaW9uIG51bWJlcg0KDQorICAgICgoKCgoJ00nIDw8IDgpICsgJ1MnKSA8PCA4 KSArICdGJykgPDwgOCkgKyAnVCcsIC8vIEFTTCBjb21waWxlciB2ZW5kb3IgSUQNCg0KKyAgICAx MDAwMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBU0wgY29t cGlsZXIgcmV2aXNpb24gbnVtYmVyDQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICAvLw0KDQorICAg IC8vIEVGSV9BQ1BJX0FTRl9JTkZPDQoNCisgICAgLy8NCg0KKyAgICB7DQoNCisgICAgICAweDAw LCAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlICJBU0ZfSU5GTyINCg0KKyAgICAgIDB4MDAs ICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc2VydmVkDQoNCisgICAgICBzaXplb2YgKEVGSV9B Q1BJX0FTRl9JTkZPKSAvLyBMZW5ndGgNCg0KKyAgICB9LA0KDQorICAgIDB4MDUsICAgICAgICAg ICAgICAgLy8gTWluIFdhdGNoZG9nIFJlc2V0IFZhbHVlDQoNCisgICAgMHhGRiwgICAgICAgICAg ICAgICAvLyBNaW4gQVNGIFNlbnNvciBwb2xsIFdhaXQgVGltZQ0KDQorICAgIDB4MDAwMSwgICAg ICAgICAgICAgLy8gU3lzdGVtIElEDQoNCisgICAgMHg1NzAxMDAwMCwgICAgICAgICAvLyBJQU5B IE1hbnVmYWN0dXJlIElEIGZvciBJbnRlbA0KDQorICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g RmVhdHVyZSBGbGFnDQoNCisgICAgew0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgLy8gUmVz ZXJ2ZWQNCg0KKyAgICAgIDB4MDAsDQoNCisgICAgICAweDAwDQoNCisgICAgfSAvLyBSZXNlcnZl ZA0KDQorICB9LA0KDQorICB7DQoNCisgICAgLy8NCg0KKyAgICAvLyBBQ1BJX0FTRl9SQ1RMX0FM TA0KDQorICAgIC8vDQoNCisgICAgew0KDQorICAgICAgLy8NCg0KKyAgICAgIC8vIEVGSV9BQ1BJ X0FTRl9SQ1RMDQoNCisgICAgICAvLw0KDQorICAgICAgew0KDQorICAgICAgICAweDAyLCAgICAg ICAgICAgICAgICAgICAgICAvLyBUeXBlICJBU0ZfUkNUTCINCg0KKyAgICAgICAgMHgwMCwgICAg ICAgICAgICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAgICAgICAgc2l6ZW9mIChBQ1BJX0FT Rl9SQ1RMX0FMTCkgLy8gTGVuZ3RoDQoNCisgICAgICB9LA0KDQorICAgICAgMHgwNCwgICAgICAg ICAgICAgLy8gTnVtYmVyIG9mIENvbnRyb2xzDQoNCisgICAgICAweDA0LCAgICAgICAgICAgICAv LyBBcnJheSBFbGVtZW50IExlbmd0aA0KDQorICAgICAgMHgwMDAwICAgICAgICAgICAgLy8gUmVz ZXJ2ZWQNCg0KKyAgICB9LA0KDQorICAgIHsNCg0KKyAgICAgIC8vDQoNCisgICAgICAvLyBFRklf QUNQSV9BU0ZfQ09OVFJPTERBVEENCg0KKyAgICAgIC8vDQoNCisgICAgICB7IDB4MDAsIDB4ODgs IDB4MDAsIDB4MDMgfSwgLy8gQ29udHJvbCAwIC0tPiBSZXNldCBzeXN0ZW0NCg0KKyAgICAgIHsg MHgwMSwgMHg4OCwgMHgwMCwgMHgwMiB9LCAvLyBDb250cm9sIDEgLS0+IFBvd2VyIE9mZiBzeXN0 ZW0NCg0KKyAgICAgIHsgMHgwMiwgMHg4OCwgMHgwMCwgMHgwMSB9LCAvLyBDb250cm9sIDIgLS0+ IFBvd2VyIE9uIHN5c3RlbQ0KDQorICAgICAgeyAweDAzLCAweDg4LCAweDAwLCAweDA0IH0gIC8v IENvbnRyb2wgMyAtLT4gUG93ZXIgQ3ljbGUgUmVzZXQgKG9mZiB0aGVuIG9uKQ0KDQorICAgIH0N Cg0KKyAgfSwNCg0KKyAgew0KDQorICAgIC8vDQoNCisgICAgLy8gRUZJX0FDUElfQVNGX1JNQ1AN Cg0KKyAgICAvLw0KDQorICAgIHsNCg0KKyAgICAgIDB4MDMsICAgICAgICAgICAgICAgICAgICAg IC8vIFR5cGUgIkFTRl9STUNQIg0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAg Ly8gUmVzZXJ2ZWQNCg0KKyAgICAgIHNpemVvZiAoRUZJX0FDUElfQVNGX1JNQ1ApIC8vIExlbmd0 aA0KDQorICAgIH0sDQoNCisgICAgew0KDQorICAgICAgLy8gUmVtb3RlIENvbnRyb2wgQ2FwYWJp bGl0aWVzIHN1cHBvcnRlZCBCaXQgTWFza3MNCg0KKyAgICAgIDB4MDAsICAgICAgICAgICAgICAg ICAgICAgICAvLyBTeXN0ZW0gRmlybXdhcmUgQ2FwYWJpbGl0aWVzIEJpdCBNYXNrIGJ5dGUgMQ0K DQorICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbSBGaXJtd2FyZSBD YXBhYmlsaXRpZXMgQml0IE1hc2sgYnl0ZSAyDQoNCisgICAgICAweDAwLCAgICAgICAgICAgICAg ICAgICAgICAgLy8gU3lzdGVtIEZpcm13YXJlIENhcGFiaWxpdGllcyBCaXQgTWFzayBieXRlIDMN Cg0KKyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0gRmlybXdhcmUg Q2FwYWJpbGl0aWVzIEJpdCBNYXNrIGJ5dGUgNA0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNwZWNpYWwgQ29tbWFuZHMgQml0IE1hc2sgYnl0ZSAxDQoNCisgICAgICAw eDAwLCAgICAgICAgICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBDb21tYW5kcyBCaXQgTWFzayBi eXRlIDINCg0KKyAgICAgIDB4RjAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0gQ2Fw YWJpbGl0aWVzIEJpdCBNYXNrIChTdXBwb3J0cyBSZXNldCwNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBQb3dlci1VcCwgUG93ZXItRG93biwgUG93ZXItQ3ljbGUgUmVz ZXQgZm9yDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGF0IGFu ZCBzZWN1cmUgcG9ydC4NCg0KKyAgICB9LA0KDQorICAgIDB4MDAsICAgICAgICAgICAgICAgICAg ICAgICAvLyBCb290IE9wdGlvbiBDb21wbGV0ZSBDb2RlDQoNCisgICAgMHg1NzAxMDAwMCwgICAg ICAgICAgICAgICAgIC8vIElBTkEgSUQgZm9yIEludGVsIE1hbnVmYWN0dXJlcg0KDQorICAgIDB4 MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIENvbW1hbmQNCg0KKyAgICB7IDB4 MDAsIDB4MDAgfSwgICAgICAgICAgICAgLy8gU3BlY2lhbCBDb21tYW5kIFBhcmFtZXRlcg0KDQor ICAgIHsgMHgwMCwgMHgwMCB9LCAgICAgICAgICAgICAvLyBCb290IE9wdGlvbnMNCg0KKyAgICB7 IDB4MDAsIDB4MDAgfSAgICAgICAgICAgICAgLy8gT0VNIFBhcmFtZXRlcnMNCg0KKyAgfSwNCg0K KyAgew0KDQorICAgIC8vDQoNCisgICAgLy8gQUNQSV9BU0ZfQUREUl9BTEwNCg0KKyAgICAvLw0K DQorICAgIHsNCg0KKyAgICAgIC8vDQoNCisgICAgICAvLyBFRklfQUNQSV9BU0ZfQUREUg0KDQor ICAgICAgLy8NCg0KKyAgICAgIHsNCg0KKyAgICAgICAgMHg4NCwgICAgICAgICAgICAgICAgICAg ICAgLy8gVHlwZSAiQVNGX0FERFIiLCBsYXN0IHJlY29yZA0KDQorICAgICAgICAweDAwLCAgICAg ICAgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KDQorICAgICAgICBzaXplb2YgKEFDUElfQVNG X0FERFJfQUxMKSAvLyBMZW5ndGgNCg0KKyAgICAgIH0sDQoNCisgICAgICAweDAwLCAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNFRVBST00gQWRkcmVzcw0KDQorICAgICAgQVNGX0FERFJfREVW SUNFX0FSUkFZX0xFTkdUSCAvLyBOdW1iZXIgT2YgRGV2aWNlcw0KDQorICAgIH0sDQoNCisgICAg Ly8NCg0KKyAgICAvLyBGaXhlZCBTTUJ1cyBBZGRyZXNzDQoNCisgICAgLy8NCg0KKyAgICB7DQoN CisgICAgICAweDVDLCAweDY4LCAweDg4LCAweEMyLCAweEQyLA0KDQorICAgICAgMHhEQywgMHhB MCwgMHhBMiwgMHhBNCwgMHhBNiwNCg0KKyAgICAgIDB4QzgNCg0KKyAgICB9DQoNCisgIH0NCg0K K307DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIGluc3RhbGwgdGhlIEFTRiBhY3Bp IFRhYmxlLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEV2ZW50ICAgICBBIHBvaW50ZXIgdG8gdGhl IEV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBjYWxsYmFjay4NCg0KKyAgQHBhcmFtW2luXSAgQ29u dGV4dCAgIEEgcG9pbnRlciB0byBwcml2YXRlIGRhdGEgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjYWxs YmFjayBmdW5jdGlvbi4NCg0KKyoqLw0KDQorVk9JRA0KDQorRUZJQVBJDQoNCitJbnN0YWxsQXNm QWNwaVRhYmxlRXZlbnQgICgNCg0KKyAgSU4gRUZJX0VWRU5UICBFdmVudCwNCg0KKyAgSU4gVk9J RCAgICAgICAqQ29udGV4dA0KDQorICApDQoNCit7DQoNCisgIEVGSV9TVEFUVVMgICAgICAgICAg ICAgICBTdGF0dXM7DQoNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICBUYWJsZUhhbmRsZSA9 IDA7DQoNCisgIEVGSV9BQ1BJX1RBQkxFX1BST1RPQ09MICAqQWNwaVRhYmxlUHJvdG9jb2w7DQoN CisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqQ29udHJvbERhdGFBcnJheXM7DQoNCisgIFVJ TlROICAgICAgICAgICAgICAgICAgICBDb250cm9sRGF0YUFycmF5c1NpemU7DQoNCisNCg0KKyAg U3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoJmdFZmlBY3BpVGFibGVQcm90b2NvbEd1aWQs IE5VTEwsIChWT0lEICoqKSZBY3BpVGFibGVQcm90b2NvbCk7DQoNCisNCg0KKyAgaWYgKCBFRklf RVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiTG9jYXRlIEFj cGkgcHJvdG9jb2wgJXIgRXJyb3JcbiIsIFN0YXR1cykpOw0KDQorICAgIHJldHVybjsNCg0KKyAg fQ0KDQorDQoNCisgIGlmIChFdmVudCAhPSBOVUxMKSB7DQoNCisgICAgZ0JTLT5DbG9zZUV2ZW50 IChFdmVudCk7DQoNCisgIH0NCg0KKw0KDQorICBDb250cm9sRGF0YUFycmF5cyA9IChVSU5UOCAq KVBjZEdldFB0ciAoUGNkQ29udHJvbERhdGFBcnJheXMpOw0KDQorICBDb250cm9sRGF0YUFycmF5 c1NpemUgPSBQY2RHZXRTaXplIChQY2RDb250cm9sRGF0YUFycmF5cyk7DQoNCisNCg0KKyAgaWYg KENvbnRyb2xEYXRhQXJyYXlzU2l6ZSA9PSAoc2l6ZW9mKEVGSV9BQ1BJX0FTRl9DT05UUk9MREFU QSkgKiBBU0ZfUkNUTF9ERVZJQ0VTX0FSUkFZX0xFTkdUSCkpIHsNCg0KKyAgICAvLyBDdXJyZW50 bHkgQXNmIDIuMCBzcGVjIG9ubHkgc3VwcG9ydCBmb3VyIHR5cGUgb2YgY29udHJvbCBmdW5jdGlv biwgc28gV2Ugc3VwcG9ydCA0IGFycmF5cyBvZg0KDQorICAgIC8vIEVGSV9BQ1BJX0FTRl9DT05U Uk9MREFUQSB0aGF0IHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBQY2RDb250cm9sRGF0YUFycmF5 cw0KDQorICAgIENvcHlNZW0oKFZPSUQgKikoVUlOVE4pbUFzZkFjcGlUYWJsZS5Bc2ZSY3RsQWxs LkNvbnRyb2xEYXRhQXJyYXksIChWT0lEICopKFVJTlROKUNvbnRyb2xEYXRhQXJyYXlzLCBDb250 cm9sRGF0YUFycmF5c1NpemUpOw0KDQorICB9DQoNCisNCg0KK3sNCg0KKyAgVUlOVE4gIEluZGV4 Ow0KDQorDQoNCisgIERFQlVHICgoREVCVUdfRVJST1IsICJjcnlzdGFsIENvbnRyb2xEYXRhQXJy YXlzU2l6ZSA9ICV4XG4iLCBDb250cm9sRGF0YUFycmF5c1NpemUpKTsNCg0KKyAgREVCVUcgKChE RUJVR19FUlJPUiwgIkNvbnRyb2xEYXRhQXJyYXlzID0gXG4iKSk7DQoNCisgIGZvciAoSW5kZXgg PSAwOyBJbmRleCA8IENvbnRyb2xEYXRhQXJyYXlzU2l6ZTsgSW5kZXgrKykgew0KDQorICAgIGlm ICgoSW5kZXggIT0gMCkgJiYgKEluZGV4ICUgNCkgPT0gMCkgREVCVUcgKChERUJVR19FUlJPUiwg IlxuIikpOw0KDQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlMDJ4ICIsIENvbnRyb2xEYXRh QXJyYXlzW0luZGV4XSkpOw0KDQorICB9DQoNCisgIERFQlVHICgoREVCVUdfRVJST1IsICJcbiIp KTsNCg0KK30NCg0KKw0KDQorICBBY3BpVGFibGVQcm90b2NvbC0+SW5zdGFsbEFjcGlUYWJsZSAo DQoNCisgICAgICAgICAgICAgICAgICAgICAgIEFjcGlUYWJsZVByb3RvY29sLA0KDQorICAgICAg ICAgICAgICAgICAgICAgICAmbUFzZkFjcGlUYWJsZSwNCg0KKyAgICAgICAgICAgICAgICAgICAg ICAgbUFzZkFjcGlUYWJsZS5IZWFkZXIuTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAg ICAmVGFibGVIYW5kbGUNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKw0KDQorICBy ZXR1cm47DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5h Z2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5jIGIvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjdkNjgwNDA0YmENCi0tLSAvZGV2L251bGwN CisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9B c2ZEeGUvQXNmRHhlLmMNCkBAIC0wLDAgKzEsMzQwIEBADQorLyoqIEBmaWxlDQoNCisgIEFzZiBE eGUgZHJpdmVyIHdoaWNoIGlzIHVzZWQgZm9yIHNlbmRpbmcgZXZlbnQgcmVjb3JkIGxvZyB0byBO SUMgb3IgcmVjZWl2aW5nDQoNCisgIGJvb3Qgb3B0aW9uIGNvbW1hbmQgZnJvbSBOSUMgYW5kIHBy b3ZpZGUgaW4gQXNmIER4ZSBwcm90b2NvbC4NCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUg LSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoNCisNCg0KKyNpbmNsdWRl IDxBc2ZEeGUuaD4NCg0KKw0KDQorQVNGX0JPT1RfT1BUSU9OICAgICAgICAgICBnQXNmQm9vdE9w dGlvbiA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Ow0KDQorQVNGX1BST1RPQ09MICAgICAgICAg ICAgICBnQXNmUHJvdG9jb2wgICA9IHsgQXNmUHVzaEV2ZW50LCBOVUxMIH07DQoNCitFRklfU01C VVNfREVWSUNFX0FERFJFU1MgIG1GaXhlZFRhcmdldEFkZHJlc3M7DQoNCitFRklfU01CVVNfSENf UFJPVE9DT0wgICAgICptU21CdXMgPSBOVUxMOw0KDQorDQoNCisvKioNCg0KKyAgU2VuZCBtZXNz YWdlIHRocm91Z2ggU21CdXMgdG8gbGFuIGNhcmQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBDb21t YW5kICAgICAgQ29tbWFuZCBvZiBTeXN0ZW0gRmlybXdhcmUgRXZlbnRzLg0KDQorICBAcGFyYW1b aW5dIExlbmd0aCAgICAgICBMZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIEBwYXJh bVtpbl0gQXNmRXZlbnQgICAgIE1lc3NhZ2UgZGF0YS4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICBQdXNoIEV2ZW50IHN1Y2Nlc3NmdWxseS4NCg0KKyAgQHJldHZhbCBPdGhlcnMg ICAgICAgICAgUHVzaCBFdmVudCBlcnJvci4NCg0KKyoqLw0KDQorRUZJX1NUQVRVUw0KDQorRUZJ QVBJDQoNCitBc2ZQdXNoRXZlbnQgICgNCg0KKyAgSU4gIFVJTlQ4ICBDb21tYW5kLA0KDQorICBJ TiAgVUlOVE4gIExlbmd0aCwNCg0KKyAgSU4gIFVJTlQ4ICAqQXNmRXZlbnQNCg0KKyAgKQ0KDQor ew0KDQorICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisNCg0KKyAgaWYgKG1TbUJ1cyA9PSBOVUxM KSB7DQoNCisgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCg0KKyAgfQ0KDQorDQoNCisgIFN0 YXR1cyA9IG1TbUJ1cy0+RXhlY3V0ZSAoDQoNCisgICAgICAgICAgICAgICAgICAgICBtU21CdXMs DQoNCisgICAgICAgICAgICAgICAgICAgICBtRml4ZWRUYXJnZXRBZGRyZXNzLA0KDQorICAgICAg ICAgICAgICAgICAgICAgQ29tbWFuZCwNCg0KKyAgICAgICAgICAgICAgICAgICAgIEVmaVNtYnVz V3JpdGVCbG9jaywNCg0KKyAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisgICAgICAgICAg ICAgICAgICAgICAmTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAgQXNmRXZlbnQNCg0K KyAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN Cg0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiQXNmUHVzaEV2ZW50IFN0YXR1cyA9ICVyXG4i LCBTdGF0dXMpKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBTdGF0dXM7DQoNCit9DQoNCisN Cg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0aGUgU3lzdGVtIEZpcm13YXJlIFN0 YXRlIEV2ZW50cy4NCg0KKw0KDQorICBAcGFyYW1baW5dIFN5c3RlbVN0YXRlICAgIFN5c3RlbSBG aXJtd2FyZSBTdGF0ZS4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlB1 c2hTeXN0ZW1TdGF0ZSAgKA0KDQorICBJTiAgVUlOVDggIFN5c3RlbVN0YXRlDQoNCisgICkNCg0K K3sNCg0KKyAgbUFzZlN5c3RlbVN0YXRlLkV2ZW50U2Vuc29yVHlwZSA9IFN5c3RlbVN0YXRlOw0K DQorICBBc2ZQdXNoRXZlbnQgKA0KDQorICAgIG1Bc2ZTeXN0ZW1TdGF0ZS5Db21tYW5kLA0KDQor ICAgIG1Bc2ZTeXN0ZW1TdGF0ZS5CeXRlQ291bnQsDQoNCisgICAgKFVJTlQ4ICopJihtQXNmU3lz dGVtU3RhdGUuU3ViQ29tbWFuZCkNCg0KKyAgICApOw0KDQorICByZXR1cm47DQoNCit9DQoNCisN Cg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgU3lzdGVtIEZpcm13YXJl IFByb2dyZXNzL0Vycm9yIEV2ZW50cy4NCg0KKw0KDQorICBAcGFyYW1baW5dIE1lc3NhZ2VFcnJv ckxldmVsICAgUHJvZ3Jlc3Mgb3IgZXJyb3Igb3Igc3lzdGVtIG1hbmFnZW1lbnQgbWVzc2FnZSBU eXBlLg0KDQorICBAcGFyYW1baW5dIE1lc3NhZ2VUeXBlICAgICAgICAgU3BlY2lmaWMgQVNGIG1l c3NhZ2UgdHlwZS4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlB1c2hT eXN0ZW1FcnJvclByb2dyZXNzRXZlbnQgICgNCg0KKyAgSU4gVUlOVDMyICAgICAgICAgICAgTWVz c2FnZUVycm9yTGV2ZWwsDQoNCisgIElOIEFTRl9NRVNTQUdFX1RZUEUgIE1lc3NhZ2VUeXBlDQoN CisgICkNCg0KK3sNCg0KKyAgVUlOVE4gIGk7DQoNCisNCg0KKyAgaWYgKChNZXNzYWdlRXJyb3JM ZXZlbCAmIFBjZEdldDMyIChQY2RBc2ZNZXNzYWdlRXJyb3JMZXZlbCkpIHx8DQoNCisgICAgICAo KGdBc2ZCb290T3B0aW9uLkJvb3RPcHRpb25CaXQgJiBBU0ZfQk9QX0JJVF9GT1JDRV9QUk9HUkVT U19FVkVOVCkpKQ0KDQorICB7DQoNCisgICAgZm9yICggaSA9IDA7IGkgPCBtQXNmTWVzc2FnZXNT aXplOyBpKysgKSB7DQoNCisgICAgICBpZiAoIG1Bc2ZNZXNzYWdlc1tpXS5UeXBlID09IE1lc3Nh Z2VUeXBlICkgew0KDQorICAgICAgICBBc2ZQdXNoRXZlbnQgKA0KDQorICAgICAgICAgIG1Bc2ZN ZXNzYWdlc1tpXS5NZXNzYWdlLkNvbW1hbmQsDQoNCisgICAgICAgICAgbUFzZk1lc3NhZ2VzW2ld Lk1lc3NhZ2UuQnl0ZUNvdW50LA0KDQorICAgICAgICAgIChVSU5UOCAqKSYobUFzZk1lc3NhZ2Vz W2ldLk1lc3NhZ2UuU3ViQ29tbWFuZCkNCg0KKyAgICAgICAgICApOw0KDQorICAgICAgICBicmVh azsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm47DQoNCit9 DQoNCisNCg0KKy8qKg0KDQorICBTZW5kIHJlbGF0ZSBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdl IHRvIGxhbiBjYXJkDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgQ29kZVR5cGUgICAgICAgICBJbmRp Y2F0ZXMgdGhlIHR5cGUgb2Ygc3RhdHVzIGNvZGUgYmVpbmcgcmVwb3J0ZWQuDQoNCisgIEBwYXJh bVtpbl0gIFZhbHVlICAgICAgICAgICAgRGVzY3JpYmVzIHRoZSBjdXJyZW50IHN0YXR1cyBvZiBh IGhhcmR3YXJlIG9yIHNvZnR3YXJlIGVudGl0eS4NCg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUaGlzIGluY2x1ZGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjbGFzcyBhbmQgc3Vi Y2xhc3MgdGhhdCBpcyB1c2VkIHRvDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xhc3NpZnkgdGhlIGVudGl0eSBhcyB3ZWxsIGFzIGFuIG9wZXJhdGlvbi4NCg0KKyAgQHBhcmFt W2luXSAgSW5zdGFuY2UgICAgICAgICBUaGUgZW51bWVyYXRpb24gb2YgYSBoYXJkd2FyZSBvciBz b2Z0d2FyZSBlbnRpdHkgd2l0aGluDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhlIHN5c3RlbS4gVmFsaWQgaW5zdGFuY2UgbnVtYmVycyBzdGFydCB3aXRoIDEuDQoNCisgIEBw YXJhbVtpbl0gIENhbGxlcklkICAgICAgICAgVGhpcyBvcHRpb25hbCBwYXJhbWV0ZXIgbWF5IGJl IHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNhbGxlci4NCg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhlIHN0YXR1cyBjb2RlIGRyaXZlciB0byBh cHBseSBkaWZmZXJlbnQgcnVsZXMgdG8NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkaWZmZXJlbnQgY2FsbGVycy4NCg0KKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgICAgICBU aGlzIG9wdGlvbmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0byBwYXNzIGFkZGl0aW9uYWwgZGF0 YS4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgIFJlcG9ydGVkIGFsbCB0 aGUgcHJvZ3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Ygc3VjY2Vzc2Z1bGx5Lg0KDQorKiov DQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlJzY0hhbmRsZXJDYWxsYmFjayAoDQoN CisgIElOIEVGSV9TVEFUVVNfQ09ERV9UWVBFICAgQ29kZVR5cGUsDQoNCisgIElOIEVGSV9TVEFU VVNfQ09ERV9WQUxVRSAgVmFsdWUsDQoNCisgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgSW5z dGFuY2UsDQoNCisgIElOIEVGSV9HVUlEICAgICAgICAgICAgICAgKkNhbGxlcklkLA0KDQorICBJ TiBFRklfU1RBVFVTX0NPREVfREFUQSAgICpEYXRhDQoNCisgICkNCg0KK3sNCg0KKyAgVUlOVE4g IEluZGV4Ow0KDQorDQoNCisgIGlmICgoQ29kZVR5cGUgJiBFRklfU1RBVFVTX0NPREVfVFlQRV9N QVNLKSA9PSBFRklfUFJPR1JFU1NfQ09ERSkgew0KDQorICAgIGZvciAoSW5kZXggPSAwOyBJbmRl eCA8IG1Nc2dQcm9ncmVzc01hcFNpemU7IEluZGV4KyspIHsNCg0KKyAgICAgIGlmIChtTXNnUHJv Z3Jlc3NNYXBbSW5kZXhdLlN0YXR1c0NvZGUgPT0gVmFsdWUpIHsNCg0KKyAgICAgICAgQXNmUHVz aFN5c3RlbUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywg bU1zZ1Byb2dyZXNzTWFwW0luZGV4XS5NZXNzYWdlVHlwZSk7DQoNCisgICAgICAgIGJyZWFrOw0K DQorICAgICAgfQ0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmICgoQ29kZVR5cGUgJiBF RklfU1RBVFVTX0NPREVfVFlQRV9NQVNLKSA9PSBFRklfRVJST1JfQ09ERSkgew0KDQorICAgIGZv ciAoIEluZGV4ID0gMDsgSW5kZXggPCBtTXNnRXJyb3JNYXBTaXplOyBJbmRleCsrICkgew0KDQor ICAgICAgaWYgKCBtTXNnRXJyb3JNYXBbSW5kZXhdLlN0YXR1c0NvZGUgPT0gVmFsdWUgKSB7DQoN CisgICAgICAgIEFzZlB1c2hTeXN0ZW1FcnJvclByb2dyZXNzRXZlbnQgKE1FU1NBR0VfRVJST1Jf TEVWRUxfRVJST1IsIG1Nc2dFcnJvck1hcFtJbmRleF0uTWVzc2FnZVR5cGUpOw0KDQorICAgICAg ICBicmVhazsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4g RUZJX1NVQ0NFU1M7DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIGlzc3Vl cyB0aGUgQVNGIEdldC9DbGVhciBCb290IE9wdGlvbiBjb21tYW5kLg0KDQorDQoNCisgIEBwYXJh bVtpbl0gIEFzZlNsYXZlQWRkcmVzcyAgU3BlY2lmeSB0aGUgRGFzaCBsYW4gU21CdXMgc2xhdmUg YWRkcmVzcy4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTIFJlcG9ydGVkIGFsbCB0aGUg cHJvZ3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Ygc3VjY2Vzc2Z1bGx5Lg0KDQorICBAcmV0 dmFsIE90aGVycyAgICAgIFNtYnVzIEV4ZWN1dGUgZnVuY3Rpb24gcmV0dXJuIGVycm9yLg0KDQor KiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZkdldEJvb3RPcHRpb24gKA0KDQor ICBJTiAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBBc2ZTbGF2ZUFkZHJlc3MNCg0KKyAgKQ0K DQorew0KDQorICBFRklfU1RBVFVTICAgICAgIFN0YXR1czsNCg0KKyAgVUlOVE4gICAgICAgICAg ICBMZW5ndGggPSBzaXplb2YgKEFTRl9CT09UX09QVElPTik7DQoNCisgIEFTRl9CT09UX09QVElP TiAgQm9vdE9wdGlvbjsNCg0KKw0KDQorICAvLyBJbml0aWFsaXplIGdldCBib290IG9wdGlvbiBC dWZmZXIuDQoNCisgIFNldE1lbSAoJkJvb3RPcHRpb24sIHNpemVvZiAoQVNGX0JPT1RfT1BUSU9O KSwgMCk7DQoNCisNCg0KKyAgLy8gRXhlY3V0ZSBBU0ZNU0dfQ01EX0NPTkZJRyBjb21tYW5kLg0K DQorICBTdGF0dXMgPSBtU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICAgICAgICAg bVNtQnVzLA0KDQorICAgICAgICAgICAgICAgICAgICAgQXNmU2xhdmVBZGRyZXNzLA0KDQorICAg ICAgICAgICAgICAgICAgICAgQVNGTVNHX0NNRF9DT05GSUcsDQoNCisgICAgICAgICAgICAgICAg ICAgICBFZmlTbWJ1c1JlYWRCbG9jaywNCg0KKyAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoN CisgICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAg JkJvb3RPcHRpb24NCg0KKyAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgIGlmICggRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIFN0YXR1czsNCg0KKyAgfQ0KDQorDQoNCisg IGlmICggQm9vdE9wdGlvbi5TdWJDb21tYW5kID09IEFTRk1TR19TVUJDTURfUkVUX0JPT1RfT1BU SU9OICkgew0KDQorICAgIC8vIGNvcHkgUmV0dXJuIEJvb3QgT3B0aW9uIHRvIGdsb2JhbCBBU0Yg Qm9vdCBPcHRpb24gYnVmZmVyLg0KDQorICAgIENvcHlNZW0gKCZnQXNmQm9vdE9wdGlvbiwgJkJv b3RPcHRpb24sIHNpemVvZiAoQVNGX0JPT1RfT1BUSU9OKSk7DQoNCisgICAgZ0FzZlByb3RvY29s LkJvb3RPcHRpb24gPSAmZ0FzZkJvb3RPcHRpb247DQoNCisgICAgLy8gRXhlY3V0ZSBDbGVhciBC b290IE9wdGlvbiBjb21tYW5kLg0KDQorICAgIEJvb3RPcHRpb24uU3ViQ29tbWFuZCA9IEFTRk1T R19TVUJDTURfQ0xSX0JPT1RfT1BUSU9OOw0KDQorICAgIEJvb3RPcHRpb24uVmVyc2lvbiAgICA9 IDB4MTA7DQoNCisgICAgTGVuZ3RoICAgICAgICAgICAgICAgID0gMjsNCg0KKyAgICBtU21CdXMt PkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICBtU21CdXMsDQoNCisgICAgICAgICAgICAgIEFz ZlNsYXZlQWRkcmVzcywNCg0KKyAgICAgICAgICAgICAgQVNGTVNHX0NNRF9DT05GSUcsDQoNCisg ICAgICAgICAgICAgIEVmaVNtYnVzV3JpdGVCbG9jaywNCg0KKyAgICAgICAgICAgICAgVFJVRSwN Cg0KKyAgICAgICAgICAgICAgJkxlbmd0aCwNCg0KKyAgICAgICAgICAgICAgJkJvb3RPcHRpb24N Cg0KKyAgICAgICAgICAgICAgKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBTdGF0dXM7DQoN Cit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIEV2ZW50IENhbGxiYWNrIHByb2Nlc3NlcyB0aGUg cmVxdWVzdHMgYXQgRUZJIFJlYWR5IHRvIEJvb3QgRXZlbnQgdHJpZ2dlcmVkLg0KDQorDQoNCisg IEBwYXJhbVtpbl0gIEV2ZW50ICAgICAgQSBwb2ludGVyIHRvIHRoZSBFdmVudCB0aGF0IHRyaWdn ZXJlZCB0aGUgY2FsbGJhY2suDQoNCisgIEBwYXJhbVtpbl0gIENvbnRleHQgICAgQSBwb2ludGVy IHRvIHByaXZhdGUgZGF0YSByZWdpc3RlcmVkIHdpdGggdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLg0K DQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlJlYWR5VG9Cb290RXZlbnQgKA0KDQor ICBJTiAgRUZJX0VWRU5UICBFdmVudCwNCg0KKyAgSU4gIFZPSUQgICAgICAgKkNvbnRleHQNCg0K KyAgKQ0KDQorew0KDQorICAvLyBQdXNoIFN5c3RlbSBTdGF0ZSBTMCAtICJXb3JraW5nIi4NCg0K KyAgQXNmUHVzaFN5c3RlbVN0YXRlIChBU0ZNU0dfU1lTVEVNX1NUQVRFX1MwKTsNCg0KKw0KDQor ICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCg0KKyAgcmV0dXJuOw0KDQorfQ0KDQorDQoNCisv KioNCg0KKyAgICBSZWdpc3RlciBjYWxsYmFjayBpZiBBY3BpIHByb3RvY29sIGlzIG5vdCByZWFk eSwgZWxzZSBpbnN0YWxsIEFTRiBhY3BpIHRhYmxlIGRpcmVjdGx5Lg0KDQorDQoNCisqKi8NCg0K K1ZPSUQNCg0KK0VGSUFQSQ0KDQorSW5zdGFsbEFzZkFjcGlUYWJsZSAoDQoNCisgIFZPSUQNCg0K KyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgU3RhdHVzOw0KDQorICBF RklfRVZFTlQgICAgICAgICAgICAgICAgRXZlbnQ7DQoNCisgIFZPSUQgICAgICAgICAgICAgICAg ICAgICAqUmVnaXN0cmF0aW9uOw0KDQorICBFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAgKkFjcGlU YWJsZVByb3RvY29sOw0KDQorDQoNCisgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZn RWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9JRCAqKikmQWNwaVRhYmxlUHJvdG9j b2wpOw0KDQorICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgIEluc3RhbGxBc2ZB Y3BpVGFibGVFdmVudCAoTlVMTCwgTlVMTCk7DQoNCisgIH0gZWxzZSB7DQoNCisgICAgU3RhdHVz ID0gZ0JTLT5DcmVhdGVFdmVudCAoDQoNCisgICAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllf U0lHTkFMLA0KDQorICAgICAgICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQoNCisgICAgICAg ICAgICAgICAgICAgIEluc3RhbGxBc2ZBY3BpVGFibGVFdmVudCwNCg0KKyAgICAgICAgICAgICAg ICAgICAgTlVMTCwNCg0KKyAgICAgICAgICAgICAgICAgICAgJkV2ZW50DQoNCisgICAgICAgICAg ICAgICAgICAgICk7DQoNCisNCg0KKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQor ICAgICAgU3RhdHVzID0gZ0JTLT5SZWdpc3RlclByb3RvY29sTm90aWZ5ICgNCg0KKyAgICAgICAg ICAgICAgICAgICAgICAmZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZCwNCg0KKyAgICAgICAgICAg ICAgICAgICAgICBFdmVudCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAmUmVnaXN0cmF0aW9u DQoNCisgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKw0KDQorICAgICAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KDQorICAgICAgICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCg0KKyAg ICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm47DQoNCit9DQoNCisNCg0K Ky8qKg0KDQorICBUaGlzIGlzIHRoZSBzdGFuZGFyZCBFRkkgZHJpdmVyIGVudHJ5IHBvaW50IGZv ciBEWEUgcGhhc2Ugb2YgQVNGLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gSW1hZ2VIYW5kbGUgICBJ bWFnZSBoYW5kbGUgb2YgdGhlIGxvYWRlZCBkcml2ZXINCg0KKyAgQHBhcmFtW2luXSBTeXN0ZW1U YWJsZSAgIFBvaW50ZXIgdG8gdGhlIFN5c3RlbSBUYWJsZQ0KDQorDQoNCisgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICBUaGlzIGRyaXZlciBpbml0aWFsIGNvcnJlY3RseQ0KDQorICBAcmV0dmFs IE90aGVycyAgICAgICAgICAgVGhpcyBkcml2ZXIgaW5pdGlhbCBmYWlsDQoNCisqKi8NCg0KK0VG SV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorQXNmRHhlRW50cnkgKA0KDQorICBJTiBFRklfSEFORExF ICAgICAgICBJbWFnZUhhbmRsZSwNCg0KKyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgKlN5c3RlbVRh YmxlDQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7 DQoNCisgIEVGSV9SU0NfSEFORExFUl9QUk9UT0NPTCAgKlJzY0hhbmRsZXI7DQoNCisgIEVGSV9F VkVOVCAgICAgICAgICAgICAgICAgQXNmRWZpUmVhZHlUb0Jvb3RFdmVudDsNCg0KKw0KDQorICBT dGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVNtYnVzSGNQcm90b2NvbEd1aWQsIE5V TEwsIChWT0lEICoqKSZtU21CdXMpOw0KDQorICBpZiAoIEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K DQorICAgIHJldHVybiBTdGF0dXM7DQoNCisgIH0NCg0KKw0KDQorICBtRml4ZWRUYXJnZXRBZGRy ZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9IFBjZEdldDggKFBjZFNtYnVzU2xhdmVBZGRyZXNzRm9y RGFzaExhbikgPj4gMTsNCg0KKyAgaWYgKG1GaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VB ZGRyZXNzID09IDApIHsNCg0KKyAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KDQorICB9DQoN CisNCg0KKyAgU3RhdHVzID0gQXNmR2V0Qm9vdE9wdGlvbiAobUZpeGVkVGFyZ2V0QWRkcmVzcyk7 DQoNCisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIFN0YXR1czsN Cg0KKyAgfQ0KDQorDQoNCisgIEluc3RhbGxBc2ZBY3BpVGFibGUgKCk7DQoNCisNCg0KKyAgLy8g U2VuZCBtb3RoZXIgYm9hcmQgaW5pdGlhbGl6YXRpb24gbWVzc2FnZS4NCg0KKyAgQXNmUHVzaFN5 c3RlbUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgTXNn TW90aGVyQm9hcmRJbml0KTsNCg0KKw0KDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29s ICgmZ0VmaVJzY0hhbmRsZXJQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZSc2NIYW5kbGVy KTsNCg0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBSc2NIYW5kbGVyLT5S ZWdpc3RlciAoQXNmUnNjSGFuZGxlckNhbGxiYWNrLCBUUExfQ0FMTEJBQ0spOw0KDQorICB9DQoN CisNCg0KKyAgRWZpQ3JlYXRlRXZlbnRSZWFkeVRvQm9vdEV4ICgNCg0KKyAgICBUUExfQ0FMTEJB Q0ssDQoNCisgICAgQXNmUmVhZHlUb0Jvb3RFdmVudCwNCg0KKyAgICBOVUxMLA0KDQorICAgICZB c2ZFZmlSZWFkeVRvQm9vdEV2ZW50DQoNCisgICAgKTsNCg0KKw0KDQorICBnQlMtPkluc3RhbGxQ cm90b2NvbEludGVyZmFjZSAoDQoNCisgICAgICAgICAmSW1hZ2VIYW5kbGUsDQoNCisgICAgICAg ICAmZ0FzZlByb3RvY29sR3VpZCwNCg0KKyAgICAgICAgIEVGSV9OQVRJVkVfSU5URVJGQUNFLA0K DQorICAgICAgICAgJmdBc2ZQcm90b2NvbA0KDQorICAgICAgICAgKTsNCg0KKw0KDQorICByZXR1 cm4gRUZJX1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRP ZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50LmMgYi9GZWF0 dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4 ZUV2ZW50LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42NDI2NWM2 ZDVjDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50LmMNCkBAIC0wLDAgKzEsMzE5IEBA DQorLyoqIEBmaWxlDQoNCisgIEFzZiBtZXNzYWdlcyBkZWZpbmUNCg0KKw0KDQorICBDb3B5cmln aHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoNCisN Cg0KKyNpbmNsdWRlIDxBc2ZEeGUuaD4NCg0KKw0KDQorTUVTU0FHRV9EQVRBX0hVQl9NQVAgIG1N c2dQcm9ncmVzc01hcFtdID0gew0KDQorICB7IE1zZ0hkZEluaXQsICAgICAgICAgICBFRklfUEVS SVBIRVJBTF9GSVhFRF9NRURJQSB8IEVGSV9QX1BDX0VOQUJMRSAgICAgICAgICAgICB9LA0KDQor ICB7IE1zZ0FwSW5pdCwgICAgICAgICAgICBFRklfQ09NUFVUSU5HX1VOSVRfSE9TVF9QUk9DRVNT T1IgfCBFRklfQ1VfSFBfUENfQVBfSU5JVCB9LA0KDQorICB7IE1zZ1VzZXJJbml0U2V0dXAsICAg ICBFRklfU09GVFdBUkVfRFhFX0JTX0RSSVZFUiB8IEVGSV9TV19QQ19VU0VSX1NFVFVQICAgICAg ICB9LA0KDQorICB7IE1zZ1VzYlJlc291cmNlQ29uZmlnLCBFRklfSU9fQlVTX1VTQiB8IEVGSV9Q X1BDX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ1BjaVJlc291 cmNlQ29uZmlnLCBFRklfSU9fQlVTX1BDSSB8IEVGSV9JT0JfUENJX0JVU19FTlVNICAgICAgICAg ICAgICAgICAgICB9LA0KDQorICB7IE1zZ1ZpZGVvSW5pdCwgICAgICAgICBFRklfUEVSSVBIRVJB TF9MT0NBTF9DT05TT0xFIHwgRUZJX1BfUENfRU5BQkxFICAgICAgICAgICB9LA0KDQorICB7IE1z Z0tiY0luaXQsICAgICAgICAgICBFRklfUEVSSVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX1BDX0VO QUJMRSAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ0tiY1Rlc3QsICAgICAgICAgICBFRklf UEVSSVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX0tFWUJPQVJEX1BDX1NFTEZfVEVTVCAgICB9DQoN Cit9Ow0KDQorDQoNCitNRVNTQUdFX0RBVEFfSFVCX01BUCAgbU1zZ0Vycm9yTWFwW10gPSB7DQoN CisgIHsgTXNnTm9WaWRlbywgICAgRUZJX1BFUklQSEVSQUxfTE9DQUxfQ09OU09MRSB8IEVGSV9Q X0VDX05PVF9ERVRFQ1RFRCB9LA0KDQorICB7IE1zZ0tiZEZhaWx1cmUsIEVGSV9QRVJJUEhFUkFM X0tFWUJPQVJEIHwgRUZJX1BfRUNfTk9UX0RFVEVDVEVEICAgICAgfSwNCg0KKyAgeyBNc2dIZGRG YWlsdXJlLCBFRklfUEVSSVBIRVJBTF9GSVhFRF9NRURJQSB8IEVGSV9QX0VDX05PVF9ERVRFQ1RF RCAgIH0NCg0KK307DQoNCisNCg0KK0FTRl9NRVNTQUdFICBtQXNmTWVzc2FnZXNbXSA9IHsNCg0K KyAgew0KDQorICAgIE1zZ0hkZEluaXQsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1B TkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZN U0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVN QkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dS RVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAg ICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VW RVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19FTlRJVFlfRElTSywNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0Vf VU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfREFUQV9IQVJEX0RJU0tfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0s DQoNCisgIHsNCg0KKyAgICBNc2dBcEluaXQsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NP TU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBB U0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05f TlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BS T0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQor ICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAg ICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRf U0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5T UEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0K KyAgICAgIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SLA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9J TlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9EQVRBX0FQX0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9 LA0KDQorICB7DQoNCisgICAgTXNnVXNlckluaXRTZXR1cCwNCg0KKyAgICB7DQoNCisgICAgICBB U0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0K KyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0df VkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldf RVJST1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lG SUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwN Cg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1T R19FVkVOVF9TRVZFUklUWV9OT05fQ1JJVElDQUwsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RF VklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lG SUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9CSU9TLA0KDQorICAgICAgQVNGTVNHX0VOVElU WV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX1NFVFVQX0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0K DQorICB9LA0KDQorICB7DQoNCisgICAgTXNnVXNiUmVzb3VyY2VDb25maWcsDQoNCisgICAgew0K DQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0 ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAg ICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNP Ul9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VO U09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JF U1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisg ICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNH X1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJF Ul9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfQklPUywNCg0KKyAgICAgIEFT Rk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRf REFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9VU0JfUkVTT1VSQ0VfQ09ORklHDQoN CisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnUGNpUmVzb3VyY2VDb25maWcsDQoN CisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgw ZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlU LA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VW RU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNf RldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNG MTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAg ICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VO U09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfQklPUywNCg0K KyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9QQ0lfUkVTT1VSQ0Vf Q09ORklHDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnVmlkZW9Jbml0LA0K DQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4 MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01J VCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19F VkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVO VF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lT X0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FT RjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9DUklUSUNBTCwNCg0KKyAg ICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX1NF TlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0FERF9JTl9D QVJELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX1ZJREVP X0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnS2Jj SW5pdCwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisg ICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JF VFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZG U0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0Vf VFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fQ1JJVElDQUws DQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFT Rk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9T WVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lGSUVE LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RB VEFfS0VZQk9BUkRfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsNCg0K KyAgICBNc2dLYmNUZXN0LA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NB R0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNP TU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwN Cg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1T R19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNHX0VW RU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05P Tl9DUklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0K DQorICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZN U0dfRU5USVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0Vf VU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfREFUQV9LRVlCT0FSRF9URVNUDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoN CisgICAgTXNnTW90aGVyQm9hcmRJbml0LA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01N QU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNG TVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05V TUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9H UkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAg QVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NF VkVSSVRZX01PTklUT1IsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklF RCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAg QVNGTVNHX0VOVElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RB TkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAgICAg QVNGTVNHX0VWRU5UX0RBVEFfQk9BUkRfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0s DQoNCisgIHsNCg0KKyAgICBNc2dOb1ZpZGVvLA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19D T01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAg QVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9O X05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9Q Uk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfTk9fQk9PVEFCTEVfTUVESUEsDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VW RVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19FTlRJVFlfQUREX0lOX0NBUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lO U1RBTkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAg ICAgQVNGTVNHX0VWRU5UX0RBVEFfTk9fVklERU8NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsN Cg0KKyAgICBNc2dLYmRGYWlsdXJlLA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5E X01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNH X1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJF Ul8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVT UywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX0VSUk9SLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9D UklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0KDQor ICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0df RU5USVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5T UEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfREFUQV9LRVlCT0FSRF9GQUlMVVJFDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoN CisgICAgTXNnSGRkRmFpbHVyZSwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9N RVNTQUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19T VUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJf MTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1Ms DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9T T1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fUkVD T1ZFUkFCTEUsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0K KyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNH X0VOVElUWV9ESVNLLA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklF RCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9E QVRBX0hBUkRfRElTS19GQUlMVVJFDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAg TXNnQ2hhc3Npc0ludHJ1c2lvbiwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9N RVNTQUdJTkcsDQoNCisgICAgICAweDBiLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19T VUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJf MTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfQ0hBU1NJU19JTlRSVVNJT04s DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfT0ZGU0VUX0NIQVNTSVNfSU5UUlVTSU9OLA0KDQorICAgICAgQVNGTVNHX0VW RU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX01P TklUT1IsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VO VElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BF Q0lGSUVEDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnTm9Cb290TWVkaWEs DQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAg MHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5T TUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNH X0VWRU5UX1NFTlNPUl9UWVBFX0JPT1RfRVJST1IsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQ RV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19F UlJPUiwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fUkVDT1ZFUkFCTEUsDQoNCisgICAgICBBU0ZNU0df U0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVS X1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRA0KDQor ICAgIH0NCg0KKyAgfQ0KDQorfTsNCg0KKw0KDQorVUlOVE4gIG1Nc2dQcm9ncmVzc01hcFNpemUg PSBzaXplb2YgKG1Nc2dQcm9ncmVzc01hcCkgLyBzaXplb2YgKE1FU1NBR0VfREFUQV9IVUJfTUFQ KTsNCg0KK1VJTlROICBtTXNnRXJyb3JNYXBTaXplICAgID0gc2l6ZW9mIChtTXNnRXJyb3JNYXAp IC8gc2l6ZW9mIChNRVNTQUdFX0RBVEFfSFVCX01BUCk7DQoNCitVSU5UTiAgbUFzZk1lc3NhZ2Vz U2l6ZSAgICA9IHNpemVvZiAobUFzZk1lc3NhZ2VzKSAvIHNpemVvZiAoQVNGX01FU1NBR0UpOw0K DQorDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbUFzZlN5c3RlbVN0YXRlID0NCg0KK3sNCg0K KyAgQVNGTVNHX0NPTU1BTkRfU1lTVEVNX1NUQVRFLA0KDQorICAweDMsICAgIC8vIEJ5dGVDb3Vu dA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9TRVRfU1lTVEVNX1NUQVRFLA0KDQorICBBU0ZNU0df VkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19TWVNURU1fU1RBVEVfUzANCg0KK307DQoN CmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1 cmVQa2cvQXNmUGVpL0FzZlBlaS5jIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVu dC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAuLjhiNDRjZDI2ZTANCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmMN CkBAIC0wLDAgKzEsMzg0IEBADQorLyoqIEBmaWxlDQoNCisgIEFzZiBQZWkgSW5pdGlhbGl6YXRp b24gRHJpdmVyLg0KDQorDQoNCisgIEZvbGxvdyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9y IGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAx OTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyoqLw0KDQorDQoNCisjaW5j bHVkZSA8QXNmTWVzc2FnZXMuaD4NCg0KKyNpbmNsdWRlIDxCYXNlLmg+DQoNCisjaW5jbHVkZSA8 UHBpL1JlcG9ydFN0YXR1c0NvZGVIYW5kbGVyLmg+DQoNCisjaW5jbHVkZSA8UHBpL01lbW9yeURp c2NvdmVyZWQuaD4NCg0KKyNpbmNsdWRlIDxQcGkvU21idXMyLmg+DQoNCisjaW5jbHVkZSA8TGli cmFyeS9EZWJ1Z0xpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvUGVpU2VydmljZXNMaWIuaD4N Cg0KKyNpbmNsdWRlIDxQaS9QaVN0YXR1c0NvZGUuaD4NCg0KKw0KDQorLyoqDQoNCisgIFRoaXMg RXZlbnQgTm90aWZ5IHByb2Nlc3NlcyB0aGUgQVNGIHJlcXVlc3QgYXQgTWVtb3J5IEluaXRpYWwg Q29tcGxldGVkLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gUGVpU2VydmljZXMgICAgICAgICAgR2Vu ZXJhbCBwdXJwb3NlIHNlcnZpY2VzIGF2YWlsYWJsZSB0byBldmVyeSBQRUlNLg0KDQorICBAcGFy YW1baW5dIE5vdGlmeURlc2NyaXB0b3IgICAgIFRoZSBub3RpZmljYXRpb24gc3RydWN0dXJlIHRo aXMgUEVJTSByZWdpc3RlcmVkIG9uIGluc3RhbGwuDQoNCisgIEBwYXJhbVtpbl0gUHBpICAgICAg ICAgICAgICAgICAgVGhlIG1lbW9yeSBkaXNjb3ZlcmVkIFBQSS4gIE5vdCB1c2VkLg0KDQorDQoN CisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgU3VjY2VlZHMuDQoNCisgIEByZXR2 YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgUHVzaCBFdmVudCBlcnJvci4NCg0KKw0KDQorKiov DQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK01zZ01lbW9yeUluaXRDb21wbGV0ZWQgKA0K DQorICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KDQorICBJ TiBFRklfUEVJX05PVElGWV9ERVNDUklQVE9SICAqTm90aWZ5RGVzY3JpcHRvciwNCg0KKyAgSU4g Vk9JRCAgICAgICAgICAgICAgICAgICAgICAgKlBwaQ0KDQorICApOw0KDQorDQoNCitTVEFUSUMg RUZJX1BFSV9OT1RJRllfREVTQ1JJUFRPUiAgbU1lbW9yeURpc2NvdmVyZWROb3RpZnlEZXMgPSB7 DQoNCisgIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfTk9USUZZX0NBTExCQUNLIHwgRUZJX1BFSV9Q UElfREVTQ1JJUFRPUl9URVJNSU5BVEVfTElTVCwNCg0KKyAgJmdFZmlQZWlNZW1vcnlEaXNjb3Zl cmVkUHBpR3VpZCwNCg0KKyAgTXNnTWVtb3J5SW5pdENvbXBsZXRlZA0KDQorfTsNCg0KKw0KDQor QVNGX01TR19OT1JFVFJBTlNNSVQgIG1Bc2ZTeXN0ZW1TdGF0ZVdvcmtpbmcgPSBcDQoNCit7DQoN CisgIEFTRk1TR19DT01NQU5EX1NZU1RFTV9TVEFURSwNCg0KKyAgMHgzLCAgICAvLyBCeXRlQ291 bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU0VUX1NZU1RFTV9TVEFURSwNCg0KKyAgQVNGTVNH X1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICBBU0ZNU0dfU1lTVEVNX1NUQVRFX1MwDQoNCit9Ow0K DQorDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbU1zZ1N0b3BUaW1lciA9DQoNCit7DQoNCisg IEFTRk1TR19DT01NQU5EX01BTkFHRU1FTlRfQ09OVFJPTCwNCg0KKyAgMHgyLCAgICAvLyBCeXRl Q291bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU1RPUF9XQVRDSF9ET0csDQoNCisgIEFTRk1T R19WRVJTSU9OX05VTUJFUl8xMA0KDQorfTsNCg0KKw0KDQorLy8gMy4xLjUuMyBTeXN0ZW0gRmly bXdhcmUgUHJvZ3Jlc3MgRXZlbnRzDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbU1zZ0Jpb3NQ cmVzZW50ID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQs ICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0K DQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1Jf VFlQRV9FTlRJVFlfUFJFU0VOQ0UsDQoNCisgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVD SUZJQywNCg0KKyAgQVNGTVNHX0VWRU5UX09GRlNFVF9FTlRJVFlfUFJFU0VOVCwNCg0KKyAgQVNG TVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlf Tk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0K KyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlf QklPUywNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNG TVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRA0KDQor fTsNCg0KKw0KDQorLy8gU3RhcnRpbmcgbWVtb3J5IGluaXRpYWxpemF0aW9uIGFuZCB0ZXN0Lg0K DQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJbml0ID0NCg0KK3sNCg0KKyAgQVNG TVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5dGVDb3VudA0KDQorICBB U0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1C RVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywN Cg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICBBU0ZNU0dfRVZF TlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJD RV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0K DQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNP Ul9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfTUVNT1JZX0RFVklDRSwN Cg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VW RU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElBTElaQVRJT04N Cg0KK307DQoNCisNCg0KKy8vIE1lbW9yeSBpbml0aWFsaXplZCBhbmQgdGVzdGVkLg0KDQorQVNG X01TR19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJbml0aWFsaXplZCA9DQoNCit7DQoNCisgIEFT Rk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgMHhkLCAgICAvLyBCeXRlQ291bnQNCg0KKyAg QVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgQVNGTVNHX1ZFUlNJT05fTlVN QkVSXzEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1Ms DQoNCisgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgQVNGTVNHX0VW RU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRVhJVCwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJD RV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0K DQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNP Ul9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfTUVNT1JZX0RFVklDRSwN Cg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VW RU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElBTElaQVRJT04N Cg0KK307DQoNCisNCg0KK0FTRl9NU0dfTk9SRVRSQU5TTUlUICBtQXNmbXNnQ2FjaGVJbml0ID0N Cg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5 dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZN U0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19F UlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0K DQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgQVNG TVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlf TU9OSVRPUiwNCg0KKyAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgIEFT Rk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICBBU0ZNU0dfRU5USVRZX1BST0NF U1NPUiwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNG TVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9DQUNIRV9JTklUSUFMSVpB VElPTg0KDQorfTsNCg0KKw0KDQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Bc2Ztc2dNZW1vcnlN aXNzaW5nID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQs ICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0K DQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1Jf VFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQ RUNJRklDLA0KDQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0KKyAgQVNG TVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlf Tk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0K KyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlf TUVNT1JZX0RFVklDRSwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwN Cg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9OT19NRU1P UlkNCg0KK307DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0aGUgUEVJ IFN5c3RlbSBGaXJtd2FyZSBQcm9ncmVzcyBFdmVudHMuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBT bUJ1cyAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFNtQnVzIFBQSS4NCg0KKyAgQHBhcmFt W2luXSBGaXhlZFRhcmdldEFkZHJlc3MgIERldmljZSBhZGRyZXNzDQoNCisgIEBwYXJhbVtpbl0g TWVzc2FnZUVycm9yTGV2ZWwgICBQcm9ncmVzcyBvciBlcnJvciBvciBzeXN0ZW0gbWFuYWdlbWVu dCBtZXNzYWdlIFR5cGUuDQoNCisgIEBwYXJhbVtpbl0gTWVzc2FnZUJ1ZmZlciAgICAgICBQb2lu dGVyIHRvIHRoZSBFdmVudCBEYXRhIEJ1ZmZlci4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitF RklBUEkNCg0KK0FzZlB1c2hQcm9ncmVzc01lc3NhZ2UgKA0KDQorICBJTiBFRklfUEVJX1NNQlVT Ml9QUEkgICAgICAgICpTbUJ1cywNCg0KKyAgSU4gRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBG aXhlZFRhcmdldEFkZHJlc3MsDQoNCisgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgTWVz c2FnZUVycm9yTGV2ZWwsDQoNCisgIElOIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgKk1lc3Nh Z2VCdWZmZXINCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisgIFVJ TlROICAgICAgIExlbmd0aDsNCg0KKw0KDQorICBpZiAoTWVzc2FnZUVycm9yTGV2ZWwgJiBQY2RH ZXQzMiAoUGNkQXNmTWVzc2FnZUVycm9yTGV2ZWwpKSB7DQoNCisgICAgTGVuZ3RoID0gKChBU0Zf TVNHX05PUkVUUkFOU01JVCAqKU1lc3NhZ2VCdWZmZXIpLT5CeXRlQ291bnQ7DQoNCisgICAgU3Rh dHVzID0gU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICAgICAgICAgIFNtQnVzLA0K DQorICAgICAgICAgICAgICAgICAgICAgIEZpeGVkVGFyZ2V0QWRkcmVzcywNCg0KKyAgICAgICAg ICAgICAgICAgICAgICAoKEFTRl9NU0dfTk9SRVRSQU5TTUlUICopTWVzc2FnZUJ1ZmZlciktPkNv bW1hbmQsDQoNCisgICAgICAgICAgICAgICAgICAgICAgRWZpU21idXNXcml0ZUJsb2NrLA0KDQor ICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisgICAgICAgICAgICAgICAgICAgICAgJkxl bmd0aCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAoVUlOVDggKikoTWVzc2FnZUJ1ZmZlcisy KQ0KDQorICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KDQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlB1c2ggYWxlcnQgbWVzc2Fn ZSBmYWlsLCBzdGF0dXMgPSAlclxuIiwgU3RhdHVzKSk7DQoNCisgICAgfQ0KDQorICB9DQoNCisN Cg0KKyAgcmV0dXJuOw0KDQorfQ0KDQorDQoNCisvKioNCg0KKyAgVGhpcyBjYWxsYmFjayByZWdp c3RlcmVkIGJ5IFJlcG9ydCBTdGF0dXMgQ29kZSBQcGkgZm9yIE1lbW9yeSBNaXNzaW5nIFBFVC4N Cg0KKw0KDQorICBAcGFyYW1baW5dIFBlaVNlcnZpY2VzICAgICAgICBHZW5lcmFsIHB1cnBvc2Ug c2VydmljZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5IFBFSU0uDQoNCisgIEBwYXJhbVtpbl0gVHlwZSAg ICAgICAgICAgICAgIEluZGljYXRlcyB0aGUgdHlwZSBvZiBzdGF0dXMgY29kZSBiZWluZyByZXBv cnRlZC4NCg0KKyAgQHBhcmFtW2luXSBWYWx1ZSAgICAgICAgICAgICAgRGVzY3JpYmVzIHRoZSBj dXJyZW50IHN0YXR1cyBvZiBhIGhhcmR3YXJlIG9yIHNvZnR3YXJlIGVudGl0eS4NCg0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpbmNsdWRlZCBpbmZvcm1hdGlvbiBhYm91 dCB0aGUgY2xhc3MgYW5kIHN1YmNsYXNzIHRoYXQgaXMNCg0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXNlZCB0byBjbGFzc2lmeSB0aGUgZW50aXR5IGFzIHdlbGwgYXMgYW4gb3Bl cmF0aW9uLg0KDQorICBAcGFyYW1baW5dIEluc3RhbmNlICAgICAgICAgICBUaGUgZW51bWVyYXRp b24gb2YgYSBoYXJkd2FyZSBvciBzb2Z0d2FyZSBlbnRpdHkgd2l0aGluIHRoZSBzeXN0ZW0uDQoN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkIGluc3RhbmNlIG51bWJlcnMg c3RhcnQgd2l0aCAxLg0KDQorICBAcGFyYW1baW5dIENhbGxlcklkICAgICAgICAgICBUaGlzIG9w dGlvbmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgY2FsbGVyLg0KDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhl IHN0YXR1cyBjb2RlIGRyaXZlciB0byBhcHBseSBkaWZmZXJlbnQNCg0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnVsZXMgdG8gZGlmZmVyZW50IGNhbGxlcnMuDQoNCisgIEBwYXJh bVtpbl0gRGF0YSAgICAgICAgICAgICAgIFRoaXMgb3B0aW9uYWwgcGFyYW1ldGVyIG1heSBiZSB1 c2VkIHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhLg0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NF U1MgICAgICAgICAgIEFsd2F5cyByZXR1cm4gRUZJX1NVQ0NFU1MNCg0KKw0KDQorKiovDQoNCitF RklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlBlaVN0YXR1c0NvZGVDYWxsQmFjayAoDQoNCisg IElOICBFRklfUEVJX1NFUlZJQ0VTICAgICAgICoqUGVpU2VydmljZXMsDQoNCisgIElOICBFRklf U1RBVFVTX0NPREVfVFlQRSAgIFR5cGUsDQoNCisgIElOICBFRklfU1RBVFVTX0NPREVfVkFMVUUg IFZhbHVlLA0KDQorICBJTiAgVUlOVDMyICAgICAgICAgICAgICAgICBJbnN0YW5jZSwNCg0KKyAg SU4gIEVGSV9HVUlEICAgICAgICAgICAgICAgKkNhbGxlcklkLA0KDQorICBJTiAgRUZJX1NUQVRV U19DT0RFX0RBVEEgICAqRGF0YQ0KDQorICApDQoNCit7DQoNCisgIEVGSV9TVEFUVVMgICAgICAg ICAgICAgICAgU3RhdHVzOw0KDQorICBFRklfUEVJX1NNQlVTMl9QUEkgICAgICAgICpTbUJ1czsN Cg0KKyAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBGaXhlZFRhcmdldEFkZHJlc3M7DQoNCisN Cg0KKyAgRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9IFBjZEdldDggKFBj ZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbikgPj4gMTsNCg0KKyAgaWYgKEZpeGVkVGFyZ2V0 QWRkcmVzcy5TbWJ1c0RldmljZUFkZHJlc3MgPT0gMCkgew0KDQorICAgIHJldHVybiBFRklfU1VD Q0VTUzsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgN Cg0KKyAgICAgICAgICAgICAmZ0VmaVBlaVNtYnVzMlBwaUd1aWQsDQoNCisgICAgICAgICAgICAg MCwNCg0KKyAgICAgICAgICAgICBOVUxMLA0KDQorICAgICAgICAgICAgIChWT0lEICoqKSZTbUJ1 cw0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoN CisgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoNCisNCg0KKyAgaWYgKChUeXBlICYg RUZJX1NUQVRVU19DT0RFX1RZUEVfTUFTSykgPT0gRUZJX0VSUk9SX0NPREUpIHsNCg0KKyAgICBp ZiAoKFZhbHVlID09IChFRklfU09GVFdBUkVfUEVJX0NPUkUgfCBFRklfU1dfUEVJX0NPUkVfRUNf TUVNT1JZX05PVF9JTlNUQUxMRUQpKSB8fA0KDQorICAgICAgICAoVmFsdWUgPT0gKEVGSV9DT01Q VVRJTkdfVU5JVF9NRU1PUlkgfCBFRklfQ1VfTUVNT1JZX0VDX05PTkVfREVURUNURUQpKSkNCg0K KyAgICB7DQoNCisgICAgICAvLyBFcnJvciBtZXNzYWdlIC0gTWVtb3J5IE1pc3NpbmcuDQoNCisg ICAgICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBN RVNTQUdFX0VSUk9SX0xFVkVMX0VSUk9SLCAoVUlOVDggKikmbUFzZm1zZ01lbW9yeU1pc3Npbmcp Ow0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmICgoKFR5cGUgJiBFRklfU1RBVFVTX0NP REVfVFlQRV9NQVNLKSA9PSBFRklfUFJPR1JFU1NfQ09ERSkgJiYNCg0KKyAgICAgIChWYWx1ZSA9 PSAoRUZJX0NPTVBVVElOR19VTklUX0hPU1RfUFJPQ0VTU09SIHwgRUZJX0NVX0hQX1BDX0NBQ0hF X0lOSVQpKSkNCg0KKyAgew0KDQorICAgIC8vIFByb2dyZXNzIG1lc3NhZ2UgLSBDYWNoZSBpbml0 aWFsaXphdGlvbi4NCg0KKyAgICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRU YXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX1BST0dSRVNTLCAoVUlOVDggKikmbUFz Zm1zZ0NhY2hlSW5pdCk7DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoN Cit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIHNlbmQgbWVtb3J5IGluaXRpYWxpemVkIG1lc3Nh Z2UgYWZ0ZXIgbWVtb3J5IGRpc2NvdmVyZWQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBQZWlTZXJ2 aWNlcyAgICAgICAgICBHZW5lcmFsIHB1cnBvc2Ugc2VydmljZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5 IFBFSU0uDQoNCisgIEBwYXJhbVtpbl0gTm90aWZ5RGVzY3JpcHRvciAgICAgVGhlIG5vdGlmaWNh dGlvbiBzdHJ1Y3R1cmUgdGhpcyBQRUlNIHJlZ2lzdGVyZWQgb24gaW5zdGFsbC4NCg0KKyAgQHBh cmFtW2luXSBQcGkgICAgICAgICAgICAgICAgICBUaGUgbWVtb3J5IGRpc2NvdmVyZWQgUFBJLg0K DQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgQWx3YXlzIHJldHVybiBF RklfU1VDQ0VTUw0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorTXNn TWVtb3J5SW5pdENvbXBsZXRlZCAoDQoNCisgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAg ICoqUGVpU2VydmljZXMsDQoNCisgIElOIEVGSV9QRUlfTk9USUZZX0RFU0NSSVBUT1IgICpOb3Rp ZnlEZXNjcmlwdG9yLA0KDQorICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICAqUHBpDQoN CisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQoNCisg IEVGSV9QRUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0KDQorICBFRklfQk9PVF9NT0RFICAg ICAgICAgICAgIEJvb3RNb2RlOw0KDQorICBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIEZpeGVk VGFyZ2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VB ZGRyZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJlc3NGb3JEYXNoTGFuKSA+PiAxOw0K DQorICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9PSAwKSB7DQoN CisgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoNCisNCg0KKyAgU3RhdHVzID0gUGVp U2VydmljZXNMb2NhdGVQcGkgKA0KDQorICAgICAgICAgICAgICZnRWZpUGVpU21idXMyUHBpR3Vp ZCwNCg0KKyAgICAgICAgICAgICAwLA0KDQorICAgICAgICAgICAgIE5VTEwsDQoNCisgICAgICAg ICAgICAgKFZPSUQgKiopJlNtQnVzDQoNCisgICAgICAgICAgICAgKTsNCg0KKyAgaWYgKCBFRklf RVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCisgIH0NCg0K Kw0KDQorICAvLyBQcm9ncmVzcyBtZXNzYWdlIC0gQ29tcGxldGVkIG1lbW9yeSBpbml0aWFsaXph dGlvbiBhbmQgdGVzdC4NCg0KKyAgQXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoU21CdXMsIEZpeGVk VGFyZ2V0QWRkcmVzcywgTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgKFVJTlQ4ICopJm1N c2dNZW1vcnlJbml0aWFsaXplZCk7DQoNCisNCg0KKyAgLy8gR2V0IEJvb3QgUGF0aC4NCg0KKyAg U3RhdHVzID0gUGVpU2VydmljZXNHZXRCb290TW9kZSAoJkJvb3RNb2RlKTsNCg0KKyAgaWYgKCFF RklfRVJST1IgKFN0YXR1cykgJiYgKEJvb3RNb2RlID09IEJPT1RfT05fUzNfUkVTVU1FKSkgew0K DQorICAgIC8vIFB1c2ggU3lzdGVtIFN0YXRlIFdvcmtpbmcgaWYgUzMgcmVzdW1pbmcuDQoNCisg ICAgQXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoDQoNCisgICAgICBTbUJ1cywNCg0KKyAgICAgIEZp eGVkVGFyZ2V0QWRkcmVzcywNCg0KKyAgICAgIE1FU1NBR0VfRVJST1JfTEVWRUxfU1lTVEVNX01B TkFHRU1FTlQsDQoNCisgICAgICAoVUlOVDggKikmbUFzZlN5c3RlbVN0YXRlV29ya2luZw0KDQor ICAgICAgKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCg0KK30NCg0K Kw0KDQorLyoqDQoNCisgIEFzZiBQRUkgbW9kdWxlIGVudHJ5IHBvaW50DQoNCisNCg0KKyAgQHBh cmFtW2luXSAgRmlsZUhhbmRsZSAgICAgICAgICAgRmlsZUhhbmRsZSAgSGFuZGxlIG9mIHRoZSBm aWxlIGJlaW5nIGludm9rZWQuDQoNCisgIEBwYXJhbVtpbl0gIFBlaVNlcnZpY2VzICAgICAgICAg IERlc2NyaWJlcyB0aGUgbGlzdCBvZiBwb3NzaWJsZSBQRUkgU2VydmljZXMuDQoNCisNCg0KKyAg QHJldHZhbCAgICAgRUZJX1NVQ0NFU1MgICAgICAgICAgVGhlIFBFSU0gaW5pdGlhbGl6ZWQgc3Vj Y2Vzc2Z1bGx5Lg0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorQXNm UGVpRW50cnkgKA0KDQorICBJTiAgICAgICBFRklfUEVJX0ZJTEVfSEFORExFICBGaWxlSGFuZGxl LA0KDQorICBJTiBDT05TVCBFRklfUEVJX1NFUlZJQ0VTICAgICAqKlBlaVNlcnZpY2VzDQoNCisg ICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQoNCisgIEVG SV9QRUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0KDQorICBFRklfUEVJX1JTQ19IQU5ETEVS X1BQSSAgICpSc2NIbmRyUHBpOw0KDQorICBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIEZpeGVk VGFyZ2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VB ZGRyZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJlc3NGb3JEYXNoTGFuKSA+PiAxOw0K DQorICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9PSAwKSB7DQoN CisgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9 IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAgICAgICAgICAgICAmZ0VmaVBlaVNtYnVzMlBw aUd1aWQsDQoNCisgICAgICAgICAgICAgMCwNCg0KKyAgICAgICAgICAgICBOVUxMLA0KDQorICAg ICAgICAgICAgIChWT0lEICoqKSZTbUJ1cw0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4gU3RhdHVzOw0KDQorICB9DQoNCisN Cg0KKyAgLy8NCg0KKyAgLy8gSWYgdGhlIG1hbmFnZWQgY2xpZW50J3MgZmlybXdhcmUgc3VwcG9y dHMgYSBzeXN0ZW0gYm9vdC1mYWlsdXJlIHdhdGNoZG9nIHRpbWVyLA0KDQorICAvLyB0aGUgZmly bXdhcmUgaXNzdWVzIHRoZSBTdG9wIFdhdGNoZG9nIFRpbWVyIGNvbW1hbmQgdG8gc3RvcCB0aGUg dGltZXIgdGhhdCBpcw0KDQorICAvLyBhdXRvbWF0aWNhbGx5IHN0YXJ0ZWQgYnkgdGhlIGFsZXJ0 LXNlbmRpbmcgZGV2aWNlIGF0IHBvd2VyLW9uIHJlc2V0Lg0KDQorICAvLw0KDQorICBBc2ZQdXNo UHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9S X0xFVkVMX1NZU1RFTV9NQU5BR0VNRU5ULCAoVUlOVDggKikmbU1zZ1N0b3BUaW1lcik7DQoNCisN Cg0KKyAgLy8gUHJvZ3Jlc3MgbWVzc2FnZSAtIEJJT1MgUHJlc2VudC4NCg0KKyAgQXNmUHVzaFBy b2dyZXNzTWVzc2FnZSAoU21CdXMsIEZpeGVkVGFyZ2V0QWRkcmVzcywgTUVTU0FHRV9FUlJPUl9M RVZFTF9QUk9HUkVTUywgKFVJTlQ4ICopJm1Nc2dCaW9zUHJlc2VudCk7DQoNCisNCg0KKyAgLy8g UHJvZ3Jlc3MgbWVzc2FnZSAtIFN0YXJ0ZWQgbWVtb3J5IGluaXRpYWxpemF0aW9uIGFuZCB0ZXN0 Lg0KDQorICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNz LCBNRVNTQUdFX0VSUk9SX0xFVkVMX1BST0dSRVNTLCAoVUlOVDggKikmbU1zZ01lbW9yeUluaXQp Ow0KDQorDQoNCisgIFBlaVNlcnZpY2VzTm90aWZ5UHBpICgmbU1lbW9yeURpc2NvdmVyZWROb3Rp ZnlEZXMpOw0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAg ICAgICAgICAgICAmZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlkLA0KDQorICAgICAgICAgICAgIDAs DQoNCisgICAgICAgICAgICAgTlVMTCwNCg0KKyAgICAgICAgICAgICAoVk9JRCAqKikmUnNjSG5k clBwaQ0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQoNCisgICAgUnNjSG5kclBwaS0+UmVnaXN0ZXIgKChFRklfUEVJX1JTQ19IQU5ETEVSX0NBTExC QUNLKUFzZlBlaVN0YXR1c0NvZGVDYWxsQmFjayk7DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4g RUZJX1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNl ZEZlYXR1cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFu Y2VkRmVhdHVyZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNjDQppbmRleCBmMGYxZTA0MzVmLi5j ZTBlYWM3YTU2IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtn L0FkdmFuY2VkRmVhdHVyZVBrZy5kc2MNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVh dHVyZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNjDQpAQCAtNjMsNiArNjMsNyBAQA0KICAgIw0K DQogICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RJcG1pRmVhdHVyZUVuYWJsZSAg ICAgICAgICAgICAgICAgICAgICAgIHxUUlVFDQoNCiAgIGdTcGNyRmVhdHVyZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZFNwY3JGZWF0dXJlRW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgfFRSVUUN Cg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc2ZGZWF0dXJlRW5hYmxlICAg ICAgICAgICAgICAgICAgICAgICAgICB8VFJVRQ0KDQoNCg0KICAgIw0KDQogICAjIFBvd2VyTWFu YWdlbWVudCBmZWF0dXJlcw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRG ZWF0dXJlUGtnL0luY2x1ZGUvQWR2YW5jZWRGZWF0dXJlcy5kc2MgYi9GZWF0dXJlcy9JbnRlbC9B ZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzLmRzYw0KaW5kZXggODA0 YWFiODliYy4uODVhMDY3ZDZhMCAxMDA2NDQNCi0tLSBhL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2Vk RmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVyZXMuZHNjDQorKysgYi9GZWF0dXJlcy9J bnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzLmRzYw0KQEAg LTQ3LDYgKzQ3LDEwIEBADQogICAhaW5jbHVkZSBTcGNyRmVhdHVyZVBrZy9JbmNsdWRlL1NwY3JG ZWF0dXJlLmRzYw0KDQogIWVuZGlmDQoNCg0KDQorIWlmIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJsZSA9PSBUUlVFDQoNCisgICFpbmNsdWRlIEFzZkZlYXR1 cmVQa2cvSW5jbHVkZS9Bc2ZGZWF0dXJlLmRzYw0KDQorIWVuZGlmDQoNCisNCg0KICMNCg0KICMg UG93ZXJNYW5hZ2VtZW50IGZlYXR1cmVzDQoNCiAjDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9J bnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzUGNkLmRzYyBi L0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVy ZXNQY2QuZHNjDQppbmRleCAwYWY1YThiZmJjLi5lYmY4ZDFmOWI4IDEwMDY0NA0KLS0tIGEvRmVh dHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1ZGUvQWR2YW5jZWRGZWF0dXJlc1Bj ZC5kc2MNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL0Fk dmFuY2VkRmVhdHVyZXNQY2QuZHNjDQpAQCAtMzUsNiArMzUsNyBAQA0KICAgIw0KDQogICBJcG1p RmVhdHVyZVBrZy9JcG1pRmVhdHVyZVBrZy5kZWMNCg0KICAgU3BjckZlYXR1cmVQa2cvU3BjckZl YXR1cmVQa2cuZGVjDQoNCisgIEFzZkZlYXR1cmVQa2cvQXNmRmVhdHVyZVBrZy5kZWMNCg0KDQoN CiAgICMNCg0KICAgIyBQb3dlck1hbmFnZW1lbnQgZmVhdHVyZXMNCg0KQEAgLTczLDYgKzc0LDcg QEANCg0KDQogICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RJcG1pRmVhdHVyZUVu YWJsZSAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0KDQogICBnU3BjckZlYXR1cmVQa2dU b2tlblNwYWNlR3VpZC5QY2RTcGNyRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAg IHxGQUxTRQ0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFzZkZlYXR1cmVF bmFibGUgICAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0KDQoNCg0KICAgZ1MzRmVhdHVy ZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFMzRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8RkFMU0UNCg0KDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNl ZEZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL0FkdmFu Y2VkRmVhdHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQppbmRleCAzNDliZGNjNDkxLi5h Y2ZiYjBlMjA5IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtn L0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVh dHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpAQCAtNDgsNiArNDgsMTAgQEANCiAgICFp bmNsdWRlIFNwY3JGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCg0KICFlbmRpZg0K DQoNCg0KKyFpZiBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFzZkZlYXR1cmVFbmFi bGUgPT0gVFJVRQ0KDQorICAhaW5jbHVkZSBBc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9y eS5mZGYNCg0KKyFlbmRpZg0KDQorDQoNCiAjDQoNCiAjIFBvd2VyTWFuYWdlbWVudCBmZWF0dXJl cw0KDQogIw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtn L0luY2x1ZGUvUHJlTWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBr Zy9JbmNsdWRlL1ByZU1lbW9yeS5mZGYNCmluZGV4IGI5OTFhNWFhYmYuLjkwYjAzZTYxMDggMTAw NjQ0DQotLS0gYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9QcmVN ZW1vcnkuZmRmDQorKysgYi9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVk ZS9QcmVNZW1vcnkuZmRmDQpAQCAtNDgsNiArNDgsMTAgQEANCiAgICFpbmNsdWRlIFNwY3JGZWF0 dXJlUGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZkZg0KDQogIWVuZGlmDQoNCg0KDQorIWlmIGdBc2ZG ZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJsZSA9PSBUUlVFDQoNCisg ICFpbmNsdWRlIEFzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmDQoNCishZW5kaWYN Cg0KKw0KDQogIw0KDQogIyBQb3dlck1hbmFnZW1lbnQgZmVhdHVyZXMNCg0KICMNCg0KZGlmZiAt LWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9B c2ZEeGUvQXNmRHhlLmggYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZl YXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMC4uOWNkZTM1OGI5Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuaA0KQEAgLTAs MCArMSw2NiBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgRHhlIGRyaXZlciB3aGljaCBpcyB1c2Vk IGZvciBzZW5kaW5nIGV2ZW50IHJlY29yZCBsb2cgdG8gTklDIG9yIHJlY2VpdmluZw0KDQorICBi b290IG9wdGlvbiBjb21tYW5kIGZyb20gTklDIGFuZCBwcm92aWRlIGluIEFzZiBEeGUgcHJvdG9j b2wuDQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9fQVNGX0RYRV9IX18NCg0KKyNkZWZp bmUgX19BU0ZfRFhFX0hfXw0KDQorDQoNCisjaW5jbHVkZSA8UGkvUGlTdGF0dXNDb2RlLmg+DQoN CisjaW5jbHVkZSA8UHJvdG9jb2wvQXNmUHJvdG9jb2wuaD4NCg0KKyNpbmNsdWRlIDxJbmR1c3Ry eVN0YW5kYXJkL1NtQnVzLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvU21idXNIYy5oPg0KDQor I2luY2x1ZGUgPFByb3RvY29sL1JlcG9ydFN0YXR1c0NvZGVIYW5kbGVyLmg+DQoNCisjaW5jbHVk ZSA8TGlicmFyeS9CYXNlTGliLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9VZWZpTGliLmg+DQoN CisjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvVWVm aUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9VZWZpUnVudGlt ZVNlcnZpY2VzVGFibGVMaWIuaD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIu aD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1ByaW50TGliLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9j b2wvQWNwaVRhYmxlLmg+DQoNCisjaW5jbHVkZSA8QXNmTWVzc2FnZXMuaD4NCg0KKw0KDQorZXh0 ZXJuIE1FU1NBR0VfREFUQV9IVUJfTUFQICAgICBtTXNnUHJvZ3Jlc3NNYXBbXTsNCg0KK2V4dGVy biBNRVNTQUdFX0RBVEFfSFVCX01BUCAgICAgbU1zZ0Vycm9yTWFwW107DQoNCitleHRlcm4gQVNG X01FU1NBR0UgICAgICAgICAgICAgIG1Bc2ZNZXNzYWdlc1tdOw0KDQorZXh0ZXJuIFVJTlROICAg ICAgICAgICAgICAgICAgICBtTXNnUHJvZ3Jlc3NNYXBTaXplOw0KDQorZXh0ZXJuIFVJTlROICAg ICAgICAgICAgICAgICAgICBtTXNnRXJyb3JNYXBTaXplOw0KDQorZXh0ZXJuIFVJTlROICAgICAg ICAgICAgICAgICAgICBtQXNmTWVzc2FnZXNTaXplOw0KDQorZXh0ZXJuIEFTRl9NU0dfTk9SRVRS QU5TTUlUICAgICBtQXNmU3lzdGVtU3RhdGU7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0 aW9uIHB1c2hlcyB0aGUgRFhFIFN5c3RlbSBGaXJtd2FyZSBFdmVudHMuDQoNCisNCg0KKyAgQHBh cmFtW2luXSBDb21tYW5kICAgICAgQ29tbWFuZCBvZiBTeXN0ZW0gRmlybXdhcmUgRXZlbnRzLg0K DQorICBAcGFyYW1baW5dIExlbmd0aCAgICAgICBMZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMu DQoNCisgIEBwYXJhbVtpbl0gQXNmRXZlbnQgICAgIFN5c3RlbSBGaXJtd2FyZSBFdmVudHMgQ29t bWFuZC4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICBQdXNoIEV2ZW50IHN1Y2Nl c3NmdWxseS4NCg0KKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgUHVzaCBFdmVudCBlcnJvci4N Cg0KKyoqLw0KDQorRUZJX1NUQVRVUw0KDQorRUZJQVBJDQoNCitBc2ZQdXNoRXZlbnQgICgNCg0K KyAgSU4gIFVJTlQ4ICBDb21tYW5kLA0KDQorICBJTiAgVUlOVE4gIExlbmd0aCwNCg0KKyAgSU4g IFVJTlQ4ICAqQXNmRXZlbnQNCg0KKyAgKTsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgZnVuY3Rp b24gaW5zdGFsbCB0aGUgQVNGIGFjcGkgVGFibGUuDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgRXZl bnQgICAgIEEgcG9pbnRlciB0byB0aGUgRXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNhbGxiYWNr Lg0KDQorICBAcGFyYW1baW5dICBDb250ZXh0ICAgQSBwb2ludGVyIHRvIHByaXZhdGUgZGF0YSBy ZWdpc3RlcmVkIHdpdGggdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLg0KDQorKiovDQoNCitWT0lEDQoN CitFRklBUEkNCg0KK0luc3RhbGxBc2ZBY3BpVGFibGVFdmVudCAgKA0KDQorICBJTiBFRklfRVZF TlQgIEV2ZW50LA0KDQorICBJTiBWT0lEICAgICAgICpDb250ZXh0DQoNCisgICk7DQoNCisNCg0K KyNlbmRpZiAvL19fQVNGX0RYRV9IX18NCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZiBiL0ZlYXR1 cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhl LmluZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjQ0NTE3Y2ZkMjcN Ci0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQv QXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0KQEAgLTAsMCArMSw1MSBAQA0KKyMjIEBm aWxlDQoNCisjICBBc2YgRHhlIGRyaXZlciB3aGljaCBpcyB1c2VkIGZvciBzZW5kaW5nIGV2ZW50 IHJlY29yZCBsb2cgdG8gTklDIG9yIHJlY2VpdmluZw0KDQorIyAgYm9vdCBvcHRpb24gY29tbWFu ZCBmcm9tIE5JQyBhbmQgcHJvdmlkZSBpbiBBc2YgRHhlIHByb3RvY29sLg0KDQorIw0KDQorIyAg Q29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cg0KKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisj Iw0KDQorDQoNCitbRGVmaW5lc10NCg0KKyAgSU5GX1ZFUlNJT04gICAgICAgICAgID0gMHgwMDAx MDAwNQ0KDQorICBCQVNFX05BTUUgICAgICAgICAgICAgPSBBc2ZEeGUNCg0KKyAgTU9EVUxFX1VO SV9GSUxFICAgICAgID0gQXNmRHhlLnVuaQ0KDQorICBGSUxFX0dVSUQgICAgICAgICAgICAgPSBF RDdBRDFBMi0xNDI3LTQxRUMtQTcxRS0zMkVDOUExNTQ5RTgNCg0KKyAgTU9EVUxFX1RZUEUgICAg ICAgICAgID0gRFhFX0RSSVZFUg0KDQorICBWRVJTSU9OX1NUUklORyAgICAgICAgPSAxLjANCg0K KyAgRU5UUllfUE9JTlQgICAgICAgICAgID0gQXNmRHhlRW50cnkNCg0KKw0KDQorW1NvdXJjZXNd DQoNCisgIEFzZkR4ZS5jDQoNCisgIEFzZkR4ZS5oDQoNCisgIEFzZkR4ZUV2ZW50LmMNCg0KKyAg QXNmQWNwaVRhYmxlLmMNCg0KKw0KDQorW1BhY2thZ2VzXQ0KDQorICBNZGVQa2cvTWRlUGtnLmRl Yw0KDQorICBBc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQoNCisNCg0KK1tMaWJyYXJ5 Q2xhc3Nlc10NCg0KKyAgVWVmaURyaXZlckVudHJ5UG9pbnQNCg0KKyAgVWVmaVJ1bnRpbWVTZXJ2 aWNlc1RhYmxlTGliDQoNCisgIERlYnVnTGliDQoNCisgIEJhc2VNZW1vcnlMaWINCg0KKyAgUHJp bnRMaWINCg0KKyAgVWVmaUxpYg0KDQorDQoNCitbUHJvdG9jb2xzXQ0KDQorICBnRWZpUnNjSGFu ZGxlclByb3RvY29sR3VpZCAgICAjIyBDT05TVU1FUw0KDQorICBnQXNmUHJvdG9jb2xHdWlkICAg ICAgICAgICAgICAjIyBQUk9EVUNFUw0KDQorICBnRWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkICAg ICAjIyBDT05TVU1FUw0KDQorICBnRWZpU21idXNIY1Byb3RvY29sR3VpZCAgICAgICAjIyBDT05T VU1FUw0KDQorDQoNCitbUGNkXQ0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbg0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEFzZk1lc3NhZ2VFcnJvckxldmVsDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5T cGFjZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXMNCg0KKw0KDQorW0RlcGV4XQ0KDQorICBUUlVF DQoNCisNCg0KK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4dHJhRmlsZXMiXQ0KDQorICBB c2ZEeGVFeHRyYS51bmkNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1h bmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaSBiL0ZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaQ0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjAyZmYxZjcyOTMNCi0tLSAvZGV2 L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVy ZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaQ0KQEAgLTAsMCArMSwxNSBAQA0KKy8vIC8qKiBAZmlsZQ0K DQorLy8gQXNmIERYRSBNb2R1bGUNCg0KKy8vDQoNCisvLyBGb2xsb3cgQXNmIHNwZWMgdG8gc2Vu ZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRldmljZQ0KDQorLy8NCg0KKy8v IENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQoNCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQor Ly8NCg0KKy8vICoqLw0KDQorDQoNCisNCg0KKyNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkFzZiBEWEUgTW9kdWxlIg0KDQorDQoNCisjc3Ry aW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJGb2xs b3cgQXNmIHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRl dmljZS4iDQoNCisNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0cmEudW5pIGIvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGVFeHRyYS51 bmkNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5kYmM3NDcyNTdjDQot LS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV4dHJhLnVuaQ0KQEAgLTAsMCArMSwxMyBAQA0KKy8v IC8qKiBAZmlsZQ0KDQorLy8gQXNmIER4ZSBNb2R1bGUNCg0KKy8vDQoNCisvLyBGb2xsb3cgQXNm IHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRldmljZQ0K DQorLy8NCg0KKy8vIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQoNCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KDQorLy8NCg0KKy8vICoqLw0KDQorDQoNCisjc3RyaW5nIFNUUl9QUk9QRVJUSUVT X01PRFVMRV9OQU1FDQoNCisjbGFuZ3VhZ2UgZW4tVVMNCg0KKyJBc2YgRFhFIg0KDQpkaWZmIC0t Z2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0Fz ZkZlYXR1cmVQa2cuZGVjIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZG ZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMC4uZDVkZjBjYjYyZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQpA QCAtMCwwICsxLDQ3IEBADQorIyMgQGZpbGUNCg0KKyMgVGhpcyBwYWNrYWdlIGRlZmluZXMgQXNm IHNwZWNpZmljIGludGVyZmFjZXMgYW5kIGxpYnJhcnkgY2xhc3Nlcy4NCg0KKyMNCg0KKyMgQ29w eXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0K KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoN CisNCg0KK1tEZWZpbmVzXQ0KDQorICBERUNfU1BFQ0lGSUNBVElPTiAgICAgICAgICAgICAgICAg ICA9IDB4MDAwMTAwMDUNCg0KKyAgUEFDS0FHRV9OQU1FICAgICAgICAgICAgICAgICAgICAgICAg PSBBc2ZGZWF0dXJlUGtnDQoNCisgIFBBQ0tBR0VfR1VJRCAgICAgICAgICAgICAgICAgICAgICAg ID0gMDI1QkU5QkQtNTBCMy00MTM5LTlBNzAtNDMzNkUyNzczMzlBDQoNCisgIFBBQ0tBR0VfVkVS U0lPTiAgICAgICAgICAgICAgICAgICAgID0gMS4wDQoNCisNCg0KK1tJbmNsdWRlc10NCg0KKyAg SW5jbHVkZQ0KDQorDQoNCitbR3VpZHNdDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1 aWQgICAgPSB7IDB4YTEyZDlhYTQsIDB4ZTY5YiwgMHg0MjVjLCB7IDB4OTYsIDB4YzUsIDB4NDEs IDB4OGQsIDB4YjEsIDB4ZDAsIDB4YjksIDB4NGYgfX0NCg0KKw0KDQorW1BwaXNdDQoNCisNCg0K K1tQcm90b2NvbHNdDQoNCisgICMjIEFzZiBwcm90b2NvbCBHVUlEDQoNCisgICMgSW5jbHVkZS9Q cm90b2NvbC9BbWlBc2ZQcm90b2NvbC5oDQoNCisgIGdBc2ZQcm90b2NvbEd1aWQgICAgICAgICAg ICAgICAgICA9ICB7IDB4ZGVjODk4MjcsIDB4OGE3ZSwgMHg0NWUwLCB7IDB4YmMsIDB4YjUsIDB4 ZDUsIDB4M2IsIDB4NDYsIDB4MTQsIDB4YWQsIDB4YjggfSB9DQoNCisNCg0KK1tQY2RzRmVhdHVy ZUZsYWddDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVyZUVu YWJsZXxGQUxTRXxCT09MRUFOfDB4MDAwMDAwMDENCg0KKw0KDQorW1BjZHNGaXhlZEF0QnVpbGQs IFBjZHNQYXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhdDQoNCisg ICMjIFNwZWNpZmllcyB0aGUgRGFzaCBsYW4gU21CdXMgc2xhdmUgYWRkcmVzcy4NCg0KKyAgIyBA UHJvbXB0IFNsYXZlIGFkZHJlc3Mgb2YgRGFzaCBsYW4NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tl blNwYWNlR3VpZC5QY2RTbWJ1c1NsYXZlQWRkcmVzc0ZvckRhc2hMYW58MHgwfFVJTlQ4fDB4OTAw MDAwMDENCg0KKw0KDQorICAjIyBUaGlzIGZsYWcgaXMgdXNlZCB0byBjb250cm9sIHdoaWNoIG1l c3NhZ2Ugd291bGQgYmUgc2VuZC4NCg0KKyAgIyAgSWYgZW5hYmxlZCwgQXNmIGRyaXZlciB3aWxs IHNlbmQgbWVzc2FnZSB0byBkZXZpY2UuPEJSPjxCUj4NCg0KKyAgIyAgIEJJVDAgIC0gUHJvZ3Jl c3MgbWVzc2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIEJJVDEgIC0gRXJyb3IgbWVzc2Fn ZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIEJJVDIgIC0gU3lzdGVtIG1lbmFnZW1lbnQgbWVz c2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIE90aGVyIC0gcmVzZXJ2ZWQNCg0KKyAgIyBA UHJvbXB0IE1lc3NhZ2UgbGV2ZWwNCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RBc2ZNZXNzYWdlRXJyb3JMZXZlbHwweDd8VUlOVDMyfDB4OTAwMDAwMDINCg0KKw0KDQorICAj IyBTcGVjaWZpZXMgdGhlIGZvdXIgYXJyYXlzIG9mIGNvbnRyb2wgZGF0YXMgaW4gdGhlIEFTRl9S Q1RMIEFjcGkgdGFibGUuDQoNCisgICMgQFByb21wdCB0aGUgZm91ciBhcnJheXMgb2YgY29udHJv bCBkYXRhcyB0aGF0IHVzZWQgaW4gQVNGX1JDVEwuDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5T cGFjZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXN8ezB4MDAsIDB4ODgsIDB4MDAsIDB4MDMsIDB4 MDEsIDB4ODgsIDB4MDAsIDB4MDIsIDB4MDIsIDB4ODgsIDB4MDAsIDB4MDEsIDB4MDMsIDB4ODgs IDB4MDAsIDB4MDR9fFZPSUQqfDB4OTAwMDAwMDMNCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVy ZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cu ZHNjIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0Fz ZkZlYXR1cmVQa2cuZHNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4u MDA2ZjM4OTJiYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5k TWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjDQpAQCAtMCwwICsxLDQw IEBADQorIyMgQGZpbGUNCg0KKyMgQXNmIFBhY2thZ2UNCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChj KSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK1tE ZWZpbmVzXQ0KDQorICBQTEFURk9STV9OQU1FICAgICAgICAgICAgICAgICA9IEFzZkZlYXR1cmVQ a2cNCg0KKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAgICAgICAgPSA3OUQyMkUxMy0zRjMwLTQ3 MEEtQUY5RC1CODBDQjQzMjQzNzkNCg0KKyAgUExBVEZPUk1fVkVSU0lPTiAgICAgICAgICAgICAg PSAwLjENCg0KKyAgRFNDX1NQRUNJRklDQVRJT04gICAgICAgICAgICAgPSAweDAwMDEwMDA1DQoN CisgIE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAgID0gQnVpbGQvJChQTEFURk9STV9OQU1F KQ0KDQorICBTVVBQT1JURURfQVJDSElURUNUVVJFUyAgICAgICA9IElBMzJ8WDY0DQoNCisgIEJV SUxEX1RBUkdFVFMgICAgICAgICAgICAgICAgID0gREVCVUd8UkVMRUFTRXxOT09QVA0KDQorICBT S1VJRF9JREVOVElGSUVSICAgICAgICAgICAgICA9IERFRkFVTFQNCg0KKyAgUEVJX0FSQ0ggICAg ICAgICAgICAgICAgICAgICAgPSBJQTMyDQoNCisgIERYRV9BUkNIICAgICAgICAgICAgICAgICAg ICAgID0gWDY0DQoNCisNCg0KK1tQYWNrYWdlc10NCg0KKyAgTWluUGxhdGZvcm1Qa2cvTWluUGxh dGZvcm1Qa2cuZGVjDQoNCisNCg0KKyMNCg0KKyMgTWluUGxhdGZvcm0gY29tbW9uIGluY2x1ZGUg Zm9yIHJlcXVpcmVkIGZlYXR1cmUgUENEDQoNCisjIFRoZXNlIFBDRCBtdXN0IGJlIHNldCBiZWZv cmUgdGhlIGNvcmUgaW5jbHVkZSBmaWxlcywgQ29yZUNvbW1vbkxpYiwNCg0KKyMgQ29yZVBlaUxp YiwgYW5kIENvcmVEeGVMaWIuDQoNCisjDQoNCishaW5jbHVkZSBNaW5QbGF0Zm9ybVBrZy9JbmNs dWRlL0RzYy9NaW5QbGF0Zm9ybUZlYXR1cmVzUGNkLmRzYy5pbmMNCg0KKw0KDQorIw0KDQorIyBJ bmNsdWRlIGNvbW1vbiBsaWJyYXJpZXMNCg0KKyMNCg0KKyFpbmNsdWRlIE1pblBsYXRmb3JtUGtn L0luY2x1ZGUvRHNjL0NvcmVDb21tb25MaWIuZHNjDQoNCishaW5jbHVkZSBNaW5QbGF0Zm9ybVBr Zy9JbmNsdWRlL0RzYy9Db3JlUGVpTGliLmRzYw0KDQorIWluY2x1ZGUgTWluUGxhdGZvcm1Qa2cv SW5jbHVkZS9Ec2MvQ29yZUR4ZUxpYi5kc2MNCg0KKw0KDQorIw0KDQorIyBUaGlzIHBhY2thZ2Ug YWx3YXlzIGJ1aWxkcyB0aGUgZmVhdHVyZS4NCg0KKyMNCg0KKyFpbmNsdWRlIEluY2x1ZGUvQXNm RmVhdHVyZS5kc2MNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZiBiL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZg0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmEwMjM5ZjE5OTANCi0tLSAvZGV2L251 bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBr Zy9Bc2ZQZWkvQXNmUGVpLmluZg0KQEAgLTAsMCArMSw1MSBAQA0KKyMjIEBmaWxlDQoNCisjICBB c2YgUEVJTQ0KDQorIw0KDQorIyAgRm9sbG93IEFzZiBzcGVjIHRvIHNlbmQgcHJvZ3Jlc3Mgb3Ig ZXJyb3IgbWVzc2FnZSB0byBTbWJ1cyBkZXZpY2UNCg0KKyMNCg0KKyMgIENvcHlyaWdodCAoYykg MTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisjICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorIyMNCg0KKw0KDQorW0Rl ZmluZXNdDQoNCisgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUN Cg0KKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQXNmUGVpDQoNCisgIE1PRFVM RV9VTklfRklMRSAgICAgICAgICAgICAgICA9IEFzZlBlaS51bmkNCg0KKyAgRklMRV9HVUlEICAg ICAgICAgICAgICAgICAgICAgID0gRDI2MDNCMDktQjhBMi00ODM3LUFBMUUtRUFFOEU0REY3OEU3 DQoNCisgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IFBFSU0NCg0KKyAgVkVSU0lP Tl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQoNCisgIEVOVFJZX1BPSU5UICAgICAgICAg ICAgICAgICAgICA9IEFzZlBlaUVudHJ5DQoNCisNCg0KKyMNCg0KKyMgVGhlIGZvbGxvd2luZyBp bmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUg YnVpbGQgdG9vbHMuDQoNCisjDQoNCisjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9 IElBMzIgWDY0DQoNCisjDQoNCisNCg0KK1tTb3VyY2VzXQ0KDQorICBBc2ZQZWkuYw0KDQorDQoN CitbUGFja2FnZXNdDQoNCisgIE1kZVBrZy9NZGVQa2cuZGVjDQoNCisgIEFzZkZlYXR1cmVQa2cv QXNmRmVhdHVyZVBrZy5kZWMNCg0KKw0KDQorW0xpYnJhcnlDbGFzc2VzXQ0KDQorICBQZWltRW50 cnlQb2ludA0KDQorICBQZWlTZXJ2aWNlc0xpYg0KDQorICBEZWJ1Z0xpYg0KDQorDQoNCitbUHBp c10NCg0KKyAgZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlkICAgICAgICAjIyBDT05TVU1FUw0KDQor ICBnRWZpUGVpTWVtb3J5RGlzY292ZXJlZFBwaUd1aWQgICMjIENPTlNVTUVTDQoNCisgIGdFZmlQ ZWlTbWJ1czJQcGlHdWlkICAgICAgICAgICAgIyMgQ09OU1VNRVMNCg0KKw0KDQorW1BjZF0NCg0K KyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RTbWJ1c1NsYXZlQWRkcmVzc0ZvckRh c2hMYW4NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc2ZNZXNzYWdlRXJy b3JMZXZlbA0KDQorDQoNCitbRGVwZXhdDQoNCisgIGdFZmlQZWlTbWJ1czJQcGlHdWlkDQoNCisN Cg0KK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4dHJhRmlsZXMiXQ0KDQorICBBc2ZQZWlF eHRyYS51bmkNCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFu YWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uNjQ2NzEyOTE3ZQ0KLS0tIC9kZXYv bnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJl UGtnL0FzZlBlaS9Bc2ZQZWkudW5pDQpAQCAtMCwwICsxLDE1IEBADQorLy8gLyoqIEBmaWxlDQoN CisvLyBBc2YgUEVJIE1vZHVsZQ0KDQorLy8NCg0KKy8vIEZvbGxvdyBBc2Ygc3BlYyB0byBzZW5k IHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisvLw0KDQorLy8g Q29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cg0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisv Lw0KDQorLy8gKiovDQoNCisNCg0KKw0KDQorI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAg ICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiQXNmIFBFSSBNb2R1bGUiDQoNCisNCg0KKyNzdHJp bmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkZvbGxv dyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2 aWNlLiINCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWlFeHRyYS51bmkgYi9GZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaUV4dHJhLnVu aQ0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjcyODE5ZjQ5ODYNCi0t LSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNm RmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpRXh0cmEudW5pDQpAQCAtMCwwICsxLDEzIEBADQorLy8g LyoqIEBmaWxlDQoNCisvLyBBc2YgUEVJIE1vZHVsZQ0KDQorLy8NCg0KKy8vIEZvbGxvdyBBc2Yg c3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoN CisvLw0KDQorLy8gQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCg0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQoNCisvLw0KDQorLy8gKiovDQoNCisNCg0KKyNzdHJpbmcgU1RSX1BST1BFUlRJRVNf TU9EVUxFX05BTUUNCg0KKyNsYW5ndWFnZSBlbi1VUw0KDQorIkFzZiBQRUkiDQoNCmRpZmYgLS1n aXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5j bHVkZS9Bc2ZGZWF0dXJlLmRzYyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQv QXNmRmVhdHVyZVBrZy9JbmNsdWRlL0FzZkZlYXR1cmUuZHNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMC4uZDc2YWIzMDAwOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVh dHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvQXNm RmVhdHVyZS5kc2MNCkBAIC0wLDAgKzEsNTIgQEANCisjIyBAZmlsZQ0KDQorIyBBc2YgUGFja2Fn ZQ0KDQorIw0KDQorIyBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KDQorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KDQorIyMNCg0KKw0KDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KKyMNCg0K KyMgRGVmaW5lcyBTZWN0aW9uIC0gc3RhdGVtZW50cyB0aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIHRv IGNyZWF0ZSBhIE1ha2VmaWxlLg0KDQorIw0KDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0K K1tEZWZpbmVzXQ0KDQorIWlmbmRlZiAkKFBFSV9BUkNIKQ0KDQorICAhZXJyb3IgIlBFSV9BUkNI IG11c3QgYmUgc3BlY2lmaWVkIHRvIGJ1aWxkIHRoaXMgZmVhdHVyZSEiDQoNCishZW5kaWYNCg0K KyFpZm5kZWYgJChEWEVfQVJDSCkNCg0KKyAgIWVycm9yICJEWEVfQVJDSCBtdXN0IGJlIHNwZWNp ZmllZCB0byBidWlsZCB0aGlzIGZlYXR1cmUhIg0KDQorIWVuZGlmDQoNCisNCg0KKw0KDQorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KKyMNCg0KKyMgQ29tcG9uZW50IHNlY3Rpb24gLSBsaXN0 IG9mIGFsbCBjb21wb25lbnRzIHRoYXQgbmVlZCBidWlsdCBmb3IgdGhpcyBmZWF0dXJlLg0KDQor Iw0KDQorIyBOb3RlOiBUaGUgRURLIElJIERTQyBmaWxlIGlzIG5vdCB1c2VkIHRvIHNwZWNpZnkg aG93IGNvbXBpbGVkIGJpbmFyeSBpbWFnZXMgZ2V0IHBsYWNlZA0KDQorIyAgICAgICBpbnRvIGZp cm13YXJlIHZvbHVtZSBpbWFnZXMuIFRoaXMgc2VjdGlvbiBpcyBqdXN0IGEgbGlzdCBvZiBtb2R1 bGVzIHRvIGNvbXBpbGUgZnJvbQ0KDQorIyAgICAgICBzb3VyY2UgaW50byBVRUZJLWNvbXBsaWFu dCBiaW5hcmllcy4NCg0KKyMgICAgICAgSXQgaXMgdGhlIEZERiBmaWxlIHRoYXQgY29udGFpbnMg aW5mb3JtYXRpb24gb24gY29tYmluaW5nIGJpbmFyeSBmaWxlcyBpbnRvIGZpcm13YXJlDQoNCisj ICAgICAgIHZvbHVtZSBpbWFnZXMsIHdob3NlIGNvbmNlcHQgaXMgYmV5b25kIFVFRkkgYW5kIGlz IGRlc2NyaWJlZCBpbiBQSSBzcGVjaWZpY2F0aW9uLg0KDQorIyAgICAgICBUaGVyZSBtYXkgYWxz byBiZSBtb2R1bGVzIGxpc3RlZCBpbiB0aGlzIHNlY3Rpb24gdGhhdCBhcmUgbm90IHJlcXVpcmVk IGluIHRoZSBGREYgZmlsZSwNCg0KKyMgICAgICAgV2hlbiBhIG1vZHVsZSBsaXN0ZWQgaGVyZSBp cyBleGNsdWRlZCBmcm9tIEZERiBmaWxlLCB0aGVuIFVFRkktY29tcGxpYW50IGJpbmFyeSB3aWxs IGJlDQoNCisjICAgICAgIGdlbmVyYXRlZCBmb3IgaXQsIGJ1dCB0aGUgYmluYXJ5IHdpbGwgbm90 IGJlIHB1dCBpbnRvIGFueSBmaXJtd2FyZSB2b2x1bWUuDQoNCisjDQoNCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIw0KDQorIw0KDQorIyBGZWF0dXJlIFBFSSBDb21wb25lbnRzDQoNCisjDQoNCisN Cg0KKyMgQHRvZG86IENoYW5nZSBiZWxvdyBsaW5lIHRvIFtDb21wb25lbnRzLiQoUEVJX0FSQ0gp XSBhZnRlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIz MDgNCg0KKyMgICAgICAgIGlzIGNvbXBsZXRlZC4NCg0KK1tDb21wb25lbnRzLklBMzJdDQoNCisg IEFzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5pbmYNCg0KKw0KDQorIw0KDQorIyBGZWF0dXJl IERYRSBDb21wb25lbnRzDQoNCisjDQoNCisNCg0KKyMgQHRvZG86IENoYW5nZSBiZWxvdyBsaW5l IHRvIFtDb21wb25lbnRzLiQoRFhFX0FSQ0gpXSBhZnRlciBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDgNCg0KKyMgICAgICAgIGlzIGNvbXBsZXRlZC4N Cg0KK1tDb21wb25lbnRzLlg2NF0NCg0KKyAgQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmlu Zg0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZG ZWF0dXJlUGtnL0luY2x1ZGUvQXNmTWVzc2FnZXMuaCBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFu ZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0FzZk1lc3NhZ2VzLmgNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42ZTc5ZjQ5OTNmDQotLS0gL2Rldi9udWxs DQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cv SW5jbHVkZS9Bc2ZNZXNzYWdlcy5oDQpAQCAtMCwwICsxLDEwNCBAQA0KKy8qKiBAZmlsZQ0KDQor ICBBc2YgbWVzc2FnZSBmb3JtYXQgZGVmaW5lLg0KDQorDQoNCisgIENvcHlyaWdodCAoYykgMTk4 NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisNCg0KKyAgQHBhciBSZXZpc2lv biBSZWZlcmVuY2U6DQoNCisgIEZvcm1hdCBkZWZpbmVkIGluIEFzZiAyLjAgU3BlY2lmaWNhdGlv bi4NCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9fQVNGX01FU1NBR0VTX0hfXw0KDQorI2RlZmlu ZSBfX0FTRl9NRVNTQUdFU19IX18NCg0KKw0KDQorI2luY2x1ZGUgPEJhc2UuaD4NCg0KKyNpbmNs dWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FzZi5oPg0KDQorDQoNCisjZGVmaW5lIE1FU1NBR0VfRVJS T1JfTEVWRUxfUFJPR1JFU1MgICAgICAgICAgIEJJVDANCg0KKyNkZWZpbmUgTUVTU0FHRV9FUlJP Ul9MRVZFTF9FUlJPUiAgICAgICAgICAgICAgQklUMQ0KDQorI2RlZmluZSBNRVNTQUdFX0VSUk9S X0xFVkVMX1NZU1RFTV9NQU5BR0VNRU5UICBCSVQyDQoNCisNCg0KKyNwcmFnbWEgcGFjayhwdXNo LDEpDQoNCisNCg0KKy8qKg0KDQorICBUaGlzIG1lc3NhZ2UgY2F1c2VzIHRoZSBhbGVydC1zZW5k aW5nIGRldmljZSB0byB0cmFuc21pdCBhIHNpbmdsZSwNCg0KKyAgdW4tcmV0cmFuc21pdHRlZCBQ RVQgZnJhbWUuIElmIHRoZSBhbGVydC1zZW5kaW5nIGRldmljZSBpcyBlaXRoZXIgdGVtcG9yYXJp bHkNCg0KKyAgdW5hYmxlIHRvIGhhbmRsZSB0aGUgbWVzc2FnZSBvciB1bmFibGUgdG8gc2VuZCB0 aGUgcmVxdWVzdGVkIFBFVCBmcmFtZQ0KDQorICBiZWNhdXNlIHRoZSBkZXZpY2UncyB0cmFuc3Bv cnQgbWVkaWEgaXMgZG93biwgdGhlIGRldmljZSBtdXN0IE5BQ0sgdGhlIG1lc3NhZ2UNCg0KKyAg YWNjb3JkaW5nIHRvIFNNQlVTXzIuMCBkZWZpbml0aW9uczsgb3RoZXJ3aXNlLCB0aGUgZGV2aWNl IHNlbmRzIHRoZQ0KDQorICBzaW5nbGUtZnJhbWUgdHJhbnNtaXNzaW9uLg0KDQorKiovDQoNCit0 eXBlZGVmIHN0cnVjdCB7DQoNCisgIFVJTlQ4ICAgIENvbW1hbmQ7ICAgICAgICAgLy8vPCBNZXNz YWdlIENvbW1hbmQuDQoNCisgIFVJTlQ4ICAgIEJ5dGVDb3VudDsgICAgICAgLy8vPCBMZW5ndGgg b2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIFVJTlQ4ICAgIFN1YkNvbW1hbmQ7ICAgICAgLy8v PCBTdWJDb21tYW5kIE5vIFJldHJhbnNtaXQuDQoNCisgIFVJTlQ4ICAgIFZlcnNpb247ICAgICAg ICAgLy8vPCBWZXJzaW9uIE51bWJlci4NCg0KKyAgVUlOVDggICAgRXZlbnRTZW5zb3JUeXBlOyAv Ly88IEV2ZW50IFNlbnNvciBUeXBlLg0KDQorICBVSU5UOCAgICBFdmVudFR5cGU7ICAgICAgIC8v LzwgRXZlbnQgVHlwZS4NCg0KKyAgVUlOVDggICAgRXZlbnRPZmZzZXQ7ICAgICAvLy88IEV2ZW50 IE9mZnNldC4NCg0KKyAgVUlOVDggICAgRXZlbnRTb3VyY2VUeXBlOyAvLy88IERlc2NyaWJlcyB0 aGUgb3JpZ2luYXRvciBvZiB0aGUgZXZlbnQuDQoNCisgIFVJTlQ4ICAgIEV2ZW50U2V2ZXJpdHk7 ICAgLy8vPCBUaGUgc2V2ZXJpdHkgb2YgdGhlIGV2ZW50DQoNCisgIFVJTlQ4ICAgIFNlbnNvckRl dmljZTsgICAgLy8vPCBUaGUgU2Vuc29yIERldmljZSB0aGF0IGNhdXNlZCB0aGUgZXZlbnQNCg0K KyAgVUlOVDggICAgU2Vuc29yTnVtYmVyOyAgICAvLy88IElkZW50aWZ5IGEgZ2l2ZW4gaW5zdGFu Y2Ugb2YgYSBzZW5zb3IgcmVsYXRpdmUgdG8gdGhlIFNlbnNvciBEZXZpY2UuDQoNCisgIFVJTlQ4 ICAgIEVudGl0eTsgICAgICAgICAgLy8vPCBJbmRpY2F0ZXMgdGhlIHBsYXRmb3JtIGRldmljZSBv ciBzdWJzeXN0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC4NCg0KKyAgVUlOVDggICAgRW50 aXR5SW5zdGFuY2U7ICAvLy88IElkZW50aWZpZXMgd2hpY2ggdW5pcXVlIGRldmljZSBpcyBhc3Nv Y2lhdGVkIHdpdGggdGhlIGV2ZW50Lg0KDQorICBVSU5UOCAgICBFdmVudERhdGExOw0KDQorICBV SU5UOCAgICBFdmVudERhdGEyOw0KDQorICBVSU5UOCAgICBFdmVudERhdGEzOw0KDQorICBVSU5U OCAgICBFdmVudERhdGE0Ow0KDQorICBVSU5UOCAgICBFdmVudERhdGE1Ow0KDQorfSBBU0ZfTVNH X05PUkVUUkFOU01JVDsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgaXMgdGhlIEFTRiBTVEFSVCBX YXRjaERvZyBUaW1lciBEYXRhIHN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoNCit0eXBlZGVmIHN0 cnVjdCB7DQoNCisgIFVJTlQ4ICAgIENvbW1hbmQ7DQoNCisgIFVJTlQ4ICAgIEJ5dGVDb3VudDsN Cg0KKyAgVUlOVDggICAgU3ViQ29tbWFuZDsNCg0KKyAgVUlOVDggICAgVmVyc2lvbjsNCg0KK30g QVNGX1NUT1BfV0FUQ0hET0c7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBBU0YgTWVz c2FnZSBUeXBlIHN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoNCit0eXBlZGVmIGVudW0gew0KDQor ICBNc2dIZGRJbml0LA0KDQorICBNc2dBcEluaXQsDQoNCisgIE1zZ1VzZXJJbml0U2V0dXAsDQoN CisgIE1zZ1VzYlJlc291cmNlQ29uZmlnLA0KDQorICBNc2dQY2lSZXNvdXJjZUNvbmZpZywNCg0K KyAgTXNnVmlkZW9Jbml0LA0KDQorICBNc2dLYmNJbml0LA0KDQorICBNc2dLYmNUZXN0LA0KDQor ICBNc2dNb3RoZXJCb2FyZEluaXQsDQoNCisgIE1zZ05vVmlkZW8sDQoNCisgIE1zZ0tiZEZhaWx1 cmUsDQoNCisgIE1zZ0hkZEZhaWx1cmUsDQoNCisgIE1zZ0NoYXNzaXNJbnRydXNpb24sDQoNCisg IE1zZ05vQm9vdE1lZGlhDQoNCit9IEFTRl9NRVNTQUdFX1RZUEU7DQoNCisNCg0KKy8qKg0KDQor ICBUaGlzIGlzIHRoZSBNZXNzYWdlIERhdGEgSHViIE1hcCBTdHJ1Y3R1cmUuDQoNCisNCg0KKyoq Lw0KDQordHlwZWRlZiBzdHJ1Y3Qgew0KDQorICBBU0ZfTUVTU0FHRV9UWVBFICAgICAgICAgTWVz c2FnZVR5cGU7DQoNCisgIEVGSV9TVEFUVVNfQ09ERV9WQUxVRSAgICBTdGF0dXNDb2RlOw0KDQor fSBNRVNTQUdFX0RBVEFfSFVCX01BUDsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgaXMgdGhlIEFT RiBTeXN0ZW0gRmlybXdhcmUgRXZlbnQgU3RydWN0dXJlLg0KDQorDQoNCisqKi8NCg0KK3R5cGVk ZWYgc3RydWN0IHsNCg0KKyAgQVNGX01FU1NBR0VfVFlQRSAgICAgICAgVHlwZTsNCg0KKyAgQVNG X01TR19OT1JFVFJBTlNNSVQgICAgTWVzc2FnZTsNCg0KK30gQVNGX01FU1NBR0U7DQoNCisNCg0K KyNwcmFnbWEgcGFjayhwb3ApDQoNCisNCg0KKyNlbmRpZiAvL19fQVNGX01FU1NBR0VTX0hfXw0K DQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0 dXJlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9Bc2YuaCBiL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQv QXNmLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5mNjYwZmUwYjcy DQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL0FzZi5oDQpAQCAtMCwwICsx LDE0NSBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgbWVzc2FnZSBjb21tYW5kcyBieXRlIGRlZmlu ZS4NCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KDQorDQoNCisgIEBwYXIgUmV2aXNpb24gUmVmZXJlbmNlOg0KDQorICBEYXRhIGRl ZmluZWQgaW4gQXNmIDIuMCBTcGVjaWZpY2F0aW9uLg0KDQorKiovDQoNCisNCg0KKyNpZm5kZWYg X19BU0ZfSF9fDQoNCisjZGVmaW5lIF9fQVNGX0hfXw0KDQorDQoNCisjaW5jbHVkZSA8QmFzZS5o Pg0KDQorDQoNCisvLw0KDQorLy8gQm9vdCBvcHRpb24gbWVzc2FnZXMNCg0KKy8vDQoNCisjZGVm aW5lIEFTRk1TR19DTURfQ09ORklHICAgICAgICAgICAgICAweDMgICAvLyBBU0YgQ29uZmlndXJh dGlvbg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ01EX0NMUl9CT09UX09QVElPTiAgMHgxNSAgLy8g Q2xlYXIgQm9vdCBPcHRpb25zDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDTURfUkVUX0JPT1RfT1BU SU9OICAweDE2ICAvLyBSZXR1cm4gQm9vdCBPcHRpb25zDQoNCisjZGVmaW5lIEFTRk1TR19TVUJD TURfTk9fQk9PVF9PUFRJT04gICAweDE3ICAvLyBObyBCb290IE9wdGlvbnMNCg0KKw0KDQorLy8N Cg0KKy8vIFN5c3RlbSBzdGF0ZXMNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19TWVNURU1fU1RB VEVfUzAgIDAgICAgICAgICAgICAgLy8gUzAvRzAgIldvcmtpbmciDQoNCisjZGVmaW5lIEFTRk1T R19TWVNURU1fU1RBVEVfUzEgIDEgICAgICAgICAgICAgLy8gUzENCg0KKyNkZWZpbmUgQVNGTVNH X1NZU1RFTV9TVEFURV9TMiAgMiAgICAgICAgICAgICAvLyBTMg0KDQorI2RlZmluZSBBU0ZNU0df U1lTVEVNX1NUQVRFX1MzICAzICAgICAgICAgICAgIC8vIFMzDQoNCisjZGVmaW5lIEFTRk1TR19T WVNURU1fU1RBVEVfUzQgIDQgICAgICAgICAgICAgLy8gUzQNCg0KKyNkZWZpbmUgQVNGTVNHX1NZ U1RFTV9TVEFURV9TNSAgNSAgICAgICAgICAgICAvLyBTNS9HMiAiU29mdC1vZmYiDQoNCisNCg0K Ky8vDQoNCisvLyBBc2YgdmVyc2lvbg0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX1ZFUlNJT05f TlVNQkVSXzEwICAgICAgMHgxMA0KDQorDQoNCisvLw0KDQorLy8gU3lzdGVtIGZpcm13YXJlIGNh cGFiaWxpdGllcyBCaXQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRl9CT1BfQklUX0ZPUkNFX1BST0dS RVNTX0VWRU5UICAgICAgICBCSVQxMg0KDQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgY29t bWFuZA0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0NPTU1BTkRfU1lTVEVNX1NUQVRFICAgICAg ICAgICAgICAgMHgxDQoNCisjZGVmaW5lIEFTRk1TR19DT01NQU5EX01BTkFHRU1FTlRfQ09OVFJP TCAgICAgICAgIDB4Mg0KDQorI2RlZmluZSBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcgICAgICAg ICAgICAgICAgICAweDQNCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIHN1YmNvbW1hbmQN Cg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDT01NQU5EX1NUT1BfV0FUQ0hfRE9HICAgICAg ICAgIDB4MTQNCg0KKyNkZWZpbmUgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCAgICAg ICAgICAgMHgxNg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ09NTUFORF9TRVRfU1lTVEVNX1NUQVRF ICAgICAgICAweDE4DQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBldmVudCBzZW5zb3Ig dHlwZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0NIQVNTSVNf SU5UUlVTSU9OICAweDUNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VS Uk9SX1BST0dSRVNTICAweEYNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0JP T1RfRVJST1IgICAgICAgICAweDFFDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQ RV9FTlRJVFlfUFJFU0VOQ0UgICAgMHgyNQ0KDQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2Ug ZXZlbnQgdHlwZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQ RUNJRklDICAgICAgICAgICAweDZGDQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBldmVu dCBvZmZzZXQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9PRkZTRVRfRU5USVRZX1BS RVNFTlQgICAgICAgICAgMHgwDQoNCisNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNFVF9T WVNfRldfUFJPR1JFU1NfRU5UUlkgICAweDINCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNF VF9TWVNfRldfUFJPR1JFU1NfRVhJVCAgICAweDgyDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9P RkZTRVRfU1lTX0ZXX0VSUk9SICAgICAgICAgICAgMHgwDQoNCisNCg0KKyNkZWZpbmUgQVNGTVNH X0VWRU5UX09GRlNFVF9OT19CT09UQUJMRV9NRURJQSAgICAgICAweDANCg0KKyNkZWZpbmUgQVNG TVNHX0VWRU5UX09GRlNFVF9DSEFTU0lTX0lOVFJVU0lPTiAgICAgICAweDANCg0KKw0KDQorLy8N Cg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IHNvdXJjZSB0eXBlDQoNCisvLw0KDQorI2RlZmluZSBB U0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAgICAgICAgICAgICAgIDB4NjgNCg0KKw0KDQor Ly8NCg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IHNldmVyaXR5DQoNCisvLw0KDQorI2RlZmluZSBB U0ZNU0dfRVZFTlRfU0VWRVJJVFlfTU9OSVRPUiAgICAgICAgICAgICAgIDB4MQ0KDQorI2RlZmlu ZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMICAgICAgICAgIDB4OA0KDQorI2Rl ZmluZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfQ1JJVElDQUwgICAgICAgICAgICAgIDB4MTANCg0K KyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9SRUNPVkVSQUJMRSAgICAgICAweDIw DQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBzZW5zb3IgZGV2aWNlDQoNCisvLw0KDQor I2RlZmluZSBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCAgICAgICAgICAgIDB4RkYN Cg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIHNlbnNvciBudW1iZXINCg0KKy8vDQoNCisj ZGVmaW5lIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVEICAgICAgICAgICAgMHhGRg0K DQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgRW50aXR5DQoNCisvLw0KDQorDQoNCisjZGVm aW5lIEFTRk1TR19FTlRJVFlfVU5TUEVDSUZJRUQgICAgICAgICAgICAgICAgICAgMHgwDQoNCisj ZGVmaW5lIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SICAgICAgICAgICAgICAgICAgICAgMHgzDQoN CisjZGVmaW5lIEFTRk1TR19FTlRJVFlfRElTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0 DQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfU1lTVEVNX0JPQVJEICAgICAgICAgICAgICAgICAg MHg3DQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQUREX0lOX0NBUkQgICAgICAgICAgICAgICAg ICAgMHhCDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQklPUyAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgyMg0KDQorI2RlZmluZSBBU0ZNU0dfRU5USVRZX01FTU9SWV9ERVZJQ0UgICAgICAg ICAgICAgICAgIDB4MjANCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGVudGl0eSBpbnN0 YW5jZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklF RCAgICAgICAgICAweDANCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IGRhdGEN Cg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9EQVRBMSAgICAgICAgICAgICAgICAgICAg ICAgICAgMHg0MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRCAgICAg ICAgICAgICAgIDB4MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElB TElaQVRJT04gICAgIDB4MQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9IQVJEX0RJU0tf SU5JVElBTElaQVRJT04gIDB4Mg0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9BUF9JTklU SUFMSVpBVElPTiAgICAgICAgIDB4Mw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9TRVRV UF9JTklUSUFMSVpBVElPTiAgICAgIDB4NQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9V U0JfUkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Ng0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFU QV9QQ0lfUkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Nw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRf REFUQV9WSURFT19JTklUSUFMSVpBVElPTiAgICAgIDB4OQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZF TlRfREFUQV9DQUNIRV9JTklUSUFMSVpBVElPTiAgICAgIDB4QQ0KDQorI2RlZmluZSBBU0ZNU0df RVZFTlRfREFUQV9LRVlCT0FSRF9JTklUSUFMSVpBVElPTiAgIDB4Qw0KDQorI2RlZmluZSBBU0ZN U0dfRVZFTlRfREFUQV9CT0FSRF9JTklUSUFMSVpBVElPTiAgICAgIDB4MTQNCg0KKyNkZWZpbmUg QVNGTVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfVEVTVCAgICAgICAgICAgICAweDE3DQoNCisNCg0K KyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfTk9fTUVNT1JZICAgICAgICAgICAgICAgICAweDEN Cg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfSEFSRF9ESVNLX0ZBSUxVUkUgICAgICAgICAw eDMNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfRkFJTFVSRSAgICAgICAg ICAweDcNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfTk9fVklERU8gICAgICAgICAgICAg ICAgICAweEENCg0KKw0KDQorI2VuZGlmIC8vX19BU0ZfSF9fDQoNCmRpZmYgLS1naXQgYS9GZWF0 dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0 TWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVy ZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMC4uMTAzOGU3N2I1ZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5m ZGYNCkBAIC0wLDAgKzEsOCBAQA0KKyMjIEBmaWxlDQoNCisjICBGREYgZmlsZSBmb3IgcG9zdC1t ZW1vcnkgbW9kdWxlcyB0aGF0IGVuYWJsZSBJbnRlbGxpZ2VudCBQbGF0Zm9ybSBNYW5hZ2VtZW50 IEludGVyZmFjZS4NCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK0lORiBBc2ZGZWF0dXJlUGtnL0FzZkR4 ZS9Bc2ZEeGUuaW5mDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5h Z2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmIGIvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZk Zg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmE3MjM1NDQ4NTUNCi0t LSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNm RmVhdHVyZVBrZy9JbmNsdWRlL1ByZU1lbW9yeS5mZGYNCkBAIC0wLDAgKzEsOCBAQA0KKyMjIEBm aWxlDQoNCisjICBGREYgZmlsZSBmb3IgcHJlLW1lbW9yeSBtb2R1bGVzIHRoYXQgZW5hYmxlIElu dGVsbGlnZW50IFBsYXRmb3JtIE1hbmFnZW1lbnQgSW50ZXJmYWNlLg0KDQorIw0KDQorIyBDb3B5 cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQor IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorIyMNCg0K Kw0KDQorSU5GIEFzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5pbmYNCg0KZGlmZiAtLWdpdCBh L0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRl L1Byb3RvY29sL0FzZlByb3RvY29sLmggYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qcm90b2NvbC9Bc2ZQcm90b2NvbC5oDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZDNhZjBmYmE3Mw0KLS0tIC9kZXYvbnVs bA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0luY2x1ZGUvUHJvdG9jb2wvQXNmUHJvdG9jb2wuaA0KQEAgLTAsMCArMSw1NyBAQA0KKy8qKiBA ZmlsZQ0KDQorICBBc2YgcHJvdG9jb2wgZGVmaW5lLg0KDQorDQoNCisgIENvcHlyaWdodCAoYykg MTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisqKi8NCg0KKw0KDQorI2lm bmRlZiBfX0FTRl9QUk9UT0NPTF9IX18NCg0KKyNkZWZpbmUgX19BU0ZfUFJPVE9DT0xfSF9fDQoN CisNCg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQnVzLmg+DQoNCisNCg0KKyNkZWZp bmUgQVNGX1BST1RPQ09MX0dVSUQgXA0KDQorICB7IFwNCg0KKyAgICAweGRlYzg5ODI3LCAweDhh N2UsIDB4NDVlMCwgeyAweGJjLCAweGI1LCAweGQ1LCAweDNiLCAweDQ2LCAweDE0LCAweGFkLCAw eGI4IH0gXA0KDQorICB9DQoNCisNCg0KKyNwcmFnbWEgcGFjayhwdXNoLCAxKQ0KDQorDQoNCisv KioNCg0KKyAgVGhpcyBpcyB0aGUgQVNGIEJvb3QgT3B0aW9uIGRhdGEgc3RydWN0dXJlLg0KDQor DQoNCisqKi8NCg0KK3R5cGVkZWYgc3RydWN0IHsNCg0KKyAgVUlOVDggICAgIFN1YkNvbW1hbmQ7 DQoNCisgIFVJTlQ4ICAgICBWZXJzaW9uOw0KDQorICBVSU5UMzIgICAgSWFuYUlkOw0KDQorICBV SU5UOCAgICAgU3BlY2lhbENvbW1hbmQ7DQoNCisgIFVJTlQxNiAgICBTcGVjQ21kUGFyYW1ldGVy Ow0KDQorICBVSU5UMTYgICAgQm9vdE9wdGlvbkJpdDsNCg0KKyAgVUlOVDE2ICAgIE9lbVBhcmFt ZXRlcjsNCg0KK30gQVNGX0JPT1RfT1BUSU9OOw0KDQorDQoNCisvKioNCg0KKyAgVGhpcyBpcyB0 aGUgQVNGIFBVU0ggRVZFTlQgU3RydWN0dXJlLg0KDQorDQoNCisqKi8NCg0KK3R5cGVkZWYgRUZJ X1NUQVRVUyAoRUZJQVBJICpBU0ZfUFVTSF9FVkVOVCkoDQoNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElOIFVJTlQ4IENvbW1hbmQsDQoNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOIFVJTlROIExlbmd0aCwNCg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU4gVUlOVDggKkFTRkV2 ZW50DQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoN CisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBBTUkgQVNGIFByb3RvY29sIFN0cnVjdHVyZS4N Cg0KKw0KDQorKiovDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEFTRl9QVVNIX0VWRU5UICAg ICBQdXNoRXZlbnQ7DQoNCisgIEFTRl9CT09UX09QVElPTiAgICAqQm9vdE9wdGlvbjsNCg0KK30g QVNGX1BST1RPQ09MOw0KDQorDQoNCisjcHJhZ21hIHBhY2socG9wKQ0KDQorDQoNCitleHRlcm4g RUZJX0dVSUQgIGdBc2ZQcm90b2NvbEd1aWQ7DQoNCisNCg0KKyNlbmRpZiAvL19fQVNGX1BST1RP Q09MX0hfXw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVu dC9Bc2ZGZWF0dXJlUGtnL1JlYWRtZS5tZCBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwLi5mMThiMWJmYjA3DQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvUmVhZG1lLm1kDQpAQCAtMCww ICsxLDYzIEBADQorIyBPdmVydmlldw0KDQorKiAqKkZlYXR1cmUgTmFtZToqKiBBbGVydCBTdGFu ZGFyZCBGb3JtYXQgKEFTRikNCg0KKyogKipQSSBQaGFzZShzKSBTdXBwb3J0ZWQ6KiogUEVJLCBE WEUNCg0KKyogKipTTU0gUmVxdWlyZWQ/KiogTm8NCg0KKw0KDQorTW9yZSBJbmZvcm1hdGlvbjoN Cg0KKyogW0FTRiBTcGVjaWZpY2F0aW9uIHYyLjBdKGh0dHBzOi8vd3d3LmRtdGYub3JnL3NpdGVz L2RlZmF1bHQvZmlsZXMvc3RhbmRhcmRzL2RvY3VtZW50cy9EU1AwMTM2LnBkZikNCg0KKw0KDQor IyMgUHVycG9zZQ0KDQorVGhlIEFTRiBmZWF0dXJlIHByb3ZpZGVzIGZpcm13YXJlIGZ1bmN0aW9u YWxpdHkgdGhhdCBpbXBsZW1lbnRzIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgQVNGIHNwZWNp ZmljYXRpb24uDQoNCitBbGVydGluZyB0ZWNobm9sb2dpZXMgcHJvdmlkZSBhZHZhbmNlIHdhcm5p bmcgYW5kIHN5c3RlbSBmYWlsdXJlIGluZGljYXRpb24gZnJvbSBtYW5hZ2VkIGNsaWVudHMgdG8g cmVtb3RlIG1hbmFnZW1lbnQgY29uc29sZXMuIE9uY2UgYSBzeXN0ZW0gYWxlcnQgcHJvdmlkZXMg aXRzIHdhcm5pbmcgb3IgZXJyb3IgcmVwb3J0LCB0aGUgbmV4dCBzdGVwIGluIHJlbW90ZSBzeXN0 ZW0gbWFuYWdlYWJpbGl0eSBpcyB0byBhbGxvdyBjb3JyZWN0aXZlIGFjdGlvbiB0byBiZSB0YWtl biDigJQgdGhlc2UgYWN0aW9ucyBpbmNsdWRlIHRoZSBhYmlsaXR5IHRvIHJlbW90ZWx5IHJlc2V0 IG9yIHBvd2VyLW9uIG9yIC1vZmYgdGhlIGNsaWVudCBzeXN0ZW0uDQoNCisNCg0KKyMgSGlnaC1M ZXZlbCBUaGVvcnkgb2YgT3BlcmF0aW9uDQoNCitCYXNlcyBvbiB0aGUgc3lzdGVtIHJlcG9ydGVk IHN0YXR1cyBjb2RlLCB0aGUgZHJpdmVyIHdpbGwgc2VuZCB3YXJuaW5nIG9yIHN5c3RlbSBmYWls dXJlIGluZGljYXRpb24gZnJvbSBtYW5hZ2VkIGNsaWVudHMgdG8gcmVtb3RlIG1hbmFnZW1lbnQg Y29uc29sZXMuDQoNCisNCg0KKyMjIEZpcm13YXJlIFZvbHVtZXMNCg0KKyogQXNmUGVpOiBQcmVN ZW1vcnkNCg0KKyogQXNmRHhlOiBQb3N0TWVtb3J5DQoNCisNCg0KKyMjIE1vZHVsZXMNCg0KKyog QXNmUGVpDQoNCisqIEFzZkR4ZQ0KDQorDQoNCisjIyBBc2ZQZWkNCg0KK0FzZiBpbml0aWFsaXpl IGFuZCBzZW5kIHN0YW5kYXJkIHByb2dyZXNzIG1lc3NhZ2VzIHRvIE5JQy4NCg0KKw0KDQorIyMg QXNmRHhlDQoNCitJbnN0YWxsIEFzZiBBY3BpIHRhYmxlIGFuZCByZWdpc3RlciBSU0MgaGFuZGxl IHRvIHNlbmQgcHJvZ3Jlc3MvZXJyb3IgZXZlbnQgbG9ncyB0byBOSUMuDQoNCitQcm9kdWNlIEFz ZiBEeGUgcHJvdG9jb2wuDQoNCisNCg0KKyMjIDxMaWJyYXJ5IE5hbWU+DQoNCitOL0Egbm93Lg0K DQorDQoNCisjIyBLZXkgRnVuY3Rpb25zDQoNCitBc2ZQdXNoRXZlbnQ6IFRoaXMgZnVuY3Rpb24g aXMgcHJvdmlkZWQgaW4gcHJvdG9jb2wsIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBzZW5kIG1lc3Nh Z2VzIHRvIE5JQy4NCg0KKw0KDQorIyMgQ29uZmlndXJhdGlvbg0KDQorRm9yIFBjZENvbnRyb2xE YXRhQXJyYXlzIHN0cnVjdHVyZSBpbmZvcm1hdGlvbiwgcGxlYXNlIGNoZWNrIEFzZjIuMCBzcGVj IGNoYXB0ZXIgNC4xLjIuNSBBU0ZfQ09OVFJPTERBVEEuDQoNCisNCg0KKyMjIERhdGEgRmxvd3MN Cg0KK0FzZlB1c2hFdmVudCgpIC0+IHRocm91Z2ggU21CdXMgLT4gTklDIC0+IFJlbW90ZSBtYW5h Z2VtZW50IGNvbnNvbGVzDQoNCisNCg0KKyMjIENvbnRyb2wgRmxvd3MNCg0KK04vQSBub3cuDQoN CisNCg0KKyMjIEJ1aWxkIEZsb3dzDQoNCitUaGVyZSBpcyBub3Qgc3BlY2lhbCBidWlsZCBmbG93 Lg0KDQorDQoNCisjIyBUZXN0IFBvaW50IFJlc3VsdHMNCg0KK1RoZXJlIGFyZSBub3QgdGVzdCBw b2ludHMgaW1wbGVtZW50ZWQuDQoNCisNCg0KKyMjIEZ1bmN0aW9uYWwgRXhpdCBDcml0ZXJpYQ0K DQorQ2hlY2sgQXNmIEFjcGkgdGFibGUNCg0KK0NoZWNrIHRoZSBldmVudCBsb2cgaW4gcmVtb3Rl IG1hbmFnZW1lbnQgY29uc29sZXMNCg0KKw0KDQorIyMgRmVhdHVyZSBFbmFibGluZyBDaGVja2xp c3QNCg0KK1BjZEFzZkZlYXR1cmVFbmFibGUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4NCg0KKw0K DQorIyMgUGVyZm9ybWFuY2UgSW1wYWN0DQoNCitUaGVyZSBpcyBubyBwZXJmb3JtYW5jZSBpbXBh Y3QuDQoNCisNCg0KKyMjIENvbW1vbiBPcHRpbWl6YXRpb25zDQoNCitOL0Egbm93Lg0KDQotLQ0K Mi4zNi4wLndpbmRvd3MuMQ0KLVRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNz YWdlIG1heSBiZSBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0 cmVuZHMgKEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBpcyBpbnRlbmRlZCB0byBiZSByZWFkIG9u bHkgYnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gaXQgaXMgYWRkcmVzc2VkIG9y IGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3Qg dGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2UgdGhhdCBhbnkgZGlzdHJp YnV0aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0sIGlzIHN0cmljdGx5IHByb2hpYml0 ZWQuIFBsZWFzZSBwcm9tcHRseSBub3RpZnkgdGhlIHNlbmRlciBieSByZXBseSBlLW1haWwgb3Ig YnkgdGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5kIHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kg YWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0K