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 34A8D456E7 for ; Mon, 19 Jun 2023 13:16:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A1A9168BFD4; Mon, 19 Jun 2023 16:15:59 +0300 (EEST) Received: from mail-yb1-f169.google.com (mail-yb1-f169.google.com [209.85.219.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A48A68BEFF for ; Mon, 19 Jun 2023 16:15:52 +0300 (EEST) Received: by mail-yb1-f169.google.com with SMTP id 3f1490d57ef6-bd77424c886so3809712276.0 for ; Mon, 19 Jun 2023 06:15:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ltnglobal-com.20221208.gappssmtp.com; s=20221208; t=1687180551; x=1689772551; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=1U5J6zC0BFp+l+Z3f5FxlWzILCCC/vxYGoe7ZBP/FyI=; b=WP97BnvMOBIeOtfj1kukJn8+Lq7lhpKBkWxtlvYi7LnRQjNeCNLby6niwKEZ/aDshI oFgQ9POfCQNSphSPP/hQsyt73HrOnBp1tehkQF6xVvQ6CK4ZAPY6lk1tOCrCK6VMhQZQ k/azzqFVahzCKlQcHkWUNZ44+csWwhHKN3xA4mUdonP4GEep5EzWuQxdRltWPa5kVA3F CVXE+KzJFupGpiE6kmYrjaJw/RXFzoz9914AIIvp9Q1d2oYMYtofdMc6AgDgkzMpX30h Sx/1DH/39Z08+0QuItc/BTMS9QOJYwHAXtqGXkfLeM83B9dwqifkwGIL57k2LYxUXK9o wxZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687180551; x=1689772551; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1U5J6zC0BFp+l+Z3f5FxlWzILCCC/vxYGoe7ZBP/FyI=; b=GGv0CowThyz8oPmuRbMGDVj4O1D+Ai1YnYQoxHlTm7Fjob6+1AJ6ODpdUrR4/JCDMQ 3NKs/o5sRnyTjSRJy+JqjsJbHwIXbhn11EA4uhM5F9SkwBZ9HSB4N/icduGAhDDDeFbc OqTdbWdOQc/P1xkp/R93eE9cri2GPBp8OrDA1FrT9S86ciJUGlB1mMhpqiEZgxKBlQqu xz5J48vwEpVmKe7bYn7L4ApWej4rSbKiVLrklsBpqS9g4CLa3OHkLn0hsRSSDUyPhXKE S4oLyW27n57+uHYQInDFcHjoVrxCiw0qJXCcwWri1NraPzGRTz5Jy3k8z31Hr6mVEQXA 2pew== X-Gm-Message-State: AC+VfDzaNOowsKDIiP+VbESkvRBhCBaAeWmlQBJq1wi9igY7QJL9rBAz YEJN4fxgMV9ymFdtBUDNu2wyUNI9ONVSTrnXvDBjGS8m5PszfUAB X-Google-Smtp-Source: ACHHUZ7dimZgCe9dqL3o7ThUHwWhQWVHvkvar0XndkJm5dnB6OuPLnehiBiLj8Wf/j6sEDrWENNpas65z4Xs2wRHE58= X-Received: by 2002:a25:b188:0:b0:be4:684e:1971 with SMTP id h8-20020a25b188000000b00be4684e1971mr7173514ybj.63.1687180549169; Mon, 19 Jun 2023 06:15:49 -0700 (PDT) MIME-Version: 1.0 References: <1686953578-18843-1-git-send-email-dheitmueller@ltnglobal.com> <1686953578-18843-5-git-send-email-dheitmueller@ltnglobal.com> In-Reply-To: From: Devin Heitmueller Date: Mon, 19 Jun 2023 09:15:38 -0400 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH 4/5] bsf: Add new bitstream filter to set pts_adjustment when reclocking 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: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gRnJpLCBKdW4gMTYsIDIwMjMgYXQgNTo1OOKAr1BNIEFuZHJlYXMgUmhlaW5oYXJkdAo8YW5k cmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPgo+IERldmluIEhlaXRtdWVsbGVy Ogo+ID4gQmVjYXVzZSBTQ1RFLTM1IG1lc3NhZ2VzIGFyZSByZXByZXNlbnRlZCBpbiBUUyBzdHJl YW1zIGFzIHNlY3Rpb25zCj4gPiByYXRoZXIgdGhhbiBQRVMgcGFja2V0cywgd2UgY2Fubm90IHJl bHkgb24gZmZtcGVnJ3Mgc3RhbmRhcmQKPiA+IG1lY2hhbmlzbXMgdG8gYWRqdXN0IFBUUyB2YWx1 ZXMgaWYgcmVjbG9ja2luZyB0aGUgc3RyZWFtLgo+ID4gVGhpcyBmaWx0ZXIgd2lsbCBsZXZlcmFn ZSB0aGUgU0NURS0zNSBwdHNfYWRqdXN0IGZpZWxkIHRvCj4gPiBjb21wZW5zYXRlIGZvciBhbnkg Y2hhbmdlIGluIHRoZSBQVFMgdmFsdWVzIGluIHRoZSBzdHJlYW0uCj4gPgo+ID4gU2VlIFNDVEUt MzUgMjAxOSBTZWMgOS42IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlIG9mCj4gPiB0aGUg cHRzX2FkanVzdCBmaWVsZC4KPiA+Cj4gPiBUaGlzIGZpbHRlciBhbHNvIHR3ZWFrcyB0aGUgbXBl Z3RzZW5jIG11eCB0byBhdXRvbWF0aWNhbGx5Cj4gPiBhZGQgaXQgc28gdGhlIHVzZXIgZG9lc24n dCBoYXZlIHRvIGluY2x1ZGUgaXQgbWFudWFsbHkuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGV2 aW4gSGVpdG11ZWxsZXIgPGRoZWl0bXVlbGxlckBsdG5nbG9iYWwuY29tPgo+ID4gLS0tCj4gPiAg bGliYXZjb2RlYy9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgIDEgKwo+ID4gIGxpYmF2Y29kZWMv Yml0c3RyZWFtX2ZpbHRlcnMuYyAgIHwgICAxICsKPiA+ICBsaWJhdmNvZGVjL3NjdGUzNXB0c2Fk anVzdF9ic2YuYyB8IDExNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiA+ICBsaWJhdmZvcm1hdC9tcGVndHNlbmMuYyAgICAgICAgICB8ICAgMiArCj4gPiAgNCBmaWxl cyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJh dmNvZGVjL3NjdGUzNXB0c2FkanVzdF9ic2YuYwo+ID4KPiA+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+ID4gaW5kZXggMGNlOGZlNS4uNjk0 NGM4MiAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiA+ICsrKyBiL2xpYmF2 Y29kZWMvTWFrZWZpbGUKPiA+IEBAIC0xMjUwLDYgKzEyNTAsNyBAQCBPQkpTLSQoQ09ORklHX1BD TV9SRUNIVU5LX0JTRikgICAgICAgICAgICArPSBwY21fcmVjaHVua19ic2Yubwo+ID4gIE9CSlMt JChDT05GSUdfUEdTX0ZSQU1FX01FUkdFX0JTRikgICAgICAgICs9IHBnc19mcmFtZV9tZXJnZV9i c2Yubwo+ID4gIE9CSlMtJChDT05GSUdfUFJPUkVTX01FVEFEQVRBX0JTRikgICAgICAgICs9IHBy b3Jlc19tZXRhZGF0YV9ic2Yubwo+ID4gIE9CSlMtJChDT05GSUdfUkVNT1ZFX0VYVFJBREFUQV9C U0YpICAgICAgICs9IHJlbW92ZV9leHRyYWRhdGFfYnNmLm8gYXYxX3BhcnNlLm8KPiA+ICtPQkpT LSQoQ09ORklHX1NDVEUzNVBUU0FESlVTVF9CU0YpICAgICAgICArPSBzY3RlMzVwdHNhZGp1c3Rf YnNmLm8KPiA+ICBPQkpTLSQoQ09ORklHX1NFVFRTX0JTRikgICAgICAgICAgICAgICAgICArPSBz ZXR0c19ic2Yubwo+ID4gIE9CSlMtJChDT05GSUdfVEVYVDJNT1ZTVUJfQlNGKSAgICAgICAgICAg ICs9IG1vdnN1Yl9ic2Yubwo+ID4gIE9CSlMtJChDT05GSUdfVFJBQ0VfSEVBREVSU19CU0YpICAg ICAgICAgICs9IHRyYWNlX2hlYWRlcnNfYnNmLm8KPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2JpdHN0cmVhbV9maWx0ZXJzLmMgYi9saWJhdmNvZGVjL2JpdHN0cmVhbV9maWx0ZXJzLmMKPiA+ IGluZGV4IDc1MTJmY2MuLmQzMGRmYmQgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmNvZGVjL2JpdHN0 cmVhbV9maWx0ZXJzLmMKPiA+ICsrKyBiL2xpYmF2Y29kZWMvYml0c3RyZWFtX2ZpbHRlcnMuYwo+ ID4gQEAgLTU3LDYgKzU3LDcgQEAgZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX3Bj bV9yZWNodW5rX2JzZjsKPiA+ICBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIgZmZfcGdz X2ZyYW1lX21lcmdlX2JzZjsKPiA+ICBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIgZmZf cHJvcmVzX21ldGFkYXRhX2JzZjsKPiA+ICBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIg ZmZfcmVtb3ZlX2V4dHJhZGF0YV9ic2Y7Cj4gPiArZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmls dGVyIGZmX3NjdGUzNXB0c2FkanVzdF9ic2Y7Cj4gPiAgZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFt RmlsdGVyIGZmX3NldHRzX2JzZjsKPiA+ICBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIg ZmZfdGV4dDJtb3ZzdWJfYnNmOwo+ID4gIGV4dGVybiBjb25zdCBGRkJpdFN0cmVhbUZpbHRlciBm Zl90cmFjZV9oZWFkZXJzX2JzZjsKPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3NjdGUzNXB0 c2FkanVzdF9ic2YuYyBiL2xpYmF2Y29kZWMvc2N0ZTM1cHRzYWRqdXN0X2JzZi5jCj4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uZTZlOWVjOQo+ID4gLS0tIC9kZXYv bnVsbAo+ID4gKysrIGIvbGliYXZjb2RlYy9zY3RlMzVwdHNhZGp1c3RfYnNmLmMKPiA+IEBAIC0w LDAgKzEsMTE0IEBACj4gPiArLyoKPiA+ICsgKiBTQ1RFLTM1IFBUUyBmaXh1cCBiaXRzdHJlYW0g ZmlsdGVyCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIzIExUTiBHbG9iYWwgQ29tbXVuaWNhdGlv bnMsIEluYy4KPiA+ICsgKgo+ID4gKyAqIEF1dGhvcjogRGV2aW4gSGVpdG11ZWxsZXIgPGRoZWl0 bXVlbGxlckBsdG5nbG9iYWwuY29tPgo+ID4gKyAqCj4gPiArICogQmVjYXVzZSBTQ1RFLTM1IG1l c3NhZ2VzIGFyZSByZXByZXNlbnRlZCBpbiBUUyBzdHJlYW1zIGFzIHNlY3Rpb25zCj4gPiArICog cmF0aGVyIHRoYW4gUEVTIHBhY2tldHMsIHdlIGNhbm5vdCByZWx5IG9uIGZmbXBlZydzIHN0YW5k YXJkCj4gPiArICogbWVjaGFuaXNtcyB0byBhZGp1c3QgUFRTIHZhbHVlcyBpZiByZWNsb2NraW5n IHRoZSBzdHJlYW0uCj4gPiArICogVGhpcyBmaWx0ZXIgd2lsbCBsZXZlcmFnZSB0aGUgU0NURS0z NSBwdHNfYWRqdXN0IGZpZWxkIHRvCj4gPiArICogY29tcGVuc2F0ZSBmb3IgYW55IGNoYW5nZSBp biB0aGUgUFRTIHZhbHVlcyBpbiB0aGUgc3RyZWFtLgo+ID4gKyAqCj4gPiArICogU2VlIFNDVEUt MzUgMjAxOSBTZWMgOS42IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlIG9mCj4gPiArICog dGhlIHB0c19hZGp1c3QgZmllbGQuCj4gPiArICoKPiA+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBv ZiBGRm1wZWcuCj4gPiArICoKPiA+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4gPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ID4gKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ID4gKyAqIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgo+ID4gKyAqCj4gPiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiA+ICsgKiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ ID4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4g PiArICoKPiA+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCj4gPiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ID4gKyAqIEZvdW5kYXRpb24sIElu Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMw MSBVU0EKPiA+ICsgKi8KPiA+ICsKPiA+ICsjaW5jbHVkZSAiYXZjb2RlYy5oIgo+Cj4gV2hhdCBp cyB0aGF0IGZvcj8gVGhlIEJTRiBBUEkgaXMgc2VwYXJhdGUgZnJvbSB0aGUgQVZDb2RlY0NvbnRl eHQgc3R1ZmYuCj4KPiA+ICsjaW5jbHVkZSAiYnNmLmgiCj4gPiArI2luY2x1ZGUgImJzZl9pbnRl cm5hbC5oIgo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgc2N0ZTM1cHRzYWRqdXN0X2ZpbHRlcihBVkJT RkNvbnRleHQgKmN0eCwgQVZQYWNrZXQgKm91dCkKPiA+ICt7Cj4gPiArICAgIEFWUGFja2V0ICpp bjsKPiA+ICsgICAgc2l6ZV90IHNpemU7Cj4KPiBhdl9wYWNrZXRfZ2V0X3NpZGVfZGF0YSgpIGNh biB3b3JrIHdpdGggTlVMTCBmb3IgdGhlIHNpemUgcG9pbnRlci4KPgo+ID4gKyAgICBjb25zdCBp bnQ2NF90ICpvcmlnX3B0czsKPiA+ICsgICAgaW50NjRfdCBjdXJfcHRzX2FkanVzdDsKPiA+ICsg ICAgaW50IHJldCA9IDA7Cj4gPiArCj4gPiArICAgIHJldCA9IGZmX2JzZl9nZXRfcGFja2V0KGN0 eCwgJmluKTsKPiA+ICsgICAgaWYgKHJldCA8IDApCj4gPiArICAgICAgICByZXR1cm4gcmV0Owo+ ID4gKwo+ID4gKyAgICAvKiBSZXRyaWV2ZSB0aGUgb3JpZ2luYWwgUFRTLCB3aGljaCB3aWxsIGJl IHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBwdHNfYWRqdXN0ICovCj4gPiArICAgIG9yaWdfcHRzID0g KGludDY0X3QgKikgYXZfcGFja2V0X2dldF9zaWRlX2RhdGEoaW4sIEFWX1BLVF9EQVRBX09SSUdf UFRTLCAmc2l6ZSk7Cj4gPiArICAgIGlmIChvcmlnX3B0cyA9PSBOVUxMKSB7Cj4gPiArICAgICAg ICAvKiBObyBvcmlnaW5hbCBQVFMgc3BlY2lmaWVkLCBzbyBqdXN0IHBhc3MgdGhlIHBhY2tldCB0 aHJvdWdoICovCj4gPiArICAgICAgICBhdl9wYWNrZXRfbW92ZV9yZWYob3V0LCBpbik7Cj4gPiAr ICAgICAgICBhdl9wYWNrZXRfZnJlZSgmaW4pOwo+ID4gKyAgICAgICAgcmV0dXJuIDA7Cj4gPiAr ICAgIH0KPiA+ICsKPiA+ICsgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAiJXMgcHRzPSUi IFBSSWQ2NCAiIG9yaWdfcHRzPSUiIFBSSWQ2NCAiXG4iLCBfX2Z1bmNfXywKPiA+ICsgICAgICAg ICAgIGluLT5wdHMsICpvcmlnX3B0cyk7Cj4gPiArCj4gPiArICAgIC8qIFRoZSBwdHNfYWRqdXN0 IGZpZWxkIGlzIGxvZ2ljYWxseSBidWZbNF0tYnVmWzhdIG9mIHRoZSBwYXlsb2FkICovCj4gPiAr ICAgIGlmIChpbi0+c2l6ZSA8IDgpCj4KPiBZb3UgYXJlIHJlYWRpbmcgZGF0YVs4XSwgc28gc2l6 ZSBzaG91bGQgYmUgYXQgbGVhc3QgOS4KPgo+ID4gKyAgICAgICAgZ290byBmYWlsOwo+Cj4gVGhp cyB3aWxsIHJldHVybiAwIGluc3RlYWQgb2YgaW5kaWNhdGluZyBhbiBlcnJvci4KPiAoQnV0IHRo aXMgaXMgaXJyZWxldmFudCwgc2VlIGJlbG93LikKPgo+ID4gKwo+ID4gKyAgICAvKiBFeHRyYWN0 IHRoZSBjdXJyZW50IHB0c19hZGp1c3QgdmFsdWUgZnJvbSB0aGUgcGFja2V0ICovCj4gPiArICAg IGN1cl9wdHNfYWRqdXN0ID0gKChpbnQ2NF90KSBpbi0+ZGF0YVs0XSAmIChpbnQ2NF90KSAweDAx IDw8IDMyKSB8Cj4gPiArICAgICAgICAgICAgICAgICAgICAgKChpbnQ2NF90KSBpbi0+ZGF0YVs1 XSA8PCAyNCkgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICgoaW50NjRfdCkgaW4tPmRhdGFb Nl0gPDwgMTYpIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAoKGludDY0X3QpIGluLT5kYXRh WzddIDw8IDgpIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAoKGludDY0X3QpIGluLT5kYXRh WzhdICk7Cj4gPiArCj4gPiArICAgIGF2X2xvZyhjdHgsIEFWX0xPR19ERUJVRywgIiVzIHB0c19h ZGp1c3Q9JSIgUFJJZDY0ICJcbiIsIF9fZnVuY19fLAo+ID4gKyAgICAgICAgICAgY3VyX3B0c19h ZGp1c3QpOwo+ID4gKwo+ID4gKyAgICAvKiBDb21wdXRlIHRoZSBuZXcgUFRTIGFkanVzdCB2YWx1 ZSAqLwo+ID4gKyAgICBjdXJfcHRzX2FkanVzdCAtPSAqb3JpZ19wdHM7Cj4gPiArICAgIGN1cl9w dHNfYWRqdXN0ICs9IGluLT5wdHM7Cj4gPiArICAgIGN1cl9wdHNfYWRqdXN0ICY9IChpbnQ2NF90 KSAweDFmZmZmZmZmZjsKPiA+ICsKPiA+ICsgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0RFQlVHLCAi JXMgbmV3IHB0c19hZGp1c3Q9JSIgUFJJZDY0ICJcbiIsIF9fZnVuY19fLAo+ID4gKyAgICAgICAg ICAgY3VyX3B0c19hZGp1c3QpOwo+Cj4gV2UgdHlwaWNhbGx5IGRvbid0IGFkZCBfX2Z1bmNfXywg YmVjYXVzZSB0aGUgYWN0dWFsIGluZm9ybWF0aW9uIHdoZXJlCj4gdGhlIGxvZyBjb21lcyBmcm9t IGlzIGNvbnRhaW5lZCBpbiB0aGUgbG9nY29udGV4dC4gRnVydGhlcm1vcmUsIHlvdQo+IGNvdWxk IGNvbWJpbmUgdGhlc2UgdHdvIGF2X2xvZygpLgo+Cj4gPiArCj4gPiArICAgIC8qIENsb25lIHRo ZSBpbmNvbWluZyBwYWNrZXQgc2luY2Ugd2UgbmVlZCB0byBtb2RpZnkgaXQgKi8KPiA+ICsgICAg cmV0ID0gYXZfbmV3X3BhY2tldChvdXQsIGluLT5zaXplKTsKPiA+ICsgICAgaWYgKHJldCA8IDAp Cj4gPiArICAgICAgICBnb3RvIGZhaWw7Cj4gPiArICAgIHJldCA9IGF2X3BhY2tldF9jb3B5X3By b3BzKG91dCwgaW4pOwo+ID4gKyAgICBpZiAocmV0IDwgMCkKPiA+ICsgICAgICAgIGdvdG8gZmFp bDsKPiA+ICsgICAgbWVtY3B5KG91dC0+ZGF0YSwgaW4tPmRhdGEsIGluLT5zaXplKTsKPgo+IEp1 c3QgdXNlIGF2X3BhY2tldF9tYWtlX3dyaXRhYmxlKCkgaW5zdGVhZCBvZiB0aGlzOyB1c2UgaXQg aW4KPiBjb25qdW5jdGlvbiB3aXRoIGZmX2JzZl9nZXRfcGFja2V0X3JlZigpLCBhdm9pZGluZyB0 aGUgc2Vjb25kIHBhY2tldC4gSXQKPiBhbHNvIGF2b2lkcyBhbGxvY2F0aW9ucyBhbmQgY29waWVz IGluIGNhc2UgdGhlIHBhY2tldCdzIGRhdGEgaXMgYWxyZWFkeQo+IHdyaXRhYmxlIGFuZCBhdm9p ZHMgY29weWluZyBzaWRlLWRhdGEgZXRjLgo+Cj4gPiArCj4gPiArICAgIC8qIEluc2VydCB0aGUg dXBkYXRlZCBwdHNfYWRqdXN0IHZhbHVlICovCj4gPiArICAgIG91dC0+ZGF0YVs0XSAmPSAweGZl OyAvKiBQcmVzZXJ2ZSB0b3AgNyB1bnJlbGF0ZWQgYml0cyAqLwo+ID4gKyAgICBvdXQtPmRhdGFb NF0gfD0gY3VyX3B0c19hZGp1c3QgPj4gMzI7Cj4gPiArICAgIG91dC0+ZGF0YVs1XSA9IGN1cl9w dHNfYWRqdXN0ID4+IDI0Owo+ID4gKyAgICBvdXQtPmRhdGFbNl0gPSBjdXJfcHRzX2FkanVzdCA+ PiAxNjsKPiA+ICsgICAgb3V0LT5kYXRhWzddID0gY3VyX3B0c19hZGp1c3QgPj4gODsKPiA+ICsg ICAgb3V0LT5kYXRhWzhdID0gY3VyX3B0c19hZGp1c3Q7Cj4KPiBUaGUgbGFzdCBmb3VyIGNvdWxk IGJlIHNpbXBsaWZpZWQgdG8gQVZfV0IzMihvdXRfZGF0YVs1XSwKPiAodWludDMyX3QpY3VyX3B0 c19hZGp1c3QpOwo+Cj4gPiArCj4gPiArZmFpbDoKPiA+ICsgICAgYXZfcGFja2V0X2ZyZWUoJmlu KTsKPiA+ICsKPiA+ICsgICAgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGNv bnN0IGVudW0gQVZDb2RlY0lEIGNvZGVjX2lkc1tdID0gewo+ID4gKyAgICBBVl9DT0RFQ19JRF9T Q1RFXzM1LCBBVl9DT0RFQ19JRF9OT05FLAo+ID4gK307Cj4gPiArCj4gPiArY29uc3QgRkZCaXRT dHJlYW1GaWx0ZXIgZmZfc2N0ZTM1cHRzYWRqdXN0X2JzZiA9IHsKPiA+ICsgICAgLnAubmFtZSAg ICAgICAgID0gInNjdGUzNXB0c2FkanVzdCIsCj4gPiArICAgIC5wLmNvZGVjX2lkcyAgICA9IGNv ZGVjX2lkcywKPiA+ICsgICAgLmZpbHRlciAgICAgICAgID0gc2N0ZTM1cHRzYWRqdXN0X2ZpbHRl ciwKPiA+ICt9Owo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21wZWd0c2VuYy5jIGIvbGli YXZmb3JtYXQvbXBlZ3RzZW5jLmMKPiA+IGluZGV4IGM2Y2QxZmQuLjQ4ZDc4MzMgMTAwNjQ0Cj4g PiAtLS0gYS9saWJhdmZvcm1hdC9tcGVndHNlbmMuYwo+ID4gKysrIGIvbGliYXZmb3JtYXQvbXBl Z3RzZW5jLmMKPiA+IEBAIC0yMzM3LDYgKzIzMzcsOCBAQCBzdGF0aWMgaW50IG1wZWd0c19jaGVj a19iaXRzdHJlYW0oQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QsCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUgPiAw ICYmCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0LT5jb2RlY3Bhci0+ZXh0 cmFkYXRhWzBdID09IDEpKSkKPiA+ICAgICAgICAgICAgICByZXQgPSBmZl9zdHJlYW1fYWRkX2Jp dHN0cmVhbV9maWx0ZXIoc3QsICJoZXZjX21wNHRvYW5uZXhiIiwgTlVMTCk7Cj4gPiArICAgIH0g ZWxzZSBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9TQ1RFXzM1KSB7 Cj4gPiArICAgICAgICByZXQgPSBmZl9zdHJlYW1fYWRkX2JpdHN0cmVhbV9maWx0ZXIoc3QsICJz Y3RlMzVwdHNhZGp1c3QiLCBOVUxMKTsKPiA+ICAgICAgfQo+ID4KPiA+ICAgICAgcmV0dXJuIHJl dDsKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVz dEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKVGhhbmtzIGZvciByZXZp ZXdpbmcuICBUaGVzZSBhbGwgc2VlbSBsaWtlIHJlYXNvbmFibGUgY29tbWVudHMgYW5kIEkKd2ls bCBpbmNvcnBvcmF0ZSB0aGVtIGludG8gdGhlIG5leHQgcGF0Y2ggc2VyaWVzLgoKUmVnYXJkcywK CkRldmluCgotLSAKRGV2aW4gSGVpdG11ZWxsZXIsIFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcgpM VE4gR2xvYmFsIENvbW11bmljYXRpb25zCm86ICsxICgzMDEpIDM2My0xMDAxCnc6IGh0dHBzOi8v bHRuZ2xvYmFsLmNvbSAgZTogZGV2aW4uaGVpdG11ZWxsZXJAbHRuZ2xvYmFsLmNvbQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCg==