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.web09.8100.1667404684400254705 for ; Wed, 02 Nov 2022 08:58:04 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=lY2f7iCY; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: zachary.clark-williams@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667404684; x=1698940684; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Yocqd0ENPyc04waAWZX7Y7Lbax05t4jLQvfcDQC0ZEI=; b=lY2f7iCYg5sY7w346xiiDP//eyxdCb4ysDaQKIynUjXEOZ5DlkBa6Ps0 3OvMegGypioijcOw0SfeJ7t/EGr5mP0x8+H5BodXLQ9y56JkDRQy54hei AgiC4y1bn6P5pKEHdyxNngIvnkN/aoRu4jRH0SUekH13tYsZaimpqpL3d m44xRz3Vl9zgmKZSLeXArqDoEW8RL2ROi8AczpXOSk2iEtLjqDaVX6eSe bP+e5Ze2hhLzhzq4Jnn6ZqdvaNFIjx0IYwLBYwvC2wdT81G5Axx5tqnG9 vJWpNhlf90L7iw/FrdgLZ8VPoTuAYikWIZkRw82FeEa8BERFY3Zh3+3XO Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="289159818" X-IronPort-AV: E=Sophos;i="5.95,234,1661842800"; d="scan'208";a="289159818" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 08:58:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="703320590" X-IronPort-AV: E=Sophos;i="5.95,234,1661842800"; d="scan'208";a="703320590" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga004.fm.intel.com with ESMTP; 02 Nov 2022 08:58:03 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 2 Nov 2022 08:58:03 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 2 Nov 2022 08:58:03 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 2 Nov 2022 08:58:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iaLCZQX+8wZub2oV352dDSwRMgNnW0GRiqbMcccYju4Ap8I9pJeLMiljIjfhEx6kmxit9v13md81TVQ4HVRzpbVjLA2Si9SpKUgGPWn8UP+DU6hYkJ0MKyMleJhjecPnlZqzLkX8tkzVdmZZVYCqjsbLfy/feAWT1Qjo7v6ybgK/LTSkNyFfDTbVA1x+4sbYUK53Vh1zyqtwKghk+H8SPRnLWkRZVHIi1I2qqZVD93JS8YcPQ0aGetLHs8WcuPtGA0NBl6eswXgRVH6aQnqfH4jINZimBq3irvcZRS0Da59Vw5jt5616IUVYbVpueDR/AwrE8V/WGUtenfMc05cncA== 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=Yocqd0ENPyc04waAWZX7Y7Lbax05t4jLQvfcDQC0ZEI=; b=HODy3+OArdj0XFdrlyZiJn5zNVFifhD3zzK6CdpnsspObC3dVpoqvhcvmOPsyhbL1KNuqaOC2cSD6rT8WTJTFo4n53me72yjFdMIcFEjbIpH5H721tkcW0axMBIYEEcH4T/mm+qOztyEY65fLXfOXQ31rFhdxuR5a+Q1GKCcTqC0usWKTLHTIOOjCGoZFB6I5G8zw0rGVq+aK5OlI9IBfSC5xTfNAtoMVM+ohHqoi8A1raad2s85VLDgj1SNdfKEJEAtfmde3SJbDeF23L62XgF9uCeFlmqTVOsmUWwGkVLLGE/TqAtnFGofRiCVOovuolOS+XGZGjpCkw180tF9cA== 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 CO6PR11MB5601.namprd11.prod.outlook.com (2603:10b6:303:13d::7) by CH0PR11MB5299.namprd11.prod.outlook.com (2603:10b6:610:be::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.21; Wed, 2 Nov 2022 15:57:59 +0000 Received: from CO6PR11MB5601.namprd11.prod.outlook.com ([fe80::f060:2583:1c93:13c7]) by CO6PR11MB5601.namprd11.prod.outlook.com ([fe80::f060:2583:1c93:13c7%3]) with mapi id 15.20.5769.016; Wed, 2 Nov 2022 15:57:59 +0000 From: "Clark-williams, Zachary" To: "Rabeda, Maciej" , "Zimmer, Vincent" , "Luo, Heng" , "Kuo, Scottie" , "Kuo, Ted" , "Dutkiewicz, Michal" , "devel@edk2.groups.io" , "Wu, Jiaxin" , "Otcheretianski, Andrei" , "Kasbekar, Saloni" , "Kinney, Michael D" CC: "Alappat, Paul" , "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: AQHY6jr1YBx+4nENxEWJqUx5LJQFoa4iq1aAgAGR5jCAAADHwIAEq9RQgAAdggCAAVFMoIAABJAAgAAAR5CAAT0igIAAN+Mw Date: Wed, 2 Nov 2022 15:57:59 +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-reaction: no-action dlp-version: 11.6.500.17 dlp-product: dlpe-windows 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: CO6PR11MB5601:EE_|CH0PR11MB5299:EE_ x-ms-office365-filtering-correlation-id: 8af3ec83-8636-4bdb-ec5c-08dabceb03fe x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FB/AjnBx14wY5bYeSX59ZR0S6zazK6O0IUBJbBH2n2nONhMQLp5N3jZ67DFTuW77Nj26tOMs1dLmdeVc1fDkSRSHDLOg6tmeAyfENGP8dZ26e0UDY3Awsc/u5MVbwoKeRPrrkVv1dVZ5S2E+KfFIMhI7Jb6AMk3loHIvQxwAlM9lIdvh3DfA97hhN5W/DXp8kuG4T9kNBJO0PgOwlU44+jOhGPbaQhWCix2X6RRKO8OPn2GLKAzk+JJTRpNV4syLXhowc988xEbNlj6clJpq3WufgO1Irt5AyFePQHhChlEk3vapyC38uWYYr5TI9cu3QugXJKaGSLCB4ZInIKS2uHcQ+SZ09NglffDx8C5pvzWVRphg4yJqrb+tq9E/NUVViv6Ptwri6B5LzuPf/5qEbS+pWltUtoidL2auhBdoXQfKHKpFUzWd7ybci4X+zW4F8UtIjZpj/GW5mtKb4zrbZFHuaFhHoa5QV6JYxAVOqiOc1J+2bJ9l5u+1IC+P9b+GJ+0FqM3esGiWIZUa3iLa8NZH33JKQZJumTEWUtRYU6MyY5JdPudetae2e2pe/vq5g3Kdq6+t/1EyQt68a6e03goRibBBcLBFeLvWWY8XRToW43aDmdUIE9JVAZnAoleqhyPv3ya5ckUqZx670ampNUK12rVaF8sPUsUgviYPDvyogiQIP62rLnS5+YVSCy7E0Y30NS9dXYzoX0IwXQXQlTouFTFjjN9K9yP2EcF6ANVc5MdhG5EtJUCEvNQL6rz6vT09MUDRCOdLgf89cCGsC2yDs3D50Va4wJUEljJ7sNsoEAOm5bQJSPUP+JpYv53YoWmTFIvxFZhcImdl1KSwc4v6ixIKHM3ZFuiOTqLpsn+oLGCR5FxQkHEFrdTvbgW1 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5601.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(6029001)(396003)(366004)(39860400002)(376002)(346002)(136003)(451199015)(9686003)(186003)(966005)(19627235002)(478600001)(6506007)(7696005)(2906002)(53546011)(26005)(30864003)(83380400001)(122000001)(55016003)(6636002)(316002)(76116006)(54906003)(107886003)(71200400001)(66446008)(8676002)(8936002)(52536014)(66476007)(66556008)(64756008)(66946007)(4326008)(5660300002)(41300700001)(110136005)(66899015)(38070700005)(86362001)(38100700002)(33656002)(921005)(82960400001)(579004)(559001)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cEE2R2c1WHBmY0tib0M0ZFVMQmJoaUpPa3lzcmE5MTJWbGgyMllzZWtmYUpr?= =?utf-8?B?bjVhTTlKZkZDamx3bmdyTGs1b24vb1pEOGdTMVhqUXVSbFpHNGU5VzhVNHVl?= =?utf-8?B?Tml0Z2hMZ0k2SzdQaXFEOE9oOHd0MHZ2V3RPVnBhV25NRDllSTJIaGlJS1pX?= =?utf-8?B?Tm1wZWVyUC9XZmVUcTVydE56UFlXeXp4djNLQzhEM0ZRNTVTYVF2dlFDYkc2?= =?utf-8?B?dTBKciszT0pZYWlrNkJuR0lSdktKVlE2ZS9HOHczWnJxbW1MQllZblFIOXFL?= =?utf-8?B?WEJkVzRCbndzQmV0aE4vMHJ6MzZzYWZuc0pKTTJQZmY2MFBHamwwS1htR21Z?= =?utf-8?B?SXkwVW9NYWlkUXQxVVg3R3pDQ1A2WU9tbHMzeDlkTEFIZkQvWHFOUFdEVEdu?= =?utf-8?B?VldIcXorSHRmUExtTGUxNm42RDk5ZnRkRW9DK2dLSFdkbWRlTS9HOUxUU0hC?= =?utf-8?B?U1BMSzMzOWZGcXBGK0RzakZIS1pDVk9hc01zVk1Sb3NXQkVwaFozK2wyUlE0?= =?utf-8?B?UW1GRW93WEY5d0J1YzZyNG5kU3ZrRmwzMzhiR2MvMllRVUxFNVlJcXBidWVR?= =?utf-8?B?a0p1QzJ3TXZ2cWpvR04zNWxhUEwxMEhBdlhvWG04S1BlR1hKVjg4R1U5Qk5i?= =?utf-8?B?L0ZNd3BXMGNubmY2eStNRmR0WjVWaWRQWmw4TElFVG16RGMzTE1NMWc0Tzho?= =?utf-8?B?R3JHblVaOC9iQlJVaW9LQUpXZGdkOFZGYUJ6OVhnMnArVitkTFpkOVVySG1y?= =?utf-8?B?Qy9QV0hHUDhlM0U3d1NLdzVYSmMraDVBeFNxVThDZHN2M08rUGhSUGpWeXBE?= =?utf-8?B?R0RWMk96L1Bpb2M2ZVBwQjB1a29WRUJpM2FQLzRUODF5bkYzWVNhOHN4aWhZ?= =?utf-8?B?amV0ZWhNVDYxV1I3dGh5d0liaFRGbkJpTzRkOHZQeGFIa2ZBZXl0d3g5Zzky?= =?utf-8?B?ekR2TkFGNDZzLzg4WUNuVklTWkVMem9TVGRNOXVsR2hkTXhDUksrZ0ZFeHRw?= =?utf-8?B?cCtxMldsTjEwRlc3d2VTOEdnZnNEdzB2UytjVHFRQkQ3S3Rya2tjcGZrNkpw?= =?utf-8?B?bUpKeitUUEFoQ0FBV2dhZXZUQTZOeWVPZGtJZmdQcU5MZnVrYXhDdVVBOWlB?= =?utf-8?B?UElNelZsVE1NNGdLK2xBT3VEMmhlTjZIT0poeUhlcG1uMVk4L3hRcG1Ha1JD?= =?utf-8?B?bDV2NURHaUtjRFQ2eStXL2JJNXhoRTRNRVpyQytiTnVLSDNhV2JqUy94bm1q?= =?utf-8?B?TmxSaHhnK1JPdGtYVjdxbWRQeWpOMTg4bktpUGprdWdLKzdUUUVjdkg5SmN4?= =?utf-8?B?YWNJUFVkSlVPNnF3aHUyN1FxNjJuRXYxMTgzalZWSzJGeEhPVVRjSmZ4NG96?= =?utf-8?B?T09FaGxHVEErbE1VdDB1QWlGa21HdGlFV01hUk4wRy82WWI0WEVnUGZaS0p6?= =?utf-8?B?Vnh1NnNiYUJQbzJCZVN5YmdPZ1Rwa1dxcHhQOTV6b3M2Y1BsS3U1VHl2MER3?= =?utf-8?B?VUp0T2tZQVhVK3JrQzdqSDViNnA4RExvRXZKNFd2c3R6aXJKQlhBU2Uyc1Nr?= =?utf-8?B?YlNaOW9JTmlWYTN4enNyWmV6U0s4Mlp0dkcvQk5rYWx3aUZFZHhCUmdQSTJ6?= =?utf-8?B?MkNRMjdtbzVYUk9RaENmTVptaURGZXNyVUlmQVU3UDhmdm93UFA4QWpEOEQ4?= =?utf-8?B?Y1NrNVRPdzVianptNWpYQVR6eU51dzBNTG5ZcG43KzhrRytjWldOV2dWZUly?= =?utf-8?B?eW5kQkMya2NGbjJEbm1CcTdubVhSSGFQdW1PV0dVMGtWU2REWEtLUFNNVlg1?= =?utf-8?B?bHNiV1lnZ1RKa3RWSVVSdGtaUkgxbWxzUzI4SXFmZGpmKzMreTAwbnZrazVI?= =?utf-8?B?dkZUTWN0cHdjZnpDZFZXL2FBSFZ3Vy9aZjJrZEpjR2M1SS9rV1JnMDFXUHZY?= =?utf-8?B?aFRxMUZEK2gvcTFOK0tWQTlROVJJUW9ncFFnRVZTSkx3TXVtSWZpVjBvRXY1?= =?utf-8?B?Z0RvYlJGS044TXZtS01zS1kwOFdtdG9BcUlNb0JWa3B1dEZBdkFJeFltVXh4?= =?utf-8?B?TG80ZU9ZZE1JQ2gzMnFSQUZNc2RnTTd4YXFYdyt2R2t6RzRUOE02Qkd1bm1J?= =?utf-8?B?aTduSnVXNzUzb2M0RFFNelhydmNUejhsUGpJYUJzVTBrcFVMUDJPZ0h2ZEg1?= =?utf-8?Q?Lvx7HT1iEQsxYZJ7S5Ipkvw=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5601.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8af3ec83-8636-4bdb-ec5c-08dabceb03fe X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2022 15:57:59.6565 (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: lSDtUB8Q+mY8BsxpHzhKYqZd+l3yaGEs3Iw44Xw1lA9t30NQp0SHDnHfsAVHFCNag04q0GBApYAy6JS3PvwIZTU6daWtaBgPrrA1l0JASrrvNpqTLNix85WOPItfl2Yh X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5299 Return-Path: zachary.clark-williams@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IE1hY2llaiwNCg0KSSBjYW4gdW5kZXJzdGFuZCB0aGF0IGFuZCBhcHByZWNpYXRlIHRoZSBh dHRlbnRpb24geW91IGNhbiBzcGFyZSBmb3IgcmV2aWV3aW5nIHRoaXMgY2hhbmdlLiANCklmIHRo ZXJlIGFyZSBhbnkgcGVlcnMgeW91IGtub3cgd2hvIGNhbi93aWxsIHdhbnQgdG8gcmV2aWV3IG9y IGhhdmUgdmFsdWFibGUgaW5wdXQgb24gdGhpcyBQUiBwbGVhc2UgZmVlbCBmcmVlIHRvIHNlbmQg dGhlbSBhbiBpbnZpdGUgdG8gcmV2aWV3Lg0KDQpUaGFua3MsDQpaYWNrDQoNCi0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBSYWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBpbnRl bC5jb20+IA0KU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyLCAyMDIyIDU6MzUgQU0NClRvOiBD bGFyay13aWxsaWFtcywgWmFjaGFyeSA8emFjaGFyeS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+ OyBaaW1tZXIsIFZpbmNlbnQgPHZpbmNlbnQuemltbWVyQGludGVsLmNvbT47IEx1bywgSGVuZyA8 aGVuZy5sdW9AaW50ZWwuY29tPjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+ OyBLdW8sIFRlZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hh bC5kdXRraWV3aWN6QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXdSwgSmlheGlu IDxqaWF4aW4ud3VAaW50ZWwuY29tPjsgT3RjaGVyZXRpYW5za2ksIEFuZHJlaSA8YW5kcmVpLm90 Y2hlcmV0aWFuc2tpQGludGVsLmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNiZWth ckBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQpDYzogQWxhcHBhdCwgUGF1bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IFBhdGlsLCBB aml0IDxhaml0LnBhdGlsQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BB VENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5j IHByb3RvY29sIHN1cHBvcnQNCg0KQEtpbm5leSwgTWljaGFlbCBEDQpXaXRoIHRoZSBhbW91bnQg b2Ygd29yayBhcm91bmQgSVBVcywgSSBjYW4gaGFyZGx5IHNwYXJlIHRpbWUgKG1heWJlIDJoL3dl ZWsgb24gYXZlcmFnZSAtIGluY2x1ZGluZyBjb2RlKS4NCk15IHRpbWUgZm9yIEVESzIgaXMgY3Vy cmVudGx5IGZ1bGx5IGFsbG9jYXRlZCB0bzoNCjEuIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2Nv cmUvZWRrMi1zdGFnaW5nL3RyZWUvSHR0cFByb3h5IChAS2FzYmVrYXIsIFNhbG9uaSkgMi4gTlZN ZS1vRiBib290IHByb3RvdHlwZSB1bmRlciBudm1lLm9yZyB1bWJyZWxsYSAoQFppbW1lciwgVmlu Y2VudCkNCg0KQENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpZb3VyIHBhdGNoIGlzIG5vbi10cml2 aWFsIGFuZCByZXF1aXJlcyB1bmRlcnN0YW5kaW5nIG9uIG15IHNpZGUuIEJhc2VkIG9uIHRoYXQg YW5kIHRoZSBhYm92ZSwgdGhpcyB3aWxsIHRha2UgdGltZS4NCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdp bGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDEsIDIwMjIgNjo0MSBQ TQ0KVG86IFppbW1lciwgVmluY2VudCA8dmluY2VudC56aW1tZXJAaW50ZWwuY29tPjsgUmFiZWRh LCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50ZWwuY29tPjsgTHVvLCBIZW5nIDxoZW5nLmx1b0Bp bnRlbC5jb20+OyBLdW8sIFNjb3R0aWUgPHNjb3R0aWUua3VvQGludGVsLmNvbT47IEt1bywgVGVk IDx0ZWQua3VvQGludGVsLmNvbT47IER1dGtpZXdpY3osIE1pY2hhbCA8bWljaGFsLmR1dGtpZXdp Y3pAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBKaWF4aW4gPGppYXhpbi53 dUBpbnRlbC5jb20+OyBPdGNoZXJldGlhbnNraSwgQW5kcmVpIDxhbmRyZWkub3RjaGVyZXRpYW5z a2lAaW50ZWwuY29tPg0KQ2M6IEFsYXBwYXQsIFBhdWwgPHBhdWwuYWxhcHBhdEBpbnRlbC5jb20+ OyBLYXNiZWthciwgU2Fsb25pIDxzYWxvbmkua2FzYmVrYXJAaW50ZWwuY29tPjsgUGF0aWwsIEFq aXQgPGFqaXQucGF0aWxAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFU Q0ggdjRdIE5ldHdvcmtQa2cvV2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBwcm9maWxlIHN5bmMg cHJvdG9jb2wgc3VwcG9ydA0KDQpHcmVhdCB0aGFuayB5b3UgVmluY2VudCwgSSB3aWxsIGFkZCB0 aGVtIHRvIHRoZSBwcm90b2NvbCBoZWFkZXIgZmlsZSBhbmQgc2VuZCBhbiB1cGRhdGVkIHBhdGNo IHRvZGF5Lg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogWmltbWVyLCBWaW5j ZW50IDx2aW5jZW50LnppbW1lckBpbnRlbC5jb20+DQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAx LCAyMDIyIDEwOjM5IEFNDQpUbzogQ2xhcmstd2lsbGlhbXMsIFphY2hhcnkgPHphY2hhcnkuY2xh cmstd2lsbGlhbXNAaW50ZWwuY29tPjsgUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50 ZWwuY29tPjsgTHVvLCBIZW5nIDxoZW5nLmx1b0BpbnRlbC5jb20+OyBLdW8sIFNjb3R0aWUgPHNj b3R0aWUua3VvQGludGVsLmNvbT47IEt1bywgVGVkIDx0ZWQua3VvQGludGVsLmNvbT47IER1dGtp ZXdpY3osIE1pY2hhbCA8bWljaGFsLmR1dGtpZXdpY3pAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW87IFd1LCBKaWF4aW4gPGppYXhpbi53dUBpbnRlbC5jb20+OyBPdGNoZXJldGlhbnNr aSwgQW5kcmVpIDxhbmRyZWkub3RjaGVyZXRpYW5za2lAaW50ZWwuY29tPg0KQ2M6IEFsYXBwYXQs IFBhdWwgPHBhdWwuYWxhcHBhdEBpbnRlbC5jb20+OyBLYXNiZWthciwgU2Fsb25pIDxzYWxvbmku a2FzYmVrYXJAaW50ZWwuY29tPjsgUGF0aWwsIEFqaXQgPGFqaXQucGF0aWxAaW50ZWwuY29tPg0K U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjRdIE5ldHdvcmtQa2cvV2lmaVByb2Zp bGVTeW5jOiBBZGQgV2lGaSBwcm9maWxlIHN5bmMgcHJvdG9jb2wgc3VwcG9ydA0KDQpUaGF0J3Mg Z3JlYXQNCklmIHRoZXNlIGxpbmtzIGFyZSBub3QgYWxyZWFkeSBpbiB0aGUgLmggZmlsZXMgb2Yg dGhlIHBhdGNoIEknZCBhZGQgdGhlbS4NClR5cGljYWxseSB0aGUgdWVmaSBuZXR3b3JraW5nIGNv ZGUgbGV2ZXJhZ2VzIHVlZmkgc3BlYyBvciBpZXRmIHJmYydzIG9yIG90aGVyIHB1YmxpYyBjb2xs YXRlcmFsLiAgTGV0dGluZyBmb2xrcyBrbm93IHRoZSBiYWNrZ3JvdW5kIG9mIHRoZXNlIGludGVy ZmFjZXMgd2l0aCBhIHJlZmVyZW5jZSBzaG91bGQgaGVscCBjb25zdW1lcnMgSU1ITyBWaW5jZW50 DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBDbGFyay13aWxsaWFtcywgWmFj aGFyeSA8emFjaGFyeS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+DQpTZW50OiBUdWVzZGF5LCBO b3ZlbWJlciAxLCAyMDIyIDEwOjM1IEFNDQpUbzogWmltbWVyLCBWaW5jZW50IDx2aW5jZW50Lnpp bW1lckBpbnRlbC5jb20+OyBSYWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBpbnRlbC5jb20+ OyBMdW8sIEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8c2NvdHRpZS5r dW9AaW50ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0a2lld2ljeiwg TWljaGFsIDxtaWNoYWwuZHV0a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5p bzsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBBbmRy ZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+DQpDYzogQWxhcHBhdCwgUGF1bCA8 cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNiZWth ckBpbnRlbC5jb20+OyBQYXRpbCwgQWppdCA8YWppdC5wYXRpbEBpbnRlbC5jb20+DQpTdWJqZWN0 OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6 IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhleSBWaW5jZW50LA0K DQpUaGUgZG9jdW1lbnRhdGlvbiBmb3IgZGVzY3JpYmluZyB0aGUgZmVhdHVyZXMgaW4gdGhlIFBS IGRlc2NyaXB0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ1NNRSBkb2N1bWVudGF0aW9uIGZvdW5k IG9uIHRoZSBwdWJsaWMgYWNjZXNzaWJsZSBpbnRlbCBsaW5rIGJlbG93Lg0KDQpPQ1IgLSBodHRw czovL3NvZnR3YXJlLmludGVsLmNvbS9zaXRlcy9tYW5hZ2VhYmlsaXR5L0FNVF9JbXBsZW1lbnRh dGlvbl9hbmRfUmVmZXJlbmNlX0d1aWRlL2RlZmF1bHQuaHRtP3R1cmw9V29yZERvY3VtZW50cyUy Rm9uZWNsaWNrcmVjb3ZlcnkuaHRtDQoNCktWTSAtIGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29t L3NpdGVzL21hbmFnZWFiaWxpdHkvQU1UX0ltcGxlbWVudGF0aW9uX2FuZF9SZWZlcmVuY2VfR3Vp ZGUvZGVmYXVsdC5odG0/dHVybD1Xb3JkRG9jdW1lbnRzJTJGb25lY2xpY2tyZWNvdmVyeS5odG0N Cg0KVGhhbmtzLA0KWmFjaw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogWmlt bWVyLCBWaW5jZW50IDx2aW5jZW50LnppbW1lckBpbnRlbC5jb20+DQpTZW50OiBNb25kYXksIE9j dG9iZXIgMzEsIDIwMjIgMjoxNiBQTQ0KVG86IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNo YXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0g W1BBVENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBz eW5jIHByb3RvY29sIHN1cHBvcnQNCg0KUXVpY2sgcXVlc3Rpb24NCg0KQXJlIHRoZSBmZWF0dXJl cyBkZXNjcmliZWQgaW4gIiBFbmFibGVzIEtWTSBhbmQgT25lIENsaWNrIFJlY292ZXJ5IFdMQU4g Y2FwYWJpbGl0eSB3aXRoIFdpRmkgUHJvZmlsZSBTeW5jIGZlYXR1cmUgYW5kIHByb3RvY29sLiBB ZGRpbmcgV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wsIHdoaWNoIHN1cHBvcnRzIHRoZSBwcm9maWxl c3luYyBkcml2ZXIgb3BlcmF0aW9ucyBmb3IgdHJhbnNmZXJyaW5nIFdpRmkgcHJvZmlsZXMgZnJv bSBBTVQgdG8gdGhlIFN1cHBsaWNhbnQuIFdpRmlDb25uZWN0aW9uTWFuYWdlciB3aWxsIGNoZWNr IGZvciB0aGUgV2lmaVByb2ZpbGVTeW5jUHJvdG9jb2wgYW5kIGlmIGZvdW5kIHdpbGwgb3BlcmF0 ZSBvbiB0aGUgcHJlbWlzZSBvZiBhIE9uZSBDbGljayBSZWNvdmVyeSwgb3IgS1ZNIGZsb3cgd2l0 aCBhIFdpZmkgcHJvZmlsZSBwcm92aWRlZCBieSBBTVQuIiBpbiBhIHB1YmxpYyBkb2N1bWVudD8g IFRoaW5ncyBsaWtlIGNvbmNlcHQgb2YgcHJvZmlsZSBzeW5jPyAgSSdtIGd1ZXNzaW5nIHRoZXkg YXJlIHNpbmNlIExpbnV4IHByb2JhYmx5IGRvZXMgdGhlIHNhbWUgaW4gdGhlIGludGVsIGl3bCBk cml2ZXI/DQoNClZpbmNlbnQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIENs YXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBNb25kYXksIE9jdG9iZXIgMzEsIDIwMjIgMTI6 MzEgUE0NClRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBSYWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBpbnRlbC5jb20+OyBMdW8sIEhlbmcgPGhl bmcubHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8c2NvdHRpZS5rdW9AaW50ZWwuY29tPjsg S3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0a2lld2ljeiwgTWljaGFsIDxtaWNoYWwu ZHV0a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ0Z1LCBTaXl1YW4n IDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47 IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+ DQpDYzogQWxhcHBhdCwgUGF1bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IEthc2Jla2FyLCBT YWxvbmkgPHNhbG9uaS5rYXNiZWthckBpbnRlbC5jb20+OyBQYXRpbCwgQWppdCA8YWppdC5wYXRp bEBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NF0gTmV0d29y a1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBw b3J0DQoNCisrIHZpc2liaWxpdHkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206 IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBGcmlkYXksIE9jdG9iZXIgMjgsIDIwMjIg MToxMyBQTQ0KVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IFJhYmVkYSwgTWFjaWVqIDxtYWNpZWoucmFiZWRhQGludGVsLmNvbT47IEx1bywgSGVuZyA8 aGVuZy5sdW9AaW50ZWwuY29tPjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+ OyBLdW8sIFRlZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hh bC5kdXRraWV3aWN6QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBGdSwgU2l5dWFu IDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47 IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+ DQpTdWJqZWN0OiBSRTogW1BBVENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRk IFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBvcnQNCg0KKytNb3JlIGZvciByZXZpZXdh bCENCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBa YWNoYXJ5DQpTZW50OiBGcmlkYXksIE9jdG9iZXIgMjgsIDIwMjIgMToxMCBQTQ0KVG86IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFJhYmVkYSwgTWFjaWVq IDxtYWNpZWoucmFiZWRhQGludGVsLmNvbT47IEx1bywgSGVuZyA8aGVuZy5sdW9AaW50ZWwuY29t PjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1 b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hhbC5kdXRraWV3aWN6QGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpTdWJqZWN0OiBSRTogW1BBVENIIHY0XSBOZXR3 b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1 cHBvcnQNCg0KVGhhbmtzIGZvciB0aGUgZm9yd2FyZCBNaWtlIQ0KDQpNYWNpZWogYW5kIEFsbCwg DQoNCklmIHlvdSBjb3VsZCBwbGVhc2UgcmV2aWV3IHRoZSBQUiBiZWxvdy4gSSB3b3VsZCBsaWtl IHRvIGdldCB0aGlzIHJldmlldyBjb21wbGV0ZWQgd2l0aGluIHRoZSB3ZWVrLg0KDQpUaGFua3Ms DQpaYWNrDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpTZW50OiBUaHVyc2RheSwgT2N0b2Jl ciAyNywgMjAyMiAxOjA5IFBNDQpUbzogUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50 ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg Q2xhcmstd2lsbGlhbXMsIFphY2hhcnkgPHphY2hhcnkuY2xhcmstd2lsbGlhbXNAaW50ZWwuY29t Pg0KU3ViamVjdDogRlc6IFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFk ZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhpIE1hY2llaiwNCg0KQ2Fu IHlvdSBwbGVhc2UgaGVscCByZXZpZXcgdGhlc2UgTmV0d29ya1BrZyBjaGFuZ2VzLg0KDQpJIGFt IG5vdCBzdXJlIGlmIHlvdSBtb25pdG9yIHlvdXIgbGludXguaW50ZWwuY29tIGFjY291bnQgYXMg Y2xvc2VseSBhcyB5b3VyIGludGVsLmNvbSBhY2NvdW50Lg0KDQpUaGFua3MsDQoNCk1pa2UNCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5 IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJzZGF5LCBPY3Rv YmVyIDI3LCAyMDIyIDEyOjMzIFBNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KU3ViamVjdDogRlc6IFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZp UHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhl eSBNaWtlLA0KDQpJJ20gc3RydWdnbGluZyB0byBnZXQgYW55IGZlZWRiYWNrIG9uIHRoaXMgUFIu IERvIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9ucyB0byBnZXQgYmV0dGVyIHZpc2liaWxpdHkgYW5k IHJlc3BvbnNlcyBzbyBJIGNhbiBnZXQgdGhpcyBtaXZpbmc/DQoNClRoYW5rcywNClphY2sNCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5 IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJzZGF5LCBPY3Rv YmVyIDI3LCAyMDIyIDEyOjMxIFBNDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBaYWNo YXJ5IENsYXJrLVdpbGxpYW1zIDx6Y2xhcmt3MTEyQGdtYWlsLmNvbT47IE1hY2llaiBSYWJlZGEg PG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPjsgRnUgU2l5dWFuIDxzaXl1YW4uZnVAaW50 ZWwuY29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tp LCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+OyBDbGFyay13aWxsaWFt cywgWmFjaGFyeSA8emFjaGFyeS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+DQpTdWJqZWN0OiBb UEFUQ0ggdjRdIE5ldHdvcmtQa2cvV2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBwcm9maWxlIHN5 bmMgcHJvdG9jb2wgc3VwcG9ydA0KDQpGcm9tOiBaYWNoYXJ5IENsYXJrLVdpbGxpYW1zIDx6Y2xh cmt3MTEyQGdtYWlsLmNvbT4NCg0KUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTM4NDUNCg0KRW5hYmxlcyBLVk0gYW5kIE9uZSBDbGljayBSZWNvdmVy eSBXTEFOIGNhcGFiaWxpdHkgd2l0aCBXaUZpIFByb2ZpbGUgU3luYyBmZWF0dXJlIGFuZCBwcm90 b2NvbC4gQWRkaW5nIFdpRmlQcm9maWxlU3luY1Byb3RvY29sLCB3aGljaCBzdXBwb3J0cyB0aGUg cHJvZmlsZXN5bmMgZHJpdmVyIG9wZXJhdGlvbnMgZm9yIHRyYW5zZmVycmluZyBXaUZpIHByb2Zp bGVzIGZyb20gQU1UIHRvIHRoZSBTdXBwbGljYW50LiBXaUZpQ29ubmVjdGlvbk1hbmFnZXIgd2ls bCBjaGVjayBmb3IgdGhlIFdpZmlQcm9maWxlU3luY1Byb3RvY29sIGFuZCBpZiBmb3VuZCB3aWxs IG9wZXJhdGUgb24gdGhlIHByZW1pc2Ugb2YgYSBPbmUgQ2xpY2sgUmVjb3ZlcnksIG9yIEtWTSBm bG93IHdpdGggYSBXaWZpIHByb2ZpbGUgcHJvdmlkZWQgYnkgQU1ULg0KDQpDYzogTWFjaWVqIFJh YmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+DQpDYzogRnUgU2l5dWFuIDxzaXl1 YW4uZnVAaW50ZWwuY29tPg0KQ2M6IFd1IEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT4NCkNj OiBBbmRyZWkgT3RjaGVyZXRpYW5za2kgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+ DQoNClNpZ25lZC1vZmYtYnk6IFphY2hhcnkgQ2xhcmstV2lsbGlhbXMgPHphY2hhcnkuY2xhcmst d2lsbGlhbXNAaW50ZWwuY29tPg0KLS0tDQogLi4uL1Byb3RvY29sL1dpRmlQcm9maWxlU3luY1By b3RvY29sLmggICAgICAgIHwgIDgzICsrKysrKysrDQogTmV0d29ya1BrZy9OZXR3b3JrUGtnLmRl YyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCiAuLi4vV2lmaUNvbm5lY3Rpb25NYW5hZ2Vy RHhlLmluZiAgICAgICAgICAgICAgfCAgIDMgKy0NCiAuLi4vV2lmaUNvbm5lY3Rpb25NZ3JDb25m aWdOVkRhdGFTdHJ1Y3QuaCAgICAgfCAgIDIgKy0NCiAuLi4vV2lmaUNvbm5lY3Rpb25NZ3JEcml2 ZXIuYyAgICAgICAgICAgICAgICAgfCAxMjYgKysrKysrKystLS0tDQogLi4uL1dpZmlDb25uZWN0 aW9uTWdyRHhlLmggICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQogLi4uL1dpZmlDb25uZWN0 aW9uTWdySW1wbC5jICAgICAgICAgICAgICAgICAgIHwgMTkzICsrKysrKysrKysrKysrKystLQ0K IC4uLi9XaWZpQ29ubmVjdGlvbk1nck1pc2MuYyAgICAgICAgICAgICAgICAgICB8ICAxMyArKw0K IDggZmlsZXMgY2hhbmdlZCwgMzY3IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKSAgY3Jl YXRlIG1vZGUgMTAwNjQ0IE5ldHdvcmtQa2cvSW5jbHVkZS9Qcm90b2NvbC9XaUZpUHJvZmlsZVN5 bmNQcm90b2NvbC5oDQoNCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL0luY2x1ZGUvUHJvdG9jb2wv V2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wuaCBiL05ldHdvcmtQa2cvSW5jbHVkZS9Qcm90b2NvbC9X aUZpUHJvZmlsZVN5bmNQcm90b2NvbC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMC4uZTM2ZGFjZWFiZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTmV0d29ya1BrZy9JbmNs dWRlL1Byb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmgNCkBAIC0wLDAgKzEsODMgQEAN CisvKiogQGZpbGUNCisgIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sLiBTdXBwb3J0cyBPbmUg Q2xpY2sgUmVjb3Zlcnkgb3IgS1ZNIE9TIA0KK3JlY292ZXJ5DQorICBib290IGZsb3cgb3ZlciBX aUZpLg0KKw0KKyAgQ29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQorDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudCAqKi8NCisNCisjaWZuZGVmIFdJRklfUFJPRklMRV9TWU5DX1BST1RPQ09M X0hfDQorI2RlZmluZSBXSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTF9IXw0KKw0KKyNpbmNsdWRl IDxXaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JDb25maWcuaD4NCisN CisvLw0KKy8vICBXaUZpIFByb2ZpbGUgU3luYyBQcm90b2NvbCBHVUlEIHZhcmlhYmxlLg0KKy8v DQorZXh0ZXJuIEVGSV9HVUlEICBnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkOw0KKw0K Ky8qKg0KKyAgVXNlZCBieSB0aGUgV2lGaSBjb25uZWN0aW9uIG1hbmFnZXIgdG8gZ2V0IHRoZSBX aUZpIHByb2ZpbGUgdGhhdCBBTVQgDQorc2hhcmVkDQorICBhbmQgd2FzIHN0b3JlZCBpbiBXaUZp IHByb2ZpbGUgcHJvdG9jb2wuIEFsaWducyB0aGUgQU1UIFdpRmkgcHJvZmlsZSANCitkYXRhIHRv DQorICB0aGUgV2lGaSBjb25uZWN0aW9uIG1hbmFnZXIgcHJvZmlsZSBzdHJ1Y3R1cmUgZm8gY29u bmVjdGlvbiB1c2UuDQorDQorICBAcGFyYW1baW4sIG91dF0gIFdjbVByb2ZpbGUgICAgICAgV2lG aSBDb25uZWN0aW9uIE1hbmFnZXIgcHJvZmlsZSBzdHJ1Y3R1cmUNCisgIEBwYXJhbVtpbiwgb3V0 XSAgTWFjQWRkcmVzcyAgICAgICBNQUMgYWRkcmVzcyBmcm9tIEFNVCBzYXZlZCB0byBOaUMgTUFD IGFkZHJlc3MNCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICBTdG9yZWQg V2lGaSBwcm9maWxlIGNvbnZlcnRlZCBhbmQgcmV0dXJuZWQgc3VjY2VmdWxseQ0KKyAgQHJldHZh bCBFRklfVU5TVVBQT1JURUQgICAgICAgICAgIFByb2ZpbGUgcHJvdG9jb2wgc2hhcmluZyBub3Qg c3VwcG9ydGVkIG9yIGVuYWJsZWQNCisgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgICAg ICBObyBwcm9maWxlcyB0byByZXR1cm5lZA0KKyAgQHJldHZhbCBPdGhlcnMgICAgICAgICAgICAg ICAgICAgIEVycm9yIE9jY3VycmVkDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMNCisoRUZJ QVBJICpXSUZJX1BST0ZJTEVfR0VUKSgNCisgIElOIE9VVCAgV0lGSV9NR1JfTkVUV09SS19QUk9G SUxFICAqUHJvZmlsZSwNCisgIElOIE9VVCAgRUZJXzgwMjExX01BQ19BRERSRVNTICAgICBNYWNB ZGRyZXNzDQorICApOw0KKw0KKy8qKg0KKyAgU2F2ZXMgdGhlIFdpRmkgY29ubmVjdGlvbiBzdGF0 dXMgcmVjaWV2ZWQgYnkgdGhlIA0KK1dpRmlDb25uZWN0aW9uTWFuYWdlciB3aGVuDQorICBpbiBh IEtWTSBPUiBPbmUgQ2xpY2sgUmVjb3ZlcnkgV0xBTiByZWNvdmVyeSBmbG93LiBJbnB1dCBhcw0K KyAgRUZJXzgwMjExX0NPTk5FQ1RfTkVUV09SS19SRVNVTFRfQ09ERSB0aGVuIGNvbnZlcnRlZCBh bmQgc3RvcmVkIGFzIEVGSV9TVEFUVVMgdHlwZS4NCisNCisgIEBwYXJhbVtpbl0gQ29ubmVjdGlv blN0YXR1cyAgICAgV2lGaSBjb25uZWN0aW9uIGF0dGVtcHQgcmVzdWx0cw0KKyoqLw0KK3R5cGVk ZWYNCitWT0lEDQorKEVGSUFQSSAqV0lGSV9TRVRfQ09OTkVDVF9TVEFURSkoDQorICBJTiAgRUZJ XzgwMjExX0NPTk5FQ1RfTkVUV09SS19SRVNVTFRfQ09ERSBDb25uZWN0aW9uU3RhdHVzDQorICAp Ow0KKw0KKy8qKg0KKyAgUmV0cmlldmVzIHRoZSBzdG9yZWQgV2lGaSBjb25uZWN0aW9uIHN0YXR1 cyB3aGVuIGluIGVpdGhlciBLVk0gT1IgT25lIA0KK0NsaWNrDQorICBSZWNvdmVyeSBXTEFOIHJl Y292ZXJ5IGZsb3cuDQorDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgV2lG aSBjb25uZWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNmdWxseQ0KKyAgQHJldHZhbCBPdGhlcnMgICAg ICAgICAgICAgICAgICAgIENvbm5lY3Rpb24gZmFpbHVyZSBvY2N1cnJlZA0KKyoqLw0KK3R5cGVk ZWYNCitFRklfU1RBVFVTDQorKEVGSUFQSSAqV0lGSV9HRVRfQ09OTkVDVF9TVEFURSkoDQorICBW T0lEDQorICApOw0KKw0KKy8vDQorLy8gIFdpRmkgUHJvZmlsZSBTeW5jIFByb3RvY29sIHN0cnVj dHVyZS4NCisvLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgUmV2aXNpb247DQorICBXSUZJX1NFVF9DT05ORUNUX1NUQVRFICAgIFdpZmlQcm9maWxlU3lu Y1NldENvbm5lY3RTdGF0ZTsNCisgIFdJRklfR0VUX0NPTk5FQ1RfU1RBVEUgICAgV2lmaVByb2Zp bGVTeW5jR2V0Q29ubmVjdFN0YXRlOw0KKyAgV0lGSV9QUk9GSUxFX0dFVCAgICAgICAgICBXaWZp UHJvZmlsZVN5bmNHZXRQcm9maWxlOw0KK30gRUZJX1dJRklfUFJPRklMRV9TWU5DX1BST1RPQ09M Ow0KKw0KKy8qKg0KKyAgV2lGaSBQcm9maWxlIFByb3RvY29sIHJldmlzaW9uIG51bWJlci4NCisN CisgIFJldmlzaW9uIDE6ICAgSW5pdGlhbCB2ZXJzaW9uDQorKiovDQorI2RlZmluZSBFRklfV0lG SV9QUk9GSUxFX1NZTkNfUFJPVE9DT0xfUkVWSVNJT04gIDENCisNCisjZW5kaWYgLy8gIFdJRklf UFJPRklMRV9TWU5DX1BST1RPQ09MX0hfDQpkaWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9OZXR3b3Jr UGtnLmRlYyBiL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMgaW5kZXggNWU0M2ViZjhjNS4uNTNm YjM0YzRhMCAxMDA2NDQNCi0tLSBhL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMNCisrKyBiL05l dHdvcmtQa2cvTmV0d29ya1BrZy5kZWMNCkBAIC05MSw2ICs5MSw5IEBADQogICAjIyBJbmNsdWRl L1Byb3RvY29sL0h0dHBDYWxsYmFjay5oDQogICBnRWRraWlIdHRwQ2FsbGJhY2tQcm90b2NvbEd1 aWQgID0gezB4NjExMTE0ZjEsIDB4YTM3YiwgMHg0NDY4LCB7MHhhNCwgMHgzNiwgMHg1YiwgMHhk ZCwgMHhhMSwgMHg2YSwgMHhhMiwgMHg0MH19DQogDQorICAjIyBJbmNsdWRlL1Byb3RvY29sL1dp RmlQcm9maWxlU3luY1Byb3RvY29sLmgNCisgIGdFZmlXaUZpUHJvZmlsZVN5bmNQcm90b2NvbEd1 aWQgPSB7MHgzOTlhMmI4YSwgMHhjMjY3LCAweDQ0YWEsIHsweDlhLCANCisgMHhiNCwgMHgzMCwg MHg1OCwgMHg4YywgMHhkMiwgMHgyZCwgMHhjY319DQorDQogW1BjZHNGaXhlZEF0QnVpbGRdDQog ICAjIyBUaGUgbWF4IGF0dGVtcHQgbnVtYmVyIHdpbGwgYmUgY3JlYXRlZCBieSBpU0NTSSBkcml2 ZXIuDQogICAjIEBQcm9tcHQgTWF4IGF0dGVtcHQgbnVtYmVyLg0KZGlmZiAtLWdpdCBhL05ldHdv cmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS5p bmYgYi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1h bmFnZXJEeGUuaW5mDQppbmRleCA0Mzk0YjZmNGJiLi43ZTM2MDE2Y2Y4IDEwMDY0NA0KLS0tIGEv TmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NYW5hZ2Vy RHhlLmluZg0KKysrIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNv bm5lY3Rpb25NYW5hZ2VyRHhlLmluZg0KQEAgLTksNyArOSw3IEBADQogIyAgMikuIFdQQTIgUGVy c29uYWwgTmV0d29yaw0KICMgIDMpLiBFQVAgTmV0d29ya3MgKEVBUC1UTFMsIEVBUC1UVExTL01T Q0hBUHYyIGFuZCBQRUFQdjAvTVNDSEFQdjIpICAjIC0jICBDb3B5cmlnaHQgKGMpIDIwMTksIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCisjICBDb3B5cmlnaHQg KGMpIDIwMTkgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCityZXNlcnZl ZC48QlI+DQogIw0KICMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50ICAjIEBAIC03MSw2ICs3MSw3IEBADQogICBnRWZpQWRhcHRlckluZm9ybWF0aW9uUHJvdG9j b2xHdWlkICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQogICBnRWZpU3VwcGxpY2Fu dFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQog ICBnRWZpRWFwQ29uZmlndXJhdGlvblByb3RvY29sR3VpZCAgICAgICAgICAgICAgIyMgU09NRVRJ TUVTX0NPTlNVTUVTDQorICBnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkICAgICAgICAg ICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQogDQogW0d1aWRzXQ0KICAgZ1dpZmlDb25maWdH dWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTICAjIyBHVUlEDQpk aWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5l Y3Rpb25NZ3JDb25maWdOVkRhdGFTdHJ1Y3QuaCBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25N YW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyQ29uZmlnTlZEYXRhU3RydWN0LmgNCmluZGV4IGI1 NTE4YTc0ZDguLmRjYzRiZjdlMjcgMTAwNjQ0DQotLS0gYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0 aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckNvbmZpZ05WRGF0YVN0cnVjdC5oDQorKysg Yi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckNv bmZpZ05WRGF0YVMNCisrKyB0cnVjdC5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNkZWZpbmUg UEFTU1dPUkRfTUlOX0xFTiAgICAgICA4DQogI2RlZmluZSBQQVNTV09SRF9NQVhfTEVOICAgICAg IDYzDQotI2RlZmluZSBQQVNTV09SRF9TVE9SQUdFX1NJWkUgIDY0DQorI2RlZmluZSBQQVNTV09S RF9TVE9SQUdFX1NJWkUgIDY1DQogDQogI2RlZmluZSBFQVBfSURFTlRJVFlfTEVOICAgNjMNCiAj ZGVmaW5lIEVBUF9JREVOVElUWV9TSVpFICA2NA0KZGlmZiAtLWdpdCBhL05ldHdvcmtQa2cvV2lm aUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHJpdmVyLmMgYi9OZXR3b3Jr UGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckRyaXZlci5jDQpp bmRleCA2N2EwMWNhMDU4Li45N2NhN2E5ZjBiIDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZp Q29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIuYw0KKysrIGIvTmV0 d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIu Yw0KQEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQogICBUaGUgZHJpdmVyIGJpbmRpbmcgcHJv dG9jb2wgZm9yIHRoZSBXaUZpIENvbm5lY3Rpb24gTWFuYWdlci4NCiANCi0gIENvcHlyaWdodCAo YykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KKyAg Q29weXJpZ2h0IChjKSAyMDE5IC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg DQorIHJlc2VydmVkLjxCUj4NCiANCiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQogDQpAQCAtMzksNiArMzksMTEgQEAgRUZJX0dVSUQgIG1XaWZpQ29uZmln TmV0d29ya0xpc3RSZWZyZXNoR3VpZCA9IFdJRklfQ09ORklHX05FVFdPUktfTElTVF9SRUZSRVNI X0cNCiBFRklfR1VJRCAgbVdpZmlDb25maWdDb25uZWN0Rm9ybVJlZnJlc2hHdWlkID0gV0lGSV9D T05GSUdfQ09OTkVDVF9GT1JNX1JFRlJFU0hfR1VJRDsNCiBFRklfR1VJRCAgbVdpZmlDb25maWdN YWluRm9ybVJlZnJlc2hHdWlkICAgID0gV0lGSV9DT05GSUdfTUFJTl9GT1JNX1JFRlJFU0hfR1VJ RDsNCiANCisvLw0KKy8vIFdpZmkgY29ubmVjdGlvbiBhdHRlbXB0IGNvdW50ZXIgZm9yIHJldHJp ZXMgLy8gZXh0ZXJuIFVJTlQ4IA0KK21XaWZpQ29ubmVjdGlvbkNvdW50Ow0KKw0KIC8qKg0KICAg VGVzdHMgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIHN1cHBvcnRzIGEgZ2l2ZW4gY29udHJvbGxlci4g SWYgYSBjaGlsZCBkZXZpY2UgaXMgcHJvdmlkZWQsDQogICBpdCBmdXJ0aGVyIHRlc3RzIHRvIHNl ZSBpZiB0aGlzIGRyaXZlciBzdXBwb3J0cyBjcmVhdGluZyBhIGhhbmRsZSBmb3IgdGhlIHNwZWNp ZmllZCBjaGlsZCBkZXZpY2UuDQpAQCAtMTY3LDggKzE3MiwxMCBAQCBXaWZpTWdyRHhlRHJpdmVy QmluZGluZ1N0YXJ0ICgNCiAgIEVGSV9XSVJFTEVTU19NQUNfQ09OTkVDVElPTl9JSV9QUk9UT0NP TCAgKldtcDsNCiAgIEVGSV9TVVBQTElDQU5UX1BST1RPQ09MICAgICAgICAgICAgICAgICAgKlN1 cHBsaWNhbnQ7DQogICBFRklfRUFQX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICAgICAgICAgICpF YXBDb25maWc7DQorICBFRklfV0lGSV9QUk9GSUxFX1NZTkNfUFJPVE9DT0wgICAgICAgICAgICpX aUZpUHJvZmlsZVN5bmNQcm90b2NvbDsNCiANCi0gIE5pYyA9IE5VTEw7DQorICBtV2lmaUNvbm5l Y3Rpb25Db3VudCA9IDA7DQorICBOaWMgICAgICAgICAgICAgICAgICA9IE5VTEw7DQogDQogICAv Lw0KICAgLy8gT3BlbiBQcm90b2NvbHMNCkBAIC0yMzYsNDcgKzI0Myw3MyBAQCBXaWZpTWdyRHhl RHJpdmVyQmluZGluZ1N0YXJ0ICgNCiAgIEluaXRpYWxpemVMaXN0SGVhZCAoJk5pYy0+UHJvZmls ZUxpc3QpOw0KIA0KICAgLy8NCi0gIC8vIFJlY29yZCB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIGlu Y29taW5nIE5JQy4NCisgIC8vIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIGluc3RhbGxhdGlv biBjaGVjayBmb3IgT1MgcmVjb3ZlcnkgZmxvdy4NCiAgIC8vDQotICBTdGF0dXMgPSBOZXRMaWJH ZXRNYWNBZGRyZXNzICgNCi0gICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCi0gICAgICAg ICAgICAgKEVGSV9NQUNfQUREUkVTUyAqKSZOaWMtPk1hY0FkZHJlc3MsDQotICAgICAgICAgICAg ICZBZGRyZXNzU2l6ZQ0KLSAgICAgICAgICAgICApOw0KLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KLSAgICBnb3RvIEVSUk9SMjsNCi0gIH0NCi0NCi0gIC8vDQotICAvLyBDcmVhdGUgYW5k IHN0YXJ0IHRoZSB0aW1lciBmb3IgdGhlIHN0YXR1cyBjaGVjaw0KLSAgLy8NCi0gIFN0YXR1cyA9 IGdCUy0+Q3JlYXRlRXZlbnQgKA0KLSAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFM IHwgRVZUX1RJTUVSLA0KLSAgICAgICAgICAgICAgICAgIFRQTF9DQUxMQkFDSywNCi0gICAgICAg ICAgICAgICAgICBXaWZpTWdyT25UaW1lclRpY2ssDQotICAgICAgICAgICAgICAgICAgTmljLA0K LSAgICAgICAgICAgICAgICAgICZOaWMtPlRpY2tUaW1lcg0KKyAgU3RhdHVzID0gZ0JTLT5Mb2Nh dGVQcm90b2NvbCAoDQorICAgICAgICAgICAgICAgICAgJmdFZmlXaUZpUHJvZmlsZVN5bmNQcm90 b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAo Vk9JRCAqKikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wNCiAgICAgICAgICAgICAgICAgICApOw0K LSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICBnb3RvIEVSUk9SMjsNCi0gIH0NCisg IGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAgIE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3 b3JrID0gKFdJRklfTUdSX05FVFdPUktfUFJPRklMRSAqKUFsbG9jYXRlWmVyb1Bvb2wgKHNpemVv ZiAoV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFKSk7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5k aW5nTmV0d29yayA9PSBOVUxMKSB7DQorICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJD RVM7DQorICAgICAgZ290byBFUlJPUjE7DQorICAgIH0NCiANCi0gIFN0YXR1cyA9IGdCUy0+U2V0 VGltZXIgKE5pYy0+VGlja1RpbWVyLCBUaW1lclBlcmlvZGljLCBFRklfVElNRVJfUEVSSU9EX01J TExJU0VDT05EUyAoNTAwKSk7DQotICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIGdv dG8gRVJST1IzOw0KLSAgfQ0KKyAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2Zp bGVTeW5jR2V0UHJvZmlsZSAoTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmssIE5pYy0+TWFjQWRk cmVzcyk7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAhPSBOVUxMKSB7DQor ICAgICAgU3RhdHVzID0gV2lmaU1nckNvbm5lY3RUb05ldHdvcmsgKE5pYywgTmljLT5Db25uZWN0 UGVuZGluZ05ldHdvcmspOw0KKyAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAg ICAgIFdpRmlQcm9maWxlU3luY1Byb3RvY29sLT5XaWZpUHJvZmlsZVN5bmNTZXRDb25uZWN0U3Rh dGUgKFN0YXR1cyk7DQorICAgICAgfQ0KKyAgICB9IGVsc2Ugew0KKyAgICAgIGdvdG8gRVJST1Ix Ow0KKyAgICB9DQorICB9IGVsc2Ugew0KKyAgICAvLw0KKyAgICAvLyBSZWNvcmQgdGhlIE1BQyBh ZGRyZXNzIG9mIHRoZSBpbmNvbWluZyBOSUMuDQorICAgIC8vDQorICAgIFN0YXR1cyA9IE5ldExp YkdldE1hY0FkZHJlc3MgKA0KKyAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQorICAg ICAgICAgICAgICAgKEVGSV9NQUNfQUREUkVTUyAqKSZOaWMtPk1hY0FkZHJlc3MsDQorICAgICAg ICAgICAgICAgJkFkZHJlc3NTaXplDQorICAgICAgICAgICAgICAgKTsNCisgICAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KKyAgICAgIGdvdG8gRVJST1IyOw0KKyAgICB9DQogDQotICBOaWMt PkNvbm5lY3RTdGF0ZSA9IFdpZmlNZ3JEaXNjb25uZWN0ZWQ7DQotICBOaWMtPlNjYW5TdGF0ZSAg ICA9IFdpZmlNZ3JTY2FuRmluaXNoZWQ7DQorICAgIC8vDQorICAgIC8vIENyZWF0ZSBhbmQgc3Rh cnQgdGhlIHRpbWVyIGZvciB0aGUgc3RhdHVzIGNoZWNrDQorICAgIC8vDQorICAgIFN0YXR1cyA9 IGdCUy0+Q3JlYXRlRXZlbnQgKA0KKyAgICAgICAgICAgICAgICAgICAgRVZUX05PVElGWV9TSUdO QUwgfCBFVlRfVElNRVIsDQorICAgICAgICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQorICAg ICAgICAgICAgICAgICAgICBXaWZpTWdyT25UaW1lclRpY2ssDQorICAgICAgICAgICAgICAgICAg ICBOaWMsDQorICAgICAgICAgICAgICAgICAgICAmTmljLT5UaWNrVGltZXINCisgICAgICAgICAg ICAgICAgICAgICk7DQorICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgICBnb3Rv IEVSUk9SMjsNCisgICAgfQ0KIA0KLSAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBMX0NBTExC QUNLKTsNCi0gIEluc2VydFRhaWxMaXN0ICgmbVByaXZhdGUtPk5pY0xpc3QsICZOaWMtPkxpbmsp Ow0KLSAgTmljLT5OaWNJbmRleCA9IG1Qcml2YXRlLT5OaWNDb3VudCsrOw0KLSAgaWYgKG1Qcml2 YXRlLT5DdXJyZW50TmljID09IE5VTEwpIHsNCi0gICAgbVByaXZhdGUtPkN1cnJlbnROaWMgPSBO aWM7DQotICB9DQorICAgIFN0YXR1cyA9IGdCUy0+U2V0VGltZXIgKE5pYy0+VGlja1RpbWVyLCBU aW1lclBlcmlvZGljLCBFRklfVElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoNTAwKSk7DQorICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgICBnb3RvIEVSUk9SMzsNCisgICAgfQ0K IA0KLSAgZ0JTLT5SZXN0b3JlVFBMIChPbGRUcGwpOw0KKyAgICBOaWMtPkNvbm5lY3RTdGF0ZSA9 IFdpZmlNZ3JEaXNjb25uZWN0ZWQ7DQorICAgIE5pYy0+U2NhblN0YXRlICAgID0gV2lmaU1nclNj YW5GaW5pc2hlZDsNCisNCisgICAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBMX0NBTExCQUNL KTsNCisgICAgSW5zZXJ0VGFpbExpc3QgKCZtUHJpdmF0ZS0+TmljTGlzdCwgJk5pYy0+TGluayk7 DQorICAgIE5pYy0+TmljSW5kZXggPSBtUHJpdmF0ZS0+TmljQ291bnQrKzsNCisgICAgaWYgKG1Q cml2YXRlLT5DdXJyZW50TmljID09IE5VTEwpIHsNCisgICAgICBtUHJpdmF0ZS0+Q3VycmVudE5p YyA9IE5pYzsNCisgICAgfQ0KKw0KKyAgICBnQlMtPlJlc3RvcmVUUEwgKE9sZFRwbCk7DQorICB9 DQogDQogICBTdGF0dXMgPSBnQlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoDQogICAgICAg ICAgICAgICAgICAgJkNvbnRyb2xsZXJIYW5kbGUsDQpAQCAtMzg1LDEwICs0MTgsMTEgQEAgV2lm aU1nckR4ZURyaXZlckJpbmRpbmdTdG9wICgNCiAgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAg ICAgICAgKkNoaWxkSGFuZGxlQnVmZmVyIE9QVElPTkFMDQogICApDQogew0KLSAgRUZJX1NUQVRV UyAgICAgICAgICAgICAgICAgU3RhdHVzOw0KLSAgRUZJX1RQTCAgICAgICAgICAgICAgICAgICAg T2xkVHBsOw0KLSAgV0lGSV9NR1JfUFJJVkFURV9QUk9UT0NPTCAgKldpZmlNZ3JJZGVudGlmaWVy Ow0KLSAgV0lGSV9NR1JfREVWSUNFX0RBVEEgICAgICAgKk5pYzsNCisgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1RQTCAgICAgICAgICAgICAgICAgICAg ICAgICBPbGRUcGw7DQorICBXSUZJX01HUl9QUklWQVRFX1BST1RPQ09MICAgICAgICpXaWZpTWdy SWRlbnRpZmllcjsNCisgIFdJRklfTUdSX0RFVklDRV9EQVRBICAgICAgICAgICAgKk5pYzsNCisg IEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxlU3luY1Byb3RvY29s Ow0KIA0KICAgU3RhdHVzID0gZ0JTLT5PcGVuUHJvdG9jb2wgKA0KICAgICAgICAgICAgICAgICAg IENvbnRyb2xsZXJIYW5kbGUsDQpAQCAtNDgxLDcgKzUxNSwxNSBAQCBXaWZpTWdyRHhlRHJpdmVy QmluZGluZ1N0b3AgKA0KICAgLy8NCiAgIE9sZFRwbCA9IGdCUy0+UmFpc2VUUEwgKFRQTF9DQUxM QkFDSyk7DQogDQotICBSZW1vdmVFbnRyeUxpc3QgKCZOaWMtPkxpbmspOw0KKyAgU3RhdHVzID0g Z0JTLT5Mb2NhdGVQcm90b2NvbCAoDQorICAgICAgICAgICAgICAgICAgJmdFZmlXaUZpUHJvZmls ZVN5bmNQcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAg ICAgICAgICAoVk9JRCAqKikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wNCisgICAgICAgICAgICAg ICAgICApOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBSZW1vdmVFbnRyeUxp c3QgKCZOaWMtPkxpbmspOw0KKyAgfQ0KKw0KICAgbVByaXZhdGUtPk5pY0NvdW50LS07DQogICBp ZiAobVByaXZhdGUtPkN1cnJlbnROaWMgPT0gTmljKSB7DQogICAgIG1Qcml2YXRlLT5DdXJyZW50 TmljID0gTlVMTDsNCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdl ckR4ZS9XaWZpQ29ubmVjdGlvbk1nckR4ZS5oIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1h bmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEeGUuaA0KaW5kZXggN2IyZTQxZTE1NS4uMDQ3Zjg1 ZGJjMiAxMDA2NDQNCi0tLSBhL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dp ZmlDb25uZWN0aW9uTWdyRHhlLmgNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHhlLmgNCkBAIC00Nyw2ICs0Nyw3IEBADQogI2luY2x1 ZGUgPFByb3RvY29sL1NpbXBsZU5ldHdvcmsuaD4NCiAjaW5jbHVkZSA8UHJvdG9jb2wvU2ltcGxl RmlsZVN5c3RlbS5oPg0KICNpbmNsdWRlIDxQcm90b2NvbC9FYXBDb25maWd1cmF0aW9uLmg+DQor I2luY2x1ZGUgPFByb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmg+DQogDQogLy8NCiAv LyBQcm9kdWNlZCBQcm90b2NvbHMNCkBAIC03Myw3ICs3NCw4IEBADQogLy8NCiAjZGVmaW5lIFdJ RklfTUdSX0RYRV9WRVJTSU9OICAweGINCiANCi0jZGVmaW5lIE9VSV9JRUVFXzgwMjExSSAgMHhB QzBGMDANCisjZGVmaW5lIE9VSV9JRUVFXzgwMjExSSAgICAgICAgICAgICAgMHhBQzBGMDANCisj ZGVmaW5lIE1BWF9XSUZJX0NPTk5FVElPTl9BVFRFTVBUUyAgMw0KIA0KIHR5cGVkZWYgZW51bSB7 DQogICBJZWVlODAyMTFQYWlyd2lzZUNpcGhlclN1aXRlVXNlR3JvdXBDaXBoZXJTdWl0ZSA9IDAs IGRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29u bmVjdGlvbk1nckltcGwuYyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dp ZmlDb25uZWN0aW9uTWdySW1wbC5jDQppbmRleCA1OWJhYzQ4YzQyLi5hNzNhYjlmNzEwIDEwMDY0 NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rp b25NZ3JJbXBsLmMNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dp ZmlDb25uZWN0aW9uTWdySW1wbC5jDQpAQCAtMTksNiArMTksOCBAQCBFRklfRUFQX1RZUEUgIG1F YXBTZWNvbmRBdXRoTWV0aG9kW10gPSB7DQogICBFRklfRUFQX1RZUEVfTVNDSEFQVjINCiB9Ow0K IA0KK1VJTlQ4ICBtV2lmaUNvbm5lY3Rpb25Db3VudCA9IDA7DQorDQogLyoqDQogICBUaGUgY2Fs bGJhY2sgZnVuY3Rpb24gZm9yIHNjYW4gb3BlcmF0aW9uLiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMg bmV0d29ya3MNCiAgIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0IHNjYW4gcmVzdWx0LCBhbmQgdHJp Z2dlciBVSSByZWZyZXNoLg0KQEAgLTQyNCwxOCArNDI2LDI2IEBAIFdpZmlNZ3JDb25maWdQYXNz d29yZCAoDQogICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KICAgfQ0KIA0KLSAgQXNjaWlQYXNz d29yZCA9IEFsbG9jYXRlWmVyb1Bvb2wgKChTdHJMZW4gKFByb2ZpbGUtPlBhc3N3b3JkKSArIDEp ICogc2l6ZW9mIChVSU5UOCkpOw0KKyAgaWYgKFN0ckxlbiAoUHJvZmlsZS0+UGFzc3dvcmQpID49 IFBBU1NXT1JEX1NUT1JBR0VfU0laRSkgew0KKyAgICBBU1NFUlQgKEVGSV9JTlZBTElEX1BBUkFN RVRFUik7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQorICBB c2NpaVBhc3N3b3JkID0gQWxsb2NhdGVaZXJvUG9vbCAoKFN0ckxlbiAoUHJvZmlsZS0+UGFzc3dv cmQpICsgMSkgKiANCisgc2l6ZW9mIChDSEFSOCkpOw0KICAgaWYgKEFzY2lpUGFzc3dvcmQgPT0g TlVMTCkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQogDQotICBV bmljb2RlU3RyVG9Bc2NpaVN0clMgKFByb2ZpbGUtPlBhc3N3b3JkLCAoQ0hBUjggKilBc2NpaVBh c3N3b3JkLCBQQVNTV09SRF9TVE9SQUdFX1NJWkUpOw0KLSAgU3RhdHVzID0gU3VwcGxpY2FudC0+ U2V0RGF0YSAoDQotICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBsaWNhbnQsDQotICAgICAg ICAgICAgICAgICAgICAgICAgIEVmaVN1cHBsaWNhbnQ4MDIxMVBza1Bhc3N3b3JkLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICBBc2NpaVBhc3N3b3JkLA0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAoU3RyTGVuIChQcm9maWxlLT5QYXNzd29yZCkgKyAxKSAqIHNpemVvZiAoVUlOVDgpDQot ICAgICAgICAgICAgICAgICAgICAgICAgICk7DQorICBTdGF0dXMgPSBVbmljb2RlU3RyVG9Bc2Np aVN0clMgKFByb2ZpbGUtPlBhc3N3b3JkLCAoQ0hBUjggDQorICopQXNjaWlQYXNzd29yZCwgKFN0 ckxlbiAoUHJvZmlsZS0+UGFzc3dvcmQpICsgMSkpOyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykp IHsNCisgICAgU3RhdHVzID0gU3VwcGxpY2FudC0+U2V0RGF0YSAoDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3VwcGxpY2FudCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlT dXBwbGljYW50ODAyMTFQc2tQYXNzd29yZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBB c2NpaVBhc3N3b3JkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJMZW4gKFByb2Zp bGUtPlBhc3N3b3JkKSArIDEpICogc2l6ZW9mIChDSEFSOCkNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICApOw0KKyAgfQ0KKw0KICAgWmVyb01lbSAoQXNjaWlQYXNzd29yZCwgQXNjaWlTdHJM ZW4gKChDSEFSOCAqKUFzY2lpUGFzc3dvcmQpICsgMSk7DQogICBGcmVlUG9vbCAoQXNjaWlQYXNz d29yZCk7DQogDQpAQCAtNDY2LDYgKzQ3Niw3IEBAIFdpZmlNZ3JDb25maWdFYXAgKA0KICAgKQ0K IHsNCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1dJ RklfUFJPRklMRV9TWU5DX1BST1RPQ09MICAqV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2w7DQogICBF RklfRUFQX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICpFYXBDb25maWc7DQogICBFRklfRUFQX1RZ UEUgICAgICAgICAgICAgICAgICAgIEVhcEF1dGhNZXRob2Q7DQogICBFRklfRUFQX1RZUEUgICAg ICAgICAgICAgICAgICAgIEVhcFNlY29uZEF1dGhNZXRob2Q7DQpAQCAtNTY3LDcgKzU3OCwxMyBA QCBXaWZpTWdyQ29uZmlnRWFwICgNCiAgICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7 DQogICAgIH0NCiANCi0gICAgVW5pY29kZVN0clRvQXNjaWlTdHJTIChQcm9maWxlLT5FYXBJZGVu dGl0eSwgSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAgIFN0YXR1cyA9IGdCUy0+TG9jYXRl UHJvdG9jb2wgKCZnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9JRCAq KikmV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wpOw0KKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVz KSkgew0KKyAgICAgIENvcHlNZW0gKElkZW50aXR5LCAmUHJvZmlsZS0+RWFwSWRlbnRpdHksIElk ZW50aXR5U2l6ZSk7DQorICAgIH0gZWxzZSB7DQorICAgICAgVW5pY29kZVN0clRvQXNjaWlTdHJT IChQcm9maWxlLT5FYXBJZGVudGl0eSwgSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAgIH0N CisNCiAgICAgU3RhdHVzID0gRWFwQ29uZmlnLT5TZXREYXRhICgNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVhcENvbmZpZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9FQVBf VFlQRV9JREVOVElUWSwgQEAgLTg5Miw2ICs5MDksMTMzIEBAIFdpZmlNZ3JQcmVwYXJlQ29ubmVj dGlvbiAoDQogICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogfQ0KIA0KKy8qKg0KKyAgV2lsbCByZXNl dCBOaUMgZGF0YSwgZ2V0IHByb2ZpbGUgZnJvbSBwcm9maWxlIHN5bmMgZHJpdmVyLCBhbmQgc2Vu ZCANCitmb3INCisgIGFub3RoZXIgY29ubmVjdGlvbiBhdHRlbXB0LlRoaXMgZnVuY3Rpb24gc2hv dWxkIG5vdCBiZSBjYWxsZWQgbW9yZSANCit0aGFuDQorICAzIHRpbWVzLg0KKw0KKyAgQHBhcmFt W2luXSAgV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wgIFRoZSB0YXJnZXQgbmV0d29yayBwcm9maWxl IHRvIGNvbm5lY3QuDQorDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgICAg VGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQuDQorICBAcmV0dmFsIG90aGVyICAgICAgICAgICAg ICAgICAgICAgICAgT3BlcmF0aW9uIGZhaWx1cmUuDQorDQorKiovDQorRUZJX1NUQVRVUw0KK0Nv bm5lY3Rpb25SZXRyeSAoDQorICBJTiAgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAg KldpRmlQcm9maWxlU3luY1Byb3RvY29sDQorICApDQorew0KKyAgRUZJX1NUQVRVUyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQorICBXSUZJX01HUl9ERVZJQ0VfREFUQSAg ICAgICAgICAgICAgICAgICAgICpOaWM7DQorICBFRklfV0lSRUxFU1NfTUFDX0NPTk5FQ1RJT05f SUlfUFJPVE9DT0wgICpXbXA7DQorICBFRklfU1VQUExJQ0FOVF9QUk9UT0NPTCAgICAgICAgICAg ICAgICAgICpTdXBwbGljYW50Ow0KKyAgRUZJX0VBUF9DT05GSUdVUkFUSU9OX1BST1RPQ09MICAg ICAgICAgICAqRWFwQ29uZmlnOw0KKw0KKyAgTmljID0gTlVMTDsNCisNCisgIFN0YXR1cyA9IGdC Uy0+TG9jYXRlUHJvdG9jb2wgKA0KKyAgICAgICAgICAgICAgICAgICZnRWZpV2lGaTJQcm90b2Nv bEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAoVk9J RCAqKikmV21wDQorICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1 cykpIHsNCisgICAgcmV0dXJuIFN0YXR1czsNCisgIH0NCisNCisgIFN0YXR1cyA9IGdCUy0+TG9j YXRlUHJvdG9jb2wgKA0KKyAgICAgICAgICAgICAgICAgICZnRWZpU3VwcGxpY2FudFByb3RvY29s R3VpZCwNCisgICAgICAgICAgICAgICAgICBOVUxMLA0KKyAgICAgICAgICAgICAgICAgIChWT0lE ICoqKSZTdXBwbGljYW50DQorICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCisgICAgU3VwcGxpY2FudCA9IE5VTEw7DQorICB9DQorDQorICBTdGF0dXMg PSBnQlMtPkxvY2F0ZVByb3RvY29sICgNCisgICAgICAgICAgICAgICAgICAmZ0VmaUVhcENvbmZp Z3VyYXRpb25Qcm90b2NvbEd1aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAg ICAgICAgICAgICAoVk9JRCAqKikmRWFwQ29uZmlnDQorICAgICAgICAgICAgICAgICAgKTsNCisg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgRWFwQ29uZmlnID0gTlVMTDsNCisgIH0N CisNCisgIC8vDQorICAvLyBJbml0aWFsaXplIE5pYyBkZXZpY2UgZGF0YQ0KKyAgLy8NCisgIE5p YyA9IEFsbG9jYXRlWmVyb1Bvb2wgKHNpemVvZiAoV0lGSV9NR1JfREVWSUNFX0RBVEEpKTsgIGlm IChOaWMgPT0NCisgTlVMTCkgew0KKyAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09VUkNFUzsN CisgICAgcmV0dXJuIFN0YXR1czsNCisgIH0NCisNCisgIE5pYy0+U2lnbmF0dXJlICAgICAgICAg ICA9IFdJRklfTUdSX0RFVklDRV9EQVRBX1NJR05BVFVSRTsNCisgIE5pYy0+UHJpdmF0ZSAgICAg ICAgICAgICA9IG1Qcml2YXRlOw0KKyAgTmljLT5XbXAgICAgICAgICAgICAgICAgID0gV21wOw0K KyAgTmljLT5TdXBwbGljYW50ICAgICAgICAgID0gU3VwcGxpY2FudDsNCisgIE5pYy0+RWFwQ29u ZmlnICAgICAgICAgICA9IEVhcENvbmZpZzsNCisgIE5pYy0+VXNlclNlbGVjdGVkUHJvZmlsZSA9 IE5VTEw7DQorICBOaWMtPk9uZVRpbWVTY2FuUmVxdWVzdCAgPSBGQUxTRTsNCisNCisgIGlmIChO aWMtPlN1cHBsaWNhbnQgIT0gTlVMTCkgew0KKyAgICBTdGF0dXMgPSBXaWZpTWdyR2V0U3VwcG9y dGVkU3VpdGVzIChOaWMpOyAgfQ0KKw0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCisg ICAgSW5pdGlhbGl6ZUxpc3RIZWFkICgmTmljLT5Qcm9maWxlTGlzdCk7DQorDQorICAgIE5pYy0+ Q29ubmVjdFBlbmRpbmdOZXR3b3JrID0gKFdJRklfTUdSX05FVFdPUktfUFJPRklMRSAqKUFsbG9j YXRlWmVyb1Bvb2wgKHNpemVvZiAoV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFKSk7DQorICAgIGlm IChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayA9PSBOVUxMKSB7DQorICAgICAgU3RhdHVzID0g RUZJX09VVF9PRl9SRVNPVVJDRVM7DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltXaUZp IENvbm5lY3Rpb24gTWFuYWdlcl0gRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgQ29ubmVj dFBlbmRpbmdOZXR3b3JrXG4iKSk7DQorICAgICAgZ290byBFUlJPUjsNCisgICAgfQ0KKw0KKyAg ICBTdGF0dXMgPSBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jR2V0UHJv ZmlsZSAoTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmssIE5pYy0+TWFjQWRkcmVzcyk7DQorICAg IGlmICghRUZJX0VSUk9SIChTdGF0dXMpICYmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAh PSBOVUxMKSkgew0KKyAgICAgIFN0YXR1cyA9IFdpZmlNZ3JDb25uZWN0VG9OZXR3b3JrIChOaWMs IE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrKTsNCisgICAgICBpZiAoIUVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCisgICAgICB9DQorICAgIH0gZWxzZSB7 DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltXaUZpIENvbm5lY3Rpb24gTWFuYWdlcl0g RmFpbGVkIHRvIGdldCBXaUZpIHByb2ZpbGUgd2l0aCBzdGF0dXMgJXJcbiIsIFN0YXR1cykpOw0K KyAgICB9DQorICB9IGVsc2Ugew0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiW1dpRmkgQ29u bmVjdGlvbiBNYW5hZ2VyXSBGYWlsZWQgdG8gZ2V0IA0KKyBTdXBwb3J0ZWQgc3VpdGVzIHdpdGgg c3RhdHVzICVyXG4iLCBTdGF0dXMpKTsgIH0NCisNCisgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5n TmV0d29yayAhPSBOVUxMKSB7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yay0+ TmV0d29yay5BS01TdWl0ZSAhPSBOVUxMKSB7DQorICAgICAgRnJlZVBvb2wgKE5pYy0+Q29ubmVj dFBlbmRpbmdOZXR3b3JrLT5OZXR3b3JrLkFLTVN1aXRlKTsNCisgICAgfQ0KKw0KKyAgICBpZiAo TmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmstPk5ldHdvcmsuQ2lwaGVyU3VpdGUgIT0gTlVMTCkg ew0KKyAgICAgIEZyZWVQb29sIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yay0+TmV0d29yay5D aXBoZXJTdWl0ZSk7DQorICAgIH0NCisNCisgICAgRnJlZVBvb2wgKE5pYy0+Q29ubmVjdFBlbmRp bmdOZXR3b3JrKTsgIH0NCisNCitFUlJPUjoNCisgIGlmIChOaWMtPlN1cHBsaWNhbnQgIT0gTlVM TCkgew0KKyAgICBpZiAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkQUtNU3VpdGVzICE9 IE5VTEwpIHsNCisgICAgICBGcmVlUG9vbCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVk QUtNU3VpdGVzKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3Vw cG9ydGVkU3dDaXBoZXJTdWl0ZXMgIT0gTlVMTCkgew0KKyAgICAgIEZyZWVQb29sIChOaWMtPlN1 cHBvcnRlZFN1aXRlcy5TdXBwb3J0ZWRTd0NpcGhlclN1aXRlcyk7DQorICAgIH0NCisNCisgICAg aWYgKE5pYy0+U3VwcG9ydGVkU3VpdGVzLlN1cHBvcnRlZEh3Q2lwaGVyU3VpdGVzICE9IE5VTEwp IHsNCisgICAgICBGcmVlUG9vbCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkSHdDaXBo ZXJTdWl0ZXMpOw0KKyAgICB9DQorICB9DQorDQorICBGcmVlUG9vbCAoTmljKTsNCisNCisgIHJl dHVybiBTdGF0dXM7DQorfQ0KKw0KIC8qKg0KICAgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBj b25uZWN0IG9wZXJhdGlvbi4NCiANCkBAIC05MDgsMTIgKzEwNTIsMTMgQEAgV2lmaU1nck9uQ29u bmVjdEZpbmlzaGVkICgNCiAgIElOICBWT0lEICAgICAgICpDb250ZXh0DQogICApDQogew0KLSAg RUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgU3RhdHVzOw0KLSAgV0lGSV9NR1JfTUFDX0NPTkZJ R19UT0tFTiAgKkNvbmZpZ1Rva2VuOw0KLSAgV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFICAgKkNv bm5lY3RlZFByb2ZpbGU7DQotICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eVR5 cGU7DQotICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICBTU0lkTGVuOw0KLSAgQ0hBUjggICAg ICAgICAgICAgICAgICAgICAgKkFzY2lpU1NJZDsNCisgIEVGSV9TVEFUVVMgICAgICAgICAgICAg ICAgICAgICAgU3RhdHVzOw0KKyAgV0lGSV9NR1JfTUFDX0NPTkZJR19UT0tFTiAgICAgICAqQ29u ZmlnVG9rZW47DQorICBXSUZJX01HUl9ORVRXT1JLX1BST0ZJTEUgICAgICAgICpDb25uZWN0ZWRQ cm9maWxlOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eVR5cGU7 DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTSWRMZW47DQorICBDSEFSOCAg ICAgICAgICAgICAgICAgICAgICAgICAgICpBc2NpaVNTSWQ7DQorICBFRklfV0lGSV9QUk9GSUxF X1NZTkNfUFJPVE9DT0wgICpXaUZpUHJvZmlsZVN5bmNQcm90b2NvbDsNCiANCiAgIEFTU0VSVCAo Q29udGV4dCAhPSBOVUxMKTsNCiANCkBAIC05MjUsNiArMTA3MCwyNCBAQCBXaWZpTWdyT25Db25u ZWN0RmluaXNoZWQgKA0KICAgQVNTRVJUIChDb25maWdUb2tlbi0+VHlwZSA9PSBUb2tlblR5cGVD b25uZWN0TmV0d29ya1Rva2VuKTsNCiANCiAgIEFTU0VSVCAoQ29uZmlnVG9rZW4tPlRva2VuLkNv bm5lY3ROZXR3b3JrVG9rZW4gIT0gTlVMTCk7DQorDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVBy b3RvY29sICgmZ0VmaVdpRmlQcm9maWxlU3luY1Byb3RvY29sR3VpZCwgTlVMTCwgDQorIChWT0lE ICoqKSZXaUZpUHJvZmlsZVN5bmNQcm90b2NvbCk7ICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KKyAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jU2V0Q29ubmVj dFN0YXRlIChDb25maWdUb2tlbi0+VG9rZW4uQ29ubmVjdE5ldHdvcmtUb2tlbi0+UmVzdWx0Q29k ZSk7DQorICAgIGlmICgobVdpZmlDb25uZWN0aW9uQ291bnQgPCBNQVhfV0lGSV9DT05ORVRJT05f QVRURU1QVFMpICYmDQorICAgICAgICAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5lY3ROZXR3b3Jr VG9rZW4tPlJlc3VsdENvZGUgIT0gQ29ubmVjdFN1Y2Nlc3MpKQ0KKyAgICB7DQorICAgICAgbVdp ZmlDb25uZWN0aW9uQ291bnQrKzsNCisgICAgICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCisg ICAgICBTdGF0dXMgPSBDb25uZWN0aW9uUmV0cnkgKFdpRmlQcm9maWxlU3luY1Byb3RvY29sKTsN CisgICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAgcmV0dXJuOw0KKyAg ICAgIH0NCisNCisgICAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5j U2V0Q29ubmVjdFN0YXRlIChTdGF0dXMpOw0KKyAgICB9DQorICB9DQorDQogICBpZiAoQ29uZmln VG9rZW4tPlRva2VuLkNvbm5lY3ROZXR3b3JrVG9rZW4tPlN0YXR1cyAhPSBFRklfU1VDQ0VTUykg ew0KICAgICBpZiAoQ29uZmlnVG9rZW4tPk5pYy0+T25lVGltZUNvbm5lY3RSZXF1ZXN0KSB7DQog ICAgICAgLy8NCmRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4 ZS9XaWZpQ29ubmVjdGlvbk1nck1pc2MuYyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyTWlzYy5jDQppbmRleCA0YWQ1NjQzYzI0Li44N2FkZmM1 MDMzIDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lm aUNvbm5lY3Rpb25NZ3JNaXNjLmMNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5h Z2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyTWlzYy5jDQpAQCAtNjcyLDEwICs2NzIsMjMgQEAgV2lm aU1nckNsZWFuUHJvZmlsZVNlY3JldHMgKA0KICAgSU4gIFdJRklfTUdSX05FVFdPUktfUFJPRklM RSAgKlByb2ZpbGUNCiAgICkNCiB7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAg IFN0YXR1czsNCisgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxl U3luY1Byb3RvY29sOw0KKw0KICAgWmVyb01lbSAoUHJvZmlsZS0+UGFzc3dvcmQsIHNpemVvZiAo Q0hBUjE2KSAqIFBBU1NXT1JEX1NUT1JBR0VfU0laRSk7DQogICBaZXJvTWVtIChQcm9maWxlLT5F YXBQYXNzd29yZCwgc2l6ZW9mIChDSEFSMTYpICogUEFTU1dPUkRfU1RPUkFHRV9TSVpFKTsNCiAg IFplcm9NZW0gKFByb2ZpbGUtPlByaXZhdGVLZXlQYXNzd29yZCwgc2l6ZW9mIChDSEFSMTYpICog UEFTU1dPUkRfU1RPUkFHRV9TSVpFKTsNCiANCisgIC8vDQorICAvLyAgV2hlbiBFRkkgV2lGaSBw cm9maWxlIHN5bmMgcHJvdG9jb2wgaXMgZm91bmQgdGhlIHN5c3RlbSBpcyANCisgcGVyZm9ybWlu ZyBhIHJlY292ZXJ5IGJvb3QgaW4gc2VjdXJlICAvLyAgYm9vdCBtb2RlLiBUaGUgcHJvZmlsZSBz eW5jIA0KKyBkcml2ZXIgd2lsbCBtYW5hZ2UgdGhlIENBIGNlcnRpZmljYXRlLCBjbGllbnQgY2Vy dGlmaWNhdGUsIGFuZCBrZXkgIC8vICBkYXRhLCBjbGVhbmluZyB0aGVtIGF0IGV4aXQgYm9vdCBz ZXJ2aWNlcy4NCisgIC8vDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVdp RmlQcm9maWxlU3luY1Byb3RvY29sR3VpZCwgTlVMTCwgDQorIChWT0lEICoqKSZXaUZpUHJvZmls ZVN5bmNQcm90b2NvbCk7ICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm47 DQorICB9DQorDQogICBpZiAoUHJvZmlsZS0+Q0FDZXJ0RGF0YSAhPSBOVUxMKSB7DQogICAgIFpl cm9NZW0gKFByb2ZpbGUtPkNBQ2VydERhdGEsIFByb2ZpbGUtPkNBQ2VydFNpemUpOw0KICAgICBG cmVlUG9vbCAoUHJvZmlsZS0+Q0FDZXJ0RGF0YSk7DQotLQ0KMi4zNy4zLndpbmRvd3MuMQ0KDQoN Cg0KDQoNCg0K