From c192c2a50cc5f795d06bcaa12ebca1b4f51dfeb9 Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Fri, 18 Nov 2016 12:03:13 +0000 Subject: [PATCH] FTP server is no longer used for thumbnails. Everything is stored on the storage service. Waiting for ticket #5799 to be completed to speed up the generic thumbnails retrieval git-svn-id: https://svn.research-infrastructures.eu/d4science/gcube/trunk/portlets/user/share-updates@134370 82a268e6-3cf1-43bd-a215-b396298e98cf --- distro/changelog.xml | 18 +- pom.xml | 4 +- .../shareupdates/server/FilePreviewer.java | 226 +++++++++++++++--- .../shareupdates/server/IconFileNames.java | 38 +++ .../server/ShareUpdateServiceImpl.java | 190 +++++---------- src/main/webapp/images/default/css.png | Bin 0 -> 7441 bytes src/main/webapp/images/default/csv.png | Bin 0 -> 2896 bytes .../webapp/images/default/default_generic.png | Bin 0 -> 1186 bytes .../webapp/images/default/default_image.png | Bin 0 -> 3751 bytes src/main/webapp/images/default/doc.png | Bin 0 -> 8805 bytes src/main/webapp/images/default/docx.png | Bin 0 -> 8805 bytes src/main/webapp/images/default/java.png | Bin 0 -> 12015 bytes src/main/webapp/images/default/mdb.png | Bin 0 -> 820 bytes src/main/webapp/images/default/mp3.png | Bin 0 -> 3630 bytes src/main/webapp/images/default/pdf.png | Bin 0 -> 8826 bytes src/main/webapp/images/default/ppt.png | Bin 0 -> 7934 bytes src/main/webapp/images/default/pptx.png | Bin 0 -> 7934 bytes src/main/webapp/images/default/psd.png | Bin 0 -> 8866 bytes src/main/webapp/images/default/rar.png | Bin 0 -> 9280 bytes src/main/webapp/images/default/tex.png | Bin 0 -> 5151 bytes src/main/webapp/images/default/txt.png | Bin 0 -> 8552 bytes src/main/webapp/images/default/xls.png | Bin 0 -> 10534 bytes src/main/webapp/images/default/xlsx.png | Bin 0 -> 10534 bytes src/main/webapp/images/default/zip.png | Bin 0 -> 7004 bytes 24 files changed, 305 insertions(+), 171 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/shareupdates/server/IconFileNames.java create mode 100644 src/main/webapp/images/default/css.png create mode 100644 src/main/webapp/images/default/csv.png create mode 100644 src/main/webapp/images/default/default_generic.png create mode 100644 src/main/webapp/images/default/default_image.png create mode 100644 src/main/webapp/images/default/doc.png create mode 100644 src/main/webapp/images/default/docx.png create mode 100644 src/main/webapp/images/default/java.png create mode 100644 src/main/webapp/images/default/mdb.png create mode 100644 src/main/webapp/images/default/mp3.png create mode 100644 src/main/webapp/images/default/pdf.png create mode 100644 src/main/webapp/images/default/ppt.png create mode 100644 src/main/webapp/images/default/pptx.png create mode 100644 src/main/webapp/images/default/psd.png create mode 100644 src/main/webapp/images/default/rar.png create mode 100644 src/main/webapp/images/default/tex.png create mode 100644 src/main/webapp/images/default/txt.png create mode 100644 src/main/webapp/images/default/xls.png create mode 100644 src/main/webapp/images/default/xlsx.png create mode 100644 src/main/webapp/images/default/zip.png diff --git a/distro/changelog.xml b/distro/changelog.xml index 75d89ff..007e722 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,9 +1,16 @@ - - updated opengraph checkURL for getting images in case of HTTP redirect permanently is encountered + + Removed asl session dependency + Thumbnails are no longer stored on the FTP server. Storage + service is used + + + updated opengraph checkURL for getting images in case of HTTP + redirect permanently is encountered + - Updated to Liferay 6.2.5 @@ -24,7 +31,8 @@ made notification to members option configurable as default, - see Feature #121 + see Feature #121 + diff --git a/pom.xml b/pom.xml index d50a4b8..fff83d5 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ org.gcube.core common-scope-maps - compile + provided org.gcube.portlets.widgets @@ -232,10 +232,12 @@ org.slf4j slf4j-log4j12 + provided org.slf4j slf4j-api + provided diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/server/FilePreviewer.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/FilePreviewer.java index fe5fbd0..22824cf 100644 --- a/src/main/java/org/gcube/portlets/user/shareupdates/server/FilePreviewer.java +++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/FilePreviewer.java @@ -8,20 +8,27 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.RandomAccessFile; +import java.net.HttpURLConnection; +import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; +import java.util.UUID; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; +import javax.servlet.ServletContext; import net.coobird.thumbnailator.Thumbnails; +import org.apache.commons.fileupload.util.Streams; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; import org.apache.tika.config.TikaConfig; @@ -29,8 +36,7 @@ import org.apache.tika.detect.Detector; import org.apache.tika.io.TikaInputStream; import org.apache.tika.metadata.Metadata; import org.apache.tika.mime.MediaType; -import org.gcube.applicationsupportlayer.social.storage.FTPManager; -import org.gcube.portal.databook.shared.ImageType; +import org.gcube.contentmanagement.blobstorage.service.IClient; import org.gcube.portlets.user.shareupdates.shared.LinkPreview; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,35 +45,36 @@ import com.sun.pdfview.PDFFile; import com.sun.pdfview.PDFPage; import com.sun.pdfview.PDFParseException; /** - * - * @author Massimiliano Assante, ISTI-CNR - * * Parse files and returns an image preview plus description - * + * @author Massimiliano Assante, ISTI-CNR */ public class FilePreviewer { - private static Logger _log = LoggerFactory.getLogger(FilePreviewer.class); - private static final String PDF_DEFAULT_IMAGE = "default/pdf.png"; - private static final String GENERICFILE_DEFAULT_IMAGE = "default/default_generic.png"; + private static final Logger _log = LoggerFactory.getLogger(FilePreviewer.class); + private static final String UPLOAD_LOCATION_LOCAL = System.getProperty("java.io.tmpdir"); + public static final String DIR_STORAGE_DEFAULT_ICONS = "default-icons-directory"; // to be append to UPLOAD_DIR + /** * these are the extension for which I have an icon image preview */ private static final String[] handledextensionImages = {"css", "csv", "doc", "docx", "java", "mdb", "mp3", "pdf", "ppt", "pptx", "psd", "rar", "tex", "txt", "xls", "xlsx", "zip"}; - private static FTPManager getFTPManager() { - return FTPManager.getInstance(); - } - /** * * @param fileNameLabel thename of the file * @param path2Pdf the path of the pdf file * @param httpUrl the http url where the file is reachable at + * @param storageClient * @return * @throws Exception */ - protected static LinkPreview getPdfPreview(String fileName, String path2Pdf, String httpUrl, String mimeType) throws Exception { + protected static LinkPreview getPdfPreview( + String fileName, + String path2Pdf, + String httpUrl, + String mimeType, + IClient sClient, + ServletContext sContext) throws Exception { ArrayList imagesUrl = new ArrayList(); //description String desc = null; @@ -90,8 +97,7 @@ public class FilePreviewer { } catch (PDFParseException ex) { raf.close(); _log.error("PDF Parse exception, returning default pdf image"); - - imagesUrl.add(getFTPManager().getBaseURL()+PDF_DEFAULT_IMAGE); + imagesUrl.add(getDefaultIconUrl(sClient, IconFileNames.PDF.getFileName(), sContext)); return new LinkPreview(fileName, desc, httpUrl, mimeType, imagesUrl); } PDFPage page = pdf.getPage(0); @@ -104,11 +110,8 @@ public class FilePreviewer { // create the image Rectangle rect = new Rectangle(0, 0, width, height); - BufferedImage bufferedImage = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB); - Image image = page.getImage(scaledWidth, scaledHeight, rect, null, true, true); - Graphics2D bufImageGraphics = bufferedImage.createGraphics(); bufImageGraphics.drawImage(image, 0, 0, scaledWidth, scaledHeight, null); @@ -118,9 +121,14 @@ public class FilePreviewer { raf.close(); if (result) { - String httpLink = getFTPManager().uploadImageOnFTPServer(new ByteArrayInputStream(out.toByteArray()), ImageType.JPG); - _log.debug("PDF thumbnail available at: " + httpLink); - imagesUrl.add(httpLink); + try{ + String storagehttpLink = syncUploadThumbnailStorage(new ByteArrayInputStream(out.toByteArray()), sClient, "thumbnail_" + fileName); + imagesUrl.add(storagehttpLink); + _log.debug("PDF thumbnail available at: " + storagehttpLink); + }catch(Exception e){ + _log.error("Failed to create a thumbnail for the preview ..."); + imagesUrl.add(getDefaultIconUrl(sClient, IconFileNames.PDF.getFileName(), sContext)); + } return new LinkPreview(fileName, desc, httpUrl, mimeType, imagesUrl); } else @@ -134,7 +142,7 @@ public class FilePreviewer { * @return * @throws Exception */ - protected static LinkPreview getImagePreview(String fileName, String path2Image, String httpUrl, String mimeType) { + protected static LinkPreview getImagePreview(String fileName, String path2Image, String httpUrl, String mimeType, IClient sClient, ServletContext sContext) { ArrayList imagesUrl = new ArrayList(); Dimension dim; @@ -152,13 +160,15 @@ public class FilePreviewer { .width(80) .outputFormat("jpg") .toOutputStream(out); + + String storagehttpLink = syncUploadThumbnailStorage(new ByteArrayInputStream(out.toByteArray()), sClient, "thumbnail_" + fileName); + _log.debug("Image thumbnail available at: " + storagehttpLink); + imagesUrl.add(storagehttpLink); + }catch (IOException e) { + _log.error("Failed to get a preview... Using generic image"); + imagesUrl.add(getDefaultIconUrl(sClient, IconFileNames.IMAGE_GENERIC.getFileName(), sContext)); } - catch (IOException e) { - e.printStackTrace(); - } - String httpLink = getFTPManager().uploadImageOnFTPServer(new ByteArrayInputStream(out.toByteArray()), ImageType.JPG); - _log.debug("\nFlushed, Image thumbnail available at: " + httpLink); - imagesUrl.add(httpLink); + return new LinkPreview(fileName, desc, httpUrl, mimeType, imagesUrl); } @@ -170,20 +180,26 @@ public class FilePreviewer { * @return * @throws Exception */ - protected static LinkPreview getUnhandledTypePreview(String fileName, String path2Pdf, String httpUrl, String mimeType) throws Exception { + protected static LinkPreview getUnhandledTypePreview( + String fileName, + String path2Pdf, + String httpUrl, + String mimeType, + IClient sClient, + ServletContext sContext) throws Exception { ArrayList imagesUrl = new ArrayList(); String extension = getExtension(fileName); //no description String desc = ""; if (extension == null) - imagesUrl.add(getFTPManager().getBaseURL()+GENERICFILE_DEFAULT_IMAGE); + imagesUrl.add(getDefaultIconUrl(sClient, IconFileNames.GENERIC.getFileName(), sContext)); else { int foundIndex = Arrays.binarySearch(handledextensionImages, extension); if (foundIndex < 0) - imagesUrl.add(getFTPManager().getBaseURL()+GENERICFILE_DEFAULT_IMAGE); + imagesUrl.add(getDefaultIconUrl(sClient, IconFileNames.GENERIC.getFileName(), sContext)); else - imagesUrl.add(getFTPManager().getBaseURL()+"default/"+extension+".png"); + imagesUrl.add(getDefaultIconUrl(sClient, extension+".png", sContext)); } return new LinkPreview(fileName, desc, httpUrl, mimeType, imagesUrl); } @@ -254,4 +270,148 @@ public class FilePreviewer { MediaType mediaType = detector.detect(stream, metadata); return mediaType.getBaseType().toString(); } + + /** + * Same as above, but having as input an inputstream object + * @param is + * @param filenameWithExtension + * @return + * @throws IOException + */ + protected static String getMimeType(InputStream is, String filenameWithExtension) throws IOException { + TikaConfig config = TikaConfig.getDefaultConfig(); + Detector detector = config.getDetector(); + TikaInputStream stream = TikaInputStream.get(is); + Metadata metadata = new Metadata(); + metadata.add(Metadata.RESOURCE_NAME_KEY, filenameWithExtension); + MediaType mediaType = detector.detect(stream, metadata); + return mediaType.getBaseType().toString(); + } + + /** + * Upload a thumbnail on the storage and returns the http url. The operation is synchronous + * @param sClient + * @param byteArrayInputStream + * @return http url of the thumbnail + */ + protected static String syncUploadThumbnailStorage(ByteArrayInputStream byteArrayInputStream, IClient sClient, String thumbnailFileName){ + try{ + // a random remote folder/file on the storage for the thumbnail + String randomUploadFolderName = UUID.randomUUID().toString(); + String remoteFilePath = ShareUpdateServiceImpl.UPLOAD_DIR + "/" + randomUploadFolderName + "/" + thumbnailFileName; + String thumbnailMime = getMimeType(byteArrayInputStream, null); + sClient.put(true, thumbnailMime).LFile(byteArrayInputStream).RFile(remoteFilePath); + return sClient.getHttpUrl(true).RFile(remoteFilePath); + }catch(Exception e){ + _log.error("Failed to upload thumbnail on storage..."); + return null; + } + } + + /** + * Check if a resource at a given url exists or not. If it exists, create a file in the temp dir + * of the tomcat. Files and folers are deleted on exit. + * @param urlThumbnail + * @return + */ + public static File storeAndGetFile(String urlThumbnail){ + try { + HttpURLConnection.setFollowRedirects(true); + HttpURLConnection con = + (HttpURLConnection) new URL(urlThumbnail).openConnection(); + con.setRequestMethod("HEAD"); // body is not needed yet + if(con.getResponseCode() == HttpURLConnection.HTTP_OK){ + + //generate the random dir + File theRandomDir = new File(UPLOAD_LOCATION_LOCAL + File.separator + UUID.randomUUID().toString()); + theRandomDir.mkdir(); + theRandomDir.deleteOnExit(); + _log.debug("Created temp upload directory in: " + theRandomDir); + + // generate a random file name and create it under the randomDir + File file = new File(theRandomDir, UUID.randomUUID().toString().substring(0, 10)); + file.deleteOnExit(); + + //Get the inputstream and copy there + URL url = new URL(urlThumbnail); + Streams.copy(url.openStream(), new FileOutputStream(file), true); + _log.debug("File is at " + file.getAbsolutePath()); + + return file; + }else + return null; + } + catch (Exception e) { + _log.error("The resource at url " + urlThumbnail + " doesn't exist"); + return null; + } + } + + /** + * When a link preview needs to be saved, the method save the thumbnail on the storage no longer using the external url + * @param urlThumbnail + * @return the url of the thumbnail saved on the storage or null in case of error + */ + public static String getThumbnailFromUrl(String urlThumbnail, IClient sClient, ServletContext sContext) { + File localFile; + if((localFile = storeAndGetFile(urlThumbnail)) != null){ + String mimeType = null; + try { + mimeType = FilePreviewer.getMimeType(localFile, localFile.getName()); + String thumbnailUrlStorage = null; + switch(mimeType){ + case "image/png": + case "image/gif": + case "image/tiff": + case "image/jpg": + case "image/jpeg": + case "image/bmp": + thumbnailUrlStorage = getImagePreview(localFile.getName(), localFile.getAbsolutePath(), null, mimeType, sClient, sContext).getImageUrls().get(0); + break; + default: break; + } + return thumbnailUrlStorage; + } catch (IOException e) { + _log.error("Error while saving thumbnail on ftp", e); + } + + }else + _log.warn("the file at url " + urlThumbnail + " doesn't exist"); + + return null; + } + + /** + * When the preview methods fail to create a thumbnail and one of the "default icons" needs to be used, + * the method retrieve the url of these files from the storage. In case the icon is missing, it upload the file too on the storage + * before returning. + * @param storage + * @return + */ + private static String getDefaultIconUrl(IClient sClient, String iconFile, ServletContext sContext){ + + try{ + //TODO do I need to download the whole stream?! + String iconPathOnStorage = ShareUpdateServiceImpl.UPLOAD_DIR + "/" + FilePreviewer.DIR_STORAGE_DEFAULT_ICONS + "/" + iconFile; + _log.debug("looking for remote file at relative url " + iconPathOnStorage); + + InputStream inputStream = sClient.get().RFileAsInputStream(iconPathOnStorage); + if(inputStream == null){ + _log.info("Ok, the default icon was not on the storage.. going to put it there"); + InputStream localInputStream = sContext.getResourceAsStream("/images/default/" + iconFile); + if(localInputStream != null){ + sClient.put(true).LFile(localInputStream).RFile(iconPathOnStorage); + _log.info("Request for upload started for file " + iconPathOnStorage + ", trying to get the http url"); + return sClient.getHttpUrl(true).RFile(iconPathOnStorage); + }else{ + _log.warn("Failed to get the inputstream of the icon " + iconFile + " form the subpath /images/default/"); + return null; + } + }else + return sClient.getHttpUrl(true).RFile(iconPathOnStorage); + }catch(Exception e){ + _log.error("Something went wrong with the storage for the default image.. returning null", e); + } + return null; + } } diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/server/IconFileNames.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/IconFileNames.java new file mode 100644 index 0000000..83d9d87 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/IconFileNames.java @@ -0,0 +1,38 @@ +package org.gcube.portlets.user.shareupdates.server; + +/** + * Icons type + * @author Costantino Perciante at ISTI-CNR + * (costantino.perciante@isti.cnr.it) + */ +public enum IconFileNames { + + GENERIC("default_generic.png"), + IMAGE_GENERIC("default_image.png"), + DOCX("docx.png"), + PPTX("pptx.png"), + PDF("pdf.png"), + RAR("rar.png"), + ZIP("zip.png"), + XLS("xls.png"), + CSS("css.png"), + CSV("csv.png"), + DOC("doc.png"), + JAVA("java.png"), + MDB("mdb.png"), + MP3("mp3.png"), + PSD("psd.png"), + TEX("tex.png"), + PPT("ppt.png"), + XLSX("xlsx.png"); + + private String fileName; + + IconFileNames(String fileName){ + this.fileName = fileName; + } + + public String getFileName(){ + return this.fileName; + } +} diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java index e6406c4..85f9198 100644 --- a/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java @@ -1,7 +1,6 @@ package org.gcube.portlets.user.shareupdates.server; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; @@ -19,7 +18,6 @@ import java.util.UUID; import javax.net.ssl.HttpsURLConnection; -import org.apache.commons.fileupload.util.Streams; import org.apache.commons.validator.routines.UrlValidator; import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager; import org.gcube.applicationsupportlayer.social.NotificationsManager; @@ -84,12 +82,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar private static final String STORAGE_OWNER = "gCubeSocialFramework"; public static final String UPLOAD_DIR = "/social-framework-uploads"; private static final String NEWS_FEED_PORTLET_CLASSNAME = "org.gcube.portlets.user.newsfeed.server.NewsServiceImpl"; - private static String UPLOAD_LOCATION_LOCAL = System.getProperty("java.io.tmpdir"); - - /** - * - */ - private static Logger _log = LoggerFactory.getLogger(ShareUpdateServiceImpl.class); + private static final Logger _log = LoggerFactory.getLogger(ShareUpdateServiceImpl.class); private DatabookStore store; /** @@ -146,7 +139,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar String username = currUser.getUsername(); String email = currUser.getEmail(); String fullName = currUser.getFullname(); - String thumbnailAvatarURL = currUser.getUserAvatarId(); + String thumbnailAvatarURL = currUser.getUserAvatarURL(); // get data from the preview of the link String linkTitle = preview.getTitle(); @@ -156,7 +149,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar if (urlThumbnail == null) urlThumbnail = "null"; else - urlThumbnail = saveThumbnailOnFTPAndGetUrl(urlThumbnail); + urlThumbnail = FilePreviewer.getThumbnailFromUrl(urlThumbnail, getStorage(), getServletContext()); Date feedDate = new Date(); @@ -192,7 +185,6 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar }//save the feed _log.trace("Success writing onto " + vreScope); } - } //share on a single VRE Timeline //receives a VreId(groupId) get the scope from the groupId @@ -228,80 +220,6 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar } - /** - * Check if a resource at a given url exists or not. If it exists, create a file in the temp dir - * of the tomcat - * @param urlThumbnail - * @return - */ - private File storeAndGetFile(String urlThumbnail){ - try { - HttpURLConnection.setFollowRedirects(true); - HttpURLConnection con = - (HttpURLConnection) new URL(urlThumbnail).openConnection(); - con.setRequestMethod("HEAD"); // body is not needed yet - if(con.getResponseCode() == HttpURLConnection.HTTP_OK){ - - //generate the random dir - File theRandomDir = new File(UPLOAD_LOCATION_LOCAL + File.separator + UUID.randomUUID().toString()); - theRandomDir.mkdir(); - theRandomDir.deleteOnExit(); - _log.debug("Created temp upload directory in: " + theRandomDir); - - // generate a random file name and create it under the randomDir - File file = new File(theRandomDir, UUID.randomUUID().toString().substring(0, 10)); - file.deleteOnExit(); - - //Get the inputstream and copy there - URL url = new URL(urlThumbnail); - Streams.copy(url.openStream(), new FileOutputStream(file), true); - _log.debug("File is at " + file.getAbsolutePath()); - - return file; - }else - return null; - } - catch (Exception e) { - _log.error("The resource at url " + urlThumbnail + " doesn't exist"); - return null; - } - } - - /** - * When a link preview needs to be saved, the method save the thumbnail on the storage no longer using the external url - * @param urlThumbnail - * @return the url of the thumbnail saved on the storage or null in case of error - */ - private String saveThumbnailOnFTPAndGetUrl(String urlThumbnail) { - File localFile; - if((localFile = storeAndGetFile(urlThumbnail)) != null){ - String mimeType = null; - if (isWithinPortal()) { - try { - mimeType = FilePreviewer.getMimeType(localFile, localFile.getName()); - String thumbnailUrlFTP = null; - switch(mimeType){ - case "image/png": - case "image/gif": - case "image/tiff": - case "image/jpg": - case "image/jpeg": - case "image/bmp": - thumbnailUrlFTP = FilePreviewer.getImagePreview(localFile.getName(), localFile.getAbsolutePath(), null, mimeType).getImageUrls().get(0); - break; - default: break; - } - return thumbnailUrlFTP; - } catch (IOException e) { - _log.error("Error while saving thumbnail on ftp", e); - } - } - }else - _log.warn("the file at url " + urlThumbnail + " doesn't exist"); - - return null; - } - /** * Share a post with at least one attachment. */ @@ -331,7 +249,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar String username = currUser.getUsername(); String email = currUser.getEmail(); String fullName = currUser.getFullname(); - String thumbnailAvatarURL = currUser.getUserAvatarId(); + String thumbnailAvatarURL = currUser.getUserAvatarURL(); // Managing attachments: the first one will use the same fields of a link preview. // If more than one attachments are present, they will be saved as Attachment objects. @@ -664,17 +582,14 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar @Override public LinkPreview checkUploadedFile(String fileName, String fileabsolutePathOnServer) { - PortalContext context = PortalContext.getConfiguration(); - LinkPreview toReturn = null; + // a random remote folder/file on the storage for the payload String randomUploadFolderName = UUID.randomUUID().toString(); String remoteFilePath = UPLOAD_DIR + "/" + randomUploadFolderName + "/" + fileName; + //get the Storage Client - String currScope = ScopeProvider.instance.get(); - ScopeProvider.instance.set(context.getCurrentScope(getThreadLocalRequest())); - IClient storageClient = new StorageClient(STORAGE_OWNER, AccessType.SHARED, MemoryType.PERSISTENT).getClient(); - ScopeProvider.instance.set(currScope); + IClient storageClient = getStorage(); String httpURL = ""; String smpURI = ""; @@ -692,49 +607,44 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar } Thread thread = new Thread(new UploadToStorageThread(storageClient, fileName, fileabsolutePathOnServer, remoteFilePath, mimeType)); thread.start(); - } - try { - //get the url to show (though it could not be ready for download at this stage) - httpURL = smpURI; - - switch (mimeType) { - case "application/pdf": - toReturn = FilePreviewer.getPdfPreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": - mimeType = "application/wordprocessor"; - return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": - mimeType = "application/spreadsheet"; - return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - case "application/vnd.openxmlformats-officedocument.presentationml.presentation": - mimeType = "application/presentation"; - return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - case "image/png": - case "image/gif": - case "image/tiff": - case "image/jpg": - case "image/jpeg": - case "image/bmp": - toReturn = FilePreviewer.getImagePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - break; - default: - return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType); - - } - - } catch (Exception e) { - _log.error("Error while resolving or previewing file"); - e.printStackTrace(); try { - return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, "Error During upload on Server!"); - } catch (Exception e1) { - e1.printStackTrace(); - } - - } + //get the url to show (though it could not be ready for download at this stage) + httpURL = smpURI; + switch (mimeType) { + case "application/pdf": + toReturn = FilePreviewer.getPdfPreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + break; + case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": + mimeType = "application/wordprocessor"; + return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": + mimeType = "application/spreadsheet"; + return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + case "application/vnd.openxmlformats-officedocument.presentationml.presentation": + mimeType = "application/presentation"; + return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + case "image/png": + case "image/gif": + case "image/tiff": + case "image/jpg": + case "image/jpeg": + case "image/bmp": + toReturn = FilePreviewer.getImagePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + break; + default: + return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, mimeType, storageClient, getServletContext()); + } + } catch (Exception e) { + _log.error("Error while resolving or previewing file", e); + try { + return FilePreviewer.getUnhandledTypePreview(fileName, fileabsolutePathOnServer, httpURL, "Error During upload on Server!", storageClient, getServletContext()); + } catch (Exception e1) { + _log.error("Unable to extract a preview ...", e1); + } + } + } _log.debug("smpURI=" + smpURI); _log.debug("Returning httpURL=" + httpURL); return toReturn; @@ -944,4 +854,20 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar } return toReturn; } + + /** + * Return the storage client object + * @return + */ + private IClient getStorage(){ + + String currScope = ScopeProvider.instance.get(); + PortalContext context = PortalContext.getConfiguration(); + ScopeProvider.instance.set(context.getCurrentScope(getThreadLocalRequest())); + IClient storageClient = new StorageClient(STORAGE_OWNER, AccessType.SHARED, MemoryType.PERSISTENT).getClient(); + ScopeProvider.instance.set(currScope); + return storageClient; + + } + } diff --git a/src/main/webapp/images/default/css.png b/src/main/webapp/images/default/css.png new file mode 100644 index 0000000000000000000000000000000000000000..6c26e3f01f1a13a5f559822e754a9c31a632641d GIT binary patch literal 7441 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 ez-RlhBp#{nwz|=UtU2!Y4?xUj9GV{5;tJ literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/default_generic.png b/src/main/webapp/images/default/default_generic.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e069519909cfc23ce4f424cfd87d36385f70f2 GIT binary patch literal 1186 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 bW1;g821x%#V38;W00000NkvXXu0mjfxHzBH literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/docx.png b/src/main/webapp/images/default/docx.png new file mode 100644 index 0000000000000000000000000000000000000000..f623068c52e8975aae4995d4c2648d46f6346905 GIT binary patch literal 8805 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 bW1;g821x%#V38;W00000NkvXXu0mjfxHzBH literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/java.png b/src/main/webapp/images/default/java.png new file mode 100644 index 0000000000000000000000000000000000000000..423897f0f2b06878157dbd82f64d8f3fa5422876 GIT binary patch literal 12015 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/mdb.png b/src/main/webapp/images/default/mdb.png new file mode 100644 index 0000000000000000000000000000000000000000..b880b0ad7b4ff32c1fc8d53e8fe4f333ee15ba07 GIT binary patch literal 820 zcmV-41Izr0P)OB%4p|iO7nGZg&V9!>XMczpZUGXqx6bCygXYipOHH6IE4TI;ry*%L2d)r_Cfuibtc-!pO*o z=(N^7%?PvvS(amgK;TQOB%WLVAP@*dTP5L&0JKiRH39e`F+M&n*{$KK0NhE`>-Eoe zC0rMPJBeDYmbWAEECc`~N$RvC@gxGKX^Hn#r< zG)-e>W`^0>SxnO;7z~n1rI?$WqobpP`T2Ry&(8ta*w`SO%`!1Dfu?Dc%Vl(3XJuuD zMx)_K!1fF%ih^MnBoYY##>U1d7K;RfK>&7kc350oWO;d+>FH^@y1D?^+}vboX$e`D zi9{lf1`iHqAQTFbN~O>=ja)9rz`y`oTU#iK!p+UiLr&Lq*4Nh=9315G@{(jSNhA_M z*L5x~E*uNko`Fy(#L>|a;c%F~zCKP*PbrtnD2nn+*5~tK7zP0Oe4f3%Jp@5uXlTg( z$iHJ-puN4FN~OZ??k)=p3v6$1Q>j!Qme4)2EHgDVMJAI0;QIQSveaMZe#lw-U6xrbSVF ydwYBP259Le-D7+{UjxV<931F>vyX?zzrr_cuIEt(i>$@~0000 z3$H)7V%0MIKNlL=Ff>&BTM_+?s>am@1=6&PTeqxl-aphoHsQ$C%V~<#q$myRrD6fn zl%T!8h`SeDjkle37MkL?r#a3SloZg~U|Q7yt^FBU55j9iltvMMbxixHRShR#jLsMs z7~HF>U}lJjG7(@bE&Ih|y7SEg#Kp3(_|-0#%fr>8l*%QPa>Nr1Dsv*JR&}SU*TW>x+S)vG^r+^22qlNQBBG}OaK<}HL@*Y2 z?f5Bn^&F;!Q)gn{`S0W#fA9!c6?r0nz-US^#SrfP&>}vov$L`+3?UE+++PAnoGAn% zKmZ~lfp1s%cJZyQ9Rz{`m1jk@VqCB<0(9MXg?OuJO`^6U5h=(da>=-|AiO!?!`INro*-* z7(GzJvP-YP>^Yq^#-*}qw+`a+iPPkQ z=`-Zf*IvdQ^B2k^ukJ!mT9&Q9c}+UXR&Kdy9)^uS1#CheB@qHn1{>c-u8%*{+IRx% zH~)}UJo^(o|J%Lj&>W7!;)65KMpG__HUGI2?>}=k%A^?8eGE5W@E&AiLs0eDC}{;7 zkBW%9P6nG=9|Baf5&CJ@fiE;u5tE~s*Ijo#9^1W>4|E?vN797dy+?Wbq5Wv@>f@U( zxCFC0e;1pGn4=^@jv^S7aue2XMhQB}W4`tQ}Z=pr3#Tp56-hS-)yApB73;sFU3>Prhw}L* zAc~;PO=vHaaO*|y$1KNu;9GzwBJ_6m;M2n^UY;`1y`VW4V_xUEm^*bkCXQ+cgK%V^ z54#Q>z_yon;_$IPfPuUczP@M)W=@)lG)+;(MhSJ;)JX>!T3cH#9zSmM_7m_f3koBHtfBv0L$bf+vhEG2e!8I0wqFgoZ#A3_ab-36qr(qfBN(5@U}6NP$-rG zRs@ED3JR$K4B-Q3zXKPZF$32=vku1jP$(C<7=g!? zEbf@MkY{&xGF4V21f_f&^S3sv<(~2FC=?2O-&KowdfNn)Ov+$o2vx@Bs<$Dq04N*7 zZ7r?*oojA@*p&NA1+0AH2izPd?2Lu$$JLb&?1Z2^&s?%V%GO}>@K|s3 z^#~IqU?a|G4NsE5`zQsFwFAr;KUCuT7cFt=0dV{Z0EApF$4_p5hIQN+w$@;ndoGwV z3%su$ksf$IAM`pu&t+4_hu`%c9!EJSz?)v$&N+?(`{0nLG7(sW{QDJ9&4|QFcQ3y2 z(NBp_4+3&^D!KlT#Q>Ho3rF1G;Wv!11>+#-Y(%?M;4de|5<+{xrZRC5iz)~i2z~tG_dQm&2KCqkBH(wO+*TTE z#fBwO)eLO1(gQyhE5VA9G&Nyy^*C%iQhq!*nSs#gmKN5L*icO-xfsn!;y>0xnvlc^ z;y5{_tdc~Kiy|~737~)#g{nn!l1Dz50HjrHi0ZRj1yRNXw04tg*eELq`8eT!T=QKl zT6qT#k+6v6B+g;gx`+Ahe|?yfD0bV75#FW_o2sAB#WAnmya6{qw2I?62P=k?T*C8L z+=AQIJjf)&Zwt4yMteE)@~@zAdAA`s_|ppX~45942UJ}oPMvQhGp8?Wk-ltfgs4{_KY ztzi?sVHt!s2KwBOR;ua_oAr?fIcBg{Xw1f@9)*Y_ME-UD@Iu@}aTMV|Z^LO?ZNV*v#(#84;*U@O*JstRju;MB6!khUo@KSnC)K?pD~A`DVk5jJ7~as53N zsv(sC)Vo%OAUh5K1XY0w)gdI}S4qW+K*UIDtXN-z6>&JhO;a0TQ%etgK&nJCQ6(>( zTeEOp%=LlC#?IqA`8V~gSx;}dB%!`H43W+Hh3XXby+N_!(k*gBl3E67=Zi^ zRDGg)yu`xqs`|k~Q1db*=bD9(1j*o9ZWB0FQ8vbcBCu736%)2u*iFXM*$|r`9hMFW zb%Qz_VTC0pP>8!1R@z}xodk&0O*#W162Lt?BDYZ}Bp_tPNB~I09q53NGe{d^jy3>(46ATsDBJ~d9lb3o!3$A_7eZ(hqI!g!qG}yNOp)^%Ml1rx2#45R4L(Lf z9ngS;I>;?F`0gs)0ZW9j)w>{XhX_csy-<+HrNmIH=omAWi>3^wn5_cEauJi-+L2nr z#u|ju5St)@kQZ5h26*zs$-v+c>zI6)fbitDv98@C9KMrPSv;~Cfee0SM&>qUo8n{d z{Zl!+<23XP4oc5JpIkck_vPXlbD&JZ;NT%N6B~a({mG7VF<`As=$L>TF1uPV*e@s! zp=I=F`TV6$r?s(AdSJF)q1mf~l(tfYrOaWmfR>A~jD zt;F+7zmD$yfsx+E*XunAd9((L1*{()>*+hciQfJ}+`jM{JoUu~vG(uo#H-6!Bi0xa zunEQ^O$`QziU3hx!=F_Oh4kIW`UjpRRRMv64-QC?D1jr8c$a4!Vyx=3ROs=)B9N;E zucHzs!A>Otlo+HUR#`|SLgdCsjTNZljp1VkjImrwQ^XP0zvH~lt5H{?`pWG~m!45B zr=KK(cU;a9sM`;Zu)r$Z+p9>c63EYryrhtd6Ol6!PW77rg6{)|7AOQMD%+G=n)8_0 zF@~aCjzkpsd_rw)Ei_at;>SPQwB_onK73_XB(8dg+6TDTM1heJ)=6(|U|r#*)RHf! z`e*9%df!HVd?m;CTW=nc$rHz6uuzh|z5y}DBHt9t!9z#z{qKG6@h{zR+XqoA*@27z zZulh?WMgkb$9WqP8SxAlwR6EriZo5RyZb1P^%pQ~JcAfx+gtJap)Ov({*lLb?|yLs zLdnjB$fpMxDY2I#C*^Hin?H!+1Cj3&cGmR?{@#6&_4W<`#M0j0D#ONO-MTefzp`@K z{H>2}Rx~KN5ePL-i2)~1CP;bK>-vO%6tE0^1ghk-8`sA|nb1DE6^Fvg-+RyU1}on% zkW~^g@Cj35K~-i1sTwv!HEe3ebC3WD`)pL1nJ~7k75fjo$s0DT&A=uLAtopkjZwCFY1`}>8O$%eB%fgc7BBwD zl23f{FHLF^g%Z^DA=lg2Q9&M}mEZ)=xYp}b(*X|;Tp@D!_)OMV{rBg#zjFV5_kKGV zr~pimY0%36N&toc3;-yEx}iFhk}!$b>Hf;qT@e7TyXXWLM#%c2b#kOm;nKPlHUMmp zY274>PWpS68emnqaI%JG>7i)0UX%4#gZtI;-_smHvKV^J^#A|>07*qoM6N<$f}Ow2 AEdT%j literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/pdf.png b/src/main/webapp/images/default/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca274920bc24edb8a4023977cd0e4d6b3b16108 GIT binary patch literal 8826 zcmV-=B8AWA2vwu$RE_=|>*U@2aZ_zq>I<&4m-CCi)Q)}zhYPs$Xt*NtJJKx@>)wQ;2 zr&`;!PUkp5^{j7Je^V7clnfLv-{J7no`&}+?oFKU4oK6oNJ#?hd z(P87`xbd5Dvu8eh;Pt1Te5mrF2U?d7KIS(aKMH=Z2fqCS@I2lR=e|DhdwRk3cf-`% z1$}oX<~lnu-O+)GmNtwxx8ceYhw#CUQhb<@jL(x)n5b|1wdLyA|L_aOIDvOb@6S^l zJjD?myTcjB+g))y9~~Pn#MyagoZUvThhwGKtd2OFO_0J-tn!haXV=`nAv~WiaKP>M zafAm#yJG~W7dDpp3~Ns>#IF{9;_Ls>ge^O*s44i0g3C??G@<94wAdT+88E_?5A<*l&+> zIkr%2EP@nkC{`8+IEux}gYY>jpaU`CdAYW!_mA>Q0sfuXY(pwlf# zUqJq{0t5+=81*CBCGVJ-LhU&M~}s8H(_DemR84Fd0&)Y8;`;VPInD9LIn;1{@B< z<1ArNGeb2~EOrUg6ar;T(F!Xi7 zPFSD6{2auez7$3z(8U4`{CR44au{MVtm*{ll}Y%zy$ye^ti;fT5mtGt;#pV4qi}+F zCp=38o;d=~6v8t_;2Brq84Wh*4OaGk7dHzqTzSL8@MxQ1=xT#~M;5+#;fH|WK(MJC zKEgw3b_8N7Rbn#u{A^rnsKeQsDh!<;iLvrzFp795JT3yy5`kw9;h7`wOc8iS8PK|M zz-T;oPX~-G4RBW$;>xQpAn5S`jl1yAx^g)F{}ND^w-Rx?3ht78%XQ z0kCTuP)>+Db0kDxNiOE+ITYHN<6vx7$66|eq(@9 zmFH@%g?_LPrk!~hef9|EfA<=k+Isk2q80|=KXVEwP6w(AfXaLX%X8r`%*3>|6(b!C z@4|*FPYy2u#y&9C#xv-xSYUwG7yw-^4*`bprdiu|wZPQh4MS-zzCQUj;PXPfK8hs< z_u~`rJ%0is0MBoJ0aOs)?tBEQN}!`5bGfS(r_K$>HZYy>HN#v{fNSr*1I*}v=1K%>isAkFD-vRGuNMASpF?nA0m1s62sBng z-`arT?lzo0KfH;R$MB?xn>jEH5qSEI06L83ixvXZoj(tEV>JvNEmTcKKy3;9ADzb1 z(jo!}27tzLLM(;x(kH-Q{s_=D!NxMe+l_fz?}qz2|2=q|6mjzgMl>GF{DK8sEP$MD z_M-0m1-PnqVSy&Dize#T{tg&kc^->YUB00Yq^esyv=>vQc`!|k1Hbt>f_1y#uPwv$ zKo3Ut^w7XK&)RnL@nke{QwGNBc(DV%|Kbam{n}<2wJmTLq~Y&}41KkansxOl&58aJ4B#Pi8M2ucVuznW;?G2dk)?#FDA5Ne9cryn^ z^n~RI%WM~89~f)nvCPdAAh%9H;}e5=Q%@(nC0Rg$8oqb_01<%k&>l?u>3!hJ=K$e> z&{%@B4hGulF|TdMFjXGmZF=QJx}u>sn;JK<-W z)>?QA)1}8zi`zBJh<a|(G8Unrk5Brolr1{%xsLiMJ5*)r6Oa!0r+(5Z-W~R%+WB zJ%<}l9YTP9?=MPUcNU8>FrEA;uD3SBMpf-E(5!l`uaHFpZ-GYi&~+aAZ0_ypaMI^> z<)ukSAx8~Iwi|@4!!hKEhaUxU>X}oqP{L+77wLuEF0?%Yar~ z<0;6XuE>C!z&r)%bW9hWdFgO5Jc1LpX~5?a+%`hXNrRo>Y?*3s8ERP4Q(;ym!*SwS z2Ds{)7p^?kzNXj!?fVB|uGCT@aC%{@EDwiz$836ris)gGG4AmhRaTaEh`OHhL@#=H8Yg} zRRpMlDOCafyH7K~d%>faF*6$jAoti_=&LI+r&hw4l0c=O2tktsXK^lOYAP|@-b8JC zVdXy0vjISA$*~*_L<}Hqhfw3CiEkN@+0Zse%V5YJhQ%VJ9lD5LAjE5yV9lFX2oN1{i zyvTdojRTGs=1LPjFwlW()fMm`+zT%u5nM#o$?fWp+f@v;tF*?kb|pMZCc#nFnbK1T zkl@l%2~Y`rauTf19G3yt#v@F2G_D^|Kez{zWn~ykOu)@84`VuEE3P#+;Z#GN{C^lT zk#`sy2b|cRjYRe?{4?D z8w8|GZT%L!0EFkhkFj692G8CuxTwn5mc$XRItk9k+BI8hSJAROB;=tl+fRnug_(x46-l(X-P}IP1QH1DwTNeX7 zbgzIB(^Ug^wh~jP&p`jlC2-@D5O!{-mQ}HKjo#CRhlFU9hXl2&5(_H1UFTT4DhV!` z;1o&FB`Gi+pNPqaABFMAF$Q>Vc(Vpf>tX;L``^QOx2+2w(!iKmQF*QqVDuv?mv1e= zyYK0;Q!w$$Pv8zL!8tQ4-#uijL+vV8U39yOMpbmX&JoM8!#@GPQq-0>^?RPLetB=N`5NPyMm9+uyzNgDkVM5ymR}c^` zT>`I8ifq^Lo-W+3qF!}}c1@(JBe-dTnBRG-vbhMXa8)CJ1Q>74Xf=lGzcwMxr6(W}*4GEFjRb=f-RVNx))v1*t zwd=o%ITPr(%Il7M#jCu?+Gn&|i)G6;F&G)M=quKX;G`74ZBETu7tQsh^vGqA=y_{ONgsvtE!T$%c~_zd9`FNtCUQoRg$r^LNe&e zB=@6FNDhBg!h9z|oCI-_!{L)`PGDDnILT`BN;Y7zdFAslpG@G2||+~R2`v75aLRxI>Jmxo|P-fy>g}Gs#$@!Dow(!#?>sx6;)?K z)fv$^MoKH$P=t{zzl2?TzQqpzs957_Rp(=e9M|!xb9hDbu-SZ^mO$rgZ!SF3(`&=o zyM%753PknA%L{|Zm?lsYw+_N&c|sh7$?`ODnCS>j0@t;4X5A`k+q{LwE`3bcn4sY8 zU#7s?8bXsGR2`v75UP&ks>4i2u9YhYag{_|E9EAk#nlXPrm`wFlveO?2{tK;A+M-{ z2l9&9`N-q!gus;K*@4v~1g7y^`0TN0@=mgPMQr2cg~8cNWOz&wcoFi>Csp0rxT@2{ zp-Ir_`ZZ)NFQVZC^%NW$A)n1fp*P;7Ky?KnuH=I_FT{Bu&JA&hDw6C8%t1i5NCk6VOd;ZIrr)nN%nV+mCk74lXSngpRq(C9U_)KXPR(LXbVe)JG5#maSE1^k9RyD51__&rpTww(d>C1Ugx10wGmUDl88TV!tv3=JQ?0~>j z&B~Yjfg82{)B}; zg&_~!m4dZZ)cW*yX!PQrDR9Tv$b8*;@B*;=; zi6)`M)u_gG2yq=mTnABg1A2(lm2qD|Irrw5a`&=Aw(We39sWpa@?$8{}5)T+ZwN0{k^z*D*cvLm`7qlLUx<>aYcjw<{q z1uuR~&b#j+XGJAprX$3a&?E>=g3QY+2~9#0RaY#UgjRKOTp_L(;(GGSxjV0vyK>9; z)KWcLcRbDxZzLso7R!_bUTA`xIC*30^{hBj5ibu<&nP^0k%so{rt@{R6E%rgT(R&c zEc^*G9R<)`L+GqWzxvk{hAjV&_mUg;JvXY&0-Pp0dCU&7u3k$v2t!=Sf-9N?jg(ao z;wl-mCZSaw;@X#os>?0qo}4o7&Mx7utWrL?SkIP+A7wiPrXtT`^|Hz0hQRO?1javl zOb{3vmlsk54npAB^|eV&Lc~=ThpNL&2Z5^~uoePqX|Pa7{U02l;Q2q2d*eoOBBl;G zt`!wDeCJ){J^M#;96Um%l5#?mAT$X=lOQw+LR_W6@g|WF*Pc9x%Z0d{Qa+Upd0EAL ze36dL+aD86Bqe!fx4@IWz@#(DLMW~f7$+~R3VdW2ja|D+iEFG$XmL%P=>nMNj%>V< z0;eyK@1uHhmX<=G)+DS&#bo&5Uh<&2&A)k*4Ehp?s~|K9LR<-Pm6Rq?hN>%vv~oyO zia1eqYFr@?D+zU`TS?fbBP_wlP+UYOUj0uBVD59?_jhE+z0O{FS(6|vzsUIe zcgPhzM~2sbON07y8UlzbA+FMdRhOk!U1l)^mOx+;1Qv7Kf&w;feN+gXRGt;`%pM4I zu~7&Nr7bY|#6Va%S{pAfC*Kc|@b^2;P~p99^9Y8R?biED`v z*9mbQONzODG2|^O)#wDRkxn z_3he8qgU6UvubhmU$z8WMIMO55=>NI>(5^#AL8lUwTG-_J9iRi`b%uums92}mlS_Fun2-qCYp+qQ$cv-9at)k>=0zMER!c#Dh{7h%CqHe9XU zLuC2rC>h^)n+z}fiiV&4F%3NV3>o$vB$G2BnGn0arcQ1{G`s%h0q(wMD|hdFihG{j z%l*H7kB57WJPgV0cWmOu=~)oCTL?^U7|HT*|5F79(-C-H2-HqVsX%5BXOrXQ1;z#L z*g^i*(a70_wiwerf2VMmD-aJTPeHmVe#L^|f`} zFk>mV&dB8E8Oyk3UI8E5{0R5H@h%^owv>my`3PGeFe$dl@&pFslmsRpF~e(dGW0Te zAcRq*`{5nrtEo;}_&daCvV!c8*Sai+x(_sv3(_qQZY9&|YiOjXj12k3gzY980R8!; z)CYR=%RniiyHa;<8Fl595Sj#GrlaGT#nib-Cv_~y=i}Gm3F6OQ;o$)j4|^hfqOpw+ zKlwf0zxD=xXHGW1Ua^Kdp8RKSn3l_jl%hNt2fNZ07z!tU_Cj2PQAv{r0EwT3;!Baogz+j*oHh*&~1N3AAbEC9ckm<9s~E*w{i2jTlmPdEC}2Mf#Fo-A-)baj7&iwBqg3n7Oz7PsL30p zU~rTILg2&X!mf(5Mv1Ev!|=(RJbM4WO=N!m03EEXAw$2BY<4dhR;;EW%yL*sjL&q0 znT{~i#Z_GibwS)Ih{I?Cfe@Ej1cAlWzN8QWi=@_!B5r}W<^_e^vOv#GXcot2=W^qW zY;J_Gqo}%uY0J1_RvsUop3MWBcC*2rQoD2nc9e_YhUX=VG z2!SWJJ*+PLR|tVkkk|B!Uy`f21C^ws#^?8v1GC)7_B}L|SE2}nxIT#Mg}5Gw>xQ^k z)gi7Y*bz&K2@q}scmfNX6 zw?qiUJ{{s(I&oZ4bsb8RppIBviy%-h#5FC@(Xn|tLR_WzxHdrC(aXg_B;-NnVGtAO z3{Ec32zds`8v(;M`Gi(_0wGBg7xw`cKLl#>BIEHE}{-fN2p=JIR;fFv(6qP6B`F)DO)^Bd5VO^={u!FbVLBr4ejQVf5m3o&IDl=V98Kfo8bREe} zLd3Nh;?N|7JWX7IERN7s3G$?bs?)?xE-)o|UEL$x(%#D!n|t4s1O|jW0C{L0jOa?5 zJm3cq*mUnE8d#iz%((!pY)HyeYI_6|k z`&HT0HanYIXJt|I%q(h}v5cChFQa3iaatxF1r36wbOan0ETMV@>Cm(#5VM#Mroczj z=5znu+jzv`Pf1>Ddk=S>7{JWvxc!q0Jgo=}#9|AP>hDp(gJvmSo)_Rf@_WNH8j32Q zOGn}e2QDY%kHiRrU?5B(AMh&#WqdLrK|sc<;P(aWczAR>#y6#{(`Ns||e$@2bGgQ21ws@ugb4v>Hx_b#Y&7K>Y&bXNs} z28JyB{s#vczeI!aOVl7Qs>wra%~l^0rpY^SsExmV*S$Ze+i=4yAtGI(Q3xEDr+q+K zNc8$frK!jR5S4;F2jtnVD3455k2Kk?3M4^FH~;4KH~G?~kHxwkk&Vf-sPf!#^6tFz zo*&d*w{f=T9B~7xcA|l+-*v>D# z^eapbqcM3F+vSzF|6sE$@B8c5UoT?&=?a8AAmsT3qYP0JEgzxayi)L_Dfp;g|e$fyvQC@-wa3qhKK zTb1YX28ATZlcfPo9>f8^BF-T*ez?&WI}MM9A%MKt$xz5skC-X)OtL(PLv&?%vN$PO zp0-3AF*^B(DiA42t6@xCVDfLbP~^##22^=?9ba)WnmmY0e&{U(#>+Em^2EjfI8@&(BHYzu zKx|w1?r+@x{puApLf&UeAQ)-#`XdSQz-KQn^@rXjhm;gs$cx`q+4ue-4AQ^jBgang zJ@;;UuCSJU1tMc0GZ(*2j=X>tk^g{?(SXEs! zd&$zwS+i!%mPN|UjAI6v9wUuE(~F9VXI^{F`WbKi;Sak z4#)<}KqgoM7K0410L%qfsj_EGCUzE>0~Ug%Am^QT-hKJ(xl4bJo<7f`(Q`2(qvI$i z_`@;AI26_hhQ`76kxWp*A5=GJffxAvQGrLs8J1?#|CPz!26 zB`8&;XRBftsE!gFkT5$N%vbH_fI?7OQ&aPW4I8fCTvxYYJJ<(yB^D`#u{rv}zM_w2J$j zT6L?zDz);eRB0tZuR6$7lQ~~?G;`AXpel2gDs&E*2NtOD&QJv}QOQ(gXMt>$994dv zO1?@#9J)C42^3xdeFC~T3RJXv97w*`39=IIc|a6RhAL_Sm-T!8$*;tYVCon?; w;x%SX!t4pS>Ju_Mkx9N^a<|o(K9$bypQJe)okUAweLO%=|HR&gb0s?#p>~-lu-| ze&4-$sJTCXo<8EKs&(V1No&WMoa+-zu7X6PRr2Fa%9?nSxN4k9TshX{SRQAxuNZ5x zEKf95tV%UqUpLuwwP32LBtK{R#SOVJ5B-1nxZR#sE|)h-)7()`r-xb(wFI@Qq(lkV zOQUWSf70zw8ge0m_lB5|3gjmzEe)c!5nk3KX3oLQFeFDh?NxLhW(+kPz zgXQa^xVd8@`20kui~7O2XaHP#{xpMx_!2W!qVFu&3Vm03MunLYp| z^G0Id>|`7~dIC2%8Hz`T<|F9-B+fu(s3BapQ5edd$PBqI&f7>KB!*@nh7cJl1i~RI z>|O#D(2}s^dAh(PG9^jXAD05`w^5^SlI*IdRWasQEDDizWsns zLJgs_bB4qoTq1;89D-(ua5!q=8N5o!26l#>p@6eXwQv$_1YKu8WOkzkdOZIBW`am! zeeRTZ@(?_$W8qkr2=~J0;GO$4to#21)o1p@Iju9)=}}N~xqw(p%BdDmbFj0m)MX5!Sn9N&}B!(KQ941T;^$AR{K!~+4d4i)>C{H+e z!XXn1>>;5{9&gC1fs#J0vpQv>Ii(B(;#e2hc|C9t}Gr7Px%i3 z0Jl?ve)A@*d;f^?*XN*oVKn62o=~TBhLYPGWs64Q^SN>O?BLNbD~|~?(C;Qss3*@+ zPaYqV$Jdi*uP2YI5hym7z>vHOCT~X;q{0+<*2dy&emY!&1HpB%2o#Klx_cgcUN3Hz zp2bZ~fX<{ACBZrO8CVuX}#q#k)h~~k!K9s`^zJkI5r2eR%n{QhVqWWw1cd%m@)-Ps$YXGK$_rJWjT2B+)pUWi!}d#(w&iO}-_{HWTeIQcK*6zQH2i72G^{*AC1Hx*tbtKqo-HI$ZM;CIsvW=ms&eWOe6J-#E=q;E zhUUC&^B@U4oL9a>a7QMpsT%!sok{dtuF~;%Lt-F5mPC)kp}Z_6uNfOU-|Fo}aLKM{x4PWj)FCm86>7Z?rYF)UUGgm453=E~zto+ob@xDBcBuN({uRbT)> zVE^yIE$D}e(?@Xg+`$@wTaroQ1XLHrBS7JDV^bE23#Q}K18mN-Hn+TxG`-mZgp z7x><9wx04A#)Dr^m9?}VUV%o)%%t$ItUpID;jHEhjC;yc zm^8gP1EZll1`mgzG)|zlb2h}~LtxJB1BK@hIK3Bgc3WKh({{jC2LG}F2rhpS{yijd zSFW-8Fw?LtF8aTeXH=UWc3|9J9-Z^y33L@qfP3`_xN^HgdviW+0=Ty4U!Z$j2y9D( zj|2u*MI)FO&E!#FWa5M|=N-CtU?^^gst=;(C#Y2!UI+}?a|<`&f`dV#4M;3+z^aVN zs}9b~tRS z<8gHTw0i~yJC|J5uzm9dcD5 z)RTLmd{Yeh{3%GK7a^5hf@n6gc@I2^=0z7tQuNxuXnuK&8)g#dXrw^*woItYhC()V zhcdOxZHYRQ_~*^=&hG`^iovk2iKF+tY?4>ZD(|P|X?|SUIUla{*6=NSj>N}MT92V> zjz?g}cm!UbKy3(iPO#(ci3A;QW9_Z$ucyHO);zdBeiPCUXLL@`r~);TCpSZ2)RAW< zc?Ndy4!My-c*{h{OJ9bV69qXt5^7G3MAz;G@V&JJo;f{XUOS#v7@4%6SA5UFP&6;j z|8+O4@onIIr6UP^8vfNUB2Y9Ofh}<)XB^34A`|M6NTLWP@)rye_se7iew7OU8yN`x zQznAH$wFXfrtbUKrI4voZGuL^niLpxUbpht@U@30PIj)OLe*&` zacXC{=Jr8(-Z&gvk@i4=p}2xLFl!j>37sHhwTE+77x)&D#8otpuBS@eFcg8pVN577 z0)dT;*cvvCq)KIsMqo2l?AEb{VE-?Z5PTyY{#}#w;O=Y$-<%Bhd)vTUY_Rcay}$@t z9>JsXMi>IsjTvw(j0Tt01$;&aI5J6Mb|+|TKX38NIJAWAsyx`1l;W<&p0wvtKB6ru z5?g_rO!t}*3HQ7xcwc=Qz9qfkTiS<$=^0A*XW?J|9Px9SV~Lf|6Mf;&BUTT9f6X8S z)(wWAgp*KKp*pKbl1NOUd36CCS4&Bv5>{X|ly^%Y-$;RSVLI&dqG3&oL{(~gk{AJT z>Qk^Rh{67a<4N9wuWePAAMeje!sVDJaB1ixD2s1}inMm9nj8UPY9~n3A|aY0Ay1El zL?{NGq0As=QsvL=0&NzNOCwc+{B-bL|% z7C7JkVO$ve2ri9kiE9b1P?_8oH&WZdoYo%J^!BjSC5^}k!LCQZNXKB`zY!^QX|U!FLU}?2EUBGw zdErPLoI5TguhAKhPti0B!z-TDX z9-cr)ek#n<2cR;u7p}}4gimIUW%9z`RT1e}^WvNT{4LH-?vHaXx5oMC$MAj32{1Hob`VO=GeDa|(>grf*3}ird(r zwOzjs?$QO~J8&1j1$W^rY~P)R?c7)3zCTlQ{Ou`Jojyh!h4sYeuzax}Hx7M_vJc+I zr_+Yv4}DwV!VcvtA|4SuN|=1)ke*EhCDOLyCtx^ z(#8_KaRP<>bd)U^jSr^9lf3$Y;Ucu~*R}$Ku2WylQjM)|wFdAEhXy-?SB;i)sNh(? z(LJL zySK$^68Y`0jgm2|S(F3&-C3H}(rOlt)ls zBPuUEd3Ii@BTu?RUKJ-$AIbmrnEscTHrUv^0}A>?Ag@;kEb7@FXJVfOAJ+=bE}cZ_lElyqWJ07qQ4IB~x339= zC=en;(H#ct{}zN$15c1Vo#g2xO}B@zOFB<*gqSs_0P+a(B=rP&1bGB;0tQhk31Q5CSZ1n zIwMyr>H1^TsSTod)YKTcUjoes-W||%`Am(Yq1mn4N`Z*JTPzPa$n^8_0OUcS0n*JU zkFdR|L-^a{M)1uO!uaNi;e11KIDcb8IDZjR^(nV;-O2?*pkMN8LABmTfs&^BrsEFJ zt&03?V4caU^GTjvMxLuYn^T_YM|t>8L5VsAO9RAO=;XucZ2g#EzG-|Y-G?Zm~59%(mus ztO`wJ#I=IieuXUJ`vwSyFhr$6Uq@QCo-Q2vkoMo3Om8I)XB&~WTPBR)+aYgPS~TCC z5zTjH#PY4_G5q+beq3|16otd;mprV4yvl!p*GfF9tuhtr5TDEsdE(v-Y1kx_;jin- z@a|eNY8&{KY%W5)hT1DnJmXYn{MRan}OxjYEL0bw^XnR32y_-LQw&jeWP010o zK5h`bofJZdJf_IohO~V@HIna1kLCNaNAbNmaeQ}HEI*Y$mg}&GR70F!@)T5hZU{i2 z+g1hOUYQK_N1mplf@)XaNA*vnQNz>O)cAZpHLm^@HT_{aHNP^0uDmjnT3((>-!IIe zRndd!zeW$Ew~~Ts!`KkoI1a)T#*d)Q6T=AN=$(mS3~38_(fk8M-QOYaKu$bAFm*KF zml@5=HoVR?2AkjVRH}dkUM+zfw|!oNxQ8I-lRSXa1bzMFoz%9nh;ID;Zo2Wu-_VWM zW>VW5_fy+n<`8>(9k=RivbIhPr>)6hkQG7OQzB?vN;qv#4yX50 zBI&(JQEV61ygivQd|%c`esD@W|3_W||HssLUOWxYvW@ltFOWuqgTg- z(t60-4q5M~M$yhmQS|=gNZOSeNjp=c3DRhHS`2-V8O!!%$MO%e6@hEd~Vk<{{d47DyBLoLsx(DhXr)cR~DnSNJ5ua6I-T^TX-_nc95 zAU9sHKPR4$qPUJDL>qmQ7f*+#CNL%9juwo8ywSXPN*q7GeFN7R>v^pv0D0ArSEYwQ zEw2y)>--kzdA4nT_kwkOlk6aiy_r6FD2>#G!%2J3V5)myI5`%C(ACGnsP)M>YI$}% z(mEXiGsp~qZ(*(5gD6u(9m-Fj!-CNuk&YB7BoL%gaX}(0&Ku2-B8`vFE#ei&kBi8= zW%988RaE*Zun__=mE_(S5TB65d^ll<2t2$Xm#PbbNIk7TneHD(^$&;8l}ATV>(WsW zH-TDKLEwrkvOQHu8&aYO+Yv-q939OY4dSU7*N8AWs*nqEV(3`@XjZy(9>4VQhlo0x zT=Q<7yvj-)FR#>az1|;zjSy&UaOH~a zN(v(iv#9>5Jlb(r3LSZ{h)N!tNvD=Cq|+}vNoW4}0-by7Pjr6kU+9Ou|3j+MlLTQ* zYi@uzYv9$k>L&84G(w;*V1cqF1xe!G3W46`IeyX@z@#f3TRwxT3PY%-2od= z0z)BiWQV|3ROgn})5%odN=BSa3^D()OXwRiO=!>nOsn+Ji9K;V*5bR8)y1=6(@ zcauS9CR9F1vJiTB0yIH!Zx-KaH5O89Ed+TC@@{$BN_m2^ihu-qHbZeOCPRH_Nr|)W z=dUcGvZ4`G4S~j4L&*+-%@Ek~WGuBj<0A0cLNaJfq?O`4ut$OC59z48>)TTLTnK?rU@Id8rlXJ`g_lnugQ|wK zKQE6Uk9DIwq_3Knl?NaYlH6yK#dRG7cDW^Gv_o_go!ImWUA%h))!c~`o;j3kbAzc# z5x69VFejr31Q3WbvazC)v>s{eA&(%A1y(S;%PTL}@XLxoogV@loB~}YLjkVM5ZFn< zkn-#<%}{_nW9iNfbWTa(0tlQj1OkUslaj)ZM?>H^DKLjxmZg*N!g)dq%5BYamuIFL z2n?`bc$ZfJ%4+=-*dPSDj@3E^Vm8^AHoOV4Pw)SL&L{#42atZo9aJ|bh%l*z6qW*4 zriln_U7ALw@4i*GDBk1&Bh}QJSYT=EU0xaFT?QJR**}4ZvYR|T6K{7jU!Gx@Ap7e> z2dETPSd~ABwD%4s>qEn+aUldQj-uA(W3dOEOf4(3ATX88r@nwdt1K9u$|Hzl-6&72 zf0q=2TE7G~L!g^H2~wB&@(jZO!DmmD(5Lw!?E%;u2Ckm{1XUCojkX-vrYA9_-jtmB?kgy|fBwbAHPZ!d9Q(3_;spi*%$fRtl9}1#Iq;xaZ#>Q#r*r+sJ zkw*~6yr*qo^3Hx&&c8Z!o~vqf2Llpl?wD19!1j3+)@6Ap2092d)iu&zpIbuTq})zt zlX}wmR7lM2M>RN^=%)=NGtS6$lY5Zi)n%kMIXai8HV~pt2t;bJ?vz)0>Ks4)?L`zH z^*z1|tQP{E>mKBp<^QN4MVXg}-X8Mwl3KNq_WUM=PLJwAr{j9iKa+aUg^4}rQZk6| zLFMxcNNuoFt)>g|0OT{6J*n~htAM-32UgYU4&c=YLflh9DoxYfrLr2pis5m2nN@h=`^Y3jT zwWSf#yriu&@~9d>9P3iSKvVPw$Wi{-M?CAcDSKHv$8%VAdM2C-sIK( zB=UsNDwTnGEf`YXcjw9=Rn4zoZxer4g(iuZR4A8X<@^ienfa;H=P?sm%4a_?_tmL+ zg}wY1=x7%x*aXnqdcHe>6q8Fg`kU~FNRG^GJ zA3!PH*Ma=QJ`eOfIPG7npZ01rKM*HdAC@g-Sd50f$JMU z!0q*^F1?4Lb(=}9m2D}2(OM3HogC314BtT@R|Hme2-HCyBtl*p#FYy)Lg2vc#`~5x79lw;tQ&DUk-GJY2g*9PnW# zIe?ZF>qMSxOF`i0rAi8mxkjzthk_Bfz{V1!r>8tAP{@NgAy0P`c^W_DL7cn1N-rl2 zNMk>dSMGVf{a*;&u<0G;L6}Ryn71}PL#AzaVYdr`-d-8?E)Q#6cR%zN0$t@*IOU1P z066yP36a8Q&y^wazTyu)G=FX4m?R;uTQOT~CFtY1$phUW&+nF0rJ8x9E#$d&RStf9 z3>)b^{IlcV@;P%C{3$XjTFC2mYSp^KMx(dL3wX^7ybWKjW?tlpuF88m_hK`BiqDz1 z;57&skdT`}FD4R}rbu+l5}BrxV}3^^A&&?wvL{z1QA-`zo0gwk#B5g%Wib0~MJlW6tvgBL-(f%WR>C&e*LBL25 z4#L0)5DG#-FbD#}z)&y*3B*pfZj@%27FxwaWQrZs&ksvlHDXB0kEBn#R%&f&=30MlA0#AeG;F-+K z%xA%KUpp@B13cU^d0`!;ZJx~fBA{i=W4+lY#U@1RTGC~sOLbwYN zZbWuMgd5>5gh`xh9B^OjB*R_TJjoz1P>Sjgej(GfpR?G=!V(}o-RR{)Zx{M_q3=!T o=OcaH@$!3~)z(SRKq~M50Z=cY+7|jM^Z)<=07*qoM6N<$f;ZXsyZ`_I literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/pptx.png b/src/main/webapp/images/default/pptx.png new file mode 100644 index 0000000000000000000000000000000000000000..4c17759832b828a907f6f3d4f86f5bd74426e3e8 GIT binary patch literal 7934 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/psd.png b/src/main/webapp/images/default/psd.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4247edf54ff02dfe349332d541023312497935 GIT binary patch literal 8866 zcmV;TB3<2yP)~uipqH?qk;&EQ3M5Pq3Qd+IMkn?eZD_vdh8yu(COVj)~a`XrL{`>RnODk zrv06#e@$GR_VS$6s*su6ZV2b@xi5@JZxo96HweZ1>V%@bwL(!^wJ?15ZDH818^U?1 z6~eHcrNW5RzX_whDG)|&IU|fn$Osk1ZXNTx|1ZC6wiX|&wbj>bw)t8tEp)bYojQZn zw??A%J$z`h7(0uR-L# zJBZwS3*xj&h<2A_?vBe4?kvHC=q(sHY7PdD3&;47b>IGSw_%`Ertvizt^B`lq)bN2 z(&Oy!`1~fkwzfx$Y_>Kn z;epV)&1N>E=teVUq)G8X;&r^6^Z*}heu#;Q^_aM^7VmAS#(V2-;hohLn6R=G{}o?? z@o`1?&tvvy@<8K2F-GW>m( zuJrcwEHj_Zo{nXLmeS~qAbc$i&?2|+T3g#^(KqY-%~AGms`JnE2AsVr!P}eeV+`T= z#n)lP$_9*FUWbvfwHUdy8i7lyFk(Rk0%J-M5LtrZ;rSREdLDsMSr|S41SUuCKu&fp z9zK+@C(!w1%`5`xc#?*$CupHe_Bi%6OV6ITp3*wfXw5u?M&n4$Qky6PpNgeo8KG3^ z9VzutQ0&jmmX?{l25f0*|Cs?1qI1vSWtBA`AmJ|F*jR~wU-td z81Jqrz?22wAwMsVOwG*Doj;C_MQ$CBQROlgB=-397cnHve zcjj6H{JyTk=&vd<;LB<(+kXYtM?lOmEi$hf06ax#suaWi9&zy;Tkx3XsRs8Spbrp8xiG`2Dp4FMQR6*?X!0 z03WBx;k&jOgH}ngD_0J!qu(0B=5D%E)V%PW{3cLI4i3{UnO@%T06y2E3sdxFPOK7(hUJ_6K2F82VSV{IiE zl3asv+o~W~aRo<9ssTL4ri*&?Pn03Q#*DT{PY|&F7WQOSp`x)JLsm=i$GE%r%lfMb zivJOL*`Am@mXQba+=bzar;zI)V}Lq00IgOA`0Q)m@NIP%lX4UN67Sz z8u8YaD_D?u7cXsTL>?jH>0?L@Pw0Y?W7zsSj8D9Vpf%@^pOfw0h2c7R6hUc>oJTJV zXFP=+(A0ZCgUME6$ID``c`0=WpbO*0xCgz-g6Lz_*p+(=BnI1K4l>gt{OhJ> z>@PQA_*MmmCN*H}`f^NOeVXt*Ie83^kMrb(p>V>J{}w>G+EilF8h+BNjLDqs{05_y@V(2Ezp@;F(yrcf7>d@nB*(? zaBmfkU#`J5Sv&rDiwuJ{)!~gzW%y`g7V@&~YwK}5hQ@j1!ss5)eZa)j%qtU;>+v?d zRT;G69>TU3!qUbeI75e=TMAs2w!rq!Rg+^*B=1f){92 z2hhaz-`tGnQ)GB$djm#nF30|ah|*|T=7_HXtc)O0mdAvLD1LtF?Ll0{Fc{a*h&e8tau2~_YCnVwioO0 z`wdbIrU@LhMUKIn>hT7fyre8PdH+Xv{Iqc%yD(hw2vhAIpeXGQW~53nZpD2B#NLO0 z+yf`XCrHTAd^w!0YQuF)86Jk2mYflMu`}iT<;G;Opn8 z2t5md z@Mr2Y`ph~7@vd@c)%xz%)`2G_JU$iF8bj{@mmY6I@YWiP{_H0F7goW4adj7>A480- z#`uIXOj-3)*GEz|ixr_s1?Vfj1n(#h7eNu6x44LYUrbMXU1%2JQ8aZt+?*c?kD7Cm08gTC@KK1rxeBdD-xEAajm9Q702gQ0W7_7MczwYY z_(flZ-~0;r6XMv|U+`A^-w+&s3VBW+47A!DfS#W^LK79BYhA6|W%?(jMR)x88Onvru9)F`4B zgy+a+u>*Q)UD?e_iR^GW1b3dnbzKr(A!j(py0VF*_;o!>aMa8rbRHr=YWnx+GkG6G zTZ^Dp>76c&?(kIZ0WLW73nr~E!st)4FmCZ_OkJ2plb8EzKil@|5)njPgcnO}uNYpm zs$SuR5D=dIlHk$8?dwWY$1VxSx)R`zT*tcdmqh2fW)d7VBZJTwTspji(&06AKl)7C z1JT!o1gPr?9$~r(IRE>bn7p9?;})L8)R=FOm+L%vu0Nhx&9)xBjbV5%#+Ty{2{$l! zJ*yIf*H!Snyrvw_M;GC_kZcGTo?~6DVRV^~rIr zW9nSil>iSA+;;>=O-X}b@^19`;2Vgxm@;eg?Q(@0?~3Hq8W&k5u5^upfg^pdzMp*8OM-iy=rz#G>h+n@Xo|~7CchAWYCGS8BDm7ws`aQgLLV{T} zZ3rd6IT8-DB~S5Txe3qBWN5DM>Dan@1s@^6!vx6Il_rj+PSClof+++yc^3gvlXeo| z4)l311)|O82~gY3Yo25B=5@qHyP&#^y@H!ti z@sATAM}S;k(It++97Ps$-r|e&HJzfO|1RcCqoXSFHr{0E+YwMig;7MEd2vt#WXT>N z?1Bg)OCSVH!Xhq+;=&#f5kWv4hJhffY_e~%2Svn*fD6ljkdSoN?kt^<7y<|h^{@A- z>Pq*uo8rp`F}C3_hLKGea5t&pEBRB^H}`ceXJnAm|=g%AdW#C%g)YcnK>ZK z4#csH%siF}%$a%Oe$0O-uwm<{y~j>o6qjoB3x-PGb#Y!NjZ%WfrP3m zjuZBDggqT$PlxBPNsBp5UG`Zi*1~B-E+-_9Adj#}VBA9wzIl{h${^}@a_#x$Ttn(K)YbIDQf}(A1ScIHfZ=DP3PPm-&~ zGNzYzwO9%K=qUNe9v9+(5Qo&oehqOD_;M1S50MtVpCb0;($H+8s4SwuP3dHWw1A;I z$uwjK1w?J5&Oeq@_e+)3^;d{WvXK#~yDx4#1)r&)z%vl{O9i#Y*z)H}_VkaHy!oly z+}It$dM$>u&miqnNShC7pxZod>iRJ^b@_<%%z8Bd_#>tPG*m8H1o%g z-{8h>3n0)@R|tf-?sFgzbe#=>v$#)(={#=s4hSsvNFL@vp6;!{^77wLxUIJ0R%odl znNFSr$LbV4JBf@hSEcRAe9|HFyZF?vf^ICs1qrT~kTCYnb{}(rr)_)T< z7_*ncekh}k|EZwxv$rYqSE2{sIsk!*^wfbuYWdS`dgd2K_Y7W5#^)B3SR5b@EALXS z^<3zzYqz=JBS-_CKjfy!54f?@4DJ&?g~xrkO(f7Wc>=SQ=ha4_eybvZOmQ<*$y5AB z*C24%>?33x;hs8tl8}ppDdsDrZ6~$go=JVKFzR*r4n>?Op;jBysVx?kj^`l`@D{@c^J4qX`g<5SkQ`bv(sMGmMh^wSfjKOCssogKPsnv;V)a2723Hv#a zNLrtzQXp1WdU%JGnj}|HLF>r)d?Hu|dCMSeDPd2C@gJ!1XPEOo zr3Q1prw6{iLH8fKMfV-O$?7NFprx2LY-REV1laqn|241~VJeFDex zxEUL`)oSxd9_ouR7YDE23v|7cte$^kI(d>ZA@GC!lPl zlJ?>TYQFvo1tWEVNZk{O7m%{g$<%L!sH;q#NyzJCPaXDjWa{-PX+1%Y`J{E31F4Is z-uzQkH|Zub9mWcL_$K#Xl?G9hAZ-eyfp9#By@wHmO@P1&+^79G9+$9Q2&`FN2IQq% zAuyL;kphdn7U+Is0MDo{)626-f!82#ANdUtsgrfZxD6wS+5&-_AaD}|enHK?NR?ZX z*4WQAU3wm(5~VoQ70;me5=dK2*wc|oi3{j9moV3nsp}j_oK0HzG&26QANp9CIFp3w= zOfL`DEvW1_2%Py9`95(PpuuVbQ zUJ!Ntr!IAiAaEfBenJ|g)m?gl0!FMRQ+NWIBBqhnA%XnYn3?avo7@2Ehy(_|Q&m@p z1EFtW1i|AVa2)q(GnU6qU&}2J=!v|vGz(8n%Ryp`yxT}akjq^ar$D_t+*OgQ@X#51 z$bZl_h})u4_ay{wfIu){9R#jL(pFH@RhOvwX>5p3VL@1Y26NkDhy%SrFQg80ovFtH z@Cli^eN0;9EDG3`Po`rPWZYj){u^@0XWupQIdFp+_TS)!BNg25wJ#xSf~qSB884-2 zfp1_0fv<9(XUFikX{)#;xA1Orp1ZvC94XLJYk}&b55!4<#So~M2ch&E1V$(9CjWt( zAr1`O1ZnFb4dB!y;KenB6BCG9Mvttzj4jC>di+!+J-GNR=C?(vt_vXzbf1rL9+^aC zQCCx^nPgmij{J_?BA>&zsm|fw$#6(;iy8Kzz6nPmXuPwoA#Y*?L9as`Xg8K??Z@&u ztw-_LsZyZ3JhQtz%zsLt%^QI?ltBHRWB{2q+)dWYE36VYV<-8`laq}Q2yp|}LLlhB z8Uj~B;OBClYcOFyJuoks8qP_kdT(HB19AA^4}mIm-RBbabPx!6T|OXeO~@EA73rN% zey?vK-$@6__Z_4?eht&QCO{Ho>FXK@f?mT2+P}j6+k$puc%4@95V(@(LSRj`Rq`Y$ zS865D{fZf$<;_sNJev?$3W3vikbi%Xx^ogIKmu9s4F3D%$_L9NFN@wc&Cf2Y> zsJeEaqf6Z^2t;ior<2wRbQJO?W95BcClG`}puVo{WnGmxq^`{vh#Sd`&w@7byv{Qt zATUt~^h6%&o6S>FYatMlT<;{y=OPGn$}1t8t%OR2z^Plwzwas~ZaKsO_dOlN0k^t- z2yvjZNZkyi4&pjYAuR%gi{!nB5rj=3)D;3j&^Y$Ty1t6Kj)6QOZZyP=f;h-)9gF9e zd7Tz9Ja+Ojo|9eRk-XH@9DZ2{w0I$~%pp*JGZf&t5CWa@N~r)yfm1ek#;d)Ik`e zwXG5t4{>qa*eVv!5cu>k9y@8N5a^k_D6E@wh`fp-ES$stYu1(pH`bjrI*`9KPsxQ_g=HNhfLOT>~9; zm8rubL8vPsb%eSyQCGD{KvGp*F}BjnixD^kW@Y8om^>v<*7w3ivv@C3Yk^9h5@;)7 zPI;&@D7h*Gt|h;2LfSl$I+wc6bS@Gds#_#ArMb3{MULgPEaO6gM;* z3of%@-NkuNBgSOs~4A_24HiFTjI4Wf>9#gji?vw1>(?D%2js+VUiCW})bL^%XPl8{$umzQIs zY$>k*6hc&$JR!;{53(Hc%pfDfE->8;fi)dTDS2nlr9f&nuc){qe@+UAB=TlfsuHX2 zzsRJXJbj)YOiJd1qK3`s6xr3sYk{S9fl8iC9WRg)kxB@(*S7e7Cl8p-7FOe_3Itue zWaeM(JHqiJ8XUg^0ePiPd8loAMn00~ly@lU2R=Az*u2oN4t~Oe_X0~HP%lq?K^YRo zHy&ASnH?nISVR-O8$w=ivBvr}*b9*7CAzH=Xh>JCkS0vnhGW zB6)gwwHF9UPI(1VoE&jEhgB;Nf@-WS@Tj&*9z@+Od6M+>Tvo%WimdRl<0tv@<*PYX zc85H3<{y)H@W}T<-rV5eaM#+_UZ6^zl$S4nK!{?H2Z|V0GG-A%6%fTBP6Bxh^5owj zk73SZkOvCwH$!s-`3&+H#7Q8^aZ}U`AW!}+9oXkQD^tm1SIoJr##0p`@Y^4F;__8I z3+cmxVV75^pYxKXyrAGPcX_oJSmOQz4HEsAm4VCmZ9V!DORmeEh*vJda;`OM!ZMSDff zp~L4s^>hm78p8iy2?^j9KNN?faeD@QN9v1sa z)5ji{^8R$PvMmSm^F2@ApFiihZ&i>wR)aiws`AD9ZP-ko*PQ|EcdPyEDp?LNfEjT@f`0e=Hcz$4&c@E6b+Gy)HS z2S7v60Ne-agSx;3j7qjoO=A6k2I_(PL8D!}cCReIe(O#teu%N8^tywqB~{pO@E1G4 z&8=c5wxTLwuicP!qDiRMYc5*DmNOv*MmWbmh z+;^7PkZv2&TL6(c{QQMZ%`~M?s8lERNZrnHy0$u_yf_~ry&<8vZ zdV%La51rtSN^CG_3!VYZz@tjyeaewPa69Vq1x6+DUKQ!aD)x`73Oos(0xdvG@GNMn z2n0bO7=(f_5Uz*-9TXjPbW%jR(775SUFf9fsH1}-LWe$W!Men?Q>kkWTB_tVSJIwP z;u@=J*Hdncz_-SEP|5UDLNyQo>Z*FzSArWT8YEOa9#%Y}qlu13U1(Yj zkGjxA$0HK`90y$II>m!7a~_bPsjo!U1pz?Q&40dLE-dbXUGUN2tHZAb{O^MCzr_D8 k_*H}3YOAA8ZC2j@2R;0C9K8_l!2kdN07*qoM6N<$g8Tp8>Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/rar.png b/src/main/webapp/images/default/rar.png new file mode 100644 index 0000000000000000000000000000000000000000..45f7ed068982a3462cd11168b0fa821059c29c67 GIT binary patch literal 9280 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 id2p<@rn1GXy#E3%{?U*A%cuze0000~M-K?~ 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 N002ovPDHLkV1gr;y=wpf literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/txt.png b/src/main/webapp/images/default/txt.png new file mode 100644 index 0000000000000000000000000000000000000000..17b572f280a4201fc318fe3f306d25935b508b7c GIT binary patch literal 8552 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 DTj>%| literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/xlsx.png b/src/main/webapp/images/default/xlsx.png new file mode 100644 index 0000000000000000000000000000000000000000..cceb36209ddb31a809829b5cb93550e9a46a1790 GIT binary patch literal 10534 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 DTj>%| literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/default/zip.png b/src/main/webapp/images/default/zip.png new file mode 100644 index 0000000000000000000000000000000000000000..ded6b41aa158ce916c503f651b0421c86bf18b9d GIT binary patch literal 7004 zcmV-i8>8fjP)oFM zY^W$n*-~1Vl2oKg*`rmbJgdq{*?;-c3x`urt$XOd<&V!d@vzrB8R2&OB0Qc6K2G=_ z8N1+#=(JcOu61_Kd-L;Skv~h^{`~I2?x~kr8*{HpcFMl)ulPdHBBY zu3x|LhR=81Mm!L0_P8hE6Fkrk4B*+`PVB1GVJ(s38*34#uf&?_GQ?JtU{z@$R%r9F zEI%7dax$64ja)mIE)VF>*{I@TJ3xt9|(0T z-rI3XaZZmQMYuDb+i?Wqkm8nO55z9T1sgMNcY^pf4$vEO!ke6&dY-@R%wLWP{8Iks zgmEYGI=hkFVnBjUixoBHSf#JP%4!{A%8RkAqyS3_^AMe%g{YjXSa9_c=3hL6|2_R3 z7N1W=+__WO@!<#1aad80=b2G7!%Xfc%4xaq<2ntpH$qV2)ogVz)oy1O6 zHezZj5YKI3Ij8xv!G5@j6vSg}ZgDoe@fmp58F-ceo@EA}c{-ligzcJ{PmPeUD6a`~>St3+%^6XNcIxR}c_miu6G?lnC1^>N|_CNGHRad~m3whkYZ z>hM8T1%92M2g8^VlWrezt>>BsKA zE9r0}4xb{%QT?H^yo0W1PmW7cYvTOq(62A9N;ZG_RUe*=kx7tFy zT~dVXjxGox(?-DA@dAMN#*+c3;RU9TfHoM73IGP$mdh5~d)jcYxgKlB`td6FJpg#! zG=jyY1u!}6cz@i4IR4DKZa?DM)_QpY_wlUv%-K|Ea)Xl>isz9*Z@4G%tFjX8G}PdC zUF~?Str;0cBLo>M5T^{NTw#RbnT&RfNr3h_0D8R=;2n4@jAWkko@s7CEGO&JmPRC+ zhjG$w21F5t(GiqPPGHSoH#Q7(Vna^{5nHjbg-elbd?5W23Uco@c^=q_=izIy^kMU0FA=+t*x8EYsxlnBc#eBs{=FuTI3BnKFFvWS z$Dcdf@aMJ`>^Ib+*kU1I;2aphlOrlw7^WF`#`^&@3ND?~CLNM{kl5CMT`Y?gtqpjq zv=~hjUaTGIN1exwF(PgYAl|%*7fr+1FxrR2z78bwEco2zOI)`98D8K_H|3td{)^|a zmPei4IoGf)GaV-yo8Tn=Z9JPCQMtkh#bYo!HV)fd00%5KovN!Fn;UAdueK5~&3e4a zcAUC#0}yXw%VYg7OZ%J%X$+_<^ccA;mj*ghZM%$@rW$%fyY}~@Lq2h z-eyT1@9RaCb)3kqnI$1ARv5G6%^mRF)YOWnIB|Qc%dxVpfo-UPPZV*81%mHyV3%{%BZh-%@Z|~mSz3o%mr4In~Rfr|v>qC9m$AXA8RPoF=ftSpqSk>Ny zcWbKf3(F`rnFo5>SH8_-=aqq$i#gij2#RG#l-r9mAjrI6rb0Zpz76J*=8`dTe zO%RnUj8HrVBclYgg$cN;vCg=MOK@dvnS6#@(^Sjmtw&sEGnVTsVR5=1^AV zed9TZ)Y3PI6V)|1!Zv=pumIYjVGKJ66~qgags50ygyIp?Iyb;gjkVa^Qje8YrHElx z5i)?t>t3848h~3A@%TVD5_;O?!Z?&8?RjArM#$xv&*{V3GpUHkzJmE#S1?bNg^xNr z;39euF9@h)VGu458IGWH1KiQuflb7UDJ#PAGOhgCUH~zci1BTWNa}9G=JrNB$#dTG z8R^jEs_tjPG_$0Lh~-6yA>v92vAPud%S&+Z z{8{3u6`DLho|jPTqSZMfm^BtEd?sfmiUc9Ht*r%mh@hFbH?&~^ zmdH9HMRWg&&bx+aO&*q&Xs}eLMO&TkXDDNSYd?XF;)x>&jB!z=exD#T0~`E#X@f6iwL<$lZ!Z>3m-4c!?R~j zLE|qB1@VH1r! zn>y(i@$-y}SV+hf>Kts(&%wTLzY2ULr8u5I&{2~WCrit)^qb>YaP|}y@C^9q`BWLR zp{pMPfz5tA#x6cUJYq_Z=I{ZxNyioLeUZF-_9)*#BrmD2sg(ttlV}&Yi8HHFbrP!Y(ER*@_Z2VQPm&=5BL?fV5g%OI!nE77Ku!IYkz{B!N zPTV8B^|0xDS; zp?H?L0dCP(VOdTFmR&f5O=;(_^T;Q+ZU8+PJgW@o#>*^^Xinc!BK=q*)w%FE{eVOh zgN30u9x>+#$p3bMbu5nfbE$ap!@r?G`N<3UV8CT3V0IRw*!WA-Kc4xjZ2ttB{D2A; zMi6g=c((uthD=f^g}Db3aC>IDA1~zAqnB|jipR?{0($U&*LdTdWwrP&nU|L-1DYiu zvrT-Uc*7CrK${1e|Zerd<}-CO`bOZcprrkipTSvJb|y~8s%yR>LmPv4%Bl0CiD4JU=-u|b;N-D92YqC(iSPA19B+*y+l(AHYN_v`O|^G)tBGo2%MCVxEV&Sb*m zoQLqPUpF>|iDdV4Q>?thH!wuyi7hEr9zhW>3{A4m|b_3J-Q!bv9u4syZugR@>E6bpa~M1P(pCyY z^@Uj;Xs0U>|K!FEGAF z@`OOE4uM!IJPLtc@_Yn_TzQZu#o1MC5D3weHms+iTQ<>%01Vi)9s=8iJX9V*91AGV z82cZAPwPbU) zd*l(sv4HZ-VUnj}uy7>=fj)x)famIFXt?EJFdzgzUQ$d$P-(*gaLf8)GU59m%?(mE zcwmGk&tM2eAX*r5d3PbkTqCy&iN*fx0Th^|oI;*2opa}wH zV03{z(5UcwgBb!{x&`_S1~h>o28NW^+9}UwgII81ehv*nr40^1d`TgF*=#}!J5_mv zs$>3v5k`3pW`RY&KyP`#%)Iw8=hTcH0`#eMGu3#U8<*lexz_2oK>TbxY^t5*dizF;L~pE^Z0 z1PJ62f`Vy*(FO8w{;R7O0`*-7Vk^maFd&YQ#PkP-zdQ^C$PS^qPJT_jmM^A(g?Ryq z$N6#k;e%wew5sxegLS36`g$|3t#9ELiynbjA<)&~GgZ+9h7uT>JQw5vrB%qy+gm}s zS1zLgt8zh(AMtrB==t5d$YFI0gg6$)!0?yX&>{qyLl!7UQjjE`yC5*cz>xAJq?}$Gmadh{I5>a&=sFh?9yyfP`NEg zY{+9>D^I1FoAe5Fx_s}wkVgju>JJP6d5R_vg8}hd$n9whsQZ#^I%Bd>{{91$TE2%~ z-?WKJ4j!U&m+I-K84JbhrwmPGGT908SQpAe`!@5M+7JXnlJ8EkcH^Mz4uUuqT3`g1S6kb{ zt5tz!9RfQvfnIC10FUhu7(!rZ^5j%S0ad85sJXN0rbSsaf6pG8xn&zAm+hn}tBdGl zy^*koLjzNjsr$#7^zpIdWHC9&2!SC6MsRs`pr%Quzz!kMdnZ{Fh}~p;f#EOD0;~}F z#feiCF@G-gT9ipQXDy_-^!d~?b0PIuIG;vkWm5k+v#3XQ21RG4(K~zhkfI7~va#^D zttPJq@~T0L*{)9@sw}{#XX5T|7A|=}{90y((B;QYP`}056q~sKveKz%#scb@Hji$~ zNTco$7lW_AS-zW0HWw<=Mi9rkP@XvdT~-B}bP4HW%mbPkgkhtdjpR#lz~>k@f&kXHkFwV>LFkh19%C^tfZ z-)5-Jz|iDDoVPsryDixv`qiQ}^!rr>G<9tWJ+ZowaQi>Rxp3)XC!;2hAc}=GFl6OP zd7^zUTr}W)ETIdO@_<;WWqJd{A_*W*2(_ABl(Ks_y-^N!e?bqHtf9}VYw&fauRQfR z3u9o&w$p+(oHa+*MoIC(1pM6n=kt6QG9G(kAD;l0P0C@-xv058;c>sd}2(<}; z3-?vfyOkC6`qom)IC6w4YwM{Q@(>t=suKdyTC6MOoj7@xpZe+|-mCeU8y9#*2=uhB zT&s02bfZOC@W9Y7&jIoGq|T+dlv&g-bq;mIF{NTZDUf}gJOFv@2IN5+gb8WQLRht+ zNl3d45E$w?4{ck`kDWNnFI;ZmXU<&wK=q+R;I*TWB`VKrCs_zY^|8_-I#hN71s$Jk^M+ZFg&7KPEq6^m02 zA#CcMWIG-dB9*Wv!HDYK^HF@_^!|Qar_Ytj=uu|dF`4!v~5G9 z6_uyS+f(rm{@n9ZGZT}>M+*_U1-3(=mpr*jDH_L4Vw@|4WPhsVW8 z4WSFvb#9A79)mpbHOOP~GYnv7au^D%4D#^YO$)yE z$&Sz2J8Rdo8J}%tlXF(E1LrR>2j06uobxP9RvxP}m{`!kfGY6NKX_h#5pQa-%fNs< zy9^Ai@-jw`NfPqHEU?Z0_9=n3lPvJrhW}CbVVHb&lAGLPDaGvKlX7$U{RJ!eC=j*a zBfjMLF|Od>HKOed2nYzYf;=Hj;#u?oHo45L;u*tRFYP}^c`h9fA4<& z*1C24jp7o%@5?GNBtYw`@>FrmU!FD`sKs#LfE0)>(GeJ-3k-M@3&e$eC%FmokhJ{t z`C1Gi0NUJ#EVZ$;Be>hMHfw_5w;%03vFkZ?S^RR5&E)&=$1O~Z@C48Hq z7JTosOP7j@i%d=C(WpKTQQBkiS_HUhekylZTteV=^6E5sVlV(I_8${1eCBKoD(^Ud z;l)2@+$E6Nhw3+#} zE#!GmRmyf%;6nN{e&EPge9F|9vxW^HA>?&AP0i+Vt2J2Vg>S9a48fCE~G{?9MZ|L3*W{!#=1zXFefiC_X455|Hd@Guw+9t6Jx_koe%XW(`zeSj3( zQ#$esphyq{dPw^N!7y<9$dMx-OG+C1N@8Nt>)=f=4ZIEB1@D2sCnhGo4`zT5z=vQa zm?fDF=6I1DfRu^j#-%(yaiWL00gq#u@GSTp z_$~M~cm_NTCV?lx6JCNRNU>wUDDZP|2N)_P_K}WafZwPq3dBl@y=6%!$g&?HTi{M` zHy8=-1^0tdl83-(`NI=I5*RBP2gXY#crj7(h!2kj#Q*yyN+x(QUNX*uPqmHls<;Pa z)%^n8D=Y6VDeX2XE