From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.22.1657745974910956914 for ; Wed, 13 Jul 2022 13:59:35 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=cP7cDjf5; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657745974; x=1689281974; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=M4Fxqz2fgWy9rFIVN5lB9pmmDzln+P1LbrEeJr/++WE=; b=cP7cDjf5J+VzP5QFIqc1p6b8EZRtdsZvCxJzLLVoI5Sk/zzeKmv6NOll clmkKXGtCqIWjmGkPaj1sX2PGLIkNsRq6BhTtQxkJan9o6A/jW0qSK9kz FfqdZ7iUjuANFzG1o9A5Df7NJ+4Lb9cPqCdlpJuTn3uHZKH5NkfVm4CJT Q7XEVAurAbcCRXD1ncMxKpzMJ/T6fniu9KSjgrN6jWRJWL7jve06qpPBC txUrL91z1/Pu+REn4avCSb2Grw1kkq09tYn8Lrat+5Nyb5BNjI8D+5fPs 2WZDOBvBeROR8gis8oSf+711jGD4T1SjcZ8zKfgL4IagX/OtdordCavVq w==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="265756672" X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="265756672" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 13:59:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="628458167" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga001.jf.intel.com with ESMTP; 13 Jul 2022 13:59:34 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Jul 2022 13:59:33 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Jul 2022 13:59:32 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 13 Jul 2022 13:59:32 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 13 Jul 2022 13:59:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gre3S371hw+JCqZIw1uLxyz00hzQWmckiwgv23kbjyMFs8oDengYZXkjGNc8YCGJ6pUjNIswxapmt8XuHp/zTKtWpr5WiG2rdprWwyrySBdr53lqWjxQbfsH6QulDr0W+YaKsiGNnrFUWmDFDRblJt7HNn8inFyR5IPkKSpDsoi8Gb64FMyqjtpfAjshnOXhG6JbH2+zx6eR+e7dZX2kmbvKzj4MyIC1qVtRIf/w6VJYt20FYli/Wh2YzZ9zUS/SPc/YwC3Viripr4A6iBEKaAksSiaSr3CoT4NKFDP62ej1eX2UwiFKKe/Irt81QjDVDt1DS1PVgFSgyNX+y+wRzg== 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=M4Fxqz2fgWy9rFIVN5lB9pmmDzln+P1LbrEeJr/++WE=; b=TeoDiRisLFtAXR7haNI2XPHfHzEnm7wUY3HSwsoIXiMaxXWrnbolX5xgzFSj5iBWvzS/tM43xkddjwmTua0y6BQ8q0+G0Ggsqi1krlOsB4TBpeRDbrfjSFFaWL5oOjD/DDtizfcxTZpqTULTjHKpSo7FnlNT6vGdwCpH3mNpPNJITOb/0IczNo/ao1FcYd94UPH4CUb7UIuiJWGtJsg6c74U1brbFqyyOk/Jw61xJ16iT+PUNUFkrEeVk1RQaN58PJAT3KKl3ea2ZZpYyRBGn+ES9SIVLUufcSR5zFoHtedw0Tmlwli/kIZq2erwSrnGsiF0VtIah2yPGdjX6ApEag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by DM6PR11MB2617.namprd11.prod.outlook.com (2603:10b6:5:ce::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.26; Wed, 13 Jul 2022 20:59:29 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::c815:3a9e:d7a7:49a6]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::c815:3a9e:d7a7:49a6%7]) with mapi id 15.20.5417.026; Wed, 13 Jul 2022 20:59:29 +0000 From: "Oram, Isaac W" To: "Chaganty, Rangasai V" , "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" CC: "Ni, Ray" , "Desimone, Nathaniel L" Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] IntelSiliconPkg/SpiFvbService: Add support for VariableFlashInfoLib Thread-Topic: [edk2-devel] [edk2-platforms][PATCH v2 1/1] IntelSiliconPkg/SpiFvbService: Add support for VariableFlashInfoLib Thread-Index: AQHYlkPDJs1lwTQkiUS29NY3fxZDAa18hHIAgABF2IA= Date: Wed, 13 Jul 2022 20:59:29 +0000 Message-ID: References: <16FDBB890A0E8B8C.7323@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bb9b9c3e-68e6-410c-cca5-08da65129438 x-ms-traffictypediagnostic: DM6PR11MB2617:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1mGAWGmOttUbEugyzE3l5Iy3VE0JTjmOIsULhiyr3XHtVD/l0Dcb5bfbflhsfmDk/6jNVFTrbx7FbZVFmli+EW41ffkyoJPtC/ktcG2+0AH7L0My+ZGGwWmYjNLzhirJXKk+G+8Xkbt4p/EsyuKOdIQnHqqHzpZuIHZdzSlPW5BCtP2Dr58XV1NTw4PLAf3BkNWHs080rLhDPuYdqK1MSmRV+Qge0hRrBOg20HykMVqAN2FDRL3o0inIR9BrHZDExr7HR2XPqw8poqzPnnm8j6hT2RZjlWRqs2KT2xE4WfQuiRl1phFrYDNe5x2fKOI524oh8q4V5C39CWvxSi/dwBx+I9320Od6I+29uPtaw/BthLRzxPjfQfvSslQkN9GuH5U6tmWwc8/m/RGG5dZ2PiwP0nh8muvrivJNCo02hp4+IrZmwyR5AQZBCuQ/1iRkV0r5Lc280lDaBb2TPKxUoqGISpYp0p28+dvr00Ii5Yl3rIM0BCJZNT8yRlee0E9PCsHlI2YhlwyliYBv1ZZSNUJ8HyQdivUaZnMQ2YBdgf/tB5gIQh7g5bDSRRrrUzOrgjwgb6rC1MCexq/JPJkVHIoIzn9ZtnjI+EDKmBSknWzDGp073b0/fFMSdNfSyAE1lbWEFQ4yJTpipyVdBFlPfyprM1nXa5itdiSebHK16O7zhjoUpnTfVqW1K0bFrEGHHl6PYaJRbpW8F5k1f0B/j+Dxhafkff9QFUwMqnTXHVobHqNCUOfcRY3IV7qtm0tQeqkbAq/4PaTiCuNVb5QQaJ2Lw9YOKAUyQfDgZl+XjLf3lv5kjMVspKKJTVzeXWrkp628bQN+bd3sJL2NxnSCtA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(396003)(376002)(136003)(366004)(346002)(66556008)(5660300002)(8676002)(54906003)(38100700002)(33656002)(82960400001)(110136005)(64756008)(8936002)(52536014)(19627235002)(66446008)(83380400001)(86362001)(4326008)(41300700001)(38070700005)(316002)(66476007)(76116006)(26005)(186003)(107886003)(7696005)(122000001)(66946007)(30864003)(71200400001)(53546011)(9686003)(55016003)(2906002)(45080400002)(478600001)(6506007)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L3AwSlBobkM2TnMwM3BKWENmN0lZMkx3WnlLa0ZIK096bTVYdGdVa3AxaUFa?= =?utf-8?B?d1lCOUozL2FMVGU3REFHeWxKWTRSRndKUUNhblQybWE3RHp5T2h3R1A2MVZo?= =?utf-8?B?MENDQUtocE5ocFplVmNhZnJoY3BQMkFGZjFiMzMvLzFWUTRvNGRPZnBjdVoz?= =?utf-8?B?bENoS3BUTGRBT01QbFgrM1U5VS9xNTYxU3puVS9IRmFFNFl6QkZKTmdland1?= =?utf-8?B?OW9tUUQvcEZEUkpuQzJOQ1haRi92Z29wVlN0ZDU0MHpsa2NxMTVuQWZVb004?= =?utf-8?B?aDlqV2NkalhrYWQyNDJaU0RJZEc3aGRGTi9ZbXRLbjdGdFBXdTcwMzNxbDcx?= =?utf-8?B?bVJpZFA1MkNPTnYxMnkzc25xbXhGcUYyNTNPQmd3N3RkdnFHRHgySHRiWDBP?= =?utf-8?B?QktlTGNwZXQ0OXJFczJxblQyQ0U4VWo4T01MZTVlc2I2b1RBZFhJWkhyVXQx?= =?utf-8?B?U3lpbGh5SitYd3FkMUJ2aUxkQ3NsejhqcVNuYU1EQWtlTFV0UHBmSWplNmQ0?= =?utf-8?B?alBGQ01NdFdweXRyQXZDZmMzQi83K1FScUhTYU5hS25iR0JtL01qck1aQXUw?= =?utf-8?B?SlE0aEdYWCsrMCtmdEMvdHlJSkt6VjEwelVCVlpWbEMrK2ZhVVNzZWxiVVVu?= =?utf-8?B?a3ZPWWQzK3Qvb01SM29GdFA5WXB0VEFRTnBkTmZwSXJuSmh2UHpUZCt3Snkx?= =?utf-8?B?emp4dXBtL3dkVUlMQzdQZWhHYmYrSlVUYzd3UWwzcHRHTE1jU29TMC9ZN01h?= =?utf-8?B?a2J5Wmtwd01oaXVqRmlHRGRscVgwZ1duNnFJZ0Q1ZnVnM2ZEUXZhM2pwbklW?= =?utf-8?B?NmJLQ2srSVhJWXNRQi9yamJmbkJCd01UWHl4S3NqQmNLcW5NY1Z0MlByR2Ir?= =?utf-8?B?RlNWMW8rdXo0U2VpZmtSV3JhUGFZbUJaYTVvMVAwdjZOaUloL09QeVpRUi9i?= =?utf-8?B?bnUxUks3M1Vvc2Z3dUROOXk0TjN6cG54blFaOVRyZEZNc2gvOTFpdFYwVWx6?= =?utf-8?B?aHFSN2pUODhEYzNEcis3bmJOSjBQQ0NLL1huWHdCaCs1NGVKeWJRUU54UXJs?= =?utf-8?B?NWhYa1JBcGg2YWdJYzVVUkxEZkxyNjMyNXg5YkRocC9Ga0ZGYnYraUMzTStM?= =?utf-8?B?QjF4SzN0NFRsbmxPbzN2Q0J1enIzNHN0Ymp2R0h4b2xNU3lIZkpuK0xTU3VB?= =?utf-8?B?T2ZadE5iVkdYOWg4MngrUjNsdkF1d21yNjZGMGtmT01IWVVnODVxQ0VlVXdU?= =?utf-8?B?QXB2K1o5NEkrM2NmMHhVcjBSdkhXV2U0bXM0NXJkVjFQSXhLMmFSTG5aLzdm?= =?utf-8?B?c1d3aVgrbGVDd2RObWZrZmZuZW5HdXQ5WEVjK3lOdUxtaHVvRW1GWjhiVHJk?= =?utf-8?B?aXZLTnZ1SmRQTkVsWkEyeFlWeVNwM3JlSWNIMy9pbnhMUFljeGt3NlVvcG5I?= =?utf-8?B?VWxlc1B2VUxCRTVMRzhWRzhiOTVBQUhHSUNCVGFDNWJrWUlJaHlvR3BUTnVa?= =?utf-8?B?U1V5ZDlMWjRrR2xlZFIvdFl6UVdaZmVzVUhnVlpJelVTZEl2UkZ6L1I1aUNr?= =?utf-8?B?dmF3djNRUHltN3lvM3YwMnJCWC9uSUJNcXl4WjRXaTFraGZSRDZVU1I3b2gx?= =?utf-8?B?dEV5YnFia1ovVHZlUlRBbE05VXcvMi9oRVVabmVvVXAxRHBRblB4M25aMUVk?= =?utf-8?B?L2Rqak04ZHVYRTRqZHAxaTFZNG9XK25FMHNkL09EN1VNOU5BVXZIZVl3bXY1?= =?utf-8?B?V1c4MDlNN1FkNFFYMXhJU3kxdG44cTJsZk05WTZ6a3cvQy8zT0ZENWY1bGNM?= =?utf-8?B?ellkUTVLbGtVN0dRNFhlQTZYMHRzd1FjTnEyZEtxV3haeUVkZldWbTkvY2Jm?= =?utf-8?B?eXZ6NDJlUjFsS01qNitDaFA5UTJlbGJPcDh6Y0tnVU1NVFhUR0RhamxKZGhC?= =?utf-8?B?aUlhb2VCZ1VweVN6Q3BoYXZ4dmg4TzI1Ty9ZR0FwSzBWVFBmeno5cmtrY1k3?= =?utf-8?B?Y09CeU13MGxBMFhVOFZXRlNSVUZnNkF2UCtsNUppcnQ4ZGF6RWNZU3BDNTVv?= =?utf-8?B?R3lZb1lwMGlpTkRQd0s2bWduaUsvRjY5MVBWN1B2N0xTL3ZDTkxTejdTdTlT?= =?utf-8?Q?txlzrx6OmBm4MQLxq8+Oxm2/Y?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb9b9c3e-68e6-410c-cca5-08da65129438 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2022 20:59:29.6444 (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: O6xaQbiGTdGywkFQYBwhOxaZHOyhpE9ysU8jKXC1PE/lP+F3DzC+FzhLde2/emJgWHXrBJY1QCAzAPI7vgJH2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2617 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UHVzaGVkIGFzIDk5MzU0NzJiMTkuLmJjOTNkZWE5YjkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGlu dGVsLmNvbT4gDQpTZW50OiBXZWRuZXNkYXksIEp1bHkgMTMsIDIwMjIgOTo0OSBBTQ0KVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tDQpDYzogTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRl bC5jb20+OyBEZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVs LmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2 MiAxLzFdIEludGVsU2lsaWNvblBrZy9TcGlGdmJTZXJ2aWNlOiBBZGQgc3VwcG9ydCBmb3IgVmFy aWFibGVGbGFzaEluZm9MaWINCg0KUmV2aWV3ZWQtYnk6IFNhaSBDaGFnYW50eSA8cmFuZ2FzYWku di5jaGFnYW50eUBpbnRlbC5jb20+DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQpTZW50OiBU dWVzZGF5LCBKdWx5IDEyLCAyMDIyIDQ6MDQgUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K Q2M6IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47 IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBPcmFtLCBJc2FhYyBXIDxpc2FhYy53Lm9yYW1A aW50ZWwuY29tPjsgRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBp bnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRmb3Jtc11bUEFU Q0ggdjIgMS8xXSBJbnRlbFNpbGljb25Qa2cvU3BpRnZiU2VydmljZTogQWRkIHN1cHBvcnQgZm9y IFZhcmlhYmxlRmxhc2hJbmZvTGliDQoNClJlbWluZGVyIGFib3V0IHRoaXMgcGF0Y2guDQoNClRo YW5rcywNCk1pY2hhZWwNCg0KT24gNy8xLzIwMjIgMTA6MzkgQU0sIE1pY2hhZWwgS3ViYWNraSB3 cm90ZToNCj4gRnJvbTogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0 LmNvbT4NCj4gDQo+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTM0NzgNCj4gDQo+IEFkZHMgc3VwcG9ydCBmb3IgZ2V0dGluZyB0aGUgdmFyaWFibGUg Zmxhc2ggaW5mb3JtYXRpb24gZnJvbSANCj4gVmFyaWFibGVGbGFzaEluZm9MaWIuIFRoaXMgbGli cmFyeSBhYnN0cmFjdHMgdGhlIHNvdXJjZSBvZiBmbGFzaCANCj4gaW5mb3JtYXRpb24gc28gcGxh dGZvcm1zIGNvdWxkIGV4cGVjdCB0aGUgaW5mb3JtYXRpb24gdG8gY29tZSBmcm9tIGEgDQo+IGRp ZmZlcmVudCBzb3VyY2UgaW4gdGhlIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gdGhhbiB0aGUgUENE cyANCj4gcHJldmlvdXNseSB1c2VkIGFzIHRoZSBpbmZvcm1hdGlvbiBzb3VyY2UgaW4gdGhpcyBt b2R1bGUuDQo+IA0KPiBJbiBwYXJ0aWN1bGFyLCB0aGUgbGlicmFyeSBhbGxvd3MgU3RhbmRhbG9u ZSBNTSBwbGF0Zm9ybXMgdG8gDQo+IGR5bmFtaWNhbGx5IHBhc3MgdGhlIGluZm9ybWF0aW9uIGJl aGluZCB0aGUgbGlicmFyeSBBUEkuDQo+IA0KPiBDYzogUmFuZ2FzYWkgViBDaGFnYW50eSA8cmFu Z2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5j b20+DQo+IENjOiBJc2FhYyBPcmFtIDxpc2FhYy53Lm9yYW1AaW50ZWwuY29tPg0KPiBDYzogTmF0 ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBTaWduZWQtb2Zm LWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiAt LS0NCj4gDQo+IE5vdGVzOg0KPiAgICAgIFYyIGNoYW5nZXM6DQo+ICAgICAgDQo+ICAgICAgMS4g VXBkYXRlZCB0aGUgYnVmZmVyIHRoYXQgaXMgcmV0dXJuZWQgZnJvbQ0KPiAgICAgICAgIEdldEZ2 YkluZm8oKSB0byBiZSBhbGxvY2F0ZWQgZnJvbSBwb29sLg0KPiAgICAgIDIuIFVwZGF0ZWQgY2Fs bHMgdG8gdGhhdCBmdW5jdGlvbiBpbiBGdmJJbml0aWFsaXplKCkNCj4gICAgICAgICB0byBmcmVl IHRoZSBuZXcgYnVmZmVyIGFmdGVyIHVzYWdlLg0KPiAgICAgIDMuIFVwZGF0ZWQgdGhlIG11bHRp cGxpY2F0aW9uIG9wZXJhdGlvbiB0byBkZXRlcm1pbmUNCj4gICAgICAgICB0aGUgRlYgbGVuZ3Ro IHRvIHVzZSBzYWZlIG11bHRpcGxpY2F0aW9uIGluDQo+ICAgICAgICAgR2VuZXJhdGVOdlN0b3Jh Z2VGdmJNZWRpYUluZm8oKS4NCj4gDQo+ICAgU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL0Z2YkluZm8uYyAgICAgICAgICAgICAgICAgICAg IHwgMTI4ICsrKysrKysrKysrKystLS0tLS0tDQo+ICAgU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGlj b25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpY2VDb21tb24uYyAg ICAgICAgIHwgIDkzICsrKysrKysrKysrKy0tDQo+ICAgU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGlj b25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpY2VNbS5jICAgICAg ICAgICAgIHwgIDQ5ICsrKysrKy0tDQo+ICAgU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpY2VDb21tb24uaCAgICAgICAg IHwgIDE4ICsrLQ0KPiAgIFNpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxh c2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2aWNlU21tLmluZiAgICAgICAgICB8ICAgNiArLQ0K PiAgIFNpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2Vy dmljZS9TcGlGdmJTZXJ2aWNlU3RhbmRhbG9uZU1tLmluZiB8ICAgNiArLQ0KPiAgIFNpbGljb24v SW50ZWwvSW50ZWxTaWxpY29uUGtnL0ludGVsU2lsaWNvblBrZy5kc2MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArKw0KPiAgIDcgZmlsZXMgY2hhbmdlZCwgMjQz IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL1Np bGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9G dmJJbmZvLmMNCj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNo L1NwaUZ2YlNlcnZpY2UvRnZiSW5mby5jDQo+IGluZGV4IDdmMjY3OGZhOWU1YS4uNjM0YTQ0MjE4 YzdhIDEwMDY0NA0KPiAtLS0NCj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvRnZiSW5mby5jDQo+ICsrKyBiL1NpbGljb24vSW50ZWwv SW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9GdmJJbmYNCj4gKysr IG8uYw0KPiBAQCAtMyw2ICszLDcgQEANCj4gICAgIFRoZXNlIGRhdGEgaXMgaW50ZW50IHRvIGRl Y291cGxlIEZWQiBkcml2ZXIgd2l0aCBGViBoZWFkZXIuDQo+ICAgDQo+ICAgQ29weXJpZ2h0IChj KSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICtD b3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+DQo+ICAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICANCj4gICAqKi8NCj4gQEAgLTEx LDUxICsxMiw5MiBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAgIA0KPiAgICNkZWZpbmUgRklSTVdBUkVfQkxPQ0tfU0laRSAgICAgICAgIDB4MTAwMDAN Cj4gICAjZGVmaW5lIEZWQl9NRURJQV9CTE9DS19TSVpFICAgICAgICBGSVJNV0FSRV9CTE9DS19T SVpFDQo+IC0NCj4gLSNkZWZpbmUgTlZfU1RPUkFHRV9CQVNFX0FERFJFU1MgICAgIEZpeGVkUGNk R2V0MzIoUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UpDQo+IC0jZGVmaW5lIFNZU1RFTV9O Vl9CTE9DS19OVU0gICAgICAgICAoKEZpeGVkUGNkR2V0MzIoUGNkRmxhc2hOdlN0b3JhZ2VWYXJp YWJsZVNpemUpKyBGaXhlZFBjZEdldDMyKFBjZEZsYXNoTnZTdG9yYWdlRnR3V29ya2luZ1NpemUp ICsgRml4ZWRQY2RHZXQzMihQY2RGbGFzaE52U3RvcmFnZUZ0d1NwYXJlU2l6ZSkpLyBGVkJfTUVE SUFfQkxPQ0tfU0laRSkNCj4gLQ0KPiAgIHR5cGVkZWYgc3RydWN0IHsNCj4gICAgIEVGSV9QSFlT SUNBTF9BRERSRVNTICAgICAgICBCYXNlQWRkcmVzczsNCj4gICAgIEVGSV9GSVJNV0FSRV9WT0xV TUVfSEVBREVSICBGdmJJbmZvOw0KPiAgICAgRUZJX0ZWX0JMT0NLX01BUF9FTlRSWSAgICAgIEVu ZFsxXTsNCj4gICB9IEVGSV9GVkIyX01FRElBX0lORk87DQo+ICAgDQo+IC0vLw0KPiAtLy8gVGhp cyBkYXRhIHN0cnVjdHVyZSBjb250YWlucyBhIHRlbXBsYXRlIG9mIGFsbCBjb3JyZWN0IEZWIGhl YWRlcnMsIA0KPiB3aGljaCBpcyB1c2VkIHRvIHJlc3RvcmUgLS8vIEZ2IGhlYWRlciBpZiBpdCdz IGNvcnJ1cHRlZC4NCj4gLS8vDQo+IC1FRklfRlZCMl9NRURJQV9JTkZPIG1QbGF0Zm9ybUZ2Yk1l ZGlhSW5mb1tdID0gew0KPiAtICAvLw0KPiAtICAvLyBTeXN0ZW4gTnZTdG9yYWdlIEZWQg0KPiAt ICAvLw0KPiAtICB7DQo+IC0gICAgTlZfU1RPUkFHRV9CQVNFX0FERFJFU1MsDQo+IC0gICAgew0K PiAtICAgICAgezAsfSwgLy9aZXJvVmVjdG9yWzE2XQ0KPiAtICAgICAgRUZJX1NZU1RFTV9OVl9E QVRBX0ZWX0dVSUQsDQo+IC0gICAgICBGVkJfTUVESUFfQkxPQ0tfU0laRSAqIFNZU1RFTV9OVl9C TE9DS19OVU0sDQo+IC0gICAgICBFRklfRlZIX1NJR05BVFVSRSwNCj4gLSAgICAgIDB4MDAwNGZl ZmYsIC8vIGNoZWNrIE1kZVBrZy9JbmNsdWRlL1BpL1BpRmlybXdhcmVWb2x1bWUuaCBmb3IgZGV0 YWlscyBvbiBFRklfRlZCX0FUVFJJQlVURVNfMg0KPiAtICAgICAgc2l6ZW9mIChFRklfRklSTVdB UkVfVk9MVU1FX0hFQURFUikgKyBzaXplb2YgKEVGSV9GVl9CTE9DS19NQVBfRU5UUlkpLA0KPiAt ICAgICAgMCwgICAgLy9DaGVja1N1bSB3aGljaCB3aWxsIGJlIGNhbHVjYXRlZCBkeW5hbWljYWxs eS4NCj4gLSAgICAgIDAsICAgIC8vRXh0SGVhZGVyT2Zmc2V0DQo+IC0gICAgICB7MCx9LCAvL1Jl c2VydmVkWzFdDQo+IC0gICAgICAyLCAgICAvL1JldmlzaW9uDQo+IC0gICAgICB7DQo+IC0gICAg ICAgIHsNCj4gLSAgICAgICAgICBTWVNURU1fTlZfQkxPQ0tfTlVNLA0KPiAtICAgICAgICAgIEZW Ql9NRURJQV9CTE9DS19TSVpFLA0KPiAtICAgICAgICB9DQo+IC0gICAgICB9DQo+IC0gICAgfSwN Cj4gLSAgICB7DQo+IC0gICAgICB7DQo+IC0gICAgICAgIDAsDQo+IC0gICAgICAgIDANCj4gLSAg ICAgIH0NCj4gLSAgICB9DQo+ICsvKioNCj4gKyAgUmV0dXJucyBGVkIgbWVkaWEgaW5mb3JtYXRp b24gZm9yIE5WIHZhcmlhYmxlIHN0b3JhZ2UuDQo+ICsNCj4gKyAgQHJldHVybiAgICAgICBGdmJN ZWRpYUluZm8gICAgICAgICAgQSBwb2ludGVyIHRvIGFuIGluc3RhbmNlIG9mIEZWQiBtZWRpYSBp bmZvIHByb2R1Y2VkIGJ5IHRoaXMgZnVuY3Rpb24uDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRoZSBidWZmZXIgaXMgYWxsb2NhdGVkIGludGVybmFsbHkgdG8gdGhp cyBmdW5jdGlvbiBhbmQgaXQgaXMgdGhlIGNhbGxlcidzDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGZyZWUgdGhlIA0KPiArIG1lbW9y eQ0KPiArDQo+ICsqKi8NCj4gK3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMNCj4gKygqRlZCX01FRElB X0lORk9fR0VORVJBVE9SKSgNCj4gKyAgT1VUIEVGSV9GVkIyX01FRElBX0lORk8gICAgICpGdmJN ZWRpYUluZm8NCj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgIFJldHVybnMgRlZCIG1lZGlhIGlu Zm9ybWF0aW9uIGZvciBOViB2YXJpYWJsZSBzdG9yYWdlLg0KPiArDQo+ICsgIEBwYXJhbVtvdXRd ICAgRnZiTWVkaWFJbmZvICAgICAgICAgIEEgcG9pbnRlciB0byBhbiBpbnN0YW5jZSBvZiBGVkIg bWVkaWEgaW5mbyBwcm9kdWNlZCBieSB0aGlzIGZ1bmN0aW9uLg0KPiArDQo+ICsgIEByZXR2YWwg ICAgICAgRUZJX1NVQ0NFU1MgICAgICAgICAgIEEgc3RydWN0dXJlIHdhcyBzdWNjZXNzZnVsbHkg d3JpdHRlbiB0byB0aGUgRnZiTWVkaWFJbmZvIGJ1ZmZlci4NCj4gKyAgQHJldHZhbCAgICAgICBF RklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIEZ2Yk1lZGlhSW5mbyBwYXJhbWV0ZXIgaXMgTlVMTC4N Cj4gKyAgQHJldHZhbCAgICAgICBFRklfVU5TVVBQT1JURUQgICAgICAgQW4gZXJyb3Igb2NjdXJy ZWQgcmV0cmlldmluZyB2YXJpYWJsZSBGViBpbmZvcm1hdGlvbi4NCj4gKyAgQHJldHZhbCAgICAg ICBFRklfQkFEX0JVRkZFUl9TSVpFICAgQW4gb3ZlcmZsb3cgb3IgdW5kZXJmbG93IG9mIHRoZSBG ViBidWZmZXIgb2NjdXJyZWQgd2l0aCB0aGUgaW5mb3JtYXRpb24gZm91bmQuDQo+ICsNCj4gKyoq Lw0KPiArRUZJX1NUQVRVUw0KPiArR2VuZXJhdGVOdlN0b3JhZ2VGdmJNZWRpYUluZm8gKA0KPiAr ICBPVVQgRUZJX0ZWQjJfTUVESUFfSU5GTyAgICAgKkZ2Yk1lZGlhSW5mbw0KPiArICApDQo+ICt7 DQo+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgICBOdkJsb2NrTnVtOw0KPiArICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgICAgVG90YWxOdlZhcmlhYmxlU3RvcmFnZVNpemU7DQo+ICsgIEVGSV9QSFlTSUNBTF9B RERSRVNTICAgICAgICBOdlN0b3JhZ2VCYXNlQWRkcmVzczsNCj4gKyAgRUZJX0ZJUk1XQVJFX1ZP TFVNRV9IRUFERVIgIEZ2YkluZm8gPSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7MCx9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9a ZXJvVmVjdG9yWzE2XQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRUZJX1NZU1RFTV9OVl9EQVRBX0ZWX0dVSUQsICAgICAgICAgICAgIC8vRmlsZVN5c3RlbUd1 aWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0Z2TGVuZ3RoDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfRlZIX1NJR05BVFVSRSwgICAgICAg ICAgICAgICAgICAgICAgLy9TaWduYXR1cmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwNGZlZmYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv L0F0dHJpYnV0ZXMNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVvZiAoRUZJX0ZJUk1XQVJFX1ZPTFVNRV9IRUFERVIpICsgICAvL0hlYWRlckxlbmd0aA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKEVG SV9GVl9CTE9DS19NQVBfRU5UUlkpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vQ2hl Y2tzdW0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4dEhlYWRlck9mZnNldA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezAsfSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVzZXJ2ZWRbMV0NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvL1JldmlzaW9uDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9CbG9j a01hcFsxXQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 MCwwfQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQo+ICsNCj4gKyAgaWYg KEZ2Yk1lZGlhSW5mbyA9PSBOVUxMKSB7DQo+ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFN RVRFUjsNCj4gICAgIH0NCj4gKw0KPiArICBaZXJvTWVtIChGdmJNZWRpYUluZm8sIHNpemVvZiAo KkZ2Yk1lZGlhSW5mbykpOw0KPiArDQo+ICsgIEdldFZhcmlhYmxlRnZJbmZvICgmTnZTdG9yYWdl QmFzZUFkZHJlc3MsIA0KPiArICZUb3RhbE52VmFyaWFibGVTdG9yYWdlU2l6ZSk7ICBpZiAoKE52 U3RvcmFnZUJhc2VBZGRyZXNzID09IDApIHx8IChUb3RhbE52VmFyaWFibGVTdG9yYWdlU2l6ZSA9 PSAwKSkgew0KPiArICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+ICsgIH0NCj4gKw0KPiAr ICBOdkJsb2NrTnVtID0gVG90YWxOdlZhcmlhYmxlU3RvcmFnZVNpemUgLyBGVkJfTUVESUFfQkxP Q0tfU0laRTsNCj4gKw0KPiArICBTdGF0dXMgPSBTYWZlVWludDY0TXVsdCAoKFVJTlQ2NClOdkJs b2NrTnVtLCBGVkJfTUVESUFfQkxPQ0tfU0laRSwgDQo+ICsgJkZ2YkluZm8uRnZMZW5ndGgpOyAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIHJldHVybiBFRklfQkFEX0JVRkZFUl9T SVpFOw0KPiArICB9DQo+ICsNCj4gKyAgRnZiSW5mby5CbG9ja01hcFswXS5OdW1CbG9ja3MgPSBO dkJsb2NrTnVtOyANCj4gKyBGdmJJbmZvLkJsb2NrTWFwWzBdLkxlbmd0aCA9IEZWQl9NRURJQV9C TE9DS19TSVpFOw0KPiArDQo+ICsgIEZ2Yk1lZGlhSW5mby0+QmFzZUFkZHJlc3MgPSBOdlN0b3Jh Z2VCYXNlQWRkcmVzczsgIENvcHlNZW0gDQo+ICsgKCZGdmJNZWRpYUluZm8tPkZ2YkluZm8sICZG dmJJbmZvLCBzaXplb2YgKEZ2YkluZm8pKTsNCj4gKw0KPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7 DQo+ICt9DQo+ICsNCj4gK0ZWQl9NRURJQV9JTkZPX0dFTkVSQVRPUiBtRnZiTWVkaWFJbmZvR2Vu ZXJhdG9yc1tdID0gew0KPiArICBHZW5lcmF0ZU52U3RvcmFnZUZ2Yk1lZGlhSW5mbw0KPiAgIH07 DQo+ICAgDQo+ICAgRUZJX1NUQVRVUw0KPiBAQCAtNjQsMTIgKzEwNiwxNiBAQCBHZXRGdmJJbmZv ICgNCj4gICAgIE9VVCBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAgICoqRnZiSW5mbw0KPiAg ICAgKQ0KPiAgIHsNCj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4g KyAgRUZJX0ZWQjJfTUVESUFfSU5GTyAgICAgICAgIEZ2Yk1lZGlhSW5mbzsNCj4gICAgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gICAgIEVGSV9GSVJNV0FSRV9WT0xVTUVf SEVBREVSICAqRnZIZWFkZXI7DQo+ICAgDQo+IC0gIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IHNp emVvZiAobVBsYXRmb3JtRnZiTWVkaWFJbmZvKSAvIHNpemVvZiAoRUZJX0ZWQjJfTUVESUFfSU5G Tyk7IEluZGV4KyspIHsNCj4gLSAgICBpZiAobVBsYXRmb3JtRnZiTWVkaWFJbmZvW0luZGV4XS5C YXNlQWRkcmVzcyA9PSBGdkJhc2VBZGRyZXNzKSB7DQo+IC0gICAgICBGdkhlYWRlciA9ICZtUGxh dGZvcm1GdmJNZWRpYUluZm9bSW5kZXhdLkZ2YkluZm87DQo+ICsgIGZvciAoSW5kZXggPSAwOyBJ bmRleCA8IEFSUkFZX1NJWkUgKG1GdmJNZWRpYUluZm9HZW5lcmF0b3JzKTsgSW5kZXgrKykgew0K PiArICAgIFN0YXR1cyA9IG1GdmJNZWRpYUluZm9HZW5lcmF0b3JzW0luZGV4XSgmRnZiTWVkaWFJ bmZvKTsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArICAgIGlmICghRUZJ X0VSUk9SIChTdGF0dXMpICYmIChGdmJNZWRpYUluZm8uQmFzZUFkZHJlc3MgPT0gRnZCYXNlQWRk cmVzcykpIHsNCj4gKyAgICAgIEZ2SGVhZGVyID0gQWxsb2NhdGVDb3B5UG9vbCAoc2l6ZW9mIA0K PiArIChFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiksICZGdmJNZWRpYUluZm8uRnZiSW5mbyk7 DQo+ICAgDQo+ICAgICAgICAgLy8NCj4gICAgICAgICAvLyBVcGRhdGUgdGhlIGNoZWNrc3VtIHZh bHVlIG9mIEZWIGhlYWRlci4NCj4gZGlmZiAtLWdpdA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxT aWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZUNv bW1vbi5jDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9T cGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlQ29tbW9uLmMgaW5kZXggZGFiODE4ZTk4MDg3 Li45NDJhYmY5NWE2NGYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxp Y29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZUNvbW1v bi5jDQo+ICsrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gv U3BpRnZiU2VydmljZS9TcGlGdmINCj4gKysrIFNlcnZpY2VDb21tb24uYw0KPiBAQCAtMyw2ICsz LDcgQEANCj4gICAgIHdoaWNoIGFyZSBjb21wbGlhbnQgd2l0aCB0aGUgSW50ZWwoUikgU2VyaWFs IEZsYXNoIEludGVyZmFjZSBDb21wYXRpYmlsaXR5IFNwZWNpZmljYXRpb24uDQo+ICAgDQo+ICAg Q29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICtDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+DQo+ICAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICANCj4gICAq Ki8NCj4gQEAgLTI1LDEyICsyNiw2IEBAIEZWX0lORk8gbVBsYXRmb3JtRnZCYXNlQWRkcmVzc1td ID0gew0KPiAgICAgezAsIDB9DQo+ICAgfTsNCj4gICANCj4gLUZWX0lORk8gbVBsYXRmb3JtRGVm YXVsdEJhc2VBZGRyZXNzW10gPSB7DQo+IC0gIHswLCAwfSwgLy8ge0ZpeGVkUGNkR2V0MzIoUGNk Rmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UpLA0KPiBGaXhlZFBjZEdldDMyKFBjZEZsYXNoTnZT dG9yYWdlVmFyaWFibGVTaXplKX0sDQo+IC0gIHswLCAwfSwgLy8ge0ZpeGVkUGNkR2V0MzIoUGNk Rmxhc2hNaWNyb2NvZGVGdkJhc2UpLA0KPiBGaXhlZFBjZEdldDMyKFBjZEZsYXNoTWljcm9jb2Rl RnZTaXplKX0sDQo+IC0gIHswLCAwfQ0KPiAtfTsNCj4gLQ0KPiAgIEZWX01FTU1BUF9ERVZJQ0Vf UEFUSCBtRnZNZW1tYXBEZXZpY2VQYXRoVGVtcGxhdGUgPSB7DQo+ICAgICB7DQo+ICAgICAgIHsN Cj4gQEAgLTUzMCw2ICs1MjUsODUgQEAgRnZiU2V0Vm9sdW1lQXR0cmlidXRlcyAoDQo+ICAgICBy ZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ICAgfQ0KPiAgIA0KPiArLyoqDQo+ICsgIEdldCB0aGUgdG90 YWwgc2l6ZSBvZiB0aGUgZmlybXdhcmUgdm9sdW1lIG9uIGZsYXNoIHVzZWQgZm9yIHZhcmlhYmxl IHN0b3JlIG9wZXJhdGlvbnMuDQo+ICsNCj4gKyAgQHBhcmFtW291dF0gQmFzZUFkZHJlc3MgICAg ICAgICBCYXNlIGFkZHJlc3Mgb2YgdGhlIHZhcmlhYmxlIHN0b3JlIGZpcm13YXJlIHZvbHVtZS4N Cj4gKyAgQHBhcmFtW291dF0gTGVuZ3RoICAgICAgICAgICAgICBMZW5ndGggaW4gYnl0ZXMgb2Yg dGhlIGZpcm13YXJlIHZvbHVtZSB1c2VkIGZvciB2YXJpYWJsZSBzdG9yZSBvcGVyYXRpb25zLg0K PiArDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0dldFZhcmlhYmxlRnZJbmZvICgNCj4gKyAgT1VUIEVG SV9QSFlTSUNBTF9BRERSRVNTICAgICAgKkJhc2VBZGRyZXNzLA0KPiArICBPVVQgVUlOVDMyICAg ICAgICAgICAgICAgICAgICAqTGVuZ3RoDQo+ICsgICkNCj4gK3sNCj4gKyAgRUZJX1NUQVRVUyAg ICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiArICBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAg ICAgICBOdkJhc2VBZGRyZXNzOw0KPiArICBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICBO dlZhcmlhYmxlQmFzZUFkZHJlc3M7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAg IExlbmd0aDY0Ow0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBOdlN0b3JlTGVu Z3RoOw0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBGdHdTcGFyZUxlbmd0aDsN Cj4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgRnR3V29ya2luZ0xlbmd0aDsNCj4g KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgVG90YWxMZW5ndGg7DQo+ICsNCj4gKyAg VG90YWxMZW5ndGggPSAwOw0KPiArICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCj4gKw0KPiArICBp ZiAoKEJhc2VBZGRyZXNzID09IE5VTEwpIHx8IChMZW5ndGggPT0gTlVMTCkpIHsNCj4gKyAgICBB U1NFUlQgKChCYXNlQWRkcmVzcyAhPSBOVUxMKSAmJiAoTGVuZ3RoICE9IE5VTEwpKTsNCj4gKyAg ICByZXR1cm47DQo+ICsgIH0NCj4gKyAgKkJhc2VBZGRyZXNzID0gMDsNCj4gKyAgKkxlbmd0aCA9 IDA7DQo+ICsNCj4gKyAgU3RhdHVzID0gR2V0VmFyaWFibGVGbGFzaE52U3RvcmFnZUluZm8gKCZO dkJhc2VBZGRyZXNzLCAmTGVuZ3RoNjQpOyANCj4gKyBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KPiArICAgIE52VmFyaWFibGVCYXNlQWRkcmVzcyA9IE52QmFzZUFkZHJlc3M7DQo+ICsgICAg Ly8gU3RheSB3aXRoaW4gdGhlIGN1cnJlbnQgVUlOVDMyIHNpemUgYXNzdW1wdGlvbnMgaW4gdGhl IHZhcmlhYmxlIHN0YWNrLg0KPiArICAgIFN0YXR1cyA9IFNhZmVVaW50NjRUb1VpbnQzMiAoTGVu Z3RoNjQsICZOdlN0b3JlTGVuZ3RoKTsgIH0gIGlmIA0KPiArIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArICAgIHJldHVybjsNCj4g KyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IEdldFZhcmlhYmxlRmxhc2hGdHdTcGFyZUluZm8gKCZO dkJhc2VBZGRyZXNzLCAmTGVuZ3RoNjQpOyANCj4gKyBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KPiArICAgIC8vIFN0YXkgd2l0aGluIHRoZSBjdXJyZW50IFVJTlQzMiBzaXplIGFzc3VtcHRp b25zIGluIHRoZSB2YXJpYWJsZSBzdGFjay4NCj4gKyAgICBTdGF0dXMgPSBTYWZlVWludDY0VG9V aW50MzIgKExlbmd0aDY0LCAmRnR3U3BhcmVMZW5ndGgpOyAgfSAgaWYgDQo+ICsgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsgICAg cmV0dXJuOw0KPiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gR2V0VmFyaWFibGVGbGFzaEZ0d1dv cmtpbmdJbmZvICgmTnZCYXNlQWRkcmVzcywgDQo+ICsgJkxlbmd0aDY0KTsgIGlmICghRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ICsgICAgLy8gU3RheSB3aXRoaW4gdGhlIGN1cnJlbnQgVUlOVDMy IHNpemUgYXNzdW1wdGlvbnMgaW4gdGhlIHZhcmlhYmxlIHN0YWNrLg0KPiArICAgIFN0YXR1cyA9 IFNhZmVVaW50NjRUb1VpbnQzMiAoTGVuZ3RoNjQsICZGdHdXb3JraW5nTGVuZ3RoKTsgIH0gIGlm IA0KPiArIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChT dGF0dXMpOw0KPiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0YXR1cyA9IFNhZmVV aW50MzJBZGQgKE52U3RvcmVMZW5ndGgsIEZ0d1NwYXJlTGVuZ3RoLCANCj4gKyAmVG90YWxMZW5n dGgpOyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9FRklfRVJST1Ig KFN0YXR1cyk7DQo+ICsgICAgcmV0dXJuOw0KPiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gU2Fm ZVVpbnQzMkFkZCAoVG90YWxMZW5ndGgsIEZ0d1dvcmtpbmdMZW5ndGgsIA0KPiArICZUb3RhbExl bmd0aCk7ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgQVNTRVJUX0VGSV9FUlJP UiAoU3RhdHVzKTsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKw0KPiArICAqQmFzZUFkZHJl c3MgPSBOdlZhcmlhYmxlQmFzZUFkZHJlc3M7DQo+ICsgICpMZW5ndGggPSBUb3RhbExlbmd0aDsN Cj4gK30NCj4gKw0KPiAgIC8qKg0KPiAgICAgQ2hlY2sgdGhlIGludGVncml0eSBvZiBmaXJtd2Fy ZSB2b2x1bWUgaGVhZGVyDQo+ICAgDQo+IEBAIC01NDUsNyArNjE5LDEyIEBAIElzRnZIZWFkZXJW YWxpZCAoDQo+ICAgICBJTiBDT05TVCBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAgICAqRnZI ZWFkZXINCj4gICAgICkNCj4gICB7DQo+IC0gIGlmIChGdkJhc2UgPT0gUGNkR2V0MzIoUGNkRmxh c2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UpKSB7DQo+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAg IE52U3RvcmFnZUZ2QmFzZUFkZHJlc3M7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgIE52 U3RvcmFnZVNpemU7DQo+ICsNCj4gKyAgR2V0VmFyaWFibGVGdkluZm8gKCZOdlN0b3JhZ2VGdkJh c2VBZGRyZXNzLCAmTnZTdG9yYWdlU2l6ZSk7DQo+ICsNCj4gKyAgaWYgKEZ2QmFzZSA9PSBOdlN0 b3JhZ2VGdkJhc2VBZGRyZXNzKSB7DQo+ICAgICAgIGlmIChDb21wYXJlTWVtICgmRnZIZWFkZXIt PkZpbGVTeXN0ZW1HdWlkLCAmZ0VmaVN5c3RlbU52RGF0YUZ2R3VpZCwgc2l6ZW9mKEVGSV9HVUlE KSkgIT0gMCApIHsNCj4gICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICAgICAgIH0NCj4gZGlmZiAt LWdpdA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3Bp RnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZU1tLmMNCj4gYi9TaWxpY29uL0ludGVsL0ludGVs U2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VN bS5jIGluZGV4IDQyYTA4MjhjNmZhZS4uNmI0YmNkY2ZlM2M0IDEwMDY0NA0KPiAtLS0NCj4gYS9T aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2Uv U3BpRnZiU2Vydg0KPiBpY2VNbS5jDQo+ICsrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29u UGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmINCj4gKysrIFNlcnZpY2VNbS5j DQo+IEBAIC0xMTMsMTUgKzExMywzMSBAQCBGdmJJbml0aWFsaXplICgNCj4gICAgIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4TGJhU2l6ZTsNCj4gICAgIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNXcml0dGVuOw0KPiAgICAgVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlc0VyYXNlZDsNCj4gKyAgVUlOVDY0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdlN0b3JhZ2VGdlNpemU7DQo+ICsNCj4g KyAgU3RhdHVzID0gR2V0VmFyaWFibGVGbGFzaE52U3RvcmFnZUluZm8gKCZCYXNlQWRkcmVzcywg DQo+ICsgJk52U3RvcmFnZUZ2U2l6ZSk7ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsg ICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiWyVhXSAtIEFuIGVycm9yIG9jdXJyZWQgZ2V0dGluZyB2YXJpYWJsZSBpbmZvIC0gJXIuXG4i LCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArDQo+ ICsgIC8vIFN0YXkgd2l0aGluIHRoZSBjdXJyZW50IFVJTlQzMiBzaXplIGFzc3VtcHRpb25zIGlu IHRoZSB2YXJpYWJsZSBzdGFjay4NCj4gKyAgU3RhdHVzID0gU2FmZVVpbnQ2NFRvVWludDMyIChC YXNlQWRkcmVzcywgDQo+ICsgJm1QbGF0Zm9ybUZ2QmFzZUFkZHJlc3NbMF0uRnZCYXNlKTsNCj4g KyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0 YXR1cyk7DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlslYV0gLSA2NC1iaXQgdmFyaWFi bGUgc3RvcmFnZSBiYXNlIGFkZHJlc3Mgbm90IHN1cHBvcnRlZC5cbiIsIF9fRlVOQ1RJT05fXykp Ow0KPiArICAgIHJldHVybjsNCj4gKyAgfQ0KPiArICBTdGF0dXMgPSBTYWZlVWludDY0VG9VaW50 MzIgKE52U3RvcmFnZUZ2U2l6ZSwgDQo+ICsgJm1QbGF0Zm9ybUZ2QmFzZUFkZHJlc3NbMF0uRnZT aXplKTsNCj4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9FRklf RVJST1IgKFN0YXR1cyk7DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlslYV0gLSA2NC1i aXQgdmFyaWFibGUgc3RvcmFnZSBzaXplIG5vdCBzdXBwb3J0ZWQuXG4iLCBfX0ZVTkNUSU9OX18p KTsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gICANCj4gLSAgbVBsYXRmb3JtRnZCYXNlQWRk cmVzc1swXS5GdkJhc2UgPSANCj4gUGNkR2V0MzIoUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJh c2UpOw0KPiAtICBtUGxhdGZvcm1GdkJhc2VBZGRyZXNzWzBdLkZ2U2l6ZSA9IFBjZEdldDMyKFBj ZEZsYXNoTnZTdG9yYWdlVmFyaWFibGVTaXplKTsNCj4gICAgIG1QbGF0Zm9ybUZ2QmFzZUFkZHJl c3NbMV0uRnZCYXNlID0gUGNkR2V0MzIoUGNkRmxhc2hNaWNyb2NvZGVGdkJhc2UpOw0KPiAgICAg bVBsYXRmb3JtRnZCYXNlQWRkcmVzc1sxXS5GdlNpemUgPSANCj4gUGNkR2V0MzIoUGNkRmxhc2hN aWNyb2NvZGVGdlNpemUpOw0KPiAtICBtUGxhdGZvcm1EZWZhdWx0QmFzZUFkZHJlc3NbMF0uRnZC YXNlID0gDQo+IFBjZEdldDMyKFBjZEZsYXNoTnZTdG9yYWdlVmFyaWFibGVCYXNlKTsNCj4gLSAg bVBsYXRmb3JtRGVmYXVsdEJhc2VBZGRyZXNzWzBdLkZ2U2l6ZSA9IA0KPiBQY2RHZXQzMihQY2RG bGFzaE52U3RvcmFnZVZhcmlhYmxlU2l6ZSk7DQo+IC0gIG1QbGF0Zm9ybURlZmF1bHRCYXNlQWRk cmVzc1sxXS5GdkJhc2UgPSANCj4gUGNkR2V0MzIoUGNkRmxhc2hNaWNyb2NvZGVGdkJhc2UpOw0K PiAtICBtUGxhdGZvcm1EZWZhdWx0QmFzZUFkZHJlc3NbMV0uRnZTaXplID0gDQo+IFBjZEdldDMy KFBjZEZsYXNoTWljcm9jb2RlRnZTaXplKTsNCj4gICANCj4gICAgIC8vDQo+ICAgICAvLyBXZSB3 aWxsIG9ubHkgY29udGludWUgd2l0aCBGVkIgaW5zdGFsbGF0aW9uIGlmIHRoZSBAQCAtMTQzLDcN Cj4gKzE1OSw4IEBAIEZ2YkluaXRpYWxpemUgKA0KPiAgICAgICAgICAgQnl0ZXNXcml0dGVuID0g MDsNCj4gICAgICAgICAgIEJ5dGVzRXJhc2VkID0gMDsNCj4gICAgICAgICAgIERFQlVHICgoREVC VUdfRVJST1IsICJFUlJPUiAtIFRoZSBGViBpbiAweCV4IGlzIGludmFsaWQhXG4iLCBGdkhlYWRl cikpOw0KPiAtICAgICAgICBTdGF0dXMgPSBHZXRGdmJJbmZvIChCYXNlQWRkcmVzcywgJkZ2SGVh ZGVyKTsNCj4gKyAgICAgICAgRnZIZWFkZXIgPSBOVUxMOw0KPiArICAgICAgICBTdGF0dXMgICA9 IEdldEZ2YkluZm8gKEJhc2VBZGRyZXNzLCAmRnZIZWFkZXIpOw0KPiAgICAgICAgICAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KPiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX1dBUk4sICJF UlJPUiAtIENhbid0IHJlY292ZXJ5IEZWIGhlYWRlciBhdCAweCV4LiAgR2V0RnZiSW5mbyBTdGF0 dXMgJXJcbiIsIEJhc2VBZGRyZXNzLCBTdGF0dXMpKTsNCj4gICAgICAgICAgICAgY29udGludWU7 DQo+IEBAIC0xNTYsMjcgKzE3Myw0MiBAQCBGdmJJbml0aWFsaXplICgNCj4gICAgICAgICAgIFN0 YXR1cyA9IFNwaUZsYXNoQmxvY2tFcmFzZSggKFVJTlROKSBCYXNlQWRkcmVzcywgJkJ5dGVzRXJh c2VkKTsNCj4gICAgICAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gICAgICAgICAg ICAgREVCVUcgKChERUJVR19XQVJOLCAiRVJST1IgLSBTcGlGbGFzaEJsb2NrRXJhc2UgRXJyb3Ig DQo+ICVyXG4iLCBTdGF0dXMpKTsNCj4gKyAgICAgICAgICBpZiAoRnZIZWFkZXIgIT0gTlVMTCkg ew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAgICAgICB9DQo+ ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAgICAgICAgICAgaWYgKEJ5 dGVzRXJhc2VkICE9IEZ2SGVhZGVyLT5CbG9ja01hcC0+TGVuZ3RoKSB7DQo+ICAgICAgICAgICAg IERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gQnl0ZXNFcmFzZWQgIT0gRnZIZWFkZXItPkJs b2NrTWFwLT5MZW5ndGhcbiIpKTsNCj4gICAgICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAi IEJ5dGVzRXJhc2VkID0gMHglWFxuIExlbmd0aCA9IA0KPiAweCVYXG4iLCBCeXRlc0VyYXNlZCwg RnZIZWFkZXItPkJsb2NrTWFwLT5MZW5ndGgpKTsNCj4gKyAgICAgICAgICBpZiAoRnZIZWFkZXIg IT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAg ICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAgICAgICAg ICAgQnl0ZXNXcml0dGVuID0gRnZIZWFkZXItPkhlYWRlckxlbmd0aDsNCj4gICAgICAgICAgIFN0 YXR1cyA9IFNwaUZsYXNoV3JpdGUgKChVSU5UTilCYXNlQWRkcmVzcywgJkJ5dGVzV3JpdHRlbiwg KFVJTlQ4KilGdkhlYWRlcik7DQo+ICAgICAgICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQo+ICAgICAgICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gU3BpRmxhc2hXcml0 ZSBFcnJvciAgJXJcbiIsIA0KPiBTdGF0dXMpKTsNCj4gKyAgICAgICAgICBpZiAoRnZIZWFkZXIg IT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAg ICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAgICAgICAg ICAgaWYgKEJ5dGVzV3JpdHRlbiAhPSBGdkhlYWRlci0+SGVhZGVyTGVuZ3RoKSB7DQo+ICAgICAg ICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gQnl0ZXNXcml0dGVuICE9IEhlYWRl ckxlbmd0aFxuIikpOw0KPiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICIgQnl0ZXNX cml0dGVuID0gMHglWFxuIEhlYWRlckxlbmd0aCA9IA0KPiAweCVYXG4iLCBCeXRlc1dyaXR0ZW4s IEZ2SGVhZGVyLT5IZWFkZXJMZW5ndGgpKTsNCj4gKyAgICAgICAgICBpZiAoRnZIZWFkZXIgIT0g TlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAgICAg ICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAgICAgICAgICAg U3RhdHVzID0gU3BpRmxhc2hMb2NrICgpOw0KPiAgICAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiAgICAgICAgICAgICBERUJVRyAoKERFQlVHX1dBUk4sICJFUlJPUiAtIFNwaUZs YXNoTG9jayBFcnJvciAgJXJcbiIsIA0KPiBTdGF0dXMpKTsNCj4gKyAgICAgICAgICBpZiAoRnZI ZWFkZXIgIT0gTlVMTCkgew0KPiArICAgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4g KyAgICAgICAgICB9DQo+ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAgICAgICAgICAgfQ0KPiAg ICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiRlYgSGVhZGVyIEAgMHglWCByZXN0b3JlZCB3 aXRoIHN0YXRpYyANCj4gZGF0YVxuIiwgQmFzZUFkZHJlc3MpKTsgQEAgLTE4NCw2ICsyMTYsOSBA QCBGdmJJbml0aWFsaXplICgNCj4gICAgICAgICAgIC8vIENsZWFyIGNhY2hlIGZvciB0aGlzIHJh bmdlLg0KPiAgICAgICAgICAgLy8NCj4gICAgICAgICAgIFdyaXRlQmFja0ludmFsaWRhdGVEYXRh Q2FjaGVSYW5nZSAoIChWT0lEICopIChVSU5UTikgDQo+IEJhc2VBZGRyZXNzLCBGdkhlYWRlci0+ QmxvY2tNYXAtPkxlbmd0aCk7DQo+ICsgICAgICAgIGlmIChGdkhlYWRlciAhPSBOVUxMKSB7DQo+ ICsgICAgICAgICAgRnJlZVBvb2wgKEZ2SGVhZGVyKTsNCj4gKyAgICAgICAgfQ0KPiAgICAgICAg IH0NCj4gICAgICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0DQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRl bFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNl Q29tbW9uLmgNCj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNo L1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VDb21tb24uaCBpbmRleCBlOWQ2OWU5ODU4 MTQuLjdiMDkwOGIwM2ZkYyAxMDA2NDQNCj4gLS0tDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlQ29t bW9uLmgNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFz aC9TcGlGdmJTZXJ2aWNlL1NwaUZ2Yg0KPiArKysgU2VydmljZUNvbW1vbi5oDQo+IEBAIC0yLDYg KzIsNyBAQA0KPiAgICAgQ29tbW9uIHNvdXJjZSBkZWZpbml0aW9ucyB1c2VkIGluIHNlcmlhbCBm bGFzaCBkcml2ZXJzDQo+ICAgDQo+ICAgQ29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICtDb3B5cmlnaHQgKGMpIE1pY3Jvc29m dCBDb3Jwb3JhdGlvbi48QlI+DQo+ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gICANCj4gICAqKi8NCj4gQEAgLTEyLDYgKzEzLDcgQEAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICAjaW5jbHVkZSA8R3VpZC9F dmVudEdyb3VwLmg+DQo+ICAgI2luY2x1ZGUgPEd1aWQvRmlybXdhcmVGaWxlU3lzdGVtMi5oPg0K PiAgICNpbmNsdWRlIDxHdWlkL1N5c3RlbU52RGF0YUd1aWQuaD4NCj4gKyNpbmNsdWRlIDxQaS9Q aUZpcm13YXJlVm9sdW1lLmg+DQo+ICAgI2luY2x1ZGUgPFByb3RvY29sL0RldmljZVBhdGguaD4N Cj4gICAjaW5jbHVkZSA8UHJvdG9jb2wvRmlybXdhcmVWb2x1bWVCbG9jay5oPg0KPiAgIA0KPiBA QCAtMjQsNiArMjYsOCBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiAgICNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiAgICNpbmNsdWRlIDxMaWJy YXJ5L0RldmljZVBhdGhMaWIuaD4NCj4gICAjaW5jbHVkZSA8TGlicmFyeS9Ib2JMaWIuaD4NCj4g KyNpbmNsdWRlIDxMaWJyYXJ5L1ZhcmlhYmxlRmxhc2hJbmZvTGliLmg+ICNpbmNsdWRlIA0KPiAr PExpYnJhcnkvU2FmZUludExpYi5oPg0KPiAgIA0KPiAgICNpbmNsdWRlIDxMaWJyYXJ5L1NwaUZs YXNoQ29tbW9uTGliLmg+DQo+ICAgDQo+IEBAIC0xNDgsMTEgKzE1MiwyMyBAQCBHZXRGdmJJbmZv ICgNCj4gICAgIE9VVCBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAgICoqRnZiSW5mbw0KPiAg ICAgKTsNCj4gICANCj4gKy8qKg0KPiArICBHZXQgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpcm13 YXJlIHZvbHVtZSBvbiBmbGFzaCB1c2VkIGZvciB2YXJpYWJsZSBzdG9yZSBvcGVyYXRpb25zLg0K PiArDQo+ICsgIEBwYXJhbVtvdXRdIEJhc2VBZGRyZXNzICAgICAgICAgQmFzZSBhZGRyZXNzIG9m IHRoZSB2YXJpYWJsZSBzdG9yZSBmaXJtd2FyZSB2b2x1bWUuDQo+ICsgIEBwYXJhbVtvdXRdIExl bmd0aCAgICAgICAgICAgICAgTGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBmaXJtd2FyZSB2b2x1bWUg dXNlZCBmb3IgdmFyaWFibGUgc3RvcmUgb3BlcmF0aW9ucy4NCj4gKw0KPiArKiovDQo+ICtWT0lE DQo+ICtHZXRWYXJpYWJsZUZ2SW5mbyAoDQo+ICsgIE9VVCBFRklfUEhZU0lDQUxfQUREUkVTUyAg ICAgICpCYXNlQWRkcmVzcywNCj4gKyAgT1VUIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgKkxl bmd0aA0KPiArICApOw0KPiArDQo+ICAgZXh0ZXJuIEZWQl9HTE9CQUwgICAgICAgICAgICAgICAg ICAgICAgICAgbUZ2Yk1vZHVsZUdsb2JhbDsNCj4gICBleHRlcm4gRlZfTUVNTUFQX0RFVklDRV9Q QVRIICAgICAgICAgICAgICBtRnZNZW1tYXBEZXZpY2VQYXRoVGVtcGxhdGU7DQo+ICAgZXh0ZXJu IEZWX1BJV0dfREVWSUNFX1BBVEggICAgICAgICAgICAgICAgbUZ2UElXR0RldmljZVBhdGhUZW1w bGF0ZTsNCj4gICBleHRlcm4gRUZJX0ZJUk1XQVJFX1ZPTFVNRV9CTE9DS19QUk9UT0NPTCBtRnZi UHJvdG9jb2xUZW1wbGF0ZTsNCj4gICBleHRlcm4gRlZfSU5GTyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtUGxhdGZvcm1GdkJhc2VBZGRyZXNzW107DQo+IC1leHRlcm4gRlZfSU5GTyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtUGxhdGZvcm1EZWZhdWx0QmFzZUFkZHJlc3NbXTsNCj4g ICANCj4gICAjZW5kaWYNCj4gZGlmZiAtLWdpdA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxp Y29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZiU2VydmljZS9TcGlGdmJTZXJ2DQo+IGljZVNtbS5p bmYNCj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2 YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VTbW0uaW5mIGluZGV4IGJmMTMwNmYwMDIwMS4uMGNm YTNmOTA5YmRmIDEwMDY0NA0KPiAtLS0NCj4gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiBpY2VTbW0uaW5mDQo+ ICsrKyBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvRmxhc2gvU3BpRnZi U2VydmljZS9TcGlGdmINCj4gKysrIFNlcnZpY2VTbW0uaW5mDQo+IEBAIC0zMiw4ICszMiwxMCBA QCBbTGlicmFyeUNsYXNzZXNdDQo+ICAgICBCYXNlTGliDQo+ICAgICBVZWZpQm9vdFNlcnZpY2Vz VGFibGVMaWINCj4gICAgIFVlZmlEcml2ZXJFbnRyeVBvaW50DQo+ICsgIFNhZmVJbnRMaWINCj4g ICAgIFNwaUZsYXNoQ29tbW9uTGliDQo+ICAgICBNbVNlcnZpY2VzVGFibGVMaWINCj4gKyAgVmFy aWFibGVGbGFzaEluZm9MaWINCj4gICANCj4gICBbUGFja2FnZXNdDQo+ICAgICBNZGVQa2cvTWRl UGtnLmRlYw0KPiBAQCAtNDEsMTAgKzQzLDYgQEAgW1BhY2thZ2VzXQ0KPiAgICAgSW50ZWxTaWxp Y29uUGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCj4gICANCj4gICBbUGNkXQ0KPiAtICBnRWZpTWRl TW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UgICAj IyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hO dlN0b3JhZ2VWYXJpYWJsZVNpemUgICAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VGdHdXb3JraW5nU2l6ZSAjIyBDT05TVU1F Uw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VG dHdTcGFyZVNpemUgICAjIyBDT05TVU1FUw0KPiAgICAgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEZsYXNoTWljcm9jb2RlRnZCYXNlICAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAg IGdJbnRlbFNpbGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2U2l6ZSAg ICAgICAgICMjIENPTlNVTUVTDQo+ICAgDQo+IGRpZmYgLS1naXQNCj4gYS9TaWxpY29uL0ludGVs L0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0K PiBpY2VTdGFuZGFsb25lTW0uaW5mDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gaWNlU3RhbmRhbG9uZU1t LmluZiBpbmRleCBiNjYyMzM5NjgyNDcuLjE1MmNmMDAzNmZkYiAxMDA2NDQNCj4gLS0tDQo+IGEv U2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNl L1NwaUZ2YlNlcnYNCj4gaWNlU3RhbmRhbG9uZU1tLmluZg0KPiArKysgYi9TaWxpY29uL0ludGVs L0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiDQo+ICsr KyBTZXJ2aWNlU3RhbmRhbG9uZU1tLmluZg0KPiBAQCAtMzEsOCArMzEsMTAgQEAgW0xpYnJhcnlD bGFzc2VzXQ0KPiAgICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiAgICAgUGNkTGliDQo+ICAgICBN bVNlcnZpY2VzVGFibGVMaWINCj4gKyAgU2FmZUludExpYg0KPiAgICAgU3BpRmxhc2hDb21tb25M aWINCj4gICAgIFN0YW5kYWxvbmVNbURyaXZlckVudHJ5UG9pbnQNCj4gKyAgVmFyaWFibGVGbGFz aEluZm9MaWINCj4gICANCj4gICBbUGFja2FnZXNdDQo+ICAgICBNZGVQa2cvTWRlUGtnLmRlYw0K PiBAQCAtNDAsMTAgKzQyLDYgQEAgW1BhY2thZ2VzXQ0KPiAgICAgSW50ZWxTaWxpY29uUGtnL0lu dGVsU2lsaWNvblBrZy5kZWMNCj4gICANCj4gICBbUGNkXQ0KPiAtICBnRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VWYXJpYWJsZUJhc2UgICAjIyBDT05TVU1F Uw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VW YXJpYWJsZVNpemUgICAjIyBDT05TVU1FUw0KPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VGdHdXb3JraW5nU2l6ZSAjIyBDT05TVU1FUw0KPiAtICBn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hOdlN0b3JhZ2VGdHdTcGFyZVNp emUgICAjIyBDT05TVU1FUw0KPiAgICAgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBj ZEZsYXNoTWljcm9jb2RlRnZCYXNlICAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAgIGdJbnRlbFNp bGljb25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2U2l6ZSAgICAgICAgICMj IENPTlNVTUVTDQo+ICAgDQo+IGRpZmYgLS1naXQgYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNv blBrZy9JbnRlbFNpbGljb25Qa2cuZHNjDQo+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Q a2cvSW50ZWxTaWxpY29uUGtnLmRzYw0KPiBpbmRleCAxZTgyNmEwODBmMjguLjE3MGViNDgwYWRh MSAxMDA2NDQNCj4gLS0tIGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvSW50ZWxTaWxp Y29uUGtnLmRzYw0KPiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbnRlbFNp bGljb25Qa2cuZHNjDQo+IEBAIC00MCw5ICs0MCwxMSBAQCBbTGlicmFyeUNsYXNzZXNdDQo+ICAg ICBQZWlHZXRWdGRQbXJBbGlnbm1lbnRMaWJ8SW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpR2V0 VnRkUG1yQWxpZ25tZW50TGliL1BlaUdldFZ0ZFBtckFsaWdubWVudExpYi5pbmYNCj4gICAgIFRw bU1lYXN1cmVtZW50TGlifE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1RwbU1lYXN1cmVtZW50TGliTnVs bC9UcG1NZWFzdXJlbWVudExpYk51bGwuaW5mDQo+ICAgICBNaWNyb2NvZGVMaWJ8VWVmaUNwdVBr Zy9MaWJyYXJ5L01pY3JvY29kZUxpYi9NaWNyb2NvZGVMaWIuaW5mDQo+ICsgIFNhZmVJbnRMaWJ8 TWRlUGtnL0xpYnJhcnkvQmFzZVNhZmVJbnRMaWIvQmFzZVNhZmVJbnRMaWIuaW5mDQo+ICAgICBT cGlGbGFzaENvbW1vbkxpYnxJbnRlbFNpbGljb25Qa2cvTGlicmFyeS9TcGlGbGFzaENvbW1vbkxp Yk51bGwvU3BpRmxhc2hDb21tb25MaWJOdWxsLmluZg0KPiAgICAgDQo+IFVlZmlCb290U2Vydmlj ZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIvVWVmaUIN Cj4gb290U2VydmljZXNUYWJsZUxpYi5pbmYNCj4gICAgIA0KPiBVZWZpRHJpdmVyRW50cnlQb2lu dHxNZGVQa2cvTGlicmFyeS9VZWZpRHJpdmVyRW50cnlQb2ludC9VZWZpRHJpdmVyRW50DQo+IHJ5 UG9pbnQuaW5mDQo+ICsgIA0KPiArIFZhcmlhYmxlRmxhc2hJbmZvTGlifE1kZU1vZHVsZVBrZy9M aWJyYXJ5L0Jhc2VWYXJpYWJsZUZsYXNoSW5mb0xpYi9CDQo+ICsgYXNlVmFyaWFibGVGbGFzaElu Zm9MaWIuaW5mDQo+ICAgDQo+ICAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5QRUlNXQ0KPiAgICAg UGVpbUVudHJ5UG9pbnR8TWRlUGtnL0xpYnJhcnkvUGVpbUVudHJ5UG9pbnQvUGVpbUVudHJ5UG9p bnQuaW5mDQo+IEBAIC02MywxMSArNjUsMTYgQEAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5EWEVf RFJJVkVSXQ0KPiAgICAgDQo+IE1lbW9yeUFsbG9jYXRpb25MaWJ8TWRlUGtnL0xpYnJhcnkvVWVm aU1lbW9yeUFsbG9jYXRpb25MaWIvVWVmaU1lbW9yeUENCj4gbGxvY2F0aW9uTGliLmluZg0KPiAg IA0KPiAgIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uRFhFX1NNTV9EUklWRVJdDQo+ICsgIA0KPiAr IERldmljZVBhdGhMaWJ8TWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmlj ZVBhdGhMaWIuaW5mDQo+ICsgIEhvYkxpYnxNZGVQa2cvTGlicmFyeS9EeGVIb2JMaWIvRHhlSG9i TGliLmluZg0KPiAgICAgTWVtb3J5QWxsb2NhdGlvbkxpYnxNZGVQa2cvTGlicmFyeS9TbW1NZW1v cnlBbGxvY2F0aW9uTGliL1NtbU1lbW9yeUFsbG9jYXRpb25MaWIuaW5mDQo+ICAgICANCj4gTW1T ZXJ2aWNlc1RhYmxlTGlifE1kZVBrZy9MaWJyYXJ5L01tU2VydmljZXNUYWJsZUxpYi9NbVNlcnZp Y2VzVGFibGVMaQ0KPiBiLmluZg0KPiAgICAgDQo+IFNtbVNlcnZpY2VzVGFibGVMaWJ8TWRlUGtn L0xpYnJhcnkvU21tU2VydmljZXNUYWJsZUxpYi9TbW1TZXJ2aWNlc1RhYmwNCj4gZUxpYi5pbmYN Cj4gKyAgVWVmaUxpYnxNZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuaW5mDQo+ICsgIA0K PiArIFVlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYnxNZGVQa2cvTGlicmFyeS9VZWZpUnVudGlt ZVNlcnZpY2VzVGFibGVMDQo+ICsgaWIvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGliLmluZg0K PiAgIA0KPiAgIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uTU1fU1RBTkRBTE9ORV0NCj4gKyAgDQo+ ICsgSG9iTGlifFN0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUhvYkxpYi9TdGFu ZGFsb25lTW1Ib2JMaWINCj4gKyAuaW5mDQo+ICAgICBNZW1vcnlBbGxvY2F0aW9uTGlifFN0YW5k YWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbU1lbW9yeUFsbG9jYXRpb25MaWIvU3RhbmRh bG9uZU1tTWVtb3J5QWxsb2NhdGlvbkxpYi5pbmYNCj4gICAgIA0KPiBNbVNlcnZpY2VzVGFibGVM aWJ8TWRlUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tU2VydmljZXNUYWJsZUxpYi9TdGFuZGFsDQo+ IG9uZU1tU2VydmljZXNUYWJsZUxpYi5pbmYNCj4gICAgIA0KPiBTdGFuZGFsb25lTW1Ecml2ZXJF bnRyeVBvaW50fE1kZVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbURyaXZlckVudHJ5UG9pDQo+IG50 L1N0YW5kYWxvbmVNbURyaXZlckVudHJ5UG9pbnQuaW5mDQo=