From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 4ADAF44834 for ; Mon, 26 Sep 2022 06:48:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9361C68B9CA; Mon, 26 Sep 2022 09:48:14 +0300 (EEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A73968B8CF for ; Mon, 26 Sep 2022 09:48:07 +0300 (EEST) Received: from dggemv711-chm.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4MbYBD35j2zlXVl for ; Mon, 26 Sep 2022 14:43:48 +0800 (CST) Received: from kwepemm600019.china.huawei.com (7.193.23.64) by dggemv711-chm.china.huawei.com (10.1.198.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 26 Sep 2022 14:48:01 +0800 Received: from kwepemi500014.china.huawei.com (7.221.188.232) by kwepemm600019.china.huawei.com (7.193.23.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 26 Sep 2022 14:48:01 +0800 Received: from kwepemi500014.china.huawei.com ([7.221.188.232]) by kwepemi500014.china.huawei.com ([7.221.188.232]) with mapi id 15.01.2375.031; Mon, 26 Sep 2022 14:48:01 +0800 From: "Wujian(Chin)" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] RTP: get the buffer information of the RTP extension header. Thread-Index: AdjMJT2evvtgn09+Q4W4Ym2kTC+DEQ== Date: Mon, 26 Sep 2022 06:48:01 +0000 Message-ID: <28b6f382aa9b441dbbb806d61cc9f094@huawei.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.136.102.143] MIME-Version: 1.0 X-CFilter-Loop: Reflected Subject: Re: [FFmpeg-devel] [PATCH] RTP: get the buffer information of the RTP extension header. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "yangzhiyong \(F\)" Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: QW5kcmVhc6O6DQo+V3VqaWFuKENoaW4pOg0KPj4gU2lnbmVkLW9mZi1ieTogd3VqaWFuX25hbmpp bmcgPHd1amlhbjJAaHVhd2VpLmNvbT4NCj4+IC0tLQ0KPj4gIGxpYmF2Y29kZWMvYXZwYWNrZXQu YyB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAg bGliYXZjb2RlYy9wYWNrZXQuaCAgIHwgMTcgKysrKysrKysrKysrKysrKysNCj4+ICBsaWJhdmZv cm1hdC9kZW11eC5jICAgfCAgNyArKysrKysrDQo+PiAgbGliYXZmb3JtYXQvcnRwZGVjLmMgIHwg MzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPj4gIDQgZmlsZXMgY2hh bmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4+IA0KPj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYXZwYWNrZXQuYyBiL2xpYmF2Y29kZWMvYXZwYWNrZXQuYyBpbmRleCAN Cj4+IGJjYmM0MTYuLjQ1YzEzMWEgMTAwNjQ0DQo+PiAtLS0gYS9saWJhdmNvZGVjL2F2cGFja2V0 LmMNCj4+ICsrKyBiL2xpYmF2Y29kZWMvYXZwYWNrZXQuYw0KPj4gQEAgLTQ2LDYgKzQ2LDggQEAg dm9pZCBhdl9pbml0X3BhY2tldChBVlBhY2tldCAqcGt0KQ0KPj4gICAgICBwa3QtPm9wYXF1ZSAg ICAgICAgICAgICAgID0gTlVMTDsNCj4+ICAgICAgcGt0LT5vcGFxdWVfcmVmICAgICAgICAgICA9 IE5VTEw7DQo+PiAgICAgIHBrdC0+dGltZV9iYXNlICAgICAgICAgICAgPSBhdl9tYWtlX3EoMCwg MSk7DQo+PiArICAgIHBrdC0+ZXh0ICAgICAgICAgICAgICAgICAgPSBOVUxMOw0KPj4gKyAgICBw a3QtPmV4dGxlbiAgICAgICAgICAgICAgID0gMDsNCj4+ICB9DQo+PiAgI2VuZGlmDQo+PiAgDQo+ PiBAQCAtMTA5LDYgKzExMSw0NiBAQCBpbnQgYXZfbmV3X3BhY2tldChBVlBhY2tldCAqcGt0LCBp bnQgc2l6ZSkNCj4+ICAgICAgcmV0dXJuIDA7DQo+PiAgfQ0KPj4gIA0KPj4gK3N0YXRpYyB2b2lk IGF2X3BhY2tldF9mcmVlX2V4dChBVlBhY2tldCAqcGt0KSB7DQo+PiArICAgIGlmICghcGt0KQ0K Pj4gKyAgICAgICAgcmV0dXJuOw0KPj4gKw0KPj4gKyAgICBpZiAocGt0LT5leHQpIHsNCj4gPisg ICAgICAgIGF2X2ZyZWUocGt0LT5leHQpOw0KPiA+KyAgICAgICAgcGt0LT5leHQgPSBOVUxMOw0K PiA+KyAgICB9DQo+PiArDQo+PiArICAgIHBrdC0+ZXh0bGVuID0gMDsNCj4+ICt9DQo+ID4rDQo+ ID4raW50IGF2X3NldF9wYWNrZXRfZXh0KEFWUGFja2V0ICpwa3QsIHVpbnQ4X3QgKmJ1ZiwgaW50 IGxlbikgew0KPiA+KyAgICBpZiAoIWJ1ZiB8fCAobGVuIDw9IDApKQ0KPiA+KyAgICAgICAgcmV0 dXJuIDA7DQo+ID4rDQo+PiArICAgIGlmIChwa3QtPmV4dCA9PSBidWYpIHsNCj4+ICsgICAgICAg IHBrdC0+ZXh0bGVuID0gbGVuOw0KPj4gKyAgICAgICAgcmV0dXJuIDA7DQo+PiArICAgIH0NCj4+ ICsNCj4+ICsgICAgcGt0LT5leHQgPSBhdl9tYWxsb2MobGVuKTsNCj4+ICsgICAgcGt0LT5leHRs ZW4gPSBsZW47DQo+PiArICAgICh2b2lkKW1lbWNweShwa3QtPmV4dCwgYnVmLCBsZW4pOw0KPj4g Kw0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBhdl9jb3B5 X3BhY2tldF9leHQoQVZQYWNrZXQgKnBrdCwgY29uc3QgQVZQYWNrZXQgKnNyYykgew0KPj4gKyAg ICBwa3QtPmV4dCA9IE5VTEw7DQo+PiArICAgIHBrdC0+ZXh0bGVuID0gMDsNCj4+ICsNCj4+ICsg ICAgYXZfc2V0X3BhY2tldF9leHQocGt0LCBzcmMtPmV4dCwgc3JjLT5leHRsZW4pOw0KPj4gKw0K Pj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAgdm9pZCBhdl9zaHJpbmtfcGFja2V0 KEFWUGFja2V0ICpwa3QsIGludCBzaXplKSAgew0KPj4gICAgICBpZiAocGt0LT5zaXplIDw9IHNp emUpDQo+PiBAQCAtNDIyLDYgKzQ2NCw3IEBAIGludCBhdl9wYWNrZXRfY29weV9wcm9wcyhBVlBh Y2tldCAqZHN0LCBjb25zdCANCj4+IEFWUGFja2V0ICpzcmMpICB2b2lkIGF2X3BhY2tldF91bnJl ZihBVlBhY2tldCAqcGt0KSAgew0KPj4gICAgICBhdl9wYWNrZXRfZnJlZV9zaWRlX2RhdGEocGt0 KTsNCj4+ICsgICAgYXZfcGFja2V0X2ZyZWVfZXh0KHBrdCk7DQo+PiAgICAgIGF2X2J1ZmZlcl91 bnJlZigmcGt0LT5vcGFxdWVfcmVmKTsNCj4+ICAgICAgYXZfYnVmZmVyX3VucmVmKCZwa3QtPmJ1 Zik7DQo+PiAgICAgIGdldF9wYWNrZXRfZGVmYXVsdHMocGt0KTsNCj4+IEBAIC00NTYsNiArNDk5 LDcgQEAgaW50IGF2X3BhY2tldF9yZWYoQVZQYWNrZXQgKmRzdCwgY29uc3QgQVZQYWNrZXQgKnNy YykNCj4+ICAgICAgfQ0KPj4gIA0KPj4gICAgICBkc3QtPnNpemUgPSBzcmMtPnNpemU7DQo+PiAr ICAgIGF2X2NvcHlfcGFja2V0X2V4dChkc3QsIHNyYyk7DQo+PiAgDQo+PiAgICAgIHJldHVybiAw Ow0KPj4gIGZhaWw6DQo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9wYWNrZXQuaCBiL2xpYmF2 Y29kZWMvcGFja2V0LmggaW5kZXggDQo+PiA0MDRkNTIwLi4xMzdkMWZhIDEwMDY0NA0KPj4gLS0t IGEvbGliYXZjb2RlYy9wYWNrZXQuaA0KPj4gKysrIGIvbGliYXZjb2RlYy9wYWNrZXQuaA0KPj4g QEAgLTM3NCw2ICszNzQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgQVZQYWNrZXQgew0KPj4gICAgICB1 aW50OF90ICpkYXRhOw0KPj4gICAgICBpbnQgICBzaXplOw0KPj4gICAgICBpbnQgICBzdHJlYW1f aW5kZXg7DQo+PiArDQo+PiArICAgIC8qKg0KPj4gKyAgICAgKiBFeHRlbnNpb24gaGVhZGVyIGRh dGEgYW5kIHNpemUNCj4+ICsgICAgICovDQo+PiArICAgIHVpbnQ4X3QgKmV4dDsNCj4+ICsgICAg dWludDMyX3QgZXh0bGVuOw0KPj4gKw0KPj4gICAgICAvKioNCj4+ICAgICAgICogQSBjb21iaW5h dGlvbiBvZiBBVl9QS1RfRkxBRyB2YWx1ZXMNCj4+ICAgICAgICovDQo+PiBAQCAtNTIzLDYgKzUz MCwxNiBAQCB2b2lkIGF2X2luaXRfcGFja2V0KEFWUGFja2V0ICpwa3QpOyAgaW50IA0KPj4gYXZf bmV3X3BhY2tldChBVlBhY2tldCAqcGt0LCBpbnQgc2l6ZSk7DQo+PiAgDQo+PiAgLyoqDQo+PiAr ICogQWxsb2NhdGUgdGhlIGV4dCBkYXRhIGZyb20gYnVmIHdpdGggbGVuIGxlbmdodC4NCj4+ICsg KiBNYWtlIHN1cmUgcGt0LT5leHQgaXMgbnVsbCwgb3RoZXJ3aXNlIGNhdXNlIG1lbW9yeSBsZWFr Lg0KPj4gKyAqDQo+PiArICogQHBhcmFtIHBrdCBwYWNrZXQNCj4+ICsgKiBAcGFyYW0gYnVmIGJ1 ZmZlciB3aXRoIGV4dCBkYXRhDQo+PiArICogQHBhcmFtIGxlbiBidWZmZXIgc2l6ZQ0KPj4gKyAq Lw0KPj4gK2ludCBhdl9zZXRfcGFja2V0X2V4dChBVlBhY2tldCAqcGt0LCB1aW50OF90ICpidWYs IGludCBsZW4pOw0KPj4gKw0KPj4gKy8qKg0KPj4gICAqIFJlZHVjZSBwYWNrZXQgc2l6ZSwgY29y cmVjdGx5IHplcm9pbmcgcGFkZGluZw0KPj4gICAqDQo+PiAgICogQHBhcmFtIHBrdCBwYWNrZXQN Cj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9kZW11eC5jIGIvbGliYXZmb3JtYXQvZGVtdXgu YyBpbmRleCANCj4+IDE2MjA3MTYuLjJhOGIyMDEgMTAwNjQ0DQo+PiAtLS0gYS9saWJhdmZvcm1h dC9kZW11eC5jDQo+PiArKysgYi9saWJhdmZvcm1hdC9kZW11eC5jDQo+PiBAQCAtMTE3NSw2ICsx MTc1LDEzIEBAIHN0YXRpYyBpbnQgcGFyc2VfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQ YWNrZXQgKnBrdCwNCj4+ICAgICAgICAgICAgICBwa3QtPnNpZGVfZGF0YV9lbGVtcyAgICA9IDA7 DQo+PiAgICAgICAgICB9DQo+PiAgDQo+PiArICAgICAgICBpZiAocGt0LT5leHRsZW4gPiAwKSB7 DQo+PiArICAgICAgICAgICAgb3V0X3BrdC0+ZXh0bGVuID0gcGt0LT5leHRsZW47DQo+PiArICAg ICAgICAgICAgb3V0X3BrdC0+ZXh0ID0gcGt0LT5leHQ7DQo+PiArICAgICAgICAgICAgcGt0LT5l eHRsZW4gPSAwOw0KPj4gKyAgICAgICAgICAgIHBrdC0+ZXh0ID0gTlVMTDsNCj4+ICsgICAgICAg IH0NCj4+ICsNCj4+ICAgICAgICAgIC8qIHNldCB0aGUgZHVyYXRpb24gKi8NCj4+ICAgICAgICAg IG91dF9wa3QtPmR1cmF0aW9uID0gKHN0aS0+cGFyc2VyLT5mbGFncyAmIFBBUlNFUl9GTEFHX0NP TVBMRVRFX0ZSQU1FUykgPyBwa3QtPmR1cmF0aW9uIDogMDsNCj4+ICAgICAgICAgIGlmIChzdC0+ Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSB7IGRpZmYgDQo+PiAt LWdpdCBhL2xpYmF2Zm9ybWF0L3J0cGRlYy5jIGIvbGliYXZmb3JtYXQvcnRwZGVjLmMgaW5kZXgg DQo+PiBmYTc1NDRjLi4yYTUzOWUwIDEwMDY0NA0KPj4gLS0tIGEvbGliYXZmb3JtYXQvcnRwZGVj LmMNCj4+ICsrKyBiL2xpYmF2Zm9ybWF0L3J0cGRlYy5jDQo+PiBAQCAtNjk5LDEzICs2OTksMTQg QEAgc3RhdGljIGludCANCj4+IHJ0cF9wYXJzZV9wYWNrZXRfaW50ZXJuYWwoUlRQRGVtdXhDb250 ZXh0ICpzLCBBVlBhY2tldCAqcGt0LCAgew0KPj4gICAgICB1bnNpZ25lZCBpbnQgc3NyYzsNCj4+ ICAgICAgaW50IHBheWxvYWRfdHlwZSwgc2VxLCBmbGFncyA9IDA7DQo+PiAtICAgIGludCBleHQs IGNzcmM7DQo+PiArICAgIGludCBoYXNfZXh0LCBjc3JjLCBleHRsZW47DQo+PiArICAgIHVpbnQ4 X3QgKmV4dGJ1ZjsNCj4+ICAgICAgQVZTdHJlYW0gKnN0Ow0KPj4gICAgICB1aW50MzJfdCB0aW1l c3RhbXA7DQo+PiAgICAgIGludCBydiA9IDA7DQo+PiAgDQo+PiAgICAgIGNzcmMgICAgICAgICA9 IGJ1ZlswXSAmIDB4MGY7DQo+PiAtICAgIGV4dCAgICAgICAgICA9IGJ1ZlswXSAmIDB4MTA7DQo+ PiArICAgIGhhc19leHQgICAgICA9IGJ1ZlswXSAmIDB4MTA7DQo+PiAgICAgIHBheWxvYWRfdHlw ZSA9IGJ1ZlsxXSAmIDB4N2Y7DQo+PiAgICAgIGlmIChidWZbMV0gJiAweDgwKQ0KPj4gICAgICAg ICAgZmxhZ3MgfD0gUlRQX0ZMQUdfTUFSS0VSOw0KPj4gQEAgLTc0NCwxOCArNzQ1LDI1IEBAIHN0 YXRpYyBpbnQgcnRwX3BhcnNlX3BhY2tldF9pbnRlcm5hbChSVFBEZW11eENvbnRleHQgKnMsIEFW UGFja2V0ICpwa3QsDQo+PiAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsNCj4+ ICANCj4+ICAgICAgLyogUkZDIDM1NTAgU2VjdGlvbiA1LjMuMSBSVFAgSGVhZGVyIEV4dGVuc2lv biBoYW5kbGluZyAqLw0KPj4gLSAgICBpZiAoZXh0KSB7DQo+PiArICAgIGlmIChoYXNfZXh0KSB7 DQo+PiAgICAgICAgICBpZiAobGVuIDwgNCkNCj4+ICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ PiAgICAgICAgICAvKiBjYWxjdWxhdGUgdGhlIGhlYWRlciBleHRlbnNpb24gbGVuZ3RoIChzdG9y ZWQgYXMgbnVtYmVyDQo+PiAgICAgICAgICAgKiBvZiAzMi1iaXQgd29yZHMpICovDQo+PiAtICAg ICAgICBleHQgPSAoQVZfUkIxNihidWYgKyAyKSArIDEpIDw8IDI7DQo+PiArICAgICAgICBleHRs ZW4gPSAoQVZfUkIxNihidWYgKyAyKSArIDEpIDw8IDI7DQo+PiAgDQo+PiAtICAgICAgICBpZiAo bGVuIDwgZXh0KQ0KPj4gKyAgICAgICAgaWYgKGxlbiA8IGV4dGxlbikNCj4+ICAgICAgICAgICAg ICByZXR1cm4gLTE7DQo+PiAtICAgICAgICAvLyBza2lwIHBhc3QgUlRQIGhlYWRlciBleHRlbnNp b24NCj4+IC0gICAgICAgIGxlbiAtPSBleHQ7DQo+PiAtICAgICAgICBidWYgKz0gZXh0Ow0KPj4g Kw0KPj4gKyAgICAgICAgIC8vIFNhdmUgUlRQIGhlYWRlciBleHRlbnNpb24gZGF0YQ0KPj4gKyAg ICAgICAgaWYgKGV4dGxlbiA+PiAwKSB7DQo+PiArICAgICAgICAgICAgZXh0YnVmID0gYXZfbWFs bG9jKGV4dGxlbik7DQo+PiArICAgICAgICAgICAgaWYgKGV4dGJ1ZikNCj4+ICsgICAgICAgICAg ICAgICAgKHZvaWQpbWVtY3B5KGV4dGJ1ZiwgYnVmLCBleHRsZW4pOw0KPj4gKyAgICAgICAgfQ0K Pj4gKw0KPj4gKyAgICAgICAgbGVuIC09IGV4dGxlbjsNCj4+ICsgICAgICAgIGJ1ZiArPSBleHRs ZW47DQo+PiAgICAgIH0NCj4+ICANCj4+ICAgICAgaWYgKHMtPj5oYW5kbGVyICYmIHMtPj5oYW5k bGVyLT4+cGFyc2VfcGFja2V0KSB7IEBAIC03NjMsMTQgKzc3MSwyNSANCj4+IEBAIHN0YXRpYyBp bnQgcnRwX3BhcnNlX3BhY2tldF9pbnRlcm5hbChSVFBEZW11eENvbnRleHQgKnMsIEFWUGFja2V0 ICpwa3QsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT4+c3Qs IHBrdCwgJnRpbWVzdGFtcCwgYnVmLCBsZW4sIHNlcSwNCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZsYWdzKTsNCj4+ICAgICAgfSBlbHNlIGlmIChzdCkgew0KPj4g LSAgICAgICAgaWYgKChydiA9IGF2X25ld19wYWNrZXQocGt0LCBsZW4pKSA8IDApDQo+PiArICAg ICAgICBpZiAoKHJ2ID0gYXZfbmV3X3BhY2tldChwa3QsIGxlbikpIDwgMCkgew0KPj4gKyAgICAg ICAgICAgIGlmICgoZXh0bGVuID4+IDApICYmIGV4dGJ1ZikNCj4+ICsgICAgICAgICAgICAgICAg YXZfZnJlZShleHRidWYpOw0KPj4gICAgICAgICAgICAgIHJldHVybiBydjsNCj4+ICsgICAgICAg IH0NCj4+ICAgICAgICAgIG1lbWNweShwa3QtPj5kYXRhLCBidWYsIGxlbik7DQo+PiAgICAgICAg ICBwa3QtPj5zdHJlYW1faW5kZXggPSBzdC0+PmluZGV4Ow0KPj4gICAgICB9IGVsc2Ugew0KPj4g KyAgICAgICAgaWYgKChleHRsZW4gPj4gMCkgJiYgZXh0YnVmKQ0KPj4gKyAgICAgICAgICAgIGF2 X2ZyZWUoZXh0YnVmKTsNCj4+ICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7DQo+PiAg ICAgIH0NCj4+ICANCj4+ICsgICAgLy8gYXR0YWNoIGV4dCBkYXRhDQo+PiArICAgIGlmICgoZXh0 bGVuID4+IDApICYmIGV4dGJ1Zikgew0KPj4gKyAgICAgICAgYXZfc2V0X3BhY2tldF9leHQocGt0 LCBleHRidWYsIGV4dGxlbik7DQo+PiArICAgICAgICBhdl9mcmVlKGV4dGJ1Zik7DQo+PiArICAg IH0NCj4+ICsNCj4+ICAgICAgLy8gbm93IHBlcmZvcm0gdGltZXN0YW1wIHRoaW5ncy4uLi4NCj4+ ICAgICAgZmluYWxpemVfcGFja2V0KHMsIHBrdCwgdGltZXN0YW1wKTsNCj4+ICANCg0KPjEuIEFk ZGluZyBzb21ldGhpbmcgaW4gdGhlIG1pZGRsZSBvZiBhIHB1YmxpYyBzdHJ1Y3QgaXMgYW4gQUJJ IGJyZWFrLg0KPjIuIEN1cnJlbnRseSBzaXplb2YoQVZQYWNrZXQpIGlzIHN0aWxsIHBhcnQgb2Yg dGhlIHB1YmxpYyBBQkksIHNvIG9uZSBjYW4ndCBldmVuIGFkZCBzb21ldGhpbmcgYWRkIHRoZSBl bmQgb2YgQVZQYWNrZXQuDQo+My4gQnV0IGl0IGRvZXNuJ3QgbWF0dGVyLCBiZWNhdXNlIHN1Y2gg c3R1ZmYgYmVsb25ncyBpbnRvIHBhY2tldCBzaWRlIGRhdGEuDQo+NC4gVGhlIGFsbG9jYXRpb24g aW4gYXZfc2V0X3BhY2tldF9leHQoKSBpcyB1bmNoZWNrZWQuDQo+NS4gRG9uJ3QgY2FzdCB0aGUg cmV0dXJuIHZhbHVlIG9mIG1lbWNweSgpIHRvIHZvaWQuDQo+Ni4gVGhlcmUgaXMgYSBwcm9ibGVt IHdpdGggcGFyc2VfcGFja2V0KCk6IEluIGNhc2UgdGhlIHBhcnNlciBhZGRzIGRlbGF5LCB0aGUg c2lkZSBkYXRhIGFuZCAoaWYgdGhpcyBwYXRjaCB3ZXJlIG1lcmdlZCBhcy1pcykgYWxzbyB5b3Vy IGV4dGVuc2lvbiBoZWFkZXIgZGF0YSB3aWxsIGVuZCB1cCB3aXRoIHRoZSB3cm9uZyBwYWNrZXQg KGlmIHlvdXIgcGFyc2VyIGFkZHMgYSBvbmUtcGFja2V0IGRlbGF5LCB0aGVuIHBhY2tldCBuIHdp bGwgZW5kIHVwIHdpdGggdGhlIHNpZGUgZGF0YSBmb3IgcGFja2V0IG4gKyAxKS4gVGhlIHJlYXNv biBmb3IgdGhpcyBpcyB0aGF0IHRoZSBwYXJzaW5nIEFQSSBpcyBhbmNpZW50IGFuZCBkaXJlY3Rs eSB3b3JrcyB3aXRoIGJ1ZmZlcnMgYW5kIG5vdCB3aXRoIEFWUGFja2V0cy4NCg0KPi0gQW5kcmVh cw0KMS4gQWRkaW5nIHNvbWV0aGluZyBpbiB0aGUgbWlkZGxlIG9mIGEgcHVibGljIHN0cnVjdCBp cyBhbiBBQkkgYnJlYWsuDQogIC0tRG8geW91IGhhdmUgYW55IGdvb2QgYWR2aWNlPw0KDQo2LiBU aGVyZSBpcyBhIHByb2JsZW0gd2l0aCBwYXJzZV9wYWNrZXQoKTogSW4gY2FzZSB0aGUgcGFyc2Vy IGFkZHMgZGVsYXksIHRoZSBzaWRlIGRhdGEgYW5kIChpZiB0aGlzIHBhdGNoIHdlcmUgbWVyZ2Vk IGFzLWlzKSBhbHNvIHlvdXIgZXh0ZW5zaW9uIGhlYWRlciBkYXRhIHdpbGwgZW5kIHVwIHdpdGgg dGhlIHdyb25nIHBhY2tldCAoaWYgeW91ciBwYXJzZXIgYWRkcyBhIG9uZS1wYWNrZXQgZGVsYXks IHRoZW4gcGFja2V0IG4gd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2lkZSBkYXRhIGZvciBwYWNrZXQg biArIDEpLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgdGhlIHBhcnNpbmcgQVBJIGlzIGFu Y2llbnQgYW5kIGRpcmVjdGx5IHdvcmtzIHdpdGggYnVmZmVycyBhbmQgbm90IHdpdGggQVZQYWNr ZXRzLg0KICAtLU9ubHkgcGFyc2VzIGFuZCBvYnRhaW5zIHRoZSBidWZmZXIuIFRoZSBjYWxsZXIg ZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBidWZmZXIgaXMgY29ycmVjdC4NCg0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QNCmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwNCg0KVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsIGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3Jn Cmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5z dWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0 QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==