Q: how to display an base64 string into an image using javascript I am trying to display an base 64 string into image in html page ...
It showing  some error...error look like
here is my code

        $(document).ready(function() {
          var username="srk";
        var url = "http://localhost/login/image/displayimage.php?username="+username+"";
        $.getJSON(url, function(result) {
            console.log(result);
        $.each(result, function(i, field) {
            var id = field.id;
            var photo = field.photo; //base 64 string is stored in photo

        $("#listview").append("");
});
    });
});

    </script>
    <canvas id="canvas" width="50" height="50"></canvas>

base 64 string look like 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAABlCAYAAAAbIS4fAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89 bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf bTAICd Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP 5c rcEAAAOF0ftH LC zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s wM 3zUAsGo AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/ 8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8 Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8 xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG Qh8lsKnWJAcaT4U IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr h0uhHdlR5Ol9BX0svpR iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up 6Ynr5egJ5Mb6feeb3n hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw 6TvZN9un2N/T0HDYfZDqsdWh1 c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ BR5dE/C5 VMGvfrH5PQ0 BZ7XnIy9jL5FXrdewt6V3qvdh7xc 9j5yn M 4zw33jLeWV/MN8C3yLfLT8Nvnl F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7 Hp8Ib OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z pn5mZ2y6xlhbL xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1 1dT1gvWd 1YfqGnRs FYmKrhTbF5cVf9go3HjlG4dvyr Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU lQ27tLdtWHX G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ 7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx  /p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w 0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb  6EHTh0kX/i c7vDvOXPK4dPKy2 UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1 cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v 3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY Zj8uGDYbrnjg OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6 yXgzMV70VvvtwXfcdx3vo98PT R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAQq5JREFUeNrUnHeYnVXV9n/Pfsrp50zvJb333hOSAIFAJKEqCiqCgoCioIiKCiJKl2IBkSpIl15CSUghIT2kZ5KZSaaXc2ZOf9p vj9iQ1GE9/38rm9d1/wz1zV79r6ftde 173X2ornefy9bdu505g0fkJ06tQZ/lmzZwUUoUg8RSoCWwFXQVGS6TT3/fZXGSDzd38qTjp1qTph1HjhguLz8HyqUI4kur17f/NbPrvidGpra7jrrl/KnI7ExFM1oXgG3vIzTldGDRjudXZ18shv7uP8C7/M7h07vTWbtkiCwjN8Bj7b5 kZC6skRroqAQfzHhkonl2G3CtJxHsAGASYQCswbChkstDaCl/ 8gXEe NECJM6I8XqP67iK/UXctM9N/GPpvw9KG 9s1I/7wtfer085B43dvRA/CEfGcvEyljgeriuS94yiaeTlJSXOVLQ1x1PSFUKoeccYeL644mEsFQFwwPyruwTUhYXFJHu68d2bVkcKZSeqlqO46BarnCE4vZ09TmK4yFDGhXhGF2pPunTDCcYCNm2azuW5Ui/0NOulNISnoOm2LpUpGK5ruVTVd3zPMt2s66hdmC5eVUROprqKtJWXNdDOorrMwzddaWtCpFyNemk09n3zlr  XceeuT3zr8E5XDDAWXm1PFXfu2842668munEIkJMDzwnGM/qsB1HdQ8yM40nqKgxkJkPRvXdQlkPdy8S65cRzclUigI18MybYSlIF1QhYqiawjbwdE0MDQ0BxTbJe9TsF0H3VbIl/gIZEBLWNhFAs/OoPflsUoDyJyFYmgomo7hKGSzWQxLhUCAvADPMAilTFzVJRdQsZHgCVzXw7ZdhKYTT2TZsv0I993/yosXXHzNWZd/ 9v5jwTljFNPmlMYbF9z350XQ64b7Ax4LnjHNo3rU3AMDV8ftP/8KXI9SQJTRuIOKKNQDZLYdpjsrgaqL1lO 5Y9VAwYQMbKY21poG93A7WTRtGxaz lM8aT2XoAo66SihkTObp7B qMekKeQK47TPuhgwy/ SJUW6fhB/dijKsnNKSanY tZMLXlxPI5PGPG87 dZsZfvxcPrj9cfr3tTDh/LNpe xFikaOQRVwYMP7jP3BeQTHVICWBBRQJJ7n4mCg arZuyfOWefd8NQvfvX4OUuXLZN/AUU986wz2bdvv/rb39z8x9/ddUlNNJBGsdLgAZ6GJ1RyfgXNFei2DpZH mA7pScdT8OhJrKdScpSWexkkvzYCo40NGN0Z4ju7ySuQF6mGXL6XEyZRB9dQ3RwBWRMTL HL9/P0X0HkKKQsj6P/kSWXFUZqeIoub4MZnsORfro7IlTXluPe6AdWRghVFLD0c17qRg1lK6tDQw67zhSjU0YmkGf7mD6UpSfNongiCJUz0VxgmDp4IAiJarnIU1JeVUt4UBs9G8eeK79nHM/v0XTtGPBcfmKZZx1ztlFc dOmlFXFcG10oCCp/hB8aN4On5boEqBVBQ8VcXXkyW5u4lqPUZpa5xkaxpr8DCGn30u9WMn4ogQnXt7MewAWVPQ1taFMMJ0t/bRZ0r8wRJ0XwF2IESpHqNozyF625vwJlQx8rwTqR1YTirbi7ZwOAO uBClKMbgM06mP5vBVgQEVFxDReoaImVj7mnH1sA4dRbDli3EnxFkDnTi2B5OwADFAwXwxLGPrbgIrw ZOcwZK2aS6mu9c9/u3bG/nhi5TIZ4d49XVVokhSrQHQlSIFFxhYcrPCwRABnA8wK4WoikKek 2kqwoAQrJZAZCy2n0X7LH4lvbQC/H70qhH9/G6E yG0/DBlJbtdRnJxN72vrMfe34xWXEyopp8 SKH05IvkQDfe SHZHBxHbQORsRDhIWrEhJMkoDqrigGFi RxU18bJZEh90EDedunbvpfmh17Gzjmk1x/G67FxDQ/XSIKaByFBEXiug6I6KEqKYMhk7LjBxlsrXx/5V1D27z/MhRd9LZTtiwscG6QATyCFhxQOnmKiKnlw8wiZxVXiGOMLGfOdz5GOZfHX6 TTPYSVnAyNr5HpdBxPNbFqIvT3tuKNKGDUD7 KHFTE2EtXUDl MOEF41GGVeLYaUy/RKssJON4OJpFYMQAUnmJzxfAl9Nof2kzwTy4PWmKsh4FMgRumFBWh6yP6OB6hl93GaFwjEBxKUbUT2HEYNyNXyFcF8V1TVw0TFXHVSNADLwiPK8QmwiuVAiGA2zfsT0C4HkeWjAYJBaOaJmMDaqLFL4/e4mD8BxUVDwPPF8AF4nPzBI/0ELyp08QqCmS uihiPRBEo1NsmFdDwVDq6SZt/BVlwgnmRPp5l42XPcwVaV dnX1UjGoitLBRZjJHP62DjI h9DgetjVwpF9B0g3xhl25jwiBWXs dUj6HUV ItirLvtcQYPHcLRN7eiNvTiNLTR1PEyfS1H2XL9QxTVV9C eQOlYQPLL9h39zOM exCwsOKcfNp3LCHKl2wFBQRAMdBBAHFBs9FiIAEUBQFraurk/5Mvy00AToIzYdru2h5B0UX4EockUBTQdGDEPBTumAiuUZHFo rl0qdz1EHlJPN27Js135GLJwuEr1JES2NIaeNkMmeXi1xuIVobSFl8QiR4gixwXUUSI9Udy/ iB tOIIxuASRyxD/oJGyabVQGKH29CmEBlVjBAIcfDNDxfIJdK1SIOynesRonI6cLBo1SvQlcrJy9hg8L0uwpET6Qj6RPNKKETKEJxVUNURi9xHaVzYQ9CSeUHFtjdiAEBXnnIR0HVRN ythUyorC iNZ6q e kprdddMRPzUAdGcRmK5oBugxDkHAefGMiOve3sbj5AZazUUe2wk3FzjunLO2HP56ioUhcqOSFFUNU1W6D5hSp0XTf8UhFC00EXCFXFNPNIy5Z w4flOZiqS1BoUvqECEpIOhauImQMXToqQlMV4TMMIfO20HRDKkipqTq28KRiO4igIXOehW65 KQifCgIEJYfESzxI5SUyCW68TX3E39tG23bDzNo7lSOHtzPxN9 j/Mv T3 8Jg59/7 t sAtHg2jSVlHtuVJKVofHEtAaOYwuFlyMogOQ2KB0/k9VcbufBbtxJ3cdSQ3xGemhdSmtLL511P5oSqOVgS23U0AbrlSU0qnvCQQrOFJoQAxVOk56EoHgLFUz3huI7jKJoi89IVWtAvFNdGmK5U0BxXx3YVSVBTQyBCAjTDr0npuo5hGAKhkM/m0Q1N2ppEohD0XKGaUrNztqYGde3k5bPEtd8 RZQHizDGlaEbEWTGwO7oZ8Cy XiWje24hFU9/RdP0XyOgm1LCyHyXiQUNIYPoufd3fQ2HqBg/BhkSKF06HCefvMNOf kU V3r/2B4xlqHlShezIgHVM1Ham50nWQSNuyNNd1hOXYVt62c7bjCEPVdM9D4klc6SEEridx8DzpWo6tCSFTVp5AKKjapi0803IN3cDVVSdv5qTmkdeEihEORMJGQJiOrbmeJwSe8FBAKihCkY4iMXMm2XRauo6T37X7gPbgb /2lwaFc8NFnxEHH39W5NKSYECjX2gMihUgbHBtF8Pn yuj1YJBg7ztKq6mCE xSGQSFE0bTd3kcaghhXRfN7adotc0WbxknjNu3Jg8YABBPt4kIPif26cZxwHSQ6sKrQfuv8U4r7pCxNfsYsrPrkCIKB0r32fX755kxt3fxzQdFJS/gZKzbGxHoiEQikpsbzeODzpffYRcRRS3xMeAi1ZIIxCVrqc4gOV5XlRRlP9kYn9diGVZ e7ubgfQdF1HVVUZiUQwDEMC5HI5kqkUnvSEIpDBYFCLhCPGn8f4NMBqgH/c1KnpxG88EagfLkYN76Lt/teFjJRBV5yh55yArR7bPorQ/vaHA4YMpvlIhydMB9rTdK/axcTTz6J172oYO5PY6AEY0pOGKhypSAfwK4ryiSZ54MCB5COPPLKlvrbGGTZsWEiC7O7tze07cNALRsOm5lPNzuaj7uQpE9TykhKfFo6pLW1tvj1btorhQ4faZ5997lBg4KcAxsjlPdcwpZPLp7Se2ogINebIf7AflCAhJ48IaXiKQjDg/xsomzfs5NrrfkJf01oIR4gtncGejRuInTybTM7myEtvUTqmHtXzpJnLaUD4k8yqubnZeX/7ju5LLr2kvLK8zJfu7xeZvMtoXXPmz1/oXXH1FVZ7b6fzxP1/8EqLdMDz9cc1bcKwicqE4aNyDz96X Lqq3d0/vjH15X6/f7wJ0XFFsikYll6oWdUtSscbu4Cq5/oqNEESoswLfA8ha3b12Vuv/Xnx8ibpmkY4aCX11WwsjhbGymdOB2xfjORITWUzVsgRTRMPmcBivwkE4rH485zzz8fjxYWRGKRcPm PR8YimKQsyQ v4 RwwfJReNHyIbdCkE1InfvPygKQzpmzq/5QyGE5jlfv/iS7MlLlmdqauo6L730UglEPxEoluX4UFSvuVdaqw7ImPSEU1yC3tlPflMDRWNHHts WNamDetxXBcNwMnmUT0FXDAQOG6WsGKQCvpQ nPIvIUQCpoQzicJemvXro3He7pt18nGWluO GvrBmmBcBTXA12BbKqFSP8Raroa2bnxfeLCJu3zMX3uLNZsWIstc1qqo18766xzjJ6enn4g/0lBCTrImnCBJxJJ6E5Qu3QutkiiNiSw9rWjega2ZbHk IXpUSOGYdnWMVB0T4i85wl0jeyYSmrnT6HZSTNi QxaVm4SbjKDYWjIf5AuP84mTpxobN262a2uqBCqqomjrR3UD4kikejCpaNpD mj25hY6mImj7D0jM8d87D2ToTuIWyD9uZeUVtdo1mOpQGu53n8h0EegJxPiJ6gAtUR0TswLIKTa9DCEM9vwTYVYkLieUikyCOPaUcCIOT365btGKRNEu9uo7 hgYZ164h3dpDevhfFtBHHlDftk5wEtbW10dKSEp dt9m/Zx8lxcWsXbseVVHwsOnv6aCiPETOOUw8cZDfP/cUv7v/PvrTSarKqzBzLoYRpLOrk5kzZ6qA/glDitAcqXmpjMrwKlFy3ASa3tzKwRc3k8lLqk6cied5SA/HFzEUf8yPP Y/tkDbp4sONw8 g3GnnIRMOUxasYz0wU6KZk9GKy/FZ6hCMzTtk05q2IhR/lTOkp1dvU7AH3CmTBrvKHiOoniyO5GQXiwqq2dNp6nlCAumT2PpyUs4cOCAVFUf /bsJRwLIaUnBw8e7AdKPomXAOg Qw jab7GPuHf10tZc5qixj5K l2so92oNriOlEE96EX8EcK 8DFQSqMF0qdoeLpCj5bB7OpBW7Uf2Z0gQRxUD/AwdP0T84Xx48YbHT0Jx5GedbS5ySqMhKxDB/Y7 bzjqL6w0 L45H61StpeBYW Aqnrmpw97zhpaD5HStMxZdaaOWuG0DQt/GlYn5PLaYoiNSJ  lJJEZ5Yh2/OOFxdw0nkwTBQwDB0Q/cZfnyG71hMGT9itPve26pjaZYWmTkMDqVpfuFt6j53PqFiA3w6fl3Dc UnnlRZWalWUlziSCzzYMNepXbAQNHbfVC8/eZtWkgxtWf/9LboyUqxZNGJYt3bL3CopV9OmjZP7ti TtZUlDtFRWXa9OnT/J WGadzeUP6fcJNp0RHbycV559A7ah6mn/zJ3p27KVsxQnYjhSKJnRFU1BccQwUFFxbSkuTlpbZ1IaVTlF1xTn07z6KXhKmbMJI3HweTfl0jP24ebP9b737bMvug/1ywIB27cbrvq1e/jXFmFQ3yGfvqjcyQmonntXBfY9eQ29isWxsaXV2fvCG87Uvf9ObMH5ysapqnzpVsBUhTOGK2OiBVEwaQ8db7 G299Gd7KZuyWQcTcN0pBUtDOWKSqPk8 Yx9BVVeKYncVwHfdNeBtbXUrt8IXXjhsK2/WC5KIqC58pPNbmx48aGx4yaFYuES7o3rl3druXz3XZPqHfVc /3ja7rSw0q7sgc WB/9rTF8zKN zYn3lv3Wk9j04GO9e9vTBeXFGn8D8xQBAHLw4wnCRTXUZEM0vrAm5QPmICMhDFVF0WIpFCErSgqQqhouXQaiaeYpo00bfD5iSd6sTZtJtvTi61rIF3wHBzH/dSTW7zw MqRwzuyD/7m8Y1f/tr3CDi/jk08XilUrCPh4rTmbzgaUZ58fr25YObZ9qyli/VVq1eyYMEC43 aSfotj6imk3Us ju7ybs5Aj4dp6UTNxYhgsDzPFfTVU/XVVxXRWs7dAizLynjfX2OrXhEpo kd9tO2nbsIqAYFI8fjBQKxYUF Hz6RwYVz/Pkf5IPVVSUDv7edVfEheK1Pf/QvvSOI6/nKitl1FLxm1qZN3jiJPWS71071B8Mlp500uL/jewaD6TjOgRVTYqoKsyKEIVDJ2D3JggGoghPgERRFFcRwkEIGy1YUozfcjxpOdJzwJUGZmkRim1hKwa2COJ5ivQUz1EU9SNd c AfCzTVVUVYCooLDvvzr7Vb7 wsz3ZbOZSnhaqrOfrF55U7/MZ5fzvmeyyM9KN QXbDtP13EZZtmCM6Ni6Ef/YQfS/8C5VC bheJJYNEphYSH5fB7NMS1c05Y2SFU30BtaKSwrQBk5ALr6sHbulSpTSGcysvTfM9pP9GUVhYIFi5bN 1/UXJJ/1nn8f/9L0zKRiirUgqgoHTtE1E2dQk9Oo2TOZFrXCzAd8DxQNEVRdBTFRXi6CroqFc zzZ4ETRu3EQ1GCCZ6Cdke8eY27L4 R9N9MpvLC/737X8ypozH4z0HDhzY3tDQsDqRSLT/k6jiIcOuJ91hpfSU ml9/V06euPsWr0OO2qgu6B4iuZKV3FdF9d10XxCYKgCO 9KjADa GqaNrxPyFUg5aCVBaUaDkrTcoXtOBr/fXOA9J 9QAOc3t54du/ePbmm5qb 9zduSsZi0fT27dvFVVddJefNm/chwIXjOgHL0UoryvFGDqD3tfUkk3lqx0wk3rCPCkNDeji6qnm6ruE4GlqoMkKIjGfmPccTQYqmjcba3opv4wFUw5DRYWMh5HcSqawo8T7VV7X vKBP7AWWZbXecccde0PhoP3Zcz5XfKSpObhpy2bZ19/PgIH12syZs SUKVPDb65c6VuxYkVa0z4iDdGEdII md60l0N/eIfquaMxOi36N yh vgx2FYeCUJaBjLvQ5oeWkC6BGyp4NM0x/BQG7uIbWshU1yAPWkQbliVZZYldVXFsqyP/6yOI3fu3NmdSCSk53n9U6ZMUQsKCoZ ClC6W1tbVj/91EvBvj6l5Nln3vSNHTfA OpFFwQGDx4iDCMgALl69bu5pqYmKYRQxowZ80 nY85zZZdioQ2tlENnTkV9b7 gLUVo hD6Nu7HOOUzqEKRoYiBEQqgGqCp0sAndcV2XVWE/RSOqmW3nUeJhHGTcSqitSihEFJ65PPmx64kn89b69evbzNN09myZUs6GAxWzpo169Nsm5imqbH5C0707d1lRZOZjkhLuxm2pOYzjADgysZDR3JrVq V119/vfmre 7Jl5SUfARdUIRfIoXfL7vUtAhEFZKhIHoxhFQfMcCV0tOEeux2UFURCAU0IQxP0bTWFAfueJIh08Yy4fNLmLBoNt2PvyNyh4/gCwb4TxLUUCgkli5dGho/fnygt7c32NPTk/vzCfOJeZeqaqVlZQVU1Rdp6Yzf39VW6PvxtQ8bG7fsNDykeOqpP8gVK07Lq6qaLiwqStbU1PzTDYPhKVrEVRwn7xKqrmDQ989i4CXL8RD4p47ElA6u6znouoci8DQDDS2M1Pp0N 8aXoGf8HmLaN92iMT2g/RnTEKTRuCvKRfScYX3H4hMiqIYAwcOHKCqavucOXNypmn2OI7Tp2la0SdFpbi4RA EcQYOM T fVEy/WXYZlL86ldPyDXjwnLchNHOqDGj7H379qXC4bCn63rknzxX2o7lQ p TRoosmnDVtG7 Qj1aQ9lUBWma3OMZTkKnoN07WOBU9UN1xKK5aBSWVlLRkljhAxGnrdQ1H17GUrIJ3RNFXnT/E/XY1iWFamrr8Pv9yOldD7N/vH5fNGRIwe5xSWKOWBQgYPISYRfNjXl5Dvv7JVTp823gVxHR0d62LBhsY 6i/KkNB1Nc11MmcpnMFVktLaI5qBKPtePfqx0pVBatg9FQ1U0xPPPP8/RIy1GQA8I nI03/IYVQV1tK3bS9 ew3i9aYHtCA8F1/nP16aqql1aXCI0TYuoQoQ/5XFcPXXSTF8 ZeWmz6q1/AXNEn fLCwaIs18hbzttoeddDprHznSnKupqVE/6gTzpHS0rE2gOMrwE8cxfM4IhnzpOMZdtIDw2GrSPhc8rz8ajpgv/ek5mlvbEbt27gxe MUv359K2gU/uf912icMJ9fSSTQSov3d7ex5ciVuOoeuqZ9oNblcDlShR6IRtbOrqz2bzf790WXF4/FO0zTz/xik/1F3jkYLBgwaOMJIJTvcJUtHycISS3Z0JUgkot7GTe3cesd9rqZrSnFxcelH8oFMXmrSQfo80tLF0V2Rz/ei yLERkzikSdepyeRib2/bX/xN678DpZpIUJBf9GOXTtWpPMZfvNcM/fHBYXfOIOhd17MyB fzsgvn4gajglVUfhPIu1f4o6m66ri9/lXbXgv9LObb 452tKS/nOC1vPqypXrvv/jn2w53Nh0AEj3JZPZl95648ATzz25zXWd/D8MOeyUk08YodhSjBxQQ1WpIJvrRioFMpkrkCvf2eZUVlSVKooy7KOvCTUUDeF4Fob0I6RAE3ncwgHc/etN/OzaZxkyZHDwkku  0JPV8eKgN9UhOOY2pwxPqYM8lGke7y4bjdnXHITnf0JdE0iLEfg2sJ1TfFJ1NFUJsUfn3wiVFJeGll44glFUlGcRF9f qHHH tq6 4OLjh YZWN1NZt3tx /x8fbVGigVQ6m012tHc0/WWMlpYjXQf27WpvPLQrM3Fkob7y QfF Z9dIsaOLEdTesHpRRMODQcPu//qhHM9KTzVU3QlLwwzKZS8ih4cxfV3v8iVv7iXESOGkWrZz4QRuckVkeAzrhPya65UsjlTcuqCKFYqxa6kxvt7s3zhi7/i0d98mbKSGGgSj/9MS1EUJb97397Op1983r9g0cLA9NkzRcOBw4F7H3vErK r7R0xalSgvq4 sn3HDu3O  9VBw4ayPzFc1095NcP7kAoivgra37sodvbtr/zVDYc1YpC/kAs2d2nvfzkXeLcMy XTzyzifaOTqesJMqOnXv60ul0azgc/ieSaHuW4XoSxXNA CEwiB/87Flu d0bjJ4xifihw8we5WPQiCjPtPQ6oHjijLPO6e5zK3//7vajLF5UzpACl4hSwK6mApad/2sOtacl/giBQOg/ovgtLS3pl157zTx52TK1oLzEeGP1234CejhWURobPXVy7J31a4obWo/EQiWFkdGTJobHTZ0Y/v2jD4YSqWQkZ9tFrutFAGzHdrDagsX 3pIYnRHDbvZVF aNlv2b ONDd3LaKRPl2FElXiSkcqSxyWpuPtL Ucmm9Gyh zQDpUgQHsB1t7zIzb99k0kz5hE/vJ9po1Tqh1eyal07C5ecfFP9wPq8ePQPj7Fg6anXNCZL7np/axefmVZKfSCOYvg5ahVx1lfupK1Novmi/xF5a2lvy9UMHuArrig1Dh1p1nbu3WMUlhZrp5y2zO/iBZvbWv0Zy/SXVVb4Z86f409mskZPb9Kfc8xgKBqMaIYWOhZ0s8LOdkcCmhlTvXxIyJxfeP2iOOpj/tzJMp44bMViWLrhZeN9fTm/z2/8RfD6kOdKVw1HioUTGMZ3bnpO/OLBl5k6dx49jR weIRkdJ3Bi6uPsOuQ oCIRq5/4OH7UYUuStase/PxIcMGfG/r2sZwfdSeNGV8hKbuLjwjgkaJ986b62Ta1gjHytSTTlryb5O/g42HujoSvb7CyvJgZU2VMXrcWMVDKHkzr6iaJqbPmCGCoaCwHEfx8ERBQTFzZs8VvqDB0UOHxIRho7VwKKTlshnv3dfuFV5/hyEUxVBUVIRQk7mQd9ySc/PLzz7bEZpqlJaUGWeeeWbN2HGjx/w58UwpivKXChz57qp3c82HDyqHWzL6bfc8q86ZO4uOhq3MGmkyslrntZVdyYYecWEm5z5xoHHvzM548z7thEWL/Z1N2xaF7O53bem1tuRMyrUuTpsR4tX3DmNqI0hZBfK1597iG1eM/ThBSAtHwj5V11FUge1KHAG6glCFhnQlLhJFFUhXIvGQjhQquvSEq2XN5LF6VSCZTNDf22NEFEVIRUNRbYGiSlcaoPpd0CJzZy8o seTz/M8/99fmBmGn9ff2sbmXb0sXvQZju5eyYLhKeqrBX1mEUd7fLIkKibOnFTzk0NH0 8J0/uTmD51Woed0d4ti6q1CxeHZ2iFLh4eETvJ8jkBDOcQ/ckcUybPszzpfVwOI0oKisr9IUPLk0PioKgauuOhKBJbl2hSw7DBp2i4wkJVXISiCA1d ExPYB8jiB2djdiup7lGRJiGpkkVoaKScwzpD0b/VZBHCPEhmcJFlbo/JiaNHcvBbavk7PEWI6sdlGweSyoUFYmCk2dWX1EcyAwsjxUenjt1PmLGrFnOxVdcc/Ib69qf1v0qI pUFNPFFQqel2TJrAICSht7933gBEOhj03sHMtxPMXFEjkQEkWoQhM6iiexDRtP NBc0G0VNAdXyWPrJqoawqdGhapr4rmnH axu38m8mlEnxsT8YwgkVFxTT OLmhra8SRpP4sQP17EmlZeArED69h8WRTVFTmyNoehqsRpp9FCypoi2dYtzN/cPbCE2 75FvfQTz33LNVDz7462 edvwZF25fW/yDgx/4UTUPiY10QFUSLJofprbcIZfNyn joySPtB/ddTTe1mFmXOGThUJzffg8j76AwHEFobwgo1ukoyqOUBE5HzIQo7 /n/5EH2p9Lft7O7jvwbsQnW1EMNHMBEHpR1WH4hrFoiLSw3OP/Uh54KGHMkD2Y WdXNoLWHExf5Iiaktc6WY9XKlhaQ4EfKzfk RQvuKpUbMXnfTSm6/V9ffHEbZtG8l020/T7H9einw0EZdSESp/ubCQTk5qspWp43wy2d/9LyfRF 9tufqLX2h7/Jc3Sc 01CJfGQfXbOKxK75DfP9 9EiQYMrktetvoPH119ACAs2Iofbk2HjrXay88x4SrT30NXcQiwZpyvTjhgQlAYOsGqS7PQNujsJsh6jWsuLwnh3i6RdfPZzo70//O/VOmlkWTPaLutI0fmHiw0B4Cg6QdSS7d/dgON2NburQrdlM8vsFBYVoo0cPbCotLvle1m64cfp8e56adpGOjiolCBfFUYTh2oS1nDzSdDjhuK5fU9V/ykatZMqZkujX/QcOiQMJi6rhI4Xb2yHGr9vJ3u6fE/7F99F3H2DKOxtxNmxnR9Zm0jnn0vrU28xctZmdqmRrPEHNrAWkVu9g5vBaOgwL17KoTvgwDJ0EcUJaEKtLpWHXSnX/vkP982ZNSkDsXyWcUlVRCmIKAc0TirCFZ6g4rodQVXKew9QRKtNGZL6z78gRSoIFV6uahdafcKmvHH3f0X17u8sqW383eqDA7vNQXQNFz2EITfqElDGfEOlE0nNs19HUf04OPWmLatvRj tKqludg LN224SitXPZVmb/fsOseXOX1NuOpzY3oFpe7z81DMcKIphvvkyy1qbKSkvYFN7M4fWvMPnPT DG0we6c1TVuJjdnMXh6MhXg5rVDjFVLXnxViRJF4W8UdC4cC/2z7pXEqoPk0oqg/dSOOpDrorwNIJahZTphaxe1 O93Ymb11w0ojbtm55Eq29pSX45so1b48fOelynxzyxcMNb/9mVJXrV0wdXQVVKMJnaPgVMAxD4e9o IdDv2Z4QtOiblbM6LRF75ptrLY60XImE/MKPWt2kQ/pRJ00PtNjfGMbj934cxZms0RlnjIrzaBMEt/mrSy0LBKpJBMj1dR90Mik3hSWUoTaHmBWSmHA0aMyEZHewapBBPwfx7QVYWiGMDQQOngqONqxRFFDsnZzkt2d4SsTju FjTv3DZy8ZdABITTpDh9eUhyItK/asXPXZf09ISGEjqpb HzgD7rSF3DQg1lcxRR43kdOwggXFLihUrUfV8ScvJybcpgSK8RFUmSbjM9o1JfVkMdF91xK pJMzCtMTUtsCcG8xSSCjPSgMN0HIsnYklIGo4N08Pl9stLJy1EtB5xKs99tVb18vqIs/3EUwacaIigEQSOD33DQVTCCAleX2Hohhw9LouQGDiovWC0c3xUXX3IXmoLilpSqvaPG5at9vt7JEQyECprq4fOBobvC59fw5wMIV4h/dWccKykK5soLtYzjSRTwzCSqDKIUxZAdPaiKidAErgImCkYoRFSoxOJJpIBoTlLSlaW7SMHp9fDZDlnTxtY1bMC1VGJ T8Y8U8YNn7WvelBu7uw5YaDg35FJ1xXSp kYIQ/XA7/rJy8U3JADeY8xtR4Thomvi8hAdrQqPa1tTYiqygp015MinWPsEIvRw9IEhEtINwirCgU6skBTREwrRNo56UrL Xvd5K eoqtGbNIwtS8SxvUU4TMzDPFF6FEFNgqKT5Lsi6PbKgoeOccjFI7hKS5SQNh2qbJtEoYk54CjGvRnPELoWMdUbMIiJLOWcFpiUUcdP8WbPG5s7ccwbGFZptB0Ben3CAQgIqFIVYioNtXBBCvmewysSGGmmxk3eWLH3j17EeWlJdiptAjYNgWaj6hhEPUFiAbCxIJBCkMqZTGbgiJHJJU0qUz6r81C/ziBcQtP9W8pq6TP5xPFrs3g9jSeKAZhoJpZcvk02WgEGwXLyhDI2RiqD5 rYOKh m3COT9 W4ARpNFNobtpECo9 TT bEqavoizKRzJDT7xpKAq1JKP2z6KmaBIy4uoYhNTISosYiJHTECMPEG/i4j6ae/vxXXUrYsWnYRWPaBKxrNeYt3uFAUxD5 mokmLoCYJBwXBgK5FA0LrcWw/XiSDp/8rAqcNmjql4tU5CzK7n36SWXYex0pxsDJGUdyPbqYpNws4GNaZmArj6C7ZXBLNMVClwMHFUdPo4TIcpQBVD5FW nEyvfSGfLLXn5dl2ZRsLAi5zcMHWmceP6f833nJn8tDpON5Iq0Ua6YRxXPTeMEibMsmK/uw9SAZS D4NWxfjocefqh5w/sb0MLRCnn93Y vuO2Xd52YwSmK5/Jh13LCMuOERFLmPc9rTmVyXYqdm5vqMc83HGn9q0oBXYjoqd 9UnvivTUUHzVFsW2i5hIciQpmd7nkUlnWFcNI3UCSJRY0AAWBQGiSPmykmiFrBOnVNMrsPnRT0FxVRa8nmOg4vFEWlSddeXVpSVFR b TRD3PyyqK4kh/gf WJ5qoXqM/r1jeKgNbcV035umuP2dZPX6hOVJauq kJvvzm3/YVVgQPlbztnDRgvjCRQset4Fsto/e7gShYIhEXyfJviRbtrQwe aEP33pvM8O70n1zimsLM7 qxr9wcOGGSfcfZd884tfEsu7 sWk3hwHq4O05TKEszZF9SEOVzjgGPQgybkmfiRduodXUkVdZ4KMP0hbWGdSIkc2FOOgL0i5CMv3PEsO  blgfmLFhf8Oy9RFAVFUYKAk3UxvnrZjy4dP778V587 yteWZGF8Bz0sEJfSqEyFCHdl W0ZYv44vkXf7gMwgFyuSxm1qKqvJLiwiLqawdTVVXH0CG19CSavbyMb3TcfBSwHEh2Zq38kUTS8j6sj2pTFi7WTnz4YV4bUUnCr2NYft4qCdNvRBh9KEubTycerkbaEcyIjzwK6aIYCdNPuWmwt0xQmBdE8kE2VVSQKRR8YHcQuuLL4qwvX/yfFjgLwChQFKemrPQJQ4Q9QwMFF1WA4nkoSPBczDxYZh7rzxm69vfNMRF/gL7eOGUlx peNE2jpjpITXUt8URcsaU2/qlV2ynswbALA862bY3Z0kIhdNfRBlcNMEaUxbQJZSUiGtBFbPgYdi2ew2tPvchMC3xVQ3iGLDPyLjFfKetkFJ8iKIw0MVqG2WcU0hcpoUlXcbDxdQueKiomO3U2WjyBfdJ4Ubj8MvFcY58Vcq2 kpCu X26tB0s1bHsqrICoalCbW7vNXozSVFeGNNGlhT5MWV29671luGbyjevuJQ3V77J4kVL eJXvojjeuTSKZ7948PkpI7ruqBrfwNFSpsXX3ql6L3179UVFxWIcePG9Zy45MQjoP4ZdkWYStH47Y7KzJoyo8KnGGctGC9LC6LkzazY0ZMVzzW1cPsffilHDoiI3T2H2GY0EP7iYBKZOLKrg44ijQffbWdKIsPBYaXs6W/mM4NizIqW8VyiFyuzixFOIWMdjT/Wd/NWzMJwVxGNlVBWPYV7Vr8pKtsUbUbN8Fyywujdls5mLDeUJt7hDAn7tHK/GqyM6DEj3RsaU1sRHFpSRL9mOyMHD5YjRg lt68XT4SprR/M8OFjAMjm0kyZ9hsSiQSGrn3YU371q7tKXnzl1Q12Njv48IEGotEi3jz1jXnXXnv9mkgkgqbgi2FX nIJBjt57cS6Aby45QPZdKiDC2cMFUPMFJfefAvb5CGxPiTpUzvQh0q6LIcWv4MI11DaESbl9LFS0xAzdLTSetYYNm85KWzFh5b20b7X5MWGFiIn1aLUeqQ7esmaWdHWeR8V jgtuivIkT9lpDZ mDL385/X/PWVgZ07097iUbVqb6LXEF39gSoL//yhgw1w8Ky0f Vba4XpCF576RVMM09zc5P 8ksvBSzT9CZNmZiqrw9TWFj44dKqZDIlNm3d/4uKmprBZ553Ds  8icGDBnI3l37337owQfmWYDrSj2s IKfW3Qc84cOEJ6HGDZhhDZqzjgt7Q8KPEOMHTdBDFQrsB5vpvZwiGDWRcXG6KnBetmi5ZVdcJKKcyH0j8uRq0vTXtNIuqoNp1TSN9KhfUWGyAVFJA520PdoJyUdtSi2hxbqE1iNovnwRq2y3PF//5z5wcm5eMTdsLlwXCBfEMskY6OlHikoLg1uLfNr73a3CekqpBKZ4LKTlhV 6/JvEolGyaTSQ9eueXf/9df/uPuhh 7vevDBB360d99e/R/77FAURWk 0nxOItmJ42qsWbWFVCrO7CljtY4jm1a2tDRVlpVUugmFLb95/k TU2GDEs9hU3sr3VqQZ7p7 fni47n G9/j5nuuR23vQk1FyKeGEKwKUeIEGTVvPH/Y8RjN1c1kfTlKOoO4CZNMRsGwfEjVJlimkS3R6SvwUWbYnHvi YSGTWD9tldIB KE1AAjLpgopg8aoY2dNFJUK6VanenJnfEUm3Yd5GfTp4oGNyvWN/QIKx8ShidI5xxqa pOjUQid/v1wIDqyuqXBg8dNHDMuPE0NB1EUX0/fuH5Fz4YOWLks3 93TxWUxKkICDTRxuOBgcUnkhT01E2r93EpAF xo2OGTvefmX68vMuea2iuubRI 3Nk0uKYhT3Zzlz4jSCBVFsB6IapNN9/HHPK8Sn2BjpOHWt9UwSI1kwaRgnLP482370AQd3JQgGLNSjaTRVI1A0AgUdTetH7XFo2yHJmCbjzBK de4lNMVNsrsb6RF9 Eo9sXnvGl5Z8yKvvDSJL1x0jXh 92E6HZ3JxVHKi4OUKULcV7uYKD6BBULTUf1aqOHQgYLm5kON1dX1DBw8gIKiSrJ79/Ha629z mlLy//JU4Qi5OknLmg88/jKslVvvUDUF NrX5xMqWFSHhQc6Wz8koTXB1ZUxT 7ZCGv3n43lSJCUXUFwQCUlheyqj2J7VMoGFnDzpIN PwWfa39bOnZzxMvmVze1cQdX/oR6g3X8u62txk2YTAJ2yHVZqKQw9AVooEoo4vGkUoWMO 4E3j9QJxfPPJNGkr3YTkBkFmUEQ7F5QPElvVHxSWxsDzr CkcybiMiwaE8CkSJyAqbPfY8y9APN PP6Q7Bw7vLp4weSgH9xzi8Uc3U1BQR3NLA4lEnulTxof CRQUCKji6MCqzPSykwsJFdXQleilaXuaWEEJe48cnBE30x666kUVl90b1zF66Wc5/fOn09l6mN8/eDv3P7eKO395LxMYyurGZ8hN9MgO1/CGFNIfL Gu957ni8su5QvnnEeH0kmf3UUu74Bi4IWDRFyNmj5YNnc2A67 Gi9u3kNrf4qM3kdiaDchowAzkET6Hax9KU4dMZ9xJTFhkSFrdnJo3xFe7EqK2rKhTBg2CkWFnHBwNQfLyRj7P9g4YOakQYyujlJTE2HTht1c9NnTyMlyknbM 4cyU1DAs2TmsEE3Rf4siugDJYkeMnCVPGV Udlx HBBKGyYTd3NzD1lIVpBmIsv/wa3X/9DhtSN47hJNmcsmk/b/esJ7Qsi64rIticpbrQpEBqXzbiC5pZevvro12GqjRdTSBkm bCN4wi6HB 9nQYNb9/Oy8cv5VvHjeGJAwcJDFrKuIYoma4jdFVLvGo/4qjFtCVjufWGG1m94V3qh4zACKiEwjF tflhLvvaJZy8ZBFIGz8eTfsPTdHdfGlliUauuYlTZh/PkGiWSVMqWbPd4b1D8kPVSNpfcl09UtS 76jOsCFj0CMxOg/uoD bIRTMMTAitG0bVs7WhNdvdiVRA/DFL53D2k1rWbR4CVPmzKW7o53rrv0B37nqMpp7O/hgXxsTaiZx9heOo7q2gvrqITy59gU6B/Ugh7moOYESN7DTDvjTZKIurZVVlMWKSSXzmP4Me/p6mT/1s1w48HsQ7 APm1/mzc1vM6CmjBVLl7Ot4H3uvvVORtRP4Gd33IiTy3L2F1awevNbnLxkEYppY YdXv/T8yvOOGMaOhrVBQWodBIriIOrEm/vx eblv3n7QMsPeMrL95zZ/vy1a 8Ny kaRhJj1OmjERra2VIRTWPrH71oh0t7hHV9jO4roLf3ncXNQNqqRs4nN07NjNwQC3ZXIqXX3 Ls447lysGD2NweQn3rdnCPWsOUex8wORhUSZao9j77gcYhUHmls6jTqliW2oruw7tothSmB6qZeiQOoTq475ZUwCVfkfhjk0dyJGnMjo8gjMnDCcQKuCZV18lWlONHta54drrQPUYPXwCMd xy7J4X5re9hSxGpWxIytpaWghbklCpRWUoaMV1JDyPmD0mDG9HwlKMBg5dNXVNy0 1LDzrNt/eNHvLzzjeCPa3cnut1qor3I5a/70U9ff wJHG/K0NrURqakh29PFDy66gAuu/jYVFVV0dnRx6023YviDTJkzj8LyCs487wuUjBuG69pMihUwUCvh4IHdjJgymklDhhPAz0vNh1mzdydGbw/nTp JJXRWt3ZTVVhCiW2jaBYLF8/g9cOHKK0qIqAJdh3eR mQASwuiLFz51a2bdrEpRd/nZnT57J9 3YAXn7xRXJmlqr6gRSGMlRNLOSGlQ088geDuuqhdPcfZO2Oo1/9/rIhL/ 9RqT  Mc//tCVQFFR Qf97U0bCvNd5x1ZtZFKtRo1I5F2njHTphBv6ydvKzR1dFEaieDaOXoyWa666rs898yzNB46zKVfv5RvffNyXnn5JV54 kmuOes0xoaiNB1t4/HtB mO1WFnVWYOrCFtmzy3s5u1 QCuFuHkwSPx Xw8snMPj2zbzc7Du5k qAzZcJRVN/6aTfc9xIH31/DWypdoaWjEzmXp7u9i5ozprF 7nj0793LxxZfQ2t7B1y 7lKkTRzO8UnDCSUMpDmlMGTyOXYfauePBtejFQ0 /4IJvP1peViEDwb/d2nwIlL/0/La2tSprX3ns8qXLjqe4YCA9hzsJWi6hZB/jLziBHUcacPIe61evZc32rUydNh0rb JYNv19fZx99tmMGjOaUUOHcMnFFzFs0niiVYMxgzHK6isorCqioryIeDJPLBRkcHkhQ uLmDC4nJpoiLAUzKyvYEpdOQuHD0Vp6 P0c85l1pIT2bhpI 2NLYi8oKMryYLFi9mxfTNd7d3Mnjmfm2 9hdVr3 OznzuH8oFVVJWonDChgnFD6jiw/gPqRo5g0sxJ7D9q3vHd7990R1FxCWY2Qzga/eft8/fuM3LyzAEb3qqmcOpoGt/cjlZTRl9nC7WDh1DR3sSPVszlptc3E4vNYvuePXT3dDF58iQqysoYOmQwzz//PO ueodkuh9pezSt24M9ZAZPbN3JIAnfPn42QlX49cp1tFkW0weVc9lxM2jPpPnJE69jRkqoyMS5fPFMKmJhbnj8F8R7WrjssnPRZJxsd4KS4hIOHj1KMGgwYsAI9h88zPhJM7j5tru4  5bmDZ1DIoimTi0mGXzZrLnsTdpPdJJzagJ5O0EBbHIwz5dQ1EgVFHxYT3mowqGXdfxX3XZ U9efNqYU6sjFr0f9JJKOYTNHEq n56 FCXnnsMt973O/o4Uu3buZNTI0Tz91FNEozFcx HKK67gjrvvBuBH37mSH/7iZna4kiAOI9Rj36Mfwd68Q5Vfow4XEDTaCgfyHsJzmBDRKVXggqu we9vuZNlJy5i rTp9LkOllBRhMBL5/ErKlnTYvsHOznUsIeZk8ZQqKQ4c8UJjC1QOPTuasbPPYG9azZRNnUIuQEFXPidp tRQkeWnXIS37nq x8PSiaTYcbMuZG6SvHGQzctmVGQtug6bJE9bDHknBP44NZ7KKyuhEgND7S08vTqLcR7 hg1fCR33XUPw4YP49VXX XVl1 irbONPpnl7KWnUVVSQWFpOZ6mEu/uIdHbj2PlsbIpkq5LOBKkKhamvm4gRRU1RIqKifkC/OhHN3LDjT8kHPTz8COPMnHSVHTdoLCgAM xue/ 33DTrbdTUlHMiMG1VAqXS0 aQHWRRtuWLYTqx5Jt66Jm2jTaetvYJhUsY1Lp8KFDeupqayguKvp4UFKpFPPnzWff3j3GjMlVT/z6B0tPGxweyNrnNhG1TGrDEXq7e5BVVRSfPJsXVm3kmVc30iP9tB7t4bZf3MjwAdUcaTxEeyLBA/c9SO3AgXieQi5lEykqpbyuisP7d6A4KSwEx5 wnN54B2 89RTNjY3Mm3485cXV5DJZutraGD9lLKEiP1/80leorR4EwJGWFi79 qW8 fZKTlw8B8NLM6JM48unnkjfextRVAXraDeF9cMxnRR20Mf4r13E7/74 lunn/udEwoLYvITdWVJKQkFNauwbMQZ37hl029e2dPMvIsWUTNjOHHXQ/WHqR4 lH2/f5QFfovvffNsAgFJcUURV33jKn7 05vZvu8APp8fy7HZt3sv8e4EO3duw8z28v1vf43duzez9YPtHG1s5ozTlqB5Lg27Wpg1ZTGtbR28 95qNm5/j80Ht7Ls7LPwBUvBO1aT88prL7BgwXHs2rmHM087DZ0UF3xuHl9ZPIKAeQRdhcEnnUXBhJlkrSz5SJiRK1bw5hsb2Lyj4XeRcECaZi OY3/kEz0f3ULh92PoBoMGVrszj//CJbfddsf hnjj7d86cynJ9m58TpSDLz9PcayI3MFuql2NX54xlxteXcUhXwWvv7eFl95dzW/v/iW3/vIXPPvsM4SCQeYunEpdXT0trUepKKsm4A w9JSTURQYO3Ysxy04jvPOP49rrrkG27IZMLwO3fTTGu gvz9FcayEn/zgR9xyy885/oTjqCyJUR31 NyZK7Cb9tDbtJfYwHIGLp/LjuefIZu2mbjiVAonTOKxR17g4adX/bQ/6zw9Z848crkMp522gp/85Ccfv308z6O3txfXddB1jc5ECyUFlXz7sgsX1hSk3/rZjy gc 0 fJFCzGw/Pc9sRHXzBMZU4o4bz/f 8DqHmmwyXWkOtTZwwonzmTNnBo5jIz2XVH aVDKLYyqUFpcQKQjT3d1NPp/HdV1KS0tZt24dAX ARYsX0dPTwf6Du1l26nLeeHUtL7/8Bp85eR66L8XiGRWcNX88nas/IN1uguGRbu2kYvxgzFyc6oXHkQrVceOdj/W9vX7Xyffee/97t996O2 9/Ra2bfO5z32Ou/98IPxbT1EUhb9vKIoVFKEKwcN/ePbt719z8cizz79p1T03fbW8oL6Ypif2EygoxasKUzKihp1PPc vlp7Kk83t3Pend5hQNJ51q7dx0gmfYfnyU3FsC8PnIxQMEPAH0fS/iV6madLa2sr27dsZNWoUqqqSTWYZVTmUIDq33HobyWyOBQtnYrjdfOXMuQzzp lYu4ae/hyxgSMorxpJw8EXMeMe9UtPYGN3nKsv  HKIcPGnfmHRx/vLy4uJpfP4fP5sG0bw/jnTj7F wQPxVhmmp7ufTz1p9WRPz549333X/f5s vdPAfea6R25mL2PfBHigcUk852MuWiC3ls7Xbuf3QN0eJBbN62hfO/ch4//emP CTl7Jad54dXfo 7f/cQ46ZNo7jIpoxuLjxuLNOq6tj 5mbslj58UR8FowaRONpO6axp1C49jV/c/CBr39/zk5/cfMtPR44c5QQCx0pZ5s fz4YNG5g/fz6/ 93vqKur /Sg5HNJWo5uo6BwEEsXnKiofu27V359 o2nHTeLpue2IeN52nqOEinQUJIZ6hcvZV2in7sffB1/MMLGnTsZM34qjzz0ABXlZR/7/zZu3MjFl3yN5vbDzJl1PD4ryxnHDWJyeYru9Ruo9w0j1WFAUTmm1UtwUJjB5y1hR1s/1/340caqmgkn33DD9fuiRR/ujXrggQc4evQoX/3qVykvL/ fecpfQFG1Ui7/0kWcfM55PPPUg2eeOrfmyW98 VQOvbIWq8PEQqdu4jjWPPhbZixfQnzIMK6/5bfYFLJp2wECoQLuv/9 Zs6Y tEvWdg2d915F9f 6FqGjxzJoOF1lKpprr7gBIJdR9m1fisjxk5j/9sbKK8fhKkqlE2ZROXMKdz7xPM89MTK31/5rR9etmTRyVnbtvlHUP6vNUrn83nq62q493cPPfXbJ9dP Nb1D2WrJw4gNiZC/dxJNKzfypyLLqavtYVCpZdf3nAptbUBagaWEfb5OPnkU7nv4Yf adzd 3Zz/JLF/Oi6a1l06lLqK0sZHctwx4WnIDesJ93WS33FKCrmHU9BXS1GWZBxZ85HGzaIcy/9Ke salzx1GMvXrD8tBXZdCr1iRq3/segKIqCZVnoqsrc46bt2JsM1p/53Yc2GSOH46T2Uzu2mKJRA2lrSfD q uwmg9x89XncM7isRT6VCZOmsbll17GVVdeDt6x3qfnnnmeBcctoqm5hdM/s4RM/yFOGhNmaZnk0MtvYO7JoDsluH6d9391N54mGbRwHm/s72H5F7774ry5S0sff qp56pqav52pyyUT7y2/3FHuuu65PJ5zj338z2ptvScM75w 8O3fH/J2VOWD2Pv/fcTLC1j6mnLCFV4fHDfvZw5aiZVdcO5795XOWPRSTzzx6dpbWwgVj6A  99jDknHs/AijC 1GHuueZUBpk51t3yBFULjkMt10ntO0x42jjKZ85DnTiIH97/NHv29P7w2h/99MYTTlr of6bovKiD70J V8D5S 8JptOc/HFF1mjRw4797LvXtx RXvvN08eNoTw0IFg5HFa  hv6COR28gp557J0J dzTU/fYSZ02ezf9cuWtdt4jPLZmPaXQyM5Pnu5efS17yNlCJY8IPL2fbySqoWziTXl8SfzdBYV8u137rt0JgxM8544qkHt2u675 3wT/ULP6nz6H9rz3o4HkeeDBvwXz3njtu/9Y9Tzec/qu3DkAgg5ffx6bnnmfY8rMYUjuS9g2rGV0uufsXF P5shSOG8EJZ56IZTXwhXkhzh1bSOtLL2LuTtP89j5kbYjhy2bTc Qo4y7 HK94Gt/ 2e8f/dyyz4/76Q23fiQg/69epPhIy6T7qa2u9n5248 fXb03PfMr33zMSbTkGDJrLJ6X4siGTbi7Uhx4aBXajo3c8t3TGBjLEkk18/uffZ0TKstpeXMjoYJaDm07TLhyBLtffpfg8NFEBk/gC9 88 AfX98w66c/vv4LMydNzPJ/wf7XQVEUhWQyyexZ83j hZc2iNjY2vN 8PpOs6AWz ml/jPHQY PUE Iozv2E3/mSe696lzuuvpL2E1ttO7qYeiEBWS784RDIZSiAkZPOJFXn9rKJTc8 dtQwZCx1179nfdQ4BP0Sf/3Y8pHAQOQzWT45re 0bFv3 E5F/zwZ09ee/mSJWNVj 5qFZp6CVo Aq5Cw2PP0JeIUzFjCpY06GvrJeMpFJRXUj5uAtc8 DwPPf3yyfc/ IdXhw8fysHmD/AJ7ZO/D/j/EpS/lx9SqSQrVpyeKiwLLr3ysm985 tnzLrx OOGkjvUhZL0Y6kWRcWFpJs30NbcxoAB9bi9ScpnTORAr8klP7hl 4ITTj/ljLMDrZqqMHjwMVD b5rgv2T1VaXyoYcf/fljG1pPvfGRVRgVxVQtGUs73RTPnIRRUcmAKZNpOHgQvX4Ij 9v4/pHX7ljxORJM85ccVqroRvHKo3 C/ZfAyWTyVBdXcPLL7z UrRuxrRv/fbNvnwgSHl1EW/cfTt TMrGjqFo Zl86 k3O1989f1ZC bNuWLS IlmX18f3id84fT/C1AURSGfz6EogutuvG7TlONPql945tWvpYNVzDvxeGoXzOOhJ9/hS9fcfePmA4cGzJ875z0hBJZl8kkf0fz/BpQPJ05ZTjvtlGRv2jv1a9c dsvDmxq54PZH c719y0///wLrhk dFg l8v9V73j/z0oQDqdpqgw5txy2ZVXPbR6/9QBM48vO/30z/zJ0NT/Wuz4V/Z/BgAq6lR5PJ79rAAAAABJRU5ErkJggg=='


