{"version":3,"sources":["webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/simplify-js/simplify.js","webpack:///./node_modules/leaflet/dist/leaflet-src.js","webpack:///./node_modules/leaflet/dist/leaflet.css?764e","webpack:///./node_modules/leaflet/dist/leaflet.css","webpack:///./node_modules/leaflet/dist/images/layers.png","webpack:///./node_modules/leaflet/dist/images/layers-2x.png","webpack:///./node_modules/leaflet/dist/images/marker-icon.png","webpack:///./node_modules/@trevoreyre/autocomplete-vue/dist/autocomplete.esm.js","webpack:///./node_modules/topojson/node_modules/topojson-client/src/identity.js","webpack:///./node_modules/topojson/node_modules/topojson-client/src/transform.js","webpack:///./node_modules/topojson/node_modules/topojson-client/src/feature.js","webpack:///./node_modules/topojson/node_modules/topojson-client/src/reverse.js","webpack:///./node_modules/topojson/node_modules/topojson-client/src/bisect.js","webpack:///./node_modules/topojson/node_modules/topojson-server/src/hash/point-hash.js","webpack:///./node_modules/topojson/node_modules/topojson-simplify/src/spherical.js"],"names":["uncurryThis","requireObjectCoercible","toString","quot","replace","module","exports","string","tag","attribute","value","S","p1","fails","METHOD_NAME","test","toLowerCase","split","length","$","aCallable","toObject","lengthOfArrayLike","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","push","FAILS_ON_UNDEFINED","undefined","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","index","result","String","fromCharCode","k","v","a","b","charAt","target","proto","forced","comparefn","array","this","itemsLength","items","arrayLength","x","y","getSortCompare","firefox","match","UA","webkit","createHTML","forcedStringHTMLMethod","link","url","getSqSegDist","p","p2","dx","dy","t","simplifyDPStep","points","first","last","sqTolerance","simplified","maxSqDist","i","sqDist","simplifyDouglasPeucker","simplify","tolerance","highestQuality","point","prevPoint","newPoints","len","simplifyRadialDist","version","extend","dest","j","src","arguments","create$2","Object","create","F","prototype","bind","fn","obj","slice","Array","apply","call","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","range","includeMax","max","min","d","falseFn","formatNum","num","precision","pow","Math","round","trim","str","splitWords","setOptions","options","hasOwnProperty","getParamString","existingUrl","uppercase","params","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","key","Error","isArray","el","emptyImageUrl","getPrefixed","name","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Util","__proto__","Class","checkDeprecatedMixinEvents","includes","L","Mixin","Events","console","warn","stack","props","NewClass","initialize","callInitHooks","parentProto","__super__","constructor","statics","_initHooks","_initHooksCalled","include","parentOptions","mergeOptions","addInitHook","init","on","types","type","_on","off","_off","removeAll","_events","_once","_listens","newListener","ctx","once","listeners","listener","_firingCount","splice","fire","propagate","listens","event","sourceTarget","l","_propagateEvent","_fn","_eventParents","addEventParent","removeEventParent","e","layer","propagatedFrom","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","Point","trunc","floor","ceil","toPoint","Bounds","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","clone","add","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","min2","max2","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","bounds","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","pad","bufferRatio","heightBuffer","widthBuffer","sw2","ne2","sw","_southWest","ne","_northEast","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","earthRadius","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","Browser","svg","div","style","documentElement","ie","ielt9","edge","navigator","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touchNative","TouchEvent","touch","L_NO_TOUCH","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","defineProperty","get","canvas$1","createElement","getContext","svg$1","createSVGRect","inlineSvg","innerHTML","firstChild","namespaceURI","vml","shape","behavior","adj","mac","linux","canvas","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","touchstart","touchmove","touchend","touchcancel","handle","_onPointerStart","_handlePointer","_pointers","_pointerDocListener","addPointerListener","handler","_addPointerDocListener","removePointerListener","_globalPointerDown","pointerId","_globalPointerMove","_globalPointerUp","pointerType","MSPOINTER_TYPE_MOUSE","touches","changedTouches","MSPOINTER_TYPE_TOUCH","preventDefault","makeDblclick","prop","newEvent","detail","isTrusted","_simulated","delay","addDoubleTapListener","simDblclick","sourceCapabilities","firesTouchEvents","path","getPropagationPath","some","HTMLLabelElement","attributes","for","HTMLInputElement","HTMLSelectElement","now","dblclick","removeDoubleTapListener","handlers","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","create$1","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","addClass","classes","setClass","removeClass","baseVal","correspondingElement","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","setTransform","offset","pos","setPosition","_leaflet_pos","left","top","getPosition","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","element","tabIndex","restoreOutline","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","DomUtil","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","passive","isExternalTarget","attachEvent","detachEvent","stopPropagation","originalEvent","_stopped","cancelBubble","disableScrollPropagation","disableClickPropagation","returnValue","stop","ev","composedPath","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","related","relatedTarget","err","DomEvent","addListener","removeListener","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","elapsed","_runFrame","_easeOut","progress","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","noMoveStart","setZoom","zoomIn","delta","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","rho","rho2","r","sq","sinh","n","cosh","tanh","r0","w","u","easeOut","start","frame","_flyToFrame","_move","getScaleZoom","_moveEnd","_moveStart","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","paddedBounds","paddedSize","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","_container","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","position","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","supressEvent","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","_isClickDisabled","_fireDOMEvent","_mouseEvents","canvasTargets","synth","filtered","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","_tempFireZoomEvent","createMap","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","setAttribute","section","_expandSafely","_layersLink","href","title","keydown","keyCode","click","_baseLayersList","_separator","_overlaysList","overlay","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","pow10","ukrainianFlag","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","_addAttribution","removeAttribution","setPrefix","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","_lastCode","START","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","which","button","_moving","sizedParent","_startPoint","_parentScale","mouseevent","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","_simplifyDP","_reducePoints","pointToSegmentDistance","_sqClosestPointOnSegment","closestPointOnSegment","markers","Uint8Array","_simplifyDPStep","reducedPoints","prev","_sqDist","clipSegment","useLastCode","codeOut","newCode","codeA","_getBitCode","codeB","_getEdgeIntersection","dot","isFlat","_flat","polylineCenter","halfDist","segDist","dist","LineUtil","clipPolygon","clippedPoints","edges","_code","polygonCenter","f","area","PolyUtil","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","events","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","layerGroup","FeatureGroup","setStyle","bringToFront","bringToBack","featureGroup","Icon","popupAnchor","tooltipAnchor","crossOrigin","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","icon","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","_stripUrl","strip","re","idx","querySelector","substring","MarkerDrag","marker","_marker","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","autoPanOnFocus","draggable","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","_panOnFocus","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","iconOpts","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","circleMarker","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","circle","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","jLen","_parts","_defaultShape","addLatLng","_convertLatLngs","flat","_rings","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","segment","parts","_simplifyPoints","_updatePoly","part","polyline","Polygon","pop","clipped","polygon","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","geoLayer","properties","featureLayer","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","errorOverlayUrl","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","imageOverlay","VideoOverlay","autoplay","loop","keepAspectRatio","muted","playsInline","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","videoOverlay","video","SVGOverlay","svgOverlay","DivOverlay","content","_source","_content","openOn","close","toggle","_prepareOpen","_removeTimeout","getContent","setContent","visibility","_updateContent","_updateLayout","isOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","_initOverlay","OverlayClass","old","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","popup","closeOnClick","closePopupOnClick","preclick","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","whiteSpace","scrolledClass","_autopanning","marginBottom","containerHeight","containerWidth","layerPos","containerPos","openPopup","_popupHandlersAdded","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","Tooltip","direction","permanent","sticky","tooltip","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","closeTooltip","bindTooltip","_tooltip","isTooltipOpen","unbindTooltip","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","_addFocusListeners","mousemove","_setAriaDescribedByOnLayer","toggleTooltip","setTooltipContent","getTooltip","_addFocusListenersOnLayer","moving","DivIcon","bgPos","Element","backgroundPosition","divIcon","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","tileZoom","_clampZoom","_updateLevels","viewprereset","_invalidateAll","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","noPrune","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","gridLayer","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","referrerPolicy","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","getAttribute","tilePoint","complete","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","tileLayerWMS","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","SVG","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","rectangle","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","mousedown","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","newLatLng","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tapHoldDelay","tapHold","tapTolerance","TapHold","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","cancelClickPrevent","simulatedEvent","MouseEvent","bubbles","cancelable","view","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","_animRequest","moveFn","Projection","latLng","oldL","noConflict","factory","__esModule","default","locals","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","instance","Constructor","TypeError","_defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","matches","selector","msMatchesSelector","webkitMatchesSelector","nodeType","closestPolyfill","isPromise","Boolean","then","AutocompleteCore","_this","_ref","search","_ref$autoSelect","autoSelect","_ref$setValue","setValue","_ref$setAttribute","_ref$onUpdate","onUpdate","_ref$onSubmit","onSubmit","_ref$onShow","onShow","_ref$autocorrect","autocorrect","_ref$onHide","onHide","_ref$onLoading","onLoading","_ref$onLoaded","onLoaded","_classCallCheck","updateResults","selectedIndex","handleArrows","selectResult","selectedResult","results","hideResults","dataset","resultIndex","resultsCount","currentSearch","searchCounter","showResults","resultsElement","selectedResultElement","resultsPosition","selectedPosition","Promise","resolve","idCounter","uniqueId","script","inheritAttrs","Function","required","baseClass","getResultValue","defaultValue","debounceTime","func","wait","core","handleUpdate","handleSubmit","handleShow","handleHide","handleLoading","handleLoaded","handleInput","callNow","resultListId","expanded","resetPosition","computed","rootProps","inputProps","role","autocomplete","autocapitalize","spellcheck","resultProps","$attrs","inputListeners","handleKeyDown","handleFocus","handleBlur","resultListProps","yPosition","pointerEvents","resultListListeners","handleResultMouseDown","handleResultClick","mounted","handleDocumentClick","beforeDestroy","updated","element1","element2","position1","position2","$refs","resultList","innerHeight","pageYOffset","checkSelectedResultVisible","methods","$emit","root","__vue_component__","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","normalizeComponent","_vm","_h","$createElement","_self","ref","_t","_g","$listeners","_v","_l","_s","install","Vue","installed","component","GlobalVue","plugin","global","use","identity","x0","y0","kx","ky","output","o","topology","transformPoint","arcs","reverse","line","buffer","ArrayBuffer","Float64Array","Uint32Array"],"mappings":"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","file":"bb19550.js","sourcesContent":["var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","/*\n (c) 2017, Vladimir Agafonkin\n Simplify.js, a high-performance JS polyline simplification library\n mourner.github.io/simplify-js\n*/\n\n(function () { 'use strict';\n\n// to suit your point format, run search/replace for '.x' and '.y';\n// for 3D version, see 3d branch (configurability would draw significant performance overhead)\n\n// square distance between 2 points\nfunction getSqDist(p1, p2) {\n\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y;\n\n return dx * dx + dy * dy;\n}\n\n// square distance from a point to a segment\nfunction getSqSegDist(p, p1, p2) {\n\n var x = p1.x,\n y = p1.y,\n dx = p2.x - x,\n dy = p2.y - y;\n\n if (dx !== 0 || dy !== 0) {\n\n var t = ((p.x - x) * dx + (p.y - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2.x;\n y = p2.y;\n\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p.x - x;\n dy = p.y - y;\n\n return dx * dx + dy * dy;\n}\n// rest of the code doesn't care about point format\n\n// basic distance-based simplification\nfunction simplifyRadialDist(points, sqTolerance) {\n\n var prevPoint = points[0],\n newPoints = [prevPoint],\n point;\n\n for (var i = 1, len = points.length; i < len; i++) {\n point = points[i];\n\n if (getSqDist(point, prevPoint) > sqTolerance) {\n newPoints.push(point);\n prevPoint = point;\n }\n }\n\n if (prevPoint !== point) newPoints.push(point);\n\n return newPoints;\n}\n\nfunction simplifyDPStep(points, first, last, sqTolerance, simplified) {\n var maxSqDist = sqTolerance,\n index;\n\n for (var i = first + 1; i < last; i++) {\n var sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) simplifyDPStep(points, first, index, sqTolerance, simplified);\n simplified.push(points[index]);\n if (last - index > 1) simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(points, sqTolerance) {\n var last = points.length - 1;\n\n var simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nfunction simplify(points, tolerance, highestQuality) {\n\n if (points.length <= 2) return points;\n\n var sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n\n points = highestQuality ? points : simplifyRadialDist(points, sqTolerance);\n points = simplifyDouglasPeucker(points, sqTolerance);\n\n return points;\n}\n\n// export as AMD module / Node module / browser or worker variable\nif (typeof define === 'function' && define.amd) define(function() { return simplify; });\nelse if (typeof module !== 'undefined') {\n module.exports = simplify;\n module.exports.default = simplify;\n} else if (typeof self !== 'undefined') self.simplify = simplify;\nelse window.simplify = simplify;\n\n})();\n","/* @preserve\n * Leaflet 1.9.3, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.3\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an , the browser generates a click on its\r\n \t\t//