From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.9529.1667324349761880983 for ; Tue, 01 Nov 2022 10:39:10 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=WFDLFsrX; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: vincent.zimmer@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667324349; x=1698860349; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=7q0vPwsicmLbSL8Q4u1bwoaI591ECHyNMkTMw+jFfr8=; b=WFDLFsrXWwBwlySmNGQ46JyFq5OXZSnZ7+67KqbqAtN2az/JyDNvFgi5 LDqAWd+CpWTh5NVgVFBW4qZbWvTlg+0njA1rQZgIURgShUZPFHMb2SWfN RTDw5cKASiL/KvOfvohJqnFOEpQDrVQdybEAVzsXHbbuiSUgXKbN3GgQj oTSoAW1+8g9pYr7+d0kdDmxaW2wv4PdCyI5RNZeFitVUzZw1IYlz+FBMC czKERid6Or+c4MWj+5PbZi9M2/NfHqQXCigUIAIXGS6cAwXTK3+OMsMdM mzUc6Jb/52jK3A0YP+xLp7EyAdXXV+Pyt0fgK5fKGS60VA4N2FutpzCzL w==; X-IronPort-AV: E=McAfee;i="6500,9779,10518"; a="395510811" X-IronPort-AV: E=Sophos;i="5.95,231,1661842800"; d="scan'208";a="395510811" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2022 10:39:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10518"; a="723236959" X-IronPort-AV: E=Sophos;i="5.95,231,1661842800"; d="scan'208";a="723236959" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 01 Nov 2022 10:39:08 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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; Tue, 1 Nov 2022 10:39:08 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 1 Nov 2022 10:39:08 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 1 Nov 2022 10:39:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=et3MYDUlD0DBow1l2Qqw+Lo3HmuoyNCCwolMC2+N6aLCJGNEUPRVL7rixVfSwwdcz03s8o/dngIRlEaddpsRtcjRXnOmioJViJzstUHMp93xeaTG4G+mI4l3VHNgemgE+kjAuuazzvJWM9fyN55FrYk3lzkUhtk4VuP5Tj4RH7ynLdmIc2v14SANZoUPxfw2sXUxj9878DN/+T/75pbnvY7k/KvfF7hEgOczrrQHSRc41AVCy6l7ZP0n/+jxFwIBs+EcLuyemDWbGGu+/NqeEIZoAg4nQpGntMiEYks51+16iCeQNiSZNR0woEMPXy79RQejfD3F8scdzuiv/BmRVg== 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=7q0vPwsicmLbSL8Q4u1bwoaI591ECHyNMkTMw+jFfr8=; b=Sat5dmwnyiVvZss+i9tsYI8fJhIEm1topmCgFW48LICymJgSDdasPD5H8WNHjY6FHMCbBwFYviRWsGYUlzF94RDERNEpihhZ9FK82aYKiegGHofV0fUtzfTwFeoCCiufh0/KTKqHWyKwKuwecimCDHAehB/a57eeMJCHytJoI58w70Ur9Q5WefbFyFyJKEi4x/OVP51KxdToscmmRpJmbJnkT/WXSa7Ct/UpH7qqJlU7M8jeTQyJ6CEjwl0psDXAOmUkC1bCZE/e3t7D2HrdboIzf7RJFM2InQ/QFrdiAKH28FVguJ37rACLsvB0UkC0z5xHS7qBSxoOMA6f6uUQxw== 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 MWHPR11MB0064.namprd11.prod.outlook.com (2603:10b6:301:64::18) by CY5PR11MB6233.namprd11.prod.outlook.com (2603:10b6:930:26::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Tue, 1 Nov 2022 17:39:05 +0000 Received: from MWHPR11MB0064.namprd11.prod.outlook.com ([fe80::cb28:4bbc:ddd0:ddb3]) by MWHPR11MB0064.namprd11.prod.outlook.com ([fe80::cb28:4bbc:ddd0:ddb3%7]) with mapi id 15.20.5769.021; Tue, 1 Nov 2022 17:39:05 +0000 From: "Zimmer, Vincent" To: "Clark-williams, Zachary" , "Rabeda, Maciej" , "Luo, Heng" , "Kuo, Scottie" , "Kuo, Ted" , "Dutkiewicz, Michal" , "devel@edk2.groups.io" , "Wu, Jiaxin" , "Otcheretianski, Andrei" CC: "Alappat, Paul" , "Kasbekar, Saloni" , "Patil, Ajit" Subject: Re: [edk2-devel] [PATCH v4] NetworkPkg/WifiProfileSync: Add WiFi profile sync protocol support Thread-Topic: [edk2-devel] [PATCH v4] NetworkPkg/WifiProfileSync: Add WiFi profile sync protocol support Thread-Index: AQHY6wmCien8sSdMzEyPeAgY39Cbv64kPV2AgASrMICAABz2sIABVPGAgAAAnvA= Date: Tue, 1 Nov 2022 17:39:04 +0000 Message-ID: References: <9102518d297546d349e9dcbaf9a87706ec8529e0.1664830666.git.zachary.clark-williams@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows 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-traffictypediagnostic: MWHPR11MB0064:EE_|CY5PR11MB6233:EE_ x-ms-office365-filtering-correlation-id: b9885cfd-e05c-42dd-0d31-08dabc2ff8c3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bxDb9F/xKYOfQ6vAH41nMcMBnncBIFA9JOR6/13awVEZwWWaWY8X1+ftURVYcB9MZZtnf50jdUfVzaBSG0XkgRQjP2P2b8n5XBxJlB6Yv5Afbz+RWpk324kajWoA/W3igE+CXb7rbcxPnUbg5Km+pOO5CKO2aLedY7Jrl21Wv1q04QkTf4tUvk4fxV1xH9N8eN4RfCHZ05ThIyLtCVfnTQPwduXO7RFerI5Asq4cYZr9t2yb1aII0iAwCFKN30e4y/dHluIL4DC1PA4QmkbZ7x41orgOQcDLMw+qq3kyRqyrSLgHywZitDWzhV8/sNDjjLV3P+wMYqvd5D3gzFx+7kW0r6CLiMMAJIGKa6UL9J8OH/102n1lvHUpj+2NXVwYN/n/b8bWbm4THrr2dfCyEnUWdj6oiYqLVRq88YS4MA8ppp1xqk5DDvxL+JvRHEyba+UH6dpnlFcp6eiVfiGbWkaswTTIyg36PnKA2rOnq8LUzdAGw9INmTCBLbur4L/PDK8eMVqK5yLH4Y3Ijim3QZIooFixS11t2MbhdSF23FS9bY8BQ9w/LiDC69bafwQZuUHGiJ41pIucJeYlH0pSIJBrbfu7c1R0KzEZonSUJZ4EVrYpIpioUY3hZE4R/wailAHPe0IzvniytrgfqjbY3EA6jyiTBAhmHvk1/BQ1dtfxCXuhRu3GLzLNL8uPdYr/RqhntppBSpdByjCSI/LcDCPw5kbzB0Chdj4UamO+Qg4CqLQOtTJY/aXlEtl4YET0Y4cfIIK0BqdeisJLLm/mo0Dc4CGyB75HhFdhlj/MXn79f5fWyX3NU98aa63NOCj2hwEmJ0KjMar6rLi4sHBICDl9Nhld+SfJzWoH1sCyj32//flcswsIBGa4bOU5BqYG x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB0064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(6029001)(396003)(366004)(346002)(376002)(136003)(39860400002)(451199015)(4326008)(66476007)(64756008)(54906003)(19627235002)(66556008)(66946007)(8676002)(110136005)(66446008)(2906002)(52536014)(6636002)(186003)(41300700001)(26005)(9686003)(6506007)(53546011)(316002)(966005)(107886003)(76116006)(7696005)(30864003)(478600001)(71200400001)(5660300002)(55016003)(66899015)(8936002)(86362001)(83380400001)(122000001)(33656002)(82960400001)(38070700005)(38100700002)(921005)(579004)(559001)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VFRKOHMwZ2FCcis4SHlsL0lwM3owbDcwL2sreVJuR3V0UkRPV1RRUVE4S1pL?= =?utf-8?B?cmJlc3YydTlLTXYwMFZPOHhjV0t4MDBWdm1HUXV1c2cyRkNBT3J5SDBZU1lp?= =?utf-8?B?c3o0NXhFUXVRUHVBN1UxRzBXT3MwYlc1dWxqdDhFbWlPbzJzdFV6WFRrUi9T?= =?utf-8?B?aHhFMFpBbXdmMXo3TDBTMSthYkhPL0xnNUNFK2xmVnU3TlY1UVpPTW0yV05v?= =?utf-8?B?T3dKRmVPS3MvSmhSbS9Tc1F3ZzNtUEtKWFBiNDlucVQvSUp0c29NTklCMnVk?= =?utf-8?B?SjEzOVhxUU1Sb3NFS1hXcnNvWmtMWVRpUm50b2hpQ3c1OTF2ZFpNUGxoQklq?= =?utf-8?B?VW5EcDM0QTRPL3lQMWZZZWdtSzBPdTRkQkxTMVRIQ0tjSHZPWEp5WGdiR2k0?= =?utf-8?B?bjJIdWhmSE5jMGU3SXE1MkV6Y1J3WnN5ejRvTFl0NTF0SndFeHpHRk40U1Qv?= =?utf-8?B?RjZOaEZoRlRaTXkvL2QzMHJuNDVmazRnNXFteU15QlJpUWFiTEk4ZGJ3aVJw?= =?utf-8?B?Z1RnOVpvY2lsM2pveW1rYlppajEvMjF6Z3F5OCs3Vmx3SXNORGZqRkd5RG0w?= =?utf-8?B?bGlVM0tUMkcySXlqTGNnRUl4Yk5XUkMrYklyME13OWFPZmx6Yy9uc0ZacDcw?= =?utf-8?B?Wmt2cVVDUVl6aEFoUm5hS2dLQzkzekF2bnVIR2k1a3JVbmt1Uk5BaU1EMGxY?= =?utf-8?B?MjBRRVZzNm9FTzI2ajNBMGRWMmRUOC8yMDZCWVdLcElnck5Mei9Zdm5Gb0RW?= =?utf-8?B?VFdyUklzTkxGRHdhOXZFVlZPN0hPdFRSM3hnc0cxZUovZ2E4Y1llZzFweHVq?= =?utf-8?B?K2VKK1lNdDBBMkZ3SzVWMVY2N1VQVWN2RHFVUytGT0VVS1hxVmMvaENRdzl6?= =?utf-8?B?MldFVFkwZk1nV01rQkZJTWg3YkF3YVRxbHVMSUVFQ2FTTnZGQzYrZU1tcFM5?= =?utf-8?B?b0tYdnBXZWRYL3hsYk9CRitBMlE2a0VjUHg3eVpVRnZJUmlnMnlmMnp2L0Qr?= =?utf-8?B?cjROMWdNYzJMYlV5VFBYdFF1ZUNyMUdWQW5Mc3ZXS2FnZTFybUkxTXc4Z0hp?= =?utf-8?B?Q0tlK0tLNWR5MEYzQ1laU3ljcnh5VmQ3MkVjUWVSYTgwZ2p2Ukx3Sks4MGRT?= =?utf-8?B?QzJON2tIcFhQYnR3MTcxai9JY1VkL01QTFpxZ2lQTFFKdlVNK0V6VG9lQ29P?= =?utf-8?B?SGdyQVVldFdBNjJqQmNLeE43WDhoWVhTSEhrTkI2R29ZRUMrVDRHT2VxT3Zk?= =?utf-8?B?MVZGWHE3b2JTcGpjK3BqblZLV2Zpd2lPMDJycFg0UGZ5Mk4yYlVqdExuVEda?= =?utf-8?B?angxR3g1WjRrVDhGWDd3aUpVbncvcHpSMk1zZDlENTdPWlNWRjhSMndNTGo2?= =?utf-8?B?dnMzYVNHb1dpWXBCY0FtdDBIbTE4NkkwY2R4QXBkazM1UUcrb3UzdVY5RklI?= =?utf-8?B?NXhyaWg5VHg3NnVpMTY4a1dJY0RXVWc0d1hXcDJSREZRQWFNVEtFQzZRVnJQ?= =?utf-8?B?Z3VWcXNvUU0wblNhcDlMV2QzVTVEMXNGWFVsRGZQc3MwRW5vOWl4Q0RzbHV4?= =?utf-8?B?REh0eW43M1dYY0VDdmtTeXVQMmFydnVXV2dOVldQYlRZN2xFZ2swUDFSY291?= =?utf-8?B?dnlHNWk3Y2RROU9Lb2FuNGxiZzNYbkxmd0lDaFhVaE9NVVRBZG9Cc0lZaWVo?= =?utf-8?B?SWpTOVVVT0pVcm5weFl6aHU4a0lzLzFDcVhIQjV3NEJkTC9zR21EcThOd25r?= =?utf-8?B?dTBDZXRUZENZRm5vZDZFR0FCLzU1K0VWelQ2REVsWWlBT3dCbUtFc0lYQXls?= =?utf-8?B?K21rNXlCdjZsVGdQQlBmWTVDQlUveFIyOHpHR1h2bHdtQWx0Qm01MC94eTl3?= =?utf-8?B?M3ppQy9GR0s2alprMHlWYjQ0MHA5RXFkQjRNR2JNVnNQSWJoV29Ua09pOGVH?= =?utf-8?B?MGdYWWlaV1BGdlJEK0pySGdhNnZYOVBUaTZrL3JkQ0RYL0p6eWFnVWZHbWd1?= =?utf-8?B?NG52aHQvaW1XN05FYktxYTN1TnZxcGN2RG5SVTV0ZWYxeFYrWmhqSW9uR0lI?= =?utf-8?B?R0FIZEcxa3luYW1ZZ2VSTGdMRzM3eVNYc2N4bW1lM2FKVFZtWjd3eWQwRFli?= =?utf-8?Q?/EQ9ljIVa75xu7CYik6Jv2H6+?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB0064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9885cfd-e05c-42dd-0d31-08dabc2ff8c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2022 17:39:04.9207 (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: 46wRAcH4BF/9/HMIb0YkdKyHQ2OXx+WIvZCvCAhIXwjce+Xp73M7ESajCwZ7xBDMxeDvyxCAy0hhEwpz1kyOPKdOFdkB2fUIynBIW4YBbQU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6233 Return-Path: vincent.zimmer@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhdCdzIGdyZWF0DQpJZiB0aGVzZSBsaW5rcyBhcmUgbm90IGFscmVhZHkgaW4gdGhlIC5oIGZp bGVzIG9mIHRoZSBwYXRjaCBJJ2QgYWRkIHRoZW0uDQpUeXBpY2FsbHkgdGhlIHVlZmkgbmV0d29y a2luZyBjb2RlIGxldmVyYWdlcyB1ZWZpIHNwZWMgb3IgaWV0ZiByZmMncyBvciBvdGhlciBwdWJs aWMgY29sbGF0ZXJhbC4gIExldHRpbmcgZm9sa3Mga25vdyB0aGUgYmFja2dyb3VuZCBvZiB0aGVz ZSBpbnRlcmZhY2VzIHdpdGggYSByZWZlcmVuY2Ugc2hvdWxkIGhlbHAgY29uc3VtZXJzIElNSE8N ClZpbmNlbnQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxp YW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4gDQpTZW50OiBU dWVzZGF5LCBOb3ZlbWJlciAxLCAyMDIyIDEwOjM1IEFNDQpUbzogWmltbWVyLCBWaW5jZW50IDx2 aW5jZW50LnppbW1lckBpbnRlbC5jb20+OyBSYWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBp bnRlbC5jb20+OyBMdW8sIEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8 c2NvdHRpZS5rdW9AaW50ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0 a2lld2ljeiwgTWljaGFsIDxtaWNoYWwuZHV0a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFu c2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+DQpDYzogQWxhcHBh dCwgUGF1bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9u aS5rYXNiZWthckBpbnRlbC5jb20+OyBQYXRpbCwgQWppdCA8YWppdC5wYXRpbEBpbnRlbC5jb20+ DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJv ZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhleSBW aW5jZW50LA0KDQpUaGUgZG9jdW1lbnRhdGlvbiBmb3IgZGVzY3JpYmluZyB0aGUgZmVhdHVyZXMg aW4gdGhlIFBSIGRlc2NyaXB0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ1NNRSBkb2N1bWVudGF0 aW9uIGZvdW5kIG9uIHRoZSBwdWJsaWMgYWNjZXNzaWJsZSBpbnRlbCBsaW5rIGJlbG93Lg0KDQpP Q1IgLSBodHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9zaXRlcy9tYW5hZ2VhYmlsaXR5L0FNVF9J bXBsZW1lbnRhdGlvbl9hbmRfUmVmZXJlbmNlX0d1aWRlL2RlZmF1bHQuaHRtP3R1cmw9V29yZERv Y3VtZW50cyUyRm9uZWNsaWNrcmVjb3ZlcnkuaHRtDQoNCktWTSAtIGh0dHBzOi8vc29mdHdhcmUu aW50ZWwuY29tL3NpdGVzL21hbmFnZWFiaWxpdHkvQU1UX0ltcGxlbWVudGF0aW9uX2FuZF9SZWZl cmVuY2VfR3VpZGUvZGVmYXVsdC5odG0/dHVybD1Xb3JkRG9jdW1lbnRzJTJGb25lY2xpY2tyZWNv dmVyeS5odG0NCg0KVGhhbmtzLA0KWmFjaw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogWmltbWVyLCBWaW5jZW50IDx2aW5jZW50LnppbW1lckBpbnRlbC5jb20+DQpTZW50OiBN b25kYXksIE9jdG9iZXIgMzEsIDIwMjIgMjoxNiBQTQ0KVG86IENsYXJrLXdpbGxpYW1zLCBaYWNo YXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRr Mi1kZXZlbF0gW1BBVENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkg cHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBvcnQNCg0KUXVpY2sgcXVlc3Rpb24NCg0KQXJlIHRo ZSBmZWF0dXJlcyBkZXNjcmliZWQgaW4gIiBFbmFibGVzIEtWTSBhbmQgT25lIENsaWNrIFJlY292 ZXJ5IFdMQU4gY2FwYWJpbGl0eSB3aXRoIFdpRmkgUHJvZmlsZSBTeW5jIGZlYXR1cmUgYW5kIHBy b3RvY29sLiBBZGRpbmcgV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wsIHdoaWNoIHN1cHBvcnRzIHRo ZSBwcm9maWxlc3luYyBkcml2ZXIgb3BlcmF0aW9ucyBmb3IgdHJhbnNmZXJyaW5nIFdpRmkgcHJv ZmlsZXMgZnJvbSBBTVQgdG8gdGhlIFN1cHBsaWNhbnQuIFdpRmlDb25uZWN0aW9uTWFuYWdlciB3 aWxsIGNoZWNrIGZvciB0aGUgV2lmaVByb2ZpbGVTeW5jUHJvdG9jb2wgYW5kIGlmIGZvdW5kIHdp bGwgb3BlcmF0ZSBvbiB0aGUgcHJlbWlzZSBvZiBhIE9uZSBDbGljayBSZWNvdmVyeSwgb3IgS1ZN IGZsb3cgd2l0aCBhIFdpZmkgcHJvZmlsZSBwcm92aWRlZCBieSBBTVQuIiBpbiBhIHB1YmxpYyBk b2N1bWVudD8gIFRoaW5ncyBsaWtlIGNvbmNlcHQgb2YgcHJvZmlsZSBzeW5jPyAgSSdtIGd1ZXNz aW5nIHRoZXkgYXJlIHNpbmNlIExpbnV4IHByb2JhYmx5IGRvZXMgdGhlIHNhbWUgaW4gdGhlIGlu dGVsIGl3bCBkcml2ZXI/DQoNClZpbmNlbnQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N CkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mIENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBNb25kYXksIE9jdG9iZXIgMzEs IDIwMjIgMTI6MzEgUE0NClRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBSYWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBpbnRlbC5jb20+OyBMdW8s IEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8c2NvdHRpZS5rdW9AaW50 ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0a2lld2ljeiwgTWljaGFs IDxtaWNoYWwuZHV0a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ0Z1 LCBTaXl1YW4nIDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGlu dGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBp bnRlbC5jb20+DQpDYzogQWxhcHBhdCwgUGF1bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IEth c2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNiZWthckBpbnRlbC5jb20+OyBQYXRpbCwgQWppdCA8 YWppdC5wYXRpbEBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2 NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90 b2NvbCBzdXBwb3J0DQoNCisrIHZpc2liaWxpdHkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBGcmlkYXksIE9jdG9iZXIg MjgsIDIwMjIgMToxMyBQTQ0KVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IFJhYmVkYSwgTWFjaWVqIDxtYWNpZWoucmFiZWRhQGludGVsLmNvbT47IEx1 bywgSGVuZyA8aGVuZy5sdW9AaW50ZWwuY29tPjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0Bp bnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNo YWwgPG1pY2hhbC5kdXRraWV3aWN6QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBG dSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGlu dGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBp bnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW1BBVENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxl U3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBvcnQNCg0KKytNb3JlIGZv ciByZXZpZXdhbCENCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdp bGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBGcmlkYXksIE9jdG9iZXIgMjgsIDIwMjIgMToxMCBQTQ0K VG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFJhYmVk YSwgTWFjaWVqIDxtYWNpZWoucmFiZWRhQGludGVsLmNvbT47IEx1bywgSGVuZyA8aGVuZy5sdW9A aW50ZWwuY29tPjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+OyBLdW8sIFRl ZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hhbC5kdXRraWV3 aWN6QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpTdWJqZWN0OiBSRTogW1BBVENI IHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHBy b3RvY29sIHN1cHBvcnQNCg0KVGhhbmtzIGZvciB0aGUgZm9yd2FyZCBNaWtlIQ0KDQpNYWNpZWog YW5kIEFsbCwgDQoNCklmIHlvdSBjb3VsZCBwbGVhc2UgcmV2aWV3IHRoZSBQUiBiZWxvdy4gSSB3 b3VsZCBsaWtlIHRvIGdldCB0aGlzIHJldmlldyBjb21wbGV0ZWQgd2l0aGluIHRoZSB3ZWVrLg0K DQpUaGFua3MsDQpaYWNrDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpTZW50OiBUaHVyc2Rh eSwgT2N0b2JlciAyNywgMjAyMiAxOjA5IFBNDQpUbzogUmFiZWRhLCBNYWNpZWogPG1hY2llai5y YWJlZGFAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsgQ2xhcmstd2lsbGlhbXMsIFphY2hhcnkgPHphY2hhcnkuY2xhcmstd2lsbGlhbXNA aW50ZWwuY29tPg0KU3ViamVjdDogRlc6IFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmls ZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhpIE1hY2ll aiwNCg0KQ2FuIHlvdSBwbGVhc2UgaGVscCByZXZpZXcgdGhlc2UgTmV0d29ya1BrZyBjaGFuZ2Vz Lg0KDQpJIGFtIG5vdCBzdXJlIGlmIHlvdSBtb25pdG9yIHlvdXIgbGludXguaW50ZWwuY29tIGFj Y291bnQgYXMgY2xvc2VseSBhcyB5b3VyIGludGVsLmNvbSBhY2NvdW50Lg0KDQpUaGFua3MsDQoN Ck1pa2UNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1z LCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJz ZGF5LCBPY3RvYmVyIDI3LCAyMDIyIDEyOjMzIFBNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KU3ViamVjdDogRlc6IFtQQVRDSCB2NF0gTmV0d29y a1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBw b3J0DQoNCkhleSBNaWtlLA0KDQpJJ20gc3RydWdnbGluZyB0byBnZXQgYW55IGZlZWRiYWNrIG9u IHRoaXMgUFIuIERvIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9ucyB0byBnZXQgYmV0dGVyIHZpc2li aWxpdHkgYW5kIHJlc3BvbnNlcyBzbyBJIGNhbiBnZXQgdGhpcyBtaXZpbmc/DQoNClRoYW5rcywN ClphY2sNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1z LCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJz ZGF5LCBPY3RvYmVyIDI3LCAyMDIyIDEyOjMxIFBNDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N CkNjOiBaYWNoYXJ5IENsYXJrLVdpbGxpYW1zIDx6Y2xhcmt3MTEyQGdtYWlsLmNvbT47IE1hY2ll aiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPjsgRnUgU2l5dWFuIDxzaXl1 YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hl cmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+OyBDbGFy ay13aWxsaWFtcywgWmFjaGFyeSA8emFjaGFyeS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+DQpT dWJqZWN0OiBbUEFUQ0ggdjRdIE5ldHdvcmtQa2cvV2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBw cm9maWxlIHN5bmMgcHJvdG9jb2wgc3VwcG9ydA0KDQpGcm9tOiBaYWNoYXJ5IENsYXJrLVdpbGxp YW1zIDx6Y2xhcmt3MTEyQGdtYWlsLmNvbT4NCg0KUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDUNCg0KRW5hYmxlcyBLVk0gYW5kIE9uZSBDbGlj ayBSZWNvdmVyeSBXTEFOIGNhcGFiaWxpdHkgd2l0aCBXaUZpIFByb2ZpbGUgU3luYyBmZWF0dXJl IGFuZCBwcm90b2NvbC4gQWRkaW5nIFdpRmlQcm9maWxlU3luY1Byb3RvY29sLCB3aGljaCBzdXBw b3J0cyB0aGUgcHJvZmlsZXN5bmMgZHJpdmVyIG9wZXJhdGlvbnMgZm9yIHRyYW5zZmVycmluZyBX aUZpIHByb2ZpbGVzIGZyb20gQU1UIHRvIHRoZSBTdXBwbGljYW50LiBXaUZpQ29ubmVjdGlvbk1h bmFnZXIgd2lsbCBjaGVjayBmb3IgdGhlIFdpZmlQcm9maWxlU3luY1Byb3RvY29sIGFuZCBpZiBm b3VuZCB3aWxsIG9wZXJhdGUgb24gdGhlIHByZW1pc2Ugb2YgYSBPbmUgQ2xpY2sgUmVjb3Zlcnks IG9yIEtWTSBmbG93IHdpdGggYSBXaWZpIHByb2ZpbGUgcHJvdmlkZWQgYnkgQU1ULg0KDQpDYzog TWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+DQpDYzogRnUgU2l5 dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KQ2M6IFd1IEppYXhpbiA8amlheGluLnd1QGludGVs LmNvbT4NCkNjOiBBbmRyZWkgT3RjaGVyZXRpYW5za2kgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBp bnRlbC5jb20+DQoNClNpZ25lZC1vZmYtYnk6IFphY2hhcnkgQ2xhcmstV2lsbGlhbXMgPHphY2hh cnkuY2xhcmstd2lsbGlhbXNAaW50ZWwuY29tPg0KLS0tDQogLi4uL1Byb3RvY29sL1dpRmlQcm9m aWxlU3luY1Byb3RvY29sLmggICAgICAgIHwgIDgzICsrKysrKysrDQogTmV0d29ya1BrZy9OZXR3 b3JrUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCiAuLi4vV2lmaUNvbm5lY3Rp b25NYW5hZ2VyRHhlLmluZiAgICAgICAgICAgICAgfCAgIDMgKy0NCiAuLi4vV2lmaUNvbm5lY3Rp b25NZ3JDb25maWdOVkRhdGFTdHJ1Y3QuaCAgICAgfCAgIDIgKy0NCiAuLi4vV2lmaUNvbm5lY3Rp b25NZ3JEcml2ZXIuYyAgICAgICAgICAgICAgICAgfCAxMjYgKysrKysrKystLS0tDQogLi4uL1dp ZmlDb25uZWN0aW9uTWdyRHhlLmggICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQogLi4uL1dp ZmlDb25uZWN0aW9uTWdySW1wbC5jICAgICAgICAgICAgICAgICAgIHwgMTkzICsrKysrKysrKysr KysrKystLQ0KIC4uLi9XaWZpQ29ubmVjdGlvbk1nck1pc2MuYyAgICAgICAgICAgICAgICAgICB8 ICAxMyArKw0KIDggZmlsZXMgY2hhbmdlZCwgMzY3IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9u cygtKSAgY3JlYXRlIG1vZGUgMTAwNjQ0IE5ldHdvcmtQa2cvSW5jbHVkZS9Qcm90b2NvbC9XaUZp UHJvZmlsZVN5bmNQcm90b2NvbC5oDQoNCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL0luY2x1ZGUv UHJvdG9jb2wvV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wuaCBiL05ldHdvcmtQa2cvSW5jbHVkZS9Q cm90b2NvbC9XaUZpUHJvZmlsZVN5bmNQcm90b2NvbC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMC4uZTM2ZGFjZWFiZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTmV0d29y a1BrZy9JbmNsdWRlL1Byb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmgNCkBAIC0wLDAg KzEsODMgQEANCisvKiogQGZpbGUNCisgIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sLiBTdXBw b3J0cyBPbmUgQ2xpY2sgUmVjb3Zlcnkgb3IgS1ZNIE9TIA0KK3JlY292ZXJ5DQorICBib290IGZs b3cgb3ZlciBXaUZpLg0KKw0KKyAgQ29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudCAqKi8NCisNCisjaWZuZGVmIFdJRklfUFJPRklMRV9TWU5D X1BST1RPQ09MX0hfDQorI2RlZmluZSBXSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTF9IXw0KKw0K KyNpbmNsdWRlIDxXaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JDb25m aWcuaD4NCisNCisvLw0KKy8vICBXaUZpIFByb2ZpbGUgU3luYyBQcm90b2NvbCBHVUlEIHZhcmlh YmxlLg0KKy8vDQorZXh0ZXJuIEVGSV9HVUlEICBnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xH dWlkOw0KKw0KKy8qKg0KKyAgVXNlZCBieSB0aGUgV2lGaSBjb25uZWN0aW9uIG1hbmFnZXIgdG8g Z2V0IHRoZSBXaUZpIHByb2ZpbGUgdGhhdCBBTVQgDQorc2hhcmVkDQorICBhbmQgd2FzIHN0b3Jl ZCBpbiBXaUZpIHByb2ZpbGUgcHJvdG9jb2wuIEFsaWducyB0aGUgQU1UIFdpRmkgcHJvZmlsZSAN CitkYXRhIHRvDQorICB0aGUgV2lGaSBjb25uZWN0aW9uIG1hbmFnZXIgcHJvZmlsZSBzdHJ1Y3R1 cmUgZm8gY29ubmVjdGlvbiB1c2UuDQorDQorICBAcGFyYW1baW4sIG91dF0gIFdjbVByb2ZpbGUg ICAgICAgV2lGaSBDb25uZWN0aW9uIE1hbmFnZXIgcHJvZmlsZSBzdHJ1Y3R1cmUNCisgIEBwYXJh bVtpbiwgb3V0XSAgTWFjQWRkcmVzcyAgICAgICBNQUMgYWRkcmVzcyBmcm9tIEFNVCBzYXZlZCB0 byBOaUMgTUFDIGFkZHJlc3MNCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg ICBTdG9yZWQgV2lGaSBwcm9maWxlIGNvbnZlcnRlZCBhbmQgcmV0dXJuZWQgc3VjY2VmdWxseQ0K KyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgICAgIFByb2ZpbGUgcHJvdG9jb2wgc2hh cmluZyBub3Qgc3VwcG9ydGVkIG9yIGVuYWJsZWQNCisgIEByZXR2YWwgRUZJX05PVF9GT1VORCAg ICAgICAgICAgICBObyBwcm9maWxlcyB0byByZXR1cm5lZA0KKyAgQHJldHZhbCBPdGhlcnMgICAg ICAgICAgICAgICAgICAgIEVycm9yIE9jY3VycmVkDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFU VVMNCisoRUZJQVBJICpXSUZJX1BST0ZJTEVfR0VUKSgNCisgIElOIE9VVCAgV0lGSV9NR1JfTkVU V09SS19QUk9GSUxFICAqUHJvZmlsZSwNCisgIElOIE9VVCAgRUZJXzgwMjExX01BQ19BRERSRVNT ICAgICBNYWNBZGRyZXNzDQorICApOw0KKw0KKy8qKg0KKyAgU2F2ZXMgdGhlIFdpRmkgY29ubmVj dGlvbiBzdGF0dXMgcmVjaWV2ZWQgYnkgdGhlIA0KK1dpRmlDb25uZWN0aW9uTWFuYWdlciB3aGVu DQorICBpbiBhIEtWTSBPUiBPbmUgQ2xpY2sgUmVjb3ZlcnkgV0xBTiByZWNvdmVyeSBmbG93LiBJ bnB1dCBhcw0KKyAgRUZJXzgwMjExX0NPTk5FQ1RfTkVUV09SS19SRVNVTFRfQ09ERSB0aGVuIGNv bnZlcnRlZCBhbmQgc3RvcmVkIGFzIEVGSV9TVEFUVVMgdHlwZS4NCisNCisgIEBwYXJhbVtpbl0g Q29ubmVjdGlvblN0YXR1cyAgICAgV2lGaSBjb25uZWN0aW9uIGF0dGVtcHQgcmVzdWx0cw0KKyoq Lw0KK3R5cGVkZWYNCitWT0lEDQorKEVGSUFQSSAqV0lGSV9TRVRfQ09OTkVDVF9TVEFURSkoDQor ICBJTiAgRUZJXzgwMjExX0NPTk5FQ1RfTkVUV09SS19SRVNVTFRfQ09ERSBDb25uZWN0aW9uU3Rh dHVzDQorICApOw0KKw0KKy8qKg0KKyAgUmV0cmlldmVzIHRoZSBzdG9yZWQgV2lGaSBjb25uZWN0 aW9uIHN0YXR1cyB3aGVuIGluIGVpdGhlciBLVk0gT1IgT25lIA0KK0NsaWNrDQorICBSZWNvdmVy eSBXTEFOIHJlY292ZXJ5IGZsb3cuDQorDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAg ICAgICAgV2lGaSBjb25uZWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNmdWxseQ0KKyAgQHJldHZhbCBP dGhlcnMgICAgICAgICAgICAgICAgICAgIENvbm5lY3Rpb24gZmFpbHVyZSBvY2N1cnJlZA0KKyoq Lw0KK3R5cGVkZWYNCitFRklfU1RBVFVTDQorKEVGSUFQSSAqV0lGSV9HRVRfQ09OTkVDVF9TVEFU RSkoDQorICBWT0lEDQorICApOw0KKw0KKy8vDQorLy8gIFdpRmkgUHJvZmlsZSBTeW5jIFByb3Rv Y29sIHN0cnVjdHVyZS4NCisvLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAg ICAgICAgICAgICAgUmV2aXNpb247DQorICBXSUZJX1NFVF9DT05ORUNUX1NUQVRFICAgIFdpZmlQ cm9maWxlU3luY1NldENvbm5lY3RTdGF0ZTsNCisgIFdJRklfR0VUX0NPTk5FQ1RfU1RBVEUgICAg V2lmaVByb2ZpbGVTeW5jR2V0Q29ubmVjdFN0YXRlOw0KKyAgV0lGSV9QUk9GSUxFX0dFVCAgICAg ICAgICBXaWZpUHJvZmlsZVN5bmNHZXRQcm9maWxlOw0KK30gRUZJX1dJRklfUFJPRklMRV9TWU5D X1BST1RPQ09MOw0KKw0KKy8qKg0KKyAgV2lGaSBQcm9maWxlIFByb3RvY29sIHJldmlzaW9uIG51 bWJlci4NCisNCisgIFJldmlzaW9uIDE6ICAgSW5pdGlhbCB2ZXJzaW9uDQorKiovDQorI2RlZmlu ZSBFRklfV0lGSV9QUk9GSUxFX1NZTkNfUFJPVE9DT0xfUkVWSVNJT04gIDENCisNCisjZW5kaWYg Ly8gIFdJRklfUFJPRklMRV9TWU5DX1BST1RPQ09MX0hfDQpkaWZmIC0tZ2l0IGEvTmV0d29ya1Br Zy9OZXR3b3JrUGtnLmRlYyBiL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMgaW5kZXggNWU0M2Vi ZjhjNS4uNTNmYjM0YzRhMCAxMDA2NDQNCi0tLSBhL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMN CisrKyBiL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMNCkBAIC05MSw2ICs5MSw5IEBADQogICAj IyBJbmNsdWRlL1Byb3RvY29sL0h0dHBDYWxsYmFjay5oDQogICBnRWRraWlIdHRwQ2FsbGJhY2tQ cm90b2NvbEd1aWQgID0gezB4NjExMTE0ZjEsIDB4YTM3YiwgMHg0NDY4LCB7MHhhNCwgMHgzNiwg MHg1YiwgMHhkZCwgMHhhMSwgMHg2YSwgMHhhMiwgMHg0MH19DQogDQorICAjIyBJbmNsdWRlL1By b3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmgNCisgIGdFZmlXaUZpUHJvZmlsZVN5bmNQ cm90b2NvbEd1aWQgPSB7MHgzOTlhMmI4YSwgMHhjMjY3LCAweDQ0YWEsIHsweDlhLCANCisgMHhi NCwgMHgzMCwgMHg1OCwgMHg4YywgMHhkMiwgMHgyZCwgMHhjY319DQorDQogW1BjZHNGaXhlZEF0 QnVpbGRdDQogICAjIyBUaGUgbWF4IGF0dGVtcHQgbnVtYmVyIHdpbGwgYmUgY3JlYXRlZCBieSBp U0NTSSBkcml2ZXIuDQogICAjIEBQcm9tcHQgTWF4IGF0dGVtcHQgbnVtYmVyLg0KZGlmZiAtLWdp dCBhL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWFu YWdlckR4ZS5pbmYgYi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29u bmVjdGlvbk1hbmFnZXJEeGUuaW5mDQppbmRleCA0Mzk0YjZmNGJiLi43ZTM2MDE2Y2Y4IDEwMDY0 NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rp b25NYW5hZ2VyRHhlLmluZg0KKysrIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJE eGUvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlLmluZg0KQEAgLTksNyArOSw3IEBADQogIyAgMiku IFdQQTIgUGVyc29uYWwgTmV0d29yaw0KICMgIDMpLiBFQVAgTmV0d29ya3MgKEVBUC1UTFMsIEVB UC1UVExTL01TQ0hBUHYyIGFuZCBQRUFQdjAvTVNDSEFQdjIpICAjIC0jICBDb3B5cmlnaHQgKGMp IDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCisjICBD b3B5cmlnaHQgKGMpIDIwMTkgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyAN CityZXNlcnZlZC48QlI+DQogIw0KICMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50ICAjIEBAIC03MSw2ICs3MSw3IEBADQogICBnRWZpQWRhcHRlckluZm9ybWF0 aW9uUHJvdG9jb2xHdWlkICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQogICBnRWZp U3VwcGxpY2FudFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NP TlNVTUVTDQogICBnRWZpRWFwQ29uZmlndXJhdGlvblByb3RvY29sR3VpZCAgICAgICAgICAgICAg IyMgU09NRVRJTUVTX0NPTlNVTUVTDQorICBnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlk ICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQogDQogW0d1aWRzXQ0KICAgZ1dp ZmlDb25maWdHdWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTICAj IyBHVUlEDQpkaWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUv V2lmaUNvbm5lY3Rpb25NZ3JDb25maWdOVkRhdGFTdHJ1Y3QuaCBiL05ldHdvcmtQa2cvV2lmaUNv bm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyQ29uZmlnTlZEYXRhU3RydWN0LmgN CmluZGV4IGI1NTE4YTc0ZDguLmRjYzRiZjdlMjcgMTAwNjQ0DQotLS0gYS9OZXR3b3JrUGtnL1dp ZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckNvbmZpZ05WRGF0YVN0cnVj dC5oDQorKysgYi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVj dGlvbk1nckNvbmZpZ05WRGF0YVMNCisrKyB0cnVjdC5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0K ICNkZWZpbmUgUEFTU1dPUkRfTUlOX0xFTiAgICAgICA4DQogI2RlZmluZSBQQVNTV09SRF9NQVhf TEVOICAgICAgIDYzDQotI2RlZmluZSBQQVNTV09SRF9TVE9SQUdFX1NJWkUgIDY0DQorI2RlZmlu ZSBQQVNTV09SRF9TVE9SQUdFX1NJWkUgIDY1DQogDQogI2RlZmluZSBFQVBfSURFTlRJVFlfTEVO ICAgNjMNCiAjZGVmaW5lIEVBUF9JREVOVElUWV9TSVpFICA2NA0KZGlmZiAtLWdpdCBhL05ldHdv cmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHJpdmVyLmMg Yi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckRy aXZlci5jDQppbmRleCA2N2EwMWNhMDU4Li45N2NhN2E5ZjBiIDEwMDY0NA0KLS0tIGEvTmV0d29y a1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIuYw0K KysrIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25N Z3JEcml2ZXIuYw0KQEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQogICBUaGUgZHJpdmVyIGJp bmRpbmcgcHJvdG9jb2wgZm9yIHRoZSBXaUZpIENvbm5lY3Rpb24gTWFuYWdlci4NCiANCi0gIENv cHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KKyAgQ29weXJpZ2h0IChjKSAyMDE5IC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgDQorIHJlc2VydmVkLjxCUj4NCiANCiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogDQpAQCAtMzksNiArMzksMTEgQEAgRUZJX0dVSUQgIG1X aWZpQ29uZmlnTmV0d29ya0xpc3RSZWZyZXNoR3VpZCA9IFdJRklfQ09ORklHX05FVFdPUktfTElT VF9SRUZSRVNIX0cNCiBFRklfR1VJRCAgbVdpZmlDb25maWdDb25uZWN0Rm9ybVJlZnJlc2hHdWlk ID0gV0lGSV9DT05GSUdfQ09OTkVDVF9GT1JNX1JFRlJFU0hfR1VJRDsNCiBFRklfR1VJRCAgbVdp ZmlDb25maWdNYWluRm9ybVJlZnJlc2hHdWlkICAgID0gV0lGSV9DT05GSUdfTUFJTl9GT1JNX1JF RlJFU0hfR1VJRDsNCiANCisvLw0KKy8vIFdpZmkgY29ubmVjdGlvbiBhdHRlbXB0IGNvdW50ZXIg Zm9yIHJldHJpZXMgLy8gZXh0ZXJuIFVJTlQ4IA0KK21XaWZpQ29ubmVjdGlvbkNvdW50Ow0KKw0K IC8qKg0KICAgVGVzdHMgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIHN1cHBvcnRzIGEgZ2l2ZW4gY29u dHJvbGxlci4gSWYgYSBjaGlsZCBkZXZpY2UgaXMgcHJvdmlkZWQsDQogICBpdCBmdXJ0aGVyIHRl c3RzIHRvIHNlZSBpZiB0aGlzIGRyaXZlciBzdXBwb3J0cyBjcmVhdGluZyBhIGhhbmRsZSBmb3Ig dGhlIHNwZWNpZmllZCBjaGlsZCBkZXZpY2UuDQpAQCAtMTY3LDggKzE3MiwxMCBAQCBXaWZpTWdy RHhlRHJpdmVyQmluZGluZ1N0YXJ0ICgNCiAgIEVGSV9XSVJFTEVTU19NQUNfQ09OTkVDVElPTl9J SV9QUk9UT0NPTCAgKldtcDsNCiAgIEVGSV9TVVBQTElDQU5UX1BST1RPQ09MICAgICAgICAgICAg ICAgICAgKlN1cHBsaWNhbnQ7DQogICBFRklfRUFQX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICAg ICAgICAgICpFYXBDb25maWc7DQorICBFRklfV0lGSV9QUk9GSUxFX1NZTkNfUFJPVE9DT0wgICAg ICAgICAgICpXaUZpUHJvZmlsZVN5bmNQcm90b2NvbDsNCiANCi0gIE5pYyA9IE5VTEw7DQorICBt V2lmaUNvbm5lY3Rpb25Db3VudCA9IDA7DQorICBOaWMgICAgICAgICAgICAgICAgICA9IE5VTEw7 DQogDQogICAvLw0KICAgLy8gT3BlbiBQcm90b2NvbHMNCkBAIC0yMzYsNDcgKzI0Myw3MyBAQCBX aWZpTWdyRHhlRHJpdmVyQmluZGluZ1N0YXJ0ICgNCiAgIEluaXRpYWxpemVMaXN0SGVhZCAoJk5p Yy0+UHJvZmlsZUxpc3QpOw0KIA0KICAgLy8NCi0gIC8vIFJlY29yZCB0aGUgTUFDIGFkZHJlc3Mg b2YgdGhlIGluY29taW5nIE5JQy4NCisgIC8vIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIGlu c3RhbGxhdGlvbiBjaGVjayBmb3IgT1MgcmVjb3ZlcnkgZmxvdy4NCiAgIC8vDQotICBTdGF0dXMg PSBOZXRMaWJHZXRNYWNBZGRyZXNzICgNCi0gICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwN Ci0gICAgICAgICAgICAgKEVGSV9NQUNfQUREUkVTUyAqKSZOaWMtPk1hY0FkZHJlc3MsDQotICAg ICAgICAgICAgICZBZGRyZXNzU2l6ZQ0KLSAgICAgICAgICAgICApOw0KLSAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KLSAgICBnb3RvIEVSUk9SMjsNCi0gIH0NCi0NCi0gIC8vDQotICAvLyBD cmVhdGUgYW5kIHN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHN0YXR1cyBjaGVjaw0KLSAgLy8NCi0g IFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KLSAgICAgICAgICAgICAgICAgIEVWVF9OT1RJ RllfU0lHTkFMIHwgRVZUX1RJTUVSLA0KLSAgICAgICAgICAgICAgICAgIFRQTF9DQUxMQkFDSywN Ci0gICAgICAgICAgICAgICAgICBXaWZpTWdyT25UaW1lclRpY2ssDQotICAgICAgICAgICAgICAg ICAgTmljLA0KLSAgICAgICAgICAgICAgICAgICZOaWMtPlRpY2tUaW1lcg0KKyAgU3RhdHVzID0g Z0JTLT5Mb2NhdGVQcm90b2NvbCAoDQorICAgICAgICAgICAgICAgICAgJmdFZmlXaUZpUHJvZmls ZVN5bmNQcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAg ICAgICAgICAoVk9JRCAqKikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wNCiAgICAgICAgICAgICAg ICAgICApOw0KLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICBnb3RvIEVSUk9SMjsN Ci0gIH0NCisgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAgIE5pYy0+Q29ubmVjdFBl bmRpbmdOZXR3b3JrID0gKFdJRklfTUdSX05FVFdPUktfUFJPRklMRSAqKUFsbG9jYXRlWmVyb1Bv b2wgKHNpemVvZiAoV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFKSk7DQorICAgIGlmIChOaWMtPkNv bm5lY3RQZW5kaW5nTmV0d29yayA9PSBOVUxMKSB7DQorICAgICAgU3RhdHVzID0gRUZJX09VVF9P Rl9SRVNPVVJDRVM7DQorICAgICAgZ290byBFUlJPUjE7DQorICAgIH0NCiANCi0gIFN0YXR1cyA9 IGdCUy0+U2V0VGltZXIgKE5pYy0+VGlja1RpbWVyLCBUaW1lclBlcmlvZGljLCBFRklfVElNRVJf UEVSSU9EX01JTExJU0VDT05EUyAoNTAwKSk7DQotICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQotICAgIGdvdG8gRVJST1IzOw0KLSAgfQ0KKyAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+ V2lmaVByb2ZpbGVTeW5jR2V0UHJvZmlsZSAoTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmssIE5p Yy0+TWFjQWRkcmVzcyk7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAhPSBO VUxMKSB7DQorICAgICAgU3RhdHVzID0gV2lmaU1nckNvbm5lY3RUb05ldHdvcmsgKE5pYywgTmlj LT5Db25uZWN0UGVuZGluZ05ldHdvcmspOw0KKyAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCisgICAgICAgIFdpRmlQcm9maWxlU3luY1Byb3RvY29sLT5XaWZpUHJvZmlsZVN5bmNTZXRD b25uZWN0U3RhdGUgKFN0YXR1cyk7DQorICAgICAgfQ0KKyAgICB9IGVsc2Ugew0KKyAgICAgIGdv dG8gRVJST1IxOw0KKyAgICB9DQorICB9IGVsc2Ugew0KKyAgICAvLw0KKyAgICAvLyBSZWNvcmQg dGhlIE1BQyBhZGRyZXNzIG9mIHRoZSBpbmNvbWluZyBOSUMuDQorICAgIC8vDQorICAgIFN0YXR1 cyA9IE5ldExpYkdldE1hY0FkZHJlc3MgKA0KKyAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5k bGUsDQorICAgICAgICAgICAgICAgKEVGSV9NQUNfQUREUkVTUyAqKSZOaWMtPk1hY0FkZHJlc3Ms DQorICAgICAgICAgICAgICAgJkFkZHJlc3NTaXplDQorICAgICAgICAgICAgICAgKTsNCisgICAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgIGdvdG8gRVJST1IyOw0KKyAgICB9DQog DQotICBOaWMtPkNvbm5lY3RTdGF0ZSA9IFdpZmlNZ3JEaXNjb25uZWN0ZWQ7DQotICBOaWMtPlNj YW5TdGF0ZSAgICA9IFdpZmlNZ3JTY2FuRmluaXNoZWQ7DQorICAgIC8vDQorICAgIC8vIENyZWF0 ZSBhbmQgc3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgc3RhdHVzIGNoZWNrDQorICAgIC8vDQorICAg IFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KKyAgICAgICAgICAgICAgICAgICAgRVZUX05P VElGWV9TSUdOQUwgfCBFVlRfVElNRVIsDQorICAgICAgICAgICAgICAgICAgICBUUExfQ0FMTEJB Q0ssDQorICAgICAgICAgICAgICAgICAgICBXaWZpTWdyT25UaW1lclRpY2ssDQorICAgICAgICAg ICAgICAgICAgICBOaWMsDQorICAgICAgICAgICAgICAgICAgICAmTmljLT5UaWNrVGltZXINCisg ICAgICAgICAgICAgICAgICAgICk7DQorICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisg ICAgICBnb3RvIEVSUk9SMjsNCisgICAgfQ0KIA0KLSAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAo VFBMX0NBTExCQUNLKTsNCi0gIEluc2VydFRhaWxMaXN0ICgmbVByaXZhdGUtPk5pY0xpc3QsICZO aWMtPkxpbmspOw0KLSAgTmljLT5OaWNJbmRleCA9IG1Qcml2YXRlLT5OaWNDb3VudCsrOw0KLSAg aWYgKG1Qcml2YXRlLT5DdXJyZW50TmljID09IE5VTEwpIHsNCi0gICAgbVByaXZhdGUtPkN1cnJl bnROaWMgPSBOaWM7DQotICB9DQorICAgIFN0YXR1cyA9IGdCUy0+U2V0VGltZXIgKE5pYy0+VGlj a1RpbWVyLCBUaW1lclBlcmlvZGljLCBFRklfVElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoNTAw KSk7DQorICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgICBnb3RvIEVSUk9SMzsN CisgICAgfQ0KIA0KLSAgZ0JTLT5SZXN0b3JlVFBMIChPbGRUcGwpOw0KKyAgICBOaWMtPkNvbm5l Y3RTdGF0ZSA9IFdpZmlNZ3JEaXNjb25uZWN0ZWQ7DQorICAgIE5pYy0+U2NhblN0YXRlICAgID0g V2lmaU1nclNjYW5GaW5pc2hlZDsNCisNCisgICAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBM X0NBTExCQUNLKTsNCisgICAgSW5zZXJ0VGFpbExpc3QgKCZtUHJpdmF0ZS0+TmljTGlzdCwgJk5p Yy0+TGluayk7DQorICAgIE5pYy0+TmljSW5kZXggPSBtUHJpdmF0ZS0+TmljQ291bnQrKzsNCisg ICAgaWYgKG1Qcml2YXRlLT5DdXJyZW50TmljID09IE5VTEwpIHsNCisgICAgICBtUHJpdmF0ZS0+ Q3VycmVudE5pYyA9IE5pYzsNCisgICAgfQ0KKw0KKyAgICBnQlMtPlJlc3RvcmVUUEwgKE9sZFRw bCk7DQorICB9DQogDQogICBTdGF0dXMgPSBnQlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAo DQogICAgICAgICAgICAgICAgICAgJkNvbnRyb2xsZXJIYW5kbGUsDQpAQCAtMzg1LDEwICs0MTgs MTEgQEAgV2lmaU1nckR4ZURyaXZlckJpbmRpbmdTdG9wICgNCiAgIElOIEVGSV9IQU5ETEUgICAg ICAgICAgICAgICAgICAgKkNoaWxkSGFuZGxlQnVmZmVyIE9QVElPTkFMDQogICApDQogew0KLSAg RUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgU3RhdHVzOw0KLSAgRUZJX1RQTCAgICAgICAgICAg ICAgICAgICAgT2xkVHBsOw0KLSAgV0lGSV9NR1JfUFJJVkFURV9QUk9UT0NPTCAgKldpZmlNZ3JJ ZGVudGlmaWVyOw0KLSAgV0lGSV9NR1JfREVWSUNFX0RBVEEgICAgICAgKk5pYzsNCisgIEVGSV9T VEFUVVMgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1RQTCAgICAgICAgICAg ICAgICAgICAgICAgICBPbGRUcGw7DQorICBXSUZJX01HUl9QUklWQVRFX1BST1RPQ09MICAgICAg ICpXaWZpTWdySWRlbnRpZmllcjsNCisgIFdJRklfTUdSX0RFVklDRV9EQVRBICAgICAgICAgICAg Kk5pYzsNCisgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxlU3lu Y1Byb3RvY29sOw0KIA0KICAgU3RhdHVzID0gZ0JTLT5PcGVuUHJvdG9jb2wgKA0KICAgICAgICAg ICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQpAQCAtNDgxLDcgKzUxNSwxNSBAQCBXaWZpTWdy RHhlRHJpdmVyQmluZGluZ1N0b3AgKA0KICAgLy8NCiAgIE9sZFRwbCA9IGdCUy0+UmFpc2VUUEwg KFRQTF9DQUxMQkFDSyk7DQogDQotICBSZW1vdmVFbnRyeUxpc3QgKCZOaWMtPkxpbmspOw0KKyAg U3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQorICAgICAgICAgICAgICAgICAgJmdFZmlX aUZpUHJvZmlsZVN5bmNQcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisg ICAgICAgICAgICAgICAgICAoVk9JRCAqKikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wNCisgICAg ICAgICAgICAgICAgICApOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBSZW1v dmVFbnRyeUxpc3QgKCZOaWMtPkxpbmspOw0KKyAgfQ0KKw0KICAgbVByaXZhdGUtPk5pY0NvdW50 LS07DQogICBpZiAobVByaXZhdGUtPkN1cnJlbnROaWMgPT0gTmljKSB7DQogICAgIG1Qcml2YXRl LT5DdXJyZW50TmljID0gTlVMTDsNCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0 aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckR4ZS5oIGIvTmV0d29ya1BrZy9XaWZpQ29u bmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEeGUuaA0KaW5kZXggN2IyZTQxZTE1 NS4uMDQ3Zjg1ZGJjMiAxMDA2NDQNCi0tLSBhL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHhlLmgNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5l Y3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHhlLmgNCkBAIC00Nyw2ICs0Nyw3IEBA DQogI2luY2x1ZGUgPFByb3RvY29sL1NpbXBsZU5ldHdvcmsuaD4NCiAjaW5jbHVkZSA8UHJvdG9j b2wvU2ltcGxlRmlsZVN5c3RlbS5oPg0KICNpbmNsdWRlIDxQcm90b2NvbC9FYXBDb25maWd1cmF0 aW9uLmg+DQorI2luY2x1ZGUgPFByb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmg+DQog DQogLy8NCiAvLyBQcm9kdWNlZCBQcm90b2NvbHMNCkBAIC03Myw3ICs3NCw4IEBADQogLy8NCiAj ZGVmaW5lIFdJRklfTUdSX0RYRV9WRVJTSU9OICAweGINCiANCi0jZGVmaW5lIE9VSV9JRUVFXzgw MjExSSAgMHhBQzBGMDANCisjZGVmaW5lIE9VSV9JRUVFXzgwMjExSSAgICAgICAgICAgICAgMHhB QzBGMDANCisjZGVmaW5lIE1BWF9XSUZJX0NPTk5FVElPTl9BVFRFTVBUUyAgMw0KIA0KIHR5cGVk ZWYgZW51bSB7DQogICBJZWVlODAyMTFQYWlyd2lzZUNpcGhlclN1aXRlVXNlR3JvdXBDaXBoZXJT dWl0ZSA9IDAsIGRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4 ZS9XaWZpQ29ubmVjdGlvbk1nckltcGwuYyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdySW1wbC5jDQppbmRleCA1OWJhYzQ4YzQyLi5hNzNhYjlm NzEwIDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lm aUNvbm5lY3Rpb25NZ3JJbXBsLmMNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdySW1wbC5jDQpAQCAtMTksNiArMTksOCBAQCBFRklfRUFQ X1RZUEUgIG1FYXBTZWNvbmRBdXRoTWV0aG9kW10gPSB7DQogICBFRklfRUFQX1RZUEVfTVNDSEFQ VjINCiB9Ow0KIA0KK1VJTlQ4ICBtV2lmaUNvbm5lY3Rpb25Db3VudCA9IDA7DQorDQogLyoqDQog ICBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNjYW4gb3BlcmF0aW9uLiBUaGlzIGZ1bmN0aW9u IHVwZGF0ZXMgbmV0d29ya3MNCiAgIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0IHNjYW4gcmVzdWx0 LCBhbmQgdHJpZ2dlciBVSSByZWZyZXNoLg0KQEAgLTQyNCwxOCArNDI2LDI2IEBAIFdpZmlNZ3JD b25maWdQYXNzd29yZCAoDQogICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KICAgfQ0KIA0KLSAg QXNjaWlQYXNzd29yZCA9IEFsbG9jYXRlWmVyb1Bvb2wgKChTdHJMZW4gKFByb2ZpbGUtPlBhc3N3 b3JkKSArIDEpICogc2l6ZW9mIChVSU5UOCkpOw0KKyAgaWYgKFN0ckxlbiAoUHJvZmlsZS0+UGFz c3dvcmQpID49IFBBU1NXT1JEX1NUT1JBR0VfU0laRSkgew0KKyAgICBBU1NFUlQgKEVGSV9JTlZB TElEX1BBUkFNRVRFUik7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9 DQorDQorICBBc2NpaVBhc3N3b3JkID0gQWxsb2NhdGVaZXJvUG9vbCAoKFN0ckxlbiAoUHJvZmls ZS0+UGFzc3dvcmQpICsgMSkgKiANCisgc2l6ZW9mIChDSEFSOCkpOw0KICAgaWYgKEFzY2lpUGFz c3dvcmQgPT0gTlVMTCkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9 DQogDQotICBVbmljb2RlU3RyVG9Bc2NpaVN0clMgKFByb2ZpbGUtPlBhc3N3b3JkLCAoQ0hBUjgg KilBc2NpaVBhc3N3b3JkLCBQQVNTV09SRF9TVE9SQUdFX1NJWkUpOw0KLSAgU3RhdHVzID0gU3Vw cGxpY2FudC0+U2V0RGF0YSAoDQotICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBsaWNhbnQs DQotICAgICAgICAgICAgICAgICAgICAgICAgIEVmaVN1cHBsaWNhbnQ4MDIxMVBza1Bhc3N3b3Jk LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICBBc2NpaVBhc3N3b3JkLA0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAoU3RyTGVuIChQcm9maWxlLT5QYXNzd29yZCkgKyAxKSAqIHNpemVvZiAo VUlOVDgpDQotICAgICAgICAgICAgICAgICAgICAgICAgICk7DQorICBTdGF0dXMgPSBVbmljb2Rl U3RyVG9Bc2NpaVN0clMgKFByb2ZpbGUtPlBhc3N3b3JkLCAoQ0hBUjggDQorICopQXNjaWlQYXNz d29yZCwgKFN0ckxlbiAoUHJvZmlsZS0+UGFzc3dvcmQpICsgMSkpOyAgaWYgKCFFRklfRVJST1Ig KFN0YXR1cykpIHsNCisgICAgU3RhdHVzID0gU3VwcGxpY2FudC0+U2V0RGF0YSAoDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3VwcGxpY2FudCwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBFZmlTdXBwbGljYW50ODAyMTFQc2tQYXNzd29yZCwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBBc2NpaVBhc3N3b3JkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJM ZW4gKFByb2ZpbGUtPlBhc3N3b3JkKSArIDEpICogc2l6ZW9mIChDSEFSOCkNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICApOw0KKyAgfQ0KKw0KICAgWmVyb01lbSAoQXNjaWlQYXNzd29yZCwg QXNjaWlTdHJMZW4gKChDSEFSOCAqKUFzY2lpUGFzc3dvcmQpICsgMSk7DQogICBGcmVlUG9vbCAo QXNjaWlQYXNzd29yZCk7DQogDQpAQCAtNDY2LDYgKzQ3Niw3IEBAIFdpZmlNZ3JDb25maWdFYXAg KA0KICAgKQ0KIHsNCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0K KyAgRUZJX1dJRklfUFJPRklMRV9TWU5DX1BST1RPQ09MICAqV2lGaVByb2ZpbGVTeW5jUHJvdG9j b2w7DQogICBFRklfRUFQX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICpFYXBDb25maWc7DQogICBF RklfRUFQX1RZUEUgICAgICAgICAgICAgICAgICAgIEVhcEF1dGhNZXRob2Q7DQogICBFRklfRUFQ X1RZUEUgICAgICAgICAgICAgICAgICAgIEVhcFNlY29uZEF1dGhNZXRob2Q7DQpAQCAtNTY3LDcg KzU3OCwxMyBAQCBXaWZpTWdyQ29uZmlnRWFwICgNCiAgICAgICByZXR1cm4gRUZJX09VVF9PRl9S RVNPVVJDRVM7DQogICAgIH0NCiANCi0gICAgVW5pY29kZVN0clRvQXNjaWlTdHJTIChQcm9maWxl LT5FYXBJZGVudGl0eSwgSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAgIFN0YXR1cyA9IGdC Uy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkLCBOVUxM LCAoVk9JRCAqKikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wpOw0KKyAgICBpZiAoIUVGSV9FUlJP UiAoU3RhdHVzKSkgew0KKyAgICAgIENvcHlNZW0gKElkZW50aXR5LCAmUHJvZmlsZS0+RWFwSWRl bnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAgIH0gZWxzZSB7DQorICAgICAgVW5pY29kZVN0clRv QXNjaWlTdHJTIChQcm9maWxlLT5FYXBJZGVudGl0eSwgSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7 DQorICAgIH0NCisNCiAgICAgU3RhdHVzID0gRWFwQ29uZmlnLT5TZXREYXRhICgNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVhcENvbmZpZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAg IEVGSV9FQVBfVFlQRV9JREVOVElUWSwgQEAgLTg5Miw2ICs5MDksMTMzIEBAIFdpZmlNZ3JQcmVw YXJlQ29ubmVjdGlvbiAoDQogICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogfQ0KIA0KKy8qKg0KKyAg V2lsbCByZXNldCBOaUMgZGF0YSwgZ2V0IHByb2ZpbGUgZnJvbSBwcm9maWxlIHN5bmMgZHJpdmVy LCBhbmQgc2VuZCANCitmb3INCisgIGFub3RoZXIgY29ubmVjdGlvbiBhdHRlbXB0LlRoaXMgZnVu Y3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgbW9yZSANCit0aGFuDQorICAzIHRpbWVzLg0KKw0K KyAgQHBhcmFtW2luXSAgV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wgIFRoZSB0YXJnZXQgbmV0d29y ayBwcm9maWxlIHRvIGNvbm5lY3QuDQorDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAg ICAgICAgICAgVGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQuDQorICBAcmV0dmFsIG90aGVyICAg ICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uIGZhaWx1cmUuDQorDQorKiovDQorRUZJX1NU QVRVUw0KK0Nvbm5lY3Rpb25SZXRyeSAoDQorICBJTiAgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19Q Uk9UT0NPTCAgKldpRmlQcm9maWxlU3luY1Byb3RvY29sDQorICApDQorew0KKyAgRUZJX1NUQVRV UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQorICBXSUZJX01HUl9ERVZJ Q0VfREFUQSAgICAgICAgICAgICAgICAgICAgICpOaWM7DQorICBFRklfV0lSRUxFU1NfTUFDX0NP Tk5FQ1RJT05fSUlfUFJPVE9DT0wgICpXbXA7DQorICBFRklfU1VQUExJQ0FOVF9QUk9UT0NPTCAg ICAgICAgICAgICAgICAgICpTdXBwbGljYW50Ow0KKyAgRUZJX0VBUF9DT05GSUdVUkFUSU9OX1BS T1RPQ09MICAgICAgICAgICAqRWFwQ29uZmlnOw0KKw0KKyAgTmljID0gTlVMTDsNCisNCisgIFN0 YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKA0KKyAgICAgICAgICAgICAgICAgICZnRWZpV2lG aTJQcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAg ICAgICAoVk9JRCAqKikmV21wDQorICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCisgICAgcmV0dXJuIFN0YXR1czsNCisgIH0NCisNCisgIFN0YXR1cyA9 IGdCUy0+TG9jYXRlUHJvdG9jb2wgKA0KKyAgICAgICAgICAgICAgICAgICZnRWZpU3VwcGxpY2Fu dFByb3RvY29sR3VpZCwNCisgICAgICAgICAgICAgICAgICBOVUxMLA0KKyAgICAgICAgICAgICAg ICAgIChWT0lEICoqKSZTdXBwbGljYW50DQorICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgU3VwcGxpY2FudCA9IE5VTEw7DQorICB9DQorDQor ICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgNCisgICAgICAgICAgICAgICAgICAmZ0Vm aUVhcENvbmZpZ3VyYXRpb25Qcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwN CisgICAgICAgICAgICAgICAgICAoVk9JRCAqKikmRWFwQ29uZmlnDQorICAgICAgICAgICAgICAg ICAgKTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgRWFwQ29uZmlnID0gTlVM TDsNCisgIH0NCisNCisgIC8vDQorICAvLyBJbml0aWFsaXplIE5pYyBkZXZpY2UgZGF0YQ0KKyAg Ly8NCisgIE5pYyA9IEFsbG9jYXRlWmVyb1Bvb2wgKHNpemVvZiAoV0lGSV9NR1JfREVWSUNFX0RB VEEpKTsgIGlmIChOaWMgPT0NCisgTlVMTCkgew0KKyAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JF U09VUkNFUzsNCisgICAgcmV0dXJuIFN0YXR1czsNCisgIH0NCisNCisgIE5pYy0+U2lnbmF0dXJl ICAgICAgICAgICA9IFdJRklfTUdSX0RFVklDRV9EQVRBX1NJR05BVFVSRTsNCisgIE5pYy0+UHJp dmF0ZSAgICAgICAgICAgICA9IG1Qcml2YXRlOw0KKyAgTmljLT5XbXAgICAgICAgICAgICAgICAg ID0gV21wOw0KKyAgTmljLT5TdXBwbGljYW50ICAgICAgICAgID0gU3VwcGxpY2FudDsNCisgIE5p Yy0+RWFwQ29uZmlnICAgICAgICAgICA9IEVhcENvbmZpZzsNCisgIE5pYy0+VXNlclNlbGVjdGVk UHJvZmlsZSA9IE5VTEw7DQorICBOaWMtPk9uZVRpbWVTY2FuUmVxdWVzdCAgPSBGQUxTRTsNCisN CisgIGlmIChOaWMtPlN1cHBsaWNhbnQgIT0gTlVMTCkgew0KKyAgICBTdGF0dXMgPSBXaWZpTWdy R2V0U3VwcG9ydGVkU3VpdGVzIChOaWMpOyAgfQ0KKw0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1 cykpIHsNCisgICAgSW5pdGlhbGl6ZUxpc3RIZWFkICgmTmljLT5Qcm9maWxlTGlzdCk7DQorDQor ICAgIE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrID0gKFdJRklfTUdSX05FVFdPUktfUFJPRklM RSAqKUFsbG9jYXRlWmVyb1Bvb2wgKHNpemVvZiAoV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFKSk7 DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayA9PSBOVUxMKSB7DQorICAgICAg U3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQorICAgICAgREVCVUcgKChERUJVR19FUlJP UiwgIltXaUZpIENvbm5lY3Rpb24gTWFuYWdlcl0gRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBm b3IgQ29ubmVjdFBlbmRpbmdOZXR3b3JrXG4iKSk7DQorICAgICAgZ290byBFUlJPUjsNCisgICAg fQ0KKw0KKyAgICBTdGF0dXMgPSBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVT eW5jR2V0UHJvZmlsZSAoTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmssIE5pYy0+TWFjQWRkcmVz cyk7DQorICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpICYmIChOaWMtPkNvbm5lY3RQZW5kaW5n TmV0d29yayAhPSBOVUxMKSkgew0KKyAgICAgIFN0YXR1cyA9IFdpZmlNZ3JDb25uZWN0VG9OZXR3 b3JrIChOaWMsIE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrKTsNCisgICAgICBpZiAoIUVGSV9F UlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCisgICAgICB9DQorICAg IH0gZWxzZSB7DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltXaUZpIENvbm5lY3Rpb24g TWFuYWdlcl0gRmFpbGVkIHRvIGdldCBXaUZpIHByb2ZpbGUgd2l0aCBzdGF0dXMgJXJcbiIsIFN0 YXR1cykpOw0KKyAgICB9DQorICB9IGVsc2Ugew0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAi W1dpRmkgQ29ubmVjdGlvbiBNYW5hZ2VyXSBGYWlsZWQgdG8gZ2V0IA0KKyBTdXBwb3J0ZWQgc3Vp dGVzIHdpdGggc3RhdHVzICVyXG4iLCBTdGF0dXMpKTsgIH0NCisNCisgIGlmIChOaWMtPkNvbm5l Y3RQZW5kaW5nTmV0d29yayAhPSBOVUxMKSB7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5n TmV0d29yay0+TmV0d29yay5BS01TdWl0ZSAhPSBOVUxMKSB7DQorICAgICAgRnJlZVBvb2wgKE5p Yy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrLT5OZXR3b3JrLkFLTVN1aXRlKTsNCisgICAgfQ0KKw0K KyAgICBpZiAoTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmstPk5ldHdvcmsuQ2lwaGVyU3VpdGUg IT0gTlVMTCkgew0KKyAgICAgIEZyZWVQb29sIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yay0+ TmV0d29yay5DaXBoZXJTdWl0ZSk7DQorICAgIH0NCisNCisgICAgRnJlZVBvb2wgKE5pYy0+Q29u bmVjdFBlbmRpbmdOZXR3b3JrKTsgIH0NCisNCitFUlJPUjoNCisgIGlmIChOaWMtPlN1cHBsaWNh bnQgIT0gTlVMTCkgew0KKyAgICBpZiAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkQUtN U3VpdGVzICE9IE5VTEwpIHsNCisgICAgICBGcmVlUG9vbCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMu U3VwcG9ydGVkQUtNU3VpdGVzKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoTmljLT5TdXBwb3J0ZWRT dWl0ZXMuU3VwcG9ydGVkU3dDaXBoZXJTdWl0ZXMgIT0gTlVMTCkgew0KKyAgICAgIEZyZWVQb29s IChOaWMtPlN1cHBvcnRlZFN1aXRlcy5TdXBwb3J0ZWRTd0NpcGhlclN1aXRlcyk7DQorICAgIH0N CisNCisgICAgaWYgKE5pYy0+U3VwcG9ydGVkU3VpdGVzLlN1cHBvcnRlZEh3Q2lwaGVyU3VpdGVz ICE9IE5VTEwpIHsNCisgICAgICBGcmVlUG9vbCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9y dGVkSHdDaXBoZXJTdWl0ZXMpOw0KKyAgICB9DQorICB9DQorDQorICBGcmVlUG9vbCAoTmljKTsN CisNCisgIHJldHVybiBTdGF0dXM7DQorfQ0KKw0KIC8qKg0KICAgVGhlIGNhbGxiYWNrIGZ1bmN0 aW9uIGZvciBjb25uZWN0IG9wZXJhdGlvbi4NCiANCkBAIC05MDgsMTIgKzEwNTIsMTMgQEAgV2lm aU1nck9uQ29ubmVjdEZpbmlzaGVkICgNCiAgIElOICBWT0lEICAgICAgICpDb250ZXh0DQogICAp DQogew0KLSAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgU3RhdHVzOw0KLSAgV0lGSV9NR1Jf TUFDX0NPTkZJR19UT0tFTiAgKkNvbmZpZ1Rva2VuOw0KLSAgV0lGSV9NR1JfTkVUV09SS19QUk9G SUxFICAgKkNvbm5lY3RlZFByb2ZpbGU7DQotICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICBT ZWN1cml0eVR5cGU7DQotICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICBTU0lkTGVuOw0KLSAg Q0hBUjggICAgICAgICAgICAgICAgICAgICAgKkFzY2lpU1NJZDsNCisgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgV0lGSV9NR1JfTUFDX0NPTkZJR19UT0tFTiAg ICAgICAqQ29uZmlnVG9rZW47DQorICBXSUZJX01HUl9ORVRXT1JLX1BST0ZJTEUgICAgICAgICpD b25uZWN0ZWRQcm9maWxlOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1 cml0eVR5cGU7DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTSWRMZW47DQor ICBDSEFSOCAgICAgICAgICAgICAgICAgICAgICAgICAgICpBc2NpaVNTSWQ7DQorICBFRklfV0lG SV9QUk9GSUxFX1NZTkNfUFJPVE9DT0wgICpXaUZpUHJvZmlsZVN5bmNQcm90b2NvbDsNCiANCiAg IEFTU0VSVCAoQ29udGV4dCAhPSBOVUxMKTsNCiANCkBAIC05MjUsNiArMTA3MCwyNCBAQCBXaWZp TWdyT25Db25uZWN0RmluaXNoZWQgKA0KICAgQVNTRVJUIChDb25maWdUb2tlbi0+VHlwZSA9PSBU b2tlblR5cGVDb25uZWN0TmV0d29ya1Rva2VuKTsNCiANCiAgIEFTU0VSVCAoQ29uZmlnVG9rZW4t PlRva2VuLkNvbm5lY3ROZXR3b3JrVG9rZW4gIT0gTlVMTCk7DQorDQorICBTdGF0dXMgPSBnQlMt PkxvY2F0ZVByb3RvY29sICgmZ0VmaVdpRmlQcm9maWxlU3luY1Byb3RvY29sR3VpZCwgTlVMTCwg DQorIChWT0lEICoqKSZXaUZpUHJvZmlsZVN5bmNQcm90b2NvbCk7ICBpZiAoIUVGSV9FUlJPUiAo U3RhdHVzKSkgew0KKyAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5j U2V0Q29ubmVjdFN0YXRlIChDb25maWdUb2tlbi0+VG9rZW4uQ29ubmVjdE5ldHdvcmtUb2tlbi0+ UmVzdWx0Q29kZSk7DQorICAgIGlmICgobVdpZmlDb25uZWN0aW9uQ291bnQgPCBNQVhfV0lGSV9D T05ORVRJT05fQVRURU1QVFMpICYmDQorICAgICAgICAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5l Y3ROZXR3b3JrVG9rZW4tPlJlc3VsdENvZGUgIT0gQ29ubmVjdFN1Y2Nlc3MpKQ0KKyAgICB7DQor ICAgICAgbVdpZmlDb25uZWN0aW9uQ291bnQrKzsNCisgICAgICBnQlMtPkNsb3NlRXZlbnQgKEV2 ZW50KTsNCisgICAgICBTdGF0dXMgPSBDb25uZWN0aW9uUmV0cnkgKFdpRmlQcm9maWxlU3luY1By b3RvY29sKTsNCisgICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAgcmV0 dXJuOw0KKyAgICAgIH0NCisNCisgICAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVBy b2ZpbGVTeW5jU2V0Q29ubmVjdFN0YXRlIChTdGF0dXMpOw0KKyAgICB9DQorICB9DQorDQogICBp ZiAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5lY3ROZXR3b3JrVG9rZW4tPlN0YXR1cyAhPSBFRklf U1VDQ0VTUykgew0KICAgICBpZiAoQ29uZmlnVG9rZW4tPk5pYy0+T25lVGltZUNvbm5lY3RSZXF1 ZXN0KSB7DQogICAgICAgLy8NCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9u TWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nck1pc2MuYyBiL05ldHdvcmtQa2cvV2lmaUNvbm5l Y3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyTWlzYy5jDQppbmRleCA0YWQ1NjQzYzI0 Li44N2FkZmM1MDMzIDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFn ZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JNaXNjLmMNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5l Y3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyTWlzYy5jDQpAQCAtNjcyLDEwICs2NzIs MjMgQEAgV2lmaU1nckNsZWFuUHJvZmlsZVNlY3JldHMgKA0KICAgSU4gIFdJRklfTUdSX05FVFdP UktfUFJPRklMRSAgKlByb2ZpbGUNCiAgICkNCiB7DQorICBFRklfU1RBVFVTICAgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCisgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldp RmlQcm9maWxlU3luY1Byb3RvY29sOw0KKw0KICAgWmVyb01lbSAoUHJvZmlsZS0+UGFzc3dvcmQs IHNpemVvZiAoQ0hBUjE2KSAqIFBBU1NXT1JEX1NUT1JBR0VfU0laRSk7DQogICBaZXJvTWVtIChQ cm9maWxlLT5FYXBQYXNzd29yZCwgc2l6ZW9mIChDSEFSMTYpICogUEFTU1dPUkRfU1RPUkFHRV9T SVpFKTsNCiAgIFplcm9NZW0gKFByb2ZpbGUtPlByaXZhdGVLZXlQYXNzd29yZCwgc2l6ZW9mIChD SEFSMTYpICogUEFTU1dPUkRfU1RPUkFHRV9TSVpFKTsNCiANCisgIC8vDQorICAvLyAgV2hlbiBF RkkgV2lGaSBwcm9maWxlIHN5bmMgcHJvdG9jb2wgaXMgZm91bmQgdGhlIHN5c3RlbSBpcyANCisg cGVyZm9ybWluZyBhIHJlY292ZXJ5IGJvb3QgaW4gc2VjdXJlICAvLyAgYm9vdCBtb2RlLiBUaGUg cHJvZmlsZSBzeW5jIA0KKyBkcml2ZXIgd2lsbCBtYW5hZ2UgdGhlIENBIGNlcnRpZmljYXRlLCBj bGllbnQgY2VydGlmaWNhdGUsIGFuZCBrZXkgIC8vICBkYXRhLCBjbGVhbmluZyB0aGVtIGF0IGV4 aXQgYm9vdCBzZXJ2aWNlcy4NCisgIC8vDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29s ICgmZ0VmaVdpRmlQcm9maWxlU3luY1Byb3RvY29sR3VpZCwgTlVMTCwgDQorIChWT0lEICoqKSZX aUZpUHJvZmlsZVN5bmNQcm90b2NvbCk7ICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAg ICByZXR1cm47DQorICB9DQorDQogICBpZiAoUHJvZmlsZS0+Q0FDZXJ0RGF0YSAhPSBOVUxMKSB7 DQogICAgIFplcm9NZW0gKFByb2ZpbGUtPkNBQ2VydERhdGEsIFByb2ZpbGUtPkNBQ2VydFNpemUp Ow0KICAgICBGcmVlUG9vbCAoUHJvZmlsZS0+Q0FDZXJ0RGF0YSk7DQotLQ0KMi4zNy4zLndpbmRv d3MuMQ0KDQoNCg0KDQoNCg0K