Q: lag entire rows by zoo object in r Consider the following:
library(dplyr)
library(zoo)

df <- structure(list(FILIAL_CODE = c(10L, 10L, 10L, 10L, 10L, 10L),
    UNIDADES = c(26394, 24314, 26280, 25056, 28827, 24781), MES_ZOO = structure(c(2010,
    2010.08333333333, 2010.16666666667, 2010.25, 2010.33333333333,
    2010.41666666667), class = "yearmon"), PRODUCTOSUNICOS = c(3592L,
    3337L, 3459L, 3256L, 3355L, 3196L), DEVOLUCIONES = c(39L,
    22L, 12L, 24L, 26L, 31L)), .Names = c("FILIAL_CODE", "UNIDADES",
"MES_ZOO", "PRODUCTOSUNICOS", "DEVOLUCIONES"), class = c("tbl_df",
"data.frame"), row.names = c(NA, -6L))

> df
Source: local data frame [6 x 5]

  FILIAL_CODE UNIDADES  MES_ZOO PRODUCTOSUNICOS DEVOLUCIONES
1          10    26394 ene 2010            3592           39
2          10    24314 feb 2010            3337           22
3          10    26280 mar 2010            3459           12
4          10    25056 abr 2010            3256           24
5          10    28827 may 2010            3355           26
6          10    24781 jun 2010            3196           31

