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 ESMTPS id 41CD84D934 for ; Wed, 26 Feb 2025 16:22:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ABF5E68C8D5; Wed, 26 Feb 2025 18:22:30 +0200 (EET) Received: from vidala.pars.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AD4568C720 for ; Wed, 26 Feb 2025 18:22:23 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; s=202405r; d=lynne.ee; c=relaxed/relaxed; h=From:To:Subject:Date:Message-ID; t=1740586942; bh=+UL30XnI2DEMxeOIpEXhyN2 /X7vPUo0YYfuubk1vO8c=; b=ohF/EBsMATQbuGlA8mll5vV0cfX6DFevWQnQPzq8+89JMQL8lH TpptSCP5QC1y9JGz2OhSsd3cDOl9zoIYmZlM3m7QjN/LOeIZTm6KV+bHqfrxKnoG6c/LIilnkTZ bImGqWeD0bgtNtuhJCa8DJoyL1F3MYrtD3167jOh0MXUR6bkI58iatl3iWSQ9pef7pdJ/jKDwq5 dM6O3fyUP4Q5iL5L+Zvsf3TgxLnBSuuJXKg+XW7WEO1uX+Wf3YymL2022fg0zaczN5Xl/DCXPmg S7vsoEBrWrQCUpaOjKb7VQ+xxaRUan5G0467hyIz9HQG2EsxSV9KpImcnb3+6hA2FbQ==; DKIM-Signature: v=1; a=ed25519-sha256; s=202405e; d=lynne.ee; c=relaxed/relaxed; h=From:To:Subject:Date:Message-ID; t=1740586942; bh=+UL30XnI2DEMxeOIpEXhyN2 /X7vPUo0YYfuubk1vO8c=; b=w2oTiPYEEeHtZAcaBLmLOPXy6NzH6n8hIHX2sT0RuOVvkxrGwE oKbcR51C3ZTvJE2SOhq5dxSf+SGpyRD6LKAw==; Message-ID: <78404d16-8065-4df5-8826-923bb001824e@lynne.ee> Date: Wed, 26 Feb 2025 17:22:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: FFmpeg development discussions and patches References: <20250208041258.217102-1-dev@lynne.ee> <20250208041258.217102-2-dev@lynne.ee> Content-Language: en-US From: Lynne Autocrypt: addr=dev@lynne.ee; keydata= xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6Hljr9mYvN FEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUC XnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi/qXwPwNEZOTWAQCSNEA+kZLI NZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff0c28efI02S6iMxazrpdWGHqHk7JN7pCj nt397wzOOARecUbcEgorBgEEAZdVAQUBAQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S 7/zSaX8DAQgHwngEGBYIACAWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi /qXwPwNEZKaxAQCHLV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY3 0LsmqR3sPQ0BJ1UFVZA5BUoIJPJZWwg= In-Reply-To: <20250208041258.217102-2-dev@lynne.ee> Subject: Re: [FFmpeg-devel] [PATCH 2/2] aacenc: remove support for AAC LTP profile 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 Content-Type: multipart/mixed; boundary="===============4494284952863317319==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============4494284952863317319== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------y9bscBUhjIqCehCOs9u2IbaH" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------y9bscBUhjIqCehCOs9u2IbaH Content-Type: multipart/mixed; boundary="------------RuXZMP7UiQiW3Uk8yM8IuJxa"; protected-headers="v1" From: Lynne To: FFmpeg development discussions and patches Message-ID: <78404d16-8065-4df5-8826-923bb001824e@lynne.ee> Subject: Re: [PATCH 2/2] aacenc: remove support for AAC LTP profile References: <20250208041258.217102-1-dev@lynne.ee> <20250208041258.217102-2-dev@lynne.ee> In-Reply-To: <20250208041258.217102-2-dev@lynne.ee> --------------RuXZMP7UiQiW3Uk8yM8IuJxa Content-Type: multipart/mixed; boundary="------------CUUBa2wuB1IBb1knbR8M9U1G" --------------CUUBa2wuB1IBb1knbR8M9U1G Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 UHVzaGVkIHRoZXNlIHR3byBwYXRjaGVzLCBhbG9uZyB3aXRoIHRoZSBwYXRjaCB0byByZW1v dmUgdGhlIEFSTlIgY29kZXIuDQoNClRoZSBwYXRjaCB0byBtb3ZlIHRoZSBlbmNvZGVyIGlu dG8gbGliYXZjb2RlYy9hYWMvIHdpbGwgYmUgcmVzZW50Lg0KDQpPbiAwOC8wMi8yMDI1IDA1 OjEyLCBMeW5uZSB3cm90ZToNCj4gVGhlIExUUCBwcm9maWxlIG9mIEFBQyBpcy4uLiB0ZXJy aWJsZS4NCj4gSXQgd2FzIGFuIGVhcmx5IDkwJ3MgYXR0ZW1wdCBhdCBicmlkZ2luZyB0aGUg Z2FwIGJldHdlZW4gc3BlZWNoDQo+IGNvZGVjcyBhbmQgZ2VuZXJhbCBwdXJwb3NlIGNvZGVj cy4gSXQgZGlkIHNvIGJ5IHRyeWluZyB0byBleHBsb2l0IHRoZSBmYWN0DQo+IHRoYXQgbW9z dCBzcGVlY2ggcGF0dGVybnMgYXJlIHJlZ3VsYXIuDQo+IA0KPiBVbmZvcnR1bmF0ZWx5LCBp dCB3ZW50IGFib3V0IGl0IHRoZSBzYW1lIHdheSBhcyBBQUMgTWFpbiwgYnkgdGFraW5nDQo+ IHRoZSBwcmV2aW91cyBmcmFtZSdzIHNhbXBsZXMsIG1vZGlmeWluZyB0aGVtIHRocm91Z2gg YW4gTFBDIGZpbHRlciwNCj4gdHJhbnNmb3JtaW5nIHRoZW0gYmFjayB1c2luZyBhIGZvcndh cmQgTURDVCwgcHV0dGluZyB0aGUgb3V0cHV0DQo+IGNvZWZmaWNpZW50cyBiYWNrIGludG8g dGhlIGN1cnJlbnQgZnJhbWUsIGFuZCB1c2luZyBkZWx0YSBjb2RpbmcuDQo+IEJ1dCBvbmNl IGFnYWluLCB0aGV5IGlnbm9yZWQgYmFzaWMgbWF0aGVtYXRpY3MgYW5kIE1EQ1QgbGVha2Fn ZS4NCj4gVGhhbmtmdWxseSwgYmVjYXVzZSBBQUMgTFRQIGlzIG1lYW50IHRvIG9wZXJhdGUg YXQgdmVyeSBsb3cgYml0cmF0ZXMsDQo+IHRoZSBleHRyZW1lIHF1YW50aXphdGlvbiByZXN1 bHRzIGluIG1vc3QgbGVha2FnZSBiZWluZyBpcnJlbGV2YW50Lg0KPiANCj4gVW5mb3J0dW5h dGVseSwgdGhlIHJlc3VsdCBpcyB0aGF0IHRoZSBvdXRwdXQgc291bmRzIHByZXR0eSBtdWNo DQo+IHRlcnJpYmxlIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBMVFAgaXMgZW5hYmxlZCBvciBu b3QuDQo+IA0KPiBUaGlzIHdhcyB0aGUgZmlyc3QgYXR0ZW1wdCBhdCB0cnlpbmcgdG8gY291 cGxlIHNwZWVjaCBjb2RpbmcgaW50byBBQUMuDQo+IE5vLCB0aGUgc2Vjb25kIGF0dGVtcHQg ZGlkIG5vdCBzdWNjZWVkIGVpdGhlci4NCj4gTm5ubmVpdGhlciBkaWQgdGhlIHRoaXJkLiBP ciBmb3VydGguDQo+IA0KPiBGb3IgdGhlIGZpZnRoIG9uZSwgdGhleSBsaXRlcmFsbHkganVz dCBqYW1tZWQgYSBzcGVlY2ggY29kZWMgaW50byBBQUMNCj4gd2l0aCBVU0FDIG9uY2UgdGhl eSBzYXcgT3B1cyBkbyBpdC4NCj4gDQo+IEp1c3QgZHJvcCBzdXBwb3J0IGZvciBlbmNvZGlu ZyBBQUMgTFRQLiBJdCB3YXMgYWx3YXlzIGV4cGVyaW1lbnRhbA0KPiB0byBiZWdpbiB3aXRo Lg0KPiAtLS0NCj4gICBsaWJhdmNvZGVjL01ha2VmaWxlICAgICB8ICAgMSAtDQo+ICAgbGli YXZjb2RlYy9hYWNjb2Rlci5jICAgfCAgMTYgLS0tDQo+ICAgbGliYXZjb2RlYy9hYWNlbmMu YyAgICAgfCAgNDEgKy0tLS0tLQ0KPiAgIGxpYmF2Y29kZWMvYWFjZW5jLmggICAgIHwgIDIw IC0tLS0NCj4gICBsaWJhdmNvZGVjL2FhY2VuY19sdHAuYyB8IDIzNiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgbGliYXZjb2RlYy9hYWNlbmNfbHRw LmggfCAgNDEgLS0tLS0tLQ0KPiAgIGxpYmF2Y29kZWMvYWFjZW5jdGFiLmggIHwgICAxIC0N Cj4gICA3IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzNTUgZGVsZXRpb25zKC0p DQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvYWFjZW5jX2x0cC5jDQo+ICAg ZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvYWFjZW5jX2x0cC5oDQo+IA0KPiBkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUNCj4g aW5kZXggODJmYzljOWRjNi4uNDk5ZjgyNjYzNSAxMDA2NDQNCj4gLS0tIGEvbGliYXZjb2Rl Yy9NYWtlZmlsZQ0KPiArKysgYi9saWJhdmNvZGVjL01ha2VmaWxlDQo+IEBAIC0xOTgsNyAr MTk4LDYgQEAgT0JKUy0kKENPTkZJR19BQUNfRU5DT0RFUikgICAgICAgICAgICAgKz0gYWFj ZW5jLm8gYWFjY29kZXIubyBhYWNlbmN0YWIubyAgICBcDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWFjcHN5Lm8gYWFjdGFiLm8gICAgICBcDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWFjZW5jX2lz Lm8gXA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFh Y2VuY190bnMubyBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhYWNlbmNfbHRwLm8gXA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBzeW1vZGVsLm8ga2Jkd2luLm8gXA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wZWc0YXVkaW9fc2FtcGxlX3JhdGVzLm8N Cj4gICBPQkpTLSQoQ09ORklHX0FBQ19NRURJQUNPREVDX0RFQ09ERVIpICArPSBtZWRpYWNv ZGVjZGVjLm8NCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFjY29kZXIuYyBiL2xpYmF2 Y29kZWMvYWFjY29kZXIuYw0KPiBpbmRleCAxOTk5ZjU4OGU0Li40NzhlZGE4NmYzIDEwMDY0 NA0KPiAtLS0gYS9saWJhdmNvZGVjL2FhY2NvZGVyLmMNCj4gKysrIGIvbGliYXZjb2RlYy9h YWNjb2Rlci5jDQo+IEBAIC00Nyw3ICs0Nyw2IEBADQo+ICAgDQo+ICAgI2luY2x1ZGUgImFh Y2VuY19pcy5oIg0KPiAgICNpbmNsdWRlICJhYWNlbmNfdG5zLmgiDQo+IC0jaW5jbHVkZSAi YWFjZW5jX2x0cC5oIg0KPiAgIA0KPiAgICNpbmNsdWRlICJsaWJhdmNvZGVjL2FhY2NvZGVy X3R3b2xvb3AuaCINCj4gICANCj4gQEAgLTExMjEsMTYgKzExMjAsMTEgQEAgY29uc3QgQUFD Q29lZmZpY2llbnRzRW5jb2RlciBmZl9hYWNfY29kZXJzW0FBQ19DT0RFUl9OQl0gPSB7DQo+ ICAgICAgICAgICBlbmNvZGVfd2luZG93X2JhbmRzX2luZm8sDQo+ICAgICAgICAgICBxdWFu dGl6ZV9hbmRfZW5jb2RlX2JhbmQsDQo+ICAgICAgICAgICBmZl9hYWNfZW5jb2RlX3Ruc19p bmZvLA0KPiAtICAgICAgICBmZl9hYWNfZW5jb2RlX2x0cF9pbmZvLA0KPiAtICAgICAgICBm Zl9hYWNfYWRqdXN0X2NvbW1vbl9sdHAsDQo+ICAgICAgICAgICBmZl9hYWNfYXBwbHlfdG5z LA0KPiAtICAgICAgICBmZl9hYWNfdXBkYXRlX2x0cCwNCj4gLSAgICAgICAgZmZfYWFjX2x0 cF9pbnNlcnRfbmV3X2ZyYW1lLA0KPiAgICAgICAgICAgc2V0X3NwZWNpYWxfYmFuZF9zY2Fs ZWZhY3RvcnMsDQo+ICAgICAgICAgICBzZWFyY2hfZm9yX3BucywNCj4gICAgICAgICAgIG1h cmtfcG5zLA0KPiAgICAgICAgICAgZmZfYWFjX3NlYXJjaF9mb3JfdG5zLA0KPiAtICAgICAg ICBmZl9hYWNfc2VhcmNoX2Zvcl9sdHAsDQo+ICAgICAgICAgICBzZWFyY2hfZm9yX21zLA0K PiAgICAgICAgICAgZmZfYWFjX3NlYXJjaF9mb3JfaXMsDQo+ICAgICAgIH0sDQo+IEBAIC0x MTM5LDE2ICsxMTMzLDExIEBAIGNvbnN0IEFBQ0NvZWZmaWNpZW50c0VuY29kZXIgZmZfYWFj X2NvZGVyc1tBQUNfQ09ERVJfTkJdID0gew0KPiAgICAgICAgICAgY29kZWJvb2tfdHJlbGxp c19yYXRlLA0KPiAgICAgICAgICAgcXVhbnRpemVfYW5kX2VuY29kZV9iYW5kLA0KPiAgICAg ICAgICAgZmZfYWFjX2VuY29kZV90bnNfaW5mbywNCj4gLSAgICAgICAgZmZfYWFjX2VuY29k ZV9sdHBfaW5mbywNCj4gLSAgICAgICAgZmZfYWFjX2FkanVzdF9jb21tb25fbHRwLA0KPiAg ICAgICAgICAgZmZfYWFjX2FwcGx5X3RucywNCj4gLSAgICAgICAgZmZfYWFjX3VwZGF0ZV9s dHAsDQo+IC0gICAgICAgIGZmX2FhY19sdHBfaW5zZXJ0X25ld19mcmFtZSwNCj4gICAgICAg ICAgIHNldF9zcGVjaWFsX2JhbmRfc2NhbGVmYWN0b3JzLA0KPiAgICAgICAgICAgc2VhcmNo X2Zvcl9wbnMsDQo+ICAgICAgICAgICBtYXJrX3BucywNCj4gICAgICAgICAgIGZmX2FhY19z ZWFyY2hfZm9yX3RucywNCj4gLSAgICAgICAgZmZfYWFjX3NlYXJjaF9mb3JfbHRwLA0KPiAg ICAgICAgICAgc2VhcmNoX2Zvcl9tcywNCj4gICAgICAgICAgIGZmX2FhY19zZWFyY2hfZm9y X2lzLA0KPiAgICAgICB9LA0KPiBAQCAtMTE1NywxNiArMTE0NiwxMSBAQCBjb25zdCBBQUND b2VmZmljaWVudHNFbmNvZGVyIGZmX2FhY19jb2RlcnNbQUFDX0NPREVSX05CXSA9IHsNCj4g ICAgICAgICAgIGNvZGVib29rX3RyZWxsaXNfcmF0ZSwNCj4gICAgICAgICAgIHF1YW50aXpl X2FuZF9lbmNvZGVfYmFuZCwNCj4gICAgICAgICAgIGZmX2FhY19lbmNvZGVfdG5zX2luZm8s DQo+IC0gICAgICAgIGZmX2FhY19lbmNvZGVfbHRwX2luZm8sDQo+IC0gICAgICAgIGZmX2Fh Y19hZGp1c3RfY29tbW9uX2x0cCwNCj4gICAgICAgICAgIGZmX2FhY19hcHBseV90bnMsDQo+ IC0gICAgICAgIGZmX2FhY191cGRhdGVfbHRwLA0KPiAtICAgICAgICBmZl9hYWNfbHRwX2lu c2VydF9uZXdfZnJhbWUsDQo+ICAgICAgICAgICBzZXRfc3BlY2lhbF9iYW5kX3NjYWxlZmFj dG9ycywNCj4gICAgICAgICAgIHNlYXJjaF9mb3JfcG5zLA0KPiAgICAgICAgICAgbWFya19w bnMsDQo+ICAgICAgICAgICBmZl9hYWNfc2VhcmNoX2Zvcl90bnMsDQo+IC0gICAgICAgIGZm X2FhY19zZWFyY2hfZm9yX2x0cCwNCj4gICAgICAgICAgIHNlYXJjaF9mb3JfbXMsDQo+ICAg ICAgICAgICBmZl9hYWNfc2VhcmNoX2Zvcl9pcywNCj4gICAgICAgfSwNCj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYWFjZW5jLmMgYi9saWJhdmNvZGVjL2FhY2VuYy5jDQo+IGluZGV4 IGYxYmMwNzhjYjAuLjVlZDU0ZGJjYjMgMTAwNjQ0DQo+IC0tLSBhL2xpYmF2Y29kZWMvYWFj ZW5jLmMNCj4gKysrIGIvbGliYXZjb2RlYy9hYWNlbmMuYw0KPiBAQCAtNzYyLDExICs3NjIs OCBAQCBzdGF0aWMgaW50IGVuY29kZV9pbmRpdmlkdWFsX2NoYW5uZWwoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBBQUNFbmNDb250ZXh0ICpzLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgY29tbW9uX3dpbmRvdykNCj4gICB7DQo+ICAgICAgIHB1 dF9iaXRzKCZzLT5wYiwgOCwgc2NlLT5zZl9pZHhbMF0pOw0KPiAtICAgIGlmICghY29tbW9u X3dpbmRvdykgew0KPiArICAgIGlmICghY29tbW9uX3dpbmRvdykNCj4gICAgICAgICAgIHB1 dF9pY3NfaW5mbyhzLCAmc2NlLT5pY3MpOw0KPiAtICAgICAgICBpZiAocy0+Y29kZXItPmVu Y29kZV9sdHBfaW5mbykNCj4gLSAgICAgICAgICAgIHMtPmNvZGVyLT5lbmNvZGVfbHRwX2lu Zm8ocywgc2NlLCAwKTsNCj4gLSAgICB9DQo+ICAgICAgIGVuY29kZV9iYW5kX2luZm8ocywg c2NlKTsNCj4gICAgICAgZW5jb2RlX3NjYWxlX2ZhY3RvcnMoYXZjdHgsIHMsIHNjZSk7DQo+ ICAgICAgIGVuY29kZV9wdWxzZXMocywgJnNjZS0+cHVsc2UpOw0KPiBAQCAtOTMzLDEyICs5 MzAsNiBAQCBzdGF0aWMgaW50IGFhY19lbmNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4LCBBVlBhY2tldCAqYXZwa3QsDQo+ICAgDQo+ICAgICAgICAgICAgICAgYXBwbHlfd2lu ZG93X2FuZF9tZGN0KHMsIHNjZSwgb3ZlcmxhcCk7DQo+ICAgDQo+IC0gICAgICAgICAgICBp ZiAocy0+b3B0aW9ucy5sdHAgJiYgcy0+Y29kZXItPnVwZGF0ZV9sdHApIHsNCj4gLSAgICAg ICAgICAgICAgICBzLT5jb2Rlci0+dXBkYXRlX2x0cChzLCBzY2UpOw0KPiAtICAgICAgICAg ICAgICAgIGFwcGx5X3dpbmRvd1tzY2UtPmljcy53aW5kb3dfc2VxdWVuY2VbMF1dKHMtPmZk c3AsIHNjZSwgJnNjZS0+bHRwX3N0YXRlWzBdKTsNCj4gLSAgICAgICAgICAgICAgICBzLT5t ZGN0MTAyNF9mbihzLT5tZGN0MTAyNCwgc2NlLT5sY29lZmZzLCBzY2UtPnJldF9idWYsIHNp emVvZihmbG9hdCkpOw0KPiAtICAgICAgICAgICAgfQ0KPiAtDQo+ICAgICAgICAgICAgICAg Zm9yIChrID0gMDsgayA8IDEwMjQ7IGsrKykgew0KPiAgICAgICAgICAgICAgICAgICBpZiAo IShmYWJzKGNwZS0+Y2hbY2hdLmNvZWZmc1trXSkgPCAxRTE2KSkgeyAvLyBFbnN1cmUgaGVh ZHJvb20gZm9yIGVuZXJneSBjYWxjdWxhdGlvbg0KPiAgICAgICAgICAgICAgICAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJJbnB1dCBjb250YWlucyAobmVhcikgTmFO LystSW5mXG4iKTsNCj4gQEAgLTk3NCw4ICs5NjUsNiBAQCBzdGF0aWMgaW50IGFhY19lbmNv ZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqYXZwa3QsDQo+ICAg ICAgICAgICAgICAgZm9yIChjaCA9IDA7IGNoIDwgY2hhbnM7IGNoKyspIHsNCj4gICAgICAg ICAgICAgICAgICAgc2NlID0gJmNwZS0+Y2hbY2hdOw0KPiAgICAgICAgICAgICAgICAgICBj b2VmZnNbY2hdID0gc2NlLT5jb2VmZnM7DQo+IC0gICAgICAgICAgICAgICAgc2NlLT5pY3Mu bHRwLnByZXNlbnQgPSAwOw0KPiAtICAgICAgICAgICAgICAgIG1lbXNldChzY2UtPmljcy5s dHAudXNlZCwgMCwgc2l6ZW9mKHNjZS0+aWNzLmx0cC51c2VkKSk7DQo+ICAgICAgICAgICAg ICAgICAgIG1lbXNldCgmc2NlLT50bnMsIDAsIHNpemVvZihUZW1wb3JhbE5vaXNlU2hhcGlu ZykpOw0KPiAgICAgICAgICAgICAgICAgICBmb3IgKHcgPSAwOyB3IDwgMTI4OyB3KyspDQo+ ICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NlLT5iYW5kX3R5cGVbd10gPiBSRVNFUlZF RF9CVCkNCj4gQEAgLTEwMzYsMjQgKzEwMjUsMTAgQEAgc3RhdGljIGludCBhYWNfZW5jb2Rl X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKmF2cGt0LA0KPiAgICAg ICAgICAgICAgICAgICBhcHBseV9taWRfc2lkZV9zdGVyZW8oY3BlKTsNCj4gICAgICAgICAg ICAgICB9DQo+ICAgICAgICAgICAgICAgYWRqdXN0X2ZyYW1lX2luZm9ybWF0aW9uKGNwZSwg Y2hhbnMpOw0KPiAtICAgICAgICAgICAgaWYgKHMtPm9wdGlvbnMubHRwKSB7IC8qIExUUCAq Lw0KPiAtICAgICAgICAgICAgICAgIGZvciAoY2ggPSAwOyBjaCA8IGNoYW5zOyBjaCsrKSB7 DQo+IC0gICAgICAgICAgICAgICAgICAgIHNjZSA9ICZjcGUtPmNoW2NoXTsNCj4gLSAgICAg ICAgICAgICAgICAgICAgcy0+Y3VyX2NoYW5uZWwgPSBzdGFydF9jaCArIGNoOw0KPiAtICAg ICAgICAgICAgICAgICAgICBpZiAocy0+Y29kZXItPnNlYXJjaF9mb3JfbHRwKQ0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgcy0+Y29kZXItPnNlYXJjaF9mb3JfbHRwKHMsIHNjZSwg Y3BlLT5jb21tb25fd2luZG93KTsNCj4gLSAgICAgICAgICAgICAgICAgICAgaWYgKHNjZS0+ aWNzLmx0cC5wcmVzZW50KSBwcmVkX21vZGUgPSAxOw0KPiAtICAgICAgICAgICAgICAgIH0N Cj4gLSAgICAgICAgICAgICAgICBzLT5jdXJfY2hhbm5lbCA9IHN0YXJ0X2NoOw0KPiAtICAg ICAgICAgICAgICAgIGlmIChzLT5jb2Rlci0+YWRqdXN0X2NvbW1vbl9sdHApDQo+IC0gICAg ICAgICAgICAgICAgICAgIHMtPmNvZGVyLT5hZGp1c3RfY29tbW9uX2x0cChzLCBjcGUpOw0K PiAtICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgIGlmIChjaGFucyA9PSAyKSB7DQo+ ICAgICAgICAgICAgICAgICAgIHB1dF9iaXRzKCZzLT5wYiwgMSwgY3BlLT5jb21tb25fd2lu ZG93KTsNCj4gICAgICAgICAgICAgICAgICAgaWYgKGNwZS0+Y29tbW9uX3dpbmRvdykgew0K PiAgICAgICAgICAgICAgICAgICAgICAgcHV0X2ljc19pbmZvKHMsICZjcGUtPmNoWzBdLmlj cyk7DQo+IC0gICAgICAgICAgICAgICAgICAgIGlmIChzLT5jb2Rlci0+ZW5jb2RlX2x0cF9p bmZvKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgcy0+Y29kZXItPmVuY29kZV9sdHBf aW5mbyhzLCAmY3BlLT5jaFswXSwgMSk7DQo+ICAgICAgICAgICAgICAgICAgICAgICBlbmNv ZGVfbXNfaW5mbygmcy0+cGIsIGNwZSk7DQo+ICAgICAgICAgICAgICAgICAgICAgICBpZiAo Y3BlLT5tc19tb2RlKSBtc19tb2RlID0gMTsNCj4gICAgICAgICAgICAgICAgICAgfQ0KPiBA QCAtMTEzOCw5ICsxMTEzLDYgQEAgc3RhdGljIGludCBhYWNfZW5jb2RlX2ZyYW1lKEFWQ29k ZWNDb250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKmF2cGt0LA0KPiAgICAgICAgICAgfQ0KPiAg ICAgICB9IHdoaWxlICgxKTsNCj4gICANCj4gLSAgICBpZiAocy0+b3B0aW9ucy5sdHAgJiYg cy0+Y29kZXItPmx0cF9pbnNlcnRfbmV3X2ZyYW1lKQ0KPiAtICAgICAgICBzLT5jb2Rlci0+ bHRwX2luc2VydF9uZXdfZnJhbWUocyk7DQo+IC0NCj4gICAgICAgcHV0X2JpdHMoJnMtPnBi LCAzLCBUWVBFX0VORCk7DQo+ICAgICAgIGZsdXNoX3B1dF9iaXRzKCZzLT5wYik7DQo+ICAg DQo+IEBAIC0xMjg5LDE3ICsxMjYxLDkgQEAgc3RhdGljIGF2X2NvbGQgaW50IGFhY19lbmNv ZGVfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpDQo+ICAgICAgIEVSUk9SX0lGKGkgPT0g RkZfQVJSQVlfRUxFTVMoYWFjZW5jX3Byb2ZpbGVzKSwgIlByb2ZpbGUgbm90IHN1cHBvcnRl ZCFcbiIpOw0KPiAgICAgICBpZiAoYXZjdHgtPnByb2ZpbGUgPT0gQVZfUFJPRklMRV9NUEVH Ml9BQUNfTE9XKSB7DQo+ICAgICAgICAgICBhdmN0eC0+cHJvZmlsZSA9IEFWX1BST0ZJTEVf QUFDX0xPVzsNCj4gLSAgICAgICAgRVJST1JfSUYocy0+b3B0aW9ucy5sdHAsDQo+IC0gICAg ICAgICAgICAgICAgICJMVFAgcHJlZGljdGlvbiB1bmF2YWlsYWJsZSBpbiB0aGUgXCJtcGVn Ml9hYWNfbG93XCIgcHJvZmlsZVxuIik7DQo+ICAgICAgICAgICBXQVJOX0lGKHMtPm9wdGlv bnMucG5zLA0KPiAgICAgICAgICAgICAgICAgICAiUE5TIHVuYXZhaWxhYmxlIGluIHRoZSBc Im1wZWcyX2FhY19sb3dcIiBwcm9maWxlLCB0dXJuaW5nIG9mZlxuIik7DQo+ICAgICAgICAg ICBzLT5vcHRpb25zLnBucyA9IDA7DQo+IC0gICAgfSBlbHNlIGlmIChhdmN0eC0+cHJvZmls ZSA9PSBBVl9QUk9GSUxFX0FBQ19MVFApIHsNCj4gLSAgICAgICAgcy0+b3B0aW9ucy5sdHAg PSAxOw0KPiAtICAgIH0gZWxzZSBpZiAocy0+b3B0aW9ucy5sdHApIHsNCj4gLSAgICAgICAg YXZjdHgtPnByb2ZpbGUgPSBBVl9QUk9GSUxFX0FBQ19MVFA7DQo+IC0gICAgICAgIFdBUk5f SUYoMSwNCj4gLSAgICAgICAgICAgICAgICAiQ2hhaW5naW5nIHByb2ZpbGUgdG8gXCJhYWNf bHRwXCJcbiIpOw0KPiAgICAgICB9DQo+ICAgICAgIHMtPnByb2ZpbGUgPSBhdmN0eC0+cHJv ZmlsZTsNCj4gICANCj4gQEAgLTEzMTEsOCArMTI3NSw2IEBAIHN0YXRpYyBhdl9jb2xkIGlu dCBhYWNfZW5jb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQ0KPiAgICAgICAgICAg cy0+b3B0aW9ucy5pbnRlbnNpdHlfc3RlcmVvID0gMDsNCj4gICAgICAgICAgIHMtPm9wdGlv bnMucG5zID0gMDsNCj4gICAgICAgfQ0KPiAtICAgIEVSUk9SX0lGKHMtPm9wdGlvbnMubHRw ICYmIGF2Y3R4LT5zdHJpY3Rfc3RkX2NvbXBsaWFuY2UgPiBGRl9DT01QTElBTkNFX0VYUEVS SU1FTlRBTCwNCj4gLSAgICAgICAgICAgICAiVGhlIExQVCBwcm9maWxlIHJlcXVpcmVzIGV4 cGVyaW1lbnRhbCBjb21wbGlhbmNlLCBhZGQgLXN0cmljdCAtMiB0byBlbmFibGUhXG4iKTsN Cj4gICANCj4gICAgICAgLyogTS9TIGludHJvZHVjZXMgaG9ycmlibGUgYXJ0aWZhY3RzIHdp dGggbXVsdGljaGFubmVsIGZpbGVzLCB0aGlzIGlzIHRlbXBvcmFyeSAqLw0KPiAgICAgICBp ZiAocy0+Y2hhbm5lbHMgPiAzKQ0KPiBAQCAtMTM2MCw3ICsxMzIyLDYgQEAgc3RhdGljIGNv bnN0IEFWT3B0aW9uIGFhY2VuY19vcHRpb25zW10gPSB7DQo+ICAgICAgIHsiYWFjX2lzIiwg IkludGVuc2l0eSBzdGVyZW8gY29kaW5nIiwgb2Zmc2V0b2YoQUFDRW5jQ29udGV4dCwgb3B0 aW9ucy5pbnRlbnNpdHlfc3RlcmVvKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQgPSAxfSwg LTEsIDEsIEFBQ0VOQ19GTEFHU30sDQo+ICAgICAgIHsiYWFjX3BucyIsICJQZXJjZXB0dWFs IG5vaXNlIHN1YnN0aXR1dGlvbiIsIG9mZnNldG9mKEFBQ0VuY0NvbnRleHQsIG9wdGlvbnMu cG5zKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQgPSAxfSwgLTEsIDEsIEFBQ0VOQ19GTEFH U30sDQo+ICAgICAgIHsiYWFjX3RucyIsICJUZW1wb3JhbCBub2lzZSBzaGFwaW5nIiwgb2Zm c2V0b2YoQUFDRW5jQ29udGV4dCwgb3B0aW9ucy50bnMpLCBBVl9PUFRfVFlQRV9CT09MLCB7 Lmk2NCA9IDF9LCAtMSwgMSwgQUFDRU5DX0ZMQUdTfSwNCj4gLSAgICB7ImFhY19sdHAiLCAi TG9uZyB0ZXJtIHByZWRpY3Rpb24iLCBvZmZzZXRvZihBQUNFbmNDb250ZXh0LCBvcHRpb25z Lmx0cCksIEFWX09QVF9UWVBFX0JPT0wsIHsuaTY0ID0gMH0sIC0xLCAxLCBBQUNFTkNfRkxB R1N9LA0KPiAgICAgICB7ImFhY19wY2UiLCAiRm9yY2VzIHRoZSB1c2Ugb2YgUENFcyIsIG9m ZnNldG9mKEFBQ0VuY0NvbnRleHQsIG9wdGlvbnMucGNlKSwgQVZfT1BUX1RZUEVfQk9PTCwg ey5pNjQgPSAwfSwgLTEsIDEsIEFBQ0VOQ19GTEFHU30sDQo+ICAgICAgIEZGX0FBQ19QUk9G SUxFX09QVFMNCj4gICAgICAge05VTEx9DQo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2Fh Y2VuYy5oIGIvbGliYXZjb2RlYy9hYWNlbmMuaA0KPiBpbmRleCA4Mzg5Njk5MTQxLi4zNjA0 MDJhMDZlIDEwMDY0NA0KPiAtLS0gYS9saWJhdmNvZGVjL2FhY2VuYy5oDQo+ICsrKyBiL2xp YmF2Y29kZWMvYWFjZW5jLmgNCj4gQEAgLTY3LDIzICs2NywxMSBAQCB0eXBlZGVmIHN0cnVj dCBBQUNFbmNPcHRpb25zIHsNCj4gICAgICAgaW50IGNvZGVyOw0KPiAgICAgICBpbnQgcG5z Ow0KPiAgICAgICBpbnQgdG5zOw0KPiAtICAgIGludCBsdHA7DQo+ICAgICAgIGludCBwY2U7 DQo+ICAgICAgIGludCBtaWRfc2lkZTsNCj4gICAgICAgaW50IGludGVuc2l0eV9zdGVyZW87 DQo+ICAgfSBBQUNFbmNPcHRpb25zOw0KPiAgIA0KPiAtLyoqDQo+IC0gKiBMb25nIFRlcm0g UHJlZGljdGlvbg0KPiAtICovDQo+IC10eXBlZGVmIHN0cnVjdCBMb25nVGVybVByZWRpY3Rp b24gew0KPiAtICAgIGludDhfdCBwcmVzZW50Ow0KPiAtICAgIGludDE2X3QgbGFnOw0KPiAt ICAgIGludCBjb2VmX2lkeDsNCj4gLSAgICBmbG9hdCBjb2VmOw0KPiAtICAgIGludDhfdCB1 c2VkW01BWF9MVFBfTE9OR19TRkJdOw0KPiAtfSBMb25nVGVybVByZWRpY3Rpb247DQo+IC0N Cj4gICAvKioNCj4gICAgKiBJbmRpdmlkdWFsIENoYW5uZWwgU3RyZWFtDQo+ICAgICovDQo+ IEBAIC05Miw3ICs4MCw2IEBAIHR5cGVkZWYgc3RydWN0IEluZGl2aWR1YWxDaGFubmVsU3Ry ZWFtIHsNCj4gICAgICAgZW51bSBXaW5kb3dTZXF1ZW5jZSB3aW5kb3dfc2VxdWVuY2VbMl07 DQo+ICAgICAgIHVpbnQ4X3QgdXNlX2tiX3dpbmRvd1syXTsgICAvLy88IElmIHNldCwgdXNl IEthaXNlci1CZXNzZWwgd2luZG93LCBvdGhlcndpc2UgdXNlIGEgc2luZSB3aW5kb3cuDQo+ ICAgICAgIHVpbnQ4X3QgZ3JvdXBfbGVuWzhdOw0KPiAtICAgIExvbmdUZXJtUHJlZGljdGlv biBsdHA7DQo+ICAgICAgIGNvbnN0IHVpbnQxNl90ICpzd2Jfb2Zmc2V0OyAvLy88IHRhYmxl IG9mIG9mZnNldHMgdG8gdGhlIGxvd2VzdCBzcGVjdHJhbCBjb2VmZmljaWVudCBvZiBhIHNj YWxlZmFjdG9yIGJhbmQsIHNmYiwgZm9yIGEgcGFydGljdWxhciB3aW5kb3cNCj4gICAgICAg Y29uc3QgdWludDhfdCAqc3diX3NpemVzOyAgIC8vLzwgdGFibGUgb2Ygc2NhbGVmYWN0b3Ig YmFuZCBzaXplcyBmb3IgYSBwYXJ0aWN1bGFyIHdpbmRvdw0KPiAgICAgICBpbnQgbnVtX3N3 YjsgICAgICAgICAgICAgICAgLy8vPCBudW1iZXIgb2Ygc2NhbGVmYWN0b3Igd2luZG93IGJh bmRzDQo+IEBAIC0xMzIsOCArMTE5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU2luZ2xlQ2hhbm5l bEVsZW1lbnQgew0KPiAgICAgICBERUNMQVJFX0FMSUdORUQoMzIsIGZsb2F0LCBwY29lZmZz KVsxMDI0XTsgICAgICAvLy88IGNvZWZmaWNpZW50cyBmb3IgSU1EQ1QsIHByaXN0aW5lDQo+ ICAgICAgIERFQ0xBUkVfQUxJR05FRCgzMiwgZmxvYXQsIGNvZWZmcylbMTAyNF07ICAgICAg IC8vLzwgY29lZmZpY2llbnRzIGZvciBJTURDVCwgbWF5YmUgcHJvY2Vzc2VkDQo+ICAgICAg IERFQ0xBUkVfQUxJR05FRCgzMiwgZmxvYXQsIHJldF9idWYpWzIwNDhdOyAgICAgIC8vLzwg UENNIG91dHB1dCBidWZmZXINCj4gLSAgICBERUNMQVJFX0FMSUdORUQoMTYsIGZsb2F0LCBs dHBfc3RhdGUpWzMwNzJdOyAgICAvLy88IHRpbWUgc2lnbmFsIGZvciBMVFANCj4gLSAgICBE RUNMQVJFX0FMSUdORUQoMzIsIGZsb2F0LCBsY29lZmZzKVsxMDI0XTsgICAgICAvLy88IE1E Q1Qgb2YgTFRQIGNvZWZmaWNpZW50cw0KPiAgICAgICBQcmVkaWN0b3JTdGF0ZSBwcmVkaWN0 b3Jfc3RhdGVbTUFYX1BSRURJQ1RPUlNdOw0KPiAgIH0gU2luZ2xlQ2hhbm5lbEVsZW1lbnQ7 DQo+ICAgDQo+IEBAIC0xNjEsMTYgKzE0NiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBBQUNDb2Vm ZmljaWVudHNFbmNvZGVyIHsNCj4gICAgICAgdm9pZCAoKnF1YW50aXplX2FuZF9lbmNvZGVf YmFuZCkoc3RydWN0IEFBQ0VuY0NvbnRleHQgKnMsIFB1dEJpdENvbnRleHQgKnBiLCBjb25z dCBmbG9hdCAqaW4sIGZsb2F0ICpvdXQsIGludCBzaXplLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2NhbGVfaWR4LCBpbnQgY2IsIGNvbnN0IGZs b2F0IGxhbWJkYSwgaW50IHJ0eik7DQo+ICAgICAgIHZvaWQgKCplbmNvZGVfdG5zX2luZm8p KHN0cnVjdCBBQUNFbmNDb250ZXh0ICpzLCBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2NlKTsN Cj4gLSAgICB2b2lkICgqZW5jb2RlX2x0cF9pbmZvKShzdHJ1Y3QgQUFDRW5jQ29udGV4dCAq cywgU2luZ2xlQ2hhbm5lbEVsZW1lbnQgKnNjZSwgaW50IGNvbW1vbl93aW5kb3cpOw0KPiAt ICAgIHZvaWQgKCphZGp1c3RfY29tbW9uX2x0cCkoc3RydWN0IEFBQ0VuY0NvbnRleHQgKnMs IENoYW5uZWxFbGVtZW50ICpjcGUpOw0KPiAgICAgICB2b2lkICgqYXBwbHlfdG5zX2ZpbHQp KHN0cnVjdCBBQUNFbmNDb250ZXh0ICpzLCBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2NlKTsN Cj4gLSAgICB2b2lkICgqdXBkYXRlX2x0cCkoc3RydWN0IEFBQ0VuY0NvbnRleHQgKnMsIFNp bmdsZUNoYW5uZWxFbGVtZW50ICpzY2UpOw0KPiAtICAgIHZvaWQgKCpsdHBfaW5zZXJ0X25l d19mcmFtZSkoc3RydWN0IEFBQ0VuY0NvbnRleHQgKnMpOw0KPiAgICAgICB2b2lkICgqc2V0 X3NwZWNpYWxfYmFuZF9zY2FsZWZhY3RvcnMpKHN0cnVjdCBBQUNFbmNDb250ZXh0ICpzLCBT aW5nbGVDaGFubmVsRWxlbWVudCAqc2NlKTsNCj4gICAgICAgdm9pZCAoKnNlYXJjaF9mb3Jf cG5zKShzdHJ1Y3QgQUFDRW5jQ29udGV4dCAqcywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBT aW5nbGVDaGFubmVsRWxlbWVudCAqc2NlKTsNCj4gICAgICAgdm9pZCAoKm1hcmtfcG5zKShz dHJ1Y3QgQUFDRW5jQ29udGV4dCAqcywgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBTaW5nbGVD aGFubmVsRWxlbWVudCAqc2NlKTsNCj4gICAgICAgdm9pZCAoKnNlYXJjaF9mb3JfdG5zKShz dHJ1Y3QgQUFDRW5jQ29udGV4dCAqcywgU2luZ2xlQ2hhbm5lbEVsZW1lbnQgKnNjZSk7DQo+ IC0gICAgdm9pZCAoKnNlYXJjaF9mb3JfbHRwKShzdHJ1Y3QgQUFDRW5jQ29udGV4dCAqcywg U2luZ2xlQ2hhbm5lbEVsZW1lbnQgKnNjZSwgaW50IGNvbW1vbl93aW5kb3cpOw0KPiAgICAg ICB2b2lkICgqc2VhcmNoX2Zvcl9tcykoc3RydWN0IEFBQ0VuY0NvbnRleHQgKnMsIENoYW5u ZWxFbGVtZW50ICpjcGUpOw0KPiAgICAgICB2b2lkICgqc2VhcmNoX2Zvcl9pcykoc3RydWN0 IEFBQ0VuY0NvbnRleHQgKnMsIEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQ2hhbm5lbEVsZW1l bnQgKmNwZSk7DQo+ICAgfSBBQUNDb2VmZmljaWVudHNFbmNvZGVyOw0KPiBkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9hYWNlbmNfbHRwLmMgYi9saWJhdmNvZGVjL2FhY2VuY19sdHAuYw0K PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggNThmNzkyMTA3NC4uMDAwMDAw MDAwMA0KPiAtLS0gYS9saWJhdmNvZGVjL2FhY2VuY19sdHAuYw0KPiArKysgL2Rldi9udWxs DQo+IEBAIC0xLDIzNiArMCwwIEBADQo+IC0vKg0KPiAtICogQUFDIGVuY29kZXIgbG9uZyB0 ZXJtIHByZWRpY3Rpb24gZXh0ZW5zaW9uDQo+IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgUm9z dGlzbGF2IFBlaGxpdmFub3YNCj4gLSAqDQo+IC0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBG Rm1wZWcuDQo+IC0gKg0KPiAtICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KPiAtICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KPiAtICogTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQo+IC0g KiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4NCj4gLSAqDQo+IC0gKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gLSAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+IC0g KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQ0KPiAtICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4NCj4gLSAqDQo+IC0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQo+IC0gKiBMaWNlbnNl IGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl DQo+IC0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs b29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBDQo+IC0gKi8NCj4gLQ0KPiAtLyoqDQo+ IC0gKiBAZmlsZQ0KPiAtICogQUFDIGVuY29kZXIgbG9uZyB0ZXJtIHByZWRpY3Rpb24gZXh0 ZW5zaW9uDQo+IC0gKiBAYXV0aG9yIFJvc3Rpc2xhdiBQZWhsaXZhbm92ICggYXRvbW51a2Vy IGdtYWlsIGNvbSApDQo+IC0gKi8NCj4gLQ0KPiAtI2luY2x1ZGUgImFhY2VuY19sdHAuaCIN Cj4gLSNpbmNsdWRlICJhYWNlbmNfcXVhbnRpemF0aW9uLmgiDQo+IC0jaW5jbHVkZSAiYWFj ZW5jX3V0aWxzLmgiDQo+IC0NCj4gLS8qKg0KPiAtICogRW5jb2RlIExUUCBkYXRhLg0KPiAt ICovDQo+IC12b2lkIGZmX2FhY19lbmNvZGVfbHRwX2luZm8oQUFDRW5jQ29udGV4dCAqcywg U2luZ2xlQ2hhbm5lbEVsZW1lbnQgKnNjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgY29tbW9uX3dpbmRvdykNCj4gLXsNCj4gLSAgICBpbnQgaTsNCj4gLSAgICBJ bmRpdmlkdWFsQ2hhbm5lbFN0cmVhbSAqaWNzID0gJnNjZS0+aWNzOw0KPiAtICAgIGlmIChz LT5wcm9maWxlICE9IEFWX1BST0ZJTEVfQUFDX0xUUCB8fCAhaWNzLT5wcmVkaWN0b3JfcHJl c2VudCkNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIGlmIChjb21tb25fd2luZG93KQ0K PiAtICAgICAgICBwdXRfYml0cygmcy0+cGIsIDEsIDApOw0KPiAtICAgIHB1dF9iaXRzKCZz LT5wYiwgMSwgaWNzLT5sdHAucHJlc2VudCk7DQo+IC0gICAgaWYgKCFpY3MtPmx0cC5wcmVz ZW50KQ0KPiAtICAgICAgICByZXR1cm47DQo+IC0gICAgcHV0X2JpdHMoJnMtPnBiLCAxMSwg aWNzLT5sdHAubGFnKTsNCj4gLSAgICBwdXRfYml0cygmcy0+cGIsIDMsICBpY3MtPmx0cC5j b2VmX2lkeCk7DQo+IC0gICAgZm9yIChpID0gMDsgaSA8IEZGTUlOKGljcy0+bWF4X3NmYiwg TUFYX0xUUF9MT05HX1NGQik7IGkrKykNCj4gLSAgICAgICAgcHV0X2JpdHMoJnMtPnBiLCAx LCBpY3MtPmx0cC51c2VkW2ldKTsNCj4gLX0NCj4gLQ0KPiAtdm9pZCBmZl9hYWNfbHRwX2lu c2VydF9uZXdfZnJhbWUoQUFDRW5jQ29udGV4dCAqcykNCj4gLXsNCj4gLSAgICBpbnQgaSwg Y2gsIHRhZywgY2hhbnMsIGN1cl9jaGFubmVsLCBzdGFydF9jaCA9IDA7DQo+IC0gICAgQ2hh bm5lbEVsZW1lbnQgKmNwZTsNCj4gLSAgICBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2NlOw0K PiAtICAgIGZvciAoaSA9IDA7IGkgPCBzLT5jaGFuX21hcFswXTsgaSsrKSB7DQo+IC0gICAg ICAgIGNwZSA9ICZzLT5jcGVbaV07DQo+IC0gICAgICAgIHRhZyAgICAgID0gcy0+Y2hhbl9t YXBbaSsxXTsNCj4gLSAgICAgICAgY2hhbnMgICAgPSB0YWcgPT0gVFlQRV9DUEUgPyAyIDog MTsNCj4gLSAgICAgICAgZm9yIChjaCA9IDA7IGNoIDwgY2hhbnM7IGNoKyspIHsNCj4gLSAg ICAgICAgICAgIHNjZSA9ICZjcGUtPmNoW2NoXTsNCj4gLSAgICAgICAgICAgIGN1cl9jaGFu bmVsID0gc3RhcnRfY2ggKyBjaDsNCj4gLSAgICAgICAgICAgIC8qIE5ldyBzYW1wbGUgKyBv dmVybGFwICovDQo+IC0gICAgICAgICAgICBtZW1jcHkoJnNjZS0+bHRwX3N0YXRlWzBdLCAg ICAmc2NlLT5sdHBfc3RhdGVbMTAyNF0sIDEwMjQqc2l6ZW9mKHNjZS0+bHRwX3N0YXRlWzBd KSk7DQo+IC0gICAgICAgICAgICBtZW1jcHkoJnNjZS0+bHRwX3N0YXRlWzEwMjRdLCAmcy0+ cGxhbmFyX3NhbXBsZXNbY3VyX2NoYW5uZWxdWzIwNDhdLCAxMDI0KnNpemVvZihzY2UtPmx0 cF9zdGF0ZVswXSkpOw0KPiAtICAgICAgICAgICAgbWVtY3B5KCZzY2UtPmx0cF9zdGF0ZVsy MDQ4XSwgJnNjZS0+cmV0X2J1ZlswXSwgMTAyNCpzaXplb2Yoc2NlLT5sdHBfc3RhdGVbMF0p KTsNCj4gLSAgICAgICAgICAgIHNjZS0+aWNzLmx0cC5sYWcgPSAwOw0KPiAtICAgICAgICB9 DQo+IC0gICAgICAgIHN0YXJ0X2NoICs9IGNoYW5zOw0KPiAtICAgIH0NCj4gLX0NCj4gLQ0K PiAtc3RhdGljIHZvaWQgZ2V0X2xhZyhmbG9hdCAqYnVmLCBjb25zdCBmbG9hdCAqbmV3LCBM b25nVGVybVByZWRpY3Rpb24gKmx0cCkNCj4gLXsNCj4gLSAgICBpbnQgaSwgaiwgbGFnID0g MCwgbWF4X2NvcnIgPSAwOw0KPiAtICAgIGZsb2F0IG1heF9yYXRpbyA9IDAuMGY7DQo+IC0g ICAgZm9yIChpID0gMDsgaSA8IDIwNDg7IGkrKykgew0KPiAtICAgICAgICBmbG9hdCBjb3Jy LCBzMCA9IDAuMGYsIHMxID0gMC4wZjsNCj4gLSAgICAgICAgY29uc3QgaW50IHN0YXJ0ID0g RkZNQVgoMCwgaSAtIDEwMjQpOw0KPiAtICAgICAgICBmb3IgKGogPSBzdGFydDsgaiA8IDIw NDg7IGorKykgew0KPiAtICAgICAgICAgICAgY29uc3QgaW50IGlkeCA9IGogLSBpICsgMTAy NDsNCj4gLSAgICAgICAgICAgIHMwICs9IG5ld1tqXSpidWZbaWR4XTsNCj4gLSAgICAgICAg ICAgIHMxICs9IGJ1ZltpZHhdKmJ1ZltpZHhdOw0KPiAtICAgICAgICB9DQo+IC0gICAgICAg IGNvcnIgPSBzMSA+IDAuMGYgPyBzMC9zcXJ0KHMxKSA6IDAuMGY7DQo+IC0gICAgICAgIGlm IChjb3JyID4gbWF4X2NvcnIpIHsNCj4gLSAgICAgICAgICAgIG1heF9jb3JyID0gY29ycjsN Cj4gLSAgICAgICAgICAgIGxhZyA9IGk7DQo+IC0gICAgICAgICAgICBtYXhfcmF0aW8gPSBj b3JyLygyMDQ4LXN0YXJ0KTsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLSAgICBsdHAt PmxhZyA9IEZGTUFYKGF2X2NsaXBfdWludHAyKGxhZywgMTEpLCAwKTsNCj4gLSAgICBsdHAt PmNvZWZfaWR4ID0gcXVhbnRfYXJyYXlfaWR4KG1heF9yYXRpbywgZmZfbHRwX2NvZWYsIDgp Ow0KPiAtICAgIGx0cC0+Y29lZiAgICAgPSBmZl9sdHBfY29lZltsdHAtPmNvZWZfaWR4XTsN Cj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQgZ2VuZXJhdGVfc2FtcGxlcyhmbG9hdCAqYnVm LCBMb25nVGVybVByZWRpY3Rpb24gKmx0cCkNCj4gLXsNCj4gLSAgICBpbnQgaSwgc2FtcGxl c19udW0gPSAyMDQ4Ow0KPiAtICAgIGlmICghbHRwLT5sYWcpIHsNCj4gLSAgICAgICAgbHRw LT5wcmVzZW50ID0gMDsNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIH0gZWxzZSBpZiAo bHRwLT5sYWcgPCAxMDI0KSB7DQo+IC0gICAgICAgIHNhbXBsZXNfbnVtID0gbHRwLT5sYWcg KyAxMDI0Ow0KPiAtICAgIH0NCj4gLSAgICBmb3IgKGkgPSAwOyBpIDwgc2FtcGxlc19udW07 IGkrKykNCj4gLSAgICAgICAgYnVmW2ldID0gbHRwLT5jb2VmKmJ1ZltpICsgMjA0OCAtIGx0 cC0+bGFnXTsNCj4gLSAgICBtZW1zZXQoJmJ1ZltpXSwgMCwgKDIwNDggLSBpKSpzaXplb2Yo ZmxvYXQpKTsNCj4gLX0NCj4gLQ0KPiAtLyoqDQo+IC0gKiBQcm9jZXNzIExUUCBwYXJhbWV0 ZXJzDQo+IC0gKiBAc2VlIFBhdGVudCBXTzIwMDYwNzAyNjVBMQ0KPiAtICovDQo+IC12b2lk IGZmX2FhY191cGRhdGVfbHRwKEFBQ0VuY0NvbnRleHQgKnMsIFNpbmdsZUNoYW5uZWxFbGVt ZW50ICpzY2UpDQo+IC17DQo+IC0gICAgZmxvYXQgKnByZWRfc2lnbmFsID0gJnNjZS0+bHRw X3N0YXRlWzBdOw0KPiAtICAgIGNvbnN0IGZsb2F0ICpzYW1wbGVzID0gJnMtPnBsYW5hcl9z YW1wbGVzW3MtPmN1cl9jaGFubmVsXVsxMDI0XTsNCj4gLQ0KPiAtICAgIGlmIChzLT5wcm9m aWxlICE9IEFWX1BST0ZJTEVfQUFDX0xUUCkNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtDQo+ IC0gICAgLyogQ2FsY3VsYXRlIGxhZyAqLw0KPiAtICAgIGdldF9sYWcocHJlZF9zaWduYWws IHNhbXBsZXMsICZzY2UtPmljcy5sdHApOw0KPiAtICAgIGdlbmVyYXRlX3NhbXBsZXMocHJl ZF9zaWduYWwsICZzY2UtPmljcy5sdHApOw0KPiAtfQ0KPiAtDQo+IC12b2lkIGZmX2FhY19h ZGp1c3RfY29tbW9uX2x0cChBQUNFbmNDb250ZXh0ICpzLCBDaGFubmVsRWxlbWVudCAqY3Bl KQ0KPiAtew0KPiAtICAgIGludCBzZmIsIGNvdW50ID0gMDsNCj4gLSAgICBTaW5nbGVDaGFu bmVsRWxlbWVudCAqc2NlMCA9ICZjcGUtPmNoWzBdOw0KPiAtICAgIFNpbmdsZUNoYW5uZWxF bGVtZW50ICpzY2UxID0gJmNwZS0+Y2hbMV07DQo+IC0NCj4gLSAgICBpZiAoIWNwZS0+Y29t bW9uX3dpbmRvdyB8fA0KPiAtICAgICAgICBzY2UwLT5pY3Mud2luZG93X3NlcXVlbmNlWzBd ID09IEVJR0hUX1NIT1JUX1NFUVVFTkNFIHx8DQo+IC0gICAgICAgIHNjZTEtPmljcy53aW5k b3dfc2VxdWVuY2VbMF0gPT0gRUlHSFRfU0hPUlRfU0VRVUVOQ0UpIHsNCj4gLSAgICAgICAg c2NlMC0+aWNzLmx0cC5wcmVzZW50ID0gMDsNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAg IH0NCj4gLQ0KPiAtICAgIGZvciAoc2ZiID0gMDsgc2ZiIDwgRkZNSU4oc2NlMC0+aWNzLm1h eF9zZmIsIE1BWF9MVFBfTE9OR19TRkIpOyBzZmIrKykgew0KPiAtICAgICAgICBpbnQgc3Vt ID0gc2NlMC0+aWNzLmx0cC51c2VkW3NmYl0gKyBzY2UxLT5pY3MubHRwLnVzZWRbc2ZiXTsN Cj4gLSAgICAgICAgaWYgKHN1bSAhPSAyKSB7DQo+IC0gICAgICAgICAgICBzY2UwLT5pY3Mu bHRwLnVzZWRbc2ZiXSA9IDA7DQo+IC0gICAgICAgIH0gZWxzZSB7DQo+IC0gICAgICAgICAg ICBjb3VudCsrOw0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgc2NlMC0+ aWNzLmx0cC5wcmVzZW50ID0gISFjb3VudDsNCj4gLSAgICBzY2UwLT5pY3MucHJlZGljdG9y X3ByZXNlbnQgPSAhIWNvdW50Ow0KPiAtfQ0KPiAtDQo+IC0vKioNCj4gLSAqIE1hcmsgTFRQ IHNmYidzDQo+IC0gKi8NCj4gLXZvaWQgZmZfYWFjX3NlYXJjaF9mb3JfbHRwKEFBQ0VuY0Nv bnRleHQgKnMsIFNpbmdsZUNoYW5uZWxFbGVtZW50ICpzY2UsDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgY29tbW9uX3dpbmRvdykNCj4gLXsNCj4gLSAgICBpbnQgdywg ZywgdzIsIGksIHN0YXJ0ID0gMCwgY291bnQgPSAwOw0KPiAtICAgIGludCBzYXZlZF9iaXRz ID0gLSgxNSArIEZGTUlOKHNjZS0+aWNzLm1heF9zZmIsIE1BWF9MVFBfTE9OR19TRkIpKTsN Cj4gLSAgICBmbG9hdCAqQzM0ID0gJnMtPnNjb2Vmc1sxMjgqMF0sICpQQ0QgPSAmcy0+c2Nv ZWZzWzEyOCoxXTsNCj4gLSAgICBmbG9hdCAqUENEMzQgPSAmcy0+c2NvZWZzWzEyOCoyXTsN Cj4gLSAgICBjb25zdCBpbnQgbWF4X2x0cCA9IEZGTUlOKHNjZS0+aWNzLm1heF9zZmIsIE1B WF9MVFBfTE9OR19TRkIpOw0KPiAtDQo+IC0gICAgaWYgKHNjZS0+aWNzLndpbmRvd19zZXF1 ZW5jZVswXSA9PSBFSUdIVF9TSE9SVF9TRVFVRU5DRSkgew0KPiAtICAgICAgICBpZiAoc2Nl LT5pY3MubHRwLmxhZykgew0KPiAtICAgICAgICAgICAgbWVtc2V0KCZzY2UtPmx0cF9zdGF0 ZVswXSwgMCwgMzA3MipzaXplb2Yoc2NlLT5sdHBfc3RhdGVbMF0pKTsNCj4gLSAgICAgICAg ICAgIG1lbXNldCgmc2NlLT5pY3MubHRwLCAwLCBzaXplb2YoTG9uZ1Rlcm1QcmVkaWN0aW9u KSk7DQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIH0NCj4gLQ0K PiAtICAgIGlmICghc2NlLT5pY3MubHRwLmxhZyB8fCBzLT5sYW1iZGEgPiAxMjAuMGYpDQo+ IC0gICAgICAgIHJldHVybjsNCj4gLQ0KPiAtICAgIGZvciAodyA9IDA7IHcgPCBzY2UtPmlj cy5udW1fd2luZG93czsgdyArPSBzY2UtPmljcy5ncm91cF9sZW5bd10pIHsNCj4gLSAgICAg ICAgc3RhcnQgPSAwOw0KPiAtICAgICAgICBmb3IgKGcgPSAwOyAgZyA8IHNjZS0+aWNzLm51 bV9zd2I7IGcrKykgew0KPiAtICAgICAgICAgICAgaW50IGJpdHMxID0gMCwgYml0czIgPSAw Ow0KPiAtICAgICAgICAgICAgZmxvYXQgZGlzdDEgPSAwLjBmLCBkaXN0MiA9IDAuMGY7DQo+ IC0gICAgICAgICAgICBpZiAodyoxNitnID4gbWF4X2x0cCkgew0KPiAtICAgICAgICAgICAg ICAgIHN0YXJ0ICs9IHNjZS0+aWNzLnN3Yl9zaXplc1tnXTsNCj4gLSAgICAgICAgICAgICAg ICBjb250aW51ZTsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIGZvciAodzIg PSAwOyB3MiA8IHNjZS0+aWNzLmdyb3VwX2xlblt3XTsgdzIrKykgew0KPiAtICAgICAgICAg ICAgICAgIGludCBiaXRzX3RtcDEsIGJpdHNfdG1wMjsNCj4gLSAgICAgICAgICAgICAgICBG RlBzeUJhbmQgKmJhbmQgPSAmcy0+cHN5LmNoW3MtPmN1cl9jaGFubmVsXS5wc3lfYmFuZHNb KHcrdzIpKjE2K2ddOw0KPiAtICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzY2Ut Pmljcy5zd2Jfc2l6ZXNbZ107IGkrKykNCj4gLSAgICAgICAgICAgICAgICAgICAgUENEW2ld ID0gc2NlLT5jb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXSAtIHNjZS0+bGNvZWZmc1tzdGFy dCsodyt3MikqMTI4K2ldOw0KPiAtICAgICAgICAgICAgICAgIHMtPmFhY2RzcC5hYnNfcG93 MzQoQzM0LCAgJnNjZS0+Y29lZmZzW3N0YXJ0Kyh3K3cyKSoxMjhdLCAgc2NlLT5pY3Muc3di X3NpemVzW2ddKTsNCj4gLSAgICAgICAgICAgICAgICBzLT5hYWNkc3AuYWJzX3BvdzM0KFBD RDM0LCBQQ0QsIHNjZS0+aWNzLnN3Yl9zaXplc1tnXSk7DQo+IC0gICAgICAgICAgICAgICAg ZGlzdDEgKz0gcXVhbnRpemVfYmFuZF9jb3N0KHMsICZzY2UtPmNvZWZmc1tzdGFydCsodyt3 MikqMTI4XSwgQzM0LCBzY2UtPmljcy5zd2Jfc2l6ZXNbZ10sDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjZS0+c2ZfaWR4Wyh3K3cyKSoxNitn XSwgc2NlLT5iYW5kX3R5cGVbKHcrdzIpKjE2K2ddLA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5sYW1iZGEvYmFuZC0+dGhyZXNob2xkLCBJ TkZJTklUWSwgJmJpdHNfdG1wMSwgTlVMTCk7DQo+IC0gICAgICAgICAgICAgICAgZGlzdDIg Kz0gcXVhbnRpemVfYmFuZF9jb3N0KHMsIFBDRCwgUENEMzQsIHNjZS0+aWNzLnN3Yl9zaXpl c1tnXSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NlLT5zZl9pZHhbKHcrdzIpKjE2K2ddLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2UtPmJhbmRfdHlwZVsodyt3MikqMTYrZ10sDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmxhbWJkYS9i YW5kLT50aHJlc2hvbGQsIElORklOSVRZLCAmYml0c190bXAyLCBOVUxMKTsNCj4gLSAgICAg ICAgICAgICAgICBiaXRzMSArPSBiaXRzX3RtcDE7DQo+IC0gICAgICAgICAgICAgICAgYml0 czIgKz0gYml0c190bXAyOw0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICAgICAgaWYg KGRpc3QyIDwgZGlzdDEgJiYgYml0czIgPCBiaXRzMSkgew0KPiAtICAgICAgICAgICAgICAg IGZvciAodzIgPSAwOyB3MiA8IHNjZS0+aWNzLmdyb3VwX2xlblt3XTsgdzIrKykNCj4gLSAg ICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNjZS0+aWNzLnN3Yl9zaXplc1tn XTsgaSsrKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgc2NlLT5jb2VmZnNbc3RhcnQr KHcrdzIpKjEyOCtpXSAtPSBzY2UtPmxjb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXTsNCj4g LSAgICAgICAgICAgICAgICBzY2UtPmljcy5sdHAudXNlZFt3KjE2K2ddID0gMTsNCj4gLSAg ICAgICAgICAgICAgICBzYXZlZF9iaXRzICs9IGJpdHMxIC0gYml0czI7DQo+IC0gICAgICAg ICAgICAgICAgY291bnQrKzsNCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIHN0 YXJ0ICs9IHNjZS0+aWNzLnN3Yl9zaXplc1tnXTsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0N Cj4gLQ0KPiAtICAgIHNjZS0+aWNzLmx0cC5wcmVzZW50ID0gISFjb3VudCAmJiAoc2F2ZWRf Yml0cyA+PSAwKTsNCj4gLSAgICBzY2UtPmljcy5wcmVkaWN0b3JfcHJlc2VudCA9ICEhc2Nl LT5pY3MubHRwLnByZXNlbnQ7DQo+IC0NCj4gLSAgICAvKiBSZXNldCBhbnkgbWFya2VkIHNm YnMgKi8NCj4gLSAgICBpZiAoIXNjZS0+aWNzLmx0cC5wcmVzZW50ICYmICEhY291bnQpIHsN Cj4gLSAgICAgICAgZm9yICh3ID0gMDsgdyA8IHNjZS0+aWNzLm51bV93aW5kb3dzOyB3ICs9 IHNjZS0+aWNzLmdyb3VwX2xlblt3XSkgew0KPiAtICAgICAgICAgICAgc3RhcnQgPSAwOw0K PiAtICAgICAgICAgICAgZm9yIChnID0gMDsgIGcgPCBzY2UtPmljcy5udW1fc3diOyBnKysp IHsNCj4gLSAgICAgICAgICAgICAgICBpZiAoc2NlLT5pY3MubHRwLnVzZWRbdyoxNitnXSkg ew0KPiAtICAgICAgICAgICAgICAgICAgICBmb3IgKHcyID0gMDsgdzIgPCBzY2UtPmljcy5n cm91cF9sZW5bd107IHcyKyspIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo aSA9IDA7IGkgPCBzY2UtPmljcy5zd2Jfc2l6ZXNbZ107IGkrKykgew0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjZS0+Y29lZmZzW3N0YXJ0Kyh3K3cyKSoxMjgraV0gKz0g c2NlLT5sY29lZmZzW3N0YXJ0Kyh3K3cyKSoxMjgraV07DQo+IC0gICAgICAgICAgICAgICAg ICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgICAg ICB9DQo+IC0gICAgICAgICAgICAgICAgc3RhcnQgKz0gc2NlLT5pY3Muc3diX3NpemVzW2dd Ow0KPiAtICAgICAgICAgICAgfQ0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtfQ0KPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYWNlbmNfbHRwLmggYi9saWJhdmNvZGVjL2FhY2Vu Y19sdHAuaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggNzI3Njg3ODQy Ny4uMDAwMDAwMDAwMA0KPiAtLS0gYS9saWJhdmNvZGVjL2FhY2VuY19sdHAuaA0KPiArKysg L2Rldi9udWxsDQo+IEBAIC0xLDQxICswLDAgQEANCj4gLS8qDQo+IC0gKiBBQUMgZW5jb2Rl ciBsb25nIHRlcm0gcHJlZGljdGlvbiBleHRlbnNpb24NCj4gLSAqIENvcHlyaWdodCAoQykg MjAxNSBSb3N0aXNsYXYgUGVobGl2YW5vdg0KPiAtICoNCj4gLSAqIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEZGbXBlZy4NCj4gLSAqDQo+IC0gKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQo+IC0gKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQo+IC0gKiBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXINCj4gLSAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiAtICoNCj4gLSAqIEZGbXBlZyBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KPiAtICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YNCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VDQo+IC0gKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiAtICoNCj4gLSAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCj4gLSAq IExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUNCj4gLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0ENCj4gLSAqLw0KPiAtDQo+ IC0vKioNCj4gLSAqIEBmaWxlDQo+IC0gKiBBQUMgZW5jb2RlciBsb25nIHRlcm0gcHJlZGlj dGlvbiBleHRlbnNpb24NCj4gLSAqIEBhdXRob3IgUm9zdGlzbGF2IFBlaGxpdmFub3YgKCBh dG9tbnVrZXIgZ21haWwgY29tICkNCj4gLSAqLw0KPiAtDQo+IC0jaWZuZGVmIEFWQ09ERUNf QUFDRU5DX0xUUF9IDQo+IC0jZGVmaW5lIEFWQ09ERUNfQUFDRU5DX0xUUF9IDQo+IC0NCj4g LSNpbmNsdWRlICJhYWNlbmMuaCINCj4gLQ0KPiAtdm9pZCBmZl9hYWNfZW5jb2RlX2x0cF9p bmZvKEFBQ0VuY0NvbnRleHQgKnMsIFNpbmdsZUNoYW5uZWxFbGVtZW50ICpzY2UsDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbW1vbl93aW5kb3cpOw0KPiAtdm9p ZCBmZl9hYWNfdXBkYXRlX2x0cChBQUNFbmNDb250ZXh0ICpzLCBTaW5nbGVDaGFubmVsRWxl bWVudCAqc2NlKTsNCj4gLXZvaWQgZmZfYWFjX2FkanVzdF9jb21tb25fbHRwKEFBQ0VuY0Nv bnRleHQgKnMsIENoYW5uZWxFbGVtZW50ICpjcGUpOw0KPiAtdm9pZCBmZl9hYWNfbHRwX2lu c2VydF9uZXdfZnJhbWUoQUFDRW5jQ29udGV4dCAqcyk7DQo+IC12b2lkIGZmX2FhY19zZWFy Y2hfZm9yX2x0cChBQUNFbmNDb250ZXh0ICpzLCBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2Nl LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbW1vbl93aW5kb3cpOw0K PiAtDQo+IC0jZW5kaWYgLyogQVZDT0RFQ19BQUNFTkNfTFRQX0ggKi8NCj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYWFjZW5jdGFiLmggYi9saWJhdmNvZGVjL2FhY2VuY3RhYi5oDQo+ IGluZGV4IDc4ZTQyNGE2NzUuLjYwZTFmMjIzODcgMTAwNjQ0DQo+IC0tLSBhL2xpYmF2Y29k ZWMvYWFjZW5jdGFiLmgNCj4gKysrIGIvbGliYXZjb2RlYy9hYWNlbmN0YWIuaA0KPiBAQCAt MTI2LDcgKzEyNiw2IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFhY19tYXh2YWxf Y2JbXSA9IHsNCj4gICANCj4gICBzdGF0aWMgY29uc3QgaW50IGFhY2VuY19wcm9maWxlc1td ID0gew0KPiAgICAgICBBVl9QUk9GSUxFX0FBQ19MT1csDQo+IC0gICAgQVZfUFJPRklMRV9B QUNfTFRQLA0KPiAgICAgICBBVl9QUk9GSUxFX01QRUcyX0FBQ19MT1csDQo+ICAgfTsNCj4g ICANCg0K --------------CUUBa2wuB1IBb1knbR8M9U1G Content-Type: application/pgp-keys; name="OpenPGP_0xA2FEA5F03F034464.asc" Content-Disposition: attachment; filename="OpenPGP_0xA2FEA5F03F034464.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6H ljr9mYvNFEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1S H42i/qXwPwNEZAUCXnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi /qXwPwNEZOTWAQCSNEA+kZLINZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff 0c28efI02S6iMxazrpdWGHqHk7JN7pCjnt397wzOOARecUbcEgorBgEEAZdVAQUB AQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S7/zSaX8DAQgHwngEGBYIACAW IQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi/qXwPwNEZKaxAQCH LV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY30LsmqR3s PQ0BJ1UFVZA5BUoIJPJZWwg=3D =3DylY5 -----END PGP PUBLIC KEY BLOCK----- --------------CUUBa2wuB1IBb1knbR8M9U1G-- --------------RuXZMP7UiQiW3Uk8yM8IuJxa-- --------------y9bscBUhjIqCehCOs9u2IbaH Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCZ78/rQUDAAAAAAAKCRCi/qXwPwNEZBVT AP4oxDea2oQ3YmvaUdS+k+B/iDojQqAFQKgt7A88JHknuAD/cUug5a4Igb0+TGDxEi2g57XZfroS PDPgQG82BooHBw8= =Z8P8 -----END PGP SIGNATURE----- --------------y9bscBUhjIqCehCOs9u2IbaH-- --===============4494284952863317319== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --===============4494284952863317319==--