Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116903 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 67477 invoked from network); 21 Jan 2022 00:42:58 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 21 Jan 2022 00:42:58 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id E17D7180507 for ; Thu, 20 Jan 2022 17:54:15 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SPF_TEMPERROR autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS4983 134.134.136.0/24 X-Spam-Virus: No X-Envelope-From: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 20 Jan 2022 17:54:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642730055; x=1674266055; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=lvEuRk7V+/7eLM6sekyjRG/d9YY73dMpndxAyViXBd8=; b=CA5o19f3JLFXNyzx+msoPX23QsttO0iyrBn1qrcDE7uDwjFj3R1gtaeN Z39u9qF+VpCgHezlmZ7Es+oDfRrezpQlTnH74Yd+GvYzg3CqafHKu1NBV hRDRq0DUx3EXxzuhEG1Hmyd8iyXxiErelzCaFMCbZsO3vaRySewyo1k8B tYQuX9GXsZ/RID5OVxBlzXHBM4XhW8Ip51Ml0CY/Whe50e1uxnEkb9n5t Nt66arlPLzfAydSfwsw6YUWDJJuP0wQJ6aVRXI+y+ZrZGFPFxZOd7wQfi YqCvamSOSRIQGmVLNK3awM1TWXClEPrwG5FvMakLoF/jv1AnLwRNZrmxe A==; X-IronPort-AV: E=McAfee;i="6200,9189,10233"; a="245326071" X-IronPort-AV: E=Sophos;i="5.88,303,1635231600"; d="scan'208";a="245326071" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jan 2022 17:54:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,303,1635231600"; d="scan'208";a="531234201" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 20 Jan 2022 17:54:13 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 20 Jan 2022 17:54:13 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 20 Jan 2022 17:54:13 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 20 Jan 2022 17:54:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IBdJQoE6mBRoco69LqgIkFUTSwDHNbrOAIxWKsTa0bAaAz8WijNA0Qd/8ipk+1qrU26Vkp7MLXKCKgXaDvnbKl59io32FB5E7BWACebUsJiF8cN9aA1BPmNGW1XXOFYYbKq0kGGHc7qVfDaqzpkdYIynamLylR/ADs8KoX+n/8PC8shN28UnbPs2nsSjYsZdET3dGrPjW4A2pD34icNG0CrTxO+LcYTYANDE7a5JgYT+MzcQoX/1DaP/SmU5gt/yAMd6Dnngaix07Y6cDccl5I0hVi2kbl4J3QBEKJt0ni0YQ7RAn6X9+shJOqj7EdpDgeQ7lYUU5fLUeoU/Y6fQ1w== 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=lvEuRk7V+/7eLM6sekyjRG/d9YY73dMpndxAyViXBd8=; b=j2YxG2jOm+8LKYj68E0LP8TSw5K3fXoeMNp6Vb8U4ATxIjNHVSt0yNRgJNqRtL9GVHWJJf02kA42/LcOlSkrKCVPeAWLaHz9nd/gTw5jyh970cXxgr7zFFcQtvFI1ozjpABhtYPwnh9c+4A+dMbYQqfJWBOoflm9J07b4ONoXFCXjMZdnfNFRmDjCGzLuHAcaC4eLXLLU7XEA7XsdR9lwB28hBikQy9ss64M3U9IeN2wsA/e3p3XJfhu1Qc2J+BCNlOIpeWCsWk2WdIvcgIWdrufLrMYl/EcjJJLmlUvxYmN/43pRBh3/f74DHPrLAy+cMyhyXMW+NmjmTin51hVJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DM4PR11MB5567.namprd11.prod.outlook.com (2603:10b6:5:39a::15) by DM8PR11MB5654.namprd11.prod.outlook.com (2603:10b6:8:33::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Fri, 21 Jan 2022 01:54:11 +0000 Received: from DM4PR11MB5567.namprd11.prod.outlook.com ([fe80::3c16:168d:6b71:420d]) by DM4PR11MB5567.namprd11.prod.outlook.com ([fe80::3c16:168d:6b71:420d%5]) with mapi id 15.20.4909.011; Fri, 21 Jan 2022 01:54:11 +0000 To: Levi Morrison CC: "internals@lists.php.net" , "Su, Tao" Thread-Topic: [PHP-DEV] [Help] Reason on when to declare and protect ZEND_API function Thread-Index: AdgN24+zgXAZ7NlRSWu1xgp40nQMDQAMf3cAABX0QlA= Date: Fri, 21 Jan 2022 01:54:11 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 174c0c9a-1e41-49c0-6b0d-08d9dc80eb6a x-ms-traffictypediagnostic: DM8PR11MB5654:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vsqFSLASL/8J9Ll4T4PLotciN+jUh/rv5MhAq/gtkkRRgpy9PWpbqqUsASLuUJ7YtPrfsiB602HoZnoJHX4LChGpQJm4OFgNe/f47fIObVfyvZSP4Z2aLR897NnK/IMaxtyL3iTQJB3y5bfjuLtDTwZ7jc9cs0vibC8jLT+GDyJqBZwpNjNK0qm4rjhws23k3/JeORnN8UTfTlevzznjuqyf9BetH3be029/pCKLdLOxeXhMX+1+r1q5AF/icwzOizwbeNg1qgJU8EmzoEbdHeM+lBHLIPXwL2QLCWs/xWZOuEVUirKaC1sl8Law/ESrj3Ty5rw1XFMF1jSflcfubuw1SY+qLclGS/VtYPy6GoAqM+Uft/yPNnerTDS+ForBc3idbCexNFcpsJksWuW53pBp7KBcjno9/OIdGHMLyPW3vaYkaJkieCQgUmmokiA+g50yw5zjf7oWKuW/q+tKl/wy7VVWbJTjuz42/S7TnAn5P+ouBOckeRH3r09XjkMtaab3D2fdoHzwfBHuDFnlcVBUmqFqd+IvnIKGWG8vctFy08+kKnUwOKsSMgDZOB+2+ZA4dKa4uVTozcxk/Ooxj/RGn2GZV0oXyGiRDUa869hvgy6bMjNQMTsLnKp7F9O/ZVEpndYgI1EBAPnbXEXEhJxvCJ/TQ3MqMh5ncEpZG0TxD/LkhC8sl/b3m+qFrsekN9FjSmt68H7yU+Ktj+nVHg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5567.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(83380400001)(508600001)(122000001)(4326008)(7696005)(38100700002)(66476007)(5660300002)(54906003)(2906002)(8676002)(71200400001)(107886003)(55016003)(9686003)(316002)(66556008)(33656002)(52536014)(64756008)(186003)(38070700005)(66946007)(86362001)(26005)(53546011)(82960400001)(8936002)(66446008)(6916009)(76116006)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eVZ4Z1dXVDViazVIMVhxVnZsalEwUEJRVmpoNHJRcEg5VGJ2bWxBcjNPOGY0?= =?utf-8?B?eGlkMlBMeWpOM29zdU1jQ2h6QytsVGZIbEVVQ0lST3lCZE5HaXZ5UWUzRnN3?= =?utf-8?B?M1RqbGJVZnZjSVZGaUZHbWVNZ0JlTW9YTDExRUt1Sm1PSmtrbWw4dFM5T2NJ?= =?utf-8?B?bHF5b1dkK2QzOW1oaDJ4YW1YUG1DVkFTUlcxZmNHbFZKNUU1WEpPbElmMFNX?= =?utf-8?B?dTlpd3l3a21ncnBHMGkySGJlQzFOU0RoSi90bVlrTmZMbGFRMEpjU1dySDV0?= =?utf-8?B?cTZHTFpHMDdudDhvbUVlTTlJU1MrT3J0MmU1bTBqMW5CaE5pMWltTEZrSHlY?= =?utf-8?B?MmgydVIrVnBFVFNXMHVBMFJpTkhxajdycC9kbWJrR29SK25ObHRFd0JSVUp4?= =?utf-8?B?aUZpRldaZWs5TUZPQ3cvWmZYaVlZN3g2dy9hQk5BaHNTN3dFZkJPYUpLa20v?= =?utf-8?B?NC9idWtoZGJQeUsvZ3dGWlJMRFg2bXFZbmFEckljTUdTZi9ZeXd6elBzcHJt?= =?utf-8?B?akdPMWhLck1ubStWRlBrVUVNQjdrUWRQelJ2emp4WlRRakVoU3FHZndTRU5M?= =?utf-8?B?THFMQ2wxd05YcXRDcDk1V29mUFdURVN2bkp2ZjZQSUFPZmF4VHFYcjVySDhI?= =?utf-8?B?bHhLV25rT01wQ3VOSEFiK3B0NkhaU0Q5TlFQTmJUdEIwSmZVeFF2NW51NWxV?= =?utf-8?B?NERvV05xbWhhKzNZRmZKbCtTWlJTVUZlWk5Ld2wyOUp0RmF4ZGhRdTBMdHgw?= =?utf-8?B?MGR5aU51UDA5dEwvL1BrQldEMm5COW9mRVRNb3htWWFaSTFRcCs3MXpmNU83?= =?utf-8?B?bGllKzVzSkkyN0xoZEdaRkRuOHN4YzYzSWFvSnpJbFJwQkRmM21tZXR3ZkFM?= =?utf-8?B?ZGRXMVd6MSs0MkF4UXJwQ2hYUXEvRWw3RTNPMkJLaHhmMFJ2N2I0Yk5KTktP?= =?utf-8?B?blRqVG9oT1lGc0tpa1V2MWpMaVNQRTFnOTROR04vVEhUcitMZjZiQUxXd3pO?= =?utf-8?B?WnZTVXpxVTR4NUZ5WWo3WWJrWWFmZHk5dHdjVXVUUnBDc044UjhMRlgzZml6?= =?utf-8?B?dGZ3ckxSMzkzQmRrdnhNdGNIM0hwbjVXRk9UbG9hMTNBcFoyZ0pNUVYyL25a?= =?utf-8?B?TWhEWExyNmxVbnkrTi9MY3Ard09YTFIyT0M1VUZ4SUVwTFdxdEErbXJJUzNt?= =?utf-8?B?aVBZY0k1eG1zZFVjVGRKZ0ZWNHUrWC80WnVteU5RNXFlMmVCTjExZU9iUE1u?= =?utf-8?B?dDY0eGpMck81dWFBOFhUYUFVWkk0SVFteGZqTWhxc2x3aEppNGNsdk1XUlBM?= =?utf-8?B?NHExem1EUTZycFIrb1NWYVlGL0ViZG5PMVlwWVd1NGpYa1BZb053T1lPSWpR?= =?utf-8?B?dGFYWTBNaHNjS0UxMUNQNmttQVVDQ3BaMUFIelZ5a0hRb3RYbFA0TVZ0dkl5?= =?utf-8?B?cE1HeGZ5dE5tMUZrNUM4aTF6QkVxMmZsT0ZKT0dkZXI5TkFJbnRWQXF4ZWhX?= =?utf-8?B?ZnhTWFJodmo0cDgvZmx1dWRibXFsbXVPNnAycU8rQkZEVjYzeXRTNUtsekd5?= =?utf-8?B?ZGlDVzRPNE9aMFZudmoxTmsvZG1XR29TRlUvYmZkQitIWER2bndLSlVLaHpQ?= =?utf-8?B?cnp5QlJuVC9ma3RNc2l2VmJFMnJ6ZkJJNGk1WTZKRnVSQVpjcWs0L2lDRnZX?= =?utf-8?B?QXp6WXVsb29JZU5jNHFjK0x0bVJHL0x0aHFKTnFGSTNsRnVMT0ZlRUxxMWJu?= =?utf-8?B?cG45SmNRYlhGT1NDZ291ZGZnN01jRy81cTRPNUNNVUN4VGpudjFLbkw1WmN4?= =?utf-8?B?b3VCUU5sMG1ZYjROZVd4dHNxSlEvaTBWWG4ySktMUCtmWWVGZUdYVWZjYkZl?= =?utf-8?B?c1Z1TFpyRHRCNVNtSkVmTHZmWGFtTCtxUlBacUthMllKR0FRU0haUjJrYlN0?= =?utf-8?B?OU5MdWg1dGtiWlRkL3J0Z0dmYmk1cGdPVDZSYlZKMFRkeHA1T0RiOEJOTnRF?= =?utf-8?B?OURYZitGay96WGYzQk5EYi9VWEg5Q3dqaFVtelhINi92YnJxd2VwcHpXY2hD?= =?utf-8?B?UmdQQlRVNEZRQzJ1bEp3d0NiYjJQcm1wc24zWjFzUlZRYnVYb2hyT01GdFZp?= =?utf-8?B?LzZ6dlBYZU1tL0FSWlFydUQvWkE0enNpRjMzR3JFTU5mRzNkaTRabDZEMHNz?= =?utf-8?Q?tEI6XFzmC6NBLYuEqGtz8o4=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5567.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 174c0c9a-1e41-49c0-6b0d-08d9dc80eb6a X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 01:54:11.1537 (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: sZrjdhxCA87q+d6aqJNs2+FRZm3mlIMtWS2trxKzUtM2/a1iWy1bcXoHGh09mml2Kjqjq3NXbOZ7tFlkLd8Kpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR11MB5654 X-OriginatorOrg: intel.com Subject: RE: [PHP-DEV] [Help] Reason on when to declare and protect ZEND_API function From: tao.su@intel.com ("Su, Tao") PiBPbiBUaHUsIEphbiAyMCwgMjAyMiBhdCAxOjU2IEFNIFN1LCBUYW8gPHRhby5zdUBpbnRlbC5j b20+IHdyb3RlOg0KPiA+DQo+ID4gSGVsbG8gaW50ZXJuYWxzLA0KPiA+DQo+ID4gSSBhbSB0cnlp bmcgdG8gcmVhZCBaZW5kIGhlYWRlciBmaWxlcyB0byB1bmRlcnN0YW5kIGl0cyBmdW5jdGlvbmFs IGludGVyZmFjZXMsDQo+ID4gYnV0IGhhdmUgZ290IGNvbmZ1c2lvbiBhbmQgYW55Ym9keSBrbm93 cyB3aHkgemVuZF9zdGFydHVwX3N5c3RlbV9pZCgpDQo+IGFuZCB6ZW5kX2ZpbmFsaXplX3N5c3Rl bV9pZCgpDQo+ID4gZG8gbm90IGhhdmUgdG8gYmUgcHJvdGVjdGVkIGJ5IEJFR0lOX0VYVEVSTl9D KCkvRU5EX0VYVEVSTl9DKCkNCj4gZW5jbG9zdXJlLA0KPiA+IGJ1dCB6ZW5kX2FkZF9zeXN0ZW1f ZW50cm9weSgpIGhhcyB0by4NCj4gPg0KPiA+IElzIHRoZSBmb2xsb3dpbmcgY29kZSBpbnRlbnRp b25hbCBmb3IgYW55IHJlYXNvbj8NCj4gPiBBbmQgYWxzbywgdGhlc2UgdHdvIGZ1bmN0aW9ucyBk byBub3QgaGF2ZSBaRU5EX0FQSSBhdHRyaWJ1dGUuIFRoYW5rcy4NCj4gPg0KPiA+IFplbmQvemVu ZF9zeXN0ZW1faWQuaA0KPiA+IEJFR0lOX0VYVEVSTl9DKCkNCj4gPiAvKiBUcnVlIGdsb2JhbDsg V3JpdGUtb25seSBkdXJpbmcgTUlOSVQvc3RhcnR1cCAqLw0KPiA+IGV4dGVybiBaRU5EX0FQSSBj aGFyIHplbmRfc3lzdGVtX2lkWzMyXTsNCj4gPg0KPiA+IFpFTkRfQVBJIFpFTkRfUkVTVUxUX0NP REUgemVuZF9hZGRfc3lzdGVtX2VudHJvcHkoY29uc3QgY2hhcg0KPiAqbW9kdWxlX25hbWUsIGNv bnN0IGNoYXIgKmhvb2tfbmFtZSwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpOw0KPiA+ IEVORF9FWFRFUk5fQygpDQo+ID4NCj4gPiB2b2lkIHplbmRfc3RhcnR1cF9zeXN0ZW1faWQodm9p ZCk7DQo+ID4gdm9pZCB6ZW5kX2ZpbmFsaXplX3N5c3RlbV9pZCh2b2lkKTsNCj4gPg0KPiA+DQo+ ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gVG9ueSBTdSAo U3UsIFRhbykNCj4gPiBtYWtlIGEgJ2xhenknIHByb2dyYW1tZXIgZGlsaWdlbnRseSB3aXRoIGVm ZmljaWVuY3kNCj4gPg0KPiANCj4gSSBoYXZlbid0IGxvb2tlZCBhdCB0aGUgZGV0YWlscyBvZiB0 aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnMgcmVjZW50bHksDQo+IGJ1dCBpbiBnZW5lcmFsIGZ1bmN0 aW9ucyB3aGljaCBhcmUgbWFya2VkIFpFTkRfQVBJIGFyZSBjYXBhYmxlIG9mDQo+IGJlaW5nIGNh bGxlZCBmcm9tIGV4dGVuc2lvbnMgYW5kIG1vZHVsZXMuIFRoZXNlIHNhbWUgWkVORF9BUEkNCj4g ZnVuY3Rpb25zIG5lZWQgdG8gYmUgaW4gYGV4dGVybiAiQyJgIHNlY3Rpb25zIGZvciB0aGF0IHRv IGhhcHBlbiBpZg0KPiB0aGUgZXh0ZW5zaW9uIG9yIG1vZHVsZSBpcyB1c2luZyBDKysuDQo+IA0K PiBJIHdvdWxkIGd1ZXNzIHRoYXQgYHplbmRfc3RhcnR1cF9zeXN0ZW1faWRgIGFuZA0KPiBgemVu ZF9maW5hbGl6ZV9zeXN0ZW1faWRgIGRvIG5vdCBuZWVkIHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0 aGUgZW5naW5lDQo+IGJ1dCBuZWVkZWQgdG8gaGF2ZSBhIGZvcndhcmQgZGVjbGFyYXRpb24gZm9y IGNvZGUgb3JnYW5pemF0aW9uDQo+IHJlYXNvbnMuDQoNClRoYW5rcyBMZXZpIGZvciB0aGUgY2xh cmlmaWNhdGlvbi4gVGhpbmdzIGJlY29tZSBjbGVhcmVyLiBIZXJlIGFyZSBzb21lIGZvbGxvd2lu ZyBxdWVzdGlvbnMNCjEpIHdoZW4geW91IHNheSAnb3V0c2lkZSBvZiB0aGUgZW5naW5lJywgd2hh dCBpcyB0aGUgYm91bmRhcnkgb2Ygb3V0c2lkZS9pbnNpZGU/DQogICAgIE15IHVuZGVyc3RhbmRp bmcgaXMgdGhhdCBhbGwgY29kZSB1bmRlciBaZW5kLyBmb2xkZXIgaXMgY29uc2lkZXJlZCBhcyBp bnNpZGUgdGhlIFplbmQgZW5naW5lOw0KICAgICBPdGhlciBjb21wb25lbnRzIG91dHNpZGUgdGhh dCBmb2xkZXIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgY29uc3VtZXIvdXNlciBvZiBaZW5kLiAN CiAgICAgSXMgdGhpcyBjb3JyZWN0PyBQbHMgZml4IG1lIGlmIEkgbWlzdG9vayBzb21ldGhpbmcu DQoNCiAgICAgRnVuY3Rpb25zIG1hcmtlZCB3aXRoIFpFTkRfQVBJIGluIGhlYWRlciBmaWxlcyB1 bmRlciBaZW5kLyBmb2xkZXIgDQogICAgIHNob3VsZCBiZSB0aG91Z2h0IGFzIHRoZSBpbnRlcmZh Y2UgZm9yIG91dHNpZGUgdXNlcnMuIFRlY2huaWNhbGx5LCANCiAgICAgdGhlc2UgZnVuY3Rpb25z IHNob3VsZCBiZSBtYXJrZWQgd2l0aCBgZXh0ZXJuICJDImAgIHRvIHN1cHBvcnQgDQogICAgIEMr KyBleHRlbnNpb24vbW9kdWxlLiANCiAgICAgSXMgdGhpcyBjb3JyZWN0PyBQbHMgZml4IG1lIGlm IEkgbWlzdG9vayBzb21ldGhpbmcuDQoNCjIpIGEgcXVpY2sgc2VhcmNoIHNob3dzIHRoYXQgbWFp bi9tYWluLmMgY2FsbHMgemVuZF9zdGFydHVwX3N5c3RlbV9pZCgpDQogICAgIElmIG1haW4vbWFp bi5jIGlzIGEgWmVuZCB1c2VyLCBsb2dpY2FsbHksIHplbmRfc3RhcnR1cF9zeXN0ZW1faWQoKSAN CiAgICAgc2hvdWxkIGJlIGRlY2xhcmVkIHdpdGggWkVORF9BUEkgYW5kIGV4dGVybiAiQyI/IA0K ICAgDQogICAgIC8qIGV4dHJhY3QgZnJvbSBtYWluL21haW4uYzo6cGhwX21vZHVsZV9zdGFydHVw KCkgKi8NCiAgICAvKiBCZWdpbiB0byBmaW5nZXJwcmludCB0aGUgcHJvY2VzcyBzdGF0ZSAqLw0K ICAgIHplbmRfc3RhcnR1cF9zeXN0ZW1faWQoKTsgDQoNCjMpIEkgZm91bmQgYW5vdGhlciBaZW5k L3plbmRfZ2RiLmggaGVhZGVyIGZpbGUgd2hlcmUgdGhyZWUgZnVuY3Rpb25zIA0KICAgICBhcmUg bWFya2VkIHdpdGggWkVORF9BUEkgYnV0IGFyZSBub3QgZW5jbG9zZWQgYnkgYGV4dGVybiAiQyJg Lg0KICAgICAvKiBaZW5kL3plbmRfZ2RiLmggKi8NCiAgICAgWkVORF9BUEkgYm9vbCB6ZW5kX2dk Yl9yZWdpc3Rlcl9jb2RlKGNvbnN0IHZvaWQgKm9iamVjdCwgc2l6ZV90IHNpemUpOw0KICAgICBa RU5EX0FQSSB2b2lkIHplbmRfZ2RiX3VucmVnaXN0ZXJfYWxsKHZvaWQpOw0KICAgICBaRU5EX0FQ SSBib29sIHplbmRfZ2RiX3ByZXNlbnQodm9pZCk7DQogICAgIA0KNCkgIEluIFplbmQvemVuZC5n ZGIuYyBzb3VyY2UgZmlsZSwgSSBzYXcgYSBmdW5jdGlvbiBfX2ppdF9kZWJ1Z19yZWdpc3Rlcl9j b2RlKCkgDQogICAgICBtYXJrZWQgd2l0aCBaRU5EX0FQSSwgYnV0IG5vdCBkZWNsYXJlZCBpbiBo ZWFkZXIgZmlsZT8gDQogICAgICBMb2dpY2FsbHkgYW5kIHByb2dyYW1tYXRpY2FsbHksIEkgZ290 IGNvbmZ1c2VkIGFuZCBjb3VsZCBub3QgZ3Jhc3AgWkVORF9BUEkgdXNhZ2Ugc3R5bGUuDQoNCiAg ICAgIC8qIFplbmQvemVuZF9nZGIuYyAqLw0KICAgICAgWkVORF9BUEkgemVuZF9uZXZlcl9pbmxp bmUgdm9pZCBfX2ppdF9kZWJ1Z19yZWdpc3Rlcl9jb2RlKHZvaWQpDQogICAgICB7DQoJX19hc21f XyBfX3ZvbGF0aWxlX18oIiIpOw0KICAgICAgfQ0KDQotLSBUYW8gU3UNCg==