From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.1423.1682037889115055805 for ; Thu, 20 Apr 2023 17:44:49 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=UW5md3hm; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: dun.tan@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682037889; x=1713573889; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=64xKzaaaifGo/BTNtcUnuNv7/7awMrBhJAuWBtm5Sec=; b=UW5md3hmWP98eyL0ifaIyKbJ+Z+ZMqwgB1Sjgp/X8Nzvp6Ga+Kbz4kSU eE4v/vdFup+majaBHqwkbL/cCYFJ8E3Avqum9JML3fzN7zyzcTiykvb6/ RKLcN4Pa5vumHH8Gmhs8YvKufNRx7dCvJw0jLRbxDQ0AO9/9ky7CMlF52 aDtUeuVGfEJp7eTAqYH0Dc+NItr2Jl6LQvf1D2+F2qdFoWxcBFENeZaGK +uFhp2o+3F3P/lJw3Rso/Ne6IIc5dxirxSkRFNEm3kf+bQ4E5lEWRAPkb 6ukK62+yri6BPpH2XykWS59Qy9kE9JZketvs77Ks5TxZVBxjM70GcODK0 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="330084884" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="330084884" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 17:44:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="692107865" X-IronPort-AV: E=Sophos;i="5.99,214,1677571200"; d="scan'208";a="692107865" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga002.jf.intel.com with ESMTP; 20 Apr 2023 17:44:48 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2507.23; Thu, 20 Apr 2023 17:44:48 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 20 Apr 2023 17:44:47 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 20 Apr 2023 17:44:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kDNhJUEaFN4k6CgVmQTBM9tnjfEYheg/RRXgql0yXLbjYz0PiuSicaedAKRbOg0RWgFwlqcSNbBNVdLfxJ0cmtqs+De76FRvwaUSsUftOw3QzM+wFlBpUL55ZTGvoeyu1Zo8eUQB2OYYI1k3tYMtIT5Iy9uOrKQdGc4QBLfZIHBRF/Qqf4OS1Xvl8uh0ZpCxAqJ/9ne+12N8sHQb6Wj2J5QBYNm7dc9Oow9TcqqxnlELjb7GUt9k+XlmdtDMtaJKEoZd+MznE159ovHmeJspsyD8dTnvrHxEgjWn8OSoVHwzNxapZ0RA8v30m41Dg8ZTsdQ4zjFsnFbKmhxmoEz74Q== 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=64xKzaaaifGo/BTNtcUnuNv7/7awMrBhJAuWBtm5Sec=; b=Iid9u0s+BG+2mvLiNsd3b2ESfbPIL6JmbyHG5/tnKawgb/rUphzEdtKcaHGWyNaTBvvlYcMCXXHU0EdyPsA+TgQvSAWM+n3N8OkzYlz88sgaw6ZWg0eASwxVBk5h5OktgQwTK6Gj2TnaxUpM8Dn5zx51N3Imk8cvnacyhNQTM5MmSwgayWVstPN3fC7uXerlt6i/1WgGs2saAMDCGWLs89N1+qmBNX0YLHh+j4zhnT0JCr2areuCiBzeyM+YJibuVORZu50F1Vs1TSlFghIE1p1R68kPzW9+JEwVMPxvay8VIospK9T1Y4B3rRAEYuiMdunMr0m2/1cyAAd2Bv3kLA== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by SJ0PR11MB4847.namprd11.prod.outlook.com (2603:10b6:a03:2d9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Fri, 21 Apr 2023 00:44:37 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::1eb1:2222:1823:8e7a%7]) with mapi id 15.20.6319.022; Fri, 21 Apr 2023 00:44:37 +0000 From: "duntan" To: Tom Lendacky , "devel@edk2.groups.io" , "Ni, Ray" Subject: Re: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Topic: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Index: AQHZbRyoGhev/k0Lh0ak5MT8foi7/q8nX/cggACu7wCAALRekIAAqcYAgADTs3CAAJNVAIAAOr8OgAAfEgCABaY98IAAxNaAgAB0T9CAAJuVgIAA2YZggADhmYCAAJWzkA== Date: Fri, 21 Apr 2023 00:44:36 +0000 Message-ID: References: <1755241E6695EAE7.1885@groups.io> <2301e275-1f69-e5c0-997d-d967264aa590@amd.com> <4c5afff9-39b6-6f3a-ce05-0aadb8b004b9@amd.com> <2ff87b88-38c0-5213-64e9-8f26f1603d0c@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|SJ0PR11MB4847:EE_ x-ms-office365-filtering-correlation-id: e97d655d-d5ee-47ea-af28-08db420194f9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HEeSrWO3ZPa3munxkEobnLjbJFhCEj9ZnbKd7QXm1iP1pFX0s5mMYbb9c+XKYgg1++U7Vrk/O5e9TTsLP5+y6L9t9l+VoysUV+6+zPCKXi/Xcma7GMkXBPqILd9bkroM2yOU4BAH5gHFtKKB1zwcgN2aR/hJ9gnzDdtLy3OFRgUl4QCwSJ6HfTM6RKXr+uzxj2BWNiwAJVoLi934Dl7aA216ejKWhndmlIgRZMnVjwMFkCCt1xpdZ/eZa80+jl51zxOKNrTCsTtSk49N8omCMIceceMfWqkPSEaoM3PKHt8KBU5l3VvdcKVgAI7LKGSiIx3ViThSv0x/AIZFqawFPYXkPVebjeJ8D/bZzrJIGupFNwH6FhptWxcKqtXQN6+WP+JrIMMImTGEvNIVkSz/9r8ilrnC84a2GlLd6bqjAxXuvFIo5SMGm4oNKzp+s9iPoAf8O5hwcHDyynEQLHXDSfBFP13N1nnm4HsqIu2jXJcu6ahTu5spz/yupOGTj+6irNQMAdGiazrvIX4j0126+VTC5kIvCX2YYXycZwFbKRBdcPjQTYjkLuQxsmdb9v9hzSivdbnKq1lbc+uzwikxW7vtotHLc6pXVrG0oc9b0RJFvs+y3s17sPkx8qT//W/rDzeMwq5q6fw/Lqd6ig4XCtZ9CXe9l3yle+O0H9EKv0k= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(39860400002)(136003)(366004)(451199021)(82960400001)(186003)(122000001)(38100700002)(26005)(6506007)(38070700005)(71200400001)(9686003)(53546011)(55016003)(5660300002)(15650500001)(33656002)(52536014)(30864003)(8936002)(8676002)(2906002)(19627235002)(478600001)(110136005)(966005)(86362001)(7696005)(83380400001)(76116006)(66446008)(66476007)(66556008)(66946007)(41300700001)(64756008)(6636002)(316002)(66899021)(579004)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TEF1R2kvZkdOZDVKWXVIRk1rbnFGZ0NlR28yVW1sUFRGb0NVZldnQURMTmRn?= =?utf-8?B?ZjFRK0ZqODFGU2VQODlXb0x1c21GYngzaWxveW8zSUtENVMrMll6VFU4Tm5i?= =?utf-8?B?WjNrL1IwYlVieFJjc3lhZmpKTTQ0OUthUE1NZHhkZldTSVRzT25iWmJ4MG9k?= =?utf-8?B?cFdRaHNoRy95RjlITnRtSFByV3U2ODhZa2RFa2s1bVNHS3JmQjZJNXpsMWRt?= =?utf-8?B?WDRpSU1ibzNxQmpGVW96aXExUFhJM0Z0TU9xMGdncnAxcmVaZDdSSGRUOGF3?= =?utf-8?B?L2s4R3k4WjBPenBpRlpYWm1pbGJKTmFXdjJ4TjcxTllyNkdHenFoWE02Umwx?= =?utf-8?B?REF3MTc2WWF5YmxNRElBN0h6YVVDT2pJRGJlR0pVWDZ3U1Y4b1BZSlZ4SW51?= =?utf-8?B?ZHdOTHEyRCtMWE1sT0NqZU0vN2pXdzdpNTVzWVdMVnVQK3UvNXVNKytrZE5m?= =?utf-8?B?ckdMYTNLbHJQaUZOQ0hGaTd0MnNkVWdzWVRDV0p6VzVoamlub3ptcEJ3U050?= =?utf-8?B?OExmTWNTOVRaTWhUSVkxM29FQitHcTdYU0xiTjZzSzlmWkxEQ3hBN3M5bVZk?= =?utf-8?B?VTlRUU9iTW1hZ2FwdHdCWno3eGQ3bVZhZWRqdnhWWTZ1cGNkS3dldlpFVWVD?= =?utf-8?B?NWxtYVpxZytXeEliOWtYYnR5ZGZYWW14cURxWlplS25hY3hLOEFiTFFzWEps?= =?utf-8?B?bHEvLyttZFZQK1ljOUkvVmZkSjNXNG5lZEJjTEpnc1EwVnBhSzQyVlFwSkZN?= =?utf-8?B?M2V2dE9WU0pGelRCSEVqQjFOWG1mQlhrcSt1V0VqTGJwMUVUamtQOFVJWEdk?= =?utf-8?B?WFNjaGdmempYdEgzeWRBa0t3QlBZeFNZTFJyOTRlbzF3amhRM29GQU85N2ZI?= =?utf-8?B?amtXTGFXQXZ5SWQrL3ljcElGdmw4SnNpdHc1Y3ZaUnJMQ0Z5LzZUZ0F2RWE1?= =?utf-8?B?R3hKa0lXdGV2RGtVeHJaMXNaWGJCZngwVjNXT0kwM2tIcUtoWjhxOWF1RlZw?= =?utf-8?B?cGJRTzgwYUFlUTlUYU9xMkhpY00zeWttK1NCUXdtcStHbFdDMmNQTDg0RVF3?= =?utf-8?B?QXFxMEk4S3VvUCtYWW9nQ2xOYm92aGdkVElmNUZhcDdKQ2laMFBMNE5IeStX?= =?utf-8?B?b1BRZzFMMDd0U2pFM2EwRUhuM3kyR3RXTUd6OE5ZSm5nRFZTSHhTVEdRTmZy?= =?utf-8?B?c3RzV3FDeThCRmZGdGlLblQwckgvZ0VvQTlWZUxPN3d2OHhhRkVMV2NmeXB6?= =?utf-8?B?azVTS2d6YnlQQVZoL09PeG5MVnh0WTAxSXJPOW1RS2lCcC9mQTZxVUR1NHRQ?= =?utf-8?B?bk13VllJd290RFpMdEpkZDk4TElzamFRbG52OXYvVDBQQnlPYitHdThpenAw?= =?utf-8?B?Y3k3eEI0ZTZZTkNWR1YrWWw2VnhhNXBTYnpaNXRUd0JiVGVsMndDTVJoclVx?= =?utf-8?B?SnlvajBKb3pqc0UzaEphTzVSMkhKaTdyRmw0ZVk3aU1IVkZEdXVwdFNxVVJ6?= =?utf-8?B?TlA1QkVETGNqbmc0SFY3MDZpazFsQ2lQbTZiUUo3VU5WeUJ2U1dKKzdaeGEy?= =?utf-8?B?dEdNMnJaYnlidzFpQmhTQmhIMjI1T2VmUjF0VmdrR2Y2VWJVcGpOYTRlTzFH?= =?utf-8?B?VlhDNU15VkdLdzg5RloyUWdBTVZvNTV2M1d2QXJTRFA5UkJ5TndVQ3RtbUJK?= =?utf-8?B?cTlhZjdIZDgzajB2bGZuNW1zQkhQR2Q5NVNxYUFpOFpQNVQzTEZKWk5aN2Fy?= =?utf-8?B?bElPYnUvTXU0WTNONXhVSTNhQzVCdE41RVlLclJKUDlIL2syM0JDUUdOeklp?= =?utf-8?B?eTlyeENJdysxbkVQTWZNT1RuQW9RYmtIUmc2NlYwRWZSdVBSSkxRZnl6a1Js?= =?utf-8?B?ZHZNV0U5aHB6U0VYaXFEWFBNS3ZTMjI1TTdiQUNQS21NNXFuejVJMit6Wmg5?= =?utf-8?B?ZXdCZUpIbHUwRWIvdHhmTWYvNnZkUlMzTmtGdG9zcnFZa2cwTFNoQWlMYUhj?= =?utf-8?B?b012MUFnYnNYYW9paDVJK3h2VkZkSzI4N2x0QmZuM01xQUxpcTBYVGJySHFt?= =?utf-8?B?OWFBOVFYUDBwTkpOZGJsd2syVFR3L1l2dnUxejBkcnhZQnZXYXdYcXBYUzIx?= =?utf-8?Q?SM1E=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e97d655d-d5ee-47ea-af28-08db420194f9 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2023 00:44:36.4829 (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: wrYSFLewwuxNofXTqayohr4QRu37UuR99IRhj7N8FZJE/vf2JUGJgRAjcZh6Es80uS/oS8qn8QXvBQDEzLva8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4847 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGEgbG90ISBJJ2xsIHVwZGF0ZSBteSBwYXRjaCBzZXQgbGF0ZXIuDQoNClRoYW5rcywN CkR1bg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogVG9tIExlbmRhY2t5IDx0 aG9tYXMubGVuZGFja3lAYW1kLmNvbT4gDQpTZW50OiBUaHVyc2RheSwgQXByaWwgMjAsIDIwMjMg MTE6NDUgUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgVGFuLCBEdW4gPGR1bi50YW5AaW50 ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byBjcmVhdGUgYW5kIHVw ZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KDQpPbiA0LzIwLzIzIDA0OjA3LCBkdW50YW4gdmlhIGdyb3Vw cy5pbyB3cm90ZToNCj4gSGkgVG9tLA0KPiANCj4gVGhhbmtzIGZvciBjb25maXJtaW5nLiBJcyAx RyBwYWdlIHRhYmxlIHN1cHBvcnRlZCBpbiB5b3VyIHRlc3Q/IElmIHN1cHBvcnRlZCwgdGhlcmUg aXMgYSByZWFzb24gY2FuIGV4cGxhaW4gd2h5IHRoaXMgZGlmZmVyZW5jZSBleGlzdHMuDQo+IElu IGN1cnJlbnQgdXBzdHJlYW0gbWFzdGVyIGJyYW5jaDoNCj4gU21tIGNvZGUgYWx3YXlzIGNyZWF0 ZSAyTSBwYWdlIHRhYmxlIGZvciBbMCwgNEddIHJhbmdlKGluIEdlbjRHUGFnZVRhYmxlICkgdG8g cmV1c2UgY29kZS4gSW4gUWVtdUZsYXNoQmVmb3JlUHJvYmUoKSBvZiBPdm1mUGtnXFFlbXVGbGFz aEZ2YlNlcnZpY2VzUnVudGltZUR4ZVxRZW11Rmxhc2hTbW0uYywgdGhlIHJhbmdlIHRvIGNsZWFy IEVuY01hc2sgaXMgMk0gYWxpZ25lZC4gTm8gcGFnZSBzcGxpdCBoYXBwZW5zIGFuZCBzbW0gcGFn ZSB0YWJsZSBtZW1vcnkgaXMgYWxsIFJXIGJlZm9yZSBSZWFkeVRvTG9jay4gQnV0IGluIG15IG9w aW5pb24sIHRoZSBQRiBhbHNvIG1heSBoYXBwZW4gaWYgdGhlIHJhbmdlIGlzIG5vdCAyTSBhbGln bmVkLg0KPiANCj4gSW4gbXkgY29kZSBicmFuY2g6DQo+IElmIDFHIHBhZ2UgdGFibGUgaXMgc3Vw cG9ydGVkLCAxRyBwYWdlIHRhYmxlIGlzIGNyZWF0ZWQgdG8gbWFwIFswLCA0R10uIFRoZW4gcGFn ZSBzcGxpdCAoMUctLT4yTSkgaGFwcGVucyBpbiBRZW11Rmxhc2hCZWZvcmVQcm9iZSgpIGFuZCB0 aGUgbmV3IG1lbW9yeSBmb3IgcGFnZSB0YWJsZSBpcyBtYXJrZWQgYXMgUk8gYmVmb3JlIFJlYWR5 VG9Mb2NrLiBUaGF0J3Mgd2h5IHRoZSBQRiBoYXBwZW5zIGluIEluaXRQYWdpbmcoKS4NCj4gDQo+ IFRvIHNvbHZlIHRoaXMgaXNzdWUsIEkgdGhpbmsgdGhlIGFzc3VtcHRpb24gdGhhdCBzbW0gcGFn ZSB0YWJsZSBpcyBhbHdheXMgUlcgYmVmb3JlIFJlYWR5VG9Mb2NrIHNob3VsZCBiZSBkcm9wcGVk LiBJIGhhdmUgYWRkZWQgMiBuZXcgcGF0Y2hlcyB0byBjbGVhciBXUCBiZWZvcmUgbW9kaWZ5aW5n IHNtbSBwYWdlIHRhYmxlLiBDb3VsZCB5b3UgcGxlYXNlIGhlbHAgdGVzdCBhZ2Fpbj8NCj4gaHR0 cHM6Ly9naXRodWIuY29tL3RkMzYvZWRrMi90cmVlL1NtbVBhZ2VUYWJsZV9WMg0KDQpIaSBEdW4s DQoNClllcywgdGhpcyBicmFuY2ggc3VjY2Vzc2Z1bGx5IGJvb3RzIGFuIFNFViBndWVzdCB3aXRo IFNNTSBlbmFibGVkLg0KDQpUaGFua3MhDQoNClRvbQ0KDQo+IA0KPiBUaGFua3MsDQo+IER1bg0K PiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+IExlbmRhY2t5LCBU aG9tYXMgdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDE5LCAyMDIzIDk6 MTkgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBUYW4sIER1biA8ZHVuLnRhbkBpbnRl bC5jb20+OyBOaSwgUmF5IA0KPiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtl ZGsyLWRldmVsXSBbUGF0Y2ggVjIgMC84XSBVc2UgQ3B1UGFnZVRhYmxlTGliIHRvIGNyZWF0ZSAN Cj4gYW5kIHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPiANCj4gT24gNC8xOS8yMyAwMDozOSwgZHVu dGFuIHZpYSBncm91cHMuaW8gd3JvdGU6DQo+PiBIaSBUb20sDQo+Pg0KPj4gVGhpcyBQRiBoYXBw ZW5lZCBiZWNhdXNlIHRoYXQgIENSMC5XUCBpcyBzZXQgYW5kIER4ZU1lbUVuY3J5cHRTZXZMaWIg c2V0cyBhIHBhcnQgb2Ygc21tIHBhZ2UgdGFibGUgYXMgUk8gYmVmb3JlIFJlYWR5VG9Mb2NrIHdo aWxlIENwdVNtbSBkcml2ZXIgYXNzdW1lcyB0aGUgc21tIHBhZ2UgdGFibGUgaXMgbm90IG1hcmtl ZCBhcyBSTyBiZWZvcmUgUmVhZHlUb0xvY2suDQo+PiBUaGUgY29kZSBmbG93IHRvIHNldCBzbW0g cGFnZSB0YWJsZSB0byBSTyBpcyBRZW11Rmxhc2hCZWZvcmVQcm9iZSgpLS0+TWVtRW5jcnlwdFNl dkNsZWFyTW1pb1BhZ2VFbmNNYXNrKCktLT5TZXRNZW1vcnlFbmNEZWMoKS0tPkVuYWJsZVBhZ2VU YWJsZVByb3RlY3Rpb24oKS4gTmV3IHBhZ2UgdGFibGUgbWVtb3J5IGFsbG9jYXRlZCBieSBEeGVN ZW1FbmNyeXB0U2V2TGliIGlzIG1hcmtlZCBhcyBSTyBpbiBFbmFibGVQYWdlVGFibGVQcm90ZWN0 aW9uKCkuIEhvd2V2ZXIsIEluIFBpU21tQ3B1RHhlU21tIEluaXRQYWdpbmcoKSBmdW5jdGlvbiwg dGhlIFJPIHBhZ2UgdGFibGUgbWFya2VkIGJ5ICBEeGVNZW1FbmNyeXB0U2V2TGliIG1heSBiZSBt b2RpZmllZCBhZ2FpbiBhbmQgSW5pdFBhZ2luZygpIGZ1bmN0aW9uIGRvZXNuJ3QgY2xlYXIgQ1Iw LldQIGluIGFkdmFuY2Ugc2luY2UgaXQgaGFzIHRoZSBhc3N1bXB0aW9uIHRoYXQgc21tIHBhZ2Ug dGFibGUgbWVtb3J5IGlzIGFsd2F5cyBSVyBiZWZvcmUgU2V0UGFnZVRhYmxlQXR0cmlidXRlcygp LCB3aGljaCBjYXVzZXMgdGhpcyBQRi4NCj4+IFNvIENvdWxkIHlvdSBwbGVhc2UgaGVscCB0ZXN0 IHRoZSBTRVYgZW5hYmxlZCBzbW0gY29kZSB3aXRob3V0IG15IHBhdGNoIHNldD8gSSB0aGluayB0 aGlzIGlzc3VlIG1heSBhbHNvIGhhcHBlbiBpbiBjdXJyZW50IGVkazIgY29kZS4NCj4gDQo+IFVw c3RyZWFtIG1hc3RlciBicmFuY2ggYm9vdHMgd2l0aG91dCBpc3N1ZS4NCj4gDQo+IFNtbUluc3Rh bGxQcm90b2NvbEludGVyZmFjZTogNDdCN0ZBOEMtRjRCRC00QUY2LTgyMDAtMzMzMDg2RjBEMkM4 IDAgR2V0VWVmaU1lbW9yeU1hcCBQYXRjaCBwYWdlIHRhYmxlIHN0YXJ0IC4uLg0KPiBQYXRjaCBw YWdlIHRhYmxlIGRvbmUhDQo+IE1lbW9yeUF0dHJpYnV0ZXNUYWJsZToNCj4gICAgIFZlcnNpb24g ICAgICAgICAgICAgICAgICAgLSAweDAwMDAwMDAxDQo+ICAgICBOdW1iZXJPZkVudHJpZXMgICAg ICAgICAgIC0gMHgwMDAwMDAzNQ0KPiAgICAgRGVzY3JpcHRvclNpemUgICAgICAgICAgICAtIDB4 MDAwMDAwMzANCj4gRW50cnkgKDB4M0ZGMDEwMjgpDQo+IC4uLg0KPiANCj4gDQo+IFRoYW5rcywN Cj4gVG9tDQo+IA0KPj4NCj4+IFRoYW5rcywNCj4+IER1bg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vw cy5pbz4gT24gQmVoYWxmIE9mIA0KPj4gTGVuZGFja3ksIFRob21hcyB2aWEgZ3JvdXBzLmlvDQo+ PiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDE5LCAyMDIzIDU6MDYgQU0NCj4+IFRvOiBUYW4sIER1 biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmksIFJheSANCj4+ IDxyYXkubmlAaW50ZWwuY29tPg0KPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUGF0Y2gg VjIgMC84XSBVc2UgQ3B1UGFnZVRhYmxlTGliIHRvIA0KPj4gY3JlYXRlIGFuZCB1cGRhdGUgc21t IHBhZ2UgdGFibGUNCj4+DQo+PiBPbiA0LzE4LzIzIDA0OjU3LCBUYW4sIER1biB3cm90ZToNCj4+ PiBIaSBUb20sDQo+Pj4NCj4+PiBJIGFkZGVkIGEgbmV3IHBhdGNoIGluIG15IGNvZGUgYnJhbmNo LiBUaGlzIG5ldyBwYXRjaCByZW1vdmVzIHRoZSBjb2RlIHRoYXQgbWF5IGFwcGx5IEFkZHJlc3NF bmNNYXNrIHRvIHNtbSBwYWdlIHRhYmxlIG5vbi1sZWFmIGVudHJpZXMgd2hlbiBzcGxpdHRpbmcg cGFnZSB0YWJsZS4NCj4+PiBDb3VsZCB5b3UgcGxlYXNlIGhlbHAgdGVzdCBpZiB0aGlzIGNvZGUg YnJhbmNoIHdvcmtzPw0KPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS90ZDM2L2VkazIvdHJlZS9TbW1Q YWdlVGFibGVfVjINCj4+DQo+PiBJdCBnb3QgZnVydGhlciwgYnV0IGl0IHN0aWxsIGNyYXNoZWQ6 DQo+Pg0KPj4gU21tSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlOiA0N0I3RkE4Qy1GNEJELTRBRjYt ODIwMC0zMzMwODZGMEQyQzggMCBHZXRVZWZpTWVtb3J5TWFwIFBhdGNoIHBhZ2UgdGFibGUgc3Rh cnQgLi4uDQo+PiAhISEhIFg2NCBFeGNlcHRpb24gVHlwZSAtIDBFKCNQRiAtIFBhZ2UtRmF1bHQp ICBDUFUgQXBpYyBJRCAtIDAwMDAwMDAwICEhISENCj4+IEV4Y2VwdGlvbkRhdGEgLSAwMDAwMDAw MDAwMDAwMDAzICBJOjAgUjowIFU6MCBXOjEgUDoxIFBLOjAgU1M6MCBTR1g6MCBSSVAgIC0gMDAw MDAwMDAzRkZDNzc0NCwgQ1MgIC0gMDAwMDAwMDAwMDAwMDAzOCwgUkZMQUdTIC0gMDAwMDAwMDAw MDAxMDA4MiBSQVggIC0gMDAwMDAwMDBGRkZGRkY4MywgUkNYIC0gMDAwMDAwMDAzRkZCNUM3OCwg UkRYIC0gMDAwMDAwMDAwMDAwMDAwMCBSQlggIC0gMDAwMDAwMDAzRkMwMTAwMCwgUlNQIC0gMDAw MDAwMDAzRkZCNDc5MCwgUkJQIC0gMDAwMDAwMDAzRkZCNDdCMCBSU0kgIC0gMDAwMDAwMDAzRkMw MTAwMCwgUkRJIC0gMDAwMDAwMDAwMDAwMDAwMA0KPj4gUjggICAtIDAwMDAwMDAwM0ZGQjQ4NDAs IFI5ICAtIDAwMDAwMDAwMDAwMDAwMDIsIFIxMCAtIDAwMDAwMDAwMDAwMDAwMDANCj4+IFIxMSAg LSAwMDAwMDAwMDAwMDAwMDAwLCBSMTIgLSAwMDAwMDAwMDNGRkI1Qzc4LCBSMTMgLQ0KPj4gMDAw MDAwMDAzRkZCNDg0MA0KPj4gUjE0ICAtIDAwMDAwMDAwODAwMDAwMDAsIFIxNSAtIDAwMDAwMDAw MDAwMDAwMDANCj4+IERTICAgLSAwMDAwMDAwMDAwMDAwMDIwLCBFUyAgLSAwMDAwMDAwMDAwMDAw MDIwLCBGUyAgLSAwMDAwMDAwMDAwMDAwMDIwDQo+PiBHUyAgIC0gMDAwMDAwMDAwMDAwMDAyMCwg U1MgIC0gMDAwMDAwMDAwMDAwMDAyMA0KPj4gQ1IwICAtIDAwMDAwMDAwODAwMTAwMzMsIENSMiAt IDAwMDAwMDAwM0ZDMDEwMDAsIENSMyAtDQo+PiAwMDAwMDAwMDNGRjgxMDAwDQo+PiBDUjQgIC0g MDAwMDAwMDAwMDAwMDY2OCwgQ1I4IC0gMDAwMDAwMDAwMDAwMDAwMA0KPj4gRFIwICAtIDAwMDAw MDAwMDAwMDAwMDAsIERSMSAtIDAwMDAwMDAwMDAwMDAwMDAsIERSMiAtDQo+PiAwMDAwMDAwMDAw MDAwMDAwDQo+PiBEUjMgIC0gMDAwMDAwMDAwMDAwMDAwMCwgRFI2IC0gMDAwMDAwMDBGRkZGMEZG MCwgRFI3IC0gMDAwMDAwMDAwMDAwMDQwMCBHRFRSIC0gMDAwMDAwMDAzRkZBQzAwMCAwMDAwMDAw MDAwMDAwMDRGLCBMRFRSIC0gMDAwMDAwMDAwMDAwMDAwMA0KPj4gSURUUiAtIDAwMDAwMDAwM0ZG QUYwMDAgMDAwMDAwMDAwMDAwMDFGRiwgICBUUiAtIDAwMDAwMDAwMDAwMDAwNDANCj4+IEZYU0FW RV9TVEFURSAtIDAwMDAwMDAwM0ZGQjBDNjANCj4+IFNNTSBleGNlcHRpb24gYXQgYWNjZXNzICgw eDNGQzAxMDAwKQ0KPj4gSXQgaXMgaW52b2tlZCBmcm9tIHRoZSBpbnN0cnVjdGlvbiBiZWZvcmUg SVAoMHgzRkZDNzc0NCkgaW4gbW9kdWxlIA0KPj4gKC9yb290L2tlcm5lbHMvb3ZtZi1kdW4tYnVp bGQtSWEzMlg2NC9CdWlsZC9Pdm1mMzI2NC9ERUJVR19HQ0M1L1g2NC9VDQo+PiBlIGZpQ3B1UGtn L1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU20NCj4+IG0vREVCVUcvUGlTbW1DcHVEeGVTbW0u ZGxsKQ0KPj4NCj4+DQo+PiBUaGFua3MsDQo+PiBUb20NCj4+DQo+Pj4NCj4+PiBUaGFua3MsDQo+ Pj4gRHVuDQo+Pj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIA0K Pj4+IExlbmRhY2t5LCBUaG9tYXMgdmlhIGdyb3Vwcy5pbw0KPj4+IFNlbnQ6IFNhdHVyZGF5LCBB cHJpbCAxNSwgMjAyMyAzOjA1IEFNDQo+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwg UmF5IDxyYXkubmlAaW50ZWwuY29tPjsgVGFuLCBEdW4gDQo+Pj4gPGR1bi50YW5AaW50ZWwuY29t Pg0KPj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBh Z2VUYWJsZUxpYiB0byANCj4+PiBjcmVhdGUgYW5kIHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPj4+ DQo+Pj4gT24gNC8xNC8yMyAxMjoxOSwgTmksIFJheSB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPj4+ PiB0b20sDQo+Pj4+IGlmIHRoZSBjIGJpdCBpcyBub3QgcmVxdWlyZWQgZm9yIG5vbiBsZWFmIHBh Z2UgdGFibGUgZW50cmllcywgd2h5IHRoZSB0cnVuayBjb2RlIHNldHMgdGhlIGMgYml0IGZvciBh bGwgZW50aXRpZXMgaW5jbHVkaW5nIG5vbmxlYWYgb25lcz8NCj4+Pg0KPj4+IEJlY2F1c2UgaXQn cyBlZmZlY3RpdmVseSB0aGUgY29ycmVjdCB0aGluZyB0byBkbywgZXZlbiB0aG91Z2ggaXQgZG9l c24ndCBtYXR0ZXIuDQo+Pj4NCj4+Pj4NCj4+Pj4gaSB3ZW50IGJhY2sgdG8gcmVhZCBhZ2FpbiB0 aGUgc21tIGlzc3VlIHlvdSBtZXQuIHlvdSBzYWlkIHRoZSBjIGJpdCBpcyBzZXQgZm9yIG5vbiBs ZWFmIGVudHJpZXMgdGhhdCBjYXVzZWQgYSBkZWZlcmVuY2UgaXNzdWUuIEJ1dCB0aGUgcGFnZXRh YmxlbGliIGNvZGUgZG9lc24ndCBzZXQgYyBiaXQgdG8gbm9uIGxlYWYgZW50cmllcy4gdGhlbiB3 aG8gc2V0cyB0aGUgYyBiaXQ/DQo+Pj4NCj4+PiBJIGd1ZXNzIHRoYXQncyB0aGUgbWFpbiBxdWVz dGlvbiwgaG93IGRpZCB0aGF0IGdldCBzZXQ/IEkgaGF2ZW4ndCBoYWQgdGhlIHRpbWUgdG8gZnVs bHkgZXhhbWluZSBhbmQgZm9sbG93IHRoZSBjb2RlcGF0aCBpbiB0aGUgcGFnZXRhYmxlIGxpYnJh cnkgdG8gZmlndXJlIG91dCB3aHkgaXQgd2FzIHNldC4gTWF5YmUgYXMgcGFydCBvZiBhIHBhZ2Ug c3BsaXQ/DQo+Pj4NCj4+PiBUaGFua3MsDQo+Pj4gVG9tDQo+Pj4NCj4+Pj4NCj4+Pj4gdGhhbmtz LA0KPj4+PiByYXkNCj4+Pj4NCj4+Pj4gdGhhbmtzLA0KPj4+PiByYXkNCj4+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBvbiBiZWhhbGYgb2YgDQo+Pj4+IExlbmRhY2t5LCBUaG9t YXMgdmlhIGdyb3Vwcy5pbyA8dGhvbWFzLmxlbmRhY2t5PWFtZC5jb21AZ3JvdXBzLmlvPg0KPj4+ PiBTZW50OiBGcmlkYXksIEFwcmlsIDE0LCAyMDIzIDk6NDM6NTIgUE0NCj4+Pj4gVG86IE5pLCBS YXkgPHJheS5uaUBpbnRlbC5jb20+OyBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyANCj4+ Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPj4+PiBTdWJq ZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQYXRjaCBWMiAwLzhdIFVzZSBDcHVQYWdlVGFibGVMaWIg dG8gDQo+Pj4+IGNyZWF0ZSBhbmQgdXBkYXRlIHNtbSBwYWdlIHRhYmxlDQo+Pj4+DQo+Pj4+IE9u IDQvMTQvMjMgMDA6MDcsIE5pLCBSYXkgd3JvdGU6DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+IEZyb206IFRvbSBMZW5kYWNreSA8dGhvbWFz LmxlbmRhY2t5QGFtZC5jb20+DQo+Pj4+Pj4gU2VudDogRnJpZGF5LCBBcHJpbCAxNCwgMjAyMyAx MjoxOSBBTQ0KPj4+Pj4+IFRvOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPj4+Pj4+IENjOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPj4+ Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VU YWJsZUxpYiB0byANCj4+Pj4+PiBjcmVhdGUgYW5kIHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPj4+ Pj4+DQo+Pj4+Pj4gT24gNC8xMy8yMyAwNDoxNCwgVGFuLCBEdW4gd3JvdGU6DQo+Pj4+Pj4+IEhp IFRvbSwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhhbmsgeW91IGZvciB5b3VyIGhlbHAgd2l0aCB0ZXN0 aW5nLg0KPj4+Pj4+PiBGb3IgdGhlIGJ1aWxkIGZhaWx1cmUsIGl0J3MgYmVjYXVzZSB0aGF0IHRo ZSBDcHVQYWdlVGFibGVMaWIgDQo+Pj4+Pj4+IGluc3RhbmNlIGlzDQo+Pj4+Pj4gYWRkZWQgaW50 byBPdm1mUGtnIERTQyBpbiB0aGUgbGFzdCBwYWN0aCAnIE92bWZQa2c6IEFkZCANCj4+Pj4+PiBD cHVQYWdlVGFibGVMaWIgcmVxdWlyZWQgYnkgUGlTbW1DcHVEeGUnLiBJIGhhdmUgbW92ZWQgdGhp cyBwYXRjaCANCj4+Pj4+PiB0byB0aGUgaGVhZCBvZiB0aGUgcGF0Y2ggc2V0Lg0KPj4+Pj4+Pg0K Pj4+Pj4+PiBGb3IgdGhlIGJvb3QgZmFpbHVyZSwgSSB0aGluayBpdCdzIGJlY2F1c2UgdGhhdCB0 aGUgZW5jcnlwdCBtYXNrIA0KPj4+Pj4+PiB3YXMgbm90DQo+Pj4+Pj4gYXBwbGllZCB0byB0aGUg bWVtb3J5IHVzZWQgYnkgcGFnZSB0YWJsZSBpbiBwYWdlIHRhYmxlIG5vbi1sZWFmIGVudHJ5Lg0K Pj4+Pj4+IEluaXRpYWxseSBJIHRob3VnaHQgdGhlIGVuY3J5cHQgbWFzayB3b3VsZCBvbmx5IGJl IGFwcGxpZWQgdG8gdGhlIA0KPj4+Pj4+IGxlYWYgZW50cnkgaW4gQU1EIFNFViBmZWF0dXJlLiBT byBJIHRyZWF0ZWQgdGhlIGVuY3J5cHRpb24gDQo+Pj4+Pj4gcHJvY2VzcyBhcyBub24gMToxIG1h cHBpbmcsIHdoaWNoIG9ubHkgYXBwbGllcyB0aGUgZW5jcnlwdCBtYXNrIA0KPj4+Pj4+IHRvIGxl YWYgZW50cnkuIEknbSBhbHNvIGN1cmlvdXMgd2h5IHRoZSBEeGVJcGwgcGF0Y2ggc2V0IHdvcmtz IA0KPj4+Pj4+IGdvb2QuIEFsbCB0aGUgcGFnZSB0YWJsZSBub24tbGVhZiBlbnRyaWVzIGFyZSBh bHNvIG5vdCBlbmNyeXB0ZWQgaW4gdGhlIER4ZUlwbCBwYWdlIHRhYmxlIHJlbGF0ZWQgcGF0Y2gg c2V0Lg0KPj4+Pj4+DQo+Pj4+Pj4gUmlnaHQsIGFuZCB0aGF0IHdvcmtzIGZvciBTRVYuIEFsbCBu b24tbGVhZiBwYWdldGFibGUgZW50cmllcyBhcmUgDQo+Pj4+Pj4gdHJlYXRlZCBhcyBlbmNyeXB0 ZWQgcmVnYXJkbGVzcyBvZiB0aGUgZW5jcnlwdGlvbiBiaXQuIFNpbmNlIHRoZSANCj4+Pj4+PiB0 YWJsZXMgd2VyZSBidWlsdCBiZWluZyBtYXBwZWQgZW5jcnlwdGVkLCB0aGUgcGFnZXRhYmxlIHdh bGsgDQo+Pj4+Pj4gd29ya3Mgd2hlbiB0aGUgbm9uLWxlYWYgZW50cmllcyBkb24ndCBoYXZlIHRo ZSBlbmNyeXB0aW9uIGJpdCANCj4+Pj4+PiBzZXQuIEluIHRoaXMgY2FzZSwgdGhvdWdoLCB0aGUg ZW5jcnlwdGlvbiBiaXQgaXMgcHJlc2VudCBpbiB0aGUgDQo+Pj4+Pj4gbm9uLWxlYWYgZW50cnkg YW5kIHRoYXQgaXMgdGhlIHJlYXNvbiB3aHkgdGhlcmUgYXJlIGlzc3Vlcy4NCj4+Pj4+DQo+Pj4+ PiBDYW4geW91IHBvaW50IHVzIHdoaWNoIGRvYyBoZXJlDQo+Pj4+PiAoaHR0cHM6Ly93d3cuYW1k LmNvbS9lbi9kZXZlbG9wZXIvc2V2Lmh0bWwpDQo+Pj4+PiBzYXlzIHRoZSBwYWdlIHRhYmxlIGlz IGVuY3J5cHRlZCByZWdhcmRsZXNzIHRoZSBLRVlfSUQgYml0cyB2YWx1ZT8NCj4+Pj4+IEhvdyBj YW4gdGhlIGVuY3J5cHRpb24gZW5naW5lIGtub3cgaWYgYSBjaHVuayBvZiBtZW1vcnkgYmVsb25n cyB0byBwYWdlIHRhYmxlPw0KPj4+Pg0KPj4+PiBJdCBkb2Vzbid0LiBGb3IgYW4gU0VWIGd1ZXN0 LCB3aGVuIHRoZSBoYXJkd2FyZSB3YWxrcyB0aGUgDQo+Pj4+IHBhZ2V0YWJsZXMsIGl0IHdpbGwg YWx3YXlzIHRyZWF0IHRoZSBtZW1vcnkgYWNjZXNzZXMgYXMgZW5jcnlwdGVkIA0KPj4+PiAoc2Vl IHNlY3Rpb24NCj4+Pj4gMTUuMzQuNSBvZiB0aGUgQU1EIEFQTSBWb2wgMiBhdCBodHRwczovL3d3 dy5hbWQuY29tL3N5c3RlbS9maWxlcy9UZWNoRG9jcy8yNDU5My5wZGYpLg0KPj4+Pg0KPj4+PiBC dXQsIGJlY2F1c2UgdGhlIGluaXRpYWwgcGFnZXRhYmxlcyB0aGF0IGFyZSBidWlsdCB0byBtYXAg DQo+Pj4+IGV2ZXJ5dGhpbmcgYXMgZW5jcnlwdGVkL3ByaXZhdGUgdG8gc3RhcnQgd2l0aCAoc2Vl IA0KPj4+PiBPdm1mUGtnL1Jlc2V0VmVjdG9yL0lhMzIvUGFnZVRhYmxlczY0LmFzbSksIG9ubHkg Y2hhbmdpbmcgdG8gc2hhcmVkIA0KPj4+PiB3aGVuIHNwZWNpZmljYWxseSByZXF1ZXN0ZWQsIGFu eSBtZW1vcnkgYWxsb2NhdGVkIGFuZCB1c2VkIHdpbGwgYmUgZW5jcnlwdGVkLg0KPj4+PiBUaHVz LCB3aGVuIG5ldyBwYWdldGFibGVzIGFyZSBhbGxvY2F0ZWQvY3JlYXRlZCBpbiB0aGUgDQo+Pj4+ IENwdVBhZ2VUYWJsZUxpYiBsaWJyYXJ5LCB0aGV5IHdpbGwgYmUgZW5jcnlwdGVkIGFuZCBzbyBl dmVyeXRoaW5nIA0KPj4+PiB3b3Jrcy4gQW5kIHRob3NlIG5ldyBwYWdldGFibGVzIHdpbGwgbWFw IGV2ZXJ5dGhpbmcgZW5jcnlwdGVkIGJ5IA0KPj4+PiBkZWZhdWx0LCBleGNlcHQgZm9yIHRoZSBH SENCIHBhZ2VzLiBJZiB0aGV5IHdlcmUgbWFwcGVkIHNoYXJlZCB3aGVuIA0KPj4+PiB0aGV5IHdl cmUgY3JlYXRlZCwgdGhlbiB0aGUgcGFnZXRhYmxlIHdhbGsgd291bGQgZmFpbC4NCj4+Pj4NCj4+ Pj4+DQo+Pj4+PiBNeSB1bmRlcnN0YW5kaW5nIHRvIFNFViBpcyBhbnkgcGh5c2ljYWwgYWRkcmVz cyBmaWVsZCBpbiBndWVzdCANCj4+Pj4+IHBhZ2UgdGFibGUgc2hvdWxkIGhhdmUgdGhlIEtFWV9J RCBiaXRzIHNldCBpZiB0aGUgcGh5c2ljYWwgcGFnZXMgDQo+Pj4+PiBhcmUgcHJpdmF0ZSB0byBn dWVzdC4gT25seSBzb21lIHBhZ2VzIGZvciBHTUNCIGRvbid0IGhhdmUgS0VZX0lEIGJpdHMgc2V0 IGFzIHRob3NlIGFyZSBzaGFyZWQgYmV0d2VlbiBndWVzdCBhbmQgaG9zdC4NCj4+Pj4NCj4+Pj4g UmlnaHQsIHRoZSBlbmNyeXB0aW9uIGJpdCBpbiB0aGUgbGVhZiBlbnRyeSBvZiB0aGUgcGFnZXRh YmxlcyB3aWxsIA0KPj4+PiBkZXRlcm1pbmUgdGhlIGVuY3J5cHRpb24gbW9kZS4NCj4+Pj4NCj4+ Pj4+DQo+Pj4+PiBJIHRob3VnaHQgRHVuJ3MgcGF0Y2ggd29ya3MgYmVjYXVzZSBhbGwgZ3Vlc3Qg bWVtb3J5IGlzIG1hcmtlZCBhcyANCj4+Pj4+IHNoYXJlZCBiZWNhdXNlIHRoZSBLRVlfSUQgYml0 cyBpbiBhbGwgZW50cmllcyBhcmUgbm90IHNldC4gT25seSANCj4+Pj4+IHNvbWUgcGFnZXMgdGhh dCdyZSB1c2VkIGJ5IEdNQ0IgaGF2ZSB0aGUgS0VZX0lEIGJpdHMgc2V0Lg0KPj4+Pg0KPj4+PiBK dXN0IHRoZSBvcHBvc2l0ZSwgdGhlIENwdVBhZ2VUYWJsZUxpYiBsaWJyYXJ5IG1hcmtzIGV2ZXJ5 dGhpbmcgDQo+Pj4+IGVuY3J5cHRlZCBhbmQgb25seSBjbGVhcnMgdGhlIGVuY3J5cHRpb24gYml0 IGZvciB0aGUgR0hDQiBwYWdlcy4NCj4+Pj4NCj4+Pj4gSW4gTWRlTW9kdWxlUGtnL0NvcmUvRHhl SXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jLCB0aGUNCj4+Pj4gQ3JlYXRlSWRlbnRpdHlNYXBw aW5nUGFnZVRhYmxlcygpIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgZW5jcnlwdGlvbiANCj4+Pj4g Yml0IGFuZCBzYXZlcyBpdCBpbiBBZGRyZXNzRW5jTWFzay4gQWRkcmVzc0VuY01hc2sgaXMgdGhl biBhcHBsaWVkIA0KPj4+PiB0byB0aGUgbWFwcGluZyBhdHRyaWJ1dGUgdXNlZCB3aGVuIGNhbGxp bmcgDQo+Pj4+IENyZWF0ZU9yVXBkYXRlUGFnZVRhYmxlKCkgdG8gYnVpbGQgdGhlIGluaXRpYWwg cGFnZXRhYmxlcy4NCj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gSGVyZSBpcyBz b21lIGRlYnVnIGFmdGVyIHNldHRpbmcgUGFnaW5nRW50cnkgYXQgbGluZSA0MzYgb2YNCj4+Pj4+ PiBVZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1UGFnZVRhYmxlTGliL0NwdVBhZ2VUYWJsZU1hcC5jOg0K Pj4+Pj4+DQo+Pj4+Pj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBh Z2luZ0VudHJ5ID0gM0ZGODEwMDANCj4+Pj4+PiAqKiogREVCVUc6IFBhZ2VUYWJsZUxpYk1hcElu TGV2ZWw6NDM3IC0gUGFnaW5nRW50cnkgPSAzRkY4MDAwMA0KPj4+Pj4+ICoqKiBERUJVRzogUGFn ZVRhYmxlTGliTWFwSW5MZXZlbDo0MzcgLSBQYWdpbmdFbnRyeSA9IDNGRjgzMDAwDQo+Pj4+Pj4g KioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZG ODEwMDANCj4+Pj4+PiAqKiogREVCVUc6IFBhZ2VUYWJsZUxpYk1hcEluTGV2ZWw6NDM3IC0gUGFn aW5nRW50cnkgPSAzRkY4MDAwMA0KPj4+Pj4+ICoqKiBERUJVRzogUGFnZVRhYmxlTGliTWFwSW5M ZXZlbDo0MzcgLSBQYWdpbmdFbnRyeSA9IDNGRjgzMDAwDQo+Pj4+Pj4gKioqIERFQlVHOiBQYWdl VGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODEwMDANCj4+Pj4+PiAq KiogREVCVUc6IFBhZ2VUYWJsZUxpYk1hcEluTGV2ZWw6NDM3IC0gUGFnaW5nRW50cnkgPSAzRkY4 MDAwMA0KPj4+Pj4+ICoqKiBERUJVRzogUGFnZVRhYmxlTGliTWFwSW5MZXZlbDo0MzcgLSBQYWdp bmdFbnRyeSA9DQo+Pj4+Pj4gODAwMDAzRkMwMTAwMA0KPj4+Pj4NCj4+Pj4+IEFyZSB5b3UgdGVz dGluZyB0aGUgU01FIG9yIFNFVj8NCj4+Pj4+IE15IHVuZGVyc3RhbmRpbmcgaXMgd2l0aCBTTUUs IG9ubHkgdGhlIGhpZ2hlc3QgQyBiaXQgc2hvdWxkIGJlIHNldCANCj4+Pj4+IGluZGljYXRpbmcg dGhlIHBoeXNpY2FsIHBhZ2UgaXMgZW5jcnlwdGVkLg0KPj4+Pg0KPj4+PiBJIGFtIHRlc3Rpbmcg U0VWLiBUaGVyZSBpcyBvbmx5IGEgc2luZ2xlIGJpdCB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgDQo+ Pj4+IHBhZ2UgaXMgZW5jcnlwdGVkLiBUaGUgZ3Vlc3QgQVNJRCBpcyB1c2VkIHRvIGRldGVybWlu ZSB3aGF0IGtleSBpcyANCj4+Pj4gdXNlZCB0byBkZWNyeXB0IHRoZSBwYWdlLiBGcm9tIGEgcGFn ZXRhYmxlIGxlYWYgZW50cnksIFNNRSBhbmQgU0VWIA0KPj4+PiBhcmUgZXF1aXZhbGVudCwgdGhl IGVuY3J5cHRpb24gYml0IGRldGVybWluZXMgaG93IHRoZSBtZW1vcnkgd2lsbCBiZSBhY2Nlc3Nl ZC4NCj4+Pj4NCj4+Pj4gU01FIGFuZCBTRVYgZGlmZmVyIGluIGhvdyB0aGV5IGRlYWwgd2l0aCBp bnN0cnVjdGlvbiBmZXRjaGVzIGFuZCANCj4+Pj4gcGFnZXRhYmxlIHdhbGtzLCB3aXRoIFNNRSBv YmV5aW5nIHRoZSBlbmNyeXB0aW9uIGJpdCBhbmQgU0VWIGFsd2F5cyANCj4+Pj4gcGVyZm9ybWlu ZyB0aGUgYWNjZXNzZXMgYXMgZW5jcnlwdGVkIGFjY2Vzc2VzIGZvciBzZWN1cml0eS4NCj4+Pj4N Cj4+Pj4gVGhhbmtzLA0KPj4+PiBUb20NCj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4+ PiAhISEhIFg2NCBFeGNlcHRpb24gVHlwZSAtIDBEKCNHUCAtIEdlbmVyYWwgUHJvdGVjdGlvbikg IENQVSBBcGljIA0KPj4+Pj4+IElEDQo+Pj4+Pj4gLQ0KPj4+Pj4+IDAwMDAwMDAwICEhISENCj4+ Pj4+Pg0KPj4+Pj4+IDB4ODAwMDAzRkMwMTAwMCBpc24ndCBtYXBwZWQgYW5kIHNvIGl0IGZhaWxz IC0gSSdtIG5vdCBleGFjdGx5IA0KPj4+Pj4+IHN1cmUgaG93IHRoZSAjUEYgdHVybnMgaW50byBh ICNHUCwgdGhvdWdoLCBtYXliZSBiZWNhdXNlIHRoZSANCj4+Pj4+PiB2aXJ0dWFsIGFkZHJlc3Mg aXNuJ3QgY2Fub25pY2FsIHRoYXQgcG9pbnQuDQo+Pj4+Pj4NCj4+Pj4+PiBUaGFua3MsDQo+Pj4+ Pj4gVG9tDQo+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSdsbCBhZGRlZCBhbm90aGVyIHBhdGNo IGluIG15IGNvZGUgYnJhbmNoIHRvIGZpeCB0aGlzIGlzc3VlIGxhdGVyLg0KPj4+Pj4+PiBJbiB0 aGUgbmV3DQo+Pj4+Pj4gY29tbWl0LCBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBDcHVQYWdlVGFi bGVMaWIsIHRoZSB3aG9sZSBtZW1vcnkgDQo+Pj4+Pj4gY2FuIGJlIGRpdmlkZWQgaW50byAzIGNh dGVnb3JpZXM6IG1lbW9yeSB1c2VkIGJ5IHBhZ2UgdGFibGUsIA0KPj4+Pj4+IGd1ZXN0IHByaXZh dGUgbWVtb3J5IGFuZCBndWVzdCBzaGFyZWQgbWVtb3J5LiBDcHVQYWdlVGFibGVMaWIgDQo+Pj4+ Pj4gd2lsbCBhbHdheXMgYXBwbHkgdGhlIGVuY3J5cHQgbWFzayB0byBtZW1vcnkgdXNlZCBieSBw YWdlIHRhYmxlLCANCj4+Pj4+PiB3aGljaCBtZWFucyBhbGwgdGhlIG5vbi1sZWFmIHBhZ2UgdGFi bGUgZW50cmllcyBhcmUgZW5jcnlwdGVkLiANCj4+Pj4+PiBGb3IgZ3Vlc3QgcHJpdmF0ZSBtZW1v cnksIHRoaXMgY2FzZSBjYW4gYmUgdHJlYXRlZCBhcyBub24tMToxIA0KPj4+Pj4+IG1hcHBpbmcu IFdlIGNhbiBhcHBseSB0aGUgZW5jcnlwdCBtYXNrIGJ5IHNldHRpbmcgdGhlIGlucHV0IA0KPj4+ Pj4+IHBhcmFtZXRlciBvZg0KPj4+Pj4+IFBhZ2VUYWJsZU1hcCgpIEFQSSBsaWtlICIgQXR0cmli dXRlLlVpbnQ2NCA9IExpbmVhckFkZHJlc3MgfCANCj4+Pj4+PiBBZGRyZXNzRW5jTWFzayIuIEZv ciBndWVzdCBzaGFyZWQgbWVtb3J5LCB0aGlzIGNhc2UgY2FuIGJlIHRyZWF0ZWQgYXMgbm9ybWFs IDE6MSBtYXBwaW5nLg0KPj4+Pj4+IEknbGwgbGV0IHlvdSBrbm93IG9uY2UgdGhlIG5ldyBwYXRj aCBpcyByZWFkeS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhhbmtzLA0KPj4+Pj4+PiBEdW4NCj4+Pj4+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4+Pj4+PiBMZW5k YWNreSwgVGhvbWFzIHZpYSBncm91cHMuaW8NCj4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIEFwcmls IDEzLCAyMDIzIDM6MjYgQU0NCj4+Pj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBUYW4s IER1biA8ZHVuLnRhbkBpbnRlbC5jb20+DQo+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byANCj4+Pj4+Pj4gY3JlYXRl DQo+Pj4+Pj4gYW5kIHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPj4+Pj4+Pg0KPj4+Pj4+PiBPbiA0 LzEyLzIzIDA1OjE3LCBkdW50YW4gdmlhIGdyb3Vwcy5pbyB3cm90ZToNCj4+Pj4+Pj4+IEhpIFRv bSwNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBUaGlzIHBhdGNoIHNldCBpcyB0byBjaGFuZ2UgUGlTbW1D cHVEeGVTbW0gY29kZSB0byB1c2UNCj4+Pj4+PiBDcHVQYWdlVGFibGVMaWIgdG8gY3JlYXRlIGFu ZCB1cGRhdGUgU01NIHBhZ2UgdGFibGUuIFRoZSBQY2QgDQo+Pj4+Pj4gUGNkUHRlTWVtb3J5RW5j cnlwdGlvbkFkZHJlc3NPck1hc2sgaXMgYWxzbyB1c2VkIGluIA0KPj4+Pj4+IFBpU21tQ3B1RHhl U21tIGNvZGUgYW5kIHRoZSB3aG9sZSByYW5nZSBjb3ZlcmVkIGJ5IHBhZ2UgdGFibGUgaXMgDQo+ Pj4+Pj4gbWFwcGVkIGVuY3J5cHRlZCwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gdGhlIHNpdHVh dGlvbiBpbiBEeGVJcGwgbW9kdWxlLg0KPj4+Pj4+Pj4gU28gY291bGQgeW91IGFsc28gaGVscCBk byBhIHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBBTUQgU0VWIA0KPj4+Pj4+Pj4gZmVhdHVyZSBzdGls bA0KPj4+Pj4+IHdvcmtzIGdvb2QgaW4gU01NIHdpdGggdGhpcyBwYXRjaCBzZXQ/DQo+Pj4+Pj4+ PiBIZXJlIGlzIHRoZSBjb2RlIGJyYW5jaCBpbiBteSBmb3JrIHJlcG86DQo+Pj4+Pj4+PiBodHRw czovL2dpdGh1Yi5jb20vdGQzNi9lZGsyL2NvbW1pdHMvU21tUGFnZVRhYmxlX1YyDQo+Pj4+Pj4+ DQo+Pj4+Pj4+IEhpIER1biwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSB0ZXN0ZWQgYXQgdGhlIGZpbmFs IGNvbW1pdCBvZiB0aGUgYnJhbmNoIGFuZCBlbmNvdW50ZXJlZCBhICNHUCANCj4+Pj4+Pj4gd2l0 aCBhbg0KPj4+Pj4+IFNFViBndWVzdC4gSXQgbG9va3MgbGlrZSB0aGUgQ3B1UGFnZVRhYmxlTGli cmFyeSBkb2Vzbid0IHRha2UgdGhlIA0KPj4+Pj4+IGVuY3J5cHRpb24gYml0IGludG8gYWNjb3Vu dC4gRm9yIGV4YW1wbGU6DQo+Pj4+Pj4+DQo+Pj4+Pj4+IExpbmUgNDM2IG9mIFVlZmlDcHVQa2cv TGlicmFyeS9DcHVQYWdlVGFibGVMaWIvQ3B1UGFnZVRhYmxlTWFwLmMNCj4+Pj4+Pj4gICAgICAg ICAgUGFnaW5nRW50cnkgPSAoSUEzMl9QQUdJTkdfRU5UUlkNCj4+Pj4+PiAqKShVSU5UTilJQTMy X1BOTEVfUEFHRV9UQUJMRV9CQVNFX0FERFJFU1MgKCZQYXJlbnRQYWdpbmdFbnRyeS0NCj4+Pj4+ Pj4gUG5sZSk7DQo+Pj4+Pj4+DQo+Pj4+Pj4+IFRoaXMgd2lsbCBnZXQgYW4gYWRkcmVzcyB3aXRo IHRoZSBlbmNyeXB0aW9uIGJpdCBzZXQgYW5kIHRoZW4gDQo+Pj4+Pj4+IHRyeSB0bw0KPj4+Pj4+ IHJlZmVyZW5jZSBpdC4gV2hlbiBJIGNsZWFyIHRoZSBlbmNyeXB0aW9uIGJpdCwgdGhlIGNvZGUg cHJvY2VlZHMgDQo+Pj4+Pj4gYSBiaXQgZnVydGhlciwgYnV0IHRoZW4gZW5jb3VudGVycyBhICNH UCBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbi4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gU28gaXQgYXBwZWFy cyB0aGF0IHRoZSBDcHVQYWdlVGFibGVMaWJyYXJ5IGRvZXNuJ3QgZGVhbCB3aXRoIHRoZQ0KPj4+ Pj4+IGVuY3J5cHRpb24gYml0IHByb3Blcmx5Lg0KPj4+Pj4+Pg0KPj4+Pj4+PiBBbHNvLCBnb2lu ZyB0aHJvdWdoIGEgYnVpbGQvdGVzdCBvZiBlYWNoIGluZGl2aWR1YWwgcGF0Y2ggaGFkIG1peGVk IHJlc3VsdHMuDQo+Pj4+Pj4+DQo+Pj4+Pj4+ICAgICAgICAgIC0gV2l0aCB0aGUgc2Vjb25kIHBh dGNoIGluIHRoZSBzZXJpZXMgYXBwbGllZCwgSSBnZXQgYSBidWlsZCBlcnJvcjoNCj4+Pj4+Pj4N Cj4+Pj4+Pj4gICAgICAgICAgICAvcm9vdC9rZXJuZWxzL292bWYtZHVuLWJ1aWxkLVg2NC9Pdm1m UGtnL092bWZQa2dYNjQuZHNjKC4uLik6DQo+Pj4+Pj4gZXJyb3IgNDAwMDogSW5zdGFuY2Ugb2Yg bGlicmFyeSBjbGFzcyBbQ3B1UGFnZVRhYmxlTGliXSBpcyBub3QgDQo+Pj4+Pj4gZm91bmQNCj4+ Pj4+Pj4gICAgICAgICAgICAgICAgICAgIGluIFsvcm9vdC9rZXJuZWxzL292bWYtZHVuLWJ1aWxk LQ0KPj4+Pj4+IFg2NC9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmlu Zl0gW1g2NF0NCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIGNvbnN1bWVkIGJ5IG1vZHVsZQ0K Pj4+Pj4+PiBbL3Jvb3Qva2VybmVscy9vdm1mLWR1bi1idWlsZC0NCj4+Pj4+PiBYNjQvVWVmaUNw dVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmZdDQo+Pj4+Pj4+DQo+Pj4+Pj4+ ICAgICAgICAgICAgdGhhdCBpc24ndCByZXNvbHZlZCB1bnRpbCB0aGUgZmluYWwgcGF0Y2guDQo+ Pj4+Pj4+DQo+Pj4+Pj4+IFRoYW5rcywNCj4+Pj4+Pj4gVG9tDQo+Pj4+Pj4+DQo+Pj4+Pj4+Pg0K Pj4+Pj4+Pj4gVGhhbmtzLA0KPj4+Pj4+Pj4gRHVuDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+Pj4+Pj4gZHVudGFuDQo+Pj4+ Pj4+PiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDEyLCAyMDIzIDQ6NTQgUE0NCj4+Pj4+Pj4+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+Pj4+Pj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQ YXRjaCBWMiAwLzhdIFVzZSBDcHVQYWdlVGFibGVMaWIgdG8gDQo+Pj4+Pj4+PiBjcmVhdGUgYW5k IHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IEluIFYyIHBhdGNoIHNl dDoNCj4+Pj4+Pj4+IDEuSW4gJ1JlZmluZW1lbnQgdG8gY29kZSBhYm91dCB1cGRhdGluZyBzbW0g cGFnZSB0YWJsZScsIHVzZQ0KPj4+Pj4+Pj4gUXVpY2tTb3J0KCkNCj4+Pj4+PiBpbiBCYXNlTGli IGluc3RlYWQgb3IgUGVyZm9ybVF1aWNrU29ydCgpIGluIEJhc2VTb3J0TGliLg0KPj4+Pj4+Pj4g Mi5SZW1vdmUgdGhlIHBhdGNoIHRvIGFkZCBCYXNlU29ydExpYiBpbiBEU0MgZmlsZS4NCj4+Pj4+ Pj4+IDMuQWRkIGEgbmV3IHBhdGNoIHRvIGFkZCBDcHVQYWdlVGFibGVMaWIgaW4gVWVmaUNwdVBr Zy5kc2MuDQo+Pj4+Pj4+PiA0LkFkZCBhIHRlbXAgcGF0Y2ggdG8gYWRkIENwdVBhZ2VUYWJsZUxp YiBpbiBPdm1mUGtnIGRzYyBmaWxlcyANCj4+Pj4+Pj4+IGZvciB0ZXN0KEEgcHJldmlvdXMgcGF0 Y2ggSSBzZW50IGJlZm9yZSAnW1BhdGNoIFYyIDQvOF0gT3ZtZlBrZzoNCj4+Pj4+Pj4+IEFkZCBD cHVQYWdlVGFibGVMaWIgcmVxdWlyZWQgYnkgRHhlSXBsIGluIERTQyBmaWxlJyBjb250YWlucyAN Cj4+Pj4+Pj4+IGFsbCB0aGUgY2hhbmdlcyBpbiB0aGlzIHBhdGNoKQ0KPj4+Pj4+Pj4NCj4+Pj4+ Pj4+IER1biBUYW4gKDgpOg0KPj4+Pj4+Pj4gICAgICAgICAgT3ZtZlBrZzogQWRkIENwdVBhZ2VU YWJsZUxpYiByZXF1aXJlZCBieSBQaVNtbUNwdUR4ZQ0KPj4+Pj4+Pj4gICAgICAgICAgVWVmaVBh eWxvYWRQa2c6IEFkZCBDcHVQYWdlVGFibGVMaWIgcmVxdWlyZWQgYnkgUGlTbW1DcHVEeGUNCj4+ Pj4+Pj4+ICAgICAgICAgIFVlZmlDcHVQa2c6IFVzZSBDcHVQYWdlVGFibGVMaWIgdG8gY29udmVy dCBTTU0gcGFnaW5nIGF0dHJpYnV0ZS4NCj4+Pj4+Pj4+ICAgICAgICAgIFVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW06IEF2b2lkIHNldHRpbmcgbm9uLXByZXNlbnQgDQo+Pj4+Pj4+PiByYW5nZSB0 bw0KPj4+Pj4+IFJPL05YDQo+Pj4+Pj4+PiAgICAgICAgICBVZWZpQ3B1UGtnOiBFeHRlcm4gbVNt bVNoYWRvd1N0YWNrU2l6ZSBpbiBQaVNtbUNwdUR4ZVNtbS5oDQo+Pj4+Pj4+PiAgICAgICAgICBV ZWZpQ3B1UGtnOiBSZWZpbmVtZW50IHRvIGN1cnJlbnQgc21tIHBhZ2UgdGFibGUgZ2VuZXJhdGlv biBjb2RlDQo+Pj4+Pj4+PiAgICAgICAgICBVZWZpQ3B1UGtnOiBSZWZpbmVtZW50IHRvIGNvZGUg YWJvdXQgdXBkYXRpbmcgc21tIHBhZ2UgdGFibGUNCj4+Pj4+Pj4+ICAgICAgICAgIFVlZmlDcHVQ a2cvUGlTbW1DcHVEeGVTbW06IFJlbW92ZSB1bm5lY2Vzc2FyeSBmdW5jdGlvbg0KPj4+Pj4+Pj4N Cj4+Pj4+Pj4+ICAgICAgICAgT3ZtZlBrZy9DbG91ZEh2L0Nsb3VkSHZYNjQuZHNjICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0NCj4+Pj4+Pj4+ICAgICAgICAgT3ZtZlBrZy9Pdm1mUGtnSWEz Mi5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKystDQo+Pj4+Pj4+PiAgICAg ICAgIE92bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZHNjICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstDQo+Pj4+Pj4+PiAgICAgICAgIE92bWZQa2cvT3ZtZlBrZ1g2NC5kc2MgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstDQo+Pj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vSWEzMi9QYWdlVGJsLmMgICAgICAgICAgIHwgICA1ICsrKy0tDQo+Pj4+ Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TbW1GdW5jc0FyY2gu YyAgICAgIHwgICAzICstLQ0KPj4+Pj4+Pj4gICAgICAgICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhl U21tL0lhMzIvU21tUHJvZmlsZUFyY2guYyAgICB8ICAgMiArLQ0KPj4+Pj4+Pj4gICAgICAgICBV ZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL01wU2VydmljZS5jICAgICAgICAgICAgICB8IDEzMiAt LS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0NCj4+ Pj4+PiAtDQo+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+PiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4+Pj4+Pj4+ICAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNt bS9QaVNtbUNwdUR4ZVNtbS5jICAgICAgICAgfCAgIDggKysrKysrLQ0KPj4+Pj4+IC0NCj4+Pj4+ Pj4+ICAgICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oICAg ICAgICAgfCAgOTcNCj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+Pj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v UGlTbW1DcHVEeGVTbW0uaW5mICAgICAgIHwgICAxICsNCj4+Pj4+Pj4+ICAgICAgICAgVWVmaUNw dVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMgfCANCj4+Pj4+Pj4+ IDYyOQ0KPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4+PiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0N Cj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+Pj4+ Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4+Pj4+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtDQo+Pj4+Pj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtDQo+Pj4+ Pj4gLQ0KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4+Pj4+PiAtDQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+Pj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tUHJv ZmlsZS5jICAgICAgICAgICAgIHwgMzQ4DQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+Pj4+PiArKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPj4+Pj4+ICsrKysrKysrKy0NCj4+Pj4+PiArKysrKysrKystDQo+Pj4+Pj4gKysrKysr KysrLQ0KPj4+Pj4+ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pj4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4+Pj4+PiAtDQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+Pj4+Pj4+PiAgICAgICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v WDY0L1BhZ2VUYmwuYyAgICAgICAgICAgIHwgMjI5DQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+Pj4+PiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQ0KPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4+ Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+Pj4+Pj4gLQ0KPj4+Pj4+IC0NCj4+Pj4+PiAtDQo+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+Pj4+Pj4gICAgICAgICBVZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1g2NC9TbW1GdW5jc0FyY2guYyAgICAgICB8ICAgMyArLS0NCj4+Pj4+Pj4+ICAg ICAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvU21tUHJvZmlsZUFyY2guYyAgICAg fCAgMTkgKystLS0tLS0tDQo+Pj4+Pj4gLS0tLS0tLS0tLQ0KPj4+Pj4+Pj4gICAgICAgICBVZWZp UGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0K Pj4+Pj4+Pj4gICAgICAgICAxNyBmaWxlcyBjaGFuZ2VkLCA1MTAgaW5zZXJ0aW9ucygrKSwgOTc3 IGRlbGV0aW9ucygtKQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+ Pj4NCj4+Pj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+ Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pg0K Pj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCj4gDQo+IA0KPiANCg==