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 B163E4230C for ; Fri, 17 Dec 2021 12:43:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7289A68AEC8; Fri, 17 Dec 2021 14:43:45 +0200 (EET) Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 990B468ACC3 for ; Fri, 17 Dec 2021 14:43:39 +0200 (EET) Received: by mail-qk1-f180.google.com with SMTP id 132so1879160qkj.11 for ; Fri, 17 Dec 2021 04:43:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=sP103fqsUdZSwTK6GIgZcaPvdz4yqZSCfTvmsqN0YQ8=; b=d/hnLSNV89B9KKYwxQ21ViEfGQJihmMMhwB+elW5+K6yGYzfPkNycG7B0Xq3IR1g/T qlhFd+1ySNptU8cICXCBAqY4/IxzzoOoUaawa6ACuRjBRlwAuZVD1NsKL0PLMcIzAan2 qD/Gkd09KC7UJcIbbIfpkpbf/MX+0jHatyoaOz0kpA1EMbPss4lgaXsOKF9qihyB9N3Q QvaUQS9D/6UXgs0Kik3qTH/zV4uBYsa+mPHtLzpLZwdMRpY8IWKNnh6v9UmUnEev2ruw irHfMRdxgqWVN0DGIT1jSxJggXlwI656yuNDBf0qVcuJXgW8q2iyRdSt/QJOSMML7gGq fqaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=sP103fqsUdZSwTK6GIgZcaPvdz4yqZSCfTvmsqN0YQ8=; b=xCvX9o/T7qeRlEWH+QoScxtgdcCDNyqoUTDLAj8LR25DFxe6yYVhfSUHcP2/1QFd+C MmphlUfOEG1tBh3pn7/tEsfu635coMaJNRhEuEurfRFE7aqYayQQCPtdFFB4tgrOyHJJ FPDjMeTaUoz1iRH8Wf4D4jybtF9WVOg+feLRl2z668fj71ZkM24pGpqpaU+yoQq1PozA sUyao88hxiagEN2o8CicBwJklIb/Jb5ERXA4sKwycF1SmWOHwNzPYqD6TMuZryy+djzN DJWmQx45XMPp9ZIv2dTx8Onuy+KzGmnXsyYXb7A6EcxCoJaf8LmihITZ6a/jmlCvlKz4 MF+Q== X-Gm-Message-State: AOAM5336xfWgIZBFhbYQ4tYg2EAzZhi2muPKLolex9YGfDbDwZ4K58+/ LMt5/Ja+hSj4IhfOkt95HfWY05vSwqQTEA== X-Google-Smtp-Source: ABdhPJybOrbCGK0cN9HwHevCwtLLKYcQpE454PSAsWQsdmMOH3i3PkSjdFiexQAtVnwHCYgayRLIww== X-Received: by 2002:a37:9c47:: with SMTP id f68mr1499250qke.228.1639745017520; Fri, 17 Dec 2021 04:43:37 -0800 (PST) Received: from [192.168.0.13] ([181.170.250.138]) by smtp.gmail.com with ESMTPSA id bl8sm4732727qkb.38.2021.12.17.04.43.36 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 Dec 2021 04:43:37 -0800 (PST) Message-ID: Date: Fri, 17 Dec 2021 09:43:33 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211216132151.8216-1-jamrial@gmail.com> <20211216132151.8216-2-jamrial@gmail.com> <87bcdbcf-1820-5929-50a7-f7491cc5ca13@passwd.hu> From: James Almer In-Reply-To: <87bcdbcf-1820-5929-50a7-f7491cc5ca13@passwd.hu> Subject: Re: [FFmpeg-devel] [PATCH 001/279 v2] Add a new channel layout API 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: CgpPbiAxMi8xNi8yMDIxIDg6MjcgUE0sIE1hcnRvbiBCYWxpbnQgd3JvdGU6Cj4gCj4gCj4gT24g VGh1LCAxNiBEZWMgMjAyMSwgSmFtZXMgQWxtZXIgd3JvdGU6Cj4gCj4+IC0gQWRkZWQgYSAxNiBi eXRlIGZpeGVkIGFycmF5IHRvIEFWQ2hhbm5lbEN1c3RvbSB0byBnaXZlIGN1c3RvbQo+PiDCoGxh YmVscyB0byBjaGFubmVscyBpbiBDdXN0b20gb3JkZXIgbGF5b3V0cy4gVGhlc2UgbGFiZXMgd2ls bAo+PiDCoGJlIHVzZWQgYnkgdGhlIGhlbHBlcnMgd2hlbiBxdWVyeWluZyBjaGFubmVscyBieSBu YW1lIG9yCj4+IMKgZGVzY3JpYmluZyB0aGUgbGF5b3V0Lgo+IAo+IEkgZG9uJ3QgdGhpbmsgdGhp cyBpcyBhIGdvb2QgaWRlYSB0byB1c2UgdGhlIGxhYmVscyBkaXJlY3RseSBpbiBoZWxwZXJzIAo+ IGluc3RlYWQgb2YgdGhlIGNoYW5uZWwgZGVzaWduYXRpb24gbmFtZXMuIFNlZSBtb3JlIGJlbG93 Lgo+IAo+IEl0IGlzIGFsc28gbm90IGdyZWF0IHRoYXQgaWYgdGhlIHVzZXIgd2FudHMgdG8gbGFi ZWwgYSBjaGFubmVsLCBoZSBoYXMgCj4gdG8gdXNlIGEgY3VzdG9tIGxheW91dC4gU28gSSdkIHJh dGhlciByZW1vdmUgdGhlIG5hbWUgZmllbGQgZnJvbSAKPiBBVkNoYW5uZWxDdXN0b20sIEkgZmlu ZCBpdCBsaW1pdGVkIGFueXdheS4KPiAKPiBbLi5dCj4gCj4+ICtlbnVtIEFWQ2hhbm5lbCBhdl9j aGFubmVsX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIgKnN0cikKPj4gK3sKPj4gK8KgwqDCoCBpbnQg aTsKPj4gK8KgwqDCoCBjaGFyICplbmRwdHIgPSAoY2hhciAqKXN0cjsKPj4gK8KgwqDCoCBlbnVt IEFWQ2hhbm5lbCBpZCA9IEFWX0NIQU5fTk9ORTsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwg RkZfQVJSQVlfRUxFTVMoY2hhbm5lbF9uYW1lcyk7IGkrKykgewo+PiArwqDCoMKgwqDCoMKgwqAg aWYgKGNoYW5uZWxfbmFtZXNbaV0ubmFtZSAmJiAhc3RyY21wKHN0ciwgCj4+IGNoYW5uZWxfbmFt ZXNbaV0ubmFtZSkpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBpOwo+PiArwqDC oMKgIH0KPj4gK8KgwqDCoCBpZiAoIXN0cm5jbXAoc3RyLCAiVVNSIiwgMykpIHsKPj4gK8KgwqDC oMKgwqDCoMKgIGNvbnN0IGNoYXIgKnAgPSBzdHIgKyAzOwo+PiArwqDCoMKgwqDCoMKgwqAgaWQg PSBzdHJ0b2wocCwgJmVuZHB0ciwgMCk7Cj4+ICvCoMKgwqAgfQo+PiArwqDCoMKgIGlmIChpZCA+ IDAgJiYgISplbmRwdHIpCj4gCj4gaWQgPj0gMAo+IAo+IFsuLl0KPiAKPiAKPj4gK2ludCBhdl9j aGFubmVsX2xheW91dF9mcm9tX21hc2soQVZDaGFubmVsTGF5b3V0ICpjaGFubmVsX2xheW91dCwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHVpbnQ2NF90IG1hc2spCj4+ICt7Cj4+ICvCoMKgwqAgaWYgKCFtYXNrKQo+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPj4gKwo+PiArwqDCoMKgIGNo YW5uZWxfbGF5b3V0LT5vcmRlcsKgwqDCoMKgwqDCoCA9IEFWX0NIQU5ORUxfT1JERVJfTkFUSVZF Owo+PiArwqDCoMKgIGNoYW5uZWxfbGF5b3V0LT5uYl9jaGFubmVscyA9IGF2X3BvcGNvdW50NjQo bWFzayk7Cj4+ICvCoMKgwqAgY2hhbm5lbF9sYXlvdXQtPnUubWFza8KgwqDCoMKgwqAgPSBtYXNr Owo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIDA7Cj4+ICt9Cj4gCj4gUHJvYmFibHkgYSBjb25zdHJ1 Y3RvciBmb3IgY3VzdG9tIGxheW91dCB3b3VsZCBhbHNvIG1ha2Ugc2Vuc2U6Cj4gCj4gaW50IGF2 X2NoYW5uZWxfbGF5b3V0X2N1c3RvbShBVkNoYW5uZWxMYXlvdXQgKmNoYW5uZWxfbGF5b3V0LCBp bnQgCj4gbmJfY2hhbm5lbHMpCgpEb2Vzbid0IHNlZW0gdG9vIHVzZWZ1bCB0byBtZS4gSXQgd2ls bCBiYXNpY2FsbHkganVzdCBjYWxsIGF2X21hbGxvYyBmb3IgCnUubWFwIGZvciB5b3UuIFlvdSBz dGlsbCBuZWVkIHRvIGZpbGwgdGhlIGFycmF5IHdpdGggdGhlIGNoYW5uZWxzIGluIHRoZSAKb3Jk ZXIgeW91IHdhbnQgaXQsIHVubGlrZSBhdl9jaGFubmVsX2xheW91dF9mcm9tX21hc2soKSB3aGlj aCBnaXZlcyB5b3UgCmEgdXNhYmxlIGxheW91dCBkaXJlY3RseSBvbiByZXR1cm4uCgpZb3UgY2Fu IHVzZSBhdl9jaGFubmVsX2xheW91dF9mcm9tX3N0cmluZygpIGZvciB0aGlzIGluc3RlYWQsIHRo YW5rcyB0byAKeW91ciBzdWdnZXN0aW9uIHRvIHVzZSBnZW5lcmljIFVTUiVkIGRlc2lnbmF0aW9u cyBmb3Igbm8tbmFtZSBpZHMuIEluIAp0aGUgdGVzdHMgZnJvbSBwYXRjaCAyIGkgaGF2ZSBhIGNv dXBsZSBleGFtcGxlcyBvZiBpdC4KCj4gCj4gWy4uLl0KPiAKPj4gKwo+PiAraW50IGF2X2NoYW5u ZWxfbGF5b3V0X2NvcHkoQVZDaGFubmVsTGF5b3V0ICpkc3QsIGNvbnN0IAo+PiBBVkNoYW5uZWxM YXlvdXQgKnNyYykKPj4gK3sKPj4gK8KgwqDCoCBhdl9jaGFubmVsX2xheW91dF91bmluaXQoZHN0 KTsKPj4gK8KgwqDCoCAqZHN0ID0gKnNyYzsKPj4gK8KgwqDCoCBpZiAoc3JjLT5vcmRlciA9PSBB Vl9DSEFOTkVMX09SREVSX0NVU1RPTSkgewo+PiArwqDCoMKgwqDCoMKgwqAgZHN0LT51Lm1hcCA9 IGF2X21hbGxvYyhzcmMtPm5iX2NoYW5uZWxzICogc2l6ZW9mKCpkc3QtPnUubWFwKSk7Cj4gCj4g YXZfbWFsbG9jX2FycmF5KCkKPiAKPj4gK2ludCBhdl9jaGFubmVsX2xheW91dF9kZXNjcmliZV9i cHJpbnQoY29uc3QgQVZDaGFubmVsTGF5b3V0IAo+PiAqY2hhbm5lbF9sYXlvdXQsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBBVkJQcmludCAqYnApCj4+ICt7Cj4+ICvCoMKgwqAgaW50IGk7Cj4+ICsK Pj4gK8KgwqDCoCBhdl9icHJpbnRfY2xlYXIoYnApOwo+PiArCj4+ICvCoMKgwqAgc3dpdGNoIChj aGFubmVsX2xheW91dC0+b3JkZXIpIHsKPj4gK8KgwqDCoCBjYXNlIEFWX0NIQU5ORUxfT1JERVJf TkFUSVZFOgo+PiArwqDCoMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1T KGNoYW5uZWxfbGF5b3V0X21hcCk7IGkrKykKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KGNoYW5uZWxfbGF5b3V0LT51Lm1hc2sgPT0gCj4+IGNoYW5uZWxfbGF5b3V0X21hcFtpXS5sYXlv dXQudS5tYXNrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfYnByaW50 ZihicCwgIiVzIiwgY2hhbm5lbF9sYXlvdXRfbWFwW2ldLm5hbWUpOwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 Cj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBmYWxsLXRocm91Z2gKPj4gK8KgwqDCoCBjYXNlIEFWX0NI QU5ORUxfT1JERVJfQ1VTVE9NOgo+PiArwqDCoMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IGNo YW5uZWxfbGF5b3V0LT5uYl9jaGFubmVsczsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNvbnN0IGNoYXIgKmNoX25hbWUgPSBOVUxMOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBlbnVtIEFWQ2hhbm5lbCBjaCA9IEFWX0NIQU5fTk9ORTsKPj4gKwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAoY2hhbm5lbF9sYXlvdXQtPm9yZGVyID09IEFWX0NIQU5ORUxfT1JERVJf Q1VTVE9NICYmCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2hhbm5lbF9sYXlv dXQtPnUubWFwW2ldLm5hbWVbMF0pCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y2hfbmFtZSA9IGNoYW5uZWxfbGF5b3V0LT51Lm1hcFtpXS5uYW1lOwo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAoY2hhbm5lbF9sYXlvdXQtPm9yZGVyID09IEFWX0NIQU5ORUxfT1JERVJf TkFUSVZFIHx8IAo+PiAhY2hfbmFtZSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNoID0gCj4+IGF2X2NoYW5uZWxfbGF5b3V0X2NoYW5uZWxfZnJvbV9pbmRleChjaGFubmVs X2xheW91dCwgaSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2hfbmFtZSA9 IGdldF9jaGFubmVsX25hbWUoY2gpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gCj4g WW91IGFyZSBtaXhpbmcgY2hhbm5lbCBsYWJlbHMgYW5kIGNoYW5uZWwgZGVzaWduYXRpb25zLCBh bmQgaXQgY2FuIGJlIAo+IHRoZSBzb3VyY2Ugb2YgY29uZnVzaW9uLiBJIGd1ZXNzIHRoZSBtYWlu IHByb2JsZW0gaXMgdGhhdCB0aGUgbGFiZWwgb2YgCj4gdGhlIGNoYW5uZWwgY2FuIGJlIHRvdGFs bHkgdW5yZWxhdGVkIHRvIHRoZSBjaGFubmVsIGRlc2lnbmF0aW9uLgo+IAo+IFlvdSBjb3VsZCBz aG93IGl0IGFzIHNvbWUgY29tYmluYXRpb24uIEUuZy4gRkxAbGFiZWwuIFRoaXMgd2F5IHRoZXJl IAo+IHdpbGwgYmUgbm8gY29uZnVzaW9uLCB0aGF0IHBhcnQgYmVmb3JlIEAgaXMgdGhlIGRlc2ln bmF0aW9uLCBwYXJ0IGFmdGVyIAo+IHRoZSBAIGlzIHRoZSBjaGFubmVsIGxhYmVsLgo+IAo+IFsu Ll0KPiAKPj4gK2VudW0gQVZDaGFubmVsCj4+ICthdl9jaGFubmVsX2xheW91dF9jaGFubmVsX2Zy b21fc3RyaW5nKGNvbnN0IEFWQ2hhbm5lbExheW91dCAKPj4gKmNoYW5uZWxfbGF5b3V0LAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgY2hhciAqbmFtZSkKPj4gK3sKPj4gK8KgwqDCoCBpbnQg Y2hhbm5lbCwgcmV0Owo+PiArCj4+ICvCoMKgwqAgc3dpdGNoIChjaGFubmVsX2xheW91dC0+b3Jk ZXIpIHsKPj4gK8KgwqDCoCBjYXNlIEFWX0NIQU5ORUxfT1JERVJfQ1VTVE9NOgo+PiArwqDCoMKg wqDCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFubmVsX2xheW91dC0+bmJfY2hhbm5lbHM7 IGkrKykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoY2hhbm5lbF9sYXlvdXQtPnUu bWFwW2ldLm5hbWVbMF0gJiYgIXN0cmNtcChuYW1lLCAKPj4gY2hhbm5lbF9sYXlvdXQtPnUubWFw W2ldLm5hbWUpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBjaGFu bmVsX2xheW91dC0+dS5tYXBbaV0uaWQ7Cj4gCj4gVGhpcyBpcyB0aGUgcmV2ZXJzZSBjYXNlLCBJ IGFsc28gZmluZCBpdCBjb25mdXNpbmcgdGhhdCBuYW1lIGNhbiBiZSBhIAo+IGxhYmVsIGFuZCBh IGRlc2lnbmF0aW9uIGF0IHRoZSBzYW1lIHRpbWUgYW5kIGl0IGRlcGVuZHMgb24gdGhlIGNoYW5u ZWwgCj4gbGF5b3V0IHR5cGUgd2hpY2ggb25lIGlzIGl0Li4uIFlldCBhZ2Fpbiwgc29tZSBzeW50 YXggY291bGQgaGVscC4gRS5nLiBhIAo+IHN0cmluZyB3aXRob3V0IEAgaXMgYSBkZXNpZ25hdGlv biwgQGxhYmVsIGlzIGEgbGFiZWwgd2l0aG91dCBhbnkgZmlsdGVyIAo+IGZvciBjaGFubmVsIGRl c2lnbmF0aW9uLCBkZXNpZ25hdGlvbkBsYWJlbCBmaWx0ZXJzIGJvdGguCj4gCj4gWy4uXQo+IAo+ PiAraW50IGF2X2NoYW5uZWxfbGF5b3V0X2luZGV4X2Zyb21fc3RyaW5nKGNvbnN0IEFWQ2hhbm5l bExheW91dCAKPj4gKmNoYW5uZWxfbGF5b3V0LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv bnN0IGNoYXIgKm5hbWUpCj4+ICt7Cj4+ICvCoMKgwqAgZW51bSBBVkNoYW5uZWwgY2g7Cj4+ICsK Pj4gK8KgwqDCoCBzd2l0Y2ggKGNoYW5uZWxfbGF5b3V0LT5vcmRlcikgewo+PiArwqDCoMKgIGNh c2UgQVZfQ0hBTk5FTF9PUkRFUl9DVVNUT006Cj4+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKGludCBp ID0gMDsgaSA8IGNoYW5uZWxfbGF5b3V0LT5uYl9jaGFubmVsczsgaSsrKSB7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmIChjaGFubmVsX2xheW91dC0+dS5tYXBbaV0ubmFtZVswXSAmJiAh c3RyY21wKG5hbWUsIAo+PiBjaGFubmVsX2xheW91dC0+dS5tYXBbaV0ubmFtZSkpCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGk7Cj4gCj4gU2FtZSBoZXJlLgo+IAo+ IFsuLl0KPiAKPj4gK2ludCBhdl9jaGFubmVsX2xheW91dF9jaGVjayhjb25zdCBBVkNoYW5uZWxM YXlvdXQgKmNoYW5uZWxfbGF5b3V0KQo+IAo+IGF2X2NoYW5uZWxfbGF5b3V0X3ZhbGlkIHdvdWxk IGJlIG1vcmUgcmVhZGFibGUuCj4gCj4gVGhhbmtzLAo+IE1hcnRvbgo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcg bGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxt YW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg YWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=