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 EA4F84DFD0 for ; Sun, 27 Apr 2025 01:37:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B356968B485; Sun, 27 Apr 2025 04:37:30 +0300 (EEST) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D7EB2687D99 for ; Sun, 27 Apr 2025 04:37:23 +0300 (EEST) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-223fd89d036so44956455ad.1 for ; Sat, 26 Apr 2025 18:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=emma-gg.20230601.gappssmtp.com; s=20230601; t=1745717842; x=1746322642; darn=ffmpeg.org; 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=VQ3CHBfbNb1GcnZmuF5BawiSKB3SUmGp0ZBZbJ1v0aw=; b=ocfw3gAPF+9PK1VMcy7PeayoE4D+UOBiH/d9mKv7PWAUylO39ISoWf5o2dx3vr8egj ntZUFLVnoeh52B+8BvzIoht5yufliTa/npHc/kp2ufRowh/LhBj/Q8mGEJn9hBlkkYCE kfJFaodeoHMKteu7cT7zGbdL3JUORVGayaZH/NPfEvL6QL4nII6ZZBQCykPmkHDUjHkP otkvvzckxC3P3oVgxB00i/tU9QLV5ssCGvlQYlcLubBw8oaafrOgg5LZ7l7yF6iye9pS gBRmWnca2tNjLNScZJNLxcSNldzs/Th5AgoTB/XA3LRX+6wh40VCF7pnOsKUwPsue7Dy dZzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745717842; x=1746322642; 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=VQ3CHBfbNb1GcnZmuF5BawiSKB3SUmGp0ZBZbJ1v0aw=; b=Q+gkddR2233A8u1jdK2UgEQj8ZXf3DsAnAB7De7rXS6hFQdvRNcMNVw1BAvIjX/Kad dvDG/iclwoxZKeCXXKoHhFOuDvksK2Gegt2+6x1IaHCRsf8GVamHiadjRI1v5JWdjX7p cgsomnYFvROHJiPK+mNT1/UEpduEar/F6n18BOVKu8+4dwgWZKBuLflT5rjdP8AFPCM7 XMGOyTvi82/2SgPDzYo/NuVlRLsfSn3SzRQtefRlBzblsdZClqHMtpPfNSocRSnif0Mh d2b7uEUBRFpQekQPIG5Cb7EdzzISv4qHt8d3gIGTT32b2RefIfhDL4rSayexnCU98jST 3XlA== X-Gm-Message-State: AOJu0Yz0AbGzcNg+k0YFKzjqEoRbl+OP6rhE3WCcuaJpjQGNzZZs5lMG j5Yo+hO8cCHrBoGwQUg8o29cbezX7fQooRTyAVndhPDPC8C9sL4gqurAH1qpoQPWHjvJje0OEAG hfWnG0JTW2gSfgbKMcGuTBn/+Y7tHMTAQLY6XcjQyPOVpgFpayNw= X-Gm-Gg: ASbGncvMKDHweinQozHIkaZkJAIx9HPuh8mvhrp18S0Lt0b22lweSADFO6E3JBhi+Sp XTzdYWdTrkEdI5EMGDba9jHSsowuYnmzq2/rWAfP3n5SiZSHsyHGm7QmOejdFptzsbejLzgGGrQ WPf3OtKh8clJzEvnJKa+keJipk X-Google-Smtp-Source: AGHT+IG3cqzzzPEpUA5Y9Ul8UpVqdo5Lu4u9HZNIrsrOdMawsxDisEkFiSdSO7EjUoISLrIKGogjnmaTzjmPEgbwHHk= X-Received: by 2002:a17:902:db09:b0:215:b473:1dc9 with SMTP id d9443c01a7336-22dc6a81e04mr69619645ad.46.1745717841507; Sat, 26 Apr 2025 18:37:21 -0700 (PDT) MIME-Version: 1.0 References: <20250425160509.54880-1-emma@emma.gg> <20250425160509.54880-3-emma@emma.gg> In-Reply-To: <20250425160509.54880-3-emma@emma.gg> From: Emma Worley Date: Sun, 27 Apr 2025 10:37:10 +0900 X-Gm-Features: ATxdqUEieHKf3a_zjd0Cp2wFwj34ubzQfATo4DF-gjwXcUvxuT3wrUbY-VJX9aw Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH v5 3/3] lavc/dxvenc: improve compatibility with Resolume products 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: R2l2ZW4gdGhhdCB0aGlzIGlzIGEgY29ycmVjdG5lc3MgZml4IGFuZCBoYXMgZ29uZSB0aHJvdWdo IGEgZmV3Cml0ZXJhdGlvbnMgb2YgcmV2aWV3LCBhbnkgb2JqZWN0aW9ucyB0byBtZXJnaW5nIG5v dyBhbmQgZXhwbG9yaW5nCm9wdGltaXphdGlvbnMgYXJvdW5kIHRoZSBwYWRkaW5nIGxhdGVyPwoK Ck9uIFNhdCwgQXByIDI2LCAyMDI1IGF0IDE6MDXigK9BTSBFbW1hIFdvcmxleSA8ZW1tYUBlbW1h LmdnPiB3cm90ZToKPgo+IEltcHJvdmVzIGNvbXBhdGliaWxpdHkgd2l0aCBSZXNvbHVtZSBwcm9k dWN0cyBieSBhZGRpbmcgYW4gYWRkaXRpb25hbAo+IGhhc2h0YWJsZSBmb3IgRFhUIGNvbG9yK0xV VCBjb21iaW5hdGlvbnMsIGFuZCBwYWRkaW5nIHRoZSBEWFQgdGV4dHVyZQo+IGRpbWVuc2lvbnMg dG8gdGhlIG5leHQgbGFyZ2VzdCBtdWx0aXBsZSBvZiAxNi4gUHJvZHVjZXMgaWRlbnRpY2FsCj4g cGFja2V0cyB0byBSZXNvbHVtZSBBbGxleSBpbiBtYW51YWwgdGVzdHMuCj4KPiBTaWduZWQtb2Zm LWJ5OiBFbW1hIFdvcmxleSA8ZW1tYUBlbW1hLmdnPgo+IC0tLQo+ICBsaWJhdmNvZGVjL2R4dmVu Yy5jICAgICAgICAgfCAxMzEgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4g IHRlc3RzL3JlZi9mYXRlL2R4djNlbmMtZHh0MSB8ICAgMiArLQo+ICAyIGZpbGVzIGNoYW5nZWQs IDg2IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvZHh2ZW5jLmMgYi9saWJhdmNvZGVjL2R4dmVuYy5jCj4gaW5kZXggNmVhZjM2M2YwNi4u ZWU2YTBhNWIzNiAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL2R4dmVuYy5jCj4gKysrIGIvbGli YXZjb2RlYy9keHZlbmMuYwo+IEBAIC0zNCw2ICszNCwxMSBAQAo+Cj4gICNkZWZpbmUgRFhWX0hF QURFUl9MRU5HVEggMTIKPgo+ICsvKgo+ICsgKiBSZXNvbHVtZSB3aWxsIHJlZnVzZSB0byBkaXNw bGF5IGZyYW1lcyB0aGF0IGFyZSBub3QgcGFkZGVkIHRvIDE2eDE2IHBpeGVscy4KPiArICovCj4g KyNkZWZpbmUgRFhWX0FMSUdOKHgpIEZGQUxJR04oeCwgMTYpCj4gKwo+ICAvKgo+ICAgKiBEWFYg dXNlcyBMWi1saWtlIGJhY2stcmVmZXJlbmNlcyB0byBhdm9pZCBjb3B5aW5nIHdvcmRzIHRoYXQg aGF2ZSBhbHJlYWR5Cj4gICAqIGFwcGVhcmVkIGluIHRoZSBkZWNvbXByZXNzZWQgc3RyZWFtLiBV c2luZyBhIHNpbXBsZSBoYXNoIHRhYmxlIChIVCkKPiBAQCAtNjAsNiArNjUsNyBAQCB0eXBlZGVm IHN0cnVjdCBEWFZFbmNDb250ZXh0IHsKPgo+ICAgICAgRkZIYXNodGFibGVDb250ZXh0ICpjb2xv cl9odDsKPiAgICAgIEZGSGFzaHRhYmxlQ29udGV4dCAqbHV0X2h0Owo+ICsgICAgRkZIYXNodGFi bGVDb250ZXh0ICpjb21ib19odDsKPiAgfSBEWFZFbmNDb250ZXh0Owo+Cj4gIC8qIENvbnZlcnRz IGFuIGluZGV4IG9mZnNldCB2YWx1ZSB0byBhIDItYml0IG9wY29kZSBhbmQgcHVzaGVzIGl0IHRv IGEgc3RyZWFtLgo+IEBAIC05NCwxMCArMTAwLDE0IEBAIHN0YXRpYyBpbnQgZHh2X2NvbXByZXNz X2R4dDEoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICAgICAgRFhWRW5jQ29udGV4dCAqY3R4ID0g YXZjdHgtPnByaXZfZGF0YTsKPiAgICAgIFB1dEJ5dGVDb250ZXh0ICpwYmMgPSAmY3R4LT5wYmM7 Cj4gICAgICB2b2lkICp2YWx1ZTsKPiAtICAgIHVpbnQzMl90IGNvbG9yLCBsdXQsIGlkeCwgY29s b3JfaWR4LCBsdXRfaWR4LCBwcmV2X3Bvcywgc3RhdGUgPSAxNiwgcG9zID0gMCwgb3AgPSAwOwo+ ICsgICAgdWludDY0X3QgY29tYm87Cj4gKyAgICB1aW50MzJfdCBjb2xvciwgbHV0LCBpZHgsIGNv bWJvX2lkeCwgcHJldl9wb3MsIG9sZF9wb3MsIHN0YXRlID0gMTYsIHBvcyA9IDAsIG9wID0gMDsK Pgo+ICAgICAgZmZfaGFzaHRhYmxlX2NsZWFyKGN0eC0+Y29sb3JfaHQpOwo+ICAgICAgZmZfaGFz aHRhYmxlX2NsZWFyKGN0eC0+bHV0X2h0KTsKPiArICAgIGZmX2hhc2h0YWJsZV9jbGVhcihjdHgt PmNvbWJvX2h0KTsKPiArCj4gKyAgICBmZl9oYXNodGFibGVfc2V0KGN0eC0+Y29tYm9faHQsIGN0 eC0+dGV4X2RhdGEsICZwb3MpOwo+Cj4gICAgICBieXRlc3RyZWFtMl9wdXRfbGUzMihwYmMsIEFW X1JMMzIoY3R4LT50ZXhfZGF0YSkpOwo+ICAgICAgZmZfaGFzaHRhYmxlX3NldChjdHgtPmNvbG9y X2h0LCBjdHgtPnRleF9kYXRhLCAmcG9zKTsKPiBAQCAtMTA3LDUxICsxMTcsNDYgQEAgc3RhdGlj IGludCBkeHZfY29tcHJlc3NfZHh0MShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4gICAgICBwb3Mr KzsKPgo+ICAgICAgd2hpbGUgKHBvcyArIDIgPD0gY3R4LT50ZXhfc2l6ZSAvIDQpIHsKPiAtICAg ICAgICBpZHggPSAwOwo+IC0gICAgICAgIGNvbG9yX2lkeCA9IDA7Cj4gLSAgICAgICAgbHV0X2lk eCA9IDA7Cj4gKyAgICAgICAgY29tYm8gPSBBVl9STDY0KGN0eC0+dGV4X2RhdGEgKyBwb3MgKiA0 KTsKPiArICAgICAgICBjb21ib19pZHggPSBmZl9oYXNodGFibGVfZ2V0KGN0eC0+Y29tYm9faHQs ICZjb21ibywgJnByZXZfcG9zKSA/IHBvcyAtIHByZXZfcG9zIDogMDsKPiArICAgICAgICBpZHgg PSBjb21ib19pZHg7Cj4gKyAgICAgICAgUFVTSF9PUCgyKTsKPiArICAgICAgICBpZiAocG9zID49 IExPT0tCQUNLX1dPUkRTKSB7Cj4gKyAgICAgICAgICAgIG9sZF9wb3MgPSBwb3MgLSBMT09LQkFD S19XT1JEUzsKPiArICAgICAgICAgICAgaWYgKGZmX2hhc2h0YWJsZV9nZXQoY3R4LT5jb21ib19o dCwgY3R4LT50ZXhfZGF0YSArIG9sZF9wb3MgKiA0LCAmcHJldl9wb3MpICYmIHByZXZfcG9zIDw9 IG9sZF9wb3MpCj4gKyAgICAgICAgICAgICAgICBmZl9oYXNodGFibGVfZGVsZXRlKGN0eC0+Y29t Ym9faHQsIGN0eC0+dGV4X2RhdGEgKyBvbGRfcG9zICogNCk7Cj4gKyAgICAgICAgfQo+ICsgICAg ICAgIGZmX2hhc2h0YWJsZV9zZXQoY3R4LT5jb21ib19odCwgJmNvbWJvLCAmcG9zKTsKPgo+ICAg ICAgICAgIGNvbG9yID0gQVZfUkwzMihjdHgtPnRleF9kYXRhICsgcG9zICogNCk7Cj4gLSAgICAg ICAgaWYgKGZmX2hhc2h0YWJsZV9nZXQoY3R4LT5jb2xvcl9odCwgJmNvbG9yLCAmcHJldl9wb3Mp KQo+IC0gICAgICAgICAgICBjb2xvcl9pZHggPSBwb3MgLSBwcmV2X3BvczsKPiAtICAgICAgICBm Zl9oYXNodGFibGVfc2V0KGN0eC0+Y29sb3JfaHQsICZjb2xvciwgJnBvcyk7Cj4gLQo+ICsgICAg ICAgIGlmICghY29tYm9faWR4KSB7Cj4gKyAgICAgICAgICAgIGlkeCA9IGZmX2hhc2h0YWJsZV9n ZXQoY3R4LT5jb2xvcl9odCwgJmNvbG9yLCAmcHJldl9wb3MpID8gcG9zIC0gcHJldl9wb3MgOiAw Owo+ICsgICAgICAgICAgICBQVVNIX09QKDIpOwo+ICsgICAgICAgICAgICBpZiAoIWlkeCkKPiAr ICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW0yX3B1dF9sZTMyKHBiYywgY29sb3IpOwo+ICsgICAg ICAgIH0KPiAgICAgICAgICBpZiAocG9zID49IExPT0tCQUNLX1dPUkRTKSB7Cj4gLSAgICAgICAg ICAgIHVpbnQzMl90IG9sZF9wb3MgPSBwb3MgLSBMT09LQkFDS19XT1JEUzsKPiArICAgICAgICAg ICAgb2xkX3BvcyA9IHBvcyAtIExPT0tCQUNLX1dPUkRTOwo+ICAgICAgICAgICAgICBpZiAoZmZf aGFzaHRhYmxlX2dldChjdHgtPmNvbG9yX2h0LCBjdHgtPnRleF9kYXRhICsgb2xkX3BvcyAqIDQs ICZwcmV2X3BvcykgJiYgcHJldl9wb3MgPD0gb2xkX3BvcykKPiAgICAgICAgICAgICAgICAgIGZm X2hhc2h0YWJsZV9kZWxldGUoY3R4LT5jb2xvcl9odCwgY3R4LT50ZXhfZGF0YSArIG9sZF9wb3Mg KiA0KTsKPiAgICAgICAgICB9Cj4gKyAgICAgICAgZmZfaGFzaHRhYmxlX3NldChjdHgtPmNvbG9y X2h0LCAmY29sb3IsICZwb3MpOwo+ICAgICAgICAgIHBvcysrOwo+Cj4gICAgICAgICAgbHV0ID0g QVZfUkwzMihjdHgtPnRleF9kYXRhICsgcG9zICogNCk7Cj4gLSAgICAgICAgaWYgKGNvbG9yX2lk eCAmJiBsdXQgPT0gQVZfUkwzMihjdHgtPnRleF9kYXRhICsgKHBvcyAtIGNvbG9yX2lkeCkgKiA0 KSkgewo+IC0gICAgICAgICAgICBpZHggPSBjb2xvcl9pZHg7Cj4gLSAgICAgICAgfSBlbHNlIHsK PiAtICAgICAgICAgICAgaWR4ID0gMDsKPiAtICAgICAgICAgICAgaWYgKGZmX2hhc2h0YWJsZV9n ZXQoY3R4LT5sdXRfaHQsICZsdXQsICZwcmV2X3BvcykpCj4gLSAgICAgICAgICAgICAgICBsdXRf aWR4ID0gcG9zIC0gcHJldl9wb3M7Cj4gLSAgICAgICAgICAgIGZmX2hhc2h0YWJsZV9zZXQoY3R4 LT5sdXRfaHQsICZsdXQsICZwb3MpOwo+ICsgICAgICAgIGlmICghY29tYm9faWR4KSB7Cj4gKyAg ICAgICAgICAgIGlkeCA9IGZmX2hhc2h0YWJsZV9nZXQoY3R4LT5sdXRfaHQsICZsdXQsICZwcmV2 X3BvcykgPyBwb3MgLSBwcmV2X3BvcyA6IDA7Cj4gKyAgICAgICAgICAgIFBVU0hfT1AoMik7Cj4g KyAgICAgICAgICAgIGlmICghaWR4KQo+ICsgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfcHV0 X2xlMzIocGJjLCBsdXQpOwo+ICAgICAgICAgIH0KPiAgICAgICAgICBpZiAocG9zID49IExPT0tC QUNLX1dPUkRTKSB7Cj4gLSAgICAgICAgICAgIHVpbnQzMl90IG9sZF9wb3MgPSBwb3MgLSBMT09L QkFDS19XT1JEUzsKPiArICAgICAgICAgICAgb2xkX3BvcyA9IHBvcyAtIExPT0tCQUNLX1dPUkRT Owo+ICAgICAgICAgICAgICBpZiAoZmZfaGFzaHRhYmxlX2dldChjdHgtPmx1dF9odCwgY3R4LT50 ZXhfZGF0YSArIG9sZF9wb3MgKiA0LCAmcHJldl9wb3MpICYmIHByZXZfcG9zIDw9IG9sZF9wb3Mp Cj4gICAgICAgICAgICAgICAgICBmZl9oYXNodGFibGVfZGVsZXRlKGN0eC0+bHV0X2h0LCBjdHgt PnRleF9kYXRhICsgb2xkX3BvcyAqIDQpOwo+ICAgICAgICAgIH0KPiArICAgICAgICBmZl9oYXNo dGFibGVfc2V0KGN0eC0+bHV0X2h0LCAmbHV0LCAmcG9zKTsKPiAgICAgICAgICBwb3MrKzsKPiAt Cj4gLSAgICAgICAgUFVTSF9PUCgyKTsKPiAtCj4gLSAgICAgICAgaWYgKCFpZHgpIHsKPiAtICAg ICAgICAgICAgaWR4ID0gY29sb3JfaWR4Owo+IC0gICAgICAgICAgICBQVVNIX09QKDIpOwo+IC0g ICAgICAgICAgICBpZiAoIWlkeCkKPiAtICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW0yX3B1dF9s ZTMyKHBiYywgIGNvbG9yKTsKPiAtCj4gLSAgICAgICAgICAgIGlkeCA9IGx1dF9pZHg7Cj4gLSAg ICAgICAgICAgIFBVU0hfT1AoMik7Cj4gLSAgICAgICAgICAgIGlmICghaWR4KQo+IC0gICAgICAg ICAgICAgICAgYnl0ZXN0cmVhbTJfcHV0X2xlMzIocGJjLCAgbHV0KTsKPiAtICAgICAgICB9Cj4g ICAgICB9Cj4KPiAgICAgIHJldHVybiAwOwo+IEBAIC0xNzIsMTIgKzE3Nyw1MCBAQCBzdGF0aWMg aW50IGR4dl9lbmNvZGUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVlBhY2tldCAqcGt0LAo+ICAg ICAgICAgIHJldHVybiByZXQ7Cj4KPiAgICAgIGlmIChjdHgtPmVuYy50ZXhfZnVuY3QpIHsKPiAr ICAgICAgICB1aW50OF90ICpzYWZlX2RhdGFbNF0gPSB7ZnJhbWUtPmRhdGFbMF0sIDAsIDAsIDB9 Owo+ICsgICAgICAgIGludCBzYWZlX2xpbmVzaXplWzRdID0ge2ZyYW1lLT5saW5lc2l6ZVswXSwg MCwgMCwgMH07Cj4gKwo+ICsgICAgICAgIGlmIChhdmN0eC0+d2lkdGggIT0gRFhWX0FMSUdOKGF2 Y3R4LT53aWR0aCkgfHwgYXZjdHgtPmhlaWdodCAhPSBEWFZfQUxJR04oYXZjdHgtPmhlaWdodCkp IHsKPiArICAgICAgICAgICAgcmV0ID0gYXZfaW1hZ2VfYWxsb2MoCj4gKyAgICAgICAgICAgICAg ICBzYWZlX2RhdGEsCj4gKyAgICAgICAgICAgICAgICBzYWZlX2xpbmVzaXplLAo+ICsgICAgICAg ICAgICAgICAgRFhWX0FMSUdOKGF2Y3R4LT53aWR0aCksCj4gKyAgICAgICAgICAgICAgICBEWFZf QUxJR04oYXZjdHgtPmhlaWdodCksCj4gKyAgICAgICAgICAgICAgICBhdmN0eC0+cGl4X2ZtdCwK PiArICAgICAgICAgICAgICAgIDEpOwo+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPiArICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsgICAgICAgICAgICBhdl9pbWFnZV9jb3B5 MigKPiArICAgICAgICAgICAgICAgIHNhZmVfZGF0YSwKPiArICAgICAgICAgICAgICAgIHNhZmVf bGluZXNpemUsCj4gKyAgICAgICAgICAgICAgICBmcmFtZS0+ZGF0YSwKPiArICAgICAgICAgICAg ICAgIGZyYW1lLT5saW5lc2l6ZSwKPiArICAgICAgICAgICAgICAgIGF2Y3R4LT5waXhfZm10LAo+ ICsgICAgICAgICAgICAgICAgYXZjdHgtPndpZHRoLAo+ICsgICAgICAgICAgICAgICAgYXZjdHgt PmhlaWdodCk7Cj4gKwo+ICsgICAgICAgICAgICBpZiAoYXZjdHgtPndpZHRoICE9IERYVl9BTElH TihhdmN0eC0+d2lkdGgpKSB7Cj4gKyAgICAgICAgICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8 IGF2Y3R4LT5oZWlnaHQ7IHkrKykgewo+ICsgICAgICAgICAgICAgICAgICAgIG1lbXNldChzYWZl X2RhdGFbMF0gKyB5ICogc2FmZV9saW5lc2l6ZVswXSArIGZyYW1lLT5saW5lc2l6ZVswXSwgMCwg c2FmZV9saW5lc2l6ZVswXSAtIGZyYW1lLT5saW5lc2l6ZVswXSk7Cj4gKyAgICAgICAgICAgICAg ICB9Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgaWYgKGF2Y3R4LT5oZWlnaHQgIT0g RFhWX0FMSUdOKGF2Y3R4LT5oZWlnaHQpKSB7Cj4gKyAgICAgICAgICAgICAgICBmb3IgKGludCB5 ID0gYXZjdHgtPmhlaWdodDsgeSA8IERYVl9BTElHTihhdmN0eC0+aGVpZ2h0KTsgeSsrKSB7Cj4g KyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KHNhZmVfZGF0YVswXSArIHkgKiBzYWZlX2xpbmVz aXplWzBdLCAwLCBzYWZlX2xpbmVzaXplWzBdKTsKPiArICAgICAgICAgICAgICAgIH0KPiArICAg ICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArCj4gICAgICAgICAgY3R4LT5lbmMudGV4X2RhdGEu b3V0ID0gY3R4LT50ZXhfZGF0YTsKPiAtICAgICAgICBjdHgtPmVuYy5mcmFtZV9kYXRhLmluID0g ZnJhbWUtPmRhdGFbMF07Cj4gLSAgICAgICAgY3R4LT5lbmMuc3RyaWRlID0gZnJhbWUtPmxpbmVz aXplWzBdOwo+IC0gICAgICAgIGN0eC0+ZW5jLndpZHRoICA9IGF2Y3R4LT53aWR0aDsKPiAtICAg ICAgICBjdHgtPmVuYy5oZWlnaHQgPSBhdmN0eC0+aGVpZ2h0Owo+ICsgICAgICAgIGN0eC0+ZW5j LmZyYW1lX2RhdGEuaW4gPSBzYWZlX2RhdGFbMF07Cj4gKyAgICAgICAgY3R4LT5lbmMuc3RyaWRl ID0gc2FmZV9saW5lc2l6ZVswXTsKPiArICAgICAgICBjdHgtPmVuYy53aWR0aCAgPSBEWFZfQUxJ R04oYXZjdHgtPndpZHRoKTsKPiArICAgICAgICBjdHgtPmVuYy5oZWlnaHQgPSBEWFZfQUxJR04o YXZjdHgtPmhlaWdodCk7Cj4gICAgICAgICAgZmZfdGV4dHVyZWRzcF9leGVjX2NvbXByZXNzX3Ro cmVhZHMoYXZjdHgsICZjdHgtPmVuYyk7Cj4gKwo+ICsgICAgICAgIGlmIChzYWZlX2RhdGFbMF0g IT0gZnJhbWUtPmRhdGFbMF0pCj4gKyAgICAgICAgICAgIGF2X2ZyZWVwKCZzYWZlX2RhdGFbMF0p Owo+ICAgICAgfSBlbHNlIHsKPiAgICAgICAgICAvKiB1bmltcGxlbWVudGVkOiBZQ29DZyBmb3Jt YXRzICovCj4gICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gQEAgLTIxNiwx NCArMjU5LDYgQEAgc3RhdGljIGF2X2NvbGQgaW50IGR4dl9pbml0KEFWQ29kZWNDb250ZXh0ICph dmN0eCkKPiAgICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgfQo+Cj4gLSAgICBpZiAoYXZjdHgt PndpZHRoICUgVEVYVFVSRV9CTE9DS19XIHx8IGF2Y3R4LT5oZWlnaHQgJSBURVhUVVJFX0JMT0NL X0gpIHsKPiAtICAgICAgICBhdl9sb2coYXZjdHgsCj4gLSAgICAgICAgICAgICAgIEFWX0xPR19F UlJPUiwKPiAtICAgICAgICAgICAgICAgIlZpZGVvIHNpemUgJWR4JWQgaXMgbm90IG11bHRpcGxl IG9mICJBVl9TVFJJTkdJRlkoVEVYVFVSRV9CTE9DS19XKSJ4IkFWX1NUUklOR0lGWShURVhUVVJF X0JMT0NLX0gpIi5cbiIsCj4gLSAgICAgICAgICAgICAgIGF2Y3R4LT53aWR0aCwgYXZjdHgtPmhl aWdodCk7Cj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gLSAgICB9Cj4g LQo+ICAgICAgZmZfdGV4dHVyZWRzcGVuY19pbml0KCZ0ZXhkc3ApOwo+Cj4gICAgICBzd2l0Y2gg KGN0eC0+dGV4X2ZtdCkgewo+IEBAIC0yMzcsMTAgKzI3MiwxMCBAQCBzdGF0aWMgYXZfY29sZCBp bnQgZHh2X2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICAgICAgICAgIHJldHVybiBBVkVS Uk9SX0lOVkFMSUREQVRBOwo+ICAgICAgfQo+ICAgICAgY3R4LT5lbmMucmF3X3JhdGlvID0gMTY7 Cj4gLSAgICBjdHgtPnRleF9zaXplID0gYXZjdHgtPndpZHRoICAvIFRFWFRVUkVfQkxPQ0tfVyAq Cj4gLSAgICAgICAgICAgICAgICAgICAgYXZjdHgtPmhlaWdodCAvIFRFWFRVUkVfQkxPQ0tfSCAq Cj4gKyAgICBjdHgtPnRleF9zaXplID0gRFhWX0FMSUdOKGF2Y3R4LT53aWR0aCkgLyBURVhUVVJF X0JMT0NLX1cgKgo+ICsgICAgICAgICAgICAgICAgICAgIERYVl9BTElHTihhdmN0eC0+aGVpZ2h0 KSAvIFRFWFRVUkVfQkxPQ0tfSCAqCj4gICAgICAgICAgICAgICAgICAgICAgY3R4LT5lbmMudGV4 X3JhdGlvOwo+IC0gICAgY3R4LT5lbmMuc2xpY2VfY291bnQgPSBhdl9jbGlwKGF2Y3R4LT50aHJl YWRfY291bnQsIDEsIGF2Y3R4LT5oZWlnaHQgLyBURVhUVVJFX0JMT0NLX0gpOwo+ICsgICAgY3R4 LT5lbmMuc2xpY2VfY291bnQgPSBhdl9jbGlwKGF2Y3R4LT50aHJlYWRfY291bnQsIDEsIERYVl9B TElHTihhdmN0eC0+aGVpZ2h0KSAvIFRFWFRVUkVfQkxPQ0tfSCk7Cj4KPiAgICAgIGN0eC0+dGV4 X2RhdGEgPSBhdl9tYWxsb2MoY3R4LT50ZXhfc2l6ZSk7Cj4gICAgICBpZiAoIWN0eC0+dGV4X2Rh dGEpIHsKPiBAQCAtMjUxLDYgKzI4Niw5IEBAIHN0YXRpYyBhdl9jb2xkIGludCBkeHZfaW5pdChB VkNvZGVjQ29udGV4dCAqYXZjdHgpCj4gICAgICBpZiAocmV0IDwgMCkKPiAgICAgICAgICByZXR1 cm4gcmV0Owo+ICAgICAgcmV0ID0gZmZfaGFzaHRhYmxlX2FsbG9jKCZjdHgtPmx1dF9odCwgc2l6 ZW9mKHVpbnQzMl90KSwgc2l6ZW9mKHVpbnQzMl90KSwgTE9PS0JBQ0tfSFRfRUxFTVMpOwo+ICsg ICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIHJldCA9IGZmX2hh c2h0YWJsZV9hbGxvYygmY3R4LT5jb21ib19odCwgc2l6ZW9mKHVpbnQ2NF90KSwgc2l6ZW9mKHVp bnQzMl90KSwgTE9PS0JBQ0tfSFRfRUxFTVMpOwo+ICAgICAgaWYgKHJldCA8IDApCj4gICAgICAg ICAgcmV0dXJuIHJldDsKPgo+IEBAIC0yNjUsNiArMzAzLDcgQEAgc3RhdGljIGF2X2NvbGQgaW50 IGR4dl9jbG9zZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4KPiAgICAgIGZmX2hhc2h0YWJsZV9m cmVlcCgmY3R4LT5jb2xvcl9odCk7Cj4gICAgICBmZl9oYXNodGFibGVfZnJlZXAoJmN0eC0+bHV0 X2h0KTsKPiArICAgIGZmX2hhc2h0YWJsZV9mcmVlcCgmY3R4LT5jb21ib19odCk7Cj4KPiAgICAg IHJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL2R4djNlbmMtZHh0 MSBiL3Rlc3RzL3JlZi9mYXRlL2R4djNlbmMtZHh0MQo+IGluZGV4IDc0ODQ5YTgwMzEuLmUwOTAw MGUxODEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvcmVmL2ZhdGUvZHh2M2VuYy1keHQxCj4gKysrIGIv dGVzdHMvcmVmL2ZhdGUvZHh2M2VuYy1keHQxCj4gQEAgLTMsNCArMyw0IEBACj4gICNjb2RlY19p ZCAwOiBkeHYKPiAgI2RpbWVuc2lvbnMgMDogMTkyMHgxMDgwCj4gICNzYXIgMDogMS8xCj4gLTAs ICAgICAgICAgIDAsICAgICAgICAgIDAsICAgICAgICAxLCAgICA3NjUyMSwgMHhlZDM4N2E1ZQo+ ICswLCAgICAgICAgICAwLCAgICAgICAgICAwLCAgICAgICAgMSwgICAgNzYxOTAsIDB4MGU2ZjAz MjYKPiAtLQo+IDIuNDguMAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K