From 36efbca08c84a9e1fd2ecaf5fc62c4e5ea8126e5 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Fri, 10 Jul 2020 15:37:14 +0200 Subject: [PATCH 01/17] Interactive Map: validation ready --- config/map.default.php | 6 + lib/languages/en.php | 3 + .../chunks/interactiveMap/interactiveMap.css | 289 ++++ .../chunks/interactiveMap/interactiveMap.js | 1365 +++++++++++++++++ .../chunks/interactiveMap/markers/ocMarker.js | 79 + .../markers/simple/cacheMarker.js | 31 + .../markers/simple/highlightedMarker.js | 32 + .../markers/simple/logMarker.js | 31 + public/views/myNbhInteractive/common.css | 166 ++ public/views/myNbhInteractive/config.js | 50 + public/views/myNbhInteractive/config_draw.js | 307 ++++ .../myNbhInteractive/myNeighbourhood-full.css | 13 + .../myNbhInteractive/myNeighbourhood-min.css | 13 + .../views/myNbhInteractive/myNeighbourhood.js | 83 + .../MyNbhInteractiveController.php | 744 +++++++++ .../AbstractMarkerModelBase.php | 42 + .../InteractiveMap/CacheMarkerModel.php | 129 ++ .../InteractiveMap/InteractiveMapModel.php | 259 ++++ .../InteractiveMap/LogMarkerModel.php | 71 + src/Models/GeoCache/GeoCache.php | 35 + src/Models/GeoCache/GeoCacheCommons.php | 24 + src/Models/GeoCache/GeoCacheLogCommons.php | 24 + src/Models/Neighbourhood/Neighbourhood.php | 11 + src/Models/OcConfig/MapConfigTrait.php | 6 + .../interactiveMap/interactiveMap.tpl.php | 100 ++ .../markers/cacheMarkerMgr.tpl.php | 19 + .../markers/cacheMarkerPopup.tpl.php | 101 ++ .../markers/cacheSetMarkerMgr.tpl.php | 37 + .../markers/cacheWithLogMarkerMgr.tpl.php | 37 + .../markers/guideMarkerMgr.tpl.php | 38 + .../markers/guideMarkerPopup.tpl.php | 49 + .../markers/logMarkerMgr.tpl.php | 18 + .../markers/logMarkerPopup.tpl.php | 48 + src/Views/myNbhInteractive/config.tpl.php | 167 ++ .../myNbhInteractive/detail_FTFCaches.tpl.php | 52 + .../detail_LatestCaches.tpl.php | 79 + .../detail_LatestLogs.tpl.php | 70 + .../detail_RecommendedCaches.tpl.php | 79 + .../detail_TitledCaches.tpl.php | 87 ++ .../detail_UpcommingEvents.tpl.php | 72 + .../myNbhInteractive/myNeighbourhood.tpl.php | 82 + .../myNbhInteractive/sub_FTFCaches.tpl.php | 46 + .../myNbhInteractive/sub_LatestCaches.tpl.php | 52 + .../myNbhInteractive/sub_LatestLogs.tpl.php | 54 + src/Views/myNbhInteractive/sub_Map.tpl.php | 14 + .../sub_RecommendedCaches.tpl.php | 48 + .../myNbhInteractive/sub_TitledCaches.tpl.php | 57 + .../sub_UpcommingEvents.tpl.php | 45 + 48 files changed, 5264 insertions(+) create mode 100644 public/views/chunks/interactiveMap/interactiveMap.css create mode 100644 public/views/chunks/interactiveMap/interactiveMap.js create mode 100644 public/views/chunks/interactiveMap/markers/ocMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/simple/cacheMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/simple/highlightedMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/simple/logMarker.js create mode 100644 public/views/myNbhInteractive/common.css create mode 100644 public/views/myNbhInteractive/config.js create mode 100644 public/views/myNbhInteractive/config_draw.js create mode 100644 public/views/myNbhInteractive/myNeighbourhood-full.css create mode 100644 public/views/myNbhInteractive/myNeighbourhood-min.css create mode 100644 public/views/myNbhInteractive/myNeighbourhood.js create mode 100644 src/Controllers/MyNbhInteractiveController.php create mode 100644 src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php create mode 100644 src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php create mode 100644 src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php create mode 100644 src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php create mode 100644 src/Views/chunks/interactiveMap/interactiveMap.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/cacheMarkerMgr.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/cacheSetMarkerMgr.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/cacheWithLogMarkerMgr.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/guideMarkerMgr.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/logMarkerMgr.tpl.php create mode 100644 src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php create mode 100644 src/Views/myNbhInteractive/config.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_FTFCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_LatestCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_LatestLogs.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_TitledCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php create mode 100644 src/Views/myNbhInteractive/myNeighbourhood.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_FTFCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_LatestCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_LatestLogs.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_Map.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_TitledCaches.tpl.php create mode 100644 src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php diff --git a/config/map.default.php b/config/map.default.php index 838bd2dd8b..219e5b84e9 100644 --- a/config/map.default.php +++ b/config/map.default.php @@ -79,6 +79,12 @@ */ $map['startPageMapDimensions'] = [250, 260]; +/** + * A family of marker styling used in interactive map. + * Currently supported values: 'simple' + */ +$map['markersFamily'] = 'simple'; + /** * Links to external maps used at least at viewpage * (to disable map - just add key $map['external']['OSMapa']['enabled'] = false;) diff --git a/lib/languages/en.php b/lib/languages/en.php index 4d57f05866..a922a630d5 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -3028,4 +3028,7 @@ 'gpMyCandidates_offerRefused' => 'Offer refused', 'edit_description' => 'Edit description', + + 'map_popup_next' => 'Next', + 'map_popup_previous' => 'Previous' ); diff --git a/public/views/chunks/interactiveMap/interactiveMap.css b/public/views/chunks/interactiveMap/interactiveMap.css new file mode 100644 index 0000000000..cf63031f68 --- /dev/null +++ b/public/views/chunks/interactiveMap/interactiveMap.css @@ -0,0 +1,289 @@ +@charset "UTF-8"; + +.interactiveMap_cursor { + cursor: crosshair +} + +.interactiveMap_layerSwitcher { + top: 5px; + right: 5px; +} + +.interactiveMap_layerSwitcher select { + padding: 7px; + margin: 5px; + border: none; + background-color: rgba(255,255,255,0.5); + color: #555; +} + +/* all 3 classes to be sure that it overrride OL defaults */ +div.interactiveMap_attribution .ol-attribution.ol-control.ol-attribution { + bottom: 5px; + right: 5px; + background-color: rgba(238,238,238, .4); +} + +/* for OL scale overriding default classes + is a best way to customize look of scale */ +.ol-scale-line { + bottom: 5px; + background-color: transparent; +} + +@media screen and (max-width: 800px) { + .ol-scale-line { + left: 5px; + } +} + +@media screen and (min-width: 800px) { + .ol-scale-line { + left: 50%;; + transform: translateX(-50%); + } +} + +.ol-scale-line-inner { + /* this is a real scale line */ + color: #000; + font-size: 0.7rem; + background-color: rgb(238,238,238); + opacity: 0.4; + border-width: 2px; + border-color: #000; + border-style: none solid none solid; +} + +.interactiveMap_gpsLocator { + bottom: 130px; + right: 5px; +} + +.interactiveMap_compassDiv { + top: 70px; + right: 5px; +} + +.interactiveMap_mapZoom { + bottom: 30px; + right: 5px; + display: flex; + flex-direction: column; +} + +.interactiveMap_mapZoom img, +.interactiveMap_gpsLocator img, +.interactiveMap_compassDiv img { + width: 25px; + height: 25px; + margin: 5px; +} + +.interactiveMap_mousePosition { + bottom: 5px; + left: 5px; + background-color: rgb(238,238,238,0.4); + color: #555; + padding: 2px 10px; + font-size: 0.8rem; +} + +.interactiveMap_infoMsg { + top: 5px; + left: 50%; + transform: translateX(-50%); + + display: flex; + flex-direction: row; + + padding: 2px 10px; + font-size: 0.8rem; +} + +.interactiveMap_infoMsgClose { + margin-left: 10px; + cursor: pointer; + color: #888; +} + +.interactiveMap_popup { + position: absolute; + background-color: white; + -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); + filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); + padding: 8px 15px 8px 8px; + border-radius: 5px; + border: 1px solid #cccccc; + bottom: 12px; + left: -48px; + min-width: 300px; + font-size: 1.0em; +} + +.interactiveMap_popup:after, .interactiveMap_popup:before { + top: 100%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} + +.interactiveMap_popup:after { + border-top-color: white; + border-width: 10px; + left: 48px; + margin-left: -10px; +} +.interactiveMap_popup:before { + border-top-color: #cccccc; + border-width: 11px; + left: 48px; + margin-left: -11px; +} +.interactiveMap_popup .imp-closer { + text-decoration: none; + position: absolute; + top: 0px; + right: 2px; +} +.interactiveMap_popup .imp-closer:after { + content: "✖"; + font-size: 15px; + cursor: pointer; + color: #000; +} + +.interactiveMap_popup .imp-navi .imp-backward { + float: left; +} + +.interactiveMap_popup .imp-navi .imp-forward { + float: right; +} + +.interactiveMap_popup .imp-navi .imp-backward, +.interactiveMap_popup .imp-navi .imp-forward { + padding: 0 3px; + font-weight: bold; +} + +.interactiveMap_popup .imp-navi .imp-backward img, +.interactiveMap_popup .imp-navi .imp-forward img { + width: 20px; + height: auto; + cursor: pointer; +} + +.interactiveMap_popup .imp-navi .imp-backward img { + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; +} + +/* a lot of log entries starts with a paragraph*/ +.interactiveMap_popup p { + font-size: inherit !important; +} + +.interactiveMap_popup .imp-cache .imp-icon, .interactiveMap_popup .imp-cache .imp-icon img, +.interactiveMap_popup .imp-cache-log .imp-cache-icon, .interactiveMap_popup .imp-cache-log .imp-cache-icon img, +.interactiveMap_popup .imp-cache-log .imp-log-icon, .interactiveMap_popup .imp-cache-log .imp-log-icon img { + padding-left: 0px !important; + padding-right: 0px !important; +} + +.interactiveMap_popup .imp-cache .imp-icon, .interactiveMap_popup .imp-cache .imp-icon img, +.interactiveMap_popup .imp-cache-log .imp-cache-icon, .interactiveMap_popup .imp-cache-log .imp-cache-icon img { + width: 19px; + height: 19px; +} + +.interactiveMap_popup .imp-cache .imp-wp { + float: right; + font-weight: normal; + font-size: 90% !important; +} + +.interactiveMap_popup .imp-cache .imp-details { + font-size: 85%; +} + +.interactiveMap_popup .imp-cache .imp-details img { + width: 10px; + height: 10px; +} + +.interactiveMap_popup .imp-cache .imp-counter { + text-align: right; +} + +.interactiveMap_popup .imp-cache .imp-label { + font-weight: bold; +} + +.interactiveMap_popup .imp-cache-log .imp-block { + margin-top: 10px; +} + +.interactiveMap_popup .imp-cache-log .imp-content { + font-weight: normal; +} + +.interactiveMap_popup .imp-cache-log .imp-user { + font-weight: bold; +} + +.interactiveMap_popup .imp-guide { + font-size: 13px; + font-weight: bold; + text-align: left; +} + +.interactiveMap_popup .imp-guide .imp-desc { + max-height: 5em; + overflow: hidden; +} + +.interactiveMap_popup .imp-table { + display: table; + width: 100%; +} + +.interactiveMap_popup .imp-table .imp-row { + display: table-row; +} + +.interactiveMap_popup .imp-table .imp-cell, +.interactiveMap_popup .imp-table .imp-narrow-cell { + display: table-cell; + padding: 1px 5px; +} + +.interactiveMap_popup .imp-table .imp-narrow-cell { + width: 1%; + white-space: nowrap; +} + +.interactiveMap_popup .imp-cache .imp-icon, +.interactiveMap_popup .imp-cache-log .imp-cache-icon, +.interactiveMap_popup .imp-cache-log .imp-log-icon { + padding-bottom: 2px; +} + +.interactiveMap_popup .ipm-section { + margin-bottom: 5px; +} + +.interactiveMap_popup .imp-table .ipm-section { + padding: 0px 0px 1px 0px; + font-size: 0.8em; + font-weight: bold; + border-bottom: 1px solid #c0c0c0; + text-align: center; +} diff --git a/public/views/chunks/interactiveMap/interactiveMap.js b/public/views/chunks/interactiveMap/interactiveMap.js new file mode 100644 index 0000000000..b0eca4ed9f --- /dev/null +++ b/public/views/chunks/interactiveMap/interactiveMap.js @@ -0,0 +1,1365 @@ +/** + * This is a global object and an entry point to InteractiveMap collection + */ +var InteractiveMapServices = { + /** + * returns InteractiveMap object with given mapId + * or if params is an object, creates a new one with given id and params + */ + getInteractiveMap: function(mapId, params) { + var result = null; + if ( + typeof mapId !== "undefined" + ) { + if (typeof window["_interactiveMaps"] === "undefined") { + window["_interactiveMaps"] = []; + } + if ( + typeof window["_interactiveMaps"][mapId] + === "undefined" + ) { + if (typeof params === "object") { + window["_interactiveMaps"][mapId] = + new InteractiveMap(mapId, params); + result = window["_interactiveMaps"][mapId]; + } + } else { + result = window["_interactiveMaps"][mapId]; + } + } + return result; + }, + + /** + * returns OpenLayers map object used as a base of this chunk instance + */ + getMapObject: function(mapId) { + return ( + typeof mapId !== "undefined" + && typeof window["_interactiveMaps"] !== "undefined" + && typeof window["_interactiveMaps"][mapId] !== "undefined" + ? window["_interactiveMaps"][mapId].map + : null + ); + }, + + /** + * returns the name of currently selected map (layer) name + */ + getSelectedLayerName: function(mapId) { + var map = this.getMapObject(mapId); + + var visibleLayers = []; + if (map) { + map.getLayers().forEach(function(layer) { + if ( + !OcLayerServices.isOcInternalLayer(layer) + && layer.getVisible() + ) { + visibleLayers.push(OcLayerServices.getOcLayerName(layer)); + } + }); + } + + if (visibleLayers.length <= 0) { + console.err('--- no visible layer ?! ---'); + return ''; + } + if (visibleLayers.length > 1) { + console.err('--- many visible layers ?! ---'); + } + + return visibleLayers.pop(); + }, + + /** + * add callback which will be called on map layer change + * callback should be a function with one input parameter: "selectedLayerName" + */ + addMapLayerSwitchCallback: function(mapId, callback) { + var correct = true; + if (typeof mapId === "undefined") { + console.error('mapId is required!'); + correct = false; + } + if (typeof callback !== "function") { + console.error('callback must be a function!'); + correct = false; + } + + if (correct) { + var map = this.getMapObject(mapId); + if (map) { + if (typeof map.layerSwitchCallbacks !== "array") { + map.layerSwitchCallbacks = [] + } + map.layerSwitchCallbacks.push(callback); + } + } + }, + + /** + * Reorders sections of map with given id, see the InteractiveMap + * corresponding method. + */ + reorderSections: function (mapId, orders) { + var correct = true; + if (typeof mapId === "undefined") { + console.error('mapId is required!'); + correct = false; + } + if (typeof orders !== "object") { + console.error('orders must be an object!'); + correct = false; + } + if (correct) { + var map = this.getInteractiveMap(mapId); + if (map) { + map.reorderSections(orders); + } + } + }, + + /** + * Toggles visibility of section of map with given id, see the + * InteractiveMap corresponding method. + */ + toggleSectionVisibility: function(mapId, section) { + var correct = true; + if (typeof mapId === "undefined") { + console.error('mapId is required!'); + correct = false; + } + if (typeof section === "undefined") { + console.error('section is required!'); + correct = false; + } + if (correct) { + var map = this.getInteractiveMap(mapId); + if (map) { + map.toggleSectionVisibility(section); + } + } + }, + + /** + * Highlights a feature match given parameters: markerType, id + * (cache or log) and section of map with given id, see the InteractiveMap + * corresponding method. + */ + highlightFeature: function(mapId, markerType, localId, section) { + var correct = true; + if (typeof mapId === "undefined") { + console.error('mapId is required!'); + correct = false; + } + if (typeof markerType === "undefined") { + console.error('markerType is required!'); + correct = false; + } + if (typeof localId === "undefined") { + console.error('localId is required!'); + correct = false; + } + if (correct) { + var interactiveMap = this.getInteractiveMap(mapId); + if (interactiveMap) { + interactiveMap.highlightFeature(markerType, localId, section); + } + } + }, + + /** + * Tones down (de-emphasizes) previously highlighted feature of map with + * given id, see the InteractiveMap corresponding method. + */ + toneDownFeature: function(mapId) { + var correct = true; + if (typeof mapId === "undefined") { + console.error('mapId is required!'); + correct = false; + } + if (correct) { + var interactiveMap = this.getInteractiveMap(mapId); + if (interactiveMap) { + interactiveMap.toneDownFeature(); + } + } + }, + + styler: { // styles in OL format + fgColor: [100, 100, 255, 1], // main foreground color in OL format + bgColor: [238, 238, 238, 0.4], // main background color in OL format + } + +}; + +// ================================================================= + +/** + * An InteractiveMap prototype + */ +function InteractiveMap(id, params) { + this.id = id; + this.targetDiv = undefined; + this.centerOn = undefined; + this.mapStartZoom = undefined; + this.forceMapZoom = undefined; + this.startExtent = undefined; + this.mapLayersConfig = getMapLayersConfig(); + this.selectedLayerKey = undefined; + this.infoMessage = undefined; + this.markersData = undefined; + this.sectionsProperties = undefined; + this.sectionsNames = undefined; + this.markerMgrs = undefined; + this.markersFamily = undefined; + + // defaults for controls and markers + this.enableScaleLine = true; + this.enableLayerSwitcher = true; + this.enableZoomControls = true; + this.enableCompass = true; + this.enableGPSLocator = true; + this.enableCooordsUnderCursor = true; + this.enableInfoMessage = true; + this.enableMarkers = true; + this.enablePopup = true; + this.enableHighlight = true; + + this.compiledPopupTpls = []; + this.layerSwitchCallbacks = []; + // rewrite params entries to corresponding attributes + if (typeof params === "object") { + for (var p in params) { + if (this.hasOwnProperty(p)) { + this[p] = params[p]; + } + } + } +} + +/** + * Initializes OL map, controls, markers etc. + */ +InteractiveMap.prototype.init = function() { + var mapDiv = $('#' + this.targetDiv); + var attributionDiv = $('
'); + mapDiv.addClass("interactiveMap_cursor"); + + this.map = new ol.Map({ + target: this.targetDiv, + view: new ol.View({ + center: ol.proj.fromLonLat( + [this.centerOn.lon, this.centerOn.lat] + ), + zoom: this.mapStartZoom, + }), + controls: ol.control.defaults({ + attributionOptions: { + collapsible: false, + target: attributionDiv[0], + }, + zoom: false, + rotate: false, + }), + }); + + // add attribution control + this.map.addControl(new ol.control.Control({ + element: attributionDiv[0], + })); + + if (this.enableScaleLine) { + // note: scaleLine has two css OL classes: + // .ol-scale-line .ol-scale-line-inner + this.map.addControl(new ol.control.ScaleLine({ minWidth: 100 })); + } + + if (this.startExtent) { + // fit map to given extent + var sw = ol.proj.fromLonLat([ + this.startExtent.sw.lon, this.startExtent.sw.lat + ]); + var ne = ol.proj.fromLonLat([ + this.startExtent.ne.lon, this.startExtent.ne.lat] + ); + this.map.getView().fit([sw[0], sw[1], ne[0], ne[1]], { nearest:true }); + } + + if (this.enableLayerSwitcher) { + // init layer switcher + this._layerSwitcherInit(); + } + if (this.enableZoomControls) { + // init zoom controls + this._mapZoomControlsInit(); + } + if (this.enableCompass) { + // init map compass (north-up reset button) + this._compassControlInit(); + } + if (this.enableGPSLocator) { + // init localization control + this._gpsLocatorInit(); + } + if (this.enableCoordsUnderCursor) { + // init mouse position coords + this._coordsUnderCursorInit(); + } + if (this.enableInfoMessage) { + // init infoMessage control + this._infoMessageInit(); + } + + if (this.enableMarkers) { + // load markers data and create features + this._loadMarkers(); + } +} + +/** + * Initializes layer switcher control with preconfigured map layers + */ +InteractiveMap.prototype._layerSwitcherInit = function() { + var switcherDiv = $( + "
" + ); + + // prepare dropdown object + var switcherDropdown = $(''); + + switcherDiv.append(switcherDropdown); + + var instance = this; + + // add layers from config to map + $.each(this.mapLayersConfig, function(key, layer) { + OcLayerServices.setOcLayerName(layer, key); + layer.set('wrapX', true); + layer.set('zIndex', 1); + + if (key == instance.selectedLayerKey) { + switcherDropdown.append( + '' + ); + layer.setVisible(true); + } else { + switcherDropdown.append( + '' + ); + layer.setVisible(false); + } + instance.map.addLayer(layer); + }); + + // add switcher to map + this.map.addControl( + new ol.control.Control({ element: switcherDiv[0] }) + ); + + // init switcher change callback + switcherDropdown.change(function(evt) { + var selectedLayerName = switcherDropdown.val(); + instance.map.getLayers().forEach(function(layer) { + // first skip OC-internal layers (prefix oc_) + if (!OcLayerServices.isOcInternalLayer(layer)) { + // this is external layer (like OSM) + layer.setVisible( + OcLayerServices.getOcLayerName(layer) == selectedLayerName + ); + } else { + // this is OC-generated layer + if (layer.getVisible() != true) { + layer.setVisible(true); + } + } + }); + + // run callback if present + if (typeof instance.layerSwitchCallbacks === 'undefined') { + $.each(instance.layerSwitchCallbacks, function(key, callback) { + callback(selectedLayerName); + }); + } + }); +} + +/** + * Initializes GPS locator control + */ +InteractiveMap.prototype._gpsLocatorInit = function() { + if (!("geolocation" in navigator)) { + console.log('Geolocation not supported by browser.') + return; + } + var gpsDiv = $("
"); + var gpsImg = $( + 'gps' + ); + + gpsDiv.append(gpsImg); + + this.map.addControl( + new ol.control.Control({ element: gpsDiv[0] }) + ); + + var geolocationObj = new GeolocationOnMap( + this.map, '.interactiveMap_gpsLocator' + ); + gpsImg.click(function() { + geolocationObj.getCurrentPosition(); + }); +} + +/** + * Initializes Map zoom control + */ +InteractiveMap.prototype._mapZoomControlsInit = function() { + var zoomDiv = $('
'); + var zoomIn = $('+'); + var zoomOut = $('-'); + + zoomDiv.append(zoomIn); + zoomDiv.append(zoomOut); + + this.map.addControl( + new ol.control.Control({ element: zoomDiv[0] }) + ); + + var instance = this; + + zoomIn.click(function() { + var view = instance.map.getView(); + var zoom = view.getZoom(); + view.setZoom(zoom + 1) + }); + + zoomOut.click(function() { + var view = instance.map.getView() + var zoom = view.getZoom(); + view.setZoom(zoom - 1) + }); +} + +/** + * Initializes Compass control + */ +InteractiveMap.prototype._compassControlInit = function() { + var compassDiv = $('
'); + var compass = $('+'); + compassDiv.append(compass); + + this.map.addControl( + new ol.control.Control({ element: compassDiv[0] }) + ); + + var instance = this; + compassDiv.click(function() { + instance.map.getView().setRotation(0); + }); + + this.map.on('moveend', function (evt) { + var rotation = evt.map.getView().getRotation(); + compass.css('transform', 'rotate(' + rotation + 'rad)'); + }); +} + +/** + * Initializes a control showing coordinates under cursor + */ +InteractiveMap.prototype._coordsUnderCursorInit = function() { + if ($(window).width() < 800) { + console.log( + 'CordsUnderCursor control skipped because of window width.' + ); + return; + } + + this.curPos = {}; + this.curPos.positionDiv = $( + '
' + ); + + this.map.addControl( + new ol.control.Control({ element: this.curPos.positionDiv[0] }) + ); + + this.curPos.lastKnownCoords = null; + this.curPos.coordsFormat = CoordinatesUtil.FORMAT.DEG_MIN; + + var instance = this; + this.map.on('pointermove', function(event) { + if ( + !CoordinatesUtil.cmp( + instance.curPos.lastKnownCoords, event.coordinate + ) + ) { + instance.curPos.lastKnownCoords = event.coordinate; + instance.curPos.positionDiv.html( + CoordinatesUtil.toWGS84( + instance.map, + instance.curPos.lastKnownCoords, + instance.curPos.coordsFormat + ) + ); + } + }); + + // switch coords format on dbl-click + this.curPos.positionDiv.dblclick(function() { + switch(instance.curPos.coordsFormat) { + case CoordinatesUtil.FORMAT.DEG_MIN: + instance.curPos.coordsFormat = + CoordinatesUtil.FORMAT.DEG_MIN_SEC; + break; + case CoordinatesUtil.FORMAT.DEG_MIN_SEC: + instance.curPos.coordsFormat = CoordinatesUtil.FORMAT.DECIMAL; + break; + case CoordinatesUtil.FORMAT.DECIMAL: + default: + instance.curPos.coordsFormat = CoordinatesUtil.FORMAT.DEG_MIN; + break; + } + }); +} + +/** + * Initializes a control showing info message + */ +InteractiveMap.prototype._infoMessageInit = function() { + var infoMsgId = this.id + '_infoMsg'; + + var msgDiv = $( + '
' + ); + var closeBtn = $('
'); + msgDiv.append(closeBtn); + + this.map.addControl( + new ol.control.Control( { element: msgDiv[0] } ) + ); + + if (this.infoMessage ) { + msgDiv.prepend(this.infoMessage); + msgDiv.show(); + } else { + msgDiv.hide(0); + } + + closeBtn.click(function() { + $('#' + infoMsgId).hide(); + }); +} + +/** + * Loads markers from markersData, creates corresponding features and organizes + * them in section-related sources and layers. + * Then creates an InteractiveMapPopup instance and assignes it with the OL map. + */ +InteractiveMap.prototype._loadMarkers = function() { + this.markersBaseZIndex = 100; + + if (!this.markersData || this.markersData.length == 0) { + return; + } + + var frontViewFeatures = {}; + var sources = {}; + var currentZIndex = this.markersBaseZIndex; + var allExtent; + var renderOrderingReverse = true; + var instance = this; + Object.keys(this.markersData).forEach(function(section) { + var featuresArr = []; + var props = ( + typeof instance.sectionsProperties !== "undefined" + && typeof instance.sectionsProperties[section] !== "undefined" + ? instance.sectionsProperties[section]: + undefined + ); + // set zIndex according to section order if defined + var zIndex = currentZIndex; + if (props && typeof props["order"] !== "undefined") { + zIndex = instance.markersBaseZIndex - parseInt(props["order"]); + } else { + currentZIndex++; + } + // true (default) if section is visible + var visible = + props && typeof props["visible"] !== "undefined" + ? props["visible"] + : true; + Object.keys(instance.markersData[section]).forEach(function(markerType) { + instance.markersData[section][markerType].forEach( + function(markerData, id) { + var feature = instance.markerMgrs[markerType].markerFactory( + instance.map, markerType, id, markerData, section + ); + if (visible) { + var geom = feature.getGeometry(); + if (typeof geom["getCoordinates"] === "function") { + var coords = geom.getCoordinates(); + var key = "" + coords[0] + "," + coords[1]; + var isFirst = ( + typeof frontViewFeatures[key] === "undefined" + ); + if ( + !isFirst + && ( + renderOrderingReverse + ? frontViewFeatures[key].zIndex < zIndex + : frontViewFeatures[key].zIndex <= zIndex + ) + ) { + frontViewFeatures[key].feature.set( + "isFirst", false + ); + isFirst = true; + } + if (isFirst) { + feature.set("isFirst", true); + frontViewFeatures[key] = { + feature: feature, + zIndex: zIndex + } + } + } + } + featuresArr.push(feature); + } + ); + }); + sources[section] = { + src: new ol.source.Vector({ features: featuresArr }), + zIndex: zIndex, + visible: visible + } + if (!allExtent) { + allExtent = sources[section].src.getExtent(); + } else { + allExtent = ol.extent.extend( + allExtent, sources[section].src.getExtent() + ); + } + }); + + Object.keys(sources).forEach(function(section) { + var source = sources[section]; + var markersLayer = new ol.layer.Vector ({ + zIndex: source.zIndex, + visible: source.visible, + source: source.src, + ocLayerName: 'oc_markers_' + section, + renderOrder: function(f1, f2) { + return ( + renderOrderingReverse + ? ( + (f1["ol_uid"] > f2["ol_uid"]) + ? -1 + : +(f1["ol_uid"] < f2["ol_uid"]) + ) + : ( + (f1["ol_uid"] < f2["ol_uid"]) + ? -1 + : +(f1["ol_uid"] > f2["ol_uid"]) + ) + ); + } + }); + instance.map.addLayer(markersLayer); + }); + + // zoom map to see all markers + if (!this.forceMapZoom && !ol.extent.isEmpty(allExtent)) { + // there are markers + this.map.getView().fit(allExtent); + } + + if (this.enableHighlight) { + // source, layer and marker for highlightning, + // placed at the bottom of active oc layers + var highlightedSource = new ol.source.Vector(); + + var highlightedPointMarker_ocData = { + id: this.id, + lat: 0, + lon: 0 + }; + this._highlightedPointMarker = createOCMarkerFeature( + "_highlighted", + "_highlighted" + this.id, + highlightedPointMarker_ocData, + new HighlightedMarker(this.map, highlightedPointMarker_ocData) + ); + highlightedSource.addFeature(this._highlightedPointMarker); + + this._highlightedLayer = new ol.layer.Vector ({ + zIndex: Math.min(this.markersBaseZIndex, currentZIndex) - 10, + visible: false, + source: highlightedSource, + ocLayerName: 'oc__highlighted', + }); + this.map.addLayer(this._highlightedLayer); + } + + if (this.enablePopup) { + // most top, foreground source and layer, where popped up features will + // be temporarily placed + this.foregroundSource = new ol.source.Vector(); + + var foregroundLayer = new ol.layer.Vector ({ + zIndex: 500, + visible: true, + source: this.foregroundSource, + ocLayerName: 'oc__foreground', + }); + + this.map.addLayer(foregroundLayer); + + this._popup = new InteractiveMapPopup() + this._popup.addToMap(this); + } +} + +/** + * Returns a feature identified by given parameters: markerType, feature local + * id (cache or log id f.ex.) and section; null is returned if not found. + */ +InteractiveMap.prototype._getFeature = function(markerType, localId, section) { + var result = null; + var featureId = createFeatureId( + markerType, localId, section ? section : "_DEFAULT_" + ); + + this.map.getLayerGroup().getLayersArray().some(function(layer) { + if (OcLayerServices.isOcInternalLayer(layer)) { + result = layer.getSource().getFeatureById(featureId); + } + return (result != null); + }); + + return result; +} + +/** + * Reorders sections basing on given orders array, by setting z-index + */ +InteractiveMap.prototype.reorderSections = function(orders) { + var instance = this; + this.map.getLayerGroup().getLayersArray().forEach(function(layer) { + var match = /^oc_markers_(.+)/.exec(layer.get('ocLayerName')); + if (match != null) { + var section= match[1]; + if (orders[section] !== undefined) { + layer.setZIndex(instance.markersBaseZIndex - orders[section]); + } + } + }); + this.map.renderSync(); +} + +/** + * Toggles visibility of given section + */ +InteractiveMap.prototype.toggleSectionVisibility = function(section) { + var instance = this; + this.map.getLayerGroup().getLayersArray().some(function(layer) { + var match = /^oc_markers_(.+)/.exec(layer.get('ocLayerName')); + if (match != null && match[1] == section) { + layer.setVisible(!layer.getVisible()); + if (typeof instance._popup !== "undefined") { + instance.map.once("postrender", function(evt) { + instance._popup.adjustFeaturesByLayer(layer); + }); + } + return true; + } + }); +} + +/** + * Highlights a feature identified by given parameters, if found + */ +InteractiveMap.prototype.highlightFeature = function( + markerType, localId, section +) { + if ( + this.enableHighlight + && typeof this._highlightedPointMarker !== "undefined" + && typeof this._highlightedLayer !== "undefined" + ) { + var feature = this._getFeature(markerType, localId, section); + if (feature) { + var coords = feature.getGeometry().getCoordinates(); + if (coords) { + this._highlightedPointMarker.getGeometry().setCoordinates( + coords + ); + this._highlightedLayer.setVisible(true); + } + } + } +} + +/** + * Tones down previously highlighted feature + */ +InteractiveMap.prototype.toneDownFeature = function() { + if ( + this.enableHighlight + && typeof this._highlightedLayer !== "undefined" + ) { + this._highlightedLayer.setVisible(false); + } +} + +// ================================================================= + +/** + * An InteractiveMapPopup prototype + */ +function InteractiveMapPopup() { + this.popup = new ol.Overlay({ + element: $('
')[0], + positioning: 'bottom-center', + stopEvent: true, + insertFirst: false, + offset: [0, -50], + autoPan: true, + autoPanAnimation: { + duration: 250 + }, + offsetYAdjusted: false, + }); + this.features = []; + this.featureIndex = -1; + this.offsetYAdjusted = false; +} + +/** + * Assigns this popup instance to given InteractiveMap instance, setting 'click' + * event handler. + */ +InteractiveMapPopup.prototype.addToMap = function(interactiveMap) { + this.interactiveMap = interactiveMap + this.interactiveMap.map.addOverlay(this.popup); + var instance = this; + this.interactiveMap.map.on('click', function(evt) { + instance._mapClickEvent(evt); + }); +} + +/** + * Should be called after any oc layer visibility change to adjust current + * features available in popup to the changed visibility. A layer where + * visibility has been changed is passed as a parameter. + */ +InteractiveMapPopup.prototype.adjustFeaturesByLayer = function(layer) { + var s = layer.getSource(); + if (s && this.features.length > 0) { + var instance = this; + var oldFeatureSource = this.currentFeatureSource; + instance._clearFeature(); + instance.interactiveMap.map.once("postrender", function(evt) { + var features = instance._getMapFeatures( + instance.interactiveMap.map.getPixelFromCoordinate( + instance.popup.getPosition() + ) + ).filter(function(feature) { + return ( + feature.getId() + && ( + layer.getVisible() + || !s.getFeatureById(feature.getId()) + ) + ); + }); + if (!layer.getVisible() && s === oldFeatureSource) { + // currently displayed pop feature is hidden in layer, + // so reset index + instance.featureIndex = -1; + } else { + // currently displayed pop feature is still visible, + // so determine its index in new array of features + var currentFeature = instance.features[instance.featureIndex]; + features.some(function(feature, index) { + if (feature == currentFeature) { + // set new index before desired feature, + // to be correctly used in _switchPopupContent + instance.featureIndex = index -1; + return true; + } + }); + } + instance.features = features; + if (instance.features.length > 0) { + instance._switchPopupContent(true); + } else { + instance.popup.setPosition(undefined); + } + }); + }; +} + +/** + * Returns map features being under given pixel, with exclusion of foreground + * (popup) layer. + */ +InteractiveMapPopup.prototype._getMapFeatures = function(pixel) { + var result = []; + + var fC; + var instance = this; + this.interactiveMap.map.forEachFeatureAtPixel(pixel, function(feature) { + if ( + feature.getId() + && (feature.get('ocData')) != undefined + && !instance.interactiveMap.foregroundSource.getFeatureById( + feature.getId() + ) + ) { + var canAdd = true; + if (fC == undefined) { + // save the first feature coordinates + fC = feature.getGeometry().getCoordinates(); + } else { + // add another features only if coordinates match the first one + var nFC = feature.getGeometry().getCoordinates(); + canAdd = ( + (nFC[0] == fC[0]) && (nFC[1] == fC[1]) + || feature.getGeometry().intersectsCoordinate(fC) + ); + } + if (canAdd) { + result.push(feature); + } + } + }); + + return result; +} + +/** + * Clears from popup currently selected feature, movin it from the foreground + * source to its original one. + */ +InteractiveMapPopup.prototype._clearFeature = function(feature) { + if (feature === undefined && this.featureIndex >= 0) { + feature = this.features[this.featureIndex]; + } + if (feature !== undefined && this.currentFeatureSource !== undefined) { + this.interactiveMap.foregroundSource.removeFeature(feature); + feature.set("isFirst", false); + this.currentFeatureSource.addFeature(feature); + this.currentFeatureSource = undefined; + } +} + +/** + * Should be called on popup hide or just before possible show, to clear all + * variables and states related to previously displayed popup. + */ +InteractiveMapPopup.prototype._onHide = function() { + this._clearFeature(); + this.featureIndex = -1; + this.features = []; + this.offsetYAdjusted = false; +} + +/** + * An event handler to be assigned to OL map 'click' event. + * Checks all features being under clicked pixel and selects them if coordinates + * match the first one selected. + * If an array of selected features is not empty, the popup is shown. + */ +InteractiveMapPopup.prototype._mapClickEvent = function(evt) { + this._onHide(); + + var features = this._getMapFeatures(evt.pixel); + if (features.length > 0) { + this.features = features; + this._switchPopupContent(true); + } else { + this.popup.setPosition(undefined); + } +} + +/** + * Computes popup offset Y to place it in a right place above current + * popup features. The computing result is based if applicable on 'popupOffsetY' + * attribute of features' markers, which are consecutively computed if missing. + */ +InteractiveMapPopup.prototype._computePopupOffsetY = function() { + var result; + + this.features.forEach(function(feature) { + var ocData = feature.get("ocData"); + + var ocMarker = feature.get('ocMarker'); + if ( + ocMarker != undefined + && typeof(ocMarker['currentStyle']) != "undefined" + ) { + if (typeof(ocMarker.currentStyle['popupOffsetY']) === "undefined") { + ocMarker.computePopupOffsetY(); + } + if (typeof(ocMarker.currentStyle['popupOffsetY']) !== "undefined") { + if ( + result == undefined + || result > ocMarker.currentStyle.popupOffsetY + ) { + result = ocMarker.currentStyle.popupOffsetY; + } + } + } else { + var im; + var s = feature.getStyle(); + if (typeof(s["getImage"]) == "function") { + im = s.getImage(); + } + if (im && im instanceof ol.style.Icon) { + var anc = im.getAnchor(); + var offset = -(anc[1] * im.getScale()) - 2; + if (result == undefined || result > offset) { + result = offset; + } + } + } + }); + + return result; +} + +/** + * Selects the next or previous feature from features being under a popup point + * when the map was clicked. The selection depends on a 'forward' parameter. + * If there is no feature previously selected, the first one is chosen. Next, + * the content and position of popup is set according to the selected feature + * values. + */ +InteractiveMapPopup.prototype._switchPopupContent = function(forward) { + var oldFeature; + var i = this.featureIndex; + if (i >= 0) { + oldFeature = this.features[i]; + // (+/-1) modulo features.length, negative value workaround + i = ( + ((forward ? (i + 1) : (i - 1)) % this.features.length) + + this.features.length + ) % this.features.length; + } else if (i < 0) { + i = 0; + } + + var feature = this.features[i]; + var ocData = feature.get("ocData"); + + if (!this.offsetYAdjusted) { + var popupOffsetY = this._computePopupOffsetY(); + if (popupOffsetY) { + this.popup.setOffset([0, popupOffsetY]); + } + this.offsetYAdjusted = true; + } + + // move currect feature to the foreground layer, replacing the previous + // one + var featureId = feature.getId(); + if (featureId) { + var instance = this; + this.interactiveMap.map.getLayerGroup().getLayersArray().some( + function(layer) { + if (/^oc_[^_].*/.test( layer.get('ocLayerName') )) { + var s = layer.getSource(); + if (s.getFeatureById(featureId) === feature) { + if (oldFeature != undefined) { + instance._clearFeature(oldFeature); + } + s.removeFeature(feature); + feature.set("isFirst", true); + instance.interactiveMap.foregroundSource.addFeature( + feature + ); + instance.currentFeatureSource = s; + return true; + } + } + } + ); + } + + var markerSection = ocData.markerSection; + var markerType = ocData.markerType; + var markerId = ocData.markerId; + + if (!this.interactiveMap.compiledPopupTpls[markerType]) { + var popupTpl = + $('script[type="text/x-handlebars-template"].' + markerType).html(); + this.interactiveMap.compiledPopupTpls[markerType] = + Handlebars.compile(popupTpl); + } + + var markerContext = + this.interactiveMap.markersData[markerSection][markerType][markerId]; + if ( + typeof this.interactiveMap.sectionsNames !== "undefined" + && typeof this.interactiveMap.sectionsNames[markerSection] + !== "undefined" + ) { + markerContext['sectionName'] = + this.interactiveMap.sectionsNames[markerSection]; + } + if (this.features.length > 1) { + markerContext['showNavi'] = true; + } else { + markerContext['showNavi'] = undefined; + } + $(this.popup.getElement()).html( + this.interactiveMap.compiledPopupTpls[markerType](markerContext) + ); + + var instance = this; + $(".imp-closer").click(function(evt) { + instance._onHide(); + instance.popup.setPosition(undefined); + }); + + if (this.features.length > 1) { + $(".imp-navi .imp-backward > img").click(function(evt) { + instance._switchPopupContent(false); + }); + $(".imp-navi .imp-forward > img").click(function(evt) { + instance._switchPopupContent(true); + }); + } + + this.featureIndex = i; + this.popup.setPosition(feature.getGeometry().getCoordinates()); +} + +// ================================================================= +// Utils and helper objects +// ================================================================= + +/* this is util used fo coords formatting */ +var CoordinatesUtil = { + FORMAT: Object.freeze({ + DECIMAL: 1, /* decimal degrees: N 40.446321° W 79.982321° */ + DEG_MIN: 2, /* degrees decimal minutes: N 40° 26.767′ W 79° 58.933′ */ + DEG_MIN_SEC: 3, /* degrees minutes seconds: N 40° 26′ 46″ W 79° 58′ 56″ */ + }), + + cmp: function(coordsA, coordsB) { + return ( + Array.isArray(coordsA) && + Array.isArray(coordsB) && + coordsA[0] == coordsB[0] && + coordsA[1] == coordsB[1] + ); + }, + + toWGS84: function (map, coords, outFormat) { + if (outFormat == undefined) { + // set default output format + outFormat = this.FORMAT.DEG_MIN; + } + + // convert coords from map coords to WGS84 + mapCoordsCode = map.getView().getProjection().getCode(); + wgs84Coords = ol.proj.transform(coords, mapCoordsCode, 'EPSG:4326'); + lon = wgs84Coords[0]; + lat = wgs84Coords[1]; + + lonHemisfere = (lon < 0)?"W":"E"; + latHemisfere = (lat < 0)?"S":"N"; + + lonParts = this.getParts(lon); + latParts = this.getParts(lat); + + switch(outFormat) { + case this.FORMAT.DEG_MIN: + return ( + latHemisfere + " " + Math.floor(latParts.deg) + "° " + + latParts.min.toFixed(3) + "' " + + lonHemisfere + " " + Math.floor(lonParts.deg) + "° " + + lonParts.min.toFixed(3) + "'" + ); + + case this.FORMAT.DECIMAL: + return ( + latHemisfere + " " + latParts.deg.toFixed(5) + "° " + + lonHemisfere + " " + lonParts.deg.toFixed(5) + "°" + ); + + case this.FORMAT.DEG_MIN_SEC: + return ( + latHemisfere + " " + Math.floor(latParts.deg) + "° " + + Math.floor(latParts.min) + "' " + + latParts.sec.toFixed(2) + '" ' + + lonHemisfere + " " + Math.floor(lonParts.deg) + "° " + + Math.floor(lonParts.min) + "' " + + lonParts.sec.toFixed(2) + '"' + ); + } + }, + + getParts: function(coordinate) { + var deg = Math.abs(coordinate); + var min = 60 * (deg - Math.floor(deg)); + var sec = 60 * (min - Math.floor(min)); + return {deg: deg, min: min, sec: sec}; + }, +}; + +/** + * Object used in processing geolocation on the map + * It allows to show current position read from GPS + */ +function GeolocationOnMap(map, iconSelector) { + + this.map = map + this.positionMarkersCollection = new ol.Collection(); + this.positionMarkersLayer = null; + + this.STATUS = Object.freeze({ + INIT: '', /* initial state */ + IN_PROGRESS: 'rgb(255,255,177,.5)', /* position reading in progress */ + POSITION_ACQUIRED: 'rgb(170,255,127,.5)', /* positions has been read */ + ERROR: 'rgb(0,255,255,.5)', /* some error occured */ + }) + + + this.getCurrentPosition = function() { + console.log('get position...') + + if (!("geolocation" in navigator)) { + console.error('Geolocation not supported by browser!'); + this.changeGeolocIconStatus(obj.STATUS.ERROR); + return; + } + + this.changeGeolocIconStatus(this.STATUS.IN_PROGRESS); + + navigator.geolocation.getCurrentPosition( + this.getSuccessCallback(), + this.getErrorCallback(), + { enableHighAccuracy: true } + ); + } + + // set new status and its icon + this.changeGeolocIconStatus = function(newStatus) { + $(iconSelector).css('background-color', newStatus); + } + + this.getSuccessCallback = function() { + + var obj = this; + + return function(position) { + console.log('position read: ', position); + + obj.changeGeolocIconStatus(obj.STATUS.POSITION_ACQUIRED); + + lat = position.coords.latitude; + lon = position.coords.longitude; + + currCoords = ol.proj.fromLonLat([lon, lat]); + accuracy = position.coords.accuracy; + + view = obj.map.getView(); + view.setCenter(currCoords); + view.setZoom(obj.calculateZoomForAccuracy(accuracy)); + + // draw position marker + var accuracyFeature = new ol.Feature({ + geometry: new ol.geom.Circle(currCoords, accuracy), + }); + + accuracyFeature.setStyle([ + new ol.style.Style({ //circle + stroke: new ol.style.Stroke({ + color: DynamicMapServices.styler.fgColor, + width: 2}), + }), + new ol.style.Style({ //center marker + geometry: function(feature){ + return new ol.geom.Point(feature.getGeometry().getCenter()); + }, + image: new ol.style.RegularShape({ + stroke: new ol.style.Stroke({ + color: DynamicMapServices.styler.fgColor, + width: 2 + }), + points: 4, + radius: 10, + radius2: 0, + angle: Math.PI / 4 + }) + }), + ] + ) + + obj.positionMarkersCollection.clear(); + obj.positionMarkersCollection.push(accuracyFeature); + + if (obj.positionMarkersLayer == null) { + obj.positionMarkersLayer = new ol.layer.Vector({ + map: obj.map, + source: new ol.source.Vector({ + features: obj.positionMarkersCollection, + }), + }); + } + } + } + + this.getErrorCallback = function() { + var obj = this; + + return function(positionError) { + console.error('OC Map: positions reading error!', positionError); + + if (positionError.code === 1) { // Permission denied + // User has denied geolocation - return to initial state + obj.changeGeolocIconStatus(obj.STATUS.INIT); + } else { + // Indicate actual problem with getting position + obj.changeGeolocIconStatus(obj.STATUS.ERROR); + } + } + } + + this.calculateZoomForAccuracy = function(accuracy) { + // accuracy is in meters + + if (accuracy < 300) return 16; + if (accuracy < 600) return 15; + if (accuracy < 1200) return 14; + if (accuracy < 2400) return 13; + if (accuracy < 5000) return 12; + if (accuracy < 10000) return 11; + return 10; // otherwise + } + + return this; +} + +var OcLayerServices = { + + isOcInternalLayer: function (layer){ + return ( /^oc_.*/.test( layer.get('ocLayerName') )); + }, + + setOcLayerName: function (layer, name){ + layer.set('ocLayerName', name); + }, + + getOcLayerName: function(layer) { + return layer.get('ocLayerName'); + } + +}; diff --git a/public/views/chunks/interactiveMap/markers/ocMarker.js b/public/views/chunks/interactiveMap/markers/ocMarker.js new file mode 100644 index 0000000000..a30213c1e9 --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/ocMarker.js @@ -0,0 +1,79 @@ +function createOCMarkerFeature(type, id, ocData, ocMarker, section) { + if (typeof section === "undefined") { + section = "_DEFAULT_"; + } + var feature = new ol.Feature({ + geometry: new ol.geom.Point( + ol.proj.fromLonLat([parseFloat(ocData.lon), parseFloat(ocData.lat)]) + ), + ocData: { + markerSection: section, + markerType: type, + markerId: id + }, + }); + feature.setId(createFeatureId(type, ocData.id, section)); + if (typeof ocMarker["getFeatureStyle"] === "function") { + ocMarker.feature = feature; + feature.set('ocMarker', ocMarker); + feature.setStyle(function(feature, resolution) { + return ocMarker.getFeatureStyle(resolution) + }); + } + return feature; +} + +/** + * Creates id for feature, basing on given parameters + */ +function createFeatureId(markerType, localId, section) { + if (typeof section === "undefined") { + section = "_DEFAULT_"; + } + return section + '_' + markerType + '_' + localId; +} + +/** + * A most top marker prototype. It is not advisable to instatiate it directly, + * rather instatiate one of derived subclasses + */ +function OCMarker(map, ocData) { + this.map = map; + this.ocData = ocData; + this.feature = undefined; + this.currentStyle = undefined; +} + +/** + * Computes offset for possible popup placement, basing on current styles + */ +OCMarker.prototype.computePopupOffsetY = function() { + if ( + this.currentStyle != undefined + && typeof(this.currentStyle["style"]) !== "undefined" + ) { + if (typeof(this.currentStyle.style["length"]) !== "undefined") { + var self = this; + this.currentStyle.style.forEach(function(s) { + var im = s.getImage(); + if (im && im instanceof ol.style.Icon) { + var anchor = im.getAnchor(); + var scale = im.getScale(); + var cOfsY = -(anchor[1] * scale) + if ( + typeof(self.currentStyle["popupOffsetY"]) === "undefined" + || self.currentStyle.popupOffsetY > cOfsY + ) { + self.currentStyle.popupOffsetY = cOfsY; + } + } + }); + } else if (typeof(this.currentStyle.style["getImage"]) == "function") { + var im = this.currentStyle.style.getImage(); + if (im && im instanceof ol.style.Icon) { + var anchor = im.getAnchor(); + this.currentStyle.popupOffsetY = -(anchor[1] * im.getScale()); + } + } + } +} diff --git a/public/views/chunks/interactiveMap/markers/simple/cacheMarker.js b/public/views/chunks/interactiveMap/markers/simple/cacheMarker.js new file mode 100644 index 0000000000..9df95f8139 --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/simple/cacheMarker.js @@ -0,0 +1,31 @@ +/** + * Marker for displaying a cache + */ +function CacheMarker(map, ocData) { + OCMarker.call(this, map, ocData); +} + +CacheMarker.prototype = Object.create(OCMarker.prototype); + +CacheMarker.prototype.constructor = CacheMarker; + +/** + * Creates and returns style of the marker, based on server-side set icon + */ +CacheMarker.prototype.getFeatureStyle = function(resolution) { + if (this.currentStyle == undefined) { + this.currentStyle = { + style: new ol.style.Style({ + image: new ol.style.Icon({ + anchor: [0.5, 0.5], + anchorXUnits: 'fraction', + anchorYUnits: 'fraction', + src: this.ocData.icon, + scale: 0.6, + }) + }), + popupOffsetY: undefined + }; + } + return this.currentStyle.style; +} diff --git a/public/views/chunks/interactiveMap/markers/simple/highlightedMarker.js b/public/views/chunks/interactiveMap/markers/simple/highlightedMarker.js new file mode 100644 index 0000000000..8d71b02e85 --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/simple/highlightedMarker.js @@ -0,0 +1,32 @@ +/** + * Marker for displaying highlight for another feature + */ +function HighlightedMarker(map, ocData) { + OCMarker.call(this, map, ocData); +} + +HighlightedMarker.prototype = Object.create(OCMarker.prototype); + +HighlightedMarker.prototype.constructor = HighlightedMarker; + +/** + * Creates and returns style of the marker: a green square + */ +HighlightedMarker.prototype.getFeatureStyle = function(resolution) { + if (this.currentStyle == undefined) { + this.currentStyle = { + style: new ol.style.Style({ + image: new ol.style.RegularShape({ + stroke: new ol.style.Stroke({ + color: 'green', + width: 2 + }), + points: 4, + radius: 15, + angle: Math.PI / 4 + }) + }) + }; + } + return this.currentStyle.style; +} diff --git a/public/views/chunks/interactiveMap/markers/simple/logMarker.js b/public/views/chunks/interactiveMap/markers/simple/logMarker.js new file mode 100644 index 0000000000..4cdf023e6c --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/simple/logMarker.js @@ -0,0 +1,31 @@ +/** + * Marker for displaying a log of a cache + */ +function LogMarker(map, ocData) { + OCMarker.call(this, map, ocData); +} + +LogMarker.prototype = Object.create(OCMarker.prototype); + +LogMarker.prototype.constructor = LogMarker; + +/** + * Creates and returns style of the marker, based on server-side set log icon + */ +LogMarker.prototype.getFeatureStyle = function(resolution) { + if (this.currentStyle == undefined) { + this.currentStyle = { + style: new ol.style.Style({ + image: new ol.style.Icon({ + anchor: [0.5, 0.5], + anchorXUnits: 'fraction', + anchorYUnits: 'fraction', + src: this.ocData.logIcon, + scale: 1, + }) + }), + popupOffsetY: undefined + }; + } + return this.currentStyle.style; +} diff --git a/public/views/myNbhInteractive/common.css b/public/views/myNbhInteractive/common.css new file mode 100644 index 0000000000..359f8cad3b --- /dev/null +++ b/public/views/myNbhInteractive/common.css @@ -0,0 +1,166 @@ +@charset "UTF-8"; + +.content2-container { + font-size: 12px; +} + +.nbh-pageheader { + color: rgb(88, 144, 168); + font-weight: bold; + font-size: 1.3em; +} + +.nbh-nodisplay { + display: none; +} + +.nbh-nowrap { + white-space: nowrap; +} + +fieldset { + border: 1px solid #d3d3d3 !important; + border-radius: 3px !important; + padding: 10px 30px; + min-width: 40%; + display: inline-box; +} + +legend { + font-size: 14px; +} + +.ui-icon-background { + background-color: #fff !important; +} + +#nbh-custom-handle { + width: 3em; + height: 1.6em; + top: 50%; + margin-top: -.8em; + margin-left: -1.6em; + text-align: center; + line-height: 1.6em; +} + +.nbh-map { + height: 400px; + width: 100%; +} + +.nbh-usermap { + height: 350px; + padding: 5px; + border: 1px solid #ccc; + border-radius: 3px; +} + +#nbh-startdraw-btn { + display: inline-block; +} + +#nbh-coords-line { + display: none; +} +#nbh-delete-dialog-icon { + float: left; + margin: 12px 12px 20px 0; +} + +.nbh-block { + display: inline-block; + vertical-align: top; +} + +.nbh-half { + width: 49%; +} + +.nbh-full { + width: 99%; +} + +.nbh-line-container>a, .nbh-desc-container>a, .lightTipped>a { + text-decoration: none; +} + +.lightTip { + margin: 0px 10px 0px 60px !important; +} + +.nbh-block-placeholder { + border: 1px dotted #ccc; + border-radius: 3px; + margin: 10px 1em 1em 0; + height: 30px; + width: 49%; + display: inline-block; + vertical-align: top; + background-color: rgb(156, 186, 214); +} + +.nbh-block-header { + background-color: #f9fcfc; + padding: 5px; + border: 1px solid #ccc; + border-radius: 3px; + color: rgb(88, 144, 168); + font-weight: bold; + font-size: 1.2em; + margin: 10px 0px 0px 0px; + cursor: move; +} + +.nbh-back-btn { + display: inline !important; + font-weight: normal; +} +.nbh-sm-buttons, +.nbh-md-buttons { + float: right; +} + +.nbh-line-container { + padding: 2px; + width: 99%; +} + +.nbh-desc-container { + padding: 5px; + display: table-cell; + vertical-align: middle; + line-height: 1.5em; + vertical-align: middle; +} + +.nbh-image-container { + display: table-cell; + vertical-align: middle; + padding: 5px; +} + +.nbh-arrow-north { + width: 10px; +} + +.nbh-eye { + background-image: url("/images/misc/eye-uni.svg"); + width: 16px; + height: 13px; + display: inline-block; + background-repeat: no-repeat; + background-size: 14px 13px; + vertical-aling: middle; + margin-bottom: -3px; +} + +.nbh-top-config-btns { + background-color: #df4e49; + padding: 3px 10px; + border-radius: 3px; + margin-bottom: 5px; +} +.nbh-button-right { + float: right; +} \ No newline at end of file diff --git a/public/views/myNbhInteractive/config.js b/public/views/myNbhInteractive/config.js new file mode 100644 index 0000000000..b885a970ba --- /dev/null +++ b/public/views/myNbhInteractive/config.js @@ -0,0 +1,50 @@ +// Slider to choose MyNbh caches item +$(function() { + var handle = $("#nbh-custom-handle"); + $("#nbh-slider").slider({ + value : cachesCount, + min : minCaches, + max : maxCaches, + create : function() { + handle.text($(this).slider("value")); + }, + slide : function(event, ui) { + handle.text(ui.value); + $("#input-caches").val(ui.value); + } + }); +}); + +// Buttons to choose MyNbh style +$(function() { + $(".nbh-radio").checkboxradio(); + $("fieldset").controlgroup(); +}); + +// Delete Nbh button +$("#nbh-delete-btn").click(function(e) { + e.preventDefault(); + $("#nbh-delete-dialog-confirm").dialog("open"); +}); + +// Delete Nbh - confirm dialog +$(function() { + $("#nbh-delete-dialog-confirm").dialog({ + autoOpen : false, + resizable : false, + modal : true, + hide : 250, + closeText : cancelButton, + buttons : [ { + text : deleteButton, + click : function() { + window.location = deleteLink; + }, + }, { + text : cancelButton, + click : function() { + $(this).dialog("close"); + } + } ] + }); +}); diff --git a/public/views/myNbhInteractive/config_draw.js b/public/views/myNbhInteractive/config_draw.js new file mode 100644 index 0000000000..7f44b60662 --- /dev/null +++ b/public/views/myNbhInteractive/config_draw.js @@ -0,0 +1,307 @@ +class ConfigDraw { + + constructor(map, minRadius, maxRadius) { + if (map == null || ! map instanceof ol.Map) { + throw "Invalid map parameter"; + } + + this.map = map; + this.minRadius = minRadius; + this.maxRadius = maxRadius; + + this.configDrawCommonStyles = { + 'Circle': [ + new ol.style.Style({ + fill: new ol.style.Fill({ + color: [255, 255, 0, 0.35] + }), + stroke: new ol.style.Stroke({ + color: [0, 0, 0, 0.8], + width: 1 + }), + }), + ] + }; + this.configDrawCommonStyles['GeometryCollection'] = + this.configDrawCommonStyles['Circle'].concat( + new ol.style.Style({ + image: new ol.style.Circle({ + radius: 5, + fill: new ol.style.Fill({ + color: [255, 255, 255, 1] + }), + stroke: new ol.style.Stroke({ + color: [0, 0, 0, 1], + width: 1 + }), + }), + }) + ); + + this.configDrawModifyStyles = Object.assign( + {}, this.configDrawCommonStyles + ); + this.configDrawModifyStyles['Point'] = [ + new ol.style.Style({ + image: new ol.style.Circle({ + radius: 4, + fill: new ol.style.Fill({ + color: [255, 255, 255, 1] + }), + stroke: new ol.style.Stroke({ + color: [0, 0, 0, 1], + width: 1 + }), + }), + }), + ]; + + const instance = this; + this.configSource = new ol.source.Vector(); + this.configLayer = new ol.layer.Vector({ + source: this.configSource, + zIndex: 1000, + style: function(feature, resolution) { + return instance.configDrawModifyStyles[ + feature.getGeometry().getType() + ]; + }, + }); + this.configLayer.set('ocLayerName', 'oc_mynbh_config'); + + this.modify = new ol.interaction.Modify({ + source: this.configSource, + style: function(feature, resolution) { + return instance.configDrawModifyStyles[ + feature.getGeometry().getType() + ]; + }, + }); + + this.snap = new ol.interaction.Snap({ + source: this.configSource + }); + + this.hooks = {}; + } + + setHooks(hooks) { + if (hooks != null && typeof(hooks) === "object") { + this.hooks = hooks; + } + } + + addHook(name, hook) { + this.hooks[name] = hook; + } + + init(initLatLon, initRadius) { + this.map.addLayer(this.configLayer); + this.map.addInteraction(this.snap); + + if (initLatLon && initRadius) { + let currentGeometry = this._configGeometry( + this._computeShapePoints(initLatLon, initRadius) + ); + this.configSource.addFeature(new ol.Feature({ + geometry: currentGeometry, + style: this.configDrawCommonStyles['GeometryCollection'] + })); + this.map.getView().fit(currentGeometry.getExtent()); + this._startModifications(); + } else { + const instance = this; + this.draw = new ol.interaction.Draw({ + type: 'Circle', + source: this.configSource, + stopClick: true, + style: function(feature, resolution) { + return instance.configDrawCommonStyles[ + feature.getGeometry().getType() + ]; + }, + freehand: true, + geometryFunction: this._configGeometry + }); + + this.draw.on("drawend", function(ev) { + return instance._drawComplete(ev.feature); + }); + } + } + + startDrawing() { + if (this.draw) { + this.map.addInteraction(this.draw); + } + } + + _configGeometry(coordinates, geometry) { + let center = coordinates[0]; + let last = coordinates[1]; + let dx = center[0] - last[0]; + let dy = center[1] - last[1]; + let radius = Math.sqrt(dx * dx + dy * dy); + if (!geometry) { + geometry = new ol.geom.GeometryCollection(); + } + geometry.setGeometries([ + new ol.geom.Point(center), + new ol.geom.Circle(center, radius) + ]); + return geometry; + } + + _drawComplete(feature) { + feature.setStyle(this.configDrawCommonStyles['GeometryCollection']); + this._applyRestrictions(feature); + this._callUpdateConfigHook(feature); + this.map.removeInteraction(this.draw); + this._startModifications(); + } + + _callUpdateConfigHook(feature, newCoords, newRadius) { + if (typeof(this.hooks["updateConfig"]) === "function") { + if (!newCoords || !newRadius) { + [ newCoords, newRadius ] = + this._computeNewConfigParams(feature); + } + this.hooks["updateConfig"](newCoords[0], newCoords[1], newRadius); + } + } + + _getConfigShapes(feature, onlyCircle = false) { + let circle, point; + feature.getGeometry().getGeometries().forEach(function(g) { + if (g.getType() == 'Circle') { + circle = g; + } else if (!onlyCircle && g.getType() == 'Point') { + point = g; + } + }); + return onlyCircle ? circle : [ circle, point ]; + } + + _applyRestrictions(feature) { + let circle = this._getConfigShapes(feature, true); + let radius = this._radiusToKm(circle); + let adjust = false; + if (radius > this.maxRadius) { + radius = this.maxRadius; + adjust = true; + } else if (radius < this.minRadius) { + radius = this.minRadius; + adjust = true; + } + if (adjust) { + feature.setGeometry(this._configGeometry( + this._computeShapePoints(circle.getCenter(), radius, false) + )); + } + } + + _startModifications() { + this.map.addInteraction(this.modify); + const instance = this; + this.map.on('pointermove', function(ev) { + return instance._pointerMoveOnModify(ev); + }); + this.modify.on('modifyend', function(ev) { + if (ev.features.getLength() > 0) { + let feature = ev.features.item(0); + instance._applyRestrictions(feature); + instance._callUpdateConfigHook(feature); + } + }); + } + + _pointerMoveOnModify(ev) { + const classNames = [ + 'dynamicMap_cursorResize', 'dynamicMap_cursorMove' + ]; + let c = ev.coordinate; + let mf = this.map.getView().getResolution() * 10; + + let ft = this.configSource.getFeatures(); + if (ft.length) { + let [circle, point] = this._getConfigShapes(ft[0]); + let className, dist; + if (circle) { + let radius = circle.getRadius(); + dist = this._computeDist(circle.getCenter(), c); + if (dist >= (radius - mf) && dist <= (radius + mf)) { + className = classNames[0]; + } + } + if (!className && point) { + if (!dist) { + dist = this._computeDist(point.getCoordinates(), c); + } + if (dist <= mf) { + className = classNames[1]; + } + } + let classAdded = false; + let currentClasses = this.map.getTargetElement().classList; + classNames.forEach(function(cn) { + if (!className || className != cn) { + currentClasses.remove(cn); + } else { + classAdded = (className && currentClasses.contains(cn)); + } + }); + if (className && !classAdded) { + currentClasses.add(className); + } + } + } + + _computeNewConfigParams(feature) { + let circle = this._getConfigShapes(feature, true); + let newCoords = this._toLatLon(circle.getCenter()); + let newRadius = this._radiusToKm(circle); + return [ newCoords, newRadius ]; + } + + _computeDist(startCoords, finalCoords) { + let dx = startCoords[0] - finalCoords[0]; + let dy = startCoords[1] - finalCoords[1]; + return Math.sqrt(dx * dx + dy * dy); + } + + _computeShapePoints(centerCoords, radiusInKm, coordsAreLatLon = true) { + let centerLatLon = + coordsAreLatLon ? centerCoords : this._toLatLon(centerCoords); + let centerPoint = + coordsAreLatLon ? this._fromLatLon(centerCoords) : centerCoords; + let factor = 1/Math.cos(centerLatLon[0] * Math.PI / 180); + let radiusPoint = ol.extent.getTopRight( + (new ol.geom.Circle( + centerPoint, radiusInKm * 1000 * factor + )).getExtent() + ); + radiusPoint[1] = centerPoint[1]; + return [ centerPoint, radiusPoint ]; + } + + _radiusToKm(circle) { + let centerLatLon = this._toLatLon(circle.getCenter()); + let factor = 1/Math.cos(centerLatLon[0] * Math.PI / 180); + return Math.round( ( circle.getRadius() / factor ) / 1000 ); + } + + _fromLatLon(latlonPoint) { + return ol.proj.transform( + (latlonPoint.constructor === Array) + ? [ latlonPoint[1], latlonPoint[0] ] + : [ latlonPoint.lon, latlonPoint.lat ], + "EPSG:4326", + "EPSG:3857" + ); + } + + _toLatLon(xyPoint) { + let lonlat = ol.proj.transform(xyPoint, "EPSG:3857", "EPSG:4326"); + return [ lonlat[1], lonlat[0] ]; + } +} diff --git a/public/views/myNbhInteractive/myNeighbourhood-full.css b/public/views/myNbhInteractive/myNeighbourhood-full.css new file mode 100644 index 0000000000..bae2efb864 --- /dev/null +++ b/public/views/myNbhInteractive/myNeighbourhood-full.css @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +.nbh-icon { + height: 32px; +} + +.nbh-line-container:hover, tr:hover { + background-color: #f5f5f5; +} + +.nbh-min-only { + display: none; +} \ No newline at end of file diff --git a/public/views/myNbhInteractive/myNeighbourhood-min.css b/public/views/myNbhInteractive/myNeighbourhood-min.css new file mode 100644 index 0000000000..5ea14cbde9 --- /dev/null +++ b/public/views/myNbhInteractive/myNeighbourhood-min.css @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +.nbh-icon { + height: 16px; +} + +.nbh-line-container:nth-child(odd), tr:nth-child(odd) { + background-color: #f5f5f5; +} + +.nbh-full-only { + display: none; +} \ No newline at end of file diff --git a/public/views/myNbhInteractive/myNeighbourhood.js b/public/views/myNbhInteractive/myNeighbourhood.js new file mode 100644 index 0000000000..e87cd1010b --- /dev/null +++ b/public/views/myNbhInteractive/myNeighbourhood.js @@ -0,0 +1,83 @@ +$(".nbh-sort-list").sortable({ + handle : ".nbh-block-header", + opacity : 0.7, + placeholder : "nbh-block-placeholder", + update : function(event, ui) { + let postData = $(this).sortable("serialize"); + + if (InteractiveMapServices.getInteractiveMap("nbhmap")) { + // get current order of sections + var orders = {}; + var n = 0; + $(this).sortable("toArray").forEach(function(v) { + orders[v.replace('item_', '')] = n++; + }); + // reorder map sections to move the highest section features to front + InteractiveMapServices.reorderSections("nbhmap", orders); + } + + $.ajax({ + url : changeOrderUri, + type : "post", + data : { + order : postData + } + }); + } +}); + +$(".nbh-hide-toggle").on("click", function() { + let icon = $(this); + icon.closest(".nbh-block").find(".nbh-block-content").toggleClass( + 'nbh-nodisplay'); + let hidden = icon.closest(".nbh-block").find(".nbh-block-content") + .hasClass("nbh-nodisplay"); + let itemId = icon.closest(".nbh-block").attr('id'); + let section = icon.closest(".nbh-block").attr('section'); + $.ajax({ + url : changeDisplayAjaxUri, + type : "post", + data : { + hide : hidden, + item : itemId + } + }) + if (InteractiveMapServices.getInteractiveMap("nbhmap")) { + if (this.id == "nbh-map-hide") { + InteractiveMapServices.getMapObject("nbhmap").updateSize(); + } else { + InteractiveMapServices.toggleSectionVisibility("nbhmap", section); + } + } +}); + +$(".nbh-size-toggle").on("click", function() { + let icon = $(this); + icon.closest(".nbh-block").toggleClass("nbh-half nbh-full"); + let sizeClass = icon.closest(".nbh-block").hasClass("nbh-full"); + let itemId = icon.closest(".nbh-block").attr('id'); + $.ajax({ + url : changeSizeAjaxUri, + type : "post", + data : { + size : sizeClass, + item : itemId + } + }); + if (this.id == "nbh-map-resize") { + var map = InteractiveMapServices.getMapObject("nbhmap"); + if (map) { + map.updateSize(); + } + } +}); + +$("div[id^='mynbh_item_'").mouseenter(function() { + var id = this.id.substring("mynbh_item_".length); + var parts = id.split('_'); + InteractiveMapServices.highlightFeature("nbhmap", parts[1], parts[2], parts[0]); +}); + +$("div[id^='mynbh_item_'").mouseleave(function() { + InteractiveMapServices.toneDownFeature("nbhmap"); +}); diff --git a/src/Controllers/MyNbhInteractiveController.php b/src/Controllers/MyNbhInteractiveController.php new file mode 100644 index 0000000000..b44cbba7d2 --- /dev/null +++ b/src/Controllers/MyNbhInteractiveController.php @@ -0,0 +1,744 @@ +isUserLogged() + || self::VALIDATION_MODE && !( + $this->loggedUser->hasOcTeamRole() + || $this->loggedUser->hasAdvUserRole() + || $this->loggedUser->hasSysAdminRole() + ) + ) { + $this->view->redirect( + Uri::setOrReplaceParamValue('target', Uri::getCurrentUri(), '/')); + exit(); + } + } + + /** + * Displays main MyNeighbourhood page + * + * @param int $nbhSeq - MyNbh number (seq). 0 = default user's Nbh + */ + public function index($nbhSeq = 0) + { + $this->accessControl(); + + $neighbourhoodsList = + Neighbourhood::getNeighbourhoodsList($this->loggedUser); + if (empty($neighbourhoodsList)) { + // User doesn't have any MyNeighbourhoods set, so redirect to config + $this->view->redirect( + SimpleRouter::getLink(self::class, 'config') + ); + exit(); + } + $selectedNbh = (int) $nbhSeq; + if (! array_key_exists($selectedNbh, $neighbourhoodsList)) { + // Selected MyNeighbourhood not found + if ($selectedNbh == 0) { + // User has no Home Coords -> redirect to config + $this->view->redirect( + SimpleRouter::getLink(self::class, 'config') + ); + } else { + // Redirect to default MyNeighbourhood + $this->view->redirect( + SimpleRouter::getLink(self::class, 'index', 0) + ); + } + exit(); + } + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $nbhItemSet = new MyNbhSets( + $neighbourhoodsList[$selectedNbh]->getCoords(), + $neighbourhoodsList[$selectedNbh]->getRadius() + ); + $latestCaches = $nbhItemSet->getLatestCaches( + $preferences['style']['caches-count'], 0, false + ); + $upcomingEvents = $nbhItemSet->getUpcomingEvents( + $preferences['style']['caches-count'], 0 + ); + $ftfCaches = $nbhItemSet->getLatestCaches( + $preferences['style']['caches-count'], 0, true + ); + $latestLogs = $nbhItemSet->getLatestLogs( + $preferences['style']['caches-count'], 0 + ); + $topRatedCaches = $nbhItemSet->getTopRatedCaches( + $preferences['style']['caches-count'], 0 + ); + $latestTitled = $nbhItemSet->getLatestTitledCaches( + $preferences['style']['caches-count'], 0 + ); + $this->view->setVar('latestCaches', $latestCaches); + $this->view->setVar('upcomingEvents', $upcomingEvents); + $this->view->setVar('FTFCaches', $ftfCaches); + $this->view->setVar('latestLogs', $latestLogs); + $this->view->setVar('topRatedCaches', $topRatedCaches); + $this->view->setVar('latestTitled', $latestTitled); + $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); + $this->view->setVar('selectedNbh', $selectedNbh); + $this->view->setVar('preferences', $preferences); + $this->view->setVar('user', $this->loggedUser); + + $this->view->addHeaderChunk('openLayers5'); + + $mapModel = new InteractiveMapModel(); + foreach ($preferences['items'] as $sectionName => $sectionConfig) { + $sectionCaches = null; + switch ($sectionName) { + case Neighbourhood::ITEM_LATESTCACHES: + $sectionCaches = $latestCaches; + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $sectionCaches = $upcomingEvents; + break; + case Neighbourhood::ITEM_FTFCACHES: + $sectionCaches = $ftfCaches; + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $sectionCaches = $latestTitled; + break; + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $sectionCaches = $topRatedCaches; + break; + default: + break; + } + if ($sectionCaches) { + $mapModel->addMarkersWithExtractor( + CacheMarkerModel::class, + $sectionCaches, + function($row) use ($sectionName) { + $marker = CacheMarkerModel::fromGeocacheFactory( + $row, $this->loggedUser + ); + $marker->section = $sectionName; + return $marker; + } + ); + } + $mapModel->setSectionProperties($sectionName, [ + "visible" => $sectionConfig['show'], + "order" => $sectionConfig['order'], + ]); + } + + $mapModel->addMarkersWithExtractor( + LogMarkerModel::class, + $latestLogs, + function($row) { + $marker = LogMarkerModel::fromGeoCacheLogFactory( + $row, $this->loggedUser + ); + $marker->section = Neighbourhood::ITEM_LATESTLOGS; + return $marker; + } + ); + + $mapModel->setSectionsKeys(Neighbourhood::SECTIONS); + + $this->view->setVar('mapModel', $mapModel); + $this->setPublicResourcesAndTemplate( + $preferences, 'myNeighbourhood', + true, [ 'myNeighbourhood.js' ] , true + ); + $this->view->setVar('controller', self::class); + $this->view->setVar('templatesPath', self::TEMPLATES_PATH); + $this->view->setVar('publicSrcPath', self::PUBLIC_SRC_PATH); + $this->view->buildView(); + } + + private function setPublicResourcesAndTemplate( + $preferences, $template, + $addStyled = true, $javascripts = [], $loadJQueryUI = false + ) { + $this->view->addLocalCss( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . 'common.css' + ) + ); + if ($addStyled) { + $this->view->addLocalCss( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . 'myNeighbourhood-' + . $preferences['style']['name'] . '.css' + ) + ); + } + $this->view->addLocalCss( + Uri::getLinkWithModificationTime('/css/lightTooltip.css') + ); + if (!empty($javascripts)) { + if (!is_array($javascripts)) { + $javascripts = [ $javascripts ]; + } + foreach ($javascripts as $js) { + $this->view->addLocalJs( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . $js + ), + true, + true + ); + } + } + if ($loadJQueryUI) { + $this->view->loadJQueryUI(); + } + $this->view->setVar('controller', self::class); + $this->view->setTemplate(self::TEMPLATES_PATH . $template); + } + + private function getSectionRequestCommons($nbhSeq = 0) + { + $this->redirectNotLoggedUsers(); + $selectedNbh = (int) $nbhSeq; + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $neighbourhoodsList = + Neighbourhood::getNeighbourhoodsList($this->loggedUser); + if (! array_key_exists($selectedNbh, $neighbourhoodsList)) { + // Selected MyNeighbourhood not found + $this->view->redirect( + SimpleRouter::getLink(self::class, 'index') + ); + exit(); + } + $coords = $neighbourhoodsList[$selectedNbh]->getCoords(); + $nbhItemSet = new MyNbhSets( + $coords, + $neighbourhoodsList[$selectedNbh]->getRadius() + ); + $paginationModel = new PaginationModel(self::ITEMS_PER_DETAIL_PAGE); + return [ + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ]; + } + + private function setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ) { + $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); + $this->view->setVar('paginationModel', $paginationModel); + $this->view->setVar('selectedNbh', $selectedNbh); + $this->view->setVar('user', $this->loggedUser); + $this->view->setVar('coords', $coords); + } + + /** + * Displays latest caches detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function latestCaches($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount( + $nbhItemSet->getLatestCachesCount(false) + ); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + 'caches', $nbhItemSet->getLatestCaches($limit, $offset, false) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_LatestCaches' + ); + $this->view->buildView(); + } + + /** + * Displays most recommended caches detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function mostRecommended($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount( + $nbhItemSet->getTopRatedCachesCount() + ); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + 'caches', $nbhItemSet->getTopRatedCaches($limit, $offset) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_RecommendedCaches' + ); + $this->view->buildView(); + } + + /** + * Displays FTF caches detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function ftfCaches($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount( + $nbhItemSet->getLatestCachesCount(true) + ); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + 'caches', $nbhItemSet->getLatestCaches($limit, $offset, true) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_FTFCaches' + ); + $this->view->buildView(); + } + + /** + * Displays titled caches detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function titledCaches($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount( + $nbhItemSet->getLatestTitledCachesCount() + ); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + 'caches', $nbhItemSet->getLatestTitledCaches($limit, $offset) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_TitledCaches' + ); + $this->view->buildView(); + } + + /** + * Displays upcomming events detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function upcommingEvents($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount( + $nbhItemSet->getUpcomingEventsCount() + ); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + 'caches', $nbhItemSet->getUpcomingEvents($limit, $offset) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_UpcommingEvents' + ); + $this->view->buildView(); + } + + /** + * Displays latest logs detailed page for Nbh selected as $nbhSeq + * + * @param int $nbhSeq + */ + public function latestLogs($nbhSeq = 0) + { + $this->accessControl(); + + list ( + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $logset, $paginationModel + ) = $this->getSectionRequestCommons($nbhSeq); + + $paginationModel->setRecordsCount($logset->getLatestLogsCount()); + list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar('logs', $logset->getLatestLogs($limit, $offset)); + $this->setSectionCommonVars( + $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + ); + $this->setPublicResourcesAndTemplate( + $preferences, 'detail_LatestLogs' + ); + $this->view->buildView(); + } + + /** + * Displays MyNeighbour config + * + * @param number $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh + */ + public function config($nbhSeq = 0) + { + $this->accessControl(); + + $selectedNbh = (int) $nbhSeq; + + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + + $neighbourhoodsList = + Neighbourhood::getNeighbourhoodsList($this->loggedUser); + if ( + $selectedNbh != - 1 + && ! array_key_exists($selectedNbh, $neighbourhoodsList) + ) { + $selectedNbh = 0; + } + if (array_key_exists($selectedNbh, $neighbourhoodsList)) { + $this->view->setVar('coordsOK', 1); + } else { + $this->view->setVar('coordsOK', 0); + } + $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); + $this->view->setVar('selectedNbh', $selectedNbh); + $this->view->setVar('preferences', $preferences); + $this->view->setVar('maxnbh', self::MAX_NEIGHBOURHOODS); + $this->view->setVar('minCaches', self::CACHES_PER_PAGE_MIN); + $this->view->setVar('maxCaches', self::CACHES_PER_PAGE_MAX); + $this->view->setVar('minRadius', self::NBH_RADIUS_MIN); + $this->view->setVar('maxRadius', self::NBH_RADIUS_MAX); + $this->view->setVar('errorMsg', $this->errorMsg); + $this->view->setVar('infoMsg', $this->infoMsg); + + $this->view->addHeaderChunk('openLayers5'); + + $mapModel = new InteractiveMapModel(); + $mapModel->setZoom(6); + $this->view->setVar('mapModel', $mapModel); + $this->setPublicResourcesAndTemplate( + $preferences, 'config', + false, [ 'config.js', 'config_draw.js' ], true + ); + $this->view->buildView(); + } + + /** + * Saves new/modified MyNbh. Called by MyNbh config form + * + * @param number $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh + */ + public function save($nbhSeq = 0) + { + $this->accessControl(); + + $error = null; + $seq = null; + $definedNbh = count( + Neighbourhood::getAdditionalNeighbourhoodsList($this->loggedUser) + ); + // Store MyNeighbourhood data + if ( + isset($_POST['lon']) + && isset($_POST['lat']) + && isset($_POST['radius']) + ) { + $coords = Coordinates::FromCoordsFactory( + $_POST['lat'], $_POST['lon'] + ); + $radius = (int) $_POST['radius']; + if ($radius > self::NBH_RADIUS_MAX) { + $radius = self::NBH_RADIUS_MAX; + } elseif ($radius < self::NBH_RADIUS_MIN) { + $radius = self::NBH_RADIUS_MIN; + } + if ($coords !== null) { + if ($nbhSeq == 0) { + // Update Home Coords and radius + if ( + ! $this->loggedUser->updateUserNeighbourhood( + $coords, $_POST['radius'] + ) + ) { + // Error during save MyNbh (should never happen, but...) + $error = tr('myn_save_error'); + } + } elseif ( + isset($_POST['name']) + && ($nbhSeq > 0 || $definedNbh < self::MAX_NEIGHBOURHOODS) + ) { + // Save additional neighbourhood + $seq = ($nbhSeq < 0) ? null : $nbhSeq; + $name = trim($_POST['name']); + $name = UserInputFilter::purifyHtmlString($name); + $name = strip_tags($name); + $name = mb_strcut($name, 0, 16); + if (mb_strlen($name) < 1) { + // Name too short + $name = 'X'; + } + if ( + ! Neighbourhood::storeUserNeighbourhood( + $this->loggedUser, $coords, $radius, $name, $seq + ) + ) { + // Error during save additional MyNbh + // (should never happen, but...) + $error = tr('myn_save_error'); + } + } else { + // Incorrect $_POST - without name or user exceeded + // max total nbh's + $error = tr('myn_coords_error'); + } + } else { // Coords are not OK + $error = tr('myn_coords_error'); + } + } else { // User not choose coords | radius + $error = tr('myn_coords_error'); + } + // Store user preferences + if ( + $nbhSeq == 0 + && isset($_POST['caches-perpage']) + && isset($_POST['style']) + && ($_POST['style'] == 'full' || $_POST['style'] == 'min') + ) { + $cachesPerpage = (int) $_POST['caches-perpage']; + if ($cachesPerpage > self::CACHES_PER_PAGE_MAX) { + $cachesPerpage = self::CACHES_PER_PAGE_MAX; + } elseif ($cachesPerpage < self::CACHES_PER_PAGE_MIN) { + $cachesPerpage = self::CACHES_PER_PAGE_MIN; + } + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences['style']['name'] = $_POST['style']; + $preferences['style']['caches-count'] = $cachesPerpage; + if ( + ! UserPreferences::savePreferencesJson( + NeighbourhoodPref::KEY, json_encode($preferences) + ) + ) { + // Error during storing user preferences + $error = tr('myn_save_error'); + } + } + if (is_null($error)) { + $this->infoMsg = tr('myn_save_success'); + } else { + $this->errorMsg = $error; + } + $this->config($seq == null ? 0 : $seq); + } + + /** + * Deletes My Nbh - called by form in config + * + * @param number $nbhSeq - MyNbh number (seq). 0 = default user's Nbh + */ + public function delete($nbhSeq = 0) + { + $this->accessControl(); + + $success = true; + if ($nbhSeq > 0) { // User cannot delete HomeCoords! + if ( + ! Neighbourhood::removeUserNeighbourhood( + $this->loggedUser, $nbhSeq + ) + ) { + $success = false; + } + } else { + // User try to delete Home Coords + $success = false; + } + if ($success) { + $this->infoMsg = tr('myn_delete_success'); + } else { + $this->errorMsg = tr('myn_delete_error'); + } + $this->config(0); + exit(); + } + + /** + * Saves changed order of MyNbh sections. Called via Ajax by MyNbh main page + */ + public function changeOrderAjax() + { + $this->checkUserLoggedAjax(); + $this->paramAjaxCheck('order'); + $order = []; + parse_str($_POST['order'], $order); + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $counter = 1; + foreach ($order['item'] as $itemOrder) { + $preferences['items'][$itemOrder]['order'] = $counter; + $counter += 1; + } + if ( + ! UserPreferences::savePreferencesJson( + NeighbourhoodPref::KEY, json_encode($preferences) + ) + ) { + $this->ajaxErrorResponse('Error saving UserPreferences'); + } + $this->ajaxSuccessResponse(); + } + + /** + * Saves changed size of MyNbh section. Called via Ajax by MyNbh main page + */ + public function changeSizeAjax() + { + $this->checkUserLoggedAjax(); + $this->paramAjaxCheck('size'); + $this->paramAjaxCheck('item'); + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $itemNr = ltrim($_POST['item'], 'item_'); + $preferences['items'][$itemNr]['fullsize'] = filter_var( + $_POST['size'], FILTER_VALIDATE_BOOLEAN + ); + if ( + ! UserPreferences::savePreferencesJson( + NeighbourhoodPref::KEY, json_encode($preferences) + ) + ) { + $this->ajaxErrorResponse('Error saving UserPreferences'); + } + $this->ajaxSuccessResponse(); + } + + /** + * Saves display status of MyNbh section. Called via Ajax by MyNbh main page + */ + public function changeDisplayAjax() + { + $this->checkUserLoggedAjax(); + $this->paramAjaxCheck('hide'); + $this->paramAjaxCheck('item'); + $preferences = + UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $itemNr = ltrim($_POST['item'], 'item_'); + $preferences['items'][$itemNr]['show'] = ! filter_var( + $_POST['hide'], FILTER_VALIDATE_BOOLEAN + ); + if ( + ! UserPreferences::savePreferencesJson( + NeighbourhoodPref::KEY, json_encode($preferences) + ) + ) { + $this->ajaxErrorResponse('Error saving UserPreferences'); + } + $this->ajaxSuccessResponse(); + } + + public function isCallableFromRouter($actionName) + { + return true; + } + + /** + * Check if $_POST[$paramName] is set. If not - generates 400 AJAX response + * + * @param string $paramName + */ + private function paramAjaxCheck($paramName) + { + if (! isset($_POST[$paramName])) { + $this->ajaxErrorResponse('No parameter: ' . $paramName, 400); + exit(); + } + } +} diff --git a/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php new file mode 100644 index 0000000000..f5a22f8dfa --- /dev/null +++ b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php @@ -0,0 +1,42 @@ +getShortName(); + return preg_replace('/Model$/', '', lcfirst($str)); + } + + public function getMarkerJsData() + { + return json_encode($this, JSON_PRETTY_PRINT); + } + + /** + * Check if all necessary data is set in this marker class + * @return boolean + */ + public function checkMarkerData() + { + return true + && isset($this->id) + && isset($this->lat) + && isset($this->lon) + && isset($this->icon) + ; + } + +} diff --git a/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php new file mode 100644 index 0000000000..0d653c9ce9 --- /dev/null +++ b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php @@ -0,0 +1,129 @@ +importDataFromGeoCache( $c, $user); + return $marker; + } + + protected function importDataFromGeoCache(GeoCache $c, User $user=null) + { + // Abstract-Marker data + $this->id = $c->getCacheId(); + $this->icon = $c->getCacheIcon($user); + $this->lat = $c->getCoordinates()->getLatitude(); + $this->lon = $c->getCoordinates()->getLongitude(); + + $this->wp = $c->getGeocacheWaypointId(); + $this->link = $c->getCacheUrl(); + $this->name = $c->getCacheName(); + $this->username = $c->getOwner()->getUserName(); + $this->userProfile = $c->getOwner()->getProfileUrl(); + + $this->isEvent= $c->isEvent(); + if ($this->isEvent) { + $this->eventStartDate = Formatter::date($c->getDatePlaced()); + } + $this->size = tr($c->getSizeTranslationKey()); + $this->ratingVotes = $c->getRatingVotes(); + $this->rating = ( + $this->ratingVotes < 3 + ? tr('not_available') + : $c->getRatingDesc() + ); + $this->ratingId = $c->getRatingId(); + $this->founds = $c->getFounds(); + $this->notFounds = $c->getNotFounds(); + $this->recommendations = $c->getRecommendations(); + $this->isTitled = $c->isTitled(); + if ($c->isTitled() ) { + global $titled_cache_period_prefix; //TODO: move it to the ocConfig + $this->titledDesc = tr($titled_cache_period_prefix.'_titled_cache'); + } + $this->isStandingOut = ($this->titledDesc || $this->recommendations); + if ($c->isPowerTrailPart()) { + $this->powerTrailName = $c->getPowerTrail()->getName(); + $this->powerTrailIcon = $c->getPowerTrail()->getFootIcon(); + $this->powerTrailUrl = $c->getPowerTrail()->getPowerTrailUrl(); + } + + $this->cacheType = $c->getCacheType(); + $this->cacheStatus = $c->getStatus(); + $this->logStatus = $c->getLogStatus($user); + $this->isOwner = + ($user != null && $user->getUserId() == $c->getOwner()->getUserId()); + } + + /** + * Check if all necessary data is set in this marker class + * @return boolean + */ + public function checkMarkerData() + { + return parent::checkMarkerData() + && isset($this->wp) + && isset($this->link) + && isset($this->name) + && isset($this->username) + && isset($this->userProfile) + && isset($this->isEvent) + && isset($this->size) + && isset($this->founds) + && isset($this->notFounds) + && isset($this->ratingVotes) + && isset($this->ratingId) + && isset($this->recommendations) + && isset($this->cacheType) + && isset($this->cacheStatus) + && isset($this->isOwner) + ; + } + +} diff --git a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php new file mode 100644 index 0000000000..bc9d9e891a --- /dev/null +++ b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php @@ -0,0 +1,259 @@ + translation key) for sections used in + * markerModels + */ + private $sectionsKeys = []; + + public function __construct() + { + + $this->ocConfig = OcConfig::instance(); + + $this->coords = OcConfig::getMapDefaultCenter(); + + $this->zoom = OcConfig::getStartPageMapZoom(); + $this->forceZoom = false; + $this->startExtent = false; + $this->mapLayerName = 'OSM'; + } + + /** + * Add markers of one type + * + * @param string $markerClass - class returned by Extractor by 'CacheSetMarkerModel::class' + * @param array $dataRows - rows of data - every row describes one marker + * @param callable $rowExtractor - function which can create marekrClass based on given row + */ + public function addMarkersWithExtractor( + $markerClass, array $dataRows, callable $rowExtractor + ) { + foreach ($dataRows as $row) { + + $markerModel = call_user_func($rowExtractor, $row); + + if (!($markerModel instanceof $markerClass)) { + Debug::errorLog( + "Extractor returns something different than $markerClass" + ); + return; + } + + if (!is_subclass_of($markerModel, AbstractMarkerModelBase::class)) { + Debug::errorLog( + "Marker class $markerClass is not a child of " + . AbstractMarkerModelBase::class + ); + return; + } + + $this->addMarker($markerModel); + } // foreach + } + + /** + * Add one marker to internal base of markers + * + * @param AbstractMarkerModelBase $model + */ + public function addMarker(AbstractMarkerModelBase $model) + { + $type = $model->getMarkerTypeName(); + + if (!$model->checkMarkerData()) { + $type = $model->getMarkerTypeName(); + Debug::errorLog("Marker of $type has incomplete data!"); + } + $section = ( + isset($model->section) ? $model->section : self::DEFAULT_SECTION + ); + if (!isset($this->markerModels[$section][$type])) { + $this->markerModels[$section][$type] = []; + } + $this->markerModels[$section][$type][] = $model; + } + + /** + * Read OC map config from config and return map config JS + */ + public static function getMapLayersJsConfig(){ + return OcConfig::getMapJsConfig(); + } + + public function getMarkersDataJson(){ + return json_encode($this->markerModels, JSON_PRETTY_PRINT); + } + + public function getMarkerSections(){ + return array_keys($this->markerModels); + } + + public function getMarkerTypes($section = null) { + $result = []; + if ($section != null) { + $result = + isset($this->markerModels[$section]) + ? array_keys($this->markerModels[$section]) + : []; + } else { + foreach($this->markerModels as $s) { + foreach($s as $markerType => $markers) { + if (!in_array($markerType, $result)) { + $result[] = $markerType; + } + } + } + /* + // an alternative way but seems to be too complicated: + array_walk($this->markerModels, function($v) use (&$result) { + $result = array_merge($result, array_keys($v)); + }); + $result = array_values(array_unique($result)); + */ + } + return $result; + } + + /** + * @return Coordinates + */ + public function getCoords(){ + return $this->coords; + } + + public function getZoom(){ + return $this->zoom; + } + + public function isZoomForced() + { + return $this->forceZoom; + } + + public function getSelectedLayerName(){ + return $this->mapLayerName; + } + + public function setZoom($zoom) + { + $this->zoom = $zoom; + $this->forceZoom = true; + } + + public function setInitLayerName($name){ + $this->mapLayerName = $name; + } + + public function forceDefaultZoom() + { + $this->forceZoom = true; + } + + public function setCoords(Coordinates $cords) + { + $this->coords = $cords; + } + + public function setStartExtent(Coordinates $swCorner, Coordinates $neCorner) + { + $this->swCorner = $swCorner; + $this->neCorner = $neCorner; + $this->startExtent = true; + } + + public function getStartExtentJson() + { + if($this->startExtent){ + $sw = $this->swCorner->getAsOpenLayersFormat(); + $ne = $this->neCorner->getAsOpenLayersFormat(); + return "{ sw:$sw, ne:$ne }"; + }else{ + return "null"; + } + } + + public function setInfoMessage($msg) + { + $this->infoMessage = $msg; + } + + public function getInfoMessage() + { + return $this->infoMessage; + } + + /** + * Since it is pre-configured, only a getter is available now + */ + public function getMarkersFamily() + { + return OcConfig::getMapMarkersFamily(); + } + + public function setSectionProperties($section, $properties) + { + $this->sectionsProperties[$section] = $properties; + } + + public function getSectionsPropertiesJson() + { + return json_encode($this->sectionsProperties, JSON_PRETTY_PRINT); + } + + public function setSectionsKeys($sectionsKeys) + { + $this->sectionsKeys = $sectionsKeys; + } + + public function getSectionsKeys() + { + return $this->sectionsKeys; + } +} diff --git a/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php new file mode 100644 index 0000000000..ceafe44ee3 --- /dev/null +++ b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php @@ -0,0 +1,71 @@ +importDataFromGeoCacheLog($log, $user); + return $marker; + } + + protected function importDataFromGeoCacheLog( + GeoCacheLog $log, User $user = null + ) { + parent::importDataFromGeoCache($log->getGeoCache(), $user); + + $this->id = $log->getId(); + $this->logLink = $log->getLogUrl(); + $text = strip_tags($log->getText(),'

'); + $textLen = mb_strlen($text); + if ($textLen > 200) { + $text = mb_strcut($text, 0, 200); + // do not leave open tags on truncate + $text = preg_replace('/\<[^\>]*$/', '', $text); + $text .= '...'; + } + $this->logText = $text; + $this->logIcon = $log->getLogIcon(); + $this->logType = $log->getType(); + $this->logTypeName = tr( + GeoCacheLog::typeTranslationKey($log->getType()) + ); + $this->logUserName = $log->getUser()->getUserName(); + $this->logDate = Formatter::date($log->getDateCreated()); + } + + /** + * Check if all necessary data is set in this marker class + * @return boolean + */ + public function checkMarkerData() + { + return parent::checkMarkerData() + && isset($this->logLink) + && isset($this->logText) + && isset($this->logIcon) + && isset($this->logType) + && isset($this->logTypeName) + && isset($this->logUserName) + && isset($this->logDate) + ; + } +} diff --git a/src/Models/GeoCache/GeoCache.php b/src/Models/GeoCache/GeoCache.php index 764eada862..20067d17ab 100644 --- a/src/Models/GeoCache/GeoCache.php +++ b/src/Models/GeoCache/GeoCache.php @@ -704,6 +704,41 @@ public function getRatingDesc() return tr(self::CacheRatingTranslationKey($this->ratingId)); } + /** + * Computes the cache current log status for given user, based on the user + * log entries. + * + * @param \lib\Objects\User\User $forUser a user to compute current log + * status for, may be null + * + * @return int current log status + */ + public function getLogStatus(User $forUser=null) + { + $logStatus = null; + if (!is_null($forUser)) { + $logsCount = $this->getLogsCountByType( + $forUser, + array( + GeoCacheLog::LOGTYPE_FOUNDIT, + GeoCacheLog::LOGTYPE_DIDNOTFIND + ) + ); + if ( + isset($logsCount[GeoCacheLog::LOGTYPE_FOUNDIT]) + && $logsCount[GeoCacheLog::LOGTYPE_FOUNDIT]>0 + ) { + $logStatus = GeoCacheLog::LOGTYPE_FOUNDIT; + } else if ( + isset($logsCount[GeoCacheLog::LOGTYPE_DIDNOTFIND]) + && $logsCount[GeoCacheLog::LOGTYPE_DIDNOTFIND]>0 + ) { + $logStatus = GeoCacheLog::LOGTYPE_DIDNOTFIND; + } + } + return $logStatus; + } + public function getCacheIcon(User $forUser=null) { $logStatus = null; diff --git a/src/Models/GeoCache/GeoCacheCommons.php b/src/Models/GeoCache/GeoCacheCommons.php index 462c811d17..8b08309fe9 100644 --- a/src/Models/GeoCache/GeoCacheCommons.php +++ b/src/Models/GeoCache/GeoCacheCommons.php @@ -4,6 +4,8 @@ use src\Models\BaseObject; use src\Utils\Debug\Debug; +use \ReflectionClass; + /** * Common consts etc. for geocaches * @@ -467,4 +469,26 @@ public static function GetCacheUrlByWp($ocWaypoint) { return '/viewcache.php?wp=' . $ocWaypoint; } + + /** + * Returns a JSON structure containing a (constant_name, constant_value) + * pairs for all defined geocache statuses + * + * @return string JSON structure, ready for use in javascript f.ex. + */ + public static function CacheStatusListJson() + { + $result = '{'; + $gccClass = new ReflectionClass(__CLASS__); + foreach ($gccClass->getConstants() as $name => $value) { + if (preg_match('/^STATUS\_/', $name) === 1 && is_numeric($value)) { + if (strlen($result) > 1) { + $result .= ','; + } + $result .= '"' . $name . '":"' . $value . '"'; + } + } + $result .= '}'; + return $result; + } } diff --git a/src/Models/GeoCache/GeoCacheLogCommons.php b/src/Models/GeoCache/GeoCacheLogCommons.php index bf5b80837d..f4e08f8dc2 100644 --- a/src/Models/GeoCache/GeoCacheLogCommons.php +++ b/src/Models/GeoCache/GeoCacheLogCommons.php @@ -4,6 +4,8 @@ use src\Utils\Debug\Debug; use src\Models\BaseObject; +use \ReflectionClass; + /** * Common consts etc. for geocache log */ @@ -235,4 +237,26 @@ public static function getLogTypeTplKeys( } return $result; } + + /** + * Returns a JSON structure containing a (constant_name, constant_value) + * pairs for all defined log types + * + * @return string JSON structure, ready for use in javascript f.ex. + */ + public static function LogTypeListJson() + { + $result = '{'; + $gccClass = new ReflectionClass(__CLASS__); + foreach ($gccClass->getConstants() as $name => $value) { + if (preg_match('/^LOGTYPE\_/', $name) === 1 && is_numeric($value)) { + if (strlen($result) > 1) { + $result .= ','; + } + $result .= '"' . $name . '":"' . $value . '"'; + } + } + $result .= '}'; + return $result; + } } diff --git a/src/Models/Neighbourhood/Neighbourhood.php b/src/Models/Neighbourhood/Neighbourhood.php index c7a1af7a45..3450eff33d 100644 --- a/src/Models/Neighbourhood/Neighbourhood.php +++ b/src/Models/Neighbourhood/Neighbourhood.php @@ -16,6 +16,17 @@ class Neighbourhood extends BaseObject const ITEM_TITLEDCACHES = 6; const ITEM_RECOMMENDEDCACHES = 7; + // An array of Neighbourhood sections with corresponding translation keys + const SECTIONS = [ + self::ITEM_MAP => 'map', + self::ITEM_LATESTCACHES => 'newest_caches', + self::ITEM_UPCOMINGEVENTS => 'incomming_events', + self::ITEM_FTFCACHES => 'ftf_awaiting', + self::ITEM_LATESTLOGS => 'latest_logs', + self::ITEM_TITLEDCACHES => 'startPage_latestTitledCaches', + self::ITEM_RECOMMENDEDCACHES => 'top_recommended' + ]; + /** * Id in DB * diff --git a/src/Models/OcConfig/MapConfigTrait.php b/src/Models/OcConfig/MapConfigTrait.php index ec3e251ee8..6b07e65dc8 100644 --- a/src/Models/OcConfig/MapConfigTrait.php +++ b/src/Models/OcConfig/MapConfigTrait.php @@ -90,6 +90,12 @@ public static function getMapExternalUrls() } return $result; } + + public static function getMapMarkersFamily() + { + return self::getMapVar('markersFamily'); + } + /** * Returns map properties * diff --git a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php new file mode 100644 index 0000000000..32c49c2551 --- /dev/null +++ b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php @@ -0,0 +1,100 @@ +view->addHeaderChunk('openLayers5'); + * + */ +return function (InteractiveMapModel $mapModel, $canvasId) +{ + $publicSrcPath = '/views/chunks/interactiveMap/'; + + // load chunk CSS + View::callChunkInline('loadCssByJs', + Uri::getLinkWithModificationTime( + $publicSrcPath . 'interactiveMap.css' + ) + ); + View::callChunkInline('handlebarsJs'); +?> + + + + +getMarkerTypes(), true); + $markerTypes["highlightedMarker"] = false; + foreach ($markerTypes as $markerType => $loadTpl) { + if (!$markerLibsLoaded) { + $markerLibsLoaded = true; + foreach ($markerLibs as $lib) { +?> + +getMarkersFamily() + . '/'. $markerType . '.js' + ); +?> + + + + + + + + + +{ + markerFactory: function(map, type, id, ocData, section){ + return createOCMarkerFeature( + type, id, ocData, new CacheMarker(map, ocData), section + ); + }, + +} diff --git a/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php new file mode 100644 index 0000000000..7e5593392f --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php @@ -0,0 +1,101 @@ + + +

+ {{#if sectionName}} +
+
+
{{sectionName}}
+
+
+ {{/if}} +
+ +
+
+
+
+ {{#if isEvent}} + : {{eventStartDate}} + {{else}} + : {{size}} + {{/if}} +
+
+ {{#if isEvent}} + <?=tr("> x {{founds}} + {{else}} + <?=tr('found')?> x {{founds}} + {{/if}} +
+
+
+
+ {{#if rating}}: {{rating}}{{/if}} +
+
+ {{#if isEvent}} + <?=tr("> x {{notFounds}} + {{else}} + <?=tr('not_found')?> x {{notFounds}} + {{/if}} +
+
+
+
+ {{#if username}}: {{username}}{{/if}} +
+
+ <?=tr("> {{ratingVotes}} x +
+
+ {{#if isStandingOut}} +
+
+ {{#if titledDesc}} + {{titledDesc}} {{titledDesc}} + {{/if}} +
+
+ {{#if recommendations}} + <?=tr("> {{recommendations}} x + {{/if}} +
+
+ {{/if}} +
+ {{#if powerTrailName}} +
+ +
+ {{/if}} + +
+{{#if showNavi}} +
+
+ < +
+
+ > +
+
+{{/if}} diff --git a/src/Views/chunks/interactiveMap/markers/cacheSetMarkerMgr.tpl.php b/src/Views/chunks/interactiveMap/markers/cacheSetMarkerMgr.tpl.php new file mode 100644 index 0000000000..f91c64fcca --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/cacheSetMarkerMgr.tpl.php @@ -0,0 +1,37 @@ + +{ + markerFactory: function(map, type, id, ocData, section) { + if (typeof section === "undefined") { + section = "_DEFAULT_"; + } + var iconFeature = new ol.Feature({ + geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(ocData.lon), parseFloat(ocData.lat)])), + ocData: { + markerSection: section, + markerType: type, + markerId: id + } + }); + feature.setId(section + '_' + type + '_' + ocData.id); + iconFeature.setStyle(new ol.style.Style({ + image: new ol.style.Icon( { + anchorOrigin: 'bottom-left', + anchor: [0.5, 0], + anchorXUnits: 'fraction', + anchorYUnits: 'pixels', + src: ocData.icon, + }) + })); + return iconFeature; + }, +} diff --git a/src/Views/chunks/interactiveMap/markers/cacheWithLogMarkerMgr.tpl.php b/src/Views/chunks/interactiveMap/markers/cacheWithLogMarkerMgr.tpl.php new file mode 100644 index 0000000000..e5ed818d95 --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/cacheWithLogMarkerMgr.tpl.php @@ -0,0 +1,37 @@ + +{ + markerFactory: function(map, type, id, ocData) { + if (typeof section === "undefined") { + section = "_DEFAULT_"; + } + var iconFeature = new ol.Feature({ + geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(ocData.lon), parseFloat(ocData.lat)])), + ocData: { + markerSection: section, + markerType: type, + markerId: id + } + }); + feature.setId(section + '_' + type + '_' + ocData.id); + iconFeature.setStyle(new ol.style.Style({ + image: new ol.style.Icon( { + anchor: [0.5, 0.5], + anchorXUnits: 'fraction', + anchorYUnits: 'fraction', + src: ocData.icon, + scale: 0.5, + }) + })); + return iconFeature; + }, +} diff --git a/src/Views/chunks/interactiveMap/markers/guideMarkerMgr.tpl.php b/src/Views/chunks/interactiveMap/markers/guideMarkerMgr.tpl.php new file mode 100644 index 0000000000..3ca72b6e83 --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/guideMarkerMgr.tpl.php @@ -0,0 +1,38 @@ + +{ + markerFactory: function(map, type, id, ocData, section) { + if (typeof section === "undefined") { + section = "_DEFAULT_"; + } + var iconFeature = new ol.Feature({ + geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(ocData.lon), parseFloat(ocData.lat)])), + ocData: { + markerSection: section, + markerType: type, + markerId: id + } + }); + feature.setId(section + '_' + type + '_' + ocData.id); + iconFeature.setStyle(new ol.style.Style({ + image: new ol.style.Icon({ + anchorOrigin: "bottom-left", + anchor: [8, 0], + anchorXUnits: 'pixel', + anchorYUnits: 'pixel', + src: ocData.icon, + scale: 1, + }) + })); + return iconFeature; + }, +} diff --git a/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php new file mode 100644 index 0000000000..f35008e82c --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php @@ -0,0 +1,49 @@ + + +
+
+
+
+ img +
+ +
+
+
+
+
+ {{{userDesc}}} +
+
+
+
+
+ * +
+
+ {{recCount}} +
+
+
+
+ mailTo +
+
+ +
+
+
+ +
+{{#if showNavi}} +
+
+ < +
+
+ > +
+
+{{/if}} diff --git a/src/Views/chunks/interactiveMap/markers/logMarkerMgr.tpl.php b/src/Views/chunks/interactiveMap/markers/logMarkerMgr.tpl.php new file mode 100644 index 0000000000..aee676173c --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/logMarkerMgr.tpl.php @@ -0,0 +1,18 @@ + +{ + markerFactory: function(map, type, id, ocData, section){ + return createOCMarkerFeature( + type, id, ocData, new LogMarker(map, ocData), section + ); + }, +} diff --git a/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php new file mode 100644 index 0000000000..04ccf29d85 --- /dev/null +++ b/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php @@ -0,0 +1,48 @@ + + +
+ {{#if sectionName}} +
+
+
{{sectionName}}
+
+
+ {{/if}} +
+
+
+ {{wp}} +
+
+ {{name}} + {{#if username}}({{username}}){{/if}} +
+
+ {{#if logLink}} + + {{/if}} +
+ +
+{{#if showNavi}} +
+
+ < +
+
+ > +
+
+{{/if}} diff --git a/src/Views/myNbhInteractive/config.tpl.php b/src/Views/myNbhInteractive/config.tpl.php new file mode 100644 index 0000000000..52578c6e01 --- /dev/null +++ b/src/Views/myNbhInteractive/config.tpl.php @@ -0,0 +1,167 @@ + +
+ callChunk('infoBar', null, $view->infoMsg, $view->errorMsg)?> +
+ + neighbourhoodsList as $nbh) { + if ($nbh->getSeq() == 0) { + continue; + } ?> + getName()?> + + selectedNbh == -1) { ?> + ? + neighbourhoodsList) <= $view->maxnbh) { ?> + <?=tr('new')?>  + + + + +
+ +coordsOK == 0) { + if ($view->selectedNbh == 0) { ?> +
+ +
+selectedNbh == 0) { ?> +
+ +
+ +
+
+ callChunk('interactiveMap/interactiveMap', $view->mapModel, "nbhmapmain");?> + +
+
+
+ + | + km +
+
+ + + +
+
+selectedNbh == 0) { // Main MyNeighbourhood area ?> +
+    + + preferences['style']['name'] == 'full' ? 'checked' : ''?>> + + preferences['style']['name'] == 'min' ? 'checked' : ''?>> +
+
+
+    +
+
+
+
+
+ +
+ + + +
+ +
+ + +
+
+
+ + + +
+
+
+

+
+
+ + + + +
+ +
diff --git a/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php b/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php new file mode 100644 index 0000000000..fb0bc2ef72 --- /dev/null +++ b/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php @@ -0,0 +1,52 @@ + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + caches as $cache) { ?> + + + + + + +
+
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + coords, $cache->getCoordinates()))?> km + <?=tr('direction')?> +
+
+ getDatePlaced())?> +
+ callChunkInline('pagination', $view->paginationModel);?> +
+
+
diff --git a/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php b/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php new file mode 100644 index 0000000000..c65a3d0506 --- /dev/null +++ b/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php @@ -0,0 +1,79 @@ + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + + caches as $cache) { ?> + + + + loadLogs($cache, false, 0, 1); + if (! empty($log)) { ?> + + + + + + + +
+
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + coords, $cache->getCoordinates()))?> km + <?=tr('direction')?> + getRecommendations() > 0) { ?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) + +
+
+ getDatePlaced())?> + +
+ <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> + getDate())?> + getUser()->getUserName()?> +
+ getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
+
+
getText()?>
+
+ callChunkInline('pagination', $view->paginationModel); ?> +
+
+
diff --git a/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php b/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php new file mode 100644 index 0000000000..8ce1da1f24 --- /dev/null +++ b/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php @@ -0,0 +1,70 @@ + + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + + logs as $log) { ?> + + + + + + +
+
+ <?=tr('cache') ?> +
+ +
+ +
getText())?>
+
+ callChunkInline('pagination', $view->paginationModel);?> +
+
+
diff --git a/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php b/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php new file mode 100644 index 0000000000..8e16b6e164 --- /dev/null +++ b/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php @@ -0,0 +1,79 @@ + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + + caches as $cache) { ?> + + + + loadLogs($cache, false, 0, 1); + if (! empty($log)) { ?> + + + + + + + +
+
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + coords, $cache->getCoordinates()))?> km + <?=tr('direction')?> + getRecommendations() > 0) { ?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) + +
+
+ getDatePlaced())?> + +
+ <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> + getDate())?> + getUser()->getUserName()?> +
+ getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
+
+
getText()?>
+
+ callChunkInline('pagination', $view->paginationModel);?> +
+
+
diff --git a/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php b/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php new file mode 100644 index 0000000000..fae4536240 --- /dev/null +++ b/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php @@ -0,0 +1,87 @@ + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + + + caches as $cache) { ?> + + + + + loadLogs($cache, false, 0, 1); + if (! empty($log)) { ?> + + + + + + + +
+
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + coords, $cache->getCoordinates()))?> km + <?=tr('direction')?> + getRecommendations() > 0) { ?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) + +
+
+ getDatePlaced())?> + + getCacheId()); + echo Formatter::date($cacheTitled->getTitledDate()); + unset($cacheTitled); + ?> + +
+ <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> + getDate())?> + getUser()->getUserName()?> +
+ getText()), 0, 20)?>getText())) > 20 ? '...' : '')?>
+
+
getText()?>
+
+ callChunkInline('pagination', $view->paginationModel);?> +
+
+
diff --git a/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php b/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php new file mode 100644 index 0000000000..b3cc48960a --- /dev/null +++ b/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php @@ -0,0 +1,72 @@ + +
+
+ (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) +
+ +
+
+ + + + + + + + + + + caches as $cache) { ?> + + + + + loadLogs($cache, false, 0, 1); + if (! empty($log)) { ?> + + + + + + + +
+
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + coords, $cache->getCoordinates()))?> km + <?=tr('direction')?> + | <?=tr('will_attend')?> getNotFounds()?> +
+
+ getOwner()->getUserName()?> + + getDatePlaced())?> + +
+ <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> + getDate())?> + getUser()->getUserName()?> +
+ getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
+
+
getText()?>
+
+ callChunkInline('pagination', $view->paginationModel); ?> +
+
+
diff --git a/src/Views/myNbhInteractive/myNeighbourhood.tpl.php b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php new file mode 100644 index 0000000000..58b707256e --- /dev/null +++ b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php @@ -0,0 +1,82 @@ + +
+ neighbourhoodsList as $nbh) { + if ($nbh->getSeq() == $view->selectedNbh) { + $btnClassMod = 'btn-primary'; + } else { + $btnClassMod = 'btn-default'; + } + ?> + getName()?> + + <?=tr('config')?>  + +
+ preferences['items'] as $key => $item) { + $order[$item['order']] = $item; + $order[$item['order']]['item'] = $key; + } + ksort($order); + foreach ($order as $item) { + $classSize = ($item['fullsize'] == 1) ? 'nbh-full' : 'nbh-half'; + switch ($item['item']) { + case Neighbourhood::ITEM_MAP: + $subTemplate = '/' . $view->templatesPath . 'sub_Map'; + break; + case Neighbourhood::ITEM_LATESTCACHES: + $subTemplate = '/' . $view->templatesPath . 'sub_LatestCaches'; + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $subTemplate = '/' . $view->templatesPath . 'sub_UpcommingEvents'; + break; + case Neighbourhood::ITEM_FTFCACHES: + $subTemplate = '/' . $view->templatesPath . 'sub_FTFCaches'; + break; + case Neighbourhood::ITEM_LATESTLOGS: + $subTemplate = '/' . $view->templatesPath . 'sub_LatestLogs'; + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $subTemplate = '/' . $view->templatesPath . 'sub_TitledCaches'; + break; + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $subTemplate = '/' . $view->templatesPath . 'sub_RecommendedCaches'; + break; + default: + break; + } + ?> +
+ callSubTpl($subTemplate)?> +
+ +
+ neighbourhoodsList[$view->selectedNbh]->getCoords()->getLatitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); + list($lonEW, $lon_h, $lon_min) = $view->neighbourhoodsList[$view->selectedNbh]->getCoords()->getLongitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); + ?> +
+
+ + (neighbourhoodsList[$view->selectedNbh]->getName()?>) + + + (neighbourhoodsList[$view->selectedNbh]->getName()?>) + +
+
+
+
+
+ diff --git a/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php b/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php new file mode 100644 index 0000000000..9a551d1df6 --- /dev/null +++ b/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php @@ -0,0 +1,46 @@ + +
+ +
+ + +
+
+ +
+ +FTFCaches)) { ?> +
+FTFCaches as $cache) {?> +
+ +
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates()))?> km + <?=tr('direction')?> +
+
+
+ FTFCaches) == $view->preferences['style']['caches-count']) { ?> + + +
diff --git a/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php b/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php new file mode 100644 index 0000000000..4adcc30110 --- /dev/null +++ b/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php @@ -0,0 +1,52 @@ + +
+ +
+ + +
+
+ +
+ +latestCaches)) { ?> +
+latestCaches as $cache) {?> +
+ +
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?>
+ getDatePlaced())?> | + getSizeTranslationKey())?> | + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates()))?> km + <?=tr('direction')?> + getRecommendations() > 0) { ?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) + +
+
+
+ latestCaches) == $view->preferences['style']['caches-count']) { ?> + + +
diff --git a/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php b/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php new file mode 100644 index 0000000000..48c485262a --- /dev/null +++ b/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php @@ -0,0 +1,54 @@ + +
+ +
+ + +
+
+ +
+ +latestLogs)) { ?> +
+latestLogs as $log) {?> +
+ +
getText())?>
+
+ latestLogs) == $view->preferences['style']['caches-count']) { ?> + + +
diff --git a/src/Views/myNbhInteractive/sub_Map.tpl.php b/src/Views/myNbhInteractive/sub_Map.tpl.php new file mode 100644 index 0000000000..2861b40861 --- /dev/null +++ b/src/Views/myNbhInteractive/sub_Map.tpl.php @@ -0,0 +1,14 @@ + +
+ +
+ + +
+
+ +
+callChunk('interactiveMap/interactiveMap', $view->mapModel, "nbhmap");?> diff --git a/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php b/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php new file mode 100644 index 0000000000..8bb48d9fb6 --- /dev/null +++ b/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php @@ -0,0 +1,48 @@ + +
+ <?=tr('number_obtain_recommendations')?> +
+ + +
+
+ +
+ +topRatedCaches)) { ?> +
+topRatedCaches as $cache) {?> +
+ +
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> +
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> + getSizeTranslationKey())?>
| + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates()))?> km + <?=tr('direction')?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) +
+
+
+ topRatedCaches) == $view->preferences['style']['caches-count']) { ?> + + +
diff --git a/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php b/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php new file mode 100644 index 0000000000..be4bb78d7c --- /dev/null +++ b/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php @@ -0,0 +1,57 @@ + +
+ +
+ + +
+
+ +
+ +latestTitled)) { ?> +
+ + latestTitled as $cache) { + $cacheTitled = CacheTitled::fromCacheIdFactory($cache->getCacheId()); + ?> +
+ +
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + isPowerTrailPart()) { ?> + <?=tr('pt002')?> + + | getOwner()->getUserName()?> + |
+ <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> + <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?>
+ getTitledDate())?> | + getSizeTranslationKey())?> | + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates()))?> km + <?=tr('direction')?> + getRecommendations() > 0) { ?> + | <?=tr('number_obtain_recommendations')?> + (getRecommendations()?>) + +
+
+
+ latestTitled) == $view->preferences['style']['caches-count']) { ?> + + +
diff --git a/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php b/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php new file mode 100644 index 0000000000..1396ebd8f3 --- /dev/null +++ b/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php @@ -0,0 +1,45 @@ + +
+ +
+ + +
+
+ +
+ +upcomingEvents)) { ?> +
+upcomingEvents as $cache) {?> +
+ +
+ <?=tr('cache') ?> +
+
+ getCacheName() ?> + | getOwner()->getUserName()?> +
| + getDatePlaced())?> | + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates()))?> km + <?=tr('direction')?> + | <?=tr('will_attend')?> getNotFounds()?> +
+
+
+ upcomingEvents) == $view->preferences['style']['caches-count']) { ?> +
+ +
+ +
From 7ce34c3d5ec90d35ead2cf9c0d2d9141ae051bcd Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Mon, 20 Jul 2020 14:59:09 +0200 Subject: [PATCH 02/17] Interactive Map with OKAPI-based style icons: validation ready --- lib/languages/en.php | 3 + .../images/map_markers/background_layer.png | Bin 0 -> 699 bytes .../map_markers/okapi/cache/large_event.png | Bin 0 -> 1095 bytes .../okapi/cache/large_event_archived.png | Bin 0 -> 1516 bytes .../cache/large_event_archived_found.png | Bin 0 -> 1533 bytes .../large_event_archived_found_caption.png | Bin 0 -> 1569 bytes .../okapi/cache/large_event_archived_new.png | Bin 0 -> 2063 bytes .../okapi/cache/large_event_archived_own.png | Bin 0 -> 1940 bytes .../okapi/cache/large_event_excellent.png | Bin 0 -> 1660 bytes .../cache/large_event_excellent_found.png | Bin 0 -> 1830 bytes .../large_event_excellent_found_caption.png | Bin 0 -> 1851 bytes .../okapi/cache/large_event_excellent_new.png | Bin 0 -> 2212 bytes .../okapi/cache/large_event_excellent_own.png | Bin 0 -> 2081 bytes .../large_event_excellent_recommended.png | Bin 0 -> 2199 bytes ...arge_event_excellent_recommended_found.png | Bin 0 -> 2215 bytes ...nt_excellent_recommended_found_caption.png | Bin 0 -> 2200 bytes .../large_event_excellent_recommended_new.png | Bin 0 -> 2705 bytes .../large_event_excellent_recommended_own.png | Bin 0 -> 2581 bytes .../okapi/cache/large_event_found.png | Bin 0 -> 1396 bytes .../okapi/cache/large_event_found_caption.png | Bin 0 -> 1431 bytes .../okapi/cache/large_event_new.png | Bin 0 -> 1663 bytes .../okapi/cache/large_event_own.png | Bin 0 -> 1529 bytes .../okapi/cache/large_event_unavailable.png | Bin 0 -> 1523 bytes .../cache/large_event_unavailable_found.png | Bin 0 -> 1528 bytes .../large_event_unavailable_found_caption.png | Bin 0 -> 1564 bytes .../cache/large_event_unavailable_new.png | Bin 0 -> 2070 bytes .../cache/large_event_unavailable_own.png | Bin 0 -> 1947 bytes .../map_markers/okapi/cache/large_moving.png | Bin 0 -> 1090 bytes .../okapi/cache/large_moving_archived.png | Bin 0 -> 1515 bytes .../cache/large_moving_archived_found.png | Bin 0 -> 1513 bytes .../large_moving_archived_found_caption.png | Bin 0 -> 1548 bytes .../okapi/cache/large_moving_archived_new.png | Bin 0 -> 2060 bytes .../okapi/cache/large_moving_archived_own.png | Bin 0 -> 1940 bytes .../okapi/cache/large_moving_excellent.png | Bin 0 -> 1676 bytes .../cache/large_moving_excellent_found.png | Bin 0 -> 1828 bytes .../large_moving_excellent_found_caption.png | Bin 0 -> 1835 bytes .../cache/large_moving_excellent_new.png | Bin 0 -> 2222 bytes .../cache/large_moving_excellent_own.png | Bin 0 -> 2100 bytes .../large_moving_excellent_recommended.png | Bin 0 -> 2215 bytes ...rge_moving_excellent_recommended_found.png | Bin 0 -> 2207 bytes ...ng_excellent_recommended_found_caption.png | Bin 0 -> 2187 bytes ...large_moving_excellent_recommended_new.png | Bin 0 -> 2710 bytes ...large_moving_excellent_recommended_own.png | Bin 0 -> 2594 bytes .../okapi/cache/large_moving_found.png | Bin 0 -> 1380 bytes .../cache/large_moving_found_caption.png | Bin 0 -> 1407 bytes .../okapi/cache/large_moving_new.png | Bin 0 -> 1660 bytes .../okapi/cache/large_moving_own.png | Bin 0 -> 1533 bytes .../okapi/cache/large_moving_unavailable.png | Bin 0 -> 1528 bytes .../cache/large_moving_unavailable_found.png | Bin 0 -> 1508 bytes ...large_moving_unavailable_found_caption.png | Bin 0 -> 1543 bytes .../cache/large_moving_unavailable_new.png | Bin 0 -> 2067 bytes .../cache/large_moving_unavailable_own.png | Bin 0 -> 1948 bytes .../map_markers/okapi/cache/large_multi.png | Bin 0 -> 1065 bytes .../okapi/cache/large_multi_archived.png | Bin 0 -> 1510 bytes .../cache/large_multi_archived_found.png | Bin 0 -> 1551 bytes .../large_multi_archived_found_caption.png | Bin 0 -> 1594 bytes .../okapi/cache/large_multi_archived_new.png | Bin 0 -> 2063 bytes .../okapi/cache/large_multi_archived_own.png | Bin 0 -> 1921 bytes .../okapi/cache/large_multi_excellent.png | Bin 0 -> 1633 bytes .../cache/large_multi_excellent_found.png | Bin 0 -> 1832 bytes .../large_multi_excellent_found_caption.png | Bin 0 -> 1865 bytes .../okapi/cache/large_multi_excellent_new.png | Bin 0 -> 2190 bytes .../okapi/cache/large_multi_excellent_own.png | Bin 0 -> 2066 bytes .../large_multi_excellent_recommended.png | Bin 0 -> 2175 bytes ...arge_multi_excellent_recommended_found.png | Bin 0 -> 2222 bytes ...ti_excellent_recommended_found_caption.png | Bin 0 -> 2207 bytes .../large_multi_excellent_recommended_new.png | Bin 0 -> 2686 bytes .../large_multi_excellent_recommended_own.png | Bin 0 -> 2555 bytes .../okapi/cache/large_multi_found.png | Bin 0 -> 1414 bytes .../okapi/cache/large_multi_found_caption.png | Bin 0 -> 1459 bytes .../okapi/cache/large_multi_new.png | Bin 0 -> 1642 bytes .../okapi/cache/large_multi_own.png | Bin 0 -> 1496 bytes .../okapi/cache/large_multi_unavailable.png | Bin 0 -> 1517 bytes .../cache/large_multi_unavailable_found.png | Bin 0 -> 1545 bytes .../large_multi_unavailable_found_caption.png | Bin 0 -> 1590 bytes .../cache/large_multi_unavailable_new.png | Bin 0 -> 2053 bytes .../cache/large_multi_unavailable_own.png | Bin 0 -> 1934 bytes .../map_markers/okapi/cache/large_other.png | Bin 0 -> 1001 bytes .../okapi/cache/large_other_archived.png | Bin 0 -> 1444 bytes .../cache/large_other_archived_found.png | Bin 0 -> 1501 bytes .../large_other_archived_found_caption.png | Bin 0 -> 1530 bytes .../okapi/cache/large_other_archived_new.png | Bin 0 -> 1995 bytes .../okapi/cache/large_other_archived_own.png | Bin 0 -> 1876 bytes .../okapi/cache/large_other_excellent.png | Bin 0 -> 1576 bytes .../cache/large_other_excellent_found.png | Bin 0 -> 1807 bytes .../large_other_excellent_found_caption.png | Bin 0 -> 1822 bytes .../okapi/cache/large_other_excellent_new.png | Bin 0 -> 2137 bytes .../okapi/cache/large_other_excellent_own.png | Bin 0 -> 2011 bytes .../large_other_excellent_recommended.png | Bin 0 -> 2121 bytes ...arge_other_excellent_recommended_found.png | Bin 0 -> 2192 bytes ...er_excellent_recommended_found_caption.png | Bin 0 -> 2170 bytes .../large_other_excellent_recommended_new.png | Bin 0 -> 2623 bytes .../large_other_excellent_recommended_own.png | Bin 0 -> 2506 bytes .../okapi/cache/large_other_found.png | Bin 0 -> 1360 bytes .../okapi/cache/large_other_found_caption.png | Bin 0 -> 1390 bytes .../okapi/cache/large_other_new.png | Bin 0 -> 1573 bytes .../okapi/cache/large_other_own.png | Bin 0 -> 1438 bytes .../okapi/cache/large_other_unavailable.png | Bin 0 -> 1457 bytes .../cache/large_other_unavailable_found.png | Bin 0 -> 1495 bytes .../large_other_unavailable_found_caption.png | Bin 0 -> 1526 bytes .../cache/large_other_unavailable_new.png | Bin 0 -> 2000 bytes .../cache/large_other_unavailable_own.png | Bin 0 -> 1884 bytes .../map_markers/okapi/cache/large_own.png | Bin 0 -> 1063 bytes .../okapi/cache/large_own_archived.png | Bin 0 -> 1471 bytes .../okapi/cache/large_own_archived_found.png | Bin 0 -> 1484 bytes .../large_own_archived_found_caption.png | Bin 0 -> 1534 bytes .../okapi/cache/large_own_archived_new.png | Bin 0 -> 2016 bytes .../okapi/cache/large_own_archived_own.png | Bin 0 -> 1897 bytes .../okapi/cache/large_own_excellent.png | Bin 0 -> 1646 bytes .../okapi/cache/large_own_excellent_found.png | Bin 0 -> 1793 bytes .../large_own_excellent_found_caption.png | Bin 0 -> 1816 bytes .../okapi/cache/large_own_excellent_new.png | Bin 0 -> 2195 bytes .../okapi/cache/large_own_excellent_own.png | Bin 0 -> 2065 bytes .../cache/large_own_excellent_recommended.png | Bin 0 -> 2177 bytes .../large_own_excellent_recommended_found.png | Bin 0 -> 2183 bytes ...wn_excellent_recommended_found_caption.png | Bin 0 -> 2174 bytes .../large_own_excellent_recommended_new.png | Bin 0 -> 2685 bytes .../large_own_excellent_recommended_own.png | Bin 0 -> 2560 bytes .../okapi/cache/large_own_found.png | Bin 0 -> 1349 bytes .../okapi/cache/large_own_found_caption.png | Bin 0 -> 1396 bytes .../map_markers/okapi/cache/large_own_new.png | Bin 0 -> 1633 bytes .../map_markers/okapi/cache/large_own_own.png | Bin 0 -> 1498 bytes .../okapi/cache/large_own_unavailable.png | Bin 0 -> 1477 bytes .../cache/large_own_unavailable_found.png | Bin 0 -> 1482 bytes .../large_own_unavailable_found_caption.png | Bin 0 -> 1529 bytes .../okapi/cache/large_own_unavailable_new.png | Bin 0 -> 2023 bytes .../okapi/cache/large_own_unavailable_own.png | Bin 0 -> 1903 bytes .../map_markers/okapi/cache/large_quiz.png | Bin 0 -> 1199 bytes .../okapi/cache/large_quiz_archived.png | Bin 0 -> 1601 bytes .../okapi/cache/large_quiz_archived_found.png | Bin 0 -> 1586 bytes .../large_quiz_archived_found_caption.png | Bin 0 -> 1628 bytes .../okapi/cache/large_quiz_archived_new.png | Bin 0 -> 2122 bytes .../okapi/cache/large_quiz_archived_own.png | Bin 0 -> 2004 bytes .../okapi/cache/large_quiz_excellent.png | Bin 0 -> 1751 bytes .../cache/large_quiz_excellent_found.png | Bin 0 -> 1883 bytes .../large_quiz_excellent_found_caption.png | Bin 0 -> 1907 bytes .../okapi/cache/large_quiz_excellent_new.png | Bin 0 -> 2288 bytes .../okapi/cache/large_quiz_excellent_own.png | Bin 0 -> 2173 bytes .../large_quiz_excellent_recommended.png | Bin 0 -> 2285 bytes ...large_quiz_excellent_recommended_found.png | Bin 0 -> 2272 bytes ...iz_excellent_recommended_found_caption.png | Bin 0 -> 2256 bytes .../large_quiz_excellent_recommended_new.png | Bin 0 -> 2775 bytes .../large_quiz_excellent_recommended_own.png | Bin 0 -> 2665 bytes .../okapi/cache/large_quiz_found.png | Bin 0 -> 1456 bytes .../okapi/cache/large_quiz_found_caption.png | Bin 0 -> 1503 bytes .../okapi/cache/large_quiz_new.png | Bin 0 -> 1752 bytes .../okapi/cache/large_quiz_own.png | Bin 0 -> 1628 bytes .../okapi/cache/large_quiz_unavailable.png | Bin 0 -> 1605 bytes .../cache/large_quiz_unavailable_found.png | Bin 0 -> 1583 bytes .../large_quiz_unavailable_found_caption.png | Bin 0 -> 1624 bytes .../cache/large_quiz_unavailable_new.png | Bin 0 -> 2124 bytes .../cache/large_quiz_unavailable_own.png | Bin 0 -> 2009 bytes .../okapi/cache/large_traditional.png | Bin 0 -> 1100 bytes .../cache/large_traditional_archived.png | Bin 0 -> 1519 bytes .../large_traditional_archived_found.png | Bin 0 -> 1516 bytes ...rge_traditional_archived_found_caption.png | Bin 0 -> 1567 bytes .../cache/large_traditional_archived_new.png | Bin 0 -> 2055 bytes .../cache/large_traditional_archived_own.png | Bin 0 -> 1938 bytes .../cache/large_traditional_excellent.png | Bin 0 -> 1668 bytes .../large_traditional_excellent_found.png | Bin 0 -> 1837 bytes ...ge_traditional_excellent_found_caption.png | Bin 0 -> 1854 bytes .../cache/large_traditional_excellent_new.png | Bin 0 -> 2220 bytes .../cache/large_traditional_excellent_own.png | Bin 0 -> 2099 bytes ...arge_traditional_excellent_recommended.png | Bin 0 -> 2205 bytes ...raditional_excellent_recommended_found.png | Bin 0 -> 2219 bytes ...al_excellent_recommended_found_caption.png | Bin 0 -> 2201 bytes ..._traditional_excellent_recommended_new.png | Bin 0 -> 2712 bytes ..._traditional_excellent_recommended_own.png | Bin 0 -> 2593 bytes .../okapi/cache/large_traditional_found.png | Bin 0 -> 1397 bytes .../cache/large_traditional_found_caption.png | Bin 0 -> 1435 bytes .../okapi/cache/large_traditional_new.png | Bin 0 -> 1667 bytes .../okapi/cache/large_traditional_own.png | Bin 0 -> 1537 bytes .../cache/large_traditional_unavailable.png | Bin 0 -> 1518 bytes .../large_traditional_unavailable_found.png | Bin 0 -> 1520 bytes ..._traditional_unavailable_found_caption.png | Bin 0 -> 1563 bytes .../large_traditional_unavailable_new.png | Bin 0 -> 2061 bytes .../large_traditional_unavailable_own.png | Bin 0 -> 1940 bytes .../map_markers/okapi/cache/large_unknown.png | Bin 0 -> 1122 bytes .../okapi/cache/large_unknown_archived.png | Bin 0 -> 1547 bytes .../cache/large_unknown_archived_found.png | Bin 0 -> 1555 bytes .../large_unknown_archived_found_caption.png | Bin 0 -> 1591 bytes .../cache/large_unknown_archived_new.png | Bin 0 -> 2085 bytes .../cache/large_unknown_archived_own.png | Bin 0 -> 1968 bytes .../okapi/cache/large_unknown_excellent.png | Bin 0 -> 1691 bytes .../cache/large_unknown_excellent_found.png | Bin 0 -> 1848 bytes .../large_unknown_excellent_found_caption.png | Bin 0 -> 1861 bytes .../cache/large_unknown_excellent_new.png | Bin 0 -> 2239 bytes .../cache/large_unknown_excellent_own.png | Bin 0 -> 2114 bytes .../large_unknown_excellent_recommended.png | Bin 0 -> 2228 bytes ...ge_unknown_excellent_recommended_found.png | Bin 0 -> 2239 bytes ...wn_excellent_recommended_found_caption.png | Bin 0 -> 2215 bytes ...arge_unknown_excellent_recommended_new.png | Bin 0 -> 2739 bytes ...arge_unknown_excellent_recommended_own.png | Bin 0 -> 2614 bytes .../okapi/cache/large_unknown_found.png | Bin 0 -> 1430 bytes .../cache/large_unknown_found_caption.png | Bin 0 -> 1456 bytes .../okapi/cache/large_unknown_new.png | Bin 0 -> 1698 bytes .../okapi/cache/large_unknown_own.png | Bin 0 -> 1563 bytes .../okapi/cache/large_unknown_unavailable.png | Bin 0 -> 1551 bytes .../cache/large_unknown_unavailable_found.png | Bin 0 -> 1551 bytes ...arge_unknown_unavailable_found_caption.png | Bin 0 -> 1591 bytes .../cache/large_unknown_unavailable_new.png | Bin 0 -> 2092 bytes .../cache/large_unknown_unavailable_own.png | Bin 0 -> 1972 bytes .../map_markers/okapi/cache/large_virtual.png | Bin 0 -> 1202 bytes .../okapi/cache/large_virtual_archived.png | Bin 0 -> 1600 bytes .../cache/large_virtual_archived_found.png | Bin 0 -> 1617 bytes .../large_virtual_archived_found_caption.png | Bin 0 -> 1656 bytes .../cache/large_virtual_archived_new.png | Bin 0 -> 2137 bytes .../cache/large_virtual_archived_own.png | Bin 0 -> 2024 bytes .../okapi/cache/large_virtual_excellent.png | Bin 0 -> 1757 bytes .../cache/large_virtual_excellent_found.png | Bin 0 -> 1916 bytes .../large_virtual_excellent_found_caption.png | Bin 0 -> 1928 bytes .../cache/large_virtual_excellent_new.png | Bin 0 -> 2300 bytes .../cache/large_virtual_excellent_own.png | Bin 0 -> 2184 bytes .../large_virtual_excellent_recommended.png | Bin 0 -> 2288 bytes ...ge_virtual_excellent_recommended_found.png | Bin 0 -> 2298 bytes ...al_excellent_recommended_found_caption.png | Bin 0 -> 2276 bytes ...arge_virtual_excellent_recommended_new.png | Bin 0 -> 2787 bytes ...arge_virtual_excellent_recommended_own.png | Bin 0 -> 2667 bytes .../okapi/cache/large_virtual_found.png | Bin 0 -> 1498 bytes .../cache/large_virtual_found_caption.png | Bin 0 -> 1527 bytes .../okapi/cache/large_virtual_new.png | Bin 0 -> 1764 bytes .../okapi/cache/large_virtual_own.png | Bin 0 -> 1641 bytes .../okapi/cache/large_virtual_unavailable.png | Bin 0 -> 1611 bytes .../cache/large_virtual_unavailable_found.png | Bin 0 -> 1611 bytes ...arge_virtual_unavailable_found_caption.png | Bin 0 -> 1651 bytes .../cache/large_virtual_unavailable_new.png | Bin 0 -> 2139 bytes .../cache/large_virtual_unavailable_own.png | Bin 0 -> 2026 bytes .../map_markers/okapi/cache/large_webcam.png | Bin 0 -> 1133 bytes .../okapi/cache/large_webcam_archived.png | Bin 0 -> 1561 bytes .../cache/large_webcam_archived_found.png | Bin 0 -> 1545 bytes .../large_webcam_archived_found_caption.png | Bin 0 -> 1592 bytes .../okapi/cache/large_webcam_archived_new.png | Bin 0 -> 2097 bytes .../okapi/cache/large_webcam_archived_own.png | Bin 0 -> 1979 bytes .../okapi/cache/large_webcam_excellent.png | Bin 0 -> 1708 bytes .../cache/large_webcam_excellent_found.png | Bin 0 -> 1850 bytes .../large_webcam_excellent_found_caption.png | Bin 0 -> 1884 bytes .../cache/large_webcam_excellent_new.png | Bin 0 -> 2248 bytes .../cache/large_webcam_excellent_own.png | Bin 0 -> 2129 bytes .../large_webcam_excellent_recommended.png | Bin 0 -> 2244 bytes ...rge_webcam_excellent_recommended_found.png | Bin 0 -> 2241 bytes ...am_excellent_recommended_found_caption.png | Bin 0 -> 2232 bytes ...large_webcam_excellent_recommended_new.png | Bin 0 -> 2747 bytes ...large_webcam_excellent_recommended_own.png | Bin 0 -> 2623 bytes .../okapi/cache/large_webcam_found.png | Bin 0 -> 1413 bytes .../cache/large_webcam_found_caption.png | Bin 0 -> 1457 bytes .../okapi/cache/large_webcam_new.png | Bin 0 -> 1698 bytes .../okapi/cache/large_webcam_own.png | Bin 0 -> 1573 bytes .../okapi/cache/large_webcam_unavailable.png | Bin 0 -> 1564 bytes .../cache/large_webcam_unavailable_found.png | Bin 0 -> 1537 bytes ...large_webcam_unavailable_found_caption.png | Bin 0 -> 1588 bytes .../cache/large_webcam_unavailable_new.png | Bin 0 -> 2101 bytes .../cache/large_webcam_unavailable_own.png | Bin 0 -> 1985 bytes .../okapi/cache/medium_archived.png | Bin 0 -> 689 bytes .../okapi/cache/medium_archived_found.png | Bin 0 -> 838 bytes .../okapi/cache/medium_archived_new.png | Bin 0 -> 771 bytes .../okapi/cache/medium_archived_own.png | Bin 0 -> 755 bytes .../map_markers/okapi/cache/medium_event.png | Bin 0 -> 362 bytes .../okapi/cache/medium_event_excellent.png | Bin 0 -> 504 bytes .../cache/medium_event_excellent_found.png | Bin 0 -> 858 bytes .../cache/medium_event_excellent_new.png | Bin 0 -> 560 bytes .../cache/medium_event_excellent_own.png | Bin 0 -> 524 bytes .../medium_event_excellent_recommended.png | Bin 0 -> 651 bytes ...dium_event_excellent_recommended_found.png | Bin 0 -> 896 bytes ...medium_event_excellent_recommended_new.png | Bin 0 -> 669 bytes ...medium_event_excellent_recommended_own.png | Bin 0 -> 649 bytes .../okapi/cache/medium_event_found.png | Bin 0 -> 788 bytes .../okapi/cache/medium_event_new.png | Bin 0 -> 434 bytes .../okapi/cache/medium_event_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/medium_moving.png | Bin 0 -> 358 bytes .../okapi/cache/medium_moving_excellent.png | Bin 0 -> 499 bytes .../cache/medium_moving_excellent_found.png | Bin 0 -> 858 bytes .../cache/medium_moving_excellent_new.png | Bin 0 -> 555 bytes .../cache/medium_moving_excellent_own.png | Bin 0 -> 522 bytes .../medium_moving_excellent_recommended.png | Bin 0 -> 651 bytes ...ium_moving_excellent_recommended_found.png | Bin 0 -> 896 bytes ...edium_moving_excellent_recommended_new.png | Bin 0 -> 670 bytes ...edium_moving_excellent_recommended_own.png | Bin 0 -> 654 bytes .../okapi/cache/medium_moving_found.png | Bin 0 -> 775 bytes .../okapi/cache/medium_moving_new.png | Bin 0 -> 430 bytes .../okapi/cache/medium_moving_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/medium_multi.png | Bin 0 -> 363 bytes .../okapi/cache/medium_multi_excellent.png | Bin 0 -> 509 bytes .../cache/medium_multi_excellent_found.png | Bin 0 -> 857 bytes .../cache/medium_multi_excellent_new.png | Bin 0 -> 566 bytes .../cache/medium_multi_excellent_own.png | Bin 0 -> 533 bytes .../medium_multi_excellent_recommended.png | Bin 0 -> 657 bytes ...dium_multi_excellent_recommended_found.png | Bin 0 -> 899 bytes ...medium_multi_excellent_recommended_new.png | Bin 0 -> 683 bytes ...medium_multi_excellent_recommended_own.png | Bin 0 -> 659 bytes .../okapi/cache/medium_multi_found.png | Bin 0 -> 778 bytes .../okapi/cache/medium_multi_new.png | Bin 0 -> 434 bytes .../okapi/cache/medium_multi_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/medium_other.png | Bin 0 -> 358 bytes .../okapi/cache/medium_other_excellent.png | Bin 0 -> 499 bytes .../cache/medium_other_excellent_found.png | Bin 0 -> 858 bytes .../cache/medium_other_excellent_new.png | Bin 0 -> 555 bytes .../cache/medium_other_excellent_own.png | Bin 0 -> 522 bytes .../medium_other_excellent_recommended.png | Bin 0 -> 651 bytes ...dium_other_excellent_recommended_found.png | Bin 0 -> 896 bytes ...medium_other_excellent_recommended_new.png | Bin 0 -> 670 bytes ...medium_other_excellent_recommended_own.png | Bin 0 -> 654 bytes .../okapi/cache/medium_other_found.png | Bin 0 -> 775 bytes .../okapi/cache/medium_other_new.png | Bin 0 -> 430 bytes .../okapi/cache/medium_other_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/medium_own.png | Bin 0 -> 358 bytes .../okapi/cache/medium_own_excellent.png | Bin 0 -> 499 bytes .../cache/medium_own_excellent_found.png | Bin 0 -> 858 bytes .../okapi/cache/medium_own_excellent_new.png | Bin 0 -> 555 bytes .../okapi/cache/medium_own_excellent_own.png | Bin 0 -> 522 bytes .../medium_own_excellent_recommended.png | Bin 0 -> 651 bytes ...medium_own_excellent_recommended_found.png | Bin 0 -> 896 bytes .../medium_own_excellent_recommended_new.png | Bin 0 -> 670 bytes .../medium_own_excellent_recommended_own.png | Bin 0 -> 654 bytes .../okapi/cache/medium_own_found.png | Bin 0 -> 775 bytes .../okapi/cache/medium_own_new.png | Bin 0 -> 430 bytes .../okapi/cache/medium_own_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/medium_quiz.png | Bin 0 -> 369 bytes .../okapi/cache/medium_quiz_excellent.png | Bin 0 -> 508 bytes .../cache/medium_quiz_excellent_found.png | Bin 0 -> 860 bytes .../okapi/cache/medium_quiz_excellent_new.png | Bin 0 -> 565 bytes .../okapi/cache/medium_quiz_excellent_own.png | Bin 0 -> 531 bytes .../medium_quiz_excellent_recommended.png | Bin 0 -> 650 bytes ...edium_quiz_excellent_recommended_found.png | Bin 0 -> 899 bytes .../medium_quiz_excellent_recommended_new.png | Bin 0 -> 679 bytes .../medium_quiz_excellent_recommended_own.png | Bin 0 -> 656 bytes .../okapi/cache/medium_quiz_found.png | Bin 0 -> 786 bytes .../okapi/cache/medium_quiz_new.png | Bin 0 -> 438 bytes .../okapi/cache/medium_quiz_own.png | Bin 0 -> 397 bytes .../okapi/cache/medium_traditional.png | Bin 0 -> 374 bytes .../cache/medium_traditional_excellent.png | Bin 0 -> 505 bytes .../medium_traditional_excellent_found.png | Bin 0 -> 853 bytes .../medium_traditional_excellent_new.png | Bin 0 -> 562 bytes .../medium_traditional_excellent_own.png | Bin 0 -> 519 bytes ...dium_traditional_excellent_recommended.png | Bin 0 -> 659 bytes ...raditional_excellent_recommended_found.png | Bin 0 -> 891 bytes ..._traditional_excellent_recommended_new.png | Bin 0 -> 673 bytes ..._traditional_excellent_recommended_own.png | Bin 0 -> 651 bytes .../okapi/cache/medium_traditional_found.png | Bin 0 -> 779 bytes .../okapi/cache/medium_traditional_new.png | Bin 0 -> 439 bytes .../okapi/cache/medium_traditional_own.png | Bin 0 -> 396 bytes .../okapi/cache/medium_unavailable.png | Bin 0 -> 696 bytes .../okapi/cache/medium_unavailable_found.png | Bin 0 -> 839 bytes .../okapi/cache/medium_unavailable_new.png | Bin 0 -> 776 bytes .../okapi/cache/medium_unavailable_own.png | Bin 0 -> 758 bytes .../okapi/cache/medium_unknown.png | Bin 0 -> 352 bytes .../okapi/cache/medium_unknown_excellent.png | Bin 0 -> 499 bytes .../cache/medium_unknown_excellent_found.png | Bin 0 -> 857 bytes .../cache/medium_unknown_excellent_new.png | Bin 0 -> 551 bytes .../cache/medium_unknown_excellent_own.png | Bin 0 -> 521 bytes .../medium_unknown_excellent_recommended.png | Bin 0 -> 648 bytes ...um_unknown_excellent_recommended_found.png | Bin 0 -> 888 bytes ...dium_unknown_excellent_recommended_new.png | Bin 0 -> 670 bytes ...dium_unknown_excellent_recommended_own.png | Bin 0 -> 654 bytes .../okapi/cache/medium_unknown_found.png | Bin 0 -> 781 bytes .../okapi/cache/medium_unknown_new.png | Bin 0 -> 426 bytes .../okapi/cache/medium_unknown_own.png | Bin 0 -> 386 bytes .../okapi/cache/medium_virtual.png | Bin 0 -> 362 bytes .../okapi/cache/medium_virtual_excellent.png | Bin 0 -> 501 bytes .../cache/medium_virtual_excellent_found.png | Bin 0 -> 858 bytes .../cache/medium_virtual_excellent_new.png | Bin 0 -> 555 bytes .../cache/medium_virtual_excellent_own.png | Bin 0 -> 520 bytes .../medium_virtual_excellent_recommended.png | Bin 0 -> 650 bytes ...um_virtual_excellent_recommended_found.png | Bin 0 -> 898 bytes ...dium_virtual_excellent_recommended_new.png | Bin 0 -> 671 bytes ...dium_virtual_excellent_recommended_own.png | Bin 0 -> 647 bytes .../okapi/cache/medium_virtual_found.png | Bin 0 -> 783 bytes .../okapi/cache/medium_virtual_new.png | Bin 0 -> 431 bytes .../okapi/cache/medium_virtual_own.png | Bin 0 -> 383 bytes .../map_markers/okapi/cache/medium_webcam.png | Bin 0 -> 358 bytes .../okapi/cache/medium_webcam_excellent.png | Bin 0 -> 499 bytes .../cache/medium_webcam_excellent_found.png | Bin 0 -> 858 bytes .../cache/medium_webcam_excellent_new.png | Bin 0 -> 555 bytes .../cache/medium_webcam_excellent_own.png | Bin 0 -> 522 bytes .../medium_webcam_excellent_recommended.png | Bin 0 -> 651 bytes ...ium_webcam_excellent_recommended_found.png | Bin 0 -> 896 bytes ...edium_webcam_excellent_recommended_new.png | Bin 0 -> 670 bytes ...edium_webcam_excellent_recommended_own.png | Bin 0 -> 654 bytes .../okapi/cache/medium_webcam_found.png | Bin 0 -> 775 bytes .../okapi/cache/medium_webcam_new.png | Bin 0 -> 430 bytes .../okapi/cache/medium_webcam_own.png | Bin 0 -> 391 bytes .../map_markers/okapi/cache/tiny_archived.png | Bin 0 -> 451 bytes .../map_markers/okapi/cache/tiny_event.png | Bin 0 -> 205 bytes .../map_markers/okapi/cache/tiny_moving.png | Bin 0 -> 207 bytes .../map_markers/okapi/cache/tiny_multi.png | Bin 0 -> 210 bytes .../map_markers/okapi/cache/tiny_other.png | Bin 0 -> 207 bytes .../map_markers/okapi/cache/tiny_own.png | Bin 0 -> 207 bytes .../map_markers/okapi/cache/tiny_quiz.png | Bin 0 -> 220 bytes .../okapi/cache/tiny_traditional.png | Bin 0 -> 213 bytes .../okapi/cache/tiny_unavailable.png | Bin 0 -> 495 bytes .../map_markers/okapi/cache/tiny_unknown.png | Bin 0 -> 202 bytes .../map_markers/okapi/cache/tiny_virtual.png | Bin 0 -> 207 bytes .../map_markers/okapi/cache/tiny_webcam.png | Bin 0 -> 207 bytes .../map_markers/okapi/highlighted_large.png | Bin 0 -> 3521 bytes .../map_markers/okapi/highlighted_medium.png | Bin 0 -> 1293 bytes .../map_markers/okapi/highlighted_tiny.png | Bin 0 -> 757 bytes .../okapi/log/large_log_adminnote.png | Bin 0 -> 1280 bytes .../okapi/log/large_log_adminnote_found.png | Bin 0 -> 1697 bytes .../log/large_log_adminnote_found_caption.png | Bin 0 -> 1764 bytes .../okapi/log/large_log_adminnote_new.png | Bin 0 -> 1869 bytes .../okapi/log/large_log_adminnote_own.png | Bin 0 -> 1731 bytes .../okapi/log/large_log_archived.png | Bin 0 -> 1274 bytes .../okapi/log/large_log_archived_found.png | Bin 0 -> 1737 bytes .../log/large_log_archived_found_caption.png | Bin 0 -> 1814 bytes .../okapi/log/large_log_archived_new.png | Bin 0 -> 1858 bytes .../okapi/log/large_log_archived_own.png | Bin 0 -> 1725 bytes .../okapi/log/large_log_attended.png | Bin 0 -> 1319 bytes .../okapi/log/large_log_attended_found.png | Bin 0 -> 1738 bytes .../log/large_log_attended_found_caption.png | Bin 0 -> 1798 bytes .../okapi/log/large_log_attended_new.png | Bin 0 -> 1904 bytes .../okapi/log/large_log_attended_own.png | Bin 0 -> 1770 bytes .../okapi/log/large_log_comment.png | Bin 0 -> 1258 bytes .../okapi/log/large_log_comment_found.png | Bin 0 -> 1697 bytes .../log/large_log_comment_found_caption.png | Bin 0 -> 1801 bytes .../okapi/log/large_log_comment_new.png | Bin 0 -> 1850 bytes .../okapi/log/large_log_comment_own.png | Bin 0 -> 1713 bytes .../okapi/log/large_log_didnotfind.png | Bin 0 -> 1352 bytes .../okapi/log/large_log_didnotfind_found.png | Bin 0 -> 1790 bytes .../large_log_didnotfind_found_caption.png | Bin 0 -> 1860 bytes .../okapi/log/large_log_didnotfind_new.png | Bin 0 -> 1931 bytes .../okapi/log/large_log_didnotfind_own.png | Bin 0 -> 1801 bytes .../okapi/log/large_log_foundit.png | Bin 0 -> 1433 bytes .../okapi/log/large_log_foundit_found.png | Bin 0 -> 1862 bytes .../log/large_log_foundit_found_caption.png | Bin 0 -> 1914 bytes .../okapi/log/large_log_foundit_new.png | Bin 0 -> 2025 bytes .../okapi/log/large_log_foundit_own.png | Bin 0 -> 1885 bytes .../okapi/log/large_log_mademaintenance.png | Bin 0 -> 1381 bytes .../log/large_log_mademaintenance_found.png | Bin 0 -> 1835 bytes ...arge_log_mademaintenance_found_caption.png | Bin 0 -> 1914 bytes .../log/large_log_mademaintenance_new.png | Bin 0 -> 1967 bytes .../log/large_log_mademaintenance_own.png | Bin 0 -> 1827 bytes .../map_markers/okapi/log/large_log_moved.png | Bin 0 -> 1299 bytes .../okapi/log/large_log_moved_found.png | Bin 0 -> 1753 bytes .../log/large_log_moved_found_caption.png | Bin 0 -> 1813 bytes .../okapi/log/large_log_moved_new.png | Bin 0 -> 1875 bytes .../okapi/log/large_log_moved_own.png | Bin 0 -> 1741 bytes .../okapi/log/large_log_needmaintenance.png | Bin 0 -> 1205 bytes .../log/large_log_needmaintenance_found.png | Bin 0 -> 1610 bytes ...arge_log_needmaintenance_found_caption.png | Bin 0 -> 1694 bytes .../log/large_log_needmaintenance_new.png | Bin 0 -> 1805 bytes .../log/large_log_needmaintenance_own.png | Bin 0 -> 1671 bytes .../okapi/log/large_log_readytosearch.png | Bin 0 -> 1383 bytes .../log/large_log_readytosearch_found.png | Bin 0 -> 1809 bytes .../large_log_readytosearch_found_caption.png | Bin 0 -> 1891 bytes .../okapi/log/large_log_readytosearch_new.png | Bin 0 -> 1971 bytes .../okapi/log/large_log_readytosearch_own.png | Bin 0 -> 1819 bytes .../log/large_log_temporaryunavailable.png | Bin 0 -> 1199 bytes .../large_log_temporaryunavailable_found.png | Bin 0 -> 1674 bytes ...log_temporaryunavailable_found_caption.png | Bin 0 -> 1750 bytes .../large_log_temporaryunavailable_new.png | Bin 0 -> 1790 bytes .../large_log_temporaryunavailable_own.png | Bin 0 -> 1644 bytes .../okapi/log/large_log_willattend.png | Bin 0 -> 1310 bytes .../okapi/log/large_log_willattend_found.png | Bin 0 -> 1754 bytes .../large_log_willattend_found_caption.png | Bin 0 -> 1829 bytes .../okapi/log/large_log_willattend_new.png | Bin 0 -> 1892 bytes .../okapi/log/large_log_willattend_own.png | Bin 0 -> 1753 bytes .../okapi/log/medium_log_adminnote.png | Bin 0 -> 790 bytes .../okapi/log/medium_log_adminnote_found.png | Bin 0 -> 1081 bytes .../okapi/log/medium_log_adminnote_new.png | Bin 0 -> 891 bytes .../okapi/log/medium_log_adminnote_own.png | Bin 0 -> 894 bytes .../okapi/log/medium_log_archived.png | Bin 0 -> 805 bytes .../okapi/log/medium_log_archived_found.png | Bin 0 -> 1090 bytes .../okapi/log/medium_log_archived_new.png | Bin 0 -> 913 bytes .../okapi/log/medium_log_archived_own.png | Bin 0 -> 904 bytes .../okapi/log/medium_log_attended.png | Bin 0 -> 795 bytes .../okapi/log/medium_log_attended_found.png | Bin 0 -> 1082 bytes .../okapi/log/medium_log_attended_new.png | Bin 0 -> 872 bytes .../okapi/log/medium_log_attended_own.png | Bin 0 -> 872 bytes .../okapi/log/medium_log_comment.png | Bin 0 -> 744 bytes .../okapi/log/medium_log_comment_found.png | Bin 0 -> 1074 bytes .../okapi/log/medium_log_comment_new.png | Bin 0 -> 856 bytes .../okapi/log/medium_log_comment_own.png | Bin 0 -> 853 bytes .../okapi/log/medium_log_didnotfind.png | Bin 0 -> 817 bytes .../okapi/log/medium_log_didnotfind_found.png | Bin 0 -> 1091 bytes .../okapi/log/medium_log_didnotfind_new.png | Bin 0 -> 930 bytes .../okapi/log/medium_log_didnotfind_own.png | Bin 0 -> 927 bytes .../okapi/log/medium_log_foundit.png | Bin 0 -> 832 bytes .../okapi/log/medium_log_foundit_found.png | Bin 0 -> 1091 bytes .../okapi/log/medium_log_foundit_new.png | Bin 0 -> 930 bytes .../okapi/log/medium_log_foundit_own.png | Bin 0 -> 947 bytes .../okapi/log/medium_log_mademaintenance.png | Bin 0 -> 821 bytes .../log/medium_log_mademaintenance_found.png | Bin 0 -> 1093 bytes .../log/medium_log_mademaintenance_new.png | Bin 0 -> 937 bytes .../log/medium_log_mademaintenance_own.png | Bin 0 -> 931 bytes .../okapi/log/medium_log_moved.png | Bin 0 -> 809 bytes .../okapi/log/medium_log_moved_found.png | Bin 0 -> 1091 bytes .../okapi/log/medium_log_moved_new.png | Bin 0 -> 945 bytes .../okapi/log/medium_log_moved_own.png | Bin 0 -> 946 bytes .../okapi/log/medium_log_needmaintenance.png | Bin 0 -> 807 bytes .../log/medium_log_needmaintenance_found.png | Bin 0 -> 1083 bytes .../log/medium_log_needmaintenance_new.png | Bin 0 -> 932 bytes .../log/medium_log_needmaintenance_own.png | Bin 0 -> 926 bytes .../okapi/log/medium_log_readytosearch.png | Bin 0 -> 762 bytes .../log/medium_log_readytosearch_found.png | Bin 0 -> 1071 bytes .../log/medium_log_readytosearch_new.png | Bin 0 -> 892 bytes .../log/medium_log_readytosearch_own.png | Bin 0 -> 885 bytes .../log/medium_log_temporaryunavailable.png | Bin 0 -> 810 bytes .../medium_log_temporaryunavailable_found.png | Bin 0 -> 1087 bytes .../medium_log_temporaryunavailable_new.png | Bin 0 -> 898 bytes .../medium_log_temporaryunavailable_own.png | Bin 0 -> 899 bytes .../okapi/log/medium_log_willattend.png | Bin 0 -> 804 bytes .../okapi/log/medium_log_willattend_found.png | Bin 0 -> 1089 bytes .../okapi/log/medium_log_willattend_new.png | Bin 0 -> 926 bytes .../okapi/log/medium_log_willattend_own.png | Bin 0 -> 920 bytes .../okapi/log/tiny_log_adminnote.png | Bin 0 -> 651 bytes .../okapi/log/tiny_log_archived.png | Bin 0 -> 637 bytes .../okapi/log/tiny_log_attended.png | Bin 0 -> 643 bytes .../okapi/log/tiny_log_comment.png | Bin 0 -> 634 bytes .../okapi/log/tiny_log_didnotfind.png | Bin 0 -> 647 bytes .../okapi/log/tiny_log_foundit.png | Bin 0 -> 645 bytes .../okapi/log/tiny_log_mademaintenance.png | Bin 0 -> 646 bytes .../map_markers/okapi/log/tiny_log_moved.png | Bin 0 -> 621 bytes .../okapi/log/tiny_log_needmaintenance.png | Bin 0 -> 622 bytes .../okapi/log/tiny_log_readytosearch.png | Bin 0 -> 606 bytes .../log/tiny_log_temporaryunavailable.png | Bin 0 -> 622 bytes .../okapi/log/tiny_log_willattend.png | Bin 0 -> 620 bytes .../chunks/interactiveMap/interactiveMap.js | 659 ++++++++++++------ .../markers/ocZoomCachedMarker.js | 113 +++ .../markers/okapi/cacheMarker.js | 207 ++++++ .../markers/okapi/highlightedMarker.js | 70 ++ .../interactiveMap/markers/okapi/logMarker.js | 105 +++ .../markers/okapi/okapiBasedMarker.css | 7 + .../markers/okapi/okapiBasedMarker.js | 305 ++++++++ .../interactiveMap/markers/okapi/tahoma.ttf | Bin 0 -> 383140 bytes .../MyNbhInteractiveController.php | 7 + .../InteractiveMap/InteractiveMapModel.php | 14 +- src/Models/OcConfig/MapConfigTrait.php | 6 - .../UserPreferences/NeighbourhoodPref.php | 3 +- .../interactiveMap/interactiveMap.tpl.php | 29 +- src/Views/myNbhInteractive/config.tpl.php | 10 + 529 files changed, 1320 insertions(+), 218 deletions(-) create mode 100644 public/images/map_markers/background_layer.png create mode 100644 public/images/map_markers/okapi/cache/large_event.png create mode 100644 public/images/map_markers/okapi/cache/large_event_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_event_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_event_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_event_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_event_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_event_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_event_found.png create mode 100644 public/images/map_markers/okapi/cache/large_event_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_event_new.png create mode 100644 public/images/map_markers/okapi/cache/large_event_own.png create mode 100644 public/images/map_markers/okapi/cache/large_event_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_event_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_event_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_event_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_event_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_moving.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_found.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_new.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_own.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_moving_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_multi.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_found.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_new.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_own.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_multi_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_other.png create mode 100644 public/images/map_markers/okapi/cache/large_other_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_other_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_other_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_other_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_other_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_other_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_other_found.png create mode 100644 public/images/map_markers/okapi/cache/large_other_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_other_new.png create mode 100644 public/images/map_markers/okapi/cache/large_other_own.png create mode 100644 public/images/map_markers/okapi/cache/large_other_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_other_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_other_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_other_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_other_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_own_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_own_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_own_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_own_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_own_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own_found.png create mode 100644 public/images/map_markers/okapi/cache/large_own_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_own_new.png create mode 100644 public/images/map_markers/okapi/cache/large_own_own.png create mode 100644 public/images/map_markers/okapi/cache/large_own_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_own_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_own_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_own_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_own_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_found.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_new.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_own.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_quiz_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_found.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_new.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_own.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_traditional_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_found.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_new.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_own.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_unknown_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_found.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_new.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_own.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_virtual_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_archived.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_found.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_new.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_own.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_unavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/large_webcam_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_archived.png create mode 100644 public/images/map_markers/okapi/cache/medium_archived_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_archived_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_archived_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_event.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_event_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_moving_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_multi_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_other.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_other_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_own_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_quiz_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_traditional_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/medium_unavailable_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_unavailable_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_unavailable_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_unknown_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_virtual_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended_own.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_found.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_new.png create mode 100644 public/images/map_markers/okapi/cache/medium_webcam_own.png create mode 100644 public/images/map_markers/okapi/cache/tiny_archived.png create mode 100644 public/images/map_markers/okapi/cache/tiny_event.png create mode 100644 public/images/map_markers/okapi/cache/tiny_moving.png create mode 100644 public/images/map_markers/okapi/cache/tiny_multi.png create mode 100644 public/images/map_markers/okapi/cache/tiny_other.png create mode 100644 public/images/map_markers/okapi/cache/tiny_own.png create mode 100644 public/images/map_markers/okapi/cache/tiny_quiz.png create mode 100644 public/images/map_markers/okapi/cache/tiny_traditional.png create mode 100644 public/images/map_markers/okapi/cache/tiny_unavailable.png create mode 100644 public/images/map_markers/okapi/cache/tiny_unknown.png create mode 100644 public/images/map_markers/okapi/cache/tiny_virtual.png create mode 100644 public/images/map_markers/okapi/cache/tiny_webcam.png create mode 100644 public/images/map_markers/okapi/highlighted_large.png create mode 100644 public/images/map_markers/okapi/highlighted_medium.png create mode 100644 public/images/map_markers/okapi/highlighted_tiny.png create mode 100644 public/images/map_markers/okapi/log/large_log_adminnote.png create mode 100644 public/images/map_markers/okapi/log/large_log_adminnote_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_adminnote_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_adminnote_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_adminnote_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_archived.png create mode 100644 public/images/map_markers/okapi/log/large_log_archived_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_archived_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_archived_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_archived_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_attended.png create mode 100644 public/images/map_markers/okapi/log/large_log_attended_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_attended_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_attended_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_attended_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_comment.png create mode 100644 public/images/map_markers/okapi/log/large_log_comment_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_comment_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_comment_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_comment_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_didnotfind.png create mode 100644 public/images/map_markers/okapi/log/large_log_didnotfind_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_didnotfind_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_didnotfind_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_didnotfind_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_foundit.png create mode 100644 public/images/map_markers/okapi/log/large_log_foundit_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_foundit_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_foundit_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_foundit_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_mademaintenance.png create mode 100644 public/images/map_markers/okapi/log/large_log_mademaintenance_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_mademaintenance_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_mademaintenance_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_mademaintenance_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_moved.png create mode 100644 public/images/map_markers/okapi/log/large_log_moved_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_moved_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_moved_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_moved_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_needmaintenance.png create mode 100644 public/images/map_markers/okapi/log/large_log_needmaintenance_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_needmaintenance_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_needmaintenance_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_needmaintenance_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_readytosearch.png create mode 100644 public/images/map_markers/okapi/log/large_log_readytosearch_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_readytosearch_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_readytosearch_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_readytosearch_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_temporaryunavailable.png create mode 100644 public/images/map_markers/okapi/log/large_log_temporaryunavailable_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_temporaryunavailable_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_temporaryunavailable_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_temporaryunavailable_own.png create mode 100644 public/images/map_markers/okapi/log/large_log_willattend.png create mode 100644 public/images/map_markers/okapi/log/large_log_willattend_found.png create mode 100644 public/images/map_markers/okapi/log/large_log_willattend_found_caption.png create mode 100644 public/images/map_markers/okapi/log/large_log_willattend_new.png create mode 100644 public/images/map_markers/okapi/log/large_log_willattend_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_adminnote.png create mode 100644 public/images/map_markers/okapi/log/medium_log_adminnote_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_adminnote_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_adminnote_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_archived.png create mode 100644 public/images/map_markers/okapi/log/medium_log_archived_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_archived_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_archived_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_attended.png create mode 100644 public/images/map_markers/okapi/log/medium_log_attended_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_attended_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_attended_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_comment.png create mode 100644 public/images/map_markers/okapi/log/medium_log_comment_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_comment_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_comment_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_didnotfind.png create mode 100644 public/images/map_markers/okapi/log/medium_log_didnotfind_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_didnotfind_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_didnotfind_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_foundit.png create mode 100644 public/images/map_markers/okapi/log/medium_log_foundit_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_foundit_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_foundit_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_mademaintenance.png create mode 100644 public/images/map_markers/okapi/log/medium_log_mademaintenance_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_mademaintenance_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_mademaintenance_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_moved.png create mode 100644 public/images/map_markers/okapi/log/medium_log_moved_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_moved_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_moved_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_needmaintenance.png create mode 100644 public/images/map_markers/okapi/log/medium_log_needmaintenance_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_needmaintenance_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_needmaintenance_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_readytosearch.png create mode 100644 public/images/map_markers/okapi/log/medium_log_readytosearch_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_readytosearch_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_readytosearch_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_temporaryunavailable.png create mode 100644 public/images/map_markers/okapi/log/medium_log_temporaryunavailable_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_temporaryunavailable_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_temporaryunavailable_own.png create mode 100644 public/images/map_markers/okapi/log/medium_log_willattend.png create mode 100644 public/images/map_markers/okapi/log/medium_log_willattend_found.png create mode 100644 public/images/map_markers/okapi/log/medium_log_willattend_new.png create mode 100644 public/images/map_markers/okapi/log/medium_log_willattend_own.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_adminnote.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_archived.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_attended.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_comment.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_didnotfind.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_foundit.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_mademaintenance.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_moved.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_needmaintenance.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_readytosearch.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_temporaryunavailable.png create mode 100644 public/images/map_markers/okapi/log/tiny_log_willattend.png create mode 100644 public/views/chunks/interactiveMap/markers/ocZoomCachedMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/okapi/cacheMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/okapi/highlightedMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/okapi/logMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.css create mode 100644 public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.js create mode 100644 public/views/chunks/interactiveMap/markers/okapi/tahoma.ttf diff --git a/lib/languages/en.php b/lib/languages/en.php index a922a630d5..733cd59cba 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -631,6 +631,9 @@ 'myn_addarea_info' => 'You can define more neighbourhoods that you watch', 'myn_cacheitems_lbl' => 'The number of caches and logs displayed', 'myn_style_lbl' => 'My Neighbourhood style', + 'myn_family_lbl' => 'A style of map icons', + 'myn_family_named_simple' => 'Simple', + 'myn_family_named_okapi' => 'Okapi', 'myn_log_txt' => 'Log content', 'myn_style_full' => 'Full', 'myn_style_min' => 'Minimalistic', diff --git a/public/images/map_markers/background_layer.png b/public/images/map_markers/background_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb0622d815bb60c6343627859d71347f195e93f GIT binary patch literal 699 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&6|H(?D8gCb z5n0T@pr;JNj1^1m%NQ7#qCH(4Ln>~)ybP0l+XkKf9+uU literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event.png b/public/images/map_markers/okapi/cache/large_event.png new file mode 100644 index 0000000000000000000000000000000000000000..2724ae1680691c5c1e7ee56d034d54446f3eee3f GIT binary patch literal 1095 zcmV-N1i1T&P)&UOhmF4JRJx24;-04Dh zq>&|!Vqz$Td~g^v_uTt^=bm%V9l=NZ$M7A0F)=Z*aT*IJ5{d7D5@2}w1-iYA$KzK% zgghFJ{t0{ytOM`7eElCn)CU)UP(P=xJK$jL)-C*@5I(;jVVc;M)iy449kW}4#oM=0u3zt*90>5& zojVksJVEWggx_Tjg!}0&;OGdeR-^RtCBaC9i=(6DU%cSx^=kk|?%t)azD^aWbrJ`F zptR!xn&w%AmZnj!R@sloDLj9U&*!7?>J=;Z?r|m@=3suFLOP8J)Lrvz+xF8az%ZZy z11<~8u^T1cO1c z^Yau_DK6Z&(bG=|5dhB7IEv8P@;aaaDvh+LClX-WHpNtm)mV(rmzF4})4luxG@^}k zArHvk2K`cCsVenK1+!GbfA%bfVPFb@0c<^e%B6=7`SSjK>VUgL$P|R72=}&!X%)Tz z>Yf7h!$WHO`vfjuW_W6fa5&62u^7Jy!GvM(#m$@Kx3|#%vwf=j6ohCMo!=F`1{j_x z&~iCcpuD@w#^cA$1Kf-h*h!_(x=;55XK3{Shgg-?UqA(@0&1Z^G8V%+Hf~GvNv0lf zlUHcmkQMp6?kV8sYSnA_ec>iAN&%XD=iP`-33VDT1lMXcW@l$B$z-xe8DL7n5|F1AeY2c81SArPAAqaCFmN6?x3#r( z)#vkFo1B~+aQn{9&8gGV)0@l7%YVqIoQ^DL<-0`Vqr{26?iSFkb_Afy1u8)C@bGX` z)3o78B=XtF$jB!EYin!9qeqY4EiNuD2_g1@H^46N7Wl{Y%m4>KL5ggvKGc!|7CX>tge0~#H1AYh6z~8_gun%Ni(bs6dvw8}! z<J931>MlgWs9JifiMva%@2f0NPYXyp2cR>ha)j&_hk@9zO8 zPX?{KTwPdLm{t_!S|}9yYISw>S4qAEY}3lG8_qq@6CVAe*=O7z5V~oa8$t-u>GUFv z$lu5)oh!lZZ+BbRjgJ2Xec)U&=V|nIC%>Lio~8gtgkx<->LdP__!rDZ;1P9eUtItI N002ovPDHLkV1kEP3Y!1` literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_archived.png b/public/images/map_markers/okapi/cache/large_event_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..be04197ab4415a5ecbd9fed6c968fb90d1e63c0a GIT binary patch literal 1516 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 T3SES%00000NkvXXu0mjfJP{CF literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_archived_new.png b/public/images/map_markers/okapi/cache/large_event_archived_new.png new file mode 100644 index 0000000000000000000000000000000000000000..af6fe8cd62de7bdc8be82cb258770c435af96359 GIT binary patch literal 2063 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 U^u?cxBLDyZ07*qoM6N<$f=+97>;M1& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_excellent_found_caption.png b/public/images/map_markers/okapi/cache/large_event_excellent_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..35a9e5e5f32fe2a4372571a8d36a06d351470c8e GIT binary patch literal 1851 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 LNkvXXu0mjfLp=G= literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_excellent_recommended.png b/public/images/map_markers/okapi/cache/large_event_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..b1de2ec6a9f9d4e9019003028d0f564a14c9adb4 GIT binary patch literal 2199 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 pq998pq=BaWE@ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_event_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..a3bb07d6b52bc784e2c0d230b95f0395d9c7681b GIT binary patch literal 2200 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_found.png b/public/images/map_markers/okapi/cache/large_event_found.png new file mode 100644 index 0000000000000000000000000000000000000000..85d78e8fdce0acddfccae68bceb7e2a10569cb05 GIT binary patch literal 1396 zcmV-)1&jKLP)q}n>3r8 zoxPoNW~L9>BPW}^g{E(Q@N<|s|IGLO-}z_Y0RIEV#>QN#s(OpbCG$sRsZl z#&$=e(Y5A0W9%RyWO+FD2q!Kc#&|T0j$gktU)SW?&psD& z#@J_skXOwyA!KVb8vTM0(nJWUGq{GMKkr8*J^=t&QB`lI-Y;6fjvYJJWJ_#pYtSKsf+})erz6o{FLKw-ZPhG4zM}(0%=D0D#+BiVrsKf!nS?N_kgNl+W{R znzsiAj~zQqN=iToL5bJvDzC3sUVrK(Bo?p7wfk3)ni@jKH+wNL6-F70KwY-5@16DU zqsmhaDdni5D0>Q3mDd5GX%LA748{<aPs8IYw5iUMqUSmu7f8M_~-n2P`4XpwY7-exr5;|XVeu(jx4AuSwi1i z_Yt_k0ZJjI9Ho@@2q8>@LJ&ot0wDy15Lmoz8&;n_EgW9&WPET?gOH$K4fga<4M0lQMQv*<(gN&h!dZ2s!!Rf2 zBtS|D76{-$M+ex34Tz79Lh8DZ8F`#@(*Y~7RlwtM{w7Q&rz0K*ak(I+1eX#zfJc`v zqjJ|SENg26x9kW2=^n5ni{sDZ&=2~-vj@V*h+2{kllgy_V&A+bE@mQ z-7pM$TU(p5dGqFSMNwu5P9~G0r>BQ?b#<{EC(gT@$qkoy>#3m#vY0O-}LS4T@rOUnr%p)~#C;n68jpLS~7)nCs6e&3NXt_6eS#So{mQ<%xvvSv3v-0000s_zy z-S6j%-i@PUYe~RYJjs*xe)sG1{XXC4`@0_8hZr3lt6*#*tM?LI*Y$;}sxFX7aw3bWsx`r2@YMfCK-07z0nT1)#UEk!bo2L1vs;bo~v!C6+ZR18J#lF_B0ZyYXhU%VE~?;S@fZl@}G(c)YjI1aHowcR;+kh z2=S5-f>VG0jFgg93*MwqDC`IZgJB^Ads?>9)qe?qC3BZq>lf8~1Ws2>0ATeZnilBjJ;V2Zd_yD@Wo~>vbEeOa0sL~|C)#>i2!*Cl9gW*tR(^(pf)L_TEEd~3 z5rK+5peRZNU|{q*0A}9c+uyfi36qNh=lG%RI{+e~C?Br=f`_yyLWrx8NaU5t>Q3r` zYmJR-)nE`*m51idz`@zaVIAm{r?Gt8AdlD(- zNF)+@pLEUsR~rFY3UXoi_Kv6^rv`l*+)gygvjjN zx$^|Y@lKX1pib%mkNz}9!RBc()96r_}v zqA0CG2-OENuB<;RJ_SMu9LFJETg#FI2M9%@FlIu z?_M75>cZ^r$1zQul0A;&1Sl#1w@dC3sB8pIE{9`TIHrjb4rALkj+EFye@hE9-hG!R z>gsSxS`|VBxFvU~>`?TE0K}vU*rTK5(`ly6nL~Wd8iK(fiMl!xb#-IL>pO9RJlv*& zlv4A7dEMf6?|s^o8$mvu#sadb6upNJBTMc}V6dxeY@j9KSJzJ<@1{*T1+stza=4sY17Vb;2J>t@DcvD@}rmL(1yI@H(H)HGNDxXG>V$EG=sz`=tD_qgjZ zpbB_+U|`@mRaKX7+_*8}-+S!XvHr%!#oJUkpuBob3=YHDHtot>TOhK7dDj*gC`<2X5PH&_A4`M?eLd!bSS3PqC(ASb2F z2_dd`cXwB2x|1kH_=X)z!08sZ@UV?%ijT$>cc~H0^$x+?utgK*7y%;4twknQ(#qrzFtY+Ilt` zjV2UDNnE*d_U7*q826jWLMgYQ lBuZba#<}`IJczrE{{W4YmLogY$vOZ4002ovPDHLkV1n|au%Z9} literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_new.png b/public/images/map_markers/okapi/cache/large_event_new.png new file mode 100644 index 0000000000000000000000000000000000000000..65596434d8137a3cc5db742c1167714e6af08f5d GIT binary patch literal 1663 zcmV-_27vjAP)#^LElA+Y53lP6E^ zejM=L-rjq51|ylGZnL%GaezvR>!I8BiVdzSB^TU&^;Lw=hb9Cvn?-rvig}sIkd4R5 z%*|m=O>uZ);*p7#B;aK-OTeCOqa0`Dylvw|BG|LDn32dDd-b>k+*ArYkEYjNBXH=@ zT4P;j^!3+?eeeP1I`&c`U`dxg7e7lANF?wqi{$0Y7@-hN2M-dxbcw{k006t+c!SuT zJEQ??rKwN~vRMRRtV3W)OD3Ub+qmg8Gw;7o?DNmjG>zERtK53?P0IX!9$dUgY;24y z;1<~_rG!$5v_%CFAXi}p^#i^!any4Hn17HYDIlMB2g+)U5*7^Y0Fug}^gS+*FEeGKtu-1;=s7N{Ivf z_v~4AzWp}sCr;o3#T`N^C8R`HHhxyR-OqC3OTaBjATvLYH8X?0XAe*I_Tu;Z`F39) zKb4XnI}W>!9wjr5n*VBrZ9Z$Mb3yz+q)8P89~dy}e_(OqRNoQt#>MsXB7xh(8brtRQSz z7U#~LOI^5dVQm^{VA)GGpCorfD(rqKor(#J0MWm`bEd(vF&qcO^AMgy|LpRR{mCbS zZL;m)cmT%E&Pu(6ZzlX}CJU3x4 zF2<6#hqIGkgt-mO0CRaFE5KJ0Xi+{OShlzre6VoS7@Z#V-M{~}|L$bOdHy?5g$=Bq$lf0XF|fv)(gk26Hh(Wb)~bjbELVs`Ky+emcOkB z4xlNeo*o(+`o+f|oqD+`bl2ItXV`i6nQ>R;8;JsxhMnB>Y%tcR?n}0{!fHR zyH=8g=6cL6eq?z$Xc}A}{FZ*}UWYLoYd2na@mFWMy1Gtlns#SB0y@xo?b@~Ou3eYS zAASG&(w$4wK;&~?DWvj9Ne|!8elk!saI=xd#x(b*NbYFDtgb?qiJXn5!J&Nh!&PhMng+$JfS7f$*@)!4U%C3nI(Q)(8J`@Cp6qXoqn>+HSn?;(-BR zdc)1Z+9a&d=VYLA-VFt!vaTlT*4HGd4W{JQDobvu%ta|}86;AbA`-6>^RWO6v5+23 zhD6e;*E4Q|=eOx4gXEHVnh``~Au4>gsqX6pA)CH!rlcwLPe;th@ybXqq-# zDg@f<4@xN=Xdri!3FdY6WfGRpbd%+SCQh#F&1sspZrQDt{{adJ^m11B>(T%K002ov JPDHLkV1g9jG*bWo literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_own.png b/public/images/map_markers/okapi/cache/large_event_own.png new file mode 100644 index 0000000000000000000000000000000000000000..910a18b0a3791a7b31f227a56f546a7b05d919f3 GIT binary patch literal 1529 zcmVxe8i%>rK6=lqyv#rj!!XG)a>tYubG6 zN4B%Gv$HdEyqMX|Zg;bdZv-EBn3;2)bN>J5Jm-1N8Tgw;6ka5RfvrF%pl@(q3z!9_ z1Q@jp)spwEz)_%KgWv^81D^qx*Gr%iXn6Uhmmc{m&`+E^IiB~OS~r2>vJVap_HG0` z8jX%8puvL3ootnj0M!x;G!wKt*{QWUe>;2_Mb{CEf|t)DUAL^?%jL+YQsfpFF=H{F zpPBj7L~9aobGah0YgtI!F7LN2?06h&ejYO(uNW^kO29D;a9!Hpc!P#ryDA5(DicSK zk{lewtmc3p;(`{$D}B}`u(E=i&5}NU9xW1~{pqJk{O|)Smo5R&{nlF~M@Pv3+47-^ z1jY7&wJHRPT5}V+mW7kaaO1=YlIPALgdln00+-)@o4Qblg)?VJPEC;qoRV=;O2q}` zmY-P-_(iUuA^dg?P}iLWuIrM^<>-C?eO~lDx(*#;@w@M^lgSEODW#GJEd}@Dr(!{y zN(kwIUNZ!@i>7HTo;gEmc$n4~URcx4^E@>VYQhJ*pVcLI@XNG`9~SdZ5s*@n8Xjh( zzn_ka7r8YxwU(Wl2hH$3ZMh9x4Zdye6av>YaSVfeI*n3ak8RuJJr5h0{^~2bKKzh} z-g^%RD6J5|9#Abm-lfYPVs+ztfK!t|ZfS|^jT@*vJ#0O6h)^iR!~Ojn@H}3&Z64ga zm&En!SU|pfs1mrW62zL-Y$$kd0d~z0Sn)U}aBFs!t6zLkOyHuYz|8P4R`ubEEUyCv zU^CD=6EJ`bU?!7%+ux6STfYoc0Cj6mQwnb2AJazg?bIZ&Ka;7|ytR=qE7r&0p5K>EKYPmV7`lL6rzXnD}ijg5KVD2ft|M#H55r%s(RmyaJe z-o0|gQNR-=6I)C)!S+n1hv^3l|$P5&?y<^ER3>C`>1VIY^& zpFMCu-@SXc0x&u{>V5g~$4>O-O~=!9Bc|)WdzO{5=jYS$>FLEW)13Pm#>e40FdvYx zC_gqzRzS*bU~j~AciofCD&a&zjmP5;J5AD)8W28uc4_)S5;N-6{7XwblU5>c=7VFW5)`sPyt?C0V(Cbfo%XXpZD@} zbB1;8nw_1Pu${3n=dO{FNa*U-9jEK-!z)LQG_|(3D?fhniT$rDSL|zTZP)c3J0>4^ z{Bire9u1_k|QqQ&d%@uC8vhxw-kBYTy7uO1Td>Oge4x%P-3e4JEvRftBF& zP=e>(K(`Bzefrc>k;zCzd-eP8oqIBw-IUcv+ep zKiCZ6XppN4{`%{U?B5?@=gyX(Wn?V^6`K&p@mN?eh{a5% zr!B_EO(rI6CMRuTu{_JmK443W!j>&}(cP`l)1%Sb8=|XAXUmolZEa!H;!!^;gm|YW zfq=vgU@uU4{r&&sC*T_)#HCtB;`Rn9WeDiQ|F7E&w6l7tD7{b=YJ3{M%H71Td{e-f f5Te>my+Zx~{9J-?t0oI#00000NkvXXu0mjfu4m-H literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_event_unavailable.png b/public/images/map_markers/okapi/cache/large_event_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..61a74f65bde677b944ec5ea0afd53b5fabae51fa GIT binary patch literal 1523 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 O0000W9d&RZZMDUbmyHoZ4GG4O zKp+XpX5a4a-o5uc{ji&`31oxL_@U3tnY(-LJ?H;B&&xRn{$EW*d?HdKBHk(e%SB|h zh!|g`c!h{OFCqs-J;w@+YN~41W5lWbH2^a-WEVLcP5* z+}$lA5*3jfzY2hFh)Aky-#+<$W23a~+BFU#p}s!ZxoMO9dGltmVlfes7iOBzJu&eq z{J?Tx8BjFsh@q?fl(h_0*3~Uqux1S(Jog+f!(d@!Bkw%$0MWrgzVrCwxP3lw29C`H zpydEu4Ll13W*UTXosZHTRjEXovG=jZI28<1ID0nfWRmM2ewdnTzXj%w0isX+SgY*) z*Cly?%*q2>9=h{Vve(|SrOVu~VS};e?z=hN*2Y+WKXtd=M$Ni)gu`JqEB;$674NM9 zE*W6L?XSN2>gD+cxm+$h9uH&v{j@&$B<_L&s#dMy)3@IyuxJqtn>XvW>zRu9*h7mU ze-!kY7dzQBO~d2yFw))4+grC1I(d@oA9;kEUwo13E3f4JXP%*L=T3C*jlQDF=dTx$ zyc+I&FOS`G54zWjrt7G58gU#-SFdKtefQC|cQ4`oes0{hjm6hogR*VD`_xnHX>R7= z_U+VMcO6A@S5yOD!2D7GPAWAa>?D(jWf3}bh-hagtM9stCF|BPcjZbxd--Js_Uz%C zZ@tBaC!S#B^Uv`wTuAKP?i0n{%cd2d5x|bcz;UR&_g+fYu07xHa#3Iyl&@I9>6RAS zw{9hBSv0286qJ@ypp=~)c|JMx*|Q&!33F~3RPHlxeC%+T)bKEo{rgECKTc_BDbmrw z$ZN0B|H>=4TrQ4n+eXx~NB~MHEX(5Qr=LEX7f=g=z?#RQo5tiBQbnrHn#ER&jIoR-n=<5)eOU6Xx~1@ zfLPO>1b|dep?&So}Os|9EBcF z-~-C1h`Y1@EoKUVW185p80km^eby{2%Ob557V!D*-7J3eQEKnM9~*Ec1L#VjCzAM> z>~-d>VGda4%yrErst zHJPN-b5@@Oth^yej*MUe(Y`*8zx2{X0q2UG3e=B#)Zvnn;9Sm!~ruD zVo!7PBsY%(2$?h8HT^WX;xQnSeOiE>7vT1IJm2d}wOsMBEI=~br@ruM_$ACHviY|IyUc)RW0%a;!7m_fe2zzyL6m z1(_s18DPG60lzC6^$(u=#OOZN?LBkmwC{M|h_&IGQRDWFrt!P&uj{q7wNzJE)7sjq ze{WsCPw=bV?^Rn7bD?{-KVbX){zzG6+2~@=x&9&ZK;O~M*H7iRKKINTj}(Z=E&cud ztAfGcvi9~v*Lw7`%4ZCzlEM)cC=IF0Yr@{kYh!_be>hhk4F6IuE1S#Fw%@8Pw*>VA z!NS<-fzpVh%891}x|yD%TXwm=VnzLjb#--JRaI3V&!0d4uNM;s&_v{G9UUD%ee;d& zcUA_DTURXYv{tX|wI#ce2p}3d1(Z-g;1Aoc)=%`z;TJ#o2f7}&6A{i;&B2`ILwP)) zX>j=HW$q&V1i`qY#$GmxQ&h!&mSczF&gmUSbF`5QzSDm!it~zP|?Vls|;lo!n)YsQn z1JeS`XqpBZ*rXXNE=by|>w4Yc5Xm{E#AX+xTzR&^namBGYHVz5fAftaD~Chn?kkpd zT5IZhFN~Lf?vV6=rR(TkKg#2}xcH%?i`<`dFE`GN)*72`ZEOclO}jX_FbNCXL#m{3 z*bbD8s`AoNdroPDGJj0XE=s6bg_$VD69(Z}p*}KJqz{KmI2Q`IM6DOhA(P&8`9cn<3Q_OIr!2`^3M$$#0UgLL_V8nK5b-TZ~?hM zHsBa{#PiRm^UXKy)91~bGjq`*&hFWR&2A^VsEB{P^9}=DU99-%BQ&QIe7=hl0Vr_* zPXK=gQYIS2i!WyI)mIBcQ>M61e)u8RtE-umno3yLdG5XU$bIG+IDEL44?fteG&Wwi zrwqg*PkH6#m!Fsr0N8x-qPc3-Di&?tOh-)(K97faYuA#yY#BbE&q^*U>oFP|ADL*L zcz}_#A3Ag>KhYqY%|=pE5=@~@W-))m230RFFZ7p|&Z4?H zA%Hp&;hm-^3Q0*x^fothZ2NY+ZEZZaV+Viy{Bve3SiqU`a%v79#QyBF8SXuM{vaX= zHMB&3Uf#A1)!{%l>a`nqE={#|QB}b0% zyIs5JZEYnjI~)J8V|DhdtZ~IB1TX^uh(wtF`s<`DUVOXXW+T~dC*!fl==lD7e%`*F z0mGmu946WA#vX~7{rmRaYA-80O|;DMWw7F(3F~9__Y>;w#((Y{dSfGQw;QRgrT4%A zJp1=!v)Q;@R>pu~Fa%hZg<%-%+O@0m)|+p34t8`HfPIXn#hRKBAfoG-gM)M)Jc#$q z85Bjqd;UC^wr@vGPNu7>3U5mbVZe+Vck|{=Gh$f`MC+eI^pG2FPNMyGK)dH%5Q#(x zg+k=N`!0X7EONGP<<_ZF7+&vPz9OQA!R~`8KzdwDivw~1j)ZIAPP5zX+^VX=S6$7t z7hV|G&$28n3|e1Q>|vtywumN5C%P+CAb4K@B7(2Fn%dG*vTAA=XlWVGPYZ)R5REkB z4sk8^+hC#+M1n!gK!C8{k2-lWhG7u4EDWIa+i%Hv|9yV-_S=|1WHf*p0ZotAJ3j4B zZtpw`FcSiVy1N_p4UBX{dooK7c?mzJ{LvUtTXn7w*6eb=s`1L4s_)mX?Hv04*d zbZT7mI$$I$f!^Co5Ey80r*YrDkqtZ&DbQA3jXw5pRc@aF@xsAan;0Mf3<5!~mlLI> zqtZMKAVlwU+xXMOiw6LI>}ddILV$IHgNgpWSBn?-#Q^kJpLO52;V&?gXv%%D7919b z(RaZ}DT|AXuZW0hS(YXu+RBwHU2E2?aiylFjshMU8ltkYGI0F(@iCWye!J#=ppV

g!DvEG2GY z9Re+IJto={7rhw|5dTi-0&=@&%qZ+$wCLBqsZ(bKRQ2I$rkU-qtdxpS$no3t>m4gr ztWW{!>gue&fAWc0eB*{`IUE6x!*Sixb)RwbroXqf^;SbL*zq4|YJzLP%@~Bv=xZY` z10r*P)#;JQ;z>h8s;jS0>+S7@-rl}6kH@*Oqr>>@yYJMwbLTp;va&dR`n0utaL}5Z zmBr=4Lcgn^z)DF=b7-38$XAqUkNf>rPEF0FojZ39XW=gKkqn5)r@&kQ35Tt4M@K-v zdesj4fmm6#A>y4|Knb#ci=U;jBsi%x7 zd3l;6C&!^Y^pI1v+f_}|u-R;NZnyibvBUus5m^Il!|&I*aG{6F%08>2qCa+fsIg}< zFed^F{`U0K=~vRz?VHY?H75-Y_W0q)+0Z!^LXOzBQeJy4ReAN*bhW4`-R5>X6h+yu zD9VxX0CoUN_~MHu-gu*HETQAObF;yfD+V4-@p%wqWql5Nx8E_M4UhY(J$p0z;tfERK&kf44?6SqNm&qq9wbId`! zh~E4Q{69Pi;z{r#q8>a10$x3cEGt@VyW;B7HdfcIon$7Nnan%y+rzw*OiWBFyQLKN z3lEc-_nG(meV*ri-gg3@@gF1c@WJ%-^qWsH@%Hxi_dpq_b@DUXJzQU3|N3Ld=jZ3o zfp3AIfDfH~lOIFW1z!QFZcc485Fww>V;BaBM1mj)kWw~{3n6e_7u&WmO_RmN#V4!m zD8To9f*?RCg%E-u2wKJ~l?s++VVdTX$-4@u)oLiE=;`UfvMhuU0QB|sQ7V=2eIMJl zu`CPAvf53Nj9CO3zjj;$j^j|NR2UfZ$hPGr!0YV6BwHiVQ#>dCWX0y1iODdIOc6OHG;bA<_qgJco`+ogBrBsq|0rmhH zpf_ecdh9u1JgEyNCML+`asZ^$X%-e17#$sL@zVk_z~BSxj|oZvsg7%)9Y#h*>c7+J zG($r}Ek0680~jJ~MF{IH0Rgx`m9R|JCuN{mEV8z?R=?lb+2QEusKrkyWe`R?2n=f* zq&a#6FuJy(=XnSrC>D#XtgPTT4ggzQTkP-e*VjPQAzDC^u-5%LYC*UqCuwZW5)d5) z*tSizTIKxwoP0h{xm*TdWo3m|uU;X9!1KJi$Qa^XkkSGmOuy73T%guffMr=+Uti-m zPMu_LZx4VV2-;n;TRaSyxbJPjiV!jzlZsu4Lnau&?b&tE8|l2S@TDP?4{+1^|( z*PF>?nglzJ!{+9uT__aXN639mSO)HCL|;EvTLf%xZ~p*{11|{scj)TsYCMrhyquex z>y7*F?(SAsS645NkB@)RQALYH(x`Wt@S`M(Uc?1FYol5Mo}R!4%)7h03)gjD3=R%{ zIW{)-1;E+aS#5cF`NQGi;cF@7HSiYr6(|CK#I85ME%28X+0-)a1O!@X1tGMSgDRO*}4)6;!T{u+2kqrP!OhtQ*Fmw^aMn~a&~`~Dj#C6||%hlG*8)lmw< z^2PmCyNTmy`Crfl(IGQTxX(xR?HJ{!6cCAstf{3w<9~_20lC5k&-_w@R{#J207*qo IM6N<$f`o(kxBvhE literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_archived.png b/public/images/map_markers/okapi/cache/large_moving_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7d1af37a6d9c689a1ced2b6dbc451566bd6eb7 GIT binary patch literal 1515 zcmVJNR9J=Wm)&bqTN=iH&B@fX)KJ@lhy@XeQszR6j*@zzy(y-m zW58YrqNt2`GZ(o~{{gSYqb-6^bQlD2C`Bt(DHOa>D3}(lqhmW&v>s+mY@1`7CTVu| z*Lu%I_HK8-QkCPyfqCF%?X11Bp6C5o@7^1JuMm++5!oUlfkpH6BJw8@DgU12>qX>> zhzy9x-$bOwng6qhJQtDoBJ!8-MP4l;|Fmse1_lPiL6?a9RYayoMn+_4Xh=jPDV_LMabyrs6-+WIdtfdq|<2;k*lli=l=!`KLbPIa5%hm>sD^x zzRj97YiMd};@r7&q|<3)u^4ODu2sOmH|)PUL?kRCZ$5wiEGJK%ls$X)NONC>lNxNreY)7ZOrFKumYq|<5j zU;_*1c!^509 zb&5-uE-^APLVbNb$z<|zU0vOZ?P$0xki5Ysf-uwet+w{N%l`}=#&o;~{yhr{nNpO?2}1T;;A!sPb4P#kwd5{3Qh} z#;#qvh(@CTR8&-O=FAy3ZQ8VCom2Tipk|R(djti5z*o28jT<-4T~}08P+MEOWQ|hF z57Ywd-6_W`pg{3d_<;OZMIez#aP#KPx!>L0-Mo15V#zuY@l*7+2Kdpj8Wwu*2mGrZ zLtWRgEQ>@UK}Sainx+A8=guAa`}^l=z_Ki_03XF%S36!?6kD>7`PQretE7NjE=N9} z=k43K^!E0W$z%ZN=;+|tvu9YAg|6#!B0X@AUb*9~d$ZsW8_u<{s(@@ZOEQ^6)3iB~ zM~@x>VB7XwgIWeY;0NZTY;^&dOoo}68FIPY0s$^W1f>){pAY}a+4Pd<`?%jPr1F(hS`K|r%;X^}NS=o-` z$B$Qe*WSN>KY#uD^>;5{z8rPDa*ISUpYIIti^qG*E8vG^R4YJtHpl_#R4VnZP$+Dv zsi|2T3WfdvFg!eLT)TGdm%+ioA*ECjcn|y+NC2Na<2Wz@OgkbM9GT?=*pAX!U+I~D?d$7%IW;x)4j2ah1B?M5f&T$XVAA8g=7~^A0pg4% z#e8LfbT*q!tXsFPqPn_z`}p{{x^?T;&#zv+8g$72?Rfv0Vy88)8}0;%Wdq%lJA05;67x2q}b=({Fe0cw-n%taBabn`agb`_!XQn5002ovPDHLkV1k;9@&y0@ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_archived_found.png b/public/images/map_markers/okapi/cache/large_moving_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..52893712392d3dc4029468e78ae219e456d7381d GIT binary patch literal 1513 zcmVnJV9*C?HMJ;0 zDu}N7AoNivf>26dgxVKDTBr|JXr5YIOTdVV)K-fkZCdKqTQnrWP4z(|$*wWU?9A+3 z&ZQ68-A=Z$(Vs z!_WQ`0a8jofK~u?0FnTP2qBh~vMH0voB+@wrPQUAanAXPs;a8VQn}~?$bA6Xgb-`u z@pxTU$Ob9pD#qAO*LBxemZdt}t|o-EDT;EUT)ue=08kBJX-`iN4j(>@lP6CCz)}Dk z(&_Zx@$qr=4qnH{7mwiCjKc@YOG0I7d4_1Ayj#MS!mBM+qVALI{5#5U7sDVr`0|Tw1YW z#T%NYEoRKY`TJjkDGa7<=qnpqt?a9R&RM{oJ$p73d$6OUW3gcv??@?eGw}m_YK3ph z>K&CG9UZ&U>2%023|xHhEymKL5JIr^OWKlqH@qhRKuY;&UKKcV=FFFH7OP(fH4NnIi!>@P1CBZtn`J$Vc(lA+mW0a!@$!A7|*0&JGO9L2fH^PV4GKN zRi~z=oNzdN3BYsjE?F$fP61;Kj^lt*3ez+(FfgD^PEI;fNU?q0yI54+2+OvFWm#yc zTZ=8LcbJNzIF@DormE`C0EV+1g_xTF+qPj@7HVs2(c0Py!!U67?p>{_s)_|@NNj1@ zE-IA}UJEY5&h@)N33a5D{asyMXOA5_)}M7>Oh6uGr+{+~#u$VUXliOgdwV;2dwW3$ z(W234wGgZ5p|?JO5CTF-NGV4trRRo+hph`2F3f5WfSA`tv~1Zj001FG0GO<+s|zKQ zNuOm|NTo)d=H}+J0Kgcd0DQ#=J)-~?uoXw6(Yy#kh&D7dLF&g;i0olfKG)vNjIcs!0oA|W{EGnN_WJXe7n)B@z2an@y+Lpq(t<;$1hI1T{d z)~#FU@9&4}x^P_=ob$hJ3PB5U=S!X)DY8{4E5NcW*tU(4krBk>ahRqF0JwJT8WM>F zIOlL2=N|&3ltA(77WP2-Cd_0qFijKV9{?m03G4Xr;}iGp-5cZ6-N_3a=F07QFvI<90%R6UO38!}`s2rs z{ad$gtqg@iN_Tg+cH_p4kryvsnAzkG0NX>BbM2HOFC{>FKJ%O#P1Bsl#ztOWUtg6< zrFd6Y*H~X)-)NS=@{s48^8(_cn?L@?W=edbB(_M4iEmoeu-WE P00000NkvXXu0mjfGTFyl literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_moving_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..e7efb7754363503d08ccc01d41192f4d367d0e41 GIT binary patch literal 1548 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 SC3xTf0000V+HjvcT^!V(ASd_ltyV`$J8h!84b z7ZhnyN!T>ei-}cJHE9yvcDK8Zi*3>>4O9(H+NMcUBw)QL4I6YJY$S|`5dsB_0}16b ziBlZ=#9znfyzeez8|TYO+S~r6N5|*&bDsbI`8el2wqOx3jNUy$=xsuXy3%!})MKUW zlRn?}PZkqrE{Met>$<*oxUVndOFaePUcyIHrGeq8rGDGC2exgW`=UbT6<`>>dvx9T zo3ZfV=9DpkzowB@YhFe;T_|fgs5s+~!o;54$KzW`^~=rIZ9Dh#rHatzRVMVdvGCw# zfaY!csA|{*fXbPm;s8`NY@&JFJ^;qTgPVoW+m=E;uYjrS^}Q)$f?&%I0HQ-T7=IKl z`iwsc6CJt%K(J*8DPsa%*Y_Gm@18F$KnT5UxUVnduW3XuiC~h>lONJ~^22%0{WXmY z_w|K@(A(ni_)5btHhl>JqHc7=AW#)V;axC@!b_kk$mocH5Y6q&mMt50I-M6&sZ@U= zkqDK$*0E4f@%jPqf4vd^>Zyb#q7Qi-xx(wazK88ygIn`3o*v~y z_wR_OWBldP2mJDl-y(!qw7L+(X&vSzN9P4!-(BK2Jv(czBijqY;!+D5YrI`WD}+dzD-+CoRi5xDYv%Z2{zRIkMR- z$)w=+?FqWOFB6X&2&MD=SAN85U$98NHMD~_HcjnCSFc{}^!a>O^YQ1h#R)J?lT0Q< zAP}IXrG;cNNmo}Fnx^4*ui^)d0CGY!znw!pG1 zY}-akNhlP;wrzTPdT=_O2q9R%dL!?B_xDAArBp@;aY;(4m5|JYEVTvqf>Ja#HUc1o zz~OM9lqzIRG#aJ0wzfMj+y!&)Vg+I=Z%Y#Z5C{Z{B3v#PU0q#-!(kGM1V@e>p+rDs zo~#rFVzY2wb_Ql57K?H2+_~a;Z*MP=NCeX~r}^2o?O>_`mHDFwaFBQow{BsYW^qmmkWxDGL@>SVg(_$)W(G2u44F)ZCr_Tx*VjiX zl>*@G*|S6<5u}uurio=)Se8}1PAR4H;u%vAP#`ZHEx;-(Ae~N=PN%th_b%CN7TdM~ zxOVMYA=6pem!P!0r2@>nEj)y&RElIWNjjY_mbw&5DWsHWnuf0Hz zW}&EyK%xI8kjY!|HeAwO@CC^W0t)2C^20ov(V;_!KDKS!k;~;=mSwry+uMWt_wTRu zdcD*9GntG$efsp%j*gD8MUba>k$rJ!W(hcT>eL_e>t0|bP&qm}xJY-~Ihi@EFS>U^P4$O|wy zIG8wk^ypxJfB%4O+gYX$SPsaRkSFt>bBh%q0F`&nDy6bg%4b7ELo0Xh-o4uE^*TE` zI-YcObzK=BA0N+WH_6lwgmj)TS+ZUzy*-m`E&-~G&RkNo0D}05e Z;{RP>a0@45Pig=F002ovPDHLkV1mCfcmMzZ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_new.png b/public/images/map_markers/okapi/cache/large_moving_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..32f0e843b1fc5997ccab2c8444a9496ba996754e GIT binary patch literal 2222 zcmV;f2vPTmP)CM{6-k+!BIFZk3x06NEg)E5N_dhX=j$G5%){Ojw2%nFbZf4aM+^%X5Rioa?d zm8&)&yWCibJY+G-!1;DY`cIMXD`oY@`+g6+xmbv~05*5Gw0;Dzs&N~#%Z)JfDKQiG z&j0r?0IN6N_dQ8^@Z-e*$g_z1fk(99D61N`0dVEZPZ&7go{bqe-_DgUKVbq;3yuOj zlBxU60DwSS(~%eaRqK%L2(lgFjlHk(#@<(Fz4lkFqpj)43#8}FHwN%uz8s`%c{M^R znD-?@Dxhq6HJ2|3VS1*_X^!~&4mG|p%GG= ziljNQ^W$uPd_AxptZ@K#{^AJ$^s$>UYH0DxK^DLs#0%5{D~TR`$W!P?(wqRibzmQ! z!kK$k4UO>h6MsNY^rT~=M<22W0q6yKqzb|d0?3H(1$-nr@)X}@`o~+Txw`^Sp`V?< zduw`a`wGo}c@vknpZ-faimw_HA3p%B2ZF$hK-*jZlPBRy!1vTkyOrl(UM&i%O4Ku* zJ;-*1Kz%K3O~2yWg%eouF|7C)*Djo(?Y&o7Rxplm#yHd2Lt#~k`uxkQ#ZxcsRxFFs zn9f~uiQn1-c@u?KUU}^fSq}5h{u{J^dWpJ*GA>cdCr1xv$JtZpCs1F@iWNDue|ibU zSIzzRZ}l`b{=~Cq&z`<`0!58dycmEfCWM4WXO8<_T=B$mSO-5!yp!m zQC?n7V`C%XaF}p7%#Iy9aJgKB!(k$k2%4r5i^V2am2Df6Nn}8o!5tZw=LE1U3)3{Q zEQ`9jIv#%bVdC*PPN$PyyLM4rTudU7z%)&g$z-;kZQHVKBgYJu03OmAHsNl-IRP>! zz^&HM(7@KMTLEynTs-^ivs6}APKy&l$SHxWMsWkaN$#Bl0iE>l>x=4vp`jrT9z2-6ZfloIQ|CCP^d`SeC`m&=C9g@5e9<0GgVbIC=79b`DHrNCrR_0@;Y;Cf)58 zU}jovX2Jwu&9e?f(RH2P-d>I!JBF&J7oz?9_tVkQfn`}F5{WG2lwJUYz>#U~#KU+- z*vyp8c>y#{V|aKN!!WWU$B!QeAeBmCSr(~OYI&BOsH#dN5+NFm zP65bj*fv54WLd^B`)E!Uj{<7u*JQpS*tc)rT#pxOlf}asfOzJfSX35#O|wXMc{t&{{P^+sG+7CZcsA!% z(kG;e)=%sQQviB_;9vjvcBv6ZF-??I3OOZkeDvA5__1R$J9qBPo2>D{2OsDu_0Q(s z-=0+@2{C!E)D83t{S0J8$0oJjnhl@_crj+=)!m3xt_Z0GrBPijzGInH`@_wW?@tFm z6fG^K=EjX16@Z?e9?^R8ees*08BWcpiFRMi?ZZw)Q&uFdX(6?{Cppm8NjESIjAlTl zh))GrW;+3Ij;499kDXR74qkL#yEf#$FfeXz{&rA#VvDZ4cHkYkrly99iV9jCw2YQG$QkHYTNc>SFc`O z*V);*va9Qh2Xf^R;Z{b4$2Bf|g&}cgRm6E`P1N^k>r(l8Rs~wutXb1rUS57`*|KHt%_I&W*|vSxxpU`!dbs(( z?lRv6b8U5xdC%QfEIYH1*nlk|vjh)I@V#;1Ub(NogkL^=0$Gk(hRRrZ3HohrL~brf z5_Fus-EpR`Rv8J^DBHIG{Ov#>a8Qz@|IGy804mzs+v@@=KGT2n-3~KLCfz(O*fzpW z5fv$%Pwwc->pJbn?~ifqDr#jJdVU@vM^4v~BxqdsmDRZJE9>aL$E}WzwRM3&paPf` zU|y3Xkia5IIDbjpx@XN5MyMqJ|ZV)A#a)49Khg)4I8=+H=nutMyS}awz|h` zSaW6ic-bJQi06VS%g9bIA~$Dd@h{Ha;W&M%lU1X{k+4eTy1It{ z)YsSdE?>URr5pe` zIXPBtZf;yr6y5E1tNHo)VV}XasU7T07*qoM6N<$g5^jq%K!iX literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_own.png b/public/images/map_markers/okapi/cache/large_moving_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..8c7155caeec06323e3886e4bd99217f1e316d322 GIT binary patch literal 2100 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 pT`o$AH$#nn#002ovPDHLkV1i6^FL3|> literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..8749e0fd9887eb9f9d3bcab11259ddc1125ab82b GIT binary patch literal 2207 zcmV;Q2w?Y#P)>L~WQ0|fin%9X&}%5 z0G_%x;jUSY$g>_}K}m^M^w}dri${%9ciVh#l+-H?HPt&iA3t;qVZPyA^5ixEz+JN%01zE{Fx_|izo{hUAXFqk^-A!z zbS>D&WKWzL76Z;P2dnaUbk6zUd;%yTWZiIQN3&;90|*izNZ`WRR$MsSTC`6|%COl> z;n4(9h+FKi0EXK{vRt9u#z7f@S1CtbbuHzb_s#17A;dd2CS&Ov)!-08keG9U30|oq zjnPyDloBf#0G|Dl0N-Euo^Qp%6@t%K=>u##W3kv3m&-LZtAP9t*JN-2E7xy>AwQcQ zU*5P3R;e0{Yc&(`NqXr~mvzWL29y#&dAZ(g@mQ-JHTG0WLpUC_R=CO!65^l$KA2NL zG9Ct3l7M0Z92z!lZv@Z?@E8DK%YhvLfWha(^q-?W*2FiGfW`n$^DZ*5zx=3=6QE!2 zL;Jrk3cuX>A(ky{*dLEiJuNLQJ29&OXK8tc96?#kg?wTZe_XPwMJ86wDtWRaTdoPul+&z&FrhqMp{lYY z@~qb})ZJEQYMe1s)9*aF$sUF8>t4}q>{zhNQ*Esk8E4jibzY#srxTP#Y}SqbP3*lb z@2kFYk4}i8aL$VsqE(VM4aDO&uUVz)=0|;_@YlN$4Oa>MJ)c8KdA?FaGi6r_5PaI$q_jm8wcBg&+^puA!?K9{Y;fZ4TbfVz&XQ;>LtSC&=V+15>lCS z>S)uC(}$hSG?u-R;oWf`U!Q5qW?C6~)3>{`=; ziC74s*bAf-O>eARgY7H7o1laaJ{r3F=UuyYpDMyfvn?weC<;x}psFg$%geE9)hZ;D zN!-4DTXwtMMw#7%x7W15Wp|@Oti+zR2SEu1=lsd()2BPLx#x`;4&=i$O&Ep&#u)s5 zKi02bkB*KG5JF^+$5XbHHPYi-e*wlA7~|la2PviJ8Dlwu`M~BBP>9;vS^xkcgaMfH zdcETK__&~|Dkdg^dVPKUSpYB$g8~qW5$3fFC{hFS!Q=5viy(x^0|NuJzrP=eM1nOn zH6bg&I)?xTz{m}}j!n~u$K$ws`SNtXySp2KK!BO1$@1r!rkQgf7uJH9KB74tFbrcl z;_*1z+S;J&Isl-ns|)w<-$y!~Mmn8_X__y$nW=&N+|!n4TZ*g;a|%#Z6`H1DbaWKm z-Q7@>%#VM2dpiPw08G<_uIn=daL$3^?iSX-+(np5rJyJZ!r?G9O@m=%j;^PtXPU?~ zO)$oaEuV4c@$&qQ*AkFSCXq}gr=7^(WljKN43tt>ES9-a<;e2`z&uBA{P^)-&6o8x zkzf5rUZ4F>x8VOE&L__oP~3rI$Bqq}rb*N3wAC;S>yaZz#C`krNunseB3M;bcK-bN zL~CnnvA@#!1!n-z3(1QLICt*cZDa~a0AL3oghC-7rL^Yg(W6rS+)I}(B~G3^`Mj^M zFH(efHu6_cta3;;ELkCRe0*GqMx$20-!IhF)d>I)2n5sraH}n9p>y# z=fx|#pHBeKhQT>E7-NaYk00B&ZQJG$MbXmQ+A3eUa%FUKa#G1A*8ymGWVv1Ivysmx zfaiTSbGwmcS+A<9GJQUuYhq%;JagtusIRXtm?cp2$a6b43y6z87PDQ$+ya`nkal!* z1f5Q&LC%iW28A-|NBi0stTgf^4_j^?Ud3MUdH{nHRiB%n35zgaXil hc2;Y@#@BdV{1-4GK&XsOL_`1p002ovPDHLkV1kD8C5Qk3 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..276cc8b8ab98c59d34a2187cd4ea0735a78e38d1 GIT binary patch literal 2187 zcmV;62z2*}P)KAUZlPxX%$*UL~2!6kme#n5{I}=Vnb|_fFY*F zCfEt_-DT~)o;^EfrVrjV>$PK(KIfDEnlrOA^L_uz%sDG4KrD9ZZXwM5LWofQxYqg; zt=*%6K*PyIqU}Y?^6r$6yAkc8WaQ{MxLSoZ2clEZnhXct0 z04_%ZtO&-4`KqYhyt&VHUE|~b4pp_DzsRoJ*UKfr3TfNPnw*GuyzL3o(%%&bG8uQv zd?G}S+%!GEAL;5@myC^5T3JVV&1!_lijaS+Z&s!?>$P+5T1$*lb;s@NKlb@Ht(;4M1t5gEf26Bt9l*-XyC;b= z4m#ri4giamucf?ZHP?na3HW_@%S`&J2aRVgHhFLDUS`$RRBt}hcgg6}pBND*Vcex} zlZIgg=SzV#>Akrt85?Ki=G_2{UYU$qdCh77#;$fv^-C&l#?_;gs}e@cajvbJFy0zD zZ=4?bfLKWaX-Is-J}OJglv1j1J^_Xh=KkLH_Hb!s9fCN5I46!i&xxbY&)PRd8pH6i zNGyanV1g`hNtW4Yug1`V#m*v@hQcW2HqRRYAw+0+C`R4dYBYWX@i`YbI!z)SWyrY( zLW2Ty_D2DahJQh5bq!w2<5f!Si$#K7T19K`%0WITb8E0bf0)1!SLf{1yZ}&9u_T|^{m=^agx}VU3 zr2zc3nTI-KzO+g^ga55fmYchk?5A}R7$nu-Z7@~yp zrsP?{XG8!%Yxn5JJ6D|>O9nap)<*zrxnmi-_SUm&Z#`S?Scd8GAzjVz z#4v_wkgyZ#nKz$MQrKJ?`ha8aJd0@>1pNVibkAcHd;G-Wl9qRE_3~?DMV96L=4=s| z@iKB8xv%5(ma@T-nXRU$4f#b*9I}aRqcsW34XUlzBYl@1Bh(@EhZX5OW^#lR|9%y)okynQp7{7|+ zC^m(+a^J1{6`;$L?S_Rb2ElvP+C;Z z16v+qQJ|8VvRb~qZSoRQO2wag>Zv!f&dp^8V9ba>KBSbmu8UHNa5#+Xy0o^o;_-M8 zLa=J_E&O`#6I1iG*0vC$MJZ+EkrYDZ+nfRlQCC+7fDi)9vd~)Ryk>NCl&Y$#e`kez z0skE2GHahr06M59q2dE^oD1O&;;brv~dC)b~|1_}|0L}+Si zn(CiAb&BrpZXCy%HqUiki^&KCv#k#(%Co6Dm@@*d>ypW2kWvzfL^yu@_!L=dYb%|d zoj8s&RVO(prK~IwOb>f53I;b)1Ga5r+cy3E{j|5YlT1!tPOrT33f52Pq{| z%Bgi)Ym@6oJSQMWo@*r_=M<1irAVbxT)K3LbUKaex&XZY{`)ykXLz57{PgAv$bIR~ zUxdkIl0+gwDwUcFbw0G#D5WqA1Jg9;+NzM;;YL#M;DZkypKsS2Kra6dlOJ$4dB^ZG zor3?9JSQMWJ{5kLs=g(0jVruB5ynwdbf~lHUT=%GFgvO(P%VYSy|~+R8%Y-9UXNJA3l7pqod<|mNc4e zlU&brE&`dX%^-(QDZ;Gh4%06atEHvoTyb%6NC*+??d^RBxRxc%uk6BGY1Uh6t_b8q z7Z_fzcc7@KD0bn(g)2;kIhX&OfEjD%f|zeY0gOC@S*rSTe2&kG{{gXL4`IkKxOxBp N002ovPDHLkV1o5jCS3pk literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..a970f47c0a08385fca1200e4fce6e9ab78d83404 GIT binary patch literal 2710 zcmV;H3TgF;P){RZ`ha8nktwR-yHy^O8h}kN8E2$7LP6bRtP*TKEY$2fo z1VR!Z4xLDI^vrbkboX@UgGNFU0ww!YJ=N3i(f{B3KJW32V2(LXQyCBe%H~v!09`^f zjyO)!^T00P4d9PLG+J}MQ3@DBG{)zCf3AsngtvZt@W|^Sr5}K{i4g0GqC^8L*zkqz zdjaE<^B0~xe5yJ4(vy$fsI90}g%FQUK{!rRV@lJ0BphMi+z)bG<{fgpQ|kX(#|J-Cq(0S?gk*|o{{d8&2IoSY&N}SzSdOr!Ie{Xv@|Z8 zvO(ZVzI9)DnF_Qm2mnMrK6vEyvSsy1P6B|pcK0<}*ulpk*Nd2`IaAB}(~{YHU%kP`+Ff@Kx!r( zST2(*fuX?hmeZjxJ@&}Ez~c)7D6tW;Nd=Mg;^gb>_`-w0gJ4Ynu=ABK0`Rx<-R!<_ zn29ZMB)1?NcV=v4z!o^N!^qN6&(F^sT#@hdTaMH8C*W}*8jU*w1PaR#NiP8J?%zY8 zaPAp2X+s5GDm)>aR+BL~0dAm(TM(|?)0<^@*|6uwfB4_~9mna}`k96kj??t$d=N4) z;t5rAd7_!x)s+Ma%h>ttcW+mB1{l8HN>QPQ)93rSmWVN=T(#dfJET;J2?9Kd%;JFp z#s(e2LAM?B`1SU#i+K;%N8|e9 z+&YT2Q*R&oKk>8??VA?!c>Mqvy2_Fn$_`uc|CXnLzuR2nd{nU3+-UajmEqVbXWLVysBBhF~e-*!A(QrFb^La?i~ zIdJ5#GOOXTdjqW7zLU{WljFxb$z&WX%VN`}02_R(5rq!na3$Gn2qE<`c(Y2IUi>{T#(Q%8RLi!50QB}MIF5tg z?`L9S0?V4b_6rIMNF)-Nrb#N5;_bHvP!xr|d!Hd#@M%te@{55NH^1k-IlpEVqmls}mf#Tv~GMNm9VPKl(bU(*& zB*#HYYb*i+K;8`Z1Kuf+y8_I$_3PKOefxF*d_Et$cI~37s_M3OwrxvU8%asw2SPJE zI0MKFcyC(+3t2dPE64Epd=wQG-PXo&9NEqyClUmh%q{JlTYwIzOom_mr)FSqaF7EB z4otrvI&_Hk_V#%JvNlp$!w(eaJjCqL%Yb~>88A(gOeTY6Squ&ivTxr$G))8G;K74@ z^wCGtYhY@JrA(2RsN~LB2Olvp}wrwLx67rp+Ia53ZD7mM>LLu0*XV2ZL z|52MM9?t>jxib5o+6DhlvzVOnc+S-+ahQDwrt6J>Zzyv zfk0puu%>AoK72TJ;=~F4Hdz6hKE3A^CbOZb(NEuKGXZ*m=sQ1ouT<0V7zUnf7Ab2Z z|NgJ%^rJ^5cJADnH&f%-v14jh`5$BVH_v*6z@C|(sv7FW%UsKej?Wmqbtixx;9F@e zukL1|YI#g4C{3wS@zM%w<&%$z(3=O2+b2(!8k;w7_5k$s^w`ZG{nq}*e`wyMR-5YX zbNAz9QdujZCzCOyyT`otaU0#h5HOYlnI%3Opu+J2L02*v93AiU^xf$54i69dFJ7B4 z9@`Z4eDP`3vv>cmq}tkADl02FdGe(6xreX&9fJ13-&Y!nS|t|*Lsl>tREo-rqW8JS zuaBvpTszzIs~a<>e)cwEIwf;HfBpLP`nI;VnvRas54oig+wU2(1HK76R2Z{YEK7J- z)TTmzX*6BYELfpz090%LUlCraSpMS0+ucNb!va&S8*HNmRNp>RxGcr?lIP{8Mr-O4oF#aHyDzH|5y> zj@Ejf-OZ5;PyqhNFK8TzMEDk5Vea7qgF|wLQybf7vyR7J-*2(r8N(Uluw$7 z=SeqX0mfq?IjV#tMJtgrR;g51xBk?+b?bVUELqYnggAUxfE+{_P^W2Hq_?+s@zBsv zaWonYC6mdZs;U9QF#M)zdb8QA4B&FPEVtXOdpsW1@AoVD`T6lsC=?Bc!{aqIHKRVC zuM6l9LX6xk1Y&N1<2W)<%48N3%=z485^mk;Dz`40IFqN|m=I##Z8z8c4$VvRX-my~ QrvLx|07*qoM6N<$f>OskBLDyZ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/large_moving_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..4dcf1635ba4da27622381531548368c4f08ffa4e GIT binary patch literal 2594 zcmV+-3f=XIP)TqcRb$AZq~20@!RHU-f;{RCzO(h6A~j* z;tGYl1Zkw8v{Ir(O4Wy2DNU6R2~h|YsUQ*!t*BH{$0?*GpwO6vPy!C%#DMMC1{*uZ z54`K$^*&~2XXp0AuI;rkIP^$IGjs2`_y0fV+nPz1;XLigcR284(-wDNQflxEf+sM`R0gcko-Bz zC|y*EVs~IhoG8{H-7O9DUv8vm(PFOI#ns=}|IL+uTW08`yMNNLWd5uWPzP-6x;mh} zUw^oCc1phY*(a<2EkxC?Zbm>&Jj*YBdh$(x%Jt8q*d18m5LP&ZLI{9a%kQIfQ6*g$ zkCNs{E3_A+>fg-oaQ*t^o~8GkDIZ+6pls`r3k|v7Sgo1;`mpv>u|5P8PL~2T;r+T1 z&mfiSp9i4p+-CrkE~*5eyQN|5d)AT%a1S>zR}|5u_S3g=$nlTv`qG1)$1P8;SB78lj?1KCdaCTY(K>4ZK125;#S%xBg0PKG29RS|=^X@6Xo#|PW#4nC1qG5V>)}JEd`$*p(ET6LV^XzM5llhL&X(L z(~FC844~utL|{y!fnfkvKDZIX(>~UI=kjuFt}-k&LVI5?JJ0=-bBo&`O+X--9hfOm zI@7PFA8Gi?^~6K>?*ks5mVke_pV){WF`^;UbT&S=99Ryf8-ORDe;j}>n=kTK%ZIoh z^rEB+VqTfFkpW8}RZ0J>0o%@Vwe!;K4pYkdW5B~gR2erUke-!~7|{UOw`V))S(9r} zT&`wl6xm$JGf@UrAEW}=jFU)7Jhd2obNXz5_~b8(rIfAfR#zUCvVQGUBvhc^<|^Z| z`y>mN7L%Tp&y&C0cRjl7qOa!+*;zKeYVM%hH_Ugv-NwOaqb)Ea3Ic3?mAsA&1_vaC zj#MjCb?A*v-#YJIR_;wpb2tIdR0NtfKDTDa-?zR0@}ebal&@IGsoIyAS^g+9W|jkR z?Mf3@nhpYxcTX89?f^f!qr!;HSzOGz1Gec8QS2(+X61nY9|qkpzjxpcXiLk&SK@Tb%H6|3i&>(|Zq09C+|$ppqr z@h4~AuImmzWq8`hz-*cW07DOP=~9fQv#r=%Wo&rnDNJ()0A}nwKdXD4&_IYkKJgn; zQynyZecot0HHgptuq`_`-H1iL9(w8L#ce`V-9J?d5TdGIuDRp$jWhF0k8atpwCU{W z%mW|#Cm7C|na+xuCm9%sa^%Q2L?RN?G+DDIoxANz5m}PL!eU}E7mD&NeR_!+G5iE{ z!&cz(m{2@b29oN)7w0{EalXISUQoDm=eA5CqMSW@7DZ8zQW6YCX>4?(>(l zAG=vsbvIGN#54;T_MWG;&8s}PAfo5YGKcjD9wjs5E>3*@?&U}7>O6kf_bTju z^|vTVc%vRzz*xtW5)Ow627?q97P4y9D!g7VUayx;n>Jy$+wpq6__duC7Mcbu>-m>8GD2CntwUB!XcWM5EEMaZ*Yp z2FeI%Ksw+|QU~#N8=&5lz+_puawRo2H2~P{cD8QaN@;27b#_upB?>k#qyerZ%}gSs z0orwIU^*!*9KU1O?RK)Wv#+zUEK7}o>WPEp6VJB=n1Bw1h^HrXOA+Yp?Pc%Yy<^{X zb#*j0HeP2ZrBtI}3&cImNvMm7-m8Fm(+EVPQ6iBDrfJgK+sm$9y9kHF0Mypja^l2^ zu{AKdLlOj(7^r$Y-yWsy6lX%Fz2@Q>c!^E>dAAQ-pd2@%9Qn4&cl~StJ)z!|Lni^+DM#cof z;c%G!`}YS9A3m%zh3Mls_Y=Pjje0+Jq9qgP2K;}mt7{vA%m6qeV2gt7^VU}DBSld* zZ{F-o1~_=|U}$LP&cH8PT1*8jkuomM&NaRE z+H0dxxDI?Q0#eGifyDqa8nvRmy#f8wB_rJ4ZkVmDX6l6tF2}duRvf2E2^18H&ijJ8pRv2kzWvVuNwkBrGa40sLqN*w>DJjiaSy``41r8vj zlr_Nf`29K!4MXhT@3Hpm@g+_VCGorsm=}ZP@7#5ltHb58J#+lHX%7a6{BUwET+N1v zme^L}*=IAvrcExTveK23m8A(G-V;I`xDkQh0jqiU-8No)abPN=1c?k2elVbErKj`q zoXf9VG5g@mOlZx8pqc=muuXRE%;SX@<^%r~LcBiJ+~4asPE0%^peaY!{cEmV$#lbD zF?8oa@V2B?eXF7Z7l74l*;2~Fg%0-b_poP=Zwgy01+Lj3kOis}OdCX|1b^S>IS1qGX0*opiC4Kk;+5|*&?=`7l-q^o$W{Q5 zQjT-ZPd79)%$D<~%So=PYM2nRRR{r-&4Uoq>G60@SK70z0w|@&0bp$6cYOF=FaDnS z3xtrcuInEyn*dGIUe``4k)srYjE3^H08)bfG*?by3J`mm;< z9a73EMNy7b%c^1p7-O()8>VR@lgXH>s@hUW>|FmQI#zFh-~x}QA3@Ek;GE;&YwzHd zHQT`$vxN|+s*%?$fKrNVHjDA`admEP&h}6b_G~_Y#=2&3&LKF*#_(qB-El`!^gdCO_K zM;9(!xKV+85i0fo=NybN2qDnc)`qUGE{u$ffDodFLZMYJiVd`H=f@C2KnMvbK7DFzVLoSyC=ls7k7ka=QyHN7{ zNRh8XMFFO1!m=z(PEH~ci6EQJ0syXDxq?I@0nRyW+kQ%bloBXi-Qpgo+=TP<^T=ki z$Ye6GEDMY+9Np;XXn}}x4k1LT?T!HVL+AWiO#%$VfMFPgO1QIh1PCEODTT-5sT9f~ zcLP9`Bk1evt9qB$XzuQ3uDMv&pJWw?-Q;cor7O_e+k205PII}Omoer&eE6`kfB*iV zq9}_5o2Ds-hKBTkfdRb?xic~Vb}@NL0fU2sV_0Y)AAkS=Uox3&p_HyYa^y(R?K?a? zte-n~ZXz0uJ}E(5j(m}o>Ku}XCohDiQmO3B%#63Ktw z%*om=M_x{VbbaPdHma)Ht*x!RrKP1Iolf(M7cVBG(dbm3z;uy2ne!szl9xrf*U;HO zT^s4h$jDTEeSMG+5`6gZ;Y6O;u0m3h*s*H2hjak|;Pd&^KpzJ2=%7Bb{6$P%b% mOZ{_7i^j60eP++BR{IwSudOf1wcis^auSf)9f@lI4rbf6>`H2`8A}vrPltR${AQ+@T*~-$L&g|^$ z%sE~#vkcpIyG_6=-sH>doc-p!@AsYeoEdls7#<#;ZWzX*hcWkruq^AOZQEJfwzHOH zb>(uoRHc0JAju8GSR{m)r%)7R9w9_38jT+P-vsEo{yo6Ce>(Z3t(B{H{zB8V>85EO zd|(0$!&qyY<{r~D_ZWupUNCN1*6%`yhKzNSUB|ZZ??{F{?Oy_*Y1(t+%@>&rxoMim zbzNT=-0Ql&+As`+5FZF3=D4cJ_9I&v&SwFb-*nf9N~yl81*~1WcH>xy%a<>2mQubX zrQ~SuVU$w5G4E}P#p3p8G+HC2WcTrHT)No+!3>@_d81OiT0EdXHe-o2~J$E1`C zbX|{hT|33Mr@tZ|t7T5(T%LV=ZUW%vKYpO|@8iT`Q)sAdbU$42F&Y|D%AQ0bv1L2~ zReM0wv^c=v@C^Vg$K>nZzQC3ie-57KyUuR_h{tN#^ya5Lrq?2+yc&+5#*7)vo;{nl=B*|>a+_Z+{>b&)*ZBOW&loZWk)A};HMjNkkC-*>X_QiT z;_>+N6BSmm1D@wmEEXvg3JeSkU>F7fYZkY#D7hF=T*>rf*uyBLShKi=7m_cdl#;IN zuAhi}LIDA}5Q2O@PiJQ*hGC#Z=davd-bx_= zQPBgg>*9GHQc6;(6rShN(a}LP8b#AI=FVKmmUp(7@|9AyrfKa`N)aL{hYZK04x;Af zW&kuzBNB zuIrM`W;t-+K#8oQql1eVFXA{($tMA%lo6i@?r(e01wl0)ux%ULwiy^0;PmO!Se6CA z;lqdN>+3^GiQ_o9u8ZrsrRS7VI`0B6sh z4JsW~eF)*@4GVDmnAn7tWnr2o`Fy_A>M)d2NGTCQpzC_2smjS6s#${8*46_P%~}P5 z^>+Z2U@oVQ_1OUpse^CHD!G3L5%&AN5#X02Maswt63+?Q|L zw%ose|Mj-Ewp&$@TimO@WSUU|_U+rZ+aFH=(}AgjgM$l%5U;IYzdjkxJ#^^M%^f>- zbar=lUkXhcc4R<4;tO!g{%0)bXug0cKok(SZrvKnX0tWPWU?-mN+kgL`}=cSw{Gq4 z>gwwDJg>n01}g%E5V`69E>on zR9O&<#je-X)EE~oT)52LHV5k;2pIKDC1?{Rl%f2yYLu%V;SnZ_{{W^tv{r`bKMeo? N002ovPDHLkV1iSir%V6< literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_new.png b/public/images/map_markers/okapi/cache/large_moving_new.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c0ba1c7616fe4697390f39239a6595aec9b85a GIT binary patch literal 1660 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_unavailable.png b/public/images/map_markers/okapi/cache/large_moving_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..eae4d40946458e73295cce9561a1eca44dc6cf40 GIT binary patch literal 1528 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 KMNUMnLSTX!<<0~E literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_moving_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_moving_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..5ade7ea1f0454e786c81f1316d8ddf43ec5d35da GIT binary patch literal 1543 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 i2(&4RlJt9E)cynWUYn}0A5QTA0000R zS+K?Grpx{{VZ+uNgyapI##L3NN{U2?iiC?PX^9CXB<2zGF!=46E@m!w488{1NL8hL z($UPF*Y}+{_sk5u!+#9V$%fI<(PwXC;aDs-1RMaRM&o?-8l%zZC;x^#5{di)+ys_@ zoeK*9SWC{ZwZ42I;>*{1>FgUi{sdBI&2bg5wZ6<(cfV6XlG;uNOaek%6&}ssHwByv zt^$q;Q9~m6~~HMc=%ZL-Ryy;+LgT8Ilqhfw0Ro}u+h>2i6rc2I1Wo<30eZG zzf@LcLrUod0zfNZ0YSrBb)O&bolC&ypQ-ZUjMMh>419T~{&+3G0>UROWC#iXfpZCH zZBZf;OHeGp(|PD076Zx{FpgqWi7Gh*{@IN zQ}=3(5S#oEbweKNZ}$*fzShg)+I^>?89dFkW15V*&~xg*B;V5l3c5|W3h3+`y70x~ zf(mNO_q63~a&Wl|B9X|7l+r7N@JT6s!^6YDk&%(0Wmz>@lh5awnwmO{$KwST^0Fp8 z05UkRsY-}uOj-8&K&P_~AtSl@nENidqzg^(O z`vCPQvAwUD0?aUCOfKpL4uQSx?d_F9q0ki$hugZlyPE-$$z*AKe0*naZf;%(@d|hj z`~_?PuZ=PdYy!JlWYr|AC!ng89s&EnmXtDGEEZFno13=>2M2?eWqBtjCy(Os_(CR= zSpky3@2D5hOJE&%1#B7K=Zzg|D8PP#lu_}@0(;qPcB8$$y(JV1^{3Nm5sgM)Boc`^ zP5ztq{tYVD`#67mR`2L3a&Ui;*l{Z1oNu|=+1UxpvTg+ef!@W%#a}e}Jn#Z1z9#Gk zn=9(=fDQX55QY`YloVVlK(95?e jz!qU!O-jAP{}O)#Q4xr^@oRr^00000NkvXXu0mjfY~lP- literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_archived.png b/public/images/map_markers/okapi/cache/large_multi_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac7d34d5e9d525aee6e104020601745819dd2f8 GIT binary patch literal 1510 zcmV#5 zlgz~E{5vz}*^Bd?&WV{xVv84recx@N+y$%bZoZw1%7~rJ3vn~8jUVrzMNC1 zPO)IY0_yAQ*|TR4$z+mUyLM4sU2OwhKj8hdLsC@Ijj^#Y?bxwHwY9a{xN)QE>gsgn z%o$0tB>nBl30exiCj(7QO*iHuV&~4COEzuV6uxxn5_|XVC7n*QVZ#QF963TVnY24Q zJJ&TfHhu-d!Ci+e$RjV`q;mJKZ!(wef#!NS64?%OAD>7t>p80 zT3T8*G&eWDzkB!YKlyw<`>89?dFDeYjx>zp?;D?Jk|Z5Ca6oIi-^U-0_de9#QazI510pFXSIbh*J=RAI8sn|Q_$=gf6(MgfHa{Q5OW zWgsyDkqE3_<@oUl2nONpbzlqf7O-H-<9=Ws#eKjfP8pkBfX@%r)lL^u8F-wA7k&<7 z3Fm%A1=Wwzqx=H{D{{I+ceBn2888mbx_8>>R0(3Dk^ zPN!*WYkSnu(UB=bZW+Rdz&OS1zdxR*321L`uLD*CH8|^c@$K8USNnXvH@0uzUgaHo z_Uzfzi4!MoUcGvCz+~mlcAH|q9|EJE?DJj$-ZtWSIBQ<;2uMD7@Ze@9lc|YBBGt>5 zEt?O}-`}4*e*E}ocXxM>ZQJ*NTfn!#5OCk)mj4&}cG+&<+f?r*8f zmoJ|Pg+gxxgTWPjeSPN*c@NINg4#vxdlGm*AhMQa-LP$&!NI|9oXl^T zEb}<+^Nv@k7kg2D|0)glka-SgpLhE^_pja`DZmxs+LR^rfBYozKX|V!U8d({=>Px# M07*qoM6N<$g5$^G+5i9m literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_archived_found.png b/public/images/map_markers/okapi/cache/large_multi_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..d2631dc094d57791dadcaac9885828c1b763e12d GIT binary patch literal 1551 zcmV+q2JrcbP)j3I(Fk=*<6wfRr)->;hVWdEg^OQEVw?$I8meDd0XSr6r{t^E~fVQ&ZDY ztz7C?05^ahA;gZcv9Z@n`K$g)Jmpr6g`*AZPPSu@BaP! zBbH^|I(zo)WMg9^$z<{;rfD`W9~0C<0pLzJ9R5WujJgD}>Cf8^K7Qk26hMMh8Ur*mM-H|= zL@=IHUmt%B+n(pjr!SG0D>NqxNEx#ZJ@h0IH9sNuv5=N!3 zk3gagwsjV-Kl~Tqfx7aNDZLpts;XjNN56#BfJ#dV*rzXAaR zc67tkC(zRapWcL^VF`EXoO$(XgSu}IL_!4tMW(Ln>LtK0DK7aJ6LZ}!quuv|Q-FyH zNc|HY+*Qix6$G-dYMFVSS6Km_D(crJAphff2-@y}zl}pU1c??Xc$5@_@KF##sP#bc z?G1HX;NFFWGYl#!SC;(BHfG1$<7Rcuzn}cW! zwsjSwnS%xc9@trG>X)~hG68>k%KdlOML*~p5GBPkQ5Q{`2t0tCh+v3873)axkkW~Y`99_Vv1g}b9czF2l6eo~D@!W6B&CP96 zRdwspqeo-@XGcaxtTSiM%%oDOJ5_*dfv+;H3Uj68T8W4{KR>^m$z=47jt--+XK>Dt|vKrGgo%Z&2Z_}ntO$!SP-r(TiTq>2CEdkg* z@Un8R0=Vj_sMabd5AYwS)X~w=*>E@J{*t?`=>t!!XQ1 zAmCiTe*F$bg`Ur46|ZX>{Ww)CV$ITiZC~4Z?cWxJv8TWDc^Loz002ovPDHLkV1f#Y B@+<%V literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_multi_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8a213a46a0e34e519e21599f4b9d0ae173db34 GIT binary patch literal 1594 zcmV-A2F3Y_P)`6pHR9J=Wms@NU*BQruXJ$OR>s`Bs0I|bD))0l@x)%pRhzJQz zB_4`Q8wD8@YW3cxsmMdCR%)r#mjqQ6ZBb>3h$2-XQR}KkRB55A(tuPbxs=3gQBlFw zZgCxq&Em^?XK!=%oIdO<8P;B3sz`mwCw)3I-<)&)|MNfJxeWZDP5iG7wbntP2^beb z6n*ii>$=T_LV<>ch6^7A$=Sf0wANqJTK`0A{RORcqZi+t%jHJ$`FtUt&pX*{b|9Tj z$L8v5(F$m-Bfv9CsmCu|xWJ}On*h!Nm!*{ZT-SX$zO+(PFX4JIV8W@3+q~G?}o35KWHboUGNEwODk=aW%Ult zL;U>p=b6gg!Z5+M>-fs!&(R!-BBhk!aJUb!fqX5TxtE~^RJpX&pHOZRP&~Eab8J}i z2mw35@MMzd{5a?$Pj1-D!)qVIvMd6Dz`MXZLWr8+^AZ@l4kurQmwpLj!(bQoqvbHB zQ1op1Dl3<+LQ090l8yI1!l&Clix5I(GMOREvVH;l!NaKbg%McM3~OTL=POqM33Zw8 zpk#_Afse5Jp)ay5yqwtbRzCmeH_=*CDwWa)4<0<+-QC^ioe@?IHvnTn`#>N7iEHrC zCm|Syy37yA*Z-7t%iDP2$zDto3`3BXGDF|x%=vmYJqY1Y7FdRlK%+NGze&$4$G2SYVf68jLZJv(1|fbKKDNFbcZ*rH z%HC18R4Q4X0*yW;f@ILi-Y`m_d}CEgSyh03*`b_( z3Q%)SL2e3CDR31mT?)~AU}Ushj!(jk(Q>_8<6xRT-ddYJuu8%~S^i2X0XZiDrC`-6 z$QL2wKtltpZ7r7>2kLBSUtjLMRGQJ;udbg!(Q`Sk0>Xe$s5}dWBIGl$WC^4*f#*H1OhIh|oloz-yg2w-tup`82Yy?A zsBs$h^z@u8l}eWDy0(-u*xlW|va74>o=7BeNBw+0uZ|x-e!Z`+Z)^eJS>7N0?KLxl zK!1P#Q7;~$eD7}@9UW~m3}fr=-Mgdyx~EQ^y3yO)`&K+2|Cg^*|K?Kx&v*o6)pty0 zn(zn&fI7e!8yibaOiTo$(P%>~7K;E34i2Ud95^sIFfb4=l}ZKfOfVNH_`n_S*%eQfefTNHleJcHSL{MC$tb`rbQz`t)0=R4V0-E(1&hIS+_jwiYo33(f+rAzQ2B$Awx|EjL;OaK4? literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_archived_new.png b/public/images/map_markers/okapi/cache/large_multi_archived_new.png new file mode 100644 index 0000000000000000000000000000000000000000..3cdd98ce04efe3659c70c692225aee01c3eb8d99 GIT binary patch literal 2063 zcmV+q2=MobP)^LGZm?S_O z1gI^vPO4O)Q1yx0%1Wr9h#!%Vq9&q5NgDDaRTLE|qEb)@Q6nX3gh=QEhyx}L*p4v- zVQh@On05rYocJPBn%8wrD=w98|`Odlb+DJS3F5E*1 zr~(!P1(VK*EDuq1xOe&TU{5 z0Ly{rf$(&b&{z8@++P+=2KDXRx6|3#$&48@Fin%Eo_dOgA8rI=e=md2{zRE``Pgkm zfUM`?ExR_~&gr$bZ0R)Cu3f8d-MW>XJ9iR|Mp?OXB@GP?BoYZ{#?XuA@X+N&z-{1BlRO>|Uayz)=g;%pbI+k^8VeULUKTRwaW7n=-tXj2-#>Ph8c;gK$%c8Nd(O)pf z`yG*WyA?%orlbIn9)2f1v~AwJ`GR2>^3TJsi1Z=SPqw_~ma!j+h{*2UyJgw3Wpe1y zp==5`rbHqU*|cestXQ!^zWCw`8Od~YiHQGeMIcM%YOd}8!>7S)V%xTDtXsE^`uciE zynvlLMnUKRd-v|8y}g~Pswz?gZ(R)d78qX};L-*7;6v!S3cvmtEV>hLE<@}$go4jd zT{WL0@9bva%RSUBH5pWoQ2kH?Ua!~6+;|}q`SSTs0M*r;IAcqdDP++dP_rakZ#o57 zuBKZU?s}Y8pIyU8?><9Sg^5RnWV8>{G}*IfPhYx!XEI~-4+HuHs=2C836PWgd^p<% zi6}R>;VAGk*ww<5{XzM4nt}3fFRin%c&pm5R)M0UQU-_11EmGp=FNt(#K<*f!i<2}TBD2?&RwwkBIf6X5f~L-pVYSR+8*_~<#= zjL+QzIm3pl(*r0f1Oi!aj0_B=VfHMz5zF@LI(T*WO;;veW~}iPkaSCvskWeWUKOof zuZ%W$LGg|s;~7(T+&L4-SmSXQAmg?il&Tae0C zwr<^eDSMI~&2b!U&6+g@8#Zk42ZOd28JnOn>%kj{{C4JLsoqu$?q zp2q@o0@1(z@jz)hgKnDWwvB2#XdfPL&Aj)X$`emKG48MU{`>D6c5HG5^k3a%O4DP>UDNwW_|qRtdkn{~ylLqow8} zk36CSbaZq$C;s!Uv;7xo-(b2j)po&q5gAU|Rw6Sv7)!Qwj9mGonKqyoh`1o*jE@JH zD?T9P85|7t4}7j)=(*s#cI~SF{FNK#+J~e1k2f0npI?7dt*or1yu6&FM~|xCUDfRu zLe5(smYYdqzBV%ywnCv$vS?0G^bYSpcf@GAa<1deo-v`f_=+e1BJyZ=clUkG&CQEj zT28I>s(p@Mk2t~n8&0?|=G?U?;k&Cc75?{$S!#dc_i9nmEY6*I(b@87v)a_0pSs#x zn6#Z@hK9qcF;b$MRHA&$BiF+`?PtJOd0(xh~S7#%CYfn zdc38e<@4Fho;}31Zj$roU<3+qJZg51qCow9T~_^lUDn?}zG0m{eQ#||O-(s4DZsR% zD4>AF2=PE(#=5`yvX+REDJdj1Gl1jqOuxotq5(a1b#*Q8ynXhb>#<_(-ii+Mf$Gb* z?w5dSlktM7s;IsYj@L7>@l)p(YM)=I(yv7;^@hjlT7aHOor7BsVV)Log8A32a4_l= z7e=j;!X!nZlrys+?aau}?$S_NCy~lmZ^R4K>#-mMv9K0RhSg-cL>snB)!Nzz{Fn&B)!W-!9F0c9gM))1!!UxTY5GS-MtrtyYXBaP z$MSl;8C};6zu%t>1OoAJI2f(+x%+nmE~8FQO>QglYFx`7bqm&qrQQ^Wp#i002ovPDHLkV1hX90zLo$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_archived_own.png b/public/images/map_markers/okapi/cache/large_multi_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..107acd2291139f922daa80b67dcd15e11e869ed3 GIT binary patch literal 1921 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_found.png b/public/images/map_markers/okapi/cache/large_multi_excellent_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c6860595f34f7209596a165c27501dd93258adc0 GIT binary patch literal 1832 zcmV+@2iN$CP)TqcXk+--P!eL{Dlp+0h^elB*?TD0tzxp z)CW+I_;^CiL!~NhRP~`qyjAK0Y1OwBDFTT~v<-DDNCcITpekv=q98sOYA4vlHjXh~ zf9!gP-DN*!?(M_wlC|0O+RbZ@bad{_o_qfP|G9VW%nBA^mUV5t5Ta8EQJsHZDK)K> zy5;w8`EoIJ3Yl0Ou(oaZdhb?WYz%;h5kKu^7SFtmv~+FlRZ3p{e~A<&U|HAJYnt}s zV1NIfxD}?dp^b`F8xY!Zr1BtCnDA&Hq45Dc{t9Y4I?hWePc4;%R+O0#ox%S8JpgOE z_EOor2>>ON2o(mPvUwA0y7mGP?C;+rgy>ufcu@kG)@$41R+##Z9RP$z?hqdBdyx|! z?ISdD2Y~vH9mK6LLTKA8>)QHnO+X0IIefi$Yh^F%WB7XS zRv|>^)YO#QvaGsqL!f$m+@id;358j*h{B}2wu$j^3n5k?@_0OdbGcl{qtWOGkw~O` zp}Bg=;z>kep;-4 z(M=e8HiL@CP}4Rl9%D;)JKOi}0u=!jVf)@)Z0T;Flhd$na}B_qvH$Rk(}#E*euNOB zE*g#ga>*U=`l=wl9Dqyb|C+f5%!)d?XHIZ>3CcnO5bk<^Ap>XhK6Nb~JJM;i}LX%8nJY5yMlM=BAuG|zG`KkGh>M>kPQ4Vb3+>tYy1I{@(H zVZX7lYqol2OOr%vF&^IPGt$D;TD`CF*gwjRp!NG zy?%g=E5Fa|>}*O(`9UdgSYQbN!sBr99GpHmnTkBV9oG`SomS5MgiBcRN3ZXY9_g0j zV=2NRXnSQNJKEj`ps%m*oZs&s&DJmEiz84`2d&MS@fQyP2ejuWE#*wuepfkLTlZ3F zR?|}3!0tEpA%s9FHFEs;@#_nK&+(E+F@Ryf@MHLa1uh?m=YO$c&U@v}Rco~Oe)uaY z%0bs$gd;Q2%DR@bQp%T<7BRV)B-XcO;=SzKSP+$0FMTv?h@q6Gxe&sI{d_1D`0VsO z0Nb`Tz$oB)o-e)wZUfe@gP{@FvvrzOqB;PuaRa2%FgOT-e)wKTwxW}ksI<(_bsT4Y2XqRkFHJyw$L=q}1 zzQ>U>f~3HYk&C;oYX-jZeK%_#vsM?DL5VEg{VH8Npz%M$@!a2M-?f=jUFya3Ol^*s-xdAP_15Tnv1Uxe72BS$AcL zXp@tZ@o+e-H#RmJ&CSgQz~JCu;^@(%;k$S51|7$70B4@UT)WeGK1Y2i0=Z+zR!Z4Y z%IMJ0kbCFOogULPT|GTL*5%8WpG;3r$Fs##Kr#<3r#e*(ychwMH+FJrEXzvO*Vj8W zH8o{ZQ&Y}~6DNX!Kwu&ZkjMkiDR<@pzXT4&AH&>)7e^+b_4f8oc)eb~5W+t^JUo^K zPL%*D2%NJ*9mu!5w?W1X!?4_Lck01|2O%;Fojg|sd_gOHe$6#)UM$+$@9aBUto;uz W=`71Cqo{fS0000;|peOvc3W4R^kR4E*7$a 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 Q5C8xG07*qoM6N<$g1!P1o&W#< literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_own.png b/public/images/map_markers/okapi/cache/large_multi_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..47fbb487bfcbdb3d083a47c07a2430575b137126 GIT binary patch literal 2066 zcmV+t2<`WYP){d-vhmU8XgPKED8`<7Vgio7J|Fo- zPBbCwv4dzr7WqX^`ucn@KT;MH)8h=nfiVDTzf(`h*FD?*^u{VAyOWtI4H#Pr=HdwW z$3}=u`Vl5&^h|~N{TqRepn3r~^!h;nf}S}W|Jc&g!7KqCEI=7h%tv2rvSvFFCS?FV zZ2T?O?Bt&HkBxBn;LixoxD1<*zSyLL4;TP?1qdvPKotBGfV?&H6&D z*$xi<hI#UU4JY zo$T0AZ`;286Ceh0uWMyxZM#x z`M4d)?qtJeCj*`B6t39@fC5qwq;E`MxX;Co?Z2RGUpb`L@z>wGIQut$f=yY8l|w(W z!t~!kadY|RFJ}oXRu;|!kuiwegpivv@|ea%i!W29VgSlYp{mlTU%vsUb2>8#7q1xK z)~$iG#F0cD#E>z*ltfKY6&EBBlZ*^#YljIRhF^7P>wt`C+=Rl0#zfb3F#_VG5m{D@ zBo|XNM!N)<7DZrFjZt2_I@fmTDm=3#xxKFIVi=@x$ixW6nA+k9$$-2l0_F^ZL|X^U zC~)I8tjGqtExEm>X{IokdaUKA8ZW~N1aQ&7s`)9YNw$*jr6b30^ z0OiDi$IssMcmn#IS~H=n1e(u-%?gDpVJ5on;V`I?1Oj3NOo}nfc(9>6%J1JU29mms&Of;;^u=Ni&MNKdp$i>qtVK1n1Vd^}1(iMDAe36xZB zqoi_a2TKZ3F$+*zu3eTrd-hneva%AQW_o&> zrlzJqb91vo5>e*X+>dchi_JcE9wZPL0Q`SBbEeA!wg6aWKnjEOAD2t}R20RAh6YPK zz`1khf}WEn13&KUR7KE)xPcW2^uqlps3&grYCM72trNSHJ}fL;|FE|9>G2gSz7-Hf zN3Nl<|i zgF`LQ)dlx3UeTWD>|-JMhzE3i74V`x64{b5JuO;%K9kq$1+Uj<8yqwr9vTXrIDJ}N zw{D$WP*A|dix;)$rlz#z1qHOPU+=e6RA^S4O*WZK@@hfIt@Qh~(%ZM&jvYG|^TIsv zSr6#C{u^K&fF2HO;h~{`;&z9oySqcG%cZ8@xnnoqy<6S9e7R-f$Prs^e!h6^op(a} zJ3B+}yu5pIb#+fkO-(4%=`_iurLyqUQ)W?;M3c!xT3T91c6Rn#$-n^wUDx*jujBVC zw6=O^YVv7~jT4%&P-3)P2CRy}#^akd*?a7E>HC*2s~J;M9zR?whp$(_j0~Cx2rs{! zB^)?l7whWmY1!GbAP9dH1mSEd0zU_~@!oq~yz$0^WJXaESt@+{fh-qa&&#uH?C)2H z;bsZAa$(981y2Z*lPB{ya%44dRS<+Fy5E(-UHFFpS4z0OsU~6cwejYL$f3DY1IBnbK03 zq9QYSc@|8wM}3DN2yZP&AWEVdco9f((OR;634AID!v7XBnsURp_D@Y4{4nx5H?j;tN;K207*qoM6N<$f>Qd^PXGV_ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_recommended.png b/public/images/map_markers/okapi/cache/large_multi_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..0cee7849eff3d001ed34602f0aa59579074982f9 GIT binary patch literal 2175 zcmV-_2!QvAP)TqGrL~a?(VQ&!?NaOFgC`RY{3ZQgb;`W z2^Nt;ilUZE(4-1MRX>1K^`WL!AD==}wNao|kZ4*#Bt#(;t5tC!7z7E01q^I#UVdV* zy*Bnf?S1b|Kg=vUHfv0!eyP+W9o@V4p1J@3IcLtfvjXEpQJS293viCx@&X<~sPigH z)3<@`z;57kL8wcOJHr7a1fec4{`~PGWz@d0=|doK z>E^9hkDa?t*0;S4*Ldi zmM&v%Wes9}0janJQ68k{mK$&9HD*;V=3&0j_sgbF?anE-$j;i=+p8ANivXVio4fl4 z%%3!!m^*))-0ctkxK+G>djz*B95kw*Y%&T6@+{zld zTTfvvu+Gdc&Wqhx*lz#Hh5bujxZ)aIR#CpavBmAUA>X!nV}A3S!o~?f{^>`78i)D{BDgx#fQJdtTK`4EsGS5N6SB^wPg#sNgR>O>-N%&dEMUz?d{9 zkh-j?`Nhr%aCK4wfa~Is*U`QCT zk6L51XH820?N1YdN0J=z1F&MkHNPOGC{1U8R|KIhF(Cn|(1{Q>18{KvZ;=Ye z_aIgJrka^$vZGu{GH47!9#BMoumA zxBz%~&%-@W0{}B#D9127!t>88O{_>%SvpR8xh~y8Fo2`AShO_HGv2@EXWe%z27mVR z*Ly}sM;h>LuIpW1%sI zr6m$uzAr)IZ;x&O6`nee}`$wyv)}XHnUwS<7@EggZd?XV(;9_&v6)`6+S=TCNNso7%W@ zHz2O8&hyTnX9%1)8F19EFZ2RAFD2vn1)py;CCfGj?*}nOPjcd)@SqpAzX_!a#@e1g z2md(bXG!G`sa*k)@E&YaSMtTV-*+B8dh}h?R{Y=>?;`5(WNj`3k2Z2j>3ncisq;&h zfmBxGVK{SM-CJA%hOsA!8klJUHEJq8kw8ZB^TE>!K_6<^74Y1Ie6@FxNUE9P`@o5z%(6+OeCHz0sw1QK{N)JuBzUzd2V7`MNy0zkX-}L zfa|?CPEJ6{s$_-I5;$=hY!b|#32`m&$t0xGV+e?vhc?EBy?|`x$w2C{GSo|8NG-u+ z8fF$lMLBfdQ^)=Rbq>($1)~XlP3fz^j9NPYF%3AO%@a=~kWNEo1w>-t4}#qeOI_;d z3xe4U&p!*Y0;wc0Wz6Fu>IE%ongNbzIynJB1glleLL>&GQE<+HVXYaOOps^NE)-$H zWAxx7Ku8-CJShc^Ig4nyw-`t)irA)kNF> ziKI|N9?&$B0f!uS0l>Cx+u9XH5oK96DvDyV)cP&z>grl52txJNty?X6+lGdQ$i991+Hc&r zaa;2$^R{QcfI^xM>AX+r3Fy;^?%}w0zz7g{`0!zSEEX%Z+wIn}va&pY*4Ea<-o1N= z+-`TXEX#dB2haob0{yzt3k(2$jbvI6mWx1IV>${1fk8!4yzzLvb6{X#MQv@ZMUo`( z(4j-4jg5^rd_G@0&u3Rw!cL#Uc9(ZlB8<0*}SNw zrR56^ycy^wn_s=i=<=OQaz!8`nVUe?X*`)s-jQXQ&dyFZs^=Y=mnqcr>Ft$V2kT|x z{*_xYm&`QOKA*|&6TSRz63CFq=$MlFzx+?izX9FTbQAw-LSO&@002ovPDHLkV1l#2 B4CDX+ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..d44d3189bd9f99fb08ca4b8b81d71b9e15a16623 GIT binary patch literal 2222 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..a70d9f6f5257464a21f4809e0adff390a2965907 GIT binary patch literal 2207 zcmV;Q2w?Y#P)%S+#wcG_v3srEx_?R088esJovb;d76J5t-xPCHEtDmuzk1ROPhAvh4;3Ivlt zFxhODyzJiH?909P^uzALW_L;OyU)xs=bmTpIsgCjf1Z2pT|u5jB8Tr2Lfs;S@a4v( zlvkuQce&l|`=imWH#E(@-Y}9KhLL(=?%XvK)Au;C24vXnZakumL^6UVe_#cSQQvh}jlxqRVF1T+94)Gfhty)6I>+cu_w zQ%Phh2_yliT(E?S`ew#P&fs=Av6rh1)D0_tJG;+*=Y{!NV|`s)_rQ5&KweSClTqbf z`6WY96whoW(9+qf8)A_O7Pf5!V6-o-T19;`0HMKi*XCtaw_(arDy%Ys>I7qpCY29@ zCzT_C(?rUm7>a>T{}+_EfdU^W7Z5bBoxqeuPTnnnaV0-e3PUT5#F*Ne_okw8)G zREoKv11cD0Cb9B3(k@Y?;MQa%^L&0R%RD%%0zwGiNFYMvk~$dlbc79}XX?_IOqY3J6Fkuc)3n0^zgN`73a`ysZ7k<3->{ ziN`fG)ro0YNF+<1EB7~s1<_;`rp%Ax(5c7Zn0*aL8 zuI2YM5A^pAf{fCzu$~Ktb}~793Tfy_LuYdM6a&XUKwt+fKJ4AchZo<)rfNJ;`5?ZM zc>w&Q^F{hcK0z9S<^I)dS+*UUrXfV!l2TqSS^~GbeZQ`E?NdE2~ft# z!~2No<77*;c-2=>6~V`sj_^w7pDA^^nOCuZd2<^vFxYqYO+LE#J_3QyJD=~behece zNhBh;-Q#g7wWom}6(|58rMYX_-HT3yVjhlsa0!4_cg<(RLo3+u&sgNKS8O@MMO8~JQla!ekbJ6H2XJ;DNyh- zN+ylXJ@0mw4+mq@Zd|f#IgKs%04D$G{wwdE*#m&T@=gL1L+J4^s;ctneZQimu8n9c z#jZDcvDxi-OZ$vX8yn&!C9Up)5@avj?)Lq_{+D0=V|?@GuRRpJe7d&A7r%Z^$N?;) zA62Vi^Rn*{3}2yV@E8N5XF%A|G?h(Dw$bWafnk^o4fPoJ-EA0MN5k5(rA{N2O8lW{ z599~ldh6(!ty>>kaQL;SUF#nVm3JS5&{g>Am!YcmO;V0$QMEe0+x`fFy#WTVUO`df ztZZD(1B<^7C`Na8*Piw3*KaF=r({MeKTy=Fs$qdYeSQ7{V1P}30?Qb~>$rt)t$c(k zPYwRc2EMoE(e%!ir9c1t^9M4?&EyK86ev*4N=l&b5-e{4M=99!-w<~`$D+!`{O;i$ zs46ImAbd4sc`E8UEz44JK=RGX^%)h&+M=fP*mEX53OT`n*ME+YxPlM@Aq1(ZLH7Us zsR;nXFzkQ}aOSxqH511e%+m|1vCVg@H@puuY&}{w41ncG9*KO6SCY3UUZ| z$fYl9sbv)KA7mV9i*9sYwWhAZ0;$IrwT}cqBcJ zO+a8Iec#nFP}LmXQmQ#%*@lC({Mpd}j2Q`77Sz{6JPCRf+-_)WNRN6HY<9Tg_Vn(i zS+G1;-CP3MFI{6+1%v`~=A^5TNJ3l(uNT6ZuQrm@!1nFi-!@HCOQlkF!!R6M zw{ET5v}seV%jKGOe>@(yUVZh|p^lD@;7x$XxSsvBXQqI_?%lgz%EVnj8Q>Wi8To>u zC~LQE+cxbF>)yS413Px?=<4a|xtOzQ?%|UK*E0l+yx&nNG?5`t0@wg07z~ES$HyH$ zpU>_0`&|INy}jXQo_VJC`0?XCrfDXa-e4&pkpmvhT&Hf9fFRxc7LbrqCM?Su?(6F- zTeoiAtuB|#*3r@N>A`~syF#H*D3hHIM1ZLbU^FM5mA>F%Ek+>c{3DggXet~I>oqks z$*QWVd84DF$(=iQp6Kc6Ihg?sXT})UYn@dfmGQ!pf*UkpCi5iI4->7kv-3o0X{k>L z;p^}3{|Fe%0Oodf{tGC7KC1$`Ci5J--9F@SI3lM`o$4bkbGH6j0tIVkvf0nC>89j3 h6zS^E?Q{FA_J0LfwMf{Dbz=Yk002ovPDHLkV1k?SJN*Cv literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..865795c4fd7a63387dd7abb837680a74f88d3731 GIT binary patch literal 2686 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/large_multi_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e10dfc8384ada9e8896c322ebd58fe3d2a0795 GIT binary patch literal 2555 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 RD}?|6002ovPDHLkV1lqQxjFy< literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_found.png b/public/images/map_markers/okapi/cache/large_multi_found.png new file mode 100644 index 0000000000000000000000000000000000000000..a02cc16eb5ab2851850dea5c9501fb24e9dee344 GIT binary patch literal 1414 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 N002ovPDHLkV1f@Ot~USx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_new.png b/public/images/map_markers/okapi/cache/large_multi_new.png new file mode 100644 index 0000000000000000000000000000000000000000..0efe74004c8b78223a2c2157ba8632acd6572864 GIT binary patch literal 1642 zcmV-w29^1VP)*B!?{Gdnxp-Pp@|e8Knv2^X)qcrhZ-5SpYF zC=XR>l|*Vql~lc`mio|#s*Th?Aa9YXwt1-#Dla@lYD3gYAw|fgf*OU3iSY$3HnK1_ zHW+)?yI#+XXJ^jzVP?I%_WFXT)SvXzIXdTe&iDKKo%1{A2mfc03LSTn7|;Q<1Jy6M zZw?p%l2R-4>lrE~{SM$`Kzl*(f~0^Cfv+}8pdHXY_}%;J{{sEoN9P-tEcQJQf#tBD zIdf+Bi-31`cRw(fP_sGeH?mdMniwDMWo9DzT)>TO9qibD901!vG0nC2-;lt}M3OgO z|CM)5U0QlqPnHR6R@P@&04@cqM8E;ts=WM#2#k%wmzQAjG5q2uuya@W z{I#oa@iH9P3$Gnnyh7h7~jdgbGA9 zMc^BUz4l6PaqQo{@W!#q_Cg5R5y;sb5xj@3ps^A{At1CV0+FysV&EPunQ-e4)YXC( zt8DMOt|AG`X1@Kbu zm5m9wMUB?L&K>Y&55%I-+6+tnx##m>J7ol9A&?D|2<2gqP|Q35*z2a@{H&LPc?X)e zL3|I4jeG6%Q?C#3_z5T~WjW;nLZJBG+WxTV16zLIT9<(1z}`6MCZsct11Ll|Ak)pOc$jT zJO^a`)?&RQXl(0XX#A7nKoF#0xlN#?FZ?wXq!fJKCt&(xVod@&_8))lk7W(9@j^cD zt6l(y^1mQg=yZ2?k9jv)C_)J3TEu7Z`oFfo0= zEMA3F@P7GQDKQFpR`vOfOp zpejj-(rcg_==aBX2m$cEq2Fu-1ni1oH(HZB$G*T{XhQ@zxkOFS}@|d;nCm&+@+jjXUv6#baptIfAm!!!@v|U;}a&>A2L`2jX5e?4?tu`%o@63dD$8*}X>s#fgnP1Cwbz2#{^Lz2ZyM6MFzHsjG zRBhG~^(-!FvYu~{ExTUcyEk#Yv$J!gxw-l4mX?;kRRRZ)T-V(%oRcK!UL^tw(0cRc&920*Uj6&uzP(&nNm8*|a9xD!kP{A} zAN`=ey8mtyO-+kTPmtZd4ZWrs5s+OKv#R5EGIhFWr4Y7l|I#(S(K3NU%}=+XYqKN~pkEM2c0+>^A9bUs{t zUM|QEW)Lh{Mh?Xg!9Zp3TZ1nvcSk$a=~P^O=e?u-z~q|F!Rkv`rOb$E_?fLmQ=+~$ zWjEAjsf*>rmTE)16!uPO(NM|c!t&gFwfrm{Wj3uTsjMbvjRs}OZj`&aj$A!_`0z+u zTie%?BwbjSfKQ?c=rRl=F)}i;b!uv=K9x#o3kwS|UDu`vL?YRmnwoh{(^AdN&9m+8?N7tu@Bq*+Nz#+`j$qXv=DMyzv4o0IUP2X$Nhtp5 oI>nD>9`DtgktC^N+O3rT0{g6;6;mlNX8-^I07*qoM6N<$f~4Uu@&Et; literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_own.png b/public/images/map_markers/okapi/cache/large_multi_own.png new file mode 100644 index 0000000000000000000000000000000000000000..611971f7e1a43bff10d4dae7ca78f0dd8e1e0008 GIT binary patch literal 1496 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 TW*3V@00000NkvXXu0mjfoAmYL literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_unavailable_found.png b/public/images/map_markers/okapi/cache/large_multi_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcec9d4d31403f25c3e2c7877302e21c5a3ac04 GIT binary patch literal 1545 zcmV+k2KM=hP)7l?WnQ zr>ayaE-(22p-_Z)sSr|-K)mn}Bory4k3mS5pvYii;Y4W!az%?=ZbnQ&3a}%J0JJ*u)Afv-StNW;-yDAy0f!$&j0^E_ueyi;QwsmqXsIabRZ1aLI^K# zKT#@`60YkKkH=^KCj^vIVc;Op4lDq-gb=n;s%vd+?L4qoDP=09Uh{qbd`nA9zELji zBY+z~uTrXK;nuD83XzObYQN`sUy`2J@cfn8H$WBl&v zr?JPx#9}HdgW(MCG3-p^6A?FH%;?LLWqZ@l;MzJBzvBE zs#kcSGGdp`1PGr6*0hCg=w^f0`!NL8t z_oS4Eg%Gjqd#~}*t>1@J(Y8oW=OL|~WH{X1%wJ|+Ci~8-gcAwcTD$Gh*X$KDsRe0OKP+J-oX7e!BX5U*?Iu?OprQ@7}qo8?H1~m*;ry`JeEuqu(Wm$)Dc- z10jJYif-}LBVQ*Hii8!cM5ECkH^SJE!0Ph*=_kK&`zQiXpu~M)np$H|wm(F3($dDW zFHkDZ@#5@rtojzol!GE>el_!LQncW^ZXwpv@@vWqT{gnmco(Qjr~)Bx*vg-D1U`NH zALr1XhlnIwnJ+G4tu0CE735*K&w1*6utMj(}jJ>BK& zx84SP(AIuYQ2wkJ*ED&g>zIr+Md-f2gZ|GR2c?>EUY$_0tTk3>8 zl}-7^&GINP^&i(GkiH-OHUZHHq}ssssVD{+pdh8xHUcHk8#bH*?;b2J zgD;_N0d{u6+WAA+l|XQMs`Kw{iGUCgX)ez~sRVWjT2oM1E&t!7gVHPKy3G%Fvc`c8rXb$d zG569a*EUUC6SE2UI`wQ+fiIl+!K>Q=-vl@a9wbn|0;f-(zU}+I=DM!#d7ggq+H&wr$JHmoJ;c!^36+@apIRPAzy{0+%jb`a9(XWKcf$8}sw?J2Xw(b?Vfq zMDW?s(NXilg$uLUY<8s%a3k<_7OKNsR6JB6qAe^e6mz+p-qqD*ba!_f0F#rG_PKNC zauX91^S(p;XpxTB!rIaV7G^eMh!+m{ykytDi8Xg`ljE#-Gx3siW ztR#1UQUI)~+Gzydh=2-Q`&BiCLc!_i=uIl)Pw%w0Yt!8Xk+K=sH+p7H=)kUxFmh*P>00000NkvXXu0mjfjNSh0 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_multi_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..ce44637e943234b4bbcd43f89b25db9df5578ad1 GIT binary patch literal 1590 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_multi_unavailable_own.png b/public/images/map_markers/okapi/cache/large_multi_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..80fff24d91f5f37ded3227ac09fb9f9d9fcddd65 GIT binary patch literal 1934 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 Xs~ZEVX|LC)00000NkvXXu0mjf%+%2r literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_archived.png b/public/images/map_markers/okapi/cache/large_other_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..eb80dc8928d262d924e7a3b5de10ba32750a32c7 GIT binary patch literal 1444 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_archived_new.png b/public/images/map_markers/okapi/cache/large_other_archived_new.png new file mode 100644 index 0000000000000000000000000000000000000000..87967a4097923d81dbbe92c0b6c872fc6af174af GIT binary patch literal 1995 zcmV;+2Q>JJP)hhxOC|fm6w-OeSQ5T1bI9j+OlN}RaaM&q9{Z}rx#jJnp*e;oB)ae ztOSre?~LIJC(@b+D=I4TSFBipix)2#;IfFfW_K3`KA~UFbwhV}$1#w|# zV@(hQSglrcc6MUlzI_-S9fjNNMngjb3JMBv{``5=)zyK^RrciUQ$Hr6xEfNt!IqX5 zNRk9W5MY`nIOoXC%|&HpB`#mS46oOVLx&Dw`}XbNoTI+J9&WcAO-)VMx^*iGm#xYJ zU<07N6F@i|hH080A~42ankHVpe2I~f5xCuMY~H*Xm6esabLS3vdU~*X_imgxaRR-) zy(lg&Mqu=d$0@cC<`rKMz%UFD5lqvBVHjYHK~+`UxN!p&6%{BfEX2*5H*xLSHTZl! z?A*B%Sy@@ITCFTJb}BUd?a4ccqu6jg1>O$^hW;c=)aVT;>OUt=q=+ zqCn3h>toPFz-0c=__$B)@r0k>X-5x$K>)*1kQnh;fLyWxa9YO4ov%ml%a2|>vJDNr zwD&z9Gpc^zm4CiXlmFcCxmZ+GguJ{ww6?a2TYorUCph^RU*#F9wp3c=bTOyXsitM8 zd6!v72Zpt_=iQ#qU(5(S!z>d3fQUXG7#LXF-rl~ltLvNfR`C_L%fsA}IL2M6K3=%o zZ!0Vcxc+@>vH04*PfSZ&jP8y)zU$+5v8_EZ@NzI!HF-LM6E0B;XNU$%7gwz+xwU%r z>i(RZoX*_b+`r8w4gdlXeedDJhr7RQYS@|W>ND1?@EGepe8wnRNC*H45Rm`}65u-9 zP$52kl7Zj;>K_orAk$Th=43!ivV&W#fFJ<(x<8N}JT8`B`HJM4PkwW;q@<)#5QN^j z03-l;ckkXUEh+d~+y0|_Q}t9305Q7fiNMK3fSa)W;%8mSUH7w)l@-L$0Mw<~&{C4Y zEn;MjAOMwXzhjkazhi&@=NP+pZ%t`QNl6}nc>xwQK>!4RAq*uYA;i|LekS>S2xX)q zuqXxGVtJcY<~9kyi}LdFt}mM&d^qAum)5NC7$2>E_GZ2a5KV-vfFX(yZBB5jWp43r zy7Q&`kBa3XZ;@Q{NqHB57xOv?ytxSzq+#wz9APepm#3$CSw^agG-rS>O4fN&VkApJ zU4}o9D2^$~;)u_IQJ+ilsxDF0Go%TYDVCOg^slnAvi>DYmUIe&&>R;a3Xuh%RM+*A z{{H^OgM)+VUa!|RK0fZ$G|gcchCLh(+f37x0Kj6gFss!Xl4V)5+wE#fN{Zrgxx6_! zIio9Au6&)CnD_udmmmnQ;-x^C-9bbWfJ{XGWSr5K48V@*dmWg*(=|+AGzubBZ&(n7 dIgj0J`!Bx21)_zxhnfHY002ovPDHLkV1hknu~Gm4 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_archived_own.png b/public/images/map_markers/okapi/cache/large_other_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..b81153f2714fb9d074075128157ce5ce04ddfebc GIT binary patch literal 1876 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 M07*qoM6N<$f|wDGkN^Mx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_excellent_new.png b/public/images/map_markers/okapi/cache/large_other_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..bf68932655a9398ae6f20e6a7fba18c850613eeb GIT binary patch literal 2137 zcmV-f2&VUmP)BJLi1ooSBuFfjQ1GAK(Xkw-gNlXC&#t zp_#NZkx4TY-q61H;B%_h2SDejO7ol`LC>As``9C|1OND{Ad>=Q#GmSJZF@Bu9L86- zf(1)fBNw}|6D7!En1S;h4E3L)RIOs^+WUSFymh+}Qvs~+Zf*MzV9A zJv;xO0{|>td*AmY>A{a~2SA=g+y`uk28UU)W)lEcPJY6``HpPN!1)fYocx3_z-Vw7 zU_++v*8>3j?RyVC=c`+R>_m{A2s^jG#?I}pP5Rqcw}SS)2cILIGhZ9PclmOV>iP8u zschOtgj7cL{CX~54#N1AGNrku3rOlA09LKrj1|0?eZG99A4RPv5feb@b~I-OpoNA= zMKz>o5l(5G&5x}FR)ReWz}8=E0l*l!8KZ@6e>=zmID>eBMqn}ep@%%>KBQ<70DE@r zz*9c)$ZDY>p4##Uj6_d5MnCkBGYCL0&?D6no)JJsd^@0$I8mag>**hDqv7saJmo&N z{%+6s+RhdB{pBr+z5VoGGEmfdNPP4Fuo4IYF97XR0pup(VnBWJ#V3?!UtTK8>ngP~ zoju4-1b=fQ?R$Sk;KDKN_y~4Tn^U6jMMKR8F_E26|sXhDhQt{-APbjuc zRm|Y7sl;y`fs(PCS6_X7p)7|v+<$|P^ytQefXOjS+uBtj^me5 z)Ozl}{}IocH9zsRw6yfa6DXQa#q9v(nGkL^KD~|i-~2n5-|fcV+{mWKm!cG{0>FwJ zT)LFvz`NZjYCRjD-iB?vv-Ry1u6TUWMj(vaQ;C?MHqV5h4 z{vZ69zP=!Dys?jGo_TgUz1sl*UAHg{o8e)Js^*Q%zc2sjh(;5%wGDFpdWdj%e6l-V z7r?SC9LGV|Qv?DQwr%H?CzDBZT_+li5{*X3)fWO8vYvgMdz})%G)+>e6vsG_h@)ojZ4C%lGWrgAf8)mT^r!o4MjTpk=NW)2)IXJ9bP}JX6aR4`%@4 znP+0k9QZ$(O?t?~88^nnA%82@$8K6$TKdzOEL=he*SdAmPsoaeSPt1ZF(D<~7o9NMpSpI}h>zdV%0y|M+&58Aq`!lvD~iC2)QC>ACokBQjgJ zZY{~xIC}J`k<$KbZU60AMUoJ?XQg3cTuVqqUnLQmO|cr+T) zx_goX?VWT3*MQ*+NS=5;z&xi2@D@a)-s>Z$m5YNHivoc!-4_N%t@YmyDqA)h%Imw{ zksBHssI9G~wY63L{&%jr9lT=ihqabwEO3>1Rom|ET{_4xyZ@{n*V!@^TMD%A3jxU()&bZ3LE9&ei~UyuA+ zo-=1IXHV`BPd?fyf7V&7e|fE3ONk0%2~{?dm9k}5$V-;^+m~6kb86nadGAdm z4j?&>bJw|Z=YD!%->xUB)eF}0`X1|^yRX@_RC zun+xn)IM=yd6VDouLULrnARi-B(O;mE}a#(?^$-m6$ufqEJrUZMHCdwq?L)y1q`lU zy}IkbzB6~<2vxY2*Y{YfmR%V?Uk=DA;)P(zGIEg@QCKjs_~&OAx=vqgR06>UWz*)> zUBKX^orCd7ILkFGJjFL`)e{sI7VO3RwH8nLOix)4xUR+#!2I!I` zY06LLasLrHj^hHVNWaN=GhPC?xp}U`%`@HL=0OuCz3UB2k~HD6yVd>&D)a-S9TK5( P00000NkvXXu0mjf#2Eef literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_excellent_own.png b/public/images/map_markers/okapi/cache/large_other_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb9330509362f139acc911d6bdd7848a4e3a391 GIT binary patch literal 2011 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_other_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e32e4784c21b0b9a715de92579d662cf4d503615 GIT binary patch literal 2192 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_other_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..c5cb4142eaa4575cbe7b0ada6a8928d9c13853a6 GIT binary patch literal 2623 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/large_other_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac2945825185d1e92d9ba5c4bd4bec9d5d7c245 GIT binary patch literal 2506 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_new.png b/public/images/map_markers/okapi/cache/large_other_new.png new file mode 100644 index 0000000000000000000000000000000000000000..c1de355e205244ba2b3d4b963ad5c191804a142a GIT binary patch literal 1573 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_unavailable.png b/public/images/map_markers/okapi/cache/large_other_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..e5bd27147d1ee0c065e7ce2f40655d52e9356569 GIT binary patch literal 1457 zcmV;i1y1^jP)wP-_vtDpnsN7zh|a#fP|%v|1M%KN5{eHpyx-*{|81 znZ2hEJ7XrAY)oh#gdR8yd+*)*|Nqaq=gb}WP)$T;iAb@C(_q#idn%P(uzNZW-A4hb3R>XLJtH_PwawuupoiHQ6>(SF`3aCi>1eX?vBpRQib zow_<6T)Bew;suTS_Y>{!XVtD<_-4&gz`cn!^GtyNBC-}Zn~FxixN+zZ-L0+6oHq|M znPkJkgA|vQS-^4N2am^-oD_k|%F6clA+dY+?!rx*Hs$pPgEUlElN=sq*_JJAIB)<> z)70(Tw@WK3D*ghDNvW%>tZYvt5|YhRsgx+CWT>l4E^gf_r#EhtKdP#vzO+>Sym(PW zM7q1XZ`ak;eK{%c_aUI`x+tY2+}ul?Dh<`ua(wx6X+3*Z(xxc` z0|UQ`NY-=a%Qo5A*oe>P!{hOgPNz{yQB+h!X=y2sZ`@$`rhJZ&5zP|vxB|!p5>p~znkMOV8WF*=EYj&TJv}{y!(mqK+{x!txRCwYq&(c9a5tEi}GTyU763=P9T*LC9YIMHa7NF+ii6r#DgnVxVM z@4|)Lx^;_&h6VzG0H$g3aeh8IixydT@7`_LyLazzHipmTUN>&m2>Z$X#hEI2~}>-O2D!#Ow%Nl zN{u4mm@{V>#;CczzCOz|%^YAB;D38tw`V0VRkKgNA1GjSA5ivh14vFA0i~1=m=6@X zfE5|lNitR81rpO00UwY@CIWAR`xuFYZ^ANk@;}xYuq^A%8L%wNO~6Yg|9On$+aROb zNr?iitYsLB#mLFYVc))el$4Y(d-iNppIO>ytku?IbSPV_mxOwv?ZEbCYLLshSzfNmwD?>v=G&VL83Wd;heXPHGffdgU5h~{WO@U3XUB+ zmTmfd%?+;E1d{fcn#zr6vSyJ9xn_I90f%u~@s1rko{ET9DdiIpUwL`?oQjHyIex!? z6k%Q0xqSI@tf{GKyjzcH14e*BM${{3!8-)5UcFidlmNxR0$_e;XJ?7W<5{tN`}R5R zwb!m)OPoA;^6CBi_y4g~Ikl)5$#(>J^k$z*XsLBZU` zix+5Db))+1G<17Amn=X0sX*`O)~8U8;d~NW*P^EfdLWeOQljB z{r&x`*REYV$M5%hFI~D6Z)$3~KR7t}6bJ&3fDWJ=cnS0Z11|NtD?(Wbi2XFltRMteAJHUJK!+>eZa|+(>?(b zEiEl4{eJ(7+}zwH4o(^-Fs_Xi0msC4_XQ$lnr6FFijIzs02$@a zY?T(7^tso|SR1=-vL7bSOJ)I?-tOc#tIGe9fJ4IZQ6=@ieUSDq>Wpj+Ua-dB00000 LNkvXXu0mjf`}DN& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_unavailable_found.png b/public/images/map_markers/okapi/cache/large_other_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..55f2533d457657607a4305f6fddf7c089f49e4c6 GIT binary patch literal 1495 zcmV;|1t|K7P)W=8Ly#002b*HjVW4;mcE}km&3LfK34E z=Pc`}JvD_pzxJW+tM@Rbk7|UFGSf6q|7!r2WmP$jvvXs8ebdXQPgmbKcMgM>E@4*J zk2|`)K4p&M(%?nR*wgs@htIt9uorU0Q&uBxn&wA@kOm=y7E;xs+Jgt{NGNozpsZ|% zqwD29^Kfyn12%DCyOvo~w$(`w{e8s%M~)n+&-US-J$uS6%X(c(iSLKMfvT)i8@KEW zm+#*FmaFSg+ca_Imy7u8@5c~Au zy+dDX#gPr++VX9*1Vx%wP=FstzeDnmThQWhY*=6Ey!+aRaZ0EzrMwf1#kz9=tfmLz z0FatZDXOwgvuuNY(eo*6*T5rx9DRTGK~Yr@+egcew-FA7H2~9*NaW*uLG$)Ne}Dfc zp->2f5EK*?Xk}$((T4Kfn6oWWukVqtqhK7cs=L#!n>#OfW z2mv7^q?F^7(n}*FBhJ;USC>r?fLO~`4A1k#?c2BYnVA`n5DG#lQmK?jDeVLR#ux>l zW^pCp%U57Ih(sb`Fvh6sx-d;s?Ao;pX#gcHxYR`27aDWT02$+)3(on{cbN(Vg@XVK z&&w{u%=~+v2gVk!D9$;2--qw}2to)UC>AHTNEGwsXTUN|;y4ZzMZw|2hf!5k1x?d% z^5jX>)YQPTEF3#_4Ey)*hvPVl;G~q9*twS9LM8H6U~X;>rfDLPNMK}S1k=;gxOM9m zhKGk?7zXvRB~5i4zYv=hXLog)ycy zH#bKQ95@h>9mf$@u3Ry@y1L99;+ZQ0;4Kx;3UK-IV|t002ovPDHLkV1jN1%qRc= literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_other_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_other_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..bc570a21698ea6fe80445696dc863fef6ec0a598 GIT binary patch literal 1526 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 m>z`AabxP*E{?G0000N)v literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_own_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..24b70b881b43372ffdb838ae00ab946ec4696e09 GIT binary patch literal 1534 zcmVauhYRNh6U5`c(B5@eq*|sg_76FC|iIsYa-3fQJZL6`DAeQ)7^lHbiIY zkbuE8=6tuiw>vx22k#!o`QI5u>PvpoPdoa}?0moT{rzTU7yi#C9`!}7brM(sObH?U zs(3C4f|hc*Og5Vx{whe$2fjjU{S&SA8(QlZwbo5hyvKFjTb}2YJN~hXzYD{`NvlopUzuCh!v$$>Fh$2S<6K)l}bIPX|CJ8 zeS4GRIFtST{WlYd1pD{ze@<&{PdXF)?)~GGf*IcV`&;T)J6=Z!vFH*X7SlA@xN&2f*1A#ZfRlgwHKkw%r9$~+>jnv+wf?kj0(XDi0bqw)gnEzul)I0v{|(fm5eW z?W~O{rPiCKX^q?*;t&5gX{3``qy6!<^k`?oNJVU*k%-oEfAt}OA{)F=Gu%I`6Rz&4V+wB2!JkumSIp6bQqRAP6Xz%iO+w8_)9)La=+&3q0M~gKgW~oF1d#P9tT= zkDu=2nYGVhSr&;z;-A1rLWl*ymn0B_d!9!olcBM(5g`PYVbQnw=j2wlp_C#FLpH7X z4m+OOt%MM&SS*fPmi1fU-3X)B>m%U%KAz{{x-N-C0^7D}XlOtw#mdw-c)sVSJeGcf z)hj!A;n`OKR2YVZqeqV(@9pg!i0%k$0XG0+(Hf9aR?^`6mHUQ$>HKsoHeTnqe5MS+j;P4Ci!JwW|sEkxQ0Rz;PTdT)03G1PhYT zS`&uhd<1H(8r-Lz6dX8k;N7KWt;6E{`^?@69#zHoD4%4@1&;~D;1&5{f!naJukUOa zhE@;+wv;m2+uQrCojZ4aGn2_YG~V+(b^7$_F9!w&?$iP9@L=_oT+SgdI5>DRif5Sp z?r)lym{@NZ#+JQ%_vWg{o;!E$c7K2WhohsTpH)p-T_`blF(M#q`Z4EWE+PU6paC%M z+_^J(@7}#+E|<%;x3^~iu3x`iICA93^^uX0(J&0lJX~M_P_6`< zM4;J~TG2u!+A30|3XFJY|9}=z5J{JxDijq7rP87;tO^3L3bavo7YIur5E40oMJ!84V~vfC<*Qb$LRVK8%w{t-ZQ6vxhYuqV2*Bg#eeq)iqSoOSv_HtEozLl_wuL0(=SG)=>S0|(Ih^PPZvb`0S^|C(F!tY<+HK*Dp! z-jDVyqcc}3w(BGGlk1CRqi z{y_xd@i+{_01*KIoK7dKRx2Wr2s|DSwr<^urluy`zI_{mgM-+&Zy!#aIDw&|AyidW zAu{#pll+|b<^<15K+`l35e&nC%jLq_wQFIuCQ3z?Ww_mL^z`)L+O=!&`~BFnXAeqC zOCgG)uD(8{PJDCnHWF!0PXkN;oi{&al~RV#A2}wn_(F6`~8T;V$d`V z@pwFCo0yo;iI@~sUaTs`|YMOioT> za&i*I#l--Cfq?;xkB`s#E)faLfDjDA2B0(v%#iR}MWQQs0P=zf0D!8hsb@t|Qr$5d z0fT{$DzE@3ngK50O(cY@Z77N&+-^5&Yim(fR+h4D*suXbMMdc8>A}#@5Q4#AIsu+B z@QMlx0DBT#OM0y(Ut`FYf=DES9XocQzP|n~o7rqeb#*l=Dk^aO`gL@6c4kHa0Amo4 zxQO)RvYO_-3P8(BpuD^silWR}aDpIU&6+hCT`AdJcejd}!U2k!>iG}= zAKrMM%4Ir%5dglw|Ea4)Q6Xs>B*Or2FbJQ2^+>&Pg~#sQyEDEOuU@?>8==$M$-@H@ z$ANKaHd%o@{1nfVpi^ny>vIwC0yq*?taX#YWh?xlMI{lLFDiHGRXdtF$H!-{u^Tr^ zw9T70O90^YdfCk{FR??vRdT{gWn}QN_yiP-7B<9qvZBj1e` zgbY@MXw1RO@nT-ni}=;6Yi?FoSC2TI&igKx>z}iM0{}-vKYH}&(Z0_vbnaQ=7}jc6 zdA0Rxp6QglNC*IN;9-UhW;p)V*~mY6T8uyZ=HKA?sIG)C1MdkB zpHxXN{gqPdhrjEpsi`^3aoo^s1OxzOckbM&t6A}tyz8fTwG=ZB;FC2^1V#oT%s|es ze$j93e^83j(kRA95n8qca=sPJ#3%M}9MDw%t=?4st^Tk7yw>mDt*xu6sVM_6CxNWO zaR3MCh$E11R`vDO&xD{KYHjy~!ECvcy2IvU zMFl>+xFCc=dxR~rDl9KIk)^02AsET!Uk9xGq~C@qzeDha9DGPA7Gin{Usw13f7h*B zH?nl;()%38U7VLdl0+$hIz>@xMn*;!kByBL`FuV{I2^XivTV~d%@U8ta}2`}0KjB2 z>7ppAk|fC%izSqwpC52I96qPhIpub{U*+cJJ_OLuaoo%KQozkzAR+-k2@+p2_M}B)tvA7O+??YvUH%8vis#~JBZW!;0000G2}uZfCGgo;`aweE2YdK!A1Y*0Fv2c7nm6VLNuruXT3Lo61}O2)r%u zxBB|}&S*3$6SYJlA%wr<^uVHh+uHR17iXlrX@)22--ADz zUQX!iuf0~6Yh3Y30W?iRL`bDlxLht)ty+cC=>#AejpBB@>FDU-+_`fM3=FVi#}4Mq znS-jT`rv1uJ$ZQS*agyQ&Q61o{hSaW7K@QerAQ`|I2?|QIDpM&qrJVID_5=%iA0D* zA{d5&rfD2Kdh}<{=bt}`7={K|#{kH*2?2CnCz(u=NF+!k5+i)6REmLt0TPJ>nx>IV zCNsX?-d;Ur7(7kqfAqPcXSWFfvTZcL(Eb?9M8uK=YY?Ubg;_2G(99NpE`YwiKKlCl zm^Et_05@*jpr@y2%&~@Hs7X)*>DA9+IOMu193`EW=#&8f;_-OqcPtjmRL5u&5j6?c zaQc2J8YQkW90_&OGR(=z!R>aleED)pN=h=mwQJW>R8&MqM+aW7m%+ioYye9N)HpbR zd{bOASFM@D3?@rKI2@*~u8x%}S3cvj*=#IZwv5u!QqG@0Pjho~w%cMZStY#@b+bR7 zwfZ=qO$xAZ;lfNgj%BK6 z>*%^Z&MYIu!$8PU2p+*7q|@t_G1H~Wm|z72nY>7+v*G+T5?97Z0+nHpQm6GukZ{OG870Gh5*F>C;jF$&=xOw{PnfFqEu`;}HG+na_3JGFUa!~q z(?=ia4Lv=&VYi37?e?FHcs!`}_J;cJ-+$tZMju^-t}gfy=rtkY4434n2#72JwiKpP z)i1?j7H1%!_V@Qge}5pqyW6qz(If4|S6^9{E?sJOxm;YhaKWgFM2uXQi(3^HA!m8H zF(W_UuBxittthj96$%-Pu3r8A$dMyMQFul?69EzV1Xv0n$)u5d^e7y^cTbDmxufYm zpPqB`W}&0AbH&-*T<754z4^1}&b54Z{J8d;+qboQ#l=6`SFE`E^6J&v^s+M5zG#tM znKjE{v05#vsxocbG;cvc!GW>F0TdD02Klkg zy;gX)u+aM3Z@<-FibVV&_---$JQEUjv#gX|yYiHG-YK+HRu)bxD6lJv@@GX+{yrYS z?}69(^wTar_~7wagG`7#9o9Uy+ZS9aE_SYZ@Idc@f4>aA*$`1p@eyTm@?yXRDth{;_=Y0A3VtKhbJZQuoxn?tX=)QrUEyC*V(yq0p;ZmT3Z7& zHxG_6)|du;RtOh>>IB^ii7~}@@6O}hcMGYkEHZm;jtB6}CPdc_9zPD#-5urr{Wx7+ zQSRK)xO-QlyE}>BpB5}CvM_&s4oj9;DJ!$$b~{+K$jhAj^Vz?Ec12PCJJBFzbccvIfO69RluLlQq(3TVkp93J+BZXIe2DZZ*F*Z` j`vLGNiZbE^W5{fk8EQdrt5b-KtJGF<%$6_ zHrora^~_VtZ0i(0I(hBpId^s*fR7g4?BA3kC2Z%=nG+X)_r5GhT>wLTBy?xu*J3Jx z$2Z8gb{)jt*@Y^*uxkk(&IO4@{>eu77Iq&V{v|NhDnuiIAB65qybrMJ*^}5iyU+^K ziWu|W+&|s{VE5tSAKGj$e9#Jjy^gpCI4Y(R?0WVj01H#&Je&(wV;;^0S(qBf1Qb&V zfTPB5zZwA0KY8uuIgf7;yPm?uM6*3X-&1~~(G;xhl!oSL7NF#o066gdQZjf9N6u@&QY)J41IRAL zD2rKaq7!{%kyB@efFV#90eI=BF9IMvUXIBwwZ0wH1rT~X*hD7)Z(TZ%&{KP5vr92X zUi=l3{Ge{kmjQ^iyZuBKC-}}DFG7!pmwxfq+9-X28^0Z+vpYg0EYa@vLuGedx3#Ul zar*S>Pww2AJw7PMnT-*)J z(6iH@e(kmQ4nO_0|7WwavwsFupxp8bT)6NXpWUA3-A_{lKMb?)Kp$bYFn;TI)jA73 z9{Tt1WZSkjf**!ycl&w%`BUA`J@=FDk&%&q0nY%lz~hzy05q+OzC=2mZdtr3K&ezh*L8BaGEV0=@p`|D%jE*VZvT{zKMoL&FCvN}qA1py z!fqL+Y1V5)fI^`_xm-q36uP>)s^S1%uNSA&NhXsapU;!e=T{3mfOcc72B?mP0II5@ zC$)9q0$qTxdRpsf`YteSHGrZhl*_eS+yD>& zH&C*;G~;^-D7FNUOeRStlWg9+8Gw8D?(yi+qnfdrra6F3R9ev#)~IA%1SBeDk=6|W zP%IX!p9_Tox~|uZ({S@)#478SHjT{Kv5JnY}mk#9Xl8p7{KfGR(-?6!}Rv{ zGCn@e?CdO=OvVaer&9lJmg`+IvNlVi(X0fyT#jSMjxjhmxW?Df(ZSxmd-3^v+`fIA zOP4NL-PSH}8UPq8U}j$gN=*T_ZrxgK$6DraIM}mi&x$UvK(w*E517J|F`5Hpvso@* zzFciJP19ERbzMi-byQVFRnsxwSqaXcKi|l`UbBj)4S=F?Ppfw*{W?vh zvgB!FNTxW{*@{O-M&@;0w`-c_&~@E$FMbQMpov7 zps`%8@F%Yz5yT<3YA7jM;`}+!6{AC zz5v3&L*R4Zk>wf#;#AJ=B~~5LY5|lD(map>61uL(WLb{HFMn5?(UDpV%pf) z*uu=rOwbU&XJo%frPdjipLo$&(VBf)uMN#QncF9TG&wnWQ4oY7r_;If{{8!ZH^ira z1(xe;HS;}C*J`bRX}U422MAeFlutBGBNB-Osbn5DvNVt2*7(|QD~mP!hopv?FPUB{ s`@C7-hFN}{049VvRcjsO4v07*qoM6N<$f_yU@N&o-= literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_excellent_found.png b/public/images/map_markers/okapi/cache/large_own_excellent_found.png new file mode 100644 index 0000000000000000000000000000000000000000..adc34e75d0ee841e94b50adfbed73c8d01e0da84 GIT binary patch literal 1793 zcmV+c2mbhpP)@v4;5`Fg%ZeHp$`tFZ>gc!(1IV_s=-Q{6a-COLlWUAaVmLjq`2#g zE|F!eR^7{Zb~Q6Q=bS$5t~`?WrusD>{LJk?|M&ghxv(rj4bZf!dkG z=CNd&YkFKcLM4M9MuT0}rWLu&}j%Nhvj9QJrTe|5QB=X70v zBb`n+R2nN)EpBQM0KWRd5!l)n8}Fa)*$qhzftwtF1^{r&iUibkaL(^o+=MLE_qtrJ z-van)x%y=nVdmj~A+i~WH5($E!GXaZ96E6n5NSZ9ap=TR92o4`l+*t73jqL_TKX8j z`13Fpl6OD|3F^B3%WXU0^)&<8Ism}?@BJnJ3_xiN%D$#{4*+CRtHy)*NcLMtUjeK0 z1r@(bO0386hkyMJ$!r3D{NPRe=DTkKK=-x;2qD%aHH29D27+Ayczw+{H1s++=K%on zqs*M*x)xX?EwaMwdN-#z{OQBrTghw!0I+Z8v&F=_2;%AoP_0wi=D_$LZ9h6WAA+Gy;zVVtJcm&_wzQfN=#WN~C{$L(d zl4)a8J&2c~xwQeZ5BU4^TUd!F5M7b&^b;A`+m3WN|*MNxiTo}

5Cg zG;J`(@bbV9@XXF{B9%&6obxxTkpmT{0I+QvmSrK8GOYD=IqUJXtVxpBkY$x0|Hcow z?<+0bG;MIkus8TMe0$%^0Dzg9nRiuHT`bfu6}1U4O%sM;Ae+rXmSs>%K`GUQ5O$My z2VQ#i`|!(+*r5dRov(kdxaj83ojW&KfqYX`oC3xeY}?*&q6k8W2B4wCAEqNO{tBFP za4sN(SfP}Tan2v>vaVxyay9RRRt8cfp!05HZl zV~jiV7-L%pKs$^Pfrh2RYfEc!NS4<7-Nsx%&!4w z?PBM}dy0Y!6$KcEf&KgUBNPff_KgsN_V#uJgF#%sejVfEk4{@51W?*trw9&!R}`?m zzK&op2+n!g96|`f;qWF03MdM24ld5WU6X)JCWFhDFC&-B!M5#^LWB?-+qDY#mH<#? z3Pwgos-ERF!nyiw$8+uHz!MTX$(;g9J1{&v9A%8rTrMZswk@4HbxJvQ?3k)3$|k{v zVeqlBF@1D&R4+qbyxIV)t>h&IT)K2=3i$=(M*ioQI~I!tD5bkjpFXWRbH~TW^|NQs zE=3}dL@>_sy z>9A;b&JmlsuO>hg!WKfs1LM>fGGiQi0g2LQ?(|Lum(`5RL!CjW` literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_excellent_found_caption.png b/public/images/map_markers/okapi/cache/large_own_excellent_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e565f348838a89480e8222248cf10462c14ddb GIT binary patch literal 1816 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 V_jv)Qzd-;1002ovPDHLkV1mglEc*Ze literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_excellent_own.png b/public/images/map_markers/okapi/cache/large_own_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..516682f0cbbb511b26bfc02c6b72058115462edf GIT binary patch literal 2065 zcmV+s2=4cZP))E@IWdu@{dC(s9UOW>UqfFb@aVCCvR?WS*UrF*QAZ#%E0~WG@UZ9dmJJzMPi8r$fpW9ngQ{jhvSFBUh zTJi{}@gFBnoGzB-3I5dUr1{G()^9ANi+ma`{XQ|z)?7Ok8_HO*B7^2HyD-^Gc=5%W zoUL1bm{VI@+u;Oj5NvY+NHJYEv+K}nT>j_}^n7}ciVbD#*}n#px)FeI&`(!al+QlB zhsjpLu0yY(Y34-zAej7M`q}_s;_B7^P`J8^f`V$AFP!D#AKfV)#Y?SJ{9rGgolZ`j zy1?6S|7a$?xd4FI8^-U~7#@}=tlmTAE*qJdnE(tA594%tX>5GN(9k#&6BCo_i)RH0 zhrr(=;NH2%%7jP$-nzyJ!@@ z-%ltMA{-7Ai9`}*LI^nuvM08(tWP(aoMt==;`TH^BoZMSji&V#LdX#?O~3+Dm!b}Y zjTD>{z{to5BO@a$TC@m&J9q9dFffqTSJ!nV0*W)%dpl2tTr-6I#HPhRYXE>?Fqrrq z2m}x!eVhv+ln9u-vGXPGDRG4-BcV(S5Q#*XH*X%LrKPM}w+@HHkto};Wea(Ec{DUM z(AwIH%jHT2kfWdk!3^XW;$frLVZ%*lrYZ1xz3kk%lgi4Yg)YbiMdP$=mXpzUAWLO3OQb|guoO5(_h=$^~*Vfirk_9eZy5t`{ zdD8piwl+-$T}o;=2;OdZWQdL?^bFQp?6NBPLcjq4^BE?nl7WqZD+Em3vd zS{DkbFTV1Mx^3Gw8KAYbRsYTV?`yRK1DdX?-hNemqz8i&;lV-oSWnMzyWjt~2|7C9 zA+fLMQKR=M(fVWrgjfmevPGktvjPFx;&duwV`DHj=FI8uHy?cbIDF##d3p8f)oM{u z5jSq!(7)sJ>GO++ok&)4wo16PyI&lC=2(cS@3%5H+bMq+m z^-jI6&Sjh)vhmCWRz{)f_@+&^PMghi=!-A3ET3=G4UH?{zY8Ix8p}$0{q<~V|9+cX zU2V(A%~d5y`mH2M7pDUFIq(9fPId6kJ45N542WzEo*z=xCI2WWuvGQ-Y6I}ErO=)a zKE)7EStch>7I64*De!kml75k{?OC0MM#CNnTJnNH_qTd`bH-rU0euDF%S?*uxtapp z1zzCb!6lTHnW?XLQdj3nG8*gND;DC+l>O3Ro?ofT54wba+Sr4%@h<^ zP?Y#=v`Uin-n0M)#Cl*CuzAYynwxzET$Uv1_H<5@{v#4Xn1M24-*pb4kl3ZdO6-CW vkDK@&?TqGrL~aoAt6@KWbwG#=!;x7;J)LkrEPz zBv_zAgrbH>kfusP`w2evp|t8l{ZJB#(u7JN(X;|2M1eF&Rk8}iK_sGNgAF#=y!;9Y z_S$CGyX*BnW@hL1!_L}cv)EM1mr6a-)!mtM_nzOm|2bzyVu}gTTmsYpB~x5}pk0z0 z{X#Uq0=xn20nSQNqc&xaVnC6k#?aLLr<#-{aMQ&TAMW- zAGE*U{PDa6mXgqG+cx}5k{W+L9e~xCYdSu?um_-i<4)vU2YNh)9*-dt1E8YrY341d zr?2A-d5*j}xurRYw(2g=FD@Kf_SB`Cq1r`NZ+Nfyire%XZhvCL{v&B)445;M1Xd&a zrqSRK^&58r(ARnnfO$*m0l0JBH-25Q^jQKU?K~=#(P#BDu=<|kA9tGPo$fua2a7{i z)vDm?&C?c?mc)RT83BNrizhzZT~b+#EW!XBc;`<5{PC{`vR*q~`OHntwle}aK`qwg zL?SK=MIa|-iX(-I>L=$W0N+diGEman8>Dn@6}mKgru7J$g>WKCSKJSh038s9Qv!=( z#WR+dC@(8ifUbu*fpJr#BLJ*kzZE5Td;I>2x*BYrDs*d-+XHubul1j_K6VT8B#4^n zK(nayy82yS-&dZOpMT~E@WPA$kr6+s(FoG09g&w{>q~V&9cTdnw(a~O0RQgn;GOFq z5Lh2V&XGukgsG4LT|!s|{)$1{d#xuH=H)sxA(}q}UXY|l<$(aM{1T*5I{-%x?ZuTp zwFjlGf3}@6n+I`8Wyl(a9H4*+2#Yb>Qw&rN*na=X-xmuZZZ$nwe@2Mr=dwXq0l&>t zMNi-YiV%_R!*ZG6?)#hvg7-NAu-Ue)J`7O654*dkWFu-B~x z`gL2eYgVklmaANDzv*08TNBF5b2x!uHh}i6udm&A?Ctk=FIk#L&8o#*Jh6-UHJd4# zUjxAK*X?}Wej0%9JynGz5as*JS1PNOrOxh8{akTfN3uY1N2%;=t+0M`d4%;pUNrQp zU%z-~Y%D3;?KwJ=pOy&#qql!-^HlBjecsK=)unV(%(>HlBQoMABT>z&#XS0`1>gDG z+zl5{`|KK<#d430RqMDGy^S?2(Nz32{sm6CyQh=p&jNE)^^CQ?etvLcQ*{t%1iVuL zCbi;Ihd$q<1aFTAv)LU0D2W)|-6`5zZea6N@q<@iLDPx=&{9|V$*DgO8;tSimw!o4 zj)Tirt|_fo!jY7;uCSokrKFNq?(O<%`7KFmd?uR&7^iS}>+5T;oH^q;-rn-1`@;_+ zlNMIacd=^AHUCi;LRHTnVnn{U1veD~eA-IAoz($az~%LpMzBy<9SM{qctuvyU-HITD zAeBl{R#wL2kFUb%bOKORRD{>-WpFUS!2^9nA`$lO+l+hm6MS+0FFhwuo_vdREB^L3 zZy}rF>Bet8D}dSJ@i?he3RP8cI2_}_0m{qEvD@v0!(qn8#uytLGyhdK_O=;AHu-e( zm=-|OG*ne3nM{&QCMWq)sT8qTjASy2q9~}UI_?uf$bcPi0IsRqn#Z&NW}6D2sw$~e zD(hMUzy){!bNADYYXwOBR{+Dq!we4(Q&f~LzpGcTGB7ZZb*--JR?%%6=srP@7}%BxgXZd!9xZ>!nmi) z)BN$fGL7_+hl~-+1cwK-;vGA7bO|A3UDvHb2; zZz9`1fNBJckp3FVWIwLueE=s>M!u_TLNn?X35E>pH?n)#Ql^%~LZ{fm)IRG6U9m@Xw z`|tUDzE)k=`+;uY4saJ3FwK5o5EwBaCzVq+fRsTx284kjA%s7fO!f>84z6x!XmGk* zF8SE8V`E;gw=Eb9b^#s0b)X0M7Wf9}2Zl`9$4w_REkLHfs-*QA1wx~vqj&T3^K;#9 zca7ig*AE{)+}GaT?lXd4HL?$o);i3@6F+L4Xx2J?P#I=)%Ct{_*u{$%54v2gI=kJz z_}aB=Ul_q#fj%bmHCyIA@IcFU0vQv=Fn>TKRaL#I>pDF>JwDQzcNPuhO~`kmN?zR?@n00000NkvXXu0mjf DYPKHM literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_own_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e188976006be8e5c3c847303e2924ac781f0bb90 GIT binary patch literal 2183 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 A8~^|S literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_own_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..ea2e6bd58437ce6ae2ece324f0616e51d6d5f386 GIT binary patch literal 2685 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_found.png b/public/images/map_markers/okapi/cache/large_own_found.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc3922bf3cfa17e3e5c2fbd46f7c903faebe594 GIT binary patch literal 1349 zcmV-L1-kl)P)U zd{7BR?ZbsZ=_-hbAO)d26+;$nhNco5`$$MJlZl<= z&Y8)*ch18_=B78(c?ILHAN<_cf6n)P|M|}u2KXP4N~JW@G>uwv$x4$m#*Ps}+5kW) z^@kARWHcI`EtgMMlH4>+gAmdtrG&-jK?vF6^Z8Cz8ndDTD5XaM;OgY>`0%@KjHmws zA;e&eeY9c%GMUVF#@J!T*x^hjv(tUg7&}1-*)W~`8)q+`!c1lwU;p}r`}xUo^ZA!U z&KUcY5b}ciObFSR$z(n!guFrs*}{c`(?1_WI(HucuyuW#n|iBe0sHsw-%%>Dv$L}) zo6Wwgl)^7#KS3#=vvn_Q+ddi$23G^XSC>!Y&&g2$6djv)%^ukC9socob+cvx0MOgp z`&98eDP=n$L{Hos!jB^Zs0)U$E%qFqcx;mn02fDpz-Vd&4QtjR2#tNP=Mzvup_Cd9 zhr{u50+!PQ5dfGrlK_C6okj0&XED#S7)_3#f9M+kKwU6|_xBt@onMDi>ZY#ipH-T) zVh;=r4W07&d?18i)v8sRVHo<3#$A}(G>gGomtoGC_%eP9|7232b^s#ijJ&(62kWCT zD5a)!T|ZLIRmBQ$&fz!?EXzVVowkG!juzDL+V(fFY2DM1LSka(F3g+>Aq4h4|2Cdo zzZ0BuM@o638hOnEY}!`15S%jKYH8Yrcpl$uH@ULRVE*W2DgR9l0!x`Dmh-gKMp?zwa4 z1}l&+iHbcSgaGG!u@Wu_Atr#;&CwX`dFf+FDIukTQfi7)Iv}Nd$Y~kKns))`+$%sz zDQ8X7bO@m!gd&wnIh4|G3%L|PphWmRQN03Q%+1ZgvMgwt1^}3tn2>{mgQjiU)V6If z#$-oFhbz`!AbiMiAr{>%>$kwW47P0p0E7@y2qC?BLWtrD_))?=P~{xpoWt+;qot(< z8#iu5I2>O5*4o;NNF;(pB7yPoaR?zE*j(rV@7%6)_nx9qg^B_!%R+m5J6c*=9{NTI zK~qx`48y?i@G#=>2dAx43MgG&uLuc1RunKlKM%t&Af+suLkK}E7F$w*0$c&!!S4F= zngnFCSzNeq0r`9$ob!@Glv0b^wF+cW0I0GAJv}{D&+;1K?SAfguKgVNkHlVbuYl4O z=mDTJW;eBRGF_a8iXQ19yMis-t&M6hL9a$sP9_4W0!GUV=+18|DTOA6@k@4t$L z1_}Vs00ffBWCNvi!=XcmBHrA1JkHLXIWw6^B<`0WE=Rruz7onwA$$cPbb5L^mrkes z&CSh$SS%I*fU&VL>-h2G>1)@nCB?!P5Je8%a_2p<#CuUFV{Rxa46{ZX3D-sAnL(a^=cYC=`kiLLztW+?gy8J5@-^pJFIo0WXv% z004nNz|=I&xqkineJnT>o=_#CB9{B-lonmfmi7@Ip;r70;H!Dcg!zsT00000NkvXX Hu0mjfp-gz= literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_found_caption.png b/public/images/map_markers/okapi/cache/large_own_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..785820d86ab03a942384d5406f40045535019789 GIT binary patch literal 1396 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_own.png b/public/images/map_markers/okapi/cache/large_own_own.png new file mode 100644 index 0000000000000000000000000000000000000000..67fee7d90a6e309a348791690769136fd0a3b9da GIT binary patch literal 1498 zcmV<01tt24P)pL6ax_YVBeBIREM_<(kx6;PMBt`58ch9uA`87f8Z z?ZD?i-4em`k^n9Mj}}Ux6{!38(4qJK4fG$bT^lfSPA!-~A?%kgU+!26csLv$n1VVT z{PWq$O984RI(X9Hna@tCq`Z0aCW@jUNfNeg<2X)<-m)xoT}RV2VzC&fPoG{i(TW62 z)5NxIgb)C%S+j=P+FFDV3=IvTX&R|iiexfLEEb#fy;v#%!!Qs+VB0p$&CPUocjNQ< z00;(y+`fIAcsx!rnIxG^&idZYr8qzG;uJqC63ApS*tU&nns~k50ysb@6hc*1;_*1C zREkt8Rs5+eKsIu~o-zaqqap#zvM^1PY&J_an=SRuwn?YcWV2Ze!@xAnf=&n_+aM=% zl{K@kSjD3vfnu3SAiqD#i4a0I!4re!l$N3c81B#)MIaiD5{*U)27>@Re*BoRv9YqY zj^ijMC{sD_S1}!O%LPu8OG|pe1ORkhFT7_mnL>5U6d{CSf=A1pFM%203e%BL<}JhO z>S{VVI@r8(*JinwlCmZQ4Y8dpmdT+@YtZr&uk!E-U0VqUFx(Mc(UxF)x92>(&*@v79K1 zLRVK;NfqQth|)fg2Tr?VegcU^f-6_96iRJoD;7c^gut>aEX$f>l@f4`+%c`WzbmKU z{Q2{h)C-kj@R&@+MAi(JTK?nvjsp|lkjYAhTM4+D=coRD z=Y}lH;c(bj3~>GW_4LHWi`o}`eU=Q4RJ5=T+7P^UK_`m5w~7hOx|Bvkp|0rm?VDpO zR;<%xdDTkGYE>Plt|yySKRkL=-Me?M3=oM#oNv#bwZda#mZPfLh^oGJbUkLgd6SrY z@#1ZNIz9R;3=F_a;EhW{XSyV3L_mo3zyZH)?^>40$iAs5WpZ*7CMTyFMn=5HMn{bc zSFg$&H*Qp$o13|N_pb9%D&^ERH}h9lSHjoX>C`nesEVSf9g?*2-9*A^`{R#CXU?3- zM`0FtAp$~(uYrvK!ZaOobX3!yKQ}VZo*7nuzg7L@iQoJ5>6TlywZ8btlMO3Zua+O2 zJ7;{-*JnI$YI><|*)q6x+csnQh7F3^)}~6qpjY;IWJOV^s;Y`KHa4Cv2M!uu=%X6H`-px^KL^!|NoSt>P=fCulu-zy-ix@9FD zKVB~#KJ1rw?C@7LHmZ^&eJ4rMk8=_D64=9~O9PxbHD1ohB~fp|`{SzG`dd?zuX}jd z8iU{0LjOugDK24}%Ib*doh0j&`fA6Op9mIXg?qMjp1{Os5faA%&( zMPSw@#IhX5$2CSq(!6+~Gcb_m*)xN|L4%PIlZlBOU?3pV(o)U(^&U2C@X*oWrL9e+ zrNv8AlMhA7XCop>(wz78={_LD7T^G|YtDErPJRJyNRsqtB_nC(gb>0DbdvjD7Xnt3 zyHwPXyI|z^O}@t`$aT3fa-DAo=$9lZy%3iF0E|JDa%kgL{{R3007*qoM6N<$g6Ffw Aga7~l literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_unavailable.png b/public/images/map_markers/okapi/cache/large_own_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..082b434b29f2511cdbcb982907460a324f9ceeaa GIT binary patch literal 1477 zcmV;$1v>hPP)<)WY!Nx9l#+o*kHoSIBJ#b61Om^ViT}wH5s{#XRDKMA zauLxUH#N!6Yu3oU#>NDM1bTX;VapczefxINLm?57pQc+c?E@H|0rwUb7xVe*)!eMD zrS0NHhMqs?+W!3n2L@QRXAjP-ECt-2ZZXFP03af3fwNjLSa|*LVS4Z0WzM{L7||#j z4jrPPq9O*I0)B8f9MKs8R99Dbybr|Qy?gUFZQ7JQ;PY{L-#((l!xV4b%7%jn85$Z= zH*VZ0tE#H{8_;KzU3GPJM>rgoR72A=QA$amr$^3h+a~oJH_9J1HBwhrCV!nfCn6%f zy}dVTYiqxnQSkQxh(scyloEeOhx}GuEp=sO(slEuXu+Ud-nUOqm6XWcvuDLL3>h38 z{6$1ko-=1E=e29sa5|kh91cv=L@9;G(-wqPMr9ac&XcEQ1)v|fJh{QX_^>@K~`4QSa5)hj0~<` zy~>?CcNiTVWps2Dr4+iZbM)xZzB6aeTr>ix~^jw#+a|azdvReMmmrMxF;`bA1MLsHW?ssK9ZSr^4&l#6Z?R&?sXtKBLKhO zkKgZS!GZ+eZ{H&nl&yzC-{eC6fkx3kV=_Ck+LTui=nUyP7zT?Zt$e_5mn1X@=nwpxZudlbe)2vL>i8rE{H6OKQ z9|iPj0hTUZI#!O!%;|JeR8%yf3TzOw81Dm#z+r1l4=^$^LStj&Sg9$cCiq1J5g`_f z5sSs9SY<-+5HMn0b*7Wxs;a7Tx!vvwz>!FV3l}bgyk75AUpgry%wzl3=O7#Ixfga!`@XB`W2L^zE z1v#Odk^z_&=_oJ^42npqe?wgB zVa88<(Av?YbvjiUCUi=)Pk?YsOUr4u+g+NOnYsMIg9o>);P;6CDe zgo!om9}t>h7#&I}y1KeriD&-Q$}&b=KKt{@-&Qu8>5oa`C6hx f2_^NveUkPsr`S>!sjnaw00000NkvXXu0mjf3AVZ% literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_unavailable_found.png b/public/images/map_markers/okapi/cache/large_own_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..1b184173b20ba7973213435888de28c07417fa03 GIT binary patch literal 1482 zcmV;*1vUDKP)R9J=WS6yrrRTw?@?qoXK{pk-Bw<{%^inKxq2^LEXi4-Lv zM9>guC5GT*6JIdK_~HY;kPu0H!IwTMq@l48BqmiOsRq$tgTeyFhE^)2khTl$b~>}Y zGjo4@V75$`-Tt7)7fyUK&6xhzyQDqAv|zB?l?}|^E||2 zv5|j8fKti;uol2_0OJ7q2_Z}=wQ^==<|u&GN-0Yz)hC2FT2WDvEtQKt0l5xfqf)AI zyuW|BFQiE+wT5%PQ*z$uIgaKEr;-q|F%$|NoiE>#1puf7uxhZk7oQ(Ih%23)0I&)` z(~NEJ%RP92%fI*H@E7l3Bs*jfLK2o`9s0)v*tT8I7;CO=YHE4$(4o~Ajvd3b?ruzH zv-?>#Tb;2+(S7X{CUX<`^oLJef7mmn@@Y#Uw=C-eLdYg5r4iEg%EsNhH+P1x2DTVI`zJjim>029i zlqa`rdCkdYqdCjMncq&~&eT0fDf#-kjpO^8-jV>Il)Aa33Y<7`Vol*SDP=PuB$~e4 zhj078G^!%Y${UmG=yFsVMmUTghrUDl&!1t$<5*UmVsF3vew-4TRZ3ls#bQ0B1T19@ z!~q~PozZly%&>DN{p_2Mk#kJk^+wS<+zUgsZCVwXWNbDpWvto*AvE zIO&^|Pb7eI4j}}TQecd+nwlCtVnp;;*6zan=?wbsq%mrb!Eqhwc`o)mzn?d)*{WI7 z)2qAhwHj<90$>86xG$$W?5O88#co7^%veiO=S|yVUjV1)ytp5 z)`lH9Q0kht{gb9?7XS?U9EGts0gmHPiL>p?FhPt{s)YsP|7K_c^YiMXdJRV0noyP6kw;_ahWK&97 zkUQ@@e@@|7VO{}@F*G+fqpq&*v3rCNB$G)b5(!+rdKEoAk9J$76i~dnK@k#woL9ii z%nTBV1f(pvk%16`R4O&60zUErf`jw(&le@Ywr!k0e;%IafpcC|h*D~{T^E2X2mlLA zL3?}qdkbY;J{5G1ob>m}vtyr;QMMWl)5gi>JW9f8y)F)s8^1O3VKwNY)Db!x8C?)B@}C-Bgr2!tvU^J1xg kPHDlhWNH7$|5z;k0>dcGmeU`TPXGV_07*qoM6N<$f`%2jivR!s literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_own_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..a07c61f1836f8987970d10705c8b99d9cc52cf75 GIT binary patch literal 1529 zcmVTqcV>3hYwuc^w8kcjzlunVh}5)%QV}S$ z5-%yD709SkoKz{zmsGWK-}+2>a;i#2Dk3~oRB5dO;e|j|1-DAv##FS6jTD8Cu94FO zgB=62U$ZlF@9l$UmSz35Mv?lGBOT4vxp(gWfB)y)duQPPY~oR0)LJ(HtAJS{gjW?$ z`@Y{+E|*EAQkOmtk_&;a(ptZywSGfu{X?yFa~R)RDwS@zu3L6pw@@q=GmhhQEj8DQ z70_BIfmgNG-{DEfmb}&eO7uNnTdb!i<7T2c`s`TAyyR%g?BzT0);|htLwTO);{yh zSGNreq~9AHWc=hw3c1`4t&}}onBsRI9ObjZ48Q;TQ3W7`*s$1q)(XMjH%)UBU|I3F zy>ai}Hes4P*4x{G){TMkc=Nqqlk*&ulED-0n*so>^|iVQ?BBot<%I_B+`02BN~z6C zDgJu(JceNy-|2nMSigJsCasjAq~yftQ6^^p0~((0+Uo85TE7Yje6S(~PMkQgr#7aP z+Gv`lmHF=|fBffhqp2ZfbhoajGu3SfA^6KjXBoMA0W)TiUfr!;-Su-@AUvhihsk8} z&|(DYt^pxLBf#zZw=jfZ6x|%h-+hCUpXb`_N4$Oc4;Y3)T-dz4AR+BB7~r&rG<6t*0H;HFHZ3uf4=-SpUi&DuipJ7v&9)S8q<#Pqa8n^ zt?6-;ltH4gaR{&h_mLEkQsVnQ<#L&+sVQ97MF_#Z%`fnD&o{8*Hj{U=IHh|8f#myN z?`Lz*c1+76X50S;{w0K16nt3%5xDERB$G)R8ygWqU>O$AZ+nfkEgdMOkW#X_^P4>P z)IKGIP)7Mh<=NH?RD>hAP6dLAp}}$^7%YM2!s&K%*+7%EgWkDNuaUD8$!1u zCF(v2@87>qE|(*fN&#^5=1oRNM=N#WI1U2?0})vpXbxBT&^khoX_8K->FMdArKP3P*W24mb8|D}C;-9JSf13Km;B= z1C~ocsZ^q^t&JcEP^vbab7mL@ot>RXDd%-nwW|qup$9CdK(Scl!i5X?zP~65tu<20 zg$UGIHMmDTDL8oW;MwJ7t;3@Hd(7PlE>*?&D4%321&;_s;1&5{k=wApzyBR6rRDp+ z9Rxu`Utizjd-m*En@lDj8t=NUI(_=|r$a+Scj^Ey@?iCqT+SnK>eQ*@VLZv)cYpKk z+qX9whOzy?fdlF4vFFa6n>upj$i=a-u^UyBRu@VHo(~BGHT{?iFc%?#I1mGjJ9qBP z+`W6ZA)QXAy1KfO0N1ZycMcyud_9xNj7cfWJX~NtP_66ap5i;*s?8w#q^Tbd~$zib{^-qr4V^ac0nV%t!Kz}36N8W|b6+|<;R7DA*a zCMHIK*$}Y0vTF~Eg-@_06sR^`|Mp@*feH_s&wb(tpF+&#HM< f{e^vDE4BXtjCR&*0q_Sh00000NkvXXu0mjfk<#QK literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_unavailable_new.png b/public/images/map_markers/okapi/cache/large_own_unavailable_new.png new file mode 100644 index 0000000000000000000000000000000000000000..99959d8f0a8e5e06abc84b4d1d691dbb99ec2b28 GIT binary patch literal 2023 zcmV~=NbRq`FwValQ_-?#5QRNG=VA32OkljQ9585 znxGY}x(NoW7!%T@{j+XEty-y71uBDrR`$eQ8LgCMGqE$dbUl+Zv3goM%% zhlIq5KhJmP^WFRG4?D&VNt{;Vk3G^OpWf%*_xF3g-scSbzX}oAh^UH)tkc$)6VYlS z5}zh`84(>LqANu7J0fzX)?Xl^E+YDhh<^UGz#T;NXT}(f-MK?4`706ql8A!A!9ns5 z3=k1TiD>K7Ah4c@;{6vd(jS_d=z44G6bT9r4bkZxJLoUFc9AAYL_{CtI!{O+JPZeb zU;L|%gxQr;+lQ?@bLO|gnT}DUwH*p8#f{x4zmTZ<61m6SOs9- z1kzzYdGh44xi*b zKM(uD6&?Uq0P?pYkVqt87zT(40N`@DV7J>LNfK7S`YM)g+=zv>wYYrwGJ1P^v3KuY zG{5^UCcpj~j*1FM6Cd5nw>~o~cuoSErh$lH7zW&KH&(7(3A;U6DzYp?C@)86XD2RP zxPV|Vh~2w)!%|cP3uC%Ec}yMu>gZ)8)0~+GmiaqpeiTJPEEYpF8imbfOM?S|#bQBw zdppjaJ&RB%gjg&F#uzkB!{Nh+A1Px8BC0$V2O!R%LQ45LBcSU#5{U%j@i^k~c$UpD z3GJ`s*jn3F~%DVd_;l`*%uoF zprus(Mg;tRKm2|_N=r)t06jfD7#$s*@m(Skm;oUiMgf3DDPV@A*D8`-!2^)zO#lE? zRZTxDijwY*nFtsRd`y82K*=<40godgw!{JNK>Q^mQ$LW zKqL}DYinz|)fi)0b|L~1LDzNYx<1P(S>O_YNa|NZt`r&}*4Q_m zhTlSTBtsrbsXPS^WX}R=>S6!>{r8iV%ml`muw}~@`}XbIZ3P7dS%eiu!I?8>r1ti9 z71MuLOc4K9+Bg~xD1=DK)!n)Ln+XS4Da>X2=oE?ZA`H@_`?-TgOS2AN#;u`-TLxv z&7AXtQx{lAN13*H^JWnM`uh6VrT_ke{rYE$HLBD|y#wZZptxk{VKo{JMtb`aLzlbI z3t$Amc#23Ccs2nySphgq(Wql=;)XadJYXFieQ3KoG^sUj2#7y^K^A}C@*!VSQv;93 zgN}|4{)ZcVHiCnF^r=US$Q44N!>KzQj!1ENabSsg!Z$8o8S3f#a5y9MPqYdL07UeX z&*y9G>guZQ?*8IAGyjO$#Bo-TH_4nuLAI~DuJS-@H1FBt@{8ZQrlpy20H3OP zA}}%_F$30JKkBx3-&ll2i((k{AyQEeIo}Ru;*)zg4p`UtKwsDRK>z!{CiQFA>Kp3n z>O25uC6H4%4&VSC354=3s=nGgD1?JhON$^C=7X6`^EqW^5daJ~H8pjA^6|}Df3QTT zf3{Cs;~ji5Uj*<5R5PIQJb0@E%xsz&{EMDS;l{vnaWqgP?s&PW8^G|a&H+yrp+y*H z1$lnmSrA|)MFG9ED1u^##0u>STacH`QcMvMmh$+?ke&Aj3osFM3W11|k0_-=TrcAr z8rFQaYSpU##fukz$#LA7ISHglECSG=C`w&_fB(Xfk&%)>AmEHfqYhb?3p7o$B@zj% zVHg4cm`oDZ002ovPDHLk FV1nE0sKo#P literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_own_unavailable_own.png b/public/images/map_markers/okapi/cache/large_own_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..a90fdd5e02e039ba6cd0d8104ea4f4804b5c90eb GIT binary patch literal 1903 zcmV-#2ax!QP)Tqvz~phEZANQj#=Z_4p z$2NYgmwnF8&gq98uh+)*LL@%)NLRDE=g$5A?m73|I}87>CL&G|DHajOg#JMk*~yFh_VMdaKPA7Sf^TYSXgqop+Y2w`WFI>8D-oGi zL!Hif`t)g3RYg%0;_*0!Vc_w2Sh;c~ZRgH0;`Oq=x|*WZt1%3NUw-%@XZP;qa&0Ze zYu7Tfq@<8UWJ5m*AQp=ekH--a0Orr1kIUsE5D2h*#}1xavxeNVGA>=Z#Lb&G*|~Ek zzc_G!!Hy2H3JUO_I@M(Jc%~Fj3!rHlB0@YK$K&x(QBi@*-|MQbzCa?)scA4$pVI<_!(rm_II&m^r_-4f2e8}ioIH7w zD_5=%3 zShsGS1)!;^$@ud}AL&&+J-Xp=1iTK%T_Y0lX}!Jv!H$l5Eum2NC1`7dJ3y}q5n-$( zCqzJGA+X6EkFT5&4qIG9L+aq*APf!;WqG~M?cLqlCtrVUS-g0$!{hOA;lc%DZ7^ue z^mw>gR_1q=mKw9OvK*?aI!Y8}-p~Agqo}d*`~Ca(k4E7E@ni%<k91Ju_K8MU<|=IvoI zpLSqj94h|w?6dA$Zntg6#f$okU~s?>-#!ID&Vi`IEGuQ_&P?UC*W8xMN_R$fwnI^r zzbK0GkEsCm0nhQ-XKlRsX5VCkOo&V!miIXv1>fc7x+*$5^&a@olh85`f~qM#u1t;` z$z{);65wBoq8yxT?uWV!&57?T@O@4s;$Pj_nKcOa@}Vmig7%bM{ivn_H-P8ZzP*6b zQYZEGL)6xeOfuHUfPNbUvO#r$ZiDEg;=6Ze^7`v;Dl2o$o*PpEJg^DTb%VaX0A6p1 zj*bXzZ6Vs*HE!L~@Oonm3?u||ax5%ZU}fP#8;cg%C@FDLRODd60w=k-E>v|i8%>I$ zyge;|39%H|1gxAgUXNz~22Lu9^55wODHA(H#0iv=_@|r?0002ovPDHLkV1o9{mk|H} literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz.png b/public/images/map_markers/okapi/cache/large_quiz.png new file mode 100644 index 0000000000000000000000000000000000000000..cbda87e380743a49f1d9543a31c5bad8595c21cb GIT binary patch literal 1199 zcmV;g1W@~lP)nr?cN)GeSNbJW8q*h_zI8$3bp3Bs@)6( z0{b6?d|+VUCU6M22CUYat3L=)9qa}?^(Iw~fQ=6a<1~A9Gz|(xNrQ+38m9DO3J106p+mc3Ppjhaft&@#5iJ@-&rbZ{N-M zWO~axLI@YI6RQJsHlv1zt}h7rtNF z@{W|!rHI-Tu}y9$au2EwYNjBQ6?}auM|?fOnYUZ`@|@1K8zKBHZjK%A;)74-8TsxO z$UIPV3ec5@t(5a!z$#8VC4zc25MC(|OB9%yjdAHG`0=Y3*?-^wnx=8_hh>s$YrK3! z2jS+o-xJPPon7Ej0>H|$Jg82>oW|aLh$D1CL<#wnX$34+&1JzMVJB-l)bmlgRKIB!QiXFF<>uN|L$B^ zSU9F>+KK-DexGyh=;&y6XlQ6|a&q#9^2#m}K{?+ktdA1gd($bPp^9n&39i5$>jQ}$2x~m_xruAt*u8Rk%$Nc0*g~qQxl5(59NIvE7$9kD?Y6vx`iCJ{~)pR zWN)7U+41r5A;U0Ecs!ni)6>(xDDo@7BIW!#A#mio8mdLWhEygTmM<2IvqA_$q0j`D z=kv--6Dxhr`Lf!=PHg!vr~~_uX~){TqyI#DuV~;-|u2WYnAvn081OkLEQ~_5N z!bUiDgjH4IBM9ZCQd{i<@RleNY9$E9MWU*pO4TANumT9IG;yLtiX{}VB^*q#vzBa= z5ZjowcRk)U`!&1w^kHY>F}8OJ3J;O`myWLH&fNR|pL@mnj2vd!mu3=Lla z-5!s}Q&m;P*|TSHyWP~()NtUy0d!r*>-ADpRHT5;$Cy7mM8qQ^{eeJ0_U+pzn>KBd zty{OsmMvT4(xpoxB8G^(^KgRB2gk!5O-)Vxk0N6K{{7{3b#*1zu3h8Mp+iKYQ8sVh z%<<#L(RE#QbaZTNY;3#csw4teEG6WPEN|MUAtu6x^>dr z+$`~UT>O6j-$lfki7#UkzI8G{LB11*0}_UiqXMj|D(1KKKclU!jbJdy!Gi~BXlNjr z6k1wZ@Or&mym*oA+qbiH>C&}89uRpf0g;#@VJHe0jk4mIaaOK;9!+yG6`IED^|Ec- zHa2eD$luQU`JiKhD}Sx#=+UF}_4QF*UCrp|=x3Fcl?#$*6`+Tcl;%&cepQ&|)vs{j z<7qy>`GAIBIoVxb%<9!I@#*J&ynh}f5e;G(&rwlPfy?DeUcGwt{Ub+?ybCx@v!Lv4 zMgajm${?2?g6B@u+294DdaO^|HnUPjEJ~QqB4`%BG*jvJkt5+${2#_h~l4ZF#=OTcGnm4 z?wd~fd_$BLyIJ$ndj9yQL0aGc8YB)Fb^%V)!xCoVogkfzR!9`ta$v-tU_6+hw||_r zPvE0}tmF9=D{wd*y!YWf^vOwn@q!bSo6awS_MuMG!(7u_D@kI^0!RxR6l-&(KK@Y|G!<(O(t1t^rAcvVcU=c@5%PxSF4#^;- zLcHDlHONf1zfk=&#ab?RM|AFvgu$`k70^yT4TQ`#LADS?dTKK2dqmjDbyGmh>{D5H z!S{e9=_S`qi&*5aKq=n4ckh6RIF(W^5pmVl))qE4HWq4{HcN0c8l|0#@puX~O>>?* zckV%ZdwWkX7#sk4fiHm}U>NuY7zO+`@1wRA$|yk0)*v0PFrbIS;gQnP()^N=k{8Fu z#?+ZJXTG|1>sFUZ{$JDk0O?pyF_ZCOb4BNn!@~CgD^6DV1c+R}e*KiDX>0TH@~Us& zzJ1js?)c-u^R0jdG0lE~h#Q8{uashFXsC;{=Yyt~Nz&o7e=qY*Y{#7c zf-JBOnI)v_ycOS!UVfhfED@H?+EV|=4-)?acd<$P83HTj00000NkvXXu0mjfe#HyW literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_archived_found.png b/public/images/map_markers/okapi/cache/large_quiz_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e34a754477d2af824671f8621cfdc96f7330d912 GIT binary patch literal 1586 zcmV-22F>}2P)eLg+$>PTRJ378Mo6^TndKA+7+Z<(%K$ z+1Xi|0jU#0EMts4nNFwgHceBu>{Kx!q*juoozumeH2{EO0E=5&Td{TPR_xlf3jh`a zsM9oU-nVDZo*tLW zg-9gwysD~mhmAoTihd4889x4TxAkVj`v9=y9|6#H{Y^s1gPe1>$KxrEL?X44Bpt4- ztX!e0>Ya>P*njR5Fo_|NGW76*8Z)!>(u@H%Y}inj>&E)}`a2E7SSN%)NB6f-WS8<- z_2b_9`ub-yP4gRufkVH2h9PYboO5>HqT1NTx)(VB2qFHORRx-xo0mAnugvJ7qsJhOZ=Jd)Q9V9e+9y**vfY4@h8H}4L8;nX_?5;VJuG==_ zpf0tmJ302w-b-W62d=8w-xyr#c0-h0P1p!9lX~Z>#D}56k!~*b>*TW_`EWPM|BL1Bmq+J&CaJdfC4S}dhh+O z6^c4T%Zg6Q9y56k{6oS{aVJ3T3T)Z3BJ=07S-_5Q1^e_1@lI_v+QFy?(!6YH4Xv+uPd*Mn*;wncx`bckm&x2Fi_JQd{|!|Vd*af+Te zabnQt^92bZ!ONE~_h*Ey0wQ^jV?gc-I88Vl0H7#}>UO)WuCA^z+{n;&xX9tt+HC)v k(kY*LOZ&h5Z!@*O0hwsrp?m1TO8@`>07*qoM6N<$g20RGi~s-t literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_quiz_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..005d12d09e848ce59ace13ab97ed75be8ca659ca GIT binary patch literal 1628 zcmV-i2BZ0jP)TqcV>2W*SmH|2n55%vBOtEu2eS&Cg z$_oWm2{I_iO4UY98i`0%9x9sGmZ}kLXyt~M@KR74OR+_(0FjDH8cYK;B*q}+1JZRv z91|~#v3GZ7XXoSIJ}_&qjXxu#zT`+pv$}Kd`Ty=YXXehr|JlTsU8t0b0kePsA%t5o zp7K0zUa3@~y1M%Ooq!xqe3nw`2TG}5E2X}#l&T5GR~L)LYmVcT9LKS2+wRKca`ltN znsEk{Qc2)hDdo4%pFhval`8={fe(D&-{pDUBMOC&OH_+HN~vr-9&eZ^o;Fhepbl8u z-rmlxUAx$~Zy&%q;F)5v_^|7`yw~#%yI+5ftAlAn2ry=Vw*6!y|@9f9&@*MuxALNUhUqT46kKUm3@<|Lsr*8Ix^4X0qm;&KSDL+Ui zlRuvbVA@S6gs1}OAG(GnG|ejJ`Qtx+L(#YRWZ*;ocHu8*LSSk!ez@*=;(Ef6Qs(0E z_}a}8c;hd9>N!RG^?@$%n)!Ju;ksRU-!A<;Kq`gj zD;}!*7Ms8RgcL%^LZNWgFpO7$qoKxFpB_N25O8yPx%y>Q4^&U@z}_* zF_@S9>eZ{bu7?l;gy6Hj0>D23eBU>LBv3WRW1*YnOiT%&M-rf5@dJ@j<0aR}@iZ=8 zwt4!+i~RJZi^KOqfSM4Z(#sHK0BuTu-fRs*6Ri106}7V^01NJQ_|7VbMhxCMJBVGB zqt*mLV1$BYh|1l^sOW=9d!XnjPMmScSvekEmE?4_o(75z&9$PzyN7md+ z!SZ?KPf65FXEs%MTHitVhphnW%aQ|H-stm5*u;|YgK}>nFSBkq# zrv!ifedE!oqE5rg^>?{-COC|gVCwh49S|=Al*NbB4-=e*EiEm_f*>$F&oh1Bk2N

TO9QmIsR zeSLir;L4RNxjlRKTJEaS#OMa|fKr9H75?_73m^a$PA(~>N>a*e>2!M5#*G{A zOD2<%wzjsVvUj;{m7&_re_&bGclhwzk%tJ9lo~ z_3PK&0|yRV=m7>ee?tIbHQ%Ng)OzfBw_{v?y3aOG2CoIZW}LL!k!2_aHFJw0cE zfl#orv*kFkCbaP~P-$w6W141PEEdaOx^yYctu&YGUk12s&15#y|Au2ft8VM+uk0(E asr?U*m)raOvg2m}0000wWp|`ug6Pe%Lj5!K`VdeCUxz_i9En|KFK&X3oI>t4S$6Qp#CUO4lv@O;XAQ zQcB0yDPAF^+$yE)lv4guO6kw`KPIK@l2V?NQa<~2iTk9Kf3z%1c6N5ktnHOj{!~gi z+}qnLj~zQErIZON<%+KZ;G0s)(Y<^3%C@#PxqbWgaR?a<2IYzsD`b0nyNpJoQcC&8 zRO@Ls7QTWHXaX95!aL3gE%Z^ke_-Llg|+qd_3Ylg8>iFBk|j&nxN#%VXp}%8Kv7W< zSOcf00#GIZECgNy{8LTBvBX2kuBu4f>)5bi1O5H|6ciL-7zWQj|2!R!KL+})0TQqL zK$(8wle^jhGM@X_ytw*qve#U*re9ySY?)*2+O@p!!V5$q5f(3AOh-otu~(>(whY17%?A*DNy1F{ve*0~6xs)9oIc2X_ch@4YQ*A60)YU_moI10qDA~>Pl$v6 z2=o50o7l2t3%$L)G&MDm48L=>$aU`>#is;_CQM4)VHVtD0@DP0?-rGIdWo%m!GSkz^!1UqaYFpAutSsS6_Yg`b*Egp{8{)3OFVKxY63$rj)`llEMjiZ&}uy*zy7Z zxZNJ4loS>yIsKMpB9Yi^D)FS5GbV&kErA+O;vx596M&IzX~3NF7-~*0NLX-xPSwTb zuqZ35;Pc~&+vZ3qHDRH}Vt9c{paLk%!uZJCIUYcp5}@x&DT=D__|hU~R#^blS0{Pq zQER<(?yV@z}Q3pRS48n8c)_^lgzfO*)L?mkv|8nh71NH2B-T5Iq+Bb=&kuQ zG&Z6r3h#V)jp*<&-)L4rIO*(;1X|YH@gzxeGY`^$kr!ZaC*Ed8T6qt5?+!jgRuPmp;kvLN0;GocQs3U|d+wwy6QIqF_eAiu3cW7eU_4 z_U5K?ioFglU5#?-Y66ry7SV~~Ng$s68cY=e{rHl+e0OOR#iLn(bhc0Y&(-iNm`P^K zquHj9i$m^JoE-mIyLRpQOePCW2%$al$RmaA?d=|~*P8>JN~PGpe}D4hk3UY|CaXXy zO*$(W2O`|`e!L#!0Q3Wqw|=p^B9+Er7&t5o)e>kQeR?YW!3Qc&KmByhTk+t*gSr*p zVZ65Sq(e~<6Yokrh2D3bOIgwI1n`h324>GaabOndlpNbkIKGPvi;gssml8f0I^QpzVT zU%ouAtE;P_r{{~scJ;dOI6}hf9uoeNVKIAF%r(0)>HpW^Y3i4;^=fJ9G)^AdCe}RB zrFM3?lUD~y;+805WYn+fW96!0mZ@{*v>a}3ZtkzDs_L$;u6}niaR5b1dEcp1r+)O_ zzMZS5`}>T!^+9970~bu0y+|Y=6;zyfapM2&&V}mP^W{AE!@r@bBW5a2xT+kzz=N>c zK~do7$$PaEXPX??hZ`LoPyS?gOH0cxMNxVu1JHn)BS((3w$y#9uX_0CjiRn7pk{Mk zN`$mX3JcfwpXw>>IbKO+~UDwAe7|@)DB8MF^YiZdRGxG~h~GTU*b2`%XMCI9#U9 ztq&RxHea|sUJ_J`v>gmpMRoZQcH89QU!1Jfj-P3AT#Gb1I-YFn0j}K9Ik-IuomxnE z-Gipz8xdtC5wpA`PN^>`iVIVsz@3TGNXkJh=~joLh3eq2m+-J(i^TnEJXNlZniXnm z>x2KCKYxDzJ@?$xttiU=yZ~8P%bjBT)0`&b#4}#D4AO?q$tXy$L?19FMx*OV#-qA9smFU07*qoM6N<$f``f- AEC2ui literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_archived_own.png b/public/images/map_markers/okapi/cache/large_quiz_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..a1afa1890816e89135efd68fb9426eda45bf19bf GIT binary patch literal 2004 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 KMNUMnLSTaX%}>Yx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_excellent_own.png b/public/images/map_markers/okapi/cache/large_quiz_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..96b673824ec237154f79ab06697c4e4f34ac0422 GIT binary patch literal 2173 zcmV-@2!i*CP)>=})(#PiHo;?j_uCU(K(8V_%iXlmu+>ZD-y)`O9c% z5P#W9O0Qjuoa4k8bs?LB^t3cG(D@njeEBTD^TrpIyM7Y@=TDuWr=@XRr>CWn^QTUb zA{Y$~0^DQUemw#}Wy68PPx#ALB8v#Ji170BJ9+u}om0O1%U05G;P4YzG4r(v_`AA7 z6qb}@N}d@fF(nU$CFOK=gC=6vkph0Id0DEs4;%@&4;qRigOH867r(q1j+w z83Ao*fMirdimHftI<@z$0#<<$1Yql#kFRrk{YX(2 zfYOk?8bL*|Oxi{bZ{oJ~`y0#Fwb@0uGK!%v6la1RS;OO2z)Ahy~Dyu8lw0Sv-x(0xR z9;c%t$(wJSLGhKdar*-phI8Cr2PF>5S0(@ozxbVltBbZ$zIvFZcVFP}U$hL3vW0Fu zH$2YqkLU38y-^zX7tMq>8v<}KC=(24)7KYZb@f)(Z7xJn6e5u@5iQ1lI=t-rlgg=P zgTY{Yg1z{<1j11RZ%%-Uq8R?-8`=BU7$-lEvvx%ZHMa|@md3d-Ab9(uI2hpx_DL(q zQ!OQC`tMYw7=U2d!0+y-^7@s$av;pF_XqgAHO?ysL%g_8!|V0&?b{bXG6H5a-BcDJ zC#?CENt(lM^0Xcpj+>MfL3Xx6ONUNi$QU0x-KG21cdAScI(5CYfS%&S8(X&?|}WyxqUBV$YmA&-F)hIwSBq6sAIrUS;bTL9q5 zc7uS`%him2RY{VUmruhN(Fr!DX*$Nh5wceA$Eu8ZHkn+kvhM^OGZHv^VLp;9QFG@! z7G0GDpu8x?_U}NBI*0v#8=PPxgm8?360?Bv(!kv|xQZPI({4d5Zt};YI>AVY2fyp# z)u&{dTRZW3vZ-3RnjieUgZj6+L5u=p=>+5?ICN{3xmf$1zzWJ#u$asg1AT)DE`<`D zIeUqt$KjpdSF`k*Ymg*~1IPLa4-K*IIvLDtKKU$^ZYrA=s>5DwDoAuL$AJzcrX_GG zIAWz(GRo$=7qjcd$pFpG&E{{Oeb%V!?>9_UjrFSP1yk3~ZBR9XWP(JzGbBX&} zS`r-v1?SbOs`iD|)rooK~J{9%F1f?dc99h1`Z$zA!>j}(KMaL z#sKy8A#=~3h-qzKwbM#^=pm1^ zd9zPmyVjTG^{SF2{Z^8s!&4FXDR2`nz0}5Ik6oNh$tK}3VD&{+E&ZgRz_qHo+vtaX zFND^77Q-JKhR!D8qsfZ^=4 zsGhAjfYZQDY}-~!MTL|4`Vf2eL?+QSv*3~fF)uh=U??y;Dfq(=d)TtY$J(`dcF*al z2uuh<48!E&#TdQ4ak{#6+S=lrJC~rnJwb2p7=eHVn3pG0QZk1nOBBk>6_ze_vS^V? zNr{t!0vC?)yGFAlNl#8oz$Q@zYy{R%>95(z$G}lZl0KhKX~KU*LI@{Nf%RQi3>0Er zD%{xDC|fmE<29@**N;{CI)PS6k|usAOd|gSw`6qfed1iK00000NkvXXu0mjfJxn^b literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_excellent_recommended.png b/public/images/map_markers/okapi/cache/large_quiz_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..3504443332af13ede1d8c0f1247cc17e11ef45eb GIT binary patch literal 2285 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 FV1n&u>%#y5 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_new.png b/public/images/map_markers/okapi/cache/large_quiz_new.png new file mode 100644 index 0000000000000000000000000000000000000000..41dad8b49f462b22b38d64033a223023a416f642 GIT binary patch literal 1752 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_quiz_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_quiz_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..63fdb938fbb9632f95fffe2ed738a186c2afb6f9 GIT binary patch literal 1624 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional.png b/public/images/map_markers/okapi/cache/large_traditional.png new file mode 100644 index 0000000000000000000000000000000000000000..6e531891e52cead3b808fe186d25d091b2b94b11 GIT binary patch literal 1100 zcmV-S1he~zP)LgAGtpMF?>~QADLk9LkM| zQw~9hL;P@lNK0uJfr>is9j5 zKD+ZVhURoriH9VB2tOmwK+Dn5y{BZeSsurBIF6T@n3y1&&9cWm>WMv)12I|+3rp`f z>~ZDXg&vYr5|504>p2|T`}|ZY@Z*DTc;)gnrmww+=`^{$wL~g*nH#UYk7Ikdu6MFd zN*TvLfR}*u>21RjNg%*4<=cvoho)%^T=JK-Y>hkH%V+czfi#ezvkwUMZUg2s6FAve z2pq>@Ao}Pagh&Eo_@x*a7WiJ9fPtST<6Hy)T-WWZBc)6NBlrtr`uZiq>fI z`oI(m)1NXvKF-ApLwxb!_h6(j8V;7>;8|XHX}Agom0VEcf%hh0M@FF8(l9g&tLakK z|KQim5Ad)(e^@!jb3KHRAmr)gaUemv4+Mq{CH)B)b(3b@!qi==tukMizU)*GAf+T0 zi;+n63})E4j(OHy&KL6<3sOe`#*mzA5Fx8m&H*doLE`G>sN{qlb^tcOhxm-y~ z85cq%rIg9p+1a7Fxw)ZqI^99I)oQV_vZ5D@MYD%-M;UAYRodR4T&rgY6bgl#z!Y#D zxC)Gw%jKz9EH=HcurL(XU0q!@mX?-E8yg$K~I5-gbeE!kq=H|LG{+sgt7(dr_+9zI95$)Q; zdzE33r=WcT7;9^5OX+ladT?;?&8@AipOx{uz$4oE4I{V*dZJqd0!SqyB$neiJ30000r+opk0d1|HN6P| z4U(*mjt*_xwoUEr?FA9)@9$SrQ+b{SU8lD0@kw_%6dGls2U%pHz z6r!=Qkt0Wr5Rb=+Mx#_#RvMt|HTGW|k|L5GPfSec(4j+WXlT&RojbK-#|~Y;eqEAm zNgvHUp!2~ucc87U?eS7X96o$_b#rrb)!n;yId<$AnM{W5+qZM(%o*bGxVe4%c71DW z>*ql3mAq?fYkQndr&Y=<%aSoh{r&ygy?eJB8ymH6-#$em5uH7IR+2P4Jbe4qsZ&3G zCGw>R$Ye4y#_0b2`)Y1(RwNS9jT<*KIXS8Q`}eD^u1=>8 zxc?%7KoB1RTw@~{zF)P8h7B#;x^;_KEXL8JN7=h~FRpQEZ*M0WjdJbUHCkF)SigRK zEl>`mUrRvF2_*REaE*Vpse(4Y8ndxo+LM1<4l|;HIeztYT|*%k1$fSh2E3yH0e;U4FvZW30y1_IAAUA$*uZB`J1O&(@$QyJP_`HZ}&^wh1lL!HqFNU=^^sh}e+#I!nGP z{6PAZ?*hkh78fc7fhzJ5m`fgHCKADt0&LeJ>!h*l6jm-vAQ(atlE`HpTt_&Ti(?sF zN5umC_rtX;d7x5_Fw^YcGLdKu|y z8!K(&T5j=DzvpQg`9@UEOf?j|&jPuU5lCecq!Sia%3&z^6?d!u3QuOOUfls~0X70}1FMFHhPL>8zS;u^ z4pbD+y?OIy`uzFx0}mcN==Z!TGzr5@zNdk2ioAD<1q9|%Z2-&LAPK~uKYu=u&1N@N zS65eV+O%mIKyPnv?%cU^-*k6(_ZVYF$k)ezfM>whMbA-S44Cvp&Z^h>1h}5k6fgyh zOB%H-YjA9A?7c`NQV|Y^{a3DBNp*I1K8VF)13)kEB`^pK1OEj^fbk;lGer?9DWFi$ zHu-!dfOsO2c(!uo%D1Yjs(vy$I%+Omy7ctn!-w4-`4^t|6XbI}#mtFMcoChqhc8ry zg*+A7CqVk%y?f`w;c#tvd3nvFN007!`>G z!NI|9@}58OymZK?uXz4T?Qt$%`Yu=mg-hmb^1Z!~-;!Q_n*s_V3O1{x{*Uh@{s*L& VXOWZFxPt%y002ovPDHLkV1gjn;Zgtq literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_archived_found.png b/public/images/map_markers/okapi/cache/large_traditional_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..4644f01ae2f642bbb83a78231522085e413c3e6d GIT binary patch literal 1516 zcmV+U8IOJDrpXPC2d{_p$0`OlfN!2b;LxD%C9Isg-ZM+o7e@tE)Xu^GS~r&nu-IrBu5R;=rs~v&IVLqK`pt0H~Kz zE^BXZpOX=?N-4F3bG|VMf@PlP=}h<)gphho(+(8NH)8<+DgZ2OZEeNw-Mew{;6VUb z2w+t*ncO-uGJ=bLpT)-~_n>F2%Or%%bsT3;p=A0@*(;G{IF8eO`0(M* z($Z4I-`}>z{Z`0=hu=t4xa2#hZA!N0b(kv@0tBA+r^_r%g zTC`}qQjx)D@HY=^!<#jd7X+%|+Wo2df%IcZvan!wt@r*LAI2!5V@jzj(P*@- zkbs#qVGIC`<7*WQY>lF z9=O!q_8Fx*2q>(Qs96(T6j@!n1}SFKGabJm>Df4z_!?>H0+gews;aMP#dbt!C4Aqv zD=RC%&lD*iO8}P~R7of$kq&IHyd+{oOJ^IeEm@DDWIt|pCotj-!Vl7t35Lz}yZEbh z4f^=_IEzN3rvUVYcgdLxP(I2K!;;v`*&*8`W=z+024NoOeSy_quq#HKrhiRI&rfJ;JOXRwhZ^|lb zHmW0Yv2o>QP(qnf>PB;O^U;0#_T9)-Pm4uS2ZR(D_eOAQq#aj#&ZEMt#{@-D{QVL%ZmrTQtQ$2vPZy%Q%+Oj#fRIjvQ2EoMhTekWJm9LTQWkK&*7y!xw@_a z83B5R@R5o$@t`qh{4K}|$U-PCg`C{zLWrybVdAiW2lrDfLk7lu1i}O73{;ySRsc8? z5JG_m0y2;gQaxmolI9dQi4+s|b6|=l@tA`YOCs%hc&21A*4OQTWm%wvV%M6F0AB}l zIhZdX*+T(Jsci1t$Q4xF0gt8Or33J^z<}3_o6*aYejgjPA%%og3J5unL6$JQ3ufOx zpPm4h!E+f{T4CJpM_=DhlOK?Pf&u{n(WX4zNj%yE#hdWG*FXJWs;tvQxchnNetP@B z6Ce(ghXv$!VCT-Aw}lWi2m+mRuE*o?NK;c&EE0)K66|@NJbwJR)6&x76d=!DIRKVR zo>xF?YwJ}^G?0ObbH6b#Fi=e?UAS%AwpjStwzf9s(4j*;iA3Ul9^yjelc42MPBNio zgwVmk!PMyJs6K!Ge51Cu)&PJzckX!m_wOI==;#;_LI?mNr^2k=K`16wKa~KL39gjl zQcCCU-MeN(LqmBa646>(TI_S@&h-ut52rH882~>-maUod6qZ zDM$()$AJ6}grPzK05A;0HcgXVzkdBbCMp!6PR9J=Wmu+lRSsBNF=ib|Sp|_=iTd7WJ7ZjD?2gF6z+7;Y{ z#2}dLl0rhdG485FWxx2zn3!y`;e$cNqzQ_|D4S>#i^RCFY*c&!*+s$9MfVLdjija9 zGTYXfxik0Wy!c`6z;x)e9kPjE_DP=1z0W=8`Tx)VdCom|;QwsmekU4ZQa}eVBZLTR z;+ZIl)&xO7TU*=ZcY@?X;2p-8FB@aNZ;bhpF{V9^Z!MS0lfLfjLD_b=?5F-vzjFUbOXJ^ z!^0drc#tDUjsWxlUn`f(p9#Z|D`OY=_OHLr&AF^2gy`@*?{uSNPP6Eq=WVrZd;N|b zJK9U7Qf_c?a6FkzvVZ^nM~pFvTxp75Ts(>w6?pD%Ki1#b`8|XX>)#Oqp68vnZF?i& zq|@odzJ2@F*tX54O`E!nF)O5rIR4ik;zb3tR`MfV8zq1-=FMdj*t2KPR~H(%ZQHhW zTI)}0t@+a%FJM`g_2|cTTDy1e-e`=mwAMWL(oz01lLZ5tdbWm-e_}w#1YT-NffFZA z?5dAxtvA@V?Tn1S%&-1_+-gm=Sv?P|Bh&VvC4}Jjum6toZ=S<(Y`Ryk)d#kJDVOd_ez)$}81Ip6l#>{K{_UbROgdkz1c(U(l(srw( zwa%y0>E6ZiF4_bCn0WCE!m<(AtV(tA!S{TW9UFF&FVAs$WSEKBn;iMWv&@y>1`LU0 zf~WePW{sOcN-0}gTZe!I;NO=5k&!4J5vdXrg&XAk84QNUHV?3Q?ZYGz3C3r~$d_l4 zTJqTD0Y0_v5gf-MnN0o@xFUpT2)?8OQU|nHZG6~$s1oo&JBF5)76y6`kSk6zIX8~d ziidhW&CZWMu7wa3i^ZF+>;4pYzQH2(vJ?np8DAIa?CfMlOi-|6EGxCK~?DxkF_@6YhBsf&z^|Amg!ds(}B zBU&iRzQ@|t>v`sjKSHSpAq2)4UkGs_o6QzaojPSTP*~UcvUb70Coch@v?d4wgbwpL{o1@X`cGdca@%7>*@VyAX6cUy-gAh7HuH&iWn$Z~q%$-eJC zzf{&`ShfBkl{3MorWx<&ldM_rDuF8a9r>ZbSuij#a9SzlL{XHGQl|R*`#-R2*RJ=w zt~+nM@B8}X$&0bb(n>hE;yJp_h_hmXf`m&$j4`_$Cb2FtSg_U_%AsU3Uf z%$c_a2L~^Wj*i}_Nm~2zse%_{0 zujdaPI&^(xWMot+6)?ZSA|R*%_u}hlxda4Y;=zG2CeT_>X0zFj?c2A%&vo6Fp`oFP zbLY-o%H?vocy&df0F+}uuO?oVUe$vwM8MQ|6tAe9&*zI>U0q>kXJ_~A+qc7G$Btbc z9UXlo2F=I6CGOU`sz4O`J>byzgG9%`wY$W*aN)w$*4EaH5F#@+Huf?w69d+EcKrcV zf4`&xwPxy^L?Ur3l}Z(^UAva0B6GF=RRZ_SSADjP)TqGdnxB*ALd~NBn|dUUsVBH~}n(R7wj1 zgbI{IZIm`tN?Tc~R3%0{lz!;97Nw-%hA*v%RU|}JPy$g%K}CqBuRxq&aAI(6Lx2D= zVC?liXLo03?&*hJgUw@2BJrU|x|-3wbMF6l&bg0)|5pPBx!$d*W;Ofkt2s zQ1n2Lp@n|R4h}9{xN!RH*|XWZcQ1K)c`RA7giV_^5ekK9YipypxES2QbCUsR;{X-{ zZvcVGoG_R8DBWEXjFgxgH*RELV1UBHLTuaS)mL9--S^gjwR@20Z+@gzU;f8KWq?fN zf%UJw^f0T}S-*b3TE2X_+1lF5mMvQd27@eKyqIUO zwQE)`Cy&R2*XyOfzn`sJw_+Fu)2C18gPmxa zrs4H^IdkR=8#ZiUczBq$wl+FCI+!_gCVTemVaJXgD08{5sCxT%L?ow%k!$e%zPIpr z3^Y8rDvgMu&OeK1>sN8;&>@1sAe%RDX6@RwxXPuyy`8qUHVzy(z^YZNm{tEo9gq)L zUkkuiHXd;hQKVfP7l&)%^W2JkNn2YRD^{#v(V|71xOABR4xZxWMZaR(wr%wG_R`qc zNNo7+3&r`5KTv#f0N0|}Q^x$js)_w!C@eLZH*X%PREqby-y#yScxir`s;VlyUaylJ z*`6Hw{Ed&ulzDs^)c9x4`XtgZV(uvQ_4QoW`WewLQBzYxZEY=QhW^RLU=K=56AQ;l z#cY&P*tX5Kd_ehK;s$pzVdMlzyD5^6MJgR9Whe0%d58!if}M159l=St zI4One$anx}Lvaa_)jyDn!Hz5{<-}meQUXdQIt!@GjvqS*#)PeGn;gIjCy9qsBx4T2#3ec|v`_p%fry}K8XoThlQ~{I z21K$?o5^;;?_M~RYxrSpym%-Jkj(a}uY4PR4Rgq(Jd|zLm^e(l3u0q0t*xyWGb>pc zN-1O6vSmf9SFiS!l$1;WP9zc>Ja{m6?AWp7J+c}klDGGK1PF2``my_90>A(e{L`=Z zRwj~|wvFk!=&r&z`r+B+;lnyFzWCyVf5jt5j#zGFr~SsJ9#hj$+PE<*fz^MJD_POu zanU;u0_X!a#}h@(x5CqAjz*?b#w@*jdacv=-Q`-~&E0=f$B$RqOP4M+0s8v-)QSHb zQX7Ag$d4u(V&~3#FCeLy>x7fh=xF3zU;4^NU7Q03fuStO1o4RgwUQ6`J<+KD=J2QH z`D^F%uV4St*MDWiUjEIX`NA5@{C&qhy`iCjy1F`!A3v_I`qovS;8$-St+ON6G-HZC z;Q0OiNLh7Ru--d-b;#gt-)-Tld8uYN=M%pp}$ zFrosbqiWWSaQ>`@Sm56$9@B4zH|S+$kI{2_hg$z!m)_Y`5c_hlG~%jq;;Ddcr7LvX zDc7HPqUprkxpN0)`y`X7us^@XzvkQ&pjnM{k-Sa=) z+tk#wThp}O`vDk0-Nzq)+}t$tLu>7~PuaK0G|;naUIZmBG3Ao~!yj}Pb$?n#RaKnp zSBXrk#wspCdGw5rrop18zi<{k{e|=12P4j@Q%^NFH8s@%4+NOhGz~OxNE0f~OFHxC zUN*v`Br8gZO({lsJP$L={mlTbwY0Q!zkA@bCvT0G8&A#dvlq<0d~dx3beE(TY+Xms z_oKX?`-^|lGu`;~e4}|i*kG=EzNH(u_Q2ra-bI*a45^ZWTTY-PsLD%&PDN>iGJi}> zDN3lqf=rd-36pTFKpzPe>9iyMFZkEIdGiLQPMvy2)3k#* z0kRNPKyxCIXc`z8cx-TRusj$H2BOiZ-?FR{+qQk_bUNR4T?4@5@i< z#l^*;Kp+sTsi_&BGiT1tf`Wq2fNo9GZsaO~c6Wz}7(gYNKN)|v6#+i(-0N`XPPe#o l(S*pHdPAC~P5$cy{12kS1X3&BEsg*H002ovPDHLkV1i{D zFN=r_i%8wm0C+(}^ycPfsj8}y#>U1`2nhrNQdd_e8#Zi^P$(oKa(pU(+C#_S1r`Ad z0nel(UVhofC!gG|uC6XED=XvFsZ(TTW>Q;Q%f5a42!%rU{eE(Cav&7CIu(GD0`MHL z8<;uOAYOT;fR8>}5%hSxd-v|8qoafD>}(9fVE69bY}vRGT3W90&O2`^?d_MQl>sO6 znXlH@KQ|=+@aEO4=GwJu*|~Ek2M!z{7!0y%)hf1Z*+M83vNI1K9x&S5=S{~K00OTH z{I$NmzC9L;NxGuzy4bcYfj~gkuU{{TU!YRgY4hGpG})KVc8aqjg9#Iep*^uShsE+i_6QO zCApwuKMBCF4P0U(Vw128EKKeUb@Cw6i{I~O&6+jT)YNdH`|n)8`!(BZe#em`M`&wn zqoSgM@Y%C%?&9J}#is_aV&u4HvBI}*eEkq)=ewz_tVGv!&V2JR;ZTfUu1GL)Qi`S4aEKJjSIIgd+&$Mit;pF^3dajtMB`v_Hec6510kRk#9wsv@ zIc&rj=3n1`@>qWnQ4`<}K@Q+cX|e&sDe-9oJalZ^BoYZS(=Q!t+tw1G1(VUwb%bq_ zQO8N{3KfVw5deT`np1;{XbEsflJ`r&BjOrknb6V#BrKh{8ADG*(TzAREfWzzL@?qe zmMNIJg{j+ErlbO>7HDzE0`eSj!-?8(y4ir4b{9nS5aC#m;c%3NnagNc{u_#likRW{ za_qH#KrDk;IDsBZVCh!sP}K=pBe@VgBv-$h5`7#n(q_e+_fNPn z*4}@A5X-c%Z2?;z9j?mQ8IUR*bIQ~Jv7tE8A)R={BskJdQ&;2o4mOAgilX4km^7KG z;t?S1JPoGW1xL5GrfZ(ArHY3ffVfjYs{n0nZT5%nzH2tz zyJy-SPo&4=xnsxUA)~J^JlNgcABe?z{{tNz@B`52K*Sw@hc=c0ky2oz&$4P}jEtz> zU{D(z9E8EaU|vs8*0$bW*>XIc(JjKPuoIiiwu8l_R?BZg+U%E8xt*EeP=H+=b zP4kp1%AB8t!*apby>R4+@!Iw4#*M094xot0X5iO^!*MQM8lbs3Xg4(tIk$)EJTrk(3zj!N|Gclu=X3w+ zi!aO>(da-JE-Z$-vq1Ma+e+EKJy&`Cb)Q;Q<#XlddlW_aqoOE(n+)K$z>B>9eg|*8 zb$_Bx4n(dAEAD$d3ojNHdY9k2W!{6YpMk&}h-!}bxNUOcL?OF&l>=WYit_u3d{65( zbQ}*W@NGdn9{$CxTX}=fKOb%vLNqgFRX?d|z%}4SwryKTMMW0P%|V))h9>B1yWoKv zBKe?s!E}Q@q4hVkXHCjL~&7dd7!Io^tm{o_sfffTAdA{|83x Yf3sr7RyLCU{Qv*}07*qoM6N<$f=kM-WB>pF literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent.png b/public/images/map_markers/okapi/cache/large_traditional_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..cf3f6a6707636cefc8aaf2022dbc86a4bff9fa0f GIT binary patch literal 1668 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 bREqxsOKx(nfDGlj00000NkvXXu0mjf5{gk- literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent_found_caption.png b/public/images/map_markers/okapi/cache/large_traditional_excellent_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7e3d4ca6d0e11d172c11b0e85b8b62d88273cd GIT binary patch literal 1854 zcmV-E2f_G>P)TqcV>6JUayVUU{hm5*T$wHL6lNL8;FGv zh$*@=9u+X}&6@`;+C8FbXmg zX6smA{}zDe?fa>2+zfzr)1apTsBYX$^Y;A!jP>k%XnB1ZG`rnGz|h7k;FbRw-BN{rH| z-|s&MG!%+oun6tMB+9nYk35uZv!kVnmi@axS|BZ2_U~dxOVgY&Odb){XmDfq9(-_8M(N;${ zVw6Tu)zuijGSbrHtq*>srjwHZY+SQB7w=Xf0t-@b@ZiDkpFDZN+4Pl$iNXFM&@(hN zujOvfDFhnOT)6dj&h>R7J(p-XFmxe1Ek^Nla^%GN_U0+*MiKwH~u zjY@r*Fe~b+`fog>aYGex_X|kr(R24Qe>(prpUq`Xh z32u(w;M7NdL1|PdP{yl!eoCoXhEnQYC=`03Fh-FgG>pht-}u$-YrkAaq_mmg8@E{Z zYz@1c4lq6yhOz9CkwCxe60MhjzTmn#w3X!;ePud~_!-Z_b=WSFT*?EH5v=l8yf)UmAgw zm&8#CYHDhj5cjc+QA$cm09X;M;+s3ZM@>a7>#7>~*3KUSpp;4+J9g}!WYjI@24ECT zfl?lEXM!7}m*^S3KxJ?hjVm{yge2+A(718~Z+!iCNa-SkKx^#?AucMVj69G9Ve`GH z0y+EmVHW^WDN?BvLI_TO@<*nUF_e}FA$SxY1vn4jd0qer1EF~y%z7ZF#G;2$zGzmHFmnJ)LVWivWO>a!%WoDbn-$q?A6G zJ;(DU&k>mID@wpq9%;|Pl@6Yl!Z7`r8(QP0B}!?etB|fjNj*DHDdi(0bv^+v7nV$I zEM5bSo4`(6*tSEpe?5De+F7w;1wJFd;hk@Q<0EBzc#cH6kJZ*%n-s4690`xbQsAU) z9NWW9Nk*Le+G_MxvCHK@oxLue0%yj>vD2iJ3M)0r=?Cx3 z9iTv?5eN)((G8Uko@OaE@ZFZ5|823TOR!x2(}0up*UJkJZZwYAk9IB;N1I2@ic-feQ(R9UUEGO8~cdy!zRST|nUE$&-J` z_J@H=pkj1%^jX6&TH4#&=X{)Yc6N>&J$kgOx3~9pUeNr9PYyhhCE(4wkNE`VB1@nI z@B_x!*jQ|Gaxz$7Utb=LM#BL8{r&MHM~?LO^z`&fDO1cXFc(PWfzM>G-K7!`fX)t1 zX{}RAsfPmt1C_gX?_M1ahy5KL9rw?kJ=+zF#bVjjCCGdrB(s1sdHp%*<$SOw5zu+= zW>=Jq$K#3G+S+tYP0hOT@$vNW({RjkdZl;{~Un@ sbBbBfe@LES^IxkLRP|@}nJw4;2f5v8vf?AqMF0Q*07*qoM6N<$f*D+p7XSbN literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent_new.png b/public/images/map_markers/okapi/cache/large_traditional_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe286dd77d278fdaf0e021da331fb5ae7dcfc80 GIT binary patch literal 2220 zcmV;d2vhfoP)0?CI;tW;y8W; zJFy+d-u2Gz&hF06+}jUczv6f4k&b5e-gEB%f6qPV-aD(X2$Axn9|!>co4N*pbBc2B z;9|y^O_W6fKhSjW$TL2@6M&WxANBb`f}Y#B^U;T20zUX(iOfkL4gO?XC)k8@2;*<;#!hz1Tcq(|fU*D_?%hIKfD8 z2;hOV@3$iW1ey*WdB$H^hbqIUGR!M`_wmZ!eRKZySJu&V@W?Za<;=Gx;P2@PQe0kz zP;wU>L@2owmsio#6NH(SGOsunGDt;30Bqc{12cGeqJ8~_0Gh9gWJ~~|rC=_OfF2se zj_4?nOk_@i9gl7RHh?t(z^Cf$g3>W z&$YCp$}oZY8k!FNl7UMnu@b{riD3pVouujQeU#>oATnc|YiTF1vQU5e`88tqb5CfN zMN!P)_W8hXjzISK%L^~ObgQb4@?Q51noo66yRn!qium~Gfr)kYgXU9R zXuc}$zWZTML&J|ed-m+Xuc}8J@q)2<(}}jY@CV2!c{hpfyM{zA5wJh3j8^1IdkAJM-J)JEGk!c zShssC9m9RReCkj9qT#O#;Vp##=%zs|mEcAsM8UQ@DRnuf^+%F1KIu8jpx#d;8lK@V zzbygNHpp@0Q|Ebb)_#}A#XaS@Jbz*rMkF<(UkFr~(23@$&$+f@0OF}AQ9DFMMFj)O zB}UX9N=izosHor?UlVp*!4@RL%iQliG2N3bm$AtZ>KwjBv#tm4P_fpK6XtqT({!UA2_({OV%{A1KZ(Uy$Vby^jDy4U zvmiSDvS-hp?y*c3P9cPI%a$$K4?Xmd+vD*}BOH&%Idtey^u&o1i5aj8#1j)WuQPT- z8lV06c`%JY2N3+nAKxg7C(uk2&9+f(f%EvM7ZUHkud-{`uI#B8$BrE{Z2d3h-rt

*oC=G7^opRtW908+|F`uh6nT3T9G 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..83726d1a60aa6c4143d6cf01ddbbab61f95c0294 GIT binary patch literal 2219 zcmV;c2vqlpP)dxS#ZE^q)EB|Gx9he~yNr0Gf7j2_a-TA*4KiTnG^s zLR?kVmEDO%$Bzi1TR3Nj4Z}P-XU=QJx~i|Ez15Q(004Xu zQ?b~qA?~im{Fc^sA-J4T$A*{DErO6Lw6G3w1 zl+w3Cckgc1wJ7{^8{w;63PK&=!UZCth(5l9$WRZ;=P&e+*_ru=Yabh>cDKH3>1*M+ zfhtP~et{7BYBUj%{(h}PolE`ZH(FQRP?QxvnMr^I0ECd`p}Tjt0zgB{b`a`-;Ase+ z20`>*$x1RJh~15@YOB_07M_(naF+BU)7UZuYVp5IG;#iGqN;h zoDE)A&j-7>=8sd$X2Ct=;#GdXDTL^mO#mf?Ebr@RZ}rb@1VI7>37k0Gh7*U|isqE0 zEQiwre_B@LxXlS0VEGu5WjYlO0m=!=^)l4g)KMWs*Q^c@Ldu7RG%R?j1_BBQ5;HDf z5S1pzF_?;gQX+u^5ZRXm_)f*%z>HSv zZ$<&h_$Y*)1at@BN@L~P#Q+uqA_f3hy?q@3pl6_u{$uc(lvtJo(i{*p?;r!)%610? z0q$vCIP>q5^3T@4kA)SD+v4%DevhYg-?ReUp0W%%fHNnLWbz^im)K~1poW%=sx-k; zcuJqjcWieu)|bCkStgfD(bOnTb^R4_9><60e=q-XBdT26bAk8dTg2^oW7gu9>lTu}$Cv(%n$pn#Q>82|IA>||#-mI8!RT$XT=7}!N;ddwq&kHQF8#CP1P%6&P#$qeE2>xW zy{q3g0%d-a5K9+A6m3LFRabV$~hBaaT8jqUSY)Ry!`kwK6`v-ERjxy zE4}mZ(>H!meW~xN{HJrj!#rQP<&qVAulZf>rU5<{lllFAeTb!d^sSrbMBMJ?jYS3I zL=ZxjMVFU{&L$;U#lkm>V9AbJOhY z{pMPcxNtG1wlpgm=j?-`Jy1As>eS^&J9qy0JOK1-S6(k6DjL=1%uEj5Nt~)pw#mD{ z_Cp-G^dTa87(?0vv#D|!);4`BK?&`7(0lWb8#Zh_P=t?WpS*CODAHC6hKR%G^C3c> zKqEmoolZ@XB+Dr~@W!&uC{xN&p;TehS9X9B3L(U!g9i_GWNXhFQyj<#;|wul6y2kr zulS5`a9R(#6VeP3&DLo7TmSs@@a*>eoVs-}#A-I5LS&(HrOlI)T!A~@9 z5^AO`7`nkOi){fSOBn02F3)eaRxrl!MK=Mm+gW4+LK6;vEKq_X%xduKsVz^B@N86 zH(>pu@51eNgA$6pD}Du}C74MIW}1PU&jbh|aW)rlNa{D z%uV?2YrpyVY*n8V`Q2~j<t zvopjPV*pse4s&*o=f$Mm&n7@*!xBPRob$xPhYy`=)~sr-c3j_k*k&zL0=+L21S65dsOJL-Y=XTBth^LSP z(;vg!0-Cpwwzszj-EOx^2vPg``UbMZ<}4&diE}9CKt4oX003lJ)|^hKdF$4#2r@fl tc_E6#jF|QMDgZ5bPHXL#_!7^H{{oshIAFr3*L(l~002ovPDHLkV1m8|AJ+f? literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..ad10d7c2f566b89ea64beb8bde755b62a4b8b91c GIT binary patch literal 2201 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 b&uaezUGWLEWx~It00000NkvXXu0mjfqUk$| literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_traditional_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..d970772c8a90b2b483d252b348565dbacc3a7838 GIT binary patch literal 2712 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 D`PA+a literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_found.png b/public/images/map_markers/okapi/cache/large_traditional_found.png new file mode 100644 index 0000000000000000000000000000000000000000..2b233dfb094e71ffb5e2decec39b541af611aa6d GIT binary patch literal 1397 zcmV-*1&aEKP)R9J=WmtAZWRTRhn_wIIf)17Wx!KI}HOArtcLHT^ZXiE@7 zBs_>zV;TujV~jDrkeFaJ7=;iXNK6v~(U%%cA6gR=t-Me)U~C|vZYZQu`B1jd{b+ZY zo!yE!5cm{-!H7=Lyc)4fhRRE>*FaTT${ecg^@5Ddx zzd;CTGEMWNc@vOKCZ91)^Pp*(2b0O<7JJ_`&0~a+rIFNqoH};`v1A0_{PvZ7dwHpR z?zzBC)BJ=Gve{k}LiQ$;$u9{ZFA+l4aKUi$>=DG%lK_CVEgS66n^gU-8z&~H*{V9 ztX$HvGcb6!{{*FO5K#DP>b%W$%k+({Tad^^FnIF<3~K^i17Bbw6$Nz*2<{qwYx{d> zsc(f+YFyX#LzSv3+W{^)xL{yBjaYijdSFEvpzz|Vm$7`&N(gY=oxFo&CIKM@_CEJI z*0*c{=bT9?k5z(K7ND|lsT!>DKaX|wZK%g$qn0$V1}%V&jql*e$JSwCZ3~1HSlzT9 zyVmXn09?Cv?MJ`g|8G8jF|STQmSCM>v^sDyJ-8p^w^k5lyftQ^DAq5^-6BwDege#%*Xz&K`M8j$*C5@;VYVdh{^v!K= zBaw;$ia;qfPATn^QqHQhgvqK-!SMaTX+c5=5JKeT(AmU9>K;pG!jeN{=MBjSWmyg@ZOP3m+K?CE&I4yvoOf<-%t=5# zIW(Ar3W=UjH79Ouzj-4ysfY0XxB@_p?ehOsWU?~ok6_D(q0Hu_j zyVUWU?nK!RSS$l8lLOBPgsm}Lue)4uKM^+|g@jZJaC9JVHc&eD?BAbPCm_XOr5IR7 z;X!sB_wM~r7$5-!1p)%%s`zy$F?$Be58=Bnd|vTgUZpvwpF7soy$9w2?1Vc76z@Q1 zXXgze1kL4gZqB)T|Ni~@o;`c~x~>-pwk%8b_4S!OJw0X#xP9dS*i3j)0lmGwS1>g| z8UQZ0v#YBs6buF@i-1eP3(QqSImx>#FN8)Sk#syBcQ0A8 zL~Ctr)c|00bksU}^k{r&Xeca%5CFuC3hj3199~d;B>^h$Tq(t+l;*8lx4dm_ZMC|t zyLx(hjDdlHu~;mY&L?L8vJRMCH7f-#CBS*0g^f9y_ppFOW#fulmeLkO`5aPdm`*tV~W)&bs!L}9afYX%20RWn& z8D6iKUA=mB5>pilhpQr9*5>->l+L)8Z0#d^WYyY##mk>Bn1S;W00000NkvXXu0mjf Df-rc` literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_found_caption.png b/public/images/map_markers/okapi/cache/large_traditional_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9b08075351e2d4957d1c1169bf92ca6ae648e1 GIT binary patch literal 1435 zcmV;M1!Ve(P)U{kL`l?Y0ErJ8 zst;89V)a2ZMoE0o_+ny0Vn}=$-!E z<8=^k&JO*B5Te$$ z?cLXmfMr=Nwry{>ZF{?ASx-mvj^i9L3?tL;oM-EyOVHn2qhG8^H?epILjSP;AY|5-7CmX?+mt`xXp#fte# zsr!^t9Q@;JwAMVb;BkE4e=i=7CzVocJG_Zg=T8E#tnndt&C<4rzz-D@0NAl(M|1I< zQfi@Tnz62bf8>*&J|LB-rm^lW=FPe*4Y2RGFX;UHFo{GJnd&uSM2$WJM)9LhE zQxT|G144)tKz8^X08ZZK!|&e3RSv&rf8o>4j{ry|s(ESE>)d2kqm(+EN~InsmA9k@ zj`Z$ZEesQZ$;@PiIWrdU=)z_O?E&_m_>#V%v%J0g4f?GtN=t+=<+|msaC^-hwAMqZ zRBB1Njg_o`uO)%<@dJlm>l8Wn5?X84+}FmEJC*`)roV>~cNmRk&An~hQ-42NYbB*@ zEeBqffK(oajiT!HuH>h>I$oZCX$LjJd?k1RBkdKmzv)X0`CTfSke zy`|g$jFK8qN|JLg@oV;by8iu^+T_j5o3#if0!Ce%d9&_h!;|k21U^CtwAQW=qC+WV z6o5=hTj&*?f)nRD0SJ`B^E`wQ?ET{-hDHZaIzR})#atHP5P+020i=Ocktah>M3uOz zH=$MXGW#Eb;%nl^wN!*e9k4G8?p)z(^@Os)Kggrr;x zT+hLEB)%7L-tFc0b3adbJ~U*Z0)^HZlrCOgxVea3)c<^VU%CaZ?c+Lm@}mmN%d)rc z^N9fpG#Y`xFv}jOLhwA5XyCbr-~6gv)(R}@e;#l{9~a{_{Uw_MJR%T*kCz{&_!_pg zwe1dqAm;miLQ0ujyLRpE&CSiXrPJvN@viHtUAuPmwYRrlr~usI^6tkKJBh%~ojbRM z^J$>)6DrYmSKgXVr{nGI?Y##M9OxVv7#Ik5Hv(9|Xb5N*%txgUiovc#Ko__l z?r1cZ%Z=34)#Wpp%@I#*j4paYd%}x^CNI61T0i`@dv1QT($y*ri+|JBGH#jCavSgkDq3&%u)X%0+ZI1 pGEpv|$clffCaL;{-LR{*{{Vrvut7n!x?=zU002ovPDHLkV1kZ_u^RvY literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_new.png b/public/images/map_markers/okapi/cache/large_traditional_new.png new file mode 100644 index 0000000000000000000000000000000000000000..413dfebf9ba678bca2f6822b101dc77bc2b8d00e GIT binary patch literal 1667 zcmV-}27LL6P)I9JP{hFYr2$+9vp_WPn$J4p0im-O$5L^Kp4gu+KkQ4S(J>>y9hU17zV z=f}_d{-KFhB;W~;hzyWY;D;U|L7CkTUGlDh;Vh9evm55iZ4(GBY9kHoPd&G(JsOQt zS69c+hK^$8{0(*?P+?8iewThL)`0DsnBg*AU0uv6*H}_-(AL&QS63Ie`IKzrHd;)< zHe6iOE1jxJ3BHdC=$oikRJCFTg3xElo8|qfHyNHdP1BA}p6dKEj-Th<@!t|vc5tBm ztN30>5QJ;j-ji6+~6;SP(y)g zn8Yb>Yy$9#>O3%kwaA3P_kChpoGvM)CPK7qmITmJ1Qrycb^wdQ_FE4{03Zm0Eq$bv zS}0KSHgTZw9&nBIOlTDe_@RpvSh#*3*K>$yF{G48De;_uFpvapNZ<;>VExcZDODj* zZHG9JEP{K*s8_31071o5V7e<9R)(CBXIE^1V^95**49?4^%~yz##ykUScZ>l`Gjs* zHdg{dpaE4y)r$mHqjvzWVg~Yd4lC#4<^yh+lYEdm2mfBTFU&6y1|dR75cjkl38HY~ zSNp&!uvOHp30PT&eAdM=12XmvPE7rx+(Cep5=BvnMDLr-Qg9P6ieHbdPQlM#ey5W8 zL8TOYrAWXj{uBSR+pt6e3MpSHs)Lg06+stEq7UvzAPu~lw`&IOW_LZh zY}7TImfHA8d(iv*vr6h$C;uvjhnu}ahYslg>2z9L_~$#~hu^iUa(0h-buv1Ibj>ix zI=S4kaW(DV`f!A+z$~y(BvJ-mPM}>@0m(=%mz-a`tWVBNR?W@bj$gaA}2d;Z-`?rj;J4vRGYVF>y1z}l6O<8jgIzP^dJwzf~&+uPsV z3>-j_Qa&+0KK`Az-#YP1YwDV}=drZ6|H+$yEH)AeNClM`31XyvbK(o?)b%F5|Lwn_ zs`^>nwJtGLrf7;^{sD?){I_mp`|6y+%(3nR;=0@L_{sjQ51N3?`Of& zdp`^Q{QgpK>C&Eo{{H?B;JyU56h#3A0(@3#V@|NY@1~Yr#%Zd@tgA&tA`i04=Ar>J z2M-<`efzB|Pu^W_)b>1<_73#j+_+y7)DR~Mo~oi&B@xlc=HMTXJ)&Kn?A7NoJ^BkT z9UKK_?i(CzEW((!AQIJggH$3T8tXGbQ@ue$(iC+yw%Ac!*rmL!lQpZ=rIi}>?s9^~ z<&>5&QmSD$X>QQ04h$Ul`@VhqCOSJiKT#CrOhp1k5-q@hZQK156B9dUXJ;ETnM^8| z%Ox$#N_d_Z_kF)A3_}ed5{U%SXw=bl-HONKMs02FN-CAgw6(P@c6WErS65eG0Y()? zxl?HilzV?jDK(&(!b>Ju)EXep`n?Y8ce=&;MYBSo>n$jXvh~vm_zx+x4awGm6BYmf N002ovPDHLkV1kPS6jlHL literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_own.png b/public/images/map_markers/okapi/cache/large_traditional_own.png new file mode 100644 index 0000000000000000000000000000000000000000..0a238daf292e381c69a728d4c83444b44aa3cd97 GIT binary patch literal 1537 zcmV+c2LAbpP)QpcXqTIuhv>=EnAUgDc!^t!ZodMVuujg z=EcBBk%0)27lLkc0#7egLGXd8k9B~*QA{m=?*sNGOgLNN^_X+sFbD6+hg zt=Nhp%hqnC+1c6obLZYX%&fGsw3UV;JN^(m7&@6{s{0hpmU4h4Y7fDfXkaDFbH)1_}OQ_^WQ-K!?|;%Fm`Iw1XjX+ z=FFL)t$-Jc#Zm=2J;>kB*4PSAEAb%hLi&DoW~;%!O#YTs%0!SNQXyKaHRDnR)MbsT zzr>Qez-vGF-2)SCNgz-GDJ{`j5k>(Ka?N-c`P6(H+bdIbmeY)|dr@%)cA z9B*rDBbUo@>Vu!)R>O7UQM|Ep-?C=FRoHHX4t)ZH-$ohIVM<6 z&0)3+>b8&X1kFQH?9>?sG*pYfAzR`Do_-giu7aTBSV`Ppb!2KKSB~>+H4G zMhNL8*v{HgR6vlZw`l?^3oAt!hP1a%9h6dL2xcYr{-Fd|5qs?cF7fub4@3Y!N_k%! zt+g3K+KKy1&t2dqtC28U5(pz7PrCSF4L|TmneAw;(OMIDl1OT#A0d53Bv*?r$pO=Y z4A7N;2Z`5>Y*m14Sp|;2gzZ+S+BF8-M<^bAoxZ+4wxzTD`nkV?+lFh0_-;t#N6k}> z#ATB>5iR2EH=4ZnfS_drYV|5^)yJ<%W}GQL$^Q+mt&ZPbC=~zprv7K$ut_9w$d?jz8{n|E7kG`AVzD@_wKkMerqt;TGm&}^Ok~Jx9sxF%v&R1Y`>p=| zelA_Qq@J$TR7Zb5UmQ4KXNQMXXIGbHnx-`*#IA4Kwkmx7`Q=lmPBo&i4tym7TI*i{ z`vG(qs&H=3@vdD9>QhsJoSc+xgzK;e(SB^xhq$KYrVZ+ zS|cOV4?p%;uzlY?(<&4!v2$m}NT&_cG)bjW6W!h2uWkemAhg!UfS+R99-n@?$k1#B;@x*kyz{&H%u0;3b@?kdG_~i+~_L9?LBa_7i#TIS^c150^`6_ zoH#Ma@NkB)u?nN3>u;E#Qg9~?PB)lYkZJHY1b_ME9LJC6IefS$`7(Yl0_&0xDHRI~ z4zsf^Gcz8glFQUo!1Q#$>}<&5Vhq^RV=yq##@@YY_U%hEG?bxGuoxJ~(A%5EG#k4y zA%u9fC4q#*2=EN>|n_>A492c9oiiUM$00000NkvXXu0mjfDBb}r literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_unavailable.png b/public/images/map_markers/okapi/cache/large_traditional_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ad27c73978c75308c206a4756efa40b988ab6a GIT binary patch literal 1518 zcmV3M>m3FtYJ3GJk z_^>l{TG}lo@?hdgP9}5b-g~}t&YW{+;J+#&QYs?VB2qGL`~eZE6_KJ_X}nTI-V~9O zBC<_HD!lQhMdXx-ToRF&Zk6%4i0oBLN%H)8@npYQnP8#p~@@nYsJUCOcM zX3icsK?W78L->bw1tPaY@zqmDQ4b&JGNo) z#H+7TU0?42?*N-ap^z~xfTpIVjvIkkzkYq?%9ShQ$@X?W+pqy6oo4Z>RXp*^E2L5> zb@b@by2i%F-vDb`-ZeEfb?CY-h14`nQA){hPmkMorfQmQ@eMIYuhp~ zFtAfZ3chF2LJzi62aa`r{5B|zu2B2J3*1*<&s~ca@l)a} z&iDPoy1LD*cKT~f)t759@#XE8H2N+~SMV(ZqeeLHsSIAGhh1r$vHa7_yWIIhiAtB>zH z5AxlGPq_28dDP5Xj$vo{;`jHN5xR|~bDzYvTpY)}wywXw-?44G2q*<&%NV zOnm79xoDb3acO>8&eAyCzVEvE-kTo-Dj3@bly`3d#tj2p+gK@V+org1=1@vSf!RQ1 zz_23kwL!ir!hk+40075vrUn&>0&(&Y7;ikvXe6Qq0c_XAaCA&Ni)k4|qQ!^^B7$W& zxQ^hME{>^i9SH)2$>%@LXud7aYd<9la0+&*jG1CYA3__+GQW5UYic$zXU-gE7M1bV zs;@zxfj(km>Nc+F2A76CPm9Pmq7p`{!S~((tb!59<}`H8#LPM*G8g%|;#;^h`g|aH z71wc5Nz+;xpr;M8X%i#kFqBKMtMl!#6BLLDp-_m(j7ftTG@b!Q zysO1jRnYwG=Y<~Ms059tJOINRQ#bQPG+lAXhdkw}?i+_mTJhSoYdb|Gtdxq1NVK7$ zp{%j7u`CvgjRDT(a_rx~KhxUUI@wo`?HL>ah8XqUKM$@4IC$`2J+K6*2JQf6ClZMz zp-`x1&6+i3!MTSH9n!aN-`;uV%$Ywtuly#V7|r(x@OQv_CkPOkfLZ~jw?PI-4Gs== z8ir9_QBg5#!GZ-d0NUHzt(KOSzuVf{PAjGQ$k#^?a0U1)aP0?@z_157rd}rka6Qs2 zkOl@sq~A2nu4FQ~blI|HWwBT+yl>yWY-?-lnW3SfPM{q)4|D;&z-6Eh7zlWu3q+_O zfM3uy`Fv?WO4GC}<>low)PXZneLB?f5_ZHzPJ1NE$HRH3E)HcI;N!lm;a>v0|Rbm Uz$avFQ~&?~07*qoM6N<$f<>s@z5oCK literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_unavailable_found.png b/public/images/map_markers/okapi/cache/large_traditional_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e9fe99990009e0aa361d2b1f76d612874314653c GIT binary patch literal 1520 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_unavailable_new.png b/public/images/map_markers/okapi/cache/large_traditional_unavailable_new.png new file mode 100644 index 0000000000000000000000000000000000000000..bb881201608abb0cd4091f968db1db6be673ab12 GIT binary patch literal 2061 zcmV+o2=e!dP)RqB`07J;AwArO>T3;oavqDG3+mI??0k_cp63T;vdaWFV(96Q8L z>^QMw?|NS|v$Hez^uw+bJCAih;zN&gHKTjy-2d;Ka~}i$uO=cP5m_W6MQ8Od5s?)l z68JX7t3~7m5&2X^ek&r8eE+Q?(j_8aiO5gCE%C63{6#4xqX!R4-u^BkKNpc$Y;aIc z_4kX2Bt_(=Zv)^O5y|v@@PYiHyGoD~k&``FuY7em|2#Lv%j*Bt|eu?XqPY+`gU2!iBVL*r2<dyJ zD(JHZJJU2x!|(Sq(cjPZ2Oc1H^eERq`Y5-({4({+m-ErH&$4gJ7WAT8EMD_F6pUapO}@@!rD^vuD#L z7Oh@Q$-K+!fg-^CMgWd-@QI6vBI`MLxD3bpIh8ujihJ(i(p9UNw{$7H2X=69WH0w# z{TtRk@dOhC1B4qINR7XKxU}e!3yRMU;F*;ADp(P@d1ikc+;W}rrY16(3~zV8N@CLF z?iE>r<>dsGa_xy1?6I$&`-EJXrqX!Gvv&W`MwXnvrjM!3?-wmI-Hs4-daVXWwg7 z%~`v*`XciL}kY|Ir=fwV;sC_8)F>8&8Zllx5ky1~ z5ggmaa|Ji!;bs(`E7JjVrO+*#5D?CbJNc-c{AUVq3+{qcW|D*%C7DRm5Nu=P@`tIZ zsi8Pf!i(#7g6YRhWXYIWyo@))R{*6j$Q?vQPVJSwQ7>{M0!xC2Z!~>;PumCLPaUr(B}e0Gkf~ZsrFHLy(+Oi2a4gt?Y_Y}tayY|~VcIe!7*IhII6?g93X?ls5o#%el6VNo2Hf_wb zFb^H!SYC8|TJ-LP0D6I6r>&B@1GL|^dn?3eP7YBe5U@Q+ZLwqJcofH9K zUosgU9seTGKipq*;>7XLp<@%y+H0eMJ8v}uzu)wl-rU?weSJNhot^s4tA;{CSiSy! zy^}B-jJe^68xDsP6*U#nM*sNGnEC0kp5E7nr=|X!V^jkWk=uuchL&}8bv1Q&e|DW; zKdC~2F;!MPp(5omwRlmyXmN8Y@~_?V^wIb)^oojk^z3_4ZM?lp|Fo+(b$p~e;i*c} znTT#?t8~Y$)Gxohb$3fkOJ8km?dNrMb#I(c96%G1@9f{d|K7LW+;n$MzpRjK+msv5tMkOlt%q-_O0~l^^Z|{EV%`capid7m{T-NKXY#BVaUIMy@ z?FUEK(Tl<;zwi9wpY<#>zUW^PI1z0Qth=MV8yLP|aB%J-3>ssqtoW20DT}Jg@~B%? zo}eO}QgcfzHK#aNrL+|wo+{QSCQI~Fu`w ze6DHQwt@h8i1|R9Wm&C#eSPyrMn)>5(P$)@OomO0~4liPqNEjyE+mjTRRde+hJJns%~K3AD32M8p89$^FTM^Q{C3apqo! rGk3blnTuwU+^ILFY1-_+PQd>F(zpgtqGdgA00000NkvXXu0mjffsyc& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_traditional_unavailable_own.png b/public/images/map_markers/okapi/cache/large_traditional_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..9f983dfbe130a57bc2b31d6f5d8974e102d40c1b GIT binary patch literal 1940 zcmV;F2W$9=P)h5x`}Q~h^z|1;5N8M(U{eK5!_{)K(b(6c7ujMBCbTbqS$vRFcjL- zDbwl9^v-=d`(bWjTG}a?@L^B#Urj`^L}adr_{P*%h{!?_@!n1G znIiJGh^Tfa&~PK(Gn5!rmV#B)XDua4tLZ%d1~)*vEVMCAJQ3m4>CM~8^W zkch0f8vqZBNTU6VFJwNI-id|T9}wR)qnK$*SUQ9G*fbNFm;{BUwxIik3I?q51!?<*ET6_ZKrN4 z18(Hge)H_J_fHA{Y&vtsTDfv1i#BbdyQztAFvx;6YnZ!qDdBL~$=tQ8-)L)_HJP7O zfE#Jww{Ks0xUDLMk*!>QqIW1SdW#i&M z^2;4N2z7OlTT()#v9Z}(R5YRZbu znq=nX;k9jR@PiNfF74WNjN~+@PJ@&BOglfrW|XLXozl`$t}1PW)GlVtnnh7j5&!Kw z&iR2Ka1@j1V2ni6z;PT5!(hjb9as8ZeDO-GyW0S~;}p#;YT67~wn@mi!m-W+eA)hY zW@HyrUAzq4jPcnIACjSDv#97vOvA>q>>J~HdU`C|aTrR@|JZZIN-b#tM(nGuMiU98A+BGyT%RaU9JAZ6F!_ zJ+81rGHRXVu26ya9RUDXmNhx3h-QK}n!I1~$B1j(%!HN}z_b(SR-A+xBVp)xv`j<< z5y8+cY)h~bHdeyHwj>omwL#M%3&?fF4L54T?dAYh+FcM$go(rl7>dLw$*iKbdMky6 zg-r4K`SY58LOg?b#3T_nu@iRcP}L1tBe@WLBv-$h61@%>X)_QT9wI)JAQ7|ZigxgI z;NNiWW_w?62-~u8905nh4p-&o8IUR*cgy4e@j;!~U;;gAF)-Xkedjx)J2)UBD2jq7 zW5Q&nibsKn`!twr7wlepI9>DYTB>;11<>6(=Z0d7V=avzKWxCBH# zIe4(WA9ADMPk`41@A1}F=dh}(wY9bWRDnZ>4#oTT?1}!NrNvUgQBoZ15Iqld-ba2_v(|Ta8}A-Cpw6E^-&a&r#Ia+?oMo|?lU-EAkCl}Xe?^5e zEjQPvX_~KGQD*)u5^+kKn!ew@efvljZV|tc0TFo{m=7SP>6qQ!QT^OGW4NQkuv%NK zjI(D0S#51qN3yg1gIl)b&MYicPuA5LYg$^2a|Hz#d{tGQ_dfWbF?HTN%~x9LQ)bM_ zQoUYP(= z+j-%I-tjuQ5IGhs?DhFdz9}g1S6{qnU4?J&h1Qu6(_HaU+hot40=8@^2fk7iW#@Rl zZ|gR69SO!C;)OE}i!FI2|1Zot*~3 zph%i0000^?DMmxvr2a^Bb#kNc8HueLiX<(WrmStj^0wDy30a7YF z&&Tt8eBa0S6}en43GaLa3`n4h~A(zn?}31H(84Yym0l%>?S6KtQ3C!f_m)JXs{4UnG_4;MT3LxpwV3 z`}_OBTPl7Cl~RJ>0CoX()23e3+Ym5N3WB{Ak01ZSrAwbOI{H1s!(XznFwcVrKO&_> zDTPw9{-q{h1O3GNfYkRjz)2v0-dNQ&zH()N!NIF6Ed0#;{7<-USOpR(8~RHrE#Lw{ zDTcsON9_O=0$C~v1OgJiFY!E&ot+(u#R7%G3XbDat-5%g#P?-P2Bnk*^y&;WgIkeI zSc#2DN`;gX&y)1@e9Y+Rx7@ooPOawRc^KqV$mw-)X}3e5Jv9+wS+1lQsW-W%X#woJW8RvU!c8eJt_oX z(&z&ra7FvO5eQ_EgmMUB=z|%8Ck?6?_z}T`Jks~=C77F=tCKj}PEGV?i-MOl0Y|ST zHKKP0X=ffm%1hcSAvm1Tiqq-zx>8C=DJ`XxH8wWZJw86(ZQFLNYEDj0n38XwzyNR&xUjjodBZS_o0F51-O+bvXJ;$Z)6?rKD=TX{ zs_?W+8hRfR{FH>zdr<;r3)T{->J5&7((dl=y5l$l{r&wtgM)(|0L5alHZ?W%dTD8C zSxWf|cnTYruCD&7 z!Iyy-H1v&HI0w$ORv8Gb)t_k9b=_xDN;Wn&mIxw$uA}q_aiix2S0SlHQl+Hg1>@C{Hc1M-N%B>a zPDtvJbW~D>JN_F1H^xHQ@UM}g+j^n7Or$;W@CH+p)^w7|dqS2@%B_uVx2?4c| zGVSf{+PrzQT3cH^5gHyIRzpLBcJAD%cswpirwXkXd<_lX0MSS!5?Qxy9p}%VXT^#Y z)YsQ@@Zdq>@i;9lEtHj&8KCDi)-Mc65lQ!^rlz!i|9;ih)@tk4t=h6>i!NQdBuSQ} zKQ7#$i@~>Wpt-sE-phzMaNxkI#>U3-+qZ9X`0!y;sT6f}b(}nTl6X9By1Ke*nwpxv z2C}b|U2}8uy<{?}`SE;SWHMCQGtQ|XcsJ^~lyLazaBofi7Q>P?J4#a)q5zNdnHveEQqN_KqdRx*sIjq8kw`?BFJIR5^tATu*`tjcH|oTR6Ut;Vnw*^c zOp<>&zGXLILqj8hfR8{RKrk2}5b*QSM|FJi$?v&(^(wJgj6;VGv1`{ZY}=-_wUw5Z z7A{`A$oB2qS-W=a2A~*7zLo%=5Bz>Vfk1#zsEAM~$fHO9Vr1l>w6wIaZQC|#YHH}{ z_=0FO%BP?Hfn*Gzpb#*mkV`DegtXZ=pc>w{!@Au*N`zb04P+R*8KKNig0FNI} zP*U=JDl30XTibcs+S*7aQ&?7()vH$%3#u&2MEJuzU89RIS>=%}0Wr5Hl0%oIt z03nHVI?Y#Kb<@|^O(;~vrcE`x_ul)&VzJyTY2I7odsC zw)pbPE>^GpA$4`XX8rn~ar5SNKL7kPj4?<;GP7^GJ3kCmFuxBN_jeXZ7Z8BEurNkA zj^W*RE2*mb2{&*4jqBI{ie)+2wu9psj1gX6GsXmgw}4f7#Kz4!P3~0qfn)&zIT4Oy zux*>k$w>wW2N)RWC!My)WGrmk;5cTU4U&RDxm$sSpy z-7oq0<0i6M3){AF9LKd`UgiAc{4aMS43xTKUebob7UWmJA(2RMfT#n~4K@yMS6Gww4>Aq%cuyEZFgX}oZwFGN0h+!c^^#|kx~mnK;b zHo20=-AH=mutY1~w{PEwB)>5xC@I*`&`{dc)KnS{hv%J|R4PS#d;7D_&d&4_jJB^30htBmMpT!){jI zZa2*NJp+83m%W`YAh3vP17zFC>mb?d|Q2 z8e_(Q`@p|}N5JE}=QuC{OuHhTe6qy^IIhy?z*AsS(s(A58J(Dz_<1A}DGi6i{tFi_ zJn!u6?2pA_Bfuc=4`38{2>b^a119sbPvuo;SpnXbx5)XG0OE;6;?c^LE5BD>UjEbZ z@o{tR+_`TC1_pXv^1r*;Pm%NbDRVnM;a2noa#;F%!1F1~++CjR?(RMl4u>}s7Z+FG zy?ghTOCBZnU%~S?AKpE%Bo?cH2f2~|0gz*-&(b3Ufa+%+Ev$VdB88@6R19s!gb*7N z0}DQo_-YJ^4;m9f6dxpz_`n15& z=A85Uu(Qpy?Dj%5zW679CbK!`e3$c|f6fB`aj-j`NJKh-005gYCVaog^7(wsbzMZG z(cyoE01*WMGy_-yAPwLOW6UO^hN-Ekg8&{PB8!O5N+}OkR#s-pt;O#E+yKz3lzRB= z*|SSLB5g#pQV6ldb=`+;+twYKuVRd~YMOR%uJsm806-OhWxc(<*u8r<4jnoK0LuWh zWwY7sT$B-UWaM{}BR~W$k5*J+71r1cSkbmQv$H;z%RNU#ICJ$Y7oUz7t!j~-p=eA|!GRBG&+6-ie?V z3ILc0hr@5rg)wIh?Ai0?JDSG8xrU~urohurZ-_Jnn$dF4DF3GaOHA2mynp6B*lG$> zc^fq~H6vZkI}zd4$mjEBb#?Veo=9~^4lo8V#-V8(BO}9hI-PPrK>NzgXkD=$)zwwV z}Eq}tN*g4od9fy&BCCmM~O1Tf<7l8Yih#-A`*$3;c&!> zMJv^|CwHOo-X`RoyvjRytg3BB`>M^8nx;9nZU3n2`gZ`59>(lkm;*q8Kt)9bT3Xg2 z7KR490}+jKu6>?NChgIme9~Hyp;)X8<6C-~fygsrzz% z2Z#tnfKmjd2(`8KsIPCpg$uu6VBoxR9AOGU+;s(P+g2MlwmTjH-2=Q$v6s_@IS+vX z38e@^NMte@{PD*ihK2^=I0CLK;krV(t^gIR0su%Uiw^jK{RF1p=h-9jTu@Mo5DJB` zX3bixU;h+bS3*h&DHW7b@Zm!##WBx3a=9#|ln_Ef zDLF%ZVICDhX2)$#%=8G%WU;?X~FF^F!vT5IB?)~pwJb|jbZFAXA$5t)MH@|EEr@iU_ZE@Kxqed?b`Lb zl#;uys|z9Ycsw5I>gtL`B9R$|W!ttocI=qd)6-*>0WUrU0B1IMNdmpSz2{LVAOnSa zzmZC%YB}f2cI?;@^N&4s>Xdc(@ZsS^A~8_{xE%P5&`L08UTPi@o=&GHZ{513H#9UD zjg5^409?I#)!x5<|E>Q1{*;tb0+6#57VUO@IYa$?1jtK4L_#TL4GsFF^~pFaKP&6_tTy~P~>c^_C&wNnnf90C8il0`M9X*zXvb+Wd$wsLH2Om=s7rxJ<8 zs0U#Cz>CV|EZ~y2qH?F8IKh9N;(dL6qv3Ek#u$qY4Gj%@z|K4%Wv^pEX$Sm4z61am zhG7N*0q5eyixVg)l)j`AIcF^P&nchvENkum@qa8d{st}l6q60bFB<>=002ovPDHLk FV1hOo-7f$D literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_unknown_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..2b93c4422e59c1e136aba51e599d251f3629acdb GIT binary patch literal 1591 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 P00000NkvXXu0mjf^2r%_ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_archived_own.png b/public/images/map_markers/okapi/cache/large_unknown_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e4f6eaa0f4fe84dd0a2c0b26533f2aceeae46b GIT binary patch literal 1968 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ð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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended.png b/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..cddc14e326343046fc07b0560365a1b213207b98 GIT binary patch literal 2228 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 N002ovPDHLkV1j9ABgFs! literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..f7cc8445325496c6342d0dfa73f894eaffd2d553 GIT binary patch literal 2215 zcmV;Y2w3-tP)&j0`Yzwe%NuOQE&(GTwz!rUQ*2;}x_tuJeB zAMp9s9*M`>UbigwW+_uGQl_6QEnPo0d5z=iK}USPwVnCv=bOj}HcfL&|A`X~zQiB^ zJrN)C{ZXQx8XB9M2W;CmE`A=YIo5faEqAYwRsKquOeX5GBx13)=S)lgKp;q`?KRVp z5Ls~3bp0uGwtIOZI!1Z*JSyrIAzW^>ECwBBK1Wr_%nQ75AK;J1GPiOOQ#RJmzFnEesp)hdPbp z!B2^n#gT@@Gwh+de5O)L4NOPC5W?Kif8s<#dG$O5F$6IV9e9;P2VO1MHpK*n;bxX7 zg&1IhEVD_>OrqTyLkni7W>Ft#Kq>p^vi;5^On}4@gj)bazaW^5TA$;OkD$^ zK>^x%DBy{PUlUkVhudUAbx{q_IE(FB_k~ikpxB^srYEVisF5`GyCG!o#_%G0SO9F}5C@PUajJwgrDb{Y7 z56lNULukX+O#pOW=;gI5ZNyh35SD}&lCk?}G1AA5mcJ@|VJ!`>W;9INvC*9E5#&{|(M{j~%mr>SkIz~e1v!?&L(0DqNa z(!w%5*h-<%EG=DuF=)_Kv6@PE6}C$A;=6w)8V@6cU{Uo~QCeY;R6>Y)Ur*T0Y=a20rJk*7jF|>>k9_nJ?)cXkBfZ~Jh!+g;54ldK;!C4Oxm{AYF zKU!a)f4CPd1*;m?v18?KT$Y6pNu{;ESTF@X-`XRwSleOKU;E?kPluR$=S+f>(fQ$F z60uRTDY|RT*D(#jCl`*hzxA(_czo1X%%#3`9umpn)Bon9p7#(40_Ah~-nz$;Y0bn$ z6rXQ2skQYq@S`aT0BCI=Sh;Co`$)pi@%JwPux8^NwmiI=Ef23|&Bi&HE)UYy42Op? zOoMnbre1pQIVDAsbHPtJ_|bk$)4=cb@zV#Mq{QVV8k4ksoK$bVJyK*@?(Y;*V9H^X zO3CdV@3hVw3MD2DT)J`i{gQT}&`MNGut_GEE-4{}(K;Z6=;b zbKv!ETy8hzC4F++*2d(F87q8KQjopz`PLo*j_lj_$K>|y-+WjIS#10dAq3%A zf>3Cfva&n)R?}{R;VZOX{Fv^cGq~LrF3aShrthj1fz^hTHiLs5^8QUyww;JrE1Ntr zou2qZ!5YZ#c;k%|pY7cF_*|`R>*bgCKVX_BmSu9+T}!a65xm|~ii?YRbmL=;{O7k^ z{`>;TWSUit>-ff!9STqwUi$lcux-gK zZx!F)^f;CN8tU(8ndRiUN~OqqQcTPI2zsS$ccV;Br}n z!(*&lw}}N6i}~Fnd#;aGN+pF5tx72)2PEHAuHRGvAxx>WhYXt2r#ta@yfii4&EmyN zId|?1!Qc>?8i7zK1gKU3DWx0m0-iiCa@?I&;+6_%tbz`*N#cYQ`z=31TrL)(%80SY%I)$3;p!>_mN83q|=gg z+D1x=z9AR3ZCj24Fj?{}f$3A=P;gYx*tVv)*u#<~%V=(1gOn26woyuGYeE|g&Hd>tMvscMB>mp5APfj%)JpvzDuFE`jWqu4Fm|oOn&e*|1}0COul{{YHwPpd$#={(2nb`KU66-B$cy86h-oXvlhz?3<+ pGBMqNJTr0}3RLx%_N9GM`#;J*F5q%Bh`#^;002ovPDHLkV1nybK?48) literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..11df415f6c8ce270455547a43a698e7472c2b73b GIT binary patch literal 2739 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/large_unknown_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..de232704ad5b09582a15798920c195565146ff97 GIT binary patch literal 2614 zcmV-63d!|}P)5{%?w5=aP-gph1D zo6Y9t?!D*qkKH7j7zqAm&fM3z=ll8ne&_t|xq=aEpmt zz$?I~LX=n|#z+NBAxius#~*286ycR8_Z`^o4KxC9w$sbP2|j#@`P}{Jnl}LRR88%} zAC#R)-u&=`SEgrWhlCKz2OyLxEeZDZ?GQ@H@ov{6V?l@*@lDmAop`0k*G~G>`Q*+l zMvHf2^?T4{J1w>4v|X$uYvwF&#EWacE&Yc#eOz+rnY(}3IJ<=HbiO?GD_NJ^W^}oJELMep%&}6SN4;O!<7=mQ z)zbhpR~!Q%cV;mFEw$x?*HdOcKxbDK(?k}{dK;~aI^6HIl;$36DwDoczaG|25}OjN zyo~e^aCS@ppy=ej1KZQ5&PP+-0KEO$P5@s1>)WGVdlFN~v6EbM0UijaTAE?>Y06Y+ z{Tiu(iALe#90MpH3qS+Xo0@!NRLrV}1OdTVI1i8IS^{E83=9ckZg#m!A;twv;M83Opo4iFs3i#FTVIj|+f3yZ=C9%E%fNv1>^# zvYcMjnK12oH^c!G7=my_k1m_msjbf6ee$L(|Y*~6H=U|9thG?K5X5P_%FcC-*(WNI)mJM$2_xt>TFq4+9}T^)@s55snr>HDyGQh$}a5(>vD{3+g7ynC3<`= zSDa+{Y#9QG*7n0rZ^8ER&o3}avU%~vb=)EI5aS>-GaK9XqG{jIYUJqsW`Lk!Iy1aJ z3$jPcKujI@{A(Ydf8Dk(J|lD2u2++V2=n^uzem$F91e}T9)oL#D(UGl5CY=k#}N)& z?A-ZZe)jD5k+#CJGU@VvO5SvfJMUro^jUOuMM}3)YWQ19X*Os* z-~tjy3~I%;TL1`@g2>p4FTOZVdU_g5mMmlL-1(H1mGbVpe?dx#QVONy;G0S*EeuXS zBmmwK-kZ^8i~&G&V1<+l+m=k8JeBME+LzQQoV^!JCcEQxK)VQElG>0xjN!2?Vj zAwDn>O+eR1(TznwN`;gX%aSA{B(Y@4{j6HG2Ga~O_2-x)W^lclUgAgi`=YcjL9E!Hv1Bj$SGLQ~U6VZt|AU?W!EJ%!a5C}w% zCS#@G9sofq=}bsHobpW5+-gz9l{w0j1RIz$^e24$JV>t3l(!1+%ZA!L;h? zthn>%z3y+mnRj^ncu)7%t;wkw8QO_gUo{`Ctu-&Cr8T?e&1;;zaG{w{P@uc=@?2ul zB)8^tYPzoDa5!pGQc|8BO&mZdrPcsX69^cTmv^vtuTSpY-5vdUXwl<1Am4@sJMX&7 z+vxQ=pC~J{;(L2L0&rp)T$=#>E|3}^Hg8T6>(+U-;$p8OCB-F#__Gk=z|8=D11#pP zx9Zup?fPh)q7X?I+v*lGO@lCPQ5+^y*RZVasIKt~9o8Ed;(0LcBEE z*tb;&q67B`sG4XPf%`69O74XAY-mY?-f=Or`n#GAoCg-OX;UsUX1LkA*T?SN-J|rC z4!GfjU<&9Su$<68s`!>INj&zLm*V1y(L3jF2Jo#(h-FExUk`Hma)_oTgZlaq4GkuZ zjV6~bhw12u2u_@+k&_cge!i1}0w;xqZu0V6z>% literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_found.png b/public/images/map_markers/okapi/cache/large_unknown_found.png new file mode 100644 index 0000000000000000000000000000000000000000..de3f4c6d3722af07ff07d77d15b298c29b7770c6 GIT binary patch literal 1430 zcmV;H1!?+;P) z*`3{NX70VmhusO2WWNgatp^Un%$~Ww|M}lDGc52wL?jaN#$vJZVrtpFh8u=)j4{>> z07Ue+l=5_GX=yZ9J-?UmSS(h~7;9EaAtmO)7^~Mb?R36-?x_II`B4D4GX5Lh`LYxL z%!R-hD>n?|-Fqe=9*=J_4C8=d7zg6-@%c}m*grp< zYdzQ9zzxHApE0(@K4*;Wj>qH28Dq~f#_EMMapwDDm`lzA02->A?b2IC3)r(~PfNDK zj*gDXL?W@1i16dccOU{fHaw4og@vOYk7qRieD=#3437^1;COOlTXb*BYXATux>>XU z062gC{G-luBFn85+rl{y1n>NTzQM2Icl+^p?Pfgm;3ENmsUL>E#Zcrr${tt;54^_P zI}U?04k8*TDJkj8B_Qt%5Ls>_%MD03W3&b!J`)eSG|pY~R+4}5YZspv2|gUY&U=2p z008iL{CI1}A^2Q6i0G!S>mTN0~jpH< zg=lm(*4Ea(x-zhyAKd;Plp-+3KtxlVYrRUT6`ke?m9vPkRVEQYlom2L7=+K~M@!37 zXl&f9hK2^C{r!KMjB#+zF*!MDGN!%)03iei;LegRM;3N~h(H7=MNo=RR#u71%4%G_ z`WFTUt|-$KF(HUsmOv_%Qros|H!}iU8Q_YJGb!u~1q7r;C`AxLA{ve2_U%!Ojg7)I z1uRR#vV^iM0ZLm10FYAJ4miP10gLAa_K7ksC@4kn`Fz;4sTr-UPs6e#q?C|SK`8|X zADJ0&A&cdi5^jqq$^j_}j433O^9Tk9kVwQKrGyX?O35YNr|%;hvOHEeQSfV+o^S;r zfKVueP$&cdi=8V)SjM-*7N8v0?EM!-3jhd8DcIYQdE6GaWqJ4cdcn#W$iD@rPMtag zq~D6UY8YE(-UWO~_bASRq9OUfPPkJ*b_Y5;J8w!Uxn)@{A%tt+zJ2B#1b91ih>S}jwZLJ#sMn*+kOmODQD) zxvWFmZp)ENx-TSvGAW2iD5Z?i(NS-Ed%I89b*;O*J9hEn#XB=IGs(>2CV&M8%K*|BPJD1DAE8sxx$I!lE@s$aH zU%GT@%J26F7-NC4v9a+C*en3a3brGg1I{2v0s!1@cg*Ycn%Ayfn?<@q=}5|wdE;*X kobqMIoYvlt`%!HC2j$SYs#I05v;Y7A07*qoM6N<$f)oFaga7~l literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_found_caption.png b/public/images/map_markers/okapi/cache/large_unknown_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..96147924afd3b79a6d5e00b0b900bf73feabe3ef GIT binary patch literal 1456 zcmV;h1yA~kP)AD?W>3_Lj42ngG6i*MJpDpVgnj1rkiNnn18iuO*YX@c6K(K zojdpXurtYYo9w2bK6&6Ud+(lmzwdnK%$*DWf=y0NF0pNU&A+jCO)C@%-xiC-Y_V9( z77B&#TrSsAEnfbU;I?hAky5TS7^d|UQp%QSH2T$lM!>SH4*`z-+Qsu7k8yfp5Fx}8 z$8kRU#|YTA-R3yXUdM6v+P3{rFkdJXzL!!qjul4O^Y!cenIB_s=UV^>A+DNlzsUK3 zJC1Y2vaD-^v1M8J*|v?8@^LBU3T0g0JhYR^sVo4in#+A?jQM%N1lro#o|r3e^XAQ0 zXstJBt@*0&bBrdqHfWYwd! zKAlJ;ZmEV*wFh2$>E*jDOCY7i`t=*wvSkacEAC+|o8iz;pKv;Jiq}4Rk#Tzzx8xFu zMbu-Pp5>AYF2xu#kw_%gR@=X(0z!Zg5-BA={+K3{83mwi!^2#^d;>v1glnELpD2sQi{4*oJVedn$*%uXX0bmw>Es4j7CvxNeEQzLN|No*){HFgZEF#*Le}^1{`;cK@!K zXsvZo2+^svmLZTz(_x=i0U<19%q)@P$9qU5lB`>IGpkpxp|9@*BO`wxgg^+$WHNy6 z1W-!FfFzKp@VM`>K#8gf7-KL7v^HpMShnn9nwwMf_I8s_|3InaVT?d2565wM<&{@e zh(Lp%W!RMOrC?lxK$(Qr2G3JWOic32FT)HE4^b+4xURx=J(NmEhwe%JP)lkT5Cf1Xssj6%3UctlzT%1`aBfSOifME z({qe`K95o!o~O~;J1hJ0I%9>vf^6}#51xuzB`9ZO5Td+(U|^7efx#e4-whS`frZr# z6DawvsHK3P4_a%2atI;(vIO9Bqt9Vs@Dd9t!Hyj}K85nB=qD1&N@^&-t~G#z<|_e3 z-)EX}K^Kx)5NjdfmEZw^0DMM%nCENQ-roM1=Xnv=bz@4Y__l4^F4?+uYjZN0JS)Cf zEb0RX4xH)e=*TPpyufVsGv~uO1orRW|BgSO1eO2|qobp%rIfdA-@ZK+jy-tr;K;6B zySmcp^gw9S@Zl4H=Y0aI;{Q1{6+VGFAPUG#CNrMRX5*<;YH>?TOA?^JzdyHg=g$7_ z?(VebdDEQTU@kBn0(bo1?m`I&!1%$_#+YfX^&dk+LrYp)TbCu1$!JGM$M1&^AMP3- zA0PL#%L6tr1 zPAnEX6OYI3-rn9J$}$J_4+xyIrkaUb0TotxtvaWx|F{3`eC=;O5YYUXW<+uT0000< KMNUMnLSTZ^LAu@m literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_new.png b/public/images/map_markers/okapi/cache/large_unknown_new.png new file mode 100644 index 0000000000000000000000000000000000000000..76373eeae43b88914896eb9d32001b4cd1ef66ad GIT binary patch literal 1698 zcmV;T23`4yP)@K^*?94g6*bjCwutcfUS9&$y=XuWiyyuw%|K||-6FpB5=mI)`>Tfu15|{;QF1jnIC#fi!-^+qC`Z)X{;}TTxEXLM3D?84?Q-LnA@J&}-^VZnhGAfu28JP# zQX&K>rEy&k*Y)r`56{z_KYzX)-q#}_1V||{3{+VT0&E>lp31?oLt&v2#_0C7c}0t?-|?UvRBr0<%Em&mWv=O50eDgXMWhPhk#UylH>>spQ0o6D51abLY;by!aoS4}U#v z34toEQz}jB)?M!BK$nVU?`}mP47|UZuI_)lviI3&ytXNsk_}I{x?QioB0|3(ICWWLZQmXATGDe@>_j3Op9yE~Umj-$SO6AtL`uL* z3AE};AZR2K!ADCstlRUqD<3@g%75$rvh&J!Bi2veNLjx-{gLeK?4+%&jggTN`GfDx z`87fHm*F-ip4w~H219Nz7>w8Nu8(}nw=}ny`r`g{_@nuv(z|R30id;hYi@4t!1(xh z$K>SI0iS%R{MMohR4uDeT~xI{vr^gKnGAh?X_tJo@=IA?zl-VXzg6$PH7>sxuS$Nk zP#5=91FLHxnaVUu$8C_$Ki_+)r>AGOrKM$}wYBxHn}Guet@Zw!H*fyzlaEiovpaOl z>3c5h9O}O3>YR~iKno-l1gIeN$J5`IckVXwi}yy6a@9@8S!!t{^^_mw^JRBY*QWQG zQ+K+ohtW>!&9{Gkrnk3uNC@$t%?Ox4+m$O<`g@-0l0exI z0tC2Zh}Bfs?xCK0=1LU1v5sVI4azWfGRo#*0`rFtAD;Z=&%G!0 z(jYx-A2?DXD}yMXu{rqF>8H&bx4WzdkxuK)w+~MO^IJ|1o@~Mjb5RAV9=oAHL^ae! z+{U^%^}(d7txl__sEZNeO)Bpeg07*qoM6N<$g0VkHKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_own.png b/public/images/map_markers/okapi/cache/large_unknown_own.png new file mode 100644 index 0000000000000000000000000000000000000000..6719a5a065e0772652d283468d993c757ab21e54 GIT binary patch literal 1563 zcmV+$2ITpPP)ih$)O(PqMbzH-v03L>4Y-no2Tl&0$09H=@KY>HU|ANnZDCmwDJ4RH z)&`{llnMxffFLlOJ$tqm-lGu^0;H5!mWAWg;W##y6%q&ngYPTyc^?2{f;I2gN?Z*B z1}OznO6uw?UVQNoy}f;Z?(-HUxo=AXifnfMj(PO_v{Q)PO)rK`a*I z@Zlc=nsj=er=M=4x3`bQ#WZiec@!xHLR8d%G$0Ehuv3LVY1Ax2V+@|>@x>RH7#q8U zqlNzdpU~I$ z14c&9^WleoLTimN24i&TO=FDo!AZkbDqB$lg=ly+2oNo7N;%%Wdk>wRU5t$Uo%84a zhVK`A1|2LlJlh6Ao zr3nIEkp^Ro?SqpI_m}2}!0oa~*s=<4IR&&fXsuC7vvq3&{rx}UrI!XN6nvCY1VIp` zp(1iJ0NaBY&`21GIN^2CX}yUQlt&<7X=#a1J~>Z1{Q%!r_>=;#<@V`CUYq<&%UO?AbQrcwurz`1B_jzE|OO)(u(il{J);5GHG z96U?7O=qL)jZ<*$+_@5o^-XN>3?2ecM+Cg+UM(ToG{{D#2t%HZMy?1Bl~U{#Pm;;x zlrctXt!-nBJuom39~>NvH#9UPg5!Vv6M2IOvcLrPM%qL`|GP$l>{xy7WN=}1HO$w=gPcS z%IT{^L^=U+rE>Pa>sV1+Fh;dhw^#1|Ml11BS(%%fQg9-{fBqoRmnSd zly=?hwCjGWJuh9jdp9$G^X6DnlZEfYkg$w%d^0MC2+RByQ-b}o^Th})>y0&e* zT|#XCUM8bEMn}hwA3t7ea&amX>eaefy?%KlfZ=>)yS#+tJ~Qr=E&Q$C0*e zV_DWjQ&ZDB)xZISF=i0>C7F!J=bz6pJiMTXh8CmULq^9ZfX)D({rw9sB&HGx=NBU* z>dEEhxeR>vUHH#7$h)8=Al`VRLA?5ELLNAfu$r1&A;cer5Pw~dz;A#{u6YQ3&zdYHM#w2cm_S z1dKO(Ugn3lZZ*!sY#ZEef#oO4s`^pQ1}+1KIC`|5?(P`F!wU=zEmoPUEx7MMwh8Pw zC z{b&|8;G^PF6oE%0DQI8lNFlxjTf)cLPWXA#$5x`ClH|)f)xW69@nR N002ovPDHLkV1j$~==1;p literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_unavailable.png b/public/images/map_markers/okapi/cache/large_unknown_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f91b3c3c5ebf3fbc790e869753419b364589eb GIT binary patch literal 1551 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 QH~;_u07*qoM6N<$g6{A``~Uy| literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_archived.png b/public/images/map_markers/okapi/cache/large_virtual_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..d337dd0e6c19c4ddcbae844a5569799113cc6176 GIT binary patch literal 1600 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_archived_own.png b/public/images/map_markers/okapi/cache/large_virtual_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..a8be83996d6638d270b1c0277c31f4efb927f982 GIT binary patch literal 2024 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_excellent_found.png b/public/images/map_markers/okapi/cache/large_virtual_excellent_found.png new file mode 100644 index 0000000000000000000000000000000000000000..d3adc226b309529b0c5d89b88dfdfbb1f9b48c30 GIT binary patch literal 1916 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 KMNUMnLSTZP#5p$r literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended.png b/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..44148fd4c3fda47975a74a82adfd210a61ef5b57 GIT binary patch literal 2288 zcmV)r8s9Twl>IF6mz2`sUrn6z91 zCP1Q~5){z_EumCg+J}lf^&(pJqCPYrwcIKZiP9>xiqZs{NR@C&F({zKEQw<~cI+g! z*D1cN6`)2;XbIyF{`vex5uD6!~9-wT|kRRv~ zgjT<Nt9QzbiTjz`1~nEu}$%QXShK z+w&@*etxn4;rCCSc0Tj)gV#1xR>^`OJdlIX_4d|yBJmqR7qlXq^^uhzggo(meIK1Z z5DQLGR@+2%V+&%TjdaqEs7*22@5MiSp326JOcx5{zi$7VtL!GH{NlDp2RE&+k%9Ms zy(8n3)_2-Js9tL-3qSM3&VLC)>ra;hFdJ7--$$np0JQ9W0kP1AmXOgBG9oenHO==@ z-PpoN-$@)cM@3)SJb3mdgYG*{Ql2xE&1Orm9RQfY$XKPA>~es zijoj@RYy#UxTC9-^>?mT0PjiwB2eb@1u0)$k0unaG#}k!BBCT2O!z_2K?8JSPymx^ z#x?6usw!8hz~EQOz?`MxApo}S*ozvxGI#&>W)BuuJ(@Ymm5DLl==>+08!v-HfOtL~ zq)jP&(zw*-{lfM5gZI4)JhUP}G~_1}iz39V=njRwk2M3$kPZOw#0%d6;LOE7Ug>|I zz>Y9tfj}m#=PhJF6VS~%{+db48=Xh%9EG;DuD5>-JR}IM>J0&;k}`yt6@Yi&{sU6U z;vST>@nS2L78m;26jSC16ab~nLzs-KHN!;hgypv%{l43aO-wCw}to_3HWv6JMUCw8X*}7Y7-Qgcu4=%(SJvuK3L<5dkbwv$o3T zOb5m_i(9%$F0~Y@=X);Mw>Nph4u{PS1eXHn+57C>uO5E+o&AlQ9C)@g&~fxd)_5M_ z<~1GwrmyyJwdVu?x7<^YDG=wb+cv9P)lK%HkNk8={Rk#-_mzwG&KmQV=R@rH!G@_{ z{PNM!+1aFMwH9bB{95J#jNbl%#Z|xG`{@vyx0W-6n@>*sg=ol6u0)Im6q-K&`GcW$A>arlT-nUcIeMKKmT;__19l^3POtZV32k8A_N2!&CEo?L@1r4)LKAoQ4wiP!#8W; zp?g{hCKS@?3PRxvT)G?!kNfU#L9eUiNN+D!ziq==dLtWHJaeUqj9lsnEHkq0{scHPP^4xxu z2Ot5iMefW4vI5p+0aBXAs4S!DI=449GU^*65{_}<`~bH#HDt3CiJ)XM3!c+7%}lmQ zyUCs{-N33mh+HO?&j7%Ts?r^a%$MQ(0GIoHc$ymU1_F%br9LkMW<$tj2)};j+!cx-?$CWhSj{&)y4G01Skp6G|=_MkBekCXwmSTux$9s07Rn@ zi6GC$=?Dce#bZ>tiuwDQGhDcK4Mmo-!h!$=1vh$2zIYsn8dsH-N-+Dq?=H*t6)j&p zYyc?6J#EER@HJSPY|6ui%QO*hG3NJX($(cZa=sl;MlQa+kwqME!p*3>ht+F3xd%6)KgE{^XHy8 zaY8LXtd&$kr7qq0{N~`2BwE(4j*kJv}{ML;QjfeSmDOBg}vCF(aebiNg&(LgwqFGJj@}J32ZJ zN|MxUwOSi`dwV}K#5;iz=Ifhp8hQ0z%9hGN&UC}IJWr-lsY{xsF+4o%B^&vW5oMZe z`SRyq*B%#}u+oG@mfK`jk?r%j`Ys#g*9nk=$oYaL^?&=HwEqIEi0@3(iCZ540000< KMNUMnLSTXqd0yB6 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..36d8bcc08c06d2265deeca02cabb4d3b6b14e778 GIT binary patch literal 2298 zcmVChN~%%1~j&T6dQ*3!;7bA+Q$HhyvMK6|63S*~ygOhwTS&51~*ZvK#S^PSnP$xl`iLFULQ zrEf*MyALRG0=}w7l-4wXP&*ixKzIU)(MO0+^ufQn!8cQ68GpI+nO0KdRE{>iI$aeA znw+!igwU50>A3LEI~|@X>N8$z*?Q0A+WO1o1PA~?2-ynZv=z9SO? z|1#XO0%onJuPAZ?_1g{s0OG@U0RW{nO#pzz=%Z)-(&}$18F|3BiUu5G!n6@@N@`ak zcRkl4T}<|+sA)6doRC=1=QB9xeJcr|gpe)aj`kK`RU-(}AV}lF*;ZUQ+gh+siE7#% zZuoT3C8lf+*Z{NCLZ(ci+|EH6fnO;@U8t6F&bwB0fDq!Jn2@pNr4Tq=AV@E}zyhx{ zkj1zf2c<*+1Hf~C65vM_ZwJ;_tQP};$^c;BlT0SBc)i}4B?aVnxGsYO*zoP0Fy*ml z<7?M7K=6dXxLz}rnx>ZqZwUj{6M&ll%JcQ5HlGlZY8j10+coG1x6sK-a!TqmK_Ul0`$mT zxcu*n;;;9-hlYyAgQ?Wah}&IqVo3o`ciAjCfXf#@ob4CDbg_-r1wynq=Amgz#Z&rJ zd}MnxYrX%i$}-U}B-9w%x;{dRrSRu#e-eMU@Aq&?*>{u4_ETPO%c4giaL%U%PYBWE zeN?Uq!09f-jwA0aX6JDznH04<+%%(V&@B@tw?u3DA5x=#gDY6HN@RwKi(h_-%#;R^ zifnD|Iw-0}C5NRDLP`KE5aa%t*@4PuD&nD$2uiVlO;`)rTAE< zH1OZH5=-ZdS-Np=_$C{SJv98TQge6lUSCM4burF_PdhHq$jB6Bal5d!dOLf2$2(e} z%x4f{DxC9zg(!GD+j~=~o7V(SsAaHg9M$!uNW_9-&z&!zq(24#NG=~XY~Ch0U3Pje z+=)-V`j|OO+>^o5T2IhjDMomV-Ws@y@Wf;0uuIfy_hMJW5jr`U5(&}eia=%(u)P7` z?+XRYyNYjp{_ud77?Cz?Y7{G~Y#>GAtovC5vRdb|h}Usz^cKDxy*!iF)#*y_D*Wnu zzpcI*zAgUk>L0PH)Ne|n3qNlD8FSJAn@NhSe?*zE^giXl>*aB$vw2@Z0dpb!2P`n+Z(Xk zK|qk@lw}wdIc&o2_4}b{N%Td!5spO+(JqLdA~$w4?wwp;zOiaLmSTo6F!23dJbnE} z(zC7EB{OEdU$6!i4z#u18a{I57uPuFB@@}1?Y)Ch{O5Wn+-@gce4#=4?#2d>4OHA3 z+KsNqJ6PmUjREvYcU3 z*TFbYUtfd!_j-{|s~GAZLuGA{4QrZwVJJ*TV=-hEg&kSfh@1c+N4O~CT$pnME83Ja zvlz-`5ULFV0K$V~7$1#bb$tjuvW%#zvMggPe~o2X3mp(pAo~>s=%$6ZZeSptMzQ2T zpt1~)9}S|svJ5WCf#GBl8C3<$EMQsB)10k=B}sEF0}33&d`xAtNE$l0t|KK$sICfN zG7>|DzZB7wjH!46Tv33m0pyv$IbSL{me(=>Y*_(GRRvTPGiDYK0c@@;htaeeYeMDt zbZ`(eu^3?J^T_kC=*;8!^Ebbi04NHO$w1ds^rTX-X)4OyPJG_ojp3;&7={6G4iEy^ zY|CzypLM>dWd*eDdhIv)ea?9a=UgO&D1?yZKOPH{&&wVwID_($jDe`$JR5>IUwww?; zIXS5$5(%NYx>~HOs}ljBzrSBQapFXxv$Hd5S(XLBT9DzK-PydDm;FitcrHxNxycwy z4-E}DcJACMxm+$=Yip}~<;s=u>FH@Dx48j8&m)`5+E|KwDFHn1w>6iIEXzhP7_2!JsA)atJ{3J(g ztUywbcn&Mw9y~7q0HP?$4u`{d@Zdolvl&`>!3)H)_`eP{=D$pUWvu-M-{9-we-wUD UZwl|J5C8xG07*qoM6N<$f_H8`zyJUM literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found_caption.png b/public/images/map_markers/okapi/cache/large_virtual_excellent_recommended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..9c11e3fab5e6096196f1d5666fdcb91f8d55090d GIT binary patch literal 2276 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_new.png b/public/images/map_markers/okapi/cache/large_virtual_new.png new file mode 100644 index 0000000000000000000000000000000000000000..481a8150b65385a8f2a1546c6493abc8da3ef4e0 GIT binary patch literal 1764 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�`cO95X2e{?t;#$y3AHZ~4F3dFHv$I1>LKI{n%4s!YUag1n` z>bKwKjZZ%%5{anx_V(I_hK5@};<2J@Y-}9XbzO3~X_}&xl6k*hTHbj_&K^1>|NQVn zX|Ao6n=LIOA~G>C(caY5wDYmV9|a&DkBd@D!o$Pzbz`G6*Vc;n+BGpXO)eilE?@25 zE#2qNNjjO7>FMdeib&2rbLM(@((C29_3J5eIx&@E)-gw41^2_`y5a4UCkJi^}IrPOB%=&zIDk=yB0^e`hvSmf_RRK0QoqT_zj|-Q- zV`GV%x?k4t$}2m$F%hKP=_KE?iSB`6zDww|kB*YuzmIh#CAiY*R7Xe0zfYYy^*1t0 z-ChP|zvcuO*L4oo?4bYdI0J*DY^!>n#dHc>d7SIKMQ}3AZ{GYBGMP*Ou7?2p&vQ1&P%MUDk5jdy5`eyeQH-?0NGtmKN7(%QGtBBby}>DT zeJRtyU@(Ta{?rl!msNn5q9t0f!{YtG@{XebBOA_RhcYBqZsM* zvT;f&C$JGH1D>(2n`{u-Oytf0z)T`RZ#248hMPm&x$R@u-YU9gXPML=Y;qBCT0*6k za8}$Ny>nH7g;a`wVbBwau))27ifzyF!}VS&wmnO6Q2_(t88l6UL;_MNJ3yWlp@-#Z zFJP(h6_Cog3MLJMuwfv&PQ>lz#qH(z#{yJr-Hd;37XQ=~Di#CNgmlV2G|v)pSq zoP3XHcJYV>U|9EZZ$v+lrO2c_V!56bhZVNsqeqX9h)AAN$|)kw`uh69hK7bhx7)o8 zI3ADF+SupH4mXyfN4#z07Sy!@Q7g;m8GSnMccP; zUkfleIGAW|Zl3At>grKS1%Oe&4@?46wrdaw0rM8*vTgHW0BMVK5r_iQA`&!B(;Etf z_8&NKpwR7h=UupPVX>{Pt#@v2ZUh(vZUbIm0=NeRfN5Lwaa)FR0%R9-l1#lcAfjp7 zWJyWMdXLAmD;Nx_^XJcx_4W02S>pXx^s{7Y9c8KGH7lbJh{MY71KBzySUSt~&d$!$ zZnwK8KR>@}U|^ub67M1Nt&pv+-LmKYiuSM!WKAr$zd)GDWO7(3h1cutA`|(j6=jM{ z`RxCHV0*mZ9{0l}d&q1ev(IPin={Iv5+Dna^<_)y|Ms)A{{jI$b|f6sk~;tZ002ov JPDHLkV1m9g7ghiO literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_unavailable_found.png b/public/images/map_markers/okapi/cache/large_virtual_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe3037d70ab24443200796dcbddb2e36e439712 GIT binary patch literal 1611 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 Ru{i($002ovPDHLkV1lf2GK>HK literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_virtual_unavailable_own.png b/public/images/map_markers/okapi/cache/large_virtual_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..ed171e723e518078ae87373f139ccbe85a28b154 GIT binary patch literal 2026 zcmVTqGaj#(_4>6qIN%4yfa5rZn3p5+D0!5Y zC~8WS=22RMA|mw*Nu{KUgo2WQK%|JMN=Q^CvMMDcMV3Gch>A!_LldT4eCUy`W^`xH`Ty=Ya~}i$uO=cM5vdXp_jUa>BC=9M zTtBAx91(d#L{5sxA4SBM>VH&3PK!v7h&=mai5H5sjNPD}atXV|1h{%;I7ca_a zcejX0L`2s87yx&RNWAN_&tzXigS343;Ut7y>F<{h9(zpwx?zJ@(Wr>Xn={4Jt_B7# zPz6)~?i+eM^pKAO2m0qOS+b~n)hfQ+yO%7Ni;9K@{`S&KL`Ftf``T-09uI^5Krt=Cfz*haY~JRhu_6(9%N4?`O#qPf)dH4WUrT$=SU-V0CuR zn<-8@z}2+x-@m^)lT%h!7TMX^g#3Q~zH=v9P7d>yEu;PDQGAt^)Nk0JntS%t>07r} za{6>e0Cgt9>rGJEMYs|PJN(W&m-~0`K2EaC>1A-zuNmvpXBaG7 zemiw{EF^eEr?O@~v4l;;rSkr%Gi*Qj2_v3t`T_yQbsfiXuq=xmJ9Z3Se*XEv*ua1V zxTa}Zs;LZeDxBR-d4_E&YWR%Xb8-4a2yc1-d&ZcH9$=h zHd1Y70CXL~VT@Rmudj@e6^&5lE8wFOC;0Z#B}~Ie3M&d^XWuAFx_A`OQ&)?bN)Y?) zZ!+?IPfHgMr2x!SpL5f@;SVsIWXeOSW=x91wR?d%dDGa~cwR(Q$8j_f(blb7=Uu;k zy|C@`3sjAkmDP=| zT6Je=_Uy{2s@^)swkzC@liw7NyMOZZ)9$rv*Qx+*ZEen#>0yDvGW z8M20l^v{&VrVf zbKAFXpUlE{#II&RMBV^u0c2vrnHU&|nms+%cz3sDcXZg>n`7UpU<`F%P;L&u~2y4(@J^fnF8g>Cw*!|gDKyNaTGd?SEuz&*VEb{Ee*H!|HzDTo3aR*tyc z6(>tdyvzIg>>>EieCU`1F)by2%{1A!uY@gIs)2tgin4RM*qK+tl%)bk6gXFGn)-cx zeT6}|Tn7Cm5X(vXs&CdbpcS}>jTf01Wc`+kE3Zfo(6j*)3eBGR#0FEe%awgMD%Jm&0 z;sI(%{wbFMbD26+q#r0I*La=eDmO%O<+}iMD2kHte_+!72SSRWQMGa=^Z)<=07*qo IM6N<$f{U)<+yDRo literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam.png b/public/images/map_markers/okapi/cache/large_webcam.png new file mode 100644 index 0000000000000000000000000000000000000000..eca6819ab32b5dedb2f31fcc21126c1c047a2931 GIT binary patch literal 1133 zcmV-z1d{uSP)T6ZtE8Ar~%OxkN}@IG}K=D)kVNhysNsM8uAoCb1zg>;16zbEXH+;&m`KQBqZv z@<^{%J2N}a^UnLeGqdms|1nbUHq6Y-?0<}jS5{Vj08GGdH%@ESxU{tN)rXMJ&CNXp zCV@YJH|@rzKZK|QE&`cOgIcaYjJ35jG)*IwN)bg7LWrjRFbr{B7u&Wm41+s&?!33k zwgQ46Ac`WSl!ReO6h)`{9mm14EDXbVZ*u4m0^j%P=^LOgJ4hzek7=4{-930-fb03_ zpAU0o^b3Rl%d*azKTX}y*y6U%0&2Ay$Q0uf-*9wP#I_wqua42%*UxdeOmAP7OCy&l zm*3(z&b!1K(0zuTh-oVz3`0uA7j$VFzV9=byGS;xGd?kiWtj{O4YRZT2-B<(1i{I7 zQpz;-1ndQLAe*pW)z=MZZF2y?woR&4hf5=)Onf;>`RyTJU%O6jXqZbQmwEDd@66O&sB!yHzg*oe}~?m;n!d8 z^ct-z&CbpiuIsY5yG2(z&B4Jwp6B8FK4BOp1*DaS1Il9JUK*t@fUs>2*tSizTIJX< zxI6zd#bOZv!`NbB;Vy+j0nhXBJg-Rr%~g;A;!c-F9=L$tQGjJxIF3WDR%;@8^l*bH zidt?^2@zd1>OLl}D(fu3G)*d%3bt*Z5&$5jL2L$s%JnwUKU_jmi2OQaIj}! zVBp(gu_%_7mY(nI>})9VKa}@xsmHoPBjYW#qNm8=>>E)WC!fZhq59y#gGF7}Z)P%? zYrDICLu_~yA@ikKn$r&B+LtfU|$G9KA+#9?)fw2Wk@}I$?>w)#7Ug` zFX({ykhws8pO53)*2|A6AQll@Q%QZo{}TTIt9k{#5W%c300000NkvXXu0mjfZx0U^ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_archived.png b/public/images/map_markers/okapi/cache/large_webcam_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..ad69bad5365d23493d864491a636ad1534ff8133 GIT binary patch literal 1561 zcmV+!2Il#RP)zx_+u|h;Pi%64*xZap=5s_buNX@$> z-zp+kL}WxnJ`<4!YyP()@>E1#h{*5W6}d-5{#+;&WMpJSEDVUq??ogwF)<;dqoX1s zNfGIM7XtQ*h(0hdAba-gk-omZk_ZWfLekmUDMyYR5lz!XM6Ry4pYts=dAFfBO=b6IkUB^tIPBF@nbGrxIi|WW#7Ji^!E0m zX_^`u8fxqA?tTUsKgheDo}S4}CL@(h*L6`!NhlPO!-o$`M@NSoJ9bQbKA&8@dR0V3 zUcGuXbouh-)*nQ^5dqn3R+Lim^yyRS>gp1o&nI{9-j!G^CdZE-m)*N}%atovMAvm$ zSXlU@h&U?oRV>1X4Kudffk z-_Pyaw>fm^5ZktG+Xc9Q%v%XCO_M^QfQXRK=P48l%+AgdiA3=G{Tw`akhZoqhKGj< z27{bFeVR*`E-^7NK}$;ub8~Zl_jk6{?R_r8bsYwK~j>PRFK=%(VUul_+i z9_QnaTL}h3eEH>H2?PR|rb%OCBRhBQ%s+bc=pMU-ZBTvRyiX~ZGjF3*JQA%ML1{W`0oZG*D{}&G)JTQQoGWJ?b zMFIJIp84=gs+~>@!=S!lE48(5wl}w;X))Yx594EBlSsrdP4o40;cz%_nr02K8E^x& zHrq_GE@}Yhx+h^Ol^~Nz^I@Zx<{hm>mlpU%%O^B!`6(YZ{*2JK!Bx*#mG1@`Sa}X8 z>)HTvK)zxGN{BAb)B4G;aM!sQ`rBVH44w9l1BB;ZmR+xuaspd`tw5tSeqagm*dpQF zkbrn1#z)?t^Uu*I0L)DPi|yN+n0`_I&=e7;Mbuysm&i-$aADO!MFFO1qU$;f^WWpF zb}&Bvj9e~9@cA>U9S)|ZCed{r!!XF_^L7Ca%R`T4CF0F2x4r`M6>A`sN|DKAh-n&q zy`K>dhXK&EXY}{?F*7rRuIuQ!zCr-Ytyg1tTe_KJxejuGv95q*GD$j}CY#N!Ao==9 zfI^}0`hY3}2T;v&-3WlH3*#>?pB$&*te;!sLCMa0?J*;(7&-CgT; zyH^O#X0r?o45S7J2XkwXn-*aLh_dXxDlJ$g;MT2M?ZBr%6UF}BGBY#tX;oF#t`jFt z)Y{kHyLT^h?b@}ev9Ym`C%tS|k#g%H?uR4Gj%- z&CSg}0SE?zMt^_*VjvJ0RZ7hPFMxjov%vSZF$~NDF-zo%mMJHoU@1)labQ72!n&?c z&(F{Q#^>|Zy4`Na&6_vVgM))((P(rE2m;>%)4(g>B`^mp*u2l$B2-a;SffcXUr9hq zCX=)E_4V(0Jf5B5a9CZxe*L@g@$rB~{*C4R62)A{S+4k`7134Xu=W>GDNhE=-wc`I z;o)m;w|ke%DJsqIv`3uX- zJjL|c*GsvL?O63+untNunGYzQ^QHV&^zwfxpd_MXD_ZLR_)+3NC>(d~a>#qr00000 LNkvXXu0mjfn!fSM literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_archived_found.png b/public/images/map_markers/okapi/cache/large_webcam_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1c92a8445774cbc36801632ac390eb7c7dec6c GIT binary patch literal 1545 zcmV+k2KM=hP)R08E*E_Oas$8`Ddoyk zDpg+)vQ{b8#yQ{S`~FJTb#+g$1R-RNrfG*N<(snr00{s~dwP1XZ{I!~K71GemI7Ft z%jI^CkB_78kMHpI>HQea-Utyw8ZFD(UoM$GS9aUBAJ;T({gy3TVwPpyJbLu#U`Z{}h~ZeDvc7-dmmT0l*UvMSx{lZxKS)Nhw3&a5#}nCf8`1cBZwp z^=Z>In>hE-d+`{!#^EsATG80<7GC{p)&h3y*s-?MgB=|mO}1@6uav_1fiGd`HO8hV zw?;ZTI=1I>xtML+IDP38jONmiQu5VH){O03`>F&0rPTE~Rp9vX<83qVNh#M8LSp^5 zQuyZD=b^gjg2;+Rt7uFmLg8>2KMj3{i#LBmG#bT{1ugFD&%Ieo3C${{ev8NBXUhqg zOB2=tKqi;b4ZS90+Eetyuil5_TNq;__~qt#=(-N+DQtggH^N#Z1YjZ>jlNSUX~iB$ zrBd%|ng&7$!r^eJv9U3>u4yCkj!nP5@CB^=I8Oe040-7QKE?d`^G7<{cOypYz!)>@ z>gql&n3NABfO8HZ1e8*69LJ4BB1SwOH=bSo0>-9BarNdUjOR089+STB;pL65@Qo`r z>r+!xUOXN@17IXLB}+xcCE%PR6pkSriNi1=xO(-f>EvBca3Qy@ehG`~mq7v2^E@oC zUxiIiZgn(G^IX^cS=aR+01Os5W@2^%7-N7UXliOfHah{=Ww0IJWX$8bFysqQy(kyN z8?Z3?7`Cl`8I({@DRrf*tLwyp0|%}Y+?Nt?7ZsO42!V--44Rj=f^#3ScmknN1fIuD zz)iF+Y@@F}^BNq-hLj3QsWheZW|3I1 zP+q(CXO>dkV~l|iicBWsQA$q$0OyPIz``)DKs`M#;W$G z<;d;Z=J)5nrHnCHmL)fA*nolny+C-M;{xtB=B(y`?O0e?pTOY2p8$aL$SpK2Zouu4 zVF)3l5aOO~CWM$-0UagWR~5iH2j?8w$#H0eU}$I%zVGAjzXw4-}mABK7}R9phrb-@@z&a%+k+khA8g%8(bY9Dp~Iyrh7ho}S+^-9QGW&;7>e=x76_bm^{L zyJ~~ao;`ckI&$R5aDRXQLMxL000cbFhik`clq+= v2~0Z_0jLtF7<2t|N@rZlmiAFRirL0L8#)SO!lc8P00000NkvXXu0mjfOG?(c literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_archived_found_caption.png b/public/images/map_markers/okapi/cache/large_webcam_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc3ca0fe1b90c6a78b9b5a21e79122bf4ab0089 GIT binary patch literal 1592 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%0DMtqf2P+R8IIza=_q*HM z+n-*(eEC*1w+W>3LG7o0IR?X?^FYpDHi~jt<`jW{^LOXfjAuZEFI}9N=rrgJYmf{-6P8=t0Y{!>i zoA|zxR;!h?TJ82hk}vq0=9@XQtFzy?|KGWM=bV+m3e2|8`+)%9|JtKbphFNI7+uMG z7BXRl!Vfi{Jo|#I_5#p0CDTx-pm^4C_hXN|0=)nKf-DM<5r3w$vFUI`8OL9>jkOzg zBIda;6K+InoWW}?jP_q5UoK(O?t6X<{Pk8LmIBz@+1T_Uz=mD>5%XMFF@26tw(i=0 z&H%7!_dVYcgaXtpuKfVqxcDi9*IK512CubnWM6quhWOPXUjholw+V8@;V7|QkO`mNgoNOBE{s09RXMRR2UYH*ZPL`8@= zvGd~`cx*ec9n2{J4*u*30QAWjA2oRE%fU2&J&YHq1JItU>Ku=%J3Iuw_d|Mn z6^UEo# zm>5OVqEu8?;aZ(fP*HHLc2nvvLs6!PMx(PsMcamC5)qIVD2_}Kmjp0Pld;huavY9y zZ^$LM-5#pfZ6p#=DJ(3e<8mvi8YY=cPRH4{E!s9>G{!2xLpsB<#RWLCAj{5DO;geJ zD5d@i*41o8nHs0IZZmRWF{S=8x~_H3i?J+AOj(Gkh6|8qKLU(Qi38@6J&-kJa*U0e zx8lin^3PA+$1oDy|E&iZy*ad?zirzND}^H*#zT5{ECGr#Fy2``;aCwsSPfEHQO>1{ z7XTRO@1eT7ivGUtMFCP4Vl;*;Bb*h_4u_M>JXjJSnM{&MBp4qX!I2}<(a}yk9;fqa zJ2|3AZ*Mn=L;}MwFimqdfM{8Wu{f?wi?hNmW-`wL%w^UA4PDm>hC&=WdYIAC^fDX@ zwR8OVF$M+(NF)*@5{WqgkX{2U3rD84*@tmv=0O}VmIa7JB1EH6VzJm9k=6?>q*5tN z(}Lr%!7ifBbQLo~!_|IPr|2O8SJ9ZGCn>m;=xQD1ZL_8zr$gl3^gF zQiv%F$A_O^jlcV@$iagL-Lo~`d+$9xrT)=4^6M*-AYjejEA<$9cRzy}(aBk@Hx~ow z0$z;9-1QUTwbenjphVNfqB|?hy6^85av>t{f_mkpTwMz zSgqE1J+~J-p{2}lJQ4}2on6Vn<~BNko4|MmWRCb;fC}3Qcyl5V@7UyJ>H6?>=g7!c zuI|ApWA8T=>4|;1^va1h#oF3hDl02#Y-|+2d;gHj#%rDYu+mWVwT=R>Ywiijp;QBM|&hFK(T*br#i zvSmw8d3pJzii(Q27ZL{$Y}?*=_3G6hpE-5nsWQ3S*jm$N+_m|JX=fG^8?XgLR^ee4 z@~bEA7JK`P`S~;F5yhw(Q<*F;Mqlm1%FP8qfYvK_I68Xkq|solwEw_Q-v|T(uL*+i z--Q4iKxIoyOMRgFbNvV3ZZ)RKgqhQVZDZLfG%JPk$;aE>?U()d{ZU4SP}i2B=ex0T z#B_`xz^-jyn!C1rX`cIJ%4}`jS|11mDuG1-mNh{D0ZfvF@>j*pySChLgoDJ3eP{*w zSUEW>dCS7)0ETz&+}VESRLACtV3A{MO_#A_%Z>TtWrLU^o(qO3B09ZTxj74qU$}Co zb&$QMPm|S zEl->Zxy6Z~hsmJqP*hn|W5teySt8cg@Ay|kLqpG+HES*jf^d3CfDD8msE@^Bfu5e8 z(wjGL7AcA%M(`Iv<>hq%?SddI`N=%*KO)<<9n2h|yv#j9We<}uv#0CKY&0R#tKPUE2n(j&*X@5k W5DV*TTdc1D0000g-{s(hIsY$74l&z`7PTSjqYQMlGu;0TInF{>y}0=|z()&(m<`~kou9Y;6JX`0-H6#%^hh|v zCso(=^``)=dU5m51mT5$Ed)TELEH`O2>3=>xoI~5_ikKfpsRh-XP~Q{dp9nV0u1;@ z0d^$YJ{bT|bLG_8!|t+mh{gn>F~Nxs8aeSng-|6HS@#(ZjZ-DQE4T* zkUM85x{ymzX(b+y52o&vSxuVDAs!qDV8c)9iTUnM)~{J#gT+}%G^7LL3(=e(fHFQz zBA_4yWQ-h@`n~Ic^`LnHc=?U}0EEXL`zYfJPY06#2H1cyU@0d*+h}*V5dty*A2%Px z?wCHZ%J?t`_Wzb}wA=JK`PoJTe82$EFFz;0XrA2x-HLbq2JraGpkFmJKVhd z>yM|lHtuoeFCUSe*H3?67>lzKF8sR&C8wF3fTA5*VnwBU9`l$%<1pA z-i>HXP*YpQl~ZpsbmtF?8o5S57xloa;rGLv&p4#=gwye?7Zs$)5W9nlKbj zn1h$}8X6jUd|+3>xe$O1({(F555B_r5C4YelTK=CtJuA76&85|05LU8UtfYx zKk3BctYqiGSI{);WP24XVX%B}0I+c3!nYJvugB%8qy5ZD&i-A=@F-hmr{?E-=#~NOPVA!JtAo z9Kz);rlPVMpLdjJs#fF7UyRFLM0Z!`ls1N8h;gv^A&1PZr~|QNQ2}k%2&Bw6HbV94 zHP~}xzPQv%EEeUt=eIHZ-QcwTx~@xckbLIo-I$rNAPJL~771xy029hMCB;kl=EhY3 zJpDbCmzUAscV}9E!!V>cSc0ZdL7I4KI%JaTU{-*5JWezkWprc+DNCfI<0h)A(s}D9 zS)xd9?;WDiD6v=!P1Di=!~{sHIm)~=VJnY!o(^bpJRYLaDA8y%0{{?pKr_W;^ARxTJ+%&0AT}pJAP^uF3K5A!GDNOjZ6}dPplKS3 zL}I$;qLG;gQo`Y6nHxY+6ecDn2nK^w000cbK-YCdQAC<~L#2xcF^}nB^84&laP;WW z*?yj{rHlKM0BW*MpVuyULenrq?oXC*N*prJ0yXu}(9qCp7>20px?~uJw0-+_+pb-^ zY`M9)8NiW9gqD_;U~6lu$~2}vo^u8BnwA=U>O9B*7yy(H&z$KQgS;TvqF{-G<%{la z{k$lO4Gj&pbb)i{&V|R09}oVjt4k9>7t%UbA=nQOlA>d2qu0^_CePQ@rSwrr$?8WN zHmvdI=l>umita*9TPo|iy*V0{x4!g}ylvYy5#aXi+xnm0eOGH38q#!G4i3ul16@`9 zvEgCG>+y_shr_|kk`FxVs>jkgZmp3?Q zJ@D{h?AYnkVs&-3TwGktrAwFe=R+ZVQE@Syt5++wsw&-{mnTb-B(D&J!c~f*FTZi4 zzzAmTNf>|O&mIu zS6Eaew!Qy;Y;RXrtk31TC$C-GyR5c0mQz_N$;+3^!s5kN(P9xLNg^vN>$bz;cxO6s z0KqVfUBDYCib{L?7%eS6y}5ZpHz!I=em)IUBw&5x#*NNir_*xq%P+O;P-sknwsQC` zAEI({TM4henk($v=M?MeoLLTsEC|A%1wlAF6Tt6)XK8Bc;jOnurgKU{I#xIw`KyEvIx;Mosp3sgM(o_9+jS+Fn909=rWxb4F#8%fF9^cT*_@{QM`Rd= z6{x~|uPXtHczmfyzfh!dyn>nKhA=ZTq@6C8Jo{R_2*bL((EMC~_fDw+>l#nX+F!@RM__FyBmUn=!49X-8wm;e9VbI-Z=Nz8!|tuCMraLsA*0v<_f@(R)V zEbtO=5cr2AHK}vvZ~}@XH3jC*KNnIS;^s@IK0M$E^#jm0tX>%d-Us#$kBph$ zYdyPsmBAHwVc*WbOH$L177}38pLIRwFCGMF*!2o>p#?1-LyO0di2<;({$ZA{YhbwN z97UF*^1`x$MAzzm$B!?*yYZnbb>o}Y)V|cx?RIu)*NVLfzxlh;t{70hSO|=|_swD7 zI1RgA0bscOQvjB)YXIP8uY3A^<%UO@@_VS3Di}6;8QnT*`RmQr|wx|H0?$W6b54fr}Ba0va@4WFQ0KfVDJ9*!&HaqvFmzePbR!BKjIgyCV zLJ`PG8E2?8vHHRL5`cR#0W#nk8uC$gUoD!nWU>ATlYw9&Nq^i6k^l`5dZPpe#fT$X zl&GvIRe=7xS%GP!B7Ok2KDHOdcVqhd{q=R29JOf1BsWHH^LG2+XkXt4MG{1E)q!eA zF=QLDwYV=ko_YL{S(3JCeVq{AVkuo+R5VDHoQKs~5a0PK6^I{^IaY7cMpe!$dY z0ptRSbU@@JGN4Haqrkgz%=C8qshXlfiz-CxC%_Yu)TG=|fX(hg3Y!5q{_Y`c_PI4E zgOMd>DohT?ST>?dN9D&wy`qvL)qqM3$yxBrt`HTIo=+IyIu1 zoVI&nC8k29!*kubeREx)sK{akeE9@;_P)67@QK&oJFsp;5p`SEa_Q8otfqRnvv!_h9wy!ka>hSZ}_tuR6^k+}q zj7F2P*<7G8d$-I8&};iylcV;4`?CQyZ7pK}C!e1A10lbcY>4W%tfjizfcwG?ZU;-) z{OC7L2E!z~YPZuJxq&e#(d>K}?<%W2FnE>LPo~OKsdL7Lh84bD&8vMt6VNhOz^qdI z{=1(YRD3t4$xLPo07@dpz(5*L+civ%TE6}Kv#9D)0MzuCeE1+h=}4L4k#i z&Tgf>GZ;!s+e=HFHYJ_xoP6~Mm3@-b^hmxCps&KQy)SO-Ja^7<($n@u@rNITW_7Gu zVPngleTDb8Vfff*#+h0m88=SWcfP&aG5nNLPQdZsm$S1p)y|t zX6k?>HF*K=%P&9gd+V*&izO*VTU#5lEF**<8cosBF-0PwO%G0`QhfB$6wOVIq!blZ zEyo}DlIwi|`GNWZ@2ZuCz}b%j&gLCunD+ZviFND3sg#;uM6651u z9Hq;MhC>JhcDoZvlK9J?J>0&1i^GR^Q@rE>KELq0!PBQtzec7MfBo~^Na&HlSpAXBuR+hQS@cE{QMx(hyWu44)2Q%s>FDO7& zRmQxxFc^&}ih|wY#A>xsU9+BWI7CUwQaoK(2!(>AQmN^2LI@c!0~WvrSaZyxx0wLr zyb#PqBoZPPi?YmBK~3#?d{g7BS-TNO$x@cN%DC3sGjEJ8zy>&g-0G+4?+TCr)CE@{ z3*Y1z>o?wyt;ozjKRJt{B-#G(4!k3`^7hv>%}Az5JIUNFoj|EBs5oaOjCUm<81hqD zQBFtuWdMc-`>3w2VsPMk-u^-eqfX?|iL>O{aG25e!GZ!(sT9d%lJT)oj0PExr;|h? zK~Hxl23e-R|2oNJ5=Bu^)tQU29s-LlqBw`x!c69AfV$uwh(sd9Vln)I0B;^Th}WAb z&4EBCM~=M7(9jUcWRheuIZFVuv%m~w8xzdzg9M-~Dj*yV6OBfR$K$g|u3UDLPNz{- zm2^6tZ@5h6fR=U36328~TtFxkA{Y!3iA3fJ01!f;X&SODW4v=h<&sB$kp5IyECh!R z9a^aQZjnnK&;=y)Z`xgD!G8#q%#sImi)G0n&shMlfB*h|A%v`Hno$U0+_`h7bOK?0M=j6$gk(QR0#2v^}I$?;+Z7A#g^ocf4!0FScw*#AiDl++7GBh-_Ns^@c z=bn4cn%noxnKQAYN00V*b#-0Sy~=Kq>C z!kbJc2gk<7wl+34T5UF)eB#83XiG~=m(S|U0onhY z6q$I1fj~GMzHPVL3yX`3>%3mCcI?=(VUNe-*2%xry`Lfz>mV~bKCG|kJaV|hCS)c~ z3Nv?x*riLCj@oRtdb8QQw!6FgbDg{$7-lBExzNaocRu7>fh>e>T8<@Csnm5%(-<5a zbd&LXK=)E56TaO3BHzThkQVDO2iZfWluVt^#&Ija3Mm0HK9KXn~NJB!uAD ziQ_-l*Vp%6-+Rs;Y*UjsF%Ns}Px^Fxj?ejizwbNW`E&^uKv6ENBZO=sgak_0Ip;CX z`DIz&GNP(OuMtA`FlHasb@NzV-P8KRKF+rT&}I3_$U^@MK^7C!trJ6oecsG80N{2? zMpw0hw5J8Ddiw@BXRe9p^!l^cuCv{JJxaYdXla_hzbGP|zW5`~t(Wtz$xkbZAVqRY z>5I{uH}`5v0{*5>)U<5?p-wRF2H^=Lrfwh}9z|f)8h^6NHve+vKf15VqaE7tbgU`Z zXmQTY6GER%sBz)rD?@S<^_$=C+k8!uHve)t0RjLJLN-Nj-rNfS9liTOs1uwS;LHGl z0RZr~KY^OI4T#^nVy&pE3P?d$Jk)&Odh7bh;Nw*tT4!79j-m0J?hvM2aU)H4;kybU z2rR>$7m!aq-Kr@GboA~A0K_N1007jqZ2$lyrfxi#*R*_F%P1j#GYz`#2{ALiA*G** zd?61+hMD3|Q_Eq&6Lzykzu)AXk5&>u2_c&%h6elmO`RZ6L7?J;qy6~cXn)x`C0Wbq z^1^S3l9+b5-~g-|8<|>-awi961OcrU?X4>*=X|(g1_&X6a9F|W$6LW6fk0jMfDPVY zB8U6gI4C6o7yw@QlK?-ie<`@Gew`Q$HUt6Zj#Mgjrn#CkJr)#C!R98N^mNXnU}gu9%mpYG*M+ zXT%$h8~M}+UTmlp141G@kCVgyM4F}X=YcU4Q&Cac4+Em+(Z?btuuoq=wtv8q{QriBxqzK6`5 z4v~s%?aD4_S)ICFwnhl?0azq}a?USrerDrfXyh&kSFy6A#eM7C8}9hMt8QIa+`6u~ z9KHq2|27ulWpugri{V?DFtS%0grQevD5{~r2)M()m07IzApTeh&5 zo_bji*7{9CERAzswh#qb-ZGL-UmOtR*1kK#_tDZ(gT#EJccE=^s+r&Fhss*#N~ zR5#;SKlp9S#fi(}-_HFJ%{2kbElT)F&(E2M23ayCva!2b*fvJBy}Rn-9#7BCvI2@C z2qBx|arMC1h0l9tq8d1H1W94Xn$FdsnWdU&&Eu(AF7nl(L15*e|`4Zoo|)lqlJ+zTqp~}FaS=_)YOh-G7eog zkkN8VE|;_14hg#-KY*aG5p|w=?ArJ|D52n-Prm*3+d~E46>U)lN@3eJ;_*4Ow5@_= z7MiBPFbo)m0n2)Dbx;%qoO9T=4aQixf^?R<6G3nDD0J6B>4MPEq(FPOzSw-{sU`1rVM z+qP|PNs=7>{r$?BGiUC{Vll1Y+yr2hkQJjgmm*(E05AD%7o$-W#cXVBw1dH5_1xT? z{mwh@M2ClmBLxDzguEEJy@0rEvsmgG77sjVnE>eE;9$h#@yLV_d17K>xB_B2}t@R-_dQQmeXh*dmBZ2x$SEUP&i{^XTD-FwbG=e+NEzwe$qBPc>V{@y)8=(~gvp~8Np z)K#V2&Oo63NHW>;s$qDyI*!%hIQA1|Wt%3iU*p&&P_aOu{Z#S##Sq2Bx~^}#*xTC_ zNDTvUJ{DkEFizZ8NAtRML$2#;m;V!~>ppdsZFj74YJ$~{X{H+TA`*$7r*%VpOCYdq zcf))lM4nvNJ-;12H?T4lpQNI;g{p=&gvX0=7J`~${K`3^;S1C(U(Se~;BTkjrrao% zU;bRXRaaf(IF57DFpQNG@d@LNlOGs0T7|sxj#Za^zO}7$2`~VJ(07fV8(0a@x^8=x z*tSr%1y}$qTDpR&hBhWf&JghX@K)*!)rYm`&mQ*P*1yDPX{cX!eCT6sNL|&UR#LlL z-R@|b7Mw2yMt1l5wp4tQ)^*zf7#qyGR@Kl3!1$GO)9v!=n{m|`RkEB>eUgdgQ`$SD zr?g{{kBFBiaWn_th>zNeN-3ornoocxgud%yZ*NmYZ3}_~f&_;;U*=Hf%d@t1kwMeE zED~jq0CaH5T~d`M%B#?nV6nA`#!wSdx<}`AKnM{UiNtAHQIEopATj3zOJzuAVnnP7 z5DFxqat{SO-t-GXZ4G!0k5@{$GZu?I7YqhJ)d{1pAR?M?IauO&f!BqG(Lnq!r-~}Y_4jks)^KatO4end?AfW|~ z0Q{xvIWCS|Kskc7O&i&@W-lJYKnPPRr7q8!f)H0udN$m-1l{AqaTOy| zBWSut(oD+d-+o#;!sO$~M;v(n1$12_=nwFtd!L}x<0qbQ==#8vufH)~Vi?}9&E~+2 zkCA0LJNw@3stk{&t{b>w&01PkZb2!<-+T9S_{>3+f@O!qS}(AlxQ*<7$-RbWO6@;8A%`w`&C{{6o(ckX=PAt9WS$;o(iR-?i+ zUE=W=K3{;Z+`gB{)HV99e8BmUehfq4F?1eW{jgjWTCX{d%kXfYbI)Cl)6*L>)~xn9 zww?L)tTj;F@!D&>XLj#?bSc1@GhO!wg4tKnwqRnShxYc3EL>Q^*W16x*c&4ZPhG{f zC2N+nbN_9-Bp{C;?|EhG)~$PH;nQ+gS==!zEXx8VsH2wOyG%2sRiPoEMAs(BgqOywa z_l{)`B&85SFg`vG@UNV3FW?7!MNyIqZ{CSH9mpddi_+M%6tAJt{qAvUYU^3vb}N@J zhw1J*N+y#b7K`!NV~^#X^8!H%a-BCd7goMKuLA(dRFXwE-Nc3S{QyM5*Ql$lAriid zZQI#eDS+#`M$Um?ffFSKF&)vw zDwQIcOp;Egr>!o8QVJ<0nx>)a`dmvDlUv+K3Lbgnk=N#1^#&jd$jw~jQ!xKI@P8oB z3&@jC+YhsR3jp@+-TS)hx`u7rUdM4tcJJO@zhlRaI=|n4-FVY9<%=)AINZ_EF?s{! zDL&c#bkWQZaNxj!Kj-@WKsgW`85y}n)3nWd_UyUt59^^rha%5B^Gr`)U*GwHMGGr3 zPoBsLaEhKYTjhwHfCYdD&_+i`$D`3`NhlNwG&ME(0R{#JVoyEw)WC@oC;D91&2W8z z*+8a%Jej+Xxh~hvx zN0=<=&s*;nlg%bT6@;DJQ92fjC2DJHt?KIP#<8(6Yu~>~d?cCz}!^G(7>N;6kS{f2Ugf3pZ_&zX^BP^`!;!|nXQ)(^;3ZaSuuh%efsnuS)23u&kL9_XD*2O1{6Un2$-d+Kf`DEU-4h8haRrOi4Ye60000PeKZNwcGXVN)Td!_=`Pf zTi=LB#tE)#qK_?Lo1}xplRT@QsU9ZrsE~z8Lw(miGd|Ret@oozD+!u3M`E z$AJSwBV(?&TRyCQ&=H(|>ENIKQi$g7+z&v_JwrWbTi*a^+W!hlz8gEGW2bZ!bO6>q z^eELEn;7ajgV*h?$S=<`y6Of3f8Tm^%OmZf@y7bvZ=Sx~R@!Cv`ol)l^%r8l4pgiZ z0yXFTzIbGurv0w~Fm&NJ090>m0^ruwwz=PHH}7F8+D(n9WJnD&x?|G)U$L8lqhM1Qmxpi`|KJ6Xj=(D0fK{r5z5!pVvB;6-bXqe#EdipsW1o$HXw6@ z0vx7FAn7%#DvM2E;M1(YoMjSG0Cwy>fEnqZ>)-ZJ2xp)cTTRnHdWRofc%KWK`oJq7 zv5*cdM}|S)i0^dU`M{T+ccf4tJe zp{pmD+B=PsC&*6A1qT_h1yYrS*N!=Vbm7=~Z@$}-vgIS-Ngfs0CK0NI{lT#Z2-8 zk_SQnOx*0|X7>jGls!_5V=BR}P@`$2w{W>7qIUYOD#8J!J>_^VK4=eJh$zqfRi*ux zuRb}FG7H9Ct~{H?yJa3Am)k#d25Mh#``vXKc9e6SQhxKnJ801`vmpv?-#|@`gSK=1 z+=&&@xaVP~!!gPJ^}D&8=tqqS_LV+Lc&$gde*Fr+Je^XtD#>2d>L8amgnXX)MonHIm$?6qWkSY`SyuwO6b9glK+jxey>kb6Aem{qex_B@HcIU-oym zxB5<=&=$S8?g1a$pF7CdSccQ5yGW-cmSwSPmyezKTM&hkii#?-*#JW6=gvg6Vq`QD zhUqL1L@cOUE&>bkK&DS4)0a4Taji(Wq|OwjY4LK8?bn zAOc7mg7NV%f#NcfaSe&2u&@*%1po1~ZtmO}=E#v}@fZ9F=Rf)B(2INCb4^U~lka_( zfBD{bQ5NXUdSC-{1It<}l>#ZKS-+Wyi7<&olFF)exL13LMk2UZdngN*6NyZbOePmj zRiuPW1_f{~)6`s3?h9a97GvRI9IA?GniK{~@pydHtlvaDu2ED}LU&g?nieCI$;{1@ zQYuoSBvY&ce1K;`a|5nfkh?;#)Dj5|T~AULtYm%dCL&Yg)Nj~Aps0khU^%^4d+wTJ z+qROmQM3eZAh2)}R@xplk25w_XWsgGNjXK#>Ylc9SYsuofw8e&*e@Wio(FaHPY!crfFhX^M$dLQn786lz}_v z@vN|$`IBb@)_wOtB9TDXb)wVLym|Ny!r__JJU!jXkAM6ogM)*l(`nM_^dbP5sZnej zHRtW@puzk;FaUE!fOtGkGMOZmN-Yv;Ki@_+o5iv$vf1q2lO@M;;{HGm@61we);7aGdtNuifBQPIPjC_tw1tdV#-7raTQ3vFe(rR#2MImEyIP z)`q8^5P=`QbJ{+8w$$9SXO9!0x3|}B{rxZOzxi6q6;IVCdiwJQkm*F$iW%{ERO{)@ z-1@kK9$*9*&w(rwUkp$wU4Y*akNd|ayPW;E`(2}>cih)*O_@*Zia5XcjP5*g^yf-_ zeLYoGRh&J0R{68t!)}S+KKAP>Q`4)}0)N2r`~6x`c~RuSyvgBl{gYdldVhX_B1EUcWBpT3??C{I0c38H@e3QdCsN zr3;7cuYRsW`J^L1ac87Z%i6^x(*Z@#lqjZEtZdvEYTdeZYhOi0#l_0X%Ku(Y96(4Z zH(kDb`K9-dAN@*s;F`Iuw%7d3mLW^#5{U$)Kw%X=RuOpX=uTzeMhUOJ*n*-Yt(3-O zMG5+9H+Ehg2m$Sv9#FdnHaNr4dgt>8zW!b)6naMpab-CG6{u=!YikJA{6T;AvG%z? z4noXV3sPdsED1Y{>xD0LdOEv;1cOONhtaCb(Y+pQhcYuq2za>hruA^+P3wb?rmXh% zZ4IGNs0z3zz=|dW2(ZX7?OkP9pV>O3#-bP{g(M2R*bc|a-?*2l!0o1{rq1_|cW;@9 z7OUH8d(9nNhwhG-1SN}+2d1K+xcu08j^)MAUs|hn^>1*FM(Ul zQpasy{)83qMeO3jh*eUkQRGk91)h|>I)5fg$&`~=B43%B_9zokACu958qorZmMT%x zR;kj^u;bkJ?c4j-tXXqW2yx=R06B;t(2z={LVbOGWg{aa#gRxP5Rb?Gx~}_7({yJt z8CN!&RRJ6hhn1I?XE>cs-R*X3UaxmL5C}vnDk>)H>gvYw^YgobP9a42ejyM`JEW8< z^Cgs@#U<2iF$wc`y3YJXGtEra8y7+>d+e6l{{c|h^^bD-5`F*x002ovPDHLkV1kO< BTg3nX literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/large_webcam_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0c6cdcd4e17f49446dddf0d98b833eb003fde5 GIT binary patch literal 2623 zcmV-F3c&S=P)XY-LjQ{|5w3P}W2Q;DXn(nFMxhO`YRX-q;|LL5#5w()_% zj`7-f*X#8jZ{NOs(?51?FJ{3+{Yj&FZ?5lme%H(hriheHUZ5WEPU-RiEkZQg066CNu)Hupz*Ws{4{dk@FurVU zyZ^mIhYPmcfA7}|%F3fch&AIRq-<&o$6_xCDXbX|?ZN3thz#(}XFoao@>pO9Z`D#N z7d4>dIxyo-6l;jywq|_iPf)g~mdm-~(l49-(Y<(B5?r{;HgetLLU-5p2khn6m=dFsHK=HgRUdx1|M(Y`O%M}b+>nLthNe%)AL zh=%oB0l0AdQvfO#H2~1t);#e)XYt+mM_QOC%DABV7+5jv_*-vN<-VRnR-ibjCR77g zPo6oq)EfnkO-lf%KeFfjXT4QRQRFB9Z@v0D05ARSt*rk}mz#=YzQzdPgha8a=z2_% zhD3=g6o-oR`70}Qpm{n13gGSO2~b*5gC+8(8;`Wx7}eu+#e5(nSb$7-3a}X}o=Bcv zURGoPT{ohE2}y)U09bL)MvOq`MEfnv>alxju+%u61O4nc{&$Yoc0itha3(u2Z3%i@ zms|&$zw$hK?_KWz_f1P6G~y#U7D9|^$UL2m4=n?hf$0a}v8|5)@I~ucUTu31|2;vJ z96>TDGXfc~1X7jw<_y|*9N$x&m+LU4Y&ra#zuc`hOt=$uRIsjiHNLq{rTcs<|7wnC;a`90U9z&;T)%F90B8gbOeHXxia$E~ z+TPyS<3^x!0?e*C05J3@-Q7uAjR6UCXgA3*LV( zbj84`*)EoEc#Ofp1P2bBA|98Rrpc;RE^f=ML%1cgW|fmndQg;e4CobV+z1iY4ST64 zU_yB|3uNSh&rb*V{IqXRZt1KYJ6-nFf zWZ;eOzyc;ZvPvu#11XqSy_n0FeT2gi%F3&7%*bOT5Wq3RNr|_VK)_EV63LvZNKlN_ z`t~eEO&8_51WeOp(AS4eRWS?$x2G7V)5W~%TE@mg6c)~;<OqY+BHWmMPH67UbPU|}7e!kLtKOKERAd(|8%rIG-9 z5b^*|MwbN`>7oPXbu}<9f#E@F>u$l7r}5dr{TN1^J6Es4cd0Myc+0ZX1gL@3?!7=U zP?RQ9kf90nh6s#?Mkp_v#fjrz0nl^4gL(6+INyCP>v$=pngDw^1yqy)K5h<;v>#lT zKq8SK9*;9LIDl$XXlXf#uIrpVa}t}P(A9O0cs!0_7?|ed#W?K)s-D_qK?bmc$;h(+ z^SV9|4u^?Gql^TDyuSTqe7;m_4hB!MbLZ>y^z;yq$BD<|R}cUc3ouh)TIv%>*?rs( zbikOFz}VOrkw}DCEOrIR(XX0GCX<+^NivztHeHdaFdQ%Az|nM>oAOG02X;YV!Qn4&cl~Sr}*RFML*s#HwpPzpP;aDuj?%lh?`}gnH$s+os%|oPa zL*u)jIMFf*^a7zj?%mrl3on+a#_r8b0+Wx^RGd~_E-$aUykf;I!NS5hVMXy4n`WhES*~62xOT^* zk7{eytWf}3TU)K)y!4W}X<)##G%ehxXzwzd~?<%#mwOUzO83zv@v{pwV z){L?;&eqk1oC_CPu7UzhRaI@i5XFl_A#3jO<1H_|@WQwjt^%LXfRyqzpcX(T5>}$W zKdg6m8?nw#!)$LibIzRcIL@70vVX=5=jgU=1;wSM%HdaDF&=7bGrCJkE@(@Zbj@DA z+{mk`QMI{qH8FFhL$TWxRaLRsY^`p$`?+l3076Q+0oY0?q|@9y%m+cUCgX#p+4)LtuPd=H?Bae7!XedgzoVgZ(tDF$iv=|%=)7KZJ zr$?uwBT8qdL06YSUtfaZ;S^v|kwQg94%O9mYHIAvpYLGqT#bqf2PGv=)QO|MRS5Ci zbqSZoj6!zL|Uhd?184dA&hmYJ-&00W1WnNWCUXnY>hFUMR+Me27$*8z7bW h&I9d2i0F;5{2!nV0O0@t literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_found.png b/public/images/map_markers/okapi/cache/large_webcam_found.png new file mode 100644 index 0000000000000000000000000000000000000000..ca942ed895ee39eeeb04a45cc95d1972c5fbaa47 GIT binary patch literal 1413 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 LNkvXXu0mjfTWh*l literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_new.png b/public/images/map_markers/okapi/cache/large_webcam_new.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6812bb7c87c04b77d7afd9ba226e4df8f85eb8 GIT binary patch literal 1698 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 X8;_^>K(;FK00000NkvXXu0mjfg0~6q literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_unavailable.png b/public/images/map_markers/okapi/cache/large_webcam_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..1747008c4e259dfd3c5228e2dd2b69fccc662b14 GIT binary patch literal 1564 zcmV+%2IKjOP)iIQ_@6E zc`-Gqi7^2!G2sCpeNkgfB*vIj)SSMM!+C%s5-tyrKx_gz+R8&2q|(X+ilu|SG1F-~ z_se&gy?mH&=vSFeTXJ|XIV)M&neVdyzqQv|``ZJ5RTGga5vdmu_n)q>7m=+ZQu#2& z>qO*B5xFcPUx-Mpb^SFFxhf*JMdaOwCGHiGV@fFr-?$-`oe+`tL?jx$b4Mb-{U#!k z6p_}40r0YjXtyq2lz+bTlJtN3Z4pAEqoZ>4_1ERQx84#xl@by8X0iF455RB-=znt4 zCZ5{1jo!{q22Y(L_WSRgfB$`w;V@g@c?VZjl>#m=HksoA01%Pwz!5E(eD=a8pD=#) zDk~m)3?rAL<)e?NZ*De$uYr#p4o7ZT0PXGVLra0!yLWHhu3fvl;Xr^h`}dQJ$JzA8 z8?=1*A+cCY_4M>KwY9Zf1N3D@*WTVfl*weIoNJmUN-2qsj>@q&-;~2Ucgo3*4(V!Y zl3$J;6A_W|@$sI{&dv?X5?=~HHk%ctlthMx&#W|=K1sIak*SL91imNJW45iJ|9g@P29S0f%w=Mt)G9+)33aO zQi^|k_8HwDe1QM(Vd{76U}at17QhW;9tglN4D$IrB7$j}+Eq`mdd-vEyb-wX9jo#^ zKrQq40cHKxfgE5iX)B(c4zpq7W;`q1^!)HWx~|c@<5fbFVEP!DcXqv`U z_%5yrCxe66$mMbbu3w|V>123#2u;(_bsf_*?Ep?ILa*gT;VR}@Ujb&>8c3y5WHK3| zu^3++{DM#@1VAiyjjpb*2nK^_nuexn^8lD@y-F+E;>{d$b&vz}MFEn@BZowycmD7$zHNLZuJ zVktOy@L;*yOEtTA%mT<+*VKcYh?Z+6g(Z(!o+*mM0w1G2d-e>Ah*K%$5)oHxYio5| zTU)iqD36vnEIZu}CB`oXh3v zYiny)Ha0f?4ImH*=v`f1(|*6dUnw;S+y+L03E-}63;|&vYC+CxnNk3Gi!=?yfhiFQ zX___?4u`jG-@d)tBMm1Q-X#fJtD=7Jb&XLS+HO8Vw5h zN&>NDGC5IGQ?tVB^}Y}ah1AibNAC;{4*D(eU#;k8DC9cMT*W7?6}?X!7CsRb^Q1F( zX2|sQ^&RqfJX_pu_xkJCuV1pn`zicaDCXC03R}KQS*aB$npm!Et{H|gq?BT0WW-M) z^4nIFCWZ9bpO;b-+ikgjOo|_w$0_Xd#r&3y@_z|XgedyFmioW_CG8Jv^mE}topT8Q O0000t(+Pf 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 m{|(DOs}{NX^Y}d08vg@}Mh=6oF;#Q`0000hk6Q literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_unavailable_new.png b/public/images/map_markers/okapi/cache/large_webcam_unavailable_new.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f4599418f4cf7e278140fd5bef031cf3476266 GIT binary patch literal 2101 zcmV-52+H?~P)oqa!exQi@Oc3A{A(o{iI zN}8fUV;iZ|P#cpb?H{!*(P*ME8sAv0e>8-YgwV!n#k2vc0kmQ@u&}s1wk*2{3j@nO z=W*xGy)$?2J*R){EW0cFs)>K}mz>PxoO{mq^EV>vFOpKO zkW%`-P4O}*@Llu{<8lIbX2oy{@qyM%L#d~@x8ye=%S-FzKuf2xH=VNYjGyAq~CE3@@)5G6vu_;8h?z-6VW#0u=46%2>s|1J69emDX1BXU`^^PP6u@r>MQ-dtmPD zA^E~jl*;aZ&1eT0_B_1#iHB#Bz0T&%o#wiA>wGI8eUz&wP7seoXn62JYFDo&kw}PH zscm*9)m;nB7~uN0Z{NOs!Bmqx9uHoxmv|(?q354R%gdu`*)q=V-Aj1>e3~|GQXS7L zWvTcRH^J0VP^WixyeW!;*Xw1dtBbvlKThn@CDuOuH21yr7B#ot%BQcq!iinGQ2pxz z1(mO_l~PWrp-nZoZ{I#NO+!%>T-QYiL3MRCt5&U|^S}WTkqGNwe36@Oza1e2-+$o+ zK78^?T6XN9cFh_J%5SLw{DAq50J7OEuInPD#Bm&4*X8Qfs|*Ybu;P(Ns9U|7@+C_+ za^wi@?d@#YvW0ceJ;%_+i-hLR#Tb0=e4&5dq~b752yELXe^!WD1x5J%h3L9YCM!66 z_%p5z4UtzfhxYak4j%lNmX;Q>*(`ZQMdZz!=cI>TH~PQ&)sdWrHm0d#b*BWdEDNMU z-Gc8hFwl!(q^Pc`#Y$&+_ucn6dh8@au_S|o1Ef+Zgb>)a%}X!6)NA!^)zfBQ2JlVL zuER_T;5ZI_y%9W`hHcvvh07=?2vWCTG4XheU@*j~lgH8Z1ler%`n>-Ben(0{$|4U4 zGF)LJEx>SI_yBFn8~`v39n(xvUQx}0n->!u>Zg9u62ir$lvh;JarVYC6GEu2K-CQb zj6c`}VCPyIaAs77(ZN0zFIh^k(9frz{1e;GuzJls^!7w1{9a0_2^TGqAP7_dWk5*| zCNyRzv>5>;^cXeOReX8k7yuV9bW&GW%Z0DbO$y)&)RaXaCp;oP5)MDPJeU$7o6VBR zWa#g^hUQT@b*hbYI!*hTHax1z`Sa(gh0!AJ2IGNG!N2%JuN^o znIx4;VOiEVk>kf&a9#KM0d<2(5CRyj`w?L?*QN*1b)7^afngXo002lS5kjD#>71YrL>cv7jC?j0pc9Dx z>G|DdRvMpe<8xh9SD=0L`I+>-eJT$<^w7As;{N^nO;>-*e)YGfeTsrm#*CR3=D7=8 z&WR3=@!pvXpab|_$|`6YNX)H^>9flWQ!SZa?JWA?Iwkz(&JV?*LuK||cirU!=;-JW zU;O(Y;x|9D{7I|cXz%i#M`jGyNu-m>nBLxzy?msVcAy97&w-2+9}iG1{Xoc*OosXf zPx`v9bosAcyBaumdB|ROd(`*idrjZ(cf6z4*Vj{1Q^TP{htwaejszqj@!m%@wrU|p@ zcyxDTW8+RmQT{U#fCkjGw6rue)_rc?cjs~YI+-&1T96VUT@2yk-}Ixlg0_cbU0Q@OyAa{=%w&~`O#`kpH#fI^@cyYK1F;fq>CGMX%7*S6<0V0LNqfOoRaAcn z;q^=`e(dyo?PS*?-?eDHZ{q{aZNQaDor4>bFi-0j!TbRy9E^&RqNr0^q*EL+#Owk~ z%*r2*Qp)m?F!I%*c!4?)3o;lBYf(L{>Q`6FJIm{XU?226-C)IB|r|M z0%)=G;$#x=5(PX100000NkvXXu0mjf4NDV3 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_webcam_unavailable_own.png b/public/images/map_markers/okapi/cache/large_webcam_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..1c427152e2768962fb78c30dd1020c2d4789d71c GIT binary patch literal 1985 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 QYybcN07*qoM6N<$g0KaPIsgCw literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_archived_new.png b/public/images/map_markers/okapi/cache/medium_archived_new.png new file mode 100644 index 0000000000000000000000000000000000000000..57b25910ebe29d95ed46c83fdb5508b8aefa79bd GIT binary patch literal 771 zcmV+e1N{7nP)slTT=qcNoV%zhCmcY4eZTb|IFumYSCSK}(=)W9slS z@RUg}n@R^A-Xy0Kg#H?Wl(Ai2Jvp$IX#yT-{<>$`3eA?=Q?l(80P=S2L2Qgwg9|M(3rpz??r^$(B%^9O#uMC zU(q7u7s51=r+UG29`)ZPo!>!3*zy8r@C*&;(0cUW9Ut*{JPh0eo+zcB0~Zh?xx2d? z^r(lN4Bs9=e)b*wwIzXJJiXEEqargiGi+{d0{jT19LK2(A-><++v{6gT;$fT_i`tJSKxyu3`YSmf%JNu=i~xJ_HK2^U{? zbaXtMnwlb!NMKnOnM_6=9v=41&(F6X92_t^JFCu}`>G~%xd2MNhqWq|9LM?1FpLKi z6BBg++qQ$#)6?NXp-_v(V)Xa-m(cFt==~D8KFsLajHJqG?z>g`>vYc);7IrdCzi&E-yrPMXsw&N=+D?uRyfk5DSwOZ}k-rgQg zCX+ovw042l3m$n4i%=N2p_GbbG8wG~R#P7Szp0**j#j zS#K(pVr*>8>F(~f4Z~RW`FxdhI?c$)2=+g}Q?EC`_}UL3beZ{on56mDPV>Hd zi+j+MpVRm9@W7YP2Yw&|pgK2qPa7M1A}f_~)ogmQTCD-7Mx!N$hC;$H4DI^$8^-+n zMPO>`WoU764L}D7OiXOZMq{cM2=LR`n1!zEbUGcWX_{u+wy^Dyb1=^i4j2jsA1kH) z7DD``l^`VR^{M*V8Gpv(ym|BpC!fFS93Sh$#o|-DP|$m>Yd%jV`EYW=+1s}UaCcx< z?RGQbI94*5WP5uX!!SstQg%2TUhHC!n69hkK%S4R4} z9@^U4GD@WqOG`_n)9DM~j1$!cizW*|K{+~5utDxSt@;! zrBYclO+$YE{7H+&;)z7UXx_ff=>7Wu`vbF5Y7W>0ZU8QD2-JWcFanGN4*?r^1w0c% lw7$6(rIh)-01U%u*|sgW!8FYbI0p^^G=QQgzPd-f9#Tq*I0itBMoc;#&irSjlqzrx zJOQBwP?n`yiNkJ}QV8CCAAm)_&;5MPX_8cwy~9_RSb{Y$9smFU07*qo IM6N<$g20cD9{>OV literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_event_excellent.png b/public/images/map_markers/okapi/cache/medium_event_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..51ea13a3d633da563760663dcbafb5c7c634e614 GIT binary patch literal 504 zcmV^l0QfrQ5?rVcV2=RDM65eAWG<<&`g#DUD`zv9d1Zg zDF|INIyeXS77BGPE*>}phf-(=LMw@&gGK~J9PAmBoXO>4PA|ddkVHZf|9#={c)$1k z{=Q${`$=>`G!pzd?SDH{y;Imq|Np)GExFK**MXHtaLqo7irZpbIEA>dkD_8F5?t%X zRoV+ve&4LzGfZx06@bB!Ii~!+Sx7!E4uwKVNsVf1mR4F{O06-VDe9vMje#>8!j09nM#&6uPcsG|pyYJu9{>i#=WE z05FAkowIG<@FjEkqR0SJW0zG`-FCTLfv3p%eEu|%NPGo0fm5mFZixB-ylYR?f*arj uNCDYaaWD1BdBfwsPyjsl%+0}O~|VNnjK z7iVJT5wpv(qlrsQIC?ZYnvj@qAx7`h1I8GM0te>U4=o`q?XZOoXt$2i_UVtceSUnu z9&Gmy_`ZBj?;nTPhX64AC*Hg4>)UfTKN$C4<|OmYy_57;-#+{ffCNAiLg+-q0f2hu z*Ty@y=Wc!Z`6qKM@GeLIR_Q*w``hu;8(*w!3&9;ktVTqK0P6kLzWChu$YqWYd$F^^ zozF?DA^s+|30~0C3mBGVoYUk zkA)qISI8}As1mBSFyLi0)%bxYwHD;Hbd}3(YVRkJEKwTmtmmuLTR!{h!|7r55dq7E%=3LbdiDV4 zW*1R4&Xul}cr3 zetv#$Os;WcGfb37`x>f8E>*aA=w)g~MT{swxA3R4Qd= kv)TSs0ML6OCjO891)G~?<3)0ksQ>@~07*qoM6N<$g64#iT>t<8 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_event_excellent_new.png b/public/images/map_markers/okapi/cache/medium_event_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ac1ea7e46fa02f1bbf23fcf4772e145b15877b GIT binary patch literal 560 zcmV-00?+-4P)k7R49>^lRsz^Q5?rVcRkxP4Oqj`q$23phHEYUA?PAVbrBp~ z#6bs95DVgz!O1~z7X)_)#RG|}(5OX)X0T$DQV96JXOi}=y}R~uUXMJ7CbTxG)*rm# zJ-(mc_x-+)C()tq-po8YJ)AtV)=-!%&A+&Pf9g^vodh6iTm^=KbhR4OwZuS5>fQr@ z2ptyfpOs|NF9Jp2wbV}zKxu*(THSiO;+lj?=*|Pst!ngi#WnB&bU+t1kow6fO-Hi# zPNhD7Pv{p%esTWX7(wq|Bq5>N74pv~l*b?9V~2*m6|&b0fh>^$ax##PA}Op|`*p)G z@DfLHmR}JQOQ^!au_p2Qj$;@Gv*pyNWz)A7aTq`W5Sv0ctDofQ#1E9!hXDBg5C@+< zpnfHb5JIj8sJ*duPT87ZEuSZ|6372C2!QqOE$^lD}&cVHn3hcfLqS>a~QJfKw(>Nuj6^=unH)E~Vh; zqIBsdS=<~Y^bZgUt|DC=?BZgfp-Nk{h!)ytXor?+&n9V2F1g$#Z!dWra)NkiOTX|8 z@5}ec^FHsR(F55``qjO`#Q1SX@FBmy@bvkohrM_K%w*DYZXv5$)tr)*oN^0UHIqrt z_2Oy(MHmAnfg6ph@zMU+Wg(k~09*{kunx;!WUI6Uya(PUU>!jCCX+kS=u}GxBjI(> z+Q(c7#k%etiEOvUk9d46B;`$`TD=5(1EeTI*weJ3MkHd~-P_~k>@)7C*6F`8ic*T^ zuSGs?-saKN6PA<70T)Jq0iY!K4-=_7yk7i?XuJTxajuhmGmHD+F-p^P8~W&0P+ZF8 zNZWllyVn3XT3z8wxy&ug0ziTO_qhRaZDRv_dz)H5-!%gc0A1Gu(+=L81A*k_E74!XUrH)+)RMZ18v6M~Lp`7@YhI9#8|SfIO|sGw}zYNvpf1e+AP3 O0000!l3hqsVH}5_^PaQi+>~k4Ld%a53vqN44!jKdfRNoq zMO}n-Qy?UG5nUJ*b>)SZ3%Uv~BEk>}gTMt@x-Kl|$5OK(nrl1F%{e#EIXkDDCd)vd zoA-tP|Ka`d@{=gxL67h0Y43qEiS>dQn24x99Xj8KSD$E``i!&I(NYEq8j4oD=e4 z5+4I(vN}~#4TaB99NmgboKjo`StB*DxdP;ijwoJ|u?@F9o5I<2p2c)4V~H@LUBXhq zGQmnpI2`45Ks!*qE&Kg`_v?r*(y1Wj)*3H9OzSGHGZ9JK);>up;Z>F!`k=q1CM|aVDTS0lgTh0jWP?QEo-+>KuJjea=AP= zV!!s3ib#J?;rIJL*lf0r-Ii5VT?qz*gTN@TB9+YQfDWK#XQC4Fz%md5;-zvK;07uw lsqGF7U>!&S+HNWLoqYfR002ovPDHLkV1h=-E8qYC literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_event_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/medium_event_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..1bae69cd0407a2a2c13a073e4f0170982c058fc2 GIT binary patch literal 896 zcmV-`1AqL9P)1R49?9lD%&mWdO#X_s#X}TpT+-f7FhXIE@=SX-L(^R3XTq z2o@xUFn|=bTZM!e=#+^Wb*fl9Aq0w8kQgd;iA3ZS1w} z_wky6n16t0|2@w${0IPwf5X1Iw|w`#Yk|dv*5@AX9XWH3UZwC;dDk)IEczzBQ{G8W zsQId$mL%yE0OJPW{d>!we(~9dD|{rylxCZIZGAIkFBRta8<)gM=?dmQxjIfxIGX5P zZvl`2v<5KVUYuFr`6#RGJ*28;P^T$c-ji}rze|Nk-9N@So3B4^Dz}zLovhF1D504l z0HojVlV2bG@VV&rPPT-E_hpHn*so=$d-Jy7HYOaS9gpw)tm4U}pL2>LpIwjN?22PP zn=;0b&1S`8Gi3P2sWUMXbvDuQkKT6h-o&i25MJbk;bE#d6`1d;;!8F2&ePwXin^`~ z8~`pH4qr_yt>&KOTY^K~39^!^x4#{21rnEAoyEHAsJIJFrXVLHEGULtjq`?RSyqc9 zgt+>o?=Cmb*i3RFV^;*0nth+YQE&2@yySmUIfz#RfARe88`gL&Mgt+2uKPOH=H{l( z0dV!q4o>UGu&Zr!4t@s4%0|d`8G7M&6#qUB$)x4J6$@4zu5t0r>_6*?QLfW#_SV_~M`}%d)}s z`+dbWY%S`W!9p~_4(s=kZM=d(C@kBwF1rKu`Pmh^vXo-a_x^nSwALZNUBphXEG z-Ez4snLV=;@kFWD9m5&r*pX$R=5Qe}wL}BnD~w`D&FAwJ+MzLm@623G;VxG1skfASB3 W(1t_MhW1PV0000+lU+ztaTtf6^WWK;ZdRM-C#dBz8!hTW1gWdCJ1@HO z#)8NQ97F_O_jy}%YtU5$T@*=m8D)~05*YJqq~r%WYcA(@bUQoypL4pBW{UN@ejncV z_rR-AkbBo!p0tH3&aI?PaepwHSSrdh_j38Mk;z9q^r$LRt(Di1ghDY!Ax zOPHpG6Bo9YgDORs`-R(9Y??ed?KlyooIVu@0epEERL`C|kM8j?Ff_@-f!AcN zmXcQuaw#2ClN^1T6%WEGufxGc!hq8Cn5V1+amvqnuacwU}=n!PFY^MhT+M37rax4_u!;81n|QE#uPG@d83E zw0$9bm&u!gz`+%kXJ#1w6sNx|k7&1W^)|9G3uf~NY5Ea>cMA-V9vefSp2jgTLA`BL zqLwi`lBKnwhKN2#Wz9*KrfC8ARxSR93*!S?#*zfzX1UyTi4w2PdO9WzJ)r|~+ve4g z5n{0zzW@{kk+<*zp-_nWTE8qQ9-M2aWdVq8fi+EIG!|nVNZIyoM**+}&SrJ4{P_7# zs1P1^s`l}!vhS1OaCdOG;kxSigb-M1jp!yk3LLw2{o`sfMPwsGv1PHNNL57^xzW=a z!vLF)aZyT|rR0Pm*(UK%Euw2F-Z!=K3^4w?-%j}rR?7jXLtbS000000NkvXXu0mjf DOV1^6 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_event_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/medium_event_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..46e4c098f9e2d515a98a932b4f952838b2cf7067 GIT binary patch literal 649 zcmV;40(Sk0P)!l1oTbVHk#=|IEd4)G5VFOwbKMakLDA0aq@poe)G9 zBB@OT1%^?}a8VQqEm}o^5Jam2Au0$Y4M|W6@q(I2n&ph+jLsS7ICDIg|FoIROWCu2 zAKv$aPq2Zzt>Nd#>ncvfS8V0sr^&>8zR7G?wA09#BL(I8HG#baRneiu6JP|8?%(3Q z*6@qAtIg+?Jq@Ii8sWu9rM+hsa34|HS9|nC;WwsqfO0KwB%&A^so49T?S~mc8BqH zh023*qSMn1^e@s|YN9ktyq%TsL&ugW!*XmdP^hqlmC;f3zCK*t-5eMmrs$o9dRwLX zP!N$P*;m!zJ9+m0Eg-l}-bgVJ9!*lyo#o=C7CbIczY+0JWhIlRgi`=cXo>=1v1so8)vl%}^x57?5(Dokjt$NzP_WP)3hcaNx{1!03QPU?7UmA_1w`LWQSweGcz+GNs`+z46f@s%H=X|YHFf=eSIw+pU1T?@3Oav zrR>e?x4z!HcAvM{UHgo4j%YO6GCVxoGdnxW2q6G)2H;Ex(JUaGhf0#J?g;+k%dzYE z@-zFLk!i){Xq6ZM=Jk3n`@8(@@@Wow@(@;&#jMG))nu_WWm0kJ<&%dnrf;KxS@}Tg zkXf%93_yVqLTrKvd-~*nzxlpQ$;WLz(00XQDwQp#+8I_~KjmwQ4GgI_Xuofek9LnS zt_f8LAu|BBs#eB+ZWl(Ti1PX?pg9eXVMFwA6CZxO!?9jP(A~=&7d?PZE8E-K$xtX% zq5$*@tO0I^7p*ooPR?X(9DJhhcUQ5MTt}f&pgw0O20O#lCfRx9bL8jz{QMCigfk(8 zVyH$b;JSo?Kri3QJwWvM8&pD}8yc*QZXODZ(sqZBr&8&Yg@pxqZ*NZr07?j{q|@ny zR@KTKjsSJqgE*j!@8~MB4K}p-M`)X~n^Tzb@pxRxX0v*|P>c|Qxw$z-lBA=_$vd9A zj~-h>i8Um0ao*$UM>uemTcpOarfEt(pI1wz(s=_(z1ve$Qxm~pu&bxH$E)!wt>_hM zl^Q_|qQ+wJOd^perBW$nWo0D>APJyA>Jh@>uvM1j*0HfM|M>X0$Kh~Ti^XDPX=y3F zxVWffG8w&A-x7cv0QKCtCScCz^Q@zzgSy>r3ILHvM32Q{^{4=#)^l21zlK^Vq=yKG=~C?cdH=vrbWMFbuD0v)3coeCl^ zojiBz>ZK3RE%4GOD1;F5P*4_zQChJ0Z@1Ph6&sumDw)=556oeP=l4GEJ2MJ^%&`T` z0A8FG2O^4x69AUWR>6#N70AEVvV^s0vF^hrL25)vPh$ z3x|&!<2Ke;{f0?mXpngT4M4US3Xup>N%)hfs)>R2nIzTCU(4aMwAly?XBS z6k*$xQYiq8Xq3x*o(0PSpjJa|dOP6a%?PR+YF?3zW zXzZ=V>I&Po&6Tbb2P`T7K>mQssW;dq}WXU9e!?*f5c$L~2go-U{=wW3X; z310!e{k?PZ)#Cc2guC@Qek5s#eixOZ%>{r0AaiUA!J-iOtD^G~zsDl+W^p#P%rQ{y cdA{HD1rmpi?W>Q7F#rGn07*qoM6N<$g6u-I=l}o! literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_event_own.png b/public/images/map_markers/okapi/cache/medium_event_own.png new file mode 100644 index 0000000000000000000000000000000000000000..7a08e7351f47cfaa601111fab7ae0f7900539b34 GIT binary patch literal 391 zcmV;20eJq2P){0A5R5C6o) zg@uH~Fc70A2#A=_FfUZkXynTkOM}_ zZ_<0Mh7f`e+Xlexc6lq8Id69mk|cYuM^s7is9Gg-U3|j;U{bI1FdlQ_IMDofsGqXXq)ABBgscL^(k@0SCzv zF)(IBZ~!LMrAi`IQI*)O?WU2;LZT=YEwJ!Smi?aJZ~4K0;k1kCbo%Nz&g7W5uIuMG zj_-gHr~&YOe;kIPJw*@%8n^{60Y(7({l2?BiXs4-rU5`HMVh9}X7^ZYUEmsc2Uepm zq1&3vvcwpJF$RFmW=NB9#3n5sq z*In{%w?k`v+AO7Hxm=Rxd1toPVy!)G*4i+iKm2&?wj{3a`!Am79W6;w6pJKD9)Txd z;q=a~fC+FjoT!HZK7co1)i<95W8i}Cf1v>c{d)eDPciJ9N0;l&@Bjb+07*qoM6N<$ Ef)V|cKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_excellent.png b/public/images/map_markers/okapi/cache/medium_moving_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..15253de378821363d8fa461026f962ece87f95a1 GIT binary patch literal 499 zcmV^l0SkT5OTD z;y1_#usp-{iiOs4)pkKdERJxEL~G>=y=KwqnLoQb$xe2&I2LyaA<13zZ3cexKD;k8 zKfw~!YvtGXN*C^r|5)sO{{H^S^VXwfz6EX9$~$_$ZeoAeB>i2Z_v>c6R^D0WwdMyK zrQ)VMbD7_tUIDOv^#L2D;wH3ChAWjyO9)|i+XJ#gpWL;F2qVbGKk5GJ7pm2&Ns{DU zqtSQ__&_279LLG$ayi>|T~y&Vf#2k;>9c0K1l>JU{tm9|Vp-N*zy|WuGgWku3`(wUq}D|002ovPDHLkV1oX<`V<+Re zoWlaUe}H%Mt=`Mx`3L}t|HQhN-d~*k?1TK^HAY0XxpT04@0%yz0uTTQoO7EH!T^AD z&99ALFV22`_sdUaY3ywf4tVv)^!s1;|GM+l%0teXpAf1OLP`Ldz1E)CY(903AwiFS zU!g~TtWesQqEngi>!#HdpI5h8qx~w(ILiU>_W>ZBbE2y1M>8`s??mav`-74sH^g+r z^<9qejukH*HX=VfeBAflFDp_LjYc+pRSft7po}r>?d?UTr>8TktE&Uis~@+baz~h) zkm;3)q+g0~u^mik*<0gGGhRi1+WawWm^ug{q5wdM$K#hrQ=>y#`wY>E{NF!6(*^N- zJrW3AVs&q@_GkNONA^XiPYANff$M&^;|Tzo0wJWI6CSQL4%nlYoAgkrv0VDC=K{Hb zbGwayUjBw1wTSmd-lh4(6uU7#CoqTGoO4Y8(BE+`uzyy9S2v;Tmq0uLiSRJ?j$UB9 z{1oPS6KOfiq~RFgQfqg2_b`{swI~4h4Z#OliesQ(M&n$=&cRdqr2Ggks@pIvgC;JG zU}~g5`^7LTJ}VwCFE5`ELYTlg*FD>7jYTIgIhJJ)$OBaBDoU;b*K-i|zsV*O({xBm zuxho|SX*1u%H^^P0F)47)oQhh({V16(ij~MrO?z(c6@RKt8HU6oTfve1f%FPR8`ea zPfy(*Py!(YOG`_-D2gYyZ+{y5;?82=X5}U-XDZ9Y@+gemVgWI9;W&32Ox$4|YPl8-iXjk>*ovaoE0s#CTCM6^TU!c%LjX&d<-sBuNUIrfF?#Y}D4**Y$e6?sk8m1>g*T{kpju;5Q6ING6k1mSqY6#bVJ_ k6s0#60PJpvi~pm40hk47AbE$k=l}o!07*qoM6N<$f>zpxKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_excellent_new.png b/public/images/map_markers/okapi/cache/medium_moving_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7ecf22b6643501ef1573066f6b19d66739814c GIT binary patch literal 555 zcmV+`0@VG9P)^lRsz^Q5?rV_j|grw&fi3hv_I?x1i>TpR@d6_<8VB$k4x=uy*@=6ZLpxx1uCoP^eZ@mYE&QYrO{mP)(m@ zx3ZYag=L@&yw?UO0q7gx)%IU4_%%CmYc>`dqd-Xjg(T6M)!Gruwryng zG`{zalv=@1HT>E%GII{wwwe2yAFjD%))GblbO5!jgmnHSk6(V{Q1S$T-)aOsD~O^P zrId(bjQ-R*r|)dg^E@&~&m!aEdZVkWIF5tw`vA0Bh_<%_4#SWj2nfRvfO@@-loBDt zPAi=!dr(Jm5CpicyP4c*G>D>TcUVe^<2Y0*l}%VFg;HvFIErE>C#UxG?D9Tc6$j1l zbK~Q;3;!}7JN$E52wH(;z72l_towIAxGO%N>mjM_>-Z~4C)sZh2a*}s`WQEogfmIP ta5L#FaceB*J)gJ7&+{B;{`Y*{^aoTP%%O*|Jc$4R002ovPDHLkV1fbA`V;^F literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_excellent_own.png b/public/images/map_markers/okapi/cache/medium_moving_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..11f9c6e405bb59ab6d1b49d86cf5d3eb75513a79 GIT binary patch literal 522 zcmV+l0`>igP)^l1*z9Q4~PWjDv)vrXi$>xR9<~Xe*_N0T)uFx-0kx zl>UNj+_{XQKR^`RigfKpgbEfF5d{}r_z?7XICB$N4`*GaC6iA9~M!2@sexaZ#c z?zNqCSLbWj4n_vAK7M<4`|i6NS#c@W8uj&{-IB=K6xH99pxu(SMtwaiRs-n5 zGOz-i_0Ck6rYkds3ikmxo~tm}{}C6q_g(-mfhRTC0x-r&R(8te)yOc4wRnU!Jm6Ta zl4Kt#)Np8+)#`Fisl}pYod7-o%IHEq*0cq$P$*v6-R0r^CfDb-m_D_Hh!A$3^Y+69 zZm!{@B7%cjqm#ac%FyjIOw{bns)l;KS))!ZJS=NcUU=!B7z{8 zEIW>aX_|C8okLkf5Ru7p5QH?Fcd~mNC;LOLf!`H*pLgAb_WWEi+e{Fp!X5Yu#J^X5 zT<-Vt5nS>iKRRNNpJDqAYyd8dcY92ZWOIrf{R=T*0~VnE)#XHf0(1nuF@3(hF#rGn M07*qoM6N<$g2&|TKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_moving_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..8fcb0047b6b2312fa137a35cbec1e4919ba510b5 GIT binary patch literal 651 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_found.png b/public/images/map_markers/okapi/cache/medium_moving_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c081a0a0a816f150ffb37602f258bf662f453454 GIT binary patch literal 775 zcmV+i1Ni)jP)gcC?mLuH0)PM@q?86@jGB*s5$}EtVo*vMl9C*ZaUDPsK&k19KM4GE zvrmQUwTmQ;0C2Eotc8Vz8AVZiwr!JTS*X=&)X~wwM@L6J{-ED`q9w)W^v2c87q5Q2 zeZEK@m-j>v5#sTRr_<@|&?%|N#os*9oDTa0F*dm ztX(qc$`(#(=jSH&)Gt&h6r%^!?ZYiPNW{o642%UQ=;?zgL8dgMl$rq0erwin zl25|Um7$&_!EAw`s}J$>L+qz^QNAf5>>DO`pC7Pz{pjfEY-D7l!U0(KMGJiH0J__K zDBNf`INjx6Q#&}!?4w*S@?cj#Cix1P%Ge z5FL0%tx8+XG)=u&EE<(c<*tFO+3orH`I&GyJUBEw6fo(Q*R48tDs5mkGgLK^OQ+M7 zOeUjmZEdLl&H$8HGeR^Pb!wW{JvB8Inx3BayWMVQxm>PqY;0uL*4Fe~E@w6BTLF*< zVB9%31RTX;QS|oqa-Yw~0U#EOS*ofwqXK}@5V7z-^9yx4WXsWW*5LpE002ovPDHLk FV1gv;WXS*k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_moving_new.png b/public/images/map_markers/okapi/cache/medium_moving_new.png new file mode 100644 index 0000000000000000000000000000000000000000..de9ad3b91a5dae42a7edd341314a6907260831e7 GIT binary patch literal 430 zcmV;f0a5;mP)^lDkR+K^R8QE-Pp(6cJGoY&Ap;f(VwrfTd_*Wg(^! zBB>=7K7kKlCrBV~AcBoHf{3J2bV-82tb0jjCt=7~#CS<0(XSl7GiUypF#vRlZD0v+w&jj`L}*)oO%c z*c%Rl0Nb`H7K@*-)*7vKZ#WDk>Ga{hj(yi>>G_G#hxK1m(N+e9|9Y~KsRZQv2eoEf;eW%c4_(>ofE*McUFx$Sma2^<0~;LZ8j zG#m~A$nzWkr4*CNg!9ugjAhvpwkS>&4#N~35nQ6I*5alh#du|ehT41vd1sv;#Ua{ zj-iXFyP`-+r9-WuY5EEY`S%<`G#G5u#k1UZ-#h2sd$|Yx3tD}!ZTm*kwBaUlnxz)BiAO%1O(RUn2b-}W%7&ry?01SXE%Rawfo&yS0Qsu=A;t}!g9ZD%3I0Wv2xdD*p zx&9%}o}dVz468h!GMdQGil#+$E0Vgx=tRlflp0u1%r~A+Al++-Q;@2z<}; zE`UqG*BWp8zz{h4+ED`u@C@7n^QL$k=mR@^zl9uF(X{7Z@eUaujj)onGN=Fm002ov JPDHLkV1hwsnH~TD literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_excellent.png b/public/images/map_markers/okapi/cache/medium_multi_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bc1b1e3b33994227bc2154ca12aa14316da8a3 GIT binary patch literal 509 zcmV^lD}&cVHn3h?|BJr0}={FP{b1L7;umTJGm%DhZ_?2n|E>l?ZD?sAXAwITGJj=O8(J8R-?)?}$#Tp7hR z&o<`sxdr3Wb@o5J24LpKL+10j1!$fxE|p46rBtEwyGQy@m(1)Vlqk~2J9KuP>2kR& zzVENr>-7rI1$+a*vaD<-lPTD?jh?=P+ifr<4inPB?X07-cd>07(=_h^1t2?c4uW71 zrSf!&5 zQ9MN-L?Ay-?0H8_&VAG` zoGfDJ5A@x9tM{^aJ_3N^oml76AMeb3`}t`9RYpX%@%-iCy`Og<01yBOobwhTgaH8Q znBN$9gk%9!yRBWZnbFu)h6p{~ zS*EZ4S*FwxqZ9F=YqdsIJSgrl?c&_WI7IRFsOIZ+hl=G4^GCjnajtY4C3O&syt z&MSW2Y=pBXn*X=0$BthfE=yHtS|U6yx}9!N#u$!{j{K98lkt_6m0)1}mKl(n!q~7( zKOBy_BtI7~JP|c9JH%AuJn+ZH?>?iZgAgJL0EBQjd}Saua7n$W;L|U{$Gd-@3fTM8 z@AUXt)ghI{;P&%u7hA+S-izLR|Npxrd3Cwl0~~*gUWZ{>oGCV*N@}V7ue4~ zg;r}|I+0+~C2zq7cZ#3)|p3*0|Z5*8Jp<1ufNZ(~l ze2}7E(Z|xy(x*#HORotbOyHdB?N-|y3=CszFu``!B^1t%ku6c!%!0Qk$daLHdP$0~ zVzH#HuCA)NT+RjnN(gC`N~OHjwCYi5kVd>iD3>Wy3U!=U+z2>7q5)ToQ8)}mQS`I3 zGrJ3vKnTI&;-W5!;_KVDzYdL$-FG*8caX0rEFKy~YH*gh#ooGQS-N2uEz>l+G_o$9 zSXfy2a%5yA7Ei>(7HiUm-Jl+^7o<&EnT%4-=ksQ^lRs!vQ5eO4_w}`XNdwjpn^Xk_DQI}DL6oASR7VFv zq)6@JAQr?aLnjBpUECcyD7+&(7geLQ_;gd5 zT-NPx`FOmX1+u^kF+c`DZwW89U+e9P!~_Pl(kcKwMvUIBNDRsVCSa;H5CdfNR!7pe zPbYF;qUQL>PtKnkquRF{p#+AV=jp>I`u*3Dv7<*;=F?Z_tD0aG$Y?;)^F*ys+;3Wz zg^V7@-FQw|IT)&lTbxDqpTx2(7Ct6YMVtP*$1wmMKy3+O@=}!K_hnT!z zQK_U+N@uVO%^l22ctuson}+ zJc!ix14u63JWA*X5Iu{Oo_g@&p%pADQd;oPgW4Fx)Tn6M(#>|ayPL`Gj)#pP?$+P~ z!!X0|_x_oA6%wdbD~nf4g=@V~<@NjT&+k3hoK4cjSg2N(+4AqpI-s0XUh?Veaqwna1u*;1%$!09ycRKgdioo1O2fs$TFz zl%U6nbS{b>3Pcd7U-S9tv=A5dPUkf60T5~%G+$B5N12R1)oStN(S5E@Y%zRh5-BC# zj~8sbyTtAJySynDM_jl9i~zeTe=&DUWAU*9E;BWCz?A3Lt`cY5>mh0jhllu^qSEQ7^Y!l1oTbVHk#=bD7bZIf<5+7|pD_gf-M6G^9<@4Wgz^ z7lIZstqOz!p=eQ1WE&SQTFj!AxQY-Y!rC~3lGVbp$O|=?l#b46u8xl9+M=9B4SP2K z2jBm|`@$!X$Ai}9u4BH68Kw zjtRJ2ZZEJG*qoF7et+@Haa~L%Lb&ZX&)yGVv=t!KilBk8ETAjPc^m>kR!H z=~RSd+6JJi9K<~mKA(>r+qW1!J;8RM7nocnr_*U-)8Cm0o5YjW?-nN5Hu(OLY?ZvU zl*Lsy#{RmE%KSz6^NN1I|Fy&6Xxiwrs;c2oDAWl&2f{+$&I>dFwQCdQkp;d0Z-M!I rxezD@ipV?LH5fn&NC4VKDgVnaRGi=mzLqie00000NkvXXu0mjfujVXF literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..759769d05c57c1c47de9416c73c36bed3ee7f3b0 GIT binary patch literal 899 zcmV-}1AP36P)ft=b!Vkt6wetP))0`b6< zPip_w$(2f_G62dB!LM$ve)9RJ?_K3$S*o-<>*<2_%nep2=A=k{1dX`L)3mkrS$ z91uz=4i68-BTF)aQNpKY5_}uI(D+9#E|9uprX!1-;C2(8S75!RiqF*jH+O#D5xd>4 zzye?+k;ui=%9{L3K@$Yy$1obrZugE`i=_RUxm5L>bRI#M9WcjZG%QM;4KyA1v6>#w?kTJl$@vXK!w9 zc3A+PzSTpyd4xf&gO-zrcT_jy!3mT1%c%ccloYMwoePGmE>Bc^J@bM1^x%)>TerTr z%L1@RSr@{-2tpna?OGdq<;SF^cxkm)Fe3i8EOD=J@4xeL_x{#n+lTApIaU91#&$DN9Z&uTqFAE##)K&{SNFjEJv|B-k z@KQl21P-E$(6P5em!eAt51l0FP$YGU4wa%<5Ew&rQrI?p$+?`{qkDPwf1am98NQVC zIsZO~&-c$?Vgq-t9UtfnRh?PN>hk^3Xll+;BKBh8v6d@ETwX_Tm(SI-FrMlMB7h+Q zm`Qq~Q=Yy+Lq(%x+l>%9@!16FDh)HO8&X!+j7r%)^;I@(v-w*Wd$|pum`QqouIhc( zgA#VM>>RpoV8w>17NJIx^*yrPluVjkMXl*HXU!xL$;+SugaAIh4JsY&=P9^643ACn zaQGFutCf@#jbf&Nt_lu4$;%JI8Mnp4NnlV0fIwq#E6ujOb16a~Np@)j>IC+aX>KSG+$V%%_J^;^*{NJt*AeQ=@0HAH95 zrmo@!WM$*pm%?{oX_0fw^Q2NsyctR}Fe1=T8QA(8S^EZh>yXeZkO8;MR`f+Y&IAEp zjE)mO@W+be?qvwp`zWg^QSCcsD~QGhpmw{wf!ZpW?)C!RO%mNbS15OztY+thR!9{9 zp=>isan$U0GO7u{elN&}ErdcL{B;$g+&LPnuOk6OH_581vYeP@dPXOmF@9C(V4A<* za|@f~e7=AqFhxsXr zaySixzYeJ=2#1|QR^=nW`p38|1g%2Qq6xN-_$Q0#N``mMZ9E0E|BL$vKLHV#1JfWa RNAmyx002ovPDHLkV1nS1EuH`X literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/medium_multi_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..63c66d93db6edf6da0339997b5c36ccad334bf9e GIT binary patch literal 659 zcmV;E0&M+>P)!l1oTbVHk#=|IEelI7}((#26u=j5JyXfgvpntep{r z6@e7E2nr0Lpk0fii_oG)L<=F1Rs}*3REt!oASeWhyexE_G@WL2t{%^v%YRxlnWovZ z{vO`%`*;QGxYg4#aI7hKJdw4P`|l@`^Q9)y!G(T9GsnuROZNq8%EAky$;ZGLAl<*k z+dVB$doOjIQ+BnIN#$wz@t|_}^djy9%8ivFJ?TH|39Wq8C8In8B!B>jLwl;N?q!ux z;x+Unwk=6y6yjP298^n)<^@9`crU_^P#aetJ!j@(1!lE@F|T8!3rLxx?@C@#=e+G= z**N4#-mcwjixOUZi6CD+L`-Ip*Zp{EJs6z=Q4Zb_6`9ts+>Y1fb~RXrJ-j9ZbX~p) zi8v>gzmrTRcr%h>;GKniRO0QggKs*v%ovtqdjY?~-`H`=)fn|PQQ8kLQ5!9w-ObRj zH-spW>ONZgbAMq60xcArC290wL#A1axBN@n4GprW#q3bY;YWC+G4W}^6IKiY5h3O z^;=A8+GaTjTHJ9ysrh{KL{np6yB|1)q0c}Ru+}FJR-{sD0a`Us<)7wlU>v4Cz-u56 t#cmhz0Xu;J|B#D`Ss)D<+im$@egc52_iW89kI?`C002ovPDHLkV1kI3AXESV literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_found.png b/public/images/map_markers/okapi/cache/medium_multi_found.png new file mode 100644 index 0000000000000000000000000000000000000000..1e15767312af55f2df134fe63fc3ab9821b9af3f GIT binary patch literal 778 zcmV+l1NHogP)I+}^eqZhJq@>tIWaaq}c6&&f%ikKthe zIDQW`kvH!v6hZ)i1V9o(7>qG$J^n?!`ZbARAw)z7axlhK0EYmoEm!yZOk-NOv$C^ktPp>2qea`1HxM zA1@!jqHd2bD-jX)_xHOeCMJd!78WGN7yw)XxD-NM7Z6=1>M{RxAm~Hl-1mO%o#*+3 z7pl+emn8sFC=|LA>5tr0E=rKiZ*aG_IRvRraF4sJoygn!Z*Ww5gm%eEWBz*%t6@t3 zs+=+A5=?mV5MT(k`O|*4O{E;-Nsno zFnv*$kS!kIFwbF;30Iq+qQOai(;KE-E?-_=URKiSv;_d1F;>s#^BJ>Y>OI~*9(E0& zP~eox>NqcTz}J4C`yBnmajlX{rPN}vXtfF@F~+dCxTwmqd^S7#Ja~8Pbw{If6PZ$q zhJvGr^*y8xxl=byQ>|1ghNfv(4P>ou&&|!v3=R(V4-F56Olt7DRp(B*6U=5tGMOr5 zG8rwG%c<+@>q!8|0IIANAr^}{6-Dt+O-)6nr>BEnuh&_t)#|IOtNE3c6}3<(Sk3xs z07?LiE9a(wqf)6zJv}`<5D0Jph{xkrGMQ{e1puQdV&Q-07n=lQEF;*GJpcdz07*qo IM6N<$f=3`zpa1{> literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_new.png b/public/images/map_markers/okapi/cache/medium_multi_new.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1bf5f5dcf3349d78da3db8a25c4cd06a98afdb GIT binary patch literal 434 zcmV;j0ZsmiP)^l0Pp4VI0Rlcey6YKtviu!qNmO8i`1Z-hfdUOa{@# z)Y)dSdI2^`7wZD1)XLsOq^s5wFGb8D(`ToLPZz7DC8oSM=*RqbTF$+FCE~Qp~d>%?< zGP|MamX{Wi&lU1L-An@*0IJpTvh7EdJwm06Y)>>{H2fF=A%h?<9}semm2 z3n8f7-g9;1Vp^Wxg$qhG_ZbG;wnH?2NiyDk*|~_JCI|X%E>fxW(C;}sSS;&0UR99) zfX{%$=EiZwv^al#qqB7#UosiUXa`PJZ~~wKs1hquG9x9)y8K~?pKXzUu{ao=V-Kje c*W5392l<_mMRiqx_5c6?07*qoM6N<$f-r=;u>b%7 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_multi_own.png b/public/images/map_markers/okapi/cache/medium_multi_own.png new file mode 100644 index 0000000000000000000000000000000000000000..282a8ce6b221bd639904e6d732ccb4ad1051109a GIT binary patch literal 391 zcmV;20eJq2P)vyed*C0^035ggdcaYMzYpBB z;0ZwABztzVdAZVca~D~S;}g^K_JL<0)*UbsO|usDx_Lex7lLxJ;J)2%L~sT)fDb+A z@~!|0a;f5U3eg>r(MM`pC4fED*#fVJkbXhtsyLZok6da8zUlxfKjY@%)Pc3FZou^= zpRZh#*4*vK$sdFdI*JeM@ouOihu3l+Z1Mqi9L3Gr;O> zafV?YZb9fs`Dg@z_0m1wxg;`ofsGqXXq)ABBgscL^(k@0SCzv zF)(IBZ~!LMrAi`IQI*)O?WU2;LZT=YEwJ!Smi?aJZ~4K0;k1kCbo%Nz&g7W5uIuMG zj_-gHr~&YOe;kIPJw*@%8n^{60Y(7({l2?BiXs4-rU5`HMVh9}X7^ZYUEmsc2Uepm zq1&3vvcwpJF$RFmW=NB9#3n5sq z*In{%w?k`v+AO7Hxm=Rxd1toPVy!)G*4i+iKm2&?wj{3a`!Am79W6;w6pJKD9)Txd z;q=a~fC+FjoT!HZK7co1)i<95W8i}Cf1v>c{d)eDPciJ9N0;l&@Bjb+07*qoM6N<$ Ef)V|cKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_excellent.png b/public/images/map_markers/okapi/cache/medium_other_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..15253de378821363d8fa461026f962ece87f95a1 GIT binary patch literal 499 zcmV^l0SkT5OTD z;y1_#usp-{iiOs4)pkKdERJxEL~G>=y=KwqnLoQb$xe2&I2LyaA<13zZ3cexKD;k8 zKfw~!YvtGXN*C^r|5)sO{{H^S^VXwfz6EX9$~$_$ZeoAeB>i2Z_v>c6R^D0WwdMyK zrQ)VMbD7_tUIDOv^#L2D;wH3ChAWjyO9)|i+XJ#gpWL;F2qVbGKk5GJ7pm2&Ns{DU zqtSQ__&_279LLG$ayi>|T~y&Vf#2k;>9c0K1l>JU{tm9|Vp-N*zy|WuGgWku3`(wUq}D|002ovPDHLkV1oX<`V<+Re zoWlaUe}H%Mt=`Mx`3L}t|HQhN-d~*k?1TK^HAY0XxpT04@0%yz0uTTQoO7EH!T^AD z&99ALFV22`_sdUaY3ywf4tVv)^!s1;|GM+l%0teXpAf1OLP`Ldz1E)CY(903AwiFS zU!g~TtWesQqEngi>!#HdpI5h8qx~w(ILiU>_W>ZBbE2y1M>8`s??mav`-74sH^g+r z^<9qejukH*HX=VfeBAflFDp_LjYc+pRSft7po}r>?d?UTr>8TktE&Uis~@+baz~h) zkm;3)q+g0~u^mik*<0gGGhRi1+WawWm^ug{q5wdM$K#hrQ=>y#`wY>E{NF!6(*^N- zJrW3AVs&q@_GkNONA^XiPYANff$M&^;|Tzo0wJWI6CSQL4%nlYoAgkrv0VDC=K{Hb zbGwayUjBw1wTSmd-lh4(6uU7#CoqTGoO4Y8(BE+`uzyy9S2v;Tmq0uLiSRJ?j$UB9 z{1oPS6KOfiq~RFgQfqg2_b`{swI~4h4Z#OliesQ(M&n$=&cRdqr2Ggks@pIvgC;JG zU}~g5`^7LTJ}VwCFE5`ELYTlg*FD>7jYTIgIhJJ)$OBaBDoU;b*K-i|zsV*O({xBm zuxho|SX*1u%H^^P0F)47)oQhh({V16(ij~MrO?z(c6@RKt8HU6oTfve1f%FPR8`ea zPfy(*Py!(YOG`_-D2gYyZ+{y5;?82=X5}U-XDZ9Y@+gemVgWI9;W&32Ox$4|YPl8-iXjk>*ovaoE0s#CTCM6^TU!c%LjX&d<-sBuNUIrfF?#Y}D4**Y$e6?sk8m1>g*T{kpju;5Q6ING6k1mSqY6#bVJ_ k6s0#60PJpvi~pm40hk47AbE$k=l}o!07*qoM6N<$f>zpxKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_excellent_new.png b/public/images/map_markers/okapi/cache/medium_other_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7ecf22b6643501ef1573066f6b19d66739814c GIT binary patch literal 555 zcmV+`0@VG9P)^lRsz^Q5?rV_j|grw&fi3hv_I?x1i>TpR@d6_<8VB$k4x=uy*@=6ZLpxx1uCoP^eZ@mYE&QYrO{mP)(m@ zx3ZYag=L@&yw?UO0q7gx)%IU4_%%CmYc>`dqd-Xjg(T6M)!Gruwryng zG`{zalv=@1HT>E%GII{wwwe2yAFjD%))GblbO5!jgmnHSk6(V{Q1S$T-)aOsD~O^P zrId(bjQ-R*r|)dg^E@&~&m!aEdZVkWIF5tw`vA0Bh_<%_4#SWj2nfRvfO@@-loBDt zPAi=!dr(Jm5CpicyP4c*G>D>TcUVe^<2Y0*l}%VFg;HvFIErE>C#UxG?D9Tc6$j1l zbK~Q;3;!}7JN$E52wH(;z72l_towIAxGO%N>mjM_>-Z~4C)sZh2a*}s`WQEogfmIP ta5L#FaceB*J)gJ7&+{B;{`Y*{^aoTP%%O*|Jc$4R002ovPDHLkV1fbA`V;^F literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_excellent_own.png b/public/images/map_markers/okapi/cache/medium_other_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..11f9c6e405bb59ab6d1b49d86cf5d3eb75513a79 GIT binary patch literal 522 zcmV+l0`>igP)^l1*z9Q4~PWjDv)vrXi$>xR9<~Xe*_N0T)uFx-0kx zl>UNj+_{XQKR^`RigfKpgbEfF5d{}r_z?7XICB$N4`*GaC6iA9~M!2@sexaZ#c z?zNqCSLbWj4n_vAK7M<4`|i6NS#c@W8uj&{-IB=K6xH99pxu(SMtwaiRs-n5 zGOz-i_0Ck6rYkds3ikmxo~tm}{}C6q_g(-mfhRTC0x-r&R(8te)yOc4wRnU!Jm6Ta zl4Kt#)Np8+)#`Fisl}pYod7-o%IHEq*0cq$P$*v6-R0r^CfDb-m_D_Hh!A$3^Y+69 zZm!{@B7%cjqm#ac%FyjIOw{bns)l;KS))!ZJS=NcUU=!B7z{8 zEIW>aX_|C8okLkf5Ru7p5QH?Fcd~mNC;LOLf!`H*pLgAb_WWEi+e{Fp!X5Yu#J^X5 zT<-Vt5nS>iKRRNNpJDqAYyd8dcY92ZWOIrf{R=T*0~VnE)#XHf0(1nuF@3(hF#rGn M07*qoM6N<$g2&|TKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_other_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..8fcb0047b6b2312fa137a35cbec1e4919ba510b5 GIT binary patch literal 651 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_found.png b/public/images/map_markers/okapi/cache/medium_other_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c081a0a0a816f150ffb37602f258bf662f453454 GIT binary patch literal 775 zcmV+i1Ni)jP)gcC?mLuH0)PM@q?86@jGB*s5$}EtVo*vMl9C*ZaUDPsK&k19KM4GE zvrmQUwTmQ;0C2Eotc8Vz8AVZiwr!JTS*X=&)X~wwM@L6J{-ED`q9w)W^v2c87q5Q2 zeZEK@m-j>v5#sTRr_<@|&?%|N#os*9oDTa0F*dm ztX(qc$`(#(=jSH&)Gt&h6r%^!?ZYiPNW{o642%UQ=;?zgL8dgMl$rq0erwin zl25|Um7$&_!EAw`s}J$>L+qz^QNAf5>>DO`pC7Pz{pjfEY-D7l!U0(KMGJiH0J__K zDBNf`INjx6Q#&}!?4w*S@?cj#Cix1P%Ge z5FL0%tx8+XG)=u&EE<(c<*tFO+3orH`I&GyJUBEw6fo(Q*R48tDs5mkGgLK^OQ+M7 zOeUjmZEdLl&H$8HGeR^Pb!wW{JvB8Inx3BayWMVQxm>PqY;0uL*4Fe~E@w6BTLF*< zVB9%31RTX;QS|oqa-Yw~0U#EOS*ofwqXK}@5V7z-^9yx4WXsWW*5LpE002ovPDHLk FV1gv;WXS*k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_other_new.png b/public/images/map_markers/okapi/cache/medium_other_new.png new file mode 100644 index 0000000000000000000000000000000000000000..de9ad3b91a5dae42a7edd341314a6907260831e7 GIT binary patch literal 430 zcmV;f0a5;mP)^lDkR+K^R8QE-Pp(6cJGoY&Ap;f(VwrfTd_*Wg(^! zBB>=7K7kKlCrBV~AcBoHf{3J2bV-82tb0jjCt=7~#CS<0(XSl7GiUypF#vRlZD0v+w&jj`L}*)oO%c z*c%Rl0Nb`H7K@*-)*7vKZ#WDk>Ga{hj(yi>>G_G#hxK1m(N+e9|9Y~KsRZQv2eoEf;eW%c4_(>ofE*McUFx$Sma2^<0~;LZ8j zG#m~A$nzWkr4*CNg!9ugjAhvpwkS>&4#NofsGqXXq)ABBgscL^(k@0SCzv zF)(IBZ~!LMrAi`IQI*)O?WU2;LZT=YEwJ!Smi?aJZ~4K0;k1kCbo%Nz&g7W5uIuMG zj_-gHr~&YOe;kIPJw*@%8n^{60Y(7({l2?BiXs4-rU5`HMVh9}X7^ZYUEmsc2Uepm zq1&3vvcwpJF$RFmW=NB9#3n5sq z*In{%w?k`v+AO7Hxm=Rxd1toPVy!)G*4i+iKm2&?wj{3a`!Am79W6;w6pJKD9)Txd z;q=a~fC+FjoT!HZK7co1)i<95W8i}Cf1v>c{d)eDPciJ9N0;l&@Bjb+07*qoM6N<$ Ef)V|cKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_excellent.png b/public/images/map_markers/okapi/cache/medium_own_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..15253de378821363d8fa461026f962ece87f95a1 GIT binary patch literal 499 zcmV^l0SkT5OTD z;y1_#usp-{iiOs4)pkKdERJxEL~G>=y=KwqnLoQb$xe2&I2LyaA<13zZ3cexKD;k8 zKfw~!YvtGXN*C^r|5)sO{{H^S^VXwfz6EX9$~$_$ZeoAeB>i2Z_v>c6R^D0WwdMyK zrQ)VMbD7_tUIDOv^#L2D;wH3ChAWjyO9)|i+XJ#gpWL;F2qVbGKk5GJ7pm2&Ns{DU zqtSQ__&_279LLG$ayi>|T~y&Vf#2k;>9c0K1l>JU{tm9|Vp-N*zy|WuGgWku3`(wUq}D|002ovPDHLkV1oX<`V<+Re zoWlaUe}H%Mt=`Mx`3L}t|HQhN-d~*k?1TK^HAY0XxpT04@0%yz0uTTQoO7EH!T^AD z&99ALFV22`_sdUaY3ywf4tVv)^!s1;|GM+l%0teXpAf1OLP`Ldz1E)CY(903AwiFS zU!g~TtWesQqEngi>!#HdpI5h8qx~w(ILiU>_W>ZBbE2y1M>8`s??mav`-74sH^g+r z^<9qejukH*HX=VfeBAflFDp_LjYc+pRSft7po}r>?d?UTr>8TktE&Uis~@+baz~h) zkm;3)q+g0~u^mik*<0gGGhRi1+WawWm^ug{q5wdM$K#hrQ=>y#`wY>E{NF!6(*^N- zJrW3AVs&q@_GkNONA^XiPYANff$M&^;|Tzo0wJWI6CSQL4%nlYoAgkrv0VDC=K{Hb zbGwayUjBw1wTSmd-lh4(6uU7#CoqTGoO4Y8(BE+`uzyy9S2v;Tmq0uLiSRJ?j$UB9 z{1oPS6KOfiq~RFgQfqg2_b`{swI~4h4Z#OliesQ(M&n$=&cRdqr2Ggks@pIvgC;JG zU}~g5`^7LTJ}VwCFE5`ELYTlg*FD>7jYTIgIhJJ)$OBaBDoU;b*K-i|zsV*O({xBm zuxho|SX*1u%H^^P0F)47)oQhh({V16(ij~MrO?z(c6@RKt8HU6oTfve1f%FPR8`ea zPfy(*Py!(YOG`_-D2gYyZ+{y5;?82=X5}U-XDZ9Y@+gemVgWI9;W&32Ox$4|YPl8-iXjk>*ovaoE0s#CTCM6^TU!c%LjX&d<-sBuNUIrfF?#Y}D4**Y$e6?sk8m1>g*T{kpju;5Q6ING6k1mSqY6#bVJ_ k6s0#60PJpvi~pm40hk47AbE$k=l}o!07*qoM6N<$f>zpxKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_excellent_new.png b/public/images/map_markers/okapi/cache/medium_own_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7ecf22b6643501ef1573066f6b19d66739814c GIT binary patch literal 555 zcmV+`0@VG9P)^lRsz^Q5?rV_j|grw&fi3hv_I?x1i>TpR@d6_<8VB$k4x=uy*@=6ZLpxx1uCoP^eZ@mYE&QYrO{mP)(m@ zx3ZYag=L@&yw?UO0q7gx)%IU4_%%CmYc>`dqd-Xjg(T6M)!Gruwryng zG`{zalv=@1HT>E%GII{wwwe2yAFjD%))GblbO5!jgmnHSk6(V{Q1S$T-)aOsD~O^P zrId(bjQ-R*r|)dg^E@&~&m!aEdZVkWIF5tw`vA0Bh_<%_4#SWj2nfRvfO@@-loBDt zPAi=!dr(Jm5CpicyP4c*G>D>TcUVe^<2Y0*l}%VFg;HvFIErE>C#UxG?D9Tc6$j1l zbK~Q;3;!}7JN$E52wH(;z72l_towIAxGO%N>mjM_>-Z~4C)sZh2a*}s`WQEogfmIP ta5L#FaceB*J)gJ7&+{B;{`Y*{^aoTP%%O*|Jc$4R002ovPDHLkV1fbA`V;^F literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_excellent_own.png b/public/images/map_markers/okapi/cache/medium_own_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..11f9c6e405bb59ab6d1b49d86cf5d3eb75513a79 GIT binary patch literal 522 zcmV+l0`>igP)^l1*z9Q4~PWjDv)vrXi$>xR9<~Xe*_N0T)uFx-0kx zl>UNj+_{XQKR^`RigfKpgbEfF5d{}r_z?7XICB$N4`*GaC6iA9~M!2@sexaZ#c z?zNqCSLbWj4n_vAK7M<4`|i6NS#c@W8uj&{-IB=K6xH99pxu(SMtwaiRs-n5 zGOz-i_0Ck6rYkds3ikmxo~tm}{}C6q_g(-mfhRTC0x-r&R(8te)yOc4wRnU!Jm6Ta zl4Kt#)Np8+)#`Fisl}pYod7-o%IHEq*0cq$P$*v6-R0r^CfDb-m_D_Hh!A$3^Y+69 zZm!{@B7%cjqm#ac%FyjIOw{bns)l;KS))!ZJS=NcUU=!B7z{8 zEIW>aX_|C8okLkf5Ru7p5QH?Fcd~mNC;LOLf!`H*pLgAb_WWEi+e{Fp!X5Yu#J^X5 zT<-Vt5nS>iKRRNNpJDqAYyd8dcY92ZWOIrf{R=T*0~VnE)#XHf0(1nuF@3(hF#rGn M07*qoM6N<$g2&|TKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_own_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..8fcb0047b6b2312fa137a35cbec1e4919ba510b5 GIT binary patch literal 651 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_found.png b/public/images/map_markers/okapi/cache/medium_own_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c081a0a0a816f150ffb37602f258bf662f453454 GIT binary patch literal 775 zcmV+i1Ni)jP)gcC?mLuH0)PM@q?86@jGB*s5$}EtVo*vMl9C*ZaUDPsK&k19KM4GE zvrmQUwTmQ;0C2Eotc8Vz8AVZiwr!JTS*X=&)X~wwM@L6J{-ED`q9w)W^v2c87q5Q2 zeZEK@m-j>v5#sTRr_<@|&?%|N#os*9oDTa0F*dm ztX(qc$`(#(=jSH&)Gt&h6r%^!?ZYiPNW{o642%UQ=;?zgL8dgMl$rq0erwin zl25|Um7$&_!EAw`s}J$>L+qz^QNAf5>>DO`pC7Pz{pjfEY-D7l!U0(KMGJiH0J__K zDBNf`INjx6Q#&}!?4w*S@?cj#Cix1P%Ge z5FL0%tx8+XG)=u&EE<(c<*tFO+3orH`I&GyJUBEw6fo(Q*R48tDs5mkGgLK^OQ+M7 zOeUjmZEdLl&H$8HGeR^Pb!wW{JvB8Inx3BayWMVQxm>PqY;0uL*4Fe~E@w6BTLF*< zVB9%31RTX;QS|oqa-Yw~0U#EOS*ofwqXK}@5V7z-^9yx4WXsWW*5LpE002ovPDHLk FV1gv;WXS*k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_own_new.png b/public/images/map_markers/okapi/cache/medium_own_new.png new file mode 100644 index 0000000000000000000000000000000000000000..de9ad3b91a5dae42a7edd341314a6907260831e7 GIT binary patch literal 430 zcmV;f0a5;mP)^lDkR+K^R8QE-Pp(6cJGoY&Ap;f(VwrfTd_*Wg(^! zBB>=7K7kKlCrBV~AcBoHf{3J2bV-82tb0jjCt=7~#CS<0(XSl7GiUypF#vRlZD0v+w&jj`L}*)oO%c z*c%Rl0Nb`H7K@*-)*7vKZ#WDk>Ga{hj(yi>>G_G#hxK1m(N+e9|9Y~KsRZQv2eoEf;eW%c4_(>ofE*McUFx$Sma2^<0~;LZ8j zG#m~A$nzWkr4*CNg!9ugjAhvpwkS>&4#NIVLrVa5{^FUK92!7zj^1S-y{e&3du?lDp%jtdWd-Jjk#?{QzCUB=_7=w zN||Mrz)Z5;8sRt&r0$fM_%L~0Y!1T^r)$HSAiO^#?QZy0Yl35{42fyYI%-m1hXPP P00000NkvXXu0mjfLzj>9 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_excellent.png b/public/images/map_markers/okapi/cache/medium_quiz_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..002760afd686ebbd26f3e8e5d724b25926e7d4d4 GIT binary patch literal 508 zcmV^l0QfrVF1N{cfCY0AVDZ%K`NnZwsN6PT`HpB2?^bb zpj(GP*Ulk(yGfxPiqmbOlv1b!!9PhA2eAaTK_NXgCMNOJOYScHI>bmwqSm*3@V@tW zkMDaDT@Z_gKEDVKjyZo7mbU+VfBQc5s++C@@n~ql%EUyiyeRC_qOdYC5s!uzx@nbm zVl)^Smmdss@^c=5hmR*14F<*`b+b7f4yPnZQj3S@crVKMMkbMjgtvA?@whY)iA02L z+ust2#0*ddY#Bh)G{4X1Q*~X(9C%8loTN{b=oLjO#U)JtGjv@?QIzL^3iz*+9mlz@ zGNQiW!`C?d=0^a2yJLJ>pW@|g6(NKS1b|;aUIB1jS8kertes)@yk@yD2f)haIVZUk zmC8_4;%$a@JlNKb#qL3k?LDhOI0o1`WLa*P(#hNd9m(mf3k<^mC*L6Ir%*55Z8l94 zV?Pa-8{nSaFWIuH9H*y&>Hn%NU7fO~X{#QON4-s4C={~EWbz&G1;|P*caLZc;7NO< y7F2;fAPwYO&Al|1)6dPn-~wk{&GWXFcj6yQVWKw$c!Yoe00009<5R88lp3);VaEnL(G=;S^fM)594ecfX4-ZaL$RMDA(ua=H3p`i+6e@Nv?~@ zpyM75awaN-KhXzbwV8cAN>br`DhN}(Ojzl0000^lRr!oVHn1LcbxPrjbhW#)|lw1&G9EjB{~{pB*a1E zpo2OXNQ^EFP7X$QRudf@G`XcN4kq}AsIiR(BZUz09}1P$_R967J+2@997+RHRCvZG z&+|U-`+WHnHo%R`-SE+K2;aE5_6HX}+dFNI}Od&H>P@hwwE8LQn!Q07GU$X(O(!BrX+E zoZunsg=hF>0bS;?^P@PeM=?#4$>~T}-lDZ4I0&Et$TcPGJ93rVk8ZNVxdXr_(aYU8 zeVjV)BBfNzE_#c<=F`?UIP$uP;~U^*?g9X>#(wd0Hi2zN0jO3{>)HnM_=hsnGfPZ- zEZ2xi8oXIlRb4Nok=X(ol9S_$q|<4rWNXB-1XP)^l0j<|Q51#0nGPBfos^I!;3_K@(n1k2;6jSj?pm@D z+$aTiE&}4trG)$d!IhwhbnQk2g%%YpZD_Gjt05|_wT>hWO`4g^WL{?STucOU(w2Vk zHivuedGEffFn~fn`|RpidaB#gc(?KE^}PqnHwM*(DCVoZyS&e2h8?&J3Ce02V)5?Cvbn+K&SuLH+yOka@l0@b!nw#y2Mrx(0|HR8W3vs zAv&9|1$h4^KTk9oQ5P=R5bYf>$S+V?gjawC{oU>pA=n(9gMYyTT0j#Jhu!i>{s648 Vu<#g^|Cs;)002ovPDHLkV1h$C>FWRh literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc9c2a143b74382fb2eefb6307b4e29b3a661ee GIT binary patch literal 650 zcmV;50(Jd~P)!l1oTbaTJHY`=2|bsz9i45kUn-t_-BrENT<3A_PgPD4Zy%ro>Vy6BCIXb-awDhiU2&!7;M|BB1V#Z%&WZQi z8+)!^K6Or1G_kz2N@KLUG<13%`LMX19L%W7S*I`gDPu9hQ@{dPlbif|PY6d9i=Tre zk~$?)8RoYL?lxHw&9Y)TG~!*UX&{qxM6QX=uX2YEXP9>*-Je8I)u?tfK)3$11T$^D_J~uw8HA+Wj7_k5kQs! zbX_OyD5r0{nr#1LtRFGb*S**^g>XKLR06J#9+JOw>>|C?Av+Ekni&!RhG7VR3s>&) zyQ&|hVE}K*1N8A0GOwJ7l!Ys}AM2r?g?=q&Xr>EL)^5%*Hksz#h{Wq*FQb3_EWN2< z;Z}yaeU%jWbgtbP*wuQbvjgz`C$GaFc`5-LqXn?0Ho6y7Q(GS z>y{#b^skCQAn?KIbT(|Ztg7mCC=}`jo&(cT-pmIy0JR$v<&goVfG`lvmkR+eP)y$2 kZomLmfHFayqf{tqO5zY8-RF3U8IB- zdH@jDb;<7!e)>Wf2&Hs?HndablbhAuvG!!gKVT(2{mo$bP!|v{`uy4n#@Cfy0$J5?Anvwon9zK-4U`@rRdB4v`4X+COLrvJx3LiXq`b02I z)6W6m;_>+T?CgU0TT%Bz--x#UHqF`(Lwaa(Oh2750#D`F=&2YWr9KuFVu90>Q^9c@ zog;(W(OBS}a=U8(30zajge5v$jq)`2J;v{m&4?h}lMyeS)6bqPUxaq8{ zte6~tK-+HOu(pp*rGfRW9%RBE%ZHRzIBr9%mSat(4_r%MIraobgloB*!mI6H!D9>E%3#2IGhX1gPd7UYdVUVjrCiK5?k`GJk9Fwzzlr3QW8?F$R=W!kW0VEe0*Qiwry3@G|Mmy*0qv!-CkN+x{=9b#wM~8 zahtVi%V|+R-v`nmmM9i0k|Y`Ba#_vi^CEyZ0Cdv5kjv%#ilRj3=jTTk78YW`V9?)a zG+JwGYx3&qs#>X38~_Y}0iXuJ`fvHHz^iE*mq;XNG#aG Ze*iomhmt&;^~V4J002ovPDHLkV1k`6xsm_? literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..1337cfa0bf1560dc65e62595d93ceffe28bedcdd GIT binary patch literal 679 zcmV;Y0$BZtP)+lU+ztaTvyb=j?1vH*3?JU!;3or9`|-M)EDoP9NQ4WAUZQmvP{QH8m5#sbhAWuj!(&^VO|_=S-4=lxDniytYplDzoVhv?XXR4;=L zQcfc8&N10)IpUg9yR6X+C<=fDWNbcOjaHNEd5k%}K<1_gtHucza!6iqd~u;ibwrEi zP?vB6vb?(OOToKL@94pO=nWokC;8DcWZ&A6H4{fy1Lng$7>lMbOk}{VuudZr8789= z-={o~3sCXy6V|{y$LgvGWh0bV9dM|sS`QPI@_KlU?4`tKPZJ+H&egUn6uB*y(lMcD z6InoPa2_04CKii9J`R9k*g*CX2n49DE*3?FeUZ9qrh)JpSXEVGkwMVDf>_veDS$O_ zCX;1;@EmaNpWq5SYFDg%72AJ|1%vJW&4z0#qX}8YOsj-f;9+3zts9>gk|{#V8inTX zQ*3ln5Cu-MX_WzhmB+X&1P6s+zb@EN;-6TA7gKy_YUUZB|5vuZ=@*ek1>fE=kh=f? N002ovPDHLkV1f&tDdPYD literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/medium_quiz_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..a96191875589e891f7a34a3b31d46b4849db49e8 GIT binary patch literal 656 zcmV;B0&o3^P)!l3hqsVH}5_bN1n!V@>gkMFk-!P0Jt>yppgWLJ*=4 z3aPuGz>w;;E{dX{psVP@2%@V3AuuQ^jVMSIK_zV$X-lX3&`meb&fas*d%9?rOS0$s z_wf6@FMow~+~{t3a^v(AQ%@`}IF5TtdT2?-$awskt3uOR$a051uo9t^%W4Am(&LI**hY?p(~O-dT6M zvLyD|l6Sw~Y$+wYm*j{P-284^`OeRBgW(c$qFqbwR1yCgCayqf0PM~vR zQqwldHK4_8d)S-JHcvG*`ZsH`h0v#A1~At*_f@1)-aNEw;FW(auZT$qe}Y#)77Djr qzykyTKmU*mjVnMJ5Sy+1FFyez8uPP41_96j0000ej!9a2yP*SssPdej+?IdgFydU z2|!1=dMw4WYy9Zs(8&cK0AL}_Sku$f6Otr(>h(G|O%s($g*zM$IygAk;q`l6+e(^! z%q$je-@3E$=;mYI;dE^?&N((WH#g%IZjMEjn)OF#S&{Pnj( z*Q=!$&dF;JRhR6R7y#z;`T7FAfllS5h+H19Fo#7^O`Fw19b5Z(>FM(~xHn!zE3@%o z_f?Bot1|${j1bZ$h;ZhPcKFKAB^uwb^ROpkJ*_Zn)zI+r(|f*=dWUhnj}G}q`1OlX z#toqhAruCnt!7lPT}-2%FXL^z1-q_RSkZ&cy>+anS5T`J5c1sRa<>;SX*H2Z><$bJ zXcT~Xjr+}r^ngfk(8 zTG#7Z&~*vJ!G5lmwvjI;K=~R>Zop-;^U=U%+9~^aHk&(|pPyH@wzf@v53_~rIO1h?LXALCHZcj~3O@u>zcbCzGjsCX>;!*{r&}yqpBE3*eYEBSaz*o1!T0Xfzra8yoY=vTQ4t%hkoj#oWTe zf|}3g%|?AS07U@$nR7$HQYw{LS63JHcsvvUVzHQ+OeULA0YGnvnE0Rh1sWz?UT||K Qga7~l07*qoM6N<$g2km|E&u=k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_new.png b/public/images/map_markers/okapi/cache/medium_quiz_new.png new file mode 100644 index 0000000000000000000000000000000000000000..0fec006791d489f972c70e1f348ab40352b4902c GIT binary patch literal 438 zcmV;n0ZIOeP)^l1(oIQ5c1vnT(`rK|}TinBa9&pr2j?^OU~npvP9 z=%c=3z_!v(1VE{PlfOXKT2b1GXq84nOXD4h+g5))VzBo{56$VWsxS&=xK9YBkjixX z!{ODsb<b%|3tvAk)kU!H5tH6-4b4KgS~eWU=KN gV;v~`X||vA4oe1+{j|!6hyVZp07*qoM6N<$g3VjIy#N3J literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_quiz_own.png b/public/images/map_markers/okapi/cache/medium_quiz_own.png new file mode 100644 index 0000000000000000000000000000000000000000..eb09da1c0626badcb71613d372915e3c2150ef0a GIT binary patch literal 397 zcmV;80doF{P)CHgXO zo`XjKZAKOw+3ZoMX~rUFN{C&f-(Lrw0ioHTM~YJL(rM$M*_>;PJ&&t=J`=z`kOA7- zUs3tiA&#LthyZwNj5t2AG0!%M6-9MnjpWJZ%j+SIH^ux40jNBfKpzl`rd*0|$U1!%`9o9x00000NkvXXu0mjf=G~|Z literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional.png b/public/images/map_markers/okapi/cache/medium_traditional.png new file mode 100644 index 0000000000000000000000000000000000000000..81ccfd6636c866e65e84a71fc8b68c4cf597ec7b GIT binary patch literal 374 zcmV-+0g3*JP)b!B(!+UpLnwQ15)=J?d*?tSmwy?gLqG_r;3x{ttaU9eK> zw$tex0|5{LU|Ckv^E_RL5JEeSlLAM;4uA=eBuSqA`r#Z6q{|op5zpuc&z!a|&{`Y7 z0q~T|N+~0gCvwO<5iFDhU={@o-iOf6^S1yamy68fZ>G^08HWJKX+$`Zl|3*jcQ>R| zIgG|kCL=_+YUV;DM6;wMR>~i5pA23C=F(vGx_r5rZP~<^1HJkF>KquH%)V| z(p=;F{#UQpy8_OD*GA#21?&TdtcRe2KF|g30KX`20Zm|=-+w^?A*=C>>u&icKVl!0 UE-ffW=>Px#07*qoM6N<$f^U47Y5)KL literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5e5f909af5ba301ecea02b22a05f963f7dfd1a GIT binary patch literal 505 zcmV+lD|t^Q545N@AXwA0ST$q5@;1iF-s|?T68H9X@>-S ztABt?{s8CTZc7KpP;|+X!NnFt-XK^my%tW6tzz8^6!FL}@04zWR+o9cJDaL)I0 z&$;Iw1&Q*x)W>vkbRlSK7+=pmt-d>0mic6mj`N~v?~0bSD;mdnv6f41%DmdY zf!XB5qWa(|=Z6~rJRW<)Y;s}|4*J8ot{(wYX61^3x=nQaEs9VWX#T?dZN+t67hxFg zmrA82zy^F3Ad|_&B9X{cu~?)Qe}QA~5fK)H!o)ERYOxs#g#wDAyac9!ShsQz1l?Am zuO9J!`ynIl2LR5ZlW3_j073{Acny5(!eJPye__izXK3yjPB`2N_%^5I3e0!!PXMZP zV2xG{$G^mDxd3>Mk866eVWUc;_f$`1*T2NFOzN%=K(ij;Uj;p&6h1xqL8WZdaGC(L zuR$R02XCx=mKr^;_ub0Psb;g;Lrv43OUWBmtJMp`Ft&ho;Jb1wm!Pu%Y2Zm8{wJ^l vd;zMr;Xyi^GerMi2mzPQdba-8<(>Kirq!ZQ3=WH|00000NkvXXu0mjfknr36 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent_found.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e28914b68671a1ee053ff18ccf4701df16d6ccb6 GIT binary patch literal 853 zcmV-b1FHOqP)oRoFogrWfrqFF^H-$D7f`g4yJE5%_<5X%gQdP^5HHuy%$i*O307w8NAw-9WH~`R@ z_?__UyRq9}+_@2B6CZ;F&^PwjkG~!Ld-L;+T_L!Gh*gOw4WKq~9l&FAp?MBJ%kOWn zlP4RD*+Og~eDP}Cs>z41{^pg_(g+tk0>EJdKtc#grBXLmR#rapveqYK9*e zS_?QlijYrT{<0RG_bk3>|v$f=1l-KiHO{S#7M4^<-fmt#In@{k1Wj}O14=vJ56L# z+c-FUhEK0fvsvFfpH}7^5=oX2qAUS$x4SJI71QV&b-aB27l;A=a{(kzp5s~i57cT6 zXk#;64xB^F>{y9J;y4nCG#G&1kYtDI@nO`hqS`FuAp0kK`rl(be-%gFsxklhNi2LA zWp4WjkH_PM_4V}v5phWfQSEp7jSF54moLolhsht1F;Ylpb@X@_BeKG;j7Qmo$Inl4 z`O?RvU0gxrrYkeG&Rfuu8XMWEp8l@&@KW&Il{&rlibE6Q`hyHX_~!3 zp(G;0+S*!GmgRy|c1?Ww**DH>3w!v#nC8gamP$Ye5&Y&P52+1WV;kOWYpL4;^D>MEDZqf1Lm z;pOG!kjLY3)$4U@dwV;-zrR0-+XRpYPz2C<=Y00SVVb5C2n3j_stf?)@pwy2)QrO00000NkvXXu0mjfn)Z~f literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent_new.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9e74024da0d482d1aeeb1dd3662a79447791d0 GIT binary patch literal 562 zcmV-20?qx2P)+lRsz^VHn1L*IxdRglf_=u_)ruA%rxDC_zORtD}Pu z#6c$!T*O5OCkMe@>EIX~6tYBcQv6pJJ1LSvKthl-q^Y^P+{IolcV|C`BwESQ_SwFd z=l8wu^L~61K6-dN|Lnp->Y}?Pv%K1TegE;wH9wyOAU3!GEC88yJCaora|fm1J^+Mc z(9v4!sgzX#D!@l6Nf|&Mfmg=2g{EVQL>R|x0uT%gt%QkF*@x%cS& z(Rw33e>FGY@}))WXdFpMgtc|vy?iS_{~BA&rPnHVZ+`B|GI^jp1!O!=a@y*l`BJGw zFL45+`+=6u485Zm=jam!N4Ueu%aO|Cc`%VwT*03BC0L!p3Rm<?GRVFm&?W{>I^{sLql-1*ee4Zf*5iNS!d9~=r{&&JWr9xL$g zV_f$_(;{X5v07*qoM6N<$f;md{ ATmS$7 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent_own.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..68284dd0bb662f5dd25826649c0e045cf80d5580 GIT binary patch literal 519 zcmV+i0{H!jP)+lCf(OVHn1L*PJC@Y9c1)z`@ZWD2NmTic+My6&wmq zZZ10H4{(&wKS1f=C{i3#go+s+&sHQ;nV_3DMaTLZ$Hhm zeCr+`DwVu|tH5z!Pv;MEmy0}FKSJ4A1zfn{M@ekN zkan{J^T|^}7MMvj`|>BY7~n|<0M8aUeJ{0{nbhAYnb_=z0hZOrbp!x`8zK(E>CEk& z?{u0&d^-Rj9)UtlXMTM5WvbBa^(M_GcwMF5A9dXeo2EIJ>KqeG8Er!ghz@UlUK|XJ z04`Z@B1r0(;0t{F2+x267~l4oEXn2M`Fjfy-~dBF{ww8w`337SuG9&_B})JR002ov JPDHLkV1g1x;jsV! literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..0a7b4e85bbafaced58a6e449fb578f49ede14a35 GIT binary patch literal 659 zcmV;E0&M+>P)!(o0BGQ5?td?>%#8bRNoRI>~6G^iT?AAR@sawHS7oiI9+?=yKOcnIVH)^JDL*2BWE zg{5&XD@lbasTS??BIYx)P3)I#njuGYAT=_(8 z%Q1d45Wc!XTZ;>mQ{m#J=XTHW>%D-p1Q*9vZD!k!8X7J2ba$Vn!lvUJxtsbvH4*?+ zc|C|{!bBp=B;$Wxq|9n$Q$q!Ax0@zcHA6$Up81C1BCpEP)~Ut4?sqYvJ=z$Y#;rQ73n?axx9{Qd&JdLlFqgiuB z1JD7WjmvmtIlaX5v#eFRP1U|d-NTR_tT&_jRVpOfkpSaHeEYkua(>O{W)54RgjOa1 z5XW)I_Sav081@H~nve}X{+myhkE(O#;z*dZk}luCAAZ_s`5)e?@QQMLu#(9cp+I;< z8DpqctD${6W`w7yJDZ+$cQJ_g-f{84?7X!UU*-jmhia}atV`X%W3}??-O{fSUDpK; z02hzP&t~(liN%^Gu-*^R!9Q*N=yQ)2S`2C3)g$jCrHp4a6GZZ|h(8)qj@5u|+Zsm* z@jAqrY<3$gT}W0MN|2q&p68Rg$?yDCi#)jZFe3+>yl;Eno|ezh$SIGmM+f%i=BCa8 z@S4K`4%&Md$vx~IJpf6;nhqo^%_F1nTRo;c(o;w8K~}5bGL5Y_=W>u zpWs}G`s0XrL-@VkL8Wn@9(E;G?~4X;nc|Ey$G`j5d-_k`-!qC^-*QiO9yL3ij>S2S zql~Oke>R-P(rlLfSp5=`T*F>Ngw2L_JRWbaPF8}boJOx@F!|sZW*bQH3v|kzWD}HAMN!mLRkdHJK{-MQHa0dCp68!> zcp-NE$|s)7D|bJs?s;Xre1{+&R#%`~#ufLv7r&F11CO%{) zHEe?l{7H}zu|%;ZOOn)YG#dS4v3Lle3P2-cghHVpbUK|#E|<&X^Z7Zy-!JrfJ!5NY zt5qtM#<)6w7JxPY>%Zq018!ASxkMsCqtPe@fO5HPi=sG21po^G17PF-!lS@cc0T@Qly>su(=#1s4jropJM+eO!A_!}fwrkPC zBB)kUXb^4O_gogO0*h8bv?!9IRZwY|1%fe14m~xsfoYt_9lfu)k5+;>Q=RpH;QK!K z1vYT~;(-VK-L*%5E4FxZGM-v4D=_~waoChrvRV=Bwo zwu6ipH*Y|lAlj9p-xXXs0)`nm!Z9~VOb9b30o?%8ucA_4?{V}%h>59B+@5%jdcK;1 zWMbrW?7T(iLruChoC|t990JBfAZl5H`FP4tF8hXZH^Y;UlUO4@gjNwu5DbAr(BR7n zS4yhV4rP^IK#~AlK=XuoHrtH$;tqB^hc;4y+akj$0U-q5_W{fW6RThKsw(AxC~aK( z%!O;*d*`9+@Cps-G@qvznIBIe_Br_OMp*mqQrI`{*foeiP-GLDnWrGFB39~zJN?LW z9@01RbVr);))lC4+AHZ+dn-_1ByS{GRmQHi8d}O57#cc9MbJgb{&Gw`r303X;Nq4{RwR!Oy)1dC zs%lAjR+ik|bu~ZY0|Nsce_sF^!wZTmV=8&#>+%fHb@|fUR3=AkB}0{A;4dZneCX97 z(n_8W0PBx&*0R`dS?n>b;wtNC8u4t7*Bu9W1epIy`CtA3?*aZRF1u&i00000NkvXX Hu0mjf9xNwO literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended_own.png b/public/images/map_markers/okapi/cache/medium_traditional_excellent_recommended_own.png new file mode 100644 index 0000000000000000000000000000000000000000..b577241995677c33202f837873182fb7481a178b GIT binary patch literal 651 zcmV;60(AX}P)!l1oTbaU4d^y>sV1n(63-780dWHYE`VF2aSi6N2ao zZ32l33?bJodXdngO(9VP5iJUYz*UhM6a+kS; z@JX!WR&V?BW8u*8SlW{Bf0~Lfc@5@=r>>dQc_jVK6g$>!^foy^9Jz5#d!AeRPrOY=#WWEnU-LGq@bRXvLokiaM<3}`D- zbr4PhK>#HRK2ws~BDzfIUMt(`JGuVoHM5thG3s>mB@I1UM2HLn*RuE)U0sr@AF&1R z)^4^WH*dbRQW$=SHI<^!UxD4|gmV(oc5sdQ5Xn5IV!IrQquJE0_iHl1g{wDt{Mo^Q zqpLKiD$`>N%#B8ny9Dm1O|YP$i%^>&8V=3Pi` z!S0q0<;0o0{Xl)0yq-X{mpx5E8hs7)^jt)7fV%Qq{P;ey44BGBA+4z-6079W8USv; zlbW3sgu`LRJWevP`Q=G<{uD4>CNIn`68V*+kSYQoEU>XR-K|4U@jgnmqU<` z+V+??mplA16bfwd0)(!cGcXUB>n9J@sH(3B9SNu|f@d>%5`Ip=OCSrSZkO-?RX`>G lYP%5=NCQbg-)hVM@(0@X@UCoJ^XdQq002ovPDHLkV1i~xB;5c2 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_found.png b/public/images/map_markers/okapi/cache/medium_traditional_found.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce26a007acdf46e397bdee5477527edbba50d39 GIT binary patch literal 779 zcmV+m1N8ifP)lN;x~AgX}7;*Ap`(O03;!VP6*+>!M}u;v#u~Kgop~kZG_MofE)m|cNKpK=wHPE z`0ARXP-JETiHI)ArO@xK4` z*7+p$O!a#Pm;^uyg+e3ISah&@QGtBA31(rormi~d7N@IvamE(5-ymQgfz@J1%$o3- zZQcZ+QbLGR5aBMK7x?GBk66#I^7D&|-Q=eCq<$=|?k(`Gy-iLC!C2@v9}lH$5|K0^ zL{$RdY)1Q}4nl!&e+1d%9c<>lK~)=wUmfKv(vOy+YrDI-*R z$%=p{gaKy&wPqDtg?0M%$0~M?GN@}R4SR<$aV<@qRyWUNGAHx%^CyH5E(sxOrfxQd z{c+qH9_1ghuaPhBBUg}N@DAL}$HxcLH0TNQ<6`M-adEL$E|(1epo9>uSS;o{?M^Em zNYIGmI_f2jmk-X+t^iS%q=U90euYYkEX%5*C`K<(5+MY0b8|Ju*omDvf-j%GvOk#k zf}fQfzY)BNbnFiAv$|TErqvWh(KSuGOd#oHdwP2MQ9K@xCPovX4sTP<(5Qp;ftW;> z<^6I#pKlZjg~rOt${~O(0G0GCq|<3fwOSoWrBaEhsi~O9<8jpMb!~ZhxwN*n*0b9L zPy$c^pkH3@F0d(zB1Iw*8VCd^0Aw;5Lzd;9RRGYtKVaa0@C&|QUcVDOQ%nE=002ov JPDHLkV1hYSSmFQx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_traditional_new.png b/public/images/map_markers/okapi/cache/medium_traditional_new.png new file mode 100644 index 0000000000000000000000000000000000000000..590b4904774f5f82717b1018ed9ee2533cda3c54 GIT binary patch literal 439 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 LNkvXXu0mjfA^GM9 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_unknown_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..8fad8729d701dca1c847418e8129c192b8e0f75a GIT binary patch literal 648 zcmV;30(bq1P)!l21rfQ51*2_h%-@nPQYQ8BwIdLLAzJg3G`PB&JnG zkPx;i5+d9rR8Z8)g|rfCQv^Xs(xP$^N+PB~mPMM76qL@NH*em|IOCgn_r2G`MkXWu zHs{=X?gzgMN1}||z3q=W!+VYS$u!C@}QWv=KQt3mR@cx(?E*Rodf&yT?yOQ4h&Ca$}|zIO7TBrcH-go&pZQhTIX}dt6o; zNW2>&o3p5rYOp^phk{{_$wEdC{Dvsq%X7^Z1r+xAwW){~VV*49j>r)Rd6 zN=SdI9En7xJRVQmR*z$`SbSn);t4PaEJ%ko8dj0000k-9qeK^4GFa^2rUI6 zCM1TiAVp=XkPri%GO@5Arm`TRvam&r3>7f2P$vRep=qd95hpz-7rQ-d*I##b&-UH< zJqBw20iOMNp5O2z04V+q`{L&Mjdw0BthNUZce{A(mR;le=@05}t{L~^U_5X>5EsJT zqyAk*QK|qKH!Xg7bN!=FKYs5DAG^kS-9Goo{_gxFcY2Y(JS)bP7qR@og(x}WXlA^o z1Ly$Ir)6ASO|I~Kg4K(+sWvdF+Y;@-nJO7Ks5jOM`58CiTR(MsuddIznZqtpLQ69M zh~qfq_dDNzBF+cmx;GOze8MjtJS{JcmnYtNbI~<76oSoKT`1js!1a2a+FCk068*sm zWsIR*E{i8t*bGLgJCjVfyBLP%uDkd^<|T6_vdVis9y)OMV7=8754F;pdw=YShGBR) z09+&zxsb`dE$>uxuc7`dX=iQY$$efI(sOz}_qXq1`#zi|15tb|BuHYr*%ocv);U6m z&mqpd+O4r9K;O?>=eVU@71&?7!LwkFB+u#8B z#?}zk)(Iw!KK?wt2lEBnl)O<>9aM34s)YMafBteps=ItqG5gAfzkFQI-n#YK9S(p! z%ef#45rljqx<&`3+CCNdQ>L^kqkd191ALUfzVV?^_+@{zQ}~fPI{r)TbUG&II8JY3 zP6ml!5-W)eBlb5?+7*DEz-E>m@-MVrOTIy`KMq~a2qnOcTS=Kd8v!AO$IYJ1wwzhga&o?(V-VcBE z`PZI(r3j@}Vd?NCv8k10>h|X5=DVp>YAKybM=Um`BYQ-> z{5g;bF=e^ZP!wfQtyTxSyStA8lmX~uijdFey`4@cl+9+-xm<2Z5Cm_(-yanUg?h1A zoZ=b)>Ht~*%>SOB54bf=<6^NGl_ZG*z`?+lTAnzaTvybGdnx3?)I@-Ybr{VrfqE$5s?%f%5EJx zd8r^20+*tT_r9)0&>=i@il9T1)Gg=(Nz{mpMRchM4NKg%-Psx2o&C>$W;%$psaVhL zeR+Sp@AJT`P@$Wb4?pNi)Svocy6UZwboN`d!_1TU`=aQi!m;Z3#-?!l{6uyDNCBP# z;AiMfPe=RPT5ESH`X;1wnVtJezFy$xT~9Gx;nk_3>CdXC&y}v7?c+Lt=4a>yy0>i& z?obFJ%x}1^M-Uy~Dno;!x|`LIulRI?%cA`Rr~M2mCB~2jBmmyMjB6*4p1}@B86KVD z&hRse7wd2|LAhY#T9VxlOX}@pArc613>Z>@xRi=`JQ|{4yr#y_Gx%Wy*!l1)eyVHn4Mvpc)4yUSLKy0Our5R_KSD3CmPux>&S zeGo`NhoHz1>RN}QDCiI!qJt1bbf^%5Em=zvkw-RiMcXR3fGk%TR`!GqPM8 zfWGtBc&8s=-oKAvDTWvY@yf^cC>Vo{w2SD8J+`db+wRAr^)B@ z*tWg&Ar(}wN?Rg9GT_6=q~?x~n(KZDmP#Fy?QM~blB5v!6r=#VHhCyoCMwyUv$BA^3eqn7{W4?i^f%4WdP)z=P)gWcBI9Twt*6B3iSzeqYGn9j3I7x zi3{S|En)93aDj>c!nn}r#so#8Ha=3K1W*gqQcH_vm}yIAn8*EG*b-yhd6JuRbCYxL zS)9uNaQp_fnYa5x7D51k1V9o(*o-mi4E`lNoVA59A;gdnE_*uu+^z`(kEX%6rdE~k-Ow*)bFv!#Cba)^(5GiUK(%ZuP z&#PCit=ztRhr*#qQ6eI&t*wQ}#>P@JGcyun3;3jYdxn4G$gH_G@_cauM7+;@5ROpeRaE+po!w-#o;n>lfkc>c+4y z6?PB2CV)C;jP(j8Lgl?Jdh_iCvMaCXr?%7Wx^7>ovL!u#_l#D)ek~XcB{<>IennDon$+R##U`qobou z4#4e_d{C7r`g>LEwKRO%`pDmJzQ%HC2@T8OvA#i^8_e)tUx;$K+|JzG+zw-mBq4%gLHlMCUCf7c^c;^LO%TTsBcIRL4a0CdfszsZKSG67A~`p3t|Qxg*t!-}E=8jXgvu&_|cX0si; zEdUh&H30VE<@N%^(z{9nK^TVNcSEA0g&HL&dI1{Z0YL>zFThqSD+|%a zN=Rqt6?g%5LYmxxL~N2q2#cgrQBv%(yP0*0Y}VO~g-6^R%vTQo!#Dph27tCX0G5C( zy<-9;BSR6u_=LNC(BE7b8H&lzMo!PSXC7bDxn5#r@wsw(SP2paoA80NN*ST$&gTk+ z%bs<6dpjGhM|EPHHGm|5{xy)#=h0ddh9Lk#2u#zYRJuWHjoTnSHj49&f2UrrBc()2 z34r4`_`Z+t`vAPXG4wSX!$Jrw%R&eNKomtNrAQdL+cuu(p_Brk-EI>_ zQGYC@#Ih`cAm|FZ;$}0TT&@gsZ8MeB%d^uD_s7RaJ-_E%=1HVdgs+m?7rp~>XD7E_ z!>8&tNVi&ybi%{K1XGiEuaYu=0ibR6m112fRznqk#GkdO37_kQEv|s@-}`mSJKwsU UzT6o$*8l(j07*qoM6N<$f`fgt1ONa4 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_unknown_own.png b/public/images/map_markers/okapi/cache/medium_unknown_own.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c7fbccb2b3bdf6887c18e6f2b20c0bd58771da GIT binary patch literal 386 zcmV-|0e$|7P)T2a%!D0-!BDi9CO!b1Y2+d>;j?t+thBi zvDTus20%(luh-+IbBzT)VGr0|2@eJXlu{_A02mI3L{Y>fiU811{eHIqODPdTAf*H# z%QB2HIF3_zr8xP63Y)_)WHcIKi~%6ebFwVk3@fD&LXf6uDNqW}W+~n7{c2~D6yZ7~ z!rBLKI&Hol9;_`%uC;lGK45-sz6{1=Zw|*}2rb-IW{l1@cjc9(gtvBme*a07*qoM6N<$g6SoglK=n! literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual.png b/public/images/map_markers/okapi/cache/medium_virtual.png new file mode 100644 index 0000000000000000000000000000000000000000..4f46a27fa41af37cb0fc62078ed68daab831f576 GIT binary patch literal 362 zcmV-w0hRuVP)$g%F18h5hjuCby^+f!6Tn(P5)8EgM*;8WP>ItSi$rTZcqSIUfuL zC%`E%*J^t^Ko{6+x>3moFaw5wsE0R!4zR`QUnqcx`gs18FH(hzp6vz_e*gdg07*qo IM6N<$f)%is^Z)<= literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..768118d7d77ce85fa23e838582f49968ed8b1037 GIT binary patch literal 501 zcmV+lCeu0aU8`zcV2=RutAW5AWG<($&z5E8i)iP4opgy z7I%mI0opM*xV4)|p+TIog$|`d2o8}%h=WFiwr)-Jk~6uBjd}_G9FjIEs)GAN|EEzymRkzFK@+Ff=>JzUqY8l2vl~JK%==;>&^CS`p6h(Oh_yG4~a59 zU>It?|F~f*Y&05uoYZ+`RaFlh4u@}8Ql(Nk&tx*6fN#LL)H9o+eE_fQ8g+0B`~vcT r)@vT6eL3R{{)HA`(mBszEuX{#al@N~KG>I`00000NkvXXu0mjf$oJsC literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent_found.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent_found.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e8dd821b41f9926d98159c6f8424a1fcf7f39a GIT binary patch literal 858 zcmV-g1Eu_lP)+ zLlZS~k-9_~BQ;Vb#*S5Xq)05N>Qbpg+kp;I7=TtGX`42#5Y&*`K)`nGVD5bOQSQ#? z=jjkT|3JRWZ~DFrpC180@mjon=~wsCw?7=|8RtaeYnw;eFCYB=H2?;H2_YOp2nPVt zHor06zn8xA#ob$J8hsx`0IkYX`u(HB-OoN>d@Ka_5khN(kUaqPPHRUzJrW=1h|%(| zi}c^$7Af__=|u9<)rM7%ANjwx#YB^w1BFpL)J|xG2}5>qF|8ASx*)0ZfcP4MfNrWtPvM+l)Y09|(T42RV{v?>k!qT49C9{7SW?3TCjeD?{Q z+6fXpL)_OF0$gfkv)RJ%@UTe%xaXJ`imW2ir9l5r!{*^1^x6IfwhI|FEQ6}=_Fgb=G#DjhWK=2=2X(tfIdy)1A${{q2s6=UaA+V5AnhcY9d&)1HR zkKGPXj1YqP`T3e8Nw54;Ao|^>cm02+ui<5Nk6($7AQeyZp!fWlWmz@DFdWk~J2dhR zo|v1P`*?70FrFMrs!eWF%e81g3WBtVlgs5R2L}gcu~@9Fudn9-6adsoXF@8K3TT=Z znVy~=n3S}3aWu;cBRNVFtm;kB(oHxzw0H0wPthcw9DvCk@Ad|_s kxm>O@6#$%eh>N$;|IFrQPX6#Z0ssI207*qoM6N<$g2%R=B>(^b literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent_new.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f58407c54b23bb1f561659e3a9dec95121fef1 GIT binary patch literal 555 zcmV+`0@VG9P)$?otvQEzaL3Rs8*S|r_YtgZ^9F!M?dFguH@>n#5j+lFw@sQ51#0iGzehCndxTxN;>_EEE+YE~J#!T|r8r z8w;+x$RE&lRYDgo1y>?iq-!_bR4~{sLKR61Hnmiw(qc4|iAkoDU$2vSE+&FFlh_a5 z=5Wrv@4b5!0?4FOuO>(I2WPIzR^j`bg{SZ5f_y$!(y6u9K}L3JSt+Vn**eI`m2_$? z$g2R9U;>x|ZZxhZ$6|>qs%V=4Tns0un`I|@XuJb9fpr~r0n}cRsiS!OaYt1(-EmR6 zXIuy;yy~t%bi3+FGC2_z;+9scT?Y06p_U-xD9UIf8r8;+k6C@T%)^_z#IBAZrKJ7i zE!%r{n3AE(klN6$T1m6JX@6NB| z)oP>z_nHuK`+VeQILyHYU_)=WdxY^eN2C7~9KZrGVH6ip)l0000< KMNUMnLSTa5zu@2i literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..17bedaa3f7ac8ce2917c35163fdd89b105050b8c GIT binary patch literal 650 zcmV;50(Jd~P)!l3hqsVHn4M=iQleZpvnAu}Uo@Bb42QhIAEuLBzVU z59mq=ED#DL!oa}DD=)k>@G88D5G1T1a8i=m#quLjDe0zd&Es*KZf@tCozsnzrDDIE z_vL+_AMgKxN1}k|9nG&UH6Fgan#_s5iACkNQ|H%kWKc`%v#u)VnX;p<`bbC_0A>MG z&WkTPnui|VzkWv?X(6$`Npq~fBG?*5_KWV+SVnQ*vinj~8IusN0TW^I=gJiFl9_Yn?aWCNMf3NOb}lU$Y-$R9d=&dd6UWPXHWmaiZBjL~ToK^jnK{o~GRdc{3?GG!nVMSG z=gaxilcur08i!Bk(UZ|*H*WTJ0=_-+KX|>wYR(hOouj?|9;I%}{5(FSE-j2j0Yl#1 zKfR_B4u@fF4GAz2;4R1R_j97=kTE`LqWlk2Q1byzK;3?cw#fiLfN3CBC>H}Bpp1gG k-Gu=pfjFQYl=8p)1xYj8o7AEctpET307*qoM6N<$g5zQ&oB#j- literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_found.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_found.png new file mode 100644 index 0000000000000000000000000000000000000000..e4ad787edba7dbf22c1a87e4303d55e3e956b4f0 GIT binary patch literal 898 zcmV-|1AY97P)a z$(~F!HtK0(Vl;72J$W{s_P!@CrWz9y51XusO>A(r?z(H!E!q!vp?tIupcG~XIt;_` z;=$rS;B)^y&vW<@02Kd*eSSN6>y7z|#k0toXEBR17w}ml!wT8~0oC%gJ$p4cQe+XvPA7 z42MJV+r4i-mYnX8D#qOhWqxYs^l+v(HxQl1ly$u8^3;#3u1tEDljY{|Qfyh5E_nu& zF^0p#L+PmRH$0P6h)2Rg3tjK{dsf~ZpEVW&i@a#FQPtW)|ArzRD4EwEKY1)^nkI4p zxIiFqIeu*=`yi)^&>#Brx~4V0_NwmruzI$1?s(GN2hE*>6z$9>`5kBVGs!efl_P{W zhGgihw2oOMF_rmCzsf@Mv;2a3&X@Lfy_ttU#_G-zAK02UCu>nU;df}7r)#dSuWK9t zN3Y*Ssd0ost&In*9->ngL$FU88HdrM>+>m+##9>>dZe z9OJC;xdQMyB(%!A$dvw|MDVa;C$G20gzSWMj(`8H544|t_+9_y=lkZ~{?kgc*)+J} za3~LqK_~2qU?Ci5%E2D0rF~d*1N}kY^ho~3EAb_ox_*Og|N8X#cUxbj^ZEP{0F@F# z^h%{t==b{Fh%ZJ%)CaD3!g{%9uvZ&+X)HiPwg9tGPRZqR^6BZRd7%d72q9QoTa$U7 zuiJRh|Lwb<*tV0)C^nARtbZPfnIyAY$Gf_&%Zj2Holb|1tRy41S65fxj7Fm~v3M-d zXFaN$Iu&_4$bcBxY_3))6guT{Sx%?ZSpX*hR5H4dNF>B&v*}HxQqwCdD}I;DCAQmb zeRFfOvazut*J?Er00Yng&;Vfkw|r3`D2l=bgF))^`6vMF?ChA?Y<6@N0E~+g6aOdw Y0L!L=&yILyX#fBK07*qoM6N<$f<5H8n*aa+ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_new.png b/public/images/map_markers/okapi/cache/medium_virtual_excellent_recommended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..f07945e7a1b24ace8fa36c6ef0248da578b53bb5 GIT binary patch literal 671 zcmV;Q0$}}#P)!lTAnzaTtf68OL>X*K*hL6ILlpTQch)h1eZV|Mr3S$Y$>9mYizpf&gjhU?0@FpNzfE~&hNwT z_rCBdY~aDQ3V02!wv zIuYnTP!l|;cy=R%!|ePV$x<7cbX-MuY`0kTPE4t;XWqJd;VSn4G#RG@XfNBFyHCN3 ztuNp>F1dJ+Mh40i)hSZFQjyg8GIs4L&d4|srG#D$s0aA^A*{7DpC#=J&_6iNVO>1q4Z`KrLmB&1WVbs8{3iV%k6M+Ens%GNO2|7D3Q|Onh>M>!bm(qaP zlKf>kK`a)7!l1oTbVHk#=bLQ&NCTCD5jM7DABvS@~AuU{3J0Xbd z0&M~b3JjrWQQ*QT5?Zv17Df=Q3WT5{h}5FMNQTTbU8GsgIQNUkapqk9(`GVt%AWQ6 z@V*~>605l0)%@^qz<(r`HRapyzQ*UvbY=&_{aQ{RE3YZreE0*F9cs&&V+YR%=; z@^MU45X;C!ltrkv5X%BfvKaklrPY|;-3Jc<6dBF1OeatwvyRW%EN_?dypnBvs;eh8?jzEh zqjA?ZB$r@&LyP<9iJO;!+7fvUUN6zQLqyGkbatM_VS{w+yD>E}xBwXT_4yBpB%x3U z5(y+gAcNOOAP`{G?SRAYs{x!H1kC)1R$VDvc zqoS%!Z~T7GMopHcdM4u4cNeEQ{Yy;TuxZ)22{c9xv!G^Xk zeJsD_^`CowF8BxlC+WnRo12@FBq?IsHn%JbtyYWsd_FolIvR||qoJa_&7K!lcCTH% zzIpe`Js$Ljii~rPt*x!##Kc5metw=2LIB_Zz=06rsDSAHu9WCn+Tc&$?S-DKKJwq1 zyrYByVTl1?u~_U>-$37S`DYCk-GWo{I%U&zyBrQ*zW!Z$@ZvFUcyx3zHy;b1cUrp5 z0PHhDh*uEduhhTsjW4V8qvqg=o=H~=4p&QWVkxuA(;wDx^YTS{CO*zDo}6Ob6owE& zW&pgp*+Q|l4ZGUFv$~G5<$%)@$ETe%-hA4Cq3mJs*f4jV2m%(>GMP+iWMrgC0a!;^ z7b1Ze!rln#2QuClU(uKOb)-uvG&GgQx=&!dH%YycpQqlWb`}>Ge-J`A6GAAqVK@6j zgBa@{=4vL5o#G}OngP=`5oSJq;rKZk4a9l5T&XWDEy?+O-U0wh2+=B)O2O34)?g$- zduashYl-W*&+zQjaP~-y_PS!+L7AG%<&@psU8_?lMhL;e!h#}6(hry9jy}A7-}U;^ z1$?b-^V88YNDf@$o-SWY(={lh#7wSJ&C;k_@_^XH z$YyiZLZQ$sm&?l9+FBMs3BW$-L`Wu+ZdsPYQ&UrY)6>(@Kp^05G#c8<%1UK*?vCkw}CBKq{58ve|4WDgYR55exq_zW}3cTgAhg9jO2S N002ovPDHLkV1kY^W=jA7 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_new.png b/public/images/map_markers/okapi/cache/medium_virtual_new.png new file mode 100644 index 0000000000000000000000000000000000000000..5037e8dd7cf2bb2758f3a5f5da9e831718a874a2 GIT binary patch literal 431 zcmV;g0Z{&lP)+l08eqP#A@uga}m!MMP8tSCy(o5W%he4@F#D?BM9+ zqJx{Oi$B0k=+a-H6hyFt1#P8L@e_iLO*M(8rM>hzq=nj#=ot^^;k@s?uL2+qV!%8w zhrcpFQW+xwpftd>KcIFUDPttGMk6~1k@3gZk)R*3IQx>?*-BMZg%$ANIU$s4!JG=l zz&XhG9VAt?MdkSNEUlXik|WbX^D2 z^bFeq%laRzr_+$lAbSA5aD8vLYtU^xU^|@Y)8xX$=)-L^8udNT>B;A!s#3Qda!oi5 z1oyYkOCJ{3-!22K-|?$SL-Yrz*bbKf3V<}&5Q1eP2vtSrDovHkz@?s(w@c ZsUKg5k`QSYf(`%x002ovPDHLkV1kahxE25a literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_virtual_own.png b/public/images/map_markers/okapi/cache/medium_virtual_own.png new file mode 100644 index 0000000000000000000000000000000000000000..2d79756c1c209dd915820e53e1c9c033e60a7178 GIT binary patch literal 383 zcmV-_0f7FAP)Jp;gbpQWkW$Rl8*mbr7H8MqgZH5q;hng+ zI4HD31(8(HDq68!4Cb%RpTVZFpF=7Z(x!q3zUA;foR{;x@DE7r4S%hiIFpdG}I4-uXL!%CW0Qo002j2w&{V<{z z1esx3V7@QyKrSk1opQ<7?g+y$z;!bt@WJ>01{>Wj^zIQWfI@h7e6)1%!*TMk2C*r` zjS@w>ZA~jY5|JdI0~iA7V)AKaJXR*KAA>SmQRE{$ciofsGqXXq)ABBgscL^(k@0SCzv zF)(IBZ~!LMrAi`IQI*)O?WU2;LZT=YEwJ!Smi?aJZ~4K0;k1kCbo%Nz&g7W5uIuMG zj_-gHr~&YOe;kIPJw*@%8n^{60Y(7({l2?BiXs4-rU5`HMVh9}X7^ZYUEmsc2Uepm zq1&3vvcwpJF$RFmW=NB9#3n5sq z*In{%w?k`v+AO7Hxm=Rxd1toPVy!)G*4i+iKm2&?wj{3a`!Am79W6;w6pJKD9)Txd z;q=a~fC+FjoT!HZK7co1)i<95W8i}Cf1v>c{d)eDPciJ9N0;l&@Bjb+07*qoM6N<$ Ef)V|cKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_excellent.png b/public/images/map_markers/okapi/cache/medium_webcam_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..15253de378821363d8fa461026f962ece87f95a1 GIT binary patch literal 499 zcmV^l0SkT5OTD z;y1_#usp-{iiOs4)pkKdERJxEL~G>=y=KwqnLoQb$xe2&I2LyaA<13zZ3cexKD;k8 zKfw~!YvtGXN*C^r|5)sO{{H^S^VXwfz6EX9$~$_$ZeoAeB>i2Z_v>c6R^D0WwdMyK zrQ)VMbD7_tUIDOv^#L2D;wH3ChAWjyO9)|i+XJ#gpWL;F2qVbGKk5GJ7pm2&Ns{DU zqtSQ__&_279LLG$ayi>|T~y&Vf#2k;>9c0K1l>JU{tm9|Vp-N*zy|WuGgWku3`(wUq}D|002ovPDHLkV1oX<`V<+Re zoWlaUe}H%Mt=`Mx`3L}t|HQhN-d~*k?1TK^HAY0XxpT04@0%yz0uTTQoO7EH!T^AD z&99ALFV22`_sdUaY3ywf4tVv)^!s1;|GM+l%0teXpAf1OLP`Ldz1E)CY(903AwiFS zU!g~TtWesQqEngi>!#HdpI5h8qx~w(ILiU>_W>ZBbE2y1M>8`s??mav`-74sH^g+r z^<9qejukH*HX=VfeBAflFDp_LjYc+pRSft7po}r>?d?UTr>8TktE&Uis~@+baz~h) zkm;3)q+g0~u^mik*<0gGGhRi1+WawWm^ug{q5wdM$K#hrQ=>y#`wY>E{NF!6(*^N- zJrW3AVs&q@_GkNONA^XiPYANff$M&^;|Tzo0wJWI6CSQL4%nlYoAgkrv0VDC=K{Hb zbGwayUjBw1wTSmd-lh4(6uU7#CoqTGoO4Y8(BE+`uzyy9S2v;Tmq0uLiSRJ?j$UB9 z{1oPS6KOfiq~RFgQfqg2_b`{swI~4h4Z#OliesQ(M&n$=&cRdqr2Ggks@pIvgC;JG zU}~g5`^7LTJ}VwCFE5`ELYTlg*FD>7jYTIgIhJJ)$OBaBDoU;b*K-i|zsV*O({xBm zuxho|SX*1u%H^^P0F)47)oQhh({V16(ij~MrO?z(c6@RKt8HU6oTfve1f%FPR8`ea zPfy(*Py!(YOG`_-D2gYyZ+{y5;?82=X5}U-XDZ9Y@+gemVgWI9;W&32Ox$4|YPl8-iXjk>*ovaoE0s#CTCM6^TU!c%LjX&d<-sBuNUIrfF?#Y}D4**Y$e6?sk8m1>g*T{kpju;5Q6ING6k1mSqY6#bVJ_ k6s0#60PJpvi~pm40hk47AbE$k=l}o!07*qoM6N<$f>zpxKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_excellent_new.png b/public/images/map_markers/okapi/cache/medium_webcam_excellent_new.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7ecf22b6643501ef1573066f6b19d66739814c GIT binary patch literal 555 zcmV+`0@VG9P)^lRsz^Q5?rV_j|grw&fi3hv_I?x1i>TpR@d6_<8VB$k4x=uy*@=6ZLpxx1uCoP^eZ@mYE&QYrO{mP)(m@ zx3ZYag=L@&yw?UO0q7gx)%IU4_%%CmYc>`dqd-Xjg(T6M)!Gruwryng zG`{zalv=@1HT>E%GII{wwwe2yAFjD%))GblbO5!jgmnHSk6(V{Q1S$T-)aOsD~O^P zrId(bjQ-R*r|)dg^E@&~&m!aEdZVkWIF5tw`vA0Bh_<%_4#SWj2nfRvfO@@-loBDt zPAi=!dr(Jm5CpicyP4c*G>D>TcUVe^<2Y0*l}%VFg;HvFIErE>C#UxG?D9Tc6$j1l zbK~Q;3;!}7JN$E52wH(;z72l_towIAxGO%N>mjM_>-Z~4C)sZh2a*}s`WQEogfmIP ta5L#FaceB*J)gJ7&+{B;{`Y*{^aoTP%%O*|Jc$4R002ovPDHLkV1fbA`V;^F literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_excellent_own.png b/public/images/map_markers/okapi/cache/medium_webcam_excellent_own.png new file mode 100644 index 0000000000000000000000000000000000000000..11f9c6e405bb59ab6d1b49d86cf5d3eb75513a79 GIT binary patch literal 522 zcmV+l0`>igP)^l1*z9Q4~PWjDv)vrXi$>xR9<~Xe*_N0T)uFx-0kx zl>UNj+_{XQKR^`RigfKpgbEfF5d{}r_z?7XICB$N4`*GaC6iA9~M!2@sexaZ#c z?zNqCSLbWj4n_vAK7M<4`|i6NS#c@W8uj&{-IB=K6xH99pxu(SMtwaiRs-n5 zGOz-i_0Ck6rYkds3ikmxo~tm}{}C6q_g(-mfhRTC0x-r&R(8te)yOc4wRnU!Jm6Ta zl4Kt#)Np8+)#`Fisl}pYod7-o%IHEq*0cq$P$*v6-R0r^CfDb-m_D_Hh!A$3^Y+69 zZm!{@B7%cjqm#ac%FyjIOw{bns)l;KS))!ZJS=NcUU=!B7z{8 zEIW>aX_|C8okLkf5Ru7p5QH?Fcd~mNC;LOLf!`H*pLgAb_WWEi+e{Fp!X5Yu#J^X5 zT<-Vt5nS>iKRRNNpJDqAYyd8dcY92ZWOIrf{R=T*0~VnE)#XHf0(1nuF@3(hF#rGn M07*qoM6N<$g2&|TKmY&$ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended.png b/public/images/map_markers/okapi/cache/medium_webcam_excellent_recommended.png new file mode 100644 index 0000000000000000000000000000000000000000..8fcb0047b6b2312fa137a35cbec1e4919ba510b5 GIT binary patch literal 651 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_found.png b/public/images/map_markers/okapi/cache/medium_webcam_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c081a0a0a816f150ffb37602f258bf662f453454 GIT binary patch literal 775 zcmV+i1Ni)jP)gcC?mLuH0)PM@q?86@jGB*s5$}EtVo*vMl9C*ZaUDPsK&k19KM4GE zvrmQUwTmQ;0C2Eotc8Vz8AVZiwr!JTS*X=&)X~wwM@L6J{-ED`q9w)W^v2c87q5Q2 zeZEK@m-j>v5#sTRr_<@|&?%|N#os*9oDTa0F*dm ztX(qc$`(#(=jSH&)Gt&h6r%^!?ZYiPNW{o642%UQ=;?zgL8dgMl$rq0erwin zl25|Um7$&_!EAw`s}J$>L+qz^QNAf5>>DO`pC7Pz{pjfEY-D7l!U0(KMGJiH0J__K zDBNf`INjx6Q#&}!?4w*S@?cj#Cix1P%Ge z5FL0%tx8+XG)=u&EE<(c<*tFO+3orH`I&GyJUBEw6fo(Q*R48tDs5mkGgLK^OQ+M7 zOeUjmZEdLl&H$8HGeR^Pb!wW{JvB8Inx3BayWMVQxm>PqY;0uL*4Fe~E@w6BTLF*< zVB9%31RTX;QS|oqa-Yw~0U#EOS*ofwqXK}@5V7z-^9yx4WXsWW*5LpE002ovPDHLk FV1gv;WXS*k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/medium_webcam_new.png b/public/images/map_markers/okapi/cache/medium_webcam_new.png new file mode 100644 index 0000000000000000000000000000000000000000..de9ad3b91a5dae42a7edd341314a6907260831e7 GIT binary patch literal 430 zcmV;f0a5;mP)^lDkR+K^R8QE-Pp(6cJGoY&Ap;f(VwrfTd_*Wg(^! zBB>=7K7kKlCrBV~AcBoHf{3J2bV-82tb0jjCt=7~#CS<0(XSl7GiUypF#vRlZD0v+w&jj`L}*)oO%c z*c%Rl0Nb`H7K@*-)*7vKZ#WDk>Ga{hj(yi>>G_G#hxK1m(N+e9|9Y~KsRZQv2eoEf;eW%c4_(>ofE*McUFx$Sma2^<0~;LZ8j zG#m~A$nzWkr4*CNg!9ugjAhvpwkS>&4#NMkg;nTaU8`TA~lobaTnnlN%JWs5fLYiy(K9NrL%w@dqJqe7yJlzV`&20xsYK zx4UCX=Dt?HUuS)rwN7 zM5R(8iXwnNk`$LTw{6=_r_<{9`${AdDijK8wOWdzNR38A$z<|Xl5alPK(O6zsn_c` zjzh6nB%jYS8jS#6fZxE;+a9+7p68Lv<*+P^X0vJ1Jpt!N8v`yR{Ro0UolZybcwDJe zO4I37yQQi%jFW_AMjCtABG{G=NYjJd;=cW>ot?f#PC-p(pTUw@Bmx`9}c_& t+yen{1026y=?M6&cK}X+FF?$2{{fVAVRXQSY@+}G002ovPDHLkV1i2gyO96@ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_event.png b/public/images/map_markers/okapi/cache/tiny_event.png new file mode 100644 index 0000000000000000000000000000000000000000..d87a47b19e8b2a8b3721c29c86c390197b095627 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9RXp+soH$fK*4%X z7sn8ZslELhd7BLcT;&CoD_Qj)YBdG!aeraM7%XATWTfksx#){uv!GhUqtN(W<;#B; zOx9vu8nQ>I$8dM^6r*VZPA(00!~Nf$vv_{X=S~I}d%S(|Hk-R^U;j@5I)%a0)z4*}Q$iB}|Heq> literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_moving.png b/public/images/map_markers/okapi/cache/tiny_moving.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5f97f19891841d9d0d2fa3ad7a4e60575313f8 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9RXp+soH$fK*2^& z7sn8ZslEM%d`yZ0uJey67qaR(?vzWmJsOpKGShtU_em*-}S5uY2rKNQ5)~iMxiY!Iv7>-D^i=T5p&C{vm zq{+Hq{|DuFzbEJJ_7|@HdhMO``@f|E_jM*8IL^Jc%jwhp?Rix|$1r%h`njxgN@xNA Df4aTa()7BevL9RXp+soH$fK*1JI z7sn8ZsmTcnLI#H<0s{m8Z`6#~mLnO%+q`=9>-v}jM~*zPX9fc9u5ac?d3g5c85sb< zpSt2n5BDB1o#7+2>d^akNr`_pjhp^2@Gum7Eh!>gZ@>HOfe(-MLHZ8Qx7WELy07Z% ytVYL=Vt&F8f4aTa()7BevL9RXp+soH$fK*2^& z7sn8ZslEM%d`yZ0uJey67qaR(?vzWmJsOpKGShtU_em*-}S5uY2rKNQ5)~iMxiY!Iv7>-D^i=T5p&C{vm zq{+Hq{|DuFzbEJJ_7|@HdhMO``@f|E_jM*8IL^Jc%jwhp?Rix|$1r%h`njxgN@xNA Df4aTa()7BevL9RXp+soH$fK*2^& z7sn8ZslEM%d`yZ0uJey67qaR(?vzWmJsOpKGShtU_em*-}S5uY2rKNQ5)~iMxiY!Iv7>-D^i=T5p&C{vm zq{+Hq{|DuFzbEJJ_7|@HdhMO``@f|E_jM*8IL^Jc%jwhp?Rix|$1r%h`njxgN@xNA Df4aTa()7BevL9RXp+soH$fK*2sw z7sn8ZsmTcnLI#H<0s{m8Z`6#~mLnO%+q`=9>-v}jM~*zPX9fc9P46c4RrB!A|Cay) zJ4)Xu9e(##&tRpBNbBzYed#+&K5MrWKUV=NjZtJ4-Z;f4aTa()7BevL9RXp+soH$fK*4rT z7sn8ZsmTcnLI#H<0s{m8Z`6#~mLnO%+q`=9>-v}jM~*zPX9fc9P49A_PcyFh@o`!s z5InqidN+^fwNQhVDk81saWM%${=Ak2sXP2zJU(E~0hcxD0X{Wf9vB|pe*XSKwYp>L zK3rXWohMXLxNsK7cdIkyFCLtkX?#+HYoP*Xd*f$@4koAG?ItHBflgxZboFyt=akR{ E0FJLu*8l(j literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_unavailable.png b/public/images/map_markers/okapi/cache/tiny_unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..bad83fc71d9c18df46710a59fd6b825f983e6284 GIT binary patch literal 495 zcmVMkwHk4aTtex{|{+76eB`Vu)_}B#Du09$i$Ne2?X)r zNz#kh(VLYQBLsy>gYY=Bfp}2JPMN|$aKfbWFs2!9D`@So4?d&K=^iipL-ZUU-XFa0 z?-kGtECLB&9=I(@z+)f@oB|WF0Pm{RD*0538f(B)pjbRRqi}Kp-~j_RP(I$?=5<#W zhpVeLL@}FXWoU@l=qMNG=KxERV6sFsS&#g1)Y=%gto;VR~9#KCcI3W2*D} ztCA9uWPpc~qGiv!_i=VsKaxq+H#MnJDye^FMuAZ1Qc_sbb7M@&F~;mm+VnLxDmXqa zV~pHfPJzBY1wtW7`YmbM7*moY2N;p`#LeaOX>Lw+KA&1UJC)kn(&t!Al3FFb0-Ej7 zKMUzJZ-&FCbC&JboP=+2KWC5IFr)D3Coku>P4{=|1ot_yW8DZq)oEU>8UOFM)=C lzkL(9qyGSI0e1n%x@>PYG9O)2jdg002ovPDHLkV1n0W(qI4p literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_unknown.png b/public/images/map_markers/okapi/cache/tiny_unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..f22152283d55850ebd3b0f78ac71829283d5267f GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9RXp+soH$fK*1VM z7sn8ZslEM%e1{bTSkx!Zckw)}uJN{h=M!nammYhLtkYP>sCbD*L`k`F)#SXgrLD7V zUL~&84R0!5XDN|_S|zpYxoQ`nhf$rOgD1)ugjD4am6=L^AyMXRs@O1TaS?83{1ONk2NJ#(y literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_virtual.png b/public/images/map_markers/okapi/cache/tiny_virtual.png new file mode 100644 index 0000000000000000000000000000000000000000..264e82bd753df4df55974bb8f4b990c03e425eac GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9RXp+soH$fK*2^& z7sn8ZsmTcnLI#H<0s{m8Z`6#~mLnO%+q`=9>-v}jM~*zPX9fc9P4AvG3s*C@HmwCz=k1VnSEUZchFOyV;DSL{an^LB{Ts5@D)tH literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/tiny_webcam.png b/public/images/map_markers/okapi/cache/tiny_webcam.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5f97f19891841d9d0d2fa3ad7a4e60575313f8 GIT binary patch literal 207 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/highlighted_medium.png b/public/images/map_markers/okapi/highlighted_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..91f8919400e8bee74356e6ab414048014347ae94 GIT binary patch literal 1293 zcmV+o1@iidP)EX>4Tx04R}tkv&MmKpe$iQ>9fZ4t5X`$xxjvii$XD6^c+H)C#RSm|Q=hNkfw2 z;wZQl9Q;_UI=DFN>fkB}f*&AGj!ud$QsV!TLW>v=j{EWM-sA2aAk@oDH9N)uRkMs_ zJSL_yt77040SqCCE{w^{)aN8A0nhPu4Lp`5m|%ypWBh+`2;kRU=q6(y8mAxf)8iisrc$2|N4j$a~|Laq`R zITlcX3fb|4|H1EW&HUtqn-q!xoiDciF$@HDfkw@?zmILZaRT_Cfh(=$uhfB=Ptt2G zEpi0(ZUYzBElt@2E_ZjJ_!Y^xXp8Yi@7NeVjf3De5Y50~{Oz zBL&J{_jq@(y|;hQH2eDjW{z^Ab`u3=00006VoOIv0GR+n07A~0hYSD!010qNS#tmY z4#WTe4#WYKD-Ig~00SLKL_t(I%Y~F(Op{j_$A9nJ*7~;eZQs()Qa>mT@q>a?28&B% zMlnoX;$n8cn?+)DH)i3&Y!_%2?sntlZWlGWjKq*(%-j~mg`fnfz=CM`D5XkUFnwEE z+S2aAv!&wKKY4O;a?bNhp67p_Bk=~63KtJ!P&)MZLhIA%C)G_YAIqy5J#1DSL&1p$ zH}}^6a%+8#RKCeApKmcasygrA?LV%$G>ge#QuI{P%F1z!S3ntulD~B($mS#Dv!5u zVr;YmRsbW4^IPC5a0aLounu4i=Le@D-Ou*=U4Gx5rgH#Nbn?_;PhHc`E0K`L;xa>V z8I*RQ3Ahe?1RN3#cnXXHj{z^FM<|tSNJjH)J*afumvcz(EMa%#ykQR4;Bcf5f_!d3 zrdYZenU7>D0|$VRD60+_7FL%}Q50|k1Aq1uO#?;MrfOn!DfI{L>8?pmMkWl4YZ16#Y-ouZjc%a18hzC;&+TpAvKT zH+Wh@;qZLVD??jc`2J)p7VC~BqW;>tDzcdb_Sy!~w|xSf03JeOj&y1*WZh{0PV#hL zdF>ks-afg%!d`K%rn&h`N~<6h0H-iuf&B9zCWjaDa=#vr^{6#J-hJbL^q=na9XVE0 zU2{TJZEaSE`XTBTVw1zO?wt(-g~j<^)21J8tk3xu5D^^=We0oK00000NkvXXu0mjf D+M!Iz literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/highlighted_tiny.png b/public/images/map_markers/okapi/highlighted_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..6b704642e41a152878403abd82c25a97d72596b5 GIT binary patch literal 757 zcmVEX>4Tx04R}tkv&MmKpe$iQ>9fZ4t5X`$xxjvii$XD6^c+H)C#RSm|Q=hNkfw2 z;wZQl9Q;_UI=DFN>fkB}f*&AGj!ud$QsV!TLW>v=j{EWM-sA2aAk@oDH9N)uRkMs_ zJSL_yt77040SqCCE{w^{)aN8A0nhPu4Lp`5m|%ypWBh+`2;kRU=q6(y8mAxf)8iisrc$2|N4j$a~|Laq`R zITlcX3fb|4|H1EW&HUtqn-q!xoiDciF$@HDfkw@?zmILZaRT_Cfh(=$uhfB=Ptt2G zEpi0(ZUYzBElt@2E_ZjJ_!Y^xXp8Yi@7NeVjf3De5Y50~{Oz zBL&J{_jq@(y|;hQH2eDjW{z^Ab`u3=00006VoOIv0B-t?010qNS#tmY z4#WTe4#WYKD-Ig~009L_L_t(2&t;Oaaf470MBg$F-Gop9>Oc_35rBoQh=kqQt_ z2ytM=xB(({Kmp(;JflFtIuMco-^`!6yV={@oquA8ZL)j?GC^#ylEI>tsSV}Fsrv=c z0A36BKxCPs>H)D!LwrLuf!ukC^pb_82B+n}io%WnUSd{H&+_?R$86ku=l&-@_xf2yD0cW;yEXDPsiA z(-5Eyglc)NdATSO@w1zJoJ50tC{F!Z nlhY6x5QA5;09xZ3^f-+_K2?Jven-#)00000NkvXXu0mjfz*s_h literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_adminnote.png b/public/images/map_markers/okapi/log/large_log_adminnote.png new file mode 100644 index 0000000000000000000000000000000000000000..abb3ad3260e5bde24ba43bd80202be50521e1a44 GIT binary patch literal 1280 zcmV+b1^@bqP)!nx_44 zAi0dxS>qO1I?>$R9Df=cN2AgGz&v2BiU2@+d;8WW0dH+>y$x&!V!-6839Qr-X`A*R zh8cM{k64l}x`c{wh?awOY$`AIrYnJhRfiy3`{t*6R8^F6`e-AT1GWGp1aw#zfIAQV z;*0O&e0b{lWovUKc-~2PZ*q}6TdNQfY!}kDBxOr7F1Ql5Z?0f+ZdtgsEPeGJkWygi zVCbM}AjBi!kOqeK$P+7o>#F-frN8GSAY7NrpSAJ(U>~WPSGiI93?~oN1CpTeXwRSl zML~`D{V6IV1%B`V5CqowEcbw2HHw@B`a8d7tiKn4&67XUeRVw@KaXMrg1mdYfx?0y z?VT|uXVX+h3OI9UnDiRiu$tpyrt8Nl;Ca^OuiFu3Ji3Evxi%i;~${FU3^4}gO9XepB zt}6l=75}6nlga9V0?oqBSR`lD*p`c-l*X|IMQMvd-Og9Tyz_4Xi@<^!t(?bjW48;?~yIAt|LUga}G015Hg$B_~dtC<%wd|H_$EDkaaKKcDF6=t!+}7!-I)Sw5|- zPy3{Jxei35(U*W-z!r6FX?d^@Lm^wc21qC<< zOeyPA>Kl>kHk=1;t8oKR*4NiJ5{*V9rfJq4IdY^JU|?V%bK$~;nOH0q2gZRvm3yTx z>861R)fbfO<>Rj7H1JSm>Ld^nLWE+m*y6c!=h}Ac*ilnmT^;D`>`V;~4&JhD`vEWr zj4BY literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_adminnote_found.png b/public/images/map_markers/okapi/log/large_log_adminnote_found.png new file mode 100644 index 0000000000000000000000000000000000000000..a935c71ee99caf0a470bff22585493a6881ddfb1 GIT binary patch literal 1697 zcmV;S244AzP)JZxcKKh;Cy;lPM3u9$vMKcT|+Dt4x zX}D>cZxGQC05J2E>$-0RgTY**c=06RhG9gBXh=#4%UK5z^(%_<)^>ZIsDKdS2LLdc z{t&PK?hI0EGa#aj@4?A$9R7|2 zz-H!8nic?n^XJdE*I#4iHX>4!nFJEK320s)j)jinz}^EY0E|DliM&`v?^C@f>g)Em zpFSIsuFNs>M}a`#-9`dU_kd)0R*W+4&80BETEhLsRs8(=+nCAd_#k-?zrOW*R9uGU z_2K2C--U-&HJ{I?{eJ(Cw#(ae5Bzm*&FYB;{HKq89f4LCf1Y_CfQk2}e}jA}i=cl8 zR`TmO^XzNT)&npM!#I2P?6$Wc@E8@CPUlOi*J}|3M!xhS_ILF|GLT-IN6{{##Vc^K z?-cqv2jDo4ym;~AXft`6t^l({*+oY4a#T?i^@X9+$d3I2y15Jh7>Etw$es}Zz~tm) z=FXivtIVv%<8f`Pe50eIR#O5KfA}Rbb2G3yzk;b~8=gH7U4nF@VJ)P-^z>=GbN3Q7 zWe1)gco}Ai0l=D`o;HX`FteuX`j!Imc>K{7crbAjOSAU@0NuH}`1o!c#-|q0s;R55 zjPylg!5;C=!>_|}CCm~d>{o37nd)|xncHmJ4%O!sLRh-4KU$z{=+IhrVE;fL_Vx8( zYT|E5&o5$X*J8m!BI(psNEQf&SscK&&74QoznO%^BDi&VX4|fwH!bnFSHG5m9G#UR$%6*#=+` z5u}vcS0K3eAnKJ(KYex_cv}^=z0&f-o;0MqSKoSuE*ws&od81c| zX!{CW`Y;Vs_G8eOg5Og@PWmv-!w7#gi!&nw4fj<6Du7lZs)1{jva0I(XlWI&Erwc@c(^EW>1G1odakhq5eXrLCZ$xXGA01Y%#w%KF; zi;*P!?i!qm3#;g&kae+Ml&IJacDnNz2{wGc)QfmGO>Jy6>qY~5JdKaQOBJ{k8x_-r zQ;|@V4OhpJXen2qk<*kw9ozu0N<@aoxq?9=!grTZxE)t1YqobqSH{q$_{WvxJIGoQ8X08A*nK?&986m{K;Xs2X zyl~-y0RU1;0RYF29aB%9JgI8hr=O~h(2Q2xZMEmRN)2@WdIl+kH^{^^BI9_ z*RFjJz!4(aCxnOq@Tb%1T>!oikH^M#=6bh-aSWEywDwUF#FJE3yBob-Yb#qe6 zWoBMvW}TU{%)G$N8D@S6Agw5h-qF!vZia6uaOlt>*tT7iQm!#`5x}yPGFvW}SMvFM z-{9b&*XQ%mjT<*AV`F2>xm+$IrJQBvDQ5nslrqK4X=csCb=^rJ#7ymc>+>`M zKT=>TAzjzC_V)I#c64;a6N$v%rIep2iZa>N)s<@o_8$q#k)7{;@ r^m)LaOQ0qJY#d4bE%pELKRNydAum8xu|LJK00000NkvXXu0mjf8u2j* literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_adminnote_found_caption.png b/public/images/map_markers/okapi/log/large_log_adminnote_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..78281f0d301f782f7e6e3104ef160ef11139a0d4 GIT binary patch literal 1764 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 Hu0mjf3y5=e literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_adminnote_own.png b/public/images/map_markers/okapi/log/large_log_adminnote_own.png new file mode 100644 index 0000000000000000000000000000000000000000..5c47f01307af4f3fce51fc332d1c3c4f934d9ff7 GIT binary patch literal 1731 zcmV;!20ZzRP)L85&40d~6_WpB$hBx%!M7i11)2cQCxprXlRyMm z+Gt@RfmYxLK=4!AZyfk7@cw2AGy%b{KmGJqKMnN#0|RH@f^C1f4+3{(KYsjp$tMBt z>FLSef*K9#K5nhHnS=nTtj_Ca!i-HNu*B*)MM7nul%B`isIS-pKmxqxCTeNZ1pa(s zlG;i?&+dPOoB_H8NYE50(cq&ybNu1&BmDT8T}5*UA=Zp3nuHSZVjKfRq-h0;*zXvn(69RDddMC04Dso9bW`&RPXcZb-l~ zO$LwlbL)d^WE#K1#inu&J=Ot8T&lehmkM5&U?du&D(EgmQ6#tkpF=^r>oZW*Wl6+zWpeDA|sjDjP*iuT70xb_A zY=<=+@HDXCkXgdM!Rv=zKbNd0sUEz>kDl3!vd+C;CXfSF zhb=&bLm=Z6;&N{S*`fq~cI<6F(wnGmuIIz5op=Loa%r8?M2@j>lV8924}SQK$BL?8 zf-r4`z0Qs;>}#nzN-P1XqDJ&=?PY?-40_%qmB_I;lOmPKk=;`UnODTnASwc!Fy1KfQg9i^13w{jaJ@M;<`qJe^!E0y0yuf{Bqv^Z#jvhj z%WEK2CnXlapZeZ5j&SLdlyRrS4S zR11Vcw6(PffEzb%$ltyEGIDfOhC(5Wii!pN{`tJB&MfNsWK_zL1sFD96c}*`Bpm7Q z#)<+`J_tP3ck0v^GMS7vH#b)@KR=(+(&^d8bh@Ve_HFUnv16q>cI=>`p+O7{4Urii zx2ggGX*M@6RkySx{eeJU(=>z-{zxQp=hCH1?@@_N#*CLraDz;*y>7-n{AYRQMXpYz?D*%T^GEsFTmhnE4{sq&dBv*1cbb&2r&$c>FFfV zXog56!_Au+Mo066!+D}ngILT0pt4e-u~DO~t%UaW61Hyj(Aw&uvC%_KjSubaGxY<6 zIN}t05d!w)!@yI(p8r+Od*TA{Cxp0icVt5XD~r592k;~>4L zOH1h@rA4C#Q7~FbhzAo7ip7KjF zhSr+t=_#_=d*pHpFDU(uvfDHZ%E+W zx$h{K%JlX2(AFBKeaCLp-fnzfQ>}Sas~&E(hU-@Gyc*ei^UTf7a`fnj>#${RNQ_Mh zy!PrF%+Ag5=R%I1$pq0@45Kxkr_oyD`x=eG_dHzJ#fn7e?>|xxZpl=2;7?{l0{tHx zp-@=i#EH*Yyni3Z$x|$rD3#VEuNAHFIEiF}?(S|b|9F{bG#UoCfhZ6QDG>ns^3)9p zbnWV5b=4ta+w9x7kDi_$jDh9lJjNK5QYaPpR}r=CaN)6lIM497PG?{WD9sIWVtU^yFfWmr6B>!ve3q$wRr+wFMaS{^J+xbD_{d1Kv&>v zvD^hpLdFFmO%zZV^El$`6{sgrC=}`F+*Ka~JAj=68~|D(zY9~5 zd-uFjpMpUK#6@}|e)olh3skM<1bo)kT(mZ5tN4kS{PX@hiXmF;B5rtS|Es znU)Z!ivP<(rrK12W5)*gVRVe$yLYj-r-zo77Ft_dSz20RadDB=6^DF2&rjpmSy=ds z;o)I!-@d)Un*#0vMW7&0w`m#zeDdjMymjzx&YwTe^`CFBy!;TyaaeWoIF5to`6Lnv z4j+D(GiSbHaB%RcZAC0E0gkljio}MtH|tity?vZL`_1!oMNcGO1y+PeO^7|c6b}sz z-8IHoTI;AW#y)=hc>BqdC)<$69 zboyi9ec*NJ>7DcQ^ZiPx{?n&VC&FtlUAj~r85y}dF)=YKKJ`N21p#z`hhlw2*63#4 zFb~Yha}UrlIXU@zI-TB`N~PW$7#L^+n4X@lUc7j5C6md_0y*Hm$ZJAD_Xt>$SrF;X zX6J!5;2(+92S8kF9nWMk#nI8xZx0L6#HM}SqX$|ycL{kUg*te3qyzV k_<8S!YP)a8+kQFy7bLtyb)GubCjbBd07*qoM6N<$f`80lRsaA1 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_archived_found.png b/public/images/map_markers/okapi/log/large_log_archived_found.png new file mode 100644 index 0000000000000000000000000000000000000000..7772aeb20adf6d4507d9769c3316578f990b9b32 GIT binary patch literal 1737 zcmV;)1~&PLP)$-g+veR0NA65~OZIMXi=vwzYQUGJjPXI=< zf9Hq4d7a6Hn}|rC=XpPRWB{d7X@}=|Z+M>fMyXWV)jaQc-rFLwDOaB6*q?vSd@0AT z{_@M_<$+du(SOI>^Sn1jSE>5s8iG#uzJnNW3kr;4fA9!{~2WtW~+?++^hAcL0dDC3tPu_lasO zRxB2?9UUD%T}yY(8n}J?7Be%`%+1Zx(UJ5A2M0SgwGXf8u#KeR>cI?>5gUr_i=Dkt}mHP#$I`9KXb)da_%&$%Jz-V^74*v0Wdl`n!9r4%Dk$^hKGmatLcx7jQDE; zJTdq+DwPtucfWv>&*OPzs#Tx6Q+H-MIy?F@UA?i_UU;2%Kl&Z(;_KMI{Qx2Y;9tLf z-4zj|s&U70Rs|Ry9$tF|l3htko`;D<$Ye6~^ke`i7R!WTIN#ph-uFcRHuK}YHvz$Q zU4Q_{H6&uH+7$#rYNfU@#&;a2e%uNm{@7#q)c{pcRa6ygEh3<*VLm@Uv$PcW#zYVi z3WcH%%s@R}M80Hcg<;zG_CF^h`< z*RFkR2L}h6*NljCiOBlK*fwN+RSf`FM6lMjPJuC|G3)y5>q2!fkM$qV$hMq4X{@N>m-kW(7Vwv&1<4UDUM`v<506+{_Cn8N_(@2fq)Pe_W zL~6lW1?mu>E6nQvZqcQu`~KZqM2s;eZmo?qU_8L8sudAeL|kKx-?9knIjRu^0oK+F z&{{=AFs9j|Qm*jHCpXAWO%nvcYC3Jph5_IMzA?s+Mx(7$0I+M<5NF;!ODfexx~GR& zEJk~KI|~a7IF3W9nb0{fJ_*NV)7$^2&IgN3CW_Bob`dGQg{^ev^Is_O&!uRo_}$FvhsCSgepv zr~Q$Uk+lH;(&-)!960cxu$E0#mjF*y3nG#;#@sW97DagE$PpL7T5AA?hK6E$_wJ3w zMxJ^9KhMLXMX^ET|~ZOj7b9>*=%+r z@a5s*;rrq*T(}UPK7G0{K0ZD}J;zOBOTE}Cs_Lt1UPR`XFMTsMvJ&9&#~%;FF!WWm zrm8OBI*v0NhT(=(DizzXVS@pfoSd|$PMxZbjg4h%wOYYiJFBYGs_Lj}UR9@5HK(d~ zfovoaaWa{Vx7>VHfbHA269hroTDzdCWnk7?n_pa9oGTWKgFANYXiFp#a{m1JrHdCY z&K3%VoV9jBRj;Y)r`Fm@Rn4ku4!9#CGm%Kd>Fw<;tTbO0U}9n-Y(RuSSw!-{g6DZt zot>Ti$z*b4KA+b!XU-JI$H#A5Yj0X>$ADWRk`h~y)Y$doar*w)roSZ(Ib*7C2} z$`1+0apH@Mi<|cB+4FWh9`Ct)`SSH*vG|W#tu|_mx!KI`N}X254+K~Z$Z?!_cX#(o znM`JQY;5eG*4i79NMy9Px3};xX8#dD6JmCDHdU+D)&p@7$@Ta5&wLT%F9gtpfO<++ fK2ra0|C8-saTt)aoWVNs00000NkvXXu0mjf61Y@c literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_archived_found_caption.png b/public/images/map_markers/okapi/log/large_log_archived_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..0b78cf12cc1d4e9d319e55d966361af409f3d479 GIT binary patch literal 1814 zcmV+x2kH2UP)Lvi|y^0hp%w4a>65S(bIqG|lf;#%%Tyzu!M7i zzXJdWAwF46Pkle;mSqhnin71*TTztfP1A&w^7~TCy&jkFtE)dpzL*67Jk?h2LuS7F z$N(o#o?O{%Vk{Pup698a=b`^@9L$WKC%**8asH%f8a&U#*}-38Mt>U;3c4PDy72X` z7YG0`^Uxy$0Kkb8CxRQteBXznC>Wa?#`zm(Q5&qo6OZk~$0JVy0IuG?g3-A*q19-J z)VAQIqdyKZvCH7w_4W0qssTK54+tRu04XC004TZ^&JO$TN+52Uraynk0yn;k(2CrWJ z88U?w+>#4bRq@j2euT%GJ_gIO+}_^aSGG&6D!}>kf5wXAU{^E(ttJRFpFyEuqM@M) zeTQGflDUYRbE8OP?tvKq7+*Q?Z5-J1G>XL{PMtb6yq)=$04>ci%)dK})KUg@b+u5` z0Q#@}4WI8hhK7ble5d;dNEt~iA!^mc{uq+#nssc1NG@xKvkWxV;5=A&% z9yd)3%gbrRV!QEF>wdiYwch|J8xs)}MF9XvDK#NPl!*4O*Y$nh6+#%U>pHrwR|n8) zHLN)9+WJ<$g(x?ut}h@OZALIy-m!*ZAR3LXJuigVA*F2hecxEGD}*qZ*#?j%BBLsR z5E9G;W&%()Wqz<7nHftDBrJCqvVyKs)4mG$0>tfMCU46rP04an}rId{T+*NZI0Hl;Q5rNC4b+-f{0*Dw7dH@^D%K%2+ zM0n@UjS{L5A}EB=n3+}+QdgJ55JIE?7*&sADa$?Jx}`M`B8CtGQdT~IZP~bge;Nym zNfe94&7@QzghctJyH*VdV3$Z5sv4f@N9oeL`(*E!x{V@XRy4=;`U%Oojls%xn-*f{13Nl&O}MmRvj@ zuYL|xA{yO=zP`Tgrfn4-5fzANftlx}l=H!0Ft_DVeERfh4|ve|M~)nk-QC?X6bij( zp6j~k@9(FPk&$ZV#LNX|PBU|YnP(M6$yMG5n*v<8aN*fNAn+|!Rrg6L!&1un`T6-M z0PWbZWAAC&p`jtVeEG6BH8o`r5use}im|(zd5(xG=ChU3S2UE30IjX9#LPt^@|f9T zW-FaeXP7zG)YK%}+S&vFBoYa_bmh{a+_UDpSRDCv1#hY+H%R4RohCnpP8XFrAhQr~V*=&~M@wj*A&YdOC^X`>OrGDS{-vThn%+t&~$INdFA>L6G z<$fR#$Zcj00AjO20O;-Q)c~OKXTtM5jfjpOKYsiVp-?C^GBT3PWHNV4rBa-Tt}BW% ztE#HAULz8TIP2H@eF1C+w79s~+Sbatb^zP zupdApGv8`!Ya9O{#vcfv0+GpNG|%(2ja%yf@jn^=2G5V>C_e#;>i_@%07*qoM6N<$ EfR literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_archived_new.png b/public/images/map_markers/okapi/log/large_log_archived_new.png new file mode 100644 index 0000000000000000000000000000000000000000..df05b9299f965ac6b8951e4d0a2856ca88214c29 GIT binary patch literal 1858 zcmV-I2fg@-P)6xSWcKWAol_G0g@y}qF^mjqHp zDs59$ZiLnJt?EPDm+%Mlq2i$+^{JJrme3Xn1%gl=6;&wIRjaC`NQU45<`Tdcj4!*M zz0J<;oIdQVy~Y=if_kLU9POU@eLv@We&=^)gqq_2*Sgi3pF$1&7GNjP2Q+;~sWLDD zTnCmm8`uc26F35-pV54Cz+vFuPYcioq`&vGH+!Fj`cHpw`oVAi#7lqt_0t0^+kWE2 z3FEVf4-XGJcka;?4wHG(SnXNNcDbGd)-Qzj;EGC25^21PWHMXVEEJrQ8*bKAH%ah(T~)1;CK!iIs8 z63>%JDe--YMB#fLwr!*7I(zo)T~Sb=6e7@QTx!{HsSN@4d}%MmVxBkNc%9itk1)*w zrBa!4xr$N>5X7QU63GM|9UYAPWrT1zy!^c9Bc#Ltngal>LD&iI-i82e={A;@O!QEQ z?(S|fnG8z7;$i`%6ha7usIRLa99jvbloF1E=6J+`E?8a$1ylh$xH}sHG&MI-saQy< z02NrO&@@m=tOAhICloeT0hB7}woME0g@&*$U;!1t1gs4KgwRk@qLf?~S864b>j0W2 zaBLUDSP3Pi6vZNXwMrV;9?aYgtS?h5&tlUg)HDsL6jG{X@yD&N_g&8=yxIW@CA6wd z64(Oxfp`VT2QWpz*u(*WQnieK+=0gdip3Hwt?5PpVcBT5OB`qm0IVPp>vtchZtj3& zl>@N81B(kex<2>$RnL1KNJ$8Y2Q!v{9`q}L17&S<0H12rMoNX05-Am$CK@g%7K&WC zGREz@pHeE7R$Pz>B@uzB*02N2U>OQPX;TMYeRV&_|8Ro#_B36Y43S8LSS-fe+#IvB zvn=IJ3WWk6UL0j|a*AWej&b$s)itXbh+EW-=y_l+0N8jN0(|`&ud(BWot!**lF`5a zlf}gaOw(k^EMS@@p68QDBzW<~UA+DFj~E&nS}%;Gw(m{g5%4f@pu%Q_sNS;K9^QH9 z@RNpZ*6JDm2$%#G>f$_Bip%xR@bIvsloC=(p_CE_4jj-99y~}gnOt?SSeB(uojS$& z^XJ#T>YlM|5;|i!IMTZ#I80^1jyD*{SW{zh3~1kB_S}XWmnB<37#t7B6pVb3*tP&$Hc1 z#kS@a)cpJ+w}9KgEnqfqLpDxg1)y8SfK*%d=gp4eICi=0IBv-=RGspk0Vmm$b>rMzpE9j;b%(EyIZBBQf2KBrq+1=5DTV|9ZvB-(1i7)d1b< zJCl=>1D7vf?$b2+N<6aQr($y|8p_M&CR4?XlKJ{;R_mk1ZCt$gq1M^i$v;LvAlr3U z31QgVvciqUWy+JSEv{-4o=oeROy)oP_U&t$o}Si5Mn*nfPaHrfrTVX3yY|DgXMXoq zSNf*2yZ43@H|}{-f%HLvKtqeCNIHV_FMsv5kYzWCRBTlBWC~tqE4l4kD5aA4kqAl? zaN}+!bbD%BIA88Hlt}&g=+UFcnHJ+ByLO9&fb6A9mj+(i_Al#OU;VGW&NfoxH}R!S zDcM4Fc<55|U;nm6^gdTmVL@^G7E0+BJYBDe_wRs#{uvi$+;bN#f6@8z0FVX7*W05{ ztOHOBiom<|fc)03lKbX2KZ(rFQccDwwYB2z{^HX_S-*vVslma)v9o8c_Rr_r_1(QU zoR@dq^Va%+>g}QW$!*+J6fKrPg>=02#6S9YYv{_Y7mSCw9mco6J2(bx_ysD|)aoQ0 z8~f;$NNCPa#^(KWGUvCq=KPMzfET$@z zO44zhxa+!6-}l1+x~{w7aJXt1MkOAP7ZQntnNFv3nM`J(udi<|7K>d0t}rbgE~{+{ zureqNbO7ztzL;Bp1hsQL3e;bHU20XWezq?K*8(ulv~bs`tpo5su5nM?C!P1|0000P wbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy07*qoM6N<$g0>frfB*mh literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_archived_own.png b/public/images/map_markers/okapi/log/large_log_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..63c786914a56484734c32bc15f111ad28075d538 GIT binary patch literal 1725 zcmV;u215CXP)_~NEz8O=0PAKsmIvX5@?df?qWNWZN-W0 zNVczDt*fhZ_CZ&cC!J+y?wjEwx0P^hJ$m=NN@0p5Q5EwY&`y*&|{ydM0%HbhrD#iGP4SeT|o z-Yk&Mn^;zXh50BmGdFnh$){>HLDWgF?hDYjdk;5ezGN}BL~}5J)8#@*iDgNoloX2+ ziK1v( zcs(8h!2s>;?M(b-0;khit)eM#0)87ns}eTtv(*qF+!|(M!@!~Iba!_Xi9}Ee5{V>A zDTELue}w=9PQ8*!DJ2Tvuu9@xRF**jn?T+^n+*Y){7q!DIixI^sT3%s&@@m=)Bs3X zM0dKX0my>OgjPxot{eqQT{26lQRNx}2%({*L@Bu?u2iLx%K(}tF!Kdmu1YE?rO1FQ z5ADE!J@bNXeFoSlyV4Lq(=?<~NU65Ow_9JnE?5PewGN03=q7|Hb=aaUo(0xzm=xgJ z!2y9%rHbF~z;=LCDov=RwFV#$jsi3RVH+T47h?Hb1U7eeKvLrX)OR2eU!$w@k(%EZ zK@>|4`|KG@O0Q+Xb|M92w4DKpY;NX}QX!>8N`p zwy0M11{n4-B!Tpf4m|tp4><9=-_zFCN>?O;+wI2d^|HFU%JT9u8|wziWRi=QCW*yv zas2pku3ful^Aoms4p;;30;@JaW8J7!zISz;@N;}?~DSzzW(uQx9H`=#jXQ;zO#tveF&MjQ^uzhW^x7z!~k zFdzV?rl!xVFM&>>$jqM2iXI> zFg`KyR4$j(6N!XtZEY>1XR~*Ev)Rtpr6uvvi4&fE`}Wb((<3fixIk`xUbY8=sso=)TN0D*)lg*u>AfNpW8hf@_3Ap!=VLwdYrzF4&Ttw zQ0L*phkv}Vu(0>ov13Q;i313w)Q^CllT2>%*=Gqp{y6c*haaXCi1OhC_ih;Mg5i&z zd8Vh}_v_l^q!~^ojU0R$fH^N@b+81e;P7yu_35X>Z3hmt_}bdshYlV3EkgXM-lvgJ zN*x2f!+Y<|^2#eK^{V*|5Pk^mg>S9-{e%D5wX3CTdU`Vf*Ie+q2Mi6Q0QJl2S-$&j zCojJ|2>cTv-l_+1-#!3fCr!TtSHtOadU$%eeF4_pFz11dUsYB0R}Brg4#3!0FXzwq zGd><{Ft&IU;`4CzF8ob{D;~I8SA2Xt$ocdAjE(i$cdj=A5NcZyVp)=vl{B$fj%YN; z%uJ5iS(CXrlUU3m9+v>LwQ2PB>I@9H7#wu*=%Zfx`@Qt`dg<)+qwD33?n{I?Y8QJ0 zfYQTn0xtmH{$K6f7M}utMu;n0cXkA*4Dta(z#gC*cm!yn^zYe6rEV-L`}#Vt3@iaR zfqx@JmV0yGbL+pSh2*GR#OHkg000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ Tami&o00000NkvXXu0mjfRp&dE literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_attended.png b/public/images/map_markers/okapi/log/large_log_attended.png new file mode 100644 index 0000000000000000000000000000000000000000..848530b919b7536ddd5e5166811ab01ebf15e2ec GIT binary patch literal 1319 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_attended_found_caption.png b/public/images/map_markers/okapi/log/large_log_attended_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..dda6c8968c251033e89d6e1eb7c2d5bebc4ffa40 GIT binary patch literal 1798 zcmV+h2l@DkP){ZjkwM`@nV=O41xHY&=rOku69k4B@X|7!q_;~WQgyYEfD z_xo>>%JyK4DK8WXfBVP)^7;G|g+k$2p-?!M&*u-$trv^MPHSz|NO6c?p7{xx$q|mV z{{jGG%*Ms^BKKlmC=|{*j?*-E?>NpE^Z7j1+HYBF8v^zD>8T$xF*Odr=DL|aRMl(C z1~~lO3)6SnxVE;+`au}+gOJy*wV|qfe$#%Y-09zx#!K*nkfZG{(lc}&Lxkq_+a@3X z>^B4uRXw+C0D$M8dp5RkEet~($KhgM2gkd9O=)Ze8}Hx5`s5}6PIaH8tM3g;<0VwY zYj|eY;h2hgiguTkl^t0OVA(xji~(RcH-v^h#o{POPd`s_dX(;gE{?zT5&)&K6&!lx zyTon677B&YL?ZFIrF8G92LSeM{sP(DZBAV|$w0P`7ykYOMkmvVh8SacX7_ivfAuBMXVz{FDSf1>&u(t?^7I z6Q9#bCX+5eTU(oZR{)ie3nz~;($|ZM5{*Qt-n50r9eXK{S8{O2Azo_#Iq^u0r*|I) zW}3CV^O68DV@x8QPM3?wdjRQl+68E7X>pUuq`M@*&8~Kadv5^{i$?JLfc`6&=)bSX zqfK9-p>i`nI`AR_fO+ptQ3Y#l+!#|SA`SC3!!Y!WF*(ok+;lqaF4+UqlVil=F}6Is zg-5@%kNSpn#7m--hL)@T6{f9+aU86*jwCrrA{1ZtqmZs(=8aCDQdNIw!RF=!$c`TOcz+))Y&)(7~03wRDc9k)v zekKtOR5dWhc&a)Mf!(%zd5&@+XS)7P7V;Blk(>_jO z1pumwwYJP!TOlHzF-CwuRg0<`o1G~+Ahsxgi1NqIL8f#ATM~UFtVd2uxyla4ZvKP1 z+7YZV7$8((W7TFV8u!c{x5k)=wRRQY&6;}v*4m7=sj4`NcWcG37j4{JNZqX*(SJA@?#t8$( zEe7PrJ=|hI;D^+Nx7oe&)>7sRK`b*LB~Mi+R5c5XT5Ge5CJ;3~q37clrV0HJ>&&o* zfv_UgwujTU*=GgJ}P@4eZ~xT%ScN5Rpj{8Bo=JYi)ll7RxR< ziobv4XMrjhqliND*6sGdo(F9rk$B%e&+|C`>f6%Q`Q~EgqNUoSV^TG1iBL{vJFD*-4zwqi%CX>15`+l2gBq+x=SC%_(K8A oL1Z$Scn}2fg|F2A>wmKT4Z{Prqy+P%0RR9107*qoM6N<$f=L*8oB#j- literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_attended_new.png b/public/images/map_markers/okapi/log/large_log_attended_new.png new file mode 100644 index 0000000000000000000000000000000000000000..fe89468cd799430030e4f0bff5d48603393505c8 GIT binary patch literal 1904 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_comment_found_caption.png b/public/images/map_markers/okapi/log/large_log_comment_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..9cdc7dc5536f8823656ee21c8291ed4cba58af1c GIT binary patch literal 1801 zcmV+k2ln`hP)_6^aVHApQW5A|!->hZZU>rGyFu^q~+$!BG)OlO`^9FjP( zP3*Bf&Rjg>@tJeh;$b|gbFt%;772+Z?T53q_xgQ%?X}lB@BvsRlc~w&a(8_YzHe%U zLg84kSiD>;7B3eHh2Cs7+qBSn`+kb&a=E*#wVM=WMy9dWHbo+lzx~$$9LISD;P}v6 zeB(DyGnhVyF{UP;&;RLt1IXoakLL6FeffNTUoMyXLS?>CD0EqCSB)1&`N_c_keV82 z-;oypFve_{&!2lM;`x03u;Vx_m2by!9?9i$SZlv%t!)mp#B&F}O=kKs0CzN&^H5dK zEE?eZ&;NAhMhjQ2NZ2q8-7pL}c;*1A%C3#=%=rGxQO_d`Lw{rOu= z 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_comment_own.png b/public/images/map_markers/okapi/log/large_log_comment_own.png new file mode 100644 index 0000000000000000000000000000000000000000..987c542166c082bbee91a4608d239c039b131694 GIT binary patch literal 1713 zcmV;i22S~jP)`e`j{Q-d%gw-(EZZNL<^&5orLM(v(J}5(qVo zLRuawq)K_gR7f;DH0n#$AhlG0gj$IteQGMG0MSaQrC{K}w1rk}K4c|!lBQ{Fvay}m zU3=Hg?s`AGJ994&Gq%^U*ElrdNOxy-=g$5A&;Oiz&K1r7(ezq0v*>>i=m6RQ|L26t z0uw+4NNu#Rm_P^cW1#8|`I`Wa0_QhNpdF~{|It(5xfAI3z5LR9Z^9S;dK(0mWk2@I z7rdVb{Ls_S=C4E8gf0JVt#K#3UC)vbus4xQW~mqPRE~E?rb%S-AgkXALQ{>OZ|>TH z&+FMVDG^ySSCYU#&P}mrXA9e!f+(d~IzWa9hQP^7)10~-<-uJWsw}dGKEU#Jr9+U+ z7TDGl#8w(xX)JqbC~T$aX|H7_nJbB`o#Anv^cD>hXI?f`Kr|?&QA%UEaG?W3AuA_!CjRNxS(<(_oi{pjTP5~PnnqYh; z$$_tT;t^TaP~4x7E=}{BcSiZ)-X63@3gEFE@Mc!Rpn)8)=sxo$355J*L_SN>-WWuH zixY94*t?UanhGqXP_D*efN2OF;Sf(8eb+%znhbdJP>WOGmaKqNB{MjMDqE7kx4zQC z;JF)IxEkkyT`kNdb9f8`ODPJrlNSIUCEx+^$Z~3Fw4}ki2n|4&>v_SIJ`LPlQl(@P z)&k8lVCw z2fP~=B0)%{^YnGq(Ogr(X&PDeO@Eyg3ew*pRaYN_ia6j*5?+7ZWa zLG7XwkO1a^B(Sg{fm_Yz^P!NEB&JDc@&s-709qrAu45i``T{zlLAh>qrfB(TLK4kF@fyTpF>YSo7WmqN(mtQ z_8&0z^!89yRkfo!o^(hX`C96cf+!(7fb+&-7mlNuLv~H zKvfFL(@^&7k+T8$$@AWazwxzI03V+HloLOH&Pspy&%6oRQ`F_kU@_?c$K1UqUFmZU zH^+(zM1Z3Met&OWYwNv6FxV9^jOH!S=*g$8H-GzDSz~P-U%k6i04Aad{rc}-!y3IL zbuBHDD=V872jPiJV$M?Tt4{dG}C9^R}G<%wzqCgHE!Fs5DbO#rfDJ~ z!AK-BH8eDIEfR^GTTlAc1hjq;*a4s|%g#+tr>u#If?U6DrKhIsXe?IS8;k9VcJ(xz z8XBqaEY9h_zy5nwGd5PRDl4Ob^77GYpD$7E@fg9@*0MljW1y#}C%k|E{_l>DkMB5g zJ;y0+0wzx9WF z&0IW@h0{S8^Fzi2OF)PE`hvCh-(OeX+glT;uP@)XZ{I73ytUrdNVL{RfcrRpe3V0n zqU&YzGa!`^+5z{>RaSPN>Dpe?Fnl%_hx1-I=Yxa+NpRPw> zQ+2@Ibm2u9sasfB_|ov%hH;oLhcO@A{6$e#->w0@=Q)z z#A41ds;@U_YcuKU^3vVyW&3tN9UXq!+WdsWm6+yItN#R%!)~&dAmF_GGH?L6_kWf1 z7CQ~RjmYrw%!UM376pJFpcCg7(}Z)23F7qjrM$6N>Fe`2h2{qEZ{RW_8P@K-X6iqU z2a%H;8g0V>000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o00000NkvXX Hu0mjfyXZ)z literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_didnotfind.png b/public/images/map_markers/okapi/log/large_log_didnotfind.png new file mode 100644 index 0000000000000000000000000000000000000000..791435f98c607a1e8150645bbb8e29a0affebe8a GIT binary patch literal 1352 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 RWjp`?002ovPDHLkV1ivQqVxa& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_didnotfind_own.png b/public/images/map_markers/okapi/log/large_log_didnotfind_own.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b9da392a38af7e88573d4ee492704198e0ce1c GIT binary patch literal 1801 zcmV+k2ln`hP)JmP3kmpld_2;9qG~I=br!nob$iuxfYWDqsjGXO4Zr}v;#W<=cj}! z0#P6WWFK^}nm{}79N_zm@=XIT12?uxU?<@F$&n|%`B|WMT^_meN9cOzAqcFN{e=sE zuKP6L&mZeAPeYReJ2pG3Y$c$U%~JT_Dy8u;Dyalg*APArjspkq^&P?L@veI&11@a~ zTH2IAX?&c_&=88-iKn#@$|XQzJNZ+7;r0A!I+W-j6qebNkEsH z*(NKSnh;1S(R9stR@X%y>XxAq=rAQw0m?ugNMVYzCIR7fQ(j8rXbn@zM3dMBWn;00jGB$EZ|YHGl7-~gGaDAH;}T~<-k zxpm-J1Xj;Bto449w{H>X=`*W`SO#kawgExY{Z#_An50TI3HbVsP)f$h-JQd}|MN(@ z17TATR?}??wonLf-&aY+?vRf!5PI_X>hl^1&8V=;1ht#}teBO^0{NOPuzI`%2Tn43 z{v6>)d+4J>bLNwi{=#5s4%{dxyl|{zV~~pzZ0?1bV(wQ%)v$5l8}yz=BDj zyy;!wJ^UE1uKg^&cY%e`E0hv*=(>)rzL7w0AMH;bUz7O;rUT1n=JUXuS%CteZs|5u zyne#RPY^zSVk^h*w-v?D12G`J0uIP(0>zcZ^T+zjQkO#Nx(sAMk_hfU?<^HFF>er1xANxf+4+0{GHk&x36$HtqV6 z5Ov)@{P7xq$=|%nOXuHE7bZR_D{$H~M$^+qeEiI-M24=4Mf{*_L!o%P;40 z#Y`rXO=wyo1(O&)0o*mKp|5H0>PpJpz*B=4FZLFTMJ16))FqS2yizDEwiXIaw`XR= zuiyB+`JNMvlI z(yt{T<%_^R0I8~4X>Km7MxzxmJ+0?1I*xR5p3VR9P~0g+|Iy2 ztGRQt76Bpe6CtXqGe4gr7Aq2o6#4k$A`=s3CMV0pVk+^t@ftNWSZHlk=;)}Uv$Kvp zdz`elJ85lo($wTeQC4o+exQ|vVe7(adqcnawGU(0!)jRJ2Y#Q5sY0}0$azh@Wsbfa?bUSGl(G&8^_z<&^;!1~zhw*CuGcE9j+C#y;T000?uMObuG rZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o00000NkvXXu0mjfk-TDb literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_foundit.png b/public/images/map_markers/okapi/log/large_log_foundit.png new file mode 100644 index 0000000000000000000000000000000000000000..be9ac03921ee139647e5da760b68beabc8221297 GIT binary patch literal 1433 zcmV;K1!nq*P)KGV*0 zS~{gjFKM|4kU}g8R0t(pOau}W8^RN!4-#VtZ^j4`6D=S<`CwF#fG;4Ru@6?N7E~k> zECdmHZ>glyD>E(A>2z*;`@k*^(@skf)0M28lbN&kzt+EQduvikrc;cgFPf(PZy*yn zsWZ)DO#Wf{){@4jvGKL4>t(=wAUq`l04|;SZQg$YFWbJl30MT&2KuIKK(Y)*eN=ay z=Bn=^{#YOJh`^{-Ul+Zui z!)5OUzHK_qo|1Pdo4r2e9upXs&$XELfmV)O zK7d#$SW~cJ47SoSg)ylCgHazx+YV8hUQV{@8CpkL85SV~^5Kql-A;ikpY_EXsjS_{ zlI<&S+cFcub){Mo_(M%uhSgoCaT~J9HRsbBZed6Si4#X65C|lag0v#KLS717MP%8s zIaPNe5!?uv0JBm{!n;waA*BIV{TIo%6%&#nA~K5nmo+prw&hi@WA1B|&whbWJiz>! z3prn3qZ*IU0W07D(v_wuwW31K~bghAe_2M20z&cb+}S*8G>zHJxpF6+Guz zO*9_iO2-9);UPTf9=yIz#j!L1PQVRh0hvlO0GBez23S(&Ks+iCLZTTY5{XeavNHR5 ziqq#a!|EX#k8rH+Bij9qQGt6B;vNTLsxb|Z=0!>doCXj6k$&u& zoxzBYlP#YT6_H24TYb0DbRCDuiPzVK$C@+R`;E%mEY%NYC=5OFw-H`|2nvT_I#cFi$XY(yKEZ+Qp0V#FBt^i#s9Ha3!Denak zOKHHC!X5MkdbxYQgCcVw4r%93e?6aFspO8Y5rb~PX>l<(Ybi~gEp&8y*;%%0lyNPg z0;~xYpsP?sR45`TbHHVBv!`S~M=l>=UC~D7WX@;A79to40N^mEV=>sM|GSZ|YQN=R z#bGkjGLt8*L8(xA5K-|T21X_{0HAF4dc;aWW$ixP_8Bb5Uck(ZSx6yiy?dK$EjRJ@ z^l-4^Fq@WcPT7eSco-N00_qtC;*-vTH3b`3vV8@o>P}EoUxU~81F?v}MMp)-}kXFosJ+;ywFQN=Wt03J|)gFwIXKBT@86HUYW zK$Cjr02$r&J+0N}zH`mW$({4Yi*Gsr&foYxQgx=v-`{kv5$FVZ6umMb>3l%1(tx5~ zPIev`0lHMC_5oHQgf-9{96EXYk9{u~ nr?rZwbvM+e`*u9-m(za$gqCcb# literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_foundit_found.png b/public/images/map_markers/okapi/log/large_log_foundit_found.png new file mode 100644 index 0000000000000000000000000000000000000000..48888109c8ffc7777f2addf75dd9a64bb7f43122 GIT binary patch literal 1862 zcmV-M2f6r(P)lr(J!tp;Ku z6_M7WcG4KD7;J(vRRT?u__#@^NE1SnHfj5iu?=ZZ#0OT?p`y@;cCZ!HQkrC2LrdOY zaNZnW$G-R4zP`CW&psrs+7Krh>po1{k*=ylUoL07{+Q=l*xZP1F1t5#5*nPeg|d!}vK7JwilHPR_=!&K$>LIt~E1r*2n1bac}I zPrmT|^J@i$E34JviQ#Pw#^uRRz+kjDJP0FgoGvXXbpybu{x>l;H31Jw(9+o2cev#V z2Y}7YLz@NwfUe`etyta1%zh$L2BQNQPF{iPDZxYK9k}zh-3kC)9RCOzmw_GIb|4;0 z*hgBA24qeqnE6s^X=!&MfKAmvhEo_#Uv)<^W9W^3g7MTKh7wos#|ytfCYQpvHiDij zrvU(}rv%?^{{h^rD9L0p;`8}lTrc;AH87a!$GbBpu*27C-Cxn+d*sf;pe2FxLuWCj z4dbQm7ob3eSXs;AJ>P>!7eUu`{piu7>mI=k9T-gYx@acULvTc5K{Qpv-_z4$ ztqX8bI}5)Epwbh@q&*2+E`hk%ww;s|-G ztp00%*NI3lv#M#@ngE@ho$EVr)#yWQQ3JA^g~K^8`1)91;?vlpwcn|(4cCjiI-8Jo zOxTWtv4s&k*VQ?6++@usXL8!qPNt`F9}z!%n~}%8-#+_&k0*)o=_CR(C*< zz~0aUj?e9%V`eM8lmZw?FPYYB7hatM00uxrz_ z6#y!UsEUXJL{vdUerEPFv$F0MG?lg@qEEs@3f!b%+L%O7prW0Cv5%Z}z)Ol)93>9<9N&NZq zH!!PDK?nh_;zfN~BfeaSU{;IaK+D0E*$g5QLI`yQ#JBQRm{}5$PDHv8!YWt;#i9g{ z-}MaMy7C9?skxe=Q^H8+wJ$Q zmntu=1Belk?smJaU@*8o008U^?Z!*{e~Ayi=*FdqPqAQJLT-ssu2!J^_Psc8@Zg#& zUoFnemXtCfgwPd5Nd$vItEZ=DV*mgsaeHy7`7s=7erz-0H?L#fGu0LIF933%$#Fp9e|!%OwXHHqfYvzvSUk=0D#NmpUIPNpUli( zi$-#}TtZ4Y&&;#TtTA((nP-?e%FNRMA}*Ip3xz`FjpA!M5DW$_P1B}q+t!)63V`A` zjz2kWnD4*W{dh}bi|>w5qxk6JhfZe7irKcEkW!8^^B6OySFTzBzzyd;5e|nFtHsxJ zV03iU*|~EkY}HaVo8J?byQjSO|2LOx{QG|%% zL=<7V@~nM{73%jNon z5F`2hU7e?p@P+_u0co11R#a3x914Xx2L=YNNhyb1E>~YT98PRT>^}m?L(I?52XeVw z6#$ipqBS)&b6-dJYXRgTfaNV&eWd>1{wLeN0JX({b4^ZUD*ylh07*qoM6N<$f~0+Z A*8l(j literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_foundit_found_caption.png b/public/images/map_markers/okapi/log/large_log_foundit_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..16b201a07701c99d8f8752ce771aa7d7e61c0a4e GIT binary patch literal 1914 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 XWnpA_ami&o00000NkvXXu0mjf*Xw+S literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_mademaintenance.png b/public/images/map_markers/okapi/log/large_log_mademaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..042801f5cfb63818d0aa58b632fa8813994a4be7 GIT binary patch literal 1381 zcmV-r1)BPaP)R)J{lVv?|M*DQbH&c!e+A(kH=@VmZB&`l9BnqwZe2N z%gkxArl6~<3#Ze`xpU_zDJh|?t&RHndV;|qX0!QjSmWt9hprstX7mPC&RVu_d?f=e z0eZlo@>~&?7EgJ>2pEk<%FD|!8jXyMj8IoshtuiA@Au>JcmPPG6CAqoDQSI@wZ&`j z{e3wT5iMW>@&KDKt1z?pPY*~7M!@U!(%IRG*Xz9-_V)I6Dl02FdEyv%8h3JJwTYy| zhSTC;V04&r`@O)VS*Kwf~777ki%l0KLINdh3UzEglj*7fIe3LV5D_`IgJV z^BEu{w&vaCl@ zr02J8wyu9}pVe-+&x%+y8dbWF@0t1W?8WGOCousY6`oHB?_(+{zE=khG<7`dZYVu-duooBw#zc4(RnbiVw}gd7=#|9| zBr)KIsMK-5B+Iht%+=Vm?b{>o@7q|v+OYC*spY~C(Vsd~J;`M9AK)4=C_vIG=}n05 z+!Ok21QfwEEEeei?da&}t-hOO>$@%;eZ%Fxpl>?;$Mxai>)isp6SyhfPtDQ)q_BIy zvk^$E+9$J@M^61d{B@!Iw@r47X2Y3|>C58K*#-=YN>9xJQB)!{zt&_U&lMRbQjRCiEB?7qfQ38*z*D?)zX;5i@5 n=aE+VLEQ~C%Y8du_RHzN$wLEJG^?|b00000NkvXXu0mjfi|UbA literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_mademaintenance_found.png b/public/images/map_markers/okapi/log/large_log_mademaintenance_found.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e624eb182bd38f61b90a2d1bda993afd54e979 GIT binary patch literal 1835 zcmV+`2h{k9P)}<%k?beOt%Dpys z9OpR^=>|~MYvpqJ`DiqnTQA?bm*%!@w~9!&F$ULLKtvKgpYQof*W6P8%d(yY7)YMy ztFJuCt?URQ(&{+Q*X|iWp-|Z4ILKJw5-wW9~T4H$~*Y%DISqx=<*5TSShENWv?Z_|EU2BU{V>uxoSoO6ur_0bYFe z_#f9wjK*6-(__QiK)HD9EfnRz)D=~_fyeiL(F01V zI=o>3fTzFlqlVREsu~fI;85xcm$Fv~1!~wA?V)2!R}kRBjWeXgVRJ_UFOw}jv9B*? z$|k3(f2pgh``vl~8=3=ygM$nX4*D~h3=?xn0NmR}elzeYi{%Awq(|s~?-T%`Kn=$p zehR+^gZX?u84icPRY`k8b6{+2jP~|+Hxh}2_i_No&2u^VXJ!jCy!`g}$o_A zjuUl*WNh2+>+7qy1Yv^}IC}Ibj^h*^$8lrP7>~3cp{sQl02A49ilun~jwC+Cj^+m` zdnI%7f2%@ z^J8?ycM_B;3jHteht?pa>RKY<7?V@urfz0~|_!Zu@FY@~E%M{D=^tV>CSQDbIF3Qx@ICZY!3pMS?z^kx)qf7b(f!gIt zghV6+1V!X7&x!!^w;jX>Ee*|7*HrPtcV1+%CPXCCz~sa@;RVC-NGHD9dhi9{`ujVs zh**|og_c3W%b!72H6mh*h;3PxTd@U=RZVP<>|}I$nD*Aq#Oh)!EV@igOj2zZIUbB- z1**YwvBC|Q>A~gw@cj^xfU4eJJ}m(*;98dD`u+aOEdcn$eUI`$cqbz_Z&EB4Nlr{s zWomiylV3+HKPEE<{%W*TgkW7IsS;oVb0T8<{eCwdkAE-#z@fIo?1(0~GCV{r5uV!r zB}4+~$NHcuhPibK%}=9yKC`a5s=CIQoQT-LU@#Yt$KC$^{>m-5GY)t5aJaK))u^D| z$0}a8Tz*GYb0U(mEbE`ZGcsRCNMK`h320Q&W?3 zr}>%yyLa!VR4UCIW3s9`56l>2GHJJJw(N}W*taJUkm|U+d-|uhe|~mqCYQ^lj4`9C zdQDZwj4`)VHL0p8U|d9|eLi2hrKKge+I&rb(a}+F8NvhRMI-}c9mkn$h*WRts5fn1 zc0_;i+jIGW!O5G(m=R;l72t-5Bt;}6A{n30H)&Z`J`f1x*1GeRSohUz^@Bt@oenK7 zE^hh!;q52F)mG!L&Zh?R`TW&#xjbN5*2qeKSL>{2{DA;#0j1OFP(wq*k?qY^@1NeA zx^9da_W67REiEm%jhOvM04oqPGc&Prx!eqdL?pFo)28VUWBj22Rv=)hC99Xz|Koo$ Z{sDJLb%ZFn7v2B>002ovPDHLkV1mF+kO%+( literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_mademaintenance_found_caption.png b/public/images/map_markers/okapi/log/large_log_mademaintenance_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..570ca3ec2e8096199dae2e2dfa3a2f96a014c564 GIT binary patch literal 1914 zcmV-=2Zi{FP)O6FUh>3?VcSsuDn{ zqgJkp6hT2im84QBC=axKsQ3d~De6-zgy=o?v|XG6%bV z4SM?Q$Gv^X#|dIJ@%sJjR$ujWO$eE%VgjpE6aP1fZ?)>ONG}b4v#J z?f&mwnQvfneTws$bA&K_srB~h`)=85 z0jsLVmka=~_wipwuI&qg0LO9Yxp;!-|8bC5q>}YbH?TIj5rD&|4{>tnIFX7N%VP~Z zeCH1$YSmNpbX8T={)GURvU3jxN#$iM1p~V0j#xb*|LQV%WvezyPg06BSN+~ z$@0nuKrzNdMWo(ZyMC^25CooxgsBa9qneBOz~QckC%Rh+C-AeV`D_A3VtBDA zRaG^lGb1EQ%6+j$%)2i^P@Vz6h)Bp7Q*De{W{jy7k!lf%8)Kp~kXBW_MF9%Fi*aCi zT|Low1;2mqX}nkki9{W#)Cg52<$=U?gyJzzS0YWq7$ce}$ z5y>rDg8JBUS`+KJaH*fBhE>#5)==`UkV>V9=8N1PsYAk1@I9om4l?sTdLa?vO3kuhUTcF_z7!d*@6v{qivz{Meo#Ui7r6cskkgWG?I5eJCuX~l{a+0M?+g)gFOV@GQ{J6hYXS(}62{H>X1XuJ>LRII6ChNZo(RDi>{Yc41PyWF^`_d8r z*y+nTYpvyKx@V2OnU!a)wX^0!v#FoeaIOVdxpJjd)uOf5S5;S4-HVsq@d(9LYifO| zTG=K5rQtX2i!UFtul8i7JkQGoL68oD;8G9-V?hv1SZh<(+F@&LpQ@e~k+b1&INR0L zH9gnwV;NYrYE?Ru$#h$5)4uPwh)8w0TweCtyA#uuvBO{6+q~I?k{jrKr;F}$rBbO> z%K5%O5ClQ5wKfBIGYwVEscKq81|pG2`qZgY*=zkimVy5Met-4q)uEZm6RJ9*suyy( zT;HuM?o7qazA1`!nJDe$-lf=kAW1p02J6$6r2{N{^3^pDUNkoz~hTj^hl4LZQ-J zjbt)enp^Kr1u!2_DwSH<*x0zQt*PRHu6IUy%jNQMYwe+mii)A7nEgipb0AuP%|NxP zzSr2;`0i&h{!9R~5aZ+HQQ!BY*B+_=$Nyyf8^A}q-hjz20000007*qoM6N<$f;)e@ AMF0Q* literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_mademaintenance_new.png b/public/images/map_markers/okapi/log/large_log_mademaintenance_new.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2cf664ab7103bb670658ba04ce5dbacf0de543 GIT binary patch literal 1967 zcmV;g2T=HlP);6s z%qqHJBYZH~M5Ft`U_^{jvT97!WL>k_Y(j!2yDPfuiWP$ z+e<@318r?>oIZUTU|A6V{Rklz)G5p9xNqM+6h&cVWQ3=mewuUV&Mi|BMKmF13e1*= z1EkYwjvhTaOP)w1$mMcGA`!~vGE&~((^5)`W^rDBDM3nv>#}c7@c`-!$OD(4tE&r5 z(>QtZB#A_V3l}c1W5*6ACnpI8gR^#)?J{p%dWC!XT{dfN?A`EXKw{Yl$H51L-H9rI z;}*mHwI1kz-|r`xOyc+Z85|s>y}cbx)9C5xp{}kD0K+zTNuy(Vi`ew_5cnHfif zVW1cmA)owjPq*AF_+b>?cNJ~o#$2*QOar7nLUKPNM zMbJVqZVufh8C^dMP$;67%fx_>%^B7Nbf5_20R4dgEiElLjzc<~MoNjt;~^f8bG+ji zE0uA6v&u&~96$?K(?58dxVnOuw(qY1IJTIYLM@fhfVF^h#SJQHdh($$0MOdnO8we8 z`Z7JFR*w;zc0q z!b}0aCAVR&Jjv^wuW)AKZ@kv|6SAcYM^}d_hC^tvIJf$H(TWb=imb(R`WIl8T>wYu zWt6f>2&i>S%nitZ8;~|oS`r{{i1=_Qw-Dbh@9Z5v(v7fG&OLtQM+v|gm|<}Je6 zDGmfy;_+31spE~U#O^=GOm>hCLOKXn)OO>b8;20bdnPsQ^K3@nI_BI+Y`O3>b9*jAfX0c%-@5x}0!d)c#j@BB*D zi}TbsAJ%my;zxix!1#s#`28&{Q@=T_Pcx1AY-c`lnM$P5f15%`^K2K)(BgeCzjrk-AzW8j4xjoH8ne zU9_ySSuB?I(Q!F8HbF0N1Ly_rxo$XfCvhJjA%j45ZPWg+VHievdfG6|f}JlJ)1OEg z(QvfLk+ckbLtoj-qmouW89L;i8QIyfo=o~#qD%E_RwklXcXz2?14J(thCr^Mr@ zIDR@!Q^SB1!dG6?B+OvQskWS&m?>+8inHF|Ds zvtFo0fE&!K=!eQf?2hz;J=s2Kxg5Dt|Trt-7wa_Vo1B4-XH=GntGw zH8oXTEEc1NVT4T64A{2q1yEJh^m@G|pU+neg+lpAB$CrKEz{W8IKFP(y3t@TcnP?~ zkhnXmwj{v)MqZ!}h*P;l#DEC*&vmcc(xj5rX3q9Ww~Pa03<-0A+9Ck|0n(oruC@W! zY5)KL8FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GPWjp`?002ovPDHLkV1j(> B!4Uue literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_mademaintenance_own.png b/public/images/map_markers/okapi/log/large_log_mademaintenance_own.png new file mode 100644 index 0000000000000000000000000000000000000000..f2d881af693996477cdcc1397b7fb7e95fdf1138 GIT binary patch literal 1827 zcmV+;2i*9HP)-K~z}7y_b7zn^zgef5-lOjX%fnC6_vvW{uY*Qqm})9b2gcg?~!b z4JM=_T2+7o{ILsya#Pi!!X`8!6-`}K39S+us6d6fsG<`{VYILbyeezbG+|ks#JRPp z8|PxjvE%FE4}ZC}xs6R6>6JenpZ7e^dCqg*^L;|{e{AwmG-cJZ3RDA?faPOCC4ey? z2+VIba5aHy;6g(&b%!z_EyA3aGi$EX{pscKnmX;Q7 z+_(X-EfNnmA;cqny6q$$KYkpYPDdyd;^4u9bar-bA9Gc(5?d4S`~6(HbZMEn*Xtz` ziJ+<~$z&3_>P$;1iKpXh@?}2sn##sip^)zvn{GjGZ!b=#la7uKyk0N2Zr$R*fdkCV z&0(=vmgP)llU%rcj{Av88l5d1tNS`aKo)co41i5rs1C?!k?l zm^W0Qsi}!Ocka;C)U+&nS63Ge4GmmvzrysT=lETPnY2U2X>~AscNCv}_sW)lF$GTY z1#YRO$ydoZ`9hW0kU&F21G!udzu%9P5=BvPyWL!Eze1@l%lGaEl|WVlj{~zBnR&pt=`oBX=Vv*L8P362DC#&i5YtwFi*DrAyN$3i4QpN0a!rG-N?q**g$7FgVrKr|IW zr-#bYatc%{KYiy%BvdOdX9>eY0UQfCe&VdhVlPIo7~tj`TBalmBAZv(s)3rwAHTGw z#5}OD=@yi$mF#h~&^ywFuWA<_hns~&oT1?$w%K`pXf8!D7C<_I!BI+fq!YPJ0imr_ zudP-Bi<QIK&0++_dkMA_5cbaU|Ik}TVTfeq7cTtU;X78fPuGO=G6=BnW^skDFvjSWe;M2 zWHb*P*5)49q+iT)(?mSGGG81R__@Ur&Q(|E#Lk^k@Ac}uJ9b!#bgKUS@gc?MjNyFj zNdXY;zb4POz0SSggTb!#q+d%w%5y*+fXrmFi<6V{nX$37n3%{c z+`E?zg~QI~aJcbr(ugcgSEKW zT3cINa^%R7XGcdz>&~1xb8;(M4|FoaXZ7=~EXk&PxzWVE|JV_{yN= zFQ2b3SL`U`Z%?FL(P$(A@2N0ofw%%00n*;mqB{5Qce$IJi>z+9>G0vhuOmeJqc3E6 z0%w3HX=@Ac!V97G+gAJq7>NLAM#E)&*~EwbRj2&508gT2Jpr1cZFZgk&-~LZKMr;|YSn1Oo#J z0)Z5RgDJ+xGlauA0NidJ6%`6KHAZ|sBac6Bp}N{aMTLcu5*v!LROUZGh?APxHz1Jz zvk7uqb_aj~Z1rm6qPRLaV4gdfE8FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GP RWjp`?002ovPDHLkV1jOFWPAVs literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_moved.png b/public/images/map_markers/okapi/log/large_log_moved.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a8c521317eb682989f9a87a37ec2b180ebe551 GIT binary patch literal 1299 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_moved_found_caption.png b/public/images/map_markers/okapi/log/large_log_moved_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8d90cb10d0f3ff6a2612577edc81f5e55f5961 GIT binary patch literal 1813 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_needmaintenance.png b/public/images/map_markers/okapi/log/large_log_needmaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..46611eb5cfc4570bab72fbba915d6067d4b39989 GIT binary patch literal 1205 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 IM6N<$g3rMgSO5S3 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_needmaintenance_found_caption.png b/public/images/map_markers/okapi/log/large_log_needmaintenance_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d93f4ff0c89e86f83ee0eda131d6157fcf88f4 GIT binary patch literal 1694 zcmV;P24VS$P)h%>`}=&~-&Zb|zfl{nR4S*ewfBxya{Tt_&nQfev9IUX z02pJ|&ZU=FjJfao-HzjIto?Qz=ZSK;jJ0;RwRTOURbDv!V@gvK0IYAH?n6}_STMkg zd%tz#P7||jD{UNwi8z8c2D(sHKDX{M!W&cj-MV_>2wpn&0`KMrNMQNY>TQ!>d1#ja zqN=?M1_0Rg{IA?w$Kp7~aUA-FPVmRS@1x#rV9k9S=*X@E;PAOaoEq%Kt*d8g{k=T9 z{d=y8hKinRY;4>+7r=shz!(F-H7|#VP_C4C@yO5d!!rNQ|C0l6{vLpOw}IzA{{vDs zZGGP#Pp8w{=F?qN4*+~={S%CPV;njEDmm{eKY8tk6sHO(3c#~FzDs-4{Y?6mu(Pvs z&)xJEoPf2KIF5pd#$uyZ6LGbQhI?wHD9w zXl`z1=eF-~t(+t8jR5fAimg1h;Yk3__P!=3PMjDAQk|WhsY0QUs%d1i*#Mxct1DPE zfH8)?zCL#B*g;ErDPMnNH~WwOhPs5yH@ELWL;&dj$58=XV@x`q&o_(6djR=-J^q&3>;x9cagE6gGWEJo&NrQIyyRV-RTqSc^;)wX$Am{G0oQ6m2n(< zx1{K)Y6Tb<5%2B*aTWSr!LgRcmNu4*PSShq7|ks$^z`)9L|MIhH60xt0EjBq+Ke$~ zmE$<5YNV=>F(y>i3BXfTRP`=B5Le;MD>z9Ple!0@kgcs#l*R{W-1_}mq&SXq(=wd~ zXtdV0h)8IR5g=04imJLZcZvtNa|6UxICB8UNn%nNh(bu#L1~10?%yzT>bcE)8USmI zNmy$$KsaL_0$6J+B7&+45Y7$I{}&u5fk`(_o4YPLK7=|cbnO@B4Q{3q#u(QalTuYN z#-OT+neFh5G1mZZ?u+R9WlTfMbP~xrv~U%563D|(gIUxoo-oE(rXQtHRZFT`1jenk z#krN-3>r>BB85&2qsAgzo(6k+K0rkxGASY>syb|~9d=!} zIPX=w|EGH*P*eewM?d|LZGU*DO{dd0%?rbjE5}}vo;UmEG8a{yRMl}+y`rjvj^h+- z@4+1be)00j$CJtAQ;9_40c&lGwYG6!aAL_bkox#%ci*&SBd7i#`~Q42I(}} z$zS{Or7#S=IF5619AAs$cs!2d>mo8LBEuqbQB}_wWBQZHWU;%udvdnlZ3!$}wk(&= z=X*pX7e&!3V@#%6t+pI_>-uCv{oya}TCve4vTHeiwws=TAP9oMi=yaq9LMKHB+vB4 z69TBJr>Z$)%w^YgbEi+AF5c>QTLPCZU5b`3U!Is*d|g$qs_GTb^Deez(wkQ=wI7Qn zF6+V9d!o~C4~<1pbg^2kz7faqDd25Yy`-u`s(Qf~^RDAK?+h@kTKCzj=d0CfuZSF~tE(Gah}j1Mm<6#4*a&1)^Px#07*qoM6N<$f>mTWLjV8( literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_needmaintenance_new.png b/public/images/map_markers/okapi/log/large_log_needmaintenance_new.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe5b0a1ec6b5ae6b37c83f4b7af26f548637e12 GIT binary patch literal 1805 zcmV+o2lDudP)@hKD_N?AVU&wqm5w8SR<#|Gxh>-+yLS$Z7t6Eg{$Zq^%g&0&PGmQ1uC+ z3cxsU9k~Cfi7N@T0j~nlPbuFt@DlLvtrBPjqA$Mq<(5wa{n#@DlW+c>{lELg)(I@j z{YoJs<>#L;CvH>a^AX={uC|qc54UUAt}!q$K&ez>@7}!}K74r1oOBkSW8>c} zma<*&k&zLGhle?O^eC}djERYfEq^P7Skt$yK!1Nf-QC@!QYkb|eMOv`uZLqNRSdiWtsIAT?1685ZjglilX56 z`^jdrBoYaFdwUT=Fg-m@AP``9c-ZrU#C8y_iw=anL>0jGy6HXbZF``xv5~Q{G3x8< z>FVlQ25)X|M%Q&Odnrs4#k2_lG2pX66Yv?Jj>@JN0s>o8z%me*-X?eJGE;^9eCPPn z3=IvDNF-=$Ya^e}bNTXRIy*a;3FM2YP0b_FlRtfQsS5Xy}hWIX$ z6B$0}d5@-8oC_B&VB0oA2s%4EX>V_@5O5u_xQJRR5e1s5n9lN~FHqT@x8MP*ggE;e znjSz4N5Lv{>~o9UNnN7uTfeGIu`GN(->T1~l;rX#r7{sSg(!_{=0 zZ@vPGx+wwaBBYD(Ko!piB`W62068GPaTx}qxTQSkRoHjOaTN{c$yY%2Z3_NyE*`i+ z<%pgK<~#!Ch6Lo}Kfqe}2y^s2PE{jL_s0UqlfLX_eixYa6et4r#vZ6m;2wMZ;{ZO~ zmK=W{Orz4b$noQbb{*X83LL6sJT4qn}1AeKN3QF?Ag~= zVT}Lf=lt@WKRX3E>-v14sg*}N&&ap_^jB%9MIxbEJCjxBgm8+sUABtF zvN5+H=jZQn1Gov?0Pc8dxGR%*Kp-K5Kuvw}g|KOwX1P!>O)Kx@N@n3p9cCmPDRT0y zclc@B6ZjKd^quWtBJYTJlV6#hYb-gU!O-8Vbr~wZsJPsyGldDIo?0tM=~}k zh0x2plfnvy+#1`htF>gku-&K{kH`OW=+L36R4S#MIdkUfdf*iT3E4h8Jp7fO(~2^O1ol8@G6t7-+jeGhcB&sZ>Hy?@Sd?wLRA0FuDSdNsPG z`#}31Kw#gPB(p1)x2n4H{yTRlMMC83>#z=daVt^QZyGRt@ZiD0p3_&_=Q9oJftFFT zYu{~qtq#bR9h9!!#HtCP1mj3e#a<8m!>hZrp&MV&XVZK1?>>ES5ZLe^sF2gEO*lCC z;Ss+!=R|_@PBfBs8tT$cV_i;3o@e$A2vlCifCGkM92g%TZgwujG#X9E1fO%5FT7$L@f&T%)f!;I}cs`;4000?u vMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o00000NkvXXu0mjfgVJqL literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_needmaintenance_own.png b/public/images/map_markers/okapi/log/large_log_needmaintenance_own.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc75ee9cae19031adc7b04e3dd9bc66ecc45743 GIT binary patch literal 1671 zcmV;226*|2P)7ge`j`f_M+X@WwlbJl`N@|5^Zck@FJ=>eW)ph zCa&W)eP}V%(4s;glDzmWSdg@#v>}0#m_9UymO@QUsYP3d7Tnmq*ok6f>r%CmL68Pkw63R3Q+t7&36%a2k6@?fdfGCneRUR!WV)5 zq4s&e&;H;@ZUQP*sNSts-Alu*ap%q*Zr{F5Hk;+pp+mH`wr;CQf;YbhFDd&49~c;* zzrUYj$Bt1|RmIrY*q)yiLTt-@6S#Hj7DtaBWqNuVRaH54>eRzAHze!%XbPC7iLUGT z{eF_kBsDcP2qBPCa^b=SIy*bpYNeG9tYy|Vq>42zV4ogP6a|;d#p2>3;c%Gi*RLal zU}9ndx7$sBe?P6Qtq1{mP$W13pFL3pFzw9QS7YBx5DJAD8X6)P4ARolvIgGR*odZC zn@371bZ{6Jcopy^paQ4_N`Vr<3%K{DfSy5g{hs8f-Ncul;#)6%hu+>^!r?HHNQ6`> zMR#{M(P(s)0BO*2P=YJ#V8`W0^`U)rOmbf?B zMd>$xZI$RcPN#FzV^T`73~J7j`T&r(!PCHkO=bzu3KK9^5Le&Ap=zkU5a=1uJjnZ_ z1S3Z^9ZaPzk~R265S!UA`BFeX32REscMzQ4=5 zN%A1_mcm|p#wOPG(`_Y|faQX_Kuq`HEU5w`3z`>WY6w%+$Upx&D2`pNBds-7Y*5Aa zK^Dt=3qTS`72bxPGR$lWv?7d|VN69O|Bctd;oKE`>s)N`3@{JO0{3kKxq<}bksqTc zV&n$@NxmpV{<%j2$CiG@p7{(gZ7YxljKUr$31gmo>rnu=#;W6IfH;s?1qb9t0-4pD z_8%U}NhyVC=7o?_yzt!Dl;-EpQe0fT=|z&sWaNMUbe4|4U)%B1GQV!PgbhB8bq3_@ zW!ZENj0202i#`8}LDhXIUIf=NIM0pDdtVVkYx&-rn*fI2e}iBCs>7J=xtCKxI_#zZ zPFP7=zzMr|+?GCTakIkl+IqhKQkTwU!cRs4=y@iDcjEJfLu zpAi7b!OQZUbMG-Vn3g3aB__e(0)GE|&f&QKK-b6PQVuP^9Ro&yA)7$bmVPbP6_D~V z;AGq7%dMGAMxC3R)8^;rm(_H7wlFFh7d|Ve36UOq? zRDLFrC_9`;JoS$nU#Rate=I65za}sJwbLveozM-RZ^r9#jg+|EizN<+;;*T3dMhft z&CSh~Cr+Gr@$TKbk@oiXGdqC;2r1>afgh1fX1RHDj*A!PUOj()NrG5SC%EdMsS2Wh z`}&hLY5+Clg8tZduV9zP+RMvveJjDt{(HBAjBEl>;(u| zKRykd1itd9a&C!_fj=We&)UdC39J`+fo9+_AdK}vS&H@V*~_|b4A$T43&1^K5*Pyp z5hBg@-rI)$2j^aD4)|^d?*IS*8FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GP RWjp`?002ovPDHLkV1lp_9IgNW literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_readytosearch.png b/public/images/map_markers/okapi/log/large_log_readytosearch.png new file mode 100644 index 0000000000000000000000000000000000000000..179e4e1b930c65b4f565dcabd5cbbe35ed39cf4b GIT binary patch literal 1383 zcmV-t1(^DYP)B?8qzq?j0Ef{7(U2>4)P;)~HI5(5t!#0M^K8XpV^AxMZmkk~{GcmcEq zw1Lt{L2Ap*VoSTg7HGTO?auDb%sD>vEE%A?Z4uLxeA&tDne+dD_wQ&@O6GDI=?6{I z{x^_pO6tt^8T(XPvYPoKHKpkFb*VVMF606&(?!!1)%zJUZDJ`w&#*P^_nM|< zl&l0SN3ypg!tRr!^oElN$06m|q#TK5+w_K$>^?clzO&=lV#-L@GRVvIM>r%>4slyxTQ*WkbdN^+ZHq5DN2dbUmE^c2{Z7kD;Ns0VZGAC<3oEgOgA@|! zI3z8BX$frGMv6&N!G#qZzcxY7t+*T906ajh60hsoP?D38z|p_P$e9-)F2Ec&Daz9k zLXfa+Oj}^v4n=u7W;B5*HS~D_zVC^s$|H0j4=4Z%mH3t9tN%QJk&(cKp%|WkpKy4b zs(itcU_Qceh?y4AxP@(5ED7dQ>2(N)qj-u6=o*Tt%0~_m07`%|pj1gQP^1Xu1Kx~j z7>OtFYY>YiSXMZ>t;CmuXCzE=%MMgjp3j75{kTrb@>LI^2oSyoQVvhw?TgoN&)2%>%-kywgiua-tLl(uCGTmY5= zpHO6ySz};Lou5c(7+Dt zjK?r8bn(I3dTPpi57(Gdb*z+xbHYK4np8z7NMVl%p#f-XPRjH3H>l)dz?y!l+t+h^$q?vpRMu-0)Ypz#xzZN@Q;Cs6Gy%?r<%kRxT!QBQQD^iQ37b`dCfHw z27wj8eAUxS8eeW{dT0Bdrgxhg3f%|?JFidd-TC3wOTQkyqI_z*z@xwbFbE7O8CCm4 zwt-|ExT=0Df#S=je(L+SW`0p+>DC1s7FQGibltO4tzR7){rmT0SAY-@R_2wipc?^( zl|+^4<#ZEK0=T6j^$w6Hgvje_`zChCAK0;c=SMZq_@r^{%sI3Fm)6UcW!(fW0sklv z$5nb$>YPVRpN)W2Orz?f96%3+Lc`TvZ4D>RZ+fpT*6%s-_0hqBfq@WlTOBP>lKi;l}&MxKaxU1s1&k|DsKX7T7!R;tL z-4xW;);6zrY3(P#Tfj=ybPV^DGn+M47ECw9`c!u00(Vt@JC8fU&z69@#_P)Dj}1QS pdx5L8iYIk9)aLqjJm;6we*v1?KwON+r@;UK002ovPDHLkV1k#9et7@@ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_readytosearch_found.png b/public/images/map_markers/okapi/log/large_log_readytosearch_found.png new file mode 100644 index 0000000000000000000000000000000000000000..221fb56c746e04aad04595d63f11e7922aae6c43 GIT binary patch literal 1809 zcmV+s2k!WZP)6yy z_dZ^a$1~sI!FJU+UdNR1fW(nT+L=9b{=e^k&Ns6Q|AiPE8;h6A<@TlI%8eFxUH35& z*$$wpr^7IOV)^pr#aj91Mv9lq<#rL-Zmq=&CJ~WMkx1l;#qPPG0LGZ_0rU<3gYP`| zH7*qT5s`M+bsxE50F_E*tLwV^T-V)KsZ@5%U3XpgaS`dvPKAAI|v#`)J&wLwIjbJ>%e&K@BitLM)8+u7Xl5eMMS!M{=oFR^}Q2bBu`mu}mi zwxKPm>RYK)>QF6!CC`9}L@Pe@Ud}R9vJ4d`c)9O+rou@EbN%$3I0!&IR?ioAe1oVu zPN`HHP9~GzU##wuX5d0uxhaJgT9S8dxF6qEIC}OkWGWeccKD}EPUQgwVDIe@Q5UvS zE{vD=@87@Z7KH0Kpume~CwaE7!h5-}TJb^;;DL>wVnf>|CVl1Yi-TM!R8U~|rcct< zdMndGXb&7X(6f}qE$YBaXR4ekC?+a^(w`5qsid^GB_qzBZJ*=NJ5Q6Tj!>CaZcT6D zuJsQ9@b;O3Y;SMxxT-qc-QDqpYWMW?c#8rI7N$8iTxI3P7BWKx)B>U9(4arMw=3Sh z!bv-Owtb$qI7G+Y)DqpI;-F1H{+cX#*V4*cys7n4rlS(uve zNjOQYTKo`R8?ob`Zn5oao7S0!@BJ=L!XcQ3O9kKG&{CI06~Ix|2H*G7^J^Ppyj(6f z^SKtlyV*%%iDl#qKFxKORp}_!hE%7f$yLLk=S*?5E-IcAF$95-ofhv`y}3~U6hvf& zF($35t@DlsYi-*1{d5on@tO`ycvCDBn5_D&ua5xGP!}Oq&NE#uk!W2O0NKOmOXj4l zC$>CctJNt0LbXOj8bqWOKvnH*Sx;4cpe!O-YiqY45e2t8jm8}MGh;vtJJ+Pxxh8eB zQyJI#9clc@fTZ*O+uZ<3pb@Yl0^rXcRh?;(Cn8?W7Hn;=#~mx6DTj=w{NbPD*W~>E zc$Ta$Xv)FOeeoP_Vfo_8*n z+1c3uz?(xQ`YV=b*Lo@?pU7C2`|s(Ry;~3wV~mMgYn@pb7qF^oMWieuWn+w26QCs( znBDyIyk_1$(wO#d7L}fq}jb^3+ei6S3X}{RXuBM z(HK*99H-dS)a3Q_^jseRAf1Tu;I2*{+|{|1^s8dlepgkCB9b-6ye|$lhVap+o-d<{ zRW+)x>+XA;?)A-1Jbv|4H3$M;J~I-$b>y&LLp+!jFN;VPC`Y4F?}Itl0Q~vcC%*;U zAtI}dF-<^nwExsf+4t~GpV@r#Rr!DF9}f=x@~Ps$TW^dq)8jc|%gnGP2hq1yvnZ)huvHL`EZ#NUp7|tvFwN zL4bjQfnXLQ0478v4-{P2y|Tgt9n02kUs<|vPG9MHt<-<~?ICMzzqR%xFeoC!B9a%8 zd?XUNVvH%pVzJ^vE1!#+f6eCqkjUk7@u{h)&Ru)I`gmQkq51f$FP*K7jh+g_u+JFN zKiA*+b!rJ;7hoZvTrL-HY;4@UV%56tv&W8}vDUsDiA4I^+S-as5&Mq-<{&beOgaq1 zRv<1S*^Z8m(GMg1p#bI}V5TMWx77dRe=`0BDeQpnp2Tt900000NkvXXu0mjf(v^jf literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_readytosearch_found_caption.png b/public/images/map_markers/okapi/log/large_log_readytosearch_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..08d88ab7e703c6247dcf2dc3b5ce9fb3e6c17b13 GIT binary patch literal 1891 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 FV1ixhwJ`ty literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_readytosearch_own.png b/public/images/map_markers/okapi/log/large_log_readytosearch_own.png new file mode 100644 index 0000000000000000000000000000000000000000..19bafa4911b4e911fcae6d188157df015e85b9ec GIT binary patch literal 1819 zcmV+$2juvPP)S6z3Jkf8XxxdUw4yU)FbHTVSw*WEv1@2z{%RN(Jh~ z3YGd$)CX66A-oVp6)kO45UN^5RST`6ghrJr6-7y#rlnPa6_uoji{*g1reG6;udG?G zy%+E7&h6{NjPW}5I!+VyNJl%GJ#+s5?|;smGeYuzG`Sp2DY^~;ZNNIf{{^8`U=$bu zGOGm^6KDet0Ff{0yeZ%}z_qm!SO-LQ@Bi_)z6|tdPaOT%UtrTeJ_mtEvcLI@L*6d} zzW2pr+BnoI(C}HY%32aGSl=far*3HgJXYo6g&l#Cv1tgHYv?7{T7Yj(>tr>HjA{^$ zdTD75GN&43HH(|m`kD_QgjnXQ63|V_Z!e}edUlpu@dB1)I7JY3ByxKp<#c2b#M0@o&Uyni=KU3)EtWg;z!G))S+g{oT^hJmzfQg!V$yf-w@&8gg@=Phta z@Bl%_!$sFV$2}#R@b5R~a94-PS)is>BEATgWsx@w6vM)8m_&Ro)Jz^#3S8A;PTx$i zxjq0$p@ZA7!Rm`-mp~pUIKNs+1qR2nc)~&A@ig^*i_SVfmT8hzbuu{}L)Yo7^HW=9 z5|3x_M9R55p0!aVwpH#19J8bLTc;*JJ;ERNm_^kxOFH8svM6NHK5BOl`pA4&$e1l zy>f+AT`jK79USk!%7=H8JiVzBfOkKh;rgtJ^7t0!l4+EQ37+fT>O3tlL729}0q4XP z_UorRN@Rffk_1{}<-G9qbsTyBBg`$25 zN%tn6d7`;g8sUJeKoWQeOgjX$&s;`5PqwgQV~jV?-{YS*uQQRfhfPyufNyS&vG;pV zQCAUIEro^s-lu>#Fy$za1B^9o!}`hq2X;Tkf!%9~USjqV=Tce)yhL?TNTiK?pd_5M#d^Um8VZX$EB;Svt`6!r|zoU$yL1EWCd znG;7p7=ij}h@_xw9z1^?yciHK{nGn`uPyyrJ9TxOKOg&%;r{m-O#$h4k^*?3khXyn zPVO;B`n=7}Hup=5`EtOWpZWa>tF6rvt*z4C*yw6(Xz(`~dH03MxZ+#iMMo?o04^tV z`MY2L3eSZ;8I49Qs;XuQg_4@vJw2!EqhnIuo`qWm3<0+t0%=G3N4BVdl`(nVIn>lgW7{mwVWp%hgs+Oo%_8eATz*$WLi2N4$H!A9?XTD;5q*v!x|d)7qL1 zg~OVnCx1pn=ad03%1J}H8#Rn-DSOVm+;!_?!Ud#Ud?Z5?u zII)MLVl_VF${}%Jj>Xa%E*YyojWQ+LmI=w z8e?MyiG&3}b+wD;W`zwKytKD_*|^b9TbrNeW4ZeQpdgT=i*3p@ZOfV;qd5F*F&+{N&*A| zjj^Hx*3yfGmMpg0c1yRrJA0Y=J|8#>1KHi~0@_JVW-@cW`Tx)LJD;JoW;QP~_h1;t ze+E*_NDs4onK!?9^Q9HNcjCvp+ConPF(6$Q0f3Lc{cZW}fWPzVqkX_bz+b>vG2OC5 zkO+NB{OpcWRObW!nUu;RpsZ1>;h(UEf5u6Ul)TO`jDk`Yfp};q4XZX&ziKm6zi%rE zyMUDM0Xx=@PK^;*w1%ptwK&NUG7~*BfqO)}F3G(!$|8_Bx1G9`Z(&D1!yens{MGLf z?b=!l+ys0;g^1tvY>IeGB9NUpjn^N<>vtGD-pRm`4$O)S-pY9-FP+TScsxJ=m;=le zsTQe}Z$7{*fq=edeRg~=poP>IEPVPyB1b;}t!_+Kv=^uW>VO8IUZfTX3ZY8CKO=#3 zxD)?^C(x-bv=h5d%Sk}Gi<?tpt~Cz@GR9 zbOwORppVL0ABNUwoyD0vz=Fp%GT!~=^$=XmfhqwEN;s}rElH{XyC4B=C$NSOQnh3) zPNEwOA9yOsBq5yu?X3dC#7T5h|Hz9>o<4w+in*&GR{;T61$Y1l$jBa%F$)n$_U)y5 zNef>8LIO+oTuZct_qfv&Fg$pCK^h)j&*j70SiEklyT{~eUx|7KNQ$J26S&xplZq2P zyAPFCDBHmi(OHFZ9F*;#vo?;c$V^AU2)GHjy`jb8I4~{uG~g5@F#m?*h=mPf_&{(_Hot3lnxA@o$6UAWpRHSx zpX~Xe|5#|eS7K_rz^4Up3K$pbEzwcMCZZV7C-+96_C(Lb-(P+IOR&E2?qw@lHq8Nu zoN3Q|-P%5RvTv#v2m_UMzR#}k7Vi?5Ku}5j`e5a)%*6pziH(w zi<_F7%&yMwtRn;Jd^VfC4DC5A>xd;X|r|ntquo^dp6)P3*Qx8aKg? zTgP?m&91#WJG&mw&fLSpdQIYb6DNcRB#tzinRCxQ|Ns2Yxkm&41-p3hV#0OZuI0qa zjRyBTZ=ZodaaX&e2AK4I8%)-v7A= zLLgApv&$v`@V$LcwJ-LmYKw?CXELXFr*MiyLlfKE?qU79%?`k^(O1dFJbKn|A;``I z-~9aERvX#8s=nRa-26g40?Y0J5s3q2v+rYPr|>Ifo*n!nbI~lLxncTG9tI%M(8Sko z|2A=ToI;^6o=hemy;9y~_kgPULX^B?O&^8A7{{m1bFnzZ@Bi^6Go@)j0l0trH)t+5 zkat~o@7}#vJc4j-3Y5c{Q+|BKO{BL!!iJV=l|G(1PdO+7aCh&0Z0^`f6jtp1{rmfu zlXv+F_!CqnUdqJVf6^5fadzFZn?JmJn2Y7=klVVZkDVL848Z9VuVn@X2C}N^q|@od zQu+G(`~7Po;Ga84)20WZ^vt9>+q>G@d!6*gEH9ipL1WC}t9^Tr>SXsvhX!2{F{+x# z<#J0BNT<`wS3pa{#2S*&5Rp0l7RYqidK_?d5^g~NcNVL7z<1Cz02mmifb)WCgU5~}SeB5lT)R#oj- zbhTJ(TZ15I4Z|>TRR!$y2^!kAK;el(6ly)cS)vP`NtuQzFI=23dJ1Bne zSBU(D?IL1~F^PF1$@#mZs#Zi?5pj(%e%&6ZoPU<4?j49UV^;qRs7lp`ljqkwwFZ z$XddZ3*vl&z$F#{E|3)wHy)4ssZ^>yf#y4&sJC=I7O1Lkt<4)_T*q-etGB-;0q$M&KQ#dlEV{)wcinQ)3#kdxGetck>7<+ zA9^K!Vt9IzYK?2amTI$=Rn=G3X%Wd@Dt#?BwwORqPfr+zp|7fus=9!CVP_a8wr$%8f*=G+A~Frkc%C;AU)j^WxoK+cSRUqe@=X8tsS=3o&rWiWL!k1MPxb_i%l3~3Jnbn`K7*mf#gz7fWOSHGQ-@P`~m>xJiHe{_m z8;ivTJ3Bk`%K`h32-HYSO-;2%QPcq>L?qMQ-933dz}H2fMgpoOS$w4aZ~v3_FXs^`?YsdE1p>7&ANfRQ4=0Qq$ z$RJ!)1VS|MA#D*+O2tzM^<%#vS-=-mp;mwprG$qdEma{^A5I8O>Ige^5?7SG{Am1) zcO7rMp50lGXXc*62YXw`wH>>pNJt!MKFpbW|Nq~dd+y8y-iMf+oJ{2N`K|AV_6?(0 zEVg@|H{p5SM6p=xavY~|squU>&GY&ER%YI)P)y4dn7J_$iM;w>1F$UXSpaxr=oB9P z(*X?T`anbp*L7dKX#n|r{(jeW54x^;-qi1+v2vIYc>3fMxSZ~W1;(~@y9;0X@Ph(C zRJDEC003~{v7bff=ZrD1EDK#j9XNF6Aj+c^SbytXSeM)Y0622~Fgl0YQ5GvlO>7PJ z@A*ztMSX>yudJ+WSqxy=JwQYNfU(>VR02%-E}m|C5>v*-h0L3H_VwQY0Lr5kc%!CZ zu7D|y!0&$s_U7-x;s_qN=j(X<=#McvIRXIKar;Mc--qr80Cc_fl5})*j01=@H#f(! z*=($&lT0Q(0BCJ(^;QJn^*@KoJNAMKhY^-HVRc0c`*wW|zwP)nVv#a@bY&p$s|PNZGcQB;{m|-?c2R%GU+V~z~pfG(nD=cCxLW(!)r z@KX?5AR>qeEXx8^!OSrtsuq#;*J&B!6OrTlzL&{lmII*h`kzD9=5N5{4gpYTP=MzC z09v&VkO0IMLvg z|15I-!?12yi+ID%caUdbs)(r3vMi`-sH!0m`Kmerz)@AG>e9PF)xaBm3FT{>5EeQB zokm$j1Z7oG06vV{fyBm7Ve-vGP!r6Vr(otvW?oH1DQ0f4EUSTt>HyRdQ56xzi72`x zK#*=jJkbW{%B5 zimLjH0;usYJ=TtB%~pul1CR|+8Nz8G@BnZOARFTKpmN<#6nc+Cg5q2Wn~0)B6ax?^ zq9_1+b~zj(8Y7~`dtiFx6_nTR0@(@Jb>9P2004=ac>{?-979#(J;fT9Zlu&RoP z_yDe{>JODR;@(pMCS3h?L9+OQkPqSn~nu>gq&Qr$i)FRaaHrD_J*di(8+%C8R{d zT?7D=mru#_&;M0kJ2y7z`@Un0NgHFvj4|WJm}??3Dk8%o(yOZHiRe-!63Ml-wH4<2 zy{iKC_4VmYCUa6m(qR}j5>ZtU1glS8$`#6AIr{0ncYK1YtE+MTOdC1}e9!YdCk(^4 zj4>BQBm=;oy`ZX&s-}tPt!OlwK7IOhZoc2UD$v*07dA9B*t3(bsp^QT4mgg}8%eCa zds9{J14EP0V=o^LyDkk~4a2ZE2!a#Fm`(uaRJBi4hg7wPi25zdx*Ul_atoOQ04ZQJ(dY9y0MZ|-`p z2w)+g(b3VmR4Vnz?X{I(?mX9jF$jWo5jk8|RyMdCv;PQS4n!k>EdZ)i^Ywk$ s_&ouXAhOwPEDXcg{4MqW_@9h_1N4ue7c@Jvw*UYD07*qoM6N<$f^$DN;{X5v literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_temporaryunavailable_new.png b/public/images/map_markers/okapi/log/large_log_temporaryunavailable_new.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc7724c55dde76b952c8e262aa5e1e22730e576 GIT binary patch literal 1790 zcmV`e|KiTZSStvAHnN&65`k)wGz98I#d-+0jUx+ zP|*rdX(f>83qm|pLWzVBeaI6{Nr8tVC}|@~iK>1?X`-N{f=1;0iE%E5~Ypt-w!#*j+qXKfL^uvU zpw_i;)pNi#@0tLtnG5Lt2)bW#?Y&cs{P~Y~d?tFZk>c2y6{2^9X`-1nA)p2L1kenu z1L~<9dLbaN1^~4Xy)}JsVfn0?muY$MS(2xJ0?JwPg@Y3LB6_(@6!;{t(X|B7>H^gR z;oAa~Cr;sS{w%80hmyHPELnhZAK~^dk{dj>^dm=#xjFPwi5RdMXb0841RyaSFwDC(ys<_AjHvqxEX|I?)2dmd$%tCxUW9<5X+>ogi9PcgC=-BS#7i*hMJR<*7BX{~=H927K6hv_0gfY#GFsUp1T?r7 zWw8J?Kmw&z0hC?97(Gg8!$ZizIS^jZf|x}p7eMJD5FTXV9I@_4$Xqy#EG;gPZG+?B znJ+dsVjZx6A}|LORy~M{LkFqdup8aqLSWNN3x(FQzPdaCp`m#rG;Dv2$#?hD_LY6^ z@*$Lia7Cr-UIMZ}2FL;V)d8*_LzeQSFTH|Oc5rNobWK?fj+8jIL|Hb{b};ACAOZ^j zRYSPq29*|_0+KF(xhg=@m*3?s4F@Q@k>3PvxEUw{_8oV_|6y2E*83(f229V31FAX$ zh53g)Pds2Mr8kdC(>vvO zz2MQ^x)k8|VP&!;UGY&DAVZ}P<@_Ag09Sy$FTd{jOfVGLX4`>8*%VE!tzvy(lc;_D z#Az+I?geez?q>wR&5Os>AKpHp?4Ut76ty#1Eh&U7+IHD07RyF*TBTAm3O)D>RC9`mEj~T8F7diO5!~C%4>m(8h{(kBR6SflZ zX1_L`Y${37X!v}Aj6bMn{dHswIe9Ie`_Gl4kr`Ym^-BR-)nj90V?F23pYPN(XIIES zEhE9C3V1S3ZB14MefjK{9yaO^O>bi4=)-Q14Z~q|CGNy#^mD>}-3Wl7B?bJst z)gWvqrpM#)f9~A5vu0vqLOXu^_@$M^0fbVj>+MRkCNHglDEG4 zNZvm+MJXI2-%yX$ea~8ES$TMX@!sCv{v&Vwt1Fdh)Vn*bn)hwHZZFRRs-un4zelhl z0kmKo<OWAS#+MdhfB*Zt{GOx?2U9W@PRqvn zv}~%+sfK9YiPRcSO|a6I3xCVp1WH1=K2wY@B+*nY%CBUMSm&%o?k;)|^3e>UK z*S)T%MdehR@9nd$O#>+=gtbg<1%Uqo@TBovy#Hk~0000PbVXQnQ*UN;cVTj606}DL gVr3vnZDD6+Qe|Oed2z{QJOBUy07*qoM6N<$f^RZtA^-pY literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_temporaryunavailable_own.png b/public/images/map_markers/okapi/log/large_log_temporaryunavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..9e92e6f377ac7ac88101d1f29909cdfacc9cc179 GIT binary patch literal 1644 zcmV-y29x=TP)`e|Km08Slf-#gC0`5{LK$ZEytCs?=2Q0g2#N zR035X^-h7+0KLGsf$%-bcLn$v@ZMGdwgcgVkKF&ry-@$u>4`V~0H63%9RTZPKlbvN z=c9-}`S_rI9il39+%48s@8)lAz*Hym+Atrv?SW>S+v>LF$*{Au8a_3 zgVzO+yYyq42cDv7;3-!AeQax*RZhk0uYi%AL>3qEb?zh3^)P1PCVKjE&3I|Mg577H zDp#@BMO^^-i_g-y=ermSzra|0p4P$dkr_K$Gu{H11UJy&c&O^x=eT=I0Oj-r6mJ;C zYjW-UIi~*hXH<`l;%}jlcynX+Qi?JthAq|(d< z7|SC>2Zvca|18odRULsP@}TOr$o8tt*N$Kt-~~K)1SrN|CA{pI;d$U{A@sS_`0X^%M==UqbP= zy6gFy}CUC;lkw((|q4!%#R);Hgt6Dop3T$oNOgf#GaB%Ko-c=2ADpBSFjiMc69h#+(G4EGm~m}Fh_LPpa4itoRKGfev(wYC?k=GMRW5K!C*#L zl!fJTc{U;Cl_mJVfJxwr1CVt}ziyQZNVx-ebolJq2Q*Dn)9JJ)lgZ@OLSZphC`7N# z&52XLecAV&Jzu4(t4sXz+-pqFDOPJJB+c&b)wZ6VTrd>URaHd@5sb&<^W)>=)A4xx zoy|&rD}a>8fqnpK7-sRtja6fIwk)n+H}doIW-^s(8c3z?OLTO!PW|Pl+b(r}PM&^! z%xavPFB=UF$$-~88S(j6B8uV)c6GS}ZEb09RJdxb2n-7C%fKWetI@8e5 zHy&$gY`#2QOv8H~c*h4TF0cg1A694i+;dS59_$0g5aQ@&05vb7YI8Qt9fyhLTrT&? z%emGWSn|S@50-ya)z$Ty3%Cftfder{M|&9_4%LV?4?$`gCKlnm3*Pm?;-=!m!y!gT zdpU3*=B!+-1t8>YO^9JwB$GK335|GMZAeFMGQcH`ASWIQ-P7i&3 z9(L{W)7$GO7V{I0HlV6&x9nwvIOH^Y4FLP)9^g^nvmdscx7l032tvHOzH&!^N>BjU zjr|){{r?ukp6zRWV^EpvOTbNF4)`zdAA~5daqkUF{{um$fCVHYum}JE02y>eSaefw qW^{L9a%BKPWN%_+AW3auXJt}lVPtu6$z?nM0000yRMP)R>@41<{*O5ukj zN&g#2DJNxScqrpvtls!e_kZ!>;K@TT0WlymB?17yet%%Wbimhc+1&#?58MR8QzlSs zuLW$AeY5Nu=(`@|@W<=1+p0-t9VAq^d-Edg zpSMoBR+6NmRyKiwo0oCAYG~cMi~7bT7*;=-Yz6oGyGmjgv8ktEb?bIceQ^~VX|`Gl$syA;XDBN;mWYA^M3o}+61>&3tozzS5DJTCxi z;;Bzb2U^-bAg=k)tX>Y`{0{)t7n7ak<1 z$657$Ki zh^1%*+V*b3=XapgGCh>K?i(25eM^9FD^+$57pIuHBN@(Es8-^B8TQ{E_b;dv4m6I-+@ zYC|vChLyHTI=}3h?$IDGLLLQ11(94KElQF7yw@<0bwji22FluXt*+f~w75JT&tq+? zs;cqnx95^)+fS<#ox}vVDm;$}@6#qJesVJko;rIuQUnaaG%gld0C{L==%KS= zaKSh2H+I$44O=gq`RQIL6zUYsp7G1+zYM(X URpgze)Bpeg07*qoM6N<$f=mHzg8%>k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_willattend_found.png b/public/images/map_markers/okapi/log/large_log_willattend_found.png new file mode 100644 index 0000000000000000000000000000000000000000..ab04139228a26a272127c882eb8898eca0ab7a42 GIT binary patch literal 1754 zcmV<01||84P)z9h+QB7(&$B*1{bUdsW%`YZHz9HDAGhXZ_0qNZtY0Zb?e%$ zbC#raQv1Y?kB^V-yv-3uKEr ze*3py)j!_YNYA$tbIY=RLPWRMuZieO#bWUw5q*w`wz{5!U%q?*`SL6PU|Uyzy>)Ea z0N;N6;NKT(Y>%}Dk`q%s0ApnGI2gd~>+ghBF25KG27Lf<^z^eBzobJ$3_E%^kM7&~ z4HtmJ%ompp004&$JQiJekD0?nq z&F$MU=eqLn;lqjL=q`H#eRtfC<9|G)ukYE|8H>fVZ|(gaelvUsdMOJ4*xuETJA3Z| z0K7T!o_^}osVp;VgM)*C#q<)1guNmF)!&3@ycc98(;VvQYz@Y=eFI;|pU)-G6bR!B z{SSg_Z+83L^J69v31$xDa=AqT1_uXMHUR+WyZb9}(x;(X<5@&*?Yt#EARg`B1pput z0N?=7xfTbFnZu6bv@FySLfE-nZe;-Fii^?HQz)4#wsbeU#nepNAED^F?v{YxuK<7z zKnDPZ1QE3gAzGNZeSwrMr3^TZV+$edB>_D4aNyaWg9HOoL0|MPY}?QaCDep?P<4%h ztq%{63E>0we709=S}oI3vLK=`5w!yVGt0U;GdloGB7&5%@h&LYC1mnCJT9Z}%hPD? zutBPg(p(9i^x!xiRs~h;*dCXDRh37ce+QL{dv(eHLI9!wVnozVL@h)VC897hhnZPh zatVI;yB{GO@k5EYDA_hBT)_L6U&miYA*|ZyAl#e7)azX^iWW33K~U{HBblLU z3Q|-5I(HC}5JCi`l-fLuRcmEQL?#iLOJ=}vt4O{Q0r?$t?>1pv45M_Z8J=U~td)l9 zRzcUCrz({>+vV`nW#+lMENWq`1<>bf4Dj@KpGMv?aB%3SC|7M%j8+V8`yw{2 zxfRjo>wc@?^C<|0)JAf3a}z+8h)kc)XScPrH3kSbMbP9AqGH?l=vV~OE8~{Wbfc$h z%~B=}&6(MjQW`=CQ`0n~t*y;YBoa$+Lsh7F=J7w=h~d?mAHT)S1`+8(h^yv6gAhLU z#37RzVD^M$U|`p7?ZLe}wLswGZ&lZI@ytsj?#PMbP6Kmy-rOW29f0Zc`Rr?Zt^@eT ztIvN2z^904gAk$(Kqxmo(G9|yhd%%5kM$1?zw0KBK4(lP-$|pk#&u(fTG-0WY%}vL z5oNC(eZ5y%2(WhTTGw@5o0&akHUXGcK9ea|xl0MhwM}c=1OS{F&&n5uhAOG^CsUs1 z8B)p&Ghbom95c@{^E5N-%sd4kr6@{n_3G8uwdRWg^!4?@ah#HrGSAE<02wLetZ=QF zbiT5ASN~=;7!1WD7lV~4r8JD zq5xxKW9~eJ3!p?qvjFmzWlc9Vx5T|wYq~FI%lz80KNTiFJUbz!OiC%w0vIQv6cNo5 z(X65<(?W=Xs;b6f-@IN8|C%j4NaS+4K($(3w`2ExPx}19*!bz!E))ud_dU-W6+$HI z>$^~=k@3F;SPUqa%LSs*=pJ9|hQX-|C(lbMFDi;M+R@QrEXV9W0;oe|GMN_7^V$If wh)9peqv1i$D;hh%XTH2?qr07*qoM6N<$f{J21$p8QV literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/large_log_willattend_found_caption.png b/public/images/map_markers/okapi/log/large_log_willattend_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4804362b0b8868b54b8320f78f7c74344d332b GIT binary patch literal 1829 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_adminnote.png b/public/images/map_markers/okapi/log/medium_log_adminnote.png new file mode 100644 index 0000000000000000000000000000000000000000..10d83b8d99d3f234d26e35401bd0d7976585b742 GIT binary patch literal 790 zcmV+x1L^#UP)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00AaRL_t(2&$W^2nd$Bga=59 zSnLGSB)72GE*6@~Wf#=K1r^-!PouICH71Y;uY2D&^S>GRkFwUvTB|>S>-Ab$mi^c<)J)geZzQ6a+i4 z*XyxZEHK9G1@fNNYK8Zn(dd(Iw+kTWoY}(wv)PPVt%f8dadUUec$_fLbAoDhJ9V`i zf7tf-ypzd9X`1S_)zV9|seZq&IF8G?AAx(|dY{=jXTmU~UawOW1=?)D7=j?6(P$8c zAEX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00K!#L_t(2&!v)INK*k6#=mptzx}(K)1|bCL4yntgft>4Xoi1a z)WdzM#|5T6^wP7jJuS$+l))wwUwXQ1Pir&Lk~E^U9z+90%&wYUS(+7j_3rNUGNs5p zL?4`|!|(gf;T+&UM1>lXBt-x~mgO!0CIH0%3;;S26?T*)DWdCoL{-&@-|rt_W^ayj zK4xxX=9+@Zk|afBS%#)*$Y!&!*=+VFsbuBx)5jiGSSrX>eS!rNCW+{)X&++dQccrh z(P)%%xm<3vw-;NAVsX^fIb3cR-Ms5>p3Y26dFwl;iRmblxDMRUyAQ&3%}`CuIYQ`Vl+3KTBNAO~Q&rgSwu9 zZs@3~sz!B%lg38J)`_SQ00aPNZ*S`#iVwnSw_-!hK>ea(JQ2g&p$PQs9&A<%&NMWk z?|z>e4u@X=*a0940ALb|GWYI;`-c)yE*Hx&zr29C*ApOtV6|Cr;p|1k1_rl-!QeQ6 z6##Dzl8NY*xy1ar_jd5ngU4ZZ9&y6syN;7rui?^pFP@D&HxxyADT?CiJ_z6&emfO0 zbK}hNJ6}hSH=Q0&4==7P45w15;qLD49ssQX#C-kzB+P8m4ZU&e`)2LP(~+J^yMtn} zSR#=~EFGHoC!C|a$vI~BwY0QcIV|yCR1o|H(s=z_jY|OH00000NkvXXu0mjfu)y;& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_adminnote_new.png b/public/images/map_markers/okapi/log/medium_log_adminnote_new.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7b51fe9a76ed4cfed0e720ca31023747fd6e46 GIT binary patch literal 891 zcmV->1BCpEP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00E0hL_t(2&yA8hPC`K#h0m`RByIq=U}fSCq@kd5SOW%Qv>`FJ z7OsHSmPVq5kA@9c5X47<1!@e}aA$xRt~@7~V*wX05erO}V^@jGpU}&CkYIzFg>CJYGE;7?NwUoU#)C+l89Gr81g5TgzTq=^S R&e;F}002ovPDHLkV1mXKiFp73 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_adminnote_own.png b/public/images/map_markers/okapi/log/medium_log_adminnote_own.png new file mode 100644 index 0000000000000000000000000000000000000000..97d3c2a2842b783c37760c8e66c64afa3a8a30a5 GIT binary patch literal 894 zcmV-^1A+XBP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00E9kL_t(2&y|wBZjxabhOftVAn^q76r4;vgR(HV^*x6+Z5mxj znywBW0jn#6G&=Zm3>`?Nwh0{oO~CNJ0b=+X{=R(N4)lYs5o>++>&|sQxnaY3vx3LY zf^iniUhvTKW(9AYJLlw_Q!qOZ@b7?N6oT1>b53y_%X=^9oIG6m`wTo3JbZJ`Ns=a$ ziJ~Zyq@@AY@V3Dq7(2nZNWmmY^!fN$pGqYS27^_AhlbBq2(S}ac9f(zjnlLLK4qky`WL&zYc)QG@#Sz=>6fLPWSikfIo~;6-&W<_Ho64HPV1)v#IOr zMiz|T!JpuIUF!hv{c0rNVN|^j%*?asv8!~RZSHi;KVaV!16FSvy^S6J3%?f?J)07*qoM6N<$g5Fi00RR91 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_archived.png b/public/images/map_markers/okapi/log/medium_log_archived.png new file mode 100644 index 0000000000000000000000000000000000000000..b295267496972c1433b76239ba399b7bb9a961eb GIT binary patch literal 805 zcmV+=1KRwFP)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv06_p@04(Pn2XX)a010qNS#tmY z4#WTe4#WYKD-Ig~00A{gL_t(2&$W`VY63wNMbE@t(b$QFA7o=c`xSO6W8*)>T1bjm z%=iOhC0dEaf>>K-3@B_0-CfK}h%;$5NOeQiM4lfGs@}Mz><#I`}Sfo%Wa5x-D)0DwrfH8(s zfy%&szfTy3D5dZ`k5Z|`YPDj!-4e$!B0{s-q}6I+tyKVCX4z~u?Du;_K;#qW9OLnr zTCIlf`zWRImv(@T2V^EO#xNR;(= z0gXn3{ccB+B>2A1eYt!JhQRC9#(TYEX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00L4;L_t(2&!v)INKZe?}Ih)JvdL==M-O zNCfwx5hX2zB#@x+p+B_gdXR$ULof)5NE~#FisnlfafKw=K*?5GDI0g87ei~cJNECM zUe=Ig578IS)8TW@`JQut{}3yd5Jk}i0ForR02lz20>}Z#Fvf~k6h+aM$z)urs=7Km zJNt;pu9MzQM2CrJQ_;?%D7qv`LMRkMI-N#KON&(=m8+`jD~7Ebt*o|k3vrAaXN-L} z{DFwbn9XKy_^Gl+gsV7J+O7-KOm@0@!#KZQ>p7BCz6h-6AL z#^Z6r!{89+=H{WLHSFA6kLt1-$S>q5V{8WiZ~)NO*6JUA{s2vlO<0IT5M7L7CNd2r zs^W*XipsJwoIHLC1Gfia{r&xu08#)1miOG8OeZTY-RyRpIC2`n$sm$i5}KAkDbL}0 zcQ2&jM=MUJa}>Z5fSE#P#@K{ugK6p7dAI-W<2z{G-wMj;iT-?1J(+hCm=N;`MqL)`IJvgoq58TxQ?u&y||s zSkO^!sledi;8VZfulxEX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00E&%L_t(2&yA8jiyBcFh0hxltVNd1&q$NTZfz8{y!jDvencQ! zrZY>@4Om(1-O?0dqbNkgth1Q`v5BP0+>0OUL^2}mN#O^R#4Nu3b9m0Z2RL%HQlOC@ zEqb(aiBpeO3beRWN>M3ATDhaa3&b1OG__8Wd>oRVhW1?DzZZ zcDp3G3y=}*5d&IW(Bgg%`o7P>V8BkN!$zZ#2*Bu%3N*N&*>)t!AP6`fk2xF;*=n^| zuh*%yP8tL>+X_O9-mBN@Wvy0&=Xnqjq*5tlG8s%J6U^sxtk-LhM5$DQ<2bnapoemX z7b$RSFq_Q~$1zBNd_)+AXt&$Q<#I@;(-4t^?P`VR0PqZuH#Z-(=Qs}X`8?wI7nV_k z>2!*0HVb1777q)Q%Vju@1NWVN`1}Q*0G#i7OOXctzPHwz)oPWMN`+TfZx4M}-?40J zad+T(^5Kd!GTH~YuFLD|_en5nYWxc(zU&YXhT&l(KPOl|2`1)Qq>*4h&*&Q#&D#^e nzYM%+f*;LWIUPK5{{?>oRT@W7SMSTF00000NkvXXu0mjfmK~WE literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_archived_own.png b/public/images/map_markers/okapi/log/medium_log_archived_own.png new file mode 100644 index 0000000000000000000000000000000000000000..71c879a8b49ea3114d774eb61eaafb1c4588b737 GIT binary patch literal 904 zcmV;319$w1P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00EduL_t(2&y|utYuZs1hM!XuoJC6dF}iedi;F_H-cRB0Lll~= zqYW7aCx_mQc5qX45V6rzL0n?Do*VoVEmRSDIv9<#Hcij|ygcvWg(IgT8AVz_Xa$ki zJoQv0qr#PQ&YW`=M6Lq-J0J*|Aad=Tv(08>s%p+TQ|Rks1_~L4FU~nLGi$fo)@(M- z%(e!|Q00h05Ke<|y#xFGzI8esYcv{GtycE|3PU}t5a2Yh?Pz8;7z}JQ8d>i@ zF>GrvolaS;R+xd=PgIq9y-q5XA|8(;B758K@B-i&$lHrc-;1J%bUMvy^@GK7$z(Di znM@LH1M|B%`Fx%zig-BkfRp>)k`2(`_4eLdsZ_E;pEX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00ApWL_t(2&$W_0P6A;RMbAvYxCAOK+=q=@_*eyT$Lb+VVahxg;0;RRN+mn`B-i?}W zLs$LFeBN{5bP1L=7I!;t>e_AW4(0`(=jESdEol8DSoTo`?tqKsYP=QBwHmGicb$zH ZzW|!)>%^ZwYiEX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00K%$L_t(2&!v(}XcKV|#=rk=(sg4jX|0XXSd|uAK|#Gp!B-PO zJrogEF$fBQf+C2Z^ddrH>!B#b9)y78q$Gz`5R4wW7F#J6A5gGD3Z})d>0_;p^+nQs zjh7gTB?s|?ISs#=`DO0DDZ+?9H&b^-;!>3#xle1ZrmWo2LRN{v- z&oQUX!?X=-@ixI*?}IX+JU8DzB#w9gALNJo8b z9S*i0M*p4ud|zMR8vsiH+^p=my{H!(uHL#7I(_skvcD!^nifpUgdjL@YVR4y$%ln- zI6Meo4#0S&Gh=L2tP$s~UyP>iJ-UmQ)omam@DAX_o|AYrJZh<``qty|R6qbf*|JkH z0K3L>WB%^jS3(z#U&i*EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00DSOL_t(2&yA8nZxT@$Mel1Gb>klYPT8>N^8G%4LA!P{i`p0} zm6T~aq+>*&)JbRFYiJ$7h(kRtU~n3-;ak6Ra_{#(X~W=69cNm2weV(N+Ya8;@# zvDSh&9h~;J09D7E3u`S!QIKWXQs5Lln*gUePM6kN0EY9g^nQE>SP4vw-;e;WJ-jYT zFnJttJ@3<-#l(435h#9A0jE9OvLisU7?F}NDh7O+UJ>1ggm>*~f-Y`V0k2lsarm>x z^}NqbG2oVObRW(+bEmYk6F#NQ>JB=Rv@4bg#^bRTuO9^q!EgPV=1Rx6diCO^cFc~9 zG1Bhx?QEtutJtQ2S6Ifr`hH1tA9Chee7HFx=)dFrFj&XV2YLt&^;S~tufQoP1>s$r zcJ`5Ga?DW$oQ;$R2c`sT)x|Y%CN2f1X_J%WxC%~!1N{qDzHBYXvTVJe=}`HzVC6g; yIMXf9bMmxfZJRS~;LQ1Cs5Ce<+k+eCzu+HpYjkDmRV(oT0000EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00DSOL_t(2&y|wTPZMzz#AgUmFW&3FLoYpe{QiCX1NQEP0}@j# zHgth)SVQeE+_3M36s(m{wm2TjwrebibAB`V%*z04WMtLArV~vk-{QG4vT8&-grE?D zoNPPr?*J#NP9BF4l;^q3Od$jr5ZhA(22>3=2_Z<52D7i~-h7dy1p$~C*AO_d<-~De zOz%e;&U)(pOq5LGWq<*Rl`A-~m*1b)j$STp#Js57e@Kea;%oA2`qkfK6yYFdmOFe|-;W4(S)}rW0i23%q*q z5*yqANnmqvI|bf6V6)~#RA8TeKT&)Y>Cl_{c)qKh-g|u*>@2Z+#C4t622fcA0C5oz zUAEM+Pimxl+ASG}#H0=u#!C5dH3yR-;2>*gKiw-Ef4l?!Hm=sS3NW+fg9gB){*P)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~008(&L_t(2&$W;}ZiFxpgsZ$ z+B8jrd7d#%6NX_x(un0000EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00KfuL_t(2&!v)2NEC4t$G>l8R@)qHDs|g5A_^)hN}@op$X%p= zNS8Udmx2YM2qGxFM6jE7kOK1%EQF`RJxoE+c4?55B>M-Fb_g{^X4PF*R50Ap-|V~& zZHpv(h`#VnkI#GW``!coLsTrG>v{wL48w>3kO6oA-VM`xJKH$!kb|k;ghn$=P0BeP@P1AgK>U4uNks5B0WuE+yl`;eN+KsW-m zzMb%G^TT{&P7~2S0FVHnvGGj2_tjIBsb!d(OCvQuhw<4lWKxR|&KkBrO=gj*U(a*S0;p z6}oomCJydD0BbynL?ZFJtE+2rJ-FdXm{}G%QMb6f;O~FiAKG3~iJqRGm+^Sq`WxIJ sX1A~dW^N7y0zm-v0MvZ^vx6nP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00C%8L_t(2&yA8nZrV^3MekRLgwzd??Su(~4FCGNf@BA5fB~YU z333M1sf8o_KSq^}F_L9Y2Vi1U8u8}m>fHC9bYbwOk252@MtJj}YX@)oculOeSZl$X z2~H1Jfa>GTv$dA0sz{RL5a9Ikr2$TToPJts0VvCoJkJ4+0Vcp-Fu>~`ujdA=>zdte zN1o@TY1#@9OeCoz4hHM>THS6}fBR+&RvQt2kB&P*!-j#g`w%&7qGq25i=I0%I*SzTfXQuhP imcu7=J$PaM3;qS1Tz5b&!7=av00005< literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_comment_own.png b/public/images/map_markers/okapi/log/medium_log_comment_own.png new file mode 100644 index 0000000000000000000000000000000000000000..5b4c467cf3673a6d0425a761456d80d75124ea7f GIT binary patch literal 853 zcmV-b1FHOqP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00Cu5L_t(2&y|wRPQqXiMejsNNPGc&9oevO`8}U6ATPp#AgH7+ zYPF$;nNVU{pd??)bpeGE@o)C$=G@5z&YX&L6w)_A-$ZWk*He*>3Wm-(I_GF2Lj!&f zFhR#e#?Co<@2RSE&QXC!{mDRqjsg$PIg(^i6wLFSBzFdoK;?{q39d~ruE4S^x!G)( z=Q-0fJp?EaXuW~~*M?n3lJwqlyWP@z&n(MmW=xW#Zt$eoS1>`p>bP31xL&VW6a~w& zWSXXo00000NkvXXu0mjfl;C<( literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_didnotfind.png b/public/images/map_markers/okapi/log/medium_log_didnotfind.png new file mode 100644 index 0000000000000000000000000000000000000000..93c552c128eb675f01d6d64b726d772239a820cc GIT binary patch literal 817 zcmV-11J3-3P)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00BWsL_t(2&$W`hP69y`M$fK5BG_nQcmyA4HZc~y0G&@jMPn@N ztV}c!ikWC5G12%_Xrq-SSXi03h@0>uxI5sr0kaZ7H1Q@=p7YK9X5c?YDJ4oN`4ecZ z72o%NCs0a>h)CnCEJ685L}WI>5PZA7kmmV`ydED)O&?4YxN%TxP3Pv4xl{_rb&+0= zeiZSvyMxx6QGqiAOQjN>t5Y1;#c^GdnG8X-ifuI!+e1W1udb8JyKWp-HsX)J&0&@EzN3lU!UPtk+2_WLPO|;dvg$ zn0=rLWWSP)F^=bXEUPv8VT4$VlT4CG&yRxlKyhm0kK3E_P{_xd-UBv(?BGm(GT-;( vpJXiPOcM;&8NKTBk8rHj<~VTHnYiO8-6YNSaSzSR00000NkvXXu0mjf5S((2 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_didnotfind_found.png b/public/images/map_markers/okapi/log/medium_log_didnotfind_found.png new file mode 100644 index 0000000000000000000000000000000000000000..9bbee997b5f224dda86e9c7893eaba69d5259f63 GIT binary patch literal 1091 zcmV-J1ibr+P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00L70BPiqxtgL7~ag6I@jLq?X zAR;pBx_&(n2q5vQCr#-zV6)qd#b3qFEgRXHYu;_|ru&B7TMsg`$zt{U{ol9@SP>3~ z11&8rrRrF;Ja3I)<%I&9sj$eIQWIQ%upL)UH6#9M#-kfL0I1oqWm&$zw`LDF5_ybu zj!M|g_9fn8$xF^J@R9y5%q!ENJi^WsmoPr6!0mE3F~;It#yR&PI*9nkQG6L2MoLYZ zlk*Gwo4z1sMq<#l1j;L_;4CbK{9GPqjBNk_4gl)vYD2*%_h8>$gNbMqlM`czeSMGb zF$H>Z4h6*}*mdkQI@&wpt*xyC0G0sQSjKa8QcXGzc81Td8C%ovMUS6L^op7V$9KDdLT+M@swI15AFg&TPNGGZu-@>URp zEC^tcEjtwhuzhHJu&n9UWzX5e7g4ooGnCJ9gu~&dZEbC_<=~1ZAtGKgv>iWw&X)G} z^m^8=cA&Gf^HC@iQvL>4h$x-i0TI=^TrM|&Y5=xO{Iha`zX5<}1sKX3L*@Vg002ov JPDHLkV1kNq@c;k- literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_didnotfind_new.png b/public/images/map_markers/okapi/log/medium_log_didnotfind_new.png new file mode 100644 index 0000000000000000000000000000000000000000..4f52b56f1f49b9827c86555a3aa930090d02a1ef GIT binary patch literal 930 zcmV;T16}-yP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FW|L_t(2&yA9?Pg7AC#n1O_9b^I%gR_5u3x5Dz8pGglO`P1# zUEJ7!1r}U%uoF0uCiWo=qEU-7FjycU2(hUHjcKCq-ufbaucEw{9EbKbPpzci{yX`d zdk@g(XeCD@6kF2r<9^ninOvvgNXq^l0136Mt^OEB)b7prR`%ti*Z^UBw%~<4O{Ck`0d$Kn$l7#0M$P#&|sXV(=h>m zZf!Dn`;yJoC;YPXn2m)(+Te($Q$c7^xph~K6^lju*mwnT9Ejr}J2V8pRznoDz$gYu zT)KS+T5FUZx$or)u4llGf$#gso}Gat7{>@24fs3TxHxhdlF2|WI6d2T8&?6q0c5&V zaQC&=7`|~6@#!g|FhCTB$PSO-SF?#Y3~+673R-I{&bue?cJUm*Xt%fIX>geIZY&g7 ze|Vp@*=c^9yw~g7{)|@HmBlVNntr%EjZ~9>;|KHnG&hq5gR+Z%!PJ-a0zA*_jU=q2 zbuO5iXP!oml6eNl_+DNf0Q}2fKd9qtd07Sr``mxQ-xvx=haFLNwEzGB07*qoM6N<$ Ef_wU-!~g&Q literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_didnotfind_own.png b/public/images/map_markers/okapi/log/medium_log_didnotfind_own.png new file mode 100644 index 0000000000000000000000000000000000000000..48dee72fa4a0b1b1e96f40f803a3f11420466b75 GIT binary patch literal 927 zcmV;Q17Q4#P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FN_L_t(2&y|v~P83lThQBlJT1W*Z25X+c#s^@Vjj=HC7FIrh zx3QxW8!gmE3#ibFY$AhNh(--+L9=K?5aMPn7L!f%-mDYZ8AX{%j>R&|L|4Sqe}BIJ z%lcXm)!G|PzFZKBt&I6QI`DV2~zLEkok;{XB3 zR~PpJxlchH?P#H-pud@Ofaz|G2+`zX0XD8+l4;rcD3<002ovPDHLkV1m|7 BsFDBx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_foundit.png b/public/images/map_markers/okapi/log/medium_log_foundit.png new file mode 100644 index 0000000000000000000000000000000000000000..10ed9ad1f4902814d66cbbb0ea5446e8b4b9b891 GIT binary patch literal 832 zcmV-G1Hb%EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00B@*L_t(2&$W_4D@0KkhMzn4Hd8dRq-yU!CRiob$flf&Un#lqjX- zPoT9{f*|;vKq)06BKy}nvVE~3BGQ_m2AyCOikaqo@7sw z++B`DM}n=%9em%%7?S~>fv&I2#u&%S?~RAPB;rq#@{hC#c4$f9k`JaH!SiMqsPcG~*{T(Z&OgYI+&~0000< KMNUMnLSTY@XMg_y literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_foundit_found.png b/public/images/map_markers/okapi/log/medium_log_foundit_found.png new file mode 100644 index 0000000000000000000000000000000000000000..266699106942dbbc5deeea54697a4c0967228f72 GIT binary patch literal 1091 zcmV-J1ibr+P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00L7NLW~;kZ%FlGF+H|USQc90fO1G5kEC_;26h#b8$;hl^(9v?7mj~p!`bJZTujGkka|2}vGfW8i z!Ty0LrG{KCcOwu8AUgkA&*k&r*h*u1IbGMZtBIVw?r0hNHvHb!e2f^%Dmb^>J;xNl z9g-vkJRXl(O~toYa~nCH+hnY%G}SM!XpCRFiOXmDpvIE+Ts{W?tHrTpS$=rva2q4X zBsA1EqN<|m7sqiM77|G|G8)3?xv!wCjw@Z)5T90Hv)XzIAu3aF&Wz7QF&Ue}#HVp+ zKQ+TbBFWx=aTg;KV_3{AqIuh1)Yq6HKbPZ#kevX)06=^Dk#Oi~KlV4aAvXH~vtMTL zHa>=#IR(?&BrN<^^mJW-|BhevdcC8Cv5lnQ`9NkhW4d&!$9}5gG$PSQNNFi7X-QNV z$`S18hZu@1IUJ4w00{u&#m8t<%002ov JPDHLkV1gax?$ZDO literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_foundit_new.png b/public/images/map_markers/okapi/log/medium_log_foundit_new.png new file mode 100644 index 0000000000000000000000000000000000000000..b22be3b8a6f3ca77b0b01a254497a1248609cf3c GIT binary patch literal 930 zcmV;T16}-yP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FW|L_t(2&yAA5OIuMK#m~(X3QAUqdxx$L`Ue<gw()uGtL!%%D2kpDJjm0$B`Y@+Me6O!Hm3;Tl z;dAaiK$W8wK`N1=Mv7W=q1K}oL2B$vDJi8Swb-XZR}CP7)FLCLq;1=@EUOZraP+7F z6@pYalv0u;*H2csoLMBv`v8%nu3|uqHfm%XaPM-Po2RS%aPXe<$yrYTa(`8zLK{`3 zBT4RFY%%+7kK6eTF7CuRZB8+|H10LXQdKGlYNUEz%GOvchUD2A48wro^TF@;<74_0 z^wn4VvTso?-yz&SfJh{Q_}fHUG@`iF3+0a?baZR7LlG2SeXp{1!64NvM} z_zc&!R6^6ewg^!p?P$*@XE|+7aWp={zKLEw8+^)+;dWQMc!uxh0%iaN{sbr-IRVk7 zaSp$G%@@(<>>lZK!O}Ud&4h5kfcN1-R3hgD49&e_|76$;7R>}6f}SsP11!sONAe?& z>qkM)JVR6>>&)|?j)7Wc8ln;h#XP>43!-+g%KaDo4FOwDu+mc_>Hq)$07*qoM6N<$ Eg6le<;Q#;t literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_foundit_own.png b/public/images/map_markers/okapi/log/medium_log_foundit_own.png new file mode 100644 index 0000000000000000000000000000000000000000..7c57557f5c2d418d853c4808efc2db2243031435 GIT binary patch literal 947 zcmV;k15EshP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00F~EL_t(2&y|wRYEw}ZM%T_2#7d^pK7<1Y_5m7%;LphO009R= zB0AAYp@=wB>?EL0bRcTfUMZDgK@=6K<{jsD*jE z8G(g_h1bRyRaJfR?txAe##B{X1W3tB7Xl{?IHAxE=08s9v+^UoKR2qkCa*;W7D~2L z!NGu|<*2IqYVo-izvOkQ`c%hWj_8$#mo+;++(}Thv=qb%LHe-i&*gGVRvzPd9$qX) zJRax8>@>Bd&-@72Xf}V6-gkmbCc{PFpWOv}wxKP8dcDr-_f=Gztc4*9<+q%lxWL}N zes*r}!Hanj?F#e(c&CsL2NvG!&Qz+sgU5!*m#0}?X;53Lv4b9h#QR{0=?@m`naS+O6`Kv*9Z0Z zrF3WT+X(y_+*sE}fweXoNfjFYX2FhmCM{BI&$9wwec3|rH-fo}@Tsfgf81Y#zW|Y0 V8A6I!NV@<4002ovPDHLkV1fb*wU__^ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_mademaintenance.png b/public/images/map_markers/okapi/log/medium_log_mademaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec45dc3dad133a29264059d6f329976bcf3e16e GIT binary patch literal 821 zcmV-51Iqk~P)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00BiwL_t(2&$W`zD+FN}fS>(l{Mgj)!No=X4gZ3p`t~jdm%Xin zEB*qml0xj}8(S0?4sxI<+QY6=2qlwR%yKZZv#-leP1$<-aXsty=Wc9Tyi%;hwBAp2$aP#9z)@m2B;GW6c?NM8Sii5@&ivBg--CbBp z5jH~npw4V%A7cz(1&IjE=kpZaFHx4lvJ`#EB$cZho@;Le^$-zZYG{~jHjCpp2>?5? zRI61!luyGK!g|QLz7sTitN$T7jKT+Z#Ut4@k}EKVsko00000NkvXXu0mjfO<8vR literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_mademaintenance_found.png b/public/images/map_markers/okapi/log/medium_log_mademaintenance_found.png new file mode 100644 index 0000000000000000000000000000000000000000..2f15a08fc15a7d23dab9ae298bbb069106f29366 GIT binary patch literal 1093 zcmV-L1iJf)P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00LD>L_t(2&!v)INK2AM&gC3hODrlXum>UO54k;5 z4K+*)^k z?yr|MB-umsh4XayoO8bC9N<4hswG&Kbprs$ac%$#07?KQ00lxw^@=RZx(kJZJDE(n zT`pHIrPL-<*-j}vOet-w+L>ipH^*@pOuvVe&*QYQP0x?;4W?FONMEZb%^NI~AHYMMtqz1b}>HY@X)_4;Qu z3n`mbr&DRg{pc{>efolxyoC0~%`h3v;GgkvLdX^XU;v=A^H4bS_#W(aTQMUD_?#3m zDNZAnT*Q);MXSz$i~G9Jf2&{g`Fw8xNC32??71VC&lxY@xZpT(h|ex8ZDR2PmLc6Wp<%!>bq3k{}4< zdcD2^0?3e6ry>B_V)2RQo|~5(XODGb$F}VdK8T1!B2WB&|NLrj&67|{6@^k^&-ay- zdGz_Hqh4o3Fc=&Thr`0(;2KdXS9U-twOg%L8-NY~+H(A}s)D}(qWJ^)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00Fs4L_t(2&yAA5OIuMK#m{{Sh!k`wMF;U;s7rBiF-r!Q!u20$ zK`3`?hmPV}7bnG1vXqigUj~)Bm_ZzhsbCuGYh$VS3$*WEh? z48Ua`G3D=a?sSuHeywxLSq&RF)Qt*)2HEi!@<}q8M9TjOD`FuMvGAa~8{hZ#apsj# zyRL&IUJnjKDTReu`>S|_p(xleC>D#jw61V-MbxkBI6QIjDeqvQw+CI(D593tvh{uR z1AqmH$%Q#Puav^`hmTRI{()Di;@m4^ptlFdr4r66Rm_i!Ln(#Cw0*I$g%tpO&E6tT zjh&$Pl(WiLn@fDQmg3WuM60iVgi^*9i6+<=ez-WbCEX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FZ}L_t(2&y|ufYg1tqhM#j2kRr5;NF9oQK^JjxX_gEw;^!Yw zaPV$AI7-(}P8CJEh$QIEpkkLU(xDIwjj6pF#S){So=-^IBu#A7cpTECL1V3Fe_o#V z@WPN&k(45NFXX+*c@BFjl2W1IoHOT~d69yLe+PIWu>FzF5B(OVn0Bkq=OYaOnSN< zd*CzsWZA8EcIWGoO@COhsd#?SAXd5+#0&Xr7u}gmCPQ}XJwYNMkq9_CGQyj+GVApQ z?cEM$#?6yw3B!&--=L+kl8(OeDHB;kCb`=*Iz!ds|$|?!TMwP6Wm|det@d> zNAeMB(LvzAJkyHAy?K^lBa%aazZn$E!ndIv|Kt7&{sOS<8!YJ^3se9A002ovPDHLk FV1hUws?h)d literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_moved.png b/public/images/map_markers/okapi/log/medium_log_moved.png new file mode 100644 index 0000000000000000000000000000000000000000..ff786e00395358a97b6a7672b394569e1ddbb9f7 GIT binary patch literal 809 zcmV+^1J?YBP)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00B8kL_t(2&$W`hP6AO7M$g_Qkl+jO4*CMNM&k=yd;%>9oe8y8 z7FHHwheiTY+@+?`f(AorY-psDxQSUJ%I~s_4J4~s{7am6a?WJF8TgOVT8q|N{sj8I zFRttUPN20G5s{;MT@G%pMMRbg)MwBb!%4G=QWi6TT&;#NhA4rG0^_k5wz3I=fU!Si zuUd^1SPQUHsc_tAU@L{K6v;$_R;PnE7~ls1GlBfpCfRHj$8oF=lReL4GM&;NkLkYk zX+3s0Z9mX{>G3=o@#;^)Lk|IBz``WP7;?25Bj2Yx9I~EV;danxHJ;!;lOdf><2X(c z=mDw7q<5XF?3By0Q7Fh-{w$pMC9ppSQ%g^!OC{O9IR7~q7Pzh(ev(Mg`bsd*qX^sq nSM%1>w{R%cUKIG#TDs#qShmKWp01QI00000NkvXXu0mjfv>$9? literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_moved_found.png b/public/images/map_markers/okapi/log/medium_log_moved_found.png new file mode 100644 index 0000000000000000000000000000000000000000..6d46d04d400dd75f3fc41f8d1b880bcbcc78b8ee GIT binary patch literal 1091 zcmV-J1ibr+P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00L78`kxWI=hC&7wl{xP!M`4AwtGjnQ zy{sY09-=Rtr^Dx*^F8MP{~?wwA&Q~|0J1Dg04xA<03-nzjIrz$MNyOt!;oUJnB?>M znuy4qqEsCb?IWUfSv!lOD9N&nYkhrKGz~~Dx1jc@h0ZcZw_q1oaX~3@j2mE#{jmIj zh{$T1=G8zTfVSb`REkn4S;_PB@pxfnMHxGB#k)QHb>Ovo+W}_H$+P+W{!d&Q+^8r@ zpt-rZXn1ji!EIbR+JxwvZyqyg0ze`&wyLUKd-m?;I!2yi zvttwN)>VtP+}ssD|q{57Gwc}hYln1UW41^Ze)x_xwLcc)rT>JC#EnKnSg05 zSoL_^(iMJ${*RyWGns&^v>eVgMNprq5yn_K0B`_MTU!(Ae%y)UJ9c7pDuT(FhEZ)C z{ZliDCUsOf3UINm9_?-I(Uz8$5dez-c$W5DttWIx!;RCP`u#_6eWVw^77~~<5^&nB zxa&I)x%=L%*X!*8Fauyb)0r_gWXrY9Tt4Lwb=<#&3%hCn0_=GVcaELG;ESQ8rfDw) zLCAmr=Gl@{F#wh0k+I^&o98?y51z%=Efvt-MWHCllh)SO$)(`3Cm|w>ku<8l&&?L~ zKJWFc&37Oe3_c8nLfYTpG7+URJ0PMum&@e_Pz``j$3H78_#07k18&@5(<%S}002ov JPDHLkV1nh>_Q(JL literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_moved_new.png b/public/images/map_markers/okapi/log/medium_log_moved_new.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7a55b3bf6928af7f9aa6f5480b1eae2751a507 GIT binary patch literal 945 zcmV;i15W&jP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00F^CL_t(2&yAA5Z_`j5#P8XGs_l--U%)~K76hvUB16X)<_>fy zZ)HVgLi`YdftIOZX_dkD8ZnrmAXV`~X(>_`)T%>;-vbL0l8`vgG319V2vxrO=X7`9 z1121e$Wx1u1|f}D!n8*t@-*0!Qc_Au8nH)>r71w$)i3m6rhVn0gRF&>$?X%B$sa8Bcb1VOth#%fj5u z3~HyRh+8crX^K99^_w@Kl!CkAeH0gPB?k^H#Bq#nuZKQ~H0|T$+jqP?`hsh-^O()q zIA>Yon9U|G0)PdGHTRXbuav?A$3eT>Mg4ahal3`lpPj!OT1h)Z+7Ko{b~?2>dC)zZ~p0j`20{#q{8W`!Dzh&89K* T1E81I00000NkvXXu0mjflU1EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00F{DL_t(2&y|v~Yg1tq#ees`XsLCU`WLv^!9|=C#ei=8aL!q?gn`l9Fu-RIdmVobNamW;hDulenYOR_Mk}6XCJ~V2z4Q=vr9nz#hW33nN_&c0) zI56a_NXjCS6Cx*anZuqHNm*gp7^B7*bt20S{w?5yloMGo#%Qb6QfsXmW7NW`J;;HD zl!aHu7*$ohwX~!+pOjTqyAF_=l_3tCkaWUI54=~c>g{Jw^+vg@*Gi?nfQ6bJh~PO$ zqTHRDG!sD(a6gJTnn>V#K5-ng(`u6~772oYoH3^axnt=@5GO=aljdxpP++D~!S_6T z&*Rw02(^t38r$2n;+T%Y?1l5>ayjy0_~HbdNuXT|jYfmrcAJhWaopj<=Px{{zvJBK z7^4ZFBc9if`4dh8_}7t-m)^da$ko@!^V8Fm*4EhC-QjDq$?=X-ZEi6JRI*tznG7?< z@cVP&@gs=3g&}DNtG&XmhDE)yxTwjwIXyj_?-%x7*bI?*V0`cQ8i%w)YCQq7u%H(o z&JTh=0{9c$U)R2XwYEQ!b=V9K0te=qw#e(=JnQf+ltX~OIe1wYJ`K(IANN=A7lhOZ UV+=Hr>Hq)$07*qoM6N<$f@+Ss$^ZZW literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_needmaintenance.png b/public/images/map_markers/okapi/log/medium_log_needmaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..26243c3c24f204e25c4947b087ec5ad8edd0edf7 GIT binary patch literal 807 zcmV+?1K9kDP)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~00B2iL_t(2&$W`VO2beThQG8TqTnRhC-7xlZy%vkHy0gU^aZ+z zn-#3kIEg}0RIr;4I%pA!gVxd@4QbVzwztV~X&^&ttKeA=-*@$ue*%p$ z;yBLl1WG9p5gELkNUwe*A~KyI0t4q#2Ct{mtJ|UU4s`tJCcq33nWS7U<3H{bnjV4QAvM2Ds9VVFB1@|~WV2ap+b#lK zAd{H8ds`5%x-IV6y1XCf;(7OgwGo&ZTby^jCGGQ#>A|?bah&**B!bpYf>9qu;2t;_ lty&Y|SgYM6aM~H0@f*oe=-szoWIq4^002ovPDHLkV1fiZXJG&U literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_needmaintenance_found.png b/public/images/map_markers/okapi/log/medium_log_needmaintenance_found.png new file mode 100644 index 0000000000000000000000000000000000000000..cb834dc48719293c52db45a3099da71527604f95 GIT binary patch literal 1083 zcmV-B1jPG^P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00K)%L_t(2&!v)GNK*k6$N%R}cb$xRv-z13VqsB1^%6pgZV%Oi z2yq|UOTj?s10pDViC{~6kU|p*2H`^#4!Qh9=N#ZaM7a{OEc*aJQ4}8l3xIq8X#hGA<*q2pvQO7_Uo;x^wYIjl zGqc-dvzeJsGjn;)&ay1~6h(oqy@r`eK&&|@se@{1S&g$#DwL?IWFHG83=`2W%O8lD zMZ+-e1_A+?u_2R91ITmO&BR8jv$~cp-SHm%v@|^7K5~}C`~sWb@1GYkV09=I3UqXI zRG912dr2&^31YEbC@3jQrZ$C%_g%Pku^o}`KRrg;0Dx3>Y*kgC)i<0HW~T;FzN-cf zne_9B<3RHNG9W=zP4%^ z`}_ne;U8dQ167rWQC3_5^^F=PqWu6M06A#ho|rUGtnja{*hk{V)?-;M68WF&`)8hfw>x0>*s=K>;W;?j!NtoH9r}g72>&q2GZ-+d)9ZvN2 z_6`JtLG5pFhnUUm4w$*w<#M?J)B&((;-8fh{0*GP0`!@S0?Ysa002ovPDHLkV1nsI B=Vt%_ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_needmaintenance_new.png b/public/images/map_markers/okapi/log/medium_log_needmaintenance_new.png new file mode 100644 index 0000000000000000000000000000000000000000..980bf353a5b8ead0e4eb5059a1e7928ef5932ec3 GIT binary patch literal 932 zcmV;V16%xwP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00Fc~L_t(2&yAA1ZWBQmh0niEL=*}{LqeN^o`wgo8yBh2@CYf; zJOJsal7=!8NE9h(jFfeSh!n8`BvQlzk*gI)iXbuCN-2h6NZ0mmdTC$6&X4f{K@y@xc*yCHNOV&r1b)RQGTI0000EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FK^L_t(2&y|utPg8LehM#kb(coZQ1Xl-l7e7F|ba2w&S77me z0NI>ya3x`IaB!)Kx08{CXw*cOMk9Zuu_ie1dj# z95^!1q9WD7Jhz}3$qB&U4A!=U`q+;DaeoDW0S%BH_jm^fC;$Ke07*qoM6N<$f)#+S AQ2+n{ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_readytosearch.png b/public/images/map_markers/okapi/log/medium_log_readytosearch.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3853a93e0151fb7e0a88c8d6207a9ebab06e08 GIT binary patch literal 762 zcmVEX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv00000008+zyMF)x010qNS#tmY z4#WTe4#WYKD-Ig~009a~L_t(2&$W^!h^-2}<9nO~_wvDi#26!EjGh9I$D^#Zj|q%1lBDTW zN>fSFeS!j9E~VK_noOkO@D4#4T(70YLK=^yIF`b&THq956h+MEF0~rCF4XI=TETV; zrxTpd;CWy8zE6@Q4nVE2WLZX@!{Go~b^+5AHXGROF7Kth0=Ph7QXI#OMv&(hpxFd# zq0xYD7d+1=Ns<8A1Fg#5K`0FdQl}%e+dulg0WVjub#u6WU+VQ90LubvZTUzlLFYHY sb&mk}0N$@(pMS!oRrgiky}8-(8~<6?4#V74b^rhX07*qoM6N<$f^c|PJpcdz literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_readytosearch_found.png b/public/images/map_markers/okapi/log/medium_log_readytosearch_found.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea2819f5901439d20ba8b7c2689a5eceb4c79e7 GIT binary patch literal 1071 zcmV+~1kn45P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00KWrL_t(2&!v)INRwd{hoARbx=rT#s^wZ}5*cL_WOsr^+b*&T z>E?qPLD4`ciV!MqBG}XjDKIaBfp}H8Xa!LVqG1|{MhQxaMP@m+L{Vnpbj|&FyIDh$ zT|_@PSBK}E^E>Cje@GNcXqx5$2m}HiKnD~786YKuC|ps~G*2p(^32W6c^VrVTcwoF ztjsn@DUV4hw-xNHX__Yx2rxJZ$t2kAsG;6anRSGVyX&&TK}*-QqEMojTIWxK04iSsS)1Hc(5Nma3~B$G2Nj+A)-pox$D;h6=-!ePSGi~L*xo5jqzlNEH{ z?Tog!x4#3DfJx*$*CtjImaDffyH3@g;pG4%mLa|jdSfxSuI(ex^El>qyL*9IU@YHR z2r*Kuc2JC+62QT+@JM;{ohz;j zCz`0soN#lSnCbsZ6S7aVci&@9TGMFF?tbd``y+pY>m+41 pzXK^{gTvu)0=0lC7yqn+;BPpA_T=NXgggKM002ovPDHLkV1nBz?x6qx literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_readytosearch_new.png b/public/images/map_markers/okapi/log/medium_log_readytosearch_new.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ac8aa0f03c8ba063d22dd944852b443dd5ae2e GIT binary patch literal 892 zcmV-?1B3jDP)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00E3iL_t(2&yA8lPnuC2g`bNg4(@0_Mwjl&!r*xM5a#Zzog7S8 zLpKK*7l;Z%eLQ4(5{W&?$y$2SYg2~F8x&n0t zv(2)nV6qA{thKV%O2IVb*PU8zub^&S4AUyaPc6x^77xSYIcB?0^U(%#-2IH*Sa z3(kDmOF$gQFC+QWrvD~5GtZp7X(sa={G?kwS_1s5!PTJ6@9L3R9$aw$1)l+nfj&cf S|C+%70000EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00D(bL_t(2&y|uPPg`LWhM!ZKAn=9#jG1|;shHcxpV;-aQwXL> zge3gCraBbB&5)HqTJoGb&MVVym_CK7Z#kGl^ttGqaDp& z^W1Z@vKyTcf5<-w99UV!nmLzG` z0PDFeXb_E!Xq;zYrz0I7ONWQj{(c_d(DQkP2pf@^V+LMcN~fpN!GY9lO7;4q23=>S zV9{v5eG^_a8VycPiWCY^EW*kPbh~hU4R?1ioxEX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00BBlL_t(2&$W^&XCLH0K{>e$fx9LwTkas ztg+ZPi)|XL7hqc*I=-ddw&Bp7kK~?7wAMV%ui^(?TCawenvd5oBqn0a&1%x=G>+rs z0S`zGEbQiTNs8wgIXO~tc(4#IY!}$>fvKU5Uz{z<>9HCe3=3S>4L`|1F!G(C*GC?> o2KIWZ=O5uvtKJ}R)ERo?JLgi_0|-w8Jpcdz07*qoM6N<$f)hP)3jhEB literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_found.png b/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..153810e1d815145f90d172772bca3145afe947e1 GIT binary patch literal 1087 zcmV-F1i<@=P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00K`*L_t(2&!v)INK-kXmHHdwBuN2PRReQ#bAk5u z_HH8b>ZG?4(P1L0D%n|*q<}2TSpI$*xttEGvtLvO6`Q@r8WlH-%(=CiIO8LXu_ePF zh=|Ja`TVs=Bm#B0L)SC{xZ9G;uGk#ab?nSlzkBS*$b0X;qpZxd$s7y@zwrXNGaipe zLZOgDTYKg*3AJXE;I7kf{8K=M~d< zUGKtD;~{vOy3l*GHysX#69BRREUe(UVKujEy?Fhc@A#3Em`w(eUDL6a)nF8?I3eAE z9DT6h_xlF{WB^PQJ2S>c&4M{|xg!|sf7pi|)mH$WU=V;~ZMX6A#i*7_rCy1mSOfw5 zV(U)D0PLSgjypSVT=1Q3JC8lPb|W>FMm!#W($mxPWj(mzNr=dxYHHo$&jrWu(6Fzv z+=_vLfk&}eEcG|IK}33S2Sn8B@p!xd8UR=d@y{v={sz_i{eS}p$Ho8v002ovPDHLk FV1hy%_yPa` literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_new.png b/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_new.png new file mode 100644 index 0000000000000000000000000000000000000000..48d51d181486434deb434a761a94adf0e80d1174 GIT binary patch literal 898 zcmV-|1AY97P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00ELoL_t(2&yAA7Y7tV7sBHR5U4=%Py{fGu1R;@BISr zc5N1Hm5TZo%$#f(5QgD!L1%SE*Mgb%EZ|Hfeb3g_j=6E(w16}Ft-5}dHqH3pi1{!0 Y7b<6FM$A$7NdN!<07*qoM6N<$f`oIJE&u=k literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_own.png b/public/images/map_markers/okapi/log/medium_log_temporaryunavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..3b0cc7fa98ee8a6db8d34479531ccfd73bb7b903 GIT binary patch literal 899 zcmV-}1AP36P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00EOpL_t(2&y|u-OH=_A#m^1tGfWFNZd*$0U1yvWhkL#X^6ig7PDpi#(5;*Yh02dToWJ^^UMG?)6s!9WP>?#8T3I=SeDoOIh zrg`+GOp-kVNZn+BfeZ33*h;|8$t**kp*PEHHcDxL0d>n(a3JsKbtK77I7_yl^T)Sm z{JQ^?pK4Rw4W48TYKF@SE~q9QL!V)^aF@U4M#+g0cJB?dJ$;+U^LM!Mb~62e0|5XG zfjxs(tA!h#7&oIBIFBKx5#q3exZOqfXN5%{c002ovPDHLkV1k<9iP``F literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_willattend.png b/public/images/map_markers/okapi/log/medium_log_willattend.png new file mode 100644 index 0000000000000000000000000000000000000000..d493aca4972510e1a282384110a98b200c8804dd GIT binary patch literal 804 zcmV+<1Ka$GP)EX>4Tx04R}tkv&MmP!xqvQ>7x64t5X`%ut;yNELC^DionYs1;guFnQ@8G%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~9J6k5di;PO7sd*^W9eSpxYGR^852Q=L_ zGpVGQ%dd!`SA;N36+uE~mN6?yY51XW}PT+o-7xK1^M6c(@u2_h8KP(c+o;KlnXct2mMHlEO)#`^9lSMu5;R(5ySo_p#$NPk`VvaHY5X8x3Iklk|F9 ziyZ-xZQ$a%ttorJdmcnj?)JqOS4Mf00)P_ zXo<4deBRyDIk$iBwC48%eF1W-Aw`IP00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00A^fL_t(2&$W^-|2|iZ2m0p!ME{PJ|+`+9uDQM-Ijd4E?LV8 z6&OBPC=__HZ46*95+NRo(dcQMxr?`6BO;t8lcdvWOw%*~BEDrb8nN&^+~tz-Y(_(C z%AGcY>6FQ0j_Y~BqZa`CfNzpwvB+(!#d5X6nY$bv#2L6V4x>>r$0wvxDNNJM0S=G| z&7HL@xvteD^In$oQYo1C1~}V*iLJ$5RjYDYsq7901zPLilZ1lCcY;kHIp7n>Z&tk@ i;XtcS7`W?f&G-ekwC9jfih_0k0000u@sw literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/medium_log_willattend_found.png b/public/images/map_markers/okapi/log/medium_log_willattend_found.png new file mode 100644 index 0000000000000000000000000000000000000000..bd01aa4b44875c9c44b739fcfbf74bdffb23d2f0 GIT binary patch literal 1089 zcmV-H1it%;P)EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00L1-L_t(2&!v)INK+Zd~ zrcdi0CvCZ7JAU6vcofNr=tNK-G2BJDq|YlPjxs+B<|2fw?NGiDO(JV{Fm% z2O=ViuImrO;V}9a7Y)NOu!-YrX;rP=UfUSsjry$ zwSXmk4NgJ8m7^!n_M|P@($ew)Kn8$~$S{eY6up=c^fip>a} zZG_bEa^C0j#Q;nJ7|wTQj15?M>(ssL!N{}Dr#R=_4iJIo8SbCDfc|#_*+e4oQ4oYY z2w;V+I~4EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z zj1?$*y~Dc$?Y;ebrrF;QW7l$_*(|UH00006VoOIv0I&e808B=V8q@#)010qNS#tmY z4#WTe4#WYKD-Ig~00FK^L_t(2&yA8lYg17e#-I15l*Un{wD}ee^#e3ZgpNo2403jd zF5LuiQ_wA=8G1W7*y$o-QF<$ww6-BosU;-Pb56;PxyCeq$kQQzxYbzl?!SlMbIt?I zI6BGFN=S#0PBt*_(MgsLMWqy#Qlyh2EjH!=k)@L(r4;-9K8-P>0E^>W4QP?2#doC? zNir~oyY)Irjsv7ZH^YDq>vTApfS;p?AFSp3T8;kMSt05lLjZWqY6TY@X-_Xpin5_Qxrh}q&yGl#YOzMFlb$M&>s##5|1+( zXsxmR+Aqm6?k|8NgGQr)?qC3t7z~G~M-jqW75CD2kn#j6@us%zHdX<^17vIajen@M z#=}eoon8;^ZWpbq4(=|c;W~d1_j-7`wg#;=@-O^f``@q&U}fA}amXIPmc=nE0}3fH7t|lHccO-3lh= znWL4H$voqqXa+lTfPWbr#^<;Qc4U5V#{Cz(21EX>4Tx04R}tkv&MmKpe$iQ^is%B6bjQ$WWauh)QwPDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^=X@&~)2O zCE{WxyDIj)B7gw|(TkYOEMrcRlIS?T?&0I>U6f~aKKJM7Q*#yrd?N8IGfbO!gE+Qn z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#26Gv1{r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z 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 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_comment.png b/public/images/map_markers/okapi/log/tiny_log_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..99a5bbbab471524a45cf9eb03f2b2ad8014f7355 GIT binary patch literal 634 zcmV-=0)_pFP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%004?fL_t&-)18n(3c@fDMZaLAUZ#hUIf8d`hGRXSI<=oYr`y!3F96P61yya8J+$$j4`{c+j%%kofNNd80dCiB Um0zizs{jB107*qoM6N<$f{Q;EV*mgE literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_didnotfind.png b/public/images/map_markers/okapi/log/tiny_log_didnotfind.png new file mode 100644 index 0000000000000000000000000000000000000000..f45b3960365e50f226e1016515c2c84809089f6c GIT binary patch literal 647 zcmV;20(kw2P)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%005UsL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|NsAa&({BMRxJGg|NnnX#W0gT@7wZT_Q3=DH%f&in9Yf9wIaxee@002ovPDHLkV1m)cD+>Ss literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_foundit.png b/public/images/map_markers/okapi/log/tiny_log_foundit.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3159073d6aec70edb8d785f7e3ed3928371d04 GIT binary patch literal 645 zcmV;00($+4P)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%005OqL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|Np=B_S*k_hg<&t|NkFTG0dcGx7Yl?{O0Wcl8ssaBj)-eo2OtM~ fgn@x!4onaL1VCre;(d4700000NkvXXu0mjft?DLE literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_mademaintenance.png b/public/images/map_markers/okapi/log/tiny_log_mademaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f13f308b498fcfc9e199b6add7b54c26ac0191 GIT binary patch literal 646 zcmV;10(t$3P)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%005RrL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|NlS#%eDWlkB|QU|NlRxVwg$uzg+vj`Tyhp1y^_cPdK?2*5d!D+t5tgj4JO`|MnRZ1r>o28I+2C%k<564^>jMOcCdMG+$wwR%uD gJz-#Am;)080NkK!kdshE>i_@%07*qoM6N<$g0CzklmGw# literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_moved.png b/public/images/map_markers/okapi/log/tiny_log_moved.png new file mode 100644 index 0000000000000000000000000000000000000000..4298cb51f074e2d3f6a47733afe16d6b244e7bd0 GIT binary patch literal 621 zcmV-z0+RiSP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%004bSL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|Nmch=+OU=ZQK6;|NkFTG0dduBZvP_IDPuR-MY2^wU;hMF_{IX_}#mA4EMf#WjOKr z4a4C_j~N6wIT-L-t-W;Vf5DkEuv?9+_~px&_&q~X@ZbXgsxM;iKU(zz00000NkvXX Hu0mjfvn(5{ literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_needmaintenance.png b/public/images/map_markers/okapi/log/tiny_log_needmaintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..f2db72b75e64f05c642b568f806b34fba4697905 GIT binary patch literal 622 zcmV-!0+IcRP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%004eTL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|NsBz$>#q*ZqEDv|NnnX#W0ipJl*{N|J%d=zh3D7|LJHAipeZ6#qZv|W8nYtn&Ic` zI}Bg%onc_+;$^^V^{1n?|KIM+#BMdR;+HR9;`ae!vFvP07*qo IM6N<$f*r9WmjD0& literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_readytosearch.png b/public/images/map_markers/okapi/log/tiny_log_readytosearch.png new file mode 100644 index 0000000000000000000000000000000000000000..6f458cbd4e79ddcf84563cc659445b4551badf45 GIT binary patch literal 606 zcmV-k0-^nhP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%003@DL_t&-)1A<}5kOEBgy9pY0flWt+Mos%2*}B0#3#85xWO+n z!x-1F@i%)OW`83INxY&MBkul;B>^x_&~*UZ@zFF+FwfAo&@^0{vjc|^Yzw)qi&;OI sl|^DdfVzgNdKi7i?w&s8(|c0c0XO(%r&IQD1ONa407*qoM6N<$g1DsyZ2$lO literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_temporaryunavailable.png b/public/images/map_markers/okapi/log/tiny_log_temporaryunavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac3530cb0c21bf188a9b5bd53edf4875e634a97 GIT binary patch literal 622 zcmV-!0+IcRP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%004eTL_t&-(_>&D7led_{0|8U`A<;M@87@wzkK-;x8jhHkpKVx z|NsB>ZQ=hH53~ON|NkFTG0dbtJHr0|+a2-${c@lGuNQivn9KrG{O;X52HqdP8Gilv z!|>_V7X}t~7K9`=tFN9<_62E6i3Lbm_0E4e(M37|kdjJ3c07*qo IM6N<$g0pEF6aWAK literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/log/tiny_log_willattend.png b/public/images/map_markers/okapi/log/tiny_log_willattend.png new file mode 100644 index 0000000000000000000000000000000000000000..554da3a2010579b2bae247552b9ada499189543f GIT binary patch literal 620 zcmV-y0+aoTP)EX>4Tx04R}tkv&MmKpe$iQ>CS}h}c2IAwzYtAS&XhRVYG*P%E_RU~=gfG-*g$ zTpR`0f`cE6RRx%k;EdFAVGwJI?AY^hB&P{DHhVSpYZSxIev*;3c1Q) z0{s+IiwF;9HZc;b_^uE~k#|RME1zHW;{yw(t)(PN$2CnpuzuE+5K1pwM zwAc~Qw+&oecQj=WxZD8-pA6ZQ9m!8qC=`JAGy0|+FmMZm*4*CO`#607GSpS-1~@nb zMvIia?(yzmcW?imY4`U7JP~q{J3#RP00006VoOIv0LlRJ0P?>Te~SPB010qNS#tmY z2x$NS2x$RKU55t%004YRL_t&-)1A;U3c^4XgyC1%r1flbA}^66*n0x4g6Z5=D-B;&dH$ESl!?^fPw%@-aWXr<4bSUTDr4S~3s-0000= 13) ? 15 : Math.max(0, zoom * 2 - 14) + )) / 127; + instance._backgroundLayer.setOpacity(opacity); + }); + } var frontViewFeatures = {}; var sources = {}; var currentZIndex = this.markersBaseZIndex; var allExtent; - var renderOrderingReverse = true; var instance = this; Object.keys(this.markersData).forEach(function(section) { var featuresArr = []; @@ -599,34 +634,9 @@ InteractiveMap.prototype._loadMarkers = function() { instance.map, markerType, id, markerData, section ); if (visible) { - var geom = feature.getGeometry(); - if (typeof geom["getCoordinates"] === "function") { - var coords = geom.getCoordinates(); - var key = "" + coords[0] + "," + coords[1]; - var isFirst = ( - typeof frontViewFeatures[key] === "undefined" - ); - if ( - !isFirst - && ( - renderOrderingReverse - ? frontViewFeatures[key].zIndex < zIndex - : frontViewFeatures[key].zIndex <= zIndex - ) - ) { - frontViewFeatures[key].feature.set( - "isFirst", false - ); - isFirst = true; - } - if (isFirst) { - feature.set("isFirst", true); - frontViewFeatures[key] = { - feature: feature, - zIndex: zIndex - } - } - } + instance._determineFirstFeature( + feature, null, zIndex, frontViewFeatures + ); } featuresArr.push(feature); } @@ -655,7 +665,7 @@ InteractiveMap.prototype._loadMarkers = function() { ocLayerName: 'oc_markers_' + section, renderOrder: function(f1, f2) { return ( - renderOrderingReverse + instance.renderOrderingReverse ? ( (f1["ol_uid"] > f2["ol_uid"]) ? -1 @@ -706,19 +716,6 @@ InteractiveMap.prototype._loadMarkers = function() { } if (this.enablePopup) { - // most top, foreground source and layer, where popped up features will - // be temporarily placed - this.foregroundSource = new ol.source.Vector(); - - var foregroundLayer = new ol.layer.Vector ({ - zIndex: 500, - visible: true, - source: this.foregroundSource, - ocLayerName: 'oc__foreground', - }); - - this.map.addLayer(foregroundLayer); - this._popup = new InteractiveMapPopup() this._popup.addToMap(this); } @@ -734,8 +731,9 @@ InteractiveMap.prototype._getFeature = function(markerType, localId, section) { markerType, localId, section ? section : "_DEFAULT_" ); + var instance = this; this.map.getLayerGroup().getLayersArray().some(function(layer) { - if (OcLayerServices.isOcInternalLayer(layer)) { + if (OcLayerServices.isOcInternalCommonLayer(layer)) { result = layer.getSource().getFeatureById(featureId); } return (result != null); @@ -744,39 +742,198 @@ InteractiveMap.prototype._getFeature = function(markerType, localId, section) { return result; } +/** + * Returns an array of OC features from given source, ordered by markerId. This + * should ensure order as displayed on map. + */ +InteractiveMap.prototype._getOCFeatures = function(source) { + var result = undefined; + if (source && typeof source.getFeatures !== "undefined") { + result = source.getFeatures().sort(function(fA, fB) { + var cmpResult = 0; + if (fA.get("ocData") && fB.get("ocData")) { + cmpResult = + fA.get("ocData").markerId - fB.get("ocData").markerId; + } + return cmpResult; + }); + } + return result; +} + +/** + * Invokes an operation for all (or some, see later) marker layers. An operation + * sshould be a function taking a least a layer as a parameter. If a + * firstMatchOnly is true, operations are invoked sequentially until one return + * true (typical "some" Array behaviour). + */ +InteractiveMap.prototype._doForOCMarkersLayers = function( + operation, firstMatchOnly +) { + var iterator = ( + (typeof firstMatchOnly != "undefined" && firstMatchOnly) + ? "some" + : "forEach" + ); + return this.map.getLayerGroup().getLayersArray()[iterator](function(layer) { + var match = /^oc_markers_(.+)/.exec( + OcLayerServices.getOcLayerName(layer) + ); + if (match != null) { + return operation(layer, match[1], arguments); + } + }); +} + +/** + * Modifies "isFirst" settings for features in every markers layer. + */ +InteractiveMap.prototype.determineFirstFeatures = function() { + var frontViewFeatures = []; + var instance = this; + this._doForOCMarkersLayers(function(layer) { + var features = instance._getOCFeatures(layer.getSource()); + features.forEach(function(feature) { + instance._determineFirstFeature( + feature, + layer, + layer.getZIndex(), + frontViewFeatures + ); + }); + }); +} + +/** + * Modifies "isFirst" settings for given feature. A layer parameter can be null, + * if not its visibility is included into computation. A zIndex parameter should + * be given feature zIndex level and frontViewFeatures: current set of features + * with "isFirst" value set. + */ +InteractiveMap.prototype._determineFirstFeature = function( + feature, layer, zIndex, frontViewFeatures +) { + var geom = feature.getGeometry(); + if (typeof geom["getCoordinates"] === "function") { + var coords = geom.getCoordinates(); + var key = "" + coords[0] + "," + coords[1]; + var isFirst = ( + typeof frontViewFeatures[key] === "undefined" + && (!layer || layer.getVisible()) + ); + if ( + !isFirst + && (!layer || layer.getVisible()) + && ( + this.renderOrderingReverse + ? frontViewFeatures[key].zIndex < zIndex + : frontViewFeatures[key].zIndex >= zIndex + ) + ) { + frontViewFeatures[key].feature.unset("isFirst"); + isFirst = true; + } + if (isFirst) { + feature.set("isFirst", true); + frontViewFeatures[key] = { + feature: feature, + zIndex: zIndex + } + } else if (feature.get("isFirst")) { + feature.unset("isFirst"); + } + } +} + +/** + * Adds another callback to callbacks invoked when sections orders has changed. + * A callback is a function with an array of changed section layers as + * a parameter. If a callback is an object method, the object should be passed + * as a second parameter. + */ +InteractiveMap.prototype.addSectionsOrderChangeCallback = function( + callback, obj +) { + this._addCallback(this.sectionsOrderChangeCallbacks, callback, obj); +} + +/** + * Adds another callback to callbacks invoked when section (layer) visibility + * has changed. + * A callback is a function with section name and corresponding layer as + * parameters. If a callback is an object method, the object should be passed + * as a second parameter. + */ +InteractiveMap.prototype.addLayerVisibilityChangeCallback = function( + callback, obj +) { + this._addCallback(this.layerVisibilityChangeCallbacks, callback, obj); +} + +/** + * Adds another callback to callbacks collection if it do not exists there + * already. + */ +InteractiveMap.prototype._addCallback = function(collection, callback, obj) { + if (typeof callback === "function") { + if (typeof obj !== "object") { + obj = null; + } + var element = [callback, obj]; + if (collection.indexOf(element) < 0) { + collection.push([callback, obj]); + } + } +} + /** * Reorders sections basing on given orders array, by setting z-index */ InteractiveMap.prototype.reorderSections = function(orders) { var instance = this; - this.map.getLayerGroup().getLayersArray().forEach(function(layer) { - var match = /^oc_markers_(.+)/.exec(layer.get('ocLayerName')); - if (match != null) { - var section= match[1]; - if (orders[section] !== undefined) { - layer.setZIndex(instance.markersBaseZIndex - orders[section]); - } + var sectionsChanged = [] + this._doForOCMarkersLayers(function(layer, shortName) { + if (orders[shortName] !== undefined) { + layer.setZIndex(instance.markersBaseZIndex - orders[shortName]); + sectionsChanged.push(layer); } }); + this.determineFirstFeatures(); + this._doCallbacks(this.sectionsOrderChangeCallbacks, [sectionsChanged]); this.map.renderSync(); } /** - * Toggles visibility of given section + * Toggles visibility of given section. */ InteractiveMap.prototype.toggleSectionVisibility = function(section) { - var instance = this; - this.map.getLayerGroup().getLayersArray().some(function(layer) { - var match = /^oc_markers_(.+)/.exec(layer.get('ocLayerName')); - if (match != null && match[1] == section) { + var toggledLayer = undefined; + if (this._doForOCMarkersLayers(function(layer, shortName) { + if (shortName == section) { layer.setVisible(!layer.getVisible()); - if (typeof instance._popup !== "undefined") { - instance.map.once("postrender", function(evt) { - instance._popup.adjustFeaturesByLayer(layer); - }); - } + toggledLayer = layer; return true; } + }, true)) { + this.determineFirstFeatures(); + this._doCallbacks( + this.layerVisibilityChangeCallbacks, + [section, toggledLayer] + ); + this.map.renderSync(); + } +} + +/** + * Invokes callbacks from given collection sequentially. + */ +InteractiveMap.prototype._doCallbacks = function(collection, args) { + collection.forEach(function(element) { + if (typeof element[1] === "object") { + element[0].apply(element[1], args); + } else { + element[0](args); + } }); } @@ -816,8 +973,65 @@ InteractiveMap.prototype.toneDownFeature = function() { } } +/** + * Returns a layer (a markers layer) containing given feature + */ +InteractiveMap.prototype.getFeatureLayer = function(feature) { + var result = null; + if (feature && feature.getId()) { + var instance = this; + this.map.getLayerGroup().getLayersArray().some(function(layer) { + if (OcLayerServices.isOcInternalCommonLayer(layer)) { + var source = layer.getSource(); + if (source.getFeatureById(feature.getId())) { + result = layer; + return true; + } + } + }); + } + return result; +} + +/** + * Returns a layer with given OC name + */ +InteractiveMap.prototype.getOCLayerByName = function(name) { + var result = null; + this.map.getLayerGroup().getLayersArray().some(function(layer) { + if (OcLayerServices.getOcLayerName(layer) === name) { + result = layer; + } + }); + return result; +} + +// ================================================================= +// Popup class (proptotype) definitions // ================================================================= +/** + * An Array-based collection of features displayed in popup. Introduces rotate + * by one method. + */ +function InteractiveMapPopupFeatures() {} + +InteractiveMapPopupFeatures.prototype = Object.create(Array.prototype); + +InteractiveMapPopupFeatures.prototype.constructor = InteractiveMapPopupFeatures; + +/** + * Rotates elements by one in given direction. + */ +InteractiveMapPopupFeatures.prototype.rotate = function(forward) { + if (forward) { + this.push.apply(this, this.splice(0, 1)); + } else { + this.unshift(this.pop()); + } + return this; +} + /** * An InteractiveMapPopup prototype */ @@ -834,9 +1048,10 @@ function InteractiveMapPopup() { }, offsetYAdjusted: false, }); - this.features = []; - this.featureIndex = -1; + this.features = new InteractiveMapPopupFeatures(); this.offsetYAdjusted = false; + this.foregroundSource = undefined; + this.foregroundLayer = undefined; } /** @@ -845,68 +1060,145 @@ function InteractiveMapPopup() { */ InteractiveMapPopup.prototype.addToMap = function(interactiveMap) { this.interactiveMap = interactiveMap - this.interactiveMap.map.addOverlay(this.popup); + var instance = this; + + // most top, foreground source and layer, where popped up features will + // be temporarily placed + this.foregroundSource = new ol.source.Vector({ + useSpatialIndex: false + }); + + this.foregroundLayer = new ol.layer.Vector ({ + zIndex: 500, + visible: true, + source: this.foregroundSource, + ocLayerName: 'oc__foreground', + renderOrder: function(featureA, featureB) { + // order by current features, reversed to get the first one upmost + return ( + instance.features.indexOf(featureB) + - instance.features.indexOf(featureA) + ); + } + }); + + this.interactiveMap.map.addLayer(this.foregroundLayer); + + this.interactiveMap.map.addOverlay(this.popup); + + this.interactiveMap.addSectionsOrderChangeCallback( + this.sectionsOrderChangeCallback, this + ); + this.interactiveMap.addLayerVisibilityChangeCallback( + this.layerVisibilityChangeCallback, this + ); + this.interactiveMap.map.on('click', function(evt) { instance._mapClickEvent(evt); }); } /** - * Should be called after any oc layer visibility change to adjust current - * features available in popup to the changed visibility. A layer where - * visibility has been changed is passed as a parameter. + * A callback for reordering appropriate popup features when sections orded has + * changed */ -InteractiveMapPopup.prototype.adjustFeaturesByLayer = function(layer) { - var s = layer.getSource(); - if (s && this.features.length > 0) { - var instance = this; - var oldFeatureSource = this.currentFeatureSource; - instance._clearFeature(); - instance.interactiveMap.map.once("postrender", function(evt) { - var features = instance._getMapFeatures( - instance.interactiveMap.map.getPixelFromCoordinate( - instance.popup.getPosition() - ) - ).filter(function(feature) { - return ( - feature.getId() - && ( - layer.getVisible() - || !s.getFeatureById(feature.getId()) - ) - ); +InteractiveMapPopup.prototype.sectionsOrderChangeCallback = function( + sectionsChanged +) { + if (this.features.length > 1) { + var currentId = this.features[0].getId(); + this.features.forEach(function(feature) { + sectionsChanged.some(function(section) { + if ( + OcLayerServices.getOcLayerName(section) + === feature.get("sourceLayer").name + ) { + feature.get("sourceLayer").index = section.getZIndex(); + return true; + } }); - if (!layer.getVisible() && s === oldFeatureSource) { - // currently displayed pop feature is hidden in layer, - // so reset index - instance.featureIndex = -1; - } else { - // currently displayed pop feature is still visible, - // so determine its index in new array of features - var currentFeature = instance.features[instance.featureIndex]; - features.some(function(feature, index) { - if (feature == currentFeature) { - // set new index before desired feature, - // to be correctly used in _switchPopupContent - instance.featureIndex = index -1; - return true; - } - }); + }); + this.features.sort(function(a, b) { + return b.get("sourceLayer").index - a.get("sourceLayer").index; + }); + while (this.features[0].getId() !== currentId) { + this.features.rotate(true); + } + } +} + +/** + * A callback updating 'visible' value of sourceLayer value for corresponding + * feature if the sourceLayer matches a layer given as a parameter. If currently + * displayed in popup feature layer is hidden, the next one visible is displayed + * or the popup is hidden if there is no features to display. + */ +InteractiveMapPopup.prototype.layerVisibilityChangeCallback = function( + section, layer +) { + if (this.features.length > 0) { + var layerName = OcLayerServices.getOcLayerName(layer); + this.features.forEach(function(feature) { + if (feature.get("sourceLayer").name == layerName) { + feature.get("sourceLayer").visible = layer.getVisible(); } - instance.features = features; - if (instance.features.length > 0) { - instance._switchPopupContent(true); - } else { - instance.popup.setPosition(undefined); + }); + if (!this.features[0].get("sourceLayer").visible) { + if (this._switchPopupContent(true) == 0) { + this._onHide(); + this.popup.setPosition(undefined); } + } + } +} + +/** + * An event handler to be assigned to OL map 'click' event. + * Checks all features being under clicked pixel and selects them if coordinates + * match the first one selected. + * If an array of selected features is not empty, the popup is shown. + */ +InteractiveMapPopup.prototype._mapClickEvent = function(evt) { + this._onHide(); + var features = this._getMapFeatures(evt.pixel); + if (features.length > 0) { + var instance = this; + features.forEach(function(feature, index) { + instance.interactiveMap.getOCLayerByName( + feature.get("sourceLayer").name + ).getSource().removeFeature(feature); + instance.foregroundSource.addFeature(feature); + instance.features.push(feature); }); - }; + this._switchPopupContent(true); + } else { + this.popup.setPosition(undefined); + } +} + +/** + * Should be invoked on popup hide or location change. Moves popup features back + * to source layers and resets some attributes. + */ +InteractiveMapPopup.prototype._onHide = function() { + var instance = this; + this.features.forEach(function(feature) { + instance.foregroundSource.removeFeature(feature); + instance.interactiveMap.getOCLayerByName( + feature.get("sourceLayer").name + ).getSource().addFeature(feature); + feature.unset("sourceLayer"); + }); + this.interactiveMap.determineFirstFeatures(); + this.features = new InteractiveMapPopupFeatures(); + this.offsetYAdjusted = false; } /** * Returns map features being under given pixel, with exclusion of foreground - * (popup) layer. + * (popup) layer. The resulting features are prepared for popup, with + * 'sourceLayer' values set and are properly sorted. */ InteractiveMapPopup.prototype._getMapFeatures = function(pixel) { var result = []; @@ -917,9 +1209,7 @@ InteractiveMapPopup.prototype._getMapFeatures = function(pixel) { if ( feature.getId() && (feature.get('ocData')) != undefined - && !instance.interactiveMap.foregroundSource.getFeatureById( - feature.getId() - ) + && !instance.foregroundSource.getFeatureById(feature.getId()) ) { var canAdd = true; if (fC == undefined) { @@ -934,59 +1224,26 @@ InteractiveMapPopup.prototype._getMapFeatures = function(pixel) { ); } if (canAdd) { - result.push(feature); + var layer = instance.interactiveMap.getFeatureLayer(feature); + if (layer) { + if (!feature.get("sourceLayer")) { + feature.set("sourceLayer", { + name: OcLayerServices.getOcLayerName(layer), + index: layer.getZIndex(), + visible: layer.getVisible() + }); + } + result.push(feature); + } } } }); - + result.sort(function(a, b) { + return b.get("sourceLayer").index - a.get("sourceLayer").index; + }); return result; } -/** - * Clears from popup currently selected feature, movin it from the foreground - * source to its original one. - */ -InteractiveMapPopup.prototype._clearFeature = function(feature) { - if (feature === undefined && this.featureIndex >= 0) { - feature = this.features[this.featureIndex]; - } - if (feature !== undefined && this.currentFeatureSource !== undefined) { - this.interactiveMap.foregroundSource.removeFeature(feature); - feature.set("isFirst", false); - this.currentFeatureSource.addFeature(feature); - this.currentFeatureSource = undefined; - } -} - -/** - * Should be called on popup hide or just before possible show, to clear all - * variables and states related to previously displayed popup. - */ -InteractiveMapPopup.prototype._onHide = function() { - this._clearFeature(); - this.featureIndex = -1; - this.features = []; - this.offsetYAdjusted = false; -} - -/** - * An event handler to be assigned to OL map 'click' event. - * Checks all features being under clicked pixel and selects them if coordinates - * match the first one selected. - * If an array of selected features is not empty, the popup is shown. - */ -InteractiveMapPopup.prototype._mapClickEvent = function(evt) { - this._onHide(); - - var features = this._getMapFeatures(evt.pixel); - if (features.length > 0) { - this.features = features; - this._switchPopupContent(true); - } else { - this.popup.setPosition(undefined); - } -} - /** * Computes popup offset Y to place it in a right place above current * popup features. The computing result is based if applicable on 'popupOffsetY' @@ -1036,61 +1293,51 @@ InteractiveMapPopup.prototype._computePopupOffsetY = function() { /** * Selects the next or previous feature from features being under a popup point * when the map was clicked. The selection depends on a 'forward' parameter. - * If there is no feature previously selected, the first one is chosen. Next, - * the content and position of popup is set according to the selected feature - * values. + * If there is no feature previously selected (offsetYAdjusted is not set), + * the first one is chosen. Next, the content and position of popup is set + * according to the selected feature values. + * Returns number of features available to display (visible ones). */ InteractiveMapPopup.prototype._switchPopupContent = function(forward) { - var oldFeature; - var i = this.featureIndex; - if (i >= 0) { - oldFeature = this.features[i]; - // (+/-1) modulo features.length, negative value workaround - i = ( - ((forward ? (i + 1) : (i - 1)) % this.features.length) - + this.features.length - ) % this.features.length; - } else if (i < 0) { - i = 0; + var visibleFeaturesLength = 0; + this.features.forEach(function(feature) { + if (feature.get("sourceLayer").visible) { + visibleFeaturesLength++; + } + }); + if (visibleFeaturesLength == 0) { + // no visible features, so return; + return visibleFeaturesLength; } - var feature = this.features[i]; - var ocData = feature.get("ocData"); - if (!this.offsetYAdjusted) { + // no feature is displayed, so enforce forward + forward = true; var popupOffsetY = this._computePopupOffsetY(); if (popupOffsetY) { this.popup.setOffset([0, popupOffsetY]); } this.offsetYAdjusted = true; + } else { + // unset first on current (old) feature + this.features[0].unset("isFirst"); + //rotate to the next/previous feature + this.features.rotate(forward); } - // move currect feature to the foreground layer, replacing the previous - // one - var featureId = feature.getId(); - if (featureId) { - var instance = this; - this.interactiveMap.map.getLayerGroup().getLayersArray().some( - function(layer) { - if (/^oc_[^_].*/.test( layer.get('ocLayerName') )) { - var s = layer.getSource(); - if (s.getFeatureById(featureId) === feature) { - if (oldFeature != undefined) { - instance._clearFeature(oldFeature); - } - s.removeFeature(feature); - feature.set("isFirst", true); - instance.interactiveMap.foregroundSource.addFeature( - feature - ); - instance.currentFeatureSource = s; - return true; - } - } - } - ); + // if current feature is not visible, rotate to the next/previous feature + while (!this.features[0].get("sourceLayer").visible) { + this.features.rotate(forward); } + // sync foreground with current features order + this.foregroundSource.clear(true); + this.foregroundSource.addFeatures(this.features); + + var feature = this.features[0]; + feature.set("isFirst", true); + + var ocData = feature.get("ocData"); var markerSection = ocData.markerSection; var markerType = ocData.markerType; var markerId = ocData.markerId; @@ -1112,7 +1359,7 @@ InteractiveMapPopup.prototype._switchPopupContent = function(forward) { markerContext['sectionName'] = this.interactiveMap.sectionsNames[markerSection]; } - if (this.features.length > 1) { + if (visibleFeaturesLength > 1) { markerContext['showNavi'] = true; } else { markerContext['showNavi'] = undefined; @@ -1127,7 +1374,7 @@ InteractiveMapPopup.prototype._switchPopupContent = function(forward) { instance.popup.setPosition(undefined); }); - if (this.features.length > 1) { + if (visibleFeaturesLength > 1) { $(".imp-navi .imp-backward > img").click(function(evt) { instance._switchPopupContent(false); }); @@ -1136,8 +1383,8 @@ InteractiveMapPopup.prototype._switchPopupContent = function(forward) { }); } - this.featureIndex = i; this.popup.setPosition(feature.getGeometry().getCoordinates()); + return visibleFeaturesLength; } // ================================================================= @@ -1354,6 +1601,10 @@ var OcLayerServices = { return ( /^oc_.*/.test( layer.get('ocLayerName') )); }, + isOcInternalCommonLayer: function (layer){ + return (/^oc_[^_].*/.test(layer.get('ocLayerName'))); + }, + setOcLayerName: function (layer, name){ layer.set('ocLayerName', name); }, diff --git a/public/views/chunks/interactiveMap/markers/ocZoomCachedMarker.js b/public/views/chunks/interactiveMap/markers/ocZoomCachedMarker.js new file mode 100644 index 0000000000..506c2e51ca --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/ocZoomCachedMarker.js @@ -0,0 +1,113 @@ +/** + * A prototype of marker where style is dependant on current zoom level. + * The zoom-based styles, including caption or caption-less ones, are cached on + * create for future use. + * It is not advisable to instatiate it directly, rather instatiate one of + * derived subclasses + */ +function OCZoomCachedMarker(map, ocData) { + OCMarker.call(this, map, ocData); + // zoomRanges contain named styles with an array of minimum and maximum zoom + // (inclusive) where each style is applicable + this.zoomRanges = {}; + this.zoomStyles = []; + this.captionStyle; + this.noCaptionStyle; +} + +OCZoomCachedMarker.prototype = Object.create(OCMarker.prototype); + +OCZoomCachedMarker.prototype.constructor = OCZoomCachedMarker; + +/** + * Returns the first one of zoomRanges attributes, where zoom given as a + * parameter lies within the attribute's value range. + */ +OCZoomCachedMarker.prototype.getZoomRange = function(zoom) { + var result; + var self = this; + Object.keys(this.zoomRanges).some(function(r) { + if ( + self.zoomRanges[r][0] <= zoom + && self.zoomRanges[r][1] >= zoom + ) { + result = { + name: r, + range: self.zoomRanges[r], + }; + return true; + } + }); + return result; +} + +/** + * Returns cached zoom style basing on zoom value given as a parameter. If no + * style is cached for given zoom, a new style is computed by calling + * newStyleCallback. + * The newStyleCallback parameter should be an instance method with parameters: + * - zoom value + * - caption level: 0 - no caption, 1 - caption hidden, 2 - caption visible + */ +OCZoomCachedMarker.prototype.getCachedZoomStyle = function ( + zoom, newStyleCallback +) { + var markerStyle; + var markerStyle = + (typeof(this.zoomStyles[zoom]) !== "undefined") + ? this.zoomStyles[zoom] + : undefined; + if ( + markerStyle == this.captionStyle + && !this.feature.get("isFirst") + && this.noCaptionStyle != undefined + ) { + markerStyle = this.noCaptionStyle; + } else if (markerStyle == undefined) { + var newMarkerStyle; + var showCaption = this.canShowCaption(zoom); + if (showCaption && this.captionStyle !== undefined) { + newMarkerStyle = this.captionStyle; + } else if (!showCaption) { + var zoomRange = this.getZoomRange(zoom); + var instance = this; + this.zoomStyles.some(function(s, z) { + if ( + zoomRange.range[0] <= z + && zoomRange.range[1] >= z + && s !== instance.captionStyle + ) { + newMarkerStyle = s; + return true; + } + }); + } + if (newMarkerStyle == undefined) { + newMarkerStyle = newStyleCallback.call( + this, zoom, showCaption ? 2 : 0 + ); + if (showCaption) { + this.captionStyle = newMarkerStyle; + this.noCaptionStyle = newStyleCallback.call(this, zoom, 1); + } + } + this.zoomStyles[zoom] = newMarkerStyle; + if (showCaption && !this.feature.get("isFirst")) { + markerStyle = this.noCaptionStyle; + } else { + markerStyle = newMarkerStyle; + } + } + this.currentStyle = markerStyle; + return markerStyle.style; +} + +/** + * Returns true if created style should contain caption, basing on zoom value. + * This method should be overwritten in subclass. + * Notice: caption visibility is dependant not only on this method output but on + * visible features order too. + */ +OCZoomCachedMarker.prototype.canShowCaption = function (zoom) { + return false; +} diff --git a/public/views/chunks/interactiveMap/markers/okapi/cacheMarker.js b/public/views/chunks/interactiveMap/markers/okapi/cacheMarker.js new file mode 100644 index 0000000000..d5a8eb53cd --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/okapi/cacheMarker.js @@ -0,0 +1,207 @@ +/** + * Marker for displaying a cache + */ +function CacheMarker(map, ocData) { + OkapiBasedMarker.call(this, map, ocData); + this.iconsDir = '/images/map_markers/okapi/cache/'; +} + +CacheMarker.prototype = Object.create(OkapiBasedMarker.prototype); + +CacheMarker.prototype.constructor = CacheMarker; + +/** + * Returns icon image src path part for a cache type + */ +CacheMarker.prototype.getTypeSuffix = function(type) { + var result; + switch (type) { + case 1: result = 'unknown'; break; + case 2: result = 'traditional'; break; + case 3: result = 'multi'; break; + case 4: result = 'virtual'; break; + case 5: result = 'webcam'; break; + case 6: result = 'event'; break; + case 7: result = 'quiz'; break; + case 8: result = 'moving'; break; + case 10: result = 'own'; break; + default: result = 'other'; + } + return result; +} + +/** + * Returns icon image src path part for a cache status + */ +CacheMarker.prototype.getStatusSuffix = function(status) { + var result; + switch (status) { + case cacheStatusList["STATUS_UNAVAILABLE"]: + result = 'unavailable'; + break; + case cacheStatusList["STATUS_ARCHIVED"]: + result = 'archived'; + } + return result; +} + +/** + * Returns icon image src path part for a cache rating + */ +CacheMarker.prototype.getRatingSuffix = function(rating) { + var result; + if (rating > 4) { + result = 'excellent'; + } + return result; +} + +/** + * Returns icon image src path part for a cache recommendation status + */ +CacheMarker.prototype.getRecommendedSuffix = function(recommended) { + var result; + if (recommended) { + result = 'recommended'; + } + return result; +} + +/** + * Returns icon image src path part for a cache additional flag (is own, found, + * new etc) + */ +CacheMarker.prototype.getFlagSuffix = function(flag) { + var result; + switch (flag) { + case 1: result = 'own'; break; + case 2: result = 'found'; break; + case 3: result = 'new'; + } + return result; +} + +/** + * Returns icon image src path part for a cache caption status + */ +CacheMarker.prototype.getCaptionSuffix = function(caption) { + var result; + if (caption) { + result = 'caption'; + } + return result; +} + +/** + * Returns icon image src file name basing on given parameters + */ +CacheMarker.prototype.getIconFileName = function( + sizePrefix, statOrType, type, status, rating, recommended, flag, caption +) { + var name = sizePrefix; + if (statOrType) { + part = this.getSuffix(status, "getStatusSuffix"); + if (part) { + name += part; + } else { + name += this.getSuffix(type, "getTypeSuffix"); + } + } else { + name += this.getSuffix(type, "getTypeSuffix"); + name += this.getSuffix(status, "getStatusSuffix"); + } + name += this.getSuffix(rating, "getRatingSuffix"); + name += this.getSuffix(recommended, "getRecommendedSuffix"); + name += this.getSuffix(flag, "getFlagSuffix"); + name += this.getSuffix(caption, "getCaptionSuffix"); + name += ".png"; + return name; +} + +/** + * Returns icon image src full path, basing on given size and caption status + */ +CacheMarker.prototype.getIconSrc = function(size, showCaption) { + var result; + switch(size) { + case 'tiny': + result = this.iconsDir + + this.getIconFileName( + 'tiny', + true, + this.ocData.cacheType, + this.ocData.cacheStatus + ); + break; + case 'medium': + result = this.iconsDir + + this.getIconFileName( + 'medium', + true, + this.ocData.cacheType, + this.ocData.cacheStatus, + ( + this.ocData.cacheStatus == 1 + ? this.ocData.ratingId + : undefined + ), + ( + this.ocData.cacheStatus == 1 + ? this.isRecommended() + : undefined + ), + ( + this.ocData.isOwner + ? 1 + : ( + this.ocData.logStatus == + logTypeList["LOGTYPE_FOUNDIT"] + ? 2 + : undefined + ) + ), + false + ); + break; + default: + result = this.iconsDir + + this.getIconFileName( + 'large', + false, + this.ocData.cacheType, + this.ocData.cacheStatus, + ( + this.ocData.cacheStatus == 1 + ? this.ocData.ratingId + : undefined + ), + ( + this.ocData.cacheStatus == 1 + ? this.isRecommended() + : undefined + ), + ( + this.ocData.isOwner + ? 1 + : ( + this.ocData.logStatus == + logTypeList["LOGTYPE_FOUNDIT"] + ? 2 + : undefined + ) + ), + ( + this.ocData.logStatus == logTypeList["LOGTYPE_FOUNDIT"] + ? showCaption + : undefined + ) + ); + } + return result; +} + +CacheMarker.prototype.getIconStyle = + OkapiBasedMarker.prototype.getCommonIconStyle; + +CacheMarker.prototype.getCaptionStyle = + OkapiBasedMarker.prototype.getCommonCaptionStyle; diff --git a/public/views/chunks/interactiveMap/markers/okapi/highlightedMarker.js b/public/views/chunks/interactiveMap/markers/okapi/highlightedMarker.js new file mode 100644 index 0000000000..b4a3b28a1e --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/okapi/highlightedMarker.js @@ -0,0 +1,70 @@ +/** + * Marker for displaying highlight for another feature. It is an OKAPI-based + * marker, but a special one, so some common functions are redefined here + */ +function HighlightedMarker(map, ocData) { + OkapiBasedMarker.call(this, map, ocData); + this.iconsDir = '/images/map_markers/okapi/'; +} + +HighlightedMarker.prototype = Object.create(OkapiBasedMarker.prototype); + +HighlightedMarker.prototype.constructor = HighlightedMarker; + +/** + * Returns a size-based icon image src path + */ +HighlightedMarker.prototype.getIconSrc = function(size, showCaption) { + return this.iconsDir + 'highlighted_' + size + '.png'; +} + +/** + * Returns a size-based icon style + */ +HighlightedMarker.prototype.getIconStyle = function(size, src) { + var result; + if (size == 'large') { + result = new ol.style.Style({ + image: new ol.style.Icon({ + anchorOrigin: 'bottom-left', + anchorXUnits: 'pixel', + anchorYUnits: 'pixel', + anchor: [ 18, 4 ], + src: src, + }), + }); + } else if (size == 'medium') { + result = new ol.style.Style({ + image: new ol.style.Icon({ + anchorOrigin: 'bottom-left', + anchorXUnits: 'pixel', + anchorYUnits: 'pixel', + anchor: [ 9, 8 ], + src: src, + }), + }); + } else { + result = new ol.style.Style({ + image: new ol.style.Icon({ + src: src, + }), + }); + } + return result; +} + +HighlightedMarker.prototype.getCaptionStyle = function(showCaption) { + // no caption in any case +} + +/** + * Returns current feature style, overriding a common one. + * Highlight style is dependant on currently highlighted other markers, so it + * cannot be cached and has to be computed out every time. + */ +HighlightedMarker.prototype.getFeatureStyle = function(resolution) { + var zoom = this.map.getView().getZoom(); + var showCaption = this.canShowCaption(zoom); + this.currentStyle = this.computeNewStyle(zoom, showCaption ? 2 : 0); + return this.currentStyle.style; +} diff --git a/public/views/chunks/interactiveMap/markers/okapi/logMarker.js b/public/views/chunks/interactiveMap/markers/okapi/logMarker.js new file mode 100644 index 0000000000..55c9bc1fe5 --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/okapi/logMarker.js @@ -0,0 +1,105 @@ +/** + * Marker for displaying a cache log + */ +function LogMarker(map, ocData) { + OkapiBasedMarker.call(this, map, ocData); + this.iconsDir = '/images/map_markers/okapi/log/'; +} + +LogMarker.prototype = Object.create(OkapiBasedMarker.prototype); + +LogMarker.prototype.constructor = LogMarker; + +/** + * Returns icon image src path part for a cache log type + */ +LogMarker.prototype.getLogTypeSuffix = function(type) { + var result; + switch (type.toString()) { + case logTypeList["LOGTYPE_FOUNDIT"]: result = 'foundit'; break; + case logTypeList["LOGTYPE_DIDNOTFIND"]: result = 'didnotfind'; break; + case logTypeList["LOGTYPE_COMMENT"]: result = 'comment'; break; + case logTypeList["LOGTYPE_MOVED"]: result = 'moved'; break; + case logTypeList["LOGTYPE_NEEDMAINTENANCE"]: + result = 'needmaintenance'; + break; + case logTypeList["LOGTYPE_MADEMAINTENANCE"]: + result = 'mademaintenance'; + break; + case logTypeList["LOGTYPE_ATTENDED"]: result = 'attended'; break; + case logTypeList["LOGTYPE_WILLATTENDED"]: result = 'willattend'; break; + case logTypeList["LOGTYPE_ARCHIVED"]: result = 'archived'; break; + case logTypeList["LOGTYPE_READYTOSEARCH"]: + result = 'readytosearch'; + break; + case logTypeList["LOGTYPE_TEMPORARYUNAVAILABLE"]: + result = 'temporaryunavailable'; + break; + case logTypeList["LOGTYPE_ADMINNOTE"]: result = 'adminnote'; + } + return result; +} + +/** + * Returns icon image src path part for a cache additional flag (is own, found, + * new etc) + */ +LogMarker.prototype.getFlagSuffix = function(flag) { + var result; + switch (flag) { + case 1: result = 'own'; break; + case 2: result = 'found'; break; + case 3: result = 'new'; + } + return result; +} + +/** + * Returns icon image src file name basing on given parameters + */ +LogMarker.prototype.getIconFileName = function(sizePrefix, logType, flag) { + var name = sizePrefix + '_log'; + name += this.getSuffix(logType, "getLogTypeSuffix"); + name += this.getSuffix(flag, "getFlagSuffix"); + name += ".png"; + return name; +} + +/** + * Returns icon image src full path, basing on given size and caption status + */ +LogMarker.prototype.getIconSrc = function(size, showCaption) { + var result; + switch(size) { + case 'tiny': + result = this.iconsDir + + this.getIconFileName( + 'tiny', + this.ocData.logType + ); + break; + default: + result = this.iconsDir + + this.getIconFileName( + size, + this.ocData.logType, + ( + this.ocData.isOwner + ? 1 + : ( + this.ocData.logStatus == + logTypeList["LOGTYPE_FOUNDIT"] + ? 2 + : undefined + ) + ) + ); + } + return result; +} + +LogMarker.prototype.getIconStyle = + OkapiBasedMarker.prototype.getCommonIconStyle; + +LogMarker.prototype.getCaptionStyle = + OkapiBasedMarker.prototype.getCommonCaptionStyle; diff --git a/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.css b/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.css new file mode 100644 index 0000000000..7c8115b991 --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.css @@ -0,0 +1,7 @@ +/* used in cache marker caption */ +@font-face { + font-family: 'Tahoma'; + src: url('tahoma.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} diff --git a/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.js b/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.js new file mode 100644 index 0000000000..374229fefe --- /dev/null +++ b/public/views/chunks/interactiveMap/markers/okapi/okapiBasedMarker.js @@ -0,0 +1,305 @@ +/** + * A super class, gathering common methods used in OKAPI-based style markers + */ +function OkapiBasedMarker(map, ocData) { + OCZoomCachedMarker.call(this, map, ocData); + this.zoomRanges = { + 'tiny': [0, 8], + 'medium': [9, 13], + 'large': [14, 1000], + }; +} + +OkapiBasedMarker.prototype = Object.create(OCZoomCachedMarker.prototype); + +OkapiBasedMarker.prototype.constructor = OkapiBasedMarker; + +/** + * Returns true if caption should be included into computed style, basing on + * zoom value and surrounding visible features proximity. + * The result computing is based on okapi source code with some minor + * improvements. + */ +OkapiBasedMarker.prototype.canShowCaption = function(zoom) { + var result = (zoom >= 5); + if (result) { + var ocLayers = this.map.getLayerGroup().getLayersArray().filter( + function(layer) { + return OcLayerServices.isOcInternalCommonLayer(layer); + } + ); + if (typeof(ocLayers.length) != "undefined" && ocLayers.length) { + var coords = this.feature.getGeometry().getCoordinates(); + var featurePx = this.map.getPixelFromCoordinate(coords); + var closestPx; + var closestCandidate; + var minDist; + var self = this; + ocLayers.forEach(function(ocLayer) { + var s = ocLayer.getSource(); + var candidate; + if (typeof(s["getClosestFeatureToCoordinate"]) === "function") { + candidate = s.getClosestFeatureToCoordinate( + coords, function(f) { + var fc = f.getGeometry().getCoordinates(); + return (fc[0] != coords[0] || fc[1] != coords[1]); + } + ); + } + if (candidate) { + var candidatePx = self.map.getPixelFromCoordinate( + candidate.getGeometry().getCoordinates() + ); + var candidateDist = + Math.sqrt( + Math.pow((featurePx[0] - candidatePx[0]), 2) + + + Math.pow((featurePx[1] - candidatePx[1]), 2) + ); + if (minDist == undefined || candidateDist < minDist) { + closestPx = candidatePx; + minDist = candidateDist; + closestCandidate = candidate; + } + } + }); + if (closestPx != undefined) { + /* + // does not work as expected, why? + result = ( + Math.abs( + ((closestPx[0] + 64) >> 5) - ((featurePx[0] + 64) >> 5) + ) > 1 + || + Math.abs( + ((closestPx[1] + 64) >> 5) - ((featurePx[1] + 64) >> 5) + ) > 1 + );*/ + result = ( + Math.abs(closestPx[0] - featurePx[0]) > 64 + || + Math.abs(closestPx[1] - featurePx[1]) > 64 + ); + } + } + } + return result; +} + +/** + * Returns cached style based on current zoom, the main entry for computing + * styles for OKAPI-based markers + */ +OkapiBasedMarker.prototype.getFeatureStyle = function(resolution) { + var zoom = this.map.getView().getZoom(); + return ( + this.getZoomRange(zoom) + ? this.getCachedZoomStyle( + zoom, this.computeNewStyle + ) + : undefined + ); +} + +/** + * Returns a cached icon style, or stores it in the map cache if not found, + * for given zoom range and caption levels + */ +OkapiBasedMarker.prototype.getCachedIconStyle = function( + zoomRangeName, captionLevel +) { + var src; + var size = captionLevel > 0 ? 'large' : zoomRangeName; + src = this.getIconSrc(size); + var cachedStyle; + var ocIconStyles = this.map.get('_ocIconStyles'); + if (ocIconStyles != undefined) { + cachedStyle = + typeof(ocIconStyles[src]) !== "undefined" + ? ocIconStyles[src] + : undefined; + } + if (!cachedStyle) { + cachedStyle = this.getIconStyle(size, src); + if (ocIconStyles == undefined) { + ocIconStyles = {}; + } + ocIconStyles[src] = cachedStyle; + this.map.set('_ocIconStyles', ocIconStyles); + } + return cachedStyle; +} + +/** + * Returns a general style, common for each OKAPI-based marker, for given size + * and image source + */ +OkapiBasedMarker.prototype.getCommonIconStyle = function(size, src) { + var result; + if (size == 'large') { + result = new ol.style.Style({ + image: new ol.style.Icon({ + anchorOrigin: 'bottom-left', + anchorXUnits: 'pixel', + anchorYUnits: 'pixel', + anchor: [ 13, 6 ], + src: src, + }), + }); + } else if (size == 'medium') { + result = new ol.style.Style({ + image: new ol.style.Icon({ + anchorOrigin: 'bottom-left', + anchorXUnits: 'pixel', + anchorYUnits: 'pixel', + anchor: [ 7, 7 ], + src: src, + }), + }); + } else { + result = new ol.style.Style({ + image: new ol.style.Icon({ + src: src, + }), + }); + } + return result; +} + +/** + * Returns a general caption style, common for each OKAPI-based marker + */ +OkapiBasedMarker.prototype.getCommonCaptionStyle = function(showCaption) { + var result; + if (showCaption) { + result = new ol.style.Style({ + text: this.generateCaptionStyle(this.ocData.name), + }); + } + return result; +} +/** + * Returns a freshly computed style for given zoom and caption level. + * This function is passed to OCZoomCachedMarker.getCachedZoomStyle as an + * argument + */ +OkapiBasedMarker.prototype.computeNewStyle = function(zoom, captionLevel) { + var result = { + style: undefined, + popupOffsetY: undefined + } + var zoomRange = this.getZoomRange(zoom); + result.style = []; + result.style.push(this.getCachedIconStyle(zoomRange.name, captionLevel)); + if (captionLevel > 0) { + var captionStyle = this.getCaptionStyle(captionLevel > 1); + if (captionStyle) { + result.style.push(captionStyle); + } + } + return result; +} + +/** + * Returns true if current cache is a recommended one + */ +OkapiBasedMarker.prototype.isRecommended = function() { + return ( + this.ocData.ratingId > 4 + && this.ocData.founds > 6 + && (this.ocData.recommendations / this.ocData.founds) > 0.3 + ); +} + +/** + * A common function returning suffix being a part of icon image src path by + * calling a given suffixFunction + */ +OkapiBasedMarker.prototype.getSuffix = function(value, suffixFunction) { + var result = ''; + if (value != undefined) { + var suffix = this[suffixFunction](value); + if (suffix != undefined) { + result = "_" + suffix; + } + } + return result; +} + +/** + * Returns a new text style used in caption display + */ +OkapiBasedMarker.prototype.generateCaptionStyle = function(caption) { + var font = "26pt Tahoma,Geneva,sans-serif"; + return new ol.style.Text({ + font: font, + stroke: new ol.style.Stroke({ + color: [ 255, 255, 255, 1 - 20/127], + width: 12, + }), + fill: new ol.style.Fill({ + color: [ 150, 0, 0, 1 - 40/127], + }), + textBaseline: "top", + scale: 0.25, + offsetY: 15, + text: this.wordwrap(font, 64*4, 26*4, 34, caption), + }); +} + +/** + * Returns given text word-wrapped by given parameters and font. Used in + * creating a marker caption. + */ +OkapiBasedMarker.prototype.wordwrap = function( + font, maxWidth, maxHeight, lineHeight, text +) { + var result = ''; + var ctx = this.map.get('wordWrapCtx'); + if (!ctx) { + var canvas = document.createElement("canvas"); + if (canvas) { + canvas.width = maxWidth; + canvas.height = maxHeight; + ctx = canvas.getContext('2d'); + ctx.font = font; + ctx.fillStyle = '#960000'; + this.map.set('wordWrapCtx', ctx); + } + } + if (ctx && text) { + var words = text.split(" "); + var lines = []; + var line = ''; + var reminder = ''; + for (var i = 0; (i < words.length || reminder.length > 0); i++) { + var word = (typeof(words[i]) !== "undefined" ? words[i] : ""); + if (reminder.length > 0) { + word = reminder + " " + word; + } + reminder = ""; + var mStatus = false; + while (!mStatus) { + var metrics = ctx.measureText(line + word); + if (metrics.width <= maxWidth) { + line += word + " "; + mStatus = true; + } else if (line.length > 0) { + lines.push(line.trim()); + line = ""; + } else { + reminder = word.substr(word.length - 1) + reminder; + word = word.substr(0, word.length - 1); + } + } + } + if (line.length > 0) { + lines.push(line.trim()); + } + while ((lines.length * lineHeight) > maxHeight && lines.length > 0) { + lines.pop(); + } + result = lines.join("\n"); + } + return result; +} diff --git a/public/views/chunks/interactiveMap/markers/okapi/tahoma.ttf b/public/views/chunks/interactiveMap/markers/okapi/tahoma.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f5a011e9a5163fdbcb54ef2f720e0f4cb5012a30 GIT binary patch literal 383140 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

$JjjHQ!e6o;|+ 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%0A; zt-EC2va<3Lar$XjmDj~#=F{VX^@(dH)sOQB%;~Fg{J{}q>ER1QRHskR5ZssYPA-^V zfFd-OBTyp&OvJ?~n?Zd2B=q5OXd*sK6*4o<5JCJwvFZ>9`l0)1Kxrh1HL9O(3|B%R+j(WFZ%tZ z^ewUwrHmt^JAzQ4CdeVn-J|^v(2f09Taycx6tFdN^Ro$r;~9ERfpW!ht9M96&D7L} zpV`uic-Zy$y4E>WvG$O)@t0Fp_75F4D*dM~W<1_43TPVY_WtUb+wZ?G;Bm#hFZ()% z4j=jZThbq=cU0%mnmGC=^?lT8Q(obbRAZaBF>kbYSe~L`Hjq(BI>8FgOHxL`76|HX z)L9r;ZCG!RAP&ZC2nTsFmAu0kIw;zx9dIi+>a4U){U@ zrhD((u>M}DD*c!AOJd|uTEQ}E-7iY%UFpyF?%lWN4{yFsShxp!WUIbMZb(%iu-OJp zbIJ$gbWkFo(*e(0F|I~oFSY9ngh+gtCjuz$WpN);0zrW#iv^}jC~(J+B1L^tka=RK z`us>TB4)FPz@m^5fFg(<1JlaLP-~eg1}DybLrOs2+P@?HR5lp-^)Qsu8)h+ns9f$V(&6pONQrsDvw4%xxB!^2 zyc0zWoypEwol03nO>wZi%n9+Y4JDf(mYAV%V!)ef(=(i7TY{coy3!&|c?mz6`s(2# z6S0{^XM}!3uMX2rM-+9h!)*W#$hy4gCBNi76(PGA#JbSYKQB$l29r zQ)Gq}JDzGtB@4TAH$1{CNI`~I>Bf=g(+S(S0k$zBJoc1>SwzhHu5Dx*VYgrnVd9)* z4N0&j6@hIO$YKUM{eBq~K!>}_szf3}ewS?WgJ_Q*{zzZJE2F-R0FORqf;z#V$;mQf ztb@EMk7nM)nElxGJf&k=!7CpS8Yf6?wDky!epj_v)*RGQ2qAG+@_Zo%U!|Bi)e2~JYFYqu z3zx*!T&??NIA{l*!7rzL%y0-v2YT2^reF-+0u1fEco0Wz#@V7n2LJIowl8$QOV>c) z$@+hTE}fdTVOYtJ=PT1!fNK3M$kXmYr}q_?4L-fU36nb6YvCS?fnqR8dBKA*WXpMYb@jfbKxKcrsP4=JJC zQ7+m{)Z|J(q%5raE*^6@%97C*sne%AlguXVu|Zy4$H0C76B+JD7VY_lS=D{rE7LK! zac}j1^W;g+frI4!h)Q}`VCEOIStJaK0tBpGMvA1Eb#R5@DJ-lKJ|+mJThfUS%^0(`rn*VG zTxSZQe#lmc+i`&ctf{>qbi+NBTtjSO1_vX*eSA_fmR&I!PV6dY2 zDc(ngI@fXii_4F4kk3guR-wX^)Hg*B1Ll)9Zc9DwV=*0UL%+7|O z`50h+B4)=yMIE!FJx;(KGA_h;99-}wA4=c%v-EugE9!v6P`MxL<94hMvvxL6x(O*C zltvn%M`~1a1(tkATN>IE>^xu^v?htTmpl-_;K)-f^yNyadX+MMKV^I}ARM?%X2_&U z+jnrCRPio4eb@=5zKq{G8^2ZN=~@-%3Xo)l0xOj!Wsn4}N&ofVmb}&BOP+z!NhHTU z22bJof5vmT;!1pqWm1P>pY#r5!RqCE^N$%_=Ge zX}UNGxmQUr_@CS06Ma5=w6l=PH}X4k>1m@umPKQjjF%n9ZjefboP;hS-aeQL6U-<| zn&0d7o5S!V%~~$*Trg-hmrA+HyqNPVntyVT^}q055J*tt5=v(hINnP4rH@{QFL;Q# zK__08v4pomZFogDv1%a6LFgZ%jloW|a@%_YcT!j0itUQ}$&O#{|K!0 z^5x5~ShsTJT2)~kdgm*5ryKt}{Xe4i-+vXw^wGn=d{El9`Qe8*|M;=TbngV2HDE_~ zvomvu@Q@Nwt_A{IElf#ufUapax{P^BWx2&DMe~F19HXxqKzwPr>cG4?Y71+n;$z>l zhr?nxULKxp7wu^00998&oJ66?jtTD6O1bBtmGWL*&85vg?v*wBsG}F`a%rYN3;YNr zvSe@N_@=79;y*6l0~xvC8)xq=IkU21Mr6-9dqcr||BRIr#;u~iqI1cfP@ur~$8+8& z>x)-RE8n-|4S!ytd(Yy1iQb0FzLL$o=dU^)e}OyTKck@j5)1_sm;(Xu&7<%X8qh;? zC^}}0g>uL=po5E~U#E^<=(yH#yW>&E(+>6Gm>4aoFX<^cqhxN0DwlP(bdKzt+PSDx zEgRA@WaN;kLlzBDOWT{6AU)Zje_B8j5=$X>9ut)u`1)}uABJp=~MEN)K#3{2E z&X%UmSTsYDo{YZ`egy}jCi^B!Q_94$vX-)uWpY`yb>s+fgjiRvg^&%c_Ek%`VfDEl&qCuu|3b;xVVvoo zDH%&gmQF2|?8^8FPbo}c})0prKZt^<3_YjXwB&{ zTxJ?Rf939I{q{~W-r~Nztp*RW#1ONbBk|l zaz4Jdr*BKKbIWx8V0Yij=T~k?IJca^AJ@(5dwy2mO1$|@_Rd>Mo%H6r`?jU_RqOSf~&T>bmCHM8*hX02S= zhks}FLHnNmS&152bj*sVFd_t1iSB4oX){0!@YzZD8-EcSiEfrS%<`ttJGC}mM zOlu9KBG`}OITbjVr(SG`Mm_a)KK@UMGg_46tgkZ)^WGPG27XBr%TjXQy!2PEPi`0$ zD4TWOk?ZL><+AiI-k&$HKKz$Yo+r`cMC;oDjTD+%Jaa9ZKSN zTVIo&-!Y@9O1c%F1J6in9^bX=@y)w-rMHSbM=qO(U-!NonER_&&UxpkXiNVy{Uss= zK#4f~khdURbpa*DIVJc4d0pYqI#oDK{|XrV|F8T%K1)>lWyr@#UM92&Po`33aS%L1 z{X$fdgC?^{^#n~G&verykDq&;KK|0nn8LP z0AS3?ZAO+s>ger|8}Z!~OZPW=9PFpSAAn2cU}e4tt@X_8h3HeUpxyZuV-5rD z!6v4I`v5f?-81k!p`{1<=mdWkl(Ym>ER-l{1MU~2^IFf`0V(7#1W}H0rlG&64o5&B znsH^-no!=EQ)c}0=G#A?GWpED$&>%N@s2Mhx+3-oJznc3o8_YP7pb=PM;9%9psPLk z)hn-jsf-%GdES%hcjhjdyI}rYvFPc3F>k@#g-d38ssl=DXz>i6sd{+b(ks$8+`50v zxN&19jQ!{)#-{}uED4mezDT_aCtW#ox0~C;4Mh#H_OdbIp+!SuW6F%dFc33OsNbdv zawKU|N+J2@c9x^bSV%S$K)02_@0na4T*9w2c-dYE5yT+y6@&&?!W(*o9+j+_)+@zVyEa7 z{bG~DIb?)BT}#%v$GrW6H(!7K%|E>P2KmG2%xy3jzJ@0JV^0>-g2bhMoQje_bek|* zkP1usy|N~kVws@(bwRMa$m=ew43|i!#JPB?5Z~fJJq9oHym?7UrK3_jWuNOzmO`&& z&?=Z4jU||gY7>12-euF(haCI!go9Dvb1bjpN|dnti0(OP+M>MG^~pW0_vusi(@n_< zBYsgh>{P9+vom((RYyKTSL#RoTx~iJ+6gpo=wTfx?f0wb zV{L>k4*FP!^U8~PMiu>3ay`u{K`e}ig=GAF;qO>C2F!F;u$rfg@k}nE%gPymh;_D?R#^gz?LZyh!axz()RA6OB#Jf~r!4V0e)6L7 zXZev4ddv6{eRdxQ4-*fMsHM8%N$u^luCdni-Nrq$+NXTU;tYKdy1Q!%nf;%n+ zu`X!ct!M?cYOS_nR78UiGeoM>8T0X6k$?yG~J2P28)bHo}eZ78v zd|hVCz2~0uZ0C8N^DN2?_xRPONW>R07|zz3;7Vg`S9+cJBXl*AP`k&##@_}nsNiPQ z&8ZV2jk+y~Kiao1z3w;t{m0T8Px?{J*ei@XhApzczi*Ak(_hAax#cSy+=AQxtg*}6 z@C)@98~vi7g^g4S|D*;-JW0KXup?R0XqI8M%XHm3QHPp+%XsKZX8hGX0lSF zQS@a-2VVr#qXF}E55BnV{!cy@y??&uDh*Bp`vrDo`Y1CZH{holyL8>xKT!{#zxqUh z_qQ|Xgf8`ocpz*_6z&=RL_9c=ePa65YySNH&?oXWo}rtKH5LlzsB3J?uJM;B0D$Te z&fWk*YfW$?@WtkB-f4QnB%&*-8C_9*wn{7fUp@u(5PSmw*c%;;V0BspXwJc-?8FGq zPMH1XIK*e*RewDGMd4LIZ-eeVtffSlsjj6uyB3}8C9AjCD|%gpFBuh+J!xd9mC6@X zQmMm%l}nK0iG7FT`-ohqPgnE4=;0Quf?|Dg6Lw}fij!y7=T2VX?3|BkukUJTFYt}@ zM@uz7(A?0~*k0fn<*y3MS;({5>u<00dum2cy77)G6p|i23AFZ^d{A1g{R%dlT~L%t zyG^m?CvAdFYy4T8^pLbulB8vpZrB<&bCu1C1hm^ot*g?;5AW@4J{;%tc6bjZ3t^MV z=(hwp{CPz8>eF>aSbbPnp-i;9T+aMW*3y}!U8O5a*OY2X z!O;0hr{Ekk9S43hC7n*8*j8LpEERhzPCT{4dpZd!Bm_8o_HxPd@^C0czJ?SBChkZk zmqaQ`{RKrXSf9bM3kFtk%7}4}rsc+9iN8>JN*jyV5+BHtm8wR5HG^kl$*zm-y*tv3#54ILSQt9!eRYf&N#WsHftHRw7gVUtDN z75-dO0S>Pi;P5Dj;Xo7|4(>h>UBy{E6w!r}iIc$bx+i*``pLh0|CZO?QPy6N-{vZ; z&|Ys`IXf~gSX!GOh-$QR7cJV%gxTjp8P6}NnX%Gqvw1@36bt&+PL@_<=EU9OmFg}# zgZgJ{)1rP`FXBL@*TLS4EN5FTw4jLD$r!v79KJ{0DY3IRWH}sDmsbD$fd`&^cxvb3 z=`&xsW`(Y4;l1}Qs9m@y{_3CpG;9Vllwg;QL5f(1&S1XnOxx8qiL*F?&I$>C9IvC2 zd`8%ucrLn71l*pR%lvCzd4FIo);|q}Mi_mlCv$FB8C?RSTii)!DR%H7z#(RL<(R#; zSV7Z3?}_<+&mexs6j6sX-noYqjBm~Hxyi?3vFV}W0=GXOg10`I923ga|uT2qT{K`>D~MRT)% z1m=OY^}j|l9yIbyJ~F>b9gAOe>#(`bJi$n`_IGk?_lQd(g5X!212gP^&3)Ybrt095 z%|M{zYepS_s7G9YQSC||jS2xeY_-xB-FvywW}Rp>!gY4FsJya|R!bNK&e4Hf5?pQ| z9b@x>8wRkSg(B(*?>m^KfqblPnbNI@f-(j)kb^7We;h4%#D$nShpRo06Bef|4%e@8 zbDo`@b89k(p`kS85f^=napruBaTb5wIJ%dI>8*t zDV@e3E-wO?=PM4@QOKB3Xe%r!l!QX6hE8&Us6mZw;#8!LI{%0&LrM@!Bnqw7T5X2c z`T6Kb-CLO%dWHQ$OSUGsAEW#EutP>&mYu7x-=fa7nF6MAbNyn_TxamnJc=20+ilc) z&!&#YTkmD&`O2Vq&cKMAYGW}zBvJOq!`46Zfc$ zUKljL%-k;I@WH&WG&7=@?98~# z06vILF&^lY*$9q;+XHOppgBONoSL$0C+T6y(iE3B4UK>*=C1;mV~p1*=g$M-5q0&? z1pa-BjSB6vTDxKw;VzVsO_!yu6}axl{2Aoh!yUYXA$BMx7;4du+JFXBS?cP9SA=@b zHVW$KQ~PIve^d^jF^N{!q}TBnq()&HA8#rjkM=}k9*u-7zP`%zy1styT@lEY($~*j zDY(4vQtboj9=#vlA2jGY;WnM_8NNO1t~+jL{=al$@g`b@Eb4z0nH*lBOz~*n78Ea< z3Mhz{5*%-vOm3^;O|<-`+KPww!Wmgt3!fvR9pRm&BilirMNeUQdEub{KgxdFp8bI1 z{X+C=v1Xn}=gp&pbCfYAUy(x|^608?H#E2(W~()54m+`mz{mj!6EyDAh8<2LjXL`Ume}l#wf+YpPBJ(nUEk85@gTYHk03J zep5#cq;(7{eSxx7Y7wwVW*XcuS={vPCG4OfgLlxh2QP=!Fw^%3A&6%F{G2(}+3Dow zH)vi&7sbNTt+y9HgkG;?_vB+9#s0!S7Ysod(F$S?cPhU8(qz7WZxJUPnzK}>;HSc( zcxJM;zC9Fc4V+-Y^}C|0hT>)Lgv;mz(;ae)FAbY@`sWLoX<-h~xrujQI%m$Mu*l!+ zFUnB0Tgk&ts{_s}d70Q<|qlh5UNq+O|Vn1;Z*=xv`V_$C-3 zFq{#F&IWwI8Gt5svPlgFIqS_#EKBB>f89iLKnJ{U@1G)W?B4_`&R49$p9P$^z`aae zKt&b@x>cY9m+W?C0?9!XvP;st#20XnPH5h88@%2`JWepNpk;rK!|I0v62z25cjcWg z;9aBLOJjj}_;4!Wund8)Ll?2J7o~SyKWEPMH1?aC8R8<%UP!ev(CgcRR4Xl$dL-G3 z^5<<*mvkG7%?oeBJ&2jD0zC{q@)j3mQK7jbvv%NQsN6b5X#&A(-!=`BmMT_;%c|iR z8ZN3-Nu}}wp=&7V4Cds)pTAZZ<;bZsyNKKe4i|B{xJY~xa4Cka{&p>TT^XJ>h*m?J zK{Vt5a^crPM7%u<5ylPyf8#mM3#oh9PQ}b6u-GQzpS|kA!XC;4MhG@Lv?RUj?YDvD ztL2z@m;5;>#r}e@pY4_oXoR@!GXMaI79fzTMUNcYwToyKqTP+Y|5 z&71Gh7X4qK8P2@I9qX!%7W}#%A*+ZjF(lLz>y+ z^_onejX!!#E`0PL(T^Fm-aJi8d%z#}clkxHJ>_`UXZGaTlK|>IRHelStr6Kc9~;w8HspfCFM(*dR}jg6_!WG;0ev`8Z~O+^&Yko>Z^OxOj0M7Qi8>ZS*q$5H#UVOl zXR{w|T(f!G^K9LRX~${jY`*Ev^jq@heb0~I^VH2Z?@xa^qwj6;*R3!AIQ=0j-pVY? z+0OwI)JPKKqwpGeg$ar$=wY@GP5WK13i5tQlVW~4iy3^Rm@Sp%x3A^rL$BB%A)|Xh z6o>24{}It@Wyl&p7F_P|K2tBuF1Nn;)kJA-MSbF#n4#1%&mAL3X>`U4PM;!6;m^8&Kd?F= z1w8oKZucRVB^B^-foP_v%R*~mabdiWS}&ul4a!=|e$8r)NQ(?;(6Ao$IN>XaqrGR} zC!Gw(hB*1$*L>JcQM=Jjs$GTuqk0bbU`PVM3HU<}5#7|cSlam9Md?S5vA>q&pL<=^ z89rm^hUBx`9Y*#fx)#UF+QzJ3+wIh0fp7fw!Mf#PtPs^?yijBLeNn|Q2z1$&By**zD16Gl>+;N(#cx+ z3t;C#U5uGZ7y(E+^sLlP)Lmh{$*QyFx8--`-<~h$dp>gPmtHmc^HMy$m^bt>9w=B_ zzyx2)|1PRo98OS132{7d8>a#&&c-kW7a%}`s7?*gkl{wdw+%Cxb?r-^Png`iIo8nF z^ZoCo|7)yq^Je*rJV*QFDIeV5H$mKb&I72t?$@UG^l8Me2+x25dkAy23Zq^W%wP*A z2u}ZjX20oG2K@4aePHvmOnHR^cB_4@T{NhfE|^$b-)A_HMkJPs61DQXn?1C-sm0z} zn7^R-ignVPqmZ4vOV&R419~FdGpLFhM~2v)N~2(q^H2i<&4C+*Ga>ZQCf9}p(ES!G z%KlhqTDz>GwZ-g9TFq9QWO-F1SWQw2aT#ho9(+KR2a4p-B2PlH@NAPj(yLuALLM@1 zcW!aGk`^Q{*j|Z(o$=vtv%Q%JF0m)N3fzr~JOXhxR5_t@6+@Cb0hY4alVuGWcX>H` zU1{B1lJ6bqOaD`hHIJ5lut4d{6aUk=u(+T|x_s}y_xhu(Rim#nfAtQ=|87G-TaGvi|(&)Yzh??O)aaNUv7wA+_K=Bs;Vk+ z=}(SMpE;3@X7%Ea`%eAz)kxilCvM$0|6HVvSxvvqGmjtL^4M~sOY!s!T~?}e=^jFt zgXu6wh2Y4qr$UU^J%kS3s6cTR=h7y{Q=%!+)@o`IdacQDr743gGm)3^fKTwP^@&iq zI6op1gGBAuFr)iKjF@A?ubz-+W!MnwL?)GdC1w#4l1fiMq8gCUJyKdlPcY`aa>aK$upj6e6G@CmG1NrBj1&rg&sygY??| zf2~gUwHc={^Mz0TecIIV6Q)f6Ur((_e>~ne;~(Gq;!om+ci!=9U&(XKn%VJ}`^Vn* z_vsxSPU9X@tGqaG~6->vmix>jS^b-(R@f{FcdR zrXxEmI*206CE!eH-!CpmAx(DY7W^E5fs2Vlu4ihy@=6k!3UG)=lXVatL|iIuQS!3* z{HhJjO6%okpOgOQ{Yze(wRn{;9O|0cck5>P^V)dBy^|kFe{sRe7Z<)$ef`V@sjEt6 z7Z(+ZOVTR_$zY1OZ&kcu!mn1*t+uSUXkGioSKa%WF-03|rhUT!?^-X|k-h5~U`MWx zbRrKTsLoQ#3f$6=UH;2gPq71or0uvL&ehntoJ||pe{lpKyNqBrKeHQ@qTa-4NeHnj zdo63RFY#T=t}oW(iqcfDB$yvaF`=ZOps-Y6C58C~0exO@_e6=gutS*k=b20eW_6eF zsq`3L8)jz~t}YY8T8nTBjJc3PTnz+rW?Il3Gx9dd4)QTYugMi~arNFBF0ck|LKGrRqhPk^ESv;Hi; z%kSQUC)Z=Ac@$4}2#qfaHayvZC+B^r+i!hU>|rL8C=ms`%hhY)fJ=-I0vhpmG^he* zP{5KK4OVYuFAsX?F7dvBXNrOga`zNy6;8w~E>>#&*44J}7fT);6Dsz*ckA{CjpkH& z;EKR{s7&uii=**qS5y*Gl@*s%T#wNBZ15O;;I)w}D&c!TFclDrh$>Q%>$zBlEQS(5 z;VC(eDa(*)hWklEH=ycg_q5iQJKD$JJ5p(%(K`D6nSFlo;0=G8J9kmn%vpO^U;6gU zj-@?vG~IIBGqv%OU@YH+ASKj`Lqk{m6)&>gNUjNx5>N&^dD&9hlFPVINH#he5;jN)NH$qR zf`TQ)xslPuW4j}jm7AMuYu8S=BYj2szb|=tR(kg{FL^2pnm4Rk%_9Fvf0@4R%Bz3c zdhH!Wzt1blmoFinJR79a3(5!!XDC%AMJ2_xMYSd4N>)oZNjgszsKow(dB59Trrlrg zYSfwdZ8EJtSMW);9A8vzE**Sm-d8%`bcGQ8uuZWRy3vZg2Z|y>6FY_t;O_ zT^ZHxt0(xXu$R!PMhHulk?ur!(ItuNBJ!a1G|+l#KC0VaX%JFnp~ldp(E5-ZI?y+q^hbXTkoe#i}=%0kq{iG@t{Ud4N% zQ+B$5L6k5ai`a)tZTHwTPM6zb^Rohdk$$&e^4koB#QthaXM8~OOfG)}z02d2+`uWk z0*<7+xR`7(!+t%=DnNXWN~ z-F3N~C!f{jD0`(k@bHz15TxVpr(V|nQ>OXp^5s9-elgocL9i3|M^e{-VbGiTU&M&o-mdnqElZFOq?KK&^InGT-jBNsa^I zVyu}c8ztcNMA^2Z-uk_yMAO<41&JCQU{o^Eb`HRx47+z(I17Uu000e8L?kF4r`e%3ox*UVk`hikcB zvWpa!FCUO$9AZy|b=?O}^$2ZSA`XUj+D}5TAnNiX{eBxays{-8j%E!nU)(p-Cz=Nt zUbI6E$!Q&=i%Wf*YZ_q#p7Pi!###4&@7ISXPHGmnp0^R!pUw7Lv#ot{`$s&N64TMP z1CqtUP0C24tH2c%V{(}_7MS9k>Y7kEukajpwtP|Hx*|(aaSAiH+ER9hV?Dy0>^|0v zl(W@v%ux5Eok|GOUIhkfgXC0n8@GZU$yPi)9!V$Gj=b1NG@{ycqF-_F}6kA?f?6fwVg9BO*o)4xsk%okdUBOGrLUX3GC5~nEcJ(Q7wvJk470+pTI+0hf(4&|`&a+`Mp-`yKf zWlI-2BawUZ*SdP+tjq>+UB#z28x19ItmvC3fiobnvx5hM)?b~ZE}12huq9R z@BaF_7+Pl@`%GC~8LNf$tPjQ#9hGFA9bI`>4+-GOG6}Mfl+R zz>RG}^#Rz~?I=BCPucj=ZR7~x3aIS>5M3Os4bBY8hMemJ-4F;aEcGBL#Slk4W)vY> zeDS+@S@OQmRDZ$o4uh;_cf14Pvg^dUoHyaJ>vG8o>A z_{Q6a15cGcWk*n9KoUm0h+utQCpF2C!jlwzkS7ezZ6-0{bUI4e0{5Yaoe0frJJsNO zw5ts{*^%^DH*M0o`u-@!K?UbZpGs@_h&o}OT7}<&!$=K{siiR?tPUxK_-XKCkk6oz zprxNKit_33D?y>NCAD}M(xQ<8jp#KsTAZ>n=%FZ`zq)?YMtV`7o|ys3)Bt3v z6Y;^PDaJ+Oys~q|%@VLSLl zRYsf#DvMIZ@1n0X<>=GC%bWRwlId}Vo0xkNubi(gRB4FPTlLqM#;@cVy=`#nO{R@Rlz7^x>) zTwbayjInHvq%B{`7lr(QU_m@Yl%g~!o(0iu@3y!4WX#$J5Z?=2?TOOWQfKF1%J4w%{`A$*rdj+B=a zQ|*ZpTysyFuAxYj?(((eqEKF*f6t!p;>Q(C^py{ zSZxD+Ufb|=Lw|#oVJQC4&Q*v9qn8tnNKem=I6{etCmC?)1T(|Zs5kacp)({<$3uLy zy9K=Sb^G%jdFr}vOz#?U%@1?e1PXH3Kp!7G&K*Jx`-xDl6tjRWzy!RM1U?AJC4t&N zcVKOxC-8dUef*$DA4|Tv%$X17@ng&bl!wI;WS=hDStJTYKAS!p3 zR2^Bs^*FDDmosQX(_&jt33fwUz8%%7g8?6)lX*ga8rRdA0q1_;06{-{>$%56gt}t*GwuO~& zcUTs}MUX66sAm0yxaX)pcjPiIz6{OLkJ3BTaC z`AhuW{vQ7aeyxh_j9&^@Ka&~#OAbp2x+-Q?*Ol>#;F>M!HO!4`Xx_GHZB&VNM^T|Y zivP+SSZ8(~XRBTZ-1Xe>yGGTHQbu);!d;{AU&G+LG8QfFdOkDzpZAX!LeH@h6nG;M zPtGA$iDlEbXR-4WDG5;(M;ZGMcfWwUfq{!B3RcA^mXvd0V&}61rixTM3)gK^uLB`b zd|aW|Ou^f@f=fa!5mZU2N~|&^z-E>+rM#mYTb2z)e9Gzb+VZE%`^&XifkKkBNVOpF zgzf4&gwHr!u{TtEGI5*W$bsDwG`gw3B6E$$CR){bs1o6?7)O-|_kW{_}|z0+;od;ktJ;*9jIOuGnuj-fR-}2D3%fNJ@TDlEPpVgTtL9 zeQ_fX7K!hQqSPYdMLL}!JF3K>J`5_ucy*ERBx{`0z@{fu6(PaoEte`DPfkJFdO zpQyW0oe_HqPcp)O^e}0Y9_6Tu$U%O)_z;fV1LN+@ z)Z2CI(?=(o+r|aslg7hq`AjHQVp;&b2d|j$T+|VY2j^QL8&FSz6 z{eyCkEXrD1L*LLx&@zIUJ{A!SO-dhKU-vei#4xDlfpvBJ_Sdb$GXzAlvya6HJo^(A zpH6YRle!&R#p6NyG=l+oE9QANy>=U`MwMo>S&etBfeE>D3v_QARO@JSoQkd=Mx9E0 zsjE$@$F6FRB{zDuADtYFOw{WNJg%~f55IHznu^jwX}y@|v`-s(5SsoMc>ag-lfb4+ zn2XknG=sbyMw)?ykh**Fx0QjbWA z%!Gm3!E${0Kl1c^UDO)ml8SNRM-!kGA*rOWb?&zy1Ltu2jJKWy4EZGB_on7{2g6;7y{Ja|ErpO_EW4Zyi-P+^LjWA>(-y zJs(c%y$G9=MV}!0#Dh2h#-8W1AyVfEiXfWpJ$j1w5`3cM^`S9@9+q4l?m*0s;A6PM zMG3R$U*8gMLG6KhunSK3^NF$nWjN4=0t~J?txV!Xs_>s z`#V-|Su^)6kJ)!cl`{AH7eD>f$YL>|6NXNZ&_!0%YEXIyM7o#1w!oDZ{nugJdx!sp$1qJpnH~R& zt$n{y|JPo2#u>}f`|(20)vgjx(@%swnh@4dp4Xx0Ev{r)uLI{yN0c^aezL+8Gb1P1 z+-uPWdJBBL#Y98Jv0iP11zmMbvY~EMg~S%X6qll#EC#e^OF{&0DlOX-aKvBhd+YF3 z2t@MjI=mO8LiDCi_cjOk&ll8(o2TVJP0LGudX3oUrJW zNu});)BJ*lCY@`K$Lx^UGNvgjiQVGU`sdnXp~7&mq?8T^1tGmqZ0-M)<74&^e7t~| z<-Fv{ks=Ks1%yYa$sr}mv7$K+D_7=_0)7xsAih-xK_OK3!p|`b`OixzYl2NG4(CHl zW?&W383aGHe7TC-OV|B8T`8^hL6$BP1PJ zbIO*}r+$A7;cCM2uwA*^oe#XknzgSMjA+y@)D#ri<}^=Ow0JV%r_52KVj@AZK}i1$ zm{|FpU_szjVe$DHXPio-)M;-KH|UNa>g6(}t;%O|!R><=(FbRa=&f@0Y7~zzsVV5~ zu3}Z;Jo=L73s*-FbrcL1Z;T+PI2nm}MA5&IWakSm0McXIh@&3}$-~Wlu(b~#>WRH= zuL$wIyP`IDIYH+D6NCyxOF7^~3B1@g=#)=A@KcY3hLtv9+sBv&84*_ov|u$+PR#sN3qqq=MeYk z6-J?F=_W8H&Z-RVO_U=2H^psoB(*NQ_)QxH`ja3yNTHzBv`{cI{{*TU6umjPObuJz zJ$=RnE2qy`xumJGqG@D#WTf`rGcQ;z#cRg^b10q(4W-6PFF;{r)o{4A_J{YH=tPUk9D>wuu*9Mo#Dt+R1cW#DqDcuS zPOrp+KPhi`^2MJu+1ZD`d2ThkEq(R6XI=%(jm0h;#T@*?I>oHhY7g3NF1uDn4QkrC zp@z^q9UCY0HWTVJ_PE_bKIl>K11!(lKc=&jE!e&J84B7Q0Y`aQ z1-9UKJ4JS=J2`f@PwJy^P1d(1u#MlKk3}t*G!V&&FM_>06CcP>%ZW}+5^{9*Ti1=f zs_@J)EssqfpZ@&Gnvd7qwy(`7-%vlIz_4Z2JNKvOvM29;<1+Sk`Kj|_#7$*b*+p1c zsc?-_qAkK^ExNEz8v$CE(}hY7MyC}UagU+6$H0|hCsr#-r2*H+T5ZARK)_XsB0JdU zU0^FgupEM7VoF-wPJ_{^amBNX0q~KeyDIG0nT26_Cs>=h zMEN4y_s?s%urzY*X&qxn{$vIg`Bd>m6K0-kzQ8&s7Mo<$EW72|rj}&utrx%bKyI0@C6*}<@*8>?=+0^T}cPw*zd2cmCMjD zy(sE%R7YiEMEVbM1rPw9i2=G$3r}ckB4;lhIeVKSok@8Ks<}N$gho)Xl&YVRi?Ga% zy7G`XUV;%eQBWhvpP*dVmzaNLas(6dY##Tm$!V2U<>!xLE7HAVV5Qzt7Ok%T#Nqap zig%qkcGRhfqb85t7I0iyySOzmy(my_JN41I_L9OtjbnB3>}W%0?Ey#7Y8s#+W=(~ z&16`B-e0gH?MCudp~5%9#t?v;p?K7i0x$?hfJ`T%HF+H~8BuN|YI!V^a|9J2RVA+U zXnSY+$md7WM;1<+_|no-wzdE3tQDU>{CrQ3wCv2I7yRbH?^7#}u2{bQ#=bXx2D|2o zN3S^NT%!3Upn+!18PHKLQoOj(QX|3@AYTD+V0P1H(#-L{UM9DDfU);Zu{uI^!hi?!5Yw} zPhJ7O)e4}ic`VQ?*-O5^wk~|alS4x{%A=fYYvJMzDoi_FaosPkC~v+3KD)n-JU_SNYF%v zO@a$)J`efKpP(W34Ue(kKPJ!q>M1-H^m!%6<}z4emFUFi3!%|6WEiONUWOzeAh!U> zEkI)p#5dzlDEW;;pTbBF5uf4(8qxN(Kopoh*y8|-3xHxDS+vg<9ipxuM4$Bj0>qln z7e2&MjZF-wrj0e)_bK?9uzeWtOAr$uhGoJ5nGx3vv5+_n&0(GE4FiFBz`T@Gf+5C< z42oUVx6Iq{-nfxX_jOFYE!i~IQ~1t}i_X9KvbodlVZp9Pzh_Feq#jxRNONOzvVO$P zr=;J!^NuBA-Kk5j{r)+#&uhjWJq1wd&``LwPRL_U#f#(WX1&3s*Bf+XJnNKTFo|;i zMA`<_`_kv>5e1KR;+zm^4#IX;jfz$vYHZg81>8dKTX7eVhP$>H4IlF}v~lB-{2f=) zJ6(bC=zbmUqo-ucBb|cu3;fX527A#TCtX8DjJl1&^+A3XbpB)PS6jC~ zFHL@~_l0B6N>^TY>^k{}&-Xs})#?{|pG#k(IrGaOfztn;-of4xK87bG@vLqWEfpaKvgQBKuQF*vDlWNBgOYINEiN&+xR=}XGHth3?wO!Z|}4Vd;ymi2?pBR4<{fM zXlLhp8WBSXRG^;astR4!=t50xZ1*sg)m=`!vSIZ3bLZ|p^^2q9Z*Nv6VIlUQdP}E7&85gB_nPz~+kXA^)NBl~O@PTqIWE1^oX3_$b`be55nZ-+tOd_e~ zhDb@7%r2A3d{zeF}K$!5vMjKiWswED!%_q8?&{399exE=E5!5r^54rptQM`pe6sO!B*9*9DJ`$l>+{Xd zK-VwjXFJYDRdaDAGv(Q9o3=rMsaDg?s9=7FQjF#q2VEXm6dqTeS@PKRnjTr-6F}7g zPq?>?9|!r7MqAk%^t@W+Lt0rZP`$Y*tkGBxIp9-0LJnnmSKRQ~EOY_CE>ydBF)xO5 zXgt`0Ij|9o1nq0@yYLf&_1^7+KMJ&o9`$>9C?lDEs`Mv&DHEYP*xJBnZCd_^KBu8L7z`%P0A&gX;23*Oa}K;(*C`!1+_NOl z3bM;>OfaIniyln}g&;(;6(vt3>7WT)7(NMR3AI~Mqt@pu=yAQO*LyEFF^2pyFaBhb zv?$(+El*cvfXIaV?e)LAbNYEcljDMx1!r!QnpZvk{0*PIX|lY@9OthxhVQ#z z!ydC{yT*RzBKJ^$G?&*NArT*l>+T4V*=_&uPW)@?fkH+8dti z&8(BoDTX}x?)3e5Hs9UYHgOO9MWYncJtDhA&kW4ZM4S!PJ+JAJ^u`oqIrp~E`&Q`n zd3hSXXY=F>Y*;8#Pn?1$pw=#svTgS>*WP&MIghcI-#W76&TEfhU81H#T%jKiFJuh- z`;-zL?1{8`lVX+kYdn$h+8uBM*WpMYjw6BkXf+)P)Zj=UND;gVtwsQ7Svin&i2XCOz)PslRKZ zq?AQqA;I?#ffwHk)$(w??Eo4>ki(bL1^RgLLokL$3MY_bi3EE*{qz)H@zRclgi&i5 z=dZ3_(l$lhv(!AYSXpM0muv0eqMBwvP=&oT7Ws<}!oDrb;|zZDBZ?imv0Q=30@+-g zkPTHmo^7oD`BJEmIz0-ppob&0N;COWoIbq3H+D#g(@!!kcScfvI^y&z^d|)lW51H0 zkC$*5FVQHRXQ3JjlH`2K-*Gj6$F=+&m-BbrLGOwQcR8JgPzVNnqq^_m6*eILA^Da0 z1cQS<32hK%ZBX3co*Ay9;`k#c`pLxxtp{6SLUqNddO4{Hjg7MY(XQ=N=RDH=!6!3L z&(p<wun?=2@67i)go@+v_5-8%IZ$T4kM5Z5t z-HELG-XS2FgJUH-hm;6ig=faGt;^Y$kVPUdq~IGdc4owDF`8u@uC z6m=o~8GNws_I&~6fIxuG99%6JIHDut1e@^mMC88m;1ZAhlt^e(dGr*s_BYnZ=z7a? zOSCnX2Xf@}A!JWTk#%?C6H;0DYP&ppmjyH|Xjk1sSHv zOWkaZ%t9f{Ha0>jko`USD%CQHghIus2sEP_OUi0>rt(PJBkW>-!uGD39&f15Wi`tK zxX#)i!4hH6kquXGs4*k?SJevsK(cPlC8O^SRy}Y*dSUwZ^j&uON!dGUT>E=>-?6je z2iN9_Ka+GTmcv#VIflufx1ZxQT31(0xI9`LyY%wFShLm9Wm|UrcaS<{>5$X`cO`@g z!V6ng2N^{W5H!k(%gk9WyQrMW;|Te7I48#yj`Yhu*k^IMTn`}CZK(&0sQdzTWrPhk zvZox}sJJeUu{DLPkb2b?%Hv{kWos%#%z_O3Bse97KAVY2oK}$dkQ@wC?o=UvHTtZ9 zWw=7wwlfN*A)`LZU%Eg?P@gD6C1c?o2Vo+jZ_7@)wnw_QPXjw`Oy8Bh+r}OdP0iyb zAGq_O8K;`{HDIpi@BG0|FjtMne$LpRs?0U63(OVOX=B7(K*^Fbv_|6vO_MIEu8nyl zO#!jmy|2Hvfmp3b(%My4JAH!6YEppWyOyLEY5n5Ukl{EDfeg2?WBtDnqDlcyW`%I2 z#Z`t6VWmEi3@dIQUTpScScrkLa#CF#g{T^%kkN%v#P1D^5=-PoXp|U@5~ERKG)ipv zDE-^fFA~}dMnR+{^GLSab2G6xHF-3Kg~qVZ7#14Ca-uOr*!LI%2hTKykQ>8WU~tkH zUK+zoV|Zx{@9;6m{?1o}UrUY*=F`4bJ$PROC8rna3dP^T58EJY zdQtGe!2&Wvhm*f4#Zdf|eAeKa;1bK+4ekkUX}rwFi|o>JcCm-ik;+!kb!|@>h*=5L zR0Jx(@Mg2GM`tc|fd?*2utZg9X$9Oc)z8+TWDew>siLB?GHE_!u{cu30YUI7cgd

n3@lPXoDfhbYveLN3JE|B$0Av!*qBPWsv+?XN<1!YRB~#cBl9L zibR7|d_>CQqJf>y8eJo2{bcOe*)Lyy=WEvM`o3y7KW;gzZSuTn-~Va6CJ4Gbqsy4* zxUim!ij`LfBav&C-SJua&G-CP8iVV;%S}$5%_ehw&vnV#h2w9gDaDtr~8=vU&)n0 zWBz5uoZU#45!J{Gg>p~;a#+eB&Mm;auLJVO*8yTcK-Nc!5o<{F6cyFuh!9G_s8i)VEzS0Y>R#g~Mtp%dL!|xs zgoss-TvUq=1}`Bw=VQ}8bp6Gv(l2woLhfh`e7$T5>vSxudVJTe)laVW6*4~Ch4C|kHsoq$8K_y@Rbw4oW6>Yic_Jiq1F6Iumi^q(b=7VJDNH3I^NxuLu z{aBR@>{jL!LW&2BC{)zw1meizig<-maa)C4F<5_9@7DZ?-~Djr?xoB}ny*HdVB+M- zW%!_sx^0v=YUrJiCHEt|B#!4I>YGcXtDp=+H>Kx#0yZuQJcD?c^x5;k{%(F9_UdwR2KH%g_xVW~@O3l6 zoo{#0qOG2|r_F-|kc`SsiaR7S-7n4O_wzVuX!~<;e^7DJnnM*nKdspsj)&XA5+v~; zeV=O=+P`VOgjKd%30Q3~W!)ORCgpR(Vc@n|ttpEcb!W`=w3ilw5F=$BV32sCoq^7p=gtQEa}_e!(I7KIN~MTVKZBtNFEGZ zEmA6fM0x6W6+mruDx9$G>)YG4ikyUd(P5E#FOp-NdkdS<7EP^_fdgP{vhX0{1!r&k zpdVfeoWWVH-X%bGm8oh<85c}R=7z2Y&!AVMo&iH~JD!#0^cBnJT%P`WY{IM`i0k^^ zDCw9RVa8>%V>O8%E=woUccwQu#V57y=JDfRe|X2DF*TQ+_F-gJZEM$f*6?!r3u}$d zF{$L8nLnI9VO@1SZLKrTH5)w_R)E%P>N0xEF97FJsBZOv609Uh$BRpgQ}uBd+GJN% zR;DTOZrM})nPEtofp<9zKE-eLCN`=izi$FMm#h5A$ zx=KrfT7Q8*Wzf0|25q}xkwNqr8c|kHi>l2IZSc~dxVnG^3;dE(=t0WKHa1c*IC~s= zKhC6aR(eD!!eEmOYy+CtYx86lED}n+sl2e9YD1lTN67Z_8{8MZcV`yTt2n3$%tN3| z?l+?A8)OhTosklOv*Rh6^2i5+R$7{YP+pdZC$Se+b`y=q$FDk1yhhW&$(BHpCEFdd z+B0-L@yrp7`~lor84Czi!grHW#`+0H`F<*F0RiE)5(PV~E{DS^`zk@V?WK!KMNesC zshD3}D(U@N@1|P+@!5O?DFh3ESj|GU)nRs(611ubTBU45DJv}w7v_6i z{$iwei#}OzPIZJo2p@suswzyixtL2I<*y90tEEsSbgmN~k9SWR6mYgKx0R zQ0Y=0dr5{a6YTfhE6=-#0D0wUIZDjyo`3G#)#nl=0*)ElYd6j?zaiBbgH-q~l3lv<*jrNcyUKUX!|8L+VE2$`j_lK40I#EPBCS9gaYHk*TOANf*`+agZ9LuBv_)51=tP(zWNW60x- zjbZX_FoU|(twRE~ohR8oR(7k~#|0~MOsj4m{~@G5c!E77$Hx=SY#7YP**zqK`2V!3 zl2Td<%$ExAJt!;rZi0QTITUtF-Bw5`eP`74&sy)3JYMF=~Y-DDew3yQzXM(3oBt|sQHj{C6P)qkh$t~RsX)qT@;H^6+~V$(Yr!g9QKvdwTXuMOD} zzmB_B|C{i4%g}xC8~I7KOdggmf~W5Zz}VwXy})G2)36inF3}VdaWSNi44n)|&KAIne`4`G{ij(eZ%X zQ!591;L|&@6;`)XkI>{JN)4PV<(1)@2o6w9dYdlgtGT>Jtf?tVgj2Q#5A{U!r+$~u zg#4lu>M5xdhQ!aC$tFsOI9CSJvMRaMagE~jA{7`jh zt`V6laMBi=D~Bk|_k~~sxOn;ESVxJw zu_QRBVco9U67sR6x9PqVKNS?=O{HXfC7V#jCVE*?gCfGMNmpwtiU+vtsaVt%i$xP; zA_m}H(c}r{)}(?1xrEE^H!DyJ%{_@?#1tM9-r_W9AO25Ssu=_tO$(qlI&l$7rrm<&NMLG%tGm0WJn@q8a$}{Ss z7X>5n(IrKvl#Dv7e$U(c56!&So@aZw`R3K#r?+)J3FE2A#hag8(i9z8*VNlw*WNp2V()ay+?l?lx9;>vbmaV`Jfdq; zJjOa=EVgJ<^N7f}O&xPKwYTck7y$9OAOQ3Lr(gg|(!1KWmvZznDS9M8kh(;F%z8i& z5(Tp)6BU4%HT)UwI|z_(pVmaN%()&bYJOib<6GwEhxLuT|B7ySirrS7&rOYW3O~{*stZUv=RPJk>1TteNvoK?dwao`g0iNiZC)3NAMCJV7ne z1ZU4dnqW3LtsYj6sA)$$2jQ9GIUX8}=WmYJXo(FX0mOa`CxOAy9N&P!!7&^|Q1o6d zqT@T_%KP0SICPG00`3E+B7h@>7kE>U-xw0l)Q{zGyHlw}3`=2hfJH>#Nkd_x)f5VY z*cU`zwJ5<@Z3J6vF5<=iEh1iEqwzhGl4MU1=Mw!6G)<8%Z2idy^r60Ai=(x(zX?9< zHlC@7JOWKVU_&&epfl5MrE)M}5IFJmF+z|TTh0DtIND4yCJ!>Ewl|)rZjO$j@6C`O zW7;Muz0pa%%`+lxW2RImqEj|?G_uC=o1!g|cqU}%n*q2hD=fHdXl~}PL^x6AfET&E z1Cjz_0=mg}l@!iMCT4Vq#2AuNdQzBQN%^MJt{t10v803N2H%y*1J<;EBOcbO8L5Hd zK^enkLvw?*5nxD-;<|G%&kqaAq7bbZrPc% zlZ$~sK7`Q$aborV4K6=9^*&B9S~}Y|LG6aq&NvmPPGi&SG-qj!pzj!xs1aH@RrnFk zj;Ns8GAqN(Fe!FW{hrMnQ-TncDR)T5!f4I6a^AJxY@%T;$&Bk@V7 zuIA%X86B#cLLhOI0F~i26`Ay^ZKQ?UUGci8z!l#bQ z=P-QMOE^UNEJ|V>v2N;zS4FeNlxdYT=hJ!jJQW%pC!O=~(HHR1`5dya$c$Oc`{$`+ z&N|UN3G-Q;@&0+hS&jmV6*r&@AXiI5Vg#m}gEflJ*j4;+y2wJCdg%3Mse|{>3zh=b zsOrW+uJ-K2?6rmTOmQMnn{bP8E$9Swk;IM`Cf2r~gG!4EngL3=oSuMiJd7>e(wCvl z=pf1)GU7O4D@H_3Ek0sLOLvR-4P%bOnAA14Bf2aqB0F^m{S6*loS&f&n)$@9+_G7e$3E~6`@6TQb{gL z%0jYg&@9vIw1vdMDoh7)aO>#Yh~VJMHQ&#UnB(9mABUcK9j@5U`wup$JbpIKoCzgC zomZXJT6FgOyW9y$u~5ANK__%YL7~a7UU3~Lc{`^l8iV?8o()`3|4kv(5yFXZ2*u-s zP$`X=tvIz7omT(OX-FM)erD9-qCul-wVY-UNzZBKDvXNSW=sG(;e?wvnIy*22(cPn z*^sd{Eu4DVX~r4qVM0}vDI>Qq;~`^@6SiUOB2@2D$F7YjoMmMpR(-OO$03M^VDYsh zXJA3~w}iTmI>4e%!Mh~X)t+QrF$;}Y&5#-Eeh*Bl(AY0rz|Q5*Zss#2Tmq(8H_?x} z?)?Z^<+YO2_815XLq?|luqq7pV`RdRTTdf4z)l&Jeo4Lwl~04*PI*n4)*`i3jHqgf zO_OF;jIU~s>1%h?1${e;sL@-%g)Y`!efby{()`BijrDc)b%Mq3w-gr_1$-fyX!e>kF)QiWMT7*QFpc<5@2m9Dh-=mJZ=*^Jk1 z{U1C}S6R9fR1g^dt01Jo>$xr`)rz&mw+)VOg!q>7Ld;J(4m+x11vLAys&qD?GSF|qCBOu@v->2aFqx?H+6MYA-i!5N@ z)wSyWjWS2|LZ@&lsv$mcNdaq?*wSSS8c3gPn9|wgGdYu;HoQ#iMc*1XZc==g;1_c`5kCkCFPfm%N_wm6Y$g!_xJ3l+-cR)@cE79K4M z?_|8QbHGMJ)-L{F+xIfhw?GMOHPcNELgv}=a503-C^Md7bWsy--~**EIlhCp0)!(z z@Y~yhN@#4}S&b+a==6eh7+{VJJ;_+!SXP*A}8T01M`pKh@%>Pl@$?U(UmM#^8 zEZ=zP`O4x+>ATxH-r88*`rPe1wp;am|Gx4^S6wJAKK9u8*Q~i-nsDrwAACAnGw+*} zZE@CXpr%aCEYTzWgQ%k)enS9rHGXv2SbCBlx1v<`E~RAW~ta5H@BI)%x{=A0AD9fK-Eu3hMP9x5Zkv`)#HDR7{`xV8-#>Ni zxbClZ%QL@vDY+EAadwczU6TIQkQi;VD5rk~?H4_>!)1uj#v9|2fH@fdYDhG;SzMRB zJ{CtTHWWFA=<6&_5cl}2L2=h!$=ts=d%eYqxNE2Y43XA@uOAd+jq8QH?DbwB!CCM^ zC(T{2<}+&);8D-5*cHrQhHlHJ05XYNa^c163nb4nU#U80wl2y@&EK_&o*c zbHu5+dunO{EZl=rG z7Y7dWFgJHTfF?ri;{X`67WwYnTC5_XS%pHyM)9kBG5C;M4F^G%Cv|K1ed>Cw;wc07 z@deR+*%jsP<7?W3>A0lIcb6tI~E1ruE>2_u^k11ycqUE9CCzivp}uUWjT zzfK+3<3-djhjL~I*`9u9NW8C^otl0Jwi))2P}t%u6DeJUPM#^qm!=Mhk%?zU?Wmg+ z!(}1n;vwpk!vi@D{r+!TQ6HhWr-U?pq?jj5P&7y?2?)QS;QnV3T1$U$QND@A*yAvx zl6DI9lC5PC-oM+5hZXDHK6E23)}`F#wta^YIt9`3-mU}xA8l^}7*%=ojo;_qJ9B3y zv+pyReKMKJzGo5$WD)`i2m!+ukgzWSMF*y z^QYgtkbZ9CwX3l4@7DLeKfUw&?7;(5`HG6V>i#Vc{iLz_rIH#JJ9qV~9W7I(`l7=( zY$QfhW-Pc`pd)qM?)|;!u8gOD8c%iY!^Q)&%0!M75KA5z%R#oN=fJ7>LfQjJb)G#RUpOaB0@1DF!OxV*L>|(OY z%%-}3#SeBooqluW>MKTswsokzeZgnM_E=qx-PTyYCjH{|-~8c+LVZo`-m5YqY@Iy$ z#MibA&CUw(!3XN5g#1C?GE98|Y2J~(ayG6dWp@)VB8Ra)9n)G>T))i#ePJ~zBlQc= znzch#&LJA?=A*~VZ=IIa0eiJmBtcKAP!80bJlq)fyv(>KRoqACKYi-{hi+r%_RUXk zKe74x0rvFCm)OZ~r;iUlzNlf#;T>OFjm1p97x3S?AQ$4UP8IjMx51N{??!?7=zR$& z$YZ%fKA(t9(CoNN`^a6|=q`QW#d7kk+C!otj9V@HEp8QUGO_eQb4N09=q8D<2R$I@ zk4zI>(iKDX0u>&Qy?gX2pbA86H6O`W39jF!Z(8@cM`?Ltv8!_yV7*F6!fD7`~XWHptdb&#qvSQ?s6v=nwZcA zM)(lgn)2Abn6QTf)ZNaD9f*&b-$Lml1TVK}sY8bZnk=J)`YdG#bPB2tPaA6sOg=K`XYJG109dkqf()IyXAMhT;f3 z%|53tWPa^vU00>~11H`_ehK4i+l$nmK3#fNddWKBNkKEx< zp3>stpnb~Qged42mxD(V9!9^)qWZUuCsqn<-A^sF0A2e1nT}MGYM(;VJZ}Lz{E@9sE;PgQ3 z$foX7i|_=St_s=h3Bym+<<|VA6N5kNu$k}LUs+N>4|Cu8@tcc_C)xBlR}^)&^M?^1 z%90g;?`G<74BQI-19)kOPS8A(=H!?HoQy{x*WSq2kQ$R`yI#3Q;PRrVyt%0EhOVJ` zneNn1;ZK4iJn#%x1c8)+Z`O-#1VFE9H8Xy5Eqf1T1C^*fFkoFo&n&kc8$K6qE@47R zzg~l?zPf#dmE)WD#quV+=W90 z`T6c~L*pmF9EXP74a8g{_9t+O7Zrqp>R0PA#i`7>tMQcv2!9FqRYfqpML;Le6a`#0 z%ze3VjDQ7s>fjZCbarjbQq`1tgenDy03ek`B(zg1$|~=;Y{or#^?mCu*&Z{c5B}}y zqb)7dJp9u+p&##m`E?z?@7n9G+^~D$l#MHPv*%X-aNLB6wWVb>`MEz&zdLT?#22@( zJZdn<4$gSs@i*U?^KS6uLpN;Rd~f&qo4(0tH!sLnw;1wmf`9ndGh8vL93;GXBIA3D zA?1A5iseZh-vlBc3L_(i%}Mqi_GYV;Ob}eMUy{ruaC712QYMrF5Aux_xQ$`wocB{6 z2t2R9)dn7-0Uy<(BcbaWsuZDzWT7|2&7Pv6!bH3~&Z9&xI)133**D}54|yiZqL(Xf z(D~>h;hT?9v5hhSuYGO+P{l{HK^_H+LuO9=&jx}pqAE$ZxVLdv za}`LQ`TfEc6l7DYb1e;3xdp|XXkMfDMAYyt9S-P8@oHWH?V7oVOgXS)1UBCKK_S~uWNl3FMr)CbK9Czk~%b)uZ zY3iztH-3vWl_a9M4ic$G1?ZC(%ftnlY(_KcqVoO^>$fqJxlj&SlqU`@!m&nXiX{7n>HEJi_NdR{Mjc-dTXw{`EJIiPp`jW zaOzYA?SMTMzYe?oW7!6q#3e!)c3ZC8oRBK0MCcFJ%xG5;86km!&F<~cx{(-EiE-LEsW<@e?DLfue4 zIe^~$NGn_h)Q^V)Ly?G~Y>1nHjV&ERhOw)}@QY9a^vrsT96%@tnzc4GVm*Mh!Vi_? z63VVQ^aC9-ot6V87AkCdy9rSm1$RYkuE7yW_Q<;bXq^ zJEz}Df9e*V)(3xd$J|@Xt1GcOENP4P z#rdWoM6MsC-0`T!7)4bb+IiFsl}zSZEpUQ|j8l}g`UPdG%Hu$zK-_29CC5m-(1@&o zJPuTsNlhqZ50}FI4A+@#8jZ%-#vasiLUI4((Xi5JP#YHtXGeOtNXn?Fw6ivsZ7!+& z$&}$6eChYz{zLi#1|}zz85pgAfw_;}_Tb*%2Ls-sU|YIo?ToLj$_~$2_DQ@TTJqC( z82jCwk6XE&#sc>tpn<|?>tsqor3 zga0V&zs{|7C3TWL(H{yjb&#RtKF9|t2o8Bl`y~J<8fdo89vkASrg~VyQ|IaS^m)Wm z+NJt~l+EK9T4LV-`njoc1KK9gCI{G_6m>DfBwy${gh{&oZ)m|y0zPU{y8ol^RYt)x z-8>M6QvWMir%9$?pw_AbGiJ`BE>}ul#2dPh^a%YHPjp8LnJ9vVLxZ`Ci^w!ev>B0 z0gLcnDyHaXzUVC-if$Os#*<{ma}yHYI&Yh|+uP?=C5N#0AVlbO4lQwPK)7mZ*nm2= z&xp|cLRnE4QTCy!R;nY0B(adl!c_E>M5;t%BVK+K9ldD{&UO_WE7dPmPjz&2MPH)o zjka{fMFMVnqHDp?+24CF81NKBE93L795EV~yu<5@V&Sq8DUVy^>^n8Dqx;_n6-9J+ zOvze{mz8xx^Lz0K)_`YZdu~u|5aSf7@!W)ld@yxrol#-~#j?oAD&fC~4b%=%&Rhsw z>y&s&OlTcBSB~xvh>iH%Bg(nlDdBN0H)Z89A?^5F6T0>+sk**Otjb3Ch*;#2m#-oR zi=vOrRRZqD9!2yqp=`pE3D-{$aa$Q&KtXLPkcV(_aqjCW-&zmb<2>Y4R+GoAN36fF z3R|qqXq6o3id&yD=JtnBZRgnH;9DKcLHc42Yp~W}TDga~0_=qgBl*HXqb(U8l53y! z=6*PADLuMHO9}I_(?wk`)}1LblP89mgfLt-R9H$7QOE;7GL>i!kvT%5L*58p*?J*k ze((!bMf;2y?|$d}-_L4Y29sm=7UtWs`;WVC?aI!Yvy*18%uJj?tI_N=s<=;Iy5s2E z&n~+`u_ksm5(V;{Q6U?K__Z7s<$I~vS`-qw4!QWpZAWasunALaTWq||>=Q+eQ)9+5 zOQEer7Dv24xGZOmJ$)NgvZ}nA)@jJTD z-~KmoL|EVdQ-K|mU|PCjWyi=Qz{>ebK|E4AR$`|QH?DWV5C`WrjM0BtPoX=!Q}~IT zeI+!KvWiaOrz1bp?`!Gzq>=1Uc77Bj%+O<`G&A!<{wyUUiEGE63$k3L1+gSMD!;W5ou zUD-VkNKvZ9DbxS+n)F}Nzq(>sV%gjKrrwaF^KP!*^3}E&JDu*lYSV9@U;D{qB;(4) zG4<=chbFjo%>_&{Yy@Kx*D)D11M zX8CT*jON58=7tc;v4?!zCBf#hX1;mITrGDjJ^+VKJq@TQz-KrB^nx%Eu!Gi@FteiqDvoH z_tm})3&)qZzP>U2TuJ?fSDLm~mNvV?OK+LbuprLVJi3Y2&DAh3-&kHRr zn^1AX!mmC6R$jQMswVDUT^-jXyOg|z*aLjikG)g!7ht16p6~bi?Ov~cKFTab&a3j9 z{eDqz>Niu;-E8mI6Wkl69D%xy5CUGyd0l=jdC`Eluy2Z=3%Xv?Vm8WA{tIa5h(Vxn zkU?r19Q;sLXRWU?zaS3?^|7VeznCaebpJ)O2bmqQC;fK%rrXn3vp42`?ZOLvuQ%(O zU+lf$zkSYNV*mQVKbPjcTHbW)x`p@04D-AhA5}OlG^1C>MC>MMr0w8& zlO<^3v28{JtqlR(xk${6>#)C>0XM-Fdd7LCd4#I|kcXjKwKCO+E*i9&@L_8>5*7>= zzoo!vY>E9@GE!DFRN+M8`|1yYG(|3ZQ91_n(M2Y zy8W5W-;fi6|8@Wl`HbSLO9e}bnHlz1&%GuD= zR9N31uIhIct|{cXLc?b27*BTAiX{!r$l|p3V4J_s&+`pO&=q+CSgd9Hn`#l$qKTiO zB;X(7CXek&22ZfE^4!^1hTo!05|!t2QvzUso;B>df7ZQ??WrS1g|~{m=6YvI2bfq7mciu zE5yhu=gVzzGhK1VoG*?YT_g8XjBfVxF}!0xpH^;oX&vx(1BeiRnF=RBDNfcViV_dj z*V^mrYkM8oXvR!|Z=yU}UmF2Ffs~-pg0wnbDvoH%8CM=X5^?y+0oEBDFv&%U{1Vh# z0oef5U0+*WuE}Tl56YYbgUON%MyekyDY5#8Xy=FnM3BUrw^9ZoyapN!L)3(Dd?x=u z#8Xd@Jbydqe3W$lHYWIG};GG>5mDN>Xz`N;Ni8Q9iR zMZZR_h)U)&isFzrilFVFR2{$i(Qta&j;iVgiS1?DP0M)o_&F}8V|RMm&%bx|{qel% zHL2Tf?pm10n^V%lj=lA+I~>`%G(J_U(Ou~t6OW+Hz%je zUlQnkO!ch3_(+i_j`%~=pxYk?z(QSJDyqwBo3jJZ+&H0LQ^v|3#P*d) z`CtGNMH3#ZtqnW5DWWkv6lqalq{*Xs2e>p?9KTrVGSW+;A1nEb1V5TM{RiTgao>M5 z228#B>IvV8RNl6HbR>99&+_a@Y@OXYT>JUK;47vlQ6tO8&(mi z30=~T-sni9Wwje`ew%WVcKZU_p%Xgr_l-kpI$Q0BBbn)H2ThkzQ*5$Bx{KxxR2iJr zTXN>I;jg$a{j>Ccr2q3>J3}9b+(_QGjhh~=uC3V3244B#rN6fC*655+)XrGs5BSRC z1xss0P*&y4m+B?ldz8z=ZY72-A+|t`kR=M;@gK&c5E5C6$I#G?LF>>W1DFpcuu)^+ z@~JIcAaA7e51o?}lW#uL9FF4CqjLRoCMlc273G!*pMR1J4Y^8Ey|g*DATRyP^qY7f z^hHoPb0hIv*PZ<1?yDBHJ(%mP`sJHH`)m8dMxFc7s(HEO1V#d9cWVSyO+&-p_F|$l<{) zz*D1JK=AJpHRuN{-v+_-@@<$L8mAd-7Tg9VluYELL@G%9ltEc?u@g2Ttc$mLK`!L3 z%w8{I_ous%^B_-iIil7M>>Hd*aqB@F-5xkq@1+vRs3E)>a@gz+hs~fixv1;4*`ZfU z9+wCELaE(qo{#jy)f}HPCeTF`fSM1U&H?K;c{?&I6kB?6&s<>zUtQ{s-Zf^Uynalc?&056Y zS^tA&_q~(|1}BHpAEeLJy&QY?<^}IASaE31N^A;DlU><9?{XF{dpRQ(Qbnj^$x)=DuUFiJ!-x*BgX2C7!xE$q}<<2 z+3_ZCTw=&CBaWIYKoE61*~-&O(@cwt18UF5SXH37)3TrA2i zw3Z@#REhjPBTE>Pk-!j<;E3~1*2O07$*XjFzqdt^?c(&CL%R+)lWgz3{PGuSb2|e0 zmljo3mCj3_k>z~pl53V;dfD#oNuj3boSPIuUr4`J|8m~GZ!UOe!P=`gt*P2soNOM< zXAxQ8OWW4mxp;aSbO_3Cejq#vnY-XyUWuLetWGPh6+8k@#V;u>b~GHt8;~D{xY9i8RmqvyEYn@4r%WH1M3b(BF!~<3dlmA!q<-cXlt^63 ze2gS>l^7?xh1^IlTS;jOD%)J)$!Biw+?%ZW#^tl-tXQqqJh7wwPBbmwElZ%f$z`?r zeEu29OA-Iw_tK@)Tc-?uW#g`+4fW%`cZK}SA)j+nB+(v?7A=OR;i<)c$5ThC{}j;0 z9VyQo&($7Y?ZBp~^5gr>pfLLS{W@6=ddR`3c85i5UITbFBZ?A;B9BB-NTP_~jlaqr zR)bJ7R9;c|d3gX&l;uHKB6gcr)JPEtI+7EdNKhgeb6MI(RxZl?8&Mc&RXmFx$O^0}#cTCaB9Y&F={3(zXnbHoSS2JE z^AK$8iv~@IgAeq&P>Y2JKLkNhw_|kJEZZN|b5Z=8vQ&-(Fqd-YB?I0eE^Znk{P_@m zG~0*tpuke(Z+?qj0Xoxyi>6BrZ&A%u7HIyQ%cwYsL|tQ$i}=CfneG2}UGM9&F6{y< zMIZe5vB%B_^-uGjG>^c*de_TMsno>gNx!;t)lq{be(;iqfBO6nE;$&t7>=@q*fdqn zDyr4U?B{U_-~l&3gLc%|s{$+P6fc|NWWYc2uqY!uD&LnM0?b~wpZHKT($rd>8hLX? zAOM%`&o_u@PG6R?R*nk|1ykX?WH5IqEEXU+n|WwT(iSQY4GWTaYB_%o3eO8~VNTGv zXSgD$h5OQHCpri{J>bR7v4wf*6Y0Nw<=U*{_ys_ za)m}qdeWNjH%yp3_mUZpx6~%TF{z^Ez+J1pU0G2pX@~zquG>Ic^tdXJ>svl0wQ#y@ zI}x*~#aYmxa_%ds9Jkjy6pq@%;VAahd@n`5o7-#kN5f*E-=83?Ys;QTxox=r8Mh?8(8{=87Y~eCfHGb;Wb0bnWW`_| zwVeAcfkZIaIvL5cjaykcTT5VYQY09gF-!wxuej(v_Kyz14++y+78; zcp4bvRb4>R$jiwBy-N0qGVHWzDLC~}sDqretRyWNZTsUuI%_na?r;EzOD|BUFc7(<%i)5g=@G1!_mBe>J#*T!52m>1^VB_Mml~kxT zmZLg?twIbI+8@D{Ey-oV?N1dS-*NpXi!OPsbMqZ}-#SuPTkx~3yMKMp@I!gGZBnh9 zHM!HycYNcCvLer**%eyes$bYNaYy~VzfbQ@|8-rgK|1k=o=N^`>HQhDF)Hh>f=vX) zR7RlW&VBe9K!p7BY5Dir$~z<5mp+XeeX1s^9q-ITHBl|r6RKUQrP>w3Q>lWQcBxQ0 z0Jd;#%=--Iz&aKOj{w~OTVm{T*Oxa0Y-=I#&^VcBb)5lHA_6)oxhkd?n;1(y#b`G3&ap%CPv^@5}8&En2 z%B&g66DV)+Zw3r`>+D4x1m*UEIE_xF-abVz24C1oP?`N?5S9OxtrB1s{~OH&8S*$W z{QX>0!OIKUE=k{=o}d2r^m7LGBW8c+G;3z1i)&hD9lGtJrh=b{-})A9XLnI^!3I}i ze)7>h@BFcHeU47GDSp!(ZK+s&Zgl>{H9sD0E|@NtkxNwe{rsZJKI4UL>1?H%)h1V} zWo!Es6`^%L{qu{e`;2sii|pfR=W|r@fGNx6`s9kWY@Hvjg?{1MM-ZB=RKJdO|5Jc3 zsL9>?q_XNq!CQ_o)KO)SeL7S1qXpG^y7>iweT}^rc zo`G`S^bAyW`Yx(s(fbA8=e2rbY)SO`=*v+d7;TJVBiS+au(%S>L|10Mk^8-JCB88a zSMp0rt}l7HL`xjy<-OXL1>3!IH^FeGokNTgolc!H|WhX1jZ9>#$e)EQ}NbjdVWIB!w7f1!^TJ(GPf^(S^ zO{QxfUp`yIPMyN4lm4E{$+fC?ApXDo{O<@|9lk@oI{hbU;}>3yZ%Y4(zG|cVRTnM{ zuU0uP=#}d~eUz?GZK9k|h z;s08`_Yh9SUFz^HPs!ghY1k^?Wv=?B^cLxM`7S^6Ei5WjrMKMh=G*FtS^IPPrr5&(2fO2pbZlY zTc~16DFj%03+kYyx%tYn^89cx<`!&I^DkX3ZAi5{TCUN@5ANAfIEf1E~N zpMUYYfW?2&ccs;(r8A;IpTpxd^2W;C+G)~#MRlgKIog2R<-0EZ(o~CE{Z229$&!Dn;XK-^VQ$0o@A|Cr3;5VevLF=t(y#8 zn543#zoLBmr}xToJ}*t=`ZW?~<2;C(MT=xJayFf|?BpvDaKp)0PGe6;8-g=TbF@o} zB5s3Rt16TIYJY5Ee4VvO>QwvlC*-fQ6-gSYt!`>ZM{7M^XjJpn_g$DQy$a2J{nK06 z<_i}-tybTco~<1DGv~7is{I(UVR@|qD7>|=YJqs z&p(&!r*}YVKgvk$to*b$rEg3xxG))db;+mC%Tha-zH#_A<;W+0m5*G8BNdq=JLMyP z!I7hxs|w{KSKvr<=A6BBWOyS!c}nJ-C*&iCapbPdkq_k~m*YrN=ExrT$Rr%`WR6@f zADN3IMVTXa(~;scMYgBX1$^F*z#a`rm;o!B#dp|DPPOc2(YwwicBD-E#rlut6d%sb6{%%a)MshS<4 zp3^WdnqI*%K~ty?4^RpUm1UDbjPBOL=IN=PWBa9E-iY)gr~w`sKybD#a% z_TLmezkl$lV}E|*{Wthqp1$jeTPB@J-_AOiYMk`%O!xn#KO(ej0-kdMo-+ny`ae^J z))45ab~j$S?S1y`b^+}Na`-}NoHR`m1W966jm>T2?K~>*m+!Y3^*|$Mr<}G_D3r9N ze15#x9C$$tZ376kBBk?)d8!EC%rpf@SO=Fv@yW7Oj+3Rd)+7_XVeBluYM(EKgy{>o z(vkF~ES99t8TF2|(fXSr!ROdyH2*KdXE@nPuG0MBSy?WCA&QvSZJq)4$k8H(H|M+% z)-aXIy&`wfGQVg(vt%(bB^Q%>zqpIrgo2bXsIwLsysN2(1gXeD(FTZ*Ff9l)jKrXf zY$@@ZIN|(D*B2y8oVR*S9UI%*Hyqh{*HgKbDb_f6{@GwjNf3YcF>d;*hL-8kM|2Yx zwO_em<}Hu>;OoUJJFjd>e=Iza-dhq56c-1=FcFI6?}g-xxFpL>HS}TE_D)B)gYR^A zyZQO{HFo)>*S^iZ)4s=k$bQ_eX_Go7K7p5RX}h#bQn4NC2i3e#{4AS|MYj^KBwZ^y zA!wX#XTn+MY;&r#&VXTn&D`$~7%?I#AgiXMT6fTHXmVY5IjJ-DU)Pl zl5M_ijqM|wXy9yz*=nwa%}MD!DGZv81}#p5mdXix3cQ>(qvwB7MrjbEgv2sNsLuS3 zGC*i$MI$4R(K(18`?*1pJ!K89Dv&y8pg{03pGMa!{O%lnDeE_Og25jSo4k!3skjuU zT9lE&O1hF+_T%Tr>)!L&0r)SF@(WW{dYkKzlH-g2* z7`5VkEL^^3&ZK7lyy&!P`YQE?Y3*0uwXyG4?#@opnQg*m6G`#)OWoDWDA%c82c|$YxFZcT%#G*Xh|1waWGXWY0VQfy=a&)!;}%afovNr(RNoJvfqJdpek@vKoolQ+w?p2d-UQOeJ}nISc5cO zS|nW|iN(TnVUci!Abt{Mf+oaHgieLt3w<0C`T3SLmR`#?%TCK4%OT5gi)OxQjj7kP z&9u|B$8^Xfv2{6Ha}MXcnIq24S(U>JYovE2UV~9XKdrxu?9T!dbcTEyHyg&S2;*jx z3@$_5fQ`Mo4Xh6>6Acj+Ch4JYq&EaaR-_4Q3PnU0dUA!sG5=n$dT2ZgFrN8)%xu2- zkeNSWW_!`O&W}NLdEI`U#_R7y+uzR)EzQj;&W~ZO#N5Q7VrYk7L~nZxEaeJmWPxpA zW@278(5%D>G%uI*Y#JTsE^NHmLyM0*+M8%4q5;Ri(>Pbt4E>UUu2p91XU6*BZQpq4 z;<5hm54UYQ@WXUuWVHXZe)a0BPkw&9UmMrmUH0*-qeG4etr6MQ!Rsx+>H+l$1W#+w_i?l5 z7SBB%VVq@}Wvk^@3$DxQ&gsJ>p37FDp|2oxhPp%i{OUE;JYU_UMYm86R(v)W;wIqL z3nOf43o%W|9ZH1iLTw>cDB&U-98b8BeVBPLKOxqtgd;e&5_sn9eU*l3SVs?P3~ub9 zIlz`3kaV1;bpV6x+@@n~s1gw-8HI{`cfu*Uu!Xmm>~)kIhZBrRf2*Hw_3!lW@e3Sy zJ*&aCoO2**^j6r(OzVrHta{WRd2iHC&)}l4)6*3@J$wv`K&o&KgNc7K78+ev8r;wh zY7^0T25A2={BG1@D+b#PQ$Xu0Spa$ZWAe*y!_oZssI69VWtjB;z=%7Xu8UV)hCG{0 zV;2uUb?^S`mdsy&&ALEcu@j~tkumB|+_(`&J-52px&PL|^Q$sOovA7t{O^G zm(H5LS--lhTe0yS9iOxDg-d3&v<9y&x=GkOYUIe9KMRUSn}9`zjb9P_;D(JpkXb8L0o>bT$WnB%bH=Z-fWe|G2=+Sb{&+HSSoZ+pyk z*!FYVo3=mObb>~wJD`&6DwU+ut2B}%xN^xPSYQ&uFbO`FsBac@I*oCwitWPAMs5`o zu-5Y`PC`z+BV~Kt&NOybXK#axcEV1*KLS(^uQhr(84rWonHgrdoj*=UWwa0vpTR_i zIVKW(W}pD>$uymFGBLgZ2*j9XC>TOYj}s^+R9Ok@tFer6k(BNC6wgR#`_9+r-Ch6Q z(S!L-iPgcx%#A(mTkc4I5-2GShKftrl>UJ=*RVgPZ<#**AbU~2VMcq;-PejmilHtd zUuY#f|6gF%`mmUxl+JkJwf$Pq&4?B<)#yk{A-t&cPJdEWh<7n>jh9z>H+w;!a9a|V zI*Y(m28SVLm}?OAf`&)8IY;iX+*fn|nEUr!l^~g1Cf?*HF9{I~#2kf~4TwJ^y-Uwq zIlTw@q2H!#D8x#jhRbPd_K5Q2v@DKNAT3~P)2M&?{)mTvu+R-V z?E-OG7Wgqp8f`nVLL!Mw`z(XnjJX6C$Wrf}arRvOS=lS45@~p*8RxV|ZvBdh14MGf zA$2KkKCmG2PRBZ>!Y_{JEvjo;*1mCL`=&iJc6{wu#|)>A{^3uXe+R#3u zr~f&2&5oV7{AS*N{x;Z!Dp%Q@5!{t*4Hy$zfbwoXXH$?zlVYZgtOhuW?fosGV+| z#_qN!?4+`tb|tddW!Gt}Zfn9?XKk}~TDz@%*6r3^Rvo5;5Eqg{t1w?!BlHT}gq?y; zVlEcP-bt-&K3l_j**3P5>CjZL@HvdB8QZ$eRw9c-&irU9Cx`e#zXgnn?UkdUX4I@6 zfrU13I(GTf8lT(8`x;0WIBd3wSGMesN@vjcy#o^oGaFYXEFmU0MgA~3M*q&i2uG#z{!V+vGg9%6Tu8S-u z{*VpDKd;hHq!8dKK_O9&WUL?6DM{!4cLrjL&GiV1OkUHk;mx((VY8&EQ9@1^g`9pZg`C

7arP#`qi&vcgC^NF+ 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

hKu<+arcU{tIy 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 Oo}f$2tSgbyIR9T7!`lr2 literal 0 HcmV?d00001 diff --git a/src/Controllers/MyNbhInteractiveController.php b/src/Controllers/MyNbhInteractiveController.php index b44cbba7d2..b190802eb9 100644 --- a/src/Controllers/MyNbhInteractiveController.php +++ b/src/Controllers/MyNbhInteractiveController.php @@ -142,6 +142,7 @@ public function index($nbhSeq = 0) $this->view->addHeaderChunk('openLayers5'); $mapModel = new InteractiveMapModel(); + $mapModel->setMarkersFamily($preferences['family']); foreach ($preferences['items'] as $sectionName => $sectionConfig) { $sectionCaches = null; switch ($sectionName) { @@ -496,6 +497,9 @@ public function config($nbhSeq = 0) $this->view->setVar('maxCaches', self::CACHES_PER_PAGE_MAX); $this->view->setVar('minRadius', self::NBH_RADIUS_MIN); $this->view->setVar('maxRadius', self::NBH_RADIUS_MAX); + $this->view->setVar( + 'markersFamilies', InteractiveMapModel::MARKERS_FAMILIES + ); $this->view->setVar('errorMsg', $this->errorMsg); $this->view->setVar('infoMsg', $this->infoMsg); @@ -591,6 +595,8 @@ public function save($nbhSeq = 0) && isset($_POST['caches-perpage']) && isset($_POST['style']) && ($_POST['style'] == 'full' || $_POST['style'] == 'min') + && isset($_POST['family']) + && in_array($_POST['family'], InteractiveMapModel::MARKERS_FAMILIES) ) { $cachesPerpage = (int) $_POST['caches-perpage']; if ($cachesPerpage > self::CACHES_PER_PAGE_MAX) { @@ -602,6 +608,7 @@ public function save($nbhSeq = 0) UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); $preferences['style']['name'] = $_POST['style']; $preferences['style']['caches-count'] = $cachesPerpage; + $preferences['family'] = $_POST['family']; if ( ! UserPreferences::savePreferencesJson( NeighbourhoodPref::KEY, json_encode($preferences) diff --git a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php index bc9d9e891a..c51bd0d477 100644 --- a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php +++ b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php @@ -16,6 +16,10 @@ class InteractiveMapModel // use this value for real meaningful section naming const DEFAULT_SECTION = "_DEFAULT_"; + // Available markers style families for user to choose one. + // Family name should be an identifier compliant (no spaces etc.) + const MARKERS_FAMILIES = [ "simple", "okapi" ]; + private $ocConfig; /** @var Coordinates */ @@ -229,12 +233,14 @@ public function getInfoMessage() return $this->infoMessage; } - /** - * Since it is pre-configured, only a getter is available now - */ + public function setMarkersFamily($markersFamily) + { + $this->markersFamily = $markersFamily; + } + public function getMarkersFamily() { - return OcConfig::getMapMarkersFamily(); + return $this->markersFamily; } public function setSectionProperties($section, $properties) diff --git a/src/Models/OcConfig/MapConfigTrait.php b/src/Models/OcConfig/MapConfigTrait.php index 6b07e65dc8..ec3e251ee8 100644 --- a/src/Models/OcConfig/MapConfigTrait.php +++ b/src/Models/OcConfig/MapConfigTrait.php @@ -90,12 +90,6 @@ public static function getMapExternalUrls() } return $result; } - - public static function getMapMarkersFamily() - { - return self::getMapVar('markersFamily'); - } - /** * Returns map properties * diff --git a/src/Models/User/UserPreferences/NeighbourhoodPref.php b/src/Models/User/UserPreferences/NeighbourhoodPref.php index f07f49f143..8bf59f9cd7 100644 --- a/src/Models/User/UserPreferences/NeighbourhoodPref.php +++ b/src/Models/User/UserPreferences/NeighbourhoodPref.php @@ -19,7 +19,8 @@ public function getDefaults() Neighbourhood::ITEM_FTFCACHES => [ 'order' => 5, 'show' => 1, 'fullsize' => 0], Neighbourhood::ITEM_TITLEDCACHES => [ 'order' => 6, 'show' => 1, 'fullsize' => 0], Neighbourhood::ITEM_RECOMMENDEDCACHES => [ 'order' => 7, 'show' => 1, 'fullsize' => 0], - ] + ], + 'family' => 'simple' ]; } } diff --git a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php index 32c49c2551..799eb63e54 100644 --- a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php +++ b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php @@ -3,7 +3,8 @@ use src\Utils\Uri\Uri; use src\Utils\View\View; use src\Models\ChunkModels\InteractiveMap\InteractiveMapModel; - +use src\Models\GeoCache\GeoCacheCommons; +use src\Models\GeoCache\GeoCacheLogCommons; /** * This chunk displays interactive map with different kinds of markers. * Markers should be passed by $mapModel. @@ -22,9 +23,20 @@ $publicSrcPath . 'interactiveMap.css' ) ); + if ($mapModel->getMarkersFamily() === "okapi") { + // load css for okapi markers + View::callChunkInline('loadCssByJs', + Uri::getLinkWithModificationTime( + $publicSrcPath . '/markers/okapi/okapiBasedMarker.css' + ) + ); + } View::callChunkInline('handlebarsJs'); ?> - + @@ -34,7 +46,15 @@ $markerLibs = [ $publicSrcPath . "markers/ocMarker.js" ]; - + if ($mapModel->getMarkersFamily() === "okapi") { + // shared js necessary for okapi markers + array_push( + $markerLibs, $publicSrcPath . "markers/ocZoomCachedMarker.js" + ); + array_push( + $markerLibs, $publicSrcPath . "markers/okapi/okapiBasedMarker.js" + ); + } $markerLibsLoaded = false; $markerTypes = array_fill_keys($mapModel->getMarkerTypes(), true); $markerTypes["highlightedMarker"] = false; @@ -91,6 +111,9 @@ }, markersFamily: "getMarkersFamily() ?>", + enableBackgroundLayer: getMarkersFamily() == "okapi" ? "true" : "false" + ?>, }).init(); }); diff --git a/src/Views/myNbhInteractive/config.tpl.php b/src/Views/myNbhInteractive/config.tpl.php index 52578c6e01..a83036b096 100644 --- a/src/Views/myNbhInteractive/config.tpl.php +++ b/src/Views/myNbhInteractive/config.tpl.php @@ -128,6 +128,16 @@ function lonToText(lon) {

+ markersFamilies) > 1) { ?> +
+
+    + markersFamilies as $family) { ?> + + preferences['family'] == $family ? 'checked' : ''?>> + markersFamilies?> +
+ markersFamilies ?>
From 6120e73d2cb07b99305627f509ec89e22c20ff90 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Tue, 18 Aug 2020 16:11:42 +0200 Subject: [PATCH 03/17] Map config unnecessary entry removed --- config/map.default.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/config/map.default.php b/config/map.default.php index 219e5b84e9..838bd2dd8b 100644 --- a/config/map.default.php +++ b/config/map.default.php @@ -79,12 +79,6 @@ */ $map['startPageMapDimensions'] = [250, 260]; -/** - * A family of marker styling used in interactive map. - * Currently supported values: 'simple' - */ -$map['markersFamily'] = 'simple'; - /** * Links to external maps used at least at viewpage * (to disable map - just add key $map['external']['OSMapa']['enabled'] = false;) From f7dc3316bf3be3422750dbc1695fd0eeb9e6324e Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Tue, 19 Jan 2021 10:40:47 +0100 Subject: [PATCH 04/17] Some PHP files are modified to be (hopefully) more compliant with PSR-12. With a dedication for deg-pl --- .../MyNbhInteractiveController.php | 238 ++++++++++++------ .../AbstractMarkerModelBase.php | 8 +- .../InteractiveMap/CacheMarkerModel.php | 2 +- .../InteractiveMap/InteractiveMapModel.php | 64 +++-- .../InteractiveMap/LogMarkerModel.php | 12 +- src/Models/GeoCache/GeoCache.php | 4 +- src/Models/GeoCache/GeoCacheCommons.php | 2 +- src/Models/GeoCache/GeoCacheLogCommons.php | 2 +- src/Models/Neighbourhood/Neighbourhood.php | 2 +- .../interactiveMap/interactiveMap.tpl.php | 6 +- 10 files changed, 215 insertions(+), 125 deletions(-) diff --git a/src/Controllers/MyNbhInteractiveController.php b/src/Controllers/MyNbhInteractiveController.php index b190802eb9..4365574d9a 100644 --- a/src/Controllers/MyNbhInteractiveController.php +++ b/src/Controllers/MyNbhInteractiveController.php @@ -1,4 +1,6 @@ view->redirect( - Uri::setOrReplaceParamValue('target', Uri::getCurrentUri(), '/')); + Uri::setOrReplaceParamValue('target', Uri::getCurrentUri(), '/') + ); exit(); } } @@ -75,7 +78,7 @@ private function accessControl() * * @param int $nbhSeq - MyNbh number (seq). 0 = default user's Nbh */ - public function index($nbhSeq = 0) + public function index(int $nbhSeq = 0) { $this->accessControl(); @@ -111,22 +114,30 @@ public function index($nbhSeq = 0) $neighbourhoodsList[$selectedNbh]->getRadius() ); $latestCaches = $nbhItemSet->getLatestCaches( - $preferences['style']['caches-count'], 0, false + $preferences['style']['caches-count'], + 0, + false ); $upcomingEvents = $nbhItemSet->getUpcomingEvents( - $preferences['style']['caches-count'], 0 + $preferences['style']['caches-count'], + 0 ); $ftfCaches = $nbhItemSet->getLatestCaches( - $preferences['style']['caches-count'], 0, true + $preferences['style']['caches-count'], + 0, + true ); $latestLogs = $nbhItemSet->getLatestLogs( - $preferences['style']['caches-count'], 0 + $preferences['style']['caches-count'], + 0 ); $topRatedCaches = $nbhItemSet->getTopRatedCaches( - $preferences['style']['caches-count'], 0 + $preferences['style']['caches-count'], + 0 ); $latestTitled = $nbhItemSet->getLatestTitledCaches( - $preferences['style']['caches-count'], 0 + $preferences['style']['caches-count'], + 0 ); $this->view->setVar('latestCaches', $latestCaches); $this->view->setVar('upcomingEvents', $upcomingEvents); @@ -168,9 +179,10 @@ public function index($nbhSeq = 0) $mapModel->addMarkersWithExtractor( CacheMarkerModel::class, $sectionCaches, - function($row) use ($sectionName) { + function ($row) use ($sectionName) { $marker = CacheMarkerModel::fromGeocacheFactory( - $row, $this->loggedUser + $row, + $this->loggedUser ); $marker->section = $sectionName; return $marker; @@ -186,9 +198,10 @@ function($row) use ($sectionName) { $mapModel->addMarkersWithExtractor( LogMarkerModel::class, $latestLogs, - function($row) { + function ($row) { $marker = LogMarkerModel::fromGeoCacheLogFactory( - $row, $this->loggedUser + $row, + $this->loggedUser ); $marker->section = Neighbourhood::ITEM_LATESTLOGS; return $marker; @@ -199,8 +212,11 @@ function($row) { $this->view->setVar('mapModel', $mapModel); $this->setPublicResourcesAndTemplate( - $preferences, 'myNeighbourhood', - true, [ 'myNeighbourhood.js' ] , true + $preferences, + 'myNeighbourhood', + true, + [ 'myNeighbourhood.js' ], + true ); $this->view->setVar('controller', self::class); $this->view->setVar('templatesPath', self::TEMPLATES_PATH); @@ -209,8 +225,11 @@ function($row) { } private function setPublicResourcesAndTemplate( - $preferences, $template, - $addStyled = true, $javascripts = [], $loadJQueryUI = false + array $preferences, + string $template, + bool $addStyled = true, + array $javascripts = [], + bool $loadJQueryUI = false ) { $this->view->addLocalCss( Uri::getLinkWithModificationTime( @@ -249,10 +268,10 @@ private function setPublicResourcesAndTemplate( $this->view->setTemplate(self::TEMPLATES_PATH . $template); } - private function getSectionRequestCommons($nbhSeq = 0) + private function getSectionRequestCommons(int $nbhSeq = 0): array { $this->redirectNotLoggedUsers(); - $selectedNbh = (int) $nbhSeq; + $selectedNbh = $nbhSeq; $preferences = UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); $neighbourhoodsList = @@ -277,7 +296,10 @@ private function getSectionRequestCommons($nbhSeq = 0) } private function setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + array $neighbourhoodsList, + PaginationModel $paginationModel, + int $selectedNbh, + Coordinates $coords ) { $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); $this->view->setVar('paginationModel', $paginationModel); @@ -291,11 +313,11 @@ private function setSectionCommonVars( * * @param int $nbhSeq */ - public function latestCaches($nbhSeq = 0) + public function latestCaches(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $nbhItemSet, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); @@ -303,15 +325,20 @@ public function latestCaches($nbhSeq = 0) $paginationModel->setRecordsCount( $nbhItemSet->getLatestCachesCount(false) ); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar( - 'caches', $nbhItemSet->getLatestCaches($limit, $offset, false) + 'caches', + $nbhItemSet->getLatestCaches($limit, $offset, false) ); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_LatestCaches' + $preferences, + 'detail_LatestCaches' ); $this->view->buildView(); } @@ -321,11 +348,11 @@ public function latestCaches($nbhSeq = 0) * * @param int $nbhSeq */ - public function mostRecommended($nbhSeq = 0) + public function mostRecommended(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $nbhItemSet, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); @@ -333,15 +360,20 @@ public function mostRecommended($nbhSeq = 0) $paginationModel->setRecordsCount( $nbhItemSet->getTopRatedCachesCount() ); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar( - 'caches', $nbhItemSet->getTopRatedCaches($limit, $offset) + 'caches', + $nbhItemSet->getTopRatedCaches($limit, $offset) ); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_RecommendedCaches' + $preferences, + 'detail_RecommendedCaches' ); $this->view->buildView(); } @@ -351,11 +383,11 @@ public function mostRecommended($nbhSeq = 0) * * @param int $nbhSeq */ - public function ftfCaches($nbhSeq = 0) + public function ftfCaches(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $nbhItemSet, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); @@ -363,15 +395,20 @@ public function ftfCaches($nbhSeq = 0) $paginationModel->setRecordsCount( $nbhItemSet->getLatestCachesCount(true) ); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar( - 'caches', $nbhItemSet->getLatestCaches($limit, $offset, true) + 'caches', + $nbhItemSet->getLatestCaches($limit, $offset, true) ); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_FTFCaches' + $preferences, + 'detail_FTFCaches' ); $this->view->buildView(); } @@ -381,11 +418,11 @@ public function ftfCaches($nbhSeq = 0) * * @param int $nbhSeq */ - public function titledCaches($nbhSeq = 0) + public function titledCaches(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $nbhItemSet, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); @@ -393,15 +430,20 @@ public function titledCaches($nbhSeq = 0) $paginationModel->setRecordsCount( $nbhItemSet->getLatestTitledCachesCount() ); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar( - 'caches', $nbhItemSet->getLatestTitledCaches($limit, $offset) + 'caches', + $nbhItemSet->getLatestTitledCaches($limit, $offset) ); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_TitledCaches' + $preferences, + 'detail_TitledCaches' ); $this->view->buildView(); } @@ -411,11 +453,11 @@ public function titledCaches($nbhSeq = 0) * * @param int $nbhSeq */ - public function upcommingEvents($nbhSeq = 0) + public function upcommingEvents(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $nbhItemSet, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); @@ -423,15 +465,20 @@ public function upcommingEvents($nbhSeq = 0) $paginationModel->setRecordsCount( $nbhItemSet->getUpcomingEventsCount() ); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar( - 'caches', $nbhItemSet->getUpcomingEvents($limit, $offset) + 'caches', + $nbhItemSet->getUpcomingEvents($limit, $offset) ); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_UpcommingEvents' + $preferences, + 'detail_UpcommingEvents' ); $this->view->buildView(); } @@ -441,23 +488,27 @@ public function upcommingEvents($nbhSeq = 0) * * @param int $nbhSeq */ - public function latestLogs($nbhSeq = 0) + public function latestLogs(int $nbhSeq = 0) { $this->accessControl(); - list ( + list( $selectedNbh, $preferences, $neighbourhoodsList, $coords, $logset, $paginationModel ) = $this->getSectionRequestCommons($nbhSeq); $paginationModel->setRecordsCount($logset->getLatestLogsCount()); - list ($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); + list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); $this->view->setVar('logs', $logset->getLatestLogs($limit, $offset)); $this->setSectionCommonVars( - $neighbourhoodsList, $paginationModel, $selectedNbh, $coords + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords ); $this->setPublicResourcesAndTemplate( - $preferences, 'detail_LatestLogs' + $preferences, + 'detail_LatestLogs' ); $this->view->buildView(); } @@ -465,9 +516,9 @@ public function latestLogs($nbhSeq = 0) /** * Displays MyNeighbour config * - * @param number $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ - public function config($nbhSeq = 0) + public function config(int $nbhSeq = 0) { $this->accessControl(); @@ -498,7 +549,8 @@ public function config($nbhSeq = 0) $this->view->setVar('minRadius', self::NBH_RADIUS_MIN); $this->view->setVar('maxRadius', self::NBH_RADIUS_MAX); $this->view->setVar( - 'markersFamilies', InteractiveMapModel::MARKERS_FAMILIES + 'markersFamilies', + InteractiveMapModel::MARKERS_FAMILIES ); $this->view->setVar('errorMsg', $this->errorMsg); $this->view->setVar('infoMsg', $this->infoMsg); @@ -509,8 +561,11 @@ public function config($nbhSeq = 0) $mapModel->setZoom(6); $this->view->setVar('mapModel', $mapModel); $this->setPublicResourcesAndTemplate( - $preferences, 'config', - false, [ 'config.js', 'config_draw.js' ], true + $preferences, + 'config', + false, + [ 'config.js', 'config_draw.js' ], + true ); $this->view->buildView(); } @@ -518,9 +573,9 @@ public function config($nbhSeq = 0) /** * Saves new/modified MyNbh. Called by MyNbh config form * - * @param number $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ - public function save($nbhSeq = 0) + public function save(int $nbhSeq = 0) { $this->accessControl(); @@ -536,7 +591,8 @@ public function save($nbhSeq = 0) && isset($_POST['radius']) ) { $coords = Coordinates::FromCoordsFactory( - $_POST['lat'], $_POST['lon'] + $_POST['lat'], + $_POST['lon'] ); $radius = (int) $_POST['radius']; if ($radius > self::NBH_RADIUS_MAX) { @@ -549,7 +605,8 @@ public function save($nbhSeq = 0) // Update Home Coords and radius if ( ! $this->loggedUser->updateUserNeighbourhood( - $coords, $_POST['radius'] + $coords, + $_POST['radius'] ) ) { // Error during save MyNbh (should never happen, but...) @@ -571,7 +628,11 @@ public function save($nbhSeq = 0) } if ( ! Neighbourhood::storeUserNeighbourhood( - $this->loggedUser, $coords, $radius, $name, $seq + $this->loggedUser, + $coords, + $radius, + $name, + $seq ) ) { // Error during save additional MyNbh @@ -611,7 +672,8 @@ public function save($nbhSeq = 0) $preferences['family'] = $_POST['family']; if ( ! UserPreferences::savePreferencesJson( - NeighbourhoodPref::KEY, json_encode($preferences) + NeighbourhoodPref::KEY, + json_encode($preferences) ) ) { // Error during storing user preferences @@ -629,9 +691,9 @@ public function save($nbhSeq = 0) /** * Deletes My Nbh - called by form in config * - * @param number $nbhSeq - MyNbh number (seq). 0 = default user's Nbh + * @param int $nbhSeq - MyNbh number (seq). 0 = default user's Nbh */ - public function delete($nbhSeq = 0) + public function delete(int $nbhSeq = 0) { $this->accessControl(); @@ -639,7 +701,8 @@ public function delete($nbhSeq = 0) if ($nbhSeq > 0) { // User cannot delete HomeCoords! if ( ! Neighbourhood::removeUserNeighbourhood( - $this->loggedUser, $nbhSeq + $this->loggedUser, + $nbhSeq ) ) { $success = false; @@ -675,7 +738,8 @@ public function changeOrderAjax() } if ( ! UserPreferences::savePreferencesJson( - NeighbourhoodPref::KEY, json_encode($preferences) + NeighbourhoodPref::KEY, + json_encode($preferences) ) ) { $this->ajaxErrorResponse('Error saving UserPreferences'); @@ -695,11 +759,13 @@ public function changeSizeAjax() UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); $itemNr = ltrim($_POST['item'], 'item_'); $preferences['items'][$itemNr]['fullsize'] = filter_var( - $_POST['size'], FILTER_VALIDATE_BOOLEAN + $_POST['size'], + FILTER_VALIDATE_BOOLEAN ); if ( ! UserPreferences::savePreferencesJson( - NeighbourhoodPref::KEY, json_encode($preferences) + NeighbourhoodPref::KEY, + json_encode($preferences) ) ) { $this->ajaxErrorResponse('Error saving UserPreferences'); @@ -719,11 +785,13 @@ public function changeDisplayAjax() UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); $itemNr = ltrim($_POST['item'], 'item_'); $preferences['items'][$itemNr]['show'] = ! filter_var( - $_POST['hide'], FILTER_VALIDATE_BOOLEAN + $_POST['hide'], + FILTER_VALIDATE_BOOLEAN ); if ( ! UserPreferences::savePreferencesJson( - NeighbourhoodPref::KEY, json_encode($preferences) + NeighbourhoodPref::KEY, + json_encode($preferences) ) ) { $this->ajaxErrorResponse('Error saving UserPreferences'); @@ -731,6 +799,10 @@ public function changeDisplayAjax() $this->ajaxSuccessResponse(); } + /** + * Abstract function implementation, + * (definition has to be compliant with parent class) + */ public function isCallableFromRouter($actionName) { return true; @@ -741,7 +813,7 @@ public function isCallableFromRouter($actionName) * * @param string $paramName */ - private function paramAjaxCheck($paramName) + private function paramAjaxCheck(string $paramName) { if (! isset($_POST[$paramName])) { $this->ajaxErrorResponse('No parameter: ' . $paramName, 400); diff --git a/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php index f5a22f8dfa..d61c0a6bde 100644 --- a/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php +++ b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php @@ -1,4 +1,6 @@ getShortName(); return preg_replace('/Model$/', '', lcfirst($str)); } - public function getMarkerJsData() + public function getMarkerJsData(): string { return json_encode($this, JSON_PRETTY_PRINT); } @@ -29,7 +31,7 @@ public function getMarkerJsData() * Check if all necessary data is set in this marker class * @return boolean */ - public function checkMarkerData() + public function checkMarkerData(): bool { return true && isset($this->id) diff --git a/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php index 0d653c9ce9..e2c62a61d4 100644 --- a/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php +++ b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php @@ -105,7 +105,7 @@ protected function importDataFromGeoCache(GeoCache $c, User $user=null) * Check if all necessary data is set in this marker class * @return boolean */ - public function checkMarkerData() + public function checkMarkerData(): bool { return parent::checkMarkerData() && isset($this->wp) diff --git a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php index c51bd0d477..a69210538d 100644 --- a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php +++ b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php @@ -1,4 +1,5 @@ markerModels, JSON_PRETTY_PRINT); } - public function getMarkerSections(){ + public function getMarkerSections(): array + { return array_keys($this->markerModels); } - public function getMarkerTypes($section = null) { + public function getMarkerTypes($section = null): array + { $result = []; if ($section != null) { $result = @@ -168,30 +176,34 @@ public function getMarkerTypes($section = null) { /** * @return Coordinates */ - public function getCoords(){ + public function getCoords(): Coordinates + { return $this->coords; } - public function getZoom(){ + public function getZoom(): int + { return $this->zoom; } - public function isZoomForced() + public function isZoomForced(): bool { return $this->forceZoom; } - public function getSelectedLayerName(){ + public function getSelectedLayerName(): string + { return $this->mapLayerName; } - public function setZoom($zoom) + public function setZoom(int $zoom) { $this->zoom = $zoom; $this->forceZoom = true; } - public function setInitLayerName($name){ + public function setInitLayerName(string $name) + { $this->mapLayerName = $name; } @@ -212,53 +224,53 @@ public function setStartExtent(Coordinates $swCorner, Coordinates $neCorner) $this->startExtent = true; } - public function getStartExtentJson() + public function getStartExtentJson(): string { - if($this->startExtent){ + if ($this->startExtent) { $sw = $this->swCorner->getAsOpenLayersFormat(); $ne = $this->neCorner->getAsOpenLayersFormat(); return "{ sw:$sw, ne:$ne }"; - }else{ + } else { return "null"; } } - public function setInfoMessage($msg) + public function setInfoMessage(string $msg) { $this->infoMessage = $msg; } - public function getInfoMessage() + public function getInfoMessage(): ?string { return $this->infoMessage; } - public function setMarkersFamily($markersFamily) + public function setMarkersFamily(string $markersFamily) { $this->markersFamily = $markersFamily; } - public function getMarkersFamily() + public function getMarkersFamily(): ?string { return $this->markersFamily; } - public function setSectionProperties($section, $properties) + public function setSectionProperties(int $section, array $properties) { $this->sectionsProperties[$section] = $properties; } - public function getSectionsPropertiesJson() + public function getSectionsPropertiesJson(): string { return json_encode($this->sectionsProperties, JSON_PRETTY_PRINT); } - public function setSectionsKeys($sectionsKeys) + public function setSectionsKeys(array $sectionsKeys) { $this->sectionsKeys = $sectionsKeys; } - public function getSectionsKeys() + public function getSectionsKeys(): array { return $this->sectionsKeys; } diff --git a/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php index ceafe44ee3..1ecaf96cd3 100644 --- a/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php +++ b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php @@ -1,4 +1,6 @@ importDataFromGeoCacheLog($log, $user); return $marker; } protected function importDataFromGeoCacheLog( - GeoCacheLog $log, User $user = null + GeoCacheLog $log, + User $user = null ) { parent::importDataFromGeoCache($log->getGeoCache(), $user); @@ -56,7 +60,7 @@ protected function importDataFromGeoCacheLog( * Check if all necessary data is set in this marker class * @return boolean */ - public function checkMarkerData() + public function checkMarkerData(): bool { return parent::checkMarkerData() && isset($this->logLink) diff --git a/src/Models/GeoCache/GeoCache.php b/src/Models/GeoCache/GeoCache.php index 20067d17ab..e853c69c3e 100644 --- a/src/Models/GeoCache/GeoCache.php +++ b/src/Models/GeoCache/GeoCache.php @@ -711,9 +711,9 @@ public function getRatingDesc() * @param \lib\Objects\User\User $forUser a user to compute current log * status for, may be null * - * @return int current log status + * @return int current log status or null */ - public function getLogStatus(User $forUser=null) + public function getLogStatus(User $forUser = null): ?int { $logStatus = null; if (!is_null($forUser)) { diff --git a/src/Models/GeoCache/GeoCacheCommons.php b/src/Models/GeoCache/GeoCacheCommons.php index 8b08309fe9..cbc2c5c301 100644 --- a/src/Models/GeoCache/GeoCacheCommons.php +++ b/src/Models/GeoCache/GeoCacheCommons.php @@ -476,7 +476,7 @@ public static function GetCacheUrlByWp($ocWaypoint) * * @return string JSON structure, ready for use in javascript f.ex. */ - public static function CacheStatusListJson() + public static function getCacheStatusListJson(): string { $result = '{'; $gccClass = new ReflectionClass(__CLASS__); diff --git a/src/Models/GeoCache/GeoCacheLogCommons.php b/src/Models/GeoCache/GeoCacheLogCommons.php index f4e08f8dc2..2d433e4718 100644 --- a/src/Models/GeoCache/GeoCacheLogCommons.php +++ b/src/Models/GeoCache/GeoCacheLogCommons.php @@ -244,7 +244,7 @@ public static function getLogTypeTplKeys( * * @return string JSON structure, ready for use in javascript f.ex. */ - public static function LogTypeListJson() + public static function getLogTypeListJson(): string { $result = '{'; $gccClass = new ReflectionClass(__CLASS__); diff --git a/src/Models/Neighbourhood/Neighbourhood.php b/src/Models/Neighbourhood/Neighbourhood.php index 3450eff33d..29067b3948 100644 --- a/src/Models/Neighbourhood/Neighbourhood.php +++ b/src/Models/Neighbourhood/Neighbourhood.php @@ -17,7 +17,7 @@ class Neighbourhood extends BaseObject const ITEM_RECOMMENDEDCACHES = 7; // An array of Neighbourhood sections with corresponding translation keys - const SECTIONS = [ + public const SECTIONS = [ self::ITEM_MAP => 'map', self::ITEM_LATESTCACHES => 'newest_caches', self::ITEM_UPCOMINGEVENTS => 'incomming_events', diff --git a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php index 799eb63e54..20d6b26b61 100644 --- a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php +++ b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php @@ -13,7 +13,7 @@ * $this->view->addHeaderChunk('openLayers5'); * */ -return function (InteractiveMapModel $mapModel, $canvasId) +return function (InteractiveMapModel $mapModel, string $canvasId) { $publicSrcPath = '/views/chunks/interactiveMap/'; @@ -34,8 +34,8 @@ View::callChunkInline('handlebarsJs'); ?> From 9a6b179b824fc899f97acb48ad605a5badf89c85 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Sun, 24 Jan 2021 12:50:25 +0100 Subject: [PATCH 05/17] Resolve lib/language/en.php conflict --- lib/languages/en.php | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/languages/en.php b/lib/languages/en.php index 733cd59cba..479ceb13fd 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -3032,6 +3032,42 @@ 'edit_description' => 'Edit description', + 'editCache_fileUploadTitle' => 'Geocache pictures upload', + + 'editCache_picsTableOrderTh' => 'Order of pics', + 'editCache_picsTableOrderThTitle' => 'Pictures will be presented on the geocache page on the same order', + 'editCache_picsTableImgTh' => 'Thumbnail', + 'editCache_picsTableImgThTitle' => 'Real thumbnail of the picture', + 'editCache_picsTableTitleTh' => 'Title', + 'editCache_picsTableTitleThTitle' => 'Description of the picture', + 'editCache_picsTableSpoilerTh' => 'Spoiler', + 'editCache_picsTableSpoilerThTitle' => 'Decide if picture is a spoiler for the geocache', + 'editCache_picsTableHiddenTh' => 'Hidden', + 'editCache_picsTableHiddenThTitle' => 'Decide if the picture is not presented on geocache page', + 'editCache_picsTableRemoveTh' => 'Remove this pic', + 'editCache_picsTableRemoveThTitle' => 'Remove this picture permanently', + + 'editCache_actionInProgress' => 'Action in progress...', + 'editCache_removePic' => 'Click to remove this picture', + 'editCache_removePicError' => 'Picture removing problem occured', + 'editCache_removePicSuccess' => 'Picture has been removed', + + 'editCache_spoilerChangeErr' => 'Problem with update spoiler attr. occured', + 'editCache_spoilerChangeSuccess' => 'Spoiler attr. has been changed', + + 'editCache_hiddenChangeErr' => 'Problem with update hidden attr. occured', + 'editCache_hiddenChangeSuccess' => 'Hidden attr. has been changed', + + 'editCache_editPicTitle' => 'Click to edit title of this picture', + 'editCache_editPicTitleSave' => 'Click to save title value', + 'editCache_editPicTitleErr' => 'Problem with update title of the picture occured', + 'editCache_editPicTitleSuccess' => 'Hidden attr. has been changed', + + 'editCache_changePicsOrder' => 'Move to change pics order', + 'editCache_orderPicsSaveErr' => 'Problem with update pics order occured', + 'editCache_orderPicsSaveSuccess' => 'Pics order has been changed', + 'map_popup_next' => 'Next', 'map_popup_previous' => 'Previous' ); + From 8b596c66f240fd1710f0d3e00a6367b249e965dd Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Sun, 24 Jan 2021 13:13:07 +0100 Subject: [PATCH 06/17] Resolve lib/language/en.php conflict, continuation --- lib/languages/en.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/languages/en.php b/lib/languages/en.php index 479ceb13fd..2f9f79960a 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -2765,6 +2765,7 @@ 'upload_startUpload' => 'Start upload', 'pictures_intro' => 'Permitted image formats: {picallowedformats}. JPG works best for photos.
Maximum allowed size is {maxpicsizeMB} MB. Recommended resolution: {maxpicresolution} pixels.', + 'picture_restrictions' => 'Permitted image formats: %s. JPG works best for photos. Maximum allowed size is %d MB.', 'page_error_1' => 'An error occurred while processing your request.', 'page_error_2' => 'The OC site admins have been notified.', @@ -3069,5 +3070,6 @@ 'map_popup_next' => 'Next', 'map_popup_previous' => 'Previous' + ); From ef0b0c14046c62d1476db2e67f9127d435f15452 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Sun, 24 Jan 2021 13:38:49 +0100 Subject: [PATCH 07/17] Resolve lib/language/en.php conflict, once more --- lib/languages/en.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/languages/en.php b/lib/languages/en.php index 2f9f79960a..d5c9533d3f 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -3071,5 +3071,6 @@ 'map_popup_next' => 'Next', 'map_popup_previous' => 'Previous' + ); From c911b3195550185babadfd5be00fc32e23c4e658 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Fri, 16 Apr 2021 15:35:11 +0200 Subject: [PATCH 08/17] php-cs-fixer compliant changes, excluding GeoCache, GeoCacheCommons and GeoCacheLogCommons; controller code further reduced; some templates gathered in one to reduce code redundancy --- lib/languages/en.php | 45 +- .../MyNbhInteractiveController.php | 615 ++++++++---------- .../AbstractMarkerModelBase.php | 16 +- .../InteractiveMap/CacheMarkerModel.php | 87 ++- .../InteractiveMap/InteractiveMapModel.php | 67 +- .../InteractiveMap/LogMarkerModel.php | 31 +- src/Models/GeoCache/GeoCache.php | 9 +- .../Neighbourhood/MyNbhSetInterface.php | 10 + src/Models/Neighbourhood/MyNbhSets.php | 147 ++++- src/Models/Neighbourhood/Neighbourhood.php | 90 +-- .../UserPreferences/NeighbourhoodPref.php | 21 +- .../interactiveMap/interactiveMap.tpl.php | 118 ++-- .../markers/cacheMarkerPopup.tpl.php | 28 +- .../markers/guideMarkerPopup.tpl.php | 8 +- .../markers/logMarkerPopup.tpl.php | 4 +- src/Views/myNbhInteractive/config.tpl.php | 241 +++---- .../myNbhInteractive/detail_FTFCaches.tpl.php | 52 -- .../detail_LatestCaches.tpl.php | 79 --- .../detail_LatestLogs.tpl.php | 70 -- .../detail_RecommendedCaches.tpl.php | 79 --- .../detail_TitledCaches.tpl.php | 87 --- .../detail_UpcommingEvents.tpl.php | 72 -- src/Views/myNbhInteractive/details.tpl.php | 272 ++++++++ .../myNbhInteractive/myNeighbourhood.tpl.php | 379 ++++++++--- .../myNbhInteractive/sub_FTFCaches.tpl.php | 46 -- .../myNbhInteractive/sub_LatestCaches.tpl.php | 52 -- .../myNbhInteractive/sub_LatestLogs.tpl.php | 54 -- src/Views/myNbhInteractive/sub_Map.tpl.php | 14 - .../sub_RecommendedCaches.tpl.php | 48 -- .../myNbhInteractive/sub_TitledCaches.tpl.php | 57 -- .../sub_UpcommingEvents.tpl.php | 45 -- 31 files changed, 1401 insertions(+), 1542 deletions(-) create mode 100644 src/Models/Neighbourhood/MyNbhSetInterface.php delete mode 100644 src/Views/myNbhInteractive/detail_FTFCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/detail_LatestCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/detail_LatestLogs.tpl.php delete mode 100644 src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/detail_TitledCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php create mode 100644 src/Views/myNbhInteractive/details.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_FTFCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_LatestCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_LatestLogs.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_Map.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_TitledCaches.tpl.php delete mode 100644 src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php diff --git a/lib/languages/en.php b/lib/languages/en.php index 7668fb2b9d..40ac2803e9 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -1,6 +1,6 @@ 'Main Menu', 'user_menu' => 'User\'s Menu', 'new' => 'NEW', @@ -381,7 +381,6 @@ 'postActivation_mail_04' => 'Before you can publish your first cache on {site_name} you should find at least {NEED_FIND_LIMIT} caches, to gain experience.', 'postActivation_mail_cacheguides' => 'Geocaching Guides / Gurus', - 'password_confirm' => 'Confirm password', 'register_msg1' => 'To create an account on {site_name}, you have to enter a valid e-mail address and username.
An e-mail with an activation link will be sent to the address you supplied. Only one account can be created for each e-mail address.', 'register_msg2' => 'Fields marked with * are required', @@ -460,7 +459,7 @@ 'map_toggleFilters' => 'Change filters', 'fullscreen' => 'Full screen', 'map_disableFullscreen' => 'Turn off full screen', - 'map_refresh'=> 'Refresh map', + 'map_refresh' => 'Refresh map', 'map_search' => 'Search...', 'map_searchPlacePlaceholder' => 'Search: place', 'map_searchTrigger' => 'Search', @@ -1289,7 +1288,7 @@ 'mailto_senderCopy' => 'This is a copy of your message to user', 'mailto_messageForYou' => 'This is message for You', 'region_not_ok' => 'Please select region!', - 'dummy_outside' => "Outside the country", + 'dummy_outside' => 'Outside the country', 'index_01' => 'Cache ranking by calculated index', 'index_02' => 'The following list is automatically generated from user recommendations. The numbers in the list below mean:', 'index_03' => 'Number of users that recommended this cache', @@ -1847,7 +1846,6 @@ 'gp_ownCacheAddedToGeopath' => 'Your cache is already added to geopath.', 'gp_cacheRemovedFromGeopath' => 'Cache is already removed from geopath.', - 'statpic_found' => 'Found:', 'statpic_hidden' => 'Hidden:', 'statpic_html_link' => '- Statistics for', @@ -1927,7 +1925,7 @@ 'search_gpxgc_06' => 'Recommendation', 'search_gpxgc_07' => 'National Park', -// Attributes + // Attributes 'attribute_9001' => 'Dogs not allowed', 'attribute_2' => 'Access or parking fee', 'attribute_3' => 'Climbing gear requried', @@ -2013,7 +2011,7 @@ 'attribute_219' => 'Suitable to hold trackables', 'attribute_220' => 'Officially designated historical monument', 'attribute_999' => 'Log password', -// END Attributes + // END Attributes 'weather' => 'Weather', 'vl_Recently_modified_on' => 'Recently modified on', @@ -2506,7 +2504,7 @@ 'LogPassword' => 'Password needed to post log entry!', 'abovesealevel' => 'm. ASL.', 'cache_alt' => 'Altitude', - 'waypoint_error2' => 'Waypoint must be in one of the following formats: '.$GLOBALS['oc_waypoint'].'xxxx, GCxxxxx, Nxxxxx', + 'waypoint_error2' => 'Waypoint must be in one of the following formats: ' . $GLOBALS['oc_waypoint'] . 'xxxx, GCxxxxx, Nxxxxx', 'pagetitle_print' => 'Printing', 'natura2000' => 'NATURA 2000 (Nature Protected Area)', 'WeekCache' => 'Cache of the week', @@ -2564,14 +2562,14 @@ 'ArchivedGeocaches' => 'Archived geocaches', 'merit_badges' => 'Merit badges', 'merit_badge' => 'Merit badge', - 'merit_badge_level' => 'Level', - 'merit_badge_level_name' => 'Level name', - 'merit_badge_next_level_threshold' => 'Next level threshold', - 'merit_badge_gain_count' => 'Gain count', - 'merit_badge_gain_last_date' => 'Last gain date', - 'merit_badge_gain_date' => 'Gain date', - 'merit_badge_number' => 'Progress', - 'merit_badge_number_threshold' => 'Thresholds', + 'merit_badge_level' => 'Level', + 'merit_badge_level_name' => 'Level name', + 'merit_badge_next_level_threshold' => 'Next level threshold', + 'merit_badge_gain_count' => 'Gain count', + 'merit_badge_gain_last_date' => 'Last gain date', + 'merit_badge_gain_date' => 'Gain date', + 'merit_badge_number' => 'Progress', + 'merit_badge_number_threshold' => 'Thresholds', 'merit_badge_show_details' => 'Show details of merit badges ... ', 'merit_badge_show_list' => 'Show a list of merit badges ... ', 'merit_badge_gain_max_level' => 'You gained the highest level', @@ -2681,8 +2679,8 @@ 'mnu_Cooperation' => 'Cooperation', 'mnu_ChallengeCaches' => 'Challenge Caches', - 'admCs_degradedCs' => 'Degraded GeoPaths', - 'admCs_cacheSet' => 'GeoPaths', + 'admCs_degradedCs' => 'Degraded GeoPaths', + 'admCs_cacheSet' => 'GeoPaths', 'admCs_currentRatio' => 'Active caches ratio', 'admCs_requiredRatio' => 'Required caches ratio', 'admCs_emptyList' => 'WOW! There are no active but degraded geopaths to list here!', @@ -2993,8 +2991,8 @@ 'usrIgnore_removingSuccess' => 'Cache removed from ignored', 'gp_logoUpdateTitle' => 'Geopath logo upload', - 'gp_logoUpdateInfo' => 'Upload file which will be used as geopath logo. '. - 'Don\'t forget that you need to have copyrights to uploaded file.', + 'gp_logoUpdateInfo' => 'Upload file which will be used as geopath logo. ' + . 'Don\'t forget that you need to have copyrights to uploaded file.', 'SmartPhone_Apps' => 'Smartphone Apps', 'SmartPhone_Support' => 'These Smartphone Geocaching Apps offer full live support for Opencaching:', @@ -3016,7 +3014,6 @@ 'gpCandidates_errorOnCancel' => 'Cannot cancel this offer - error occurred', 'gpCandidates_cancelOfferInProgress' => 'Cancelation in progress', - 'gpMyCandidates_title' => 'Candidates to geopaths for user', 'gpMyCandidates_submitedDate' => 'Date', 'gpMyCandidates_geopathName' => 'Geopath', @@ -3069,7 +3066,5 @@ 'editCache_orderPicsSaveSuccess' => 'Pics order has been changed', 'map_popup_next' => 'Next', - 'map_popup_previous' => 'Previous' - - -); + 'map_popup_previous' => 'Previous', +]; diff --git a/src/Controllers/MyNbhInteractiveController.php b/src/Controllers/MyNbhInteractiveController.php index 4365574d9a..abc98bb6d3 100644 --- a/src/Controllers/MyNbhInteractiveController.php +++ b/src/Controllers/MyNbhInteractiveController.php @@ -1,20 +1,19 @@ isUserLogged() - || self::VALIDATION_MODE && !( + ! $this->isUserLogged() + || self::VALIDATION_MODE && ! ( $this->loggedUser->hasOcTeamRole() || $this->loggedUser->hasAdvUserRole() || $this->loggedUser->hasSysAdminRole() @@ -69,6 +68,7 @@ private function accessControl() $this->view->redirect( Uri::setOrReplaceParamValue('target', Uri::getCurrentUri(), '/') ); + exit(); } } @@ -82,16 +82,19 @@ public function index(int $nbhSeq = 0) { $this->accessControl(); - $neighbourhoodsList = - Neighbourhood::getNeighbourhoodsList($this->loggedUser); + $neighbourhoodsList + = Neighbourhood::getNeighbourhoodsList($this->loggedUser); + if (empty($neighbourhoodsList)) { // User doesn't have any MyNeighbourhoods set, so redirect to config $this->view->redirect( SimpleRouter::getLink(self::class, 'config') ); + exit(); } $selectedNbh = (int) $nbhSeq; + if (! array_key_exists($selectedNbh, $neighbourhoodsList)) { // Selected MyNeighbourhood not found if ($selectedNbh == 0) { @@ -105,117 +108,89 @@ public function index(int $nbhSeq = 0) SimpleRouter::getLink(self::class, 'index', 0) ); } + exit(); } - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); + $nbhItemSet = new MyNbhSets( $neighbourhoodsList[$selectedNbh]->getCoords(), $neighbourhoodsList[$selectedNbh]->getRadius() ); - $latestCaches = $nbhItemSet->getLatestCaches( - $preferences['style']['caches-count'], - 0, - false - ); - $upcomingEvents = $nbhItemSet->getUpcomingEvents( - $preferences['style']['caches-count'], - 0 - ); - $ftfCaches = $nbhItemSet->getLatestCaches( - $preferences['style']['caches-count'], - 0, - true - ); - $latestLogs = $nbhItemSet->getLatestLogs( - $preferences['style']['caches-count'], - 0 - ); - $topRatedCaches = $nbhItemSet->getTopRatedCaches( - $preferences['style']['caches-count'], - 0 - ); - $latestTitled = $nbhItemSet->getLatestTitledCaches( - $preferences['style']['caches-count'], - 0 - ); - $this->view->setVar('latestCaches', $latestCaches); - $this->view->setVar('upcomingEvents', $upcomingEvents); - $this->view->setVar('FTFCaches', $ftfCaches); - $this->view->setVar('latestLogs', $latestLogs); - $this->view->setVar('topRatedCaches', $topRatedCaches); - $this->view->setVar('latestTitled', $latestTitled); - $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); - $this->view->setVar('selectedNbh', $selectedNbh); - $this->view->setVar('preferences', $preferences); - $this->view->setVar('user', $this->loggedUser); $this->view->addHeaderChunk('openLayers5'); $mapModel = new InteractiveMapModel(); $mapModel->setMarkersFamily($preferences['family']); - foreach ($preferences['items'] as $sectionName => $sectionConfig) { - $sectionCaches = null; - switch ($sectionName) { - case Neighbourhood::ITEM_LATESTCACHES: - $sectionCaches = $latestCaches; - break; - case Neighbourhood::ITEM_UPCOMINGEVENTS: - $sectionCaches = $upcomingEvents; - break; - case Neighbourhood::ITEM_FTFCACHES: - $sectionCaches = $ftfCaches; - break; - case Neighbourhood::ITEM_TITLEDCACHES: - $sectionCaches = $latestTitled; - break; - case Neighbourhood::ITEM_RECOMMENDEDCACHES: - $sectionCaches = $topRatedCaches; - break; - default: - break; - } - if ($sectionCaches) { + + $sectionsToSetVars = [ + Neighbourhood::ITEM_LATESTCACHES => 'latestCaches', + Neighbourhood::ITEM_UPCOMINGEVENTS => 'upcomingEvents', + Neighbourhood::ITEM_FTFCACHES => 'FTFCaches', + Neighbourhood::ITEM_LATESTLOGS => 'latestLogs', + Neighbourhood::ITEM_RECOMMENDEDCACHES => 'topRatedCaches', + Neighbourhood::ITEM_TITLEDCACHES => 'latestTitled', + ]; + + foreach ($sectionsToSetVars as $sectionId => $varName) { + $setInterface = $nbhItemSet->createSet($sectionId); + $sectionResults = $setInterface->getResults( + $preferences['style']['caches-count'], + 0 + ); + $this->view->setVar($varName, $sectionResults); + $sectionConfig = $preferences['items'][$sectionId] ?? []; + + if ($sectionId == Neighbourhood::ITEM_LATESTLOGS) { + $mapModel->addMarkersWithExtractor( + LogMarkerModel::class, + $sectionResults, + function ($row) use ($sectionId) { + $marker = LogMarkerModel::fromGeoCacheLogFactory( + $row, + $this->loggedUser + ); + $marker->section = $sectionId; + + return $marker; + } + ); + } else { $mapModel->addMarkersWithExtractor( CacheMarkerModel::class, - $sectionCaches, - function ($row) use ($sectionName) { + $sectionResults, + function ($row) use ($sectionId) { $marker = CacheMarkerModel::fromGeocacheFactory( $row, $this->loggedUser ); - $marker->section = $sectionName; + $marker->section = $sectionId; + return $marker; } ); } - $mapModel->setSectionProperties($sectionName, [ - "visible" => $sectionConfig['show'], - "order" => $sectionConfig['order'], + $mapModel->setSectionProperties($sectionId, [ + 'visible' => $sectionConfig['show'] ?? false, + 'order' => $sectionConfig['order'] ?? -1, ]); } - $mapModel->addMarkersWithExtractor( - LogMarkerModel::class, - $latestLogs, - function ($row) { - $marker = LogMarkerModel::fromGeoCacheLogFactory( - $row, - $this->loggedUser - ); - $marker->section = Neighbourhood::ITEM_LATESTLOGS; - return $marker; - } - ); - $mapModel->setSectionsKeys(Neighbourhood::SECTIONS); + $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); + $this->view->setVar('selectedNbh', $selectedNbh); + $this->view->setVar('preferences', $preferences); + $this->view->setVar('user', $this->loggedUser); $this->view->setVar('mapModel', $mapModel); + $this->setPublicResourcesAndTemplate( $preferences, 'myNeighbourhood', true, - [ 'myNeighbourhood.js' ], + ['myNeighbourhood.js'], true ); $this->view->setVar('controller', self::class); @@ -224,293 +199,68 @@ function ($row) { $this->view->buildView(); } - private function setPublicResourcesAndTemplate( - array $preferences, - string $template, - bool $addStyled = true, - array $javascripts = [], - bool $loadJQueryUI = false - ) { - $this->view->addLocalCss( - Uri::getLinkWithModificationTime( - self::PUBLIC_SRC_PATH . 'common.css' - ) - ); - if ($addStyled) { - $this->view->addLocalCss( - Uri::getLinkWithModificationTime( - self::PUBLIC_SRC_PATH . 'myNeighbourhood-' - . $preferences['style']['name'] . '.css' - ) - ); - } - $this->view->addLocalCss( - Uri::getLinkWithModificationTime('/css/lightTooltip.css') - ); - if (!empty($javascripts)) { - if (!is_array($javascripts)) { - $javascripts = [ $javascripts ]; - } - foreach ($javascripts as $js) { - $this->view->addLocalJs( - Uri::getLinkWithModificationTime( - self::PUBLIC_SRC_PATH . $js - ), - true, - true - ); - } - } - if ($loadJQueryUI) { - $this->view->loadJQueryUI(); - } - $this->view->setVar('controller', self::class); - $this->view->setTemplate(self::TEMPLATES_PATH . $template); - } - - private function getSectionRequestCommons(int $nbhSeq = 0): array - { - $this->redirectNotLoggedUsers(); - $selectedNbh = $nbhSeq; - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); - $neighbourhoodsList = - Neighbourhood::getNeighbourhoodsList($this->loggedUser); - if (! array_key_exists($selectedNbh, $neighbourhoodsList)) { - // Selected MyNeighbourhood not found - $this->view->redirect( - SimpleRouter::getLink(self::class, 'index') - ); - exit(); - } - $coords = $neighbourhoodsList[$selectedNbh]->getCoords(); - $nbhItemSet = new MyNbhSets( - $coords, - $neighbourhoodsList[$selectedNbh]->getRadius() - ); - $paginationModel = new PaginationModel(self::ITEMS_PER_DETAIL_PAGE); - return [ - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ]; - } - - private function setSectionCommonVars( - array $neighbourhoodsList, - PaginationModel $paginationModel, - int $selectedNbh, - Coordinates $coords - ) { - $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); - $this->view->setVar('paginationModel', $paginationModel); - $this->view->setVar('selectedNbh', $selectedNbh); - $this->view->setVar('user', $this->loggedUser); - $this->view->setVar('coords', $coords); - } - /** * Displays latest caches detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function latestCaches(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount( - $nbhItemSet->getLatestCachesCount(false) - ); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar( - 'caches', - $nbhItemSet->getLatestCaches($limit, $offset, false) - ); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_LatestCaches' - ); - $this->view->buildView(); + $this->viewDetails($nbhSeq, Neighbourhood::ITEM_LATESTCACHES); } /** * Displays most recommended caches detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function mostRecommended(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount( - $nbhItemSet->getTopRatedCachesCount() - ); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar( - 'caches', - $nbhItemSet->getTopRatedCaches($limit, $offset) - ); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_RecommendedCaches' - ); - $this->view->buildView(); + $this->viewDetails($nbhSeq, Neighbourhood::ITEM_RECOMMENDEDCACHES); } /** * Displays FTF caches detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function ftfCaches(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount( - $nbhItemSet->getLatestCachesCount(true) - ); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar( - 'caches', - $nbhItemSet->getLatestCaches($limit, $offset, true) - ); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_FTFCaches' - ); - $this->view->buildView(); + $this->viewDetails($nbhSeq, Neighbourhood::ITEM_FTFCACHES); } /** * Displays titled caches detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function titledCaches(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount( - $nbhItemSet->getLatestTitledCachesCount() - ); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar( - 'caches', - $nbhItemSet->getLatestTitledCaches($limit, $offset) - ); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_TitledCaches' - ); - $this->view->buildView(); + $this->viewDetails($nbhSeq, Neighbourhood::ITEM_TITLEDCACHES); } /** * Displays upcomming events detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function upcommingEvents(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $nbhItemSet, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount( - $nbhItemSet->getUpcomingEventsCount() - ); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar( - 'caches', - $nbhItemSet->getUpcomingEvents($limit, $offset) - ); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_UpcommingEvents' - ); - $this->view->buildView(); + $this->viewDetails($nbhSeq, Neighbourhood::ITEM_UPCOMINGEVENTS); } /** * Displays latest logs detailed page for Nbh selected as $nbhSeq * - * @param int $nbhSeq + * @param int $nbhSeq - number of MyNbh (seq). 0 = default user's Nbh */ public function latestLogs(int $nbhSeq = 0) { - $this->accessControl(); - - list( - $selectedNbh, $preferences, $neighbourhoodsList, - $coords, $logset, $paginationModel - ) = $this->getSectionRequestCommons($nbhSeq); - - $paginationModel->setRecordsCount($logset->getLatestLogsCount()); - list($limit, $offset) = $paginationModel->getQueryLimitAndOffset(); - $this->view->setVar('logs', $logset->getLatestLogs($limit, $offset)); - $this->setSectionCommonVars( - $neighbourhoodsList, - $paginationModel, - $selectedNbh, - $coords - ); - $this->setPublicResourcesAndTemplate( - $preferences, - 'detail_LatestLogs' + $this->viewDetails( + $nbhSeq, + Neighbourhood::ITEM_LATESTLOGS, + 'logs' ); - $this->view->buildView(); } /** @@ -524,17 +274,21 @@ public function config(int $nbhSeq = 0) $selectedNbh = (int) $nbhSeq; - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); + + $neighbourhoodsList = Neighbourhood::getNeighbourhoodsList( + $this->loggedUser + ); - $neighbourhoodsList = - Neighbourhood::getNeighbourhoodsList($this->loggedUser); if ( - $selectedNbh != - 1 + $selectedNbh != -1 && ! array_key_exists($selectedNbh, $neighbourhoodsList) ) { $selectedNbh = 0; } + if (array_key_exists($selectedNbh, $neighbourhoodsList)) { $this->view->setVar('coordsOK', 1); } else { @@ -564,7 +318,7 @@ public function config(int $nbhSeq = 0) $preferences, 'config', false, - [ 'config.js', 'config_draw.js' ], + ['config.js', 'config_draw.js'], true ); $this->view->buildView(); @@ -585,21 +339,19 @@ public function save(int $nbhSeq = 0) Neighbourhood::getAdditionalNeighbourhoodsList($this->loggedUser) ); // Store MyNeighbourhood data - if ( - isset($_POST['lon']) - && isset($_POST['lat']) - && isset($_POST['radius']) - ) { + if (isset($_POST['lon'], $_POST['lat'], $_POST['radius'])) { $coords = Coordinates::FromCoordsFactory( $_POST['lat'], $_POST['lon'] ); $radius = (int) $_POST['radius']; + if ($radius > self::NBH_RADIUS_MAX) { $radius = self::NBH_RADIUS_MAX; } elseif ($radius < self::NBH_RADIUS_MIN) { $radius = self::NBH_RADIUS_MIN; } + if ($coords !== null) { if ($nbhSeq == 0) { // Update Home Coords and radius @@ -622,10 +374,12 @@ public function save(int $nbhSeq = 0) $name = UserInputFilter::purifyHtmlString($name); $name = strip_tags($name); $name = mb_strcut($name, 0, 16); + if (mb_strlen($name) < 1) { // Name too short $name = 'X'; } + if ( ! Neighbourhood::storeUserNeighbourhood( $this->loggedUser, @@ -653,23 +407,25 @@ public function save(int $nbhSeq = 0) // Store user preferences if ( $nbhSeq == 0 - && isset($_POST['caches-perpage']) - && isset($_POST['style']) + && isset($_POST['caches-perpage'], $_POST['style']) && ($_POST['style'] == 'full' || $_POST['style'] == 'min') && isset($_POST['family']) && in_array($_POST['family'], InteractiveMapModel::MARKERS_FAMILIES) ) { $cachesPerpage = (int) $_POST['caches-perpage']; + if ($cachesPerpage > self::CACHES_PER_PAGE_MAX) { $cachesPerpage = self::CACHES_PER_PAGE_MAX; } elseif ($cachesPerpage < self::CACHES_PER_PAGE_MIN) { $cachesPerpage = self::CACHES_PER_PAGE_MIN; } - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); $preferences['style']['name'] = $_POST['style']; $preferences['style']['caches-count'] = $cachesPerpage; $preferences['family'] = $_POST['family']; + if ( ! UserPreferences::savePreferencesJson( NeighbourhoodPref::KEY, @@ -680,6 +436,7 @@ public function save(int $nbhSeq = 0) $error = tr('myn_save_error'); } } + if (is_null($error)) { $this->infoMsg = tr('myn_save_success'); } else { @@ -698,6 +455,7 @@ public function delete(int $nbhSeq = 0) $this->accessControl(); $success = true; + if ($nbhSeq > 0) { // User cannot delete HomeCoords! if ( ! Neighbourhood::removeUserNeighbourhood( @@ -711,12 +469,14 @@ public function delete(int $nbhSeq = 0) // User try to delete Home Coords $success = false; } + if ($success) { $this->infoMsg = tr('myn_delete_success'); } else { $this->errorMsg = tr('myn_delete_error'); } $this->config(0); + exit(); } @@ -729,13 +489,16 @@ public function changeOrderAjax() $this->paramAjaxCheck('order'); $order = []; parse_str($_POST['order'], $order); - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); $counter = 1; + foreach ($order['item'] as $itemOrder) { $preferences['items'][$itemOrder]['order'] = $counter; - $counter += 1; + $counter++; } + if ( ! UserPreferences::savePreferencesJson( NeighbourhoodPref::KEY, @@ -755,13 +518,15 @@ public function changeSizeAjax() $this->checkUserLoggedAjax(); $this->paramAjaxCheck('size'); $this->paramAjaxCheck('item'); - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); $itemNr = ltrim($_POST['item'], 'item_'); $preferences['items'][$itemNr]['fullsize'] = filter_var( $_POST['size'], FILTER_VALIDATE_BOOLEAN ); + if ( ! UserPreferences::savePreferencesJson( NeighbourhoodPref::KEY, @@ -781,13 +546,15 @@ public function changeDisplayAjax() $this->checkUserLoggedAjax(); $this->paramAjaxCheck('hide'); $this->paramAjaxCheck('item'); - $preferences = - UserPreferences::getUserPrefsByKey(NeighbourhoodPref::KEY)->getValues(); + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); $itemNr = ltrim($_POST['item'], 'item_'); $preferences['items'][$itemNr]['show'] = ! filter_var( $_POST['hide'], FILTER_VALIDATE_BOOLEAN ); + if ( ! UserPreferences::savePreferencesJson( NeighbourhoodPref::KEY, @@ -808,15 +575,159 @@ public function isCallableFromRouter($actionName) return true; } + private function setPublicResourcesAndTemplate( + array $preferences, + string $template, + bool $addStyled = true, + array $javascripts = [], + bool $loadJQueryUI = false + ) { + $this->view->addLocalCss( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . 'common.css' + ) + ); + + if ($addStyled) { + $this->view->addLocalCss( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . 'myNeighbourhood-' + . $preferences['style']['name'] . '.css' + ) + ); + } + $this->view->addLocalCss( + Uri::getLinkWithModificationTime('/css/lightTooltip.css') + ); + + if (! empty($javascripts)) { + if (! is_array($javascripts)) { + $javascripts = [$javascripts]; + } + + foreach ($javascripts as $js) { + $this->view->addLocalJs( + Uri::getLinkWithModificationTime( + self::PUBLIC_SRC_PATH . $js + ), + true, + true + ); + } + } + + if ($loadJQueryUI) { + $this->view->loadJQueryUI(); + } + $this->view->setVar('controller', self::class); + $this->view->setTemplate(self::TEMPLATES_PATH . $template); + } + + private function getSectionRequestCommons(int $nbhSeq = 0): array + { + $this->redirectNotLoggedUsers(); + $selectedNbh = $nbhSeq; + $preferences = UserPreferences::getUserPrefsByKey( + NeighbourhoodPref::KEY + )->getValues(); + $neighbourhoodsList = Neighbourhood::getNeighbourhoodsList( + $this->loggedUser + ); + + if (! array_key_exists($selectedNbh, $neighbourhoodsList)) { + // Selected MyNeighbourhood not found + $this->view->redirect( + SimpleRouter::getLink(self::class, 'index') + ); + + exit(); + } + $coords = $neighbourhoodsList[$selectedNbh]->getCoords(); + $nbhItemSet = new MyNbhSets( + $coords, + $neighbourhoodsList[$selectedNbh]->getRadius() + ); + $paginationModel = new PaginationModel(self::ITEMS_PER_DETAIL_PAGE); + + return [ + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel, + ]; + } + + private function setSectionCommonVars( + array $neighbourhoodsList, + PaginationModel $paginationModel, + int $selectedNbh, + Coordinates $coords + ) { + $this->view->setVar('neighbourhoodsList', $neighbourhoodsList); + $this->view->setVar('paginationModel', $paginationModel); + $this->view->setVar('selectedNbh', $selectedNbh); + $this->view->setVar('user', $this->loggedUser); + $this->view->setVar('coords', $coords); + } + + /** + * Common method for detailed section view with a separate page. + * + * @param int $nbhSeq - MyNbh number (seq). 0 = default user's Nbh + * @param int $sectionId - Number (id) of section to display + * @param array $viewVars - Additional view variables to set (key => value) + * @param string $itemSetVarName - Name of view var to store item set results + * @param string $template - Name of template to build view from + */ + private function viewDetails( + int $nbhSeq, + int $sectionId, + string $itemSetVarName = 'caches' + ) { + $this->accessControl(); + + [ + $selectedNbh, $preferences, $neighbourhoodsList, + $coords, $nbhItemSet, $paginationModel + ] = $this->getSectionRequestCommons($nbhSeq); + + $this->view->setVar('sectionId', $sectionId); + + $setInterface = $nbhItemSet->createSet($sectionId); + $paginationModel->setRecordsCount( + $setInterface->getCount() + ); + [$limit, $offset] = $paginationModel->getQueryLimitAndOffset(); + $this->view->setVar( + $itemSetVarName, + $setInterface->getResults($limit, $offset) + ); + $this->setSectionCommonVars( + $neighbourhoodsList, + $paginationModel, + $selectedNbh, + $coords + ); + $this->setPublicResourcesAndTemplate($preferences, 'details'); + + if (isset(Neighbourhood::SECTIONS[$sectionId])) { + $this->view->setVar( + 'sectionTranslationKey', + Neighbourhood::SECTIONS[$sectionId] + ); + } + + $this->view->buildView(); + } + /** * Check if $_POST[$paramName] is set. If not - generates 400 AJAX response * - * @param string $paramName + * @param string $paramName a name of parameter to check */ private function paramAjaxCheck(string $paramName) { if (! isset($_POST[$paramName])) { $this->ajaxErrorResponse('No parameter: ' . $paramName, 400); + exit(); } } diff --git a/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php index d61c0a6bde..b269b0abe7 100644 --- a/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php +++ b/src/Models/ChunkModels/InteractiveMap/AbstractMarkerModelBase.php @@ -1,9 +1,8 @@ getShortName(); + return preg_replace('/Model$/', '', lcfirst($str)); } @@ -29,16 +33,10 @@ public function getMarkerJsData(): string /** * Check if all necessary data is set in this marker class - * @return boolean */ public function checkMarkerData(): bool { return true - && isset($this->id) - && isset($this->lat) - && isset($this->lon) - && isset($this->icon) - ; + && isset($this->id, $this->lat, $this->lon, $this->icon); } - } diff --git a/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php index e2c62a61d4..8917580d54 100644 --- a/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php +++ b/src/Models/ChunkModels/InteractiveMap/CacheMarkerModel.php @@ -1,8 +1,8 @@ importDataFromGeoCache( $c, $user); + $marker->importDataFromGeoCache($c, $user); + return $marker; } - protected function importDataFromGeoCache(GeoCache $c, User $user=null) + protected function importDataFromGeoCache(GeoCache $c, User $user = null) { // Abstract-Marker data $this->id = $c->getCacheId(); @@ -67,7 +87,8 @@ protected function importDataFromGeoCache(GeoCache $c, User $user=null) $this->username = $c->getOwner()->getUserName(); $this->userProfile = $c->getOwner()->getProfileUrl(); - $this->isEvent= $c->isEvent(); + $this->isEvent = $c->isEvent(); + if ($this->isEvent) { $this->eventStartDate = Formatter::date($c->getDatePlaced()); } @@ -83,11 +104,15 @@ protected function importDataFromGeoCache(GeoCache $c, User $user=null) $this->notFounds = $c->getNotFounds(); $this->recommendations = $c->getRecommendations(); $this->isTitled = $c->isTitled(); - if ($c->isTitled() ) { + + if ($c->isTitled()) { global $titled_cache_period_prefix; //TODO: move it to the ocConfig - $this->titledDesc = tr($titled_cache_period_prefix.'_titled_cache'); + $this->titledDesc = tr( + $titled_cache_period_prefix . '_titled_cache' + ); } $this->isStandingOut = ($this->titledDesc || $this->recommendations); + if ($c->isPowerTrailPart()) { $this->powerTrailName = $c->getPowerTrail()->getName(); $this->powerTrailIcon = $c->getPowerTrail()->getFootIcon(); @@ -97,33 +122,33 @@ protected function importDataFromGeoCache(GeoCache $c, User $user=null) $this->cacheType = $c->getCacheType(); $this->cacheStatus = $c->getStatus(); $this->logStatus = $c->getLogStatus($user); - $this->isOwner = - ($user != null && $user->getUserId() == $c->getOwner()->getUserId()); + $this->isOwner = ( + $user != null && $user->getUserId() == $c->getOwner()->getUserId() + ); } /** * Check if all necessary data is set in this marker class - * @return boolean */ public function checkMarkerData(): bool { return parent::checkMarkerData() - && isset($this->wp) - && isset($this->link) - && isset($this->name) - && isset($this->username) - && isset($this->userProfile) - && isset($this->isEvent) - && isset($this->size) - && isset($this->founds) - && isset($this->notFounds) - && isset($this->ratingVotes) - && isset($this->ratingId) - && isset($this->recommendations) - && isset($this->cacheType) - && isset($this->cacheStatus) - && isset($this->isOwner) - ; + && isset( + $this->wp, + $this->link, + $this->name, + $this->username, + $this->userProfile, + $this->isEvent, + $this->size, + $this->founds, + $this->notFounds, + $this->ratingVotes, + $this->ratingId, + $this->recommendations, + $this->cacheType, + $this->cacheStatus, + $this->isOwner + ); } - } diff --git a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php index a69210538d..23446cd516 100644 --- a/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php +++ b/src/Models/ChunkModels/InteractiveMap/InteractiveMapModel.php @@ -1,5 +1,4 @@ ocConfig = OcConfig::instance(); $this->coords = OcConfig::getMapDefaultCenter(); @@ -84,21 +82,24 @@ public function addMarkersWithExtractor( callable $rowExtractor ) { foreach ($dataRows as $row) { - $markerModel = call_user_func($rowExtractor, $row); - if (!($markerModel instanceof $markerClass)) { + if (! ($markerModel instanceof $markerClass)) { Debug::errorLog( - "Extractor returns something different than $markerClass" + "Extractor returns something different than {$markerClass}" ); + return; } - if (!is_subclass_of($markerModel, AbstractMarkerModelBase::class)) { + if ( + ! is_subclass_of($markerModel, AbstractMarkerModelBase::class) + ) { Debug::errorLog( - "Marker class $markerClass is not a child of " + "Marker class {$markerClass} is not a child of " . AbstractMarkerModelBase::class ); + return; } @@ -108,21 +109,18 @@ public function addMarkersWithExtractor( /** * Add one marker to internal base of markers - * - * @param AbstractMarkerModelBase $model */ public function addMarker(AbstractMarkerModelBase $model) { $type = $model->getMarkerTypeName(); - if (!$model->checkMarkerData()) { + if (! $model->checkMarkerData()) { $type = $model->getMarkerTypeName(); - Debug::errorLog("Marker of $type has incomplete data!"); + Debug::errorLog("Marker of {$type} has incomplete data!"); } - $section = ( - isset($model->section) ? $model->section : self::DEFAULT_SECTION - ); - if (!isset($this->markerModels[$section][$type])) { + $section = $model->section ?? self::DEFAULT_SECTION; + + if (! isset($this->markerModels[$section][$type])) { $this->markerModels[$section][$type] = []; } $this->markerModels[$section][$type][] = $model; @@ -149,15 +147,17 @@ public function getMarkerSections(): array public function getMarkerTypes($section = null): array { $result = []; + if ($section != null) { - $result = + $result = ( isset($this->markerModels[$section]) ? array_keys($this->markerModels[$section]) - : []; + : [] + ); } else { - foreach($this->markerModels as $s) { - foreach($s as $markerType => $markers) { - if (!in_array($markerType, $result)) { + foreach ($this->markerModels as $s) { + foreach ($s as $markerType => $markers) { + if (! in_array($markerType, $result)) { $result[] = $markerType; } } @@ -170,12 +170,10 @@ public function getMarkerTypes($section = null): array $result = array_values(array_unique($result)); */ } + return $result; } - /** - * @return Coordinates - */ public function getCoords(): Coordinates { return $this->coords; @@ -229,10 +227,11 @@ public function getStartExtentJson(): string if ($this->startExtent) { $sw = $this->swCorner->getAsOpenLayersFormat(); $ne = $this->neCorner->getAsOpenLayersFormat(); - return "{ sw:$sw, ne:$ne }"; - } else { - return "null"; + + return '{ sw:$sw, ne:$ne }'; } + + return 'null'; } public function setInfoMessage(string $msg) diff --git a/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php index 1ecaf96cd3..e4f1af017a 100644 --- a/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php +++ b/src/Models/ChunkModels/InteractiveMap/LogMarkerModel.php @@ -1,5 +1,4 @@ importDataFromGeoCacheLog($log, $user); + return $marker; } @@ -38,12 +44,13 @@ protected function importDataFromGeoCacheLog( $this->id = $log->getId(); $this->logLink = $log->getLogUrl(); - $text = strip_tags($log->getText(),'

'); + $text = strip_tags($log->getText(), '

'); $textLen = mb_strlen($text); + if ($textLen > 200) { $text = mb_strcut($text, 0, 200); // do not leave open tags on truncate - $text = preg_replace('/\<[^\>]*$/', '', $text); + $text = preg_replace('/\\<[^\\>]*$/', '', $text); $text .= '...'; } $this->logText = $text; @@ -58,18 +65,18 @@ protected function importDataFromGeoCacheLog( /** * Check if all necessary data is set in this marker class - * @return boolean */ public function checkMarkerData(): bool { return parent::checkMarkerData() - && isset($this->logLink) - && isset($this->logText) - && isset($this->logIcon) - && isset($this->logType) - && isset($this->logTypeName) - && isset($this->logUserName) - && isset($this->logDate) - ; + && isset( + $this->logLink, + $this->logText, + $this->logIcon, + $this->logType, + $this->logTypeName, + $this->logUserName, + $this->logDate + ); } } diff --git a/src/Models/GeoCache/GeoCache.php b/src/Models/GeoCache/GeoCache.php index 8ab679ed21..e853c69c3e 100644 --- a/src/Models/GeoCache/GeoCache.php +++ b/src/Models/GeoCache/GeoCache.php @@ -1238,8 +1238,8 @@ public static function getDescriptions($cacheId) */ public static function touchCache($cacheId) { - self::updateLastModified ($cacheId); - + XDb::xSql( + "UPDATE `caches` SET `last_modified`=NOW() WHERE `cache_id`= ? ", $cacheId); XDb::xSql( "UPDATE `caches`, `cache_logs` SET `cache_logs`.`last_modified`=NOW() WHERE `caches`.`cache_id`=`cache_logs`.`cache_id` @@ -1271,11 +1271,6 @@ public static function touchCache($cacheId) } - public static function updateLastModified ($cacheId) { - self::db()->multiVariableQuery( - "UPDATE caches SET last_modified=NOW() WHERE cache_id= :1 ", $cacheId); - } - public static function getUserActiveCachesCountByType($userId) { diff --git a/src/Models/Neighbourhood/MyNbhSetInterface.php b/src/Models/Neighbourhood/MyNbhSetInterface.php new file mode 100644 index 0000000000..f45521097c --- /dev/null +++ b/src/Models/Neighbourhood/MyNbhSetInterface.php @@ -0,0 +1,10 @@ +dropLocalCachesTable(); } + public function createSet(int $section): MyNbhSetInterface + { + return new class($this, $section) implements MyNbhSetInterface { + private $parent; + + private $section; + + public function __construct(MyNbhSets $parent, int $section) + { + $this->parent = $parent; + $this->section = $section; + } + + public function getCount(): int + { + $result = 0; + + switch ($this->section) { + case Neighbourhood::ITEM_LATESTCACHES: + $result = $this->parent->getLatestCachesCount(); + break; + case Neighbourhood::ITEM_FTFCACHES: + $result = $this->parent->getLatestCachesCount(true); + break; + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $result = $this->parent->getTopRatedCachesCount(); + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $result = $this->parent->getLatestTitledCachesCount(); + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $result = $this->parent->getUpcomingEventsCount(); + break; + case Neighbourhood::ITEM_LATESTLOGS: + $result = $this->parent->getLatestLogsCount(); + break; + } + + return $result; + } + + public function getResults($limit = 10, $offset = 0): array + { + $result = []; + + switch ($this->section) { + case Neighbourhood::ITEM_LATESTCACHES: + $result = $this->parent->getLatestCaches( + $limit, + $offset + ); + break; + case Neighbourhood::ITEM_FTFCACHES: + $result = $this->parent->getLatestCaches( + $limit, + $offset, + true + ); + break; + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $result = $this->parent->getTopRatedCaches( + $limit, + $offset + ); + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $result = $this->parent->getLatestTitledCaches( + $limit, + $offset + ); + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $result = $this->parent->getUpcomingEvents( + $limit, + $offset + ); + break; + case Neighbourhood::ITEM_LATESTLOGS: + $result = $this->parent->getLatestLogs( + $limit, + $offset + ); + break; + } + + return $result; + } + }; + } + /** * Returns array with latest caches in the nbh - as GeoCache objects * * @param number $limit * @param number $offset - * @param boolean $onlyFTF - * - list only FTF caches if true + * @param bool $onlyFTF + * - list only FTF caches if true * @return GeoCache[] */ public function getLatestCaches($limit = 10, $offset = 0, $onlyFTF = false) @@ -54,6 +144,7 @@ public function getLatestCaches($limit = 10, $offset = 0, $onlyFTF = false) FROM `local_caches` WHERE `type` NOT IN (:excludedtypes) AND `status` = :status'; + if ($onlyFTF) { $query .= ' AND `founds` = 0 '; } @@ -63,6 +154,7 @@ public function getLatestCaches($limit = 10, $offset = 0, $onlyFTF = false) `cache_id` DESC LIMIT :offset, :limit'; $stmt = $this->db->paramQuery($query, $params); + return $this->db->dbFetchAllAsObjects($stmt, function ($row) { return GeoCache::fromCacheIdFactory($row['cache_id']); }); @@ -71,8 +163,8 @@ public function getLatestCaches($limit = 10, $offset = 0, $onlyFTF = false) /** * Returns count of all rows can be returned by getLatestCaches() method * - * @param boolean $onlyFTF - * - count only FTF caches if true + * @param bool $onlyFTF + * - count only FTF caches if true * @return int */ public function getLatestCachesCount($onlyFTF = false) @@ -82,11 +174,18 @@ public function getLatestCachesCount($onlyFTF = false) FROM `local_caches` WHERE `type` NOT IN (:1) AND `status` = :2'; + if ($onlyFTF) { $query .= ' AND `founds` = 0 '; } $query .= ' LIMIT 1'; - return $this->db->multiVariableQueryValue($query, 0, GeoCache::TYPE_EVENT, GeoCache::STATUS_READY); + + return $this->db->multiVariableQueryValue( + $query, + 0, + GeoCache::TYPE_EVENT, + GeoCache::STATUS_READY + ); } /** @@ -117,6 +216,7 @@ public function getTopRatedCaches($limit = 10, $offset = 0) `cache_id` DESC LIMIT :offset, :limit'; $stmt = $this->db->paramQuery($query, $params); + return $this->db->dbFetchAllAsObjects($stmt, function ($row) { return GeoCache::fromCacheIdFactory($row['cache_id']); }); @@ -136,7 +236,13 @@ public function getTopRatedCachesCount() AND `status` = :2 AND `topratings` > 0 LIMIT 1'; - return $this->db->multiVariableQueryValue($query, 0, GeoCache::TYPE_EVENT, GeoCache::STATUS_READY); + + return $this->db->multiVariableQueryValue( + $query, + 0, + GeoCache::TYPE_EVENT, + GeoCache::STATUS_READY + ); } /** @@ -162,6 +268,7 @@ public function getLatestTitledCaches($limit = 10, $offset = 0) `local_caches`.`cache_id` DESC LIMIT :offset, :limit'; $stmt = $this->db->paramQuery($query, $params); + return $this->db->dbFetchAllAsObjects($stmt, function ($row) { return GeoCache::fromCacheIdFactory($row['cache_id']); }); @@ -209,6 +316,7 @@ public function getUpcomingEvents($limit = 10, $offset = 0) ORDER BY `date_hidden` ASC LIMIT :offset, :limit'; $stmt = $this->db->paramQuery($query, $params); + return $this->db->dbFetchAllAsObjects($stmt, function ($row) { return GeoCache::fromCacheIdFactory($row['cache_id']); }); @@ -228,7 +336,13 @@ public function getUpcomingEventsCount() AND `status` = :2 AND `date_hidden` >= DATE(NOW()) LIMIT 1'; - return $this->db->multiVariableQueryValue($query, 0, GeoCache::TYPE_EVENT, GeoCache::STATUS_READY); + + return $this->db->multiVariableQueryValue( + $query, + 0, + GeoCache::TYPE_EVENT, + GeoCache::STATUS_READY + ); } /** @@ -250,9 +364,10 @@ public function getLatestLogs($limit = 10, $offset = 0) FROM `cache_logs` WHERE `cache_logs`.`deleted` = 0 AND `cache_logs`.`cache_id` IN (SELECT `cache_id` FROM `local_caches`) - ORDER BY `cache_logs`.`date_created` DESC + ORDER BY `cache_logs`.`date_created` DESC, `cache_logs`.`id` DESC LIMIT :offset, :limit'; // TODO: AND cache_logs.date_created >= DATE_SUB(NOW(), INTERVAL 31 DAY) $stmt = $this->db->paramQuery($query, $params); + return $this->db->dbFetchAllAsObjects($stmt, function ($row) { return GeoCacheLog::fromLogIdFactory($row['id']); }); @@ -271,6 +386,7 @@ public function getLatestLogsCount() WHERE `cache_logs`.`deleted` = 0 AND `cache_logs`.`cache_id` IN (SELECT `cache_id` FROM `local_caches`) LIMIT 1'; + return $this->db->simpleQueryValue($query, 0); } @@ -292,14 +408,17 @@ private function createLocalCachesTable() $params['lat']['data_type'] = 'large'; $params['radius']['value'] = $this->radius; $params['radius']['data_type'] = 'integer'; - $excludedstatus = GeoCache::STATUS_WAITAPPROVERS . ' , ' . GeoCache::STATUS_NOTYETAVAILABLE . ' , ' . GeoCache::STATUS_BLOCKED; + $excludedstatus + = GeoCache::STATUS_WAITAPPROVERS + . ' , ' . GeoCache::STATUS_NOTYETAVAILABLE + . ' , ' . GeoCache::STATUS_BLOCKED; self::db()->paramQuery(" CREATE TEMPORARY TABLE `local_caches` ENGINE=MEMORY SELECT `cache_id`, `status`, `type`, `founds`, `date_hidden`, `date_published`, `topratings` FROM `caches` WHERE `cache_id` NOT IN (SELECT `cache_ignore`.`cache_id` FROM `cache_ignore` WHERE `cache_ignore`.`user_id`= :userid) - AND caches.status NOT IN ($excludedstatus) + AND caches.status NOT IN ({$excludedstatus}) AND (acos(cos((90 - `latitude` ) * PI() / 180) * cos((90- :lat) * PI() / 180) + sin((90-`latitude`) * PI() / 180) * sin((90-:lat) * PI() / 180) * cos(( `longitude` - :lon) * PI() / 180)) * 6370) <= :radius @@ -324,7 +443,7 @@ private function createLocalCachesTable() private function dropLocalCachesTable() { self::db()->simpleQuery(' - DROP TEMPORARY TABLE IF EXISTS `local_caches` - '); + DROP TEMPORARY TABLE IF EXISTS `local_caches` + '); } } diff --git a/src/Models/Neighbourhood/Neighbourhood.php b/src/Models/Neighbourhood/Neighbourhood.php index 29067b3948..377f6efe14 100644 --- a/src/Models/Neighbourhood/Neighbourhood.php +++ b/src/Models/Neighbourhood/Neighbourhood.php @@ -1,20 +1,27 @@ 'ftf_awaiting', self::ITEM_LATESTLOGS => 'latest_logs', self::ITEM_TITLEDCACHES => 'startPage_latestTitledCaches', - self::ITEM_RECOMMENDEDCACHES => 'top_recommended' + self::ITEM_RECOMMENDEDCACHES => 'top_recommended', ]; /** * Id in DB * - * @var integer + * @var int */ private $id; - /** - * @var integer - */ + /** @var int */ private $userid; /** @@ -49,7 +54,7 @@ class Neighbourhood extends BaseObject /** * Number in neighbourhoods sequence * - * @var integer + * @var int */ private $seq; @@ -101,6 +106,7 @@ public function getUser() if (is_null($this->user)) { $this->user = User::fromUserIdFactory($this->getUserid()); } + return $this->user; } @@ -167,24 +173,25 @@ public function setNotify($notify) /** * Factory * - * @param integer $id - Id of Neighbourhood in DB + * @param int $id - Id of Neighbourhood in DB * @return Neighbourhood|null */ public static function fromIdFactory($id) { $result = new self(); + try { $result->loadById($id); - } catch (\Exception $e) { - return null; + } catch (Exception $e) { + return; } + return $result; } /** * Returns simple array with Coords obj and radius - for given $user and nbhSeq * - * @param User $user * @param int $seq * @return array */ @@ -195,7 +202,7 @@ public static function getCoordsAndRadius(User $user, $seq) $result['radius'] = null; if ($seq == 0) { - if (!empty($user->getHomeCoordinates())) { + if (! empty($user->getHomeCoordinates())) { $result['coords'] = $user->getHomeCoordinates(); $result['radius'] = $user->getNotifyRadius(); } @@ -208,13 +215,13 @@ public static function getCoordsAndRadius(User $user, $seq) LIMIT 1'; $nbhId = self::db()->multiVariableQueryValue($query, null, $user->getUserId(), $seq); $nbh = self::fromIdFactory($nbhId); + if (empty($nbh)) { return $result; - } else { - $result['coords'] = $nbh->getCoords(); - $result['radius'] = $nbh->getRadius(); - unset($nbh); } + $result['coords'] = $nbh->getCoords(); + $result['radius'] = $nbh->getRadius(); + unset($nbh); } return $result; @@ -224,7 +231,6 @@ public static function getCoordsAndRadius(User $user, $seq) * Returns array of all Neighbourhoods of user. * HomeCoords & NotifyRadius has Id & Seq set to 0 * - * @param User $user * @return Neighbourhood[] */ public static function getNeighbourhoodsList(User $user) @@ -246,9 +252,11 @@ public static function getNeighbourhoodsList(User $user) } // Stage 2 - get additional neighbourhoods stored in user_neighbourhoods table $myNghAdd = self::getAdditionalNeighbourhoodsList($user); + foreach ($myNghAdd as $row) { $result[$row->getSeq()] = $row; } + return $result; } @@ -268,22 +276,22 @@ public static function getAdditionalNeighbourhoodsList(User $user) return Neighbourhood::fromIdFactory($row['id']); }); $result = []; + foreach ($tmplist as $row) { $row->prepareForSerialization(); $result[$row->getSeq()] = $row; } + return $result; } /** * Stores (create lub modify in DB) additional user's neighbourhood * - * @param User $user - * @param Coordinates $coords * @param int $radius * @param string $name * @param int $seq - if null - get first available number - * @return boolean + * @return bool */ public static function storeUserNeighbourhood(User $user, Coordinates $coords, $radius, $name, $seq = null, $notify = false) { @@ -302,15 +310,15 @@ public static function storeUserNeighbourhood(User $user, Coordinates $coords, $ `radius` = :6, `notify` = :7 '; - return (self::db()->multiVariableQuery($query, $user->getUserId(), (int) $seq, $name, $coords->getLongitude(), $coords->getLatitude(), (int) $radius, boolval($notify)) !== null); + + return self::db()->multiVariableQuery($query, $user->getUserId(), (int) $seq, $name, $coords->getLongitude(), $coords->getLatitude(), (int) $radius, boolval($notify)) !== null; } /** * Removes additional user neighbourhood from DB * - * @param User $user * @param int $seq - * @return boolean + * @return bool */ public static function removeUserNeighbourhood(User $user, $seq) { @@ -320,35 +328,40 @@ public static function removeUserNeighbourhood(User $user, $seq) LIMIT 1 '; $stmt = self::db()->multiVariableQuery($query, $user->getUserId(), $seq); + if ($stmt == null) { return false; } - return (self::db()->rowCount($stmt) == 1); + + return self::db()->rowCount($stmt) == 1; } /** * Changes "Notify" state for $seq Neighbourhood for $user * - * @param User $user * @param int $seq - * @param boolean $state - * @return boolean + * @param bool $state + * @return bool */ public static function setNeighbourhoodNotify(User $user, $seq, $state) { - return (null !== self::db()->multiVariableQuery(' + return null !== self::db()->multiVariableQuery( + ' UPDATE `user_neighbourhoods` SET `notify` = :1 WHERE `user_id` = :2 AND `seq` = :3 LIMIT 1 - ', boolval($state), $user->getUserId(), $seq)); + ', + boolval($state), + $user->getUserId(), + $seq + ); } /** * Returns max seq number for user's additional nbh * - * @param User $user * @return int */ private static function getMaxUserSeq(User $user) @@ -358,6 +371,7 @@ private static function getMaxUserSeq(User $user) FROM `user_neighbourhoods` WHERE `user_id` = :1 '; + return self::db()->multiVariableQueryValue($query, 0, $user->getUserId()); } @@ -373,10 +387,11 @@ private function loadById($id) $params['id']['data_type'] = 'integer'; $stmt = $this->db->paramQuery($query, $params); $neighbourhoodDbRow = $this->db->dbResultFetch($stmt); + if (is_array($neighbourhoodDbRow)) { $this->loadFromRow($neighbourhoodDbRow); } else { - throw new \Exception("Neighbourhood not found"); + throw new Exception('Neighbourhood not found'); } } @@ -391,6 +406,7 @@ private function loadFromRow(array $neighbourhoodDbRow) $this->radius = $neighbourhoodDbRow['radius']; $this->notify = $neighbourhoodDbRow['notify']; $this->dataLoaded = true; + return $this; } } diff --git a/src/Models/User/UserPreferences/NeighbourhoodPref.php b/src/Models/User/UserPreferences/NeighbourhoodPref.php index 8bf59f9cd7..5bddd7b18d 100644 --- a/src/Models/User/UserPreferences/NeighbourhoodPref.php +++ b/src/Models/User/UserPreferences/NeighbourhoodPref.php @@ -1,26 +1,27 @@ [ 'name' => 'full', 'caches-count' => 5], + 'style' => ['name' => 'full', 'caches-count' => 5], 'items' => [ - Neighbourhood::ITEM_LATESTCACHES => [ 'order' => 1, 'show' => 1, 'fullsize' => 0], - Neighbourhood::ITEM_UPCOMINGEVENTS => [ 'order' => 4, 'show' => 1, 'fullsize' => 0], - Neighbourhood::ITEM_MAP => [ 'order' => 3, 'show' => 1, 'fullsize' => 1], - Neighbourhood::ITEM_LATESTLOGS => [ 'order' => 2, 'show' => 1, 'fullsize' => 0], - Neighbourhood::ITEM_FTFCACHES => [ 'order' => 5, 'show' => 1, 'fullsize' => 0], - Neighbourhood::ITEM_TITLEDCACHES => [ 'order' => 6, 'show' => 1, 'fullsize' => 0], - Neighbourhood::ITEM_RECOMMENDEDCACHES => [ 'order' => 7, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_LATESTCACHES => ['order' => 1, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_UPCOMINGEVENTS => ['order' => 4, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_MAP => ['order' => 3, 'show' => 1, 'fullsize' => 1], + Neighbourhood::ITEM_LATESTLOGS => ['order' => 2, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_FTFCACHES => ['order' => 5, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_TITLEDCACHES => ['order' => 6, 'show' => 1, 'fullsize' => 0], + Neighbourhood::ITEM_RECOMMENDEDCACHES => ['order' => 7, 'show' => 1, 'fullsize' => 0], ], - 'family' => 'simple' + 'family' => 'simple', ]; } } diff --git a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php index 20d6b26b61..63f86d3b46 100644 --- a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php +++ b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php @@ -1,119 +1,131 @@ view->addHeaderChunk('openLayers5'); - * */ -return function (InteractiveMapModel $mapModel, string $canvasId) -{ +return function (InteractiveMapModel $mapModel, string $canvasId) { $publicSrcPath = '/views/chunks/interactiveMap/'; // load chunk CSS - View::callChunkInline('loadCssByJs', + View::callChunkInline( + 'loadCssByJs', Uri::getLinkWithModificationTime( $publicSrcPath . 'interactiveMap.css' ) ); - if ($mapModel->getMarkersFamily() === "okapi") { + + if ($mapModel->getMarkersFamily() === 'okapi') { // load css for okapi markers - View::callChunkInline('loadCssByJs', + View::callChunkInline( + 'loadCssByJs', Uri::getLinkWithModificationTime( $publicSrcPath . '/markers/okapi/okapiBasedMarker.css' ) ); } - View::callChunkInline('handlebarsJs'); -?> + View::callChunkInline('handlebarsJs'); ?> - + getMarkersFamily() === "okapi") { + + if ($mapModel->getMarkersFamily() === 'okapi') { // shared js necessary for okapi markers array_push( - $markerLibs, $publicSrcPath . "markers/ocZoomCachedMarker.js" + $markerLibs, + $publicSrcPath . 'markers/ocZoomCachedMarker.js' ); array_push( - $markerLibs, $publicSrcPath . "markers/okapi/okapiBasedMarker.js" + $markerLibs, + $publicSrcPath . 'markers/okapi/okapiBasedMarker.js' ); } $markerLibsLoaded = false; $markerTypes = array_fill_keys($mapModel->getMarkerTypes(), true); - $markerTypes["highlightedMarker"] = false; + $markerTypes['highlightedMarker'] = false; + foreach ($markerTypes as $markerType => $loadTpl) { - if (!$markerLibsLoaded) { + if (! $markerLibsLoaded) { $markerLibsLoaded = true; + foreach ($markerLibs as $lib) { -?> - + ?> + getMarkersFamily() - . '/'. $markerType . '.js' - ); -?> - - + + - - + diff --git a/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php index 7e5593392f..a50a422dc0 100644 --- a/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php +++ b/src/Views/chunks/interactiveMap/markers/cacheMarkerPopup.tpl.php @@ -25,37 +25,37 @@

{{#if isEvent}} - : {{eventStartDate}} + : {{eventStartDate}} {{else}} - : {{size}} + : {{size}} {{/if}}
{{#if isEvent}} - <?=tr("> x {{founds}} + <?= tr('attendends'); ?> x {{founds}} {{else}} - <?=tr('found')?> x {{founds}} + <?= tr('found'); ?> x {{founds}} {{/if}}
- {{#if rating}}: {{rating}}{{/if}} + {{#if rating}}: {{rating}}{{/if}}
{{#if isEvent}} - <?=tr("> x {{notFounds}} + <?= tr('will_attend'); ?> x {{notFounds}} {{else}} - <?=tr('not_found')?> x {{notFounds}} + <?= tr('not_found'); ?> x {{notFounds}} {{/if}}
- {{#if username}}: {{username}}{{/if}} + {{#if username}}: {{username}}{{/if}}
- <?=tr("> {{ratingVotes}} x + <?= tr('scored'); ?> {{ratingVotes}} x
{{#if isStandingOut}} @@ -67,7 +67,7 @@
{{#if recommendations}} - <?=tr("> {{recommendations}} x + <?= tr('recommended'); ?> {{recommendations}} x {{/if}}
@@ -77,11 +77,11 @@
@@ -92,10 +92,10 @@ {{#if showNavi}}
- < + <
- > + >
{{/if}} diff --git a/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php index f35008e82c..f3a0ef12c0 100644 --- a/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php +++ b/src/Views/chunks/interactiveMap/markers/guideMarkerPopup.tpl.php @@ -23,7 +23,7 @@ *
- {{recCount}} + {{recCount}}
@@ -31,7 +31,7 @@ mailTo
- +
@@ -40,10 +40,10 @@ {{#if showNavi}}
- < + <
- > + >
{{/if}} diff --git a/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php b/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php index 04ccf29d85..bf8910f0a6 100644 --- a/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php +++ b/src/Views/chunks/interactiveMap/markers/logMarkerPopup.tpl.php @@ -39,10 +39,10 @@ {{#if showNavi}}
- < + <
- > + >
{{/if}} diff --git a/src/Views/myNbhInteractive/config.tpl.php b/src/Views/myNbhInteractive/config.tpl.php index a83036b096..2648900520 100644 --- a/src/Views/myNbhInteractive/config.tpl.php +++ b/src/Views/myNbhInteractive/config.tpl.php @@ -3,50 +3,61 @@ ?>
- callChunk('infoBar', null, $view->infoMsg, $view->errorMsg)?> -
- - neighbourhoodsList as $nbh) { - if ($nbh->getSeq() == 0) { - continue; - } ?> - getName()?> - - selectedNbh == -1) { ?> - ? - neighbourhoodsList) <= $view->maxnbh) { ?> - <?=tr('new')?>  - - - - -
+ callChunk('infoBar', null, $view->infoMsg, $view->errorMsg); ?> +
+ +neighbourhoodsList as $nbh) { + if ($nbh->getSeq() == 0) { + continue; + } ?> + getName(); ?> +selectedNbh == -1) { ?> + ? +neighbourhoodsList) <= $view->maxnbh) { ?> + <?= tr('new'); ?>  + + + + +
-coordsOK == 0) { +coordsOK == 0) { if ($view->selectedNbh == 0) { ?> -
- -
-selectedNbh == 0) { ?> -
- -
- -
-
- callChunk('interactiveMap/interactiveMap', $view->mapModel, "nbhmapmain");?> +
+ +
+selectedNbh == 0) { ?> +
+ +
+ +
+
+callChunk('interactiveMap/interactiveMap', $view->mapModel, 'nbhmapmain'); ?> -
-
-
- - | - km +
+
+
+ + | + km +
-
- + -
-
-selectedNbh == 0) { // Main MyNeighbourhood area ?> -
-    - - preferences['style']['name'] == 'full' ? 'checked' : ''?>> - - preferences['style']['name'] == 'min' ? 'checked' : ''?>> -
-
-
-    -
-
-
-
- markersFamilies) > 1) { ?> -
-
-    - markersFamilies as $family) { ?> - - preferences['family'] == $family ? 'checked' : ''?>> - markersFamilies?> -
- markersFamilies ?> -
- -
- - - -
- -
- - -
-
-
- - - -
-
-
-

-
-
- - - - -
- +
+
+selectedNbh == 0) { // Main MyNeighbourhood area ?> +
+    + + preferences['style']['name'] == 'full' ? 'checked' : ''; ?>> + + preferences['style']['name'] == 'min' ? 'checked' : ''; ?>> +
+
+
+    +
+
+
+
+markersFamilies) > 1) { ?> +
+
+    +markersFamilies as $family) { ?> + + preferences['family'] == $family ? 'checked' : ''; ?>> +markersFamilies ?> +
+markersFamilies ?> +
+ +
+ + + +
+ +
+ + +
+
+
+ + + +
+
+
+

+
+
+selectedNbh ?> + + + +
+
diff --git a/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php b/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php deleted file mode 100644 index fb0bc2ef72..0000000000 --- a/src/Views/myNbhInteractive/detail_FTFCaches.tpl.php +++ /dev/null @@ -1,52 +0,0 @@ - -
-
- (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) -
- -
-
- - - - - - - - - caches as $cache) { ?> - - - - - - -
-
- <?=tr('cache') ?> -
-
- getCacheName() ?> - isPowerTrailPart()) { ?> - <?=tr('pt002')?> - - | getOwner()->getUserName()?> -
- <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> - <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> - getSizeTranslationKey())?>
| - coords, $cache->getCoordinates()))?> km - <?=tr('direction')?> -
-
- getDatePlaced())?> -
- callChunkInline('pagination', $view->paginationModel);?> -
-
-
diff --git a/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php b/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php deleted file mode 100644 index c65a3d0506..0000000000 --- a/src/Views/myNbhInteractive/detail_LatestCaches.tpl.php +++ /dev/null @@ -1,79 +0,0 @@ - -
-
- (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) -
- -
-
- - - - - - - - - - caches as $cache) { ?> - - - - loadLogs($cache, false, 0, 1); - if (! empty($log)) { ?> - - - - - - - -
-
- <?=tr('cache') ?> -
-
- getCacheName() ?> - isPowerTrailPart()) { ?> - <?=tr('pt002')?> - - | getOwner()->getUserName()?> -
- <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> - <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> - getSizeTranslationKey())?>
| - coords, $cache->getCoordinates()))?> km - <?=tr('direction')?> - getRecommendations() > 0) { ?> - | <?=tr('number_obtain_recommendations')?> - (getRecommendations()?>) - -
-
- getDatePlaced())?> - -
- <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> - getDate())?> - getUser()->getUserName()?> -
- getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
-
-
getText()?>
-
- callChunkInline('pagination', $view->paginationModel); ?> -
-
-
diff --git a/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php b/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php deleted file mode 100644 index 8ce1da1f24..0000000000 --- a/src/Views/myNbhInteractive/detail_LatestLogs.tpl.php +++ /dev/null @@ -1,70 +0,0 @@ - - - diff --git a/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php b/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php deleted file mode 100644 index 8e16b6e164..0000000000 --- a/src/Views/myNbhInteractive/detail_RecommendedCaches.tpl.php +++ /dev/null @@ -1,79 +0,0 @@ - -
-
- (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) -
- -
-
- - - - - - - - - - caches as $cache) { ?> - - - - loadLogs($cache, false, 0, 1); - if (! empty($log)) { ?> - - - - - - - -
-
- <?=tr('cache') ?> -
-
- getCacheName() ?> - isPowerTrailPart()) { ?> - <?=tr('pt002')?> - - | getOwner()->getUserName()?> -
- <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> - <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> - getSizeTranslationKey())?>
| - coords, $cache->getCoordinates()))?> km - <?=tr('direction')?> - getRecommendations() > 0) { ?> - | <?=tr('number_obtain_recommendations')?> - (getRecommendations()?>) - -
-
- getDatePlaced())?> - -
- <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> - getDate())?> - getUser()->getUserName()?> -
- getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
-
-
getText()?>
-
- callChunkInline('pagination', $view->paginationModel);?> -
-
-
diff --git a/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php b/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php deleted file mode 100644 index fae4536240..0000000000 --- a/src/Views/myNbhInteractive/detail_TitledCaches.tpl.php +++ /dev/null @@ -1,87 +0,0 @@ - -
-
- (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) -
- -
-
- - - - - - - - - - - caches as $cache) { ?> - - - - - loadLogs($cache, false, 0, 1); - if (! empty($log)) { ?> - - - - - - - -
-
- <?=tr('cache') ?> -
-
- getCacheName() ?> - isPowerTrailPart()) { ?> - <?=tr('pt002')?> - - | getOwner()->getUserName()?> -
- <?=tr('task_difficulty')?>: <?=$cache->getDifficulty() / 2?> - <?=tr('terrain_difficulty')?>: <?=$cache->getTerrain() / 2?> - getSizeTranslationKey())?>
| - coords, $cache->getCoordinates()))?> km - <?=tr('direction')?> - getRecommendations() > 0) { ?> - | <?=tr('number_obtain_recommendations')?> - (getRecommendations()?>) - -
-
- getDatePlaced())?> - - getCacheId()); - echo Formatter::date($cacheTitled->getTitledDate()); - unset($cacheTitled); - ?> - -
- <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> - getDate())?> - getUser()->getUserName()?> -
- getText()), 0, 20)?>getText())) > 20 ? '...' : '')?>
-
-
getText()?>
-
- callChunkInline('pagination', $view->paginationModel);?> -
-
-
diff --git a/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php b/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php deleted file mode 100644 index b3cc48960a..0000000000 --- a/src/Views/myNbhInteractive/detail_UpcommingEvents.tpl.php +++ /dev/null @@ -1,72 +0,0 @@ - -
-
- (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName()?>) -
- -
-
- - - - - - - - - - - caches as $cache) { ?> - - - - - loadLogs($cache, false, 0, 1); - if (! empty($log)) { ?> - - - - - - - -
-
- <?=tr('cache') ?> -
-
- getCacheName() ?> - coords, $cache->getCoordinates()))?> km - <?=tr('direction')?> - | <?=tr('will_attend')?> getNotFounds()?> -
-
- getOwner()->getUserName()?> - - getDatePlaced())?> - -
- <?=tr(GeoCacheLog::typeTranslationKey($log[0]->getType()))?> - getDate())?> - getUser()->getUserName()?> -
- getText()), 0, 35)?>getText())) > 35 ? '...' : '')?>
-
-
getText()?>
-
- callChunkInline('pagination', $view->paginationModel); ?> -
-
-
diff --git a/src/Views/myNbhInteractive/details.tpl.php b/src/Views/myNbhInteractive/details.tpl.php new file mode 100644 index 0000000000..29dc012efd --- /dev/null +++ b/src/Views/myNbhInteractive/details.tpl.php @@ -0,0 +1,272 @@ + [], + 'items' => [], +]; + +switch ($view->sectionId) { + case Neighbourhood::ITEM_LATESTCACHES: + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $sectionSettings = [ + 'columns' => ['cache', 'date_hidden_label', 'new_logs_myn'], + 'items' => $view->caches, + 'itemDisplayFunctions' => [ + 'showCache', + 'showDatePlaced', + 'showNewLogs', + ], + 'showRecommendations' => true, + ]; + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $sectionSettings = [ + 'columns' => [ + 'cache', + 'myn_event_organizer', + 'date_event_label', + 'new_logs_myn', + ], + 'items' => $view->caches, + 'itemDisplayFunctions' => [ + 'showEvent', + 'showOwner', + 'showDatePlaced', + 'showNewLogs', + ], + ]; + break; + case Neighbourhood::ITEM_FTFCACHES: + $sectionSettings = [ + 'columns' => ['cache', 'date_hidden_label'], + 'items' => $view->caches, + 'itemDisplayFunctions' => [ + 'showCache', + 'showDatePlaced', + ], + 'addLinkToDatePlaced' => true, + ]; + break; + case Neighbourhood::ITEM_LATESTLOGS: + $sectionSettings = [ + 'columns' => ['cache', 'myn_log_txt'], + 'items' => $view->logs, + 'itemDisplayFunctions' => [ + 'showCache', + 'showLog', + ], + ]; + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $sectionSettings = [ + 'columns' => [ + 'cache', + 'date_hidden_label', + 'myn_titleddate', + 'new_logs_myn', + ], + 'items' => $view->caches, + 'itemDisplayFunctions' => [ + 'showCache', + 'showDatePlaced', + 'showDateTitled', + 'showNewLogs', + ], + 'showRecommendations' => true, + ]; + break; +} + +$sectionSettings['logController'] = null; +?> +
+
+ sectionTranslationKey); ?> (selectedNbh == 0) ? tr('my_neighborhood') : $view->neighbourhoodsList[$view->selectedNbh]->getName(); ?>) +
+ +
+
+ + + + + + + + + +getGeoCache() : $item; ?> + +getParameters(); + + if (sizeof($reflectionParams) == 3) { + $callParameter = null; + + if ($reflectionParams[0]->getType() == GeoCache::class) { + $callParameter = $cache; + } elseif ( + $reflectionParams[0]->getType() == GeoCacheLog::class + && $item instanceof GeoCacheLog + ) { + $callParameter = $item; + } + + if ($callParameter) { + $reflectionFunc->invoke($callParameter, $sectionSettings, $view); + } + } + } // end of foreach-settings-itemDisplayFunctions ?> + + + +
+callChunkInline('pagination', $view->paginationModel); ?> +
+
+
+ + +
+ <?= tr('cache'); ?> +
+ + + + +
+ <?= tr('cache'); ?> +
+ + + + > + getDatePlaced()); ?> + + + + getOwner()->getUserName(); ?> + +getCacheId()); ?> + + getTitledDate()); ?> + +loadLogs($cache, false, 0, 1); + + if (! empty($log)) { ?> + +
+ <?= tr(GeoCacheLog::typeTranslationKey($log[0]->getType())); ?> + getDate()); ?> + getUser()->getUserName(); ?> +
+ getText()), 0, 35); ?>getText())) > 35 ? '...' : ''; ?>
+
+
getText(); ?>
+ + + + + + +
getText()); ?>
+ + diff --git a/src/Views/myNbhInteractive/myNeighbourhood.tpl.php b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php index 58b707256e..9fc69df450 100644 --- a/src/Views/myNbhInteractive/myNeighbourhood.tpl.php +++ b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php @@ -1,82 +1,315 @@
- neighbourhoodsList as $nbh) { - if ($nbh->getSeq() == $view->selectedNbh) { - $btnClassMod = 'btn-primary'; - } else { - $btnClassMod = 'btn-default'; - } - ?> - getName()?> - - <?=tr('config')?>  +neighbourhoodsList as $nbh) { + if ($nbh->getSeq() == $view->selectedNbh) { + $btnClassMod = 'btn-primary'; + } else { + $btnClassMod = 'btn-default'; + } ?> + getName(); ?> + + <?= tr('config'); ?>  + +
+preferences['items'] as $key => $item) { + $order[$item['order']] = $item; + $order[$item['order']]['item'] = $key; +} +ksort($order); + +foreach ($order as $item) { + $classSize = ($item['fullsize'] == 1) ? 'nbh-full' : 'nbh-half'; + + $sectionSettings = [ + 'header' => [], + 'contents' => [ + 'empty' => 'list_of_caches_is_empty', + 'showDate' => 'placed', + 'details' => null, + ], + 'columns' => [], + 'items' => [], + 'rowSub' => 'showCaches', + ]; + + switch ($item['item']) { + case Neighbourhood::ITEM_MAP: + $sectionSettings['header'] = [ + 'title' => 'map', + 'buttonHideId' => 'nbh-map-hide', + 'buttonResizeId' => 'nbh-map-resize', + ]; + break; + case Neighbourhood::ITEM_LATESTCACHES: + $sectionSettings['header'] = [ + 'title' => 'newest_caches', + ]; + $sectionSettings['contents']['details'] = 'latestCaches'; + $sectionSettings['items'] = $view->latestCaches; + break; + case Neighbourhood::ITEM_UPCOMINGEVENTS: + $sectionSettings['header'] = [ + 'title' => 'incomming_events', + ]; + $sectionSettings['contents'] = [ + 'empty' => 'list_of_events_is_empty', + 'details' => 'upcommingEvents', + ]; + $sectionSettings['items'] = $view->upcomingEvents; + //$sectionSettings['rowSub'] = null; + break; + case Neighbourhood::ITEM_FTFCACHES: + $sectionSettings['header'] = [ + 'title' => 'ftf_awaiting', + ]; + $sectionSettings['contents']['details'] = 'ftfCaches'; + $sectionSettings['contents']['showDate'] = null; + $sectionSettings['items'] = $view->FTFCaches; + break; + case Neighbourhood::ITEM_LATESTLOGS: + $sectionSettings['header'] = [ + 'title' => 'latest_logs', + ]; + $sectionSettings['contents'] = [ + 'empty' => 'list_of_latest_logs_is_empty', + 'details' => 'latestLogs', + ]; + $sectionSettings['items'] = $view->latestLogs; + $sectionSettings['rowSub'] = 'showLogs'; + break; + case Neighbourhood::ITEM_TITLEDCACHES: + $sectionSettings['header'] = [ + 'title' => 'startPage_latestTitledCaches', + ]; + $sectionSettings['contents']['details'] = 'titledCaches'; + $sectionSettings['contents']['showDate'] = 'titled'; + $sectionSettings['items'] = $view->latestTitled; + break; + case Neighbourhood::ITEM_RECOMMENDEDCACHES: + $sectionSettings['header'] = [ + 'title' => 'top_recommended', + 'showRecommendedImg' => true, + ]; + $sectionSettings['contents']['details'] = 'mostRecommended'; + $sectionSettings['contents']['showDate'] = null; + $sectionSettings['items'] = $view->topRatedCaches; + break; + } ?> +
+ - preferences['items'] as $key => $item) { - $order[$item['order']] = $item; - $order[$item['order']]['item'] = $key; - } - ksort($order); - foreach ($order as $item) { - $classSize = ($item['fullsize'] == 1) ? 'nbh-full' : 'nbh-half'; - switch ($item['item']) { - case Neighbourhood::ITEM_MAP: - $subTemplate = '/' . $view->templatesPath . 'sub_Map'; - break; - case Neighbourhood::ITEM_LATESTCACHES: - $subTemplate = '/' . $view->templatesPath . 'sub_LatestCaches'; - break; - case Neighbourhood::ITEM_UPCOMINGEVENTS: - $subTemplate = '/' . $view->templatesPath . 'sub_UpcommingEvents'; - break; - case Neighbourhood::ITEM_FTFCACHES: - $subTemplate = '/' . $view->templatesPath . 'sub_FTFCaches'; - break; - case Neighbourhood::ITEM_LATESTLOGS: - $subTemplate = '/' . $view->templatesPath . 'sub_LatestLogs'; - break; - case Neighbourhood::ITEM_TITLEDCACHES: - $subTemplate = '/' . $view->templatesPath . 'sub_TitledCaches'; - break; - case Neighbourhood::ITEM_RECOMMENDEDCACHES: - $subTemplate = '/' . $view->templatesPath . 'sub_RecommendedCaches'; - break; - default: - break; - } - ?> -
- callSubTpl($subTemplate)?> -
- -
- neighbourhoodsList[$view->selectedNbh]->getCoords()->getLatitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); - list($lonEW, $lon_h, $lon_min) = $view->neighbourhoodsList[$view->selectedNbh]->getCoords()->getLongitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); - ?> -
- -
-
-
+ if ($item['item'] == Neighbourhood::ITEM_MAP) { + showMap($view, $sectionSettings); + } else { + showRows($item['item'], $view, $sectionSettings); + } ?> +
+ +
+neighbourhoodsList[$view->selectedNbh]->getCoords()->getLatitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); +[$lonEW, $lon_h, $lon_min] = $view->neighbourhoodsList[$view->selectedNbh]->getCoords()->getLongitudeParts(Coordinates::COORDINATES_FORMAT_DEG_MIN); +?> +
+ +
+
+
+ +
+ + + <?= tr('number_obtain_recommendations'); ?> + +
+ + +
+
+ +
+callChunk('interactiveMap/interactiveMap', $view->mapModel, 'nbhmap'); +} //end of nbhMap + +function showRows($sectionId, $view, $sectionSettings) +{ ?> +
+ +
+ +
+ + +preferences['style']['caches-count']) { ?> + + + getCacheName(); ?> +isPowerTrailPart()) { ?> + <?= tr('pt002'); ?> + + | getOwner()->getUserName(); ?> +
+ <?= tr('task_difficulty'); ?>: <?= $cache->getDifficulty() / 2; ?> + <?= tr('terrain_difficulty'); ?>: <?= $cache->getTerrain() / 2; ?>
+ + getDatePlaced()); ?> | +getCacheId()); ?> + | getTitledDate()); ?> | + + | + + getSizeTranslationKey()); ?> | + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates())); ?> km + <?= tr('direction'); ?> +getRecommendations() > 0) { ?> + | <?= tr('number_obtain_recommendations'); ?> (getRecommendations(); ?>) + + getCacheName(); ?> + | getOwner()->getUserName(); ?> +
| + getDatePlaced()); ?> | + neighbourhoodsList[$view->selectedNbh]->getCoords(), $cache->getCoordinates())); ?> km + <?= tr('direction'); ?> + | <?= tr('will_attend'); ?> getNotFounds(); ?> + +
+getGeoCache(); ?> + +preferences['style']['caches-count']) { ?> + + diff --git a/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php b/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php deleted file mode 100644 index 9a551d1df6..0000000000 --- a/src/Views/myNbhInteractive/sub_FTFCaches.tpl.php +++ /dev/null @@ -1,46 +0,0 @@ - -
- -
- - -
-
- - diff --git a/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php b/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php deleted file mode 100644 index 4adcc30110..0000000000 --- a/src/Views/myNbhInteractive/sub_LatestCaches.tpl.php +++ /dev/null @@ -1,52 +0,0 @@ - -
- -
- - -
-
- - diff --git a/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php b/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php deleted file mode 100644 index 48c485262a..0000000000 --- a/src/Views/myNbhInteractive/sub_LatestLogs.tpl.php +++ /dev/null @@ -1,54 +0,0 @@ - -
- -
- - -
-
- - diff --git a/src/Views/myNbhInteractive/sub_Map.tpl.php b/src/Views/myNbhInteractive/sub_Map.tpl.php deleted file mode 100644 index 2861b40861..0000000000 --- a/src/Views/myNbhInteractive/sub_Map.tpl.php +++ /dev/null @@ -1,14 +0,0 @@ - -
- -
- - -
-
- -
-callChunk('interactiveMap/interactiveMap', $view->mapModel, "nbhmap");?> diff --git a/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php b/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php deleted file mode 100644 index 8bb48d9fb6..0000000000 --- a/src/Views/myNbhInteractive/sub_RecommendedCaches.tpl.php +++ /dev/null @@ -1,48 +0,0 @@ - -
- <?=tr('number_obtain_recommendations')?> -
- - -
-
- - diff --git a/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php b/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php deleted file mode 100644 index be4bb78d7c..0000000000 --- a/src/Views/myNbhInteractive/sub_TitledCaches.tpl.php +++ /dev/null @@ -1,57 +0,0 @@ - -
- -
- - -
-
- -
- -latestTitled)) { ?> -
- - latestTitled as $cache) { - $cacheTitled = CacheTitled::fromCacheIdFactory($cache->getCacheId()); - ?> - - latestTitled) == $view->preferences['style']['caches-count']) { ?> - - -
diff --git a/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php b/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php deleted file mode 100644 index 1396ebd8f3..0000000000 --- a/src/Views/myNbhInteractive/sub_UpcommingEvents.tpl.php +++ /dev/null @@ -1,45 +0,0 @@ - -
- -
- - -
-
- -
- -upcomingEvents)) { ?> -
-upcomingEvents as $cache) {?> - - upcomingEvents) == $view->preferences['style']['caches-count']) { ?> -
- -
- -
From 9b08c3e5cd0238700cb5ef98c18c7aefb9440846 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Fri, 16 Apr 2021 15:52:42 +0200 Subject: [PATCH 09/17] Models Neighbourhood formatted after merge --- src/Models/Neighbourhood/Neighbourhood.php | 55 ++++++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/src/Models/Neighbourhood/Neighbourhood.php b/src/Models/Neighbourhood/Neighbourhood.php index a8daad22f5..505fbabd00 100644 --- a/src/Models/Neighbourhood/Neighbourhood.php +++ b/src/Models/Neighbourhood/Neighbourhood.php @@ -213,7 +213,12 @@ public static function getCoordsAndRadius(User $user, $seq) WHERE `user_id` = :1 AND `seq` = :2 LIMIT 1'; - $nbhId = self::db()->multiVariableQueryValue($query, null, $user->getUserId(), $seq); + $nbhId = self::db()->multiVariableQueryValue( + $query, + null, + $user->getUserId(), + $seq + ); $nbh = self::fromIdFactory($nbhId); if (empty($nbh)) { @@ -237,7 +242,10 @@ public static function getNeighbourhoodsList(User $user) { $result = []; // Stage 1 - get default neighbourhood stored in user table - if ($user->getNotifyRadius() != 0 && $user->getHomeCoordinates()->areCordsReasonable()) { + if ( + $user->getNotifyRadius() != 0 + && $user->getHomeCoordinates()->areCordsReasonable() + ) { $myNgh = new Neighbourhood(); $myNgh->setId(0); $myNgh->setSeq(0); @@ -293,8 +301,14 @@ public static function getAdditionalNeighbourhoodsList(User $user) * @param int $seq - if null - get first available number * @return bool */ - public static function storeUserNeighbourhood(User $user, Coordinates $coords, $radius, $name, $seq = null, $notify = false) - { + public static function storeUserNeighbourhood( + User $user, + Coordinates $coords, + $radius, + $name, + $seq = null, + $notify = false + ) { if (is_null($seq)) { $seq = self::getMaxUserSeq($user) + 1; } @@ -311,7 +325,16 @@ public static function storeUserNeighbourhood(User $user, Coordinates $coords, $ `notify` = :7 '; - return self::db()->multiVariableQuery($query, $user->getUserId(), (int) $seq, $name, $coords->getLongitude(), $coords->getLatitude(), (int) $radius, boolval($notify)) !== null; + return self::db()->multiVariableQuery( + $query, + $user->getUserId(), + (int) $seq, + $name, + $coords->getLongitude(), + $coords->getLatitude(), + (int) $radius, + boolval($notify) + ) !== null; } /** @@ -327,7 +350,11 @@ public static function removeUserNeighbourhood(User $user, $seq) WHERE `user_id` = :1 AND `seq` = :2 LIMIT 1 '; - $stmt = self::db()->multiVariableQuery($query, $user->getUserId(), $seq); + $stmt = self::db()->multiVariableQuery( + $query, + $user->getUserId(), + $seq + ); if ($stmt == null) { return false; @@ -338,12 +365,13 @@ public static function removeUserNeighbourhood(User $user, $seq) /** * Remove all neighbourhoods of given user - * @param User $user */ public static function removeAllUserNeighbourhood(User $user): void { self::db()->multiVariableQuery( - 'DELETE FROM user_neighbourhoods WHERE user_id = :1', $user->getUserId()); + 'DELETE FROM user_neighbourhoods WHERE user_id = :1', + $user->getUserId() + ); } /** @@ -382,7 +410,11 @@ private static function getMaxUserSeq(User $user) WHERE `user_id` = :1 '; - return self::db()->multiVariableQueryValue($query, 0, $user->getUserId()); + return self::db()->multiVariableQueryValue( + $query, + 0, + $user->getUserId() + ); } private function loadById($id) @@ -412,7 +444,10 @@ private function loadFromRow(array $neighbourhoodDbRow) $this->user = null; $this->seq = $neighbourhoodDbRow['seq']; $this->name = $neighbourhoodDbRow['name']; - $this->coords = Coordinates::FromCoordsFactory($neighbourhoodDbRow['latitude'], $neighbourhoodDbRow['longitude']); + $this->coords = Coordinates::FromCoordsFactory( + $neighbourhoodDbRow['latitude'], + $neighbourhoodDbRow['longitude'] + ); $this->radius = $neighbourhoodDbRow['radius']; $this->notify = $neighbourhoodDbRow['notify']; $this->dataLoaded = true; From bbbeaad9a7da8502c3a5f7fd6434769666bb1479 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Fri, 16 Apr 2021 16:14:39 +0200 Subject: [PATCH 10/17] Style fixes after php-cs-fixer upgrade to 2.18.5 --- .../interactiveMap/interactiveMap.tpl.php | 6 +++--- .../markers/cacheMarkerPopup.tpl.php | 2 +- .../markers/guideMarkerPopup.tpl.php | 2 +- .../markers/logMarkerPopup.tpl.php | 2 +- src/Views/myNbhInteractive/config.tpl.php | 20 +++++++++---------- src/Views/myNbhInteractive/details.tpl.php | 12 +++++------ .../myNbhInteractive/myNeighbourhood.tpl.php | 12 +++++------ 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php index 63f86d3b46..bd9d0b552c 100644 --- a/src/Views/chunks/interactiveMap/interactiveMap.tpl.php +++ b/src/Views/chunks/interactiveMap/interactiveMap.tpl.php @@ -96,7 +96,7 @@ + } //foreach-markerTypes?> getOwner()->getUserName(); ?>
getType() == GeoCacheLog::LOGTYPE_FOUNDIT && $log->isRecommendedByUser($log->getUser())) { ?> + if ($log->getType() == GeoCacheLogCommons::LOGTYPE_FOUNDIT && $log->isRecommendedByUser($log->getUser())) { ?> <?= tr('number_obtain_recommendations'); ?> | From 7722971da7f3a3f03d9436cd609225fe5672f594 Mon Sep 17 00:00:00 2001 From: rapotek <17698165+rapotek@users.noreply.github.com> Date: Fri, 11 Jul 2025 14:06:17 +0200 Subject: [PATCH 17/17] Added button to switch between interactive and original my neighbourhood page --- lib/languages/en.php | 2 ++ .../MyNbhInteractiveController.php | 23 ++++++++++++------- .../myNbhInteractive/myNeighbourhood.tpl.php | 6 ++++- .../myNeighbourhood/myNeighbourhood.tpl.php | 15 ++++++++++-- 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/lib/languages/en.php b/lib/languages/en.php index a21d6f664b..23252ed5c2 100644 --- a/lib/languages/en.php +++ b/lib/languages/en.php @@ -3286,4 +3286,6 @@ 'map_popup_next' => 'Next', 'map_popup_previous' => 'Previous', + 'mynbh_interactive' => 'Switch to Interactive version', + 'mynbh_original' => 'Switch to original version', ]; diff --git a/src/Controllers/MyNbhInteractiveController.php b/src/Controllers/MyNbhInteractiveController.php index aa77e46c43..cf10287f99 100644 --- a/src/Controllers/MyNbhInteractiveController.php +++ b/src/Controllers/MyNbhInteractiveController.php @@ -10,6 +10,7 @@ use src\Models\Coordinates\Coordinates; use src\Models\Neighbourhood\MyNbhSets; use src\Models\Neighbourhood\Neighbourhood; +use src\Models\User\User; use src\Models\User\UserPreferences\NeighbourhoodPref; use src\Models\User\UserPreferences\UserPreferences; use src\Utils\Text\UserInputFilter; @@ -56,16 +57,20 @@ public function __construct() parent::__construct(); } + public static function hasAccess(User $user): bool + { + return $user !== null + && ( + ! self::VALIDATION_MODE + || $user->hasOcTeamRole() + || $user->hasAdvUserRole() + || $user->hasSysAdminRole() + ); + } + private function accessControl() { - if ( - ! $this->isUserLogged() - || self::VALIDATION_MODE && ! ( - $this->loggedUser->hasOcTeamRole() - || $this->loggedUser->hasAdvUserRole() - || $this->loggedUser->hasSysAdminRole() - ) - ) { + if (! self::hasAccess($this->loggedUser)) { $this->view->redirect( Uri::setOrReplaceParamValue('target', Uri::getCurrentUri(), '/') ); @@ -339,6 +344,7 @@ public function save(int $nbhSeq = 0) $definedNbh = count( Neighbourhood::getAdditionalNeighbourhoodsList($this->loggedUser) ); + // Store MyNeighbourhood data if (isset($_POST['lon'], $_POST['lat'], $_POST['radius'])) { $coords = Coordinates::FromCoordsFactory( @@ -405,6 +411,7 @@ public function save(int $nbhSeq = 0) } else { // User not choose coords | radius $error = tr('myn_coords_error'); } + // Store user preferences if ( $nbhSeq == 0 diff --git a/src/Views/myNbhInteractive/myNeighbourhood.tpl.php b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php index 35fb6350b4..eb955b0f06 100644 --- a/src/Views/myNbhInteractive/myNeighbourhood.tpl.php +++ b/src/Views/myNbhInteractive/myNeighbourhood.tpl.php @@ -1,4 +1,5 @@ <?= tr('config'); ?>  - + + +
@@ -15,7 +18,15 @@ getName()?> <?=tr('config')?>  - + + +

CC-6H7xS->X$7N#TwkT!GP-mz7SXCu8rKQr{)FjDxT#j$s zCf^np%Y}mn#WqbD930#yBJ=Ju|9n4IRBXiO)A0Fx`29Y7KAl%yDdW>mw{!W_DMqhf zr{e3cdHU5?u`G)>ckQC#v(ISRzn{W&>&PuASOsJQiTfg;X`t&mKA(?3Ad5i2&y5?` z=<2#m$@}l~OnEtvFJDf5{V^hu2w#1*iw$3X$*rCq!b_IW-`{_B@#4jEf@dHg=(>ik z>ttp5SiAORmM<>`;O5OJ!QdnK9$QFl?O|$bYe^&~FwGPX<>e8uZR^~*b3gCiz555! zrS6qMdB=G(02;ck5ex=dx9)X75sTd-9L{CYq9+*}8>PO!4y9}~O+zU~DwSgA&Yk^x z_wGGrnq~?J%tBz&GY}9&1j8`+?YCxHTbl_4vM4Dj<=JPSXLxux{g%kIuLcGNEYmat zKoAJcSk&_RJOngEAicJ5{(K`(Jn=YXWp7Yi{31}XcMs>||gjxZjfre}=;- z9lcTt%Tna#E}*RJHQsuwl2ppXvMg-dc4U~AIi0lrVaG#2jx*;5t;j5aHv=~Dc$~9m z&k&1^V44=DX=B^=q*NZ$9iRZ|Mr1kjh9`OhNM)!3CiMr4NTik4)>cHowx_h8Q3PHR zKBoGB3!HHL?g*r1P`GmFy5?+57kqZ~8AM$0abV0DQ)H6h4&V~d4fFxmfqr1n6a9oIL-P`Fx4cPOuQ(8k$KyBh^70-I zhr=%n3=F74hYnqBZ*OmL!2fWfzeQT>QKoi$+{x%2;4t@nz||?m)LEWrZf@Qa3WZi> zXJ3nw?51y1TnuNJoCfiP9o1pZEQY zUFu#7+&yF#lJ4`azVk-;ZxV1xxIV3<{sJ5(002ovPDHLkV1nzf B;9vj% literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_unavailable_found.png b/public/images/map_markers/okapi/cache/large_unknown_unavailable_found.png new file mode 100644 index 0000000000000000000000000000000000000000..6a71f790520b0bb0cb211eb4ad0995a1a4e075a1 GIT binary patch literal 1551 zcmV+q2JrcbP)(`A***XHF6TdI&jSB*u=_0}q5uE`fXx^azR#oCY&Pn;E+Uag z?|(vohztPr0OkQ01klA8vx%r?Y;5cxfQ3YqCZgY@lm|;oOU+_)@%sSR0jwgTC4*gE z^E@JPB3dMbctHuV#LZ>{j?9)Z##U*Xc5tfsW=#M<8Gr@J_I7-^YZp3>907m@0ODhr z%vS5}U7Wkpj(uOfgtZ9a=bQ&ivAH`pP_dzKoo_u80;MVwV1pq{JZB`Dnwze+vzZ1E-QfxKnJes)m zJHG4sS}zY(1ee5?^7$w;jFJ-k-19vWH-Ci@jpCt-TKmoC-i>m`O(HrMi9}8pBQRwT z5V<;$s{>MJj4A-)chf^giCz-USfjl4+mB#5qqybvqy5iz1auwDa3 z3VkpY#*{sF1tEbzcrJ1~A5BM^d3s*oj6;)hkcG zj+)9^WSy+aI$12PtVh%0jTSg}Qkl#zfk5C4fTV{pIcMeokRvd6?p!o9tVA>#!N5RY ziZO`liig#!&+b;CKm=9M7+zel6`V0aM3-7xT8`}7x9^gtz7T=&oaP)L5D{G0#nr1< zaO1`mXj%ZKIh<;2Y%YsMALVZ}y$z)Zj4=>VKj+%9WHM==Jb7{k0-=fyU~G;<1Q6wj zT)vz@Fc?BS{tT8aTdBIbE}I=4=N!g3IOn*1`?kZF`T_ui5FCJBAOpUf-T@*45ug-7 zDMDps46#@ZIy?Wsg$w7EC@@MhY$BA5{cmgz{S8PgjRq#^HTGO@WH`BYh+|3P*YQ**VfkR z0C4^Kb$kE*{UaS69RpHI2|!L#n77;YjTTHc8Y-)BjDdxGOs3;N;%cl)v~g(vUF%@NVc@J3?veXehCda19qkXDS90P3OnEr@+AO3*Y%WP z7|z9u7l)BkD1Au|(PpHn{RS=8DG@gQaz{{V_36}6Fs{6qi%002ovPDHLkV1nk` B(bxb0 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_unavailable_found_caption.png b/public/images/map_markers/okapi/cache/large_unknown_unavailable_found_caption.png new file mode 100644 index 0000000000000000000000000000000000000000..450bddf4ee250ed209b315b84574a71f6933e074 GIT binary patch literal 1591 zcmV-72FUq|P)TqcV@iawbvF3kpXAr*lCht7fOmr?Rd?4*E^oMAAQ(aJYIiCk@}J&9nH+$bMOCu{^#i4yYPQD@mVJtW1_$YU`hz# zg~k)U?{A))o1?C-?%$sW$)&(I7-L>B#+)$5yljlA55_x+#o}$(b?02yEzHi&4(4*X z=9Si3w*tnPIB?7u^UTEPC=FY;0=x@clT!XrO8KlY8Xu2pE9M$wCS$Q!%W~^k>m>j* z0i9$0{rvvuQ3l_73t$iMUC(uQE6-yv{ZD>+?)%)DPB}t|4TVDC?az%sp-|{>UH9?E zC!c(x^R?F!@AUREeC`~DnVG#t>&Qgm4!?fy6rUC*`OQC0X#gR_ zj#FJ7X?x*?&BC_X*xK5JF*Ql-tY?A=Sn2**>;PBzYuPzn1Z{NNz zX{~o@t@-=tAF(XU`bO*X)}zlox6Np6X{9)OgZ&AKz3`RfUaex8q}uJebX-(p!7)gr>H zdw)dCu64B5xmYaLxe~^TJ@ESLKl`R_3oOf~y?qx44jkaw$G$~2pXEIocS)`P_*xt>qNA_Sl4pouJRp38Dh-JZ7Bw&nkEK6Wn0^1g}wtj_db{gOJ zv4zdIzkZCy2bxeyp_HQi;iq|i`ynla(7Am6mg6{Y0+#}eN?)4-AP_=OT^(h|jwh(E zkCRT1p_F7}Z38du{vI1^H_^1Qg`>NF0HBppx!&I1Uv+hL^#x~yvy5ASwaPwVFvj5f z9;2hz86W?Usw#(j_onIWe1^v!Y~vR%p1dEewRVLN1F2LhfAQi)i=}%^hkaQEgs`PC z^F*#)8>Xfv&d!}3w6%Se(a{gNbLTcf2!w!4CIjdJ04Zezhyyhh9t}KFR$@g3j4>Dk zS{t-BY}&M$#>NCABZDN9SMfZBF#;(Sg+hTh-uSr;5vUKc44VwRe0J3#{CH9;GwECDe>-x{%C+*lP)|1TPaPgWs1Q zmN^Z(ySv|3N;$soN2HX|uCA_!4jw$%7>~yn#JjGmFI>3rNnc-IW)0x8%x8ape^^A| z{Q2`|g7G+|dw>1iyLa0x%i43~$dN=i_VVS+cTS!>`F=8)91ATP-h9g7`GA0|_8~ zOvwEpqhcen)0Eagd zXJBApsJ6B?A%sYz)9EX~Q~((6?8*bE@_SVU!e%O*NF?$}G#Z^585v1YlDS;}GJ!>N pR|u?E$Zqo> zPQ0;q?cMe4dUocXe%Q6+HI8jn;zN&gG`n}^-v9rc|GDR0_pB7YQ-Pm#n=dBEJ@qXtbwC zE_Zi}h{Q!?!?!`;RuLKP`sgG1b5oPF?bNrB=(+PjkMtmHgsj(y0`8KKUfI&9{NQvyb?;pK4V- zAI~ZSWFil3-ty3Fs@L7TxyxR^e!aEokw>`D*2Yk8FZB;RK<(<)3=a>hIU}z)qa!`F zz^n<3r+xeO?Td3ilbnBsVc_#w4E6T1f9qDvygaH`tl;za-XpYV5sjNR>8|lY#mLZ> zYhZd6^yveYNv_Z|@cDcUc6amMV~-I%dzL$&dWw5rdySeKZ{(8~UZCxbH_-hX0tHns z-zg%~Vwlst+_2&M7>0&n7?`GkVd&g;TQgg>{DH2P7KVF!+3?(RTyy*FxUS3hwr%6X zC!XNQjvdslSwq3x>uUf%VE<19G!1lJ$1n^m%ZFu|T)1$SGiSP3`S8PByLvTqmn~z@ zp0{ahYh&xyZLELxSq8uUn&5&3BnI9-Q|MoKRqz=I2)eGJ>pDK4!L7G`hh@u_190(T zKY_p;jPf#e@7~4k-Mg{vBiO(5oKttCx0)YT) z)~uzhEQDza!C)a(Rn_?Ye)jBn3#B|XO+zV#<2XG3{PUNR{g1~|cK;|~P2pzN^=Tyl zK}1NUQXD;cnD+L=SeB2KD{rB$?gk=}Naica-6i30*cDOMNRm9DXwstYM4yI$h6rTV z77iWygv!dfG&iqf`SKMUJa~YeJO6@G3K2m>jn7m{>7GK5B?yq)*c9MoJv9RXvI`4J z37)4|xUiPRiklq%ZSAzTw<7|ccSZY2 z*y9XTrY^_&z! zCV>xS38b=PY8Dxo707hvl1cec*6lHH$UO@ZV?Q2!^wF;}m8?vql(}x*x`Mm!zB^D< zRFt!8lF1}{_wG%!w6vtA;+#y4@A()I;Y#%5U27tNE+F#Pt-C6cDJ;jq@;r1;VeUJ0 zD)s*RIuAbhV9s6fgAYEiz1VBci@!T*X&P!`p6n#{7hiEM3py|%diQDsI)UGhBnuiZ z4==bj8Y`|y*m~KbdG695uGd1Z?)*^g-(TUZUAxu-=bJj0`s2yE#OZF| z8Duo!xx=Y=JQ_RQnLc;8mD4~U5Y7_G0na5cPy9g8h{uEd1IMlI^WFZ77cT_9I5+65 zzdd68$-&I{* z-9B&LyggHa185?0!>LoJe*W$|J07YEec>#>uG3k$tjCpXBN0F}bn+-7kI?HoZr0Cy zRnD(|b^u);ag#9ys>`wG1W-O-<`#AAbRypqbw5ia%;TTq2vSb#G0%p6UF zTUMNPZ&`8H{rf)$-DAg=H#Rgh)Bsl{Fr#T2XyB4&s4y?(uB`7dhohv*OGp$Kq6}j; zt4wVsaK5RjspH*uPAt0|Ei;#2*XgXP@A;-)0=h@a2ac|z`-3Q-F*W$nlZ(vb-Ak>D zkvePR{Y@Rf`Kty8-z>sBGpvg8FT0_lh$<_IxaB1=N`nbiT#!_A@-r%pBrS#$`TF2c zfqpq!#6UD;Mq(j7mMk|%-3q<2an-?_Zn~*!{`~pvnx^fYmOz$7CD52mCL6lCy5{!v z^_4{;kx)Dy58Ad}T`0000 literal 0 HcmV?d00001 diff --git a/public/images/map_markers/okapi/cache/large_unknown_unavailable_own.png b/public/images/map_markers/okapi/cache/large_unknown_unavailable_own.png new file mode 100644 index 0000000000000000000000000000000000000000..1e268afd66d3616078c31fc7c1daa21124c0213d GIT binary patch literal 1972 zcmV;l2TS;gP)+yvc~peFkmp?7{{U}d;}cv5k5j` zjZi63N)jO%6oJ$~B$bjX3JppE0+Ax3Dj`wT#8OnCj;w-IA}WfY5G;`rQcOXBjcsD= z#TXmgEbFyB-krIpKXz=djXy{we)LF3vvc>(dEay1d(WML|5pZiRw^RfMC8GP+qdO@ zb+w2{yNDD%2?C2nq`T_$X*p0(AmxV-_mGeW_4RV_#TTVy<3@=_A|fImj}*`74GexD z8^{8@Lq4%;Re-O)s-HA_cFxp=3n|;bACGC0RZzg+-+r6+rY2T@@BxO;2cgiFkqBrB z1fBtY1B@N%A=a)<=kw1ObSEeKPrd&>cP?FGbV>>_%i@K1-z9tLQaF0_8t=WgMZ0