X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=aQlSc6KGBLNJONO1xCjv9zCM5U25U/6Z+oUrsaz3gbQ=; b=Xs90RGBuSz1dM40w5/duV3e5huQZuBtup7qp2E7JgMkKRZDFlTnikpoEecVFAsS9b+ XyroSLTTYUjCsc6T+4mjDvJ+rfe/5jV9kTVd6IRse6pCaTTPnqRfWxT6Iawp06oWRYFC NXTR1jm4acq5Vju76tJo8tUfZPUXlmLks73iodZvT3E/wZkZp1vwjkJnoFEWeE5w2EXX yb3cAQSuNWdGPin9FxPaeBZA/Q7NHciVdvpyn6QiYDmFeQ6DeaMmv3uIDJfIGUM2CidN K2uL6gGZ9nCRbwrgSn6+sGcPUY91R14yaEcuba6HLRd8u+rUuMkN8PVrBjh5IKjD8TSs j97w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=aQlSc6KGBLNJONO1xCjv9zCM5U25U/6Z+oUrsaz3gbQ=; b=dfYrCJxjpELHHhT31t6busYJCDzV+NOcFS2UvaACRGQYa94tEoJJtdBoxwh1me7evc 0Hfc/EemnqdPdA9SSXCKWCP/cqt4EDPphEsNNGJKfkntedg9tRWPdmtohxcMYaJFfgnH IB+g6cr8S85rghV/UuUKgRQ4ovnc3iWML2YxQtnG5huCoxgO9mh0EpLb3O07Vdpwj9JZ EoZNs8AEGrLU3yObscfp0j4lepspaDpi0Ci35QuvKU/iHoaXo6ldlNSl/3r2yjUKL/Fx s0SYuDFsjzH481J3XLWTqIokYq3lHCxCkbXz+Oy8NkAxzlJ1K1ZHNgSULbweZ6D03WD1 CTIg== X-Gm-Message-State: AFqh2kpH++QANdEJ5VZ4F7g65isGGbtlmSJ0OoKC8t+sNmpdNjlUBR6j wwuVf1/QmwT9INOwkGOCwx4LXMJ6cgMQtw== X-Google-Smtp-Source: AMrXdXutfQN8uGGIq9oxvFm8Xy+23YH79emzsgo5NG3WcRuA3NUQLL4tbVIUWURtCQEOGPRe4lTnqQ== X-Received: by 2002:aa7:c7c3:0:b0:493:597e:2192 with SMTP id o3-20020aa7c7c3000000b00493597e2192mr37693568eds.38.1674766249702; Thu, 26 Jan 2023 12:50:49 -0800 (PST) Content-Type: multipart/mixed; boundary="------------ujB1kQF3nwpU9GCDPGTvfZyT" Message-ID: <500850be-fd64-3f82-a1e1-929903084e9b@gmail.com> Date: Thu, 26 Jan 2023 21:50:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: DXE3 with std::vector To: djgpp AT delorie DOT com References: <63a56722-21d6-a368-6400-907f0cf9d01c AT gmail DOT com> <3b8f674c-bca3-c679-952e-f8ba5af196e7 AT gmail DOT com> Content-Language: en-US From: "J.W. Jagersma (jwjagersma AT gmail DOT com) [via djgpp AT delorie DOT com]" In-Reply-To: Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk This is a multi-part message in MIME format. --------------ujB1kQF3nwpU9GCDPGTvfZyT Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 2023-01-23 05:00, Ozkan Sezer (sezeroz AT gmail DOT com) [via djgpp AT delorie DOT com] wrote: >>>> Just seems wrong to have to copy >>>> important libs like that? >>> That's a shortcoming of dxe3gen with gcc-provided libraries, >>> needs to be addressed but no one cared (or no one reported >>> the issue probably.) >> >> Any possibility of you being able to generate a patch or can we get >> it into documentation? > > The thing is, dxe3gen invokes ld, not gcc. gcc is a front-end to ld > and handles any such ugliness behind the scene and doing the same for > dxe3gen might be a real pain. > > If someone other than me can generate solution for this, or at least > some documentation, it'd be nice. Seems stubify does not delete/overwrite the input file if the file extension is something other than .exe, so calling stubify isn't so disastrous. I have a preliminary patch, attached, untested. --------------ujB1kQF3nwpU9GCDPGTvfZyT Content-Type: text/plain; charset=UTF-8; name="dxe3gen.patch" Content-Disposition: attachment; filename="dxe3gen.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9keGUvZHhlM2dlbi5jIGIvc3JjL2R4ZS9keGUzZ2VuLmMKaW5k ZXggYTYxZDFhMWUuLmE0ZjliMmEyIDEwMDY0NAotLS0gYS9zcmMvZHhlL2R4ZTNnZW4uYwor KysgYi9zcmMvZHhlL2R4ZTNnZW4uYwpAQCAtMTcwLDE1ICsxNzAsOSBAQAogI2lmbmRlZiBE WEVfQ0MKICNkZWZpbmUgRFhFX0NDICAiZ2NjIgogI2VuZGlmCi0jaWZuZGVmIERYRV9BUwot I2RlZmluZSBEWEVfQVMgICJhcyIKLSNlbmRpZgogI2lmbmRlZiBEWEVfQVIKICNkZWZpbmUg RFhFX0FSICAiYXIiCiAjZW5kaWYKLSNpZm5kZWYgRFhFX0xECi0jZGVmaW5lIERYRV9MRCAg ImxkIgotI2VuZGlmCiAjaWZuZGVmIERYRV9TQwogI2RlZmluZSBEWEVfU0MgICJkeGUubGQi CiAjZW5kaWYKQEAgLTIwNCw3ICsxOTgsNyBAQAogI2RlZmluZSBJU19TTEFTSChwYXRoKSAg ICAgICAgICAoKChwYXRoKSA9PSAnLycpIHx8ICgocGF0aCkgPT0gJ1xcJykpCiAjZGVmaW5l IElTX0RJUl9TRVBBUkFUT1IocGF0aCkgIChJU19TTEFTSChwYXRoKSB8fCAoKHBhdGgpID09 ICc6JykpCiAKLSNkZWZpbmUgTlVNQkVSX09GX0xJTktFUl9BUkdTICAgICAgICAgICAgIDEw CisjZGVmaW5lIE5VTUJFUl9PRl9MSU5LRVJfQVJHUyAgICAgICAgICAgICA1CiAjZGVmaW5l IE5VTUJFUl9PRl9BRERJVElPTkFMX0xPQURFRF9MSUJTICAwCiAKICNkZWZpbmUgSVNfVkFM SURfQ0lFKGlkKSAgICAgICAgKChpZCkgPT0gMCkKQEAgLTMxMSwzNCArMzA1LDE1IEBAIHN0 YXRpYyBzdHJ1Y3QKIH07CiAKIAotc3RhdGljIGNoYXIgKmxpYmRpcjsKIC8qIGJ1aWxkIHRv b2xzICovCiBzdGF0aWMgY2hhciAqZHhlX2NjOyAvKiBkZWZhdWx0OiAiZ2NjIiAqLwotc3Rh dGljIGNoYXIgKmR4ZV9hczsgLyogZGVmYXVsdDogImFzIiAqLwogc3RhdGljIGNoYXIgKmR4 ZV9hcjsgLyogZGVmYXVsdDogImFyIiAqLwotc3RhdGljIGNoYXIgKmR4ZV9sZDsgLyogZGVm YXVsdDogImxkIiAqLwogLyogbGlua2VyIHNjcmlwdCAqLwogc3RhdGljIGNoYXIgKmR4ZV9z YzsgLyogZGVmYXVsdDogImR4ZS5sZCIgKi8KIAotCi0vKiBEZXNjOiByZXBsYWNlcyBiYWNr c2xhc2ggd2l0aCBzbGFzaCBpbiBhIHBhdGgKLSAqCi0gKiBJbiAgOiBwYXRoIHN0cmluZwot ICogT3V0IDogcGF0aCBzdHJpbmcKLSAqCi0gKiBOb3RlOiAtCi0gKi8KLXN0YXRpYyB2b2lk IGNhbm9uaWNhbGl6ZV9wYXRoKGNoYXIgKnBhdGgpCi17Ci0gIGlmIChwYXRoKQotICB7Ci0g ICAgY2hhciAqc2NhbjsKLQotICAgIGZvciAoc2NhbiA9IHBhdGg7ICpzY2FuOyBzY2FuKysp Ci0gICAgICBpZiAoKnNjYW4gPT0gJ1xcJykKLSAgICAgICAgKnNjYW4gPSAnLyc7Ci0gIH0K LX0KKy8qIGxpbmtlci1zcGVjaWZpYyBhcmd1bWVudHMuICBkeGVfc2MgaXMgYXBwZW5kZWQg dG8gdGhpcyAqLworI2RlZmluZSBERUZBVUxUX0xEX0FSR1MgIi1XbCwtWCwtUywtciwtVCwi CitzdGF0aWMgY2hhciBsZF9hcmdzW3NpemVvZihERUZBVUxUX0xEX0FSR1MpICsgRklMRU5B TUVfTUFYXTsKIAogCiAKQEAgLTM1Myw2ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBleGl0X2Ns ZWFudXAodm9pZCkKIHsKICAgcmVtb3ZlKFRFTVBfT19GSUxFKTsKICAgcmVtb3ZlKFRFTVBf U19GSUxFKTsKKyAgcmVtb3ZlKFRFTVBfQkFTRSIuZXhlIik7IC8qIHByb2R1Y2VkIGJ5IHN0 dWJpZnkgKi8KIH0KIAogCkBAIC00NDUsMjMgKzQyMSw4IEBAIHN0YXRpYyB2b2lkIHByb2Nl c3NfZW52KHZvaWQpCiAgIGNvbnN0IGNoYXIgKmU7CiAKICAgZHhlX2NjID0gKGUgPSBnZXRl bnYoIkRYRV9DQyIpKSA/IHN0cmR1cChlKSA6IHN0cmR1cChEWEVfQ0MpOwotICBkeGVfYXMg PSAoZSA9IGdldGVudigiRFhFX0FTIikpID8gc3RyZHVwKGUpIDogc3RyZHVwKERYRV9BUyk7 CiAgIGR4ZV9hciA9IChlID0gZ2V0ZW52KCJEWEVfQVIiKSkgPyBzdHJkdXAoZSkgOiBzdHJk dXAoRFhFX0FSKTsKLSAgZHhlX2xkID0gKGUgPSBnZXRlbnYoIkRYRV9MRCIpKSA/IHN0cmR1 cChlKSA6IHN0cmR1cChEWEVfTEQpOwogICBkeGVfc2MgPSAoZSA9IGdldGVudigiRFhFX1ND IikpID8gc3RyZHVwKGUpIDogc3RyZHVwKERYRV9TQyk7Ci0KLSAgaWYgKChlID0gZ2V0ZW52 KCJEWEVfTERfTElCUkFSWV9QQVRIIikpKQotICAgIGxpYmRpciA9IHN0cmR1cChlKTsKLSAg ZWxzZSBpZiAoKGUgPSBnZXRlbnYoIkRKRElSIikpKQotICB7Ci0gICAgc2l6ZV90IHN6ID0g c3RybGVuKGUpICsgNVU7Ci0gICAgbGliZGlyID0gbWFsbG9jKHN6KTsKLSAgICBzdHJjcHko bGliZGlyLCBlKTsKLSAgICBzdHJjYXQobGliZGlyLCAiL2xpYiIpOwotICAgIGNhbm9uaWNh bGl6ZV9wYXRoKGxpYmRpcik7Ci0gIH0KLSAgZWxzZQotICAgIGxpYmRpciA9IE5VTEw7CiB9 CiAKIApAQCAtNDc2LDIyICs0MzcsMTMgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19hcmdzKGlu dCBhcmdjLCBjaGFyICphcmd2W10sIGNvbnN0IGNoYXIgKm5ld19hcmd2W10pCiB7CiAgIGlu dCBpLCBuZXdfYXJnYyA9IE5VTUJFUl9PRl9MSU5LRVJfQVJHUzsKIAotICBpZiAoIWxpYmRp cikKLSAgewotICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IG5laXRoZXIgRFhFX0xEX0xJ QlJBUllfUEFUSCBub3IgREpESVIgYXJlIHNldCBpbiBlbnZpcm9ubWVudFxuIik7Ci0gICAg ZXhpdCgxKTsKLSAgfQorICBzcHJpbnRmKGxkX2FyZ3MsIERFRkFVTFRfTERfQVJHUyIlcyIs IGR4ZV9zYyk7CiAKLSAgbmV3X2FyZ3ZbMF0gPSBkeGVfbGQ7Ci0gIG5ld19hcmd2WzFdID0g Ii1YIjsKLSAgbmV3X2FyZ3ZbMl0gPSAiLVMiOwotICBuZXdfYXJndlszXSA9ICItciI7Ci0g IG5ld19hcmd2WzRdID0gIi1vIjsKLSAgbmV3X2FyZ3ZbNV0gPSBURU1QX09fRklMRTsKLSAg bmV3X2FyZ3ZbNl0gPSAiLUwiOwotICBuZXdfYXJndls3XSA9IGxpYmRpcjsKLSAgbmV3X2Fy Z3ZbOF0gPSAiLVQiOwotICBuZXdfYXJndls5XSA9IGR4ZV9zYzsKKyAgbmV3X2FyZ3ZbMF0g PSBkeGVfY2M7CisgIG5ld19hcmd2WzFdID0gIi1ub3N0ZGxpYiI7CisgIG5ld19hcmd2WzJd ID0gbGRfYXJnczsKKyAgbmV3X2FyZ3ZbM10gPSAiLW8iOworICBuZXdfYXJndls0XSA9IFRF TVBfT19GSUxFOwogCiAgIGlmICghc3RyY21wKGJhc2VfbmFtZShhcmd2WzBdKSwgImR4ZWdl biIpKQogICAgIC8qIGludm9rZWQgYXMgYGR4ZWdlbicgKi8KQEAgLTU4OCwxMyArNTQwLDE5 IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfYXJncyhpbnQgYXJnYywgY2hhciAqYXJndltdLCBj b25zdCBjaGFyICpuZXdfYXJndltdKQogICAgICAgZWxzZQogICAgICAgewogICAgICAgICBj aGFyICpkb3QgPSBzdHJyY2hyKGFyZ3ZbaV0sICcuJyk7Ci0gICAgICAgIG5ld19hcmd2W25l d19hcmdjKytdID0gYXJndltpXTsKICAgICAgICAgaWYgKGRvdCkKICAgICAgICAgewogICAg ICAgICAgIGlmICghc3RyY2FzZWNtcChkb3QsICIubyIpIHx8ICFzdHJjYXNlY21wKGRvdCwg Ii5hIikpCiAgICAgICAgICAgICBvcHQub2JqY291bnQrKzsKICAgICAgICAgICBlbHNlIGlm ICghc3RyY2FzZWNtcChkb3QsICIuZHhlIikgfHwgIXN0cmNhc2VjbXAoZG90LCAiLnNvIikp CiAgICAgICAgICAgICBvcHQuZHhlZmlsZSA9IGFyZ3ZbaV07CisgICAgICAgICAgbmV3X2Fy Z3ZbbmV3X2FyZ2MrK10gPSBhcmd2W2ldOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAg ICAgICAgeworICAgICAgICAgIGNoYXIgKmFyZyA9IChjaGFyICopbWFsbG9jKHN0cmxlbihh cmd2W2ldKSArIDVVKTsKKyAgICAgICAgICBzcHJpbnRmKGFyZywgIi1XbCwlcyIsIGFyZ3Zb aV0pOworICAgICAgICAgIG5ld19hcmd2W25ld19hcmdjKytdID0gYXJnOwogICAgICAgICB9 CiAgICAgICB9CiAgICAgfQpAQCAtMTQ3Niw3ICsxNDM0LDcgQEAgc3RhdGljIGludCBtYWtl X2ltcGxpYih2b2lkKQogICBhdGV4aXQoZXhpdF9jbGVhbnVwKTsKIAogICAvKiBBbGxyaWdo dCwgbm93IHJ1biB0aGUgYXNzZW1ibGVyIG9uIHRoZSByZXN1bHRpbmcgZmlsZSAqLwotICBz cHJpbnRmKGNtZGJ1ZiwgIiVzIC1vICVzICVzIiwgZHhlX2FzLCBURU1QX09fRklMRSwgVEVN UF9TX0ZJTEUpOworICBzcHJpbnRmKGNtZGJ1ZiwgIiVzIC1jIC1vICVzICVzIiwgZHhlX2Nj LCBURU1QX09fRklMRSwgVEVNUF9TX0ZJTEUpOwogICBpZiAoKHJ2ID0gc3lzdGVtKGNtZGJ1 ZikpICE9IDApCiAgIHsKICAgICBpZiAocnYgPT0gLTEpCmRpZmYgLS1naXQgYS9zcmMvZHhl L2R4ZWdlbi50eGkgYi9zcmMvZHhlL2R4ZWdlbi50eGkKaW5kZXggMjZkOWRlOGQuLjQxZmE2 ZjViIDEwMDY0NAotLS0gYS9zcmMvZHhlL2R4ZWdlbi50eGkKKysrIGIvc3JjL2R4ZS9keGVn ZW4udHhpCkBAIC02MCwxNSArNjAsMTIgQEAgVXNhZ2U6IEBrYmR7ZHhlM2dlbiBbLW8gb3V0 cHV0LmR4ZV0gW29wdGlvbnNdIFtvYmplY3QtZmlsZXNdIFtsZC1vcHRpb25zXX0KIGR4ZTNn ZW4gcmVzcG9uZHMgdG8gdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CiAK IERYRV9DQzogQyBjb21waWxlciBuYW1lLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBnY2Mg Zm9yIG5hdGl2ZSBidWlsZAotZW52aXJvbm1lbnRzLCBhbmQgaTU4Ni1wYy1tc2Rvc2RqZ3Bw LWdjYyBmb3IgY3Jvc3MtYnVpbGQgZW52aXJvbm1sZW50cy4KLURYRV9BUzogQXNzZW1ibGVy IG5hbWUuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIGFzIGZvciBuYXRpdmUgYnVpbGQKLWVu dmlyb25tZW50cywgYW5kIGk1ODYtcGMtbXNkb3NkamdwcC1hcyBmb3IgY3Jvc3MtYnVpbGQg ZW52aXJvbm1sZW50cy4KK2Vudmlyb25tZW50cywgYW5kIGk1ODYtcGMtbXNkb3NkamdwcC1n Y2MgZm9yIGNyb3NzLWJ1aWxkIGVudmlyb25tZW50cy4KK1RoaXMgaXMgdXNlZCB0byBpbnZv a2UgdGhlIGxpbmtlciBhbmQgYXNzZW1ibGVyLgogRFhFX0FSOiBBcmNoaXZlciBuYW1lLiBJ ZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBhciBmb3IgbmF0aXZlIGJ1aWxkCi1lbnZpcm9ubWVu dHMsIGFuZCBpNTg2LXBjLW1zZG9zZGpncHAtYXIgZm9yIGNyb3NzLWJ1aWxkIGVudmlyb25t bGVudHMuCi1EWEVfTEQ6IExpbmtlciBuYW1lLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBs ZCBmb3IgbmF0aXZlIGJ1aWxkCi1lbnZpcm9ubWVudHMsIGFuZCBpNTg2LXBjLW1zZG9zZGpn cHAtbGQgZm9yIGNyb3NzLWJ1aWxkIGVudmlyb25tbGVudHMuCitlbnZpcm9ubWVudHMsIGFu ZCBpNTg2LXBjLW1zZG9zZGpncHAtYXIgZm9yIGNyb3NzLWJ1aWxkIGVudmlyb25tZW50cy4K IERYRV9TQzogUGF0aCB0byBsaW5rZXIgc2NyaXB0IG5hbWUuIElmIG5vdCBzZXQsIGRlZmF1 bHRzIHRvIGR4ZS5sZC4KLVBhc3NlZCBpbnRlcm5hbGx5IHRvIGxkLCBsaWtlICdsZCAtVCBk eGUubGQnCitQYXNzZWQgaW50ZXJuYWxseSB0byB0aGUgbGlua2VyLCBsaWtlICdnY2MgLVds LC1ULGR4ZS5sZCcKIEBlbmQgZXhhbXBsZQogCiBAY29tbWFuZHtkeGUzZ2VufSBpcyBhIHV0 aWxpdHkgd2hpY2ggYWxsb3dzIHlvdSB0byBjcmVhdGUgZmlsZXMgd2hpY2ggY29udGFpbgpk aWZmIC0tZ2l0IGEvc3JjL2R4ZS9tYWtlZmlsZSBiL3NyYy9keGUvbWFrZWZpbGUKaW5kZXgg Y2Y3MTU4NjcuLjZiZGZmOGJhIDEwMDY0NAotLS0gYS9zcmMvZHhlL21ha2VmaWxlCisrKyBi L3NyYy9keGUvbWFrZWZpbGUKQEAgLTM0LDcgKzM0LDcgQEAgJChCSU4pL2R4ZTNyZXMuZXhl IDogJChDKSBkeGUzcmVzLm8gJChMKQogCiBDUk9TU19DQyA9ICQod29yZCAxLCQoQ1JPU1Nf R0NDKSkKICQoSE9TVEJJTikvZHhlZ2VuLmV4ZSA6IGR4ZTNnZW4uYyBpbml0MS5oIGluaXQy LmggaW5pdDMuaCBpbml0NC5oIGluaXQ1LmggZmluaTEuaCBmaW5pMi5oIGZpbmkzLmggZmlu aTQuaCBmaW5pNS5oCi0JJChHQ0MpIC1ERFhFX0xEPVwiJChDUk9TU19MRClcIiAtRERYRV9D Qz1cIiQoQ1JPU1NfQ0MpXCIgLUREWEVfQVI9XCIkKENST1NTX0FSKVwiIC1ERFhFX0FTPVwi JChDUk9TU19BUylcIiBkeGUzZ2VuLmMgLW8gJEAKKwkkKEdDQykgLUREWEVfQ0M9XCIkKENS T1NTX0NDKVwiIC1ERFhFX0FSPVwiJChDUk9TU19BUilcIiBkeGUzZ2VuLmMgLW8gJEAKIAog Y2xlYW4gOjoKIAlALSQoTUlTQykgcm0gKi5vICouaCAkKEhPU1RCSU4pL2R4ZWdlbi5leGUK ZGlmZiAtLWdpdCBhL3NyYy9keGUvbWFrZWZpbGUuZHhlIGIvc3JjL2R4ZS9tYWtlZmlsZS5k eGUKaW5kZXggZjUyMzIzZTEuLmYzNjc2OTg1IDEwMDY0NAotLS0gYS9zcmMvZHhlL21ha2Vm aWxlLmR4ZQorKysgYi9zcmMvZHhlL21ha2VmaWxlLmR4ZQpAQCAtMiw3ICsyLDcgQEAKIAog IyBTdGFuZGFsb25lIG1ha2VmaWxlIGZvciBidWlsZGluZyBkeGUzZ2VuIGFuZCBkeGUzcmVz IGZvciB1bml4aXNoIGhvc3RzCiAKLUNST1NTX1BSRUZJWD0gaTU4Ni1wYy1tc2Rvc2RqZ3Bw LQorQ1JPU1NfUFJFRklYID89IGk1ODYtcGMtbXNkb3NkamdwcC0KIENST1NTX0NDICAgID0g JChDUk9TU19QUkVGSVgpZ2NjCiBDUk9TU19BUiAgICA9ICQoQ1JPU1NfUFJFRklYKWFyCiBD Uk9TU19BUyAgICA9ICQoQ1JPU1NfUFJFRklYKWFzCkBAIC0zMiw3ICszMiw3IEBAIGZpbmk0 Lmg6IGZpbmk0Lm8gYmluMmguZXhlCiBmaW5pNS5oOiBmaW5pNS5vIGJpbjJoLmV4ZQogCiBk eGUzZ2VuOiBkeGUzZ2VuLmMgaW5pdDEuaCBpbml0Mi5oIGluaXQzLmggaW5pdDQuaCBpbml0 NS5oIGZpbmkxLmggZmluaTIuaCBmaW5pMy5oIGZpbmk0LmggZmluaTUuaAotCSQoQ0MpIC1P MiAtV2FsbCAtRERYRV9MRD1cIiQoQ1JPU1NfTEQpXCIgLUREWEVfQ0M9XCIkKENST1NTX0ND KVwiIC1ERFhFX0FSPVwiJChDUk9TU19BUilcIiAtRERYRV9BUz1cIiQoQ1JPU1NfQVMpXCIg ZHhlM2dlbi5jIC1vICRACisJJChDQykgLU8yIC1XYWxsIC1ERFhFX0NDPVwiJChDUk9TU19D QylcIiAtRERYRV9BUj1cIiQoQ1JPU1NfQVIpXCIgZHhlM2dlbi5jIC1vICRACiAKIGR4ZWdl bjogZHhlM2dlbgogCWxuIC1zIGR4ZTNnZW4gZHhlZ2VuCg== --------------ujB1kQF3nwpU9GCDPGTvfZyT--