From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 04EA44FE6C for ; Thu, 3 Jul 2025 14:08:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 18DBC68EB91; Thu, 3 Jul 2025 17:08:12 +0300 (EEST) Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id B8CD468EAC9 for ; Thu, 3 Jul 2025 17:08:05 +0300 (EEST) Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-7c5b8d13f73so521729885a.0 for ; Thu, 03 Jul 2025 07:08:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751551684; x=1752156484; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yukht5iFg+W7qhqDc/9RBZGUrFV0TCcB2/QsqbH/ZpI=; b=WmGmob9DaGVOGYeIPjblJxHb4A/2pbjQ2XjelPcwFLWTSWPpbFipu9q3Y6llLBE9tD OlLcXAHXH/x2tpTkJWVBcIhgEsiyTzcJSojd6hBKYg7nxX0Y4/m6kiqr8/nv9e7OhrsO 9DSXoT6QeIsgGaTF1cn5JUhSJcXKROb9fcULshe0qNg5TrjfEIaXAa9Ob1fioZ3wH8RE OQ+0PEnMFw9HdL0VtL9j91fPtDPeHHlEtQj1nGnE1W6Ogjxfmn91yoNbS/1QercIB/LD sWEB5MlQSrgFTF7pVqiPyOeURJk8DHfVuRc6aZWdNAUTTzJ1HIb8cegDUlkB1X4kfQHV 2s5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751551684; x=1752156484; h=content-transfer-encoding:cc: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=yukht5iFg+W7qhqDc/9RBZGUrFV0TCcB2/QsqbH/ZpI=; b=kh6sAfORl7JBgRHqnTqgR1inGGIeyqM76BmW/mAIQM7+57Xm8RXr8/yNKYcW+lXNbs vLCQgeQVRDbg941VvqhyWbsY6u/F1+UMUDfhkj3zSH5CP9z55nTnPY1t3NdKR1rjP++l SndyMcM2hqBGv48mNveBQ+hIHL1nWWam2IrC3kA3jx108cdOMQZSb1DRlyrcFi4OoLbb ieiYGZ5wXjWXcDCixyYer6VpMP7AhEM3uVd+dPEN64RjYCEOZcoGdMCSAltB2rqH9nHi kzPT+IXkDeJnf6jXZQHU3mY2XzCR2OxqiskKhrpsaRdRveIiSeQtx0zmcExmk5vDZNZc /teA== X-Gm-Message-State: AOJu0Yzcn6rQczN5kg5zasZiJse7rpV9pRpuL5QNDGPUX7Ic3hBFcwjq DgYzyASpuca3rbgSMC5OPOeN86xlBc1YknEn1V+yRhzX3cx134LN1pyUowS8t5h0JMBmnPcry2B L2qkPafvUjhNOy06bvnV5dwq6sYR4XitLqSLFtRE= X-Gm-Gg: ASbGncvuPF+3Ti9qvlL+/kj2EHJzkgOSaHiD9DRjNDBjfxiiEyjRzzq7hTdhj9lut2/ sjF3P36nGq5+T/7RZz/6Hm0+K8aPzzPTlQAUPTfNtSLQVoyDn96l8tep7e04rzsNCzR3NuHYZq6 MQqF6CbXL2YjwB7MV2hcPgrn+dwQGux/tyt/V/qDIS3w== X-Google-Smtp-Source: AGHT+IHtzWRYxUFSixVfEA2v2DJasYGWm3ewsGiw0/x5f9POYM8Txt7FdQsuZzxF574BG7qlN+5KyiegD7KsfVHC7Ak= X-Received: by 2002:a05:620a:40ca:b0:7d4:5a4a:ceaa with SMTP id af79cd13be357-7d5c477e52emr861600985a.27.1751551684079; Thu, 03 Jul 2025 07:08:04 -0700 (PDT) MIME-Version: 1.0 References: <20250702165655.1325-1-timo@rothenpieler.org> <20250702165655.1325-13-timo@rothenpieler.org> In-Reply-To: <20250702165655.1325-13-timo@rothenpieler.org> From: Steven Liu Date: Thu, 3 Jul 2025 22:07:52 +0800 X-Gm-Features: Ac12FXxwJg2kBcOMFaC-KCt_2uUrN53-r3Rc0NclL4se16h6TsYg8nWulxBrdRI Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH 12/18] avformat/udp: separate rx and tx fifo 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 Cc: Timo Rothenpieler 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: VGltbyBSb3RoZW5waWVsZXIgPHRpbW9Acm90aGVucGllbGVyLm9yZz4g5LqOMjAyNeW5tDfmnIgz 5pel5ZGo5ZubIDAxOjA05YaZ6YGT77yaCj4KPiAtLS0KPiAgbGliYXZmb3JtYXQvdWRwLmMgfCA0 OSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvdWRwLmMgYi9saWJhdmZvcm1hdC91ZHAuYwo+IGluZGV4IDdkNjRm ZjA3ZWQuLmUwMmVmZjBmMzMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvdWRwLmMKPiArKysg Yi9saWJhdmZvcm1hdC91ZHAuYwo+IEBAIC05Niw3ICs5Niw4IEBAIHR5cGVkZWYgc3RydWN0IFVE UENvbnRleHQgewo+Cj4gICAgICAvKiBDaXJjdWxhciBCdWZmZXIgdmFyaWFibGVzIGZvciB1c2Ug aW4gVURQIHJlY2VpdmUgY29kZSAqLwo+ICAgICAgaW50IGNpcmN1bGFyX2J1ZmZlcl9zaXplOwo+ IC0gICAgQVZGaWZvICpmaWZvOwo+ICsgICAgQVZGaWZvICpyeF9maWZvOwo+ICsgICAgQVZGaWZv ICp0eF9maWZvOwo+ICAgICAgaW50IGNpcmN1bGFyX2J1ZmZlcl9lcnJvcjsKPiAgICAgIGludDY0 X3QgYml0cmF0ZTsgLyogbnVtYmVyIG9mIGJpdHMgdG8gc2VuZCBwZXIgc2Vjb25kICovCj4gICAg ICBpbnQ2NF90IGJ1cnN0X2JpdHM7Cj4gQEAgLTUyNyw3ICs1MjgsNyBAQCBzdGF0aWMgdm9pZCAq Y2lyY3VsYXJfYnVmZmVyX3Rhc2tfcngoIHZvaWQgKl9VUkxDb250ZXh0KQo+ICAgICAgICAgIEFW X1dMMzIocy0+dG1wLCBsZW4pOwo+ICAgICAgICAgIG1lbWNweShzLT50bXAgKyA0LCAmYWRkciwg c2l6ZW9mKGFkZHIpKTsKPgo+IC0gICAgICAgIGlmIChhdl9maWZvX2Nhbl93cml0ZShzLT5maWZv KSA8IGxlbiArIGhlYWRlcl9zeikgewo+ICsgICAgICAgIGlmIChhdl9maWZvX2Nhbl93cml0ZShz LT5yeF9maWZvKSA8IGxlbiArIGhlYWRlcl9zeikgewo+ICAgICAgICAgICAgICAvKiBObyBTcGFj ZSBsZWZ0ICovCj4gICAgICAgICAgICAgIGlmIChzLT5vdmVycnVuX25vbmZhdGFsKSB7Cj4gICAg ICAgICAgICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcsICJDaXJjdWxhciBidWZmZXIg b3ZlcnJ1bi4gIgo+IEBAIC01NDEsNyArNTQyLDcgQEAgc3RhdGljIHZvaWQgKmNpcmN1bGFyX2J1 ZmZlcl90YXNrX3J4KCB2b2lkICpfVVJMQ29udGV4dCkKPiAgICAgICAgICAgICAgICAgIGdvdG8g ZW5kOwo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+IC0gICAgICAgIGF2X2ZpZm9fd3Jp dGUocy0+Zmlmbywgcy0+dG1wLCBsZW4gKyBoZWFkZXJfc3opOwo+ICsgICAgICAgIGF2X2ZpZm9f d3JpdGUocy0+cnhfZmlmbywgcy0+dG1wLCBsZW4gKyBoZWFkZXJfc3opOwo+ICAgICAgICAgIHB0 aHJlYWRfY29uZF9zaWduYWwoJnMtPmNvbmQpOwo+ICAgICAgfQo+Cj4gQEAgLTU3NywyMiArNTc4 LDIyIEBAIHN0YXRpYyB2b2lkICpjaXJjdWxhcl9idWZmZXJfdGFza190eCggdm9pZCAqX1VSTENv bnRleHQpCj4gICAgICAgICAgdWludDhfdCB0bXBbNF07Cj4gICAgICAgICAgaW50NjRfdCB0aW1l c3RhbXA7Cj4KPiAtICAgICAgICBsZW4gPSBhdl9maWZvX2Nhbl9yZWFkKHMtPmZpZm8pOwo+ICsg ICAgICAgIGxlbiA9IGF2X2ZpZm9fY2FuX3JlYWQocy0+dHhfZmlmbyk7Cj4KPiAgICAgICAgICB3 aGlsZSAobGVuPDQpIHsKPiAgICAgICAgICAgICAgaWYgKHMtPmNsb3NlX3JlcSkKPiAgICAgICAg ICAgICAgICAgIGdvdG8gZW5kOwo+ICAgICAgICAgICAgICBwdGhyZWFkX2NvbmRfd2FpdCgmcy0+ Y29uZCwgJnMtPm11dGV4KTsKPiAtICAgICAgICAgICAgbGVuID0gYXZfZmlmb19jYW5fcmVhZChz LT5maWZvKTsKPiArICAgICAgICAgICAgbGVuID0gYXZfZmlmb19jYW5fcmVhZChzLT50eF9maWZv KTsKPiAgICAgICAgICB9Cj4KPiAtICAgICAgICBhdl9maWZvX3JlYWQocy0+ZmlmbywgdG1wLCA0 KTsKPiArICAgICAgICBhdl9maWZvX3JlYWQocy0+dHhfZmlmbywgdG1wLCA0KTsKPiAgICAgICAg ICBsZW4gPSBBVl9STDMyKHRtcCk7Cj4KPiAgICAgICAgICBhdl9hc3NlcnQwKGxlbiA+PSAwKTsK PiAgICAgICAgICBhdl9hc3NlcnQwKGxlbiA8PSBzaXplb2Yocy0+dG1wKSk7Cj4KPiAtICAgICAg ICBhdl9maWZvX3JlYWQocy0+Zmlmbywgcy0+dG1wLCBsZW4pOwo+ICsgICAgICAgIGF2X2ZpZm9f cmVhZChzLT50eF9maWZvLCBzLT50bXAsIGxlbik7Cj4KPiAgICAgICAgICBwdGhyZWFkX211dGV4 X3VubG9jaygmcy0+bXV0ZXgpOwo+Cj4gQEAgLTk0NCwxMSArOTQ1LDE1IEBAIHN0YXRpYyBpbnQg dWRwX29wZW4oVVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJpLCBpbnQgZmxhZ3MpCj4KPiAg ICAgIGlmICgoIWlzX291dHB1dCAmJiBzLT5jaXJjdWxhcl9idWZmZXJfc2l6ZSkgfHwgKGlzX291 dHB1dCAmJiBzLT5iaXRyYXRlICYmIHMtPmNpcmN1bGFyX2J1ZmZlcl9zaXplKSkgewo+ICAgICAg ICAgIC8qIHN0YXJ0IHRoZSB0YXNrIGdvaW5nICovCj4gLSAgICAgICAgcy0+ZmlmbyA9IGF2X2Zp Zm9fYWxsb2MyKHMtPmNpcmN1bGFyX2J1ZmZlcl9zaXplLCAxLCAwKTsKPiAtICAgICAgICBpZiAo IXMtPmZpZm8pIHsKPiArICAgICAgICBBVkZpZm8gKmZpZm8gPSBhdl9maWZvX2FsbG9jMihzLT5j aXJjdWxhcl9idWZmZXJfc2l6ZSwgMSwgMCk7Cj4gKyAgICAgICAgaWYgKCFmaWZvKSB7Cj4gICAg ICAgICAgICAgIHJldCA9IEFWRVJST1IoRU5PTUVNKTsKPiAgICAgICAgICAgICAgZ290byBmYWls Owo+ICAgICAgICAgIH0KPiArICAgICAgICBpZiAoaXNfb3V0cHV0KQo+ICsgICAgICAgICAgICBz LT50eF9maWZvID0gZmlmbzsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgIHMtPnJ4X2Zp Zm8gPSBmaWZvOwo+ICAgICAgICAgIHJldCA9IHB0aHJlYWRfbXV0ZXhfaW5pdCgmcy0+bXV0ZXgs IE5VTEwpOwo+ICAgICAgICAgIGlmIChyZXQgIT0gMCkgewo+ICAgICAgICAgICAgICBhdl9sb2co aCwgQVZfTE9HX0VSUk9SLCAicHRocmVhZF9tdXRleF9pbml0IGZhaWxlZCA6ICVzXG4iLCBzdHJl cnJvcihyZXQpKTsKPiBAQCAtOTgxLDcgKzk4Niw4IEBAIHN0YXRpYyBpbnQgdWRwX29wZW4oVVJM Q29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJpLCBpbnQgZmxhZ3MpCj4gICBmYWlsOgo+ICAgICAg aWYgKHVkcF9mZCA+PSAwKQo+ICAgICAgICAgIGNsb3Nlc29ja2V0KHVkcF9mZCk7Cj4gLSAgICBh dl9maWZvX2ZyZWVwMigmcy0+Zmlmbyk7Cj4gKyAgICBhdl9maWZvX2ZyZWVwMigmcy0+cnhfZmlm byk7Cj4gKyAgICBhdl9maWZvX2ZyZWVwMigmcy0+dHhfZmlmbyk7Cj4gICAgICBmZl9pcF9yZXNl dF9maWx0ZXJzKCZzLT5maWx0ZXJzKTsKPiAgICAgIHJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMTAw NCwyMyArMTAxMCwyMyBAQCBzdGF0aWMgaW50IHVkcF9yZWFkKFVSTENvbnRleHQgKmgsIHVpbnQ4 X3QgKmJ1ZiwgaW50IHNpemUpCj4gICNpZiBIQVZFX1BUSFJFQURfQ0FOQ0VMCj4gICAgICBpbnQg YXZhaWwsIG5vbmJsb2NrID0gaC0+ZmxhZ3MgJiBBVklPX0ZMQUdfTk9OQkxPQ0s7Cj4KPiAtICAg IGlmIChzLT5maWZvKSB7Cj4gKyAgICBpZiAocy0+cnhfZmlmbykgewo+ICAgICAgICAgIHB0aHJl YWRfbXV0ZXhfbG9jaygmcy0+bXV0ZXgpOwo+ICAgICAgICAgIGRvIHsKPiAtICAgICAgICAgICAg YXZhaWwgPSBhdl9maWZvX2Nhbl9yZWFkKHMtPmZpZm8pOwo+ICsgICAgICAgICAgICBhdmFpbCA9 IGF2X2ZpZm9fY2FuX3JlYWQocy0+cnhfZmlmbyk7Cj4gICAgICAgICAgICAgIGlmIChhdmFpbCkg eyAvLyA+PXNpemUpIHsKPiAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdG1wWzRdOwo+Cj4gLSAg ICAgICAgICAgICAgICBhdl9maWZvX3JlYWQocy0+ZmlmbywgdG1wLCA0KTsKPiAtICAgICAgICAg ICAgICAgIGF2X2ZpZm9fcmVhZChzLT5maWZvLCAmcy0+bGFzdF9yZWN2X2FkZHIsIHNpemVvZihz LT5sYXN0X3JlY3ZfYWRkcikpOwo+ICsgICAgICAgICAgICAgICAgYXZfZmlmb19yZWFkKHMtPnJ4 X2ZpZm8sIHRtcCwgNCk7Cj4gKyAgICAgICAgICAgICAgICBhdl9maWZvX3JlYWQocy0+cnhfZmlm bywgJnMtPmxhc3RfcmVjdl9hZGRyLCBzaXplb2Yocy0+bGFzdF9yZWN2X2FkZHIpKTsKPiAgICAg ICAgICAgICAgICAgIGF2YWlsID0gQVZfUkwzMih0bXApOwo+ICAgICAgICAgICAgICAgICAgaWYo YXZhaWwgPiBzaXplKXsKPiAgICAgICAgICAgICAgICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dB Uk5JTkcsICJQYXJ0IG9mIGRhdGFncmFtIGxvc3QgZHVlIHRvIGluc3VmZmljaWVudCBidWZmZXIg c2l6ZVxuIik7Cj4gICAgICAgICAgICAgICAgICAgICAgYXZhaWwgPSBzaXplOwo+ICAgICAgICAg ICAgICAgICAgfQo+Cj4gLSAgICAgICAgICAgICAgICBhdl9maWZvX3JlYWQocy0+ZmlmbywgYnVm LCBhdmFpbCk7Cj4gLSAgICAgICAgICAgICAgICBhdl9maWZvX2RyYWluMihzLT5maWZvLCBBVl9S TDMyKHRtcCkgLSBhdmFpbCk7Cj4gKyAgICAgICAgICAgICAgICBhdl9maWZvX3JlYWQocy0+cnhf ZmlmbywgYnVmLCBhdmFpbCk7Cj4gKyAgICAgICAgICAgICAgICBhdl9maWZvX2RyYWluMihzLT5y eF9maWZvLCBBVl9STDMyKHRtcCkgLSBhdmFpbCk7Cj4gICAgICAgICAgICAgICAgICBwdGhyZWFk X211dGV4X3VubG9jaygmcy0+bXV0ZXgpOwo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWls Owo+ICAgICAgICAgICAgICB9IGVsc2UgaWYocy0+Y2lyY3VsYXJfYnVmZmVyX2Vycm9yKXsKPiBA QCAtMTA2Niw3ICsxMDcyLDcgQEAgc3RhdGljIGludCB1ZHBfd3JpdGUoVVJMQ29udGV4dCAqaCwg Y29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKPiAgICAgIGludCByZXQ7Cj4KPiAgI2lmIEhB VkVfUFRIUkVBRF9DQU5DRUwKPiAtICAgIGlmIChzLT5maWZvKSB7Cj4gKyAgICBpZiAocy0+dHhf Zmlmbykgewo+ICAgICAgICAgIHVpbnQ4X3QgdG1wWzRdOwo+Cj4gICAgICAgICAgcHRocmVhZF9t dXRleF9sb2NrKCZzLT5tdXRleCk7Cj4gQEAgLTEwODEsMTQgKzEwODcsMTQgQEAgc3RhdGljIGlu dCB1ZHBfd3JpdGUoVVJMQ29udGV4dCAqaCwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkK PiAgICAgICAgICAgICAgcmV0dXJuIGVycjsKPiAgICAgICAgICB9Cj4KPiAtICAgICAgICBpZiAo YXZfZmlmb19jYW5fd3JpdGUocy0+ZmlmbykgPCBzaXplICsgNCkgewo+ICsgICAgICAgIGlmIChh dl9maWZvX2Nhbl93cml0ZShzLT50eF9maWZvKSA8IHNpemUgKyA0KSB7Cj4gICAgICAgICAgICAg IC8qIFdoYXQgYWJvdXQgYSBwYXJ0aWFsIHBhY2tldCB0eCA/ICovCj4gICAgICAgICAgICAgIHB0 aHJlYWRfbXV0ZXhfdW5sb2NrKCZzLT5tdXRleCk7Cj4gICAgICAgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7Cj4gICAgICAgICAgfQo+ICAgICAgICAgIEFWX1dMMzIodG1wLCBzaXplKTsK PiAtICAgICAgICBhdl9maWZvX3dyaXRlKHMtPmZpZm8sIHRtcCwgNCk7IC8qIHNpemUgb2YgcGFj a2V0ICovCj4gLSAgICAgICAgYXZfZmlmb193cml0ZShzLT5maWZvLCBidWYsIHNpemUpOyAvKiB0 aGUgZGF0YSAqLwo+ICsgICAgICAgIGF2X2ZpZm9fd3JpdGUocy0+dHhfZmlmbywgdG1wLCA0KTsg Lyogc2l6ZSBvZiBwYWNrZXQgKi8KPiArICAgICAgICBhdl9maWZvX3dyaXRlKHMtPnR4X2ZpZm8s IGJ1Ziwgc2l6ZSk7IC8qIHRoZSBkYXRhICovCj4gICAgICAgICAgcHRocmVhZF9jb25kX3NpZ25h bCgmcy0+Y29uZCk7Cj4gICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJnMtPm11dGV4KTsK PiAgICAgICAgICByZXR1cm4gc2l6ZTsKPiBAQCAtMTE1MCw3ICsxMTU2LDggQEAgc3RhdGljIGlu dCB1ZHBfY2xvc2UoVVJMQ29udGV4dCAqaCkKPiAgICAgIH0KPiAgI2VuZGlmCj4gICAgICBjbG9z ZXNvY2tldChzLT51ZHBfZmQpOwo+IC0gICAgYXZfZmlmb19mcmVlcDIoJnMtPmZpZm8pOwo+ICsg ICAgYXZfZmlmb19mcmVlcDIoJnMtPnJ4X2ZpZm8pOwo+ICsgICAgYXZfZmlmb19mcmVlcDIoJnMt PnR4X2ZpZm8pOwo+ICAgICAgZmZfaXBfcmVzZXRfZmlsdGVycygmcy0+ZmlsdGVycyk7Cj4gICAg ICByZXR1cm4gMDsKPiAgfQo+IC0tCj4gMi40OS4wCj4KPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9y IGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4KCkxHVE0KClRoYW5rcwpTdGV2ZW4KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1w ZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=