{"id":1902,"date":"2024-07-08T08:27:36","date_gmt":"2024-07-08T08:27:36","guid":{"rendered":"https:\/\/www.elitek.si\/come-abbiamo-ottimizzato-la-velocita-del-negozio-online-magento\/"},"modified":"2024-12-31T11:17:14","modified_gmt":"2024-12-31T11:17:14","slug":"come-abbiamo-ottimizzato-la-velocita-del-negozio-online-magento","status":"publish","type":"post","link":"https:\/\/www.elitek.si\/it\/come-abbiamo-ottimizzato-la-velocita-del-negozio-online-magento\/","title":{"rendered":"Come abbiamo ottimizzato la velocit\u00e0 del negozio online Magento del nostro cliente"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed-1024x510.png\" alt=\"\" class=\"wp-image-1940\" style=\"width:100%;height:auto;margin-bottom: 30px;\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed-1024x510.png 1024w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed-300x150.png 300w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed-768x383.png 768w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\n<p>Un cliente si \u00e8 rivolto a noi con gravi problemi di velocit\u00e0 del negozio online Magento.<\/p>\n\n<p>Il negozio online \u00e8 stato impostato da un altro esecutore che non ha assicurato una realizzazione di qualit\u00e0, ossia senza le conoscenze sufficienti in materia di ottimizzazione della velocit\u00e0 di funzionamento dell\u2019applicazione.<\/p>\n\n<h2 class=\"wp-block-heading\">Procedura:<\/h2>\n\n<p>Abbiamo ottenuto tutti gli accessi, sia al codice del software che al database del negozio online. Abbiamo configurato il negozio nei nostri ambienti, dove abbiamo potuto analizzare lo stato attuale dell\u2019applicazione.<\/p>\n\n<p>La prima cosa che abbiamo notato \u00e8 che il cliente possedeva una versione obsoleta della piattaforma Magento. Per molte versioni, il passaggio pu\u00f2 essere un processo piuttosto impegnativo, anche perch\u00e9 \u00e8 spesso necessario l\u2019aggiornamento della versione PHP, il che incide anche sugli altri plugin installati da terzi. Con un po\u2019 di impegno siamo riusciti ad aggiornare il negozio Magento, alcuni plugin installati e la versione PHP.<\/p>\n\n<p>In tal modo abbiamo inoltre assicurato una migliore sicurezza del negozio online.<\/p>\n\n<p>Una volta completato l\u2019aggiornamento, abbiamo iniziato a ottimizzare la velocit\u00e0. Per risolvere i problemi di performance delle applicazioni e della piattaforma Magento, utilizziamo lo strumento BlackFire.io. Questo strumento consente una profilazione precisa di ogni processo (request) eseguito nel negozio online, sia che si tratti del tempo di esecuzione del codice PHP che dell\u2019esecuzione di richieste (query) al database.<\/p>\n\n<p>Con questo strumento abbiamo verificato tutte le pagine principali del negozio online \u2013 la prima pagina, la pagina della categoria, la pagina del prodotto, il carrello e il checkout.<\/p>\n\n<p>Alla fine, abbiamo anche eseguito una revisione delle query critiche al database.<\/p>\n\n<h2 class=\"wp-block-heading\">Prima pagina<\/h2>\n\n<p>Analizzando la prima pagina, abbiamo scoperto che il collo di bottiglia pi\u00f9 grande \u00e8 il file \u201cmobilemenu.phtml\u201d, composto dalla navigazione mobile dalle categorie Magento e dai collegamenti definiti manualmente. Per recuperare le categorie da Magento, vengono effettuate 3 query identiche al database utilizzando un left join sulla tabella core_url_rewrite. Questo particolare left join non utilizza indici definiti, ma esegue un range scan dell\u2019intera tabella, il che non \u00e8 ottimale e rallenta molto la query.<\/p>\n\n<p>Allo stesso modo, la logica del file mobilemenu.phtml si esegue ogni volta che la pagina viene caricata, ovvero ad ogni request si carica il blocco che esegue il rendering del template mobilemenu.phtml.<\/p>\n\n<p>Tale blocco non utilizza la \u201cblock cache\u201d, seppure lo potrebbe. Nella visualizzazione della navigazione (nome della categoria e URL), le categorie non cambiano cos\u00ec frequentemente, quindi \u00e8 consigliabile memorizzarle nella \u201cblock cache\u201d. Inserendo uno specifico blocco (.phtml) nella \u201cblock cache\u201d, tale viene eseguito una sola volta, poi viene conservato in memoria (redis) fino al successivo. Ci\u00f2 rende tutti i request successivi notevolmente pi\u00f9 veloci.<\/p>\n\n<p>Con l\u2019ottimizzazione delle query e l\u2019utilizzo della \u201cblock cache\u201d, abbiamo ridotto il tempo di caricamento della prima pagina fino al 98 %.&#13;\nTTFB (Time to first byte) della prima pagina prima dell\u2019ottimizzazione: 16 secondi&#13;\nTTFB dopo l\u2019ottimizzazione: 0.22 secondi&#13;\n<\/p>\n\n<p>TTFB (Time to first byte) della prima pagina prima dell\u2019ottimizzazione: 16 secondi&#13;\nTTFB dopo l\u2019ottimizzazione: 0.22 secondi&#13;\n<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"64\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-5.png\" alt=\"\" class=\"wp-image-1409\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-5.png 667w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-5-300x29.png 300w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"671\" height=\"64\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-6.png\" alt=\"\" class=\"wp-image-1412\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-6.png 671w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-6-300x29.png 300w\" sizes=\"auto, (max-width: 671px) 100vw, 671px\" \/><\/figure>\n\n<div class=\"wp-block-cover\" style=\"min-height:150px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient\" style=\"background:linear-gradient(135deg,rgb(154,206,241) 0%,rgb(60,111,143) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p class=\"has-text-align-left\">Se avete anche Voi problemi di velocit\u00e0 del Vostro negozio online, <strong>Vi invitiamo a contattarci.<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-5590e8cb wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-medium-font-size is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.elitek.si\/it\/contattateci\/\" style=\"border-radius:26px\">Contattaci<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n<h2 class=\"wp-block-heading\">Pagina della categoria<\/h2>\n\n<p>Analizzando l\u2019esecuzione della pagina delle categorie, abbiamo riscontrato problemi anche nel file \u201cmobilemenu.phtml\u201d che viene eseguito su tutte le pagine.<\/p>\n\n<p>Gi\u00e0 con la precedente ottimizzazione di questo file, abbiamo notevolmente accelerato le prestazioni nella pagina delle categorie.<\/p>\n\n<p>Da 15,8 secondi abbiamo accelerato il tempo di esecuzione della categoria a 0,86 secondi.<\/p>\n\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAApcAAABACAYAAABPyFwvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADUuSURBVHhe7Z0HlF1V1cf3a1MzM5mUKZn0PgkEBSFBioFQBAFBEBVRjL2XZW+fbalruWxYsSsoSBRFQQhdBAIBQksI6T2TyfTeXvvO78w7cPPyZua9yZvJBPY\/62buu\/fcc0\/d+3\/22edcX9xAFAqFQqFQKBSKLMCf+KtQKBQKhUKhUBwxlFwqFAqFQqFQKLIGOy1+0kknJX4qFAqFQqFQKBTDh1ouFQqFQqFQKBRZg5JLhUKhUCgUCkXWoORSoVAoFAqFQpE1KLlUKBQKhUKhUGQNSi4VCoVCoVAoFFmDkkuFQqFQKBQKRdag5FKhUCgUCoVCkTUouVQoFAqFQqFQZA2jsol6bm6ujB8\/XpYtWyYLFy6U0tJSCQQCMnPmTMnPz5dIJCIdHR2yb98+G37Hjh2yadMm2bx5sxw8eNBeUygUCoVCoVCMfYwouYRIVldXWxI5YcIEmTJliv2bl5cnfr9fSkpKJBgMSiwWk76+Pmlvb7fPtba2SmNjozQ1NUlNTY1s3LhRtm3bJvv377f3FQqFQqFQKBRjE1knl1gisVJCJJcuXSrEPWfOHCkqKkqEyAyQzHXr1smzzz5rrZl79uyRtrY2a+1UKBQKhUKhUIwtZJ1cYqWEVF599dVSXl5up7+zga6uLmu5vO666yzZdFZOhUKhUCgUCsXYQVbJ5VVXXSXnnHOOHH\/88XbaO9swSbXH6tWr5Y477pBHH300cUehUCgUCoVCMRZwxAwQyyQLdK655ho577zzZNasWekRy1hMoi3NEo9GExeGhs\/ns3FDht\/4xjfKJZdcYqfhua5QKBQKhUKRCqzvwGWPIxQKJa4qRgpHbLmsqKiQE044Qd75znfaKXEW66SDeG+vdDz4gASo6KqpEiyvEJ+p\/HTR0NAgL7zwgtxyyy2ydu1auyBIoVAoXm4o9eXKFF+hjDd\/weZYi7TF+6RP0h+YKxSvVGCQKi4utqQSQxhoaWmxB4uHWVCsyD6OyHKZk5MjCxYskEsvvdSuDE+XWIJYb4+033GbtN6ySrqeWCvR1hbmvRN3h8akSZPk1a9+tVxxxRW2wTAqUSgUipcLfOZf0Ijouf4SuSA0U96ds8ge1f5SQzRz7D2\/CZMMruRIwPzTGR3FKxsQS2Y3p02bJscdd5wsWrTIHpzPmDHD3hsJFz6FSODrBr\/+9a8TPzMD09IQy1NOOSVxJX1guex84D7pe2Gj9G7cIOHduyT\/NaeIP5TD\/Hci1OCA3E6fPl0KCwulublZ98RUKBQvC4QMbcRSWR0olcuDc2SWv1gKDJ3k+kxzHvIFLIsMS0y65aWdMyCbBb6QrAhNNVfj0hzvTdxRKF5ZwOCEEer000+XqqoqSyQd2Hube\/AHtjxk5lMtmNnFsMnliSeeaP0eWbwDycsE8UhEos1N0vKn30usp0dMzUq0rdUSzNzqxeIzFe\/LYDRRVlZmV49DMDkUCoXiWAOWRojj6YEpcl5wuj1eFZgsZf4Ca4nEkglyDLGs8BXK4sAEOSlQJhXmPuNxiGa+LyhXhubJskCFTPLlGTrqk73xDvucYvjAR4+p1blz51oSEo1G7TEUWA\/ANnxYyTCC8Ew4HE7cVYwUmM1k\/cfixYtl3Lhx1jrJjjN8oAWXOsglhyOg\/GV7w+7u7kQMiiPFsMnlO97xDnnVq14lEydOTFxJH9HGBund+Lx03Ht3\/1Q4IwYIpiGcObNmS6CoWPymI6YLRiSsIu\/s7LR+mAqFQnGsgOltiOAiQxZfG6yUxf4J1lJZbkgjZLEjHpGmeI\/Ux7sTlkisk0Ep8eXKBHOMk5CUmueLfCEbPs8cEE\/u55rzPkM6D8a7+l+myBgQS\/QcBJH9m3H\/Qt\/09vYOSTBZ8Dp79mxrOYNcAjWAjBwo78rKSpk6dar9y0dbqCP2y+YLgGxniJ+lI\/jUZUFBga1jDkdCqV\/FkSFjcgnDp5N87nOfG5avI6vDwzu2S+f\/\/it927YkrhoYghk3owZ\/fqGETAcOlpUnbqQHRoeMPJ544gld3KNQKI4JMI09yZ9vieXpwSlyaqBCxvlyJGIIYYv0Sp0hhbvi7bIj3ia7Ym2yP94pPeZut0TN3aj5F5NSf57M8BdJmYkHq+bOeKss8U+y5BLCWeLPladjDSZk3PxTZALICgtBICtYLbGC8WU5LJJYuTgGIyLoxyVLllhy6tYkuM8cK7IH6gNySF3NmzfPknkszXACFu7s2rVLdu\/ebYkl5JGZTu5hmGLmFU5D3fLb3aNelWQOHxmTy8mTJ8tpp50mb3jDGzImliBG5T7+mLT\/+1aJhw8ngZEDNZK7cJHkzp2XuJIeMHEzXUHD2LLFQ1oVCoVijAL\/yDeGZsuKwDSZ7S+21\/bGOuSRWK3cGtkh\/4hslyeiB2VDrNGuEud4MlonD0Vr7F+IZ5mvwJJIrJfT\/ONkcWCiFJrfTJMHfX6Z7isyzzdJlyGlusI8M0BWcP3Cagl5AVi3MGZgXKmvr7fGjIFICOSUXVQgLVjQmF1Tcpl9UL5wkzPOOMNaKyGMEETWYWBwqqurO8ToxD2I5oEDB+xggech\/9Qrfph8BZDw6sIwfGRMLlkd\/oEPfMD6KWSKaFentK66UTruv1eiDfWJq4ciHglLzvQZEigrk0DJ+MTV9ADZxf\/ytttuS1wZ+\/D7A3bUpXt1KhSvHOBByRT2R3KWyGL\/REMOc6Td0MFbDJm8PbJTnjNkkqlwrI2gUEI2DM+4BTxMdzeaME\/F6qU23mVkiMgkn1GSJvbWeJ88FKuRB6L7ZUu8RZ6IHJQeQyzVDpMe0CUQDQwpkEhHLB0gmBAYtuJjmhsSkmqKXMnlyAMr5fz586W6utrWCboU0o+R6fnnn5eenh57jYECK8WZLqe+cGuAQNbW1tow1Lnzz+TrgpwzaIBoKjJHRvtc0kHobP\/3f\/\/3ov9IJmi783bpWH2H9G3dIrHugX2Aii+7QorOv1ByFyxMXEkPNJiOjg65\/PLLbSdmdHK0AXnMzc2XgsJiKRlfLsUlZRIK5pnG7jfCJm6O\/hVqNGJ3YIHt6+sxDb5DurpapK2lxoTrNdcRXqoeFIpjHRN8eXJCYJK8JThPCg1h3B\/rlLWxg\/J49KDUx7oscfSC6fLqwAR7\/se+F14knQ6TDamc7S+RJYGJcnZgqiWSz0Tr5ZlYg2yLtZr4dVFPuoCgQETwlYQYQja8g3\/kszMIQBghi0y5Yh2DsHgBKV2+fLklqBAZLGnD\/bIcRJUt\/ziwpP785z+3cTJlzwJbCFYy\/va3v9l3Ji9UgUihw88880xLkNHt5AuizL7REC506VgFZU+9zJkzxxJBrJWQQcqD+iDPLNyBGGKRxOhEOA4A+SSMKxsGErgucB\/LJfXG9DkryQmzfft2W9fo54HAc3Ap3CeSAXn94x\/\/aONMNQhxYAaW9gJhZhaW+nPgHu3x5JNPttZW0oL19f7777fpTG57RxsZWS6pIKYIaJCZIGYKNLx\/n7SuuknCO7dLrGPw74LnzJ4joRmzJGQafaTuoERNwWHR9BcUJEKkBp2PTnLffffZSqShHQ30E8oCKZ1QachkhSGVFabhTpfyygUypapaJk2eZe5NN9enmGOijC8lTJUJO9WcT7XnhePKTF5KJSe3iBgllDPOCAS+RhSUWFR9ShWKYxW5ErA+kucEp8k087cl3ivPGhJ4X2SftUCmsi+eFZwqy4NV9rnbIjsPC8GUNz6anRK2+2IW+3IkYBRwZzxs42aKfCigsJmRYk9AlDYEA6Bo3Upp7mH5gSyh3FCaqRQuxIVwxMMiGOJFNh8LiyXIG4SNtEPCMFpwkG50DEocwwUkASIKqYGYcT2ZkGXDckm9UAeQx1NPPVVe97rXyYoVK+Qvf\/mLTQf1cvHFF1vLHaSD9EOUONatW2cJFun3AvJMfBdccIEll9QP4TnnXfgpQljGIpyeJ83kmXRTD5S\/I4IQfdomxJI80W5ph9SVdxGPqzcIJnXDX0gc9wjnfDG5R9jBCCbv4YMyWEdJE+lze2tyjxlV6oF4BgJ1whaP1DN86z\/\/+Y+9TjskvvPPP9\/68NK3uE87Jf3U1VgbDGRELqlImDl\/M0Hf7l2WWHY99F+JmwofCnyxJzR1mp0eb7\/zP9K17gn7XLp+mGw3gGCE+R8N5OYVyOSyqXLK0otl1pzTDJlcKAWFU02nKDGEF0dwtjwIS59pFL74AUMWcSDG8ppjGi+WSwhqyDTyIjOiKjdxzZcJE+ebDjGFdaLS2XUQ\/wHzprEtpBUKxeFga6HjAhOtnyX2MKavH4selD3xgeXVSYHJssBfaleW44eZquf373kZtYuB5vvHy0Rfvg3PVkQN8aG3WEGhQlze9ra3yXvf+1658cYbrTKFiLClyyc\/+Un70QqIDQoTZbZnz57DZoggQ1j9LrroIvnIRz4ir3\/961\/cWWTDhg1WGY5lgglZ44CwACxg6BLKAlLCuVsYAunGggYBgQDs3bvXPuOQDXJJvNQB5U89UI78\/tOf\/mTJCvFjufz73\/8uf\/3rXy0hueeee+zB6uhURhbc2yAx5OfPf\/6z\/Pvf\/7YWS\/J85ZVXWl\/ETZs2JUKPLVCWEEX216bcKWOIJIQS\/0pXV7RnLIBuQZWrT0CZYq2EsFEn1KUjmXAH7kEyeZd7H\/cIl0zUHSDk69evt5ZEyp6\/tA\/aOoT3rrvuGpRYgve97312CyWILelxLn4MGuhzn\/nMZ+Rf\/\/qXrF69Wp599lnbDthrfOPGjYe1vaONjLamZxUWTDwTtN+zWpp+\/UvpMH\/TRXBymTkmS7SjXdrvvUs67l5tv+bTfuftiRCDA8sqjWm0EQyG5Izlb5EV531EjjvhrdLVU2KEEA2W0cqhwrSgICTFRX75yw0\/ki2bTIdoa0zcORwIr\/z8PCkrr5KFi5fJ0td+QGbNvURKxs8zgly\/LjAUmEJCKX7\/+9+3I1iAUEUgo0Df85732DDpAEGGEEcAI3TGGn7\/+9\/Lpz71KXnNa15j8\/i\/\/\/3PfprV5fvliquvvtrmnWkt6mgso9pXKif6y+w5C3QejxyULeZvNtAe75O7Invk+ViT3baILY7OD0w3JHZgn24ULfLyO9\/5jm3XbvEKcgcr2DnnnCNf\/vKX5aGHHpJPf\/rT8o1vfEOeeuop+cIXvmA3qMaC4gVKnz2QufeVr3xFPvrRj1rFCgmCbKK4xzIgJo4ws8r4mWeeseTAi5qaGmsV3Llz52HkOtvA6vXd737XkiemVmnnXkCCIB8QSSxYEF93DERm3LQyYXiG6XDIEaSS\/LswyeBdb3\/72y2xvfPOO+Wf\/\/ynrWPawGj1O96FPHNkkTp4\/PHHrbsBRBoyRxuDpC1dutQSUMAg4eGHH7YHFk7CISMJw2DITTUTB\/FxbNu2zT7Lu7ASUhcDgXKDfLqyZ7tGOBPbI\/7gBz9IhEoNSCj6iLTQ3pDbXrhZgMcee+xFYgmRvf766215sJjJ5dML8kR9rVq1yj5388032\/rCIjvS9ZURM6GxpWpwA6F99R3S+eAD0rdtc\/9elmmib9cOQ0rvkqZf\/UIi+\/dJvNuMFnbvMgT1Lom2NNvtjAYDnSaTdB4peFdeXqEsPfUKQzimmkbGN4B95tw01N590tuz+5AjGOw0R58RSm1mlHTANPRa0xj3S7hvr3mq1pDOuBQWhCXobznkuUjffonHGkyDyZfKKTOlatpJMrn8JPN+JZiDgfbgRqFOYTKaveaaa6xAoqMieIaCa\/\/Eg7AhrrEGBP6TTz5plQRCEksG1qKXu1M6ZAhFAVEay7AboPsLpMrX77P+VLTOLtzJ5iZB+GOujzXafTFZjT7PP17yzHtTfSoS0B8YgGDBefDBB63FxQE\/MhQXPmpYYyBZKEuUHP2GaTysP16ghFFc9C0WVWDdxLKCJcxNNSeD8NzDagp5RQGSpnTXA2QTEEfy9vTTT9s003eSLa38xpK1efNmSwYg246IZBsQvxtuuEFuvfVW+45kMussm2eddZZ8+MMfthbOlStXWrLitdZ5ARF94IEHrDXsYx\/7mHz961+XL37xi3aQ9sgjj9h6Ts4z\/YuBB++599575dprr7Vkl3CQM9rRaIC+jjwHEGNkHftYeok05IkBk5PRyHf8YmnHHFiPeQYQxvlsOhAX5U5bIBx5pCwHKk8vIIqQRMqfdgRRpK0MBNo+llEMIBBABjRYLb0gvdQX5U17JH2UA2TXWVyTLdQQbPoU9YXv5o9\/\/GP7l7zQb1OR0WwiI+2IUqWBDQU+7di3fZsllr0vbJSoqaRMEDbCqPuJtdL10IMS6+jo\/6JPW6v0btsiPc9vsPthDgYqdzSVTOG4iTJ1+hJD9KrF5x9nyKXfVL4RAPF22bLpUamr3SS93bXS13NQtm55VGprnpf2tr2GeLZagQ4P9vt6pLurRrZuflTaWnfZ85bmnTY8z\/V0Q0JfkM0vPGJIZr2thwkTp0tZRbUUl8w27x3bSvVoAkKIAOFACGN9X7Zsmb2OAkSQUg+ATseitXPPPddO\/\/H9ejop5c0UCz5KnCOUuc80IvG4jo6z9XnnnWedsnmP14KOwMN6g2Ud3xnSgPLkIG4ElyOvxI9QwGrE9hrEhRDiPnngPmkjrWeffba89rWvte9g9My0DQfnCBKUEQfPkheeI27SSfp5dzassJQvZISyY1qRNJE28ss0HGUEUEKkmyk+\/nKfNAFG4fh1kz7ioWySrZH8ZnBA+RM\/CxxQDq6OxzJK7cbneXarID7PiIWxTbLvQ7051mxJK5+L5J3secl5KqCoUFBY4hiY4FbkQFujbWDV4joWGbchNQeyNrntYGFjQIOlEwXNNCVT6Fh1XBtIBnVKPVKvrq2icGn3xM\/v0QJ5hFRARshrqmllQP\/iPuTZS1ayDcoNKxpEl\/JMBumg\/iALkC76OJY9ZAd\/U+lsypM+hUziPtOwlLO3HyWXOXXnCAuEjrZCHUOgSONAVtJsg3Q7eUAaSTd58Op85B7pcWkiP9x3BJG8OFnhwnnTT1gXrysH3pmOfEG+IdMYZNE\/+I3cHwi0fbc3J1ZVpuWpUy8glFhoKWvaI\/VM\/0B+Mtij7SUPOsgnlkvqC8JKG2Lg4OKgjEYSGflcIvBRAgMJCAtTQdGmRusr2fngfRJrz9xiEuvskFhriyGpyf6ZPonHopK3yCjaov494VKBgv\/vf\/87Sj4IPqmsqpbjT3i96WCs9u6\/Go\/3STRcI6tW\/cakJ2g6rRnVxWNy3723GqLYZBpv3DbeNWvuNyTjdJk0mU9YNsndd\/3TdOBcQzzb5EDNTln72ANGMS+WcF+PIUEbze\/7ZdbMSsnJLTfxIkwKxReYKC1Nm03R655cqUDnhvQw6kY4M2UMgcHXCIsDis8JWywnF154oSUthGM6AqWKsEHRff7zn7dCHKGN8zakiakhOjEj1csuu8zuAYuSRLAgdLESANIA4brqqqssMUL4oFDpU4RzQgWS+qY3vclOLRLe+VlhSeE+VgL82Bgdcx9BBpnD1+pDH\/qQDcO0DwKH6TSsHShLBAqC5i1veYslt5BW0okyhTwcqXUTYYaMYOqUMoWI8w787VBiCEHSAIH\/xCc+YfOEAnQEEkXFlCqkEn89BCflT7qwNqBAqSPyTfopH+oIeUSZUC933323JTMjLTiHi3n+ErthOqu72Qz9hvDmw1aGJ4Nti14dmGxXg4N\/R3YOuTynzcifav8Eu3cmU+JPx+rtVkdsvJ4MypUtW9y2LfQTBkdYSVB41AGkAmsV5YqCpaxpt1hMGJzR3hwgW1j0aHOAOqN9MiBCgWPJ4T1e0Hfok\/Sjb33rW9YaiHxEKUOqeM9o1SnvoQ95fevIP20UskHa6VtuwQtKnfCp0kfeyQN5IcxwfC6BIw6QQGc9ZGqa61iOqSPkA3pv69atVp7Rz9GByLzkvo3cYREQaVq1apW1VjMgQHciU5BZyD0vYaGfIdPon26ggdxAvkA2kWGjAfILCXaE2BmT6PduIEBdcLjpetorB+XCgIkyRC\/QHmn\/tGHqlDonDGGRlRy0Sa4RjvwiiwYDuuHNb36zLUtkOXKedvPcc88d1kboS8g8+hIy8x\/\/+Idta+gK+l6qbRV5hnzxDHWMm5azsHuBPEbGoh\/oj5QPbYH6QteQn5FERsN8V5mDIbxvr3Q8+IC03HSDxIawMGaKeF+vdN53j11BHjPnA4GG4R3FjCRYvBMI5Etvz6GjvGg0Iq0t9YZPxkwjWSxz558rpZNfZ0jLRUbo1spT69aaDrnThq2avkQqpiwzBPMUK2D9piE3NtSZht5rFOkZ9rnJlefI\/IVnG0V8oukIOMX3ly0dvry80vyl46j1ciAgYBAoH\/\/4x20b\/tnPfmaVnOtgCChIEB0Rv5R3vetd8v73v9+SIoggU4P4jSFYES6\/+tWvrABhah2BgVM1zyKkOGdaD8GMgzaCn3i4DpliessJBd6PYqUeEWAoYIQ+pO+rX\/2qXVjxm9\/8xhIyfGcQVAgXhBXChbggc3wxCxAPQsW1fwQcv8k\/z5B\/lD\/+dRDpH\/7whzavEDaePRKQLt7LO1HE3\/72t+Xd7363nY4h31hJGW0TjjRBCJm2h7D\/6Ec\/ejGPKKnPfvaztnwhLfjuQdgBRJtypDyZPmXPXRQkCod4xzqm+IySk5B0xyN2s\/R0cHKwXCr9L239xiciJ\/r6v\/YyGPjkI1\/0AfP9pXaj9VRAwUJ6UpEjprVRupQ7hBNFS91C6iH4KEyIxWBwYZFtv\/3tb60STQZKnTZKPaKcaQMsMvne975n2wB1rDgc1BkLcegvt9xyiyUR+OKxYwqDTWQLMsMLyhniQr3Q79asWWMJKc\/hGwgJgdxgTfOCeoPEEAZZiQy56aabrO8tdUa\/PxpAFjB4gXBDupBjtB+INVPJECraF7yAdsyBvIeI0rYJg5WaPoD8Ig5k1XCnjilHDAi0eQb7uJAg09EPvNcLyCtkHv3yk5\/8JK12TlmvXLnSGiCY5qafuIGcF5B\/rJTUF3oLWc+AhPqCdCKDRxIZSWMqYyi2y9R11yMPJ34NAtPA7apwc\/gHsUKmgiWXg1hZaFijJYysv6M5ktbrSMQ05oMH98lxxy+R4pJyU26msH1h6e7pMAK6yDQyNmvtX5no8xWZKAJGUHTa0WeVKZPm5iZDAnZLeUW\/YMjPi0pfb4vpBHvMaGi6BEP9DQNCEgoF+9Mhozd1NBaBQKTjpYIbsSJMUJgIYS8QLFxjD1emeyCGjCCxTtARnVBwUycIdc45EGY4j9PmIKA8y8if+LBSIIgRIpA7RoxYCRDg1DWWU645INggo1iJUKqMlJnSwJfSWXYA78C6Q154Ph2rAXlkURPCCGFKurHCoGzIK4cXKAvKE98qBJ87+I1yGoiMIidIL2WHxYn0oQCx4GAtcMC\/j1E04RD+kGXShQLjGa7h50cZ008ApBv\/KUgNChEBSpljdXm5YpFvgl2Y43CC\/bTjyCoGB\/oL\/eH222+3CxQge1jD3\/rWt1olSvujjaYC7QPXDxYJUYc33HCDHdh4rWEO+GTiokKfwW8Q6yW+gBCGY2HQAPplcf\/UcTrGDfoXxGigfpQO6J9Y+LHie0FaKLdUAwYvqAtvGCfTBnqO8PRl9tj85je\/Kb\/4xS+sbGTw5\/roaAI5CichvRi\/IMyQQiyb5IP7uHsgZ5AVDm6aGRlMGGQ3solniYN6Acgy7qcDyDgyjnc7INvQAegDZGYyocONimeYFYOsY\/RgoMDsGeXJbwb+lDHthDg++MEPWtKLjsBHk3wOBOQv9QWxZDDObB1xQUyJaySRUa9l5DLY1BmWyvCBGgnv7rfIDQRfTq4EJ5fLuAsvluCUKvFlOOLBpxM\/zIGA8nHm8ZGG7YRJHTE3xy\/BQER27NhsG1O4r00aG7bKvr1PG+G6Q+bMXShTqmZI7YF9pgGxUXyOIaN9poF32w5QYBp2OBK2Zd3b2yM9Xbtlz651cqBmq\/WtnDK1WnJC\/cqGV9uV6AMIg1cSnKBJBeqJ+xAWrCOQPQSwAx2UewgGRpL4I6IY6cSQwmQFQHxOACOI6LCQW57BMZtpXQQGZJBRKe\/kfdQplk+ENEqZtur1o+J9KCeUMIKBNJFuCCZTLM46QHoRXNyDIKY7mKJfMHJHaWORZXqMOMlfsuDjHZQnaUk+iMflPxmkBZLIs5yTD6xbzn\/PAfJM+l1fRdhRTrgbsE0KH0NA0KNAKRNIMGUAkaYMkUeUDxYKSNBgQvZYRsgMHL2LcZJ\/jySoG+ob6w4WGMqd9kI9Qvwpd+ogGdQXyhElSX1BRFHknKdqN8g9iCqzCVhbqFOUPYoVC\/dozUQdCZATyBUICrKA9j4QsP4yIKWMIBdeWZQJ6BNYJunPzvcYeUOckB3Xx5zVjvfSz+k7DODoX1zjPunFRYW65b5XLgHkHPEyWCZOBgK4ulD\/DIiJYzRAP3d9nTw4WUBZkAfkBbNUpIm2hpykPUEmsfBxcM417hEGucIzPEscxOXkDLKLMMjsweQszyP\/0R\/ER3lhmECmUTbIfp7nN+5UGBKoHwZVuDO4NOGzTPkiP\/lN3mj\/5AcLKHFynT7FPaefktsQOok2Rn2RD+qKATn15abqRxIZkUsy7GX\/yYi2m8IzlRVtHWRbDVNpAVM4eUtOkOJL39RvucyQXA4FCtIprJFGzDSWKIt3PF5Qubl+CQUNudy+Vfp6w9LdVSfNTZsNOXxO2lo7ZMHCE2XqtHlGMDfL7DmLJC5Bm16fj9ET03tB6yfF1HpXV7t0d+6SXTufNmXfYEjpHJk0eb4EXySX\/QQgFqfRv7IJJm0TZZcKCCM6MsLECWM6ubOKMOqF3DB9wIGAYD9XhAIdezDhz7MII57HVxN\/SA6UDIBcIdBJQ3K7RGB5\/c+IB0FBnTolzHP8du9xSLY6DAbyidJA+DFFzRQnigUlSP64n2whQghRntdff\/0hB1MrXOf9qUCayKc3\/fx273EgfheG8iV\/TJszlefKkHqg7CDh5J0wvNdLaIjbGxfvQHBSdzwD0eE5Dq5zJOd1tOBWhdOa8KVMB0xvd9p9bftxINZp\/TWHAgTUkdAoa8jTayqHgUEQhO93v\/udJX\/4ZkIEscDTdqkfFKkjF87iTd1hjcbyyWICV4epwPPUIRZM2hjTfRAHCBP9MHlwNxZBHkgvB8SOtuwdTAHaOddQ+hAMwiInBpMvyaCdu7YOuaB\/Ud5u4R+DM8odMgKZoNwh6vR5yC\/vh8Bg\/WezbmZESAfkkwEn8goCRhgv6DfIC\/olzyBHIWK0AYhTsmwbKfA+uAh5xypIO+G3A+TLEXcG9\/R1ygCXJSyYHJyTP8qdMAxgeAad4ECcxA2R45w8DjZDRLni1uT8zGm31ANtgT4CeSTtlCHWZuqCmSv8LNleCh9njjvuuMP2N96NrCW9tH\/iw1UIXUCfJO2uvZFuZ3hwQO45\/3zShX7imqsvrwwdCWRVwsbYJqir38dnILAQp\/D0M2Xixz8lgYJCyZk91+5reawiHO42BBILykuNjk819vS22gosL+eLO+VSOqFKqhedLCvf8xVzPt9cmyVnLn+jTJ9xvGl4bJETMCOZKrn6nR83EijXKNCYaayFpiHOk9z88bL4+GWy4ty3yvkXvE9a24LmHf3CCEXb0HDQ\/MVnamiF83IGQnagkSXCGAFx3XXX2elkOj\/+MHQ2gKDEf5KOx1QPfoxM\/yGAEbaAOHgHoGM7hcAInw6P7xLbgLBvJsfKlSvt1B4+nAgKyJV7nwOExzuNwvsRYAhtR4AQLPxGoAxXICD4EGr4KLLo5Wtf+5r1dfzpT39q3zeQcqM8GawhiN2BoHblkAqkGwFPfgHpx5pC+Q+kgIgPwsoUDmlyZciBTyjTsTxLGRCfV2mj9ChHR1w4hzjjN0V5I1yZTkcIY5lxmy8fDUAK2eQc6yOruNPB3ZE9sjP+0owRC3pqYkO7QRT4gta\/E7Dn5VALhwYDdYolBIsy\/QBfO5Q751izIJKQF9oRpAnLPdvaoBwho7Rb2gQkJxWxp64Ij9UfJYnsZLBIfxhqcDcWgbKH3ED2vKDdInuwctEGyVcmxNnJOA7O6YsshMMvm0Ej7gRf+tKXLMFhD1\/uIXvof1iRIRnUI1ZHCA33kFP45THNDeFB\/rGqGJnmBf0T6zN\/2buUcDxDnbLwhAHHaABLOtY+\/EohwbSRZFDOyHTnLw+5IxxEkQOZTrkjewlDfSBHkkEZUEZY7hkg8e6BACkkHM+wYJEpbfZ1RXb\/4Q9\/sLoEWUsZY8CALKK\/KU\/e4Q7kLXKOsPwmPp4hncRFX0M\/sRDbHczyIN+9wOLKO4mfNQC\/\/OUv7ZQ79YVOGiwv2UBGq8UR1CQs2dHXIdrYIL2bNkrftq2JK4ej+NLLpfCsFZJTUYmGloDphGw3FDlQY\/+mg6ILLpLQtOkDWjzZwR6BNpiVNZvo6WmTpsZdhkgusL6T0Wi7NDXtlKefWiMXXfJOQyTnGsXHZ7UmmXv5Eo4EjGDIE39wgvSF88y5eSbil95wyISbIG3NO2Tf\/h1SWMCWBldKT994+6zPX2IaY9AI9P73dnZ2SN3BnbJ7+x0SCUPqh2maeJmDNkvHY3RP52d6AKEE6UC4oCQR8kzB0eEQvAgfpotYkAOpwQLAaBdliuLEAgqppI1xnxEi7+EZ\/P+wWrBamsUnhMXnhtE+ihiBghUVJYOTN8QHweX8IIkHCyOCgXQhWPBbI12MaAlDHyQthCH9DqSNuIkLxYPiIG5IIcoMAYWjP\/nnN2lEWNFfiN9rAcgUpAtiwQIc4uYdEAVIHYuHUAaUIxYelB8WLdLlrAGUCwoS8CyEhPxwjXIjjRANyCFxEBf1hAsDeeAa\/pekg+kjLDg8g4AHKHysMyh9rkNgRhtMaM\/0F9vPPuYZ8vdgtMaSzVSffHRgyyL8LOckVouvCm+zlsjBUOErkJMD5fZTkMyC3BzZJq2GYPKuwYASRilD9txqZNoZyhpCgd8uAwAsLm4gB2HHAkabxJqJdYXnKW\/IFYoUUspBvUBciMc7QKHdMSigbvHt5BlIAXWMjzDhScfRArqPvg0BgaSgsOnXXlBWyAQsRBBo2iHPUaacc1COkDvaMfknDghbum2RdyBL8IHlWeIgPVjwmFpl5woO+gFtnL5FuREWHz0G1pwTD88xtUpYnmFxIGGQge45L\/hNnyReBqjoWUglMhUShBwcrTriPa5tQrg4KGvyRllwDxlEPbh6o6ycrOQa7RWZjIxCzkLqeJZz2iJhIXkcxOdtr6lAWpC99A2IJgs2KSMIPrrDGQYoX8oMWZ6qXaNTIOpsS8R9QNr4+hBWTohh8sE9ZKk3jcRLHaOP8IGnfmk3tBPiG66hIl1kRC7pEChjnFBTIcZelJtekL6tqUcwgYmTpOj8CyWverH4TOUBX07InOeLz3S6sBlR2O2Hkgr7RZhK95sGVPyGSyRUWSG+AaZYGCUMNKIZCcRifNGhxxC8HgkEWZ3LaNRny2v+\/GWGFBZJLI5PhCGGRtDH44zC\/eY3i3j6R+TkmHPC5IS6jRAqNMJ1phSPn2MIaP91nqFowuGItDQfkPq6rdJYv0k6O1itOTqd+lgEggeBj9Kkw9IJ6bQIQ8gG4JzrkCOIoZtuQBFAYBAObv8\/4kFxMvJEeaJs6cgoD0gm1gGmQ1COCCY6PsoDgYVyQajxHtKENQfhhgCAECLQEGSQKUbTECTCEwaBhfAjTbwH5c5zXnKJdYIRKz6aKEBHLvlNOAg200Auf5QN03IoGcilN65MQf7JFyQdwen8s0g\/ygolhvBFhkAGnUB0lmFG6JQHaSJtkBbiQGEzNUTeXRgO4qWsqQuUBZZL3kEe6PvkmXrjN9OtPE\/ZUM7co85HGxBFtgea6i+UHAnI9lir3eeSzzYOhkp\/geQaedEQ7zGEdP+QvZ3tjhabY5IvX7riEbk1ssNuQ5SOlKCMITAMXByBBLRxFlvRD7z+eFxnIEOZcg8FRxmzkIJ2QBuFkLiDtsY7vEoVRUc7IB4sS7zHPUe9DaXYRxrpkEvyQ5uCnNBfOZzVFZLjDtopYekLEA3+0ufTAc9RVsgTV36UDddo51zn4NxL9qhHCDzl7sqSe5S59znkImlxzyWD6+SfZ4iPg75N\/AM9M1Jw76NOqB\/kBnmgTJFFyAjKnnMIPvKXv8gfZDj16azHAIJMW2Nwz0AV2U09k8d080bZUaY8Q1pc+XiJHPVC+SX3AQfKknuOWALiJR6IZ6qDOknVR7jGPVdXvJd4RqM\/ZUQuySAFj2Uile9M3BRg35ZNlmCaUktcfQl51Yuk8Mzl9rvhDlj6AqXjJWiIJ\/tjRuvrTOmajpYi8z7TUXOmz5Rx55wnwQmHf96RSqEgMf9SiF7BONKAYLa11ZpyYXPWfqIxefJUKSisNPewNqY\/rZOfzxcXyg2JmCI9vSHbAPsFSJ\/Jn2m0rbVGIG2Vpsat0tGOaXt0O\/WxBkfqEOwoOzo9AgAhBLHinJEc9yCMkC8EFXWIkkOJ4C8DMQGuH0BCITaMChFEtDcEGpYx3skAB0sBcSDA3IEjN4LNPcN7GKmSHpQ2bZf0Qqx4D2GIA6sQaUWYIvwc6aLNO\/BuFDtCknyuNOQS8ks4pwwRrKQB5Uc4gMKHHHjjyhTkA3IJKcQSAjmmPEg\/01iM6BFspJ38OyuKE7LkDcGLwCfvhIFsYNmBHJI2N9KnfAlDXUGEuE5c5NUpGIglcVJ2hEF5cJ3yORrEEvQZgjfVP04qDLks8uUYUhmR2rhRGnFDBBJhUoFvhLdJWPbFOywhHQhIGTZLPzNYJbP8JeY5n+w3z9wbMQQtDTlBXdEuaQ9eBcQ55UY5oqS8oB1SrvQRQLtndgBymnykIpaA96IkiQNCyfMQVYhXKgU82kiXXCIbaIu0T\/oXZAa54wgMIBzP0t8ozyPpcwpDYgwXgcQjf5AXlCkyhkU1gPKmHrhG\/UEuGfjzm3uubpDvDGwIwzV0AvWs9TM8+EzhxlEG6YJpC7ZrwVk4FVpuvEFa\/vwniXUf7hNUes17ZNyKc+2UdjLYHD1mFE\/d174svdu2WitoMrB2Fr3hEhl\/5dskWFaeuPoS6NQ0LKbgjiaCwTwZV1QmM2afZhrydNP4+7+80i\/6MweCt6ur2yjNemlu2i11teskFu0yHWPkRx+K7ABrI5Y2BCGWRAemxWmv7PcI+UpW3EcKpmTYZ5JtfxC8IwkIMVOfuBKwmbyzaCgOBRuinxaotEenIZd\/Dm+SddF6+13wIwUkFF\/Oz+eeJGW+fKmLd8t9kb2yOrLHUEsdhA4XDCSZQmUwCZlmMMiAbSAwQGJwxcwIpMcBMgMBpV+6gZXiyAG5hMw7ax\/lzqwJoLyd1dgLBkzIJ1c\/DGoY8AIIJtZGr8VRkRkyXtADs0\/+cL4XuQurpXD52YlfhyJn9hzxF7y0GbAX1oJZOE4mfODDdiV5KvgNucRnMzA+9TdMGTGzyvBogyny1pZ9sv6Zv8lDD1wrj\/zvF\/LUkzfLju2PGHK4Xzo6WqS7u9McXVa4cHR3Y5XpMiOlZqmrqzckGcvLennu2fvM87+WJx+7TjZtuElq9z8sUbt4R4nlsQQEGb6DEC9Wqve7TMy3CouBGpaabI6QGZVjRYTMYsnjUIwNbIo1yxPROmu1LDB08OLgLFkRPHSj6+EAiyVW0Y\/mnmCJZW88Krtj7fJI9IASy1EGJAfLOW44EBRIJTIAqzAzELiDKLHMHiCQDGZTAQs4gwE3SwPgClyjjlKBGQ8llkeGjKbFAZXIiIuFACiu5Olxpq7N+Ey6n3jcaNRDrRaFp50uwYqKAQmm+HyWQPZufsF+X5xpdodgxRQpOHmpjDtrhfjZQNwzzQBoWEx\/4USbbevP8MB2EezHFTXFEJZIuEt6upulrbVGmht3SGPDNmms32L3v2yo2yINDZvt76amrdLSvN2Q053S3rZHujpxlG418eA\/Q3mqkjgWgWJhaoaDUTVbUbCQh\/7DtC\/+h9kSZvhV4veI9ZA+wf6EKDMU3EjCEWb8TVlNjKwY6Xcei2B6OuaLS5chl4v8pZLjC1hiyF++qEOJZVpq+G\/O9Y+XZYFyWRKYKLnm9\/p4o6yN1lqCmc6UuGJw0J6xckFSmDKFgAwG+jx9GhcMzpk5wH2AZ9WiP7LAnYjpb+qLRWFwAmQt0+EAckl9UIcs9mQwgNvMSM\/uvJIwLHJJRaEY8XfCfOyF3RDdH5Dwzu129bjpVYk7IrnHnyChqmkSKDp0OxYvfEb59jzztJ0a53OPIFA6QfLN+8addY7kzJp9GLEETFHg18V0w1gDJDMa7TNCBmtlsyHCjYY0Ntijk6Ojvv93V70hoI322+O9Pc128\/VoxIzGlFQe80C5IMg4mCLHJwvfSkbObjV3tkC\/xNcRQcoKbXy7BhrVZxtYTAErglWBpgY9OWxkgunlMstfbLcLKvblSIkvVzriYQkbKhjxDb6C3AFJyNd65gTGy6sDk+yqchbx7I51yOPRg7Ih1igdJkbFkYH+y8wC+g8\/UMjIUO2bgRVh6HsQTIwyEEu1WI48GOhS\/pS187HGbce580Eu8aekbpBZ1CnEEpmsyA4y9rl0YCsRvhvMatlkX4YoCybWrpHGX\/5Moq2tpmf2d8KiSy+XkksuNQRxjv2dEqYTN\/78Wmn7z2125TiW0LwTT7aLeIrOPT8R6FDQ4dnTi2X2A5m5FQqFYqzhtGClnB+YLrMT2wzti3fKPZE9duq8LtZlLY5QzH6a2f8\/Wwv1e3D7rMVzgSGW5wZNHL5iSzRZkX5jeIs8G2uwG64rFK9EwEsglBBIfGBZyMgHGgCLyyCdGMrcIi0dDGcXGVsuHTDvU3lUDFuqeMH+kzlz5tpFN3FTsREsmIYAxlpaJP\/E10iockoi5OHo2bhButY8LOFd\/SsPiy+7QkqveocUnJR6+yPAPmhsQYLfmkKhUBwr2BvrkH7vy5hU+QuFb4ifGJgsS4MVsiQwyW6Ezn6YTJkz9V3gC8n0QJFUBybI8mCVvDk0Ty4MzpRKX6EEfH6pjXfLXyNb5eFIjbTE1UKmeOUCy6VzNWJBLVwFlyEAf8GSjGHK+cQqsothWy4B025sS4Rvl9sv0Itoc7P07d0tvc9vkM41D0nfls1ScuXbpPCM5ZI7f0Ei1KFo+t2vpG\/nDvEFjFA97ngpOPU0u9G6P+\/Qz2gBphjZm4+PsjMKUZO2QqE41lBoCCOkcqavWC4MzZByX4H9NCT7UrbHw3ZhjnejdeefmZ8gm3nmL9sZrY82ytOxetkZa5O2ON\/jUYWpUABnCHPbE+GGBF\/A3UExMjgicgnYzBmCyeeH2DuPBQtexPBTqT0gvRs3WNKIRTN33gL7NxU67r9H4uYZf3GJ9a\/k2+OpwOpX9kRjj0Gmw4dyrlYoFIqxCrYQKjJEka\/qTPONkzJ\/vpQa2ljiz7E+me4b4Q7YOvHPhERi\/ayJd9r9L3cZYslCIYVCcShY0MN2RQBfTJ0GH1kcMbnEcZZVWXwDmE+AYc1MJpheWB\/MgF8C4wZe1DMU8KFgGwG+5cz+gPw22UjcVSgUimMXbCM0w19sv+Qz3V9kP+WIJdOLxniP3cNyvyGWa6K1lmQO9WlHhUKhGC0cMbn0gm\/C8u1i9u4bSeBfibUScqlQKBQKhUKhGDvIKrlkCxT2uePb43ypg+1QkleSDxes5mK7AL4bzkov7zeJFQqFQqFQKBRjA1kllwCCyV5S7vNLkE1Wk7MlwHDAVgEs2mEanM1Q2ROQ\/al093yFQqFQKBSKsYesk0svsGBy8Bk6\/DIhnmxYip8mWwOwkTSWTZME61zrNpfFIokfJRvV8jH5tWvX2m9+6h6WCoVCoVAoFGMbI0ouHSCRkMvly5dbf0ymyyGYrDRnewCIZWtrq917CmClXL9+vT3YSV+hUCgUCoVCcWxgVMglVkoOCCXbAbjfWC35i+WSw+05xV8IJ4fuQ6VQKBQKhUJx7GBUyKVCoVAoFAqF4pWB7CzlVigUCoVCoVAoDJRcKhQKhUKhUCiyBiWXCoVCoVAoFIqsQX0uFQqFIk2cFqiUM4NViV+KsYY1kQPyYHR\/4pdCoThaUHKpUCgUaeKy4Gy5MjQv8Usx1nBrZIfcHN6a+KVQKI4WdFpcoVAoFAqFQpE1WMtl4lyhUCgUCoVCoTgCiPw\/7EIhA2GKp3UAAAAASUVORK5CYII=\" alt=\"\"\/><\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"63\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-11.png\" alt=\"\" class=\"wp-image-1433\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-11.png 673w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-11-300x28.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n<p><\/p>\n\n<p>Il collo di bottiglia \u00e8 rappresentato anche dal file uaee.phtml, che fa parte del modulo Tatvic_Uaee di terze parti e viene utilizzato per inviare vari dati ed eventi allo strumento Google Analytics. Dopo un\u2019analisi dettagliata del codice sorgente del file menzionato, abbiamo trovato la fonte principale dei problemi di prestazione e li abbiamo risolti.<\/p>\n\n<p>Ci\u00f2 ha ulteriormente ridotto il tempo di caricamento della pagina delle categorie di altri 0,4 secondi.<\/p>\n\n<p>Pertanto, il TTFB \u00e8 stato di soli 0,4 secondi dopo l\u2019ottimizzazione della pagina delle categorie.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"65\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-8.png\" alt=\"\" class=\"wp-image-1421\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-8.png 677w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-8-300x29.png 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">Pagina del prodotto<\/h2>\n\n<p>Anche in questo caso l\u2019ottimizzazione del file \u201cmobilemenu.phtml\u201d ha aiutato notevolmente i tempi di esecuzione della pagina del prodotto. La pagina del prodotto ha impiegato ben 26 secondi prima che iniziasse l\u2019ottimizzazione. Dopo aver ottimizzato il file \u201cmobilemenu.phtml\u201d, il tempo di esecuzione della pagina del prodotto \u00e8 stato ridotto a 2,6 secondi, che non era ancora sufficiente.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"662\" height=\"69\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-12.png\" alt=\"\" class=\"wp-image-1439\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-12.png 662w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-12-300x31.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/figure>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"664\" height=\"66\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-13.png\" alt=\"\" class=\"wp-image-1442\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-13.png 664w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-13-300x30.png 300w\" sizes=\"auto, (max-width: 664px) 100vw, 664px\" \/><\/figure>\n\n<p><\/p>\n\n<p>Un grosso collo di bottiglia \u00e8 anche la navigazione laterale nella pagina del prodotto. Il negozio online ha inoltre l\u2019intero albero di categorizzazione visualizzato nella colonna di sinistra della pagina del prodotto. Per la visualizzazione della navigazione laterale si utilizza il modulo di terze parti \u201cCodnitive_Sidenav\u201d che altrettanto provoca problemi di performance.<\/p>\n\n<p>In questo caso purtroppo, a causa della modalit\u00e0 di funzionamento, non \u00e8 stato possibile utilizzare la cache, ma abbiamo trovato un commento nel codice sorgente che indica che lo sviluppatore del modulo \u00e8 a conoscenza del problema, ma richiede l\u2019acquisto della versione \u201cUltra\u201d del modulo per prestazioni migliori.<\/p>\n\n<p>Dopo un\u2019analisi pi\u00f9 dettagliata del codice sorgente del modulo, abbiamo comunque individuato la causa principale del rallentamento ed eliminata con successo. Ci\u00f2 ha ridotto il caricamento di ciascuna pagina di prodotto di ulteriori 2,5 secondi. Pertanto, il tempo di caricamento finale della pagina del prodotto \u00e8 di 0,5 secondi.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"66\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-14.png\" alt=\"\" class=\"wp-image-1448\" srcset=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-14.png 669w, https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-14-300x30.png 300w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><\/figure>\n\n<p><\/p>\n\n<p>Rispetto allo stato iniziale, abbiamo migliorato il tempo di caricamento della pagina prodotto del 97 %.<\/p>\n\n<h2 class=\"wp-block-heading\">Ottimizzazione delle query del database<\/h2>\n\n<p>Analizzando le query, abbiamo rilevato una query specifica che era il motivo principale del rallentamento delle prestazioni della pagina. Dopo un esame dettagliato, abbiamo scoperto che la query non utilizza indici, quindi abbiamo eseguito un\u2019ottimizzazione che ha ridotto il tempo della query da 5 secondi a 10 millisecondi. La query menzionata \u00e8 stata eseguita 3 volte su ciascuna pagina, il che significa che il caricamento di ciascuna pagina \u00e8 stato rallentato di circa 15 secondi a causa di ci\u00f2.<\/p>\n\n<h2 class=\"wp-block-heading\">Riassunto<\/h2>\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\u00a0<\/td><td>Prima dell\u2019ottimizzazione<\/td><td>Dopo l\u2019ottimizzazione<\/td><td>% di miglioramenti<\/td><\/tr><tr><td>Prima pagina<\/td><td>18 secondi<\/td><td>0.2 secondi<\/td><td>-98%<\/td><\/tr><tr><td>Pagina della categoria<\/td><td>19 secondi<\/td><td>0.45 secondi<\/td><td>-97%<\/td><\/tr><tr><td>Pagina del prodotto<\/td><td>26 secondi<\/td><td>0.5 secondi<\/td><td>-97%<\/td><\/tr><tr><td>Carrello<\/td><td>18 secondi<\/td><td>0.4 secondi<\/td><td>-97%<\/td><\/tr><tr><td> Checkout<\/td><td>18 secondi<\/td><td>0.4 secondi<\/td><td>-97%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<p><\/p>\n\n<p>Il negozio esistente presentava grossi problemi di prestazioni poich\u00e9 lo stato iniziale era significativamente troppo lento come standard per un negozio Magento.<\/p>\n\n<p>Questo progetto ha dimostrato ancora una volta che sul mercato sono presenti molti plugin di terze parti di scarsa qualit\u00e0 che possono rallentare significativamente le prestazioni del Vostro negozio online.<\/p>\n\n<p>Suggeriamo sempre di utilizzare plugin di terze parti con parsimonia e solo dove realmente necessario. Dopo l\u2019installazione \u00e8 necessario controllare e analizzare attentamente la velocit\u00e0 operativa del plugin installato.<\/p>\n\n<p>Con questo progetto abbiamo accelerato notevolmente il funzionamento del negozio online del cliente. Abbiamo anche aggiornato la piattaforma Magento e quindi migliorato notevolmente la sicurezza del negozio online e dei suoi dati.<\/p>\n\n<p>Se avete anche Voi problemi di velocit\u00e0 del Vostro negozio online, Vi invitiamo a contattarci.<\/p>\n\n<div class=\"wp-block-cover\" style=\"min-height:150px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient\" style=\"background:linear-gradient(135deg,rgb(154,206,241) 0%,rgb(60,111,143) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p class=\"has-text-align-left\">Se avete anche Voi problemi di velocit\u00e0 del Vostro negozio online, <strong>Vi invitiamo a contattarci.<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-5590e8cb wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-medium-font-size is-style-outline--2\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.elitek.si\/it\/contattateci\/\" style=\"border-radius:26px\">Contattaci<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Un cliente si \u00e8 rivolto a noi con gravi problemi di velocit\u00e0 del negozio online Magento. Il negozio online \u00e8 stato impostato da un altro esecutore che non ha assicurato una realizzazione di qualit\u00e0, ossia senza le conoscenze sufficienti in materia di ottimizzazione della velocit\u00e0 di funzionamento dell\u2019applicazione. Procedura: Abbiamo ottenuto tutti gli accessi, sia [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1942,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1902","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-non-categorizzato"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/posts\/1902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/comments?post=1902"}],"version-history":[{"count":4,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/posts\/1902\/revisions"}],"predecessor-version":[{"id":1962,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/posts\/1902\/revisions\/1962"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/media\/1942"}],"wp:attachment":[{"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/media?parent=1902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/categories?post=1902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elitek.si\/it\/wp-json\/wp\/v2\/tags?post=1902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}