From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web08.3135.1617069359138484489 for ; Mon, 29 Mar 2021 18:55:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=xFG+Yrxq; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: 5y4IJVBA3tIRRYh675X1G17va0/5mdjl3oa/WeZA9qJDCBoJXig19rZy/83c/mavVTEoEO/BHx S9EpZjNvUVog== X-IronPort-AV: E=McAfee;i="6000,8403,9938"; a="191763291" X-IronPort-AV: E=Sophos;i="5.81,289,1610438400"; d="scan'208";a="191763291" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2021 18:55:57 -0700 IronPort-SDR: sh3QUdgCRFW+gNGquk7E+6LEQJ4alouqm/L1cmV0LGVeJpphne8tk4JOQzdcCJHZLyde7PFC/W Oa/XVRwJ3Wyg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,289,1610438400"; d="scan'208";a="417938478" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga008.jf.intel.com with ESMTP; 29 Mar 2021 18:55:57 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 29 Mar 2021 18:55:57 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2106.2; Mon, 29 Mar 2021 18:55:56 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 29 Mar 2021 18:55:56 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) 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.2106.2; Mon, 29 Mar 2021 18:55:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jTgc/rfIy0eflNdIEXkyEnwDFgJXzDqiAsmMsrODln3+4KLsWJKx0Iy68paxAzFqJWsq6hqOc7qih9RUCGsZ1BHEmDZXWB0SUehC25VxU+8HM9mKtNsimzt2Px+lVbKtTNG136YHJKGzU9oVC47Glt+zOeeLd6+SNpUntKs4su8aKrtaCfUd2MH43afjw0NLkwaerYBkVfuGc0APPU90YaYAjmFMKL9b4dEr7zzNcQs1TM7OFb/Z3CNa4p2CxcLzuldlZVS5mm++mjMZlHPTWLVH/7Im/ybxB2hxZ6PDkYBQzxPqHHXu4IzlY1ircMPbnHneLvOtpHMpx2R/oCYqrA== 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-SenderADCheck; bh=vRR0NHLbnM5FBbOOamxNOjxONtGed6djVaV/yh0jGwg=; b=N1bwPbdvEfKIlmLXxhbKqd9iGFQesW8oKHyDFxtgi8IW9n6sHZ8ys6kYdZVj/PqxxKL2zhU7/tWJb86XhoiFoUqU7xDavKHaK7QCMsqY2wUgi9I8+5Q377W3R9/vzmASvBMNO/lcN9Bsvbs9ZyjYCpH9E2oAabFliRWtHAsfRo5b/h6mbCi/BbXgunsrNv70k+r68yVDSrGI+kaN70DfTrQtcQ2MpzQJf2tc64wQaZTUVUd/H8RwFjMGZE6mfALjAH8kmyzvj7XRHkijRF/s7H1HfZZ+cfD54vzEnoqLYy+bdO1FP6bbJYU3Tf7Uf00I4El+TsGpNJO3qKMsCGENZA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vRR0NHLbnM5FBbOOamxNOjxONtGed6djVaV/yh0jGwg=; b=xFG+Yrxqz6lUoPcG9t1SDQMkfrMmfEu4C/qhOXq/MvjYJK0+1dIHz11w5FxVPzfd+VKG8WNHA4V2O3nKKy+igPc+1pZilN1tgqz5uC4b0mBrawWPvxL6D/Ug3rzhgscxNgm5mILLyN1RkHxFV0H+REbfgQs5PqJOYVCVavpL80w= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB0013.namprd11.prod.outlook.com (2603:10b6:301:67::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.30; Tue, 30 Mar 2021 01:55:52 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ddb6:ec7f:2548:efdc]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ddb6:ec7f:2548:efdc%4]) with mapi id 15.20.3977.033; Tue, 30 Mar 2021 01:55:52 +0000 From: "Michael D Kinney" To: "Bi, Dandan" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Sean Brogan , Bret Barkelew , Leif Lindholm , "Ard Biesheuvel" , Laszlo Ersek , "Yao, Jiewen" , "Wang, Jian J" , Sami Mujawar , Alexei Fedorov , Andrew Fish , "Ni, Ray" , "Chiu, Chasel" , "Desimone, Nathaniel L" , "Zeng, Star" , "Gao, Zhichao" , "Wu, Hao A" , "Ma, Maurice" , "Dong, Guo" , "You, Benjamin" , "Dong, Eric" , Maciej Rabeda , "Wu, Jiaxin" , "Fu, Siyuan" , "Justen, Jordan L" , Supreeth Venkatesh , Abner Chang , Nickle Wang , "Liming Gao" , "Liu, Zhiguang" Subject: Re: [patch V4 00/29] Add a new library class RegisterFilterLib in edk2 to filter/trace port IO/MMIO/MSR access Thread-Topic: [patch V4 00/29] Add a new library class RegisterFilterLib in edk2 to filter/trace port IO/MMIO/MSR access Thread-Index: AQHXI8pNcj/lp4aFgESqY3vYxDOlvqqbx6kw Date: Tue, 30 Mar 2021 01:55:52 +0000 Message-ID: References: <20210328120229.24828-1-dandan.bi@intel.com> In-Reply-To: <20210328120229.24828-1-dandan.bi@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 051f6c35-7867-41c7-b622-08d8f31ef339 x-ms-traffictypediagnostic: MWHPR11MB0013: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1091; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Qpccjd4GomFWSI+OhUXTxIpAAEc+T1ToHy4kDOyuN8q7XUUmAoTsFuE1i2KwArixYehDBJsEURIfrXFOxr7d0edv1s/Wmbbg3SIeIprz1lf1VJr7Xrnnnoq6rh7lPiV9KCvHGuRbgmwPr/iAZIjsnsKxYTIMH4u9gsN5kq8SgSKiT/8Y13k3ia0mVoI/v975RKHZuyY9We8UIsBTZNp4HiszfGk6OUbTXG6XB6fB0881vMiluEwxLiUcrnUHEOOrmsvMQL5ZEQLi74RNz5X86thod5dt2olF9kWdXpXDWdqyMisQ/D/Ty+NrCy/4G6wOaC+Gs2FRQjLhtDkz4cDU6hpL4djkXOlmuOe6QX0G1z3zveqQErclvQ9UPqLfhsHj4izKnV6pMXPJEorsa/NuK2ldjJHCefkb9XBtu/l/URO06qcilLNQsDun8FvfQuzfzhyy4QlppRqGReS24f/Rj5K6Pg2wpO7G/iw6R2gDbRilBuF8dRn+04RVn/W/Fqz2Cjg3JBeJtQ3UIfw3ra/ZileNn0ik8S8D4V1RjyNoynibaRya0YIIwqcp7ezwLc83ui5yYyDR2fguIxFO4HDPHk3q8sFZlXHnsJD9Q5E/L4/SMINJvqs+YzSrQBS+u0CZNJ72BhujM7SbMDyE1+JB/CmPlQh5VSBOvlD24siLVqS1fxLhFXD4htumPkxyP5u/DXf3CWE70WMzca2ArD79oDo8RIykZPFDHMjolNhgXpFydaMxlZFHjm0cnPtSFyyE2NeQaH1kBShYGE2pvQ1t7Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(39860400002)(346002)(136003)(366004)(396003)(7416002)(186003)(966005)(110136005)(2906002)(71200400001)(478600001)(316002)(52536014)(33656002)(54906003)(86362001)(76116006)(6506007)(53546011)(64756008)(83380400001)(9686003)(55016002)(4326008)(19627235002)(66946007)(7696005)(8936002)(66446008)(8676002)(38100700001)(66476007)(5660300002)(66556008)(26005)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?dnBVbEgyczlvL29YN1R2dlk5SzdrMlN3c3IyaE1yQkwwdUtMN2RJeURKVWls?= =?utf-8?B?V3ZKY2hiVk5xc3JDd25JWU1Db0gxMlNWZjZmczhEdzcwc1NpYzN3L3J5OUtz?= =?utf-8?B?dDNIWVptY1VEQXVzZ1JHaFNlNDlQTy9JRnNyeXlNVDdmK0dVY0tnbjI4V0Rh?= =?utf-8?B?b3M2dUVhK1hzVkp2VHRaMEVJR0k3ZHVuTittbFZyc2d3Z05mRVB2dUFnSmkv?= =?utf-8?B?eUdGeFZDZG1TSitheFZ5bkp6dzd4MnR0SVJMVzJYYVA4ZXBwdkpqNDJob2Vn?= =?utf-8?B?SStVT3ZCRExhbXdZeVlJQXV2V01SQmZkRTdnVnRxbjM3SzJmUU1uNG9rQWhv?= =?utf-8?B?VUhoQnhoM0c2aFlDdHBZMjloZ1MyWjNBUVNRSVIyK245bWRqYm8wdlVGdTR5?= =?utf-8?B?Y2ZwTEpYQzhYRVVWR2pqRzZWT3pDU05rMVBxSW9IQ0lOL3ovRkVSSXZlTWlh?= =?utf-8?B?cXlVSmF3TmlVVVdJVzVHbk1WZE1BNmVzZU1SSThDZ24rWWRWVlh1NkVtTVlq?= =?utf-8?B?cEpQUmFld0hZazIza0Q1YkVtOU9lb2xCM3JLdmcreUFZMDl2UjBoOVFkei9W?= =?utf-8?B?YW1QQnlTcE9OSEpyZ2ZiT256R1c0UlFLYlZhNTFUa2QzakY0a3c1S1FCWDU5?= =?utf-8?B?WEpNcjdSOVV1SjZXblhpenlxbmxqMzVEUGdzNTYrOVh5Vk5paFhxT2l4MVdC?= =?utf-8?B?ekY1RWxKNUptZm84NkVVblQ0ZUZFcjlkQVQ0cXV5Sll2L3pDWmFvWTNBMGhI?= =?utf-8?B?Wm1URkR0NmNDNzBCdVluL2RsbEJORy9sRXg2dlVodTU1TC9rU1RvWVlLSzZG?= =?utf-8?B?UjdwNHU2R3BIdzhSY0JmcXZ0L1c4cU5VZ1R4K3RLR0JaK2R3SmlJT3l0Z3Q1?= =?utf-8?B?bDhTeGNvTXZLRUpHL0ZXRFMrVVByc3pESFM4Qmlhb3V2YmZvSDV6dTM0YVQw?= =?utf-8?B?S1JLUm1RaGQyN2d0RERlVzBQcDhDa0Q5dEs4b3hzZk9NSEtlTzlBK1lRYVlJ?= =?utf-8?B?MDZLNDFqY1MwSnY2SGJIaXJ2S1FnK0VUdktsUTVvc1F4SUxBbTNCQ1hqaHgw?= =?utf-8?B?b2FIMGNzUElkb2dOSXc3VzhPMGl5eFdzd3cwRVdMWGFoQXZYMFJOcXA5SUxB?= =?utf-8?B?QjhuWEZQa0x3ZjRYRkpqcGdqMDRtaU5VR0JveHlIWk9nZmg1dHpDM3BYSFkr?= =?utf-8?B?SkR3WExLNUc3Sit5OHB5bStsWXRXck1BQ1F4RFZlQ1FtRUZ6VTFnbTZ4SWxa?= =?utf-8?B?Y28zRm4rUmFJMVF6ZVRpb0dtSS9CalVBdDFobHBmWkQycEdaYUovQ25SL2RN?= =?utf-8?B?OXZhVUNreUJaNk4vYUpyaFkwRGg1RElUZkN5RDZoSXh2Snl2cU9yNjRYcVVD?= =?utf-8?B?eFBQdzllY01OYnY1aEVXRWxpZm4yWlVPNUVOVFdVcy9XWmMwRFp4SkQyMThC?= =?utf-8?B?djY4UTgvRHZlNXhzVjB4WHZpVTRDVXFjTTgwWG12MGNBeEprNUJMT2ltZno3?= =?utf-8?B?cmkwalIwQWxMNWFOa212aWorYTg1ejBpeDBwUkIyUllKby9PWFNUb2duQldy?= =?utf-8?B?NzUzQ3RyRWFkdWpwdW9vRnB4U29EejhqMzNFanJXMjF3RDhaZlRiR0RFZEd5?= =?utf-8?B?Nk42T281U2prMDRFaVNGWWc1dXVKczdGaEVQc0MyZkVxQ2RnUzkweGxQVnRy?= =?utf-8?B?RkVReHJZNFZOQVE0dFJzckwyYWJpQndYMGkvVnFhRk5FTVg3Y1FKSFJ5Z2Z6?= =?utf-8?Q?is2kFuA6A7/UrnLOXJl/m4fLwODT42Igo8+t7IT?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 051f6c35-7867-41c7-b622-08d8f31ef339 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2021 01:55:52.4933 (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: 4Io5URMGQ0Qq1vMFALqgT/nm8wFZEZDyfx1TZUHDuTIEHTECmW8bkZJy2zVuv05wzR2Q1UwDUbr7b1UYkj5H6A2J9CXJXntfaQ2aUgY8t1Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB0013 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U2VyaWVzIFJldmlld2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFN1bmRheSwgTWFyY2gg MjgsIDIwMjEgNTowMiBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFNlYW4gQnJvZ2FuIDxz ZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldw0KPiA8QnJldC5CYXJrZWxl d0BtaWNyb3NvZnQuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBBcmQg Qmllc2hldXZlbCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IExhc3psbyBFcnNlaw0KPiA8 bGVyc2VrQHJlZGhhdC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBX YW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFNhbWkgTXVqYXdhcg0KPiA8U2Ft aS5NdWphd2FyQGFybS5jb20+OyBBbGV4ZWkgRmVkb3JvdiA8QWxleGVpLkZlZG9yb3ZAYXJtLmNv bT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBOaSwgUmF5DQo+IDxyYXkubmlAaW50 ZWwuY29tPjsgQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+OyBEZXNpbW9uZSwg TmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IFplbmcsDQo+IFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVs LmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgTWEsIE1hdXJpY2UNCj4gPG1h dXJpY2UubWFAaW50ZWwuY29tPjsgRG9uZywgR3VvIDxndW8uZG9uZ0BpbnRlbC5jb20+OyBZb3Us IEJlbmphbWluIDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPjsgRG9uZywgRXJpYw0KPiA8ZXJpYy5k b25nQGludGVsLmNvbT47IE1hY2llaiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwu Y29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IEZ1LCBTaXl1YW4NCj4gPHNp eXVhbi5mdUBpbnRlbC5jb20+OyBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50 ZWwuY29tPjsgU3VwcmVldGggVmVua2F0ZXNoIDxzdXByZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT47 DQo+IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BocGUuY29tPjsgTmlja2xlIFdhbmcgPG5pY2ts ZS53YW5nQGhwZS5jb20+OyBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBM aXUsIFpoaWd1YW5nDQo+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbcGF0 Y2ggVjQgMDAvMjldIEFkZCBhIG5ldyBsaWJyYXJ5IGNsYXNzIFJlZ2lzdGVyRmlsdGVyTGliIGlu IGVkazIgdG8gZmlsdGVyL3RyYWNlIHBvcnQgSU8vTU1JTy9NU1IgYWNjZXNzDQo+IA0KPiBSRUY6 IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0Ng0KPiBS RkM6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzcyNTMwDQo+IEJyYW5j aCBmb3IgdGhpcyBjaGFuZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5kYW5iaS9lZGsyL3RyZWUv UmVnaXN0ZXJGaWx0ZXJMaWJWMw0KPiANCj4gUGF0Y2ggMSBpcyB0byBhZGQgUmVnaXN0ZXJGaWx0 ZXJMaWIgTGlicmFyeSBDbGFzcyBpbiBlZGsyIHRvIGZpbHRlci90cmFjZSBwb3J0IElPL01NSU8v TVNSIGFjY2VzcyBhbmQgYWRkIGENCj4gUmVnaXN0ZXJGaWx0ZXJMaWJOdWxsIGluc3RhbmNlLg0K PiBQYXRjaCAyIGlzIHRvIGFkZCB0aGUgTWRlTGlicy5kc2MuaW5jIGZpbGUgdG8gTWRlUGtnIGZv ciBzb21lIGRlZmF1bHQgbGlicmFyaWVzIHByb3ZpZGVkIGJ5IE1kZVBrZyBhbmQgYWRkDQo+IFJl Z2lzdGVyRmlsdGVyTGliIGludG8gaXQgYXMgdGhlIGZpcnN0IHZlcnNpb24gb2YgTWRlTGlicy5k c2MuaW5jLg0KPiBMYXN0IDIgcGF0Y2hlcyBhcmUgdG8gdXBkYXRlIEFQSXMgaW4gSW9MaWIgYW5k IEJhc2VMaWIgdG8gZmlsdGVyL3RyYWNlIHBvcnQgSU8vTU1JTy9NU1IgYWNjZXNzLg0KPiBSZW1h aW5pbmcgcGF0Y2hlcyBhcmUgdG8gdXBkYXRlIHJlbGF0ZWQgZHNjIGZpbGVzIHRvIGNvbnN1bWUg TWRlTGlicy5kc2MuaW5jIGZvciBSZWdpc3RlckZpbHRlckxpYi4NCj4gV2lsbCBzdWJtaXQgcGF0 Y2ggMSBhbmQgMiBmaXJzdGx5Lg0KPiBBbmQgdGhlbiB1cGRhdGUgcmVsYXRlZCBkc2MgZmlsZXMg aW4gZWRrMiBhbmQgZWRrMnBsYXRmb3JtIHJlcG8gdG8gY29uc3VtZSBNZGVMaWJzLmRzYy5pbmMg Zm9yIFJlZ2lzdGVyRmlsdGVyTGliLg0KPiBBdCBsYXN0IHdpbGwgc3VibWl0IHRoZSBwYXRjaGVz IHRvIHVwZGF0ZSBJb0xpYiBhbmQgQmFzZUxpYiB0byBmaWx0ZXIvdHJhY2UgcG9ydCBJTy9NTUlP L01TUiBhY2Nlc3MuDQo+IA0KPiAtLS0NCj4gVjQ6DQo+IENvbnN1bWUgdGhlIE1kZUxpYnMuZHNj LmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWJOdWxsIGluIGRzYyBmaWxlIHJhdGhlciB0aGFuIGlu IHh4eC5kc2MuaW5jLg0KPiBGb2xsb3dpbmcgMiBwYXRjaHdzIHdlcmUgdXBkYXRlZCBmb3IgY29u c3VtaW5nIE1kZUxpYnMuZHNjLmluYyBpbiBwbGF0Zm9ybSBkc2MgZmlsZS4NCj4gICBBcm1WaXJ0 UGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBV bml0VGVzdEZyYW1ld29ya1BrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lzdGVy RmlsdGVyTGliDQo+IE90aGVyIHBhdGNoZXMgYXJlIHRoZSBzYW1lIHdpdGggVjMuDQo+IC0tLQ0K PiBWMzoNCj4gMS4gRG9uJ3QgYXNzdW1lIExpYnJhcnkgaW5zdGFuY2VzIGluIE1kZUxpYnMuZHNj LmluYyBhcmUgbXVzdCBpbiBjb21tb24gW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9uLg0KPiAgICBD YW4gc3BlY2lmeSBkaWZmZXJlbnQgW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9uIGZvciB0aGUgbGli YXJ5IGluc3RhbmNlcyBpbiBNZGVMaWJzLmRzYy5pbmMuDQo+IDIuIFVwZGF0ZSBwbGFmdG9tIGRz YyB0byBjb25zdW1lIHRoZSBNZGVMaWJzLmRzYyBvdXRzaWRlIHRoZSBbTGlicmFyeUNsYXNzZXNd IHNlY3Rpb24uDQo+IDMuIFBpY2sgdXAgdGhlIFItQiBmb3IgcGF0Y2ggMSwgcGF0Y2ggMjgsIHBh dGNoIDI5Lg0KPiANCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ IENjOiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+IENjOiBM ZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4NCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxh cmRiK3RpYW5vY29yZUBrZXJuZWwub3JnPg0KPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVk aGF0LmNvbT4NCj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBDYzog SmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6IFNhbWkgTXVqYXdhciA8 U2FtaS5NdWphd2FyQGFybS5jb20+DQo+IENjOiBBbGV4ZWkgRmVkb3JvdiA8QWxleGVpLkZlZG9y b3ZAYXJtLmNvbT4NCj4gQ2M6IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+IENjOiBS YXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IENjOiBDaGFzZWwgQ2hpdSA8Y2hhc2VsLmNoaXVA aW50ZWwuY29tPg0KPiBDYzogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50 ZWwuY29tPg0KPiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBDYzogWmhp Y2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53 dUBpbnRlbC5jb20+DQo+IENjOiBNYXVyaWNlIE1hIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4g Q2M6IEd1byBEb25nIDxndW8uZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBCZW5qYW1pbiBZb3UgPGJl bmphbWluLnlvdUBpbnRlbC5jb20+DQo+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5j b20+DQo+IENjOiBNYWNpZWogUmFiZWRhIDxtYWNpZWoucmFiZWRhQGxpbnV4LmludGVsLmNvbT4N Cj4gQ2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4NCj4gQ2M6IFNpeXVhbiBGdSA8 c2l5dWFuLmZ1QGludGVsLmNvbT4NCj4gQ2M6IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3Rl bkBpbnRlbC5jb20+DQo+IENjOiBTdXByZWV0aCBWZW5rYXRlc2ggPHN1cHJlZXRoLnZlbmthdGVz aEBhcm0uY29tPg0KPiBDYzogQWJuZXIgQ2hhbmcgPGFibmVyLmNoYW5nQGhwZS5jb20+DQo+IENj OiBOaWNrbGUgV2FuZyA8bmlja2xlLndhbmdAaHBlLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8gPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1 QGludGVsLmNvbT4NCj4gDQo+IERhbmRhbiBCaSAoMjkpOg0KPiAgIE1kZVBrZzogQWRkIFJlZ2lz dGVyRmlsdGVyTGliIGNsYXNzIGFuZCBOVUxMIGluc3RhbmNlDQo+ICAgTWRlUGtnOiBBZGQgTWRl TGlicy5kc2MuaW5jIGZpbGUgdG8gTWRlUGtnDQo+ICAgQXJtUGtnOiBDb25zdW1lIE1kZUxpYnMu ZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBBcm1QbGF0Zm9ybVBrZzogQ29uc3Vt ZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ICAgQXJtVmlydFBrZzog Q29uc3VtZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ICAgQ3J5cHRv UGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBE eW5hbWljVGFibGVzUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0 ZXJMaWINCj4gICBFbWJlZGRlZFBrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lz dGVyRmlsdGVyTGliDQo+ICAgRW11bGF0b3JQa2c6IENvbnN1bWUgTWRlTGlicy5kc2MuaW5jIGZv ciBSZWdpc3RlckZpbHRlckxpYg0KPiAgIEZhdFBrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5pbmMg Zm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ICAgRm1wRGV2aWNlUGtnOiBDb25zdW1lIE1kZUxpYnMu ZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBJbnRlbEZzcDJQa2c6IENvbnN1bWUg TWRlTGlicy5kc2MuaW5jIGZvciBSZWdpc3RlckZpbHRlckxpYg0KPiAgIEludGVsRnNwMldyYXBw ZXJQa2c6IENvbnN1bWUgTWRlTGlicy5kc2MuaW5jIGZvciBSZWdpc3RlckZpbHRlckxpYg0KPiAg IE1kZU1vZHVsZVBrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lzdGVyRmlsdGVy TGliDQo+ICAgTWRlUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0 ZXJMaWINCj4gICBOZXR3b3JrUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0 ZXJGaWx0ZXJMaWINCj4gICBPdm1mUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVn aXN0ZXJGaWx0ZXJMaWINCj4gICBQY0F0Q2hpcHNldFBrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5p bmMgZm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ICAgUmVkZmlzaFBrZzogQ29uc3VtZSBNZGVMaWJz LmRzYy5pbmMgZm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ICAgU2VjdXJpdHlQa2c6IENvbnN1bWUg TWRlTGlicy5kc2MuaW5jIGZvciBSZWdpc3RlckZpbHRlckxpYg0KPiAgIFNoZWxsUGtnOiBDb25z dW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBTaWduZWRDYXBz dWxlUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4g ICBTb3VyY2VMZXZlbERlYnVnUGtnOiBDb25zdW1lIE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0 ZXJGaWx0ZXJMaWINCj4gICBTdGFuZGFsb25lTW1Qa2c6IENvbnN1bWUgTWRlTGlicy5kc2MuaW5j IGZvciBSZWdpc3RlckZpbHRlckxpYg0KPiAgIFVlZmlDcHVQa2c6IENvbnN1bWUgTWRlTGlicy5k c2MuaW5jIGZvciBSZWdpc3RlckZpbHRlckxpYg0KPiAgIFVlZmlQYXlsb2FkUGtnOiBDb25zdW1l IE1kZUxpYnMuZHNjLmluYyBmb3IgUmVnaXN0ZXJGaWx0ZXJMaWINCj4gICBVbml0VGVzdEZyYW1l d29ya1BrZzogQ29uc3VtZSBNZGVMaWJzLmRzYy5pbmMgZm9yIFJlZ2lzdGVyRmlsdGVyTGliDQo+ ICAgTWRlUGtnL0lvTGliOiBGaWx0ZXIvdHJhY2UgcG9ydCBJTy9NTUlPIGFjY2Vzcw0KPiAgIE1k ZVBrZy9CYXNlaWI6IEZpbHRlci90cmFjZSBNU1IgYWNjZXNzIGZvciBJQTMyL1g2NA0KPiANCj4g IEFybVBrZy9Bcm1Qa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+ ICBBcm1QbGF0Zm9ybVBrZy9Bcm1QbGF0Zm9ybVBrZy5kc2MgICAgICAgICAgICAgfCAgIDIgKw0K PiAgQXJtVmlydFBrZy9Bcm1WaXJ0LmRzYy5pbmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICst DQo+ICBDcnlwdG9Qa2cvQ3J5cHRvUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUg Ky0NCj4gIER5bmFtaWNUYWJsZXNQa2cvRHluYW1pY1RhYmxlc1BrZy5kc2MgICAgICAgICB8ICAg MiArDQo+ICBFbWJlZGRlZFBrZy9FbWJlZGRlZFBrZy5kc2MgICAgICAgICAgICAgICAgICAgfCAg IDUgKy0NCj4gIEVtdWxhdG9yUGtnL0VtdWxhdG9yUGtnLmRzYyAgICAgICAgICAgICAgICAgICB8 ICAgNCArLQ0KPiAgRmF0UGtnL0ZhdFBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstDQo+ICBGbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtnLmRzYyAgICAgICAgICAgICAg ICAgfCAgIDQgKy0NCj4gIEludGVsRnNwMlBrZy9JbnRlbEZzcDJQa2cuZHNjICAgICAgICAgICAg ICAgICB8ICAgNCArLQ0KPiAgSW50ZWxGc3AyUGtnL1Rvb2xzL1Rlc3RzL1FlbXVGc3BQa2cuZHNj ICAgICAgIHwgICAyICsNCj4gIEludGVsRnNwMldyYXBwZXJQa2cvSW50ZWxGc3AyV3JhcHBlclBr Zy5kc2MgICB8ICAgNCArLQ0KPiAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MgICAgICAg ICAgICAgICAgIHwgICA0ICstDQo+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1JlZ2lzdGVyRmls dGVyTGliLmggICAgfCAyNDMgKysrKysrKysrKysrKysrKw0KPiAgLi4uL0Jhc2VJb0xpYkludHJp bnNpYy9CYXNlSW9MaWJJbnRyaW5zaWMuaW5mIHwgICAzICstDQo+ICAuLi4vQmFzZUlvTGliSW50 cmluc2ljQXJtVmlydC5pbmYgICAgICAgICAgICAgfCAgIDMgKy0NCj4gIC4uLi9CYXNlSW9MaWJJ bnRyaW5zaWNJbnRlcm5hbC5oICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgLi4uL0Jhc2VJb0xp YkludHJpbnNpY1Nldi5pbmYgICAgICAgICAgICAgICAgIHwgICAzICstDQo+ICBNZGVQa2cvTGli cmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvSW9MaWIuYyAgICAgfCAgOTUgKysrKy0tDQo+ICAuLi4v TGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvSW9MaWJBcm1WaXJ0LmMgfCAgODIgKysrKystDQo+ ICBNZGVQa2cvTGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvSW9MaWJHY2MuYyAgfCAgNTggKysr LQ0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL0lvTGliTXNjLmMgIHwgIDgx ICsrKystLQ0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL0lvTGliTm9Jby5j IHwgIDc0ICsrKystDQo+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mICAgICAg ICAgICAgfCAgIDUgKy0NCj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9HY2NJbmxpbmVQ cml2LmMgICB8ICAzOCArKy0NCj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9SZWFkTXNy NjQuYyAgICAgICB8ICAzOCArKy0NCj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9Xcml0 ZU1zcjY0LmMgICAgICB8ICAyMiArLQ0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvR2Nj SW5saW5lUHJpdi5jICAgIHwgIDQzICsrLQ0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQv UmVhZE1zcjY0LmMgICAgICAgIHwgIDE1ICstDQo+ICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL1g2 NC9Xcml0ZU1zcjY0LmMgICAgICAgfCAgMTMgKy0NCj4gIC4uLi9SZWdpc3RlckZpbHRlckxpYk51 bGwuYyAgICAgICAgICAgICAgICAgICB8IDI3MSArKysrKysrKysrKysrKysrKysNCj4gIC4uLi9S ZWdpc3RlckZpbHRlckxpYk51bGwuaW5mICAgICAgICAgICAgICAgICB8ICAyMyArKw0KPiAgLi4u L1JlZ2lzdGVyRmlsdGVyTGliTnVsbC51bmkgICAgICAgICAgICAgICAgIHwgIDEzICsNCj4gIE1k ZVBrZy9NZGVMaWJzLmRzYy5pbmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArDQo+ICBN ZGVQa2cvTWRlUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0NCj4g IE1kZVBrZy9NZGVQa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQ0K PiAgTmV0d29ya1BrZy9OZXR3b3JrUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst DQo+ICBPdm1mUGtnL0FtZFNldi9BbWRTZXZYNjQuZHNjICAgICAgICAgICAgICAgICAgfCAgIDUg Ky0NCj4gIE92bWZQa2cvQmh5dmUvQmh5dmVYNjQuZHNjICAgICAgICAgICAgICAgICAgICB8ICAg NSArLQ0KPiAgT3ZtZlBrZy9Pdm1mUGtnSWEzMi5kc2MgICAgICAgICAgICAgICAgICAgICAgIHwg ICA1ICstDQo+ICBPdm1mUGtnL092bWZQa2dJYTMyWDY0LmRzYyAgICAgICAgICAgICAgICAgICAg fCAgIDUgKy0NCj4gIE92bWZQa2cvT3ZtZlBrZ1g2NC5kc2MgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNSArLQ0KPiAgT3ZtZlBrZy9Pdm1mWGVuLmRzYyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA1ICstDQo+ICBQY0F0Q2hpcHNldFBrZy9QY0F0Q2hpcHNldFBrZy5kc2MgICAgICAg ICAgICAgfCAgIDQgKy0NCj4gIFJlZGZpc2hQa2cvUmVkZmlzaFBrZy5kc2MgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArLQ0KPiAgU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cuZHNjICAgICAgICAg ICAgICAgICAgIHwgICA0ICstDQo+ICBTaGVsbFBrZy9TaGVsbFBrZy5kc2MgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0NCj4gIFNpZ25lZENhcHN1bGVQa2cvU2lnbmVkQ2Fwc3VsZVBr Zy5kc2MgICAgICAgICB8ICAgNCArLQ0KPiAgU291cmNlTGV2ZWxEZWJ1Z1BrZy9Tb3VyY2VMZXZl bERlYnVnUGtnLmRzYyAgIHwgICA0ICstDQo+ICBTdGFuZGFsb25lTW1Qa2cvU3RhbmRhbG9uZU1t UGtnLmRzYyAgICAgICAgICAgfCAgIDUgKy0NCj4gIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2Mg ICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQ0KPiAgVWVmaVBheWxvYWRQa2cvVWVmaVBheWxv YWRQa2cuZHNjICAgICAgICAgICAgIHwgICA1ICstDQo+ICAuLi4vVW5pdFRlc3RGcmFtZXdvcmtQ a2dUYXJnZXQuZHNjLmluYyAgICAgICAgfCAgIDQgKy0NCj4gIDUzIGZpbGVzIGNoYW5nZWQsIDEx MzEgaW5zZXJ0aW9ucygrKSwgMTQ1IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUmVnaXN0ZXJGaWx0ZXJMaWIuaA0KPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1JlZ2lzdGVyRmlsdGVyTGliTnVsbC9SZWdpc3RlckZp bHRlckxpYk51bGwuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1JlZ2lz dGVyRmlsdGVyTGliTnVsbC9SZWdpc3RlckZpbHRlckxpYk51bGwuaW5mDQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvUmVnaXN0ZXJGaWx0ZXJMaWJOdWxsL1JlZ2lzdGVyRmls dGVyTGliTnVsbC51bmkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTWRlTGlicy5kc2Mu aW5jDQo+IA0KPiAtLQ0KPiAyLjE4LjAud2luZG93cy4xDQoNCg==