Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxvkU-0002Ie-W5 for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Dec 2021 18:45:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mxvkT-0008Ps-Em for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Dec 2021 18:45:01 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxvkS-0008Pj-Qp for pgsql-hackers@lists.postgresql.org; Thu, 16 Dec 2021 18:45:01 +0000 Received: from mail-bn8nam11lp2170.outbound.protection.outlook.com ([104.47.58.170] helo=NAM11-BN8-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxvkP-0006nJ-Mu for pgsql-hackers@postgresql.org; Thu, 16 Dec 2021 18:44:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EnxDsozW8lmjeuavt9gE2zrt3e02abgniZwNSl4GmGPmQkb+fJUqVHGNlJrmwcaMMvMGkwZAtEdcSpAFZtqQeb4p8wETdu9xiDeP7NSMI68AquFMrpb29UcUd3lSwOGucafUbAEeQk1TymjZXa9t8H5Qqq4AvcH1EZuYnOYCsA2NzA7ZmgsEj5c4arVOHvh48O+8ytoDkCpH3AYk/lgPI1mam6kB4k8Nz070FrmR7UTxlKqbIODTLBppukL+aiKUKNzZgwY71Mf+0RczJhMLPnRX4L6JEnwjlu0sKfAVqAh9wIYE2aMH7GMI7DBLqobuGhx+VkQHxuTWFiY4hyWUOw== 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=QUhW1caGjJdt48qU5ufitWIZpD9vezAHvfCqiizQGVc=; b=Z/BFRvrqurEo+xi46/OTZmjDWfTOgYYBL6CbnIPL4wiaetqd8bLU+9sn6pe/M1i90thRId9dqXbYuRNpNUMm8hQfR2mrozGWHyr0mWkJTJedL4ZXkM7WkQgQz6u/PgujWzpOJPHfKy1wlpdvEPKIWciy4tJ7QinyXEI5+GUZpumhY41TS+QdnRkce0DpP+ZT8vGBNpG5ochlGYg90NoHx/mKgpZxXcupiE2EBBTagKvUUbTSVfcY7ibE9fCkY+dwWr2FIq68PiOPQOW6HWnYlNoBsM27Px+Q3K8Nj3sNkHC/FwH8fzI6Mep1VLqI2wHUQe/DxbZUynyWzXGrdbIfmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QUhW1caGjJdt48qU5ufitWIZpD9vezAHvfCqiizQGVc=; b=SlbjxKQ9Uu/blUmfMH77SHh2cFRgnmhKAQCXz7m2dTsYUxurUf8nBk2KadWr1yHaKZSWQa+V9WzFFLJ+wIHJLTy5yMR8jcnwhMiWLN4XMB8sOkXTJIoIWR2u0TvkNXRYe+oropSLAZcsXOGP8sFHoZGD4y0L9pOBHATZUeeZiK0= Received: from CO1PR05MB8087.namprd05.prod.outlook.com (2603:10b6:303:db::16) by CO1PR05MB8489.namprd05.prod.outlook.com (2603:10b6:303:e8::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.13; Thu, 16 Dec 2021 18:44:54 +0000 Received: from CO1PR05MB8087.namprd05.prod.outlook.com ([fe80::4010:29a:417b:a7d5]) by CO1PR05MB8087.namprd05.prod.outlook.com ([fe80::4010:29a:417b:a7d5%3]) with mapi id 15.20.4801.014; Thu, 16 Dec 2021 18:44:54 +0000 From: Jacob Champion To: "horikyota.ntt@gmail.com" CC: "pgsql-hackers@postgresql.org" Subject: Re: [PATCH] Accept IP addresses in server certificate SANs Thread-Topic: [PATCH] Accept IP addresses in server certificate SANs Thread-Index: AQHX8hoz9DTsvozxTE2eDKi/5mA03aw0noUAgADXTYA= Date: Thu, 16 Dec 2021 18:44:54 +0000 Message-ID: References: <9f5f20974cd3a4091a788cf7f00ab663d5fcdffe.camel@vmware.com> <20211216.145418.356297361587367335.horikyota.ntt@gmail.com> In-Reply-To: <20211216.145418.356297361587367335.horikyota.ntt@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c37d46bd-064c-4d0a-e407-08d9c0c426e0 x-ms-traffictypediagnostic: CO1PR05MB8489:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UccJcARwlpPRVNTdhkyBELNW1Pj3Y8lekgj4uKa5BAHqZhx1W7iZ9WJmDT+rSwyAL8hh+ZcymSxU6hF0WCNPXZY7ww3/29ztg0IzuLebIBtxlektvAHzpB/pnex6xj//9h0VLPy+b09lxBPp/vJdMewEmZJjuF1NJYmup4JGN30v8S6UMsZxU5JGM8CgM9kb/hZJsaBBspFZoi+gQ33DXfZoHIXKf8J7dMC9Vvo4pSSGiJgWYhSP2FyS5mL7/Jr+Y8m1PQQ7lGaOpUN6aUXjG1Q806EjNCSb4gtL4ro73ybV547skyY6wTEssbjEunxswsN6d0yCPl6G8nPuCFsQeC8S9tEVsXYPX7sE1bAyNA27Oyqgte56VQVh+CePwGM3JsP7cNOZWJst1zwgydAAc0mPeRh0dOw8sEdKaDi5PUcz+kJXcKXDqYrzP5opJq/J57/EPVE/ipzRPE6hC0tk47ZWnbeHIqNPsV4Bkgkx/+biJn1mRzJ7WgCZ7MFWmqz1+UYtHzxEyxNfuIW5MoFPjNA01we+yiJqZtJ8hjkqrn1FQlNhlHaBfjYLuyYVkNI8Kmn1qMthP/yrQ1y9WF5hma1vIv3TbmDqKx+SEM+x5eiL8Z4I8v2+8IMne6wZ8+PoBd/6WDWI6uJrEyTZknN/67FNhOAo8TjK7p8xiXnybzHAFM8ySMEQOyMX5+RbDz5hDtrUSOmWxKs73HXEM780DZbgMjqrXX69w97GLdM9FAlXOLruaSLhg0bj0i/Lm4Gw+cBsAIO5jRFJkvZbu1xJGbTn0nf4ELdzyjZsYv9CkbY= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR05MB8087.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(966005)(38070700005)(66946007)(8676002)(186003)(316002)(86362001)(6512007)(83380400001)(8936002)(71200400001)(508600001)(2906002)(76116006)(6916009)(66446008)(66556008)(64756008)(26005)(4001150100001)(6506007)(38100700002)(122000001)(4326008)(6486002)(36756003)(66476007)(5660300002)(2616005)(20210929001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WE1EY1V4Sk1SNlplYjlyUHNxS0pKcUZxZ2lQVTNFK012WmhMeVl5R0V4d1Np?= =?utf-8?B?ZlIrNVZJc1RmOW8yS2t5bUdyMHFjSXg1azlXK0RaNFVURml1MGtFVGhRSlVG?= =?utf-8?B?bDhSbWpEZ2cwV2NBMUdabnA5c0YzK0VSYmwvejFwWWtMbi8vcjIrUysvRG9w?= =?utf-8?B?TmZnY29uZzdWcE4zRUJmaE82R0pDUVVlTmNWRnM3TXFxdjY3MzlNbVYzdVYx?= =?utf-8?B?K2JPVTR1bWdyc29QQlBEQVRpVzRSOHpmYlE0VkRGYnZudHY2aHBCM01hZEZC?= =?utf-8?B?R3I4UEk5Y2taRjZIb0Q2MHVRK0RyODFMNHhDTUhIU1RLUGdIbTFRR2E4YWhT?= =?utf-8?B?aVNxNXVaN2NLZkRGYjdXWmpLelhsbXI1V3UwS08yb3o1Tlc4YUFMTGtrdnlz?= =?utf-8?B?TGhnY0xaTlFWSVdrL01BUC9KMWRQNFkxUEZlam9nMnZCdzNWUjlEenV2NDRv?= =?utf-8?B?U1YrZ2lHTWpnSkY2TDA0UFRveXJiN0lGbnU1bVJTOWxnSmsrQ004QUNEQTJp?= =?utf-8?B?dDlqOU9hbUo5bG1lRC9RU2FndjYxaGVmbUtDODJjQWZmRUpoclVDdlV3dFFG?= =?utf-8?B?NFRrYUdYL3BUKzk2NFFSR0NQaUlFR2dDYU8rNHVqOXlFTVhzcFpSMFFmcWYw?= =?utf-8?B?S0JoQjFSSzlzVEgvaGMxdkRud01wSElsQWVFaE02UDVNTVJvenpUdTJMemRJ?= =?utf-8?B?cDBJRjNBRjJ6alcwT0J6WTFUQndJYU40SzF3NGR0alRxZTFteXJia0FRUHBJ?= =?utf-8?B?SHhGNE1wV1BuMXgzTVlxTXAyVG5JZ080cVZ5VDBrV3NKZHRrYmpiQk5EdHF3?= =?utf-8?B?VzFCZVErQ29KZ0EvSlUrd210TnNkaXVucWF6Qm1maEVkelVrcjFDZlU3bHl2?= =?utf-8?B?ZDY1a3cva0s0TjNXcjRNSHlaaUtqQjFiNkdJRjl1Q25BdjhRSFVKSXpaQ2lz?= =?utf-8?B?SVMyWVVIalpza3lsRmtTcEYwNy9FQ1d0cEw1aWNZNlpGb3NmR000VndQSlBB?= =?utf-8?B?bXB0QjlhY0RjWTJxTW9QdzUwdkpUTURQTXYyV0dRTkc3RHhSYng3eDRWOWtJ?= =?utf-8?B?Y3k3ZTRuTk9hR1Y2eStEOGIrTlRLakN4NkR1bklZWnpBOTh0enQ1UDVVYXBs?= =?utf-8?B?THVWZlkwVjBES0F1V3hhWUk4YVI4Ujl2WEdPVDlHelRDL3VsQ2Z6K20xRU44?= =?utf-8?B?NUdONlRGNUNEWjE3dVpwQmladFBCVlp1amlzazZpWWk2cERzUndSd2lKYUp5?= =?utf-8?B?QWNoZTlCVlVhQnZWVHZCQ05POWRIUHBUbHFDVnBnKzZzRUdiL0pWVmY5V0FS?= =?utf-8?B?K2xXZUI3Z3V5QWtzRGJJN3V1bEhhVnZocmNJVUNsT1pBQURYMkZERHFRZUZm?= =?utf-8?B?dzlZc0F6WDNRbmQ2Z3FxT040dEVOcGcxbHh2WDlxYkRtMnFUNlJObWlIMUxG?= =?utf-8?B?Nm1QU0FmOHhwZHUzSlZVd2V6ak50bnYvNzBsam9QcmtyQzJxQmRMQVh0cExS?= =?utf-8?B?MDR5RTNwSHNheUJmNkFRRk5FOUNvQ0MwUWxPSE96VE55RXhaTjZVSXIwRURN?= =?utf-8?B?YzhxUmlwdmc1REpFV1ppbzNDR3BBRGhqUzVQa2poWVkvcys2ejNxS0E1OGR5?= =?utf-8?B?QVlBaEFadE1OOXN2bW1PNTBSSTJkSTQ1V09NVUpXZXVqeGVhZ2pJMzRkc3ht?= =?utf-8?B?WDhuemtSMGhMSmdPcHhYUlpRY1Y3Z3EwdzRDaEtQM2ozdjQ0NUkxbnhFNHc3?= =?utf-8?B?YUtBTlIrWjdPb0NjbUo0dGZyMVVLcm5pT1VxK0pWQmJQTWlhWEp2WWVydHRu?= =?utf-8?B?TFgwTnFzYkdCT285OCtscW8wb3Y3MWpUQ2hKZGFTVXBSc0c0S0dwd2E3bG9s?= =?utf-8?B?eGVDajdZaWpXbkVoYnVtVnIvOUM4TE9RT1ZkM3hNcm9VWDhGZXBORHNaSGsw?= =?utf-8?B?MWVqWXJSc3N1RTlCMmg2cnM0SEdDeFhrV2U2aHdGL3FwV0FDcFBDWVcza1dL?= =?utf-8?B?NEJGQnFPbWdwSnpzVjd3SC9qOXc1aWNqQnM0MEtyRkZTSFBwQjNjNXAweWhL?= =?utf-8?B?QmlqVkxqTWNWU1k5bUR4ZlV5ZnZubDJzNCtOMk9oVlpqK3hRamYyamRaaytN?= =?utf-8?B?YVlKOVZGNnIrN0JxVVZvNFlBK3NOZzVTQmhWenM2akJQaUFKazZ3c2pwSU1w?= =?utf-8?Q?GOl1U/64jXyiu4OrJPMzymE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <1CDA4ED377957849B8D52B07102E0E31@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR05MB8087.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c37d46bd-064c-4d0a-e407-08d9c0c426e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2021 18:44:54.6348 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ce4h+1l8LcRxJG4Hw2OvJNP5s+n3rOUifxIK2kytUsnNIWIWURQ1qKptr0sZ/GSGL0MtXE12zODT5dlKZ01ytw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB8489 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gVGh1LCAyMDIxLTEyLTE2IGF0IDE0OjU0ICswOTAwLCBLeW90YXJvIEhvcmlndWNoaSB3cm90 ZToNCj4gSW4gUkZDMjgyOCBhbmQgNjEyNSwNCj4gDQo+ID4gICBJbiBzb21lIGNhc2VzLCB0aGUg VVJJIGlzIHNwZWNpZmllZCBhcyBhbiBJUCBhZGRyZXNzIHJhdGhlciB0aGFuIGENCj4gPiAgIGhv c3RuYW1lLiAgSW4gdGhpcyBjYXNlLCB0aGUgaVBBZGRyZXNzIHN1YmplY3RBbHROYW1lIG11c3Qg YmUgcHJlc2VudA0KPiA+ICAgaW4gdGhlIGNlcnRpZmljYXRlIGFuZCBtdXN0IGV4YWN0bHkgbWF0 Y2ggdGhlIElQIGluIHRoZSBVUkkuDQoNCkFoLCByaWdodCwgSSBtaXNyZW1lbWJlcmVkLiBEaXNy ZWdhcmQgbXkgc3RhdGVtZW50IHRoYXQgdGhlIHNwZWMgaXMNCiJzaWxlbnQgb24gdGhlIHN1Ympl Y3QiLCBzb3JyeS4NCg0KPiBJdCBzZWVtcyBsaWtlIHNheWluZyB0aGF0IHdlIG11c3Qgc2VhcmNo IGZvciBpUEFkZHJlc3MgYW5kIG11c3RuJ3QgdXNlDQo+IENOIG5vciBkTlNOYW1lIGlmIHRoZSBj bGllbnQgY29ubmVjdGVkIHVzaW5nIElQIGFkZHJlc3MuIE90aGVyd2lzZSwgaWYNCj4gdGhlIGhv c3QgbmFtZSBpcyBhIGRvbWFpbiBuYW1lLCB3ZSB1c2Ugb25seSBkTlNOYW1lIGlmIHByZXNlbnQs IGFuZA0KPiB1c2UgQ04gb3RoZXJ3aXNlLiAgVGhhdCBiZWhhdmlvciBzZWVtcyBhZ3JlZWluZyB0 byB3aGF0IHlvdSB3cm90ZSBhcw0KPiBOU1MncyBiZWhhdmlvci4NCg0KTlNTIGRlcGFydHMgc2xp Z2h0bHkgZnJvbSB0aGUgc3BlYyBhbmQgd2lsbCBhZGRpdGlvbmFsbHkgdHJ5IHRvIG1hdGNoDQph biBJUCBhZGRyZXNzIGFnYWluc3QgdGhlIENOLCBidXQgb25seSBpZiB0aGVyZSBhcmUgbm8gaVBB ZGRyZXNzZXMgaW4NCnRoZSBTQU4uIEl0IHJvdWdobHkgbWF0Y2hlcyB0aGUgbG9naWMgZm9yIERO UyBuYW1lcy4NCg0KSGVyZSdzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgTlNTIGJlaGF2aW9yIGFu ZCBzb21lIG9mIHRoZSByZWFzb25pbmcNCmJlaGluZCBpdCwgcXVvdGVkIGZyb20gYSBkZXZlbG9w ZXIgb24gQnVnemlsbGEgWzFdOg0KDQo+IEVsc2V3aGVyZSBpbiBSRkMgMjgxOCwgaXQgc2F5cyAN Cj4gDQo+ICAgIElmIGEgc3ViamVjdEFsdE5hbWUgZXh0ZW5zaW9uIG9mIHR5cGUgZE5TTmFtZSBp cyBwcmVzZW50LCB0aGF0IE1VU1QNCj4gICAgYmUgdXNlZCBhcyB0aGUgaWRlbnRpdHkuIE90aGVy d2lzZSwgdGhlIChtb3N0IHNwZWNpZmljKSBDb21tb24gTmFtZQ0KPiAgICBmaWVsZCBpbiB0aGUg U3ViamVjdCBmaWVsZCBvZiB0aGUgY2VydGlmaWNhdGUgTVVTVCBiZSB1c2VkLiANCj4gDQo+IE5v dGljZSB0aGF0IHRoaXMgc2VjdGlvbiBpcyBub3QgY29uZGl0aW9uZWQgdXBvbiB0aGUgVVJJIGJl aW5nIGEgaG9zdG5hbWUNCj4gYW5kIG5vdCBhbiBJUCBhZGRyZXNzLiAgU28gdGhpcyBzdGF0ZW1l bnQgY29uZmxpY3RzIHdpdGggdGhlIG9uZSBjaXRlZCANCj4gYWJvdmUuICANCj4gDQo+IEkgaW1w bGVtZW50ZWQgdGhpcyBwb2xpY3k6DQo+IA0KPiAgICAgaWYgdGhlIFVSSSBjb250YWlucyBhIGhv c3QgbmFtZQ0KPiAgICAgICAgIGlmIHRoZSBzdWJqZWN0IGFsdCBuYW1lIGlzIHByZXNlbnQgYW5k IGhhcyBvbmUgb3IgbW9yZSBETlMgbmFtZXMNCj4gICAgICAgICAgICAgdXNlIHRoZSBETlMgbmFt ZXMgaW4gdGhhdCBleHRlbnNpb24gYXMgdGhlIHNlcnZlciBpZGVudGl0eQ0KPiAgICAgICAgIGVs c2UNCj4gICAgICAgICAgICAgdXNlIHRoZSBzdWJqZWN0IGNvbW1vbiBuYW1lIGFzIHRoZSBzZXJ2 ZXIgaWRlbnRpdHkNCj4gICAgIGVsc2UgaWYgdGhlIFVSSSBjb250YWlucyBhbiBJUCBhZGRyZXNz DQo+ICAgICAgICAgaWYgdGhlIHN1YmplY3QgYWx0IG5hbWUgaXMgcHJlc2VudCBhbmQgaGFzIG9u ZSBvciBtb3JlIElQIGFkZHJlc3Nlcw0KPiAgICAgICAgICAgICB1c2UgdGhlIElQIGFkZHJlc3Nl cyBpbiB0aGF0IGV4dGVuc2lvbiBhcyB0aGUgc2VydmVyIGlkZW50aXR5DQo+ICAgICAgICAgZWxz ZQ0KPiAgICAgICAgICAgICBjb21wYXJlIHRoZSBVUkkgSVAgYWRkcmVzcyBzdHJpbmcgd2l0aCB0 aGUgc3ViamVjdCBjb21tb24gbmFtZS4NCg0KSXQgc291bmRzIGxpa2UgYm90aCB5b3UgYW5kIEFu ZHJldyBtaWdodCBiZSBjb21mb3J0YWJsZSB3aXRoIHRoYXQgc2FtZQ0KYmVoYXZpb3I/IEkgdGhp bmsgaXQgbG9va3MgbGlrZSBhIHNhbmUgc29sdXRpb24sIHNvIEknbGwgaW1wbGVtZW50IHRoYXQN CmFuZCB3ZSBjYW4gc2VlIHdoYXQgaXQgbG9va3MgbGlrZS4gKE15IHdvcmsgb24gdGhpcyB3aWxs IGJlIHBhdXNlZCBvdmVyDQp0aGUgZW5kLW9mLXllYXIgaG9saWRheXMuKQ0KDQo+IFRoYXQgYmVp bmcgc2FpZCBpdCBzZWVtcyB0byBtZSB3ZSBzaG91bGQgcHJlc2VydmUNCj4gdGhhdCBiZWhhdmlv ciBhdCBsZWFzdCBmb3IgT3BlblNTTCBhcyBhbiBlc3RhYmxpc2hlZCBiZWhhdmlvci4NCg0KVGhh dCBwYXJ0IGlzIGludGVyZXN0aW5nLiBJJ2xsIHRhbGsgbW9yZSBhYm91dCB0aGF0IGluIG15IHJl cGx5IHRvDQpBbmRyZXcuDQoNCj4gSW4gc2hvcnQsIEkgdGhpbmsgdGhlIGN1cnJlbnQgYmVoYXZp b3Igb2YgdGhlIHBhdGNoIGlzIHRoZSBkaXJlY3Rpb24NCj4gd2Ugd291bGQgZ28gYnV0IHNvbWUg ZG9jdW1lbnRhdGlvbiBpcyBtYXkgYmUgbmVlZGVkLg0KDQpHcmVhdCENCg0KPiBJJ20gbm90IHN1 cmUgYWJvdXQgaXB2NCBjb21wdGlibGUgYWRkcmVzc2VzLiAgSG93ZXZlciwgSSB0aGluayB3ZSBj YW4NCj4gaWRlbnRpZnkgaXB2NCBjb21wYXRpYmxlIGFkZHJlc3MgZWFzaWx5Lg0KDQpZZWFoLCBp dCB3b3VsZCBwcm9iYWJseSBub3QgYmUgYSBkaWZmaWN1bHQgZmVhdHVyZSB0byBhZGQgbGF0ZXIu DQoNCj4gKyAgICAgICAgICAgICAgICAqIHBnX2luZXRfbmV0X3B0b24oKSB3aWxsIGFjY2VwdCBD SURSIG1hc2tzLCB3aGljaCB3ZSBkb24ndCB3YW50IHRvDQo+ICsgICAgICAgICAgICAgICAgKiBt YXRjaCwgc28gc2tpcCB0aGUgY29tcGFyaXNvbiBpZiB0aGUgaG9zdCBzdHJpbmcgY29udGFpbnMg YSBzbGFzaC4NCj4gKyAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgaWYgKCFz dHJjaHIoaG9zdCwgJy8nKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAmJiBwZ19pbmV0X25l dF9wdG9uKFBHU1FMX0FGX0lORVQ2LCBob3N0LCBhZGRyLCAtMSkgPT0gMTI4KQ0KPiANCj4gSWYg YSBjaWRyIGlzIGdpdmVuLCBwZ19pbmV0X25ldF9wdG9uIHJldHVybnMgYSBudW1iZXIgbGVzcyB0 aGFuIDEyOCBzbw0KPiB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrICcvJyBleHBsaWNpdHk/ICAoSSdt IG5vdCBzdXJlICcvMTI4JyBpcw0KPiBzZW5zaWJsZSBidXQgZG9lc24ndCBoYXJtLi4pDQoNClBl cnNvbmFsbHkgSSB0aGluayB0aGF0LCBpZiBzb21lb25lIHdhbnRzIHlvdXIgbGlicHEgdG8gY29u bmVjdCB0byBhDQpzZXJ2ZXIgd2l0aCBhIGhvc3RuYW1lIG9mICJzb21lOmlwdjY6OmFkZHJlc3Mv MTI4IiwgdGhlbiB0aGV5IGFyZQ0KdHJ5aW5nIHRvIHB1bGwgc29tZXRoaW5nIChldmFkaW5nIGEg cG9vcmx5IGNvZGVkIGJsb2NrbGlzdCwgcGVyaGFwcz8pDQphbmQgd2Ugc2hvdWxkIG5vdCBhbGxv dyB0aGF0IHRvIG1hdGNoIGFuIElQLiBUaG91Z2h0cz8NCg0KVGhhbmtzIGZvciB0aGUgcmV2aWV3 IQ0KLS1KYWNvYg0KDQpbMV0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MTAzNzUyDQoNCg==