How do I lag entire rows of variables to create a new set of variables in the previous month.
For example, I would get:
newdf<-structure(list(FILIAL_CODE = c(10, 10, 10, 10, 10, 10), UNIDADES = c(26394,
24314, 26280, 25056, 28827, 24781), MES_ZOO = structure(c(2L,
3L, 5L, 1L, 6L, 4L), .Label = c("abr 2010", "ene 2010", "feb 2010",
"jun 2010", "mar 2010", "may 2010"), class = "factor"), PRODUCTOSUNICOS = c(3592,
3337, 3459, 3256, 3355, 3196), DEVOLUCIONES = c(39, 22, 12, 24,
26, 31), NEWMONTH = structure(c(2L, 4L, 1L, 5L, 3L, 6L), .Label = c("abr 2010",
"feb 2010", "jun 2010", "mar 2010", "may 2010", "NA"), class = "factor"),
    NEW_PRODUCTOSUNICOS = structure(c(3L, 5L, 2L, 4L, 1L, 6L), .Label = c("3196",
    "3256", "3337", "3355", "3459", "NA"), class = "factor"),
    NEW_DEVOLUCIONES = structure(c(2L, 1L, 3L, 4L, 5L, 6L), .Label = c("12",
    "22", "24", "26", "31", "NA"), class = "factor")), .Names = c("FILIAL_CODE",
"UNIDADES", "MES_ZOO", "PRODUCTOSUNICOS", "DEVOLUCIONES", "NEWMONTH",
"NEW_PRODUCTOSUNICOS", "NEW_DEVOLUCIONES"), row.names = c(NA,
-6L), class = "data.frame")

