Source: directives/briefing/consulta/consulta.js

/**
 * @ngdoc directives
 * @name briefingOperacional
 * @module s4c.directives.briefing.consulta.consulta
 * 
 * @description `ConsultaBriefingCtrl` Controller da funcão de consulta de Briefing
 *              
 *              
 * 
 * @example <botao-leitura-arquivo></botao-leitura-arquivo>
 *
 */
(function () {
    'use strict';

    angular.module('s4c.components.briefingOperacional', [])
        .directive('consultaBriefing', ConsultaBriefing)
        .filter('capitalize', function () {
            return function (input, all) {
                return (!!input) ? input.replace(/([^\W_]+[^\s-]*) */g, function (txt) {
                    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
                }) : '';
            };
        });


    ConsultaBriefingCtrl.$inject = [
        '$scope',
        '$timeout',
        '$mdDialog',
        '$rootScope',
        'Base'
    ];

    function ConsultaBriefingCtrl($scope, $timeout, $mdDialog, $rootScope, Base) {
        $scope.res = $rootScope.res;

       /**
        * Filtra o Briefing por departamento 
        *
        * @method filtrarDepartamento
		*        
        * @param briefing {Object} Briefing
		*               
        */   
        function filtrarDepartamento(briefing) {
            return _.map($scope.agencias, function (departamento) {

                var respostasDoDepartamento,
                    comentariosDoDepartamento,
                    respostasUsuarios,
                    ultimasRespostasUsuarios = [];

                respostasDoDepartamento = _.filter(briefing.Respostas, function (resposta) {
                    return resposta.Usuario.Departamento.id === departamento.id
                });

                comentariosDoDepartamento = _.filter(briefing.BriefingConsolidadoComentarios, function (comentario) {
                    return departamento.id === comentario.DepartamentoId;
                });

                respostasUsuarios = _.chain(respostasDoDepartamento)
                    .map('Usuario')
                    .uniqBy('id')
                    .value();

                _.each(respostasUsuarios, function (usuario) {
                    var respostasDoUsuario = _.filter(respostasDoDepartamento, { 'UsuarioId': usuario.id }),
                        ultimaResposta = _.chain(respostasDoUsuario).maxBy('id').value();

                    ultimasRespostasUsuarios.push(ultimaResposta);
                });

                var respostaDepartamento = _.maxBy(respostasDoDepartamento, 'id');

                if (typeof respostaDepartamento === 'undefined') {
                    respostaDepartamento = undefined;
                }

                return {
                    id: departamento.id,
                    nome: departamento.nome,
                    ultimaResposta: respostaDepartamento,
                    ultimasRespostas: ultimasRespostasUsuarios,
                    comentarios: comentariosDoDepartamento,
                    usuarios: _.chain(respostasDoDepartamento)
                        .map(function (respostaDoDepartamento) {
                            return {
                                nome: respostaDoDepartamento.Usuario.nome,
                                data: moment(respostaDoDepartamento.data).format('HH') + 'h' +
                                    moment(respostaDoDepartamento.data).format('mm'),
                                perfil: _.maxBy(respostaDoDepartamento.Usuario.Perfils, 'PermissaoAcessos.length')
                            };
                        })
                        .uniqBy('nome')
                        .value()
                };
            });
        }

       /**
        * Faz a seleção do briefing que será manipulado 
        *
        * @method selecionarBriefing
		*        
        * @param pdf {Object} Briefing convertido pra pdf
		*               
        */  
        function selecionarBriefing(pdf) {
            $scope.briefingSelecionado = pdf;
        }


       /**
        * Faz a geração do pdf baseado no briefing selecionado 
        *
        * @method gerarPDF
		*        
        * @param briefing {Object} Briefing
		*               
        */  
        function gerarPDF(briefing) {
            Base.obter('departamentos/all').then(function (agencias) {

                $scope.agencias = agencias;

                var pdf = {
                    texto: briefing.texto,
                    Usuario: briefing.Usuario,
                    conclusao: briefing.conclusao,
                    fechadopor: briefing.fechadopor,
                    imagem: briefing.imagem === null ? '' : briefing.imagem,
                    data: moment(briefing.data).format('DD/MM/YYYY'),
                    hora: moment(briefing.data).format('HH') + ':' + moment(briefing.data).format('mm'),
                    departamentos: filtrarDepartamento(briefing),
                    comentarios: briefing.BriefingConsolidadoComentarios
                };


                selecionarBriefing(pdf);
                renderizarPDF(pdf);
            });

        }

       /**
        * Faz a geração do pdf baseado no briefing selecionado 
        *
        * @method converterUrlParaBase64
		*        
        * @param url {String} url
        * @param callback {Function} Função que será chamada
        * @param outputFormat {String} Formato de saída
		*               
        */  
        function converterUrlParaBase64(url, callback, outputFormat) {
            var img = new Image();
            img.crossOrigin = 'Anonymous';
            img.onload = function () {
                var canvas = document.createElement('CANVAS');
                var ctx = canvas.getContext('2d');
                var dataURL;
                canvas.height = this.height;
                canvas.width = this.width;
                ctx.drawImage(this, 0, 0);
                dataURL = canvas.toDataURL(outputFormat);
                callback(img, dataURL);
                canvas = null;
            };
            img.src = url;
        }

       /**
        * Faz a renderezação do pdf baseado no briefing selecionado 
        *
        * @method renderizarPDF
		*        
        * @param briefingSelecionado {Object} Briefing
		*               
        */  
        function renderizarPDF(briefingSelecionado) {
            var doc = new jsPDF('p', 'pt'),
                contador = 30,
                margem = 30,
                pageHeight = 842 - (margem * 2),
                pageWidth = 595 - (margem * 2),
                linhas = '';
            //dataImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAADaCAYAAAB6gTwmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAABYugAAWLoBPYu4XQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7J13fFzVmb+fc2fkblwxtik2AdykkQumGUNiLMmGUEIIJiSksQlJFrKk/djNJrvrbJINLNmETTaNdBIIOOxCaLE1MqLYpgmMNJJxAWyMe5WLXKSZ+/7+OBKW5blTb5kZnefzGYw1d855PZq593vfqjCUBvUrh9JunYZSZ6CsU1GchsjJoIaADAF1kv6TIShOOu61wmAg3Pm3NuAo0AocQXEYYT+Kg8B2bLUVJTsR2YYl20C20z7wHa4456if/1yDwWAwGAoZFbQBhixY0jgQ1CRCTAI1BWESMAkYBwwM0DIbpTYi8iawDiVvkrDWoazVVE9+E6UkQNsMBoPBYPAdI7AKlWWrB3O441xELkCp81FqBiLjKL7fWSvCK1i8AvIKyn6FudM2B22UwWAwGAxeUmwX69KlvvE0EqG5iFwKnA9MBkIBW+UNwiYsVYfYUZRaSlVke9AmGQwGg8HgJkZgBcXiluGE7A8AczsfE4M1KDAERRNCFCFK2aDnmHPmkaCNMhgMBoMhH4zA8pOlsbOwuRb4EHAhpeqhyo+DiCzG4lFCiSeZM701MEsWisXs2HgITQAZCvZJYA1F7MGg4ogcwWIvWEcRtmHJm1i73mHOnHhgNhsMBoOhIDACy2tqW6ZhybWIfAioDNqcIqMD4Rks9Sgq/lfPc7eebpyIHZqLLZdgMRlhItAvy1XagfUo1YTI89h2PTWVLSbR32AwGHoXRmB5wdLXTyUR+ggWn0GYGrQ5JYINvIDwFywedCVva9GiEMPLq0FuQKQaODXvNZOzC6EOi/sZenQJM2d2eLSPwWAwGAoEI7Dcon59PzoOXIVSnwTmc6yvlMF9EsCLKLmPfn3+zOxJB7J69ZKmSYSsTyNyE96JKid2oeQhlPyWuVNf83lvg8FgMPiEEVj5Eo1NBm4DPgEMDtiabcAGkB2gdgO7UWonIrtAdqNoA8BWrYgIIdUBchAAYSA2fQAIq76IDMBmGBbDsBmGsoYicjKK0cAZwFhgRAD/xu5sxrI+zNzylzM6enHzVELyNeDjgOWpZZmxHFvdxbyKx4M2xGAwGAzuYgRWLiwUi4taPoiSL6Gowt/3cQfQhKgmlLyJJRuw1QYGHtjArFmHfbQDVqzoz6EBp0NoAjYTUTIRpSYiTAZO9nRvYQV26CPMn7I17bF1zedh822UXO6pTTkjLyH8IzWVzwZticFgMBjcwQisbFjSOBBL3QLqNuB9Puy4EdQyRF7DogloKpqeUUtfP5V4eAaWzACZAepc3ArHCQ/San2KBeXtKY+rXzmUjvC3UdxKcVRsPgHWrVSXbwzaEIPBYDDkhxFYmRBtGAL9vgRyOzDSo10SKF7HZjkWKwjZy5kzdZNHewXDksYzCYUuReT9wCXA2Tms8guWV9zKQmWnPKqu6eOI+i/glBz2CJIDKL7F3IqfmMpDg8FgKF6MwEpF/ZqRxNu/jM6xGuLBDtuBJSj1NwhFqZq824M9Cpf6xtPoCM3vDN1VQY8h1D0R+U9qKv8x5TErVvTn4OCfoPg79wwNhDrC1ieYU74taEMMBoPBkD1GYCWjfuVQ4mX/CPIl3B+iHEPJX0jwFDWR14yXopOGhjJa+80G+SDCR9ADrLuh7qW64vMp13i6pZyE/Rf0mKFSYDO2fIx5lc8FbYjBYDAYssMIrO40NJTR2ucziPoOMMrFldej1CJE/kB15A0X1y1dtFi6HrgJpIXw7utSdkiPNl0D6gFggG82+kMHSn2Oqoo/BG2IwWAwGDLHCCwAEUW05aMo+R5wpkur7gD+gG3fx7ypzS6t2fsQUTzzTCiluKqN3YTit0CZf4b5igD/TnVkYdCGGAwGgyEzjMCqaz4PkZ8C57mwmg3UoaxfsYfH0la5GfKnNvY1FHfTGz7Liv9mbsVXTFjZYDAYCp/e2238iaZh9FX/gcgt5N90cjfCvSTi93L59A0uWGfIhLqmryL8IGgzfEO4naUtR4B/CtoUg8FgMKSm9O/6eyKiqGv5BMjd5J9n9TbCjxH718yb2uaGeYYMqW2+ESV/ojA6svvNHVRH7g7aCIPBYDA407sE1tONE0lYvwZm57WOsALFf7G84tG0/ZgM7lMXq0Z4AjpH+/Q+BKU+YxLfDQaDoXDpHQJLRLE09jlE/ZC82i7IS9jW98zsuABZGjsLm9dI1zOr9DkC1iyqy1cGbYjhOBT6HNMPXXQRRudmdgBx4AhwKDDrUqOA/uhK3D4cSyGx0bZ3AAcAk1tqMGRA6Qusv60cTzj8W2BOHqvEEPkO1ZGHTYJxgDQ0lLG373PAhUGbUiC8BUfPpXrmvqAN6cUoYBgwBhiOHvieLmx9FGgFdgGbCVawDETbPgL978gkL/cwsA/dKHkbWni5zUnA+AyOW4N+P71GAeWk/t1uQ1ePJ6OcwhvX9TZw0OG5QrG3KcVz43BuAH4AWO++OccxCOeReduB7aWb5C6iiDZ/vrPCbFBui6i1IN+gquIRI6wKgL19/pNgxdVW9IWxDYXCln4oNRS3Zixmz1nQ9zfARwLavzfTB93S5Qygb5av7Yse4XQKuinuNuAttGjxA9W591loUZUt/Tsfo4EIWlSsw137B6Df23TsA95xcV8nhpNe8B3BWWCdTuEVlW3BWWAVir2pBNZuYArOQrAN599HvoSAc9E3VD05CKyCwngD3SfaMIRo7NcoleuFpxWRO4n3u4crzvHj7siQDp13dbuPOx4CahGewVIr6BdezexJB5Ie+XjDAPr2n4CyLwLeD8wDhvpk53VEmz5GdeUDPu3X2wkD56Avtm7c4VvAWLQX6R1gNToc5xXD0aIo2YUhFyy00BqNFoqrcb5oe8FY/BFYY33Yw5AdB4EWoNLh+anAs3jjIXb6DtnAa3R+h0svRKj7Wj1Ebg1DbeB+FP+Pqsh2ly0z5MpT6/pSdrQJZIIPu72I8FPKrEeZU57bhaJ+fT/ibR8EuQWocde8pGwjHJ/MnOmtPuzVmzkZfTLv7+EeR4CXgf0ur2uh7/bHu7xuTxJokZVveGY0MDOD4wSow9swoQKqSV9Us7bzkYz5FJ5D40V0mDoZhWLvExkcMxP9eUnGduAV98wBtGfVSdTF6Cb4C+ENdAcRRTR2ByLfJbd/1wsovkBVJJVL0hAE4SNfA7wWV8tR9jeomvp83ivNOfMI8L/A/7K0cQa29W3gyrzXdWY08fD3gFs93KO3M4HsP4OCvpO1yNzb1Q+YBTTgfPHLln7oRsrZDqzvsj9E5u1QQuj8nVHAq3jrjQMtfsYAGzzcYyS9t2K5GGhCRwz6JXnuFHSulltezpPQn+9kbOm5T2l4sOreGIGd+CNKLs/h1QeBf2Z5xU9Ny4UCJNpyBtircH/odhe7UXI7cyMPeJpnVxe7EtRPEBnv0Q42CTWD+RWNHq3fW1HocEC6fCAbfbe8i648vePFhYXOKxrKsfyrVKLFRnsY9uRk9TEGoPMW083oTKDt34nOazqKDq10fSdC6FzWLvtPJv31oxV4idyS4DP1YIHOxXkhhz0yZSo6JykdqTxYc8ndoeEk0LsEcK40oN+7ZDh5sOIc+0z4wZIMjxsJXEDyz2QCeJ78Q9dh4BKSX4vaOveI93xBcVP3+gQk/hiKiVm/VtTfCFlfZO4UP2L4hpywv4F34qoOKfsU1ZO2eLT+MaoiT1C/chkdoV/lkRuYCouQ/Asm4d1tykktrjrQCd7vklpI2OgT/EFgEzrRfULn2skuChY6ifZ5dNgwF/qSXlwdRSfYbyT1xTqBFl5dSeV90RVU43H2zg0FLgJWpFk7X4Z32uNFmLArxyxflubx2rOBSUl+vhstwv3ETc+qm+xCh6WTVfWFgOnAcvT3MFemkvxadFzeVXeKuwt2XexKJPQKZC2uWhE+QU3FFUZcFTD1LaOBT3u0+s8I77qcGh/EVRdzprdSU3k9in/Gm7vAa1nSWOHBur2VM0ids7QVeAZd7p6tl+YoOl/jxRSv7QvMyHLdLkLosGAqcbURqEfbn60AOgq80fn6nSmOOwl9YXKLZO9VV5jQC0ZRukPkS43VOFeyDiG/NJPxOH/GVjntW7wCqzZ2O8KjZN9w8gWUnEtN5E9emGVwkYR8meRx9fxQ8q9UR25lzhyv80OSUxX5PiI3k9/dVDIslPVNl9fsrQwGUonVtegco3y9JrvRHh4nkTWc3NqATMa5ktVG5600kb9nqSspf02KY8agW0K4wR6SV4V5JbCSVQ/6WSVpyBwbWIn2tibjLHS/t2wZii4QScY2UuT/FZ/AWtTSh2jsPhT3kF2ZdAfIN1heMZuqyre9Ms/gEstWD0bki66vK+o7VFV+x/V1s6Wm8vfAba6vq7ie2tWmpDx/KnA+P6bKtcmFA8DrKZ6fmMKWZIzA2fPWgc5X2pjFeukQdJi0JcUxE3Cn+lLQF7WedIUJ3SSEzjfrTleumqEwea8HVRIUMI3sPJJlaC9ysu/fISBlzmtxCaxlqwczzH4S+ER2L1RrEWZRXXmnSWQvEo7EP4zr43Dkz1SX/5u7a+ZBdeTnCN93edUQdNzo8pq9jbE43+luwV1x1cV2nCudBgCnZbhOV8fxZNjokvW92ZmWMevR+VzJCOHsBciWZGF9L8KEp3DiTfx2nD0khsLgHZxFcH9Se6Z7Mo3kYfauvKuUqQHFI7Dq3hjB4Y5aoCrLVz5BuOMCaiINXphl8AiRm1xesZmBB/+u4Dryt77xL+g8HvdQuP3e9TbOcfh5B6m9NPmyFueLd6YCayzONybryL8qMR2r0dWDyRiDOw14d5M8NOu2wErmCd7s8h4Gb2jEOXx/KpmF3c/iRA9mF6k+5+9RHAJrSeOZSGIF2Y1JEZS6i+UV15gGjEWGDnHlMzuyJx1Y9qeYNeuwi2u6w4IFCcL2J9BhIreYZpLdc2Ykzl3O1+JtQ8ujOHuxhpO+1QI4z0ZrA97MxagsEXTyvhO5NIBOtsfWJD93M0wYRie4d6eD1An9hsKhndRh9wipQ9bDSV65Cdo7llGaUeELrNqWaVjWiiy7eO9GmE9VxT+ZkGARojquwd1Bo/cwd+prLq7nLnOmbgJxN3RpWde5ul7vYbzDz+PoVgxe0zM3Ko6+qK8hfeXpEJybia7L4PVusY/kAgi0l8kNEeR1mHAMJ14ft+J+YYrBO3biPFEgjA7/JWuR0gfd1iHZc4dJLdyOo7AF1tLGGSh7Kdn1IWkmHp9JTaTWK7MMnvN+F9faTTj+Hy6u5w3h3T/BOX8lB9Ql7q3Va7DQDTSTsQXvu5KDTtJ9E2gGnkM3WnwJLZDSeWCdihs6SC5IvMTpDr9r9mK+7CV5fzC3CjySreP3e2jInzdwHjvlVAwyleTeLSGDvKvuFG6j0dqWadh2LdpVlyFqKeGOj1BdoiHBp9adhHX0TEL2eESNx1JjEDkZZCSiRqIYAZShlAVy7E5WOIqueADFXkS1gr0D1C6U7ETUZpRaT0fHeg6se5cFC4JL4hRR1DW7J7CU/HdRhIjnzIlT23wnSn7lzoJyIfX14cBaURQnw3H2nCarXPOK1Tm+zilfJAjPy1502DtZuHUU+c8q7AoT9gw5DkO3dsm1OStoD8bIHj87inPXc0Ph0tW6YTbJv9uT0J6urtYb40mdd5VVgUhhCqzalmkou45selYo9XuGHrmFmTNzGctQWDQ0lLGn71QspmJTiSICVMKRzvdDaeeldHn81fHOTEkRCZCu/3S+QLr+FAiHYdjkDqLN61E0ItKIrZrok1ipw1g+UN80ASw3OicDHKE9/guX1vKeVnUfw+T7nHhyz4WBJE6ejvuDTksZJ+9VgsK/uPZHj7JJRlCdt7eSXGCNQF/s8r2R28KJAkuhIx4b8lh3DCeGh7bg74gYg3scQHuykuWlhtD5WC+gcxwnO6yxgxwiDIUnsLIXVwL8O1UVC70zymPqWwbRkbgUpWYBs9nLeSgGdNdBPlIGMgFhAnA9lkDcgmhsI6hlCCuQxLPMm9rsye5xVeniv/mvXDGjeJJSF5S3Uxt7AMU/uLOgXIQRWNngVH23n8IvzU81yDkocei0r4WuJszXrr3osGnPcM5Y8hNYJjxYemxAe057Fi6A1hqndT6SebmOkEXeVXcKS2A93VJOwl5K5mHBBMjnqK78nZdmecKSpkmEuAJRlxO3L0Ept5vkuc0ZIB9D8TGUBbWxTVgsRtRijhz5G1fNPOTKLkrlM86gx1rWw66t5ReWPIgolwSWY0WZITlOHiCn8RuFhJPAOoq3lY+p2IsO0STL9R2MO8JvCyd2ic8nTNiPE68/h/Cud5jBPxqBS0leZFFJ8s9pV95VsukBaSmcJPf6xtNI2E+RjbgSPlOU4gogHD6MTRnaxV3o4upEFGMQxiO2xeG33TuBizj1IMqWOCEWu7SWf+xZ/TIZ9FfJkFRDig3HE8K5bLsYRqM4DUR3s/1Htth05X6eiJOYzRanasJc0wycwoOG4ucozp3XnbTQGvLoHVcYHqy6N0YQj9eS+QWhHeGj1EQe8dIsT9FDpu9C5D+pjV2Csq5ByeU4x4ALgQTwIko9hh3+kyeDkpVyZ2aZopE55cVwYTyeBQsS1MWeR7jKhdWMwMqcVDc57nhnvcVpZmc+yd5ucIjkYspJEGbLPnSPr57r5RomTNaA0gisY0wAxvmwzxq8ubHZgf5cjM/g2J3kWdkdvMB6vGEAdvwxVMbC4hDCtSXThkF3Fn+u8/E1lq4ah8Tng5qHUIVz00O/aENRi8jjdMSf8DynSWQYyoUkLCni3COhCVwQWGIEVhakOhcGFWLLBieBFbTtTgIvm3lw6dgKnN3jZ7mECQdwYqf5AziX+fdGsqjqz4t8q0xTsQqdd5Xq2noUnXeVV2FDsAKroaGMvX3/D5iV4SuOIPbV1Exd6qVZgaI9W78Efkl9fZj4qAhiX4DifBQzECbhXUixHV2KGgNewpYV9Nnd6Gupv1JuCUoXe0r5jLDapUR/l2c5ljSpzoWFnuAOzvYHXVXt9N652Uh4CycKrK6mo9lcqE1ye++ga47gpTiXkbkytSFYgbW374+BeRke3YGtFjCvhMVVT7SwWdn50O0GFi0KMWLyeITJ2JwFMhalxoAaCzIKGAjSD6X6IwxAi7H9KBIIe3UfLPaC7AS1GdiIWO8Q5i1OOry2ANpcuBM6EHEaOVL4KNxqiVE4OZaFT6oLfjF073b6XQdtu9PNmZvXnv3ocFLPUKQbAsvMHixNTiJ1jf5Z6N99Xs6F4ARWbfOtIF/I8OgESn2SeRWPe2pTMaCbgL5FMXtoUuMU6sgSVQyVXw5Y+1y6LhqBlTmpvFTF8D4WqsDyiy3o/KDuZBMmHMSJHt9WiiP/zpAdA9G9r1IxoPOYlflsFIzAqmu8BJEfZni0IOoLVFc86KlNhkLhEG54sZRVvCdG1dGGuBJB8b+LWvGS6k7VzXCWVyRILrLczHXKBaf3zu20g2QCK5swoQkPZkYb/oyM8iosbwEzyEz7nIpOis/Zi+m/wFoaOwubR9HjCDJAfZWail97apOhcFCqTY//yROJF1/riy4k5NYFvRhyhwqFVO9V8MVA6ekguZgKWmA57e/2RfogyUfz5CqwBCOwkhEjuMkAbjCF1E15exJB90DL6YbdX9f3stWDsXmMzCsRfkJ1xT1emmQoMERc8jxZxZvgLZKs23AumAtE5hzBuWLIpbC1pzjlTgYtsJzeu5waN6Yh2ee9K0yYiiGcmL+1h+BbXBjcZTTO7RmcUkrCwHRyjAb4K7COdPwMrSAz4SnCu77qpTmGgsSdNhAq50aDhYBbAmurS+v0BhI4X1AH+GlIjrQ5/DxoT66fzVudmo6OSfM6k9xe+gwApjo8txdYgXNT3mGcGH7OCP8EVrT5cwg3ZXj0a4StG3xtD5CMpavGUde0lGjscaKNFwZqS+/BneR9xURX1gkGt5rNmotEdjiJFLe6jnuJ08UhSNtDOOdTeiGw2kjuiUgmoFI9L8A2VywyFAIKnXeVzJtrA03oG6wmnL3YZ5NDDzB/BFa0KQLy3xkdK2wiEboy8C7c0ebPYSdiiLoMuBKsF4jGnqa26QoWSjFUFRUn4lZ1pKSrEilclKp0aSHjwcoOp4aSPZtP+kG25xgn27tatQTBUJxDK16N8Mk2TDiME71sO/EmhGkIhkk4f4ff5NhncS/O+XoKHSrMKuTuvVBY0jgQ1EM4u4q70wHqo8yfEtyFoX7NSKKxJ0Du5cSEyTko9SQXN79NNPZNFq9K53o2ZIviTVfWEXURT60LOjySPSIKuNidtRznbhmS4zR8eCAZF+W4wmBgPnAROjQxnPTn6t04t2TIv2gkN0Y6/LwD7wZoO107nM7VJjxY2ozixGHgXeyDE643q3EW//1J397hOLwXWJb1MzINeQj/QE3Fcm8NSkG08ULi7a8BH0xz5Djgu4QS7xCNPUI0toDHG4ohT6MwqF11DtGW6UmfS1ivubRLf/oczXRCQOHwdNN0ch9Uezx2EY8LCobdOIcITvHRjlHoc/MItMCahW7IfCHOQi+O81DaoPIRnUJzO8lzBEkKDpF8WHoyW1SSnyeA7W4bZQiEfsA0h+cS6B5XPW9KbIefdzEWOD1TA7wVWLUtVwOfzPDoP1IT+YWX5qSkNnY7WM+SxZuHdhd+CHiIfn13Eo09RLT5OlasyMRb17tYtnow0eZPUhd7FpVYA/ZtSY+bX/4mbp3gbLnBlXX8RKzrXFrpEH13tri0Vm8hjg4TJMNPb3WyIocQOtyXKnTllDd0Cv5XQo7AOf9qh8d7O4UJe56Xh3Ni+HQ7/vR5MnhLV96V0w1JM855gPvRniwnysmwV6N3Aqt+zUiUfW9GxypeJTzoFs9sScdCsbA4SH4VbAOABSAP0zZ4F9GmvxFt+gpPt5S7ZGXxEW0YQl3Tx4k2P8rhjh0gf0Dem/+UqmjAHS+mxQLq1xdDib1m0aIQwqdcWu21wItEihOnMUUn49YYp9QMRouTZKRLndhEcnGgcA6TeEXP2YBddOB9desWknvIenryTHPR0qUrtJ6MrcC7aV7/Ns43AmG0eEurn7wTWImOn5GZW70NO3Qjc84MrufIQmVTFfkNAw+cA/INkruYs2EAqPmgfkjCbiYa20Q09ltqmz5NXcuUkk2SX7QoxNKW84k2f4to83PQdxei/gRyDSfeQU8i2pC84ZvwnCv2CMPoOPhpV9byg+Hl16K7B7tB75nZ6S5bSR4eUMD7fNj/zBTPpatsi+OcPzQO/yoKT8Y572sj3jfAPUJyT2R3L6TiRMEVx3vvmsF7RuIs8A+jqwUzoQnn/nJDyKB1gzcdiutiNyByfUbHitxGzZR1ntiRLbNmHQbuJNrwc+jzRVC3407+wqnAZ1DqM4gNFzfvp66pAbFeRuRllPUq1eUbXdjHX+reGIHEL0TUBSi5CDgf2860waeF9LkYeOqEZ0KhR7ETP8KNUS+KO2ho+E0BDLFOzUKxkOZ/dW9B+V/31upVdKA9QWckee504B2cK/byZTBwmsNz+3AOX3bnbbSdPW/iLHQfoBV4l/8EOm3CqQpW0O+fH2zhRA/GMHRI8CjJw4NO4tpQPPTFuTGooPOrMr0WHEGLrHMdnj8LHfVyKo7xQGAtaRyF8JOMjlXqL1RHfu+6DflSPXMfcCf16+8hceBTiPo6zoo4F07S7R/kMv0xsCEaawNZC2odyFoUq8FayxH7Ta6szOTE6g319WHaR44hZI8HNRnUFIRykClIXLvYVa7na3U1yQTW3CnvUBt7BcX5Odt9jDPZ2+c24EcurOUdF8c+Bcqt1hLrqK6MubRWb+RNtEjpeZK20Cfv53H/QqzQCblO3u1Mb0LbgA0k97YNAyrQ4068oCvvxSkH9W38G568FZ0r0/13qNBRlY0kz6kz4cHipquVglP1+DqcC0Gc6AonJsvN7vrOPoeDaHNfYIWs/0IyKgveTFx9wfX93USHLX/JQvkVF7dUI/ZnUepqvCnZHghqOjAdVOc9pkBfBdHYYbRS3oJiJzY7ULIVpXZiq50o2lF2Z9mztY+EbQNthGgnJO20qTb6MQyAeMhCJXRoLqz6IgzHZhgWwxCGIwxDqZEg44AziDMGizAnRDVdmCOsuBIRhUqi0BQPgysCC1ALqV39EDWTCvMEurhlONh3ubegMt6r/DiEPqkm82INBmYCDbgrsiI4z0jbT3aNL9eivebJLjTj0KGwN7KyLj1dFxunc/8RMheJbnAUfTHtmc82Bv277SmwjlLcM/YM2gni1BpkD7l//lrQn6NknQL6oz22ryZ7obsCa0nTpQgfz+BIQalPML88WzUZDAuVDSwBlvBE0zD6cT2ov0ccW++7TX/0yf4MhE5t0ynCurSJdAkeAUu997/ElT7NdkmYkM174qjr8qC6Pa/A2wjCcZzK0paZkKSdQNj+M3HrP3DnM3oSKn4fC6Wm83dZWITtX2d4U5IJgp2436W1ejOr0d6OZCJlFFpkvU7+DSkV2quUTMyB/jJmWw0aR9t2PsnvhM5C/7tiuJMPVYb2XDl9hqVzL7+LLrZwosAaSfLf61Z8PPEZXGc4zjlRXd+HXH+/cXRocRbJv09j0N/fE9J83Eu2rq8PY6mfOBjQk19SVVHv2t5+cmXlXqoq76UqMg3hPOB7iJhy+OwQUM+j+Cz9wsnLYedM3YTicRe3nMus2LfcW88los1fRrjWzRWZN7XZxfV6K+2QslHrKOBS8uuPNQDdTHRcimPeIkWORwp2oj1ZTpwGzCaH8R89OAX9PqS6QVhLML2lkommLkHbk8L0bhsyoQ9a4DtpjybyD03vJbUHLGnrBvc8WPGRX8Y5ubE7WwnHv+HavkFSE2lAhwq+Rd3rEyD8IUSuRd85lmalYO4I8CrCI1jyIFWRt9O+ImH9D5btnvhQaiHR5g1UV9zn2pr5EG26BuQHSSQdFAAAIABJREFUrq6prMLONSsudqDzsZzyL/sB56FPvm91Hp+Jh3QAulrwDHR/Kyf2AmsyNTYJ6zjm/U7GYPRd+Xb0iJBUjVa7ozjWITudQNuMv6HB7rSjw349xV/PiubDZJ+b01sZSOZJ4m6xn9Sfy2k493l7F/fE8zr05z7Z2J0QWuQtp9s5wIVEGmDxqjGEEquB9BVkSq6lqvJRV/YtVOpipyC8H9QlIO9Hq9veKLjaEPUcSv6GzaPMi6TrPXIitbHlKNzsyN6Bsj5GVfnDLq6ZPdHYB4GHcbMBpEgL1ZFI0pw2Qz5ESO1l6qID7Tnah25i2IEOwfXpfAxBh6xOIv25dx/wEu7MxJtCZi0muvKQWtF3/O3oi0UIbf9A9MVlJJnNZHsH3dAxl8/jaHQYtifb0De1mXI6pE3leIvsctImkDwctZbUXsNcORs9T68nu4AXPdgP9Kgmb7oMZE8U/dlMxvvQn+9ktKELUtwMTQ8ELsH5vTnus+TOGxhK3E1G4kr9hapIaYsrgKrIdmBR50MnMVvMxrIvxeYSFNPwd7aZXxxAJ/s9i7KXMrTjxbzbIyj17yCLXbFOU4bYD1LXdCtVlb90cd3MqY19Avg1rn8G1F1GXHlCl0gYn+a4MnTzSqcRMZmyFy2u3LowrEILpsmk9pj1RSfH59uLTdCeN3fmiubHNrRATnWDa8KDxclQnMfw2cBruJ/314b+PjlF696HvsnaBW4IrGjLdLBvzODIfYTUP+S9XzGik/kf63xAQ0MZe/qXQ2Ialpqm2x4wkezG9ATNHrRSj4G8TCj0MrtaVrNggbtNBKsrlhCN1QI1Lq4aQtQviDbPIDzwdt+a3DY0lLGn350o+ar7i8tKVkRMcrs3CFpk7UVfrL26sxd0i4XVuN+McwM6BDidTG6Gc2c/OnfNq2HO2dKBvtglGz8E2tNYKLYaMqersMLJE7wG736vG9Gfp2Q9Mru3bmh34URh30km4S/hO8wpz6bUuHTRXp3XOx/HqG8ZRHtiIiHrHGx7HBanI2ocOjxxCjqXwJ2wbnraUWoLIpuAd1BqE9jrsVlNPL6KK2bkM1YoO0LWV0nYr+P6hU1uIX7wIqKNt1A91StXu2Zx81T2yu9R4jR8ND8UdxRkhWRpsRl9YzEBnSTu5nfxIDoZ18tcoAPokMnpwDk496vKhUPoPlfvUHjVeFtwFljGe1WcTCV52wTQgjp9jm9+NHGscW1P+qE9XA35XbCisQ+QmWfhLeL9/ievvTKloaGMPYNOLtieR6mYU34QHWJL2lODhWIxu/lkLGskCftkhGHomPAgkCEoNRilwohYoJL01JEESuku1CJxRA6gaEOxF5u9hFQrNnsJW3v5wJTtBRNuuqy8hbqmXyLqVg9Wj4C1nLrYb1Gh7zJ3irudputbRhOXb4P8HanDM7kj6m9UR+o8WdvQk8NoD81b6JDhaPLLo9uJ9i7twB9hIug78E0cCweOIDexKOiL2Sac5/8VAtvQIaNkjgCn0UKGwmU8zhNW2smvJUOmdO1zgcPzo4Fxud+BiSjqYi+ActrgGIqrqIo8kfNe2VAXuwfhs4h8h9bVP3A9ZGUIhro3RkB8Xaeo9Ip24H4sfs3cyIq8VqqNzUTxJeAGnDsLu0ECZLrp3B4YCn0nOxxdlTcYfWed7Oa1Ay3QWtGeqt2dfw+afmgPz5DOx0CSJ7G3oz1t+9Hh0h14V1HWD5J+153mDKYjWWK+TW7tIwaTfK7jQbSX0G0Gde7Zk65mql4wGv+iJenYzvHVuafgHDVrw7tRVslIVfCRyP0NjMYWAA+lPU6IUhNxM3/GmdrmG1HyQLefvEDI+hyXlZs+VaVAbex2FPf4tNs6kCcRopT1fZk5E1N3ea5vGU2CaUhiHqir0CXsfvALqiNf9GkvQ3aUoYVWAi1ECtXDkwyFtr0MbXuc4rLfYAic3ASWiKKuuYnkDdu6Y2PbU31pfBhtioB6gRObfbUDPyZhfb9oOscbktPQUMbevo04V454yXaEt1DsQWQ3ij7oO+xhoM7EOcfDS3ZwVCYFOqvSYDAYDEnJTWDVNX0IUY9kcOT9VEduymmPbKhf34/4wZdI1ehUsRdb7mLQwR8za1YhuOUNubCk6VIs9QyF474ODqU+TVXFH4I2w2AwGAwnklvzS1F3ZHBUgpD9nZzWz5Z4292k6yKvhxjfycHBa6lruoVFi7xJODZ4y7zK5xDuDdqMAmAZc8sLoyO9wWAwGE4ge4FVF6tGz89Kxx+4bGo+Yx4yo65lPkjm1WWK0xD1S4ZNbiIau5mn1nmZgGzwgni/OxA2BW1GgMRJqNsKpsrTYDAYDCeQvcASMpkj2IGS72VvTg4cPvwcSv0nmc0A684U4DeUHdlINLZQV6kZioIrztmPJV8K2ozAUOq/mF+RahCxwWAwGAImuzyWJS0XYNkZNGRU91Jd8fkcbcqN2uaLUfJrks9syoQ2UPcTSvzQF8+bIX+isYeB64I2w2fWEB40zbfu8waDwWDIiew8WJadidfAxrZ/lJs5eVBTsZyBB2ag1F3kNiB1IMgtJKwWorEnqI1dS0NDJgNNDUGRCH0J3VOot2BjcbMRVwaDwVD4ZO7Beuq1kykr20i6rsWKR6iKfDhPu/JjccvZWInvo9R15FdttgPFH1H2A8yd+ppb5hlcpDZ2E4o/Bm2GP8iPqK70YI6hwWAwGNwmc/FRG/tnFOnzqkTNpqZieT5GucbS2CxsfkBmSfnpWAM8CDxEdeQNF9YzpEMPEr8OYTTVFZ9zTOqOxh5Ed0wvZdYTtio7xykZDAaDocDJTGAtFIvZLW8hMj7Nka9QHTk/b6vcRESxdNV1iP194GyXVl2H4jGEJwjvWsacOXGX1u3d1NeHSQy/CFtd2el9PNYNXcnnqapM3p5hcctwQokYqLE+Weo3NjCX6sgzQRtiMBgMhszITGAtab4KSx7L4MgbqI4sys8kj6ivD9Mx8kYU38DNTuC6gelSlHqakP20SZDPkqWrxmHbNSDzgbnoWWjJOEA8Xsnl0zckfbYuVo2whNJsQPoDqiP/L2gjDAaDwZA5mV2MapufQsnlaY7aSnjXGQXvzVkoFhe3XAvydeBC19cXNqF4GiUriFsvsn9Vsxk43clCsZjdXAFqNsLFILOBM7JY4RmWV8xloUrekiPa/BOQ21yxtXBYRXjQuSax3WAwGIqL9AJrSeMoLGszyafDd1/pP6iKfNMlu/xhScsFKPvLKK7DeSJ2vrQBDYi8hKVew7KaUTvWFLwQzZeGhjJ29ZtCmGmIPQ3UVOBc4KS81lXcTlXkx0mf0yOTXiH9jMxioZ2EOt/0vDIYDIbiI73AijZ9BdQP0xwlJKwJzC9/0x2zfKZ29VhUx2eAvwPO9GHHdmAVEANZBeptbHmLPom3mDO9uNoO1LeMJhE/B1Fno9TZCGeDnAOqHOjjwY6HUInpVE1bm/TZpY0zsK0VQAl06JdvUF15Z9BWGAwGgyF70gusulgDwrnpjqI6Uu2OSQGyUCxmxy5DuBnUNcCAAKzYDbyNYhOiNqPsHYjaDGwHawuW2oN1dJ+nQqx+5VDsvkOQxBCwh4A1FlFjQMai0H+KGgOcDgzyzA4nhAepidzo+Hw09iUguZerWFA8x543LjPhZYPBYChOUgusJU2TsFQmLQkKN7k9V+pbBhFPXA3qRqAGb7wx+bIP2I/IfpQ6zHFNN1UbKknDVZFh3f42EEUfhD7o5PKuRyGyAyV/QUIPUjVledo5fHWx/0O41ifb3GYPWNOpLt8YtCEGg8FgyI3UeVWWuintCoq9tPf7q1sGFQy639ADwAMsbhmOZX8QS12FyHxgcMDWdaEFkUqmkwUyGQVc2OOC3wWeBPUo4Z1Ls8pbC8VvJlE2PYPWIoWGINZnqDHiymAwGIqZ1B6saOxt0uck/Y7qyM2uWVToLGrpw1D7AyiuRLcVmBK0SSVEAqQB1OOI9SQ15a/ntdrSlvOx7WV4V8DgBUG2ZBgGjAFOAUYCQ9E3E4M6/zwJLeq7RmwN5fhzSH8gwfGjqtrRhR4Ah4CDnY/Wzj/bgF3ADmBL559H3f1nGQy9hv7o1I2uaMRQjn1vT+p8DOL4767q/HsXoc7jDgPdq5db0bfkRzv/f2+PP3cA7wBb0eeBXo+zwKptmYayV2awxHyqK5a4aFNxsXjVGKzEXCw1F/hAEXpMgiSO8BqK51A8ixx9nuqZ+1zdIdr0T6C+7+qa3vEKe63ZLCjPZZZmJgwEJnQ+JnY+xgOnokVV6jFY/rEX2Aa8DawF1gFvdv65ITizeiXnAYXWg80GPhq0EQExAl0lPRH9vT0DfVN0GjAWfZMUNHH0zdJGYD0QA14HGtEirNeQQmA1/StKfTvN63cx7OhYZs7scNesImbxqjGE4xdgcxGWurCzQGBg0GYVCO8Cr6LkNcR6mf7hFcyedMDTHReKxcXNjwNXeLpP/rRi2zOYN3W9S+uVAdOBC9D93i6ge2f84mUP8ArwcuefL6A9YAb3GQa8ij+V1dmQIF16S/ETBmZ0PirQzbErgFFBGuUCW9Hf2yhQB6wO1hxvcRZY0dgrwMw0L7+X6orPu2tSiVFfHyYxagLYEaASiICKlLin6yCwFmEtimaU9SqJ+GvMmxrM3csTTcPoqxqA9wWyfyaI+hg1FX/Oc5WxwFXAh4APUDgeKS9JoMXWE8BT6DtlQ/4o4BHgmqANSUIpCqx+wPnApcAlwCyCqND2n3eBxcB9wHIKPSs4S5ILrMWrxhBKbHZ8/r1XSzVVlXUe2FX6LFs9mMOJs1GchZ04C4V+YL0PkbEUZtViF3FgO/rLsQXkHUStRay19ImvZc7UTQHbdyKLm6cSkhUE03ojNUp+SlVlrh3oBwKfBD6NDueU4qigbFgL/BL4PdrbZciNfwa+F7QRDpSKwBoAXAncCMynd9wQpWId+nv7G/T1pehJfjKua7oFUb9M89r9DDs60rPw4JLGUQzse9jzEFKhUr9mJO1HRhOyxiBqDIrRiIwENQTFMES6EhaHIJyE1RmGFAaQvslmAsX+9/4m7EUnI7eCtILah9CKpVqx7b2g9mHJNlRoC4nQJlqbthdlf6ba2E0o/hi0GT2IMfDABcyadTjL140DbgM+y/EJqgbNEeB+4N+AzQHbUmx8AB3CKVQRU8wCy0KnK9wIXE3v8FJlSxtwD3A3uhVR0eIgsGKPIVyV5rX/R3XkOvdN6iTa9B1QX0D4Lq1v/E9RXtCDpr4+TNsI3VJC2o9y1cxDAVsUPHWxXyF8NmgzOmnDlpnMq8wmD6EM+Hu0d8Hk9qXnEPAT4Lvo0LUhNacAK9GJ04VKMQqs/uibodspjVxIP9gDfAO4N2hDcuVEgVVfHyY+cg/pej2J+hw1Fb/2yC6IxlajKyUAGoD/R3XkGc/2M/QO6tf3I3FwWQbTCbwn+7yrC4A/cOx7YcicGDo37e2gDSlgQuh8mKqgDUlDMQksC7gZ7Uk9LWBbipVFwOegW9SlSLBO+En7qHPJpJGmUrUe2KOJtkzn+IvITKCeaGwZS5qvQqS355kYcmXOmUfoiH8EPZIoQOSeLMXVdUA9RlzlSgSdDD8naEMKmO9R+OKqmCgHlgG/woirfFiAdrIU3Xt4osAKyfszeF3M2zEetlPo8WIseYxo84vUtlxthJYhJy6fvgGxb0An6/uPsIK9oX/M4hW3oe/i+ntkUW9hBPAkukLLcDwfBO4I2ogS4hNoQX9R0IaUCOcAT6ND2EXDiQJLMhBYCu+8V9qI1D2LFOej7L9S19xINPZFnlp3krf2GEqOmqlLUXwtgJ23Qdn1WTQTnYdO+Dzxu2rIhf7AYxhPYHfOQIeezQ1r/ijgB+i2A4VXsVzcnIO+QSqaasvjT9qLFoWAi9O+SuR5j+yB+pbRoKZleHQE+BllR7ZT17yIuibj3jZkTlXkxyC/8nHHDrCup2bSlgyPn4T2XIU8tKk3MgLd4yldtW1voAx4EP2eGPJDAT+HQG7cegvnAv8etBGZcrzAGj5lBnpmUSoEW17wzKK4fQXZ30n1Q+R6REWJxlqobfpHFrcM98I8Q4kxrP1WFM/5tNvtVJcvy/DYEPAQuhWHwX0moyuUejv3YMJYbrEQMI23veer6OkUBc/xAsuWTHIT3vS0I7eSN8ivG/MUlLqTkL2RaNMDRJuuoX590bgUDR4QbTnD8TOg+7gtQPC2OariT1RHfp7FK25Bd/43eMc/ob2EvZUb0C0/DPlzDfAvQRvRSwihWzcUfNrE8QYqZmTwmkzvwHOjqvIFllecC/Jx9KDIXBkI6kZQjxI/uI1o7A/UtlzN4w0mLt4bqF8zkmjsi0SbnwN7Ax0HfuF4bFVkO8q6Gt0zyX0UjRw+ms2d7TCKyA1exPSl914UJ1DE/YUKjFOB32Jy2Pwkgm67UtAc/4GIxmLogZLOeN3/qjuLWvow3P4Cwh3oD7EbHAaeRsnjKPsJ5k4zXZ5LhbrYKQgfBD4M1KDzS7qhvkJ1xT2Or/em0/tu4vGZXD59Qxav+Xd674Xfb+Loxo8eVkUXHAOBl9BtBIqRQuuD9b/oc47BX1aic7IKdn7hMYG1YkV/2gbvJ90HVzGVqkiTx3Ydz6KWPgyXGxH5Glq5uoUAMZCnUWop/cqe7bWjeYoREcXTTdMR9UFEXYX+sqVyG8dRcnnK+ZnR2N3A112yMI7Y86mZujSL14SBd9CDmw3+8EN6V2Ly74FPBW1EHhSSwJoP/C1oI3ox1UDBzkM+JrCijReClS55vZ291uAsSszdRURR11ID8nW8aYgXR3gZRT3wAir8IlWTA25IaTiOJU2TCHEpqEsQuQxUtkJkDxbnMzfyVtJnFy0KMXTK4yi5PH9j+fss865ANxR92IW9DZmzAy1oe8M4rs8DzuHy4qBQBJaFboA5PWhDejF/RA+7L0i6CazYF4GfpTm6kapIpi0UvKW2ZRrYt6G4Ae8GZgqwBqVeBPsF4tZLjDyyyrMB14bjWdTShxHxCmzrYkQuRalLcKfRXDP9y2Y5eiuXrR7M4Y5l5JNkruSnVFXelsMrF6N7Xxn85RK8zi8NnkrgRYq/YW2hCKzr0W1UDMGxDxiNHu5ecHQTWM2/BLklzfH3Ux25yVuTsmTZ6sEcab8RUZ8FzvNhx3aQFlCvIzSCvE5ZopE501t92Lt0ebxhAP37TAVrOrbMQDEdnQ/Yx6MdH6Wq4sMolTx+v/T1U7FDL5FL7p/iOfZY1Tl4egcDu/Du35wPHWhPzxZgOzqX8TDHTmwH0PlMArSi20uE0BfCrtFbAzv//xT0+zqKwvm33k1pdzIfiva2eD1oOAF8H/iWx3sUgsB6gSJpF1DifAj4a9BGJKO7B2sZ6ZuM3kF15G5PLcqHaGwyyMdAfQx4n8+7bwXWgFqLyFos1mCH1lC2fT1z5gQzkqUQWbxqDFZ8AljngH0OSp2N7kk0AX8aam5H8Scs63dcVt6S8sglTediqWfRwiBT1hPucz5zJu7KwbZrgEdzeJ1bJNAtUl4DmoHVwGa0sNrp0Z6j0GIrAkxDzwqsxP8S7FUUb9J3OhQ67OxHIvY3gf/A28TjQhBY56FH4RQLh9DDkg+hb4oOd3vO5tj3bRC6OKgPx857w3yyMVfuo0BzCrsLrF2k7ear5lNdscRbk1xARLE0diG29RGUXAucGaA1HcAmFO8ivIPiXWze1X/a7yDhLcwv3xOgfe5Rv74fiQNjkdBYsMcijEFxKjAO5BxQ5+BdODcVHcCTiPU7ynY8lZXgrYtdifAomYm//YSsWWmFmzM/B76Q42tz5SBa1P0FPUy6EIo8TkOfML+Cfx3GbbSXpxD+/W7zdbSHzmueAq5Cv5elLrB+BHw5YBu6eAd9M7QKXQ27Fe1p3ob2iO8nv/xCxTGv81jg9M4/zwCmAlMI9vexgWCv8Y5ogfXUaydTVpa+eWg8fmaW5eaFQbRlOko+BHINwtSgzUlCB/qL0PmQbaB2IbILy9qFLQdQ6hDK3kcidADibYTUIY6wl0OhNleLDpY0DqRD9WGgDETCQxB7CMgQRJ0EMgSbYaCGoBiC7vp/MiKnotQYoJC65x8GloB6hKP241xZuTfnleqa70DkrjRHJYBrqI48mfM+8Cbeh3C6iAP/hb7wFmohx3Dgz+iWG37wAeBZn/byiwvR/yavQ7HvAjPQ5zAobYFloYWMW62DsqEdnUf3DPr3+grB3xT0Q08DmI/2kp4dgA2nob3tBYUWWHWNlyBWunEhccK7+hd9uKt29VhUx3x0InEVhSUK8kFQtPb4iZOoGIDqnMMmWKQfj1QstAJPgnqEI0f+xlUz3WscGo39DPii4/PCl6mJ/HceOwwB9uJPs8KdwNXoE3Wh0xd9IbnAh72+hm7ZUCqMQod7vRYCHWhxuqLbz0pZYF0Cvo3X6iIG/AZ4AO/C9W6g0K0Tvos/OdFd3EABFhzoD6mEJmXwfXi36MUV0Dlo97fAb1m0KMSwiech6v2dFWqXULyz3xRyQqzcOXZesK3ZsuIISlZgq6Uo+2n2rnmFBQu8KbUP7/oH4iMHAZ/o8YyNyLepqcxHXIHOQfJDXB1Ee4TyGUflJ0fR73kz3nthSmk0kYUuYffDy/IVjhdXpc4NPu61CT0z836K46wtQC26N9W/oOcz+sEsClZgIedkcOwGLw0JBH0xfrHzcReLFoUYMXEqduhSkItQ6nxExgdrpKEbR4CVKOqx7acpO2k5c870pzxX31x8krrYH7G5DsUpiHobpf5ETflKF3Zws4FuKr5O8YirLtYBv8b7uXmne7y+nyzEn9DqQ8BPfdinkPBrRMvLwAc5FnYtJmzg2+ibxn/zYb+CLFDpDBE2L0Lk+jTH/o7qyM3em1RgPPXayYTD56HU+cB5INNyaG5pyJ44sArhFSx5BSWvMKQjVsI9yPxIcG9BC7liuBPuyRS0F8tLL98aSmP481xgCd5X5a5Fh4H2J3muVEOE7wOSNyl2l7fRCeQHfdjLS0LoEH+6DgX5shEY5/EeWdMZIszASyOywVtTCpQrZuxEV8c89d7PFrcMx0pEwKoAiaCoQCvooQFZWexsB95AWAO8gbJexY6vZN7UtqAN8xE/2or8kOIUV6ArpBrRrRy8IoikZbc5DV0Y4LW4akMnNCcTV6XMbJ/2uZXiF1egxfA/Ac97vM9pwAB0G4qCoesuYHz6Q60tXhpSVOi2Cs/Ss+Kofs1I4kfORqxzsNTZCGcjcjaK9wEjgzC1gDiArjRai1JrsO3VSOgN+rSvMU1aARjj8frtwP95vIfXPIG3AmsQOgezWEVDGfAgcLIPe/092iPa2/DaEwO6IexiH/bxi2Xo4eJeFqpY6OpFf+ckpyHMksaBZPKFVHYhVy4UBrq55C6SVWetWNGfg0NPg/hYUKeDnIpSpwKnI4xCMQLee/iR7OwWcXT12zZgI6jNiL1Z9/1Sm7GsTbT32cQV5xTrRcsvRnu8/nKg2IWs13fBoDvNF+tn9T/xRwD8At3csTfihwfrtz7s4Tf3430lcAEKrFB4HGKnP1JJaTTDDIpZsw6jk3XXpTxORPG3lSMJhUegrBGgRoA9BEv6YzMMpfoj0h9lDUXJAIT+HN9mYRCKsm5/DyPvjSrpQHW6nQUbPcepi30oZXfacBBUB0oOIKoV7FZEtWLRilit2PFW+tAK4VbmlJeCGzto+uC9h7OYuk478TI6xOnlDUixzum7Grjdh30aga/6sE8hMhw9dcJLEujCgVLjSeDHHu8xyuP1syYMdmZ5BwllPFh+oGfj7aSwe50Y3OUUvPdaFtSdXY60oj2lXoZTi1FgnY32KHn9GWpF510dTndgiVKB9+/x60ApOjPeRrecOM3DPfwIjWeFhZ1haCIRL9RuzwZDsTM4/SF5s9GHPfxgg8fr9/N4fbfph/Z4eN0sWICb0RfK3kom7Yzypd6HPYLiVY/XL7g8ZwuVkcAS+u/LfdRIOp5unEh9SxAz6gyG7Im2nIGIm3eyfV1cy4ltPuzhB+s9Xt+P34Wb/BQ9osZr7gIe8WGfQsYPgbXMhz2CYo3H6xekwDolg+MOedrFPWFdTdxeT23sdhYt8rq82GDIjYaGMmpjt4PdzKuvutmHx4+Leqm0vNjg8frFVGDycbRXyWueRXfl7u1M8GGPmA97BEXq/OP8KUCBJRl5sI56a4aEgJEo7mHY5NeJNl/HQrG83dNgyIK62JXs7duE4h5gMFuPKyTIFz8ElsffYd94J2gDCoQK4F4f9tkOfAxdLdzb8VpgtVGKE1OOscPj9Qd4vH7WWIjKZNixtydnUd27c1eAPMzFzWupjd3OU+uKzWVvKCWiLbOpiz2L8Djdu3wfftvN74QfeT9BDsd1k2IcG+I2g9Bz17y+oNjoOZCmB6Lus3SWx3usQr/npYrXhVsFpxUskEySI9s9tUIlXf8sFPdQdmQNtbHbebyh4NSpoYSJtswmGnsa7OcRLu3xbMLlodJ+hKX8SKT3A1Nso/tQed0uAOBbQNSHfYqBkXh/I/Smx+sHzb70h+SF18PgsyasBVba87vHAkuO4pwzPA7FPfTr+y9Em+4D9SuqI294ao+hd7JoUYhhUz4E8hWwUzVsdPv74O33S1MqAusVYKaH63udiJsv/4DOvfKaJ9GJ7QaNHy0ASqXS1wmv0xQKzoMVRqlM5ud5HCLMaObSCFBfAb5CtPl5RO6lbNDDzDnziKe2GUqfujdGYMc/jeJWkDMzeIXbzVX9EFilUqV7CO/LvQuV84G7fdhnI/ApSjtclS1+CKx3fdgjSLwWWIXowcroztbbL5oK7cmom/x7yCUoLiF+8L+pi/0RrHupKl/lmX2G0kNEEY1dirJuQeLXobK5+1FutyzxIwG9VARWb2UYut+V1xeRDuCjmFBsT0b4sMdmH/YIEq8LJQrQg5VZ8qu3X2rFHiSnVw6wQBCkAAAgAElEQVRHuB3s24nGVgF/QUL3UzPF63JQQ7GydNU4EvGPUtdyM0pNIKcPnutjo/zwYBVcCbMhYxTwO2C8D3t9GXjBh32KDT++P6UusLym4JoEh9Gzj9LhrcAS+x10BcWUPFaZAvwbKvGvRJteBvUwEvqrEVsGlq4ahx3/MKgbsRPnoRS5CatOlHLble9Hjyo/miQavOGbwDU+7PMQ8DMf9ilG/JhzZypk86NoBZa3rreqyHZEKqhtuRIl30Jxfh6rKVAXABegEncTjb2N8ASWPM7Q9meZObMj7QqG4qeu6X3Y6ioU12MnZqFVVX4otQHs7xPa5fa0ez9OrH5UnRnc5wPAQh/2WQvc4sM+xYofIULvpqUUBq3AAg/XL7icQUU0tov0H56dVEf8m1Rd1zIfsb8JzHZ55d2I1GNRRzy0lPnlpV4W23uINgxB+l6Gohqowd2eNW+i1HcJ7bzfw4kGR/HWU7wVGOvh+gb3OQVYibfDrUF7UC8AWlxcMw8XcVoS+N/X7V7gcx6unwDK8PZ9M/iMIhrbBmnH5eynOuL1MNETqY3NBL6A4ka8aKqn1AZsWQo8gyUrqKrszYNMi4vHGwbQr+/5wPsRajq9nu6edIUVWOonhHY+7OmoKM1mvBdAUwDT4qQ4CANL4YQebF7wKeA+l9csNYH1e/T75BW78KdS0eAjitqmZpQqT3NcB9WR4Eogn1p3En0OfxRRtwERD3faBjQgsgwVWk54QINpA1Eg6M/A+YiaDVwMXII3oeujKPUY2D+iqtLPZN/Xgake7/Ed4F893sPgDncBd/iwz8+Bv/dg3VITWA8AN3q4/puYPMmSQxGNLUGHVFLTv+wkZk864L1JaYjGPgByC6hr8H5URDvQjLASJa8j1koGhJsK4n0oZepip6BkBraaAUwHZgCZ9KfKh/Uo9QsI/YaqyUGUqP8VuNrjPbahT+Ju9/EyuMuVwGN43+G/EbgIOOzB2qUmsP4X+LCH6zcC0zxc3xAAYTItDW07OhIIXlhUR54BnmFJ40BCoasQuQGYjzcVBH2AGShm6Nx5gcMdNtHmNxG7CaXWIKwGVjOgbI0RXlmyuGU4ZfYkhMkIE9EhrGkIp6bo7O8mu4C/oOw/s6xyOQtVkEmSfnQQH432YPnhGTHkxhnocJTXX4C9aMHghbgqRbyO4JjfQwkSJtNBnsoaAaz31JpsmDe1DXgQeJBowxDodw3IDUA1OlnQKyyQCbqHEsdOg4c7oDa2CaXWgKwBNqDYCLIRu887VE/cilK9K4FRRBFdM4ZQx3hEnYFtjwN1JqpLTNmjAqj7OIDir9jyZ4a3RwuoqtSvES1fBzZgyvELkb5oT4nXFWsC3AyYnNPM8VpgHfJ4fUMAZO7BsqzCbVRYPXMfOknzPha3DCdsX4vI1aDmAgN9s0NxGshpwFyg00muQHVAXfNRorF3UbIRm3eB7Vhsx1Y7sayd2Gwj1LGT3WU7WVDuR+PJ3FnU0oehoZHY8ZMJqzHY9kiUnIyyTsG2R2NxOqLGUdd8Ooo+WkSJK50ScqQNRS3wEAMOPMasWYV4t+iXwFLAT4GrgB+jE6kL+/PWe7gHb+csdnEn8KgP+5QSxoNlyBpFbawGxZL0R8pNVFXe74NN7lG/vh/xtvcjcgWKyymeJMJWYA/IPlBtIAdR1gGQfYgcBNWGyAFQ+7A6ZwwJHcfPdAwdxUocf1eUsPqj7O6h1IFY7504FDZDUQxCj1UZiLKGIvZgsAaCPQjUEBTDEIZ5+G93B92z6knEepzwwGeLoFhhKHo8ieXzvgeBenQ7gGZ0qf5avB9rYTieG9Aeea95FqjC+99vqeVgPYcurPGKh4HrPVzfEABhyqwm4hnEacSXTrbuoi+qSzoftxNtOQMSc1HqMkQuA1WofYGG6keXx0eByLH/h2PeoO65Ssc5iGxOyGOypOdBx58GezqYpOv4bq8r3CDnPqAeZCk2dcyLrA7aoCxpBZrwP9F1ENqbdVW3n7UDq9EtHTajh9Bu7fz/LZ2PQhesxcQEdJ8lr9kOfAwjnnPB62QGP+aRGnwmzJzybURjO0g3CkCpcf6Y5CHV5RvRM71+B0A0NhlRF6NkFrqaZiLeJ5ca3GEXyAqEFUjoGfa1NLBgQSZTCQqZ5yiMSqI+QGXnw4ndaNG1E50w3f2xJ8nPun5euBI9GAYCj8D/b+/c46Mozz3+fWcTwh0CiiJgBYpcQkAERVGRlASollpbxbZe2tPTWq09be05vZx6WunVXk5be9e29vRei7a2ginJLkZbBSoByW6CQBQKouAFwp2EZOc5f7wbCSEJm2TfmdnZ9/v5zGc3OzPv8yTZnf3N+z4XBhu2kwRuIt2YW0t7TAssK3pDSOs0axw9bdw5os4z7Iv3lBU/h75L/zmgs9oi7qUgl4C6EF0e4GwfPbRodLkMZD3CavJkDW+Z7lXMkpf8HfiY306kyXB6FoydWv5+Y2tAi7Q9wK42j7tT+8POj+ldD9Z0+R8g5oGdsGL65i1wbV4svUcLLFFxlHQtsJSc54E//rKoaB/wWGrTVG4+B9U8AyUXIuoCoAjdhsXrGIBc4QC68fdGRG0gktzA3rzawAf+Z4YYeuktcE1LM0hq+ZtxaRx7FF2Asf1WixZl2c5twC0e2HkMXbjU0nNMC6Bsn323dIAWCYqa0x4pxgs9BpMFk1pjTk6IrmV1fRjScj6OMwV99zkZZAKocYD3LYWyk90o6hG1GZFNOGxCJTcx/4L0slrDyQFgOTbYtZX+dL5UuQsdmL8R2AA8TXaJrunAdzywsxPd4sUuzfYO0wLICqwQouONViXG43L6xsdJZ3hqlsfSGSvrhuG441CMAxkHjAM1ChiD7vmYfckC3ccFXkGlAqJdtgPbELWNfLWNvge2BbRUQhC4BptC3xMEPbNVldpWEYTCyB0zFFhPerN4vaEJuByoNmynI8KWRbgcXWHfFKZaFll85ERAdzSxEy0COsdxZjO/6BmjHq3cNJK85PXMn/qDUBbmLK8voKD5bEiOwlUjEc4GdziOGoYwDB3X0vZxGP4H3idpjZkR9qJa42dkLzj6UZyXcGQ3bt5L7I+/EoKAc7/oA7wAjPbbkSznGFCOLn3wGMGpM6TQxUSv9cDW7cB9HtjpiLAJrL+gb35M8SPgowbHt/jAiTep4kmEm7o8WtxiwKzAOuPo6+wvWEqsdgFVNbdRMn2XUXtec9WEJmBHakuP8voC3GP96Zc3GNXcl2Y1EEcNQjl9cZOD3jhOnVLnCkTp7CQlB0963VXHQNqk2qsDiDQCR4i4h5D8RpqShzgaOZIj8U+dU15fQP6x8ymblvDA2nHga9hK672lH/Cu1HYQuB/4HukWVjbHp/BGXD2If+IqjJiOwfK6/p3FA04ILFc9iZKuBRYUm3UHmDWrmWhiBXAzLc5mKuNfZnXxt3zuE+cvWpQ1oTOuLF6ysnY6kcZf4qg7PLT6APBZdF86S+8ZjBY2H0d3fPhvdB9Kr7kU+IoHdrYAt3pgJ5cw/f1jk6ZCyAnV7KonTn+4mBdYAMIjqWcDUOrrXFb3BBU1Uz2xbbEAPLV5EJXxbxCRaoQz+MfUtR5aP072lGvIJvoAH0Rnqb7HY9sjgIcw2ycV4Ai6iXNQ48+yFdMhD1ZghZATAmtR0fPojJPOEdVV4cHMMfDQSvSFotXwFThODdHEr4klzvLEB0tuslQcorW3cKx5C0p9GshDycM+zKD+FR34ask8ZwK/B36IN/GNDvAbYJQHtm5HC0hLZrECy9Jt2q/7rjjN8WewctNIU868wZw5x1LNedviADcjbCWauJvyetOVjy25RjQxj8sS1SC/Ak68z8V52CeP/hNY45PtXOAOdGyWaZH1RWCBYRugA6V/44GdXMQKLEu3aSew1KOnPSMvOdOQL+1QyzrZMRhYSn7jNqLxz1JRM8AbfyyhJVo3g2jtX4AqUDNO2ifsYnWRXyLnGFCGLjlgMcOHgE8aHH8+OubLNOvQgtxiBtOJPlZghZCTBVZh4+PoVhad4zLHoD8nOF7wCF0Hog4HdQ+Os4PK2i9RUZML9aUsmSRWexGxxKPgrgfpOAVb8aDPCRZHgLejA9/DV7YkGNwDXGxg3DHobL6IgbHb0gDcgG0YbBLTZT6swAohJwusWbOa4ZSlufZnXGbQnxNcNaEJUb9O48jhKPm8FlqJ+4htPN+4b5bsZak4VNQuJpqoQuQZhMV0vkQkJJ37vXSvE46ig7PLII2CwJbukg/8gswKoXzgD8AZGRyzIwT4ALDdsJ1cx7TAMi3CLT7QQe0N+WuXZwgXsayujyF/TkbJz7txdF8UH0Yim4kmosTqrqO62nTGjiVbKK8fTDRxO5fVbsKRR4F5aZxVmUr+CAqrgInoGS2z9ehyjyLgxgyO9y3w5Gb0Hmzlfy+wM1iWbnOqwMpLltP1enM/hjCji/2Zo6z4OVD/6OZZCihF3IdoKNhBNPEVKmpys4+ipXUZ8GfkN76ELt45Me1zxQlisU8X3bZjNjq+5wF0lX1L71lKZsooXIM3ZTaeAO72wI7FCixLDzhVYJXM2I9uMdE5kaQ3y4QAyA/peZG3kcBdOM4LRBNPUVl7B+Ubzsygc5YgsmrjKGLxTxJLbEwtA34QGNjNUXawv+6x0x/mK4+jlw7PBt4K/BTY6qtH2c1Y4KpejvFm4FeYz0x8BT3j1mLYjkVjBZal23R8EYgm3onul9UZj1FWbLLx5clE48Uo9UWEd9D7C1czEEXJ74kkH0sJSku2U/XsUFoi14JzI0gJvW09IdzFguKvZcY5zzkHKAGuBC5CL3/Z5fL0eARdqLMn9AVWg/EZ/iSwCIgZttMbwtaL8MOYbT30d/Tn1RIiOhYry+r6UOi+jG443BHHGHBoOHPmeNtAdVXNhbjOl4CrMzRiM6i/I7IccR9l4XQbKJpNROvOheTbEfV2FPPIjIjYC+pe3OR3WTj9yOkPzwr6oEXWBaltEnqm5VzsnXN7jqMLgvaklc4vgH/LrDsd8lngGx7Y6Q1hE1i3oGcmTbEab2L2LB7S+WxQNPFjdFXgjhEWsqC464xDU1TUzcZxP4sO9s1kk8xaFI8iRMkbuJaSsY2nP8XiGdXV+TT0m42SMsRdfErNqt7xCvBt8pyfUFJ0OIPjBpl89LLYeLTgGoNeVh+NXnYcA+Rinbmbgd9285wbe3BOT1iBvu4FvWRH2ATW9UBntRkzwTPouEpLiOhcYMXilyJqdeenyncpm2ayQN/picXHIXwU1AeAIRke/RhK1iBOFUIVwxqfSZWxsHiFiKIyXoQTKQUpRU+hdzeW6nTsRPgOTU0/Y/GsoxkeOwwMRC85Dkttwzt4XggMbbf19cPZDPEAOrYtXcYCtUB/M+68wXZgJtnR9D1sAutt6OQSU2xA/28tIaLreKZo7RaQzupKbaaseHLmXeoBT20exLHm96Mzd95syMoR4GmUWguyDlhHafErhmzlJlV1A0nKRYjMQTEb4RJ037hMI0AU5Mc0bF7BkiWm22DkIn05VXS1bsPQ/9cRaPE2Aj1zVuiLp6fyAt27jswDqsy48gZN6CWk9YbtZIqwCaz5mI15SwDe9Pq1eEbXAisW/ySivt352TKe0mnbMu1Uj1kqDnMSi1DqfehpdNN30S8C60DWIbKO42oDb5uWDXeX/lNeP5iCxqkkmYZSM1AyG2EqJgvuKRpw1f+Bcx8LptQbs2PpKWdxIk5sOlCKGYGdDqOBl9I8dh7mBdZt6L6J2ULYBNZsYK3B8esBWyQ7ZHQtsKqeHUpL3i46i8NQ6jOUTv2mAb96T7R6CKrgOoSbgSvIbKxWV+wBngM2A8+h2EySzSwsftEj+8GivH4w+cfHI8k34zhTEZmGvlMbi/lUdoAkqCfA/R2Nx/9olwGzigg6G3IJ8G5gkIe23wqsTPPYeZgVWA8C7zE4vgnCJrDOB7YYHP9ldHKFJUSc/gsuWns/yK2d7K2mrPiizLpkgGjduYh7E4obgSk+eXEILbp2gryIjv3ZRUS9BMkd7N26JyuXqsrrB5PfOAo4C9S5KMYjMh4dOD0ef2YgBFgN8iBKPWSXckPBmcA3gfd7ZO9O4N40j52HOYG1BV1q45Ch8U0RNoF1JvCqwfEPkvk4YovPnF5gPV5XRNJNdHps0pkQsHYiXVNZdwHKfQe62vIFfrvThhZgN1qA7UVoQLEPRUPqeQMuDTg0kKSBiGqgUY7j9Ety1YSDvbZetb0vxw8ORvIGo5JDiFCIqMGIDMZRg0GGgBqOMBIdN3N26tF0YG/6KNYjPAjOMsqKdvrtjsUIn8abEgU/Azq7sWzPPMwIrMPopalNBsY2TdgEVj46Ds7UrLuL/p2Cnh1q6QbpvVliiScR5nYywucoLb4nk055xt+ePY/8vLcjXAXMBfr57VIvSaLQYktwgQPt9isUQ9/4SRiArpGUrRwAVqGkkuZkBW+d8S+/HbJ4wh/Ry4Ym6U7hx3mYEVi3AL8xMK4XhE1ggZ5FzHQWc1sGoBu7W0JCegKrMn49SnVSA0SepWzahRn0yR+qtvclefgKhAXAAqAYb2KELOmTRFgPqgKlKsl7dS0lJbZVSO4xGp3pZ/LmoDtBx/PIvMD6IfAfGR7TS8IosHaia8OZYgTwmsHxLR6TnoCoqsqj5YzN6JiaU3HdYhZOr82gX/6zsm4YDpfjuHMRuRzUTGzVa69xgU0IT+NQBXkxSifv9dspSyAwPYt1ANrM9nbNPDIrsNahE3OaMjim14RRYNVgtpTCeCA4WfmWXpP+DE209kMgP+1klO9RWvyJTDkVSCpqBhDhQlAX4aqLUFxEZ4LT0lNeBdkA6p+g1kDjWspmtV/mtFgArgMeMmyjH5BON4d5ZFZgHSW7xRWYr2nW03I49wJf6uG5T2C2X+BFQLXB8YPCv2OyHA/8Dl230nfSF1jV1fk0FDyP7l/Wnn3kDRyVc61lYs8Nh5YLQYoRVYReVpxCbrYX6Q4twHYUtQg1uGoDeS0bmH9BunWHLJbR6Dp0Jjk3TRvzMF8Hy5IZ7gE+18NzHwHekUFf2rMIqDA4flA4iNmSK92pYWeU9KdZZ81qpjLxHVSHqcvDaD5yLfCHjHmWDejlqmhq0ywVhytqx9KipuC4bwY1AeHNqDea65pU7kHjVWAbqG0ongfZBDzHPmczS4qO++2cJavZhW7IfIZBG4MNjm3JPkwXkTb5Xg4SjXhb0843ureOnT/wfloOfwbd1uJklHwIvwRWVVUehwf1CUQRyaXKRQfgvnDKvmV1fRjWfB7kjUIYg8hoHDkHYQxKjUI4G/0hK/DW6R6xD5HdKPUSIrtx1EsIe0B2otR2Is62wDZNjiWm8dTU2tT/ypK9xIG3GBw/m/spWjLP64bHH254/KBwzG8HvKJ7AqtkbCPR+PdBdVSWYR6P10zkLdNNVrvtxK+SFmLxG4jWbaKs6FnP7aeLnrXZmto6p6puIK4ajrgjUO4ZJNVwUEPAHYijBiPSD5wBIENR9ENS5SVUu7gHYSC6fgup/YfQy3Ot+48DR0BaUM4hRA4DTSh1ANc9CuoISvYhkb2pmlz7wN3L0KZ9Wdn4etmyCIWT7wT5sxVXoWC74fGtwLK05WXD4+eKwMr2+MK06X4mRl7kh7S4H0cXmmyLIul8Arg9E451m6eK/8DltX8hVvsskQH3ZHU8mJ75OQzs8NuV0FCRGIPDbxDnO5QVBS1TZybmgoJ3oTsIhJHeF9jtmmyuEWfJPLsMj+9X302vMT2DFZiOKN0XWCVFh4nVfhmRH3Ww9/3EEkt9aU2yVLmsrHs/EbealsM3EkvcTmlx9PQnWkJPLP4OhAcQ7mdB0aN+u9MB38TcUtfPgQ8ZGttvTLePsTNYlraYDpwebXj8oGC6dmFg4nt71gA58tpP0Q2N29MXVz7cK496w6KifTjOu4HRCBVEE7+iImGyMJwlyMQSZxFN/BZRjwBx8l//wmnPEfGjuKzJC06YRYLpGD/btsTSFtMzWB1l6IcR09ekwCxB9kxglZS0IHJ3h/uUuoPVq/1rOTO/6BkUd6BLUNyCw1ZiiXupqBnhm08Wb1m2LEJl4jb0TcCN6JIQ706r6rtSfnypmoxny/b2T11heqkhMHfClkCwG7PLT7kyGWBaYAXmc9szgQVQVvwwwjMd7BnBkcE39dylDFBa/ADwxdRPfRE+juNsI1b7dVbETRfAs/hJZc18CidvQPEThEJgL65c5cuydfqYFFj5pz8kazEdIxWYO2FLIGhBl54xxTByo4aiyd9RMHs97RY9F1hKCcinO94p/82yOn8DRMuKl6L4eZtXBiDyGQrUNirjX6BqS67UHMkNKmsvI5qIopwYJ9pZHAX3bSycFvQgb5N3XGEO1DYtHgNzJ2wJDKbjsM4zPL7fRDBb7ytQn9meCyyABdOeROThDvaMZVjy33o1diaIvH47sKLdq0NR6ou0HN9BZeI+KuKT/HDNkiEq4nO1sJKngNI2e1pQ3EDZ9LV+udYNTM6UZENNtZ7S3/D4dgbL0h7TcVhFhsf3mzMwW2zb/1qYbeidwAJw8z5GR+nSou6ivN7fi3tJSQuNTTeA/LODvf1RfBhHbSKaWEms7jrfZ90s6VFdnU80/l6iiWdw1JOcLKwABMVtlBa3F9dBxeQX+TCDY/uN6bpBgbobtgSCfxkef6rh8f1mrOHxTReD7Ra9F1iLpuwGvtzBnjHkH/M/PXzxrKPkJRd1IrJAB8MvRNyHKHRfJJr4JtHEZC9dtKRJVc1ooom7aCjYDup36Oao7RHg06k4vGzBZM22MBcvNL3MbxuNW9pjOtyg2PD4fmP693vN8PjdovcCCyDv9XuBxKk71Od8zShspWTGflyZz+kbso4APgVsIpqoI5pYSuWmCeYdtHRKeX0BFbWLidUuo8XZDnwFGNXJ0YJwJ2XF/+uhh5nA5AzWmWTqcx48TKa1CwG7G7YEgk2Gx59heHy/mW54/L2Gx+8WmbnwlpS0gPMRTq0bM5KjA/8rIzZ6y8LpR8hz3g48keYZU4C7UcmtRONrqYx/hoqasE/fBoOq7X1Tour/yG/cgyOPInI9XRfGTSLyARYUf88rNzOIyXIDBYS3gKHJm58GApSNZAkMpgXWm4Dxhm34SYnh8UM4gwVQVvQU8MtTXhf1GVZt7GzGwVtKig7T2HQ1QjcrvKvZKPV1HCdBrHY70cSPiNUtCsTsXFhYES+kMn490cSDtBx+NSWq3g8MTePsZuC9LJj2S6M+msP0ReF8w+P7wQjMLhEG6kJtCQx7Mf/eaB9TGhbGoCcuTBKoGazut8rpkqY7oWA+J0/dD8CN3APckllbPWTxrKOU1y8mv/EBdBHK7iFyHvARxP0IRwY1Ea19BtwnUTxJUtawcPqRTLscSsrrC8hvvBQoRShDMZOeZZc04qolLJy6PMMeeskew+NfCMQM2/CaOYbHN1nvyJLdPIfZvoFXA/cbHN8vvNAAL3pgI20y3xaksmY+yom2G1twnEuYX9RRYVJ/EFHEar8A3E3m/g7NCOtQ8k8U60mynjXFW1mq3AyNn71U1IyAyGwcmQ3qEpBL6X2a/W5c51oWFnWWwJAtzAWeNDj+o8A1Bsf3g/8F/tPg+A8BS9I89nzDvmQjtxocW4Cf9fDclcAjvbR/H2CyJVwS/Z4KWlP63tAH2IL5Ol+LgArDNtLGTN+1aO0PQD7a7tU1lE69zKdWJJ1TWfselPwCc+X7DwEbELUehzhJtZk+x7dQMmO/IXv+IqJYufFN9IlMxlVFIBeCmg2My7CldTjJa5l/genCf15wPvriY4qDwFmYzVb0EoX+8jnPoI2vAv9jcPywY/I6nyTjqy/d4mOA6VjP+4HbDNvwkk8A3/XAzngCJEzNCKzl1f3pW7ABmHiyNfkwpdN+asRmb1iVmIPLI+i4Dq94BdgMagsiW3HkBXBeosXZxdrJrwR61mupOFxRMxIib0IYgyvnodQU9Pr6ZIy3e1C/Z8DBDzJnjuledF4xAC3ETTaavg74k8HxvaQEeNywjZuB3xq2EWbCLLAuBryYNb8J+J0HdkxzPvAMMMSwnePoVRGT/SK7hbkLekV8Jo5aw8ntLA7iJKcEctZheXV/+hUsRng38Fb8rYDdjG4s+iKwC+RlhP0o1YCwH1H7cVQDbst+8qSBY85RjkaOsKSoZ4URo9VDyBuUT/LYMJL5hUQoRJLDEKcQRSFCIUrOQme4jAHOwZ8edy7IXZQWfyNwM6G9Zxtmi/A9DVxucHwviQHzDdu4CKg2bCPMhFlg5aOzTE33DWxCz/zcZ9iOSc4BVgFedEx5DvNB9N3C5B0zRBN3oesWteXPlBW/y6jd3hKtHoL0uRacJSgpwXz370xzBJWqQi0c5kS6+SBU6sIkDMZsy4IMoraCPITrPsjC6bV+e2OIR4HFhm28k97Hn/jNTcBvDNsQ9N32IcN2wkyYBRZ4I/JbeQT4LLDVI3uZYi56FniMR/aWATd4ZCstzAosEcWq2j8hXHvy67yTBcXZcaGvqBlARJWBuhrhamCk3y7lCAkUy3Gdh1hQtNFvZzzgq8DnDNvYB1wC1Bu2Y4orgMeAQYbt/AvzLT3CTtgF1lJ0gpRXuOgl/h8BTxGgZbB2KGAe8B/Q7nvfPB8Hvu+xzS4xK7AAqp4dSkteNScVT5OXaWIqb5vWYNx+JhFRRGtngswH50qUXI75i32ucBiIoeRvJNXfWFgcqHRbD3g38AcP7OwF/h09Y5Yty6z5wJ3oLzUvas/9GnifB3bCTNgFVil0t55ixngd/fmNAuuAF3zyo5Uz0WVTFqDDa/y6OQncsr55gQUQS0xDWMPJafl/oqz4Ok/sm6KqKo/jI2biuHOBK4FLCXdz3UxyAHga5B+I8w/2q3U9jiELB+cAu/DqMwnPAr8H/kpwZ7Qmo0sl3Ir++3jFB4Fs6vWonsUAAAf7SURBVGUZRMIusAYA+wPgB+iZ6fXoz/G/gO2px1fRsWK9XeruhxZRZ6W2saltArr1jVdLgF1xBF2UusVvR9ri1cUcYvEbEXVyVo5wCwuKTcdTeEtFzViUmgXMQjkzQWaSXjXyMHMcqEV4FkdtoIWnWVuUCHSmpD/E8afZ66voO+EE+iJdD7yEvlM+6IH9/uiL9Cj07z8LuAz/7oQnAM/7ZDsshF1ggc5kNd36JRO0oEXYYbQQab2RPZ76uT86qSsfGJjaV5h6HICuYRV0VhHACvjeCSyAaPw7oO5s88pBXPcCFk7f7qkfXiKieLx2HC6TECahZCJKTUSYhLdlIbwgCewA6hG24BBHnA00UJfjs1PpYrp4Zk9oRi8rtt9c9Jdo23pubRMqWokAg1PPh6KvOQPRF/BWUVVIcHgRs02kc4VcEFhe1MOypMdH0fFpgcJbgaWrp/8KXWMm9Rqr2f/cXJYsCWrQnjlWxAspkIngnAsyCjgX5YzCbX3O2QTjQtLKcWAPwi4UuxFeAnaCU48kt3Igss0KqV7hZ1yHRfNtIBgN6rObXBBYY9BLcZnr6WvpCUn0jdorfjvSHm8FFrT2oPsbJ02tylcom/Z5z30JOsuWRRg67SzykoW0yFAcKcRlKIpClAzV9amcQt6oxyJ9kdYgYFWAktaYtzxOWpuWA0jr8pwcRTlNuO5RHLUf1AFwD4A6gKj9KPcALc5r5MkeSosD9wYOGQ66Htab/HYkh7kAqPHbiRCQCwILoBIo89uJHCdGQP8H3gssgPL6weQ3Pom+mAEIwruypnSDxWKOu9HZchbv2QQU+e1ESMgVgXU9uv6SxT8Cm5Tij8ACqNx8Dqp5NSfu1vfjMIv5xX6nnFosfjIanQUUlC+QXOJO4F6/nQgJuSKw8tF9RG3dNH/Yg+5zG8i2af6tHS+Y9DI4czmRIj4Ul0dYXt2/q9MslpCzi3D0H8s2dqMb7Fos3aEZ+IbfTuQw3yKg4gr8Ds4rK9qJ5M9D9xACKKZfgb3IWXKdz6HTpy3e8TUCfKG2BJoHgFzoNhE0Xgd+6rcTXeF/9sOCSS+TdC5H1+EB4SYqE6ZbhlgsQeZl4Jt+O5FDbAN+5rcTlqylBbidgBW5zAE+hS4NE1j8i8Fqz4p4IQX8DdRsQFDqvZROfdBvtywWn+gL/ANddNNijmZ0F4Y1fjsSMnIlBqstH8fG8HnFX/C+12G38X8Gq5W3TWsgb9A84BeAQuRXxGqzoUquxWKCRuCdwGt+OxJyPo8VV5bM8D10TJDFLLuBD/ntRPYSi99KNNFENPE6sY3n++2OxeIjJeh4LLFbxreHCNJNZrgw+X8L+lLc5znR6cBumd0OADPT/1dYOqYiPpdoYg/RxPNUbvay0avFEjQuQc9k+X1xC9O2DJ1ibzGDyf9d0AUWwGJ0Sym/3+dh2l5DXwuzhuDEYHXEqo2jEOfXiDqbvD5XUjLxdb9d8hURRXTLSGgZCzIWGA7yMg67cPvsYPXEPWk3UF5e3Z8B/cbiumMRNRLlvgZqG33zt3P5pN52X7dknvOBPwFT/XYky2kCvgp8BX3RtpjB5N82qDFY7TkL+D6wxG9HQkAUuBXdmihrCLbAAlL9C28DboCmayibdcBvlzyhassZJI/PQLgAxTSEacBEdNfzzmhGeAXFPpBjoNoKpQiKYQjD0M11B3YyBuj01zogjqg4DjUcL4hz1YSmXv9elt6QB9wBfBkY5LMv2ciTwEfQFdstZrEC6wSXo8uAXOG3I1nIPnRv0F+ShTdEwRdYrazcNJJIyyIaj/+RxbOO+u1OxonFx+EyF9TlKC5Di6kg/X8agWqUepokT+M0/j1nxG7wOBedovw+rNA6HYLuVfYDYLnPvuQSVmCdylzgY8A7gIjPvgSdf6GTBh4AsnZFJUhf4OlRXZ3PrFnNfrvRa8rrC8hrvBIlbwXnKpBsC+ZvBlaDrMSVFSycXuu3QznIEOAD6IyayT77EjR2Aw8DP0K3MrF4ixVYnTMKeA9wIyf68Vp0od9K4PfAn8mOWLsuyT6BFRbK6wuINC0gws2IXAP08dulHrAbpX6Ncn7C/Ck7/HYmx5kIXJPaLiH3suNcYAOwIrVtIAuXFEKEFVjpMRa4OrXNAQb7647n7EbHV/0VWAmEanXKCqwgUL7hTPLzrwOuQqflD/DZo67YCzyGqx7mwKZylixJ+u2Q5RQGAdOBy9DxH5cAZ/jqUebZDaxvs61GvzctwcAKrO7jAJOA2cDF6M/tVMLzux4D4sDa1LYGCPWNuRVYQaO8voA+x64AtQhXFqFUkd8ugdoK8iiuLOfA5qetqMpKxqAzESekHiei755HAkN99KszDqFF1G7gBeD5No/PAwf9c82SBlGDY7vAQoPjB4n+6M/rOGB86rH1+bkEq9RIEng1tb0I1Ke2ranHF8mxWWUrsIJOVd3ZNHMxyr0Y4WIU09Dpv6bYC8RBNoLzNJK3hgWTXjZoz+I/fYGzgXOAEaltEDrTdFBqG5r6uXUpW9G1MEtysghq/fkQunDqEWB/m+evoy/Mu9H1bmzjZYula/KAM4Fhbbbh7X4e1ub4oZz4zm/7vC0tnBxU3vq5PYDu+3cktX9/6ud96N6pr6A/v+mVCcoRrMDKRlbEC+mnJiNMRhgN6hyUjEQYCQxD6IPDAIR+6C9POPHFth9oQNR+lOwGdiKyA4nsRNRzLJqy26ffymKxWCyW0PD/VpxGLdL58EoAAAAASUVORK5CYII=';

            doc.setFontSize(12);
            doc.text(contador, 40, $scope.res('BRIEFING_OPERACIONAL'));

            doc.setFontSize(11);
            doc.text(contador, 60, briefingSelecionado.data + ' - ' + $scope.res('BOLETIM') + ' ' + briefingSelecionado.hora);

            converterUrlParaBase64($rootScope.ParametrosS4C.logoBriefieng, function (img, base64Img) {
                doc.addImage(base64Img, 'PNG', 472.43, 30, 40, 40);
            });


            contador += 50; // 80
            doc.line(30, contador, 560, contador);

            if (briefingSelecionado.departamentos.length > 0) {
                _.forEach(briefingSelecionado.departamentos, function (departamento) {
                    if (contador >= pageHeight) {
                        doc.addPage();
                        pageHeight += 782;
                        contador = 30;
                    }
                    if (departamento.nome != null && departamento.ultimasRespostas != null && departamento.ultimasRespostas.length > 0) {
                        doc.setFont('helvetica');
                        doc.setFontSize(12);
                        doc.setFontType('bold');
                        contador += 30; // 120

                        doc.text(30, contador, departamento.nome);

                        _.forEach(departamento.ultimasRespostas, function (resposta) {
                            doc.setFont('helvetica');
                            doc.setFontSize(12);
                            doc.setFontType('normal');
                            contador += 30;
                            if (contador >= pageHeight) {
                                doc.addPage();
                                pageHeight += 782;
                                contador = 30;
                            }
                            if (resposta.Usuario != null) {
                                doc.text(35, contador, resposta.Usuario.nome + ' (' + $scope.res('COMUM_COORDENADOR') + ') - ' + moment(resposta.data).format('HH:mm'));
                            }

                            doc.setFont('helvetica');
                            doc.setFontSize(10);
                            doc.setFontType('normal');
                            contador += 25;
                            if (contador >= pageHeight) {
                                doc.addPage();
                                pageHeight += 782;
                                contador = 30;
                            }
                            if (resposta.texto != null) {
                                doc.text(35, contador, resposta.texto);
                                var lines = resposta.texto.split("\n");
                                if (lines.length > 1) {
                                    contador += 10 * lines.length;
                                }
                            }

                            _.forEach(briefingSelecionado.comentarios, function (comentario) {
                                if (comentario.text != null && comentario.departamentoId == departamento.id && comentario.usuarioId == resposta.Usuario.id) {
                                    contador += 25;

                                    doc.setFont('helvetica');
                                    doc.setFontSize(11);
                                    doc.setFontType('italic');

                                    doc.text(30, contador, $scope.res('COMUM_COMENTARIOS'));

                                    contador += 25;

                                    if (contador >= pageHeight) {
                                        doc.addPage();
                                        pageHeight += 782;
                                        contador = 30;
                                    }
                                    doc.setFont('helvetica');
                                    doc.setFontSize(10);
                                    doc.setFontType('normal');

                                    doc.text(35, contador, comentario.text);
                                }
                            });
                        });
                    }
                });
            }

            if (!briefingSelecionado.fechadopor) {
                doc.setFont('helvetica');
                doc.setFontSize(12);
                doc.setFontType('bold');
                contador += 40; // 120
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(30, contador, $scope.res('BRIEFING_FECHADO_ELETRONICAMENTE'));
            }

            if (briefingSelecionado.texto) {
                doc.setFont('helvetica');
                doc.setFontSize(12);
                doc.setFontType('italic');
                contador += 30; // 225
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(30, contador, $scope.res('COMUM_PARTICIPANTES'));

                doc.setFont('helvetica');
                doc.setFontSize(10);
                doc.setFontType('normal');
                contador += 20; // 245
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(35, contador, briefingSelecionado.texto);
            }

            if (briefingSelecionado.conclusao) {
                doc.setFont('helvetica');
                doc.setFontSize(12);
                doc.setFontType('italic');
                contador += 30;
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(30, contador, $scope.res('COMUM_CONCLUSAO'));

                contador += 20;
                linhas = doc.setFont('helvetica')
                    .setFontSize(10)
                    .setFontType('normal')
                    .splitTextToSize(briefingSelecionado.conclusao, 535)

                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(35, contador + 10 / 72, linhas);
                contador += linhas.length * 10;
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
            }

            if (briefingSelecionado.imagem) {
                doc.setFont('helvetica');
                doc.setFontSize(12);
                doc.setFontType('bold');
                contador += 40;
                if (contador >= pageHeight) {
                    doc.addPage();
                    pageHeight += 782;
                    contador = 30;
                }
                doc.text(30, contador, $scope.res('COMUM_IMAGEM'));

                converterUrlParaBase64(briefingSelecionado.imagem, function (img, base64Img) {
                    contador += 30;
                    if (contador >= pageHeight) {
                        doc.addPage();
                        pageHeight += 782;
                        contador = 30;
                    }
                    doc.addImage(base64Img, 'PNG', margem, contador, img.width, img.height);

                    contador += img.height;
                });
            }

            setTimeout(function () {
                if (briefingSelecionado.fechadopor) {
                    doc.setFont('helvetica');
                    doc.setFontSize(12);
                    doc.setFontType('normal');
                    contador += 40;
                    if (contador >= pageHeight) {
                        doc.addPage();
                        pageHeight += 782;
                        contador = 30;
                    }
                    doc.text(30, contador, replaceStrings(briefingSelecionado.fechadopor));
                }
            }, 2900);
            setTimeout(function () {
                doc.save('Briefing ' + moment().format('DD/MM/YYYY HH:mm:ss'));
            }, 3000);

        }

       /**
        * Substitui textos no briefing 
        *
        * @method replaceStrings
		*        
        * @param fechadoPor {String} Nome da pessoa que fechou o briefing
		*               
        */  
        function replaceStrings(fechadoPor) {
            fechadoPor = fechadoPor.replace("Relator:", $scope.res('COMUM_RELATOR') + ':');
            fechadoPor = fechadoPor.replace("às", $scope.res('COMUM_AS'));
            return fechadoPor;
        }

       /**
        * Verifica se o menu camada já foi carregado 
        *
        * @method verificaImagemCarregada
		*        
		*               
        */  
        function verificaImagemCarregada() {
            if (!CamadasService.isLoaded) {
                setTimeout(function () {
                    verificaImagemCarregada();
                }, 1000);
            } else {
                return;
            }
        }

        angular.extend($scope, {
            gerarPDF: gerarPDF,
            toggleTemplate: false
        });
    }


    ConsultaBriefing.$inject = [
        'Briefing',
        'Departamento',
        '$rootScope',
        'Base'
    ];

    function ConsultaBriefing(Briefing, Departamento, $rootScope, Base) {

        return {
            restrict: 'EA',
            templateUrl: 'app/directives/briefing/consulta/consulta.html',
            replace: true,
            scope: {},
            controller: ConsultaBriefingCtrl,
            link: function ($scope, $elem) {
                $scope.res = $scope.$root.res;
                angular.extend($scope, {
                    consulta: {
                        data: moment().format('DD/MM/YYYY')
                    }
                });

                obterBriefings(moment());

		       /**
		        * Obtem uma lista de briefings baseado em um período 
		        *
		        * @method obterBriefings
				*        
		        * @param data {Object} Perído para ser filtrado
				*               
		        */   
                function obterBriefings(data) {
                    Briefing.getBriefingsByFiltro({
                        where: {
                            status: 'FECHADO',
                            data: {
                                $between: [
                                    moment(data).startOf('day'),
                                    moment(data).endOf('day')
                                ]
                            }
                        },
                        include: [{
                            model: 'RespostaBriefing',
                            'as': 'Respostas',
                            include: [{
                                model: 'Usuario',
                                include: [{
                                    model: 'Departamento'
                                }, {
                                    model: 'Perfil',
                                    include: [{
                                        model: 'PermissaoAcesso'
                                    }]
                                }]
                            }]
                        }, 'BriefingConsolidadoComentario']
                    }).then(function (briefings) {

                        _.each(briefings, function (briefing) {
                            briefing._departamentos = _.chain(briefing.Respostas)
                                .map('Usuario.Departamento')
                                .uniqBy('id')
                                .value();
                        });

                        briefings = _.sortBy(briefings, function (briefing) {
                            return moment().diff(moment(briefing.data));
                        });

                        $scope.briefings = briefings
                    })
                }

                var language;
                if ($scope.res("COMUM_LOCALE") == "pt-BR") {
                    language = 'pt-BR';
                } else {
                    language = 'en';
                }
                var dateTimepicker = $elem.find('#briefingDatetimepicker');
                dateTimepicker.datetimepicker({
                    theme: 'dark',
                    timepicker: false,
                    format: 'd/m/Y',
                    lang: language,
                    closeOnDateSelect: true,
                    onChangeDateTime: function (data) {
                        obterBriefings(data);
                    }
                });
            }
        };
    }
}());