From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.4116.1634708763851054449 for ; Tue, 19 Oct 2021 22:46:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=PeRhMXKn; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: ianx.kuo@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10142"; a="252178853" X-IronPort-AV: E=Sophos;i="5.87,166,1631602800"; d="scan'208";a="252178853" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2021 22:46:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,166,1631602800"; d="scan'208";a="444810573" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga003.jf.intel.com with ESMTP; 19 Oct 2021 22:46:02 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 19 Oct 2021 22:46:01 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 19 Oct 2021 22:46:01 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2242.12 via Frontend Transport; Tue, 19 Oct 2021 22:46:01 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 19 Oct 2021 22:46:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k+zuYkhxfvGGQiNoLwEy+6+nn6yFAnCZljdEt7x9Ep4VEpXOzIOa7RTdrMoFANAtbQi8V1HtYmObH5BNob+m3Dj7+WdCoIrnvsIJdsVYt8zYLsYYbpjXCSm2bx3RN7+7qlzfvPR69dNPuRO2xY4lshcaCVcX+N8YnR6sFgBZgdgoT45e7rnqbROvUzAvMOcJLAR6Eq4NEbrYHkqqlVLfDSTr5aUoiHgkuEMhQhweh4BbTlIL+av0V7nKGcF798crmWYbxeG6hy3xoONo8AsYKbhK6jljauQmXFbUFSLh1wcWGtg7E/tGwEQiSy2nCSVt2WI2i0E/eF6nY9na+9zbYQ== 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=LLk4a1PpydZrTeu8vsigit17bfbxQN8QJUGNkPTMmWY=; b=FeauN2SNMupddSthTpQGmGoRkEKqzhT9jozgfg2wmBe2cyDnegq7Dqv9IouP0WB/r1D+l9iT5mdwWH+MOW9rZj595AJVCu+Tg5s2a0DgftpoSkcM+BBLiXji/c2ghfLOJrhnVagC3rJcPx8JkbhYIfRXW4cjqPocx1dT1Gv/k7r1OYhcRlZEg4CVTZR9VkTF5FvmJzW8qZ6ZUQAsRXmaMXRhuGM7WWw/CSkwT9OcujiT4igKIwJtOKKCuGHtuSvzChNTo/auMFMs2ZFHRaX8J0xtFc8A2sNiPP0umlpq+s4lNWKgIgBKDWcZv2o/w0Hq+cE35l1pea4/q8/UEVK7yg== 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=LLk4a1PpydZrTeu8vsigit17bfbxQN8QJUGNkPTMmWY=; b=PeRhMXKn9o3bupwPunv+m5t1+54XlixFz3NK+fUMXwkLaPDa2PVMBhFLy/4Rn3+BSAWupgeUg299D85rlGRMJr4mPSF7uS5avwxzciIZ3R+At3KUsEXo56cZV8ZnFmeV9aSTTAA7JNm0A1/9eoxxeZd6zAKuWIrmiOLyymxwCJ4= Received: from PH0PR11MB5174.namprd11.prod.outlook.com (2603:10b6:510:3b::12) by PH0PR11MB5189.namprd11.prod.outlook.com (2603:10b6:510:3d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.15; Wed, 20 Oct 2021 05:45:59 +0000 Received: from PH0PR11MB5174.namprd11.prod.outlook.com ([fe80::4435:90ac:24fe:b6a6]) by PH0PR11MB5174.namprd11.prod.outlook.com ([fe80::4435:90ac:24fe:b6a6%6]) with mapi id 15.20.4608.018; Wed, 20 Oct 2021 05:45:59 +0000 From: "IanX Kuo" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Chan, Amy" , "Ni, Ray" , "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH v6 1/3] MdeModulePkg/SortLib: Add QuickSort function on BaseLib Thread-Topic: [edk2-devel] [PATCH v6 1/3] MdeModulePkg/SortLib: Add QuickSort function on BaseLib Thread-Index: AQHXw9epnRIYdveiEkSf37x+PeBrUavZlMXAgAGNCQCAAEFn4A== Date: Wed, 20 Oct 2021 05:45:59 +0000 Message-ID: References: <20211018042127.1306-1-ianx.kuo@intel.com> <16AF0531824632DE.13161@groups.io> <009001d7c554$bef39c40$3cdad4c0$@byosoft.com.cn> In-Reply-To: <009001d7c554$bef39c40$3cdad4c0$@byosoft.com.cn> Accept-Language: en-AS, zh-TW, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8f326db3-3da9-4390-72b9-08d9938ce4ed x-ms-traffictypediagnostic: PH0PR11MB5189: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iD4+QIwa65SqHE3EZFzmZgnwli4hf5cxz9b5V56qwxlNSPEQlZAkgdbLdQiRzOFCGvStFfQD4pve+XXmWEl1w1vhQqUhrfzt/wfPljKxOncAWU2/LYZUn3iGMvyjfyGxkKSlzG/Nj7l01du88IVnzTVOEc53Kp5HZYeD5PxjWNsrhLTtYCO3SSbjJ26rvhDQbciuuubNfDLHcDHbrsGbUinlbhUXzXxkc96VsCsXsytNtZNtaYP5ANotBNbNdgzfw/L/fnkhce1w7vqdPMUijnazCfc+LK39eMP9B/a7NL/3dZ+Igzuiiwxa7cP4cM7vdJPuDxdeVzQf/SBhFFUSfr/9WoFDbWzOCjmG16IE2SiNrooICv88/HrtS/276vXvQp4W4F8Q7QpfMocbSuVsiuASlx8HjN8OX5vygzC/0Q5LtA4MnEtGVNHjfT7p/h2ah/pd04M8bf52kXHCPNV29yP4/SlZ5u1lF82ueEZm5gfyVZTd7WU+zxdKk0guZAnsoXiJCbw95mdIYq1uD8Z3ErbLGBOco0ixl6Fqh57J0msvHvlVWxWnUZGIcCP9q57vgB+vGkxiB4I9jx+D3myAhBYtr8rqXHjiFfU3G+IDU6MplTzQXU8W8pFbofOovY0YhovtCBJx0D9r0F+e1iq6/h7JM9qrsvulpTLCrsRSk+/fIVAt6/Ng8I3WroYEKWVQr+ja2uB0ULbc+31KLiBdhYVWMCGpfNWHBjN32G2+JFHpDeK9uAlF6t+1fwB8fTDGT/o8eyRFjwliKISodfaIKPPEOB3cUkMBMd6YWILaujsi4LFebnHo/XhgrxzLBAVCUIqmD6riaOmN71GRKdNNMA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5174.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(4326008)(110136005)(54906003)(316002)(38070700005)(7696005)(66946007)(66556008)(9686003)(55016002)(64756008)(6506007)(66476007)(66446008)(71200400001)(107886003)(186003)(8676002)(26005)(76116006)(8936002)(53546011)(82960400001)(122000001)(966005)(52536014)(5660300002)(83380400001)(508600001)(33656002)(38100700002)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?KzJyK0lJZDBnOGdRcnZrMUtTTmZ0VkRHOFdldmtBZ3lVaUFoVkxkZGU5VmxR?= =?utf-8?B?dE5na2pwbERiNmNDSUEwZ1ZaS3pwd3ZEWG1HQU03L1FzRmtieHB0SG9vYmUv?= =?utf-8?B?ZzBTL0phb0lKN3RTUkN1RkRpbzZONHN0STVHWXc3dHhzWHlmdjlXN1dUZXRK?= =?utf-8?B?di85eDhRSVoxSzNzR2l5VlRxS05qVkRxdVBKMXRJK3NUV01BaFR0TWlYQlc2?= =?utf-8?B?S21oK1lzZkE0VmQxakw5L05hN3FZSkNZSGx5a0JLMUtCU25QQkROOGZPb3Ny?= =?utf-8?B?VlRNdUNTTFl0TXVpK0RZdW5HYjd0NmgwQjllbkNEMGhQblhsbGFBbGhKRTd1?= =?utf-8?B?T28vb3RxUGtYeitCSGtNemszSFhjZXp6S3BJZHRiOG13b0Z5UlhNZ1NabDVW?= =?utf-8?B?UnVNemhodFNFbERHeDh2QVlHelVicjN4ZmJEMjRIeHdDQm1nQmNyVUk0MmFw?= =?utf-8?B?WHo2VHZRTENMZk9UOVZPZ0JjNy9wY2JWelBJQUFIQnE3YTBoWnQyM1N6c2lJ?= =?utf-8?B?bktHRGVXaU9ucW1WamJSbldHNklYQlpCMVBDc2Y3UWVSWkhVaUFKdVJweUFv?= =?utf-8?B?RjlrTzAwRk5JSnhVbms5L3JzM3VuU2c2N01SZW5UYUNlQngvYThqWjd3ZThn?= =?utf-8?B?bWU2REFPTWlUbDgwOERTUXMyRHAxZjJvY0I2ek1QUjZJQXNaU1dVZDFMWTRX?= =?utf-8?B?ZmFRR2dqLzNyUW1ONXYzd0N3UzdOM2k0bDhPMlliTllyalB5Qk1UQ0ZOTUZD?= =?utf-8?B?cU9xckpsZ3pYSEFLK2p6bG1sT0JKWDJnWVNYZXFOR1I2MkM0a2VKbjZwVDNJ?= =?utf-8?B?NEhOVFNacWxCa0tDQ0xSZkZkSzRSNVRTZkJzdFVFa2lBK1hrVXpDSXZiNVBs?= =?utf-8?B?RFN0MFIvajlmcWZMTUVjeDRvNEtmUXpPRS9wUHBkNkozZWhVL012VU1Wd3lj?= =?utf-8?B?SWQ4a091cFpiclZucUFkb0JlNDZYZHF5SVhjNWFGVjF1WDlRYXQ2cTdnRXhq?= =?utf-8?B?MkdzWlFvZlFUSDB1b3J4SFdvU2pJbTQ3eXlaWUFsU3cxcGk3QTdhMFEyOXhi?= =?utf-8?B?Vmo1b0NsNzluc1BoNUFZd2xQNS9QODRIZndxd1laRjNHdzZrRytxN0JZcnl3?= =?utf-8?B?Ky8wb1ZkT0U3Kythd01XS1JOZ2JneTBiZkF3UkpTNWF2MkZRWVFzMlo2NEM1?= =?utf-8?B?d1VzSTlZcTl0MjFXdnVSaVZlcjVoM3BOcUR5cjhpYzJNNnFiR1RYSDBOQ3FE?= =?utf-8?B?d2M0SnNyRnFOSXlPenI2Q2h2RkEvM1pIVVZ3emMrU2J5dlVKaXVMMVlSNlIy?= =?utf-8?B?OUZnNVhBazdXWWVRN1dJVnBCMmNqODZkWkJmMk1WM3hHQTJxUjVOdHBHTXVk?= =?utf-8?B?bHZiQ1BEa0RMNmpRMVdpekFvYVcrZjFWblQ0OUcyVUlMT3oxU2NXTHVYNWJO?= =?utf-8?B?cC9iOHl3TUhOMlZibG5YSWlGdDVVVTZ1K1FoRzZxVWhpcFd4a0hnaW1kNjdp?= =?utf-8?B?U3pyRDZkVkQrell5d0JmVmkyYk5vMHdZK0Qvemppd0RzUlF0MTRiZ085ZnNZ?= =?utf-8?B?c3FQM2grejVOektNM3dtUFlqd0gzWVprUDZZMHI4b3lxbnVoWi9wUkVSZk9L?= =?utf-8?B?RkFJZFhiMWZpZXp4eWdacVVCTjF5Y0xLdEZOOTRRa2ozZ0Vub0xtRGd0MWFp?= =?utf-8?B?VEFqUklzVEdYRFY1NGNJZ3htMHZ6UHhFeGY0VWdCYnJnRU90enhlT0l5MkVm?= =?utf-8?B?b2k3THBsdHRwaHBOUE8xcW1lK3RpM3BZSGYzREdFWXFpcDFHdDZXRWRtNnpP?= =?utf-8?B?OXp4cWR5Z3o3VGhtazEra0pwME4vMDN1UmFnSTlpWmV1cUhyVnc4YkQzWWJF?= =?utf-8?B?YlZmYjhuYnZWdDhHcTRSZUNONkdMMkt5R3FsMk1SbW80cFF6QXN3TFNkNDJ4?= =?utf-8?Q?GqegraCvSlE=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5174.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f326db3-3da9-4390-72b9-08d9938ce4ed X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Oct 2021 05:45:59.4220 (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: ianx.kuo@intel.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5189 Return-Path: ianx.kuo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nDQoNClRoZSBjaGFuZ2UgIlBBVENIIHY2IDEvMyIgaXMgdGhlIHNhbWUgd2l0aCAi UEFUQ0ggdjMgMS8zIi4NCg0KVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAidjMgdG8gdjYiIGlzIG9u ICJQQVRDSCB2NiAzLzMiDQoNCg0KVGhhbmtzLA0KSWFuIEt1bw0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIGdhb2xpbWluZw0KU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDIwLCAy MDIxIDk6NTAgQU0NClRvOiBLdW8sIElhblggPGlhbngua3VvQGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvDQpDYzogQ2hhbiwgQW15IDxhbXkuY2hhbkBpbnRlbC5jb20+OyBOaSwgUmF5 IDxyYXkubmlAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQpTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjYgMS8zXSBNZGVNb2R1bGVQ a2cvU29ydExpYjogQWRkIFF1aWNrU29ydCBmdW5jdGlvbiBvbiBCYXNlTGliDQoNCldoYXQgbmV3 IGNoYW5nZSBpcyBtYWRlIGluIG5ldyB2ZXJzaW9uIHBhdGNoPw0KDQpUaGFua3MNCkxpbWluZw0K PiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogS3VvLCBJYW5YIDxpYW54Lmt1 b0BpbnRlbC5jb20+DQo+IOWPkemAgeaXtumXtDogMjAyMeW5tDEw5pyIMTnml6UgMTA6MDkNCj4g 5pS25Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS3VvLCBJYW5YIDxpYW54Lmt1b0BpbnRl bC5jb20+OyBMaW1pbmcgR2FvIA0KPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiDmioTp gIE6IENoYW4sIEFteSA8YW15LmNoYW5AaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVs LmNvbT47IFdhbmcsIA0KPiBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4g5Li76aKY OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NiAxLzNdIE1kZU1vZHVsZVBrZy9Tb3J0TGliOiBB ZGQgDQo+IFF1aWNrU29ydCBmdW5jdGlvbiBvbiBCYXNlTGliDQo+IA0KPiBATGltaW5nIEdhbw0K PiANCj4gU29ycnkgdG8gYm90aGVyIHlvdS4gTWF5IEkgZ2V0IHlvdXIgaGVscCBmb3IgcmV2aWV3 IGJ5IGFnYWluID8NCj4gDQo+IFRoYW5rcywNCj4gSWFuIEt1bw0KPiANCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIu Z3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgSWFuWCANCj4gS3VvDQo+IFNlbnQ6IE1vbmRheSwgT2N0 b2JlciAxOCwgMjAyMSAxMjoyMSBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6 IENoYW4sIEFteSA8YW15LmNoYW5AaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNv bT47IEt1bywgDQo+IElhblggPGlhbngua3VvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlh bi5qLndhbmdAaW50ZWwuY29tPjsgDQo+IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNv bS5jbj4NCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCB2NiAxLzNdIE1kZU1vZHVsZVBr Zy9Tb3J0TGliOiBBZGQgDQo+IFF1aWNrU29ydCBmdW5jdGlvbiBvbiBCYXNlTGliDQo+IA0KPiBG cm9tOiBJYW5YIEt1byA8aWFueC5rdW9AaW50ZWwuY29tPg0KPiANCj4gUkVGOiBodHRwczovL2J1 Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzUNCj4gDQo+IFVzZSBRdWlj a1NvcnQgaW5zdGVhZCBvZiBRdWlja1NvcnRXb3JrZXINCj4gDQo+IENjOiBSYXkgTmkgPHJheS5u aUBpbnRlbC5jb20+DQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0K PiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiBTaWduZWQtb2Zm LWJ5OiBJYW5YIEt1byA8aWFueC5rdW9AaW50ZWwuY29tPg0KPiAtLS0NCj4gIC4uLi9MaWJyYXJ5 L0Jhc2VTb3J0TGliL0Jhc2VTb3J0TGliLmMgICAgICAgICB8IDExNSArLS0tLS0tLS0tLS0tLS0t LQ0KPiAgLi4uL0xpYnJhcnkvVWVmaVNvcnRMaWIvVWVmaVNvcnRMaWIuYyAgICAgICAgIHwgMTE2 ICstLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDIyMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvTGlicmFy eS9CYXNlU29ydExpYi9CYXNlU29ydExpYi5jDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQmFz ZVNvcnRMaWIvQmFzZVNvcnRMaWIuYw0KPiBpbmRleCBhMTJjN2JjMGVjLi4wOTAzOTQzZWU0IDEw MDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9CYXNlU29ydExpYi9CYXNlU29ydExp Yi5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jhc2VTb3J0TGliL0Jhc2VTb3J0TGli LmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAvKiogQGZpbGUgICBMaWJyYXJ5IHVzZWQgZm9yIHNv cnRpbmcgcm91dGluZXMuIC0gIENvcHlyaWdodCAoYykgMjAwOSAtDQoyMDE4LA0KPiBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gPEJSPisgIENvcHlyaWdodCAoYykgMjAw OSAtIA0KPiAyMDIxLA0KSW50ZWwNCj4gQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu IDxCUj4gICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjoNCj4gQlNELTItQ2xhdXNlLVBhdGVudCAg KiovQEAgLTEzLDExNCArMTMsNiBAQCAgI2luY2x1ZGUgDQo+IDxMaWJyYXJ5L01lbW9yeUFsbG9j YXRpb25MaWIuaD4gI2luY2x1ZGUgPExpYnJhcnkvU29ydExpYi5oPg0KPiAtLyoqLSAgV29ya2Vy IGZ1bmN0aW9uIGZvciBRdWlja1NvcnRpbmcuICBUaGlzIGZ1bmN0aW9uIGlzIGlkZW50aWNhbCAN Cj4gdG8NCj4gUGVyZm9ybVF1aWNrU29ydCwtICBleGNlcHQgdGhhdCBpcyB1c2VzIHRoZSBwcmUt YWxsb2NhdGVkIGJ1ZmZlciBzbyANCj4gdGhlIGluIHBsYWNlIHNvcnRpbmcgZG9lcyBub3QgbmVl ZCB0by0gIGFsbG9jYXRlIGFuZCBmcmVlIGJ1ZmZlcnMgDQo+IGNvbnN0YW50bHkuLS0NCkVhY2gN Cj4gZWxlbWVudCBtdXN0IGJlIGVxdWFsIHNpemVkLi0tICBpZiBCdWZmZXJUb1NvcnQgaXMgTlVM TCwgdGhlbiBBU1NFUlQuLSAgDQo+IGlmIENvbXBhcmVGdW5jdGlvbiBpcyBOVUxMLCB0aGVuIEFT U0VSVC4tICBpZiBCdWZmZXIgaXMgTlVMTCwgdGhlbiANCj4gQVNTRVJULi0tIGlmIENvdW50IGlz IDwgMiB0aGVuIHBlcmZvcm0gbm8gYWN0aW9uLi0gIGlmIFNpemUgaXMgPCAxIHRoZW4gcGVyZm9y bSBubw0KPiBhY3Rpb24uLS0gIEBwYXJhbVtpbiwgb3V0XSBCdWZmZXJUb1NvcnQgICBvbiBjYWxs IGEgQnVmZmVyIG9mIChwb3NzaWJseQ0Kc29ydGVkKQ0KPiBlbGVtZW50cy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbiByZXR1cm4gYSBidWZmZXIgb2YNCj4gc29ydGVkIGVsZW1l bnRzLSAgQHBhcmFtW2luXSBDb3VudCAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YNCj4gZWxl bWVudHMgaW4gdGhlIGJ1ZmZlciB0byBzb3J0LSAgQHBhcmFtW2luXSBFbGVtZW50U2l6ZSAgICAg ICAgIFNpemUgb2YNCj4gYW4gZWxlbWVudCBpbiBieXRlcy0gIEBwYXJhbVtpbl0gQ29tcGFyZUZ1 bmN0aW9uICAgICBUaGUgZnVuY3Rpb24gdG8NCj4gY2FsbCB0byBwZXJmb3JtIHRoZSBjb21wYXJp c29uLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mDQo+IGFueSAyIGVsZW1lbnRz LSAgQHBhcmFtW2luXSBCdWZmZXIgICAgICAgICAgICAgIEJ1ZmZlciBvZiBzaXplDQo+IEVsZW1l bnRTaXplIGZvciB1c2UgaW4gc3dhcHBpbmctKiovLVZPSUQtRUZJQVBJLVF1aWNrU29ydFdvcmtl ciAoLSAgSU4NCj4gT1VUIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAqQnVmZmVyVG9T b3J0LC0gIElOIENPTlNUDQo+IFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgQ291bnQsLSAg SU4gQ09OU1QgVUlOVE4NCj4gRWxlbWVudFNpemUsLSAgSU4gICAgICAgU09SVF9DT01QQVJFDQo+ IENvbXBhcmVGdW5jdGlvbiwtICBJTiBWT0lEDQo+ICpCdWZmZXItICApLXstICBWT0lEICAgICAg ICAqUGl2b3Q7LSAgVUlOVE4gICAgICAgTG9vcENvdW50Oy0NCj4gVUlOVE4gICAgICAgTmV4dFN3 YXBMb2NhdGlvbjstLSAgQVNTRVJUKEJ1ZmZlclRvU29ydCAgICAgIT0gTlVMTCk7LQ0KPiBBU1NF UlQoQ29tcGFyZUZ1bmN0aW9uICAhPSBOVUxMKTstICBBU1NFUlQoQnVmZmVyICAhPSBOVUxMKTst LSAgaWYNCj4gKCBDb3VudCA8IDItICAgIHx8IEVsZW1lbnRTaXplICA8IDEtICAgKXstICAgIHJl dHVybjstICB9LS0NCj4gTmV4dFN3YXBMb2NhdGlvbiA9IDA7LS0gIC8vLSAgLy8gcGljayBhIHBp dm90ICh3ZSBjaG9vc2UgbGFzdCANCj4gZWxlbWVudCktDQo+IC8vLSAgUGl2b3QgPSAoKFVJTlQ4 KilCdWZmZXJUb1NvcnQrKChDb3VudC0xKSpFbGVtZW50U2l6ZSkpOy0tICAvLy0gIA0KPiAvLyBO b3cgZ2V0IHRoZSBwaXZvdCBzdWNoIHRoYXQgYWxsIG9uICJsZWZ0IiBhcmUgYmVsb3cgaXQtICAv LyBhbmQgZXZlcnl0aGluZw0KPiAicmlnaHQiIGFyZSBhYm92ZSBpdC0gIC8vLSAgZm9yICggTG9v cENvdW50ID0gMC0gICAgICA7IExvb3BDb3VudCA8IENvdW50DQo+IC0xLSAgICAgIDsgTG9vcENv dW50KystICAgICApey0gICAgLy8tICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGxlc3MgdGhhbg0K PiB0aGUgcGl2b3QtICAgIC8vLSAgICBpZg0KPiAoQ29tcGFyZUZ1bmN0aW9uKChWT0lEKikoKFVJ TlQ4KilCdWZmZXJUb1NvcnQrKChMb29wQ291bnQpKkVsZW1lbnRTaXplKQ0KPiApLFBpdm90KSA8 PSAwKXstICAgICAgLy8tICAgICAgLy8gc3dhcC0gICAgICAvLy0gICAgICBDb3B5TWVtIChCdWZm ZXIsDQo+IChVSU5UOCopQnVmZmVyVG9Tb3J0KyhOZXh0U3dhcExvY2F0aW9uKkVsZW1lbnRTaXpl KSwgRWxlbWVudFNpemUpOy0gDQo+IENvcHlNZW0gKChVSU5UOCopQnVmZmVyVG9Tb3J0KyhOZXh0 U3dhcExvY2F0aW9uKkVsZW1lbnRTaXplKSwNCj4gKFVJTlQ4KilCdWZmZXJUb1NvcnQrKChMb29w Q291bnQpKkVsZW1lbnRTaXplKSwgRWxlbWVudFNpemUpOy0gQ29weU1lbSANCj4gKChVSU5UOCop QnVmZmVyVG9Tb3J0KygoTG9vcENvdW50KSpFbGVtZW50U2l6ZSksIEJ1ZmZlciwNCj4gRWxlbWVu dFNpemUpOy0tICAgICAgLy8tICAgICAgLy8gaW5jcmVtZW50IE5leHRTd2FwTG9jYXRpb24tICAg ICAgLy8tDQo+IE5leHRTd2FwTG9jYXRpb24rKzstICAgIH0tICB9LSAgLy8tICAvLyBzd2FwIHBp dm90IHRvIGl0J3MgZmluYWwgcG9zaXRpb24NCj4gKE5leHRTd2FwTG9jYWl0b24pLSAgLy8tICBD b3B5TWVtIChCdWZmZXIsIFBpdm90LCBFbGVtZW50U2l6ZSk7LSANCj4gQ29weU1lbSAoUGl2b3Qs IChVSU5UOCopQnVmZmVyVG9Tb3J0KyhOZXh0U3dhcExvY2F0aW9uKkVsZW1lbnRTaXplKSwNCj4g RWxlbWVudFNpemUpOy0gIENvcHlNZW0NCj4gKChVSU5UOCopQnVmZmVyVG9Tb3J0KyhOZXh0U3dh cExvY2F0aW9uKkVsZW1lbnRTaXplKSwgQnVmZmVyLA0KPiBFbGVtZW50U2l6ZSk7LS0gIC8vLSAg Ly8gTm93IHJlY3Vyc2Ugb24gMiBwYXJpdGlhbCBsaXN0cy4gIG5laXRoZXIgb2YNCnRoZXNlDQo+ IHdpbGwgaGF2ZSB0aGUgJ3Bpdm90JyBlbGVtZW50LSAgLy8gSUUgbGlzdCBpcyBzb3J0ZWQgbGVm dCBoYWxmLCBwaXZvdA0KZWxlbWVudCwNCj4gc29ydGVkIHJpZ2h0IGhhbGYuLi4tICAvLy0gIGlm IChOZXh0U3dhcExvY2F0aW9uID49IDIpIHstDQo+IFF1aWNrU29ydFdvcmtlcigtICAgICAgQnVm ZmVyVG9Tb3J0LC0gICAgICBOZXh0U3dhcExvY2F0aW9uLC0NCj4gRWxlbWVudFNpemUsLSAgICAg IENvbXBhcmVGdW5jdGlvbiwtICAgICAgQnVmZmVyKTstICB9LS0gIGlmICgoQ291bnQgLQ0KPiBO ZXh0U3dhcExvY2F0aW9uIC0gMSkgPj0gMikgey0gICAgUXVpY2tTb3J0V29ya2VyKC0gICAgICAo VUlOVDgNCj4gKilCdWZmZXJUb1NvcnQgKyAoTmV4dFN3YXBMb2NhdGlvbisxKSAqIEVsZW1lbnRT aXplLC0gICAgICBDb3VudCAtDQo+IE5leHRTd2FwTG9jYXRpb24gLSAxLC0gICAgICBFbGVtZW50 U2l6ZSwtICAgICAgQ29tcGFyZUZ1bmN0aW9uLC0NCj4gQnVmZmVyKTstICB9LSAgcmV0dXJuOy19 IC8qKiAgIEZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBRdWljayBTb3J0IGFsb2dyaXRobQ0Kb24NCj4g YSBidWZmZXIgb2YgY29tcGFyYWJsZSBlbGVtZW50cy4gQEAgLTE1NiwxMiArNDgsMTMgQEAgUGVy Zm9ybVF1aWNrU29ydCANCj4gKA0KPiAgICBCdWZmZXIgPSBBbGxvY2F0ZVplcm9Qb29sKEVsZW1l bnRTaXplKTsgICBBU1NFUlQoQnVmZmVyICE9IE5VTEwpOyAtDQo+IFF1aWNrU29ydFdvcmtlcigr ICBRdWlja1NvcnQgKCAgICAgQnVmZmVyVG9Tb3J0LCAgICAgQ291bnQsDQo+IEVsZW1lbnRTaXpl LCAgICAgQ29tcGFyZUZ1bmN0aW9uLC0gICAgQnVmZmVyKTsrICAgIEJ1ZmZlcisgICAgKTsNCj4g RnJlZVBvb2woQnVmZmVyKTsgICByZXR1cm47ZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9M aWJyYXJ5L1VlZmlTb3J0TGliL1VlZmlTb3J0TGliLmMNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFy eS9VZWZpU29ydExpYi9VZWZpU29ydExpYi5jDQo+IGluZGV4IDQ2ZGM0NDM2MzguLjI5ZDg3MzVj MjIgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlTb3J0TGliL1VlZmlT b3J0TGliLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaVNvcnRMaWIvVWVmaVNv cnRMaWIuYw0KPiBAQCAtMSw3ICsxLDcgQEANCj4gIC8qKiBAZmlsZSAgIExpYnJhcnkgdXNlZCBm b3Igc29ydGluZyByb3V0aW5lcy4gLSAgQ29weXJpZ2h0IChjKSAyMDA5IC0NCjIwMTQsDQo+IElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiA8QlI+KyAgQ29weXJpZ2h0IChj KSAyMDA5IC0gDQo+IDIwMjEsDQpJbnRlbA0KPiBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC4gPEJSPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOg0KPiBCU0QtMi1DbGF1c2UtUGF0 ZW50ICAqKi9AQCAtMjksMTE1ICsyOSw2IEBAIFNUQVRJQw0KPiBFRklfVU5JQ09ERV9DT0xMQVRJ T05fUFJPVE9DT0wgICAqbVVuaWNvZGVDb2xsYXRpb24gPSBOVUxMOw0KPiAgICB9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcIH0gLS8qKi0gIFdvcmtlciBmdW5jdGlvbg0KPiBm b3IgUXVpY2tTb3J0aW5nLiAgVGhpcyBmdW5jdGlvbiBpcyBpZGVudGljYWwgdG8gUGVyZm9ybVF1 aWNrU29ydCwtDQpleGNlcHQNCj4gdGhhdCBpcyB1c2VzIHRoZSBwcmUtYWxsb2NhdGVkIGJ1ZmZl ciBzbyB0aGUgaW4gcGxhY2Ugc29ydGluZyBkb2VzIG5vdA0KbmVlZCB0by0NCj4gYWxsb2NhdGUg YW5kIGZyZWUgYnVmZmVycyBjb25zdGFudGx5Li0tICBFYWNoIGVsZW1lbnQgbXVzdCBiZSBlcXVh bCBzaXplZC4NCi0tDQo+IGlmIEJ1ZmZlclRvU29ydCBpcyBOVUxMLCB0aGVuIEFTU0VSVC4tICBp ZiBDb21wYXJlRnVuY3Rpb24gaXMgTlVMTCwgDQo+IHRoZW4NCj4gQVNTRVJULi0gIGlmIEJ1ZmZl ciBpcyBOVUxMLCB0aGVuIEFTU0VSVC4tLSAgaWYgQ291bnQgaXMgPCAyIHRoZW4gDQo+IHBlcmZv cm0NCm5vDQo+IGFjdGlvbi4tICBpZiBTaXplIGlzIDwgMSB0aGVuIHBlcmZvcm0gbm8gYWN0aW9u Li0tICBAcGFyYW1baW4sIG91dF0NCj4gQnVmZmVyVG9Tb3J0ICAgb24gY2FsbCBhIEJ1ZmZlciBv ZiAocG9zc2libHkgc29ydGVkKSBlbGVtZW50cy0NCj4gb24gcmV0dXJuIGEgYnVmZmVyIG9mIHNv cnRlZCBlbGVtZW50cy0gIEBwYXJhbVtpbl0gQ291bnQgdGhlIG51bWJlciBvZiANCj4gZWxlbWVu dHMgaW4gdGhlIGJ1ZmZlciB0byBzb3J0LSAgQHBhcmFtW2luXSBFbGVtZW50U2l6ZQ0KPiBTaXpl IG9mIGFuIGVsZW1lbnQgaW4gYnl0ZXMtICBAcGFyYW1baW5dIENvbXBhcmVGdW5jdGlvbiAgICAg VGhlDQo+IGZ1bmN0aW9uIHRvIGNhbGwgdG8gcGVyZm9ybSB0aGUgY29tcGFyaXNvbi0NCj4gb2Yg YW55IDIgZWxlbWVudHMtICBAcGFyYW1baW5dIEJ1ZmZlciAgICAgICAgICAgICAgQnVmZmVyIG9m IHNpemUNCj4gRWxlbWVudFNpemUgZm9yIHVzZSBpbiBzd2FwcGluZy0qKi8tVk9JRC1FRklBUEkt UXVpY2tTb3J0V29ya2VyICgtICBJTg0KPiBPVVQgVk9JRCAgICAgICAgICAgICAgICAgICAgICAg ICAgICpCdWZmZXJUb1NvcnQsLSAgSU4gQ09OU1QNCj4gVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICBDb3VudCwtICBJTiBDT05TVCBVSU5UTg0KPiBFbGVtZW50U2l6ZSwtICBJTiAgICAgICBT T1JUX0NPTVBBUkUNCj4gQ29tcGFyZUZ1bmN0aW9uLC0gIElOIFZPSUQNCj4gKkJ1ZmZlci0gICkt ey0gIFZPSUQgICAgICAgICpQaXZvdDstICBVSU5UTiAgICAgICBMb29wQ291bnQ7LQ0KPiBVSU5U TiAgICAgICBOZXh0U3dhcExvY2F0aW9uOy0tICBBU1NFUlQoQnVmZmVyVG9Tb3J0ICAgICAhPSBO VUxMKTstDQo+IEFTU0VSVChDb21wYXJlRnVuY3Rpb24gICE9IE5VTEwpOy0gIEFTU0VSVChCdWZm ZXIgICE9IE5VTEwpOy0tICBpZg0KPiAoIENvdW50IDwgMi0gICAgfHwgRWxlbWVudFNpemUgIDwg MS0gICApey0gICAgcmV0dXJuOy0gIH0tLQ0KPiBOZXh0U3dhcExvY2F0aW9uID0gMDstLSAgLy8t ICAvLyBwaWNrIGEgcGl2b3QgKHdlIGNob29zZSBsYXN0IA0KPiBlbGVtZW50KS0NCj4gLy8tICBQ aXZvdCA9ICgoVUlOVDgqKUJ1ZmZlclRvU29ydCsoKENvdW50LTEpKkVsZW1lbnRTaXplKSk7LS0g IC8vLSAgDQo+IC8vIE5vdyBnZXQgdGhlIHBpdm90IHN1Y2ggdGhhdCBhbGwgb24gImxlZnQiIGFy ZSBiZWxvdyBpdC0gIC8vIGFuZCBldmVyeXRoaW5nDQo+ICJyaWdodCIgYXJlIGFib3ZlIGl0LSAg Ly8tICBmb3IgKCBMb29wQ291bnQgPSAwLSAgICAgIDsgTG9vcENvdW50IDwgQ291bnQNCj4gLTEt ICAgICAgOyBMb29wQ291bnQrKy0gICAgICl7LSAgICAvLy0gICAgLy8gaWYgdGhlIGVsZW1lbnQg aXMgbGVzcyB0aGFuDQo+IHRoZSBwaXZvdC0gICAgLy8tICAgIGlmDQo+IChDb21wYXJlRnVuY3Rp b24oKFZPSUQqKSgoVUlOVDgqKUJ1ZmZlclRvU29ydCsoKExvb3BDb3VudCkqRWxlbWVudFNpemUp DQo+ICksUGl2b3QpIDw9IDApey0gICAgICAvLy0gICAgICAvLyBzd2FwLSAgICAgIC8vLSAgICAg IENvcHlNZW0gKEJ1ZmZlciwNCj4gKFVJTlQ4KilCdWZmZXJUb1NvcnQrKE5leHRTd2FwTG9jYXRp b24qRWxlbWVudFNpemUpLCBFbGVtZW50U2l6ZSk7LSANCj4gQ29weU1lbSAoKFVJTlQ4KilCdWZm ZXJUb1NvcnQrKE5leHRTd2FwTG9jYXRpb24qRWxlbWVudFNpemUpLA0KPiAoVUlOVDgqKUJ1ZmZl clRvU29ydCsoKExvb3BDb3VudCkqRWxlbWVudFNpemUpLCBFbGVtZW50U2l6ZSk7LSBDb3B5TWVt IA0KPiAoKFVJTlQ4KilCdWZmZXJUb1NvcnQrKChMb29wQ291bnQpKkVsZW1lbnRTaXplKSwgQnVm ZmVyLA0KPiBFbGVtZW50U2l6ZSk7LS0gICAgICAvLy0gICAgICAvLyBpbmNyZW1lbnQgTmV4dFN3 YXBMb2NhdGlvbi0gICAgICAvLy0NCj4gTmV4dFN3YXBMb2NhdGlvbisrOy0gICAgfS0gIH0tICAv Ly0gIC8vIHN3YXAgcGl2b3QgdG8gaXQncyBmaW5hbCBwb3NpdGlvbg0KPiAoTmV4dFN3YXBMb2Nh aXRvbiktICAvLy0gIENvcHlNZW0gKEJ1ZmZlciwgUGl2b3QsIEVsZW1lbnRTaXplKTstIA0KPiBD b3B5TWVtIChQaXZvdCwgKFVJTlQ4KilCdWZmZXJUb1NvcnQrKE5leHRTd2FwTG9jYXRpb24qRWxl bWVudFNpemUpLA0KPiBFbGVtZW50U2l6ZSk7LSAgQ29weU1lbQ0KPiAoKFVJTlQ4KilCdWZmZXJU b1NvcnQrKE5leHRTd2FwTG9jYXRpb24qRWxlbWVudFNpemUpLCBCdWZmZXIsDQo+IEVsZW1lbnRT aXplKTstLSAgLy8tICAvLyBOb3cgcmVjdXJzZSBvbiAyIHBhcml0aWFsIGxpc3RzLiAgbmVpdGhl ciBvZg0KdGhlc2UNCj4gd2lsbCBoYXZlIHRoZSAncGl2b3QnIGVsZW1lbnQtICAvLyBJRSBsaXN0 IGlzIHNvcnRlZCBsZWZ0IGhhbGYsIHBpdm90DQplbGVtZW50LA0KPiBzb3J0ZWQgcmlnaHQgaGFs Zi4uLi0gIC8vLSAgaWYgKE5leHRTd2FwTG9jYXRpb24gPj0gMikgey0NCj4gUXVpY2tTb3J0V29y a2VyKC0gICAgICBCdWZmZXJUb1NvcnQsLSAgICAgIE5leHRTd2FwTG9jYXRpb24sLQ0KPiBFbGVt ZW50U2l6ZSwtICAgICAgQ29tcGFyZUZ1bmN0aW9uLC0gICAgICBCdWZmZXIpOy0gIH0tLSAgaWYg KChDb3VudCAtDQo+IE5leHRTd2FwTG9jYXRpb24gLSAxKSA+PSAyKSB7LSAgICBRdWlja1NvcnRX b3JrZXIoLSAgICAgIChVSU5UOA0KPiAqKUJ1ZmZlclRvU29ydCArIChOZXh0U3dhcExvY2F0aW9u KzEpICogRWxlbWVudFNpemUsLSAgICAgIENvdW50IC0NCj4gTmV4dFN3YXBMb2NhdGlvbiAtIDEs LSAgICAgIEVsZW1lbnRTaXplLC0gICAgICBDb21wYXJlRnVuY3Rpb24sLQ0KPiBCdWZmZXIpOy0g IH0tLSAgcmV0dXJuOy19IC8qKiAgIEZ1bmN0aW9uIHRvIHBlcmZvcm0gYSBRdWljayBTb3J0IGFs b2dyaXRobQ0Kb24NCj4gYSBidWZmZXIgb2YgY29tcGFyYWJsZSBlbGVtZW50cy4gQEAgLTE3Mywx MiArNjQsMTMgQEAgUGVyZm9ybVF1aWNrU29ydCANCj4gKA0KPiAgICBCdWZmZXIgPSBBbGxvY2F0 ZVplcm9Qb29sKEVsZW1lbnRTaXplKTsgICBBU1NFUlQoQnVmZmVyICE9IE5VTEwpOyAtDQo+IFF1 aWNrU29ydFdvcmtlcigrICBRdWlja1NvcnQgKCAgICAgQnVmZmVyVG9Tb3J0LCAgICAgQ291bnQs DQo+IEVsZW1lbnRTaXplLCAgICAgQ29tcGFyZUZ1bmN0aW9uLC0gICAgQnVmZmVyKTsrICAgIEJ1 ZmZlcisgICAgKTsNCj4gRnJlZVBvb2woQnVmZmVyKTsgICByZXR1cm47LS0NCj4gMi4zMC4wLndp bmRvd3MuMQ0KPiANCj4gDQo+IA0KPiAtPS09LT0tPS09LT0NCj4gR3JvdXBzLmlvIExpbmtzOiBZ b3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLg0KPiBWaWV3L1JlcGx5 IE9ubGluZSAoIzgyMjA0KTogDQo+IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNz YWdlLzgyMjA0DQo+IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvODY0MDY4 NDMvNDgzMDE2MA0KPiBHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4g VW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbaWFueC5r dW9AaW50ZWwuY29tXSANCj4gLT0tPS09LT0tPS09DQo+IA0KDQoNCg0KDQoNCg0KDQoNCg==