> newdf
  FILIAL_CODE UNIDADES  MES_ZOO PRODUCTOSUNICOS DEVOLUCIONES NEWMONTH NEW_PRODUCTOSUNICOS NEW_DEVOLUCIONES
1          10    26394 ene 2010            3592           39 feb 2010                3337               22
2          10    24314 feb 2010            3337           22 mar 2010                3459               12
3          10    26280 mar 2010            3459           12 abr 2010                3256               24
4          10    25056 abr 2010            3256           24 may 2010                3355               26
5          10    28827 may 2010            3355           26 jun 2010                3196               31
6          10    24781 jun 2010            3196           31       NA                  NA               NA

For added dificulty, I need to do this for every "FILIAL_CODE".
This is an example but there can be "n" of these FILIAL_CODE, each with "n" months. The months don't repeat inside of each "FILIAL_CODE".

A: Using dplyr, we can do this after converting the 'MES_ZOO' column to character class as the zoo class is not supported within the mutate (using dplyr_0.4.1.9000).  We group by 'FILIAL_CODE', get the lead of columns MES_ZOO to DEVOLUCIONES using mutate_each, change the column names and left_join with the original dataset.
 df$MES_ZOO <- as.character(df$MES_ZOO)
 library(dplyr)
 df %>%
     group_by(FILIAL_CODE) %>%
     mutate_each(funs(lead), MES_ZOO:DEVOLUCIONES)%>%
     setNames(., c(names(.)[1:2], paste0('NEW_', nm1))) %>%
     left_join(df, .)

