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 5B02B4498E for ; Wed, 28 Sep 2022 10:55:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A59868BC99; Wed, 28 Sep 2022 13:55:28 +0300 (EEST) Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C278168BA4A for ; Wed, 28 Sep 2022 13:55:21 +0300 (EEST) Received: from ursule.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 64479C003A for ; Wed, 28 Sep 2022 13:55:21 +0300 (EEST) Received: from [IPv6:::1] ([2001:14bb:a7:390a:4891:9ff:fedb:ee0f]) by ursule.remlab.net with ESMTPSA id bWH9FBkoNGMWyggAwZXkwQ (envelope-from ) for ; Wed, 28 Sep 2022 13:55:21 +0300 Date: Wed, 28 Sep 2022 13:55:17 +0300 From: =?ISO-8859-1?Q?R=E9mi_Denis-Courmont?= To: FFmpeg development discussions and patches User-Agent: K-9 Mail for Android In-Reply-To: <1E6BE8D8-758A-446A-8658-3CE90042DD70@remlab.net> References: <20220928104854.18629-1-anton@khirnov.net> <1E6BE8D8-758A-446A-8658-3CE90042DD70@remlab.net> Message-ID: <3094E230-DD7C-43F0-BBCE-963F4F5234B4@remlab.net> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/mem: add av_realloc_reuse() as a replacement for av_fast_realloc() 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: TGUgMjggc2VwdGVtYnJlIDIwMjIgMTM6NTE6NDMgR01UKzAzOjAwLCAiUsOpbWkgRGVuaXMtQ291 cm1vbnQiIDxyZW1pQHJlbWxhYi5uZXQ+IGEgw6ljcml0wqA6Cj5MZSAyOCBzZXB0ZW1icmUgMjAy MiAxMzo0ODo0OSBHTVQrMDM6MDAsIEFudG9uIEtoaXJub3YgPGFudG9uQGtoaXJub3YubmV0PiBh IMOpY3JpdMKgOgo+Pkl0IHVzZXMgc2l6ZV90IHJhdGhlciB0aGFuIHVuc2lnbmVkIGZvciB0aGUg c2l6ZSBhbmQgY29uZm9ybXMgdG8gb3VyCj4+c3RhbmRhcmQgbmFtaW5nIHNjaGVtZS4KPj4tLS0K Pj4gY29uZmlndXJlICAgICAgICAgICB8ICA1ICsrKystCj4+IGRvYy9BUEljaGFuZ2VzICAgICAg fCAgMyArKysKPj4gbGliYXZ1dGlsL21lbS5jICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+PiBsaWJhdnV0aWwvbWVtLmggICAgIHwgMzcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+PiBsaWJhdnV0aWwvdmVyc2lvbi5oIHwgIDMgKystCj4+IDUg ZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPj4KPj5kaWZm IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4+aW5kZXggNjcxMmQwNDVkOS4uZmQwZTZh ZTAzMiAxMDA3NTUKPj4tLS0gYS9jb25maWd1cmUKPj4rKysgYi9jb25maWd1cmUKPj5AQCAtNDM2 MCw3ICs0MzYwLDEwIEBAIGNhc2UgIiR0b29sY2hhaW4iIGluCj4+ICAgICAgICAgdGFyZ2V0X2V4 ZWNfZGVmYXVsdD0idmFsZ3JpbmQiCj4+ICAgICAgICAgY2FzZSAiJHRvb2xjaGFpbiIgaW4KPj4g ICAgICAgICAgICAgdmFsZ3JpbmQtbWFzc2lmKQo+Pi0gICAgICAgICAgICAgICAgdGFyZ2V0X2V4 ZWNfYXJncz0iLS10b29sPW1hc3NpZiAtLWFsbG9jLWZuPWF2X21hbGxvYyAtLWFsbG9jLWZuPWF2 X21hbGxvY3ogLS1hbGxvYy1mbj1hdl9jYWxsb2MgLS1hbGxvYy1mbj1hdl9mYXN0X3BhZGRlZF9t YWxsb2MgLS1hbGxvYy1mbj1hdl9mYXN0X21hbGxvYyAtLWFsbG9jLWZuPWF2X3JlYWxsb2NfZiAt LWFsbG9jLWZuPWF2X2Zhc3RfcmVhbGxvYyAtLWFsbG9jLWZuPWF2X3JlYWxsb2MiCj4+KyAgICAg ICAgICAgICAgICB0YXJnZXRfZXhlY19hcmdzPSItLXRvb2w9bWFzc2lmIgo+PisgICAgICAgICAg ICAgICAgZm9yIGZ1bmMgaW4gYXZfbWFsbG9jIGF2X21hbGxvY3ogYXZfY2FsbG9jIGF2X2Zhc3Rf cGFkZGVkX21hbGxvYyBhdl9mYXN0X21hbGxvYyBhdl9yZWFsbG9jX2YgYXZfZmFzdF9yZWFsbG9j IGF2X3JlYWxsb2MgYXZfcmVhbGxvY19yZXVzZTsgZG8KPj4rICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfZXhlY19hcmdzPSIkdGFyZ2V0X2V4ZWNfYXJncyAtLWFsbG9jLWZuPSRmdW5jIgo+Pisg ICAgICAgICAgICAgICAgZG9uZQo+PiAgICAgICAgICAgICAgICAgOzsKPj4gICAgICAgICAgICAg dmFsZ3JpbmQtbWVtY2hlY2spCj4+ICAgICAgICAgICAgICAgICB0YXJnZXRfZXhlY19hcmdzPSIt LWVycm9yLWV4aXRjb2RlPTEgLS1tYWxsb2MtZmlsbD0weDJhIC0tdHJhY2stb3JpZ2lucz15ZXMg LS1sZWFrLWNoZWNrPWZ1bGwgLS1nZW4tc3VwcHJlc3Npb25zPWFsbCAtLXN1cHByZXNzaW9ucz0k c291cmNlX3BhdGgvdGVzdHMvZmF0ZS12YWxncmluZC5zdXBwIgo+PmRpZmYgLS1naXQgYS9kb2Mv QVBJY2hhbmdlcyBiL2RvYy9BUEljaGFuZ2VzCj4+aW5kZXggYjBhNDFjOWUzNy4uOWE3MzVjMjdl NyAxMDA2NDQKPj4tLS0gYS9kb2MvQVBJY2hhbmdlcwo+PisrKyBiL2RvYy9BUEljaGFuZ2VzCj4+ QEAgLTE0LDYgKzE0LDkgQEAgbGliYXZ1dGlsOiAgICAgMjAyMS0wNC0yNwo+PiAKPj4gQVBJIGNo YW5nZXMsIG1vc3QgcmVjZW50IGZpcnN0Ogo+PiAKPj4rMjAyMi14eC14eCAtIHh4eHh4eHh4eHgg LSBsYXZ1IDU3LjM4LjEwMCAtIG1lbS5oCj4+KyAgQWRkIGF2X3JlYWxsb2NfcmV1c2UoKSwgZGVw cmVjYXRlIGF2X2Zhc3RfcmVhbGxvYygpLgo+PisKPj4gMjAyMi0wOS0yNiAtIHh4eHh4eHh4eHgg LSBsYXZjIDU5LjQ4LjEwMCAtIGF2Y29kZWMuaAo+PiAgIERlcHJlY2F0ZSBhdmNvZGVjX2VudW1f dG9fY2hyb21hX3BvcygpIGFuZCBhdmNvZGVjX2Nocm9tYV9wb3NfdG9fZW51bSgpLgo+PiAgIFVz ZSBhdl9jaHJvbWFfbG9jYXRpb25fZW51bV90b19wb3MoKSBvciBhdl9jaHJvbWFfbG9jYXRpb25f cG9zX3RvX2VudW0oKQo+PmRpZmYgLS1naXQgYS9saWJhdnV0aWwvbWVtLmMgYi9saWJhdnV0aWwv bWVtLmMKPj5pbmRleCAxOGFmZjUyOTFmLi41MWZkYzkxNTVmIDEwMDY0NAo+Pi0tLSBhL2xpYmF2 dXRpbC9tZW0uYwo+PisrKyBiL2xpYmF2dXRpbC9tZW0uYwo+PkBAIC01MDIsNiArNTAyLDM1IEBA IHZvaWQgYXZfbWVtY3B5X2JhY2twdHIodWludDhfdCAqZHN0LCBpbnQgYmFjaywgaW50IGNudCkK Pj4gICAgIH0KPj4gfQo+PiAKPj4rdm9pZCAqYXZfcmVhbGxvY19yZXVzZSh2b2lkICpwdHIsIHNp emVfdCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplKQo+Pit7Cj4+KyAgICBzaXplX3QgbWF4X3NpemU7 Cj4+Kwo+PisgICAgaWYgKG1pbl9zaXplIDw9ICpzaXplKQo+PisgICAgICAgIHJldHVybiBwdHI7 Cj4+Kwo+PisgICAgbWF4X3NpemUgPSBhdG9taWNfbG9hZF9leHBsaWNpdCgmbWF4X2FsbG9jX3Np emUsIG1lbW9yeV9vcmRlcl9yZWxheGVkKTsKPj4rCj4+KyAgICBpZiAobWluX3NpemUgPiBtYXhf c2l6ZSkgewo+PisgICAgICAgICpzaXplID0gMDsKPj4rICAgICAgICByZXR1cm4gTlVMTDsKPgo+ SXNuJ3QgdGhpcyBsZWFraW5nIHRoZSBleGlzdGluZyBhbGxvY2F0aW9uPwo+Cj4+KyAgICB9Cj4+ Kwo+PisgICAgbWluX3NpemUgPSBGRk1JTihtYXhfc2l6ZSwgRkZNQVgobWluX3NpemUgKyBtaW5f c2l6ZSAvIDE2ICsgMzIsIG1pbl9zaXplKSk7Cj4+Kwo+PisgICAgcHRyID0gYXZfcmVhbGxvYyhw dHIsIG1pbl9zaXplKTsKPj4rICAgIC8qIHdlIGNvdWxkIHNldCB0aGlzIHRvIHRoZSB1bm1vZGlm aWVkIG1pbl9zaXplIGJ1dCB0aGlzIGlzIHNhZmVyCj4+KyAgICAgKiBpZiB0aGUgdXNlciBsb3N0 IHRoZSBwdHIgYW5kIHVzZXMgTlVMTCBub3cKPj4rICAgICAqLwo+PisgICAgaWYgKCFwdHIpCj4+ KyAgICAgICAgbWluX3NpemUgPSAwOwo+PisKPj4rICAgICpzaXplID0gbWluX3NpemU7Cj4+Kwo+ PisgICAgcmV0dXJuIHB0cjsKPj4rfQo+PisKPj4rI2lmIEZGX0FQSV9GQVNUX0FMTE9DCj4+IHZv aWQgKmF2X2Zhc3RfcmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGludCAqc2l6ZSwgc2l6ZV90 IG1pbl9zaXplKQo+PiB7Cj4+ICAgICBzaXplX3QgbWF4X3NpemU7Cj4+QEAgLTUzMSw2ICs1NjAs NyBAQCB2b2lkICphdl9mYXN0X3JlYWxsb2Modm9pZCAqcHRyLCB1bnNpZ25lZCBpbnQgKnNpemUs IHNpemVfdCBtaW5fc2l6ZSkKPj4gCj4+ICAgICByZXR1cm4gcHRyOwo+PiB9Cj4+KyNlbmRpZgo+ PiAKPj4gc3RhdGljIGlubGluZSB2b2lkIGZhc3RfbWFsbG9jKHZvaWQgKnB0ciwgdW5zaWduZWQg aW50ICpzaXplLCBzaXplX3QgbWluX3NpemUsIGludCB6ZXJvX3JlYWxsb2MpCj4+IHsKPj5kaWZm IC0tZ2l0IGEvbGliYXZ1dGlsL21lbS5oIGIvbGliYXZ1dGlsL21lbS5oCj4+aW5kZXggZDkxMTc0 MTk2Yy4uZGViNDQwY2ExYSAxMDA2NDQKPj4tLS0gYS9saWJhdnV0aWwvbWVtLmgKPj4rKysgYi9s aWJhdnV0aWwvbWVtLmgKPj5AQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgKmF2X21hbGxvY3pfYXJy YXkoc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSkgYXZfbWFsbG9jX2F0dHJpYiBhdl9hbGxvY19z aXplCj4+ICAqIEB3YXJuaW5nIFVubGlrZSBhdl9tYWxsb2MoKSwgdGhlIHJldHVybmVkIHBvaW50 ZXIgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUKPj4gICogICAgICAgICAgY29ycmVjdGx5IGFsaWdu ZWQuIFRoZSByZXR1cm5lZCBwb2ludGVyIG11c3QgYmUgZnJlZWQgYWZ0ZXIgZXZlbgo+PiAgKiAg ICAgICAgICBpZiBzaXplIGlzIHplcm8uCj4+LSAqIEBzZWUgYXZfZmFzdF9yZWFsbG9jKCkKPj4r ICogQHNlZSBhdl9yZWFsbG9jX3JldXNlKCkKPj4gICogQHNlZSBhdl9yZWFsbG9jcCgpCj4+ICAq Lwo+PiB2b2lkICphdl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpIGF2X2FsbG9jX3Np emUoMik7Cj4+QEAgLTM0Niw2ICszNDYsMzUgQEAgYXZfYWxsb2Nfc2l6ZSgyLCAzKSB2b2lkICph dl9yZWFsbG9jX2FycmF5KHZvaWQgKnB0ciwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSkKPj4g ICovCj4+IGludCBhdl9yZWFsbG9jcF9hcnJheSh2b2lkICpwdHIsIHNpemVfdCBubWVtYiwgc2l6 ZV90IHNpemUpOwo+PiAKPj4rLyoqCj4+KyAqIFJlYWxsb2NhdGUgYSBkYXRhIGJ1ZmZlciwgcmV1 c2luZyB0aGUgZXhpc3Rpbmcgb25lIGlmIGl0IGlzIGxhcmdlIGVub3VnaC4KPj4rICoKPj4rICog VGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIGF2X3JlYWxsb2MoKSwgYnV0IG9wdGltaXplZCBm b3IgY2FzZXMgd2hlcmUgdGhlCj4+KyAqIGJ1ZmZlciBtYXkgZ3JvdyBzaWduaWZpY2FudGx5IGFu ZCBpcyBub3QgZXhwZWN0ZWQgdG8gc2hyaW5rLgo+PisgKgo+PisgKiBAcGFyYW1baW5dIHB0ciBQ cmV2aW91c2x5IGFsbG9jYXRlZCBidWZmZXIsIG9yIGBOVUxMYC4gSWYgYHB0cmAgaXMgYE5VTExg LCBhCj4+KyAqIG5ldyB1bmluaXRpYWxpemVkIGJ1ZmZlciBpcyBhbGxvY2F0ZWQuIGBwdHJgIGlz IGludmFsaWRhdGVkIHdoZW4gdGhpcwo+PisgKiBmdW5jdGlvbiByZXR1cm5zIG5vbi1gTlVMTGAg YW5kIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBpdHMgcmV0dXJuIHZhbHVlLgo+PisgKgo+PisgKiBA cGFyYW1baW4sb3V0XSBzaXplIFBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBzaXplIG9mIGJ1ZmZl ciBgcHRyYC4gVGhpcwo+PisgKiBmdW5jdGlvbiB1cGRhdGVzIGAqc2l6ZWAgdG8gdGhlIG5ldyBh bGxvY2F0ZWQgc2l6ZSAod2hpY2ggbWF5IGJlIGxhcmdlciB0aGFuCj4+KyAqIGBtaW5fc2l6ZWAp LiBgKnNpemVgIGlzIHNldCB0byAwIG9uIGZhaWx1cmUuCj4+KyAqCj4+KyAqIEBwYXJhbVtpbl0g bWluX3NpemUgTWluaW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSByZXR1cm5lZCBidWZmZXIuCj4+ KyAqCj4+KyAqIEByZXR1cm4KPj4rICogLSBBbiBhbGxvY2F0ZWQgYnVmZmVyICh0byBiZSBmcmVl ZCB3aXRoIGBhdl9mcmVlKClgKSB0aGF0IGlzIGxhcmdlIGVub3VnaCB0bwo+PisgKiAgIGhvbGQg YXQgbGVhc3QgYG1pbl9zaXplYCBieXRlcy4gVGhlIGZpcnN0IGAqc2l6ZWAgKHZhbHVlIG9uIGVu dHJ5IHRvIHRoaXMKPj4rICogICBmdW5jdGlvbikgYnl0ZXMgb2YgdGhlIGJ1ZmZlciByZW1haW4g dGhlIHNhbWUgYXMgdGhlIGRhdGEgaW4gYHB0cmAsIHRoZQo+PisgKiAgIHJlc3QgaXMgdW5pbml0 aWFsaXplZC4KPj4rICogLSBgTlVMTGAgb24gZmFpbHVyZSwgdGhlbiBgKnNpemVgIGlzIHNldCB0 byAwIGFuZCBwdHIgcmVtYWlucyB1bnRvdWNoZWQuCj4+KyAqCj4+KyAqIEBzZWUgYXZfcmVhbGxv YygpCj4+KyAqIEBzZWUgYXZfZmFzdF9tYWxsb2MoKQo+PisgKi8KPj4rdm9pZCAqYXZfcmVhbGxv Y19yZXVzZSh2b2lkICpwdHIsIHNpemVfdCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplKTsKPj4rCj4+ KyNpZiBGRl9BUElfRkFTVF9BTExPQwo+PiAvKioKPj4gICogUmVhbGxvY2F0ZSB0aGUgZ2l2ZW4g YnVmZmVyIGlmIGl0IGlzIG5vdCBsYXJnZSBlbm91Z2gsIG90aGVyd2lzZSBkbyBub3RoaW5nLgo+ PiAgKgo+PkBAIC0zNzcsMTMgKzQwNiwxNyBAQCBpbnQgYXZfcmVhbGxvY3BfYXJyYXkodm9pZCAq cHRyLCBzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplKTsKPj4gICogICAgICAgICBlcnJvcgo+PiAg KiBAc2VlIGF2X3JlYWxsb2MoKQo+PiAgKiBAc2VlIGF2X2Zhc3RfbWFsbG9jKCkKPj4rICoKPj4r ICogQGRlcHJlY2F0ZWQgdXNlIGF2X3JlYWxsb2NfcmV1c2UoKQo+PiAgKi8KPj4rYXR0cmlidXRl X2RlcHJlY2F0ZWQKPj4gdm9pZCAqYXZfZmFzdF9yZWFsbG9jKHZvaWQgKnB0ciwgdW5zaWduZWQg aW50ICpzaXplLCBzaXplX3QgbWluX3NpemUpOwo+PisjZW5kaWYKPj4gCj4+IC8qKgo+PiAgKiBB bGxvY2F0ZSBhIGJ1ZmZlciwgcmV1c2luZyB0aGUgZ2l2ZW4gb25lIGlmIGxhcmdlIGVub3VnaC4K Pj4gICoKPj4tICogQ29udHJhcnkgdG8gYXZfZmFzdF9yZWFsbG9jKCksIHRoZSBjdXJyZW50IGJ1 ZmZlciBjb250ZW50cyBtaWdodCBub3QgYmUKPj4rICogQ29udHJhcnkgdG8gYXZfcmVhbGxvY19y ZXVzZSgpLCB0aGUgY3VycmVudCBidWZmZXIgY29udGVudHMgbWlnaHQgbm90IGJlCj4+ICAqIHBy ZXNlcnZlZCBhbmQgb24gZXJyb3IgdGhlIG9sZCBidWZmZXIgaXMgZnJlZWQsIHRodXMgbm8gc3Bl Y2lhbCBoYW5kbGluZyB0bwo+PiAgKiBhdm9pZCBtZW1sZWFrcyBpcyBuZWNlc3NhcnkuCj4+ICAq Cj4+ZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmggYi9saWJhdnV0aWwvdmVyc2lvbi5o Cj4+aW5kZXggOWM0NGNlZjZhYS4uMjg1YTMyZjNkNiAxMDA2NDQKPj4tLS0gYS9saWJhdnV0aWwv dmVyc2lvbi5oCj4+KysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaAo+PkBAIC03OSw3ICs3OSw3IEBA Cj4+ICAqLwo+PiAKPj4gI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUiAgNTcKPj4tI2Rl ZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgMzcKPj4rI2RlZmluZSBMSUJBVlVUSUxfVkVS U0lPTl9NSU5PUiAgMzgKPj4gI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyAxMDAKPj4g Cj4+ICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZV VElMX1ZFUlNJT05fTUFKT1IsIFwKPj5AQCAtMTE1LDYgKzExNSw3IEBACj4+ICNkZWZpbmUgRkZf QVBJX09MRF9DSEFOTkVMX0xBWU9VVCAgICAgICAoTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgPCA1 OCkKPj4gI2RlZmluZSBGRl9BUElfQVZfRk9QRU5fVVRGOCAgICAgICAgICAgIChMSUJBVlVUSUxf VkVSU0lPTl9NQUpPUiA8IDU4KQo+PiAjZGVmaW5lIEZGX0FQSV9QS1RfRFVSQVRJT04gICAgICAg ICAgICAgKExJQkFWVVRJTF9WRVJTSU9OX01BSk9SIDwgNTgpCj4+KyNkZWZpbmUgRkZfQVBJX0ZB U1RfQUxMT0MgICAgICAgICAgICAgICAoTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgPCA1OCkKPj4g Cj4+IC8qKgo+PiAgKiBAfQo+Cj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+ Cj5UbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPmZmbXBlZy1kZXZl bC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCgpOZXZlcm1p bmQuIFRoaXMgZm9sbG93cyB0aGUgcmVhbGxvYygpIGNvbnZlbnRpb24gdGhhdCB0aGUgY2FsbGVy IHJldGFpbnMgdGhlIHJlZmVyZW5jZSBvbiBmYWlsdXJlLgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu Cg==