json-iterator / go

A high-performance 100% compatible drop-in replacement of "encoding/json"
http://jsoniter.com/migrate-from-go-std.html
MIT License
13.27k stars 1.02k forks source link

Cannot handle image base64 string properly, but std encoding/json can #274

Closed lnshi closed 6 years ago

lnshi commented 6 years ago

Just use the ConfigCompatibleWithStandardLibrary, and with the below input:

input := `{"model_spec": {"name": "inception", "signature_name": "predict_images"}, "inputs": {"images": {"dtype": 7, "tensor_shape": {"dim":[{"size": 1}]}, "string_val": ["\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\/wAARCAEAAQADAREAAhEBAxEB\/8QAHAAAAgMBAQEBAAAAAAAAAAAABQYDBAcCAQAI\/8QAQRAAAgEDAwEGBAQEBAUCBwAAAQIDAAQRBRIhMQYTIkFRYTJxgZEHFKHBI0Kx0RVSYvAkM3Lh8UOCFhclNFOiwv\/EABoBAAMBAQEBAAAAAAAAAAAAAAIDBAEFAAb\/xAAtEQACAgIDAAEEAQMEAwEAAAAAAQIRAyEEEjFBEyJRYTIFFHFCgZHwFTOxof\/aAAwDAQACEQMRAD8AAWlncFgY0JGetfNZ+TjiqbLcayT2kNmmySW6DvB0r53N1m\/tOxhbivuCR1aMoQSMipnxpIp+rFoA6xqKSK2CM10uFx5RdnI52WLVC3d4uIiB1ruQjRxuwsXOjTTS8A49asjKkNjIJ6ZaPauqv0qfLMNuxpiMaxgZGam7sxY7AWtSKj8ninwbYLjRQi1BYRgUTxtgkw1MOMZoXjaMo4lmJUkVqr5BcSC2vXWTD5xRyxqtHloP2twrqKmkqY5FxWUc45rErAkeTy8cUSiBYNupZACVBpkdGpv4A9xq01seCaqxyopx8iUC5pvaaXvFXJ3HiqF9x0sPN\/I2Q3FxexAB8sfSly4sZFj5VrQm9rOzN7dsZMkY5xjNbCCxHK5LlkYgoLnSNR\/iKVCnqPOqYyTRHCbxyNX7JdrIzbxqz4x1yaCTOzx+UpLY1z61HcQHawyfLNSzgmVvMkirYxpPMpPJzmjxJRIJ5O8rGSG4FugBPFblqhsclMK2moRyLtLCvneZilK0X4nezuaWIjJxXCjxcmKfZFVJopS3QAIBFfScJyaRPPRUnucqea7EoVEnlk0JvaZw4IPNQzfV0cblytivBIsbmnx+5HOZq2mWcQRRgdK+F5WWbbZ9bx8UVGkWLuwRFJGKRjzybooljVGf9pA9vc5jYruPIFfUcCskPuPnv6h2xyuLBKGVjktmuilGPhy5ScvS3bqMjNHYKCqRxbM8UfYYmAtalEL5Q8igasJMBy608Y69KKOCxylQOn1NrtiSeKphi6gSdlC8u2QcGmxhYui72aJupsyE4qflvotFnH46yej\/ABaQktvlR5VxHy3GWyvJwlVoEXWmMjHIwRV+PP2RypwcXTKcMjwy7SSMUyX3bATDFtMXA86X4a1ZOoLsM0SALTRrs5ArGxy8FrXLeMv4QKZBi5aegHHbmK5Vx0BquGSjIyaZpnZSSPuk5FULImdDDltbGy5jhlh6DpXpSTKrT9Mz7a6NBKxKoPmKllkcXog5CV6EKSzuNOlzCDj0p0Mql6TxyOHgTstUudyq2cjyr0xr5MmPXZ3UsKO8OG9aR22ehn3sNXmoAp4TkjzrzyKhz5AKt9aeGU7nxzUzipPY7Bz+umEl7Q71wWoHxol\/\/kInkWqGSXAbNUYIxi9ALmKboO2kffRAk8mujSaKElIH6vo\/fRtjqa5nJSjsny8RZEZ5rVtLp047wHaT1oOPkU9I42fBLE6ZoVhrS4ALc1weTwG9o7fF5kWqZduNWXuz4qhhwX28LJ8uKQia9e99OSfpX0fEw\/ThR89zM31ZFC2uAvU0+SIqO5Lzacg4rOrB8PRqhIxmipmlK8n78Hca1aDiK+pN3bHHSqsew7K9m248VQ9AWTXlsWTIFYpHkzvs\/MbOclgcZpXJh9SJ0OJmUHs0vStUWSEbTxivncvGals6zzRcdBm10m+1sYsbVpfV+ij5k8U3DjkvDlZ4\/UekErb8J7meTvdR1KC3X\/LEhdvrnAroRVLZOuLJvYdsvww0qDl9Uu5AOoCqKLqmM\/tvyy5\/8vNGVsrd3o9iVP7V6kZ\/aRfyfH8PdKYeK+vMegKj9q91Rq4qXyUbr8LdEuGyLy\/U+u5SP6Vm14efEi\/WA9Q\/BxiSdO1key3EP7qf2olNr1APh\/hgF+xXajQpSTZfmoV532r7\/wD9eD+lH9RC\/oZIeKy9Ffzbe7mV45BwUcEEfQ1v1bPfWktMoXLrNMO85ApGWTYpz7Mr3OlwyoZGQHPwjHX\/ALUmORxPNL0WbnShFMxVec5zVqy2hVkkCNEQSSMUDlZgQF2dmCTQNnrYJvrhT50yKNsitrk5ALHHzoZpmphiyudsq85FZjtMbjbTNB0K4V0UZGa6UW+p3sErQwERyR4PpXM5aZbEz\/t5axtZycDIGRUeBtZE0S87Ep42UtMtWkbJzVUVZxuLj7BS6syIsj0opYki\/Jx3Ql63iFmoYXdHKyQ6sXhfeIjNVdAD17tn8+K8sdAtHsczZ46VrgAW1zImPOkuNMJOgZqFq7ZyKdjdG3ZUtbZo3zmnuaaMC+wNHg88UuzyZPpWhz39ykcCMzu2FVRkk0rLnUNfJRig5+G2dkvw6sdIjWXWH\/M3Jwfy4OET5+p\/SpJS7fyL8eFr1j6kqRRqsarGijCooAx9q1Dqo4knlY+RFGkwLRz33qCKIw7FwRwa9ZpH+Zyw5obCROsmOlaCfC4Y9Grx49S45yTkeWayjSlqdrY6guy8jilz0JHiHyPUUt6PPHHIvuRmva3spPpIk1CzdrrT4wXZR8afPHVfeijJNUzn5uK8buPgt22q9+mWxk+nSgePZI5ncmx1LHrR+CwJqEiqeOBRRTZpQ\/OrggHitcGFQH1C5Bfg0\/Gj1HNrcYGSaZKFmMtLflXUqelYoUFEb+z+ubACH\/WqIaR1+LlobV7QRlPjHSkZsfY6SypKxK7Z64JIJFBycVPiwqMjn8rlKnFDDo9wgABIpMdE\/Cml6Fry6iMByRnFNlK0daUl1M07Tzo0rbK3HG2cXlNXoVVj3OTmqvgissKnvWM2y1bx0DZlF1Bg5oHsyiXKScNihaowqSwrkkVqkadWMU1zdwwWyPJNIwVEQZLH0FFZq26P0D2V0GHs1p6d6sZ1R1\/iyDkJ\/pX9zUGSSvR28GKoqwtC\/eycfLd1+1ArbKHpBGKCNBliD86pikieTbJGK48OMUfZAUyrcKdwYGsbCRHux160PY2iBn2zDnzyKyzaJWn42jk+dC5fBqj8ndsxI5HrRKVGNFwd0eHODRuUfAafwVrq3XBdGwB5DrQTSChJg+G7KScy5HQhhU6exzVoTO1vYyPbLqehrswd01oo4Hqyeg9vtVEJ6pnK5PFr7oCNPK0a7WBBHkRim9Tni1q87NkA03HGjUhfnuXiBFOUUzSi90zEls01QQVWfR3ZU4zxWuILRciuQaCqPItLetHhkbFakUwlXhMNbnYhd5x7GtasKfIl4Tc3gJYkk+tK8ZLKTk7GQ3kkD5UnFJWO0ex5HB6K13rkoQjk176RX\/dNqgHPO1yxL+dEl1ESk5bZTdxGcGmpWLoj7\/ng1vUwI2U4PBpc4mpl8kFcilUeKxkZSfSioEv6Vpl1ql5Ha20UkksvwBF3EmlyYUYtujbuxPYq17Jw\/nbphcasy7d2ARD6hff1NIyZKVI6fH43V9pel+7kaeQgbhnqVqVRv06V0XrZRaW4dg4z0BzTUqFt2VJ9TIJJcj1HpQttukEo6IodX2sV3efSl93F0F9K1ZdW\/V0LNj0FNUxbxnjyEjI5zRXYNUQTy7QGBycV5s1I+SfGeck8jigbDo6\/xBUwc4560DmasZV\/xQF28fw0MZfdYUsei5Z36tjc3hJwR602L+WLcfwdXUIXMkSAA+vJrz0\/DyIbG+dJQrnjpyP0ryk0elFNCR+I\/ZswI+qachNux\/jRj\/029R7Gqcc\/hnI5XH6vvEy7KSNzg1RtER02ix3PKjmtWRoyyvd9nmjXwrWrKOi0Kuo2j20+3aRVUJdkDL09tonZlAB5rG0Cx+7P9l4byEb8kmhTKsWFNbIu0HY\/8gDJEDxzkVrbNyYKVgKwuVjJRuGHFC0yMLrdxuMEjNKdo9RxIiP0xQ9jUUbqPuhkVq2EgNqEgzn15FOxo80V43ptAsNWEIuIgVfu5BwNw4alTdBxj2DEem3a5ikjYOOdy+JSPX5e9TynENYpDn2d\/Dq81bu5JpPy0AALSPH4SPbJGTSnmSGx4kpGmWEWmdl7M22kKDKww8zcs39h7CpJ5XJ0jqYOJHGgirtLCvnx5+Z96x7D8K0KI83O9tvnnaK9aXoVNkOrXQEZjgLIfUHNelK\/DYLdsRdUvb1J1L3G9P5Tjn5UNP0oTh5R1ZTyvKN79OeaW1ew20lQwwTgEDOPPH9K1CWgnFLlR5e9NiJkiGZzgA9Mn7VvweRw7EJkZ6dfShkg0UJJSRgnrk+1KoagBeSmG4YJJgH3ryjQ3ta2S6XcXE9wgM+I0\/lFGoNqwJSS0h40+5Vk7t5NoI4Oa39MnaPrm0cMWLDI5rasG6JLe5wpSUB1I2urDIZfetjL4YLimZN+I\/YSTSXk1bQS0mnPl2hIJMR6kA+npn5Zq3FmX8ZHK5HFcdx8Fns3e99IFcMp9xim5I0iHq2N13Gv5fdgEVI5bCpoU77SFu597AFc9BVGGdI2K7PZY\/wGKKIMg4HkaGeVp2h\/0lQa7OXcVpL3LsAR602GVSVjcU1F0EO1F9E9k+DnIpsZJj5zTRk0dq13eyGMHk5prdI5ctsFzXjxPkE4ryimjS9p2pNJxyTQSx0eCUsu6Mq4IPvS1E8QaXYR3s5gugwizwyjJQnz9x7U3xWh+HH9R0xp\/wDgSaKMSKneQtysicqR8\/2qafLo6EeDF+h7sj2YkS5Eb2rbHONynwv7dDz9qTLP9RGf2yxM2nQtHtbKyQNbRIFHG7JA++anavbGJVpA\/tJeqAVjZcjoOgFJkrZXiEVtQ7272A9GA58zmvVRRWh3nnCwQwRcu4GSPSib+ERpXtlfU72OwtAu4BsZND6xkVZj3bHtusF6bSIG5uicdzG+0J\/1N61dg4zmr8QvNmjj0\/RQn1\/UVWOe5WMQSnju5xIV+eOR9asfFitEi5bfwN2ja53yx5bkjJ96hyYepbDL3HLS7r8xOqqScct6fepXHY\/4GiHO0eg60xRJ2zx2PsTWmH3UEHJBGKxo1MX9Wl7hmX4QeQff0pPXdFCerELXtb7gNtYqxOeP9+lV4cLkJy5VBC7Y61q94802morpECSrzbS2ByQPPFdCPFXWmQS5f3DJ2K7ed\/fLaXYeG4Jx3bPuRvlnoakz8ZxXZbRXizRya+TZbO+SeHYW8Q6GofkZKOiC7k2oXU9OaCX5Mivg5ttYEI2ShXicYZWGQR6EUSYbx2B9R7EWd4WvtAiWM5y9uOgPqB6fKjWWVV6c7NxEncRc1GxvIImhMMm\/oAV5rFK2STxOgXYxusgSfAbrt8x8x5VTHwnpx9C0wXuSowTQS2F9XVCtfRMt4XXg0cdRoDvsh1ATy2xBY7cUyEqYTm2iLs5ZmNssvJPnT8kxQjQWpuZ8DpVa0huODm6HHR+zgCBgvNInks62Phqthmfs48sW3u3J8iFJoFJA5OKvA32U7LCG5Q3Fpe4HHCjafqRQZc1LTQfHxKBqUcthoNkHlhkjXHI45+dcief7tlqxPJ4Bb38TbWLKWVuF98UalNmrixXrAF\/+IU1yGzIwPoDWOM38jFihEXTr9xfXiqjF+QSCD+tMWKts85LxE9hN32qcAbVfy8zmskqSPX6O8F9i7d3y2BwBycUCTfgnqqoT+1r6vdztJBsSJVLBD1J8hTsKgv5BS7V9pjyaPdW9zPJexvOZid5bwsD6+9dj6kZJdH4cr6U025\/Jw9lO8LRxxuIuhL8AYPFGpW9sX06p0hw7GaXJNDGSMFvDz61HysiTot4uNpWavpNpHbIoRcY4x6Vzoq3bK5S1QchjDKB9aakIlI5lXaTkE\/Kt6gqR70A4869RtgnWrRbiB1IOSOuOc0mS3Y6EvgyXtnoM8cMjonCjnA\/XHpXQ4uZXRPycTasT2s2VI4hHJ3Z67eVPyq7s9qzn9E6dEsOgXt3qNvPYBkkjKhF6njzJ8qU8sYRan8j1hnKScPg13s5Lqul3JN+UaFgOB5etcnJ0f8TpxTaqQ0tdhmk2HKHxCpjetASa7IYbeQD+latjqG3s3qMUbhe8G4ccE5r3jEzi3scrmKG\/tCJYUlyMEnrTbTRFKBmfaTR4rVmMPc2yDoEOT9gK2MvyQZ8deaF1ZlI2Eu2P5m4z9KYQS0Vbm1DtkCjBLNtpqyxeJayzbI5NOMLbo1xignkHQxt+GR9nrhfzA3etduS0P4rSkarot1EIV6dKkkmd\/HNUN\/Z8z3swWC2lkjB5YjwD5nypGVJR2wMkkPyJ+Wtf4m1SB1PSuXllQONWzLO3Wt\/xTH3hx0yDkfak4Mfd2zoqoRETHesWG1s+YroLQpuytcxMo4U\/emRdipE9hN3DEjwRohZsdWY+Z9hWyVgp0MPZ8EXLHPQgn5kUnKEhs0+3bvu9YrufkqR0HkKHF6BkeqOruMG54YfTihkthReipc6bFKp3RIeOSRWKUkbpgu\/0SKeDukjKr54GBinY8klsXOMXoI6NokVuixkYRegrcknJ7Bj9q0NkFrhR\/KPSsQtyLcMBUY5+VMiLkyw0KmmtC0yGSEoDxkedKYxMpzxI+M5B8hQPYcW0Lmr6d3hKEbo34ORkUEdMf2UkCNO0KCKJoO6BCnIyBnFFkySls9GMY6C1rpcUDAiMZHGceVJ7N+h2l4SPZLcyYBZ1HTJrYptnnLqtkMqmLcnmAcEUM9M2LtC5bytPdOnmvH160cY6DlIFWGr3Mdw4AYYbA8ulHPGqsyEvgd9G7Y3tmq4wR6F+D+lJTcfDZYoz9DsmtaL2hj7u\/VbK5PSUDcuff0ouxFm4N+Am77JTQMZreSGeJuQY26\/tXvqtHNnwWmBpkMT7XBBHUGjhk7OiXJg6bCdgVZQOKbLSEwjcqLzQI64wCa43InP4PpOLxl12fmrTYmicHpX2bkfOxlTs0nsjF+anQbiwxwpGB8z7e9S5ZdUdDFmb0jX+z4hykUdw8zjjCKe7X5Dp965mSVvwsT\/JL2o1E28BjBySOh5Nc+b7So6HHh8mQa3M81w24AnPQrVeGKSGzZQESBcsVT3HFPsU0VJFWWZIYpDLK52qg\/c+lNjfomRIxiRzbQDciNy\/+bHU\/f8ApWpf6mY38DroMIWAynq+DUmT0YvBrtlXulc4bjpjpWx0KltnkwVsNg+vA61knYUdESurSBSc48vU0CCCCwAJvY9BzmnIS38HthGGYyDJXPANCbJ1oNRL3SBpOWPQY5o0hLdncsxRdxGD6U1Khb2QJfDeAQftW9vyZ1JywkUsmScVjV+Gp16VZUEiEqRuoGg0wPIDko4zzx7Ulj1R2Iv4QYKNwPnXpeGp7IGkxwBz6HmgbCojthjxqdvPXzFbD8my\/B9qEQZwT1PNZkWzMboT1h\/K6jetIMKGGPcef7UyLuKQyT+QFfQ9xq9wEPBbeBkjg8017RkW0Wh3mPicD6YpLSGps4jeRZhulcLnnyrzSrQSf5NP7HKptcxsXQjxITxULbTBzJNbJe0ei9\/bNNZF2YDJTbuYfLHWn49OzlZ8VpoSLa9e3k2yZz6nzq9VJHLguk9haDVU8zU0+N3Po+NmXXZh8BjTkuPXAHT7123bPlEhs0Ge9viFjlMFnEAXbov\/ALj\/ADH2qfIox2\/SrFKUtLw2jspAljYd6TJkrlS7c4PmRXLz5PwdbDDwguLR75XuihcODsXOMj1+VSOEkXwyx0k9GQ9rFaO8ZWfuRnonNXcba\/IeZi+8kcEZYBif88hyatSciV0thTs\/C66Rdao3hebMNuCOin4m+uMVmXTUAMX3NyJtDtC8gZhwR+lDkloOK3ZoEarBbxp5gdKhk9jEGLXK2h6qelFegH6dPKREFyQMckdWrbMrZLYWuZN74Hnj0rFo9J\/BbnP5hxDHwo5Y0XoCXXYUs7ZUAYjgdB5UUVWxcpWWZLhI13Sn5AedUY4OQiUqB93K8ib9yop\/zdMVXHAJeQGvdRoR\/wAXAD060X9pZn1qJYbxoU3bwyf6eRWS4p761hi0ure7jOzb3h6io8mNx9Q+MkyrfW4ILDAx9xSZKx0XQPikEcrLKPCRg\/3pevGNq1aKl0pjlGGBAOcn09aDxjI7RXZiJmjQcA4IIoQ\/VbLFwCrQg4wRRSFp+i52qtym+RBw8TL9cUePTCu0KsDNq+hJPHg39pGNw83UDn6+f3qices\/0wYSuINt9Q7xRjnI6q3X6UMsdDYyTPjId24xM3Pk1ZRtj12G1KRJFWMMMfykdahzrq7HV2jsedRhN7bm4tJEhkA8XJUg\/MdPqKyFPZBlg1oSNXtb648c8ZuGzjvAQzfcHkU+GSno52TG5eoU7i5lt5dsiMrA4+KroPsib60sehBs1WSTwEEL8Uj\/AAr8h5\/74roPS2TUjQezBAMMjozxRsFghY5kmkPTjoo8z5gVDmfwvf8A4WYVe34v\/wBNRjmNvBFFKv5i7nbCwJ\/6jefyQeZrmV3l9vi\/7Z1L+nH7vX\/2gtfKy6fKglyVH8WUDgn0HsKVk814Pwalv0wbtdcg6i6WnjfJ8Tc4\/YVfxY\/bch2eVaXoovHLe3sNpHIXklcIX9M+ntXQhSVnPyNvXyaHeLGtrb2kKgQplV\/6QAP71HttyZQqilFE3ZuAG4YHoG\/QeVBkegkNjJyJWBOTkCpRn6CUIZYk6A9Tz+9ELZYhiDEu44Pwg16zGzqSUohH04\/pXke9LWmLtk8Z96ICWyfWbh44Mwts28k1tNySQMaStgTWO0tlp9v391KgYr4Vzk48q7OLH1js505W9CPc9uIr6ZlZ2AGQF6fX5U5yr+J6ML9Jk1q3dDIYyNvkf60v6rsb9JNbPH7VQ2zYE3J6KemKbHJfomeOgjoXaiJ7iK4Q4aM4dfVfOhywUog420x+gu1mQ85BGa4r06OiloG3jL3mR1Hp5ilNjorRGxWUBDxkYFLYxaKTGSKZc4wBjdWWEqZPdzGQ2+OSDRNgxVWU9YUTWbk+hIrUzYmc6Y76Zr0ckZ\/hl8MPLBqy+0Qap2ANZhOmdoryBV\/gmTco9AeRTo\/fBMUn0lRdt5HHwsfcEZpDQ80nsNY\/mIRPFIpweVH9\/KudneyhS6ofGZoE71cnjDADnHnS4k0xG7YLIGMkBiKMN2QB0+dU40jm8hNGczNMbrMhYH5Yq+NJHLnd2K9oShG3wqBwP3+dXSYHhp34e2biJ9REe\/uV7qFS21Q2Mu5Y9AMgZrm8mX+n8+nU4cf9f48\/yaR2bsZ3uDKSx3jEl0y4aT0SJf5UHqetT0qr4\/76U27v5\/74VvxC1GK101rSFxHGg8RzwP7mp2\/qTSR0OPDquzMRugJUdkUpB6\/zSfP2rpQ+330Cb7eEXZSzM2uNOy+GJGKj3xgU+cqjRL1fewpcXQOoSRZwqtLH9QRQJfbYText7KwCa6ck4jUbmPzqbJ4NsO6pcINoHCg4+lTXsbGOi7azLK3v5AVq2BJUWJH3EhmKE8AeePavMFEqRonOdqgZz5mi8MbbJrJC9znnZjqfM15GSejnXGD6fcxRgDCHxYqnD\/InyfxPz5rtzK2oOl+WfnAIPRfUfaus7IYtWJ9xcsuol4CzlW9fKmRjrYEp1K0M8OrFn4BB2HqaS4D1l2Lsl9Pc6mTLIyAttGTxtpqilHQnu5S2NGlyG3fdETluDuOOKC70G1Ss33sov\/0aANkNsyc1zuQvvZTib6o5uP8A7kJ5GofkuXhyjLIM87lNCzVo+dwoAYKVND4atled1jaLaRw+eK8mEQa+4t7SRgPC\/I+tMS3QMXozO6fcwdW\/51wiJ65By39KsiqX+wEpf\/Tn8QYAmqWdwQds0W1sex\/71uB6aBn\/ACKlmdoVXYHGMN6j3oZbGxNO7A3UKvs27JAfiH71z80adjnuOh6vZlThjtY+WevypEU7EtWhY1CASu0chQJ\/lI5T\/UvqD5inXW0SzV6fgrXXZuQzElEaLOVZTkf3FPhmVWyR8RuX6Mx0q2e9vora3ZVdzjLEAAeZyeldeb6q2c6MHJ0jVdY1K20Oy0uyhje5JyscNvwpccks5B558gT8q5uODyylJnWlJYoRijSez7TrpS3V5tW4kXKopO2Meg\/ueTU+WSimkPxRcnbMu7czi81UxMWcA8L5Z+Xr\/Ss46pdjoS1FIUr5R8C43eQHIFWR\/LEyZc7PQLFOqk4zxn16Zom7F1QtXNye\/ncfH\/iEqgH36f0qmMdL\/BNJ7f8Akfez9+luAAPE6Bcee7yFQ5U34Vx\/LJddutgC7848I9SfM0hK2PWkGuy9x3oLf6c15KmLyeHOsa1HZXS5bpySTgV6Kbej3XWw5prtevCFGCwDHPQD1rVG3QuTpDB3axoRHkADk0xL8CW\/yDtRkaKAsADgU\/FHdisj0YJ22tY11I3Sxh4XYjbJ0687R1xXUxz1RDOFOxalu4VaQRW8UQIx4R0pnoD0UQT3yEEDg8V4z5CMJspVVbmAOoOS4ODXkwtMN9mdNt77V40jDJaqw8LNuJ9uaxzo91s\/Qejd0bHYnhwNoGOlc3Nt2WY9JHFzbrOFCH+Ko8+hqOUU\/CuMnH0Ez5gyZAyMfI\/tSWmvR6d+EVnI0uUlwwbOCKwJ62DmuszxoTgg4oA6Ou0E6ydn5hIf+X4j7D2\/350\/G7aFSjWzPI2Sa80ud9ywlt8aeQ4P6nNXU12XyIbT6sLdv7bvrOFlzuhO7I9DSsEqYWVWANLU3MPd9J4+Vz0YHyPsaLJ9rv4Dh9y\/Y39jb38vfqhyDnaVbqvtUmZfI6O1Rqd3FDdWyo52qRwT\/KaQtEsm0wU2m3KRBZQWiX4Jk5wPQ0LTbPKmtnNqixPw8kr5wcLgfem\/T0MxxPzRHcurbcnAO7A8z5V9C4o+bTNM7AXKPZ29pq0kctxu32ULHk482PkPIDz+lc\/kxqTlD\/cv4711n\/sbGk0yaWI5Cpu3Tc5HRfYVycsldI6mFfLMq1k7Lifby7E7pD1x6CnYvCmfoFhiBEkjdF6\/2\/pVLfwI+bLMClNXt4h8S2xkPzZ1\/tRr+Lf7QEn9y\/3FMW2++uQx4aUTL\/1Kc\/0zVKlSQjpbYfsJxHdxSA5VQzjn0BIpDQ\/4JbyczTKM5GOtTxjSKrsb+zR7u2K8BtuBSm9i5oV+08RvNUghJyhbc2eBgc5PtVHHT20KyySWzVeyRRbGNUJKqnU8k+nP+xWvWhEt7DUsuY+EHvXk1+AK\/YK1PAjY78FuNo5qmCFMyLtpbyTXXcgK+3P29z\/vmqYaFS2ZzdWjqfuevNPTENFFMmbZzlRRgBCztGLMrkjA3ULYcUP3ZK3htrlFeMlXA5PI\/wCqkTbHxia9ppdbeFWO5VXnFSzpjo2ghEsTc7iWHlUzUWNuSFntPcGzEotvG3J7luv08ifal9d0h+N2rZU0GUTBJQuFY5KnqppMlT0Ob1QEv51F\/kHkDn2JNYloavCvq+oYkFp\/+VTlfUYpuGHshWR\/AH1C0Fn\/AIfD\/JCoZffH\/aq4zu2IlFKkHtYUXFjcKwy35f8A\/jP7UiOhj2KFomxopkHkMj286bJ3aMSp2NVlClxdwSqQJuOf8wqSbajRRD00dZmNlHnrjBpWNdtE2ZfdoG3S3AQm3Ztx\/lzg\/Q+dOi4Qf3GRhIXjqt1bXWy7kkyD0ZiRV8VCSuJsMn05fcYneKiJ4VAf\/N1q6Ls+dGTsDL+d7QRy3Tk90O8c4+IL6+n\/AJqfk\/ZjdFWD75qzedIuFu7WSTcGZidx\/wB\/auBkjWjtY5bsR+1Voy3RaMYQnOfem4JfBTNWrAk8YS0ihj5aWQDPrz0\/36VXHbsnlpAvV71ba+vLiMFpGCwxAeikH9qdijcaE5HTso2mX1md2yyyx94MDjnqPoaZJVAGL+4mtIBFiIdJBJge5XpS5NvY2KS0W7LJYFupxgVPMoixw0gvDu3cbx51PZ6SsX+2pngSL8oqmSVvGzfCEHPPtnk\/IVdw67UyPlJ9LQ0\/h1ra3NssXftKRwZXHMh88eQ+XX1pmeFO0hGOXZUxymnzhQ4HBycVNFjXED3dz\/DcouPIDzz61VBiZIzztIhQPvbMrtucr\/KOgAqqDESQlXKeBpHy5xnA646fTJpqFNWVYrcPeXsVuinai8EZIXAJI+la3q2Clss2Vu6ECVMZO0MR0PHHyrGHE0LsnbqY1BDIASV5zg+eD6deKRN0OSHmymJhBBO4AZA6YqSbKIouxSBT4jkn361O2NoUu0t5Fq+ofkc+IeJXz0I\/lPqD6+R9qZHcXJnknFpIt6av5eykY53KuPmcVG3bZTXgoXM+Z5pT04pkY+Ia3QCW5a815HY8AMvXy2mrIx6woklK5DL2hQva2zEYCSAZ9guaTB7CaLcsgeGeQjKlQP0xQhC1ajEcfsSD9qY2YgxpcwhuFUnwo2f\/AGmkzVoajSNPcSRoD64NKxakDJb2FZLRXi8q5n9SzPG9FeOCoQ+2FhJt3RhCy8gsoNN\/pnLlJ0yD+oYmo9omD3E4ZuTxX18VR82G+xsyrcXCRq2W2biOpXdz\/UUjkrSso472zYuy186aVkoU8RJH9APpXFz129OxguraL+sWv5izhDECRhuJ9M9aRHUtFkJXHZnOu3ndX0rphVhXEY9PIf1zXSxLsv8AIjJoCSuWV5FwxDCJD6Ejk\/anpfAlv5ONFmxq8JckLu7oE\/6s4\/pmjmriAtSD11A8dwrRp\/ypN4xzwR0\/apuyXpQotlcH8tPk8hOPn6fpQNXoYtDXp9w13a7xyRzkdPlU04dQ1Kyp2mgF\/p7xKTluG9cDypuKfSVi5w7KjONH1OTQe0Csqs6wHam5yFwep+tdrqs2P\/JxW3hyU0bdYarFqFsGV0W4AHexq2dufKuXPC4So6MMimgdrF73aBlJAGc7eM0yDMlGzPdf1mK3tpFVw8j4GCc4H+8VZjTkSZGoiXqWrSTuXHhLOckcZHGKpjCiaU\/wUrO9nguFkicq4AG72FE4prYEW0xmstfd1hinVOH3b9vPvz5+VJlCvCiM79H\/AEi9w3\/DPhCATjoT159DzUuSRTCI2W9yAokDYBGMD71FNlUEU9a1+HTLUmWYJI3C55wTQY8UsjpBTnGCtir2dEl3fvezeGRj4gOQD6im52orqgcMW\/uY3XEhlRHB2xv8ZB\/mHX9j9ajat2imOtCPqkmxJyh4J4+VU4ltGZHoD6WyNqETMcRqSznPXiqnqLJ6tob+2EpMMcEPmQSw8gBmp8VXbNlfhUs7jvbXkjazjOfLLCtkqdBJg21bZBGGHIY5+\/8A3r0lsKPhftj3jwbeT8J9x\/vFKlpMZFWzQtMmNvEu89MZNIwPtOg5JIPx6lEI\/EcD2IpfM4qn6Nha8Yl9uNXt1s5FVsZ+9BweI4z0tEXPydYOz86FmLhfMnFfXUfMmxfhl2djCpO4zIRyf2rk8\/K66o7HA4yruzUotHWFF2r4R5V8vkzuMts7H01RDcQuS7P1I2qKqw5PqJsBx6tIxrtqBbzXIU\/FIEHv5mu1xH2SEcnRFbWh\/wAF\/MONu52IJ9OMn9MUycqlSF442rZV0MGS\/tSoyBcc4+XGfvTJaiKb+7Qa1i7NtM0ZHwkoD6jyBpEYqSHuTjtFCC6S4IRhtfJLJ5gdM+9bKFKzVO3Qx6JeG3hjtCPGo7xh8+g+2PvSckfkNMnunP5p1HKuCT5YpKQx+Ch2n03covMKe6OH2jPHl+tdLh5qfV\/Jzudhtdl8CjY63f2V2stvMysrBB\/qGeGI9ccV0Z44zWzlwySg9GhWt9e69pDrFEe\/UA5HXn2+hqP6ChLR0seX6kf2KOqdn7+KUtPC6n3FURkloRPE27Bk2mzFWZ1Pr0xR9kL+k6KsFlI5YgHAonICMGyYWEwOQDQ2gujQ19l\/8Rgm391IYD8R2kj\/AH0qfNBSRVhtel+87YCCS7igIIhT4vUj0pMeJ2qwsnKUbUfgAaXfT9oNWVNQlUK7DCckvg\/261ROCw424\/BLjm8+RRl8mh2u2HaiDBbr7VxJvttndiqVF\/UZ1\/ItargZYBW9yOD+31rca+AJe2KF0sktqVKNu6EU6LSZrTaItK0+TvGIgZWcBDnnr\/4op5FXpih+h6vbJp9JiucZnRDDI2PhYDj7ikQlYM9OhNtCLSZlmBaJgVJB+vFUt9haVEOp7oCskbB4JhvRx0b1ryiamF+zSd9OpPwg7gal5DpUVY\/yNd3eqlu2fXaQOuaVhg1K0S5c+hQ1LtFLaZRH7xc44PP26iurHGsnpO+a4rQm69q815JtJYIRxmn48Sj4c3k8iWV7KUWkNLcowHG6j+qkiZI2\/sQy21tGuOABXNzpZLs+i4c49Uh8\/NK4BFcPkcTsdKLRxNCXiMgHKggD96biwfTiTTmu1GL9qNKOo9poLbcACxCRryzHqzH0H9q6vHn0g2KzLs0F9Q7Pz3sKWNkBHZwL\/ElPTA5+pzSvqpPuzapdUA20r\/CtShthna8qyBiOeOmadHL9RWLlj6lrX7JWsxde5LUGOT7UG1oV49p1KEIJMu4XOOBk859sZqqKbVMVNr0OB83M10h4kdXB\/wBPp+gpD\/DGotd6zRsSR1PJ+dIqmN+Nn0x\/M6fJHJuKupBVOCf2pkJuEk0LyQU4tGdXdhbDu4mW4guN2VZYiwkOeAyg8N7j7V2+0r7Q2v8Aj\/g4H06fWen\/AM\/8n6A7J9nB2d7OxQykyXso3zu3UE\/y+2M4oW38nS4uKvSlqVks\/DDINK+TouKoEy6DC6MpQc8Vtk7xoFaf2Xjjkm3JwTwMUTYuOFIsx9not+7u+AfMdKBtjI4lYzaVYJDgKoFYm2U9I0IX4wdlbHS9PTV9PAhNzN3M0A+FmIzuUeXQ5FUY3ujj83EorsgJ2Dja1aUoI9jRguRncW8hz8j0qX+oSi4JfJ7+mxl3b+BpWTDB\/TOa5VHZPtYkOAM5LMgGPZP+9NSoUtsrT21xLfd5HwsihuPU9f1zXpSjR6MWGrC3SFSN3eTAZPOcf2pG5v8AQcn1GOFlMX5KXd3dzEWLD+Vx0piVO0TSdoz3V1aICWZSF3d3KMYw3r9adHejbrYvQXn5WY2d0C1sT9VPk6+\/qPOqK7K0KT6ypj12at+6s3eJg4Hwstc3kblTLXKsZFrbd5bSHB8ancvuOhH2p+JU0cDJk72\/yZbfyNJM+7LMDjd5n511YKiRu\/Sug3AIoJYnPTpRmUbknZmOFA6oM\/KopJrZdLjJImiD2rhY1xj7CkT\/ACLhllidIYdMv4OmXmcdcnao\/c0tVI6WPldlSYZmvnexlCnYoHRRipsz\/A+G5GX6ZltXuZYIwZ5GMSuTk4HLnP2H1NM8gkxs39w92dtJBp0cMpCjJaQ+vtUuSW9AwVvYmdqEA1SKRSNqnJOabgemNmtFQkT6TPDIeikZFNTqSYDWhVRhDJNMxJ7qN2RPU4I\/eq47Fy0jrRZDNaushO1SQny9P6VmVUeg7CqnKqB0zn61O1scmSdQ0Y6EZrAgbb2Zt7+K9tB\/xEEonRGGQxBBxk8j+lXYuZKNRl4Q5OFFvvH02hb2LULOK4h5SVQ49s+Xzq3sn4PwxdWUZohu9cVlDrIliXqR614GjgRqCenU1jMSPe7BB8IoaCSLFtH0zWpB3Ql\/i1bz6hb6fbW6I\/clrgq3VjwAoPkcZoXnjimuxFysMs0aj8C3o9ubewjV0ZHkYyMrDlfQfpUHJyKeRteIZxMbhjqXrJ5WZituDhnOGPoPM\/alxXyOkyrqFy0l2BGvKDdk+WT\/AGxTK1sCL3oL2DPLaQ7TliGy2PLNImlY1ug5okOyNi4wzKT8682hT9GC2XFxCQgdHGzGcYJ5FZJ6AIO0OhRG1klVGZHGHUjz\/vWRlsBujG+01kbW6XGcDjP9KvwytULnvaHTsGXk02THOBgjPlUPJX3orf8A6mFHtndj\/OD\/ACsM0alRx4YXKbaF3WeywkJmCkN5jyqqGelQvk8ZwVoEWWhJ+ZBK8g0z+4okxfy2ba00Zj4Ip0qqjuKpIW9cO7gHj0rm8iVM53Kivgm0KMsVHGTU8pNI3ipsZtSikOntb2y7p5Bj0qdybO1jpO2CdE0JNKsiJT3k+473IxnPPHt\/aieVz34Y1bCOoupt2AbB9qBhwWxI1yISRY\/mHQ+tNxSpjWrBtgp7nYeS2c06XosVdZjeC8lXg5U4G7jlgOatwU4k2VtMq6NJtMq5O3cBn2osi0exjUqAxpwQF++aivZV8Ec\/G07sVqMPrcA3ABZeeOSRW0Y2aD2cDR2axF1dBkrj+X2q7jvXUGM7dMJzR85wTVQZUc\/FgEHqQayzaKiN8Rz5msCosRHPOfbFePMtQsApNetIFiV2mLT3ssj+fCqTzgVy8ku0rMUrA0jGOLO0ZA4oFs1uinK\/5aNpJf8AmynYo9vMf0z9vOmpC\/QZB3rysJct4jh1opUlo2F\/I66NbbLWJmycr5\/PNSzew\/S2Z1iuIgDhQDQq2jGg1pbfmbdgPhB4I6ii+KFS07GKCUtCY5vFng+9Kna2gaTM4\/EHQ5LiX\/h4o4oQpO5uPPjBqjBlS99ESTi\/0Uvw7L2l09tcKUZwRhhwflXuS1L7kWwVxocYURbohgOvNbjhewcONJnOqyxRRN0ximuArmRXUSDfR9+xXA5pcoM+c8YVg1toxiRv1q1t1oow8lpUylf6q0zjByD0x51JKDk7YObL2DnZzUlEo2ke5zyaGeJ0VcKSbofdPnEsXeP8XUGo3Hro60lvRFqEuenSh60bEG3cuYtoYcjoDWyiHEW7y3IBK+IehNbFjSlBCVkGeC3GKYmAwZqVrCZJZXCKzKVz\/v3FPjJpUhbSe2Ikjy2+pdzCBvZvDnoPerlUo2yaTcZUh40dlaEAsZCo5c9M1BkWyuL0dXUYkbwYXjg+g9axa9NIDAFAZeQOma1SMYz9lL6dpu4kYKv8rHrn0p+OdMRNVtDUZ92VcYccEfvV8Z9kPguytH0oV\/h+Hzrb2epr0pLAGZgBhdxxW0M7Ml7rbgk4xWMxbIp7hY4ZGzhV6nHmfWps+RRQOTX+RNud8zs0gU88j0+tc6zVSKVywjKkDcx6UyKBbFjWpzJdoPJFwMeuaogtC2GezOlyzqtxOxEecY9aXlklpBRsa3k2wlVAGAAMVG9sYkU2HeMvy4olo80MWiK1pABJ8JPAoW7egZLQdS5VkXaQCPTzFekLSoG9qNN\/xPSuFZ2TyVsGhxz+nK2Kzw7xoyvS9fvND1Qx3kMyQq3QnJ69a6c8Ec0bg9keDlSwvrNaHvUdftJkjuYJV2v4c4xz6HHSk8eMovrJF7zRjtPQp63rLSLsVhz75q2rIOXybVIAw94zZ+tC0jkWVLjVCxzmmdDYo7tNR42hshuuaF4w0xs7ORd8SbdtsikHaTnIpc3Xo\/DFXcfTUbYGGyjHQ+1czK7kdrFbVsjlvGhQq3X1xWXQzrbsCyyvJcBmO4Z4ofRiVEW1lZ1ycZ6daH4DKwgfvt\/PB6YxTIgyKt5aC4lmRlyokYD3zz+9NToUJGv6W0d4ZFYqmcHOTge1U4smqYE4X4WtLuyUIICQLwPU0GSNb+Q4tvQQS5M8u1PhJ5JpXWvRgZSAd2AFyfM9AKC9nixYWu2cSZ5XpRpi3sY0njmiCFtjrwGxn7+1Ohl6gwbxu14emQiMZC5UckHj5iqFnTKVOLPraeEAjvBkH59ad9aK+TWvk+kvoQpWVwg6jPGRSZchVoCUlH+IB1bU0lUxRKQAefrUc5OTti1bdsDEE5B8z96AMq3a8cnpRxBFuOzk1DVzCgwMjk1R26xsX6zQYohDZhIQBGnhX34qKbsbErT7gPmoH60CGHMIYSfCCB0rWeGK1QtaAsSaUnsySB0qXBspVhDK2Tgg8gelN+QLGjsyJbmyKOwLleOaRljaZk6TsRfxD7ONcRSTLIAyZOM4zXuBy3in0kRc3B3h3iZTJNNaqVVuPMV9Gqls4yyNKj2HUjIR3jEsOla4ASd+h6xnDgZpElQsVEdJT48xt6ryPtVTTQ20y7Y287ODbskhB4APX70EpJemqLb+00fsNHcDULcXEZR1YdOCPnios0o06LsMW39xqmqqI0BXgDniuU\/TrYwNcsGO2Tgnz\/etsal+CgVMUmSeh4ryCZzdlRKJFODjjnGaFOtG1Z5BMrvnAyKbFUDKzp1zA7rwwfP6U0SAO1Nk01mXh8Lk8+3FbBqMtmq2qElI5IlERJ2j4jnBaqXJPZii1ou6Y+y6GAAPM5oJK0GO2nwSXKqc+E9MelTPTNsNJAiptTnHU16wSlcnY5VCAVGTWWagfHdyqroWY4Ock1t2G4okjupTIsedo5DfKtv8gOKWxV1PUpp7gb2I7osoGfKqYx0KT2Fohi2j3nxHof1FIfo1EmCsXeN0Vc\/evJbPMh1RMJE6YIZgPvWwMbJ9E0\/u7ozMPGV+2a2U9UZWwrcqfysZH+fmp2NXpEYRKcHgmsugjtou6wpXd8iKyTNig5pUbvBhtuR6ccUtfoGbPAjtO6FSIyfI0bdAUmFdHUWdzG4HDEZxWNgS3opdv5fy1tKwUDcOjLkGpsWJ\/Wr4F5JL6bPzbrV0GlkOzYSTwOP0r6zFCkj51gq0ZmkByadLwwaLGYRRgk1JJWwaAcYqls07LbefSsPGl\/hBqsFzrKwTg\/m0UlCM4IqDm42o2vC\/hzTl1fpsd2C+5eoPSuQdha2BHTJ7uT+Xp7Vo3\/APuF2MwPiX9aFBlVwJ4im4715Uj0omq2j0X8FJFuACDdLtzjxA5H2pilFmSi0XWl2RiKNgV6MfWjTsU0WtQhVrNCOQwx9qx+gxZnWr2n5ZmLrk545\/WnwlekG1qyHQrZp75O8XaueFHWmzaSF7s1KyhCwhQMEjHyFQt2NOdQkFtD3UHx45I5IrG\/g2KvbB7W\/5a3XvMtI3jb5+QrW\/g1FQxBnfPG0ZPvWo1nJUpIAfh2kg0SYLFC5jJ1OWPqGbdn15qu6iIith5pBxnoDUw4uKoks2B5J4r37BbK+lgz2MJn+FJMMfZSeaOf8ALQMdRGJMGOMoMB\/H9McUmQS2cFC8BHoxxSvkYQzSJGg2n5+xraN9Kyl5n4JC+uetDIYhk0pgiAZHFZEVPZYuoVaQPGoU9SQa1qwU6LdpuyDWICQH\/FaOSTRYZSSFPBI5\/SquP\/PZz+V\/HR+e7zT3kunB55znFdmM0kcl7ZGdNaEbhXvq2eaIJ7hkQgZ4o1GwTlT5cfU16jx00WeTNER6Bs16\/wBBqP7H38IrWBO1EEq5MmOckeH5VHzJNwaLOLFKdm4Tq\/eMM7WBwK4kUdm0U5wWyHXD+R9aIJP8Ae8iwQ69R6UI1bBu5O8BBMbHpjoaNM80Q3QyS2T74HNYtBeopNIEj2CU\/LinJsW1sZbBhcaQM8lGx9KKS+RHjFjX9PzJNIRnHPzr0ZdRkdlXsna4unlmOFjHU\/5v+1Myy+2kYlsaLjUkj\/hxKxJPJNTJB\/snhjkk2yyrsQcqnqfU1jpM1bItQH\/ELGWzIV3Y9PIV4JFNnV5Je7IO0qp+Q60XhnpV1BtsBYcHBH3ooegzFtgBdGXzC7qpk7VC4omtnLMqjnPmaBqgwjay75ptpGxSEUfIc\/qaFrSA+S9BEv5VoEU7UGD8zWN\/JqCRbJtgOMjbj6UuT2FFEmpn8vZjAGXPyoEjfWAVMzcuyOvv1onQxIlim\/iBS6j2FLaDTDcDvsAEbKPXcBXqFsvCdwAnhx78kV5oD1hbSgD8XJ9TQr0HJ4ENZtYtR7O3Vs6d4oXO3jn5e9PjKqaI8keyaZhGoWkVvcOiBmgTp3vLg+mfOuhbaOTKNP8AQIvpI5E2xxKPQZJpkIv5YpyXwgNJpckp3OpC+mOKo+p1Apgq5jINOR48ihkcgKyD5da86Qas1v8ABXS7Z+0CuIXnnjXJldeF+Q8vrXO5k2418F3Girv5NZ1VT+afYVzn4T51yEtnXi9bB8qu69Tj0bqKKgkyjeRFE3MMjzNC1QyLsCXBUnEZ8RrysP0rys3d+JSPfFE0YgLd57xcqNuetOgekNnZMqtsUcglzwBR+qiXJp2WNetg0BxjHU0qWgsbFLTpDGXjjI3s+zPkB5mm+oJ+jHAIYXDbCxHCjqWPrSgnbR1c3c0jAAxpGuOA2T70LpHkiN1YxtMxBlI\/8ChDT+ClYxrAkqMc7jkn1NFdnm6KGqXAMciqeRkD7U2CFyARy6uF+IqF+mc\/vTmCiaJVW+7p2wmzIAHXnoKx\/wAbNQV0m32XMgboDkcevSgbtGDBbQhUkLDlnzS5PRq9LLQBIGZuNh3A\/Kl7YTdAvXLtLp4wo3IVDDBo\/DYr5A7d4MgYUeS5r2hiLNskcC75mAY9MCgbb8PPWi9FqO3wRng8cjFepoyrLUEp3jaN3zNCZQ16KXO3K4HtWqvgTkGOBGy6kjxLimVZM2fn\/tmwi1a7glCjY\/g28bfnjpXQwL7U0crkP7mmLto0Us2dxDe44NP2hEUmxhZES0JYAjFJbbKev2iBcmLPwE\/NqujZHaKyzEMFj8GTjwDmio2\/wfpL8FLbZ2feYW5gB67viY+pNcnlbmdTjfx8D2pj\/iCSA2fI1z2qZ0YO0C5Z7eN8O0kZ9D0rVsOmQXQV4yYJ+cfSgf7DiLtwjqzF0Td6jgVtoYtlfdJIpUbce1Ho94D7uGSQndHgj+aji0jH+C9obmMnauMUdipKxr1aIzacp4BZQf0oZ+isbpifLara4VMDqo9STXk2x1lu7cvbv3RAIGzOcYNZ8mr9grdLJKtvafAvxyE8Cjpfykef4QSklMQRN5I9TS\/TUqBUl7ukfB4B2imKGgXIo3k\/iz13D7GmRiA2Q2OXS6fHwITgUUl8HkWrGIwXMb3LKEiRnJxzgjgUMnaaRq\/IZ0oEQ9648TKWPzpbPDPAgktUY4HGTS5LZl0UNTvFNrIikDy56dK3wJK2LuZPCFAO0YGDXnT9GpnsSO0g3qVGaxuvAkXjGFTdGqMffmgswitVV5uVG7POSAK2XhqGOxQrjGz9KWkDJh22\/h+LfgfamUTy2GtKJL5JJ96ZDYiejHPxXsiO0soMIG8ZWZTz8iKv4zqJzs+PszP2tZ7ebcp+hGDVTkmiV4pRCCXEs8YjAJb0pXXdnlNvQsXKmq0JR3o9h+auwZGKwxkFsHk+gHvXpy6oOEbZ+p\/w\/thb9k4wE2B+gzXGz7bOth0j3VIyX8LKCPWo5FsGDpWBjKyMCa96MSp6B8xVeCpYeoFe9DVgu8h3DdG2V9DxQjEB55dhIYFceuaYkayIYwzysJB1AyTRfoEIaKqDfPKCsa+WMFj6UaX5FTb8Q3LuutNVtuHPl6VskITqQqaxaG3fvRgKmRnyz0z9KxPdDltC1caqsk4tIiSo6kedO+nrswe+6L8F3FDEqRKox9c0qUW\/RiYPvL8ySjDeHP8AsUyMAZSBUV0crnzY\/wBTTnAV22X4bSW8YBAdoHJpbl1GVYXg04WVpJ3hw0\/GT5KOSfsKBPsz0nS0DdMklub1pLhSlrLhQo6bT0B9+lHOkqXpkU\/WNywgsQF4VMfOkVSNssz3gt4Y4gfESBXvDErYDuiTuUjIb3obHpEEKZOMfXzoWwy1G2wHGfl50DRp0iu7EbiufbNeZ5IIWduPKNWk9SKyzGwxb2915SRR\/wDRHnFEhMmEokKxkPdAv7jFaKb\/AEF9MiMYVg2715pkNCMjsSfxO09JNRimkClZFAyRyDTlNx8FxSb2Id3ZBEwfLpmjhlbezcuOKR12asI2vssoznzp851EhwQi8gkCDvhx9T6VbdHPWw52U05n1COR427pDlEPG4+p9qVlnS\/ZRijbP01YRdzo9omAMRg4xjFcua2dSHgH1MeJiCPapZLZVAX7hSxyMk+tD4UJgye4ffsdyPrg0S2HRFPIETcsjfPOa8eQHuSZJMlwfmBRLQSKM0jk5jkQAdXP8vyFMil8oyQT065jeRFJZlUZCn+b\/wA1rTQp+D7oyk6cjP8AG+WbPkKZWiOT+4A9sIDJpzLHkeHj+9LemmPxMzbTtKnSWaZ2YqQGOecqM1RLKmqN6Vsmt4Lma2WZwf4pPdoOML71knFOkeim1bOXtW3qq9AeWIrVJHqLmm6KJ9rEZyT19KGWRnlFDjpWlpbwBccedLrsY5UL+r3bS61CqYMKHu9o88ggCjjVM9RftooI7blFDqw4A6n1pST9DbLMd0sFswcks3IHn1o0LfoKDvLO7t5nj2oJDooilV5GOHZXX7H6UFjURmXaniPOcZA4r3WzWyzFucYPDDzJoXo1bLUKOpG\/cR7HAoGzaC1qVwMOI\/kMmsAYVhnwMZLAeZok6FyjZJG+5xwCv\/TkVoAesn2Kvh4PpToNks1bAf4k7Xsbc85OQPOjatk8p9dmWS3O9dh6inRhRJm5VqibSbg21ypPQ16atE2HM4zsTbUAqpY7V8hnk10mxa\/Y39joRcahEo6FwMmp8ng\/E9n6KdMW6AdAoFRTR04sXL5e8LkZPvUskUwYHmRhG2FH3pciiLA11CZFKvge1YOQDvB3TgHfj50yLs1qijdSh1wU3DywKOKMKmY3OZFkyOi7aPa8PPYU0KM3F4MjkkAg+Qra+BM3SNCSbu4CB5\/YegopPRLVspXoFw7RdcJg\/PHFLlvQyGtgLRrZHtdrL8BZD9Tn961K9jJSok0zTYmtjbgeK2cqP+k8iskm9nlKgV2nsjp8AkjUYbwgnyPlRQVumecrOuyzZ0+I\/EUXBz69a3I6ZiQZuJjHaydfChUfM9ay9A1sSmkCa7GknhAIBYHoc\/8AimVcdB+Bm5e47y4aHYA3AB9R1NLtI8o2c29tNJGrygscc4FC5\/gLqkSzKY1Ud0RnqaH01FUpvJQ4znjJxz86zwamdbVjVt6YJ64GRWX+D1HcargcBWxgMp4oW2Ee7piQvmPWspGhG0aUKPCFI9aBnmXknYqcZY+3StQthPSmfoRjjOCKNCZh+3IwOMZ8vKqIkk\/QH+IhUaPGWAIyQR7UyPpJn\/iZDECZCc55qhnJl6WJPCuaEE\/\/2Q=="]}}}`

jsoniter.Unmarshal([]byte(input), &myStruct)

jsoniter runs into the below error, and std encoding/json runs perfectly fine

tensorflow_serving.PredictRequest.Inputs: tensorflow.TensorProto.StringVal: [][]uint8: decode base64: illegal base64 data at input byte 0, error found in #10 byte of ...|E\/\/2Q=="]}}}|..., bigger context ...|PGWAIyQR7UyPpJn\/iZDECZCc55qhnJl6WJPCuaEE\/\/2Q=="]}}}|...

@taowen pls help to check.

domashevskyi commented 6 years ago

Have the same issue. It looks like base64Codec doesn't perform unescape before performing base64 decode.

lnshi commented 6 years ago

Yeah, confirmed, if i use javascript manually unescape the data, then it will work.

ghost commented 6 years ago

The JSON text "\/" is a valid JSON string encoding of "/". It looks like the package is not unescaping the string before decoding the base64.