Or we could use shift from the devel version of 'data.table' i.e. v1.9.5 (Instructions to install the devel version are here.  We convert the 'data.frame' to 'data.table' (setDT(df)).  Specify the columns to shift in the .SDcols, use shift with option type='lead' grouped by 'FILIAL_CODE'.  Create new columns by assigning (:=)
library(data.table)#v1.9.5+
nm1 <- colnames(df)[3:5]
setDT(df)[, paste0("NEW_", nm1) :=shift(.SD, type='lead') ,
                 by = FILIAL_CODE,  .SDcols = nm1]
df
#   FILIAL_CODE UNIDADES  MES_ZOO PRODUCTOSUNICOS DEVOLUCIONES NEW_MES_ZOO
#1:          10    26394 Jan 2010            3592           39    Feb 2010
#2:          10    24314 Feb 2010            3337           22    Mar 2010
#3:          10    26280 Mar 2010            3459           12    Apr 2010
#4:          10    25056 Apr 2010            3256           24    May 2010
#5:          10    28827 May 2010            3355           26    Jun 2010
#6:          10    24781 Jun 2010            3196           31        <NA>
#   NEW_PRODUCTOSUNICOS NEW_DEVOLUCIONES
#1:                3337               22
#2:                3459               12
#3:                3256               24
#4:                3355               26
#5:                3196               31
#6:                  NA               NA


Q: PyTorch attach extra connection when building model I have the following Resnet prototype on Pytorch:
Resnet_Classifier(
  (activation): ReLU()
  (model): Sequential(
    (0): Res_Block(
      (mod): Sequential(
        (0): Conv1d(1, 200, kernel_size=(5,), stride=(1,), padding=same)
        (1): ReLU()
        (2): BatchNorm1d(200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (3): Conv1d(200, 200, kernel_size=(5,), stride=(1,), padding=same)
        (4): ReLU()
        (5): BatchNorm1d(200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (6): Conv1d(200, 200, kernel_size=(5,), stride=(1,), padding=same)
        (7): ReLU()
        (8): BatchNorm1d(200, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      )
      (shortcut): Conv1d(1, 200, kernel_size=(1,), stride=(1,), padding=same)
    )
    (1): ReLU()
    (2): Flatten(start_dim=1, end_dim=-1)
    (3): Dropout(p=0.1, inplace=False)
    (4): Linear(in_features=40000, out_features=2, bias=True)
    (5): Softmax(dim=1)
  )
)

Input sample shape is (1, 200).
It seems to be absolutely okay but, when I try to get graph in tensorboard, I get the following structure:

Somehow my Residual block connected with Linear. Does this connection really corresponds my net structure?
Model definition:
class Res_Block(nn.Module):
    def __init__(self, in_ch, out_ch, ks, stride, activation):
        super(Res_Block, self).__init__()
        self.mod = nn.Sequential(
            nn.Conv1d(in_ch, out_ch, ks, stride, padding='same'),
            deepcopy(activation),
            nn.BatchNorm1d(out_ch),

            nn.Conv1d(out_ch, out_ch, ks, stride, padding='same'),
            deepcopy(activation),
            nn.BatchNorm1d(out_ch),

            nn.Conv1d(out_ch, out_ch, ks, stride, padding='same'),
            deepcopy(activation),
            nn.BatchNorm1d(out_ch)
        )
        self.shortcut = nn.Conv1d(in_ch, out_ch, kernel_size=1, stride=1, padding='same')

    def forward(self, X):
        return self.mod(X) + self.shortcut(X)

layers = []
layers.append(Res_Block(1, 200, 5, 1, nn.ReLU()))
layers.append(nn.ReLU())
layers.append(nn.Flatten())
layers.append(nn.Dropout(0.2))
layers.append(nn.Linear(200 * 200, 2))
layers.append(nn.Softmax(dim=1))
R = nn.Sequential(*layers)

A: The model visualization seems incorrect, the main branch and skip connection are encapsulated inside your Res_Block definition, it should not appear outside of the red Res_Block[0] box, but instead inside.

A: I solved the problem by removing nn.Sequential in Res_Block __init__ and adding self.l1, self.l2 ... instead. (I also removed some layers and added maxpool but only after I solved the problem)
class Res_Block(nn.Module):
    def __init__(self, in_shape, out_ch, ks, stride, activation):
        super(Res_Block, self).__init__()

        self.l1 = nn.Conv1d(in_shape, out_ch, ks, stride, padding='same')
        self.l2 = deepcopy(activation)
        self.l3 = nn.BatchNorm1d(out_ch)
        self.l4 = nn.Conv1d(out_ch, out_ch, ks, stride, padding='same')
        self.l5 = nn.BatchNorm1d(out_ch)

        self.shortcut = nn.Conv1d(in_shape, out_ch, kernel_size=1, stride=1, padding='same')

    def forward(self, X):
        return self.l5(self.l4(self.l3(self.l2(self.l1(X))))) + self.shortcut(X)

The corresponding tensorboard structure is

The only one left question is why did that help me solve the problem.


Q: Start ssh using systemctl inside the docker container I' m  a beginner in the Docker;
I have pulled a CentOS 7 image from Hub and ran it ;
I need to  ssh in to the docker container(CentOS 7) from my host.
Got the docker container's IP using docker inspect container-id
I have installed the following using
 initscripts
 systemd.x86_64
 systemd-libs.x86_64
 open-ssh
 firewalld
 net-tools

when i tried to start the firewall to open the port for ssh(22)
[root@a6f3e3eb095c ~]# systemctl  start firewall
Failed to get D-Bus connection: Operation not permitted

Also tried,
[root@a6f3e3eb095c ~]# /usr/lib/systemd/systemd --system &
[1] 353
[root@a6f3e3eb095c ~]# systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization xen.
Detected architecture x86-64.

Welcome to CentOS Linux 7 (Core)!

Set hostname to <a6f3e3eb095c>.
Cannot determine cgroup we are running in: No such file or directory
Failed to allocate manager object: No such file or directory

[1]+  Exit 1                  /usr/lib/systemd/systemd --system

How to start the firewall/ssh inside the docker container ?

A: inside docker container run following commands :
yum update -y glibc-common

yum install -y sudo passwd openssh-server openssh-clients tar screen crontabs strace telnet perl libpcap bc patch ntp dnsmasq unzip pax which

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install -y hiera lsyncd sshpass rng-tools

service sshd start;

sed -i 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config;

sed -i 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config;

sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config;

sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/CentOS-Base.repo

mkdir -p /root/.ssh/;

rm -f /var/lib/rpm/.rpm.lock;

echo "StrictHostKeyChecking=no" > /root/.ssh/config;

echo "UserKnownHostsFile=/dev/null" >> /root/.ssh/config

echo "root:password" | chpasswd

( or )
Simply you can pull docker image of centos with ssh in docker hub
https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=centos+ssh&starCount=0
https://hub.docker.com/r/kinogmt/centos-ssh/
https://hub.docker.com/r/jdeathe/centos-ssh/

A: You can avoid the "Failed to get D-Bus connection: Operation not permitted" / aka installing systemd inside a docker by using the https://github.com/gdraheim/docker-systemctl-replacement ... after that the docker-exec stuff should be all fine to do things inside a container.

A: If you really do need an ssh or sftp container, then you can use my Docker Image as a source image for your own or run it directly:
If using the official CentOS-7 Image and you require systemd, there are instructions on how to enable it under the section "Systemd integration".
However, based on the following:

I need to ssh in to the docker container(CentOS 7) from my host.

You can use docker exec to run commands in a running, (backgrounded), container so, for images that have bash available, you can access an interactive tty and run bash as follows from your host - where container can be either the name or id:
docker exec --tty --interactive <container> bash

OR
docker exec -ti <container> bash

Finally, it's unlikely to be necessary to install the firewall package in your image as the operator will decide what ports to publish from those which are exposed and you can make use of Docker Networking to only expose the necessary public facing services.

A: If you are using the Docker CLI, then you can get into the Docker container using the following command
docker exec -it containerId bash

I am not sure how to ssh into the docker container, but if you want to do basic operation inside the Docker container, you can make use of the above docker command.


Q: Javascript (Node.js) - How to read and process multiple line provided as an input to a function? I am practicing to code in various languages and hence, am a newbie to node.js. The site I am using to practice the code mostly gives me multi-line inputs as an argument to my function, which I don't know how to process (I tried using split on \n, but, that, doesn't work).
Following is a code that, gets multi-line input and then, this input is passed to a function. Can you please tell me how can I read/process the input in-order to store each line of an input in an array as a data item ?
function main(input) {
    //Enter your code here
    // var arr = input.split("")
    process.stdout.write(input[6]);
}

process.stdin.resume();
process.stdin.setEncoding("utf-8");
var stdin_input = "";

process.stdin.on("data", function (input) {
    stdin_input += input;
});

process.stdin.on("end", function () {
   main(stdin_input);
});

Thanks'

A: Splitting on a new line works for me.
function main(input) {
    //Enter your code here
    var arr = input.split("\n")
    process.stdout.write(JSON.stringify(arr));
}

process.stdin.resume();
process.stdin.setEncoding("utf-8");
var stdin_input = "";

process.stdin.on("data", function (input) {
    stdin_input += input;
});

process.stdin.on("end", function () {
   main(stdin_input);
});

It's important to note that process.stdout.write can only write a string. Trying to pass an array as an argument will cause an error.

A: just a idea my code is just for  many string or number  have space between for example if you want sum two number we write in terminal : 23 56

notice i use here string_decoder for any one want to raplace number
with string

const {StringDecoder} = require('string_decoder');
const decode = new StringDecoder('utf8');

const sum = (a, b) => {
    let operation = a + b;
    return console.log('result is : ', operation);
}

process.stdin.on('readable', () => {
        const aa = process.stdin.read(); // read string from REPL
        const buffer = Buffer.from(aa);
        const j = decode.write(buffer).split(' ');
        const a = +j[0];
        const b = +j[1];
        // console.log(a + b)
        if((a & b) != null) // check if the value not empty
        {
            sum(a, b);
        }
    });


Q: MongoDB Nested OR/AND Where? I am trying to figure out how to do nested OR/AND where queries like what you would do in MySQL
Take for example
SELECT
    first_name,
    id
FROM
    table
WHERE
   (
       province = "nb" OR
       province = "on"
   ) AND (
       city = "toronto" AND
       first_name = "steven"
   )

A: The query in MongoDB looks like:
Database.collection_name.find(
    // This is the condition
    {
        $and: [
           {
               $or: [
                   {province: 'nb'},
                   {province: 'on'}
               ]
           },
           {
               city: "toronto"
           },
           {
               first_name: "steven"
           }
        ]
    },

    // Specify the fields that you need
    {
        first_name: 1,
        _id: 1
    }
)

Documentation for $and $or
Some examples and the official documentation for MongoDB find here.


Q: Angular 11 won't upload file to .NET 5 I'm not able to get a file from my Angular 11 application uploaded to my .NET 5 service. If I set a breakpoint at the first line of the controller method it's not hit. The angular app just gets an HttpErrorResponse with a status of 0.  I'm able to POST without issue to other methods in this same controller, so I know all the "setup" type stuff is working properly.
I'm doing the upload like so on the Angular side:
postUploadLegacyData(files: File[]): Observable<string[]> {
    const formData = new FormData()
    files.forEach(x => formData.append('file', x, x.name))

    return this.http.post<string[]>('requests/import', formData)
}

and then on the .NET side I have this:
[Route("[controller]"), Produces("application/json"), Authorize, ApiController]
public class RequestsController : ControllerBase
{
    [HttpPost("import")]
    [Consumes("multipart/form-data")]
    public IActionResult PostImportExistingRequests(IEnumerable<IFormFile> files)

Resolved
I found that it should instead be this on the server side:
public async Task<IActionResult> PostImportExistingRequestsAsync()
{
    var form = await Request.ReadFormAsync();
    var files = form.Files;

A: Angular: scaffold a front end folder angular for your component
ng g component upload --spec false

import { Component, OnInit, Output, EventEmitter } from '@angular/core';
import { HttpEventType, HttpClient } from '@angular/common/http';

@Component({
  selector: 'file-upload-toAspCore',
  templateUrl: './upload.component.html',
  styleUrls: ['./upload.component.css']
})
export class UploadComponent implements OnInit {
  public progress: progressPercentage;  // you can yse this to display progress in HTML
  public message: string;

  @Output() public onUploadFinished = new EventEmitter();
  constructor(private http: HttpClient) { }

  ngOnInit() {}

  public uploadFile = (files) => {
    if (files.length === 0) {
      return;
    }

    let filesToUpload = <File>files[0];
    const formData = new FormData();
    formData.append('file', filesToUpload, filesToUpload.name);

    this.http.post('https://localhost:4200/api/uploaderAction', formData,
    {reportProgress: true, observe: 'events'})
      .subscribe(event => {

        if (event.type === HttpEventType.UploadProgress)
          // helps display progress to user
          this.progress = Math.round(100 * event.loaded / event.total);

        else if (event.type === HttpEventType.Response) {
          this.message = 'Upload success.';
          this.onUploadFinished.emit(event.body);
        }
      });
  }
}

ASP Action that receives the file
   [HttpPost, DisableRequestSizeLimit]
    public async Task<IActionResult> UploaderAction()
    {
        try
        {
            var formCollection = await Request.ReadFormAsync();
            var file = formCollection.Files.First();


Q: MSSQL Why is this function non-deterministic I have this user function, which is always flagged as non-deterministic, although the value will always be the same as long as the input parameter is the same. Everything I've read suggests this should be deterministic.
Can anybody spot why?
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER FUNCTION [dbo].[udfGetCriteriaScore]
    (
        @InputString varchar(max)
    )
    RETURNS int
    WITH SCHEMABINDING
    AS
    BEGIN
        DECLARE @returnScore int;

            DECLARE @IdentifierChar NCHAR(1)= '"'
            DECLARE @overallScore int
            DECLARE @FirstID int
            DECLARE @SecondID int
            DECLARE @TargetString varchar(MAX)
            DECLARE @startDateCriteria varchar(MAX);
            DECLARE @endDateCriteria varchar(MAX);

            declare @scoringTable table (
                Criterion varchar(max),
                CriteriaScore int,
                Occurances int,
                SumTotalScore int
            )

            DECLARE @TotalCriterions int = (SELECT LEN(@InputString) - LEN(REPLACE(@InputString, '@', '')))
            declare @COUNT int = 0
            declare @Length int = 0

            WHILE(@COUNT) < @TotalCriterions
            BEGIN
                Set @FirstID = CHARINDEX(@IdentifierChar, @InputString, @Length)
                Set @SecondID = CHARINDEX(@IdentifierChar, @InputString, @FirstID + 1)
                Set @Length = @SecondID - @FirstID
                Set @TargetString = SUBSTRING(@InputString, @FirstID + 1, @Length - 1)
                SET @COUNT = @COUNT + 1
                Set @Length = @SecondID + 1

                DECLARE @criteriaScore int
                DECLARE @criteriaCount int

                DECLARE @Criterion varchar(max)
                SET @Criterion = SUBSTRING(@TargetString, 0, CHARINDEX(':', @TargetString))

                -- Calculate date range score
                IF (LOWER(@Criterion) = '@fromdate' OR LOWER(@Criterion) = '@todate')
                    BEGIN
                        IF LOWER(@Criterion) = '@fromdate'
                            SET @startDateCriteria = SUBSTRING(@TargetString, CHARINDEX(':', @TargetString) + 2, LEN(@TargetString) - CHARINDEX(':', @TargetString))

                        IF LOWER(@Criterion) = '@todate'
                            SET @endDateCriteria = SUBSTRING(@TargetString, CHARINDEX(':', @TargetString) + 2, LEN(@TargetString) - CHARINDEX(':', @TargetString))

                        IF @startDateCriteria IS NOT NULL AND @endDateCriteria IS NOT NULL
                            BEGIN
                                SET @criteriaScore = 5
                                SET @criteriaCount = DATEDIFF (dd, @startDateCriteria, @endDateCriteria)

                                INSERT INTO @scoringTable
                                    (Criterion, CriteriaScore, Occurances, SumTotalScore)
                                VALUES
                                    ('DateRange', @criteriaScore, @criteriaCount, (@criteriaScore * @criteriaCount))
                            END
                    END
                ELSE
                -- Calculate individual criterion score
                    BEGIN

                        SET @criteriaScore =
                            CASE
                                WHEN LOWER(@Criterion) = '@branchid' THEN 10
                                WHEN LOWER(@Criterion) = '@locationid' THEN 10
                                WHEN LOWER(@Criterion) = '@salesexecid' THEN 1
                                WHEN LOWER(@Criterion) = '@thedate' THEN 5
                                ELSE 1
                            END

                        SET @criteriaCount =
                            (SELECT
                                    CASE
                                        WHEN LEN(REPLACE(@TargetString, @Criterion, '')) < 3 THEN 0
                                        ELSE LEN(@TargetString) - LEN(REPLACE(@TargetString, ';', '')) + 1
                                    END
                            )

                        INSERT INTO @scoringTable
                                (Criterion, CriteriaScore, Occurances, SumTotalScore)
                            VALUES
                                (@Criterion, @criteriaScore, @criteriaCount, (@criteriaScore * @criteriaCount))

                    END
            END

            IF EXISTS (SELECT Occurances from @scoringTable where Occurances > 0 AND LOWER(Criterion) in ('@salesexecid', '@locationid'))
                UPDATE @scoringTable SET SumTotalScore = 0 where LOWER(Criterion) = '@branchid'

            set @returnScore = (select SUM(SumTotalScore) from @scoringTable)

        Return @returnScore;
    END

It is designed to split out strings like this:
["@BranchID: 154","@FromDate: 2018-02-01T00:00:00","@ToDate: 2018-02-26T00:00:00","@SalesExecID: "]

and return an overall score based on date range, number of branches included etc.
The following IsDeterministic check is always 0?
SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[udfGetCriteriaScore]'), 'IsDeterministic')

A: Other people have the same problem:
https://www.sqlservercentral.com/Forums/Topic1545616-392-1.aspx
There, the solution was to convert the string date to an actual date:

You need to do an explicit CONVERT to use the string literal. I
  changed your code a little bit to remove the +1

 CREATE TABLE Test(    DayDate DATE,    DayNumber AS (DATEDIFF( DD,
 CONVERT( DATE, '2014-04-30', 120), DayDate)) PERSISTED)

 INSERT INTO Test(DayDate) VALUES(GETDATE()) SELECT * FROM Test DROP
 TABLE Test

The same answer explains this is because there are date formats that are non-deterministic and therefore you need to explicitly set a (deterministic) date format for the string conversion to be considered deterministic.


Q: How do I iterate through each column of data in a LINQ to SQL query? Imagine my LINQ to SQL query is this:
var query = (from q in db.GetTable<potato>()
            where q.ID == dbID
            select q).FirstOrDefault();

How would I iterate horizontally instead of vertically?.  So there's just the one row, I want to iterate through each data item in a column per column basis, instead of row by row.  Theres quite a few properties so I'd just like to iterate instead of writing them all manually.
Thanks!

A: If data you want is Property:
var values = typeof(potato)
    .GetProperties()
    .Select(p=>p.GetValue(query,null))
    .ToArray();

If data is Field:
var values = typeof(potato)
    .GetFields()
    .Select(p=>p.GetValue(query))
    .ToArray();

If some property must be returned you can filter PropertyInfoes or FieldInfoes like below:
typeof(potato)
    .GetFields()
    .Where(p=>...labla...)
    .Select...

A: You can get this through reflection
foreach (PropertyInfo propertyInfo in potato.GetType().GetProperties())
{
    if (propertyInfo.CanRead)
    {
          string val= propertyInfo.GetValue(potato, null).ToString();
    }
}


Q: get modifiers on windows platform Anyone knows how to get modifier on Windows platform?
I know there is a function called GetKeyState(), but I could not get windows or meta key with it. Its document is here..
Any advices will apperciate.
Thx

A: The Windows key is covered by VK_LWIN and VK_RWIN, respectively the left and the right key.
The "meta" key is presumably the one that brings up the context menu for the active window, same one you'd see if you right-click the mouse.  It is VK_APPS.  Beware that it is not a modifier key.


Q: PHP Parse Error - Unexpected End of File I'm a complete newbie to programming and php, my code's throwing back an error saying there's an unexpected end to the file and I can't for the life of me see what's missing or there that shouldn't be. Can anyone spot it?

<title><?php echo $firstname; ?> <?php echo $lastname; ?>'s Profile</title>

<?php

if (isset($_GET['username'])){
  $username = $_GET['username'];
    mysql_connect("localhost","root", "") or die ("Could not connect to the server");
    mysql_select_db("users") or die ("That database could not be found.");
 $userquery = mysql_query("SELECT * FROM users WHERE username='$username'") or die ("The query could not be completed, please try again later.");
 if(mysql_num_rows($userquery) !=1){
  die ("That user could not be found.");
 }
 while($row = mysql_fetch_array($userquery, MYSQL_ASSOC)) {
  $firstname = $row['firstname'];
  $lastname = $row['lastname'];
  $email = $row['email'];
  $dbusername = $row['dbusername'];
  $access = $row['access'];
  }
  if($username != $dbusername){
   die ("There has been a fatal error, please try again.");
  }

  if($access == 1) {
   $access = "Level 1 User";
  } else
   if($access == 2) {
    $access = "Level 2 User";
   } else
     if($access == 3) {
      $access = "Level 3 User";
     } else
      if($access == 4) {
       $access = "Administrator.";
      } else die ("This user has an access level beyond the realms of possibility. Beware.");

?>

<?php echo $firstname; ?> <?php echo $lastname; ?>'s Profile

Firstname:	<?php echo $firstname; ?>

Lastname:	<?php echo $lastname; ?>

email:	<?php echo $email; ?>

dbusername:	<?php echo $dbusername; ?>

access:	<?php echo $access; ?>

A: Is the main if code block that needs to be closed with a }

<title><?php echo $firstname; ?> <?php echo $lastname; ?>'s Profile</title>

<?php

if (isset($_GET['username'])){
  $username = $_GET['username'];
    mysql_connect("localhost","root", "") or die ("Could not connect to the server");
    mysql_select_db("users") or die ("That database could not be found.");
 $userquery = mysql_query("SELECT * FROM users WHERE username='$username'") or die ("The query could not be completed, please try again later.");
 if(mysql_num_rows($userquery) !=1){
  die ("That user could not be found.");
 }
 while($row = mysql_fetch_array($userquery, MYSQL_ASSOC)) {
  $firstname = $row['firstname'];
  $lastname = $row['lastname'];
  $email = $row['email'];
  $dbusername = $row['dbusername'];
  $access = $row['access'];
  }
  if($username != $dbusername){
   die ("There has been a fatal error, please try again.");
  }

  if($access == 1) {
   $access = "Level 1 User";
  } else
   if($access == 2) {
    $access = "Level 2 User";
   } else
     if($access == 3) {
      $access = "Level 3 User";
     } else
      if($access == 4) {
       $access = "Administrator.";
      } else die ("This user has an access level beyond the realms of possibility. Beware.");
}//THIS IS WHAT IS MISSING

?>

<?php echo $firstname; ?> <?php echo $lastname; ?>'s Profile

Firstname:	<?php echo $firstname; ?>

Lastname:	<?php echo $lastname; ?>

email:	<?php echo $email; ?>

dbusername:	<?php echo $dbusername; ?>

access:	<?php echo $access; ?>


Q: Is there a better way to implement this memory management? This is a follow-up to my previous question regarding exceptions.
I have some legacy code that I am attempting to maintain. It has a custom memory management component that I am having difficulty understanding.
My understanding of the system is as follows:
Calling function asks for a some memory to be allocated for it, providing an initial amount of memory needed (needed), and a maximum amount (max). This calls:
base = VirtualAlloc(0, max, MEM_RESERVE, PAGE_NOACCESS);

Which I understand reserves the memory but does not provide access. In other words, if I try to write to the reserved segment, I would get an access violation.
It then calls:
VirtualAlloc(base, needed, MEM_COMMIT, PAGE_READWRITE);

Which makes needed amount of memory starting at base accessible.
The sticky part comes when trying to detect when more memory needs to be made accessible. My understanding is that the system attempts to catch access violation exceptions when they happen and call VirtualAlloc on the address to make the memory accessible.
It does this by declaring the following method:
unsigned long __cdecl
exceptionCatch(struct _EXCEPTION_RECORD* er, void*, struct _CONTEXT* cr, void*)
{
    if( er->ExceptionCode == EXCEPTION_ACCESS_VIOLATION
      && ExtendBuffer( (void*)er->ExceptionInformation[1] ) )
        return ExceptionContinueExecution;

    return ExceptionContinueSearch;
}

Then, it registers this as the exception handler for the top of the stack (I think), using this particularly horrible piece of code:
void __cdecl SetHandler(bExceptionRegistration& v)
{
    __asm
    {
        mov     eax, 8[ebp]     ; get exception register record to install
        mov     ecx, fs:[0]     ; get current head of chain

        cmp     ecx, eax        ; should we be at head?
        jb      search
        mov     [eax], ecx      ; save current head
        mov     fs:[0], eax     ; install new record at head
        jmp     short ret1
search:
        cmp     [ecx], eax      ; at proper location yet?
        ja      link
        mov     ecx, [ecx]      ; get next link
        jmp     search
link:
        mov     edx, [ecx]
        mov     [eax], edx      ; point to next
        mov     [ecx], eax
ret1:
    }
}

This method is called by instantiating a particular class in a method scope. It looks like it only applies the handler to the current stack context; as in, exceptions thrown in called functions are not handled by the current method if the exception is not propagated to the current method.
The result of all this is that not only is the access violation not caught, but it disables exception handling at the current top of the stack. I have set break points in the exceptionCatch function and execution doesn't appear to enter it.
I suppose my main questions are:

*

*Is there any particular reason why this shouldn't work? Edit: based on my own testing and comments here, I think the assembly code is the problem area.

*More importantly, is there a better way to do what I think the code is attempting to do?

I don't think something like set_unexpected is feasible, since the memory management is applying only to this particular library and the client application may (and in our case, does) have its own unexpected exception handler.
Edit:
The setting and unsetting of the handler per stack is done by declaring a class bExceptionRegistration with the following class constructor and destructor:
bExceptionRegistration :: bExceptionRegistration() : function(exceptionCatch)
{
    SetHandler(*this);
}

bExceptionRegistration :: ~bExceptionRegistration()
{
    UnsetHandler(*this);
}

So, to actually set the handler for a particular stack scope, you would have:
void someFunction()
{
    bExceptionRegistration er;
    // do some stuff here
}

Edit: I'm guessing that probably the most appropriate solution to all this is to replace the bExceptionRegistration declarations in the code with __try, __except blocks. I was hoping to avoid this however, as it is in a lot of places.

A: I'm not 100% sure about this without seeing more code.
It doesn't register the exception handler at the top of the stack but it uses a trick to insert the exception handling where the EXCEPTION_REGISTRATION structure is defined. So for example (maybe in your case it's implemented a bit differently):
void function3(EXCEPTION_REGISTRATION& handler)
{
    SetHandler(handler);
    //Do other stuff
}
void function2(EXCEPTION_REGISTRATION& handler)
{
    __try
    {
        //Do something
        function3(handler);
    }
    __except(expression)
    {
        //...
    }
}

void function()
{
    EXCEPTION_REGISTRATION handler;
    //..Init handler
    function2(handler)
}

When you call SetHandler it will insert the exception handling like it was in the scope of function. So in this case at the moment you call SetHandler it will appear as if there is a __try __except block in function.
Therefor if there's an exception inside function3 the handler in function will first be called and if that handler doesn't handle it, the handler installed by SetHandler will be called.


Q: RxJava2: onErrorResumeNext not intercepting 400 response code I have below code for error handling.  My issue is that when server sends a 400 error code the onErrorResumeNext is not being called.  Is this expected? I thought onErrorResumeNext would be called when server sends a non 200 code(200-300).
public Single adapt(Call c) {
 return ((Single) adapt(c)
         .onErrorResumeNext(new Function() {
         //BELOW NOT BEING EXECUTED ON 400 error from server.
         @Override
         public Object apply(Object throwable) throws Exception {

                 return Single.error(DoSomethingWithException((Throwable) throwable));
                 }
         }).subscribeOn(Schedulers.newThread())
           .observerOn(AndroidSchedulers.mainThread())
           .flatMap( response -> {

          }
          );}


Q: SQL Joins and Output format Can any one help me with the below sql?
**Table A**

Id  Seq   First_Name    Last_Name
1   1     John          Walter
1   2     Michael       Jordan
1   3     Sally         May

I want my output to look something like below where for a given Id, for each sequence number, I want to get first name and last name of the other sequence numbers.
Example Output
Id  Seq   Name
1   1     Michael Jordan | Sally May
1   2     John Walter | Sally May
1   3     John Walter | Michael Jordan

Any help with the SQL?

A: You want to use the collect() aggregate function.
Here's a link to it's Oracle documentation.
For your case, this would be:
create or replace type names_t as table of varchar2(50);
/

create or replace function join_names(names names_t)
                  return   varchar2
as
  ret varchar2(4000);
begin
  for i in 1 .. names.count loop

      if i > 1 then
         ret := ret || ',';
      end if;
      ret := ret || names(i);

  end loop;

  return ret;
end join_names;
/

create table tq84_table (
  id         number,
  seq        number,
  first_name varchar2(20),
  last_name  varchar2(20)
);

insert into tq84_table values (1, 1, 'John'   ,  'Walter');
insert into tq84_table values (1, 2, 'Michael',  'Jordan');
insert into tq84_table values (1, 3, 'Sally'  ,  'May'   );

select
  t1.id,
  t1.seq,
  join_names(
           cast(collect(t2.first_name || ' ' || t2.last_name order by t2.seq)
                as names_t)
  )
from
  tq84_table t1,
  tq84_table t2
where
  t1.id   =  t2.id and
  t1.seq !=  t2.seq
group by t1.id, t1.seq

If you're using Oracle 11R2 or higher, you can also use
LISTAGG, which is a lot simpler (without the necessity of
creating a type or function):
The query then becomes
select listagg(t2.first_name || ' ' || t2.last_name, ',')
       within group (order by t2.seq)
         over (partition by id) as names
  from .... same as above ...

A: Will work not only for 3 columns.This is in general.
 DECLARE @Names VARCHAR(8000)
SELECT @Names = COALESCE(@Names + ', ', '') + First_Name +' '+Last_Name FROM A
WHERE Seq !=2 and Id IS NOT NULL
select Id,Seq,@Names from A where Seq = 2
print @Names

You need to pass the Seq value so that you can get the records.
Thanks,
Prema


Q: C++ write a function to print all divisors of a float So I have been trying to write this function and implement it without luck. The function has to be written as void divisor (float x ) and it will ask a user for a int number and run until the user inputs a value of  0 . I get a few errors one which concerns me the most is  invalid operands of types ‘float’ and ‘int ’ to binary ‘operator
I have tried writing it so:
#include <iostream>
using namespace std ;

void divisor (float x )
  {
     int result ;
     int a ;
     result =   x % a << endl ;
     a++
     return 0 ;
  }
    };

 int main ()
{   int n ;
    float arg;
    cin >> arg ;
    cin >> n ;
    cin >> arg;
    if    ( n =! 0 ){
    divisor ( arg) ;
        }else{
          cin >> n ;
      } return 0 ;
    } ;

A: The expression x % a is only valid for integral types x and a. Since x is a float type, compilation fails.
If you want the floating point modulus for a float type, then use
std::fmodf

instead. (Note that a will be implicitly converted to a float.)
Reference: https://en.cppreference.com/w/cpp/numeric/math/fmod


Q: Fluentd : Is there a way to add multiple tags in single match block I have multiple source with different tags.
Im trying to add multiple tags inside single match block like this.
<source>
  @type tail
  @label @TESTLABEL
  path /var/log/containers/app-one-*.log
  pos_file /var/log/app-one.log.pos
  tag app.one
  <parse>
    @type none
  </parse>
  read_from_head true
</source>

<source>
  @type tail
  @label @TESTLABEL
  path /var/log/containers/app-two-*.log
  pos_file /var/log/app-two.log.pos
  tag app.two
  <parse>
    @type none
  </parse>
  read_from_head true
</source>

<source>
  @type tail
  @label @TESTLABEL
  path /var/log/containers/app-three-*.log
  pos_file /var/log/app-three.log.pos
  tag app.three
  <parse>
    @type none
  </parse>
  read_from_head true
</source>

<label @TESTLABEL>
  <match app.*>
    @type Test(confidential so adding test)
    subsystemname ${tag_parts[1]}
    is_json true
  </match>
</label>

Trying to set subsystemname value as tag's sub name like(one/two/three).
${tag_prefix[1]} is not working for me. Not sure if im doing anything wrong.

A: Use whitespace <match tag1 tag2 tagN>
From official docs
When multiple patterns are listed inside a single tag (delimited by one or more whitespaces), it matches any of the listed patterns:

*

*The patterns  match a and b

*The patterns <match a.** b.*> match a, a.b, a.b.c (from the first pattern) and b.d (from the second pattern).


Q: testcase failed when getting variable output from bot using botium box I am using botium-box. I have the following convo file:

Here the date is a variable and changes everyday so I have to change it everyday in convo file otherwise the testcase is failing.
I have tried few solutions:

*

*setting SCRIPTING_ENABLE_MEMORY to true in advance settings and using
placeholder for variables. For eg.

*I tried setting INTENT_CONFIDENCE to 70 in advance settings and using
in convo file. For eg:

*I tried INTENT_CONFIDENCE directly in convo file without setting it in advance capabilities. For eg.

*I tried using %s in place of variable. For eg.

Testcases are still failing. Is it a bug? Do I have to change any Botium settings? How can I do partial matching of responses?

A: Solution 1 should be working (see here and here). If it doesn't work, please attach log file for analysis.
Options 2 and 3 are for something totally different (verification of intent resolution confidence), and Option 4 is not a Botium feature.
What you can try as well: Botium by default does substring matching for assertions, so your convo file could look something like this:
#me
what is the date today ?

#bot
Today is


Q: How to write the jquery for the following I am new to jquery I want to hide a particular division when a particular element a drop downlist is selected, I also want to increase the size of the adjasent column when the particular is hidden

$(function() {
    $('#d1').change(function() {
        $('#group3').hide();
        $('#' + $(this).val()).show();
    });
});

    <select class="cls1">
        <option value="">Type</option>
        <option value="QS">1</option>
        <option value="SP">2</option>
        <option value="XL">3</option>
    </select>

        Division2: Hide when 3 is selected

        Hide when 1 or 2 is selected

but this hide division group3 every time How can I change it so that it would hide different divisions as per my choice

A: First you need to give all groups wich u want to hide in JS, a main class name (groupclass) like this :

    <select class="cls1">
        <option value="">Type</option>
        <option value="QS">1</option>
        <option value="SP">2</option>
        <option value="XL">3</option>
    </select>

        Division2: Hide when 3 is selected

        Hide when 1 or 2 is selected

Then you need to say in JS, hide all first and show just selected group like this :

A: Here you go

$d1 = $('#d1');
$d1.change(function() {
  $("[id^=group]").show();
  var value = $d1.val();
  if (value === "QS" || value === "SP") {
    $('#group3').hide();
  } else if (value === "XL") {
    $('#group2').hide();
  }
});

  <select class="cls1" id="d1">
    <option value="">Type</option>
    <option value="QS">1</option>
    <option value="SP">2</option>
    <option value="XL">3</option>
  </select>

    Division2: Hide when 3 is selected

    Hide when 1 or 2 is selected

A: You can try following,

$(function() {

    $('#d1').change(function(){

       var selected_valule  = $("#d1").val();
        console.log(selected_valule);
        if(selected_valule == "XL" ){
          $('#group3').hide();
            $('#group2').show();
        }else{
          $('#group2').hide();
            $('#group3').show();
        }

    });

    });

     <select class="cls1" id="d1">
     <option value="">Type</option>
     <option value="QS">1</option>
     <option value="SP">2</option>
     <option value="XL">3</option>
     </select>

 Division2: Hide when 3 is selected

 Hide when 1 or 2 is selected


Q: How to write a test method for createNewToken Method? I am new to this Mockito J-Unit Testing and I want to test my createNewToken()-Method but I cant understand the logic of it.
This is my method:
public String createNewToken(String usertoken) {
    WebToken oldToken = getTokenByUserToken(usertoken);
    if (!Assert.isNull(oldToken)) {
        em.remove(oldToken);
    }
    WebToken webToken = new WebToken();
    webToken.setToken(UUID.randomUUID().toString());
    webToken.setUserToken(usertoken);
    em.persist(webToken);

    return webToken.getToken();
}

And this is my test method but i am sure it is wrong:
@RunWith(Enclosed.class)
public class WebTokenPSTest extends AbstractPersistenceTest {
    @InjectMocks
    WebTokenPS cut;

    @RunWith(MockitoJUnitRunner.class)
    public static class createNewToken extends WebTokenPSTest {

        @Test
        public void happyPath() {
            String token = cut.createNewToken("token");
            String result = token;
            assertThat(result).isEqualTo(token);
        }
    }
}

A: Tthe main parts of your method works with Hibernate EntityManager,  as I can see. So you should test this part, or mock it if possible.
Also you can mock getTokenByUserToken(userToket). Here you can write several cases.
So the possible test cases:

*

*getTokenByUserToken(usertoken) return null. So your method creates new Token and persist token to DB. The assertion em.createQuery("select token t...."). Here you validate that new token persists to DB

*getTokenByUserToken(usertoken) return not persisted in DB token. Here you can expect the exception, when the EntityManager tries to remove this token. It's a good way to find, that some exception cases aren't properly handled in the code

*getTokenByUserToken(usertoken) returns existing token (you can insert it to DB before this test for example). Here you test the removing of existing token and creating of the new token.


Q: How to set Windows Forms Application (C++) to have an Aero/Glass background? I am working on creating a Windows Forms Application in C++ using Visual Studio 2010 Pro. I wanted to create a transparent background, that is, using the Aero Glass effect, similar to the way it surrounds the bottom of the UI in Windows Photo Viewer. At this point, I've looked through all of the features, and while you can change color and opacity, it's not exactly what I'm looking for. I want that nice blurred glass effect.
I started this project from the template code that Visual Studio gives you, so I don't really have much to link. I just added a few items from the toolbox and linked them to functions in the Form1.h file. I apologize for my lack of input, I'm quite new to Windows UI programming; I wish I could add more information. For the sake of simplicity, here is the Form1.h code:
#pragma once

namespace Secret { //my project's name is "Secret"

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
    Form1(void)
    {
        InitializeComponent();
        //
        //TODO: Add the constructor code here
        //
    }

protected:
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    ~Form1()
    {
        if (components)
        {
            delete components;
        }
    }
private: System::Windows::Forms::Button^  button1;
private: System::Windows::Forms::RichTextBox^  richTextBox1;
private: System::Windows::Forms::TextBox^  textBox1;
private: Microsoft::VisualBasic::PowerPacks::ShapeContainer^  shapeContainer1;
private: Microsoft::VisualBasic::PowerPacks::RectangleShape^  rectangleShape1;
private: Microsoft::VisualBasic::PowerPacks::LineShape^  lineShape1;
private: Microsoft::VisualBasic::PowerPacks::OvalShape^  ovalShape2;
private: Microsoft::VisualBasic::PowerPacks::OvalShape^  ovalShape1;
protected:

private:
    /// <summary>
    /// Required designer variable.
    /// </summary>
    System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    void InitializeComponent(void)
    {
        this->button1 = (gcnew System::Windows::Forms::Button());
        this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
        this->textBox1 = (gcnew System::Windows::Forms::TextBox());
        this->shapeContainer1 = (gcnew Microsoft::VisualBasic::PowerPacks::ShapeContainer());
        this->lineShape1 = (gcnew Microsoft::VisualBasic::PowerPacks::LineShape());
        this->ovalShape2 = (gcnew Microsoft::VisualBasic::PowerPacks::OvalShape());
        this->ovalShape1 = (gcnew Microsoft::VisualBasic::PowerPacks::OvalShape());
        this->rectangleShape1 = (gcnew Microsoft::VisualBasic::PowerPacks::RectangleShape());
        this->SuspendLayout();
        //
        // button1
        //
        this->button1->Location = System::Drawing::Point(107, 171);
        this->button1->Name = L"button1";
        this->button1->Size = System::Drawing::Size(75, 23);
        this->button1->TabIndex = 0;
        this->button1->Text = L"Save";
        this->button1->UseVisualStyleBackColor = true;
        this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
        //
        // richTextBox1
        //
        this->richTextBox1->Location = System::Drawing::Point(12, 12);
        this->richTextBox1->Name = L"richTextBox1";
        this->richTextBox1->Size = System::Drawing::Size(260, 126);
        this->richTextBox1->TabIndex = 1;
        this->richTextBox1->Text = L"";
        this->richTextBox1->TextChanged += gcnew System::EventHandler(this, &Form1::richTextBox1_TextChanged);
        //
        // textBox1
        //
        this->textBox1->Location = System::Drawing::Point(13, 145);
        this->textBox1->Name = L"textBox1";
        this->textBox1->Size = System::Drawing::Size(259, 20);
        this->textBox1->TabIndex = 2;
        this->textBox1->Text = L"filename.txt";
        //
        // shapeContainer1
        //
        this->shapeContainer1->Location = System::Drawing::Point(0, 0);
        this->shapeContainer1->Margin = System::Windows::Forms::Padding(0);
        this->shapeContainer1->Name = L"shapeContainer1";
        this->shapeContainer1->Shapes->AddRange(gcnew cli::array< Microsoft::VisualBasic::PowerPacks::Shape^  >(4) {this->lineShape1,
            this->ovalShape2, this->ovalShape1, this->rectangleShape1});
        this->shapeContainer1->Size = System::Drawing::Size(290, 268);
        this->shapeContainer1->TabIndex = 3;
        this->shapeContainer1->TabStop = false;
        //
        // lineShape1
        //
        this->lineShape1->Name = L"lineShape1";
        this->lineShape1->X1 = 14;
        this->lineShape1->X2 = 270;
        this->lineShape1->Y1 = 228;
        this->lineShape1->Y2 = 228;
        //
        // ovalShape2
        //
        this->ovalShape2->Location = System::Drawing::Point(135, 207);
        this->ovalShape2->Name = L"ovalShape2";
        this->ovalShape2->Size = System::Drawing::Size(20, 44);
        //
        // ovalShape1
        //
        this->ovalShape1->Location = System::Drawing::Point(16, 208);
        this->ovalShape1->Name = L"ovalShape1";
        this->ovalShape1->Size = System::Drawing::Size(252, 42);
        //
        // rectangleShape1
        //
        this->rectangleShape1->Location = System::Drawing::Point(14, 206);
        this->rectangleShape1->Name = L"rectangleShape1";
        this->rectangleShape1->Size = System::Drawing::Size(257, 46);
        //
        // Form1
        //
        this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
        this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
        this->BackColor = System::Drawing::SystemColors::Control;
        this->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;
        this->ClientSize = System::Drawing::Size(290, 268);
        this->Controls->Add(this->textBox1);
        this->Controls->Add(this->richTextBox1);
        this->Controls->Add(this->button1);
        this->Controls->Add(this->shapeContainer1);
        this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::Fixed3D;
        this->MaximizeBox = false;
        this->Name = L"Form1";
        this->Text = L"Secret";
        this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
        this->ResumeLayout(false);
        this->PerformLayout();

    }
#pragma endregion
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         }
private: System::Void richTextBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
         }
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
         }
};
}

Thank you for any and all help! I appreciate it.

A: What you're looking for is the DWM (Desktop Window Manager) API, especially the function DwmExtendFrameIntoClientArea.
Here's some C# code that demonstrates how to do this: CodeProject
Also, make sure not to extend the frame when desktop composition is enabled, or you'll run into problems.


Q: How to solve team provision issue without giving someone login information? Sometimes, other team members receive certificates and provision files from me.
And it is finely installed but, 'team ID' warning is shown sometime.
When they login to ADC account in xcode (by clicking 'fix issue' button on xcode) it is solved.
But, some developers are from other team/company, so it is hard to tell them login information.
In this case, how to solve team provision (team prefix) problem ?
Thanks

A: You simply (I say simply, but if can be one of the most aggravating parts of iOS development) need to make sure you are providing the developers with the private key for the certificate, the certificate, and provisioning profile for development.  If your project settings are correct, you should not get the team prefix problem.  Also, I would encourage the other team members to delete all their other certificates and profiles before installing yours.
The other option would be to add their Apple IDs to your account as a team member.  They can have their own credentials, but still access the account through xCode.


Q: convert the image value array into x/y coordinates I want to find the x/y coordinate of the edge after using canny edge detection with openCV
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('star.png',0)
edges = cv.Canny(img,100,200)
plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()

 before
 after turning it into grey scale and canny's edge detection
the data values is stored in variable "edges", is there a way to take the value of the actual edge and turn it into x,y coord
Thank you

A: You can get the edge coordinates by using numpy library:
xAxis, yAxis = np.nonzero(edges)

In here xAxis and yAxis include all the x and y axis respectively belong to the edge which canny detected. You can also simply calculate the average of these coordinates which mean the center of detected edge coordinates:
centerX = int(np.mean(xAxis))
centerY = int(np.mean(yAxis))

Here is the whole code:
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
from numpy.core.defchararray import center
img = cv.imread('/home/yns/Downloads/st.jpg',0)
edges = cv.Canny(img,100,200)

xAxis, yAxis = np.nonzero(edges)

centerX = int(np.mean(xAxis))
centerY = int(np.mean(yAxis))

cv.circle(img,(centerX,centerY),5,(0,255,255),3)

plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()


Q: Ms-access Combo Populate For some reason my Combo box will not populate a text box field, i have done this on previous forms and even have working in different fields on this very form, but i cannot seem to get it to populate one text box. here is a picture to show what is happening, as well as the code. in theory it should work and all the properties are set correct. This combo box is from another table though.
Private Sub ProjectID_Change()
Me.Client_Name.Value = Me.ProjectID.Column(2)
End Sub

A: Combobox columns are numbered from (0) so you need to reference column 1 ;
Private Sub ProjectID_Change()
    Me.Client_Name.Value = Me.ProjectID.Column(1)
End Sub

And as suggested move it to the AfterUpdate event.


Q: Inserting Javascript based on Ruby If Statement I am trying to trigger a bootstrap modal based on conditions about the current user.  Essentially, to do anything in the page the user is accessing, they need to have created a hotel in the system.  If they haven't, I want a modal to pop up with the creation form.  Currently, I have:
 <%= unless current_user.hotels.exists?
    "<script>
       $('#createhotelModal').modal('toggle')
     </script>"
     end
    %>

Which simply inserts the  as text.  Trying to next a <%= javascript_tag do %> command doesn't work with the controller throwing various errors.  Is this the smart way to do it, or should I just create a completely separate page and use the controller to send people to the correct page?

A: Follow advice listed in this railscast
<%= javascript_tag do %>
  $('#createhotelModal').modal('toggle')
<% end %>


Q: Asp.net MVC5 async action result executed, but response not sent till web server shutdown I have an async action, which is supposed to return a JSON message to the browser after awaiting some task. Though the ActionResult is built and executed successfully(I'm using my own JsonResult, so I confirmed this by stepping into the source), the browser still gets no response(confirmed by Fiddler).
Meanwhile, it works if I'm awaiting for Task.Delay(), and returning a dummy message.
Strangely, if I rebuild my projects with VS2013 while the IIS Express running my website, all the sudden the browser receives the message that was supposed to be sent several  minutes ago! I think it's shutting down the web server makes this happen, however I can't figure out how exactly this is happening.
I've been debugging for a day, disabled everything that I thought could have been related, with no luck. So any help about what could be the cause to this strange behavior is welcome. Thanks, here is the code:
    [HttpPost]
    public async Task<JsonResult> Update(string token)
    {
        try
        {
            //This works
            //await Task.Delay(TimeSpan.FromSeconds(1));
            //return Json(new { error = "testing." });

            //This won't work
            var feedback = await ServerConnectionKeeper.UpdateStation(token);

            return feedback.Success
                ? Json(new { redirect = Url.Action("Index", "Home") })
                : Json(new { error = feedback.Error });
        }
        catch (Exception ex)
        {
            return Json(new { error = ex.Message });
        }
    }

A: It turns out that I called an async void method, which made some strange unknown(by me) things happen. Here is the some conceptual code:
    [HttpPost]
    public async Task<JsonResult> Data()
    {
        await SomeTask();
        return Json(new { message = "Testing" });
    }

    private async Task SomeTask()
    {
        FireAndForget();
        await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);
    }

    private async void FireAndForget()
    {
        await Task.Delay(TimeSpan.FromSeconds(100)).ConfigureAwait(false);
    }

With above code, I thought the response would come 1 second after requesting. But it does not, not even 100 seconds after. In some cases I get a InvalidOperationException, in other cases I get nothing.
If I change the async void to async Task, either ConfigureAwait(false) or not, every thing works:
    [HttpPost]
    public async Task<JsonResult> Data()
    {
        await SomeTask();
        return Json(new { message = "Testing 4" });
    }

    private async Task SomeTask()
    {
        FireAndForget();
        await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);
    }

    private async Task FireAndForget()
    {
        await Task.Delay(TimeSpan.FromSeconds(100)).ConfigureAwait(false);
    }

The reason responses are sent when web server shutting down in my production code, is because my FireAndForget() method there is an async loop reading network messages, and never returns untill the connection closed, and shutting down the web server closes the connection. It's still strange to me that I didn't get InvalidOperationException there though.


Q: how to refine jq output I have a json file. A simple example looks like:
[
{
  "host": "a.com",
  "ip": "1.2.2.3",
  "port": 8,
  "name":"xyz"
},
{
  "host": "b.com",
  "ip": "2.5.0.4",
  "port": 3,
  "name":"xyz"

},
{
  "host": "c.com",
  "ip": "9.17.6.7",
  "port": 4,
  "name":"xyz"
}
]

I want to extract the "host" and "ip" value and add them in a comma separated values file. Each record in a line as follows:
a.com,1.2.2.3
b.com,2.5.0.4
c.com,9.17.6.7

I installed jq library to parse the json file. I executed this command:
cat test.json | jq '.[] | {host: .host, ip: .ip}'

The output I get is as the following:
{
  "host": "a.com",
  "ip": "1.2.2.3"
}
{
  "host": "b.com",
  "ip": "2.5.0.4"
}
{
  "host": "c.com",
  "ip": "9.17.6.7"
}

Is there any way I can extract the output as I want? This output that jq produced require additional script to parse it and save the values as I want in csv format, one item in a line.

A: To remove quotes:
$ cat test.json | jq -r '.[] | [ .host, .ip ] | @csv' | sed 's/"//g'
a.com,1.2.2.3
b.com,2.5.0.4
c.com,9.17.6.7

If using OS X, use Homebrew to install GNU sed.

A: Use the @csv format to produce CSV output from an array of the values.
cat test.json | jq -r '.[] | [.host, .ip] | @csv'

The -r option is needed to get raw output rather than JSON, which would wrap an extra set of quotes around the result and escape the quotes that surround each field.


Q: How can I align an ajax spinner over a knockoutjs templated div I am binding certain html templates. Inside the bound div I have an image which is the ajax spinner. This image is never visible I guess because its overriden with the bound template.
Where should I now put this image so it is centered over the div with the bound template?

A: You can either include it in the template, or place it just outside the templated div, and set its position absolutely with CSS.

You could go a step further, and have it only visible when a certain observable is true.


Q: get error on "buildozer android debug deploy run" get this error
Command failed: ./distribute.sh -m "kivy"
when trying to
$ buildozer android debug deploy run
How to fix it?
thanks

A: That means something went wrong in the python-for-android build step, but there are tons of problems that would give that error.
Could you set the buildozer token log_level = 2 in your buildozer.spec and try it again (by default it will be 1). This will get buildozer to print much more information about the build process, including hopefully more about the error. Then, could you include that error information here?


Q: Laravel Undefined offset when using Skip() in database query Hopefully a simple one, but I'm getting nowhere fast with it,
I need to perform a query in Laravel where I skip the first two records in a database,
running the query
DB::table('recent_videos')->where('user_id', $userId)->orderBy('created_at')->get()
pulls all records as expected, but when I use
DB::table('recent_videos')->where('user_id', $userId)->orderBy('created_at')->skip(2)->get();
I get the following error:
Your Video count not be created due to this error: SQLSTATE[42000]: Syntax error or access
 violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'offset 2' at line 1
(SQL: select * from `recent_videos` where `user_id` = 1 order by `created_at` asc offset 2)

I get that it's related to offset 2 but I can't work out how to fix it,
Thanks!


Q: Multiple functions with one "function" How can I get by using one function with function names and executions?
function
  RunA() {
    alert("I run function A!");
  }
  RunB() {
    alert("I run function B!");
  }

If this was explained elsewhere, my apologies.
Edit: Trying to create a name for each function without using function every time

A: No but you could do
function RunA(){
    alert("I run function A!");
};

function RunB(){
    alert("I run function B!");
};

function RunAB(){
    RunA();
    RunB();
};

A: Short answer: No.
Long answer: While it might seem like a good idea to save as much typing as possible, generally even if this was syntactically valid it is not a good idea to overcomplicate well defined customs in the name of fancy looking code.
Just use
function RunA(){
    alert("I run function A!");
};

function RunB(){
    alert("I run function B!");
};


Q: Wht GetPostData() returns { } using cefpython3? I can't understand why if i launch this, fill the registration form in github and click "sign up" post data is {}.
I'm using python 3.7, cefpython 66.0
code:
import tkinter as tk
from tkinter import messagebox
from cefpython3 import cefpython as cef
#import cefpython3
import threading
import sys
import time
import webbrowser

def on_browse(browser,frame,request,user_gesture,is_redirect):
    if user_gesture == True:
        print('user_gesture:',user_gesture)
        print('GetFirstPartyForCookies:',request.GetFirstPartyForCookies())
        print('GetFlags',request.GetFlags())
        print('GetHeaderMap',request.GetHeaderMap())
        print('GetHeaderMultimap',request.GetHeaderMultimap())
        print('GetMethod',request.GetMethod())
        print('GetPostData',request.GetPostData())
        print('GetUrl',request.GetUrl())

def test_thread(frame):
    global browser
    sys.excepthook = cef.ExceptHook
    window_info = cef.WindowInfo(frame.winfo_id())
    window_info.SetAsChild(frame.winfo_id(), rect)
    cef.Initialize()
    browser = cef.CreateBrowserSync(window_info, url='http://www.github.com')
    browser.SetClientCallback('OnBeforeBrowse',on_browse)
    cef.MessageLoop()

def on_closing():
    print('closing')
    r.destroy()

r = tk.Tk()
r.geometry('800x600')
r.protocol('WM_DELETE_WINDOW', on_closing)
frame = tk.Frame(r, bg='blue', height=400)
frame2 = tk.Frame(r, bg='white', height=200)
frame.pack(side='top', fill='x')
frame2.pack(side='top', fill='x')
r.update()

tk.Button(frame2, text='Exit', command=on_closing).pack(side='left')
tk.Button(frame2, text='Show something',
          command=lambda: messagebox.showinfo('TITLE', 'Shown something')).pack(side='right')

rect = [0, 0, frame.winfo_width(), frame.winfo_height()]
print('browser: ', rect[2], 'x', rect[3])

thread = threading.Thread(target=test_thread, args=(frame,))
thread.start()

r.mainloop()

and this is how i fill the form
output:
browser:  800 x 400
user_gesture: True
GetFirstPartyForCookies:
GetFlags 0
GetHeaderMap {}
GetHeaderMultimap []
GetMethod POST
GetPostData {}
GetUrl https://github.com/join
closing
>>>

i was expecting to find something in GetPostData.
Thanks to everyone that will help me!
****UPDATE****
as suggested I tried with official cefpython tkinter example. I added
self.browser.SetClientCallback('OnBeforeResourceLoad',self.on_browse)

in class browserFrame def embed_browser. Then i add this function before "def embed_browser"
def on_browse(self, browser,frame,request):
        user_gesture  = True
        if user_gesture == True:
            print('user_gesture:',user_gesture)
            print('GetFirstPartyForCookies:',request.GetFirstPartyForCookies())
            print('GetFlags',request.GetFlags())
            print('GetHeaderMap',request.GetHeaderMap())
            print('GetHeaderMultimap',request.GetHeaderMultimap())
            print('GetMethod',request.GetMethod())
            print('GetPostData',request.GetPostData())
            print('GetUrl',request.GetUrl())

I got this output:
user_gesture: True
GetFirstPartyForCookies: https://github.com/join
GetFlags 0
GetHeaderMap {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Content-Type': 'application/x-www-form-urlencoded', 'Origin': 'https://github.com', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}
GetHeaderMultimap [('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'), ('Content-Type', 'application/x-www-form-urlencoded'), ('Origin', 'https://github.com'), ('Upgrade-Insecure-Requests', '1'), ('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36')]
GetMethod POST
[CEF Python] ExceptHook: catched exception, will shutdown CEF

Traceback (most recent call last):
  File "request_handler.pyx", line 117, in cefpython_py37.RequestHandler_OnBeforeResourceLoad
  File "C:\Users\*****\Desktop\tkinter_.py", line 166, in on_browse
    print('GetPostData',request.GetPostData())
  File "request.pyx", line 83, in cefpython_py37.PyRequest.GetPostData
  File "request.pyx", line 122, in cefpython_py37.PyRequest.GetPostData
  File "C:\Python37\lib\urllib\parse.py", line 740, in parse_qsl
    value = _coerce_result(value)
  File "C:\Python37\lib\urllib\parse.py", line 103, in _encode_result
    return obj.encode(encoding, errors)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2713' in position 0: ordinal not in range(128)


Q: extend jekyll / octopress with db? I've been looking to move my wp blog to octopress (based on jekyll).
I'd like to have the option to add a member login/registration system to the site as well as other dynamic functionality later down the line, but I like the idea of having my content static, like octopress offers. I don't necessarily need comments on the blog.
I've read that octopress is based on sinatra, but I'm not a ruby expert.
Would it be possible to use sinatra to achieve what I want or do I need to use some other toolkit?
Thanks,
B

A: After one day of no replies you're already disappointed in the 'ruby fanboys'... Not surprised it stays silent after such a comment.
Anyway, both Jekyll and Octopress are specifically aimed at generating static pages. You put the generated HTML files on a server and that's it. So there is no dynamic element at all. So if you want to add dynamic layers like a login system, you're looking at a totally different beast. You could create it, but you'd have to write the whole system yourself.
If you want use create CMS in Ruby, you might want to have a look at RefineryCMS