From c9af4d98ccdf482e231af8a1f42f1a4c952b59f9 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Mon, 20 Mar 2017 22:40:55 +0000 Subject: [PATCH] Remove uglify optimizer from webpack config, move scripts to npm --- package.json | 5 +- public/assets/js/links.js | 130 +- public/assets/js/links.js.br | Bin 616 -> 1152 bytes public/assets/js/links.js.gz | Bin 714 -> 1332 bytes public/assets/js/maps.js | 2863 +++++++++++++++++++++- public/assets/js/maps.js.br | Bin 107486 -> 124340 bytes public/assets/js/maps.js.gz | Bin 123844 -> 141926 bytes public/assets/js/newnote.js | 4072 +++++++++++++++++++++++++++++++- public/assets/js/newnote.js.br | Bin 112740 -> 133568 bytes public/assets/js/newnote.js.gz | Bin 130221 -> 152825 bytes webpack.config.js | 11 +- yarn.lock | 302 +-- 12 files changed, 7105 insertions(+), 278 deletions(-) diff --git a/package.json b/package.json index b47e6c37..2de3f5ef 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "CC0-1.0", "dependencies": { "alertify.js": "^1.0.12", - "mapbox-gl": "^0.32.0", + "mapbox-gl": "^0.34.0", "marked": "^0.3.6", "normalize.css": "^5.0.0", "webStorage": "^1.2.2" @@ -33,7 +33,8 @@ "compress": "./compress", "copy-dist": "cp ./node_modules/mapbox-gl/dist/mapbox-gl.css ./public/assets/frontend/ && cp ./node_modules/alertify.js/dist/css/alertify.css ./public/assets/frontend/ && cp ./node_modules/normalize.css/normalize.css ./public/assets/frontend/", "lint:sass": "stylelint --syntax=scss resources/assets/sass/**/*.scss", - "lint:es6": "eslint resources/assets/es6/*.js" + "lint:es6": "eslint resources/assets/es6/*.js", + "uglifyjs": "uglifyjs ./public/assets/js/*.js --screw-ie8 --source-map-inline --compress --mangle $1" }, "lint-staged": { "eslint-staged": "resources/assets/es6/*.js", diff --git a/public/assets/js/links.js b/public/assets/js/links.js index e184be76..35aa87a7 100644 --- a/public/assets/js/links.js +++ b/public/assets/js/links.js @@ -1 +1,129 @@ -!function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=18)}({18:function(t,e){var r=/watch\?v=([A-Za-z0-9\-_]+)\b/,n=/https\:\/\/play\.spotify\.com\/(.*)\b/,o=document.querySelectorAll(".e-content"),a=!0,u=!1,i=void 0;try{for(var c,l=o[Symbol.iterator]();!(a=(c=l.next()).done);a=!0){var s=c.value,d=s.textContent.match(r);if(d){var f=document.createElement("div");f.classList.add("container");var p=document.createElement("iframe");p.classList.add("youtube"),p.setAttribute("src","https://www.youtube.com/embed/"+d[1]),p.setAttribute("frameborder",0),p.setAttribute("allowfullscreen","true"),f.appendChild(p),s.appendChild(f)}var m=s.textContent.match(n);if(m){var b=m[1].replace("/",":"),y=document.createElement("iframe");y.classList.add("spotify"),y.setAttribute("src","https://embed.spotify.com/?uri=spotify:"+b),y.setAttribute("frameborder",0),y.setAttribute("allowtransparency","true"),s.appendChild(y)}}}catch(t){u=!0,i=t}finally{try{!a&&l.return&&l.return()}finally{if(u)throw i}}}}); \ No newline at end of file +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 18); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 18: +/***/ (function(module, exports) { + +//links.js + +var youtubeRegex = /watch\?v=([A-Za-z0-9\-_]+)\b/; +var spotifyRegex = /https\:\/\/play\.spotify\.com\/(.*)\b/; + +var notes = document.querySelectorAll('.e-content'); + +var _iteratorNormalCompletion = true; +var _didIteratorError = false; +var _iteratorError = undefined; + +try { + for (var _iterator = notes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var note = _step.value; + + var ytid = note.textContent.match(youtubeRegex); + if (ytid) { + var ytcontainer = document.createElement('div'); + ytcontainer.classList.add('container'); + var ytiframe = document.createElement('iframe'); + ytiframe.classList.add('youtube'); + ytiframe.setAttribute('src', 'https://www.youtube.com/embed/' + ytid[1]); + ytiframe.setAttribute('frameborder', 0); + ytiframe.setAttribute('allowfullscreen', 'true'); + ytcontainer.appendChild(ytiframe); + note.appendChild(ytcontainer); + } + var spotifyid = note.textContent.match(spotifyRegex); + if (spotifyid) { + var sid = spotifyid[1].replace('/', ':'); + var siframe = document.createElement('iframe'); + siframe.classList.add('spotify'); + siframe.setAttribute('src', 'https://embed.spotify.com/?uri=spotify:' + sid); + siframe.setAttribute('frameborder', 0); + siframe.setAttribute('allowtransparency', 'true'); + note.appendChild(siframe); + } + } +} catch (err) { + _didIteratorError = true; + _iteratorError = err; +} finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } +} + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/public/assets/js/links.js.br b/public/assets/js/links.js.br index b78f8a8b2f0733ba2cd30db7eb073bf818ce139b..5564752bf60536c931c210ee4a7076df8527e295 100644 GIT binary patch literal 1152 zcmb1MB*-AszA^dNnPT7V9w*i>{gqy5x%bbpM{YHu`=^u%OT|PSy)jqy<*R8jYd1GO z4*xy%*PWBaPyAMJ>^qP_vnqMCk zv#yZabb@WcA5WfliMs157qZQ|`Bq4?vMwazdg!%B|GOH49h~)8G=q#+|8d;j(5scu zGA|<}^iAC=4KtQ~S&WC<4t!sxU)ZtCfjRoH-IBiN;p&dJiuYa9D&4ZrvVRNPuCSS5 zN?y51KVmKS85};g)AC!**=X%t|HEQu7M)x3OJ+hB>+0L$ITNnc9{avjiec^I6Sua_ zVV&pN)t+_dyZqg+NhfOpUU!!sF)pdudRbg@$CITOV=Z@m)p9Bfw0?1JgRAkA%JbFF znrF?sBQAYM`}UMN7h;IVo8d! zGQ0VZb>+R-MN!*|JGSe+HBc4}zWg$6$`ZHfnjA&16$ITM-Ss#+{qv<+YWauSw|ze$ z{O^7V-&8@H-Phv^H0MNyimBQcTdeHJ+P~$3SJEzAwkl+)dO9$x;ux)UIV`Aa`NU z{#)A?|2|wdM=@zlh65;n)KukN7cHuXWdz2JKx=WI%&qtbvZv4U5%-Web3vs z`oo-<6&4BFCzpMHUyo&H*(6$H#lODWx+3pid_Mp5 zr$qe+50`QY;by{~QJ#h(h?<>L-4=l^-O%)9DP^v#X863(@6(L8@XLUft&+2C6> z4syMkb(IfarZ4ke*Yc<0t5})!QnSiUTnw?=4|9%kUpxKG(J|xEzsJ+ga5!?w%bx2v z-=y&UF)P#EC;Io#&+xQ)bJIeT`>^6Z$=JN3+nX zZa~jgSB_h!MU~zd#hu;F>b}~L=e&a1!68>Ym0`1isX{CFo7Jc1#QphfeMQRIqwC6N-=*H1XH)0QvrA3gcY!B;&)cge zix(fUd>*}Lm8)xwG{buFf^&XfjqMdOrmlW=@oA*4#h*8kcRQb1q&O$e_@>fdBQh?s>s-4vyQP!2e2cprUkU)L!9-dB literal 616 zcmb21#LCcf*h0+a^K`AH#Zh5fKR!v`q?}W(zGmn06@Gg+hSh!0{oTN7F|mJwu4R<) zbnE}@m0PBsl1L7okyc#PFmajSyt$=SD#b@v@@kTk_~Wvx04plb+9mx0aGvEU2^2jxAvXt z8yD8AX@*~L-}~9G%fxi=Ue!vw**E5?zSCbh=fe%7bXF59&eeg3B#OSVxOF&UP&gp{F!)Q=goHe@4Fc? zt?HILNO9X0JYS`H+W)&m1qRbSlUbK=Z_hBdAWmrhNeEcTo8##*6GEgL^Pm!0m)P#1Ba zV{NXRhf3r91$kYE-@i48Y1qP8EPKR&nNfGr(@vSs;-6=n2|Aql^0uS>_P-OIS4>pg zq|hkg5wd`VDQT{Ilx5?#yPZ9UL<4XBnYgflSw2wM{#RMX-A9Jm3IPozPlR7Nu1osC zd5&E(UPE-!jNo_i)f;M-J08s36y%ndD7W?HQr~l2l4seceNs9|Eo4V^=Xg=04;wj3jhEB diff --git a/public/assets/js/links.js.gz b/public/assets/js/links.js.gz index c3df3ed88f47fb8cab5b92c48f9fb97298e7e35d..ca18f4e22418154dbe2d13c01245e3f46d9165af 100644 GIT binary patch literal 1332 zcmb2|=3oE;Cg!DKk<%Y*@Yk;U!&TKA+{YwurQzVgaR#ceSQZ?l;{&WFyom!7n^1W1V?vz`&+ILTBR&wEwU_rhU6F=JA5uD|x zyL{!>d49Uj%U3GhZC&>;{*2)6tcYRkd{LIQ3g)B3_2GP_QBDJh9=N%1(BTm1LUuDyDXF3NH3dThPqq=e<;mwk%z zi+P?imHFqgCYzf7uelt3X|<@zR2G%FMpo^WAzP}Zu3&m26MNrJ_mF1Ryz-2ME8Z_l z`}Aw=A{NYfD00bcp+PwB2k1?dyVVX1KjUk1Vk)w=TqC4=%l@u`G99|bG6X~krgUMd#AFVl5ns3)e^VJ z@)_&mY!|M}w^b(=7c)yd-}SB~kW;&|LBO$p+mC}x&qZI9racd=Kfa<|aOng=t`|Z} zSoV2ezEr%}{(#cg$egX-g^bI^VmD^#%#V(B$T6?F!eRX@C|k+o$o`@*rs=QUj=7zf zn3dwDr`?xsSrYeGc|j=SHNDEKCabxQZR?ReoF?-7{=a)Ka(6aWa!Rf%`ngK&t^m8X zm(IzaCtl`mLQ^gpTk~jNaX!4@pMg)ueYf2~Z!g@nb^QK*_iO99O$L|T{L5aIE{GFs zTy7>@XXn$KS+Q_R`?0+oYOODuG9Fvpymce*ChM}UV3Q+<*Is(`Ep5}XA8NvzgtRRu z`>gZkcpgy`8Kl0gs#bmm!)Nt`Yd18tbQ{87`UY)%{5|GHwo$6-X-^~FjdT2$v%i?u z_3rKM+8Oeaeu4of=l&B|wsQ4?y>e?7D*IoU8olBU|NrOba~@CoUH|{*QkL-MU&=u* zdo*s>v--!{Dlgf)c+Q3UN`F+@m}`@-t(kO{XWwDfH6pJwI#Z42+eF%Motr=RZ|nJg zbp_x4pS=0yQHse-*Fsq(FE!6?_u9@Z)j67C)2S9X^YK@eEqs#=5|65I9ZD9CW)D_# z+^(ML8OkvA;e4(izu2El@HjSKGn2>JV)cAZt#)N;Q&l00FuwVc`UU@*L{s^8xqZJU zy?)A)_iG+&pObX&Ka;j4?b3$OD{JnAq+ayeA*ImrYO3guf2Xcqu=~GJFHML4?oU?( zE7xGfg*_M7CdeOO@Xe`zouMu2fuMzURr4YbFWsu=-#5C423a zocqP1ojke?*GgHA@?6U3@O$Mq-+s>y$*fwlWE<9X7v%5ga6Gq+P79sa-NGE;>z$nx zzql}x$v6It=R7vPtqEp9rA1{5|1mG^UB?ceU{6*06{=*pY|#;! zj7{H4H)_Q{XcME+@SyQI)PvHX>*+$CdO+nKYzp5tp;ZY;^dRdr+ei!b;2 zb+*4=x98VX$J1(7t;ejJN^ItfJIKiTIv;ATUczX=w*5pppT3p+hWl?)BPu2aCz(u5 z-WGLlbMQu~<(b7&hisNC*?MGt`pop}#ur2)Hpavk2j7!DQgM@UkLZa8ZNW?H1-JK{ zHwa$!Vm24IjwZvq&lC66{H*?~ukl1m>hXjA2i6=GGPm8H#wO1@u8_^`E~>Y!pzGQj z%Y>(Dv%c@XJ|TVDkDt#^%%8X5|JBzS4`+KHpBlwB_2Q$Dy^AZ9gC-x~id5O9lVVY? z&90}ct{VH{Md6Ev_bLB>ADnA?Htl)ip2fnh2OAjPAN^}=HSy!W$kN?kbr#!rgzSE6 zUhOEiFZ!=?`2Y3c@wwst{pBUm)6aAkwcq%9J1aWx^tn@sr+=SYoO#LdXIZq+zo#27 zbH5G!bYAhlzLUg1w%Ip+eTY>GEr?LvY$(coYKg}?w~0LFN$-2()|gAQZT#4n;@1`V zQ2w9Xty|G~0!=>Aa-4T{Iz?PKPs{FcaMHYfkMZu4(#^BtH1Rpen;-I5}g-8>@m}?Q=KIDw*cY3yXG`3T zZ{Iu+rR$A;+vB{r`qiL;>+VUM<}!~d^xXt zVOGWTV2LHKttAhveE8<->}xzFv(!pWm|jYJ?logter(51&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=t.dataset.latitude,o=t.dataset.longitude,l=t.dataset.id,c=window["geojson"+l];if(null==c&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[o,n]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=i){var p=!0,f=!1,d=void 0;try{for(var m,y=i[Symbol.iterator]();!(p=(m=y.next()).done);p=!0){var v=m.value,g=r.i(s.a)(v.location).longitude,_=r.i(s.a)(v.location).latitude;c.features.push({type:"Feature",geometry:{type:"Point",coordinates:[g,_]},properties:{title:v.name,icon:"circle",uri:v.slug}})}}catch(t){f=!0,d=t}finally{try{!p&&y.return&&y.return()}finally{if(f)throw d}}}if(null!=e){e.coords.longitude,e.coords.latitude}var map=new a.a.Map({container:t,style:"mapbox://styles/mapbox/streets-v9",center:[o,n],zoom:15});if(null==e&&map.scrollZoom.disable(),map.addControl(new a.a.NavigationControl),t.appendChild(h(map)),map.on("load",function(){map.addSource("points",{type:"geojson",data:c}),map.addLayer({id:"points",interactive:!0,type:"symbol",source:"points",layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=e&&map.on("click",function(t){var e=map.queryRenderedFeatures(t.point,{layer:["points"]});e.length&&(map.flyTo({center:e[0].geometry.coordinates}),r.i(u.a)(e[0].properties.uri))}),c.features&&c.features.length>1){var x=new a.a.LngLatBounds,b=!0,w=!1,E=void 0;try{for(var T,S=c.features[Symbol.iterator]();!(b=(T=S.next()).done);b=!0){var z=T.value;x.extend(z.geometry.coordinates)}}catch(t){w=!0,E=t}finally{try{!b&&S.return&&S.return()}finally{if(w)throw E}}map.fitBounds(x,{padding:65})}return map}var o=r(9),a=r.n(o),s=r(1),u=r(4);e.a=n,a.a.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var l=function(t){return t.split("-").map(function(t){var e=i(t),r=e[0],n=e.slice(1);return r.toUpperCase()+n.join("").toLowerCase()}).join(" ")},c=function(map,t,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=document.createElement("input");i.setAttribute("id",e),i.setAttribute("type","radio"),i.setAttribute("name","toggle"),i.setAttribute("value",e),1==r&&i.setAttribute("checked","checked"),i.addEventListener("click",function(){map.setStyle("mapbox://styles/mapbox/"+e+"-v9")});var n=document.createElement("label");n.setAttribute("for",e),n.appendChild(document.createTextNode(l(e))),t.appendChild(i),t.appendChild(n)},h=function(map){var t=document.createElement("div");return t.classList.add("map-menu"),c(map,t,"streets",!0),c(map,t,"satellite-streets"),t}},,function(t,e,r){"use strict";function i(t){document.querySelector("select")&&("current-location"==t?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+t+'"]').selected=!0)}e.a=i},function(t,e,r){"use strict";function i(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function n(t){return 3*t.length/4-i(t)}function o(t){var e,r,n,o,a,s,u=t.length;a=i(t),s=new h(3*u/4-a),n=a>0?u-4:u;var l=0;for(e=0,r=0;e>16&255,s[l++]=o>>8&255,s[l++]=255&o;return 2===a?(o=c[t.charCodeAt(e)]<<2|c[t.charCodeAt(e+1)]>>4,s[l++]=255&o):1===a&&(o=c[t.charCodeAt(e)]<<10|c[t.charCodeAt(e+1)]<<4|c[t.charCodeAt(e+2)]>>2,s[l++]=o>>8&255,s[l++]=255&o),s}function a(t){return l[t>>18&63]+l[t>>12&63]+l[t>>6&63]+l[63&t]}function s(t,e,r){for(var i,n=[],o=e;oc?c:u+a));return 1===i?(e=t[r-1],n+=l[e>>2],n+=l[e<<4&63],n+="=="):2===i&&(e=(t[r-2]<<8)+t[r-1],n+=l[e>>10],n+=l[e>>4&63],n+=l[e<<2&63],n+="="),o.push(n),o.join("")}e.byteLength=n,e.toByteArray=o,e.fromByteArray=u;for(var l=[],c=[],h="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=p.length;f=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),a.alloc(+t)}function v(t,e){if(a.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(t).length;default:if(i)return G(t).length;e=(""+e).toLowerCase(),i=!0}}function g(t,e,r){var i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return M(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function _(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function x(t,e,r,i,n){if(0===t.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof e&&(e=a.from(e,i)),a.isBuffer(e))return 0===e.length?-1:b(t,e,r,i,n);if("number"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,i,n){function o(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,s=t.length,u=e.length;if(void 0!==i&&(i=String(i).toLowerCase(),"ucs2"===i||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}var l;if(n){var c=-1;for(l=r;ls&&(r=s-u),l=r;l>=0;l--){for(var h=!0,p=0;pn&&(i=n)):i=n;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(n+s<=r){var u,l,c,h;switch(s){case 1:o<128&&(a=o);break;case 2:u=t[n+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(a=h));break;case 3:u=t[n+1],l=t[n+2],128===(192&u)&&128===(192&l)&&(h=(15&o)<<12|(63&u)<<6|63&l,h>2047&&(h<55296||h>57343)&&(a=h));break;case 4:u=t[n+1],l=t[n+2],c=t[n+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(h=(15&o)<<18|(63&u)<<12|(63&l)<<6|63&c,h>65535&&h<1114112&&(a=h))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,i.push(a>>>10&1023|55296),a=56320|1023&a),i.push(a),n+=s}return L(i)}function L(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var r="",i=0;ii)&&(r=i);for(var n="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,r,i,n,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}function B(t,e,r,i){e<0&&(e=65535+e+1);for(var n=0,o=Math.min(t.length-r,2);n>>8*(i?n:1-n)}function j(t,e,r,i){e<0&&(e=4294967295+e+1);for(var n=0,o=Math.min(t.length-r,4);n>>8*(i?n:3-n)&255}function F(t,e,r,i,n,o){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,i,n){return n||F(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(t,e,r,i,23,4),r+4}function V(t,e,r,i,n){return n||F(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(t,e,r,i,52,8),r+8}function N(t){if(t=q(t).replace(et,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function q(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function Z(t){return t<16?"0"+t.toString(16):t.toString(16)}function G(t,e){e=e||1/0;for(var r,i=t.length,n=null,o=[],a=0;a55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(e-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,n=r%256,o.push(n),o.push(i);return o}function Y(t){return K.toByteArray(N(t))}function H(t,e,r,i){for(var n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function J(t){return t!==t}/*! +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 19); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = parseLocation; +//parse-location.js + +//text = `POINT(lon lat)` +function parseLocation(text) { + var coords = /POINT\((.*)\)/.exec(text); + var parsedLongitude = coords[1].split(' ')[0]; + var parsedLatitude = coords[1].split(' ')[1]; + + return { 'latitude': parsedLatitude, 'longitude': parsedLongitude }; +} + +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse_location__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__select_place__ = __webpack_require__(4); +/* harmony export (immutable) */ __webpack_exports__["a"] = addMap; +function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } + +//mapbox-utils.js + + + + +__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw'; + +//define some functions to be used in the default function. +var titlecase = function titlecase(string) { + return string.split('-').map(function (_ref) { + var _ref2 = _toArray(_ref), + first = _ref2[0], + rest = _ref2.slice(1); + + return first.toUpperCase() + rest.join('').toLowerCase(); + }).join(' '); +}; + +var addMapTypeOption = function addMapTypeOption(map, menu, option) { + var checked = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + var input = document.createElement('input'); + input.setAttribute('id', option); + input.setAttribute('type', 'radio'); + input.setAttribute('name', 'toggle'); + input.setAttribute('value', option); + if (checked == true) { + input.setAttribute('checked', 'checked'); + } + input.addEventListener('click', function () { + map.setStyle('mapbox://styles/mapbox/' + option + '-v9'); + }); + var label = document.createElement('label'); + label.setAttribute('for', option); + label.appendChild(document.createTextNode(titlecase(option))); + menu.appendChild(input); + menu.appendChild(label); +}; + +var makeMapMenu = function makeMapMenu(map) { + var mapMenu = document.createElement('div'); + mapMenu.classList.add('map-menu'); + addMapTypeOption(map, mapMenu, 'streets', true); + addMapTypeOption(map, mapMenu, 'satellite-streets'); + return mapMenu; +}; + +//the main function +function addMap(div) { + var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var places = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var dataLatitude = div.dataset.latitude; + var dataLongitude = div.dataset.longitude; + var dataId = div.dataset.id; + var data = window['geojson' + dataId]; + if (data == null) { + data = { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [dataLongitude, dataLatitude] + }, + 'properties': { + 'title': 'Current Location', + 'icon': 'circle-stroked', + 'uri': 'current-location' + } + }] + }; + } + if (places != null) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = places[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var place = _step.value; + + var placeLongitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).longitude; + var placeLatitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).latitude; + data.features.push({ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [placeLongitude, placeLatitude] + }, + 'properties': { + 'title': place.name, + 'icon': 'circle', + 'uri': place.slug + } + }); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + if (position != null) { + dataLongitude = position.coords.longitude; + dataLatitude = position.coords.latitude; + } + var map = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.Map({ + container: div, + style: 'mapbox://styles/mapbox/streets-v9', + center: [dataLongitude, dataLatitude], + zoom: 15 + }); + if (position == null) { + map.scrollZoom.disable(); + } + map.addControl(new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.NavigationControl()); + div.appendChild(makeMapMenu(map)); + map.on('load', function () { + map.addSource('points', { + 'type': 'geojson', + 'data': data + }); + map.addLayer({ + 'id': 'points', + 'interactive': true, + 'type': 'symbol', + 'source': 'points', + 'layout': { + 'icon-image': '{icon}-15', + 'text-field': '{title}', + 'text-offset': [0, 1] + } + }); + }); + if (position != null) { + map.on('click', function (e) { + var features = map.queryRenderedFeatures(e.point, { + layer: ['points'] + }); + // if there are features within the given radius of the click event, + // fly to the location of the click event + if (features.length) { + // Get coordinates from the symbol and center the map on those coordinates + map.flyTo({ center: features[0].geometry.coordinates }); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__select_place__["a" /* default */])(features[0].properties.uri); + } + }); + } + if (data.features && data.features.length > 1) { + var bounds = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.LngLatBounds(); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = data.features[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var feature = _step2.value; + + bounds.extend(feature.geometry.coordinates); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + map.fitBounds(bounds, { padding: 65 }); + } + + return map; +} + +/***/ }), +/* 3 */, +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = selectPlaceInForm; +//select-place.js + +function selectPlaceInForm(uri) { + if (document.querySelector('select')) { + if (uri == 'current-location') { + document.querySelector('select [id="option-coords"]').selected = true; + } else { + document.querySelector('select [value="' + uri + '"]').selected = true; + } + } +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return b64.length * 3 / 4 - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr(len * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var K=r(5),Q=r(7),$=r(8);e.Buffer=a,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),e.kMaxLength=n(),a.poolSize=8192,a._augment=function(t){return t.__proto__=a.prototype,t},a.from=function(t,e,r){return s(null,t,e,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(t,e,r){return l(null,t,e,r)},a.allocUnsafe=function(t){return c(null,t)},a.allocUnsafeSlow=function(t){return c(null,t)},a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,i=e.length,n=0,o=Math.min(r,i);n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},a.prototype.compare=function(t,e,r,i,n){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),e<0||r>t.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&e>=r)return 0;if(i>=n)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,i>>>=0,n>>>=0,this===t)return 0;for(var o=n-i,s=r-e,u=Math.min(o,s),l=this.slice(i,n),c=t.slice(e,r),h=0;hn)&&(r=n),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return w(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":return T(this,t,e,r);case"latin1":case"binary":return S(this,t,e,r);case"base64":return z(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e0&&(n*=256);)i+=this[t+--e]*n;return i},a.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var i=this[t],n=1,o=0;++o=n&&(i-=Math.pow(2,8*e)),i},a.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var i=e,n=1,o=this[t+--i];i>0&&(n*=256);)o+=this[t+--i]*n;return n*=128,o>=n&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,i){if(t=+t,e|=0,r|=0,!i){var n=Math.pow(2,8*r)-1;O(this,t,e,r,n,0)}var o=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+o]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);O(this,t,e,r,n-1,-n)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);O(this,t,e,r,n-1,-n)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return V(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return V(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,i){if(r||(r=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e=0;--n)t[n+e]=this[n+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var o;if("number"==typeof t)for(o=e;o>1,c=-7,h=r?n-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=i;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,i),o-=l}return(f?-1:1)*a*Math.pow(2,o-i)},e.write=function(t,e,r,i,n,o){var a,s,u,l=8*o-n-1,c=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,d=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,n),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,n),a=0));n>=8;t[r+f]=255&s,f+=d,s/=256,n-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){(function(e,r){var i,i;!function(e){t.exports=e()}(function(){var t;return function t(e,r,n){function o(s,u){if(!r[s]){if(!e[s]){var l="function"==typeof i&&i;if(!u&&l)return i(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var h=r[s]={exports:{}};e[s][0].call(h.exports,function(t){var r=e[s][1][t];return o(r?r:t)},h,h.exports,t,e,r,n)}return r[s].exports}for(var a="function"==typeof i&&i,s=0;sa.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},a.prototype.prepareSegment2=function(t){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+t>a.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},a.prototype.populatePaintArrays=function(t){var e=this;for(var r in this.layerData){var i=e.layerData[r];0!==i.paintVertexArray.bytesPerElement&&i.programConfiguration.populatePaintArray(i.layer,i.paintVertexArray,e.layoutVertexArray.length,e.globalProperties,t)}},a.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},a.prototype.serialize=function(t){return{layoutVertexArray:this.layoutVertexArray.serialize(t),elementArray:this.elementArray&&this.elementArray.serialize(t),elementArray2:this.elementArray2&&this.elementArray2.serialize(t),paintVertexArrays:i(this.layerData,t),segments:this.segments,segments2:this.segments2}},a.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,e.exports=a},{"./program_configuration":15}],2:[function(t,e,r){"use strict";var i=t("./array_group"),n=t("./buffer_group"),o=t("../util/util"),a=function(t,e){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,t.arrays?this.buffers=new n(e,t.layers,t.zoom,t.arrays):this.arrays=new i(e,t.layers,t.zoom)};a.prototype.populate=function(t,e){for(var r=this,i=0,n=t;i=u||p<0||p>=u)){var f=e.prepareSegment(4),d=f.vertexLength;i(e.layoutVertexArray,h,p,-1,-1),i(e.layoutVertexArray,h,p,1,-1),i(e.layoutVertexArray,h,p,1,1),i(e.layoutVertexArray,h,p,-1,1),e.elementArray.emplaceBack(d,d+1,d+2),e.elementArray.emplaceBack(d,d+3,d+2),f.vertexLength+=4,f.primitiveLength+=2}}e.populatePaintArrays(t.properties)},e}(n);e.exports=c},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],4:[function(t,e,r){"use strict";var i=t("../bucket"),n=t("../vertex_array_type"),o=t("../element_array_type"),a=t("../load_geometry"),s=t("earcut"),u=t("../../util/classify_rings"),l=500,c={layoutVertexArrayType:n([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:o(3),elementArrayType2:o(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},h=function(t){function e(e){t.call(this,e,c)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,i=u(a(t),l);rl)||t.y===e.y&&(t.y<0||t.y>l)}var o=t("../bucket"),a=t("../vertex_array_type"),s=t("../element_array_type"),u=t("../load_geometry"),l=t("../extent"),c=t("earcut"),h=t("../../util/classify_rings"),p=500,f={layoutVertexArrayType:a([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:s(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},d=Math.pow(2,13),m=function(t){function e(e){t.call(this,e,f)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,o=h(u(t),p);r=1){var S=b[E-1];if(!n(T,S)){var z=T.sub(S)._perp()._unit();i(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,0,w),i(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,1,w),w+=S.dist(T),i(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,0,w),i(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,1,w);var A=m.vertexLength;e.elementArray.emplaceBack(A,A+1,A+2),e.elementArray.emplaceBack(A+1,A+2,A+3),m.vertexLength+=4,m.primitiveLength+=2}}y.push(T.x),y.push(T.y)}}}for(var M=c(y,v),P=0;P>6)}var n=t("../bucket"),o=t("../vertex_array_type"),a=t("../element_array_type"),s=t("../load_geometry"),u=t("../extent"),l=63,c=Math.cos(37.5*(Math.PI/180)),h=15,p=15,f=.5,d=Math.pow(2,p-1)/f,m={layoutVertexArrayType:o([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:a()},y=function(t){function e(e){t.call(this,e,m)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this,r=this.layers[0].layout,i=r["line-join"],n=r["line-cap"],o=r["line-miter-limit"],a=r["line-round-limit"],u=0,l=s(t,p);u2&&t[s-1].equals(t[s-2]);)s--;if(!(t.length<2)){"bevel"===r&&(n=1.05);var l=h*(u/(512*this.overscaling)),p=t[0],f=t[s-1],d=p.equals(f),m=this.arrays,y=m.prepareSegment(10*s);if(2!==s||!d){this.distance=0;var v,g,_,x,b,w,E,T=i,S=d?"butt":i,z=!0;this.e1=this.e2=this.e3=-1,d&&(v=t[s-2],b=p.sub(v)._unit()._perp());for(var A=0;A0){var C=v.dist(g);if(C>2*l){var k=v.sub(v.sub(g)._mult(l/C)._round());a.distance+=k.dist(g),a.addCurrentVertex(k,a.distance,x.mult(1),0,0,!1,y),g=k}}var R=g&&_,D=R?r:_?T:S;if(R&&"round"===D&&(Ln&&(D="bevel"),"bevel"===D&&(L>2&&(D="flipbevel"),L100)M=b.clone().mult(-1);else{var O=x.x*b.y-x.y*b.x>0?-1:1,B=L*x.add(b).mag()/x.sub(b).mag();M._perp()._mult(B*O)}a.addCurrentVertex(v,a.distance,M,0,0,!1,y),a.addCurrentVertex(v,a.distance,M.mult(-1),0,0,!1,y)}else if("bevel"===D||"fakeround"===D){var j=x.x*b.y-x.y*b.x>0,F=-Math.sqrt(L*L-1);if(j?(E=0,w=F):(w=0,E=F),z||a.addCurrentVertex(v,a.distance,x,w,E,!1,y),"fakeround"===D){for(var U,V=Math.floor(8*(.5-(P-.5))),N=0;N=0;q--)U=x.mult((q+1)/(V+1))._add(b)._unit(),a.addPieSliceVertex(v,a.distance,U,j,y)}_&&a.addCurrentVertex(v,a.distance,b,-w,-E,!1,y)}else"butt"===D?(z||a.addCurrentVertex(v,a.distance,x,0,0,!1,y),_&&a.addCurrentVertex(v,a.distance,b,0,0,!1,y)):"square"===D?(z||(a.addCurrentVertex(v,a.distance,x,1,1,!1,y),a.e1=a.e2=-1),_&&a.addCurrentVertex(v,a.distance,b,-1,-1,!1,y)):"round"===D&&(z||(a.addCurrentVertex(v,a.distance,x,0,0,!1,y),a.addCurrentVertex(v,a.distance,x,1,1,!0,y),a.e1=a.e2=-1),_&&(a.addCurrentVertex(v,a.distance,b,-1,-1,!0,y),a.addCurrentVertex(v,a.distance,b,0,0,!1,y)));if(I&&A2*l){var G=v.add(_.sub(v)._mult(l/Z)._round());a.distance+=G.dist(v),a.addCurrentVertex(G,a.distance,b.mult(1),0,0,!1,y),v=G}}z=!1}m.populatePaintArrays(e)}}},e.prototype.addCurrentVertex=function(t,e,r,n,o,a,s){var u,l=a?1:0,c=this.arrays,h=c.layoutVertexArray,p=c.elementArray;u=r.clone(),n&&u._sub(r.perp()._mult(n)),i(h,t,u,l,0,n,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,u=r.mult(-1),o&&u._sub(r.perp()._mult(o)),i(h,t,u,l,1,-o,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>d/2&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,n,o,a,s))},e.prototype.addPieSliceVertex=function(t,e,r,n,o){var a=n?1:0;r=r.mult(n?-1:1);var s=this.arrays,u=s.layoutVertexArray,l=s.elementArray;i(u,t,r,0,a,0,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(l.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),n?this.e2=this.e3:this.e1=this.e3},e}(n);e.exports=y},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],7:[function(t,e,r){"use strict";function i(t,e,r,i,n,o,a,s,u,l,c){t.emplaceBack(e,r,Math.round(64*i),Math.round(64*n),o/4,a/4,10*(l||0),c,10*(s||0),10*Math.min(u||25,25))}function n(t,e,r,i,n){return t.emplaceBack(e.x,e.y,Math.round(r.x),Math.round(r.y),10*i,10*n)}var o=t("point-geometry"),a=t("../array_group"),s=t("../buffer_group"),u=t("../vertex_array_type"),l=t("../element_array_type"),c=t("../extent"),h=t("../../symbol/anchor"),p=t("../../symbol/get_anchors"),f=t("../../util/token"),d=t("../../symbol/quads"),m=t("../../symbol/shaping"),y=t("../../symbol/resolve_text"),v=t("../../symbol/mergelines"),g=t("../../symbol/clip_line"),_=t("../../util/util"),x=t("../../util/script_detection"),b=t("../load_geometry"),w=t("../../symbol/collision_feature"),E=t("../../util/find_pole_of_inaccessibility"),T=t("../../util/classify_rings"),S=t("vector-tile").VectorTileFeature,z=t("../../source/rtl_text_plugin"),A=m.shapeText,M=m.shapeIcon,P=m.WritingMode,L=d.getGlyphQuads,I=d.getIconQuads,C=l(),k=u([{name:"a_pos",components:2,type:"Int16"},{name:"a_offset",components:2,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),R={glyph:{layoutVertexArrayType:k,elementArrayType:C},icon:{layoutVertexArrayType:k,elementArrayType:C},collisionBox:{layoutVertexArrayType:u([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:l(2)}},D=function(t){var e=this;if(this.collisionBoxArray=t.collisionBoxArray,this.symbolQuadsArray=t.symbolQuadsArray,this.symbolInstancesArray=t.symbolInstancesArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,this.sdfIcons=t.sdfIcons,this.iconsNeedLinear=t.iconsNeedLinear,this.adjustedTextSize=t.adjustedTextSize,this.adjustedIconSize=t.adjustedIconSize,this.fontstack=t.fontstack,t.arrays){this.buffers={};for(var r in t.arrays)t.arrays[r]&&(e.buffers[r]=new s(R[r],t.layers,t.zoom,t.arrays[r]))}};D.prototype.populate=function(t,e){var r=this,i=this.layers[0].layout,n=i["text-field"],o=i["text-font"],a=i["icon-image"],s=n&&o,u=a;if(this.features=[],s||u){for(var l=e.iconDependencies,c=e.glyphDependencies,h=c[o]=c[o]||{},p=0;pc||o.y<0||o.y>c);if(!m||a){var s=a||w;i.addSymbolInstance(o,n,e,r,i.layers[0],s,i.symbolInstancesArray.length,i.collisionBoxArray,t.index,t.sourceLayerIndex,i.index,u,y,x,f,v,b,{zoom:i.zoom},t.properties)}};if("line"===S)for(var M=0,L=g(t.geometry,0,0,c,c);M=0;o--)if(r.dist(n[o])7*Math.PI/4)continue}else if(o&&a&&y<=3*Math.PI/4||y>5*Math.PI/4)continue}else if(o&&a&&(y<=Math.PI/2||y>3*Math.PI/2))continue;var v=m.tl,g=m.tr,_=m.bl,x=m.br,b=m.tex,w=m.anchorPoint,E=Math.max(p+Math.log(m.minScale)/Math.LN2,f),T=Math.min(p+Math.log(m.maxScale)/Math.LN2,25);if(!(T<=E)){E===f&&(E=0);var S=Math.round(m.glyphAngle/(2*Math.PI)*256),z=t.prepareSegment(4),A=z.vertexLength;i(h,w.x,w.y,v.x,v.y,b.x,b.y,E,T,f,S),i(h,w.x,w.y,g.x,g.y,b.x+b.w,b.y,E,T,f,S),i(h,w.x,w.y,_.x,_.y,b.x,b.y+b.h,E,T,f,S),i(h,w.x,w.y,x.x,x.y,b.x+b.w,b.y+b.h,E,T,f,S),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),z.vertexLength+=4,z.primitiveLength+=2}}},D.prototype.addToDebugBuffers=function(t){for(var e=this,r=this.arrays.collisionBox,i=r.layoutVertexArray,a=r.elementArray,s=-t.angle,u=t.yStretch,l=this.symbolInstancesStartIndex;lD.MAX_QUADS&&_.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),k>D.MAX_QUADS&&_.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var V=(r[P.vertical]?P.vertical:0)|(r[P.horizontal]?P.horizontal:0);return this.symbolInstancesArray.emplaceBack(R,O,F,U,M,k,B,j,t.x,t.y,a,V)},D.prototype.addSymbolQuad=function(t){return this.symbolQuadsArray.emplaceBack(t.anchorPoint.x,t.anchorPoint.y,t.tl.x,t.tl.y,t.tr.x,t.tr.y,t.bl.x,t.bl.y,t.br.x,t.br.y,t.tex.h,t.tex.w,t.tex.x,t.tex.y,t.anchorAngle,t.glyphAngle,t.maxScale,t.minScale,t.writingMode)},D.MAX_QUADS=65535,e.exports=D},{"../../source/rtl_text_plugin":49,"../../symbol/anchor":75,"../../symbol/clip_line":77,"../../symbol/collision_feature":79,"../../symbol/get_anchors":81,"../../symbol/mergelines":84,"../../symbol/quads":85,"../../symbol/resolve_text":86,"../../symbol/shaping":87,"../../util/classify_rings":113,"../../util/find_pole_of_inaccessibility":119,"../../util/script_detection":126,"../../util/token":128,"../../util/util":129,"../array_group":1,"../buffer_group":9,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17,"point-geometry":197,"vector-tile":206}],8:[function(t,e,r){"use strict";var i={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},n=function(t,e,r){this.arrayBuffer=t.arrayBuffer,this.length=t.length,this.attributes=e.members,this.itemSize=e.bytesPerElement,this.type=r,this.arrayType=e};n.fromStructArray=function(t,e){return new n(t.serialize(),t.constructor.serialize(),e)},n.prototype.bind=function(t){var e=t[this.type];this.buffer?t.bindBuffer(e,this.buffer):(this.gl=t,this.buffer=t.createBuffer(),t.bindBuffer(e,this.buffer),t.bufferData(e,this.arrayBuffer,t.STATIC_DRAW),this.arrayBuffer=null)},n.prototype.setVertexAttribPointers=function(t,e,r){for(var n=this,o=0;o0?t["line-gap-width"]+2*t["line-width"]:t["line-width"]}function a(t,e,r,i,n){if(!e[0]&&!e[1])return t;e=u.convert(e),"viewport"===r&&e._rotate(-i);for(var o=[],a=0;ar.max||h.yr.max)&&n.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return s}},{"../util/util":129,"./extent":11}],14:[function(t,e,r){"use strict";var i=t("../util/struct_array"),n=i({members:[{name:"a_pos",type:"Int16",components:2}]});e.exports=n},{"../util/struct_array":127}],15:[function(t,e,r){"use strict";function i(t,e,r,i){if(!t.zoomStops)return e.getPaintValue(t.property,r,i);var n=t.zoomStops.map(function(n){return e.getPaintValue(t.property,a.extend({},r,{zoom:n}),i)});return 1===n.length?n[0]:n}function n(t,e){var r=t.property.replace(e.type+"-","").replace(/-/g,"_"),i="color"===e._paintSpecifications[t.property].type;return a.extend({name:"a_"+r,components:i?4:1,multiplier:i?255:1},t)}var o=t("./vertex_array_type"),a=t("../util/util"),s=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};s.createDynamic=function(t,e,r){for(var i=new s,a=0,u=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};n.prototype.wrap=function(){return new n(i(this.lng,-180,180),this.lat)},n.prototype.toArray=function(){return[this.lng,this.lat]},n.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},n.convert=function(t){if(t instanceof n)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new n(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new n(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},e.exports=n},{"../util/util":129}],20:[function(t,e,r){"use strict";var i=t("./lng_lat"),n=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};n.prototype.setNorthEast=function(t){return this._ne=i.convert(t),this},n.prototype.setSouthWest=function(t){return this._sw=i.convert(t),this},n.prototype.extend=function(t){var e,r,o=this._sw,a=this._ne;if(t instanceof i)e=t,r=t;else{if(!(t instanceof n))return Array.isArray(t)?t.every(Array.isArray)?this.extend(n.convert(t)):this.extend(i.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return o||a?(o.lng=Math.min(e.lng,o.lng),o.lat=Math.min(e.lat,o.lat),a.lng=Math.max(r.lng,a.lng),a.lat=Math.max(r.lat,a.lat)):(this._sw=new i(e.lng,e.lat),this._ne=new i(r.lng,r.lat)),this},n.prototype.getCenter=function(){return new i((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},n.prototype.getSouthWest=function(){return this._sw},n.prototype.getNorthEast=function(){return this._ne},n.prototype.getNorthWest=function(){return new i(this.getWest(),this.getNorth())},n.prototype.getSouthEast=function(){return new i(this.getEast(),this.getSouth())},n.prototype.getWest=function(){return this._sw.lng},n.prototype.getSouth=function(){return this._sw.lat},n.prototype.getEast=function(){return this._ne.lng},n.prototype.getNorth=function(){return this._ne.lat},n.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},n.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},n.convert=function(t){return!t||t instanceof n?t:new n(t)},e.exports=n},{"./lng_lat":19}],21:[function(t,e,r){"use strict";var i=t("./lng_lat"),n=t("point-geometry"),o=t("./coordinate"),a=t("../util/util"),s=t("../util/interpolate"),u=t("../source/tile_coord"),l=t("../data/extent"),c=t("@mapbox/gl-matrix"),h=c.vec4,p=c.mat4,f=c.mat2,d=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new i(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},m={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};m.minZoom.get=function(){return this._minZoom},m.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},m.maxZoom.get=function(){return this._maxZoom},m.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},m.worldSize.get=function(){return this.tileSize*this.scale},m.centerPoint.get=function(){return this.size._div(2)},m.size.get=function(){return new n(this.width,this.height)},m.bearing.get=function(){return-this.angle/Math.PI*180},m.bearing.set=function(t){var e=-a.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=f.create(),f.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},m.pitch.get=function(){return this._pitch/Math.PI*180},m.pitch.set=function(t){var e=a.clamp(t,0,60)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},m.fov.get=function(){return this._fov/Math.PI*180},m.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},m.zoom.get=function(){return this._zoom},m.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},m.center.get=function(){return this._center},m.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},d.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},d.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),r=e;if(et.maxzoom&&(e=t.maxzoom);var i=this.pointCoordinate(this.centerPoint,e),o=new n(i.column-.5,i.row-.5),a=[this.pointCoordinate(new n(0,0),e),this.pointCoordinate(new n(this.width,0),e),this.pointCoordinate(new n(this.width,this.height),e),this.pointCoordinate(new n(0,this.height),e)];return u.cover(e,a,t.reparseOverscaled?r:e,this._renderWorldCopies).sort(function(t,e){return o.dist(t)-o.dist(e)})},d.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},m.unmodified.get=function(){return this._unmodified},d.prototype.zoomScale=function(t){return Math.pow(2,t)},d.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},d.prototype.project=function(t){return new n(this.lngX(t.lng),this.latY(t.lat))},d.prototype.unproject=function(t){return new i(this.xLng(t.x),this.yLat(t.y))},m.x.get=function(){return this.lngX(this.center.lng)},m.y.get=function(){return this.latY(this.center.lat)},m.point.get=function(){return new n(this.x,this.y)},d.prototype.lngX=function(t){return(180+t)*this.worldSize/360},d.prototype.latY=function(t){var e=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-e)*this.worldSize/360},d.prototype.xLng=function(t){return 360*t/this.worldSize-180},d.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},d.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r))},d.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},d.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},d.prototype.locationCoordinate=function(t){return new o(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},d.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new i(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},d.prototype.pointCoordinate=function(t,e){void 0===e&&(e=this.tileZoom);var r=0,i=[t.x,t.y,0,1],n=[t.x,t.y,1,1];h.transformMat4(i,i,this.pixelMatrixInverse),h.transformMat4(n,n,this.pixelMatrixInverse);var a=i[3],u=n[3],l=i[0]/a,c=n[0]/u,p=i[1]/a,f=n[1]/u,d=i[2]/a,m=n[2]/u,y=d===m?0:(r-d)/(m-d);return new o(s(l,c,y)/this.tileSize,s(p,f,y)/this.tileSize,this.zoom)._zoomTo(e)},d.prototype.coordinatePoint=function(t){var e=t.zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return h.transformMat4(r,r,this.pixelMatrix),new n(r[0]/r[3],r[1]/r[3])},d.prototype.calculatePosMatrix=function(t,e){var r=t.toCoordinate(e),i=this.worldSize/this.zoomScale(r.zoom),n=p.identity(new Float64Array(16));return p.translate(n,n,[r.column*i,r.row*i,0]),p.scale(n,n,[i/l,i/l,1]),p.multiply(n,this.projMatrix,n),new Float32Array(n)},d.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,r,i,o,a,s,u,l=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),e=this.latY(this.latRange[0]),o=e-te&&(u=e-f)}if(this.lngRange){var d=this.x,m=l.x/2;d-mi&&(s=i-m)}void 0===s&&void 0===u||(this.center=this.unproject(new n(void 0!==s?s:this.x,void 0!==u?u:this.y))),this._unmodified=c,this._constraining=!1}},d.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),i=Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance,n=1.01*i,o=new Float64Array(16);p.perspective(o,this._fov,this.width/this.height,1,n),p.scale(o,o,[1,-1,1]),p.translate(o,o,[0,0,-this.cameraToCenterDistance]),p.rotateX(o,o,this._pitch),p.rotateZ(o,o,this.angle),p.translate(o,o,[-this.x,-this.y,0]);var a=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(p.scale(o,o,[1,1,a,1]),this.projMatrix=o,o=p.create(),p.scale(o,o,[this.width/2,-this.height/2,1]),p.translate(o,o,[1,-1,0]),this.pixelMatrix=p.multiply(new Float64Array(16),o,this.projMatrix),o=p.invert(new Float64Array(16),this.pixelMatrix),!o)throw new Error("failed to invert matrix");this.pixelMatrixInverse=o}},Object.defineProperties(d.prototype,m),e.exports=d},{"../data/extent":11,"../source/tile_coord":53,"../util/interpolate":121,"../util/util":129,"./coordinate":18,"./lng_lat":19,"@mapbox/gl-matrix":133,"point-geometry":197}],22:[function(t,e,r){"use strict";var i,n=t("./util/worker_pool");e.exports=function(){return i||(i=new n),i}},{"./util/worker_pool":132}],23:[function(t,e,r){"use strict";var i={" ":[16,[]],"!":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'"':[16,[4,21,4,14,-1,-1,12,21,12,14]],"#":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],"%":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],"&":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],"'":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],"(":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],")":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],"*":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],"+":[26,[13,18,13,0,-1,-1,4,9,22,9]],",":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"-":[26,[4,9,22,9]],".":[10,[5,2,4,1,5,0,6,1,5,2]],"/":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],":":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],";":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"<":[24,[20,18,4,9,20,0]],"=":[26,[4,12,22,12,-1,-1,4,6,22,6]],">":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]], -C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]};e.exports=function(t,e,r,n){n=n||1;var o,a,s,u,l,c,h,p,f=[];for(o=0,a=t.length;o0?1/(1-t):1+t}function s(t){return t>0?1-1/(1.001-t):-t}function u(t,e,r,i){var n=r.paint["raster-fade-duration"];if(t.sourceCache&&n>0){var o=Date.now(),a=(o-t.timeAdded)/n,s=e?(o-e.timeAdded)/n:-1,u=t.sourceCache.getSource(),c=i.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!e||Math.abs(e.coord.z-c)>Math.abs(t.coord.z-c),p=l.clamp(h?a:1-s,0,1);return e?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var l=t("../util/util");e.exports=i},{"../util/util":129}],33:[function(t,e,r){"use strict";function i(t,e,r,i){if(!t.isOpaquePass){var o=!(r.layout["text-allow-overlap"]||r.layout["icon-allow-overlap"]||r.layout["text-ignore-placement"]||r.layout["icon-ignore-placement"]),a=t.gl;o?a.disable(a.STENCIL_TEST):a.enable(a.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),n(t,e,r,i,!1,r.paint["icon-translate"],r.paint["icon-translate-anchor"],r.layout["icon-rotation-alignment"],r.layout["icon-rotation-alignment"],r.layout["icon-size"],r.paint["icon-halo-width"],r.paint["icon-halo-color"],r.paint["icon-halo-blur"],r.paint["icon-opacity"],r.paint["icon-color"]),n(t,e,r,i,!0,r.paint["text-translate"],r.paint["text-translate-anchor"],r.layout["text-rotation-alignment"],r.layout["text-pitch-alignment"],r.layout["text-size"],r.paint["text-halo-width"],r.paint["text-halo-color"],r.paint["text-halo-blur"],r.paint["text-opacity"],r.paint["text-color"]),e.map.showCollisionBoxes&&l(t,e,r,i)}}function n(t,e,r,i,n,s,u,l,c,h,p,f,d,m,y){if(n||!t.style.sprite||t.style.sprite.loaded()){var v=t.gl,g="map"===l,_="map"===c,x=_;x?v.enable(v.DEPTH_TEST):v.disable(v.DEPTH_TEST);for(var b,w,E=0,T=i;Ethis.previousZoom;n--)i.changeTimes[n]=t,i.changeOpacities[n]=i.opacities[n];for(n=0;n<256;n++){var o=t-i.changeTimes[n],a=255*(r?o/r:1);n<=e?i.opacities[n]=i.changeOpacities[n]+a:i.opacities[n]=i.changeOpacities[n]-a}this.changed=!0,this.previousZoom=e},i.prototype.bind=function(t){this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.changed&&(t.texSubImage2D(t.TEXTURE_2D,0,0,0,256,1,t.ALPHA,t.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,256,1,0,t.ALPHA,t.UNSIGNED_BYTE,this.array))},e.exports=i},{}],35:[function(t,e,r){"use strict";var i=t("../util/util"),n=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};n.prototype.setSprite=function(t){this.sprite=t},n.prototype.getDash=function(t,e){var r=t.join(",")+e;return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},n.prototype.addDash=function(t,e){var r=this,n=e?7:0,o=2*n+1,a=128;if(this.nextRow+o>this.height)return i.warnOnce("LineAtlas out of space"),null;for(var s=0,u=0;u0?e.pop():null},v.prototype.getViewportTexture=function(t,e){var r=this.reusableTextures.viewport;if(r)return r.width===t&&r.height===e?r:(this.gl.deleteTexture(r),void(this.reusableTextures.viewport=null))},v.prototype.lineWidth=function(t){this.gl.lineWidth(l.clamp(t,this.lineWidthRange[0],this.lineWidthRange[1]))},v.prototype.showOverdrawInspector=function(t){if(t||this._showOverdrawInspector){this._showOverdrawInspector=t;var e=this.gl;if(t){e.blendFunc(e.CONSTANT_COLOR,e.ONE);var r=8,i=1/r;e.blendColor(i,i,i,0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)}else e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA)}},v.prototype.createProgram=function(t,e){var r=this.gl,n=r.createProgram(),o=m[t],a="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+i.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(a+="#define OVERDRAW_INSPECTOR;\n");var s=r.createShader(r.FRAGMENT_SHADER);r.shaderSource(s,e.applyPragmas(a+m.prelude.fragmentSource+o.fragmentSource,"fragment")),r.compileShader(s),r.attachShader(n,s);var u=r.createShader(r.VERTEX_SHADER);r.shaderSource(u,e.applyPragmas(a+m.prelude.vertexSource+o.vertexSource,"vertex")),r.compileShader(u),r.attachShader(n,u),r.linkProgram(n);for(var l=r.getProgramParameter(n,r.ACTIVE_ATTRIBUTES),c={program:n,numAttributes:l},h=0;h>16,u>>16),n.uniform2f(r.u_pixel_coord_lower,65535&s,65535&u)}},{"../source/pixels_to_tile_units":46}],38:[function(t,e,r){"use strict";t("path");e.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\nuniform lowp vec4 u_outline_color;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n#ifdef OUTLINE\n color = u_outline_color;\n#endif\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float gapwidth\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n", -vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n"},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_opacity;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * u_opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp vec4 u_color;\nuniform lowp float u_opacity;\nuniform lowp float u_buffer;\nuniform lowp float u_gamma;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n lowp float gamma = u_gamma * v_gamma_scale;\n lowp float alpha = smoothstep(u_buffer - gamma, u_buffer + gamma, dist) * fade_alpha;\n\n gl_FragColor = u_color * (alpha * u_opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}},{path:194}],39:[function(t,e,r){"use strict";var i=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};i.prototype.bind=function(t,e,r,i,n,o){void 0===t.extVertexArrayObject&&(t.extVertexArrayObject=t.getExtension("OES_vertex_array_object"));var a=!this.vao||this.boundProgram!==e||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!t.extVertexArrayObject||a?(this.freshBind(t,e,r,i,n,o),this.gl=t):t.extVertexArrayObject.bindVertexArrayOES(this.vao)},i.prototype.freshBind=function(t,e,r,i,n,o){var a,s=e.numAttributes;if(t.extVertexArrayObject)this.vao&&this.destroy(),this.vao=t.extVertexArrayObject.createVertexArrayOES(),t.extVertexArrayObject.bindVertexArrayOES(this.vao),a=0,this.boundProgram=e,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{a=t.currentNumAttributes||0;for(var u=s;uthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,n={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",n,function(i,n){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(n,r.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(r)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(n);e.exports=u},{"../data/extent":11,"../util/evented":118,"../util/util":129,"../util/window":112}],42:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("geojson-rewind"),o=t("./geojson_wrapper"),a=t("vt-pbf"),s=t("supercluster"),u=t("geojson-vt"),l=t("./vector_tile_worker_source"),c=function(t){function e(e,r,i){t.call(this,e,r),i&&(this.loadGeoJSON=i),this._geoJSONIndexes={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.loadVectorData=function(t,e){var r=t.source,i=t.coord;if(!this._geoJSONIndexes[r])return e(null,null);var n=this._geoJSONIndexes[r].getTile(Math.min(i.z,t.maxZoom),i.x,i.y);if(!n)return e(null,null);var s=new o(n.features);s.name="_geojsonTileLayer";var u=a({layers:{_geojsonTileLayer:s}});0===u.byteOffset&&u.byteLength===u.buffer.byteLength||(u=new Uint8Array(u)),s.rawData=u.buffer,e(null,s)},e.prototype.loadData=function(t,e){var r=function(r,i){var o=this;return r?e(r):"object"!=typeof i?e(new Error("Input data is not a valid GeoJSON object.")):(n(i,!0),void this._indexData(i,t,function(r,i){return r?e(r):(o._geoJSONIndexes[t.source]=i,void e(null))}))}.bind(this);this.loadGeoJSON(t,r)},e.prototype.loadGeoJSON=function(t,e){if(t.url)i.getJSON(t.url,e);else{if("string"!=typeof t.data)return e(new Error("Input data is not a valid GeoJSON object."));try{return e(null,JSON.parse(t.data))}catch(t){return e(new Error("Input data is not a valid GeoJSON object."))}}},e.prototype.removeSource=function(t){this._geoJSONIndexes[t.source]&&delete this._geoJSONIndexes[t.source]},e.prototype._indexData=function(t,e,r){try{e.cluster?r(null,s(e.superclusterOptions).load(t.features)):r(null,u(t,e.geojsonVtOptions))}catch(t){return r(t)}},e}(l);e.exports=c},{"../util/ajax":109,"./geojson_wrapper":43,"./vector_tile_worker_source":55,"geojson-rewind":140,"geojson-vt":144,supercluster:201,"vt-pbf":210}],43:[function(t,e,r){"use strict";var i=t("point-geometry"),n=t("vector-tile").VectorTileFeature,o=t("../data/extent"),a=function(t){var e=this;if(this.type=t.type,1===t.type){this.rawGeometry=[];for(var r=0;re)){var s=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(t.z,i._source.maxzoom));if(Math.floor(a.coord.x/s)===t.x&&Math.floor(a.coord.y/s)===t.y)for(r[o]=!0,n=!0;a&&a.coord.z-1>t.z;){var u=a.coord.parent(i._source.maxzoom).id;a=i._tiles[u],a&&a.hasData()&&(delete r[o],r[u]=!0)}}}return n},e.prototype.findLoadedParent=function(t,e,r){for(var i=this,n=t.z-1;n>=e;n--){t=t.parent(i._source.maxzoom);var o=i._tiles[t.id];if(o&&o.hasData())return r[t.id]=!0,o;if(i._cache.has(t.id))return r[t.id]=!0, -i._cache.get(t.id)}},e.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/t.tileSize)+1,r=Math.ceil(t.height/t.tileSize)+1,i=e*r,n=5;this._cache.setMaxSize(Math.floor(i*n))},e.prototype.update=function(t){var r=this;if(this._sourceLoaded){var i,n,a,s;this.updateCacheSize(t);var u=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(t)),c=Math.max(u-e.maxOverzooming,this._source.minzoom),h=Math.max(u+e.maxUnderzooming,this._source.minzoom),f={};this._coveredTiles={};var d;for(d=this.used?this._source.coord?[this._source.coord]:t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(r.findLoadedChildren(n,h,f)&&(f[g]=!0),s=r.findLoadedParent(n,c,m),s&&r.addTile(s.coord))}var _;for(_ in m)f[_]||(r._coveredTiles[_]=!0);for(_ in m)f[_]=!0;var x=p.keysDifference(this._tiles,f);for(i=0;ithis._source.maxzoom?Math.pow(2,i-this._source.maxzoom):1;e=new s(r,this._source.tileSize*n,this._source.maxzoom),this.loadTile(e,this._tileLoaded.bind(this,e,t.id))}return e.uses++,this._tiles[t.id]=e,this._source.fire("dataloading",{tile:e,coord:e.coord,dataType:"tile"}),e},e.prototype._setTileReloadTimer=function(t,e){var r=this,i=e.getExpiry();i&&(this._timers[t]=setTimeout(function(){r.reloadTile(t,"expired"),r._timers[t]=void 0},i-(new Date).getTime()))},e.prototype._setCacheInvalidationTimer=function(t,e){var r=this,i=e.getExpiry();i&&(this._cacheTimers[t]=setTimeout(function(){r._cache.remove(t),r._cacheTimers[t]=void 0},i-(new Date).getTime()))},e.prototype.removeTile=function(t){var e=this._tiles[t];if(e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),this._timers[t]=void 0),this._source.fire("data",{tile:e,coord:e.coord,dataType:"tile"}),!(e.uses>0)))if(e.hasData()){var r=e.coord.wrapped().id;this._cache.add(r,e),this._setCacheInvalidationTimer(r,e)}else e.aborted=!0,this.abortTile(e),this.unloadTile(e)},e.prototype.clearTiles=function(){var t=this;for(var e in this._tiles)t.removeTile(e);this._cache.reset()},e.prototype.tilesIn=function(t){for(var e=this,r={},n=this.getIds(),o=1/0,a=1/0,s=-(1/0),u=-(1/0),c=t[0].zoom,p=0;p=0&&g[1].y>=0){for(var _=[],x=0;xe.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function n(t,e,r,i,n){var o=Math.max(r,Math.floor(e.y0)),a=Math.min(i,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx0,h=e.dx<0,p=o;pc.dy&&(u=l,l=c,c=u),l.dy>h.dy&&(u=l,l=h,h=u),c.dy>h.dy&&(u=c,c=h,h=u),l.dy&&n(h,l,o,a,s),c.dy&&n(h,c,o,a,s)}function a(t,e,r){for(var i,n="",o=t;o>0;o--)i=1<t?new l(this.z-1,this.x,this.y,this.w):new l(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},l.prototype.wrapped=function(){return new l(this.z,this.x,this.y,0)},l.prototype.children=function(t){if(this.z>=t)return[new l(this.z+1,this.x,this.y,this.w)];var e=this.z+1,r=2*this.x,i=2*this.y;return[new l(e,r,i,this.w),new l(e,r+1,i,this.w),new l(e,r,i+1,this.w),new l(e,r+1,i+1,this.w)]},l.cover=function(t,e,r,i){function n(t,e,n){var o,u,c,h;if(n>=0&&n<=a)for(o=t;othis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,n={url:a(t.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:t.uid,coord:t.coord,zoom:t.coord.z,tileSize:this.tileSize*i,type:this.type,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID&&"expired"!==t.state?"loading"===t.state?t.reloadCallback=e:this.dispatcher.send("reloadTile",n,r.bind(this),t.workerID):t.workerID=this.dispatcher.send("loadTile",n,r.bind(this))},e.prototype.abortTile=function(t){this.dispatcher.send("abortTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e}(i);e.exports=s},{"../util/evented":118,"../util/mapbox":125,"../util/util":129,"./load_tilejson":45}],55:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("vector-tile"),o=t("pbf"),a=t("./worker_tile"),s=t("../util/util"),u=function(t,e,r){this.actor=t,this.layerIndex=e,r&&(this.loadVectorData=r),this.loading={},this.loaded={}};u.prototype.loadTile=function(t,e){function r(t,r){return delete this.loading[i][n],t?e(t):r?(o.vectorTile=r,o.parse(r,this.layerIndex,this.actor,function(t,i,n){if(t)return e(t);var o={};r.expires&&(o.expires=r.expires),r.cacheControl&&(o.cacheControl=r.cacheControl),e(null,s.extend({rawTileData:r.rawData},i,o),n)}),this.loaded[i]=this.loaded[i]||{},void(this.loaded[i][n]=o)):e(null,null)}var i=t.source,n=t.uid;this.loading[i]||(this.loading[i]={});var o=this.loading[i][n]=new a(t);o.abort=this.loadVectorData(t,r.bind(this))},u.prototype.reloadTile=function(t,e){function r(t,r){if(this.reloadCallback){var i=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,o.layerIndex,o.actor,i)}e(t,r)}var i=this.loaded[t.source],n=t.uid,o=this;if(i&&i[n]){var a=i[n];"parsing"===a.status?a.reloadCallback=e:"done"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,r.bind(a))}},u.prototype.abortTile=function(t){var e=this.loading[t.source],r=t.uid;e&&e[r]&&e[r].abort&&(e[r].abort(),delete e[r])},u.prototype.removeTile=function(t){var e=this.loaded[t.source],r=t.uid;e&&e[r]&&delete e[r]},u.prototype.loadVectorData=function(t,e){function r(t,r){if(t)return e(t);var i=new n.VectorTile(new o(r.data));i.rawData=r.data,i.cacheControl=r.cacheControl,i.expires=r.expires,e(t,i)}var a=i.getArrayBuffer(t.url,r.bind(this));return function(){a.abort()}},u.prototype.redoPlacement=function(t,e){var r=this.loaded[t.source],i=this.loading[t.source],n=t.uid;if(r&&r[n]){var o=r[n],a=o.redoPlacement(t.angle,t.pitch,t.showCollisionBoxes);a.result&&e(null,a.result,a.transferables)}else i&&i[n]&&(i[n].angle=t.angle)},e.exports=u},{"../util/ajax":109,"../util/util":129,"./worker_tile":58,pbf:196,"vector-tile":206}],56:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("./image_source"),o=function(t){function e(e,r,i,n){t.call(this,e,r,i,n),this.roundZoom=!0,this.type="video",this.options=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,i.getVideo(e.urls,function(e,r){if(e)return t.fire("error",{error:e});t.video=r,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(n);e.exports=o},{"../util/ajax":109,"./image_source":44}],57:[function(t,e,r){"use strict";var i=t("../util/actor"),n=t("../style/style_layer_index"),o=t("./vector_tile_worker_source"),a=t("./geojson_worker_source"),s=t("./rtl_text_plugin"),u=function(t){var e=this;this.self=t,this.actor=new i(t,this),this.layerIndexes={},this.workerSourceTypes={vector:o,geojson:a},this.workerSources={},this.self.registerWorkerSource=function(t,r){if(e.workerSourceTypes[t])throw new Error('Worker source with name "'+t+'" already registered.');e.workerSourceTypes[t]=r},this.self.registerRTLTextPlugin=function(t){if(s.applyArabicShaping||s.processBidirectionalText)throw new Error("RTL text plugin already registered.");s.applyArabicShaping=t.applyArabicShaping,s.processBidirectionalText=t.processBidirectionalText}};u.prototype.setLayers=function(t,e){this.getLayerIndex(t).replace(e)},u.prototype.updateLayers=function(t,e){this.getLayerIndex(t).update(e.layers,e.removedIds,e.symbolOrder)},u.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type).loadTile(e,r)},u.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type).reloadTile(e,r)},u.prototype.abortTile=function(t,e){this.getWorkerSource(t,e.type).abortTile(e)},u.prototype.removeTile=function(t,e){this.getWorkerSource(t,e.type).removeTile(e)},u.prototype.removeSource=function(t,e){var r=this.getWorkerSource(t,e.type);void 0!==r.removeSource&&r.removeSource(e)},u.prototype.redoPlacement=function(t,e,r){this.getWorkerSource(t,e.type).redoPlacement(e,r)},u.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t)}},u.prototype.loadRTLTextPlugin=function(t,e,r){try{s.applyArabicShaping||s.processBidirectionalText||this.self.importScripts(e)}catch(t){r(t)}},u.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new n),e},u.prototype.getWorkerSource=function(t,e){var r=this;if(this.workerSources[t]||(this.workerSources[t]={}),!this.workerSources[t][e]){var i={send:function(e,i,n,o){r.actor.send(e,i,n,o,t)}};this.workerSources[t][e]=new this.workerSourceTypes[e](i,this.getLayerIndex(t))}return this.workerSources[t][e]},e.exports=function(t){return new u(t)}},{"../style/style_layer_index":71,"../util/actor":108,"./geojson_worker_source":42,"./rtl_text_plugin":49,"./vector_tile_worker_source":55}],58:[function(t,e,r){"use strict";function i(t,e){for(var r=0,i=t.layers;r=P.maxzoom||P.layout&&"none"===P.layout.visibility)){for(var L=0,I=M;L=0;D--){var O=y[e.symbolOrder[D]];O&&f.symbolBuckets.push(O)}if(0===this.symbolBuckets.length)return R(new a(this.angle,this.pitch,this.collisionBoxArray));var B=0,j=Object.keys(g.iconDependencies),F=l.mapObject(g.glyphDependencies,function(t){return Object.keys(t).map(Number)}),U=function(t){if(t)return p(t);if(B++,2===B){for(var e=new a(f.angle,f.pitch,f.collisionBoxArray),r=0,n=f.symbolBuckets;r=(new Date).getTime()}),!this.times.length},i.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},i.prototype.cancel=function(t){this.times=this.times.filter(function(e){return e.id!==t})},e.exports=i},{}],60:[function(t,e,r){"use strict";var i=t("../util/evented"),n=t("../util/ajax"),o=t("../util/browser"),a=t("../util/mapbox").normalizeSpriteURL,s=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},u=function(t){function e(e,r){var i=this;t.call(this),this.base=e,this.retina=o.devicePixelRatio>1,this.setEventedParent(r);var s=this.retina?"@2x":"";n.getJSON(a(e,s,".json"),function(t,e){return t?void i.fire("error",{error:t}):(i.data=e,void(i.imgData&&i.fire("data",{dataType:"style"})))}),n.getImage(a(e,s,".png"),function(t,e){if(t)return void i.fire("error",{error:t});i.imgData=o.getImageData(e);for(var r=0;r1!==this.retina){var r=new e(this.base);r.on("data",function(){t.data=r.data,t.imgData=r.imgData,t.width=r.width,t.retina=r.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new s;var e=this.data&&this.data[t];return e&&this.imgData?e:new s},e}(i);e.exports=u},{"../util/ajax":109,"../util/browser":110,"../util/evented":118,"../util/mapbox":125}],61:[function(t,e,r){"use strict";var i=t("./style_spec"),n=t("../util/util"),o=t("../util/evented"),a=t("./validate_style"),s=t("./style_declaration"),u=t("./style_transition"),l="-transition",c=function(t){function e(e){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=i.light,this.set(e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){var e=this;if(!this._validate(a.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=n.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var r=0,i=this.properties;rMath.floor(t)&&(e.lastIntegerZoom=Math.floor(t+1),e.lastIntegerZoomTime=Date.now()),e.lastZoom=t},e.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},e.prototype.update=function(t,e){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);(i.length||n.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,n);for(var o in this._updatedSources){var a=r._updatedSources[o];"reload"===a?r._reloadSource(o):"clear"===a&&r._clearSource(o)}this._applyClasses(t,e),this._resetUpdates(),this.fire("data",{dataType:"style"})}},e.prototype._updateWorkerLayers=function(t,e){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(t){return"symbol"===r._layers[t].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e,symbolOrder:i})},e.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={}, -this._updatedAllPaintProps=!1},e.prototype.setState=function(t){var e=this;if(this._checkLoaded(),y.emitErrors(this,y(t)))return!1;t=c.extend({},t),t.layers=E(t.layers);var r=T(this.serialize(),t).filter(function(t){return!(t.command in A)});if(0===r.length)return!1;var i=r.filter(function(t){return!(t.command in z)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(t){return t.command}).join(", ")+".");return r.forEach(function(t){"setTransition"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},e.prototype.addSource=function(t,e,r){if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error("There is already a source with this ID");if(!e.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(e)+".");var i=["vector","raster","geojson","video","image","canvas"],n=i.indexOf(e.type)>=0;if(!n||!this._validate(y.source,"sources."+t,e,null,r)){var o=this.sourceCaches[t]=new _(t,e,this.dispatcher);o.style=this,o.setEventedParent(this,function(){return{isSourceLoaded:o.loaded(),source:o.serialize(),sourceId:t}}),o.onAdd(this.map),this._changed=!0}},e.prototype.removeSource=function(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");var e=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],e.setEventedParent(null),e.clearTiles(),e.onRemove&&e.onRemove(this.map),this._changed=!0},e.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},e.prototype.addLayer=function(t,e,r){this._checkLoaded();var i=t.id;if("object"==typeof t.source&&(this.addSource(i,t.source),t=c.extend(t,{source:i})),!this._validate(y.layer,"layers."+i,t,{arrayIndex:-1},r)){var o=n.create(t);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var a=e?this._order.indexOf(e):this._order.length;if(this._order.splice(a,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var s=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=s.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},e.prototype.moveLayer=function(t,e){this._checkLoaded(),this._changed=!0;var r=this._layers[t];if(!r)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(t);this._order.splice(i,1);var n=e?this._order.indexOf(e):this._order.length;this._order.splice(n,0,t),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},e.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(!e)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be removed.")});e.setEventedParent(null);var r=this._order.indexOf(t);this._order.splice(r,1),"symbol"===e.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t]},e.prototype.getLayer=function(t){return this._layers[t]},e.prototype.setLayerZoomRange=function(t,e,r){this._checkLoaded();var i=this.getLayer(t);return i?void(i.minzoom===e&&i.maxzoom===r||(null!=e&&(i.minzoom=e),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot have zoom extent.")})},e.prototype.setFilter=function(t,e){this._checkLoaded();var r=this.getLayer(t);return r?void(null!==e&&void 0!==e&&this._validate(y.filter,"layers."+r.id+".filter",e)||c.deepEqual(r.filter,e)||(r.filter=c.clone(e),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be filtered.")})},e.prototype.getFilter=function(t){return c.clone(this.getLayer(t).filter)},e.prototype.setLayoutProperty=function(t,e,r){this._checkLoaded();var i=this.getLayer(t);return i?void(c.deepEqual(i.getLayoutProperty(e),r)||(i.setLayoutProperty(e,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},e.prototype.setPaintProperty=function(t,e,r,i){this._checkLoaded();var n=this.getLayer(t);if(!n)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")});if(!c.deepEqual(n.getPaintProperty(e,i),r)){var o=n.isPaintValueFeatureConstant(e);n.setPaintProperty(e,r,i);var a=!(r&&b.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&o||this._updateLayer(n),this.updateClasses(t,e)}},e.prototype.getPaintProperty=function(t,e,r){return this.getLayer(t).getPaintProperty(e,r)},e.prototype.getTransition=function(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},e.prototype.updateClasses=function(t,e){if(this._changed=!0,t){var r=this._updatedPaintProps;r[t]||(r[t]={}),r[t][e||"all"]=!0}else this._updatedAllPaintProps=!0},e.prototype.serialize=function(){var t=this;return c.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:c.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(e){return t._layers[e].serialize()})},function(t){return void 0!==t})},e.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]="reload"),this._changed=!0},e.prototype._flattenRenderedFeatures=function(t){for(var e=this,r=[],i=this._order.length-1;i>=0;i--)for(var n=e._order[i],o=0,a=t;o=this.maxzoom)||"none"===this.layout.visibility},e.prototype.updatePaintTransitions=function(t,e,r,i,o){for(var a=this,s=n.extend({},this._paintDeclarations[""]),u=0;u=this.endTime)return i;var o=this.oldTransition.calculate(t,e,this.startTime),a=n.easeCubicInOut((r-this.startTime-this.delay)/this.duration);return this.interp(o,i,a)},s.prototype._calculateTargetValue=function(t,e){if(!this.zoomTransitioned)return this.declaration.calculate(t,e);var r=t.zoom,i=this.zoomHistory.lastIntegerZoom,n=r>i?2:.5,a=this.declaration.calculate({zoom:r>i?r-1:r+1},e),s=this.declaration.calculate({zoom:r},e),u=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(r-i),c=o(u,1,l);return void 0!==a&&void 0!==s?{from:a,fromScale:n,to:s,toScale:1,t:c}:void 0},e.exports=s},{"../util/interpolate":121,"../util/util":129}],74:[function(t,e,r){"use strict";e.exports=t("mapbox-gl-style-spec/lib/validate_style.min"),e.exports.emitErrors=function(t,e){if(e&&e.length){for(var r=0;r-r/2;){if(a--,a<0)return!1;s-=t[a].dist(o),o=t[a]}s+=t[a].dist(t[a+1]),a++;for(var u=[],l=0;si;)l-=u.shift().angleDelta;if(l>n)return!1;a++,s+=h.dist(p)}return!0}e.exports=i},{}],77:[function(t,e,r){"use strict";function i(t,e,r,i,o){for(var a=[],s=0;s=i&&p.x>=i||(h.x>=i?h=new n(i,h.y+(p.y-h.y)*((i-h.x)/(p.x-h.x)))._round():p.x>=i&&(p=new n(i,h.y+(p.y-h.y)*((i-h.x)/(p.x-h.x)))._round()),h.y>=o&&p.y>=o||(h.y>=o?h=new n(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round():p.y>=o&&(p=new n(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round()),u&&h.equals(u[u.length-1])||(u=[h],a.push(u)),u.push(p)))))}return a}var n=t("point-geometry");e.exports=i},{"point-geometry":197}],78:[function(t,e,r){"use strict";var i=t("../util/struct_array"),n=t("point-geometry"),o=i({members:[{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(o.prototype.StructType.prototype,"anchorPoint",{get:function(){return new n(this.anchorPointX,this.anchorPointY)}}),e.exports=o},{"../util/struct_array":127,"point-geometry":197}],79:[function(t,e,r){"use strict";var i=function(t,e,r,i,n,o,a,s,u,l,c){var h=a.top*s-u,p=a.bottom*s+u,f=a.left*s-u,d=a.right*s+u;if(this.boxStartIndex=t.length,l){var m=p-h,y=d-f;if(m>0)if(m=Math.max(10*s,m),c){var v=e[r.segment+1].sub(e[r.segment])._unit()._mult(y),g=[r.sub(v),r.add(v)];this._addLineCollisionBoxes(t,g,r,0,y,m,i,n,o)}else this._addLineCollisionBoxes(t,e,r,r.segment,y,m,i,n,o)}else t.emplaceBack(r.x,r.y,f,h,d,p,1/0,i,n,o,0,0,0,0,0);this.boxEndIndex=t.length};i.prototype._addLineCollisionBoxes=function(t,e,r,i,n,o,a,s,u){var l=o/2,c=Math.floor(n/l),h=-o/2,p=this.boxes,f=r,d=i+1,m=h;do{if(d--,d<0)return p;m-=e[d].dist(f),f=e[d]}while(m>-n/2);for(var y=e[d].dist(e[d+1]),v=0;v=e.length)return p;y=e[d].dist(e[d+1])}var _=g-m,x=e[d],b=e[d+1],w=b.sub(x)._unit()._mult(_)._add(x)._round(),E=Math.max(Math.abs(g-h)-l/2,0),T=n/2/E;t.emplaceBack(w.x,w.y,-o/2,-o/2,o/2,o/2,T,a,s,u,0,0,0,0,0)}return p},e.exports=i},{}],80:[function(t,e,r){"use strict";var i=t("point-geometry"),n=t("../data/extent"),o=t("grid-index"),a=t("../util/intersection_tests"),s=function(t,e,r){if("object"==typeof t){var i=t;r=e,t=i.angle,e=i.pitch,this.grid=new o(i.grid),this.ignoredGrid=new o(i.ignoredGrid)}else this.grid=new o(n,12,6),this.ignoredGrid=new o(n,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),s=Math.cos(t);if(this.rotationMatrix=[s,-a,a,s],this.reverseRotationMatrix=[s,a,-a,s],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=r,0===r.length){r.emplaceBack();var u=32767;r.emplaceBack(0,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(n,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,0,-u,0,u,0,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,n,-u,0,u,0,u,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=r.get(0),this.edges=[r.get(1),r.get(2),r.get(3),r.get(4)]};s.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),r=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(r)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:r}},s.prototype.placeCollisionFeature=function(t,e,r){for(var n=this,o=this.collisionBoxArray,a=this.minScale,s=this.rotationMatrix,u=this.yStretch,l=t.boxStartIndex;l=n.maxScale)return a}if(r){var w;if(n.angle){var E=n.reverseRotationMatrix,T=new i(c.x1,c.y1).matMult(E),S=new i(c.x2,c.y1).matMult(E),z=new i(c.x1,c.y2).matMult(E),A=new i(c.x2,c.y2).matMult(E);w=n.tempCollisionBox,w.anchorPointX=c.anchorPoint.x,w.anchorPointY=c.anchorPoint.y,w.x1=Math.min(T.x,S.x,z.x,A.x),w.y1=Math.min(T.y,S.x,z.x,A.x),w.x2=Math.max(T.x,S.x,z.x,A.x),w.y2=Math.max(T.y,S.x,z.x,A.x),w.maxScale=c.maxScale}else w=c;for(var M=0;M=n.maxScale)return a}}}return a},s.prototype.queryRenderedSymbols=function(t,e){var r={},n=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return n;for(var o=this.collisionBoxArray,s=this.rotationMatrix,u=this.yStretch,l=[],c=1/0,h=1/0,p=-(1/0),f=-(1/0),d=0;dE.maxScale)){var z=E.anchorPoint.matMult(s),A=z.x+E.x1/e,M=z.y+E.y1/e*u,P=z.x+E.x2/e,L=z.y+E.y2/e*u,I=[new i(A,M),new i(P,M),new i(P,L),new i(A,L)];a.polygonIntersectsPolygon(l,I)&&(r[T][S]=!0,n.push(g[w]))}}return n},s.prototype.getPlacementScale=function(t,e,r,i,n){var o=e.x-i.x,a=e.y-i.y,s=(n.x1-r.x2)/o,u=(n.x2-r.x1)/o,l=(n.y1-r.y2)*this.yStretch/a,c=(n.y2-r.y1)*this.yStretch/a;(isNaN(s)||isNaN(u))&&(s=u=1),(isNaN(l)||isNaN(c))&&(l=c=1);var h=Math.min(Math.max(s,u),Math.max(l,c)),p=n.maxScale,f=r.maxScale;return h>p&&(h=p),h>f&&(h=f),h>t&&h>=n.placementScale&&(t=h),t},s.prototype.insertCollisionFeature=function(t,e,r){for(var i=this,n=r?this.ignoredGrid:this.grid,o=this.collisionBoxArray,a=t.boxStartIndex;a=0&&S=0&&z=0&&v+f<=d){var A=new a(S,z,E,_)._round();i&&!s(t,A,l,i,u)||g.push(A)}}y+=w}return h||g.length||c||(g=n(t,y/2,r,i,u,l,c,!0,p)),g}var o=t("../util/interpolate"),a=t("../symbol/anchor"),s=t("./check_max_angle");e.exports=i},{"../symbol/anchor":75,"../util/interpolate":121,"./check_max_angle":76}],82:[function(t,e,r){"use strict";var i=t("shelf-pack"),n=t("../util/util"),o=4,a=128,s=2048,u=function(){ -this.width=a,this.height=a,this.bin=new i(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};u.prototype.getGlyphs=function(){var t,e,r,i={};for(var n in this.ids)t=n.split("#"),e=t[0],r=t[1],i[e]||(i[e]=[]),i[e].push(r);return i},u.prototype.getRects=function(){var t,e,r,i=this,n={};for(var o in this.ids)t=o.split("#"),e=t[0],r=t[1],n[e]||(n[e]={}),n[e][r]=i.index[o];return n},u.prototype.addGlyph=function(t,e,r,i){var o=this;if(!r)return null;var a=e+"#"+r.id;if(this.index[a])return this.ids[a].indexOf(t)<0&&this.ids[a].push(t),this.index[a];if(!r.bitmap)return null;var s=r.width+2*i,u=r.height+2*i,l=1,c=s+2*l,h=u+2*l;c+=4-c%4,h+=4-h%4;var p=this.bin.packOne(c,h);if(p||(this.resize(),p=this.bin.packOne(c,h)),!p)return n.warnOnce("glyph bitmap overflow"),null;this.index[a]=p,this.ids[a]=[t];for(var f=this.data,d=r.bitmap,m=0;m=s||r>=s)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=o,this.height*=o,this.bin.resize(this.width,this.height);for(var i=new ArrayBuffer(this.width*this.height),n=0;n65535)return r("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var n=this.loading[t];if(n[e])n[e].push(r);else{n[e]=[r];var a=256*e+"-"+(256*e+255),u=i(t,a,this.url);o.getArrayBuffer(u,function(t,r){for(var i=!t&&new s(new l(r.data)),o=0;o1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},u.prototype.addIcons=function(t,e){for(var r=this,i=0;i1||(E?(clearTimeout(E),E=null,v("dblclick",e)):E=setTimeout(f,300))}function c(t){g("touchmove",t)}function h(t){g("touchend",t)}function p(t){g("touchcancel",t)}function f(){E=null}function d(t){var e=i.mousePos(_,t);e.equals(w)&&v("click",t)}function m(t){v("dblclick",t),t.preventDefault()}function y(e){var r=t.dragRotate&&t.dragRotate.isActive();b||r?b&&(x=e):v("contextmenu",e),e.preventDefault()}function v(e,r){var n=i.mousePos(_,r);return t.fire(e,{lngLat:t.unproject(n),point:n,originalEvent:r})}function g(e,r){var o=i.touchPos(_,r),a=o.reduce(function(t,e,r,i){return t.add(e.div(i.length))},new n(0,0));return t.fire(e,{lngLat:t.unproject(a),point:a,lngLats:o.map(function(e){return t.unproject(e)},this),points:o,originalEvent:r})}var _=t.getCanvasContainer(),x=null,b=!1,w=null,E=null;for(var T in o)t[T]=new o[T](t,e),e.interactive&&e[T]&&t[T].enable(e[T]);_.addEventListener("mouseout",r,!1),_.addEventListener("mousedown",a,!1),_.addEventListener("mouseup",s,!1),_.addEventListener("mousemove",u,!1),_.addEventListener("touchstart",l,!1),_.addEventListener("touchend",h,!1),_.addEventListener("touchmove",c,!1),_.addEventListener("touchcancel",p,!1),_.addEventListener("click",d,!1),_.addEventListener("dblclick",m,!1),_.addEventListener("contextmenu",y,!1)}},{"../util/dom":117,"./handler/box_zoom":97,"./handler/dblclick_zoom":98,"./handler/drag_pan":99,"./handler/drag_rotate":100,"./handler/keyboard":101,"./handler/scroll_zoom":102,"./handler/touch_zoom_rotate":103,"point-geometry":197}],92:[function(t,e,r){"use strict";var i=t("../util/util"),n=t("../util/interpolate"),o=t("../util/browser"),a=t("../geo/lng_lat"),s=t("../geo/lng_lat_bounds"),u=t("point-geometry"),l=t("../util/evented"),c=function(t){function e(e,r){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=r.bearingSnap}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCenter=function(){return this.transform.center},e.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e),this},e.prototype.panBy=function(t,e,r){return this.panTo(this.transform.center,i.extend({offset:u.convert(t).mult(-1)},e),r),this},e.prototype.panTo=function(t,e,r){return this.easeTo(i.extend({center:t},e),r)},e.prototype.getZoom=function(){return this.transform.zoom},e.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},e.prototype.zoomTo=function(t,e,r){return this.easeTo(i.extend({zoom:t},e),r)},e.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},e.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},e.prototype.getBearing=function(){return this.transform.bearing},e.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},e.prototype.rotateTo=function(t,e,r){return this.easeTo(i.extend({bearing:t},e),r)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,i.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())180&&(c.center.lng>0&&m.lng<0?m.lng+=360:c.center.lng<0&&m.lng>0&&(m.lng-=360));var _=c.zoomScale(y-p),x=c.point,b="center"in t?c.project(m).sub(h.div(_)):x,w=t.curve,E=Math.max(c.width,c.height),T=E/_,S=b.sub(x).mag();if("minZoom"in t){var z=i.clamp(Math.min(t.minZoom,p,y),c.minZoom,c.maxZoom),A=E/c.zoomScale(z-p);w=Math.sqrt(A/S*2)}var M=w*w,P=r(0),L=function(t){return s(P)/s(P+w*t)},I=function(t){return E*((s(P)*l(P+w*t)-o(P))/M)/S},C=(r(1)-P)/w;if(Math.abs(S)<1e-6){if(Math.abs(E-T)<1e-6)return this.easeTo(t);var k=T=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},o.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},e.exports=o},{"../../util/dom":117,"../../util/util":129}],94:[function(t,e,r){"use strict";function i(t){void 0!==n?t(n):void 0!==s.navigator.permissions?s.navigator.permissions.query({name:"geolocation"}).then(function(e){n="denied"!==e.state,t(n)}):(n=!!s.navigator.geolocation,t(n))}var n,o=t("../../util/evented"),a=t("../../util/dom"),s=t("../../util/window"),u=t("../../util/util"),l={enableHighAccuracy:!1,timeout:6e3},c="mapboxgl-ctrl",h=function(t){function e(e){t.call(this),this.options=e||{},u.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div",c+" "+c+"-group"),i(this._setupUI),this._container},e.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},e.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},e.prototype._onError=function(t){this.fire("error",t),this._finish()},e.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},e.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=a.create("button",c+"-icon "+c+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},e.prototype._onClickGeolocate=function(){var t=u.extend(l,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),s.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=s.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(s.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},e}(o);e.exports=h},{"../../util/dom":117,"../../util/evented":118,"../../util/util":129,"../../util/window":112}],95:[function(t,e,r){"use strict";function i(t){return new o.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var n=t("../../util/dom"),o=t("../../util/window"),a=t("../../util/util"),s="mapboxgl-ctrl",u=function(){a.bindAll(["_rotateCompassArrow"],this)};u.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},u.prototype.onAdd=function(t){return this._map=t,this._container=n.create("div",s+" "+s+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(s+"-icon "+s+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(s+"-icon "+s+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(s+"-icon "+s+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=n.create("span","arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},u.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},u.prototype._onContextMenu=function(t){t.preventDefault()},u.prototype._onCompassDown=function(t){0===t.button&&(n.disableDrag(),o.document.addEventListener("mousemove",this._onCompassMove),o.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._onCompassUp=function(t){0===t.button&&(o.document.removeEventListener("mousemove",this._onCompassMove),o.document.removeEventListener("mouseup",this._onCompassUp), -n.enableDrag(),this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._createButton=function(t,e,r){var i=n.create("button",t,this._container);return i.type="button",i.setAttribute("aria-label",e),i.addEventListener("click",function(){r()}),i},e.exports=u},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],96:[function(t,e,r){"use strict";function i(t,e,r){var i=r&&r.maxWidth||100,a=t._container.clientHeight/2,s=o(t.unproject([0,a]),t.unproject([i,a]));if(r&&"imperial"===r.unit){var u=3.2808*s;if(u>5280){var l=u/5280;n(e,i,l,"mi")}else n(e,i,u,"ft")}else n(e,i,s,"m")}function n(t,e,r,i){var n=a(r),o=n/r;"m"===i&&n>=1e3&&(n/=1e3,i="km"),t.style.width=e*o+"px",t.innerHTML=n+i}function o(t,e){var r=6371e3,i=Math.PI/180,n=t.lat*i,o=e.lat*i,a=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((e.lng-t.lng)*i),s=r*Math.acos(Math.min(a,1));return s}function a(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),r=t/e;return r=r>=10?10:r>=5?5:r>=3?3:r>=2?2:1,e*r}var s=t("../../util/dom"),u=t("../../util/util"),l=function(t){this.options=t,u.bindAll(["_onMove"],this)};l.prototype.getDefaultPosition=function(){return"bottom-left"},l.prototype._onMove=function(){i(this._map,this._container,this.options)},l.prototype.onAdd=function(t){return this._map=t,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},l.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},e.exports=l},{"../../util/dom":117,"../../util/util":129}],97:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../geo/lng_lat_bounds"),o=t("../../util/util"),a=t("../../util/window"),s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),o.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.isActive=function(){return!!this._active},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},s.prototype._onMouseDown=function(t){t.shiftKey&&0===t.button&&(a.document.addEventListener("mousemove",this._onMouseMove,!1),a.document.addEventListener("keydown",this._onKeyDown,!1),a.document.addEventListener("mouseup",this._onMouseUp,!1),i.disableDrag(),this._startPos=i.mousePos(this._el,t),this._active=!0)},s.prototype._onMouseMove=function(t){var e=this._startPos,r=i.mousePos(this._el,t);this._box||(this._box=i.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var n=Math.min(e.x,r.x),o=Math.max(e.x,r.x),a=Math.min(e.y,r.y),s=Math.max(e.y,r.y);i.setTransform(this._box,"translate("+n+"px,"+a+"px)"),this._box.style.width=o-n+"px",this._box.style.height=s-a+"px"},s.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,r=i.mousePos(this._el,t),o=(new n).extend(this._map.unproject(e)).extend(this._map.unproject(r));this._finish(),e.x===r.x&&e.y===r.y?this._fireEvent("boxzoomcancel",t):this._map.fitBounds(o,{linear:!0}).fire("boxzoomend",{originalEvent:t,boxZoomBounds:o})}},s.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",t))},s.prototype._finish=function(){this._active=!1,a.document.removeEventListener("mousemove",this._onMouseMove,!1),a.document.removeEventListener("keydown",this._onKeyDown,!1),a.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),i.enableDrag()},s.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},e.exports=s},{"../../geo/lng_lat_bounds":20,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],98:[function(t,e,r){"use strict";var i=function(t){this._map=t,this._onDblClick=this._onDblClick.bind(this)};i.prototype.isEnabled=function(){return!!this._enabled},i.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},i.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},i.prototype._onDblClick=function(t){this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},e.exports=i},{}],99:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.3,s=n.bezier(0,0,a,1),u=1400,l=2500,c=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(o.document.addEventListener("touchmove",this._onMove),o.document.addEventListener("touchend",this._onTouchEnd)):(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onMouseUp)),this._active=!1,this._startPos=this._pos=i.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=i.mousePos(this._el,t),r=this._map;r.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),r.transform.setLocationAtPoint(r.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},c.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var r=function(){return e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void r();var n=i[i.length-1],o=i[0],c=n[1].sub(o[1]),h=(n[0]-o[0])/1e3;if(0===h||n[1].equals(o[1]))return void r();var p=c.mult(a/h),f=p.mag();f>u&&(f=u,p._unit()._mult(f));var d=f/(l*a),m=p.mult(-d/2);this._map.panBy(m,{duration:1e3*d,easing:s,noMoveStart:!0},{originalEvent:t})}},c.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onMouseUp))},c.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onTouchEnd))},c.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},c.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var r=1,i=0;return"mousemove"===t.type?t.buttons&0===r:t.button!==i},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],100:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.25,s=n.bezier(0,0,a,1),u=180,l=720,c=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,n.bindAll(["_onDown","_onMove","_onUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=i.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var r=this._pos,n=i.mousePos(this._el,t),o=.8*(r.x-n.x),a=(r.y-n.y)*-.5,s=e.getBearing()-o,u=e.getPitch()-a,l=this._inertia,c=l[l.length-1];this._drainInertiaBuffer(),l.push([Date.now(),e._normalizeBearing(s,c[1])]),e.transform.bearing=s,this._pitchWithRotate&&(e.transform.pitch=u),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},c.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var r=this._map,i=r.getBearing(),n=this._inertia,c=function(){Math.abs(i)u&&(g=u);var _=g/(l*a),x=y*g*(_/2);d+=x,Math.abs(r._normalizeBearing(d,0))1;var r=t.ctrlKey?1:2,i=t.ctrlKey?0:2,n=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&o.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(n=0),"mousemove"===t.type?t.buttons&0===r:n!==i},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],101:[function(t,e,r){"use strict";function i(t){return t*(2-t)}var n=100,o=15,a=10,s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},s.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,s=0,u=0,l=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?r=-1:(t.preventDefault(),u=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),u=1);break;case 38:t.shiftKey?s=1:(t.preventDefault(),l=-1);break;case 40:t.shiftKey?s=-1:(l=1,t.preventDefault())}var c=this._map,h=c.getZoom(),p={duration:300,delayEndEvents:500,easing:i,zoom:e?Math.round(h)+e*(t.shiftKey?2:1):h,bearing:c.getBearing()+r*o,pitch:c.getPitch()+s*a,offset:[-u*n,-l*n],center:c.getCenter()};c.easeTo(p,{originalEvent:t})}},e.exports=s},{}],102:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/browser"),a=t("../../util/window"),s=a.navigator.userAgent.toLowerCase(),u=s.indexOf("firefox")!==-1,l=s.indexOf("safari")!==-1&&s.indexOf("chrom")===-1,c=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onWheel","_onTimeout"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},c.prototype._onWheel=function(t){var e;"wheel"===t.type?(e=t.deltaY,u&&t.deltaMode===a.WheelEvent.DOM_DELTA_PIXEL&&(e/=o.devicePixelRatio),t.deltaMode===a.WheelEvent.DOM_DELTA_LINE&&(e*=40)):"mousewheel"===t.type&&(e=-t.wheelDeltaY,l&&(e/=3));var r=o.now(),n=r-(this._time||0);this._pos=i.mousePos(this._el,t),this._time=r,0!==e&&e%4.000244140625===0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":n>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(n*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&this._zoom(-e,t),t.preventDefault()},c.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},c.prototype._zoom=function(t,e){if(0!==t){var r=this._map,i=2/(1+Math.exp(-Math.abs(t/100)));t<0&&0!==i&&(i=1/i);var n=r.ease?r.ease.to:r.transform.scale,o=r.transform.scaleZoom(n*i);r.zoomTo(o,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?r.getCenter():r.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:e})}},e.exports=c},{"../../util/browser":110,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],103:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.15,s=n.bezier(0,0,a,1),u=12,l=2.5,c=.15,h=4,p=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onStart","_onMove","_onEnd"],this)};p.prototype.isEnabled=function(){return!!this._enabled},p.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},p.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},p.prototype.disableRotation=function(){this._rotationDisabled=!0},p.prototype.enableRotation=function(){this._rotationDisabled=!1},p.prototype._onStart=function(t){if(2===t.touches.length){var e=i.mousePos(this._el,t.touches[0]),r=i.mousePos(this._el,t.touches[1]);this._startVec=e.sub(r),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],o.document.addEventListener("touchmove",this._onMove,!1),o.document.addEventListener("touchend",this._onEnd,!1)}},p.prototype._onMove=function(t){if(2===t.touches.length){var e=i.mousePos(this._el,t.touches[0]),r=i.mousePos(this._el,t.touches[1]),n=e.add(r).div(2),o=e.sub(r),a=o.mag()/this._startVec.mag(),s=this._rotationDisabled?0:180*o.angleWith(this._startVec)/Math.PI,u=this._map;if(this._gestureIntent){var l={duration:0,around:u.unproject(n)};"rotate"===this._gestureIntent&&(l.bearing=this._startBearing+s),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(l.zoom=u.transform.scaleZoom(this._startScale*a)),u.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,n]),u.easeTo(l,{originalEvent:t})}else{var p=Math.abs(1-a)>c,f=Math.abs(s)>h;f?this._gestureIntent="rotate":p&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=o,this._startScale=u.transform.scale,this._startBearing=u.transform.bearing)}t.preventDefault()}},p.prototype._onEnd=function(t){o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,r=this._map;if(e.length<2)return void r.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],c=r.transform.scaleZoom(this._startScale*i[1]),h=r.transform.scaleZoom(this._startScale*n[1]),p=c-h,f=(i[0]-n[0])/1e3,d=i[2];if(0===f||c===h)return void r.snapToNorth({},{originalEvent:t});var m=p*a/f;Math.abs(m)>l&&(m=m>0?l:-l);var y=1e3*Math.abs(m/(u*a)),v=c+m*y/2e3;v<0&&(v=0),r.easeTo({zoom:v,duration:y,easing:s,around:this._aroundCenter?r.getCenter():r.unproject(d)},{originalEvent:t})},p.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>2&&e-t[0][0]>r;)t.shift()},e.exports=p},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],104:[function(t,e,r){"use strict";var i=t("../util/util"),n=t("../util/window"),o=function(){i.bindAll(["_onHashChange","_updateHash"],this)};o.prototype.addTo=function(t){return this._map=t,n.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},o.prototype.remove=function(){return n.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},o.prototype._onHashChange=function(){var t=n.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},o.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),r=this._map.getBearing(),i=this._map.getPitch(),o=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),a="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(o)+"/"+t.lng.toFixed(o);(r||i)&&(a+="/"+Math.round(10*r)/10),i&&(a+="/"+Math.round(i)),n.history.replaceState("","",a)},e.exports=o},{"../util/util":129,"../util/window":112}],105:[function(t,e,r){"use strict";function i(t){t.parentNode&&t.parentNode.removeChild(t)}var n=t("../util/util"),o=t("../util/browser"),a=t("../util/window"),s=t("../util/dom"),u=t("../style/style"),l=t("../style/animation_loop"),c=t("../render/painter"),h=t("../geo/transform"),p=t("./hash"),f=t("./bind_handlers"),d=t("./camera"),m=t("../geo/lng_lat"),y=t("../geo/lng_lat_bounds"),v=t("point-geometry"),g=t("./control/attribution_control"),_=t("mapbox-gl-supported"),x=0,b=20,w={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:x,maxZoom:b,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0},E=function(t){function e(e){var r=this;e=n.extend({},w,e);var i=new h(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,"string"==typeof e.container){if(this._container=a.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new l,e.maxBounds&&this.setMaxBounds(e.maxBounds),n.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){r.animationLoop.set(300),r._rerender()}),"undefined"!=typeof a&&(a.addEventListener("online",this._onWindowOnline,!1),a.addEventListener("resize",this._onWindowResize,!1)),f(this,e),this._hash=e.hash&&(new p).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new g),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var r=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(r,i.firstChild):i.appendChild(r),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var r=this._classes.indexOf(t);return r<0||""===t?this:(this._classes.splice(r,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var r={},i=0;i=0},e.prototype.getClasses=function(){return n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],r=t[1];this._resizeCanvas(e,r),this.transform.resize(e,r),this.painter.resize(e,r);var i=this.painter.gl,o=i.getParameter(i.MAX_RENDERBUFFER_SIZE)/2;return(this._canvas.width>o||this._canvas.height>o)&&n.warnOnce("Map is larger than maximum size supported by this system ("+o+"px by "+o+"px)."),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new y(this.transform.pointLocation(new v(0,this.transform.height)),this.transform.pointLocation(new v(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new v(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new v(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=y.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?x:t,t>=x&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(m.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(v.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof v||Array.isArray(t)}var e,r={};return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(r=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[v.convert([0,0]),v.convert([this.transform.width,this.transform.height])]);var r,i=t instanceof v||"number"==typeof t[0];if(i){var n=v.convert(t);r=[n]}else{var o=[v.convert(t[0]),v.convert(t[1])];r=[o[0],new v(o[1].x,o[0].y),o[1],new v(o[0].x,o[1].y),o[0]]}return r=r.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var r=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof u)&&"string"!=typeof t;if(r)try{return this.style.setState(t)&&this._update(!0),this}catch(t){n.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof u?this.style=t:this.style=new u(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,r,i){return this.style.setPaintProperty(t,e,r,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,r){return this.style.getPaintProperty(t,e,r)},e.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=s.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=s.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",0),this._canvas.setAttribute("aria-label","Map");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var i=this._controlContainer=s.create("div","mapboxgl-control-container",t),n=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){n[t]=s.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var r=a.devicePixelRatio||1;this._canvas.width=r*t,this._canvas.height=r*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=n.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},_.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new c(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&o.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),o.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof a&&a.removeEventListener("resize",this._onWindowResize,!1);var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),i(this._canvasContainer),i(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=o.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},r.showTileBoundaries.get=function(){return!!this._showTileBoundaries},r.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},r.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},r.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},r.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},r.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},r.repaint.get=function(){return!!this._repaint},r.repaint.set=function(t){this._repaint=t,this._update()},r.vertices.get=function(){return!!this._vertices},r.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,r),e}(d);e.exports=E},{"../geo/lng_lat":19, -"../geo/lng_lat_bounds":20,"../geo/transform":21,"../render/painter":36,"../style/animation_loop":59,"../style/style":63,"../util/browser":110,"../util/dom":117,"../util/util":129,"../util/window":112,"./bind_handlers":91,"./camera":92,"./control/attribution_control":93,"./hash":104,"mapbox-gl-supported":193,"point-geometry":197}],106:[function(t,e,r){"use strict";var i=t("../util/dom"),n=t("../geo/lng_lat"),o=t("point-geometry"),a=function(t,e){this._offset=o.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=i.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};a.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},a.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),i.remove(this._element),this._popup&&this._popup.remove(),this},a.prototype.getLngLat=function(){return this._lngLat},a.prototype.setLngLat=function(t){return this._lngLat=n.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},a.prototype.getElement=function(){return this._element},a.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},a.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},a.prototype.getPopup=function(){return this._popup},a.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},a.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),i.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},e.exports=a},{"../geo/lng_lat":19,"../util/dom":117,"point-geometry":197}],107:[function(t,e,r){"use strict";function i(t){if(t){if("number"==typeof t){var e=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new l(0,t),"top-left":new l(e,e),"top-right":new l(-e,e),bottom:new l(0,-t),"bottom-left":new l(e,-e),"bottom-right":new l(-e,-e),left:new l(t,0),right:new l(-t,0)}}if(n(t)){var r=l.convert(t);return{top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return{top:l.convert(t.top||[0,0]),"top-left":l.convert(t["top-left"]||[0,0]),"top-right":l.convert(t["top-right"]||[0,0]),bottom:l.convert(t.bottom||[0,0]),"bottom-left":l.convert(t["bottom-left"]||[0,0]),"bottom-right":l.convert(t["bottom-right"]||[0,0]),left:l.convert(t.left||[0,0]),right:l.convert(t.right||[0,0])}}return i(new l(0,0))}function n(t){return t instanceof l||Array.isArray(t)}var o=t("../util/util"),a=t("../util/evented"),s=t("../util/dom"),u=t("../geo/lng_lat"),l=t("point-geometry"),c=t("../util/window"),h={closeButton:!0,closeOnClick:!0},p=function(t){function e(e){t.call(this),this.options=o.extend(Object.create(h),e),o.bindAll(["_update","_onClickClose"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},e.prototype.isOpen=function(){return!!this._map},e.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},e.prototype.getLngLat=function(){return this._lngLat},e.prototype.setLngLat=function(t){return this._lngLat=u.convert(t),this._update(),this},e.prototype.setText=function(t){return this.setDOMContent(c.document.createTextNode(t))},e.prototype.setHTML=function(t){var e,r=c.document.createDocumentFragment(),i=c.document.createElement("body");for(i.innerHTML=t;e=i.firstChild,e;)r.appendChild(e);return this.setDOMContent(r)},e.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},e.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=s.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=s.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},e.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=s.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,e=i(this.options.offset),r=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,o=this._container.offsetHeight;t=r.y+e.bottom.ythis._map.transform.height-o?["bottom"]:[],r.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var a=r.add(e[t]),u={top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},l=this._container.classList;for(var c in u)l.remove("mapboxgl-popup-anchor-"+c);l.add("mapboxgl-popup-anchor-"+t),s.setTransform(this._container,u[t]+" translate("+a.x+"px,"+a.y+"px)")}},e.prototype._onClickClose=function(){this.remove()},e}(a);e.exports=p},{"../geo/lng_lat":19,"../util/dom":117,"../util/evented":118,"../util/util":129,"../util/window":112,"point-geometry":197}],108:[function(t,e,r){"use strict";var i=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};i.prototype.send=function(t,e,r,i,n){var o=r?this.mapId+":"+this.callbackID++:null;r&&(this.callbacks[o]=r),this.target.postMessage({targetMapId:n,sourceMapId:this.mapId,type:t,id:String(o),data:e},i)},i.prototype.receive=function(t){var e,r=this,i=t.data,n=i.id;if(!i.targetMapId||this.mapId===i.targetMapId){var o=function(t,e,i){r.target.postMessage({sourceMapId:r.mapId,type:"",id:String(n),error:t?String(t):null,data:e},i)};if(""===i.type)e=this.callbacks[i.id],delete this.callbacks[i.id],e&&e(i.error||null,i.data);else if("undefined"!=typeof i.id&&this.parent[i.type])this.parent[i.type](i.sourceMapId,i.data,o);else if("undefined"!=typeof i.id&&this.parent.getWorkerSource){var a=i.type.split("."),s=this.parent.getWorkerSource(i.sourceMapId,a[0]);s[a[1]](i.data,o)}else this.parent[i.type](i.data)}},i.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},e.exports=i},{}],109:[function(t,e,r){"use strict";function i(t){var e=n.document.createElement("a");return e.href=t,e.protocol===n.document.location.protocol&&e.host===n.document.location.host}var n=t("./window");r.getJSON=function(t,e){var r=new n.XMLHttpRequest;return r.open("GET",t,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(t){e(t)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var t;try{t=JSON.parse(r.response)}catch(t){return e(t)}e(null,t)}else e(new Error(r.statusText))},r.send(),r},r.getArrayBuffer=function(t,e){var r=new n.XMLHttpRequest;return r.open("GET",t,!0),r.responseType="arraybuffer",r.onerror=function(t){e(t)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?e(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?e(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):e(new Error(r.statusText)))},r.send(),r};var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";r.getImage=function(t,e){return r.getArrayBuffer(t,function(t,r){if(t)return e(t);var i=new n.Image,a=n.URL||n.webkitURL;i.onload=function(){e(null,i),a.revokeObjectURL(i.src)};var s=new n.Blob([new Uint8Array(r.data)],{type:"image/png"});i.cacheControl=r.cacheControl,i.expires=r.expires,i.src=r.data.byteLength?a.createObjectURL(s):o})},r.getVideo=function(t,e){var r=n.document.createElement("video");r.onloadstart=function(){e(null,r)};for(var o=0;o=s+i?t.call(n,1):(t.call(n,(u-s)/i),r.frame(o)))}if(!i)return t.call(n,1),null;var a=!1,s=e.exports.now();return r.frame(o),function(){a=!0}},r.getImageData=function(t){var e=i.document.createElement("canvas"),r=e.getContext("2d");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height).data},r.supported=t("mapbox-gl-supported"),r.hardwareConcurrency=i.navigator.hardwareConcurrency||4,Object.defineProperty(r,"devicePixelRatio",{get:function(){return i.devicePixelRatio}}),r.supportsWebp=!1;var a=i.document.createElement("img");a.onload=function(){r.supportsWebp=!0},a.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="},{"./window":112,"mapbox-gl-supported":193}],111:[function(t,e,r){"use strict";var i=t("webworkify"),n=t("../window"),o=n.URL.createObjectURL(new i(t("../../source/worker"),{bare:!0}));e.exports=function(){return new n.Worker(o)}},{"../../source/worker":57,"../window":112,webworkify:213}],112:[function(t,e,r){"use strict";e.exports=self},{}],113:[function(t,e,r){"use strict";function i(t,e){return e.area-t.area}var n=t("quickselect"),o=t("./util").calculateSignedArea;e.exports=function(t,e){var r=t.length;if(r<=1)return[t];for(var a,s,u=[],l=0;l1)for(var h=0;ht.y!=h.y>t.y&&t.x<(h.x-c.x)*(t.y-c.y)/(h.y-c.y)+c.x&&(r=!r),i=Math.min(i,l(t,c,h))}return(r?1:-1)*Math.sqrt(i)}function a(t){for(var e=0,r=0,i=0,o=t[0],a=0,s=o.length,u=s-1;al)&&(l=f.x),(!p||f.y>c)&&(c=f.y)}for(var d=l-o,m=c-u,y=Math.min(d,m),v=y/2,g=new s(null,i),_=o;_b.d&&(b=E,r&&console.log("found best %d after %d probes",Math.round(1e4*E.d)/1e4,w)),E.max-b.d<=e||(v=E.h/2,g.push(new n(E.p.x-v,E.p.y-v,v,t)),g.push(new n(E.p.x+v,E.p.y-v,v,t)),g.push(new n(E.p.x-v,E.p.y+v,v,t)),g.push(new n(E.p.x+v,E.p.y+v,v,t)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+b.d)),b.p}},{"./intersection_tests":122,"point-geometry":197,tinyqueue:202}],120:[function(t,e,r){"use strict";function i(t,e){this.stacks=t.readFields(n,[],e)}function n(t,e,r){if(1===t){var i=r.readMessage(o,{glyphs:{}});e.push(i)}}function o(t,e,r){if(1===t)e.name=r.readString();else if(2===t)e.range=r.readString();else if(3===t){var i=r.readMessage(a,{});e.glyphs[i.id]=i}}function a(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}e.exports=i},{}],121:[function(t,e,r){"use strict";function i(t,e,r){return t*(1-r)+e*r}e.exports=i,i.number=i,i.vec2=function(t,e,r){return[i(t[0],e[0],r),i(t[1],e[1],r)]},i.color=function(t,e,r){return[i(t[0],e[0],r),i(t[1],e[1],r),i(t[2],e[2],r),i(t[3],e[3],r)]},i.array=function(t,e,r){return t.map(function(t,n){return i(t,e[n],r)})}},{}],122:[function(t,e,r){"use strict";function i(t,e){for(var r=0;r=3)for(var u=0;u1){if(u(t,e))return!0;for(var i=0;i1?t.distSqr(r):t.distSqr(r.sub(e)._mult(n)._add(e))}function p(t,e){for(var r,i,n,o=!1,a=0;ae.y!=n.y>e.y&&e.x<(n.x-i.x)*(e.y-i.y)/(n.y-i.y)+i.x&&(o=!o)}return o}function f(t,e){for(var r=!1,i=0,n=t.length-1;ie.y!=a.y>e.y&&e.x<(a.x-o.x)*(e.y-o.y)/(a.y-o.y)+o.x&&(r=!r)}return r}var d=t("./util").isCounterClockwise;e.exports={multiPolygonIntersectsBufferedMultiPoint:n,multiPolygonIntersectsMultiPolygon:o,multiPolygonIntersectsBufferedMultiLine:a,polygonIntersectsPolygon:i,distToSegmentSquared:h}},{"./util":129}],123:[function(t,e,r){"use strict";var i={"Latin-1 Supplement":function(t){return t>=128&&t<=255},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};e.exports=i},{}],124:[function(t,e,r){"use strict";var i=function(t,e){this.max=t,this.onRemove=e,this.reset()};i.prototype.reset=function(){var t=this;for(var e in this.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},i.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},i.prototype.has=function(t){return t in this.data},i.prototype.keys=function(){return this.order},i.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},i.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},i.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},e.exports=i},{}],125:[function(t,e,r){"use strict";function i(t,e){var r=a(u.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,!u.REQUIRE_ACCESS_TOKEN)return s(t);if(e=e||u.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+c);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+c);return t.params.push("access_token="+e),s(t)}function n(t){return 0===t.indexOf("mapbox:")}function o(t){for(var e=0;e=2||512===r?"@2x":"",c=l.supportsWebp?".webp":"$1";return i.path=i.path.replace(h,""+u+c),o(i.params),s(i)};var p=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/},{"./browser":110,"./config":114}],126:[function(t,e,r){"use strict";var i=t("./is_char_in_unicode_block");e.exports.allowsIdeographicBreaking=function(t){for(var e=0,i=t;e=65097&&t<=65103)||i["CJK Compatibility Ideographs"](t)||i["CJK Compatibility"](t)||i["CJK Radicals Supplement"](t)||i["CJK Strokes"](t)||!(!i["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||i["CJK Unified Ideographs Extension A"](t)||i["CJK Unified Ideographs"](t)||i["Enclosed CJK Letters and Months"](t)||i["Hangul Compatibility Jamo"](t)||i["Hangul Jamo Extended-A"](t)||i["Hangul Jamo Extended-B"](t)||i["Hangul Jamo"](t)||i["Hangul Syllables"](t)||i.Hiragana(t)||i["Ideographic Description Characters"](t)||i.Kanbun(t)||i["Kangxi Radicals"](t)||i["Katakana Phonetic Extensions"](t)||i.Katakana(t)&&12540!==t||!(!i["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!i["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||i["Unified Canadian Aboriginal Syllabics"](t)||i["Unified Canadian Aboriginal Syllabics Extended"](t)||i["Vertical Forms"](t)||i["Yijing Hexagram Symbols"](t)||i["Yi Syllables"](t)||i["Yi Radicals"](t)))},r.charHasNeutralVerticalOrientation=function(t){return!!(i["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||i["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||i["Letterlike Symbols"](t)||i["Number Forms"](t)||i["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||i["Control Pictures"](t)&&9251!==t||i["Optical Character Recognition"](t)||i["Enclosed Alphanumerics"](t)||i["Geometric Shapes"](t)||i["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||i["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||i["CJK Symbols and Punctuation"](t)||i.Katakana(t)||i["Private Use Area"](t)||i["CJK Compatibility Forms"](t)||i["Small Form Variants"](t)||i["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)},r.charHasRotatedVerticalOrientation=function(t){return!(r.charHasUprightVerticalOrientation(t)||r.charHasNeutralVerticalOrientation(t))}},{"./is_char_in_unicode_block":123}],127:[function(t,e,r){"use strict";function i(t){var e=JSON.stringify(t);if(y[e])return y[e];var r=void 0===t.alignment?1:t.alignment,i=0,a=0,u=["Uint8"],h=t.members.map(function(t){u.indexOf(t.type)<0&&u.push(t.type);var e=o(t.type),s=i=n(i,Math.max(r,e)),l=t.components||1;return a=Math.max(a,e),i+=e*l,{name:t.name,type:t.type,components:l,offset:s}}),f=n(i,Math.max(a,r)),d=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(p);d.prototype.alignment=r,d.prototype.size=f;for(var v=0,g=h;vthis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*d),f),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},m.prototype._refreshViews=function(){for(var t=this,e=0,r=this._usedTypes;e=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)},r.bezier=function(t,e,r,n){var o=new i(t,e,r,n);return function(t){return o.solve(t)}},r.ease=r.bezier(.25,.1,.25,1),r.clamp=function(t,e,r){return Math.min(r,Math.max(e,t))},r.wrap=function(t,e,r){var i=r-e,n=((t-e)%i+i)%i+e;return n===e?r:n},r.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var i=t.length,n=new Array(t.length),o=null;t.forEach(function(t,a){e(t,function(t,e){t&&(o=t),n[a]=e,0===--i&&r(o,n)})})},r.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},r.keysDifference=function(t,e){var r=[];for(var i in t)i in e||r.push(i);return r},r.extend=function(t,e,r,i){for(var n=arguments,o=1;o=0)return!0;return!1};var a={};r.warnOnce=function(t){a[t]||("undefined"!=typeof console&&console.warn(t),a[t]=!0)},r.isCounterClockwise=function(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)},r.calculateSignedArea=function(t){for(var e,r,i=0,n=0,o=t.length,a=o-1;n0||Math.abs(e.y-i.y)>0)&&Math.abs(r.calculateSignedArea(t))>.01},r.sphericalToCartesian=function(t){var e=t[0],r=t[1],i=t[2];return r+=90,r*=Math.PI/180,i*=Math.PI/180,[e*Math.cos(r)*Math.sin(i),e*Math.sin(r)*Math.sin(i),e*Math.cos(i)]},r.parseCacheControl=function(t){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,r={};if(t.replace(e,function(t,e,i,n){var o=i||n;return r[e]=!o||o.toLowerCase(),""}),r["max-age"]){var i=parseInt(r["max-age"],10);isNaN(i)?delete r["max-age"]:r["max-age"]=i}return r}},{"../geo/coordinate":18,"@mapbox/unitbezier":134,"point-geometry":197}],130:[function(t,e,r){"use strict";var i=function(t,e,r,i){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=i,this.properties=t.properties,null!=t.id&&(this.id=t.id)},n={geometry:{}};n.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},n.geometry.set=function(t){this._geometry=t},i.prototype.toJSON=function(){var t=this,e={geometry:this.geometry};for(var r in this)"_geometry"!==r&&"_vectorTileFeature"!==r&&(e[r]=t[r]);return e},Object.defineProperties(i.prototype,n),e.exports=i},{}],131:[function(t,e,r){"use strict";var i=t("./script_detection");e.exports=function(t){for(var r="",n=0;n":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":126}],132:[function(t,e,r){"use strict";var i=t("./web_worker"),n=function(){this.active={}};n.prototype.acquire=function(e){var r=this;if(!this.workers){var n=t("../mapbox-gl").workerCount;for(this.workers=[];this.workers.lengthi)return i;for(;ro?r=n:i=n,n=.5*(i-r)+r}return n},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],135:[function(t,e,r){function i(t){return t=Math.round(t),t<0?0:t>255?255:t}function n(t){return t<0?0:t>1?1:t}function o(t){return i("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return n("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}function u(t){var e=t.replace(/ /g,"").toLowerCase();if(e in l)return l[e].slice();if("#"===e[0]){if(4===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null}if(7===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null}return null}var n=e.indexOf("("),u=e.indexOf(")");if(n!==-1&&u+1===e.length){var c=e.substr(0,n),h=e.substr(n+1,u-(n+1)).split(","),p=1;switch(c){case"rgba":if(4!==h.length)return null;p=a(h.pop());case"rgb":return 3!==h.length?null:[o(h[0]),o(h[1]),o(h[2]),p];case"hsla":if(4!==h.length)return null;p=a(h.pop());case"hsl":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),m=a(h[2]),y=m<=.5?m*(d+1):m+d-m*d,v=2*m-y;return[i(255*s(v,y,f+1/3)),i(255*s(v,y,f)),i(255*s(v,y,f-1/3)),p];default:return null}}return null}var l={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{r.parseCSSColor=u}catch(t){}},{}],136:[function(t,e,r){"use strict";function i(t,e,r){r=r||2;var i=e&&e.length,o=i?e[0]*r:t.length,s=n(t,0,o,r,!0),u=[];if(!s)return u;var l,c,p,f,d,m,y;if(i&&(s=h(t,e,s,r)),t.length>80*r){l=p=t[0],c=f=t[1];for(var v=r;vp&&(p=d),m>f&&(f=m);y=Math.max(p-l,f-c)}return a(s,u,r,l,c,y),u}function n(t,e,r,i,n){var o,a;if(n===I(t,e,r,i)>0)for(o=e;o=e;o-=i)a=M(o,t[o],t[o+1],a);return a&&w(a,a.next)&&(P(a),a=a.next),a}function o(t,e){if(!t)return t;e||(e=t);var r,i=t;do if(r=!1,i.steiner||!w(i,i.next)&&0!==b(i.prev,i,i.next))i=i.next;else{if(P(i),i=e=i.prev,i===i.next)return null;r=!0}while(r||i!==e);return e}function a(t,e,r,i,n,h,p){if(t){!p&&h&&m(t,i,n,h);for(var f,d,y=t;t.prev!==t.next;)if(f=t.prev,d=t.next,h?u(t,i,n,h):s(t))e.push(f.i/r),e.push(t.i/r),e.push(d.i/r),P(t),t=d.next,y=d.next;else if(t=d,t===y){p?1===p?(t=l(t,e,r),a(t,e,r,i,n,h,2)):2===p&&c(t,e,r,i,n,h):a(o(t),e,r,i,n,h,1);break}}}function s(t){var e=t.prev,r=t,i=t.next;if(b(e,r,i)>=0)return!1;for(var n=t.next.next;n!==t.prev;){if(_(e.x,e.y,r.x,r.y,i.x,i.y,n.x,n.y)&&b(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function u(t,e,r,i){var n=t.prev,o=t,a=t.next;if(b(n,o,a)>=0)return!1;for(var s=n.xo.x?n.x>a.x?n.x:a.x:o.x>a.x?o.x:a.x,c=n.y>o.y?n.y>a.y?n.y:a.y:o.y>a.y?o.y:a.y,h=v(s,u,e,r,i),p=v(l,c,e,r,i),f=t.nextZ;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function l(t,e,r){var i=t;do{var n=i.prev,o=i.next.next;!w(n,o)&&E(n,i,i.next,o)&&S(n,o)&&S(o,n)&&(e.push(n.i/r),e.push(i.i/r),e.push(o.i/r),P(i),P(i.next),i=t=o),i=i.next}while(i!==t);return i}function c(t,e,r,i,n,s){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&x(u,l)){var c=A(u,l);return u=o(u,u.next),c=o(c,c.next),a(u,e,r,i,n,s),void a(c,e,r,i,n,s)}l=l.next}u=u.next}while(u!==t)}function h(t,e,r,i){var a,s,u,l,c,h=[];for(a=0,s=e.length;a=i.next.y){var s=i.x+(o-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(s<=n&&s>a){if(a=s,s===n){if(o===i.y)return i;if(o===i.next.y)return i.next}r=i.x=i.x&&i.x>=c&&_(or.x)&&S(i,t)&&(r=i,p=u)),i=i.next;return r}function m(t,e,r,i){var n=t;do null===n.z&&(n.z=v(n.x,n.y,e,r,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,y(n)}function y(t){var e,r,i,n,o,a,s,u,l=1;do{for(r=t,t=null,o=null,a=0;r;){for(a++,i=r,s=0,e=0;e0||u>0&&i;)0===s?(n=i,i=i.nextZ,u--):0!==u&&i?r.z<=i.z?(n=r,r=r.nextZ,s--):(n=i,i=i.nextZ,u--):(n=r,r=r.nextZ,s--),o?o.nextZ=n:t=n,n.prevZ=o,o=n;r=i}o.nextZ=null,l*=2}while(a>1);return t}function v(t,e,r,i,n){return t=32767*(t-r)/n,e=32767*(e-i)/n,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function g(t){var e=t,r=t;do e.x=0&&(t-a)*(i-s)-(r-a)*(e-s)>=0&&(r-a)*(o-s)-(n-a)*(i-s)>=0}function x(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!T(t,e)&&S(t,e)&&S(e,t)&&z(t,e)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function w(t,e){return t.x===e.x&&t.y===e.y}function E(t,e,r,i){return!!(w(t,e)&&w(r,i)||w(t,i)&&w(r,e))||b(t,e,r)>0!=b(t,e,i)>0&&b(r,i,t)>0!=b(r,i,e)>0}function T(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&E(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function z(t,e){var r=t,i=!1,n=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&n<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==t);return i}function A(t,e){var r=new L(t.i,t.x,t.y),i=new L(e.i,e.x,e.y),n=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=n,n.prev=r,i.next=r,r.prev=i,o.next=i,i.prev=o,i}function M(t,e,r,i){var n=new L(t,e,r);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function P(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function L(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function I(t,e,r,i){for(var n=0,o=e,a=r-i;o0&&(i+=t[n-1].length,r.holes.push(i))}return r}},{}],137:[function(t,e,r){function i(t){var e,r,n,l,c,h;switch(typeof t){case"object":if(null===t)return null;if(o(t)){for(n="[",r=t.length-1,e=0;e-1&&(n+=i(t[e])),n+"]"}for(l=a(t).sort(),r=l.length,n="{",c=l[e=0],h=r>0&&void 0!==t[c];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};e.exports=function(t){if(void 0!==t)return""+i(t)},e.exports.stringSearch=s,e.exports.stringReplace=u},{}],138:[function(t,e,r){"use strict";function i(t){return new Function("f","var p = (f && f.properties || {}); return "+n(t))}function n(t){if(!t)return"true";var e=t[0];if(t.length<=1)return"any"===e?"false":"true";var r="=="===e?a(t[1],t[2],"===",!1):"!="===e?a(t[1],t[2],"!==",!1):"<"===e||">"===e||"<="===e||">="===e?a(t[1],t[2],e,!0):"any"===e?s(t.slice(1),"||"):"all"===e?s(t.slice(1),"&&"):"none"===e?c(s(t.slice(1),"||")):"in"===e?u(t[1],t.slice(2)):"!in"===e?c(u(t[1],t.slice(2))):"has"===e?l(t[1]):"!has"===e?c(l([t[1]])):"true";return"("+r+")"}function o(t){return"$type"===t?"f.type":"$id"===t?"f.id":"p["+JSON.stringify(t)+"]"}function a(t,e,r,i){var n=o(t),a="$type"===t?p.indexOf(e):JSON.stringify(e);return(i?"typeof "+n+"=== typeof "+a+"&&":"")+n+r+a}function s(t,e){return t.map(n).join(e)}function u(t,e){"$type"===t&&(e=e.map(function(t){return p.indexOf(t)}));var r=JSON.stringify(e.sort(h)),i=o(t);return e.length<=200?r+".indexOf("+i+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+i+", "+r+",0,"+(e.length-1)+")"}function l(t){return JSON.stringify(t)+" in p"}function c(t){return"!("+t+")"}function h(t,e){return te?1:0}e.exports=i;var p=["Unknown","Point","LineString","Polygon"]},{}],139:[function(t,e,r){function i(t){if("Polygon"===t.type)return n(t.coordinates);if("MultiPolygon"===t.type){for(var e=0,r=0;r0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(var r,i,n=0;n=0}var l=t("geojson-area");e.exports=i},{"geojson-area":139}],141:[function(t,e,r){"use strict";function i(t,e,r,i,a,u,l,c){if(r/=e,i/=e,l>=r&&c<=i)return t;if(l>i||c=r&&d<=i)h.push(m);else if(!(f>i||d=e&&s<=r&&n.push(a)}return n}function o(t,e,r,i,n,o){for(var s=[],u=0;ur?(x.push(n(l,d,e),n(l,d,r)),o||(x=a(s,x,y,v,g))):f>=e&&x.push(n(l,d,e)):p>r?fr&&(x.push(n(l,d,r)),o||(x=a(s,x,y,v,g))));l=m[_-1],p=l[i],p>=e&&p<=r&&x.push(l),h=x[x.length-1],o&&h&&(x[0][0]!==h[0]||x[0][1]!==h[1])&&x.push(x[0]),a(s,x,y,v,g)}return s}function a(t,e,r,i,n){return e.length&&(e.area=r,e.dist=i,void 0!==n&&(e.outer=n),t.push(e)),[]}e.exports=i;var s=t("./feature")},{"./feature":143}],142:[function(t,e,r){"use strict";function i(t,e){var r=[];if("FeatureCollection"===t.type)for(var i=0;i1?1:i,[r,i,0]}function s(t){for(var e,r,i=0,n=0,o=0;o1)return!1;var o=n.geometry[0].length;if(5!==o)return!1;for(var a=0;a1&&console.time("creation"),_=this.tiles[g]=d(t,v,r,i,x,e===f.maxZoom),this.tileCoords.push({z:e,x:r,y:i}),m)){m>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,i,_.numFeatures,_.numPoints,_.numSimplified),console.timeEnd("creation"));var b="z"+e;this.stats[b]=(this.stats[b]||0)+1,this.total++}if(_.source=t,n){if(e===f.maxZoom||e===n)continue;var w=1<1&&console.time("clipping");var E,T,S,z,A,M,P=.5*f.buffer/f.extent,L=.5-P,I=.5+P,C=1+P;E=T=S=z=null,A=p(t,v,r-P,r+I,0,a,_.min[0],_.max[0]),M=p(t,v,r+L,r+C,0,a,_.min[0],_.max[0]),A&&(E=p(A,v,i-P,i+I,1,s,_.min[1],_.max[1]),T=p(A,v,i+L,i+C,1,s,_.min[1],_.max[1])),M&&(S=p(M,v,i-P,i+I,1,s,_.min[1],_.max[1]),z=p(M,v,i+L,i+C,1,s,_.min[1],_.max[1])),m>1&&console.timeEnd("clipping"),t.length&&(h.push(E||[],e+1,2*r,2*i),h.push(T||[],e+1,2*r,2*i+1),h.push(S||[],e+1,2*r+1,2*i),h.push(z||[],e+1,2*r+1,2*i+1))}else n&&(y=e)}return y},n.prototype.getTile=function(t,e,r){var i=this.options,n=i.extent,a=i.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var c,p=t,f=e,d=r;!c&&p>0;)p--,f=Math.floor(f/2),d=Math.floor(d/2),c=this.tiles[o(p,f,d)];if(!c||!c.source)return null;if(a>1&&console.log("found parent tile z%d-%d-%d",p,f,d),l(c,n,i.buffer))return h.tile(c,n);a>1&&console.time("drilling down");var m=this.splitTile(c.source,p,f,d,t,e,r); -if(a>1&&console.timeEnd("drilling down"),null!==m){var y=1<i&&(a=r,i=o);i>s?(t[a][2]=i,h.push(l),h.push(a),l=a):(c=h.pop(),l=h.pop())}}function n(t,e,r){var i=e[0],n=e[1],o=r[0],a=r[1],s=t[0],u=t[1],l=o-i,c=a-n;if(0!==l||0!==c){var h=((s-i)*l+(u-n)*c)/(l*l+c*c);h>1?(i=o,n=a):h>0&&(i+=l*h,n+=c*h)}return l=s-i,c=u-n,l*l+c*c}e.exports=i},{}],146:[function(t,e,r){"use strict";function i(t,e,r,i,o,a){for(var s={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:e,transformed:!1,min:[2,1],max:[-1,0]},u=0;us.max[0]&&(s.max[0]=c[0]),c[1]>s.max[1]&&(s.max[1]=c[1])}return s}function n(t,e,r,i){var n,a,s,u,l=e.geometry,c=e.type,h=[],p=r*r;if(1===c)for(n=0;np)&&(f.push(u),t.numSimplified++),t.numPoints++;3===c&&o(f,s.outer),h.push(f)}else t.numPoints+=s.length;if(h.length){var d={geometry:h,type:c,tags:e.tags||null};null!==e.id&&(d.id=e.id),t.features.push(d)}}function o(t,e){var r=a(t);r<0===e&&t.reverse()}function a(t){for(var e,r,i=0,n=0,o=t.length,a=o-1;n=l[p+0]&&i>=l[p+1]?(a[h]=!0,o.push(u[h])):a[h]=!1}}},i.prototype._forEachCell=function(t,e,r,i,n,o,a){for(var s=this._convertToCellCoord(t),u=this._convertToCellCoord(e),l=this._convertToCellCoord(r),c=this._convertToCellCoord(i),h=s;h<=l;h++)for(var p=u;p<=c;p++){var f=this.d*p+h;if(n.call(this,t,e,r,i,f,o,a))return}},i.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},i.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=n+this.cells.length+1+1,r=0,i=0;i>1,c=-7,h=r?n-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=i;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,i),o-=l}return(f?-1:1)*a*Math.pow(2,o-i)},r.write=function(t,e,r,i,n,o){var a,s,u,l=8*o-n-1,c=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,d=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,n),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,n),a=0));n>=8;t[r+f]=255&s,f+=d,s/=256,n-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},{}],151:[function(t,e,r){"use strict";function i(t,e,r,i,o){return new n(t,e,r,i,o)}function n(t,e,r,i,n){e=e||o,r=r||a,n=n||Array,this.nodeSize=i||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var u=0;u=r&&s<=n&&u>=i&&u<=o&&c.push(t[d]);else{var m=Math.floor((f+p)/2);s=e[2*m],u=e[2*m+1],s>=r&&s<=n&&u>=i&&u<=o&&c.push(t[m]);var y=(h+1)%2;(0===h?r<=s:i<=u)&&(l.push(f),l.push(m-1),l.push(y)),(0===h?n>=s:o>=u)&&(l.push(m+1),l.push(p),l.push(y))}}return c}e.exports=i},{}],153:[function(t,e,r){"use strict";function i(t,e,r,o,a,s){if(!(a-o<=r)){var u=Math.floor((o+a)/2);n(t,e,u,o,a,s%2),i(t,e,r,o,u-1,s+1),i(t,e,r,u+1,a,s+1)}}function n(t,e,r,i,a,s){for(;a>i;){if(a-i>600){var u=a-i+1,l=r-i+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(i,Math.floor(r-l*h/u+p)),d=Math.min(a,Math.floor(r+(u-l)*h/u+p));n(t,e,r,f,d,s)}var m=e[2*r+s],y=i,v=a;for(o(t,e,i,r),e[2*a+s]>m&&o(t,e,i,a);ym;)v--}e[2*i+s]===m?o(t,e,i,v):(v++,o(t,e,v,a)),v<=r&&(i=v+1),r<=v&&(a=v-1)}}function o(t,e,r,i){a(t,r,i),a(e,2*r,2*i),a(e,2*r+1,2*i+1)}function a(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}e.exports=i},{}],154:[function(t,e,r){"use strict";function i(t,e,r,i,o,a){for(var s=[0,t.length-1,0],u=[],l=o*o;s.length;){var c=s.pop(),h=s.pop(),p=s.pop();if(h-p<=a)for(var f=p;f<=h;f++)n(e[2*f],e[2*f+1],r,i)<=l&&u.push(t[f]);else{var d=Math.floor((p+h)/2),m=e[2*d],y=e[2*d+1];n(m,y,r,i)<=l&&u.push(t[d]);var v=(c+1)%2;(0===c?r-o<=m:i-o<=y)&&(s.push(p),s.push(d-1),s.push(v)),(0===c?r+o>=m:i+o>=y)&&(s.push(d+1),s.push(h),s.push(v))}}return u}function n(t,e,r,i){var n=t-r,o=e-i;return n*n+o*o}e.exports=i},{}],155:[function(t,e,r){function i(t){return!!t&&"object"==typeof t}function n(t,e){for(var r=-1,i=t.length;++rl))return!1;for(;++u-1&&t%1==0&&t<=c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){return!!t&&"object"==typeof t}var c=9007199254740991,h="[object Arguments]",p="[object Function]",f="[object GeneratorFunction]",d=Object.prototype,m=d.hasOwnProperty,y=d.toString,v=d.propertyIsEnumerable;e.exports=i},{}],159:[function(t,e,r){function i(t){return!!t&&"object"==typeof t}function n(t,e){var r=null==t?void 0:t[e];return u(r)?r:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=g}function a(t){return s(t)&&m.call(t)==c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return null!=t&&(a(t)?y.test(f.call(t)):i(t)&&h.test(t))}var l="[object Array]",c="[object Function]",h=/^\[object .+?Constructor\]$/,p=Object.prototype,f=Function.prototype.toString,d=p.hasOwnProperty,m=p.toString,y=RegExp("^"+f.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=n(Array,"isArray"),g=9007199254740991,_=v||function(t){return i(t)&&o(t.length)&&m.call(t)==l};e.exports=_},{}],160:[function(t,e,r){function i(t,e,r,i){r="function"==typeof r?o(r,i,3):void 0;var a=r?r(t,e):void 0;return void 0===a?n(t,e,r):!!a}var n=t("lodash._baseisequal"),o=t("lodash._bindcallback");e.exports=i},{"lodash._baseisequal":155,"lodash._bindcallback":156}],161:[function(t,e,r){function i(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function n(t){return!!t&&"object"==typeof t}function o(t){return n(t)&&i(t.length)&&!!I[k.call(t)]}var a=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",h="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",v="[object Set]",g="[object String]",_="[object WeakMap]",x="[object ArrayBuffer]",b="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",S="[object Int16Array]",z="[object Int32Array]",A="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",L="[object Uint32Array]",I={};I[w]=I[E]=I[T]=I[S]=I[z]=I[A]=I[M]=I[P]=I[L]=!0,I[s]=I[u]=I[x]=I[l]=I[b]=I[c]=I[h]=I[p]=I[f]=I[d]=I[m]=I[y]=I[v]=I[g]=I[_]=!1;var C=Object.prototype,k=C.toString;e.exports=o},{}],162:[function(t,e,r){function i(t){return function(e){return null==e?void 0:e[t]}}function n(t){return null!=t&&a(g(t))}function o(t,e){return t="number"==typeof t||f.test(t)?+t:-1,e=null==e?v:e,t>-1&&t%1==0&&t-1&&t%1==0&&t<=v}function s(t){for(var e=l(t),r=e.length,i=r&&t.length,n=!!i&&a(i)&&(p(t)||h(t)),s=-1,u=[];++s0;++iv?Math.pow(t,1/3):t/y+d}function n(t){return t>m?t*t*t:y*(t-d)}function o(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function a(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function s(t){var e=a(t[0]),r=a(t[1]),n=a(t[2]),o=i((.4124564*e+.3575761*r+.1804375*n)/h),s=i((.2126729*e+.7151522*r+.072175*n)/p),u=i((.0193339*e+.119192*r+.9503041*n)/f);return[116*s-16,500*(o-s),200*(s-u),t[3]]}function u(t){var e=(t[0]+16)/116,r=isNaN(t[1])?e:e+t[1]/500,i=isNaN(t[2])?e:e-t[2]/200;return e=p*n(e),r=h*n(r),i=f*n(i),[o(3.2404542*r-1.5371385*e-.4985314*i),o(-.969266*r+1.8760108*e+.041556*i),o(.0556434*r-.2040259*e+1.0572252*i),t[3]]}function l(t){var e=s(t),r=e[0],i=e[1],n=e[2],o=Math.atan2(n,i)*_;return[o<0?o+360:o,Math.sqrt(i*i+n*n),r,t[3]]}function c(t){var e=t[0]*g,r=t[1],i=t[2];return u([i,Math.cos(e)*r,Math.sin(e)*r,t[3]])}var h=.95047,p=1,f=1.08883,d=4/29,m=6/29,y=3*m*m,v=m*m*m,g=Math.PI/180,_=180/Math.PI;e.exports={lab:{forward:s,reverse:u},hcl:{forward:l,reverse:c}}},{}],164:[function(t,e,r){"use strict";function i(t){return t}function n(t,e){var r;if(p(t)){var l,c=t.stops&&"object"==typeof t.stops[0][0],h=c||void 0!==t.property,d=c||!h,m=t.stops&&typeof(c?t.stops[0][0].property:t.stops[0][0]),y=t.type||e||("string"===m?"categorical":"exponential");if("exponential"===y)l=s;else if("interval"===y)l=a;else if("categorical"===y)l=o;else{if("identity"!==y)throw new Error('Unknown function type "'+y+'"');l=u}var v;if(t.colorSpace&&"rgb"!==t.colorSpace){if(!f[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);var g=f[t.colorSpace];t=JSON.parse(JSON.stringify(t));for(var _=0;_=t.stops.length)&&!(e<=t.stops[i][0]);)i++;return 0===i?t.stops[i][1]:i===t.stops.length?t.stops[i-1][1]:l(e,r,t.stops[i-1][0],t.stops[i][0],t.stops[i-1][1],t.stops[i][1])}function u(t,e){return e}function l(t,e,r,i,n,o){return"function"==typeof n?function(){var a=n.apply(void 0,arguments),s=o.apply(void 0,arguments);return l(t,e,r,i,a,s)}:n.length?h(t,e,r,i,n,o):c(t,e,r,i,n,o)}function c(t,e,r,i,n,o){var a,s=i-r,u=t-r;return a=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),n*(1-a)+o*a}function h(t,e,r,i,n,o){for(var a=[],s=0;s7)return[new i(c,u,"constants have been deprecated as of v8")];if(!(u in p.constants))return[new i(c,u,'constant "%s" not found',u)];e=o({},e,{value:p.constants[u]})}return l.function&&"object"===n(u)?r(e):l.type&&s[l.type]?s[l.type](e):a(o({},e,{valueSpec:l.type?h[l.type]:l}))}},{"../error/validation_error":167,"../util/extend":169,"../util/get_type":170,"./validate_array":174,"./validate_boolean":175,"./validate_color":176,"./validate_constants":177,"./validate_enum":178,"./validate_filter":179,"./validate_function":180,"./validate_layer":182,"./validate_light":184,"./validate_number":185,"./validate_object":186,"./validate_source":188,"./validate_string":189}],174:[function(t,e,r){"use strict";var i=t("../util/get_type"),n=t("./validate"),o=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.valueSpec,a=t.style,s=t.styleSpec,u=t.key,l=t.arrayElementValidator||n;if("array"!==i(e))return[new o(u,e,"array expected, %s found",i(e))];if(r.length&&e.length!==r.length)return[new o(u,e,"array length %d expected, length %d found",r.length,e.length)];if(r["min-length"]&&e.length7)return r?[new i(e,r,"constants have been deprecated as of v8")]:[];var a=n(r);if("object"!==a)return[new i(e,r,"object expected, %s found",a)];var s=[];for(var u in r)"@"!==u[0]&&s.push(new i(e+"."+u,r[u],'constants must start with "@"'));return s}},{"../error/validation_error":167,"../util/get_type":170}],178:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint");e.exports=function(t){var e=t.key,r=t.value,o=t.valueSpec,a=[];return Array.isArray(o.values)?o.values.indexOf(n(r))===-1&&a.push(new i(e,r,"expected one of [%s], %s found",o.values.join(", "),r)):Object.keys(o.values).indexOf(n(r))===-1&&a.push(new i(e,r,"expected one of [%s], %s found",Object.keys(o.values).join(", "),r)),a}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172}],179:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("./validate_enum"),o=t("../util/get_type"),a=t("../util/unbundle_jsonlint");e.exports=function t(e){var r,s=e.value,u=e.key,l=e.styleSpec,c=[];if("array"!==o(s))return[new i(u,s,"array expected, %s found",o(s))];if(s.length<1)return[new i(u,s,"filter array must have at least 1 element")];switch(c=c.concat(n({key:u+"[0]",value:s[0],valueSpec:l.filter_operator,style:e.style,styleSpec:e.styleSpec})),a(s[0])){case"<":case"<=":case">":case">=":s.length>=2&&"$type"==s[1]&&c.push(new i(u,s,'"$type" cannot be use with operator "%s"',s[0]));case"==":case"!=":3!=s.length&&c.push(new i(u,s,'filter array for operator "%s" must have 3 elements',s[0]));case"in":case"!in":s.length>=2&&(r=o(s[1]),"string"!==r?c.push(new i(u+"[1]",s[1],"string expected, %s found",r)):"@"===s[1][0]&&c.push(new i(u+"[1]",s[1],"filter key cannot be a constant")));for(var h=2;hl(r[0].zoom))return[new i(s,r[0].zoom,"stop zoom values must appear in ascending order")];l(r[0].zoom)!==f&&(f=l(r[0].zoom),p=void 0),e=e.concat(a({key:s+"[0]",value:r[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:u,value:c}}))}else e=e.concat(c({key:s+"[0]",value:r[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec}));return e=e.concat(o({key:s+"[1]",value:r[1],valueSpec:d,style:t.style,styleSpec:t.styleSpec})),"number"===n(r[0])&&"piecewise-constant"===d.function&&r[0]%1!==0&&e.push(new i(s+"[0]",r[0],"zoom level for piecewise-constant functions must be an integer")),e}function c(t){var e=n(t.value),r=l(t.value);if(h){if(e!==h)return[new i(t.key,t.value,"%s stop domain type must match previous stop domain type %s",e,h)]}else h=e,m||"string"!==e||(m="categorical");return"number"!==e&&"string"!==e?[new i(t.key,t.value,"property value must be a number or string")]:"number"!==e&&"categorical"!==m?[new i(t.key,t.value,"number expected, %s found",e)]:"categorical"!==m||"number"!==e||isFinite(r)&&Math.floor(r)===r?"number"===e&&void 0!==p&&r=8&&(g&&!t.valueSpec["property-function"]?x.push(new i(t.key,t.value,"property functions not supported")):v&&!t.valueSpec["zoom-function"]&&x.push(new i(t.key,t.value,"zoom functions not supported"))),"categorical"!==m&&!_||void 0!==t.value.property||x.push(new i(t.key,t.value,'"property" property is required')),x}},{"../error/validation_error":167,"../util/get_type":170,"../util/unbundle_jsonlint":172,"./validate":173,"./validate_array":174,"./validate_number":185,"./validate_object":186}],181:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("./validate_string");e.exports=function(t){var e=t.value,r=t.key,o=n(t);return o.length?o:(e.indexOf("{fontstack}")===-1&&o.push(new i(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&o.push(new i(r,e,'"glyphs" url must include a "{range}" token')),o)}},{"../error/validation_error":167,"./validate_string":189}],182:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_filter"),s=t("./validate_paint_property"),u=t("./validate_layout_property"),l=t("../util/extend");e.exports=function(t){var e=[],r=t.value,c=t.key,h=t.style,p=t.styleSpec;r.type||r.ref||e.push(new i(c,r,'either "type" or "ref" is required'));var f=n(r.type),d=n(r.ref);if(r.id)for(var m=0;mo.maximum?[new n(e,r,"%s is greater than the maximum value %s",r,o.maximum)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],186:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/get_type"),o=t("./validate");e.exports=function(t){var e=t.key,r=t.value,a=t.valueSpec||{},s=t.objectElementValidators||{},u=t.style,l=t.styleSpec,c=[],h=n(r);if("object"!==h)return[new i(e,r,"object expected, %s found",h)];for(var p in r){var f,d=p.split(".")[0],m=a[d]||a["*"];if(s[d])f=s[d];else if(a[d])f=o;else if(s["*"])f=s["*"];else{if(!a["*"]){c.push(new i(e,r[p],'unknown property "%s"',p));continue}f=o}c=c.concat(f({key:(e?e+".":e)+p,value:r[p],valueSpec:m,style:u,styleSpec:l,object:r,objectKey:p}))}for(d in a)a[d].required&&void 0===a[d].default&&void 0===r[d]&&c.push(new i(e,r,'missing required property "%s"',d));return c}},{"../error/validation_error":167,"../util/get_type":170,"./validate":173}],187:[function(t,e,r){"use strict";var i=t("./validate"),n=t("../error/validation_error");e.exports=function(t){var e=t.key,r=t.style,o=t.styleSpec,a=t.value,s=t.objectKey,u=o["paint_"+t.layerType];if(!u)return[];var l=s.match(/^(.*)-transition$/);return l&&u[l[1]]&&u[l[1]].transition?i({key:e,value:a,valueSpec:o.transition,style:r,styleSpec:o}):t.valueSpec||u[s]?i({key:t.key,value:a,valueSpec:t.valueSpec||u[s],style:r,styleSpec:o}):[new n(e,a,'unknown property "%s"',s)]}},{"../error/validation_error":167,"./validate":173}],188:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_enum");e.exports=function(t){var e=t.value,r=t.key,s=t.styleSpec,u=t.style;if(!e.type)return[new i(r,e,'"type" is required')];var l=n(e.type);switch(l){case"vector":case"raster":var c=[];if(c=c.concat(o({key:r,value:e,valueSpec:s.source_tile,style:t.style,styleSpec:s})),"url"in e)for(var h in e)["type","url","tileSize"].indexOf(h)<0&&c.push(new i(r+"."+h,e[h],'a source with a "url" property may not include a "%s" property',h));return c;case"geojson":return o({key:r,value:e,valueSpec:s.source_geojson,style:u,styleSpec:s});case"video":return o({key:r,value:e,valueSpec:s.source_video,style:u,styleSpec:s});case"image":return o({key:r,value:e,valueSpec:s.source_image,style:u,styleSpec:s});case"canvas":return o({key:r,value:e,valueSpec:s.source_canvas,style:u,styleSpec:s});default:return a({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:u,styleSpec:s})}}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172,"./validate_enum":178,"./validate_object":186}],189:[function(t,e,r){"use strict";var i=t("../util/get_type"),n=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.key,o=i(e);return"string"!==o?[new n(r,e,"string expected, %s found",o)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],190:[function(t,e,r){"use strict";function i(t,e){e=e||u;var r=[];return r=r.concat(s({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:l,"*":function(){return[]}}})),e.$version>7&&t.constants&&(r=r.concat(a({key:"constants",value:t.constants,style:t,styleSpec:e}))),n(r)}function n(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function o(t){return function(){return n(t.apply(this,arguments))}}var a=t("./validate/validate_constants"),s=t("./validate/validate"),u=t("../reference/latest.min"),l=t("./validate/validate_glyphs_url");i.source=o(t("./validate/validate_source")),i.light=o(t("./validate/validate_light")),i.layer=o(t("./validate/validate_layer")),i.filter=o(t("./validate/validate_filter")),i.paintProperty=o(t("./validate/validate_paint_property")),i.layoutProperty=o(t("./validate/validate_layout_property")),e.exports=i},{"../reference/latest.min":191,"./validate/validate":173,"./validate/validate_constants":177,"./validate/validate_filter":179,"./validate/validate_glyphs_url":181,"./validate/validate_layer":182,"./validate/validate_layout_property":183,"./validate/validate_light":184,"./validate/validate_paint_property":187,"./validate/validate_source":188}],191:[function(t,e,r){e.exports=t("./v8.min.json")},{"./v8.min.json":192}],192:[function(t,e,r){e.exports={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_tile","source_geojson","source_video","source_image","source_canvas"],source_tile:{type:{required:!0,type:"enum",values:{vector:{},raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_canvas:{type:{required:!0,type:"enum",values:{canvas:{}}},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}},animate:{type:"boolean",default:"true"},canvas:{type:"string",required:!0}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},"fill-extrusion":{},raster:{},background:{}}},metadata:{type:"*"},ref:{type:"string"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"},"paint.*":{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_fill-extrusion","layout_symbol","layout_raster","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_fill:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_circle:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_line:{"line-cap":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{butt:{},round:{},square:{}},default:"butt"},"line-join":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{bevel:{},round:{},miter:{}},default:"miter"},"line-miter-limit":{type:"number",default:2,function:"interpolated","zoom-function":!0,requires:[{"line-join":"miter"}]},"line-round-limit":{type:"number",default:1.05,function:"interpolated","zoom-function":!0,requires:[{"line-join":"round"}]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_symbol:{"symbol-placement":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{point:{},line:{}},default:"point"},"symbol-spacing":{type:"number",default:250,minimum:1,function:"interpolated","zoom-function":!0,units:"pixels",requires:[{"symbol-placement":"line"}]},"symbol-avoid-edges":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1},"icon-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image","text-field"]},"icon-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"]},"icon-size":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,requires:["icon-image"]},"icon-text-fit":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"]},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",function:"interpolated","zoom-function":!0,requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}]},"icon-image":{type:"string",function:"piecewise-constant","zoom-function":!0,tokens:!0},"icon-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,"property-function":!0,units:"degrees",requires:["icon-image"]},"icon-padding":{type:"number",default:2,minimum:0,function:"interpolated","zoom-function":!0,units:"pixels",requires:["icon-image"]},"icon-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":"line"}]},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,"property-function":!0,requires:["icon-image"]},"text-pitch-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-field":{type:"string",function:"piecewise-constant","zoom-function":!0,default:"",tokens:!0},"text-font":{type:"array",value:"string",function:"piecewise-constant","zoom-function":!0,default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"]},"text-size":{type:"number",default:16,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-line-height":{type:"number",default:1.2,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-letter-spacing":{type:"number",default:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-justify":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{left:{},center:{},right:{}},default:"center",requires:["text-field"]},"text-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field"]},"text-max-angle":{type:"number",default:45,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field",{"symbol-placement":"line"}]},"text-rotate":{type:"number",default:0,period:360,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":"line"}]},"text-transform":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"]},"text-offset":{type:"array",value:"number",units:"ems",function:"interpolated","zoom-function":!0,length:2,default:[0,0],requires:["text-field"]},"text-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field","icon-image"]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"}},function_stop:{type:"array",minimum:0,maximum:22,value:["number","color"],length:2},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},transition:!1},position:{type:"array",default:[1.15,210,30],length:3,value:"number",transition:!0,function:"interpolated","zoom-function":!0,"property-function":!1},color:{type:"color",default:"#ffffff",function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},intensity:{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0},"fill-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"fill-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"}]},"fill-outline-color":{type:"color",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}]},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-translate"]},"fill-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!1,default:1,minimum:0,maximum:1,transition:!0},"fill-extrusion-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-extrusion-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"]},"fill-extrusion-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"fill-extrusion-height":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"]}},paint_line:{"line-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"line-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"line-pattern"}]},"line-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["line-translate"]},"line-width":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-gap-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-offset":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-dasharray":{type:"array",value:"number",function:"piecewise-constant","zoom-function":!0,minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}]},"line-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-blur":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"circle-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["circle-translate"]},"circle-pitch-scale":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map"},"circle-stroke-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-stroke-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"]},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"]}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-hue-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,transition:!0,units:"degrees"},"raster-brightness-min":{type:"number",function:"interpolated","zoom-function":!0,default:0,minimum:0,maximum:1,transition:!0},"raster-brightness-max":{type:"number",function:"interpolated","zoom-function":!0,default:1,minimum:0,maximum:1,transition:!0},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-fade-duration":{type:"number",default:300,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"milliseconds"}},paint_background:{"background-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:[{"!":"background-pattern"}]},"background-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}}}},{}],193:[function(t,e,r){"use strict";function i(t){return!!(n()&&o()&&a()&&s()&&u()&&l()&&c()&&h(t&&t.failIfMajorPerformanceCaveat))}function n(){return"undefined"!=typeof window&&"undefined"!=typeof document}function o(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function a(){return Function.prototype&&Function.prototype.bind}function s(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function u(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function l(){return"Worker"in window}function c(){return"Uint8ClampedArray"in window}function h(t){return void 0===f[t]&&(f[t]=p(t)),f[t]}function p(t){var e=document.createElement("canvas"),r=Object.create(i.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=t,e.probablySupportsContext?e.probablySupportsContext("webgl",r)||e.probablySupportsContext("experimental-webgl",r):e.supportsContext?e.supportsContext("webgl",r)||e.supportsContext("experimental-webgl",r):e.getContext("webgl",r)||e.getContext("experimental-webgl",r)}"undefined"!=typeof e&&e.exports?e.exports=i:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=i);var f={};i.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}},{}],194:[function(t,e,r){(function(t){function e(t,e){for(var r=0,i=t.length-1;i>=0;i--){var n=t[i];"."===n?t.splice(i,1):".."===n?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function i(t,e){if(t.filter)return t.filter(e);for(var r=[],i=0;i=-1&&!n;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,n="/"===a.charAt(0))}return r=e(i(r.split("/"),function(t){return!!t}),!n).join("/"),(n?"/":"")+r||"."},r.normalize=function(t){var n=r.isAbsolute(t),o="/"===a(t,-1);return t=e(i(t.split("/"),function(t){return!!t}),!n).join("/"),t||n||(t="."),t&&o&&(t+="/"),(n?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(i(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function i(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var n=i(t.split("/")),o=i(e.split("/")),a=Math.min(n.length,o.length),s=a,u=0;u55295&&e<57344){if(!r){e>56319||o+1===i?n.push(239,191,189):r=e;continue}if(e<56320){n.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(n.push(239,191,189),r=null);e<128?n.push(e):e<2048?n.push(e>>6|192,63&e|128):e<65536?n.push(e>>12|224,e>>6&63|128,63&e|128):n.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return n}e.exports=i;var o,a,s,u=t("ieee754");o={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return u.read(this,t,!0,23,4)},readDoubleLE:function(t){return u.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return u.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return u.write(this,t,e,!0,52,8)},toString:function(t,e,r){var i="",n="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(e.pos>=r)throw new Error("Given varint doesn't fit into 10 bytes");var i=255&t;e.buf[e.pos++]=i|(t>=128?128:0),t/=128}}function a(t,e,r){var i=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(i);for(var n=r.pos-1;n>=t;n--)r.buf[n+i]=r.buf[n]}function s(t,e){for(var r=0;r>3,o=this.pos;t(n,e,this),this.pos===o&&this.skip(i)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*v;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*v;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,e,r=this.buf;return e=r[this.pos++],t=127&e,e<128?t:(e=r[this.pos++],t|=(127&e)<<7,e<128?t:(e=r[this.pos++],t|=(127&e)<<14,e<128?t:(e=r[this.pos++],t|=(127&e)<<21,e<128?t:n(t,this))))},readVarint64:function(){var t=this.pos,e=this.readVarint();if(e<_)return e;for(var r=this.pos-2;255===this.buf[r];)r--;r127;);else if(e===i.Bytes)this.pos=this.readVarint()+this.pos;else if(e===i.Fixed32)this.pos+=4;else{if(e!==i.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455?void o(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t);var e=y.byteLength(t);this.writeVarint(e),this.realloc(e),this.buf.write(t,this.pos),this.pos+=e},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&a(r,i,this),this.pos=r-1,this.writeVarint(i),this.pos+=i},writeMessage:function(t,e,r){this.writeTag(t,i.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,s,e)},writePackedSVarint:function(t,e){this.writeMessage(t,u,e)},writePackedBoolean:function(t,e){this.writeMessage(t,h,e)},writePackedFloat:function(t,e){this.writeMessage(t,l,e)},writePackedDouble:function(t,e){this.writeMessage(t,c,e)},writePackedFixed32:function(t,e){this.writeMessage(t,p,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,m,e)},writeBytesField:function(t,e){this.writeTag(t,i.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,i.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,i.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,i.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}}).call(this,"undefined"!=typeof r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":195}],197:[function(t,e,r){"use strict";function i(t,e){this.x=t,this.y=e}e.exports=i,i.prototype={clone:function(){return new i(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),i=e*this.x-r*this.y,n=r*this.x+e*this.y;return this.x=i,this.y=n,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},i.convert=function(t){return t instanceof i?t:Array.isArray(t)?new i(t[0],t[1]):t}},{}],198:[function(t,e,r){function i(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function o(t){if(h===setTimeout)return setTimeout(t,0);if((h===i||!h)&&setTimeout)return h=setTimeout,setTimeout(t,0);try{return h(t,0)}catch(e){try{return h.call(null,t,0)}catch(e){return h.call(this,t,0)}}}function a(t){if(p===clearTimeout)return clearTimeout(t);if((p===n||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(e){try{return p.call(null,t)}catch(e){return p.call(this,t)}}}function s(){y&&d&&(y=!1,d.length?m=d.concat(m):v=-1,m.length&&u())}function u(){if(!y){var t=o(s);y=!0;for(var e=m.length;e;){for(d=m,m=[];++v1)for(var r=1;rr;){if(a-r>600){var u=a-r+1,l=e-r+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(r,Math.floor(e-l*h/u+p)),d=Math.min(a,Math.floor(e+(u-l)*h/u+p));i(t,e,f,d,s)}var m=t[e],y=r,v=a;for(n(t,r,e),s(t[a],m)>0&&n(t,r,a);y0;)v--}0===s(t[r],m)?n(t,r,v):(v++,n(t,v,a)),v<=e&&(r=v+1),e<=v&&(a=v-1)}}function n(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function o(t,e){return te?1:0}e.exports=i},{}],200:[function(e,r,i){!function(e,n){"object"==typeof i&&"undefined"!=typeof r?r.exports=n():"function"==typeof t&&t.amd?t(n):e.ShelfPack=n()}(this,function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.stats={},this.count=function(t){this.stats[t]=(0|this.stats[t])+1}}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,i,n,o=[],a=0;a0){for(var s=0,u=0,l=0;li.h||t>i.free||rc)&&(h=2*Math.max(t,c)),(uu)&&(l=2*Math.max(r,u)),this.resize(h,l),this.packOne(t,r)}return null},t.prototype.clear=function(){this.shelves=[],this.stats={}},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;rthis.free||e>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,{x:r,y:this.y,w:t,h:e,width:t,height:e}},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t})},{}],201:[function(t,e,r){"use strict";function i(t){return new n(t)}function n(t){this.options=f(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function o(t,e,r,i){return{x:t,y:e,zoom:1/0,id:i,numPoints:r}}function a(t,e){var r=t.geometry.coordinates;return o(l(r[0]),c(r[1]),1,e)}function s(t){return{type:"Feature",properties:u(t),geometry:{type:"Point",coordinates:[h(t.x),p(t.y)]}}}function u(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:r}}function l(t){return t/360+.5}function c(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function h(t){return 360*(t-.5)}function p(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function f(t,e){for(var r in e)t[r]=e[r];return t}function d(t){return t.x}function m(t){return t.y}var y=t("kdbush");e.exports=i,n.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var r="prepare "+t.length+" points";e&&console.time(r),this.points=t;var i=t.map(a);e&&console.timeEnd(r);for(var n=this.options.maxZoom;n>=this.options.minZoom;n--){var o=+Date.now();this.trees[n+1]=y(i,d,m,this.options.nodeSize,Float32Array),i=this._cluster(i,n),e&&console.log("z%d: %d clusters in %dms",n,i.length,+Date.now()-o)}return this.trees[this.options.minZoom]=y(i,d,m,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],i=r.range(l(t[0]),c(t[3]),l(t[2]),c(t[1])),n=[],o=0;o=0;r--)this._down(r)}function n(t,e){return te?1:0}function o(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}e.exports=i,i.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare;t>0;){var i=Math.floor((t-1)/2);if(!(r(e[t],e[i])<0))break;o(e,i,t),t=i}},_down:function(t){for(var e=this.data,r=this.compare,i=this.length;;){var n=2*t+1,a=n+1,s=t;if(n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(e)?r.showHidden=e:e&&i._extend(r,e),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,t,r.depth)}function o(t,e){var r=n.styles[e];return r?"["+n.colors[r][0]+"m"+t+"["+n.colors[r][1]+"m":t}function a(t,e){return t}function s(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}function u(t,e,r){if(t.customInspect&&e&&z(e.inspect)&&e.inspect!==i.inspect&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return _(n)||(n=u(t,n,r)),n}var o=l(t,e);if(o)return o;var a=Object.keys(e),m=s(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),S(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(z(e)){var y=e.name?": "+e.name:"";return t.stylize("[Function"+y+"]","special")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(T(e))return t.stylize(Date.prototype.toString.call(e),"date");if(S(e))return c(e)}var v="",g=!1,x=["{","}"];if(d(e)&&(g=!0,x=["[","]"]),z(e)){var b=e.name?": "+e.name:"";v=" [Function"+b+"]"}if(w(e)&&(v=" "+RegExp.prototype.toString.call(e)),T(e)&&(v=" "+Date.prototype.toUTCString.call(e)),S(e)&&(v=" "+c(e)),0===a.length&&(!g||0==e.length))return x[0]+v+x[1];if(r<0)return w(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var E;return E=g?h(t,e,r,m,a):a.map(function(i){return p(t,e,r,m,i,g)}),t.seen.pop(),f(E,v,x)}function l(t,e){if(b(e))return t.stylize("undefined","undefined");if(_(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return g(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,i,n){for(var o=[],a=0,s=e.length;a-1&&(s=o?s.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n"))):s=t.stylize("[Circular]","special")),b(a)){if(o&&n.match(/^\d+$/))return s;a=JSON.stringify(""+n),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function f(t,e,r){var i=0,n=t.reduce(function(t,e){return i++,e.indexOf("\n")>=0&&i++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function d(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function y(t){return null===t}function v(t){return null==t}function g(t){return"number"==typeof t}function _(t){return"string"==typeof t}function x(t){return"symbol"==typeof t}function b(t){return void 0===t}function w(t){return E(t)&&"[object RegExp]"===M(t)}function E(t){return"object"==typeof t&&null!==t}function T(t){return E(t)&&"[object Date]"===M(t)}function S(t){return E(t)&&("[object Error]"===M(t)||t instanceof Error)}function z(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function M(t){return Object.prototype.toString.call(t)}function P(t){return t<10?"0"+t.toString(10):t.toString(10)}function L(){var t=new Date,e=[P(t.getHours()),P(t.getMinutes()),P(t.getSeconds())].join(":");return[t.getDate(),D[t.getMonth()],e].join(" ")}function I(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var C=/%[sdj%]/g;i.format=function(t){if(!_(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(i[r++]);case"%d":return Number(i[r++]);case"%j":try{return JSON.stringify(i[r++])}catch(t){return"[Circular]"}default:return t}}),s=i[r];r>3}if(n--,1===i||2===i)o+=t.readSVarint(),a+=t.readSVarint(),1===i&&(e&&s.push(e),e=[]),e.push(new u(o,a));else{if(7!==i)throw new Error("unknown command "+i);e&&e.push(e[0].clone())}}return e&&s.push(e),s},i.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,i=0,n=0,o=0,a=1/0,s=-(1/0),u=1/0,l=-(1/0);t.pos>3}if(i--,1===r||2===r)n+=t.readSVarint(),o+=t.readSVarint(),ns&&(s=n),ol&&(l=o);else if(7!==r)throw new Error("unknown command "+r)}return[a,u,s,l]},i.prototype.toGeoJSON=function(t,e,r){function n(t){for(var e=0;e>3;e=1===i?t.readString():2===i?t.readFloat():3===i?t.readDouble():4===i?t.readVarint64():5===i?t.readVarint():6===i?t.readSVarint():7===i?t.readBoolean():null}return e}var a=t("./vectortilefeature.js");e.exports=i,i.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new a(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":208}],210:[function(t,e,r){function i(t){var e=[];for(var r in t.layers)e.push(o(t.layers[r]));var i=new c;return h.tile.write({layers:e},i),i.finish()}function n(t){var e={};for(var r in t)e[r]=new p(t[r].features),e[r].name=r;return i({layers:e})}function o(t){for(var e={name:t.name||"",version:t.version||1,extent:t.extent||4096,keys:[],values:[],features:[]},r={},i={},n=0;n>31}function u(t){for(var e=[],r=0,i=0,n=t.length,o=0;o= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, Buffer) {var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.mapboxgl = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0){for(var o=0,a=0,u=0;uh.maxh||t>h.maxw||i<=h.maxh&&t<=h.maxw&&(r=h.maxw*h.maxh-t*i,rn.free)){if(i===n.h)return this.allocShelf(f,t,i,s);i>n.h||ic)&&(p=2*Math.max(t,c)),(uu)&&(l=2*Math.max(i,u)),this.resize(p,l),this.packOne(t,i,s)}return null},t.prototype.allocFreebin=function(t,e,i,s){var h=this.freebins.splice(t,1)[0];return h.id=s,h.w=e,h.h=i,h.refcount=0,this.bins[s]=h,this.ref(h),h},t.prototype.allocShelf=function(t,e,i,s){var h=this.shelves[t],n=h.alloc(e,i,s);return this.bins[s]=n,this.ref(n),n},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1===++t.refcount){var e=t.h;this.stats[e]=(0|this.stats[e])+1}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0===--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var i=0;ithis.free||e>this.h)return null;var h=this.x;return this.x+=t,this.free-=t,new i(s,h,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}); +},{}],3:[function(require,module,exports){ +function UnitBezier(t,i,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(r-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=e,this.p2y=r}module.exports=UnitBezier,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(t,i){"undefined"==typeof i&&(i=1e-6);var e,r,s,h,n;for(s=t,n=0;n<8;n++){if(h=this.sampleCurveX(s)-t,Math.abs(h)r)return r;for(;eh?e=s:r=s,s=.5*(r-e)+e}return s},UnitBezier.prototype.solve=function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}; +},{}],4:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){s=s||{};var f=e+"?"+["bbox="+o(r,n,i),"format="+(s.format||"image/png"),"service="+(s.service||"WMS"),"version="+(s.version||"1.1.1"),"request="+(s.request||"GetMap"),"srs="+(s.srs||"EPSG:3857"),"width="+(s.width||256),"height="+(s.height||256),"layers="+t].join("&");return f}function o(e,t,o){t=Math.pow(2,o)-t-1;var n=r(256*e,256*t,o),i=r(256*(e+1),256*(t+1),o);return n[0]+","+n[1]+","+i[0]+","+i[1]}function r(e,t,o){var r=2*Math.PI*6378137/256/Math.pow(2,o),n=e*r-2*Math.PI*6378137/2,i=t*r-2*Math.PI*6378137/2;return[n,i]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})}); +},{}],5:[function(require,module,exports){ +"use strict";function earcut(e,n,r){r=r||2;var t=n&&n.length,i=t?n[0]*r:e.length,x=linkedList(e,0,i,r,!0),a=[];if(!x)return a;var o,l,u,s,v,f,y;if(t&&(x=eliminateHoles(e,n,x,r)),e.length>80*r){o=u=e[0],l=s=e[1];for(var d=r;du&&(u=v),f>s&&(s=f);y=Math.max(u-o,s-l)}return earcutLinked(x,a,r,o,l,y),a}function linkedList(e,n,r,t,i){var x,a;if(i===signedArea(e,n,r,t)>0)for(x=n;x=n;x-=t)a=insertNode(x,e[x],e[x+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(e,n){if(!e)return e;n||(n=e);var r,t=e;do if(r=!1,t.steiner||!equals(t,t.next)&&0!==area(t.prev,t,t.next))t=t.next;else{if(removeNode(t),t=n=t.prev,t===t.next)return null;r=!0}while(r||t!==n);return n}function earcutLinked(e,n,r,t,i,x,a){if(e){!a&&x&&indexCurve(e,t,i,x);for(var o,l,u=e;e.prev!==e.next;)if(o=e.prev,l=e.next,x?isEarHashed(e,t,i,x):isEar(e))n.push(o.i/r),n.push(e.i/r),n.push(l.i/r),removeNode(e),e=l.next,u=l.next;else if(e=l,e===u){a?1===a?(e=cureLocalIntersections(e,n,r),earcutLinked(e,n,r,t,i,x,2)):2===a&&splitEarcut(e,n,r,t,i,x):earcutLinked(filterPoints(e),n,r,t,i,x,1);break}}}function isEar(e){var n=e.prev,r=e,t=e.next;if(area(n,r,t)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(pointInTriangle(n.x,n.y,r.x,r.y,t.x,t.y,i.x,i.y)&&area(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function isEarHashed(e,n,r,t){var i=e.prev,x=e,a=e.next;if(area(i,x,a)>=0)return!1;for(var o=i.xx.x?i.x>a.x?i.x:a.x:x.x>a.x?x.x:a.x,s=i.y>x.y?i.y>a.y?i.y:a.y:x.y>a.y?x.y:a.y,v=zOrder(o,l,n,r,t),f=zOrder(u,s,n,r,t),y=e.nextZ;y&&y.z<=f;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(y=e.prevZ;y&&y.z>=v;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.prevZ}return!0}function cureLocalIntersections(e,n,r){var t=e;do{var i=t.prev,x=t.next.next;!equals(i,x)&&intersects(i,t,t.next,x)&&locallyInside(i,x)&&locallyInside(x,i)&&(n.push(i.i/r),n.push(t.i/r),n.push(x.i/r),removeNode(t),removeNode(t.next),t=e=x),t=t.next}while(t!==e);return t}function splitEarcut(e,n,r,t,i,x){var a=e;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&isValidDiagonal(a,o)){var l=splitPolygon(a,o);return a=filterPoints(a,a.next),l=filterPoints(l,l.next),earcutLinked(a,n,r,t,i,x),void earcutLinked(l,n,r,t,i,x)}o=o.next}a=a.next}while(a!==e)}function eliminateHoles(e,n,r,t){var i,x,a,o,l,u=[];for(i=0,x=n.length;i=t.next.y){var o=t.x+(x-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(o<=i&&o>a){if(a=o,o===i){if(x===t.y)return t;if(x===t.next.y)return t.next}r=t.x=t.x&&t.x>=s&&pointInTriangle(xr.x)&&locallyInside(t,e)&&(r=t,f=l)),t=t.next;return r}function indexCurve(e,n,r,t){var i=e;do null===i.z&&(i.z=zOrder(i.x,i.y,n,r,t)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,sortLinked(i)}function sortLinked(e){var n,r,t,i,x,a,o,l,u=1;do{for(r=e,e=null,x=null,a=0;r;){for(a++,t=r,o=0,n=0;n0||l>0&&t;)0===o?(i=t,t=t.nextZ,l--):0!==l&&t?r.z<=t.z?(i=r,r=r.nextZ,o--):(i=t,t=t.nextZ,l--):(i=r,r=r.nextZ,o--),x?x.nextZ=i:e=i,i.prevZ=x,x=i;r=t}x.nextZ=null,u*=2}while(a>1);return e}function zOrder(e,n,r,t,i){return e=32767*(e-r)/i,n=32767*(n-t)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),n=16711935&(n|n<<8),n=252645135&(n|n<<4),n=858993459&(n|n<<2),n=1431655765&(n|n<<1),e|n<<1}function getLeftmost(e){var n=e,r=e;do n.x=0&&(e-a)*(t-o)-(r-a)*(n-o)>=0&&(r-a)*(x-o)-(i-a)*(t-o)>=0}function isValidDiagonal(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!intersectsPolygon(e,n)&&locallyInside(e,n)&&locallyInside(n,e)&&middleInside(e,n)}function area(e,n,r){return(n.y-e.y)*(r.x-n.x)-(n.x-e.x)*(r.y-n.y)}function equals(e,n){return e.x===n.x&&e.y===n.y}function intersects(e,n,r,t){return!!(equals(e,n)&&equals(r,t)||equals(e,t)&&equals(r,n))||area(e,n,r)>0!=area(e,n,t)>0&&area(r,t,e)>0!=area(r,t,n)>0}function intersectsPolygon(e,n){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==n.i&&r.next.i!==n.i&&intersects(r,r.next,e,n))return!0;r=r.next}while(r!==e);return!1}function locallyInside(e,n){return area(e.prev,e,e.next)<0?area(e,n,e.next)>=0&&area(e,e.prev,n)>=0:area(e,n,e.prev)<0||area(e,e.next,n)<0}function middleInside(e,n){var r=e,t=!1,i=(e.x+n.x)/2,x=(e.y+n.y)/2;do r.y>x!=r.next.y>x&&i<(r.next.x-r.x)*(x-r.y)/(r.next.y-r.y)+r.x&&(t=!t),r=r.next;while(r!==e);return t}function splitPolygon(e,n){var r=new Node(e.i,e.x,e.y),t=new Node(n.i,n.x,n.y),i=e.next,x=n.prev;return e.next=n,n.prev=e,r.next=i,i.prev=r,t.next=r,r.prev=t,x.next=t,t.prev=x,t}function insertNode(e,n,r,t){var i=new Node(e,n,r);return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function removeNode(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,n,r){this.i=e,this.x=n,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(e,n,r,t){for(var i=0,x=n,a=r-t;x0&&(t+=e[i-1].length,r.holes.push(t))}return r}; +},{}],6:[function(require,module,exports){ +function geometry(r){if("Polygon"===r.type)return polygonArea(r.coordinates);if("MultiPolygon"===r.type){for(var e=0,n=0;n0){e+=Math.abs(ringArea(r[0]));for(var n=1;n2){for(var n,t,o=0;o=0}var geojsonArea=require("geojson-area");module.exports=rewind; +},{"geojson-area":6}],8:[function(require,module,exports){ +"use strict";function clip(e,r,t,n,u,i,l,s){if(t/=r,n/=r,l>=t&&s<=n)return e;if(l>n||s=t&&c<=n)h.push(o);else if(!(a>n||c=r&&s<=t&&u.push(l)}return u}function clipGeometry(e,r,t,n,u,i){for(var l=[],s=0;st?(d.push(u(h,f,r),u(h,f,t)),i||(d=newSlice(l,d,v,m,w))):o>=r&&d.push(u(h,f,r)):c>t?ot&&(d.push(u(h,f,t)),i||(d=newSlice(l,d,v,m,w))));h=g[S-1],c=h[n],c>=r&&c<=t&&d.push(h),a=d[d.length-1],i&&a&&(d[0][0]!==a[0]||d[0][1]!==a[1])&&d.push(d[0]),newSlice(l,d,v,m,w)}return l}function newSlice(e,r,t,n,u){return r.length&&(r.area=t,r.dist=n,void 0!==u&&(r.outer=u),e.push(r)),[]}module.exports=clip;var createFeature=require("./feature"); +},{"./feature":10}],9:[function(require,module,exports){ +"use strict";function convert(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1?1:o,[r,o,0]}function calcSize(e){for(var t,r,o=0,a=0,i=0;i1)return!1;var r=n.geometry[0].length;if(5!==r)return!1;for(var s=0;s1&&console.time("creation"),m=this.tiles[d]=createTile(e,p,i,o,f,t===a.maxZoom),this.tileCoords.push({z:t,x:i,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,i,o,m.numFeatures,m.numPoints,m.numSimplified),console.timeEnd("creation"));var h="z"+t;this.stats[h]=(this.stats[h]||0)+1,this.total++}if(m.source=e,n){if(t===a.maxZoom||t===n)continue;var x=1<1&&console.time("clipping");var g,v,M,T,b,y,S=.5*a.buffer/a.extent,Z=.5-S,q=.5+S,w=1+S;g=v=M=T=null,b=clip(e,p,i-S,i+q,0,intersectX,m.min[0],m.max[0]),y=clip(e,p,i+Z,i+w,0,intersectX,m.min[0],m.max[0]),b&&(g=clip(b,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),v=clip(b,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),y&&(M=clip(y,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),T=clip(y,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),u>1&&console.timeEnd("clipping"),e.length&&(l.push(g||[],t+1,2*i,2*o),l.push(v||[],t+1,2*i,2*o+1),l.push(M||[],t+1,2*i+1,2*o),l.push(T||[],t+1,2*i+1,2*o+1))}else n&&(c=t)}return c},GeoJSONVT.prototype.getTile=function(e,t,i){var o=this.options,n=o.extent,r=o.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,i);for(var a,u=e,c=t,p=i;!a&&u>0;)u--,c=Math.floor(c/2),p=Math.floor(p/2),a=this.tiles[toID(u,c,p)];if(!a||!a.source)return null;if(r>1&&console.log("found parent tile z%d-%d-%d",u,c,p),isClippedSquare(a,n,o.buffer))return transform.tile(a,n);r>1&&console.time("drilling down");var d=this.splitTile(a.source,u,c,p,e,t,i);if(r>1&&console.timeEnd("drilling down"),null!==d){var m=1<p&&(s=e,p=r);p>o?(t[s][2]=p,g.push(u),g.push(s),u=s):(n=g.pop(),u=g.pop())}}function getSqSegDist(t,i,e){var p=i[0],r=i[1],s=e[0],o=e[1],f=t[0],u=t[1],n=s-p,g=o-r;if(0!==n||0!==g){var l=((f-p)*n+(u-r)*g)/(n*n+g*g);l>1?(p=s,r=o):l>0&&(p+=n*l,r+=g*l)}return n=f-p,g=u-r,n*n+g*g}module.exports=simplify; +},{}],13:[function(require,module,exports){ +"use strict";function createTile(e,n,r,i,t,u){for(var a={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:n,transformed:!1,min:[2,1],max:[-1,0]},m=0;ma.max[0]&&(a.max[0]=l[0]),l[1]>a.max[1]&&(a.max[1]=l[1])}return a}function addFeature(e,n,r,i){var t,u,a,m,s=n.geometry,l=n.type,o=[],f=r*r;if(1===l)for(t=0;tf)&&(d.push(m),e.numSimplified++),e.numPoints++;3===l&&rewind(d,a.outer),o.push(d)}else e.numPoints+=a.length;if(o.length){var g={geometry:o,type:l,tags:n.tags||null};null!==n.id&&(g.id=n.id),e.features.push(g)}}function rewind(e,n){var r=signedArea(e);r<0===n&&e.reverse()}function signedArea(e){for(var n,r,i=0,t=0,u=e.length,a=u-1;t=a[u+0]&&s>=a[u+1]?(n[f]=!0,h.push(l[f])):n[f]=!1}}},GridIndex.prototype._forEachCell=function(t,r,e,s,i,h,n){for(var o=this._convertToCellCoord(t),l=this._convertToCellCoord(r),a=this._convertToCellCoord(e),d=this._convertToCellCoord(s),f=o;f<=a;f++)for(var u=l;u<=d;u++){var y=this.d*u+f;if(i.call(this,t,r,e,s,y,h,n))return}},GridIndex.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},GridIndex.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,r=NUM_PARAMS+this.cells.length+1+1,e=0,s=0;s>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; +},{}],18:[function(require,module,exports){ +"use strict";function kdbush(t,i,e,s,n){return new KDBush(t,i,e,s,n)}function KDBush(t,i,e,s,n){i=i||defaultGetX,e=e||defaultGetY,n=n||Array,this.nodeSize=s||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var r=0;r=s&&a<=h&&t>=u&&t<=e&&f.push(p[i]);else{var c=Math.floor((g+v)/2);a=r[2*c],t=r[2*c+1],a>=s&&a<=h&&t>=u&&t<=e&&f.push(p[c]);var d=(l+1)%2;(0===l?s<=a:u<=t)&&(n.push(g),n.push(c-1),n.push(d)),(0===l?h>=a:e>=t)&&(n.push(c+1),n.push(v),n.push(d))}}return f}module.exports=range; +},{}],20:[function(require,module,exports){ +"use strict";function sortKD(t,a,o,s,r,e){if(!(r-s<=o)){var f=Math.floor((s+r)/2);select(t,a,f,s,r,e%2),sortKD(t,a,o,s,f-1,e+1),sortKD(t,a,o,f+1,r,e+1)}}function select(t,a,o,s,r,e){for(;r>s;){if(r-s>600){var f=r-s+1,p=o-s+1,w=Math.log(f),m=.5*Math.exp(2*w/3),n=.5*Math.sqrt(w*m*(f-m)/f)*(p-f/2<0?-1:1),c=Math.max(s,Math.floor(o-p*m/f+n)),h=Math.min(r,Math.floor(o+(f-p)*m/f+n));select(t,a,o,c,h,e)}var i=a[2*o+e],l=s,M=r;for(swapItem(t,a,s,o),a[2*r+e]>i&&swapItem(t,a,s,r);li;)M--}a[2*s+e]===i?swapItem(t,a,s,M):(M++,swapItem(t,a,M,r)),M<=o&&(s=M+1),o<=M&&(r=M-1)}}function swapItem(t,a,o,s){swap(t,o,s),swap(a,2*o,2*s),swap(a,2*o+1,2*s+1)}function swap(t,a,o){var s=t[a];t[a]=t[o],t[o]=s}module.exports=sortKD; +},{}],21:[function(require,module,exports){ +"use strict";function within(s,p,r,t,u,h){for(var i=[0,s.length-1,0],o=[],n=u*u;i.length;){var e=i.pop(),a=i.pop(),f=i.pop();if(a-f<=h)for(var v=f;v<=a;v++)sqDist(p[2*v],p[2*v+1],r,t)<=n&&o.push(s[v]);else{var l=Math.floor((f+a)/2),c=p[2*l],q=p[2*l+1];sqDist(c,q,r,t)<=n&&o.push(s[l]);var D=(e+1)%2;(0===e?r-u<=c:t-u<=q)&&(i.push(f),i.push(l-1),i.push(D)),(0===e?r+u>=c:t+u>=q)&&(i.push(l+1),i.push(a),i.push(D))}}return o}function sqDist(s,p,r,t){var u=s-r,h=p-t;return u*u+h*h}module.exports=within; +},{}],22:[function(require,module,exports){ +"use strict";function isSupported(e){return!!(isBrowser()&&isArraySupported()&&isFunctionSupported()&&isObjectSupported()&&isJSONSupported()&&isWorkerSupported()&&isUint8ClampedArraySupported()&&isWebGLSupportedCached(e&&e.failIfMajorPerformanceCaveat))}function isBrowser(){return"undefined"!=typeof window&&"undefined"!=typeof document}function isArraySupported(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function isFunctionSupported(){return Function.prototype&&Function.prototype.bind}function isObjectSupported(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function isJSONSupported(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function isWorkerSupported(){return"Worker"in window}function isUint8ClampedArraySupported(){return"Uint8ClampedArray"in window}function isWebGLSupportedCached(e){return void 0===isWebGLSupportedCache[e]&&(isWebGLSupportedCache[e]=isWebGLSupported(e)),isWebGLSupportedCache[e]}function isWebGLSupported(e){var t=document.createElement("canvas"),r=Object.create(isSupported.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=e,t.probablySupportsContext?t.probablySupportsContext("webgl",r)||t.probablySupportsContext("experimental-webgl",r):t.supportsContext?t.supportsContext("webgl",r)||t.supportsContext("experimental-webgl",r):t.getContext("webgl",r)||t.getContext("experimental-webgl",r)}"undefined"!=typeof module&&module.exports?module.exports=isSupported:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=isSupported);var isWebGLSupportedCache={};isSupported.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}; +},{}],23:[function(require,module,exports){ +(function (process){ +function normalizeArray(r,t){for(var e=0,n=r.length-1;n>=0;n--){var s=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");return r}function filter(r,t){if(r.filter)return r.filter(t);for(var e=[],n=0;n=-1&&!t;e--){var n=e>=0?arguments[e]:process.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(r=n+"/"+r,t="/"===n.charAt(0))}return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),(t?"/":"")+r||"."},exports.normalize=function(r){var t=exports.isAbsolute(r),e="/"===substr(r,-1);return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),r||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){var r=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(r,function(r,t){if("string"!=typeof r)throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))},exports.relative=function(r,t){function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(var n=e(r.split("/")),s=e(t.split("/")),i=Math.min(n.length,s.length),o=i,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}module.exports=Buffer;var ieee754=require("ieee754"),BufferMethods,lastStr,lastStrEncoded;BufferMethods={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return ieee754.read(this,t,!0,23,4)},readDoubleLE:function(t){return ieee754.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return ieee754.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return ieee754.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(i.pos>=e)throw new Error("Given varint doesn't fit into 10 bytes");var r=255&t;i.buf[i.pos++]=r|(t>=128?128:0),t/=128}}function reallocForRawMessage(t,i,e){var r=i<=16383?1:i<=2097151?2:i<=268435455?3:Math.ceil(Math.log(i)/(7*Math.LN2));e.realloc(r);for(var s=e.pos-1;s>=t;s--)e.buf[s+r]=e.buf[s]}function writePackedVarint(t,i){for(var e=0;e>3,n=this.pos;t(s,i,this),this.pos===n&&this.skip(r)}return i},readMessage:function(t,i){return this.readFields(t,i,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,i,e=this.buf;return i=e[this.pos++],t=127&i,i<128?t:(i=e[this.pos++],t|=(127&i)<<7,i<128?t:(i=e[this.pos++],t|=(127&i)<<14,i<128?t:(i=e[this.pos++],t|=(127&i)<<21,i<128?t:readVarintRemainder(t,this))))},readVarint64:function(){var t=this.pos,i=this.readVarint();if(i127;);else if(i===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(i===Pbf.Fixed32)this.pos+=4;else{if(i!==Pbf.Fixed64)throw new Error("Unimplemented type: "+i);this.pos+=8}},writeTag:function(t,i){this.writeVarint(t<<3|i)},realloc:function(t){for(var i=this.length||16;i268435455?void writeBigVarint(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t);var i=Buffer.byteLength(t);this.writeVarint(i),this.realloc(i),this.buf.write(t,this.pos),this.pos+=i},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var i=t.length;this.writeVarint(i),this.realloc(i);for(var e=0;e=128&&reallocForRawMessage(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,i,e){this.writeTag(t,Pbf.Bytes),this.writeRawMessage(i,e)},writePackedVarint:function(t,i){this.writeMessage(t,writePackedVarint,i)},writePackedSVarint:function(t,i){this.writeMessage(t,writePackedSVarint,i)},writePackedBoolean:function(t,i){this.writeMessage(t,writePackedBoolean,i)},writePackedFloat:function(t,i){this.writeMessage(t,writePackedFloat,i)},writePackedDouble:function(t,i){this.writeMessage(t,writePackedDouble,i)},writePackedFixed32:function(t,i){this.writeMessage(t,writePackedFixed32,i)},writePackedSFixed32:function(t,i){this.writeMessage(t,writePackedSFixed32,i)},writePackedFixed64:function(t,i){this.writeMessage(t,writePackedFixed64,i)},writePackedSFixed64:function(t,i){this.writeMessage(t,writePackedSFixed64,i)},writeBytesField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeBytes(i)},writeFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFixed32(i)},writeSFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeSFixed32(i)},writeFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeFixed64(i)},writeSFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeSFixed64(i)},writeVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeVarint(i)},writeSVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeSVarint(i)},writeStringField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeString(i)},writeFloatField:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFloat(i)},writeDoubleField:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeDouble(i)},writeBooleanField:function(t,i){this.writeVarintField(t,Boolean(i))}}; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./buffer":24}],26:[function(require,module,exports){ +"use strict";function Point(t,n){this.x=t,this.y=n}module.exports=Point,Point.prototype={clone:function(){return new Point(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,i=t.y-this.y;return n*n+i*i},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},_matMult:function(t){var n=t[0]*this.x+t[1]*this.y,i=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var n=Math.cos(t),i=Math.sin(t),s=n*this.x-i*this.y,r=i*this.x+n*this.y;return this.x=s,this.y=r,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Point.convert=function(t){return t instanceof Point?t:Array.isArray(t)?new Point(t[0],t[1]):t}; +},{}],27:[function(require,module,exports){ +function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var u=1;ur;){if(o-r>600){var f=o-r+1,e=t-r+1,l=Math.log(f),s=.5*Math.exp(2*l/3),i=.5*Math.sqrt(l*s*(f-s)/f)*(e-f/2<0?-1:1),n=Math.max(r,Math.floor(t-e*s/f+i)),h=Math.min(o,Math.floor(t+(f-e)*s/f+i));partialSort(a,t,n,h,p)}var u=a[t],M=r,w=o;for(swap(a,r,t),p(a[o],u)>0&&swap(a,r,o);M0;)w--}0===p(a[r],u)?swap(a,r,w):(w++,swap(a,w,o)),w<=t&&(r=w+1),t<=w&&(o=w-1)}}function swap(a,t,r){var o=a[t];a[t]=a[r],a[r]=o}function defaultCompare(a,t){return at?1:0}module.exports=partialSort; +},{}],29:[function(require,module,exports){ +"use strict";function supercluster(t){return new SuperCluster(t)}function SuperCluster(t){this.options=extend(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function createCluster(t,e,o,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:o}}function createPointCluster(t,e){var o=t.geometry.coordinates;return createCluster(lngX(o[0]),latY(o[1]),1,e)}function getClusterJSON(t){return{type:"Feature",properties:getClusterProperties(t),geometry:{type:"Point",coordinates:[xLng(t.x),yLat(t.y)]}}}function getClusterProperties(t){var e=t.numPoints,o=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:o}}function lngX(t){return t/360+.5}function latY(t){var e=Math.sin(t*Math.PI/180),o=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return o<0?0:o>1?1:o}function xLng(t){return 360*(t-.5)}function yLat(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function extend(t,e){for(var o in e)t[o]=e[o];return t}function getX(t){return t.x}function getY(t){return t.y}var kdbush=require("kdbush");module.exports=supercluster,SuperCluster.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var o="prepare "+t.length+" points";e&&console.time(o),this.points=t;var n=t.map(createPointCluster);e&&console.timeEnd(o);for(var r=this.options.maxZoom;r>=this.options.minZoom;r--){var i=+Date.now();this.trees[r+1]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),n=this._cluster(n,r),e&&console.log("z%d: %d clusters in %dms",r,n.length,+Date.now()-i)}return this.trees[this.options.minZoom]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var o=this.trees[this._limitZoom(e)],n=o.range(lngX(t[0]),latY(t[3]),lngX(t[2]),latY(t[1])),r=[],i=0;i=0;a--)this._down(a)}function defaultCompare(t,i){return ti?1:0}function swap(t,i,a){var n=t[i];t[i]=t[a],t[a]=n}module.exports=TinyQueue,TinyQueue.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var i=this.data,a=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(a(i[t],i[n])<0))break;swap(i,n,t),t=n}},_down:function(t){for(var i=this.data,a=this.compare,n=this.length;;){var e=2*t+1,h=e+1,s=t;if(e=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){var p=r.name?": "+r.name:"";c=" [Function"+p+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var f;return f=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(f,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0,i=e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t>3}if(a--,1===i||2===i)o+=e.readSVarint(),n+=e.readSVarint(),1===i&&(t&&s.push(t),t=[]),t.push(new Point(o,n));else{if(7!==i)throw new Error("unknown command "+i);t&&t.push(t[0].clone())}}return t&&s.push(t),s},VectorTileFeature.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,a=0,o=0,n=1/0,s=-(1/0),p=1/0,h=-(1/0);e.pos>3}if(i--,1===r||2===r)a+=e.readSVarint(),o+=e.readSVarint(),as&&(s=a),oh&&(h=o);else if(7!==r)throw new Error("unknown command "+r)}return[n,p,s,h]},VectorTileFeature.prototype.toGeoJSON=function(e,t,r){function i(e){for(var t=0;t>3;t=1===a?e.readString():2===a?e.readFloat():3===a?e.readDouble():4===a?e.readVarint64():5===a?e.readVarint():6===a?e.readSVarint():7===a?e.readBoolean():null}return t}var VectorTileFeature=require("./vectortilefeature.js");module.exports=VectorTileLayer,VectorTileLayer.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature(this._pbf,t,this.extent,this._keys,this._values)}; +},{"./vectortilefeature.js":36}],38:[function(require,module,exports){ +function fromVectorTileJs(e){var r=[];for(var o in e.layers)r.push(prepareLayer(e.layers[o]));var t=new Pbf;return vtpb.tile.write({layers:r},t),t.finish()}function fromGeojsonVt(e){var r={};for(var o in e)r[o]=new GeoJSONWrapper(e[o].features),r[o].name=o;return fromVectorTileJs({layers:r})}function prepareLayer(e){for(var r={name:e.name||"",version:e.version||1,extent:e.extent||4096,keys:[],values:[],features:[]},o={},t={},n=0;n>31}function encodeGeometry(e){for(var r=[],o=0,t=0,n=e.length,a=0;aArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},ArrayGroup.prototype.prepareSegment2=function(r){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+r>ArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},ArrayGroup.prototype.populatePaintArrays=function(r){var e=this;for(var t in e.layerData){var a=e.layerData[t];0!==a.paintVertexArray.bytesPerElement&&a.programConfiguration.populatePaintArray(a.layer,a.paintVertexArray,a.paintPropertyStatistics,e.layoutVertexArray.length,e.globalProperties,r)}},ArrayGroup.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ArrayGroup.prototype.serialize=function(r){return{layoutVertexArray:this.layoutVertexArray.serialize(r),elementArray:this.elementArray&&this.elementArray.serialize(r),elementArray2:this.elementArray2&&this.elementArray2.serialize(r),paintVertexArrays:serializePaintVertexArrays(this.layerData,r),segments:this.segments,segments2:this.segments2}},ArrayGroup.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,module.exports=ArrayGroup; +},{"./program_configuration":58}],45:[function(require,module,exports){ +"use strict";var ArrayGroup=require("./array_group"),BufferGroup=require("./buffer_group"),util=require("../util/util"),Bucket=function(r,t){this.zoom=r.zoom,this.overscaling=r.overscaling,this.layers=r.layers,this.index=r.index,r.arrays?this.buffers=new BufferGroup(t,r.layers,r.zoom,r.arrays):this.arrays=new ArrayGroup(t,r.layers,r.zoom)};Bucket.prototype.populate=function(r,t){for(var e=this,i=0,a=r;i=EXTENT||o<0||o>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,y,o,-1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,1),addCircleVertex(r.layoutVertexArray,y,o,-1,1),r.elementArray.emplaceBack(u,u+1,u+2),r.elementArray.emplaceBack(u,u+3,u+2),n.vertexLength+=4,n.primitiveLength+=2}}r.populatePaintArrays(e.properties)},r}(Bucket);CircleBucket.programInterface=circleInterface,module.exports=CircleBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60}],47:[function(require,module,exports){ +"use strict";var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:createElementArrayType(3),elementArrayType2:createElementArrayType(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},FillBucket=function(e){function r(r){e.call(this,r,fillInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);tEXTENT)||e.y===r.y&&(e.y<0||e.y>EXTENT)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillExtrusionInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:createElementArrayType(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},FACTOR=Math.pow(2,13),FillExtrusionBucket=function(e){function r(r){e.call(this,r,fillExtrusionInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);t=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var _=g.sub(A)._perp()._unit();addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,1,m),m+=A.dist(g),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,1,m);var v=p.vertexLength;r.elementArray.emplaceBack(v,v+1,v+2),r.elementArray.emplaceBack(v+1,v+2,v+3),p.vertexLength+=4,p.primitiveLength+=2}}u.push(g.x),u.push(g.y)}}}for(var E=earcut(u,c),T=0;T>6)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(37.5*(Math.PI/180)),SHARP_CORNER_OFFSET=15,LINE_DISTANCE_BUFFER_BITS=15,LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,LINE_DISTANCE_BUFFER_BITS-1)/LINE_DISTANCE_SCALE,lineInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:createElementArrayType()},LineBucket=function(e){function t(t){e.call(this,t,lineInterface)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.addFeature=function(e){for(var t=this,r=this.layers[0].layout,i=r["line-join"],a=r["line-cap"],n=r["line-miter-limit"],d=r["line-round-limit"],s=0,u=loadGeometry(e,LINE_DISTANCE_BUFFER_BITS);s=2&&e[l-1].equals(e[l-2]);)l--;if(!(l<(u?3:2))){"bevel"===r&&(a=1.05);var o=SHARP_CORNER_OFFSET*(EXTENT/(512*this.overscaling)),p=e[0],c=this.arrays,_=c.prepareSegment(10*l);this.distance=0;var y,h,m,E,x,C,v,A=i,f=u?"butt":i,L=!0;this.e1=this.e2=this.e3=-1,u&&(y=e[l-2],x=p.sub(y)._unit()._perp());for(var V=0;V0){var b=y.dist(h);if(b>2*o){var R=y.sub(y.sub(h)._mult(o/b)._round());d.distance+=R.dist(h),d.addCurrentVertex(R,d.distance,E.mult(1),0,0,!1,_),h=R}}var g=h&&m,F=g?r:m?A:f;if(g&&"round"===F&&(Ia&&(F="bevel"),"bevel"===F&&(I>2&&(F="flipbevel"),I100)S=x.clone().mult(-1);else{var B=E.x*x.y-E.y*x.x>0?-1:1,k=I*E.add(x).mag()/E.sub(x).mag();S._perp()._mult(k*B)}d.addCurrentVertex(y,d.distance,S,0,0,!1,_),d.addCurrentVertex(y,d.distance,S.mult(-1),0,0,!1,_)}else if("bevel"===F||"fakeround"===F){var D=E.x*x.y-E.y*x.x>0,P=-Math.sqrt(I*I-1);if(D?(v=0,C=P):(C=0,v=P),L||d.addCurrentVertex(y,d.distance,E,C,v,!1,_),"fakeround"===F){for(var U=Math.floor(8*(.5-(T-.5))),q=void 0,M=0;M=0;O--)q=E.mult((O+1)/(U+1))._add(x)._unit(),d.addPieSliceVertex(y,d.distance,q,D,_)}m&&d.addCurrentVertex(y,d.distance,x,-C,-v,!1,_)}else"butt"===F?(L||d.addCurrentVertex(y,d.distance,E,0,0,!1,_),m&&d.addCurrentVertex(y,d.distance,x,0,0,!1,_)):"square"===F?(L||(d.addCurrentVertex(y,d.distance,E,1,1,!1,_),d.e1=d.e2=-1),m&&d.addCurrentVertex(y,d.distance,x,-1,-1,!1,_)):"round"===F&&(L||(d.addCurrentVertex(y,d.distance,E,0,0,!1,_),d.addCurrentVertex(y,d.distance,E,1,1,!0,_),d.e1=d.e2=-1),m&&(d.addCurrentVertex(y,d.distance,x,-1,-1,!0,_),d.addCurrentVertex(y,d.distance,x,0,0,!1,_)));if(N&&V2*o){var H=y.add(m.sub(y)._mult(o/X)._round());d.distance+=H.dist(y),d.addCurrentVertex(H,d.distance,x.mult(1),0,0,!1,_),y=H}}L=!1}c.populatePaintArrays(s)}},t.prototype.addCurrentVertex=function(e,t,r,i,a,n,d){var s,u=n?1:0,l=this.arrays,o=l.layoutVertexArray,p=l.elementArray;s=r.clone(),i&&s._sub(r.perp()._mult(i)),addLineVertex(o,e,s,u,0,i,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,s=r.mult(-1),a&&s._sub(r.perp()._mult(a)),addLineVertex(o,e,s,u,1,-a,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,t>MAX_LINE_DISTANCE/2&&(this.distance=0,this.addCurrentVertex(e,this.distance,r,i,a,n,d))},t.prototype.addPieSliceVertex=function(e,t,r,i,a){var n=i?1:0;r=r.mult(i?-1:1);var d=this.arrays,s=d.layoutVertexArray,u=d.elementArray;addLineVertex(s,e,r,0,n,0,t),this.e3=a.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),a.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},t}(Bucket);LineBucket.programInterface=lineInterface,module.exports=LineBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"vector-tile":34}],50:[function(require,module,exports){ +"use strict";function addVertex(e,t,o,r,a,i,n,l,s,c,y){e.emplaceBack(t,o,Math.round(64*r),Math.round(64*a),i/4,n/4,10*(c||0),y,10*(l||0),10*Math.min(s||25,25))}function addCollisionBoxVertex(e,t,o,r,a){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*r,10*a)}var Point=require("point-geometry"),ArrayGroup=require("../array_group"),BufferGroup=require("../buffer_group"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),EXTENT=require("../extent"),Anchor=require("../../symbol/anchor"),getAnchors=require("../../symbol/get_anchors"),resolveTokens=require("../../util/token"),Quads=require("../../symbol/quads"),Shaping=require("../../symbol/shaping"),resolveText=require("../../symbol/resolve_text"),mergeLines=require("../../symbol/mergelines"),clipLine=require("../../symbol/clip_line"),util=require("../../util/util"),scriptDetection=require("../../util/script_detection"),loadGeometry=require("../load_geometry"),CollisionFeature=require("../../symbol/collision_feature"),findPoleOfInaccessibility=require("../../util/find_pole_of_inaccessibility"),classifyRings=require("../../util/classify_rings"),VectorTileFeature=require("vector-tile").VectorTileFeature,rtlTextPlugin=require("../../source/rtl_text_plugin"),shapeText=Shaping.shapeText,shapeIcon=Shaping.shapeIcon,WritingMode=Shaping.WritingMode,getGlyphQuads=Quads.getGlyphQuads,getIconQuads=Quads.getIconQuads,elementArrayType=createElementArrayType(),layoutVertexArrayType=createVertexArrayType([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),symbolInterfaces={glyph:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"text-color",type:"Uint8"},{name:"a_halo_color",property:"text-halo-color",type:"Uint8"},{name:"a_halo_width",property:"text-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"text-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"text-opacity",type:"Uint8",multiplier:255}]},icon:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"icon-color",type:"Uint8"},{name:"a_halo_color",property:"icon-halo-color",type:"Uint8"},{name:"a_halo_width",property:"icon-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"icon-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"icon-opacity",type:"Uint8",multiplier:255}]},collisionBox:{layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:createElementArrayType(2)}},SymbolBucket=function(e){var t=this;if(this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.index=e.index,this.sdfIcons=e.sdfIcons,this.iconsNeedLinear=e.iconsNeedLinear,this.adjustedTextSize=e.adjustedTextSize,this.adjustedIconSize=e.adjustedIconSize,this.fontstack=e.fontstack,e.arrays){this.buffers={};for(var o in e.arrays)e.arrays[o]&&(t.buffers[o]=new BufferGroup(symbolInterfaces[o],e.layers,e.zoom,e.arrays[o]))}};SymbolBucket.prototype.populate=function(e,t){var o=this,r=this.layers[0],a=r.layout,i=a["text-font"],n=a["icon-image"],l=i&&(!r.isLayoutValueFeatureConstant("text-field")||a["text-field"]),s=n;if(this.features=[],l||s){for(var c=t.iconDependencies,y=t.glyphDependencies,p=y[i]=y[i]||{},x=0;xEXTENT||i.y<0||i.y>EXTENT);if(!x||n){var l=n||f;r.addSymbolInstance(i,a,t,o,r.layers[0],l,r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,s,h,m,y,u,g,{zoom:r.zoom},e.properties)}};if("line"===b)for(var S=0,T=clipLine(e.geometry,0,0,EXTENT,EXTENT);S=0;i--)if(o.dist(a[i])7*Math.PI/4)continue}else if(r&&a&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(r&&a&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var m=u.tl,g=u.tr,f=u.bl,b=u.br,v=u.tex,I=u.anchorPoint,S=Math.max(y+Math.log(u.minScale)/Math.LN2,p),T=Math.min(y+Math.log(u.maxScale)/Math.LN2,25);if(!(T<=S)){S===p&&(S=0);var M=Math.round(u.glyphAngle/(2*Math.PI)*256),B=e.prepareSegment(4),A=B.vertexLength;addVertex(c,I.x,I.y,m.x,m.y,v.x,v.y,S,T,p,M),addVertex(c,I.x,I.y,g.x,g.y,v.x+v.w,v.y,S,T,p,M),addVertex(c,I.x,I.y,f.x,f.y,v.x,v.y+v.h,S,T,p,M),addVertex(c,I.x,I.y,b.x,b.y,v.x+v.w,v.y+v.h,S,T,p,M),s.emplaceBack(A,A+1,A+2),s.emplaceBack(A+1,A+2,A+3),B.vertexLength+=4,B.primitiveLength+=2}}e.populatePaintArrays(n)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,r=o.layoutVertexArray,a=o.elementArray,i=-e.angle,n=e.yStretch,l=0,s=t.symbolInstances;lSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),z>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var _=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:M,textBoxEndIndex:B,iconBoxStartIndex:A,iconBoxEndIndex:z,glyphQuads:I,iconQuads:v,anchor:e,featureIndex:l,featureProperties:g,writingModes:_})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket; +},{"../../source/rtl_text_plugin":90,"../../symbol/anchor":157,"../../symbol/clip_line":159,"../../symbol/collision_feature":161,"../../symbol/get_anchors":163,"../../symbol/mergelines":166,"../../symbol/quads":167,"../../symbol/resolve_text":168,"../../symbol/shaping":169,"../../util/classify_rings":195,"../../util/find_pole_of_inaccessibility":201,"../../util/script_detection":209,"../../util/token":211,"../../util/util":212,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"point-geometry":26,"vector-tile":34}],51:[function(require,module,exports){ +"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=function(e,t,r){this.arrayBuffer=e.arrayBuffer,this.length=e.length,this.attributes=t.members,this.itemSize=t.bytesPerElement,this.type=r,this.arrayType=t};Buffer.fromStructArray=function(e,t){return new Buffer(e.serialize(),e.constructor.serialize(),t)},Buffer.prototype.bind=function(e){var t=e[this.type];this.buffer?e.bindBuffer(t,this.buffer):(this.gl=e,this.buffer=e.createBuffer(),e.bindBuffer(t,this.buffer),e.bufferData(t,this.arrayBuffer,e.STATIC_DRAW),this.arrayBuffer=null)},Buffer.prototype.setVertexAttribPointers=function(e,t,r){for(var f=this,i=0;i0?t+2*e:e}function translate(e,t,r,i,a){if(!t[0]&&!t[1])return e;t=Point.convert(t),"viewport"===r&&t._rotate(-i);for(var n=[],s=0;sr.max||d.yr.max)&&util.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return u}; +},{"../util/util":212,"./extent":54}],57:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),PosArray=createStructArrayType({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray; +},{"../util/struct_array":210}],58:[function(require,module,exports){ +"use strict";function getPaintAttributeValue(t,r,e,i){if(!t.zoomStops)return r.getPaintValue(t.property,e,i);var a=t.zoomStops.map(function(a){return r.getPaintValue(t.property,util.extend({},e,{zoom:a}),i)});return 1===a.length?a[0]:a}function normalizePaintAttribute(t,r){var e=t.name;e||(e=t.property.replace(r.type+"-","").replace(/-/g,"_"));var i="color"===r._paintSpecifications[t.property].type;return util.extend({name:"a_"+e,components:i?4:1,multiplier:i?255:1,dimensions:i?4:1},t)}var createVertexArrayType=require("./vertex_array_type"),util=require("../util/util"),ProgramConfiguration=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};ProgramConfiguration.createDynamic=function(t,r,e){for(var i=new ProgramConfiguration,a=0,n=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};LngLat.prototype.wrap=function(){return new LngLat(wrap(this.lng,-180,180),this.lat)},LngLat.prototype.toArray=function(){return[this.lng,this.lat]},LngLat.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},LngLat.convert=function(t){if(t instanceof LngLat)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new LngLat(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new LngLat(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},module.exports=LngLat; +},{"../util/util":212}],63:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),LngLatBounds=function(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};LngLatBounds.prototype.setNorthEast=function(t){return this._ne=LngLat.convert(t),this},LngLatBounds.prototype.setSouthWest=function(t){return this._sw=LngLat.convert(t),this},LngLatBounds.prototype.extend=function(t){var n,e,s=this._sw,o=this._ne;if(t instanceof LngLat)n=t,e=t;else{if(!(t instanceof LngLatBounds))return Array.isArray(t)?t.every(Array.isArray)?this.extend(LngLatBounds.convert(t)):this.extend(LngLat.convert(t)):this;if(n=t._sw,e=t._ne,!n||!e)return this}return s||o?(s.lng=Math.min(n.lng,s.lng),s.lat=Math.min(n.lat,s.lat),o.lng=Math.max(e.lng,o.lng),o.lat=Math.max(e.lat,o.lat)):(this._sw=new LngLat(n.lng,n.lat),this._ne=new LngLat(e.lng,e.lat)),this},LngLatBounds.prototype.getCenter=function(){return new LngLat((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},LngLatBounds.prototype.getSouthWest=function(){return this._sw},LngLatBounds.prototype.getNorthEast=function(){return this._ne},LngLatBounds.prototype.getNorthWest=function(){return new LngLat(this.getWest(),this.getNorth())},LngLatBounds.prototype.getSouthEast=function(){return new LngLat(this.getEast(),this.getSouth())},LngLatBounds.prototype.getWest=function(){return this._sw.lng},LngLatBounds.prototype.getSouth=function(){return this._sw.lat},LngLatBounds.prototype.getEast=function(){return this._ne.lng},LngLatBounds.prototype.getNorth=function(){return this._ne.lat},LngLatBounds.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},LngLatBounds.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},LngLatBounds.convert=function(t){return!t||t instanceof LngLatBounds?t:new LngLatBounds(t)},module.exports=LngLatBounds; +},{"./lng_lat":62}],64:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),Point=require("point-geometry"),Coordinate=require("./coordinate"),util=require("../util/util"),interp=require("../util/interpolate"),TileCoord=require("../source/tile_coord"),EXTENT=require("../data/extent"),glmatrix=require("@mapbox/gl-matrix"),vec4=glmatrix.vec4,mat4=glmatrix.mat4,mat2=glmatrix.mat2,Transform=function(t,i,o){this.tileSize=512,this._renderWorldCopies=void 0===o||o,this._minZoom=t||0,this._maxZoom=i||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},prototypeAccessors={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};prototypeAccessors.minZoom.get=function(){return this._minZoom},prototypeAccessors.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},prototypeAccessors.maxZoom.get=function(){return this._maxZoom},prototypeAccessors.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},prototypeAccessors.worldSize.get=function(){return this.tileSize*this.scale},prototypeAccessors.centerPoint.get=function(){return this.size._div(2)},prototypeAccessors.size.get=function(){return new Point(this.width,this.height)},prototypeAccessors.bearing.get=function(){return-this.angle/Math.PI*180},prototypeAccessors.bearing.set=function(t){var i=-util.wrap(t,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=mat2.create(),mat2.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},prototypeAccessors.pitch.get=function(){return this._pitch/Math.PI*180},prototypeAccessors.pitch.set=function(t){var i=util.clamp(t,0,60)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices())},prototypeAccessors.fov.get=function(){return this._fov/Math.PI*180},prototypeAccessors.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},prototypeAccessors.zoom.get=function(){return this._zoom},prototypeAccessors.zoom.set=function(t){var i=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom,this._constrain(),this._calcMatrices())},prototypeAccessors.center.get=function(){return this._center},prototypeAccessors.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Transform.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Transform.prototype.coveringTiles=function(t){var i=this.coveringZoomLevel(t),o=i;if(it.maxzoom&&(i=t.maxzoom);var e=this.pointCoordinate(this.centerPoint,i),r=new Point(e.column-.5,e.row-.5),n=[this.pointCoordinate(new Point(0,0),i),this.pointCoordinate(new Point(this.width,0),i),this.pointCoordinate(new Point(this.width,this.height),i),this.pointCoordinate(new Point(0,this.height),i)];return TileCoord.cover(i,n,t.reparseOverscaled?o:i,this._renderWorldCopies).sort(function(t,i){return r.dist(t)-r.dist(i)})},Transform.prototype.resize=function(t,i){this.width=t,this.height=i,this.pixelsToGLUnits=[2/t,-2/i],this._constrain(),this._calcMatrices()},prototypeAccessors.unmodified.get=function(){return this._unmodified},Transform.prototype.zoomScale=function(t){return Math.pow(2,t)},Transform.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Transform.prototype.project=function(t){return new Point(this.lngX(t.lng),this.latY(t.lat))},Transform.prototype.unproject=function(t){return new LngLat(this.xLng(t.x),this.yLat(t.y))},prototypeAccessors.x.get=function(){return this.lngX(this.center.lng)},prototypeAccessors.y.get=function(){return this.latY(this.center.lat)},prototypeAccessors.point.get=function(){return new Point(this.x,this.y)},Transform.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Transform.prototype.latY=function(t){var i=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-i)*this.worldSize/360},Transform.prototype.xLng=function(t){return 360*t/this.worldSize-180},Transform.prototype.yLat=function(t){var i=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(i*Math.PI/180))-90},Transform.prototype.setLocationAtPoint=function(t,i){var o=this.pointCoordinate(i)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(o))},Transform.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Transform.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Transform.prototype.locationCoordinate=function(t){return new Coordinate(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Transform.prototype.coordinateLocation=function(t){var i=t.zoomTo(this.zoom);return new LngLat(this.xLng(i.column*this.tileSize),this.yLat(i.row*this.tileSize))},Transform.prototype.pointCoordinate=function(t,i){void 0===i&&(i=this.tileZoom);var o=0,e=[t.x,t.y,0,1],r=[t.x,t.y,1,1];vec4.transformMat4(e,e,this.pixelMatrixInverse),vec4.transformMat4(r,r,this.pixelMatrixInverse);var n=e[3],s=r[3],a=e[0]/n,h=r[0]/s,c=e[1]/n,m=r[1]/s,p=e[2]/n,l=r[2]/s,u=p===l?0:(o-p)/(l-p);return new Coordinate(interp(a,h,u)/this.tileSize,interp(c,m,u)/this.tileSize,this.zoom)._zoomTo(i)},Transform.prototype.coordinatePoint=function(t){var i=t.zoomTo(this.zoom),o=[i.column*this.tileSize,i.row*this.tileSize,0,1];return vec4.transformMat4(o,o,this.pixelMatrix),new Point(o[0]/o[3],o[1]/o[3])},Transform.prototype.calculatePosMatrix=function(t,i){var o=t.toCoordinate(i),e=this.worldSize/this.zoomScale(o.zoom),r=mat4.identity(new Float64Array(16));return mat4.translate(r,r,[o.column*e,o.row*e,0]),mat4.scale(r,r,[e/EXTENT,e/EXTENT,1]),mat4.multiply(r,this.projMatrix,r),new Float32Array(r)},Transform.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,i,o,e,r,n,s,a,h=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),i=this.latY(this.latRange[0]),r=i-ti&&(a=i-l)}if(this.lngRange){var u=this.x,f=h.x/2;u-fe&&(s=e-f)}void 0===s&&void 0===a||(this.center=this.unproject(new Point(void 0!==s?s:this.x,void 0!==a?a:this.y))),this._unmodified=c,this._constraining=!1}},Transform.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,i=Math.PI/2+this._pitch,o=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-i-t),e=Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance,r=1.01*e,n=new Float64Array(16);mat4.perspective(n,this._fov,this.width/this.height,1,r),mat4.scale(n,n,[1,-1,1]),mat4.translate(n,n,[0,0,-this.cameraToCenterDistance]),mat4.rotateX(n,n,this._pitch),mat4.rotateZ(n,n,this.angle),mat4.translate(n,n,[-this.x,-this.y,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(mat4.scale(n,n,[1,1,s,1]),this.projMatrix=n,n=mat4.create(),mat4.scale(n,n,[this.width/2,-this.height/2,1]),mat4.translate(n,n,[1,-1,0]),this.pixelMatrix=mat4.multiply(new Float64Array(16),n,this.projMatrix),n=mat4.invert(new Float64Array(16),this.pixelMatrix),!n)throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform; +},{"../data/extent":54,"../source/tile_coord":94,"../util/interpolate":204,"../util/util":212,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(require,module,exports){ +"use strict";var browser=require("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=require("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=require("./ui/map"),mapboxgl.NavigationControl=require("./ui/control/navigation_control"),mapboxgl.GeolocateControl=require("./ui/control/geolocate_control"),mapboxgl.AttributionControl=require("./ui/control/attribution_control"),mapboxgl.ScaleControl=require("./ui/control/scale_control"),mapboxgl.FullscreenControl=require("./ui/control/fullscreen_control"),mapboxgl.Popup=require("./ui/popup"),mapboxgl.Marker=require("./ui/marker"),mapboxgl.Style=require("./style/style"),mapboxgl.LngLat=require("./geo/lng_lat"),mapboxgl.LngLatBounds=require("./geo/lng_lat_bounds"),mapboxgl.Point=require("point-geometry"),mapboxgl.Evented=require("./util/evented"),mapboxgl.supported=require("./util/browser").supported;var config=require("./util/config");mapboxgl.config=config;var rtlTextPlugin=require("./source/rtl_text_plugin");mapboxgl.setRTLTextPlugin=rtlTextPlugin.setRTLTextPlugin,Object.defineProperty(mapboxgl,"accessToken",{get:function(){return config.ACCESS_TOKEN},set:function(o){config.ACCESS_TOKEN=o}}); +},{"../package.json":43,"./geo/lng_lat":62,"./geo/lng_lat_bounds":63,"./source/rtl_text_plugin":90,"./style/style":146,"./ui/control/attribution_control":173,"./ui/control/fullscreen_control":174,"./ui/control/geolocate_control":175,"./ui/control/navigation_control":177,"./ui/control/scale_control":178,"./ui/map":187,"./ui/marker":188,"./ui/popup":189,"./util/browser":192,"./util/config":196,"./util/evented":200,"point-geometry":26}],66:[function(require,module,exports){ +"use strict";function drawBackground(r,t,e){var a=r.gl,i=r.transform,n=i.tileSize,o=e.paint["background-color"],l=e.paint["background-pattern"],u=e.paint["background-opacity"],f=!l&&1===o[3]&&1===u;if(r.isOpaquePass===f){a.disable(a.STENCIL_TEST),r.setDepthSublayer(0);var s;l?(s=r.useProgram("fillPattern",r.basicFillProgramConfiguration),pattern.prepare(l,r,s),r.tileExtentPatternVAO.bind(a,s,r.tileExtentBuffer)):(s=r.useProgram("fill",r.basicFillProgramConfiguration),a.uniform4fv(s.u_color,o),r.tileExtentVAO.bind(a,s,r.tileExtentBuffer)),a.uniform1f(s.u_opacity,u);for(var c=i.coveringTiles({tileSize:n}),g=0,p=c;g":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]}; +},{"../data/buffer":51,"../data/extent":54,"../data/pos_array":57,"../util/browser":192,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(require,module,exports){ +"use strict";function drawFill(t,e,r,i){var a=t.gl;a.enable(a.STENCIL_TEST);var l=!r.paint["fill-pattern"]&&r.isPaintValueFeatureConstant("fill-color")&&r.isPaintValueFeatureConstant("fill-opacity")&&1===r.paint["fill-color"][3]&&1===r.paint["fill-opacity"];t.isOpaquePass===l&&(t.setDepthSublayer(1),drawFillTiles(t,e,r,i,drawFillTile)),!t.isOpaquePass&&r.paint["fill-antialias"]&&(t.lineWidth(2),t.depthMask(!1),t.setDepthSublayer(r.getPaintProperty("fill-outline-color")?2:0),drawFillTiles(t,e,r,i,drawStrokeTile))}function drawFillTiles(t,e,r,i,a){for(var l=!0,n=0,o=i;n0?1/(1-r):1+r}function saturationFactor(r){return r>0?1-1/(1.001-r):-r}function getFadeValues(r,t,e,a){var i=e.paint["raster-fade-duration"];if(r.sourceCache&&i>0){var o=Date.now(),n=(o-r.timeAdded)/i,u=t?(o-t.timeAdded)/i:-1,s=r.sourceCache.getSource(),c=a.coveringZoomLevel({tileSize:s.tileSize,roundZoom:s.roundZoom}),f=!t||Math.abs(t.coord.z-c)>Math.abs(r.coord.z-c),d=f&&r.refreshedUponExpiration?1:util.clamp(f?n:1-u,0,1);return r.refreshedUponExpiration&&n>=1&&(r.refreshedUponExpiration=!1),t?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}var util=require("../util/util");module.exports=drawRaster; +},{"../util/util":212}],74:[function(require,module,exports){ +"use strict";function drawSymbols(e,t,a,i){if(!e.isOpaquePass){var o=!(a.layout["text-allow-overlap"]||a.layout["icon-allow-overlap"]||a.layout["text-ignore-placement"]||a.layout["icon-ignore-placement"]),r=e.gl;o?r.disable(r.STENCIL_TEST):r.enable(r.STENCIL_TEST),e.setDepthSublayer(0),e.depthMask(!1),drawLayerSymbols(e,t,a,i,!1,a.paint["icon-translate"],a.paint["icon-translate-anchor"],a.layout["icon-rotation-alignment"],a.layout["icon-rotation-alignment"],a.layout["icon-size"]),drawLayerSymbols(e,t,a,i,!0,a.paint["text-translate"],a.paint["text-translate-anchor"],a.layout["text-rotation-alignment"],a.layout["text-pitch-alignment"],a.layout["text-size"]),t.map.showCollisionBoxes&&drawCollisionDebug(e,t,a,i)}}function drawLayerSymbols(e,t,a,i,o,r,n,l,s,u){if(o||!e.style.sprite||e.style.sprite.loaded()){var f=e.gl,m="map"===l,p="map"===s,c=p;c?f.enable(f.DEPTH_TEST):f.disable(f.DEPTH_TEST);for(var d,_,h=0,g=i;hthis.previousZoom;a--)r.changeTimes[a]=e,r.changeOpacities[a]=r.opacities[a];for(a=0;a<256;a++){var s=e-r.changeTimes[a],o=255*(i?s/i:1);a<=t?r.opacities[a]=r.changeOpacities[a]+o:r.opacities[a]=r.changeOpacities[a]-o}this.changed=!0,this.previousZoom=t},FrameHistory.prototype.bind=function(e){this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.changed&&(e.texSubImage2D(e.TEXTURE_2D,0,0,0,256,1,e.ALPHA,e.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,256,1,0,e.ALPHA,e.UNSIGNED_BYTE,this.array))},module.exports=FrameHistory; +},{}],76:[function(require,module,exports){ +"use strict";var util=require("../util/util"),LineAtlas=function(t,i){this.width=t,this.height=i,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};LineAtlas.prototype.setSprite=function(t){this.sprite=t},LineAtlas.prototype.getDash=function(t,i){var e=t.join(",")+i;return this.positions[e]||(this.positions[e]=this.addDash(t,i)),this.positions[e]},LineAtlas.prototype.addDash=function(t,i){var e=this,h=i?7:0,s=2*h+1,a=128;if(this.nextRow+s>this.height)return util.warnOnce("LineAtlas out of space"),null;for(var r=0,n=0;n0?r.pop():null},Painter.prototype.getViewportTexture=function(e,r){var t=this.reusableTextures.viewport;if(t)return t.width===e&&t.height===r?t:(this.gl.deleteTexture(t),void(this.reusableTextures.viewport=null))},Painter.prototype.lineWidth=function(e){this.gl.lineWidth(util.clamp(e,this.lineWidthRange[0],this.lineWidthRange[1]))},Painter.prototype.showOverdrawInspector=function(e){if(e||this._showOverdrawInspector){this._showOverdrawInspector=e;var r=this.gl;if(e){r.blendFunc(r.CONSTANT_COLOR,r.ONE);var t=8,i=1/t;r.blendColor(i,i,i,0),r.clearColor(0,0,0,1),r.clear(r.COLOR_BUFFER_BIT)}else r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA)}},Painter.prototype.createProgram=function(e,r){var t=this.gl,i=t.createProgram(),a=shaders[e],s="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+browser.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(s+="#define OVERDRAW_INSPECTOR;\n");var o=r.applyPragmas(s+shaders.prelude.fragmentSource+a.fragmentSource,"fragment"),n=r.applyPragmas(s+shaders.prelude.vertexSource+a.vertexSource,"vertex"),l=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(l,o),t.compileShader(l),t.attachShader(i,l);var h=t.createShader(t.VERTEX_SHADER);t.shaderSource(h,n),t.compileShader(h),t.attachShader(i,h),t.linkProgram(i);for(var u=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:u},p=0;p>16,n>>16),o.uniform2f(i.u_pixel_coord_lower,65535&u,65535&n)}; +},{"../source/pixels_to_tile_units":87}],79:[function(require,module,exports){ +"use strict";var path=require("path");module.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n\n// To minimize the number of attributes needed in the mapbox-gl-native shaders,\n// we encode a 4-component color into a pair of floats (i.e. a vec2) as follows:\n// [ floor(color.r * 255) * 256 + color.g * 255,\n// floor(color.b * 255) * 256 + color.g * 255 ]\nvec4 decode_color(const vec2 encodedColor) {\n float r = floor(encodedColor[0]/256.0)/255.0;\n float g = (encodedColor[0] - r*256.0*255.0)/255.0;\n float b = floor(encodedColor[1]/256.0)/255.0;\n float a = (encodedColor[1] - b*256.0*255.0)/255.0;\n return vec4(r, g, b, a);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\n return mix(packedValue[0], packedValue[1], t);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\n vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\n vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\n return mix(minColor, maxColor, t);\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(0.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float gapwidth\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n" +},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\n\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\n\nuniform bool u_is_halo;\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_font_scale;\nuniform highp float u_gamma_scale;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / u_gamma_scale;\n lowp float buff = (256.0 - 64.0) / 256.0;\n if (u_is_halo) {\n color = halo_color;\n gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / u_gamma_scale;\n buff = (6.0 - halo_width / u_font_scale) / SDF_PX;\n }\n\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n highp float gamma_scaled = gamma * v_gamma_scale;\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist) * fade_alpha;\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}; +},{"path":23}],80:[function(require,module,exports){ +"use strict";var VertexArrayObject=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};VertexArrayObject.prototype.bind=function(e,t,r,i,n,o){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var s=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!e.extVertexArrayObject||s?(this.freshBind(e,t,r,i,n,o),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,o){var s,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),s=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{s=e.currentNumAttributes||0;for(var b=u;bthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,r={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",r,function(i,r){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(r,o.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(o)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(Evented);module.exports=GeoJSONSource; +},{"../data/extent":54,"../util/evented":200,"../util/util":212,"../util/window":194}],83:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),rewind=require("geojson-rewind"),GeoJSONWrapper=require("./geojson_wrapper"),vtpbf=require("vt-pbf"),supercluster=require("supercluster"),geojsonvt=require("geojson-vt"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=function(e){function r(r,t,o){e.call(this,r,t),o&&(this.loadGeoJSON=o),this._geoJSONIndexes={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadVectorData=function(e,r){var t=e.source,o=e.coord;if(!this._geoJSONIndexes[t])return r(null,null);var n=this._geoJSONIndexes[t].getTile(Math.min(o.z,e.maxZoom),o.x,o.y);if(!n)return r(null,null);var u=new GeoJSONWrapper(n.features);u.name="_geojsonTileLayer";var a=vtpbf({layers:{_geojsonTileLayer:u}});0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),u.rawData=a.buffer,r(null,u)},r.prototype.loadData=function(e,r){var t=function(t,o){var n=this;return t?r(t):"object"!=typeof o?r(new Error("Input data is not a valid GeoJSON object.")):(rewind(o,!0),void this._indexData(o,e,function(t,o){return t?r(t):(n._geoJSONIndexes[e.source]=o,void r(null))}))}.bind(this);this.loadGeoJSON(e,t)},r.prototype.loadGeoJSON=function(e,r){if(e.url)ajax.getJSON(e.url,r);else{if("string"!=typeof e.data)return r(new Error("Input data is not a valid GeoJSON object."));try{return r(null,JSON.parse(e.data))}catch(e){return r(new Error("Input data is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(e){this._geoJSONIndexes[e.source]&&delete this._geoJSONIndexes[e.source]},r.prototype._indexData=function(e,r,t){try{r.cluster?t(null,supercluster(r.superclusterOptions).load(e.features)):t(null,geojsonvt(e,r.geojsonVtOptions))}catch(e){return t(e)}},r}(VectorTileWorkerSource);module.exports=GeoJSONWorkerSource; +},{"../util/ajax":191,"./geojson_wrapper":84,"./vector_tile_worker_source":96,"geojson-rewind":7,"geojson-vt":11,"supercluster":29,"vt-pbf":38}],84:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTENT=require("../data/extent"),FeatureWrapper=function(e){var t=this;if(this.type=e.type,1===e.type){this.rawGeometry=[];for(var r=0;rt)){var n=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(e.z,i._source.maxzoom));if(Math.floor(a.coord.x/n)===e.x&&Math.floor(a.coord.y/n)===e.y)for(o[s]=!0,r=!0;a&&a.coord.z-1>e.z;){var d=a.coord.parent(i._source.maxzoom).id;a=i._tiles[d],a&&a.hasData()&&(delete o[s],o[d]=!0)}}}return r},t.prototype.findLoadedParent=function(e,t,o){for(var i=this,r=e.z-1;r>=t;r--){e=e.parent(i._source.maxzoom);var s=i._tiles[e.id];if(s&&s.hasData())return o[e.id]=!0,s;if(i._cache.has(e.id))return o[e.id]=!0,i._cache.getWithoutRemoving(e.id)}},t.prototype.updateCacheSize=function(e){var t=Math.ceil(e.width/e.tileSize)+1,o=Math.ceil(e.height/e.tileSize)+1,i=t*o,r=5;this._cache.setMaxSize(Math.floor(i*r))},t.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded){var i,r,s,a;this.updateCacheSize(e);var n=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),d=Math.max(n-t.maxOverzooming,this._source.minzoom),c=Math.max(n+t.maxUnderzooming,this._source.minzoom),h={};this._coveredTiles={};var u;for(u=this.used?this._source.coord?[this._source.coord]:e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),a=o.findLoadedParent(r,d,l),a&&o.addTile(a.coord))}var f;for(f in l)h[f]||(o._coveredTiles[f]=!0);for(f in l)h[f]=!0;var T=util.keysDifference(this._tiles,h);for(i=0;ithis._source.maxzoom?Math.pow(2,r-this._source.maxzoom):1;t=new Tile(o,this._source.tileSize*s,this._source.maxzoom),this.loadTile(t,this._tileLoaded.bind(this,t,e.id,t.state))}return t.uses++,this._tiles[e.id]=t,i||this._source.fire("dataloading",{tile:t,coord:t.coord,dataType:"source"}),t},t.prototype._setTileReloadTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._timers[e]=setTimeout(function(){o.reloadTile(e,"expired"),o._timers[e]=void 0},i))},t.prototype._setCacheInvalidationTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._cacheTimers[e]=setTimeout(function(){o._cache.remove(e),o._cacheTimers[e]=void 0},i))},t.prototype.removeTile=function(e){var t=this._tiles[e];if(t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),this._timers[e]=void 0),!(t.uses>0)))if(t.hasData()){var o=t.coord.wrapped().id;this._cache.add(o,t),this._setCacheInvalidationTimer(o,t)}else t.aborted=!0,this.abortTile(t),this.unloadTile(t)},t.prototype.clearTiles=function(){var e=this;for(var t in e._tiles)e.removeTile(t);this._cache.reset()},t.prototype.tilesIn=function(e){for(var t=this,o={},i=this.getIds(),r=1/0,s=1/0,a=-(1/0),n=-(1/0),d=e[0].zoom,c=0;c=0&&p[1].y>=0){for(var _=[],f=0;fo)r=!1;else if(t)if(this.expirationTimei.row){var o=t;t=i,i=o}return{x0:t.column,y0:t.row,x1:i.column,y1:i.row,dx:i.column-t.column,dy:i.row-t.row}}function scanSpans(t,i,o,r,e){var n=Math.max(o,Math.floor(i.y0)),h=Math.min(r,Math.ceil(i.y1));if(t.x0===i.x0&&t.y0===i.y0?t.x0+i.dy/t.dy*t.dx0,l=i.dx<0,u=n;ua.dy&&(h=s,s=a,a=h),s.dy>d.dy&&(h=s,s=d,d=h),a.dy>d.dy&&(h=a,a=d,d=h),s.dy&&scanSpans(d,s,r,e,n),a.dy&&scanSpans(d,a,r,e,n)}function getQuadkey(t,i,o){for(var r,e="",n=t;n>0;n--)r=1<t?new TileCoord(this.z-1,this.x,this.y,this.w):new TileCoord(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},TileCoord.prototype.wrapped=function(){return new TileCoord(this.z,this.x,this.y,0)},TileCoord.prototype.children=function(t){if(this.z>=t)return[new TileCoord(this.z+1,this.x,this.y,this.w)];var i=this.z+1,o=2*this.x,r=2*this.y;return[new TileCoord(i,o,r,this.w),new TileCoord(i,o+1,r,this.w),new TileCoord(i,o,r+1,this.w),new TileCoord(i,o+1,r+1,this.w)]},TileCoord.cover=function(t,i,o,r){function e(t,i,e){var s,a,d,y;if(e>=0&&e<=n)for(s=t;sthis.maxzoom?Math.pow(2,e.coord.z-this.maxzoom):1,r={url:normalizeURL(e.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:e.uid,coord:e.coord,zoom:e.coord.z,tileSize:this.tileSize*o,type:this.type,source:this.id,overscaling:o,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};e.workerID&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=t:this.dispatcher.send("reloadTile",r,i.bind(this),e.workerID):e.workerID=this.dispatcher.send("loadTile",r,i.bind(this))},t.prototype.abortTile=function(e){this.dispatcher.send("abortTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t.prototype.unloadTile=function(e){e.unloadVectorData(),this.dispatcher.send("removeTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t}(Evented);module.exports=VectorTileSource; +},{"../util/evented":200,"../util/mapbox":208,"../util/util":212,"./load_tilejson":86}],96:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),vt=require("vector-tile"),Protobuf=require("pbf"),WorkerTile=require("./worker_tile"),util=require("../util/util"),VectorTileWorkerSource=function(e,r,t){this.actor=e,this.layerIndex=r,t&&(this.loadVectorData=t),this.loading={},this.loaded={}};VectorTileWorkerSource.prototype.loadTile=function(e,r){function t(e,t){return delete this.loading[o][i],e?r(e):t?(a.vectorTile=t,a.parse(t,this.layerIndex,this.actor,function(e,o,i){if(e)return r(e);var a={};t.expires&&(a.expires=t.expires),t.cacheControl&&(a.cacheControl=t.cacheControl),r(null,util.extend({rawTileData:t.rawData},o,a),i)}),this.loaded[o]=this.loaded[o]||{},void(this.loaded[o][i]=a)):r(null,null)}var o=e.source,i=e.uid;this.loading[o]||(this.loading[o]={});var a=this.loading[o][i]=new WorkerTile(e);a.abort=this.loadVectorData(e,t.bind(this))},VectorTileWorkerSource.prototype.reloadTile=function(e,r){function t(e,t){if(this.reloadCallback){var o=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,a.layerIndex,a.actor,o)}r(e,t)}var o=this.loaded[e.source],i=e.uid,a=this;if(o&&o[i]){var l=o[i];"parsing"===l.status?l.reloadCallback=r:"done"===l.status&&l.parse(l.vectorTile,this.layerIndex,this.actor,t.bind(l))}},VectorTileWorkerSource.prototype.abortTile=function(e){var r=this.loading[e.source],t=e.uid;r&&r[t]&&r[t].abort&&(r[t].abort(),delete r[t])},VectorTileWorkerSource.prototype.removeTile=function(e){var r=this.loaded[e.source],t=e.uid;r&&r[t]&&delete r[t]},VectorTileWorkerSource.prototype.loadVectorData=function(e,r){function t(e,t){if(e)return r(e);var o=new vt.VectorTile(new Protobuf(t.data));o.rawData=t.data,o.cacheControl=t.cacheControl,o.expires=t.expires,r(e,o)}var o=ajax.getArrayBuffer(e.url,t.bind(this));return function(){o.abort()}},VectorTileWorkerSource.prototype.redoPlacement=function(e,r){var t=this.loaded[e.source],o=this.loading[e.source],i=e.uid;if(t&&t[i]){var a=t[i],l=a.redoPlacement(e.angle,e.pitch,e.showCollisionBoxes);l.result&&r(null,l.result,l.transferables)}else o&&o[i]&&(o[i].angle=e.angle)},module.exports=VectorTileWorkerSource; +},{"../util/ajax":191,"../util/util":212,"./worker_tile":99,"pbf":25,"vector-tile":34}],97:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),ImageSource=require("./image_source"),VideoSource=function(t){function e(e,o,i,r){t.call(this,e,o,i,r),this.roundZoom=!0,this.type="video",this.options=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,ajax.getVideo(e.urls,function(e,o){if(e)return t.fire("error",{error:e});t.video=o,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(ImageSource);module.exports=VideoSource; +},{"../util/ajax":191,"./image_source":85}],98:[function(require,module,exports){ +"use strict";var Actor=require("../util/actor"),StyleLayerIndex=require("../style/style_layer_index"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=require("./geojson_worker_source"),globalRTLTextPlugin=require("./rtl_text_plugin"),Worker=function(e){var r=this;this.self=e,this.actor=new Actor(e,this),this.layerIndexes={},this.workerSourceTypes={vector:VectorTileWorkerSource,geojson:GeoJSONWorkerSource},this.workerSources={},this.self.registerWorkerSource=function(e,o){if(r.workerSourceTypes[e])throw new Error('Worker source with name "'+e+'" already registered.');r.workerSourceTypes[e]=o},this.self.registerRTLTextPlugin=function(e){if(globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText)throw new Error("RTL text plugin already registered.");globalRTLTextPlugin.applyArabicShaping=e.applyArabicShaping,globalRTLTextPlugin.processBidirectionalText=e.processBidirectionalText}};Worker.prototype.setLayers=function(e,r){this.getLayerIndex(e).replace(r)},Worker.prototype.updateLayers=function(e,r){this.getLayerIndex(e).update(r.layers,r.removedIds,r.symbolOrder)},Worker.prototype.loadTile=function(e,r,o){this.getWorkerSource(e,r.type).loadTile(r,o)},Worker.prototype.reloadTile=function(e,r,o){this.getWorkerSource(e,r.type).reloadTile(r,o)},Worker.prototype.abortTile=function(e,r){this.getWorkerSource(e,r.type).abortTile(r)},Worker.prototype.removeTile=function(e,r){this.getWorkerSource(e,r.type).removeTile(r)},Worker.prototype.removeSource=function(e,r){var o=this.getWorkerSource(e,r.type);void 0!==o.removeSource&&o.removeSource(r)},Worker.prototype.redoPlacement=function(e,r,o){this.getWorkerSource(e,r.type).redoPlacement(r,o)},Worker.prototype.loadWorkerSource=function(e,r,o){try{this.self.importScripts(r.url),o()}catch(e){o(e)}},Worker.prototype.loadRTLTextPlugin=function(e,r,o){try{globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText||this.self.importScripts(r)}catch(e){o(e)}},Worker.prototype.getLayerIndex=function(e){var r=this.layerIndexes[e];return r||(r=this.layerIndexes[e]=new StyleLayerIndex),r},Worker.prototype.getWorkerSource=function(e,r){var o=this;if(this.workerSources[e]||(this.workerSources[e]={}),!this.workerSources[e][r]){var t={send:function(r,t,i,n){o.actor.send(r,t,i,n,e)}};this.workerSources[e][r]=new this.workerSourceTypes[r](t,this.getLayerIndex(e))}return this.workerSources[e][r]},module.exports=function(e){return new Worker(e)}; +},{"../style/style_layer_index":154,"../util/actor":190,"./geojson_worker_source":83,"./rtl_text_plugin":90,"./vector_tile_worker_source":96}],99:[function(require,module,exports){ +"use strict";function recalculateLayers(e,i){for(var r=0,o=e.layers;r=B.maxzoom||B.layout&&"none"===B.layout.visibility)){for(var b=0,k=x;b=0;w--){var A=n[i.symbolOrder[w]];A&&t.symbolBuckets.push(A)}if(0===this.symbolBuckets.length)return T(new CollisionTile(this.angle,this.pitch,this.collisionBoxArray));var D=0,I=Object.keys(c.iconDependencies),O=util.mapObject(c.glyphDependencies,function(e){return Object.keys(e).map(Number)}),L=function(e){if(e)return o(e);if(D++,2===D){for(var i=new CollisionTile(t.angle,t.pitch,t.collisionBoxArray),r=0,s=t.symbolBuckets;r"===i||"<="===i||">="===i?compileComparisonOp(e[1],e[2],i,!0):"any"===i?compileLogicalOp(e.slice(1),"||"):"all"===i?compileLogicalOp(e.slice(1),"&&"):"none"===i?compileNegation(compileLogicalOp(e.slice(1),"||")):"in"===i?compileInOp(e[1],e.slice(2)):"!in"===i?compileNegation(compileInOp(e[1],e.slice(2))):"has"===i?compileHasOp(e[1]):"!has"===i?compileNegation(compileHasOp(e[1])):"true";return"("+n+")"}function compilePropertyReference(e){return"$type"===e?"f.type":"$id"===e?"f.id":"p["+JSON.stringify(e)+"]"}function compileComparisonOp(e,i,n,r){var o=compilePropertyReference(e),t="$type"===e?types.indexOf(i):JSON.stringify(i);return(r?"typeof "+o+"=== typeof "+t+"&&":"")+o+n+t}function compileLogicalOp(e,i){return e.map(compile).join(i)}function compileInOp(e,i){"$type"===e&&(i=i.map(function(e){return types.indexOf(e)}));var n=JSON.stringify(i.sort(compare)),r=compilePropertyReference(e);return i.length<=200?n+".indexOf("+r+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+r+", "+n+",0,"+(i.length-1)+")"}function compileHasOp(e){return"$id"===e?'"id" in f':JSON.stringify(e)+" in p"}function compileNegation(e){return"!("+e+")"}function compare(e,i){return ei?1:0}module.exports=createFilter;var types=["Unknown","Point","LineString","Polygon"]; +},{}],104:[function(require,module,exports){ +"use strict";function xyz2lab(r){return r>t3?Math.pow(r,1/3):r/t2+t0}function lab2xyz(r){return r>t1?r*r*r:t2*(r-t0)}function xyz2rgb(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function rgb2xyz(r){return r/=255,r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function rgbToLab(r){var t=rgb2xyz(r[0]),a=rgb2xyz(r[1]),n=rgb2xyz(r[2]),b=xyz2lab((.4124564*t+.3575761*a+.1804375*n)/Xn),o=xyz2lab((.2126729*t+.7151522*a+.072175*n)/Yn),g=xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn);return[116*o-16,500*(b-o),200*(o-g),r[3]]}function labToRgb(r){var t=(r[0]+16)/116,a=isNaN(r[1])?t:t+r[1]/500,n=isNaN(r[2])?t:t-r[2]/200;return t=Yn*lab2xyz(t),a=Xn*lab2xyz(a),n=Zn*lab2xyz(n),[xyz2rgb(3.2404542*a-1.5371385*t-.4985314*n),xyz2rgb(-.969266*a+1.8760108*t+.041556*n),xyz2rgb(.0556434*a-.2040259*t+1.0572252*n),r[3]]}function rgbToHcl(r){var t=rgbToLab(r),a=t[0],n=t[1],b=t[2],o=Math.atan2(b,n)*rad2deg;return[o<0?o+360:o,Math.sqrt(n*n+b*b),a,r[3]]}function hclToRgb(r){var t=r[0]*deg2rad,a=r[1],n=r[2];return labToRgb([n,Math.cos(t)*a,Math.sin(t)*a,r[3]])}var Xn=.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;module.exports={lab:{forward:rgbToLab,reverse:labToRgb},hcl:{forward:rgbToHcl,reverse:hclToRgb}}; +},{}],105:[function(require,module,exports){ +"use strict";function identityFunction(t){return t}function createFunction(t,e){var o,n="color"===e.type;if(isFunctionDefinition(t)){var r=t.stops&&"object"==typeof t.stops[0][0],a=r||void 0!==t.property,i=r||!a,s=t.type||("interpolated"===e.function?"exponential":"interval");n&&(t=extend({},t),t.stops&&(t.stops=t.stops.map(function(t){return[t[0],parseColor(t[1])]})),t.default?t.default=parseColor(t.default):t.default=parseColor(e.default));var u,p,l;if("exponential"===s)u=evaluateExponentialFunction;else if("interval"===s)u=evaluateIntervalFunction;else if("categorical"===s){u=evaluateCategoricalFunction,p=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var r=binarySearchForIndex(t.stops,o);return t.stops[r][1]}function evaluateExponentialFunction(t,e,o){var n=void 0!==t.base?t.base:1;if("number"!==getType(o))return coalesce(t.default,e.default);var r=t.stops.length;if(1===r)return t.stops[0][1];if(o<=t.stops[0][0])return t.stops[0][1];if(o>=t.stops[r-1][0])return t.stops[r-1][1];var a=binarySearchForIndex(t.stops,o);return interpolate(o,n,t.stops[a][0],t.stops[a+1][0],t.stops[a][1],t.stops[a+1][1])}function evaluateIdentityFunction(t,e,o){return"color"===e.type?o=parseColor(o):getType(o)!==e.type&&(o=void 0),coalesce(o,t.default,e.default)}function binarySearchForIndex(t,e){for(var o,n,r=t.length,a=0,i=r-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e>=o&&ee&&(i=s-1)}return Math.max(s-1,0)}function interpolate(t,e,o,n,r,a){return"function"==typeof r?function(){var i=r.apply(void 0,arguments),s=a.apply(void 0,arguments);if(void 0!==i&&void 0!==s)return interpolate(t,e,o,n,i,s)}:r.length?interpolateArray(t,e,o,n,r,a):interpolateNumber(t,e,o,n,r,a)}function interpolateNumber(t,e,o,n,r,a){var i,s=n-o,u=t-o;return i=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),r*(1-i)+a*i}function interpolateArray(t,e,o,n,r,a){for(var i=[],s=0;s255?255:e}function clamp_css_float(e){return e<0?0:e>1?1:e}function parse_css_int(e){return clamp_css_byte("%"===e[e.length-1]?parseFloat(e)/100*255:parseInt(e))}function parse_css_float(e){return clamp_css_float("%"===e[e.length-1]?parseFloat(e)/100:parseFloat(e))}function css_hue_to_rgb(e,r,l){return l<0?l+=1:l>1&&(l-=1),6*l<1?e+(r-e)*l*6:2*l<1?r:3*l<2?e+(r-e)*(2/3-l)*6:e}function parseCSSColor(e){var r=e.replace(/ /g,"").toLowerCase();if(r in kCSSColorTable)return kCSSColorTable[r].slice();if("#"===r[0]){if(4===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=4095?[(3840&l)>>4|(3840&l)>>8,240&l|(240&l)>>4,15&l|(15&l)<<4,1]:null}if(7===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=16777215?[(16711680&l)>>16,(65280&l)>>8,255&l,1]:null}return null}var a=r.indexOf("("),t=r.indexOf(")");if(a!==-1&&t+1===r.length){var n=r.substr(0,a),s=r.substr(a+1,t-(a+1)).split(","),o=1;switch(n){case"rgba":if(4!==s.length)return null;o=parse_css_float(s.pop());case"rgb":return 3!==s.length?null:[parse_css_int(s[0]),parse_css_int(s[1]),parse_css_int(s[2]),o];case"hsla":if(4!==s.length)return null;o=parse_css_float(s.pop());case"hsl":if(3!==s.length)return null;var i=(parseFloat(s[0])%360+360)%360/360,u=parse_css_float(s[1]),g=parse_css_float(s[2]),d=g<=.5?g*(u+1):g+u-g*u,c=2*g-d;return[clamp_css_byte(255*css_hue_to_rgb(c,d,i+1/3)),clamp_css_byte(255*css_hue_to_rgb(c,d,i)),clamp_css_byte(255*css_hue_to_rgb(c,d,i-1/3)),o];default:return null}}return null}var kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{exports.parseCSSColor=parseCSSColor}catch(e){} +},{}],108:[function(require,module,exports){ +function sss(r){var e,t,s,n,u,a;switch(typeof r){case"object":if(null===r)return null;if(isArray(r)){for(s="[",t=r.length-1,e=0;e-1&&(s+=sss(r[e])),s+"]"}for(n=objKeys(r).sort(),t=n.length,s="{",u=n[e=0],a=t>0&&void 0!==r[u];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};module.exports=function(r){if(void 0!==r)return""+sss(r)},module.exports.stringSearch=strReg,module.exports.stringReplace=strReplace; +},{}],109:[function(require,module,exports){ +function isObjectLike(r){return!!r&&"object"==typeof r}function arraySome(r,e){for(var a=-1,t=r.length;++as))return!1;for(;++c-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isObject(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function isObjectLike(t){return!!t&&"object"==typeof t}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,propertyIsEnumerable=objectProto.propertyIsEnumerable;module.exports=isArguments; +},{}],113:[function(require,module,exports){ +function isObjectLike(t){return!!t&&"object"==typeof t}function getNative(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}function isLength(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isFunction(t){return isObject(t)&&objToString.call(t)==funcTag}function isObject(t){var r=typeof t;return!!t&&("object"==r||"function"==r)}function isNative(t){return null!=t&&(isFunction(t)?reIsNative.test(fnToString.call(t)):isObjectLike(t)&&reIsHostCtor.test(t))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(t){return isObjectLike(t)&&isLength(t.length)&&objToString.call(t)==arrayTag};module.exports=isArray; +},{}],114:[function(require,module,exports){ +function isEqual(a,l,i,e){i="function"==typeof i?bindCallback(i,e,3):void 0;var s=i?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback");module.exports=isEqual; +},{"lodash._baseisequal":109,"lodash._bindcallback":110}],115:[function(require,module,exports){ +function isLength(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=MAX_SAFE_INTEGER}function isObjectLike(a){return!!a&&"object"==typeof a}function isTypedArray(a){return isObjectLike(a)&&isLength(a.length)&&!!typedArrayTags[objectToString.call(a)]}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objectToString=objectProto.toString;module.exports=isTypedArray; +},{}],116:[function(require,module,exports){ +function baseProperty(e){return function(t){return null==t?void 0:t[e]}}function isArrayLike(e){return null!=e&&isLength(getLength(e))}function isIndex(e,t){return e="number"==typeof e||reIsUint.test(e)?+e:-1,t=null==t?MAX_SAFE_INTEGER:t,e>-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function shimKeys(e){for(var t=keysIn(e),r=t.length,n=r&&e.length,s=!!n&&isLength(n)&&(isArray(e)||isArguments(e)),o=-1,i=[];++o0;++n":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":22,"value":["number","color"],"length":2},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"transition":false},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","transition":true,"function":"interpolated","zoom-function":true,"property-function":false},"color":{"type":"color","default":"#ffffff","function":"interpolated","zoom-function":true,"property-function":false,"transition":true},"intensity":{"type":"number","default":0.5,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":false,"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],"paint_fill":{"fill-antialias":{"type":"boolean","function":"piecewise-constant","zoom-function":true,"default":true},"fill-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"}]},"fill-outline-color":{"type":"color","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}]},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"]},"fill-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":false,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-extrusion-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-extrusion-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"]},"fill-extrusion-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"fill-extrusion-height":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true},"fill-extrusion-base":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"]}},"paint_line":{"line-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"line-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"line-pattern"}]},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"]},"line-width":{"type":"number","default":1,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-gap-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-offset":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-dasharray":{"type":"array","value":"number","function":"piecewise-constant","zoom-function":true,"minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}]},"line-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-blur":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"circle-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"]},"circle-pitch-scale":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-stroke-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"]},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"]}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-hue-rotate":{"type":"number","default":0,"period":360,"function":"interpolated","zoom-function":true,"transition":true,"units":"degrees"},"raster-brightness-min":{"type":"number","function":"interpolated","zoom-function":true,"default":0,"minimum":0,"maximum":1,"transition":true},"raster-brightness-max":{"type":"number","function":"interpolated","zoom-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"milliseconds"}},"paint_background":{"background-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"transition":true,"requires":[{"!":"background-pattern"}]},"background-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}}} +},{}],119:[function(require,module,exports){ +"use strict";module.exports=function(r){for(var t=arguments,e=1;e7)return[new ValidationError(u,a,"constants have been deprecated as of v8")];if(!(a in l.constants))return[new ValidationError(u,a,'constant "%s" not found',a)];e=extend({},e,{value:l.constants[a]})}return n.function&&"object"===getType(a)?r(e):n.type&&i[n.type]?i[n.type](e):t(extend({},e,{valueSpec:n.type?o[n.type]:n}))}; +},{"../error/validation_error":102,"../util/extend":119,"../util/get_type":120,"./validate_array":125,"./validate_boolean":126,"./validate_color":127,"./validate_constants":128,"./validate_enum":129,"./validate_filter":130,"./validate_function":131,"./validate_layer":133,"./validate_light":135,"./validate_number":136,"./validate_object":137,"./validate_source":140,"./validate_string":141}],125:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),validate=require("./validate"),ValidationError=require("../error/validation_error");module.exports=function(e){var r=e.value,t=e.valueSpec,a=e.style,n=e.styleSpec,l=e.key,i=e.arrayElementValidator||validate;if("array"!==getType(r))return[new ValidationError(l,r,"array expected, %s found",getType(r))];if(t.length&&r.length!==t.length)return[new ValidationError(l,r,"array length %d expected, length %d found",t.length,r.length)];if(t["min-length"]&&r.length7)return t?[new ValidationError(e,t,"constants have been deprecated as of v8")]:[];var o=getType(t);if("object"!==o)return[new ValidationError(e,t,"object expected, %s found",o)];var n=[];for(var i in t)"@"!==i[0]&&n.push(new ValidationError(e+"."+i,t[i],'constants must start with "@"'));return n}; +},{"../error/validation_error":102,"../util/get_type":120}],129:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?u.values.indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):Object.keys(u.values).indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123}],130:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateEnum=require("./validate_enum"),getType=require("../util/get_type"),unbundle=require("../util/unbundle_jsonlint");module.exports=function e(r){var t,a=r.value,n=r.key,l=r.styleSpec,s=[];if("array"!==getType(a))return[new ValidationError(n,a,"array expected, %s found",getType(a))];if(a.length<1)return[new ValidationError(n,a,"filter array must have at least 1 element")];switch(s=s.concat(validateEnum({key:n+"[0]",value:a[0],valueSpec:l.filter_operator,style:r.style,styleSpec:r.styleSpec})),unbundle(a[0])){case"<":case"<=":case">":case">=":a.length>=2&&"$type"===unbundle(a[1])&&s.push(new ValidationError(n,a,'"$type" cannot be use with operator "%s"',a[0]));case"==":case"!=":3!==a.length&&s.push(new ValidationError(n,a,'filter array for operator "%s" must have 3 elements',a[0]));case"in":case"!in":a.length>=2&&(t=getType(a[1]),"string"!==t&&s.push(new ValidationError(n+"[1]",a[1],"string expected, %s found",t)));for(var o=2;ounbundle(r[0].zoom))return[new ValidationError(o,r[0].zoom,"stop zoom values must appear in ascending order")];unbundle(r[0].zoom)!==l&&(l=unbundle(r[0].zoom),i=void 0,s={}),t=t.concat(validateObject({key:o+"[0]",value:r[0],valueSpec:{zoom:{}},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:validateNumber,value:a}}))}else t=t.concat(a({key:o+"[0]",value:r[0],valueSpec:{},style:e.style,styleSpec:e.styleSpec}));return t.concat(validate({key:o+"[1]",value:r[1],valueSpec:u,style:e.style,styleSpec:e.styleSpec}))}function a(e){var t=getType(e.value),r=unbundle(e.value);if(n){if(t!==n)return[new ValidationError(e.key,e.value,"%s stop domain type must match previous stop domain type %s",t,n)]}else n=t;if("number"!==t&&"string"!==t&&"boolean"!==t)return[new ValidationError(e.key,e.value,"stop domain value must be a number, string, or boolean")];if("number"!==t&&"categorical"!==p){var a="number expected, %s found";return u["property-function"]&&void 0===p&&(a+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ValidationError(e.key,e.value,a,t)]}return"categorical"!==p||"number"!==t||isFinite(r)&&Math.floor(r)===r?"number"===t&&void 0!==i&&r=8&&(d&&!e.valueSpec["property-function"]?v.push(new ValidationError(e.key,e.value,"property functions not supported")):y&&!e.valueSpec["zoom-function"]&&v.push(new ValidationError(e.key,e.value,"zoom functions not supported"))),"categorical"!==p&&!c||void 0!==e.value.property||v.push(new ValidationError(e.key,e.value,'"property" property is required')),v}; +},{"../error/validation_error":102,"../util/get_type":120,"../util/unbundle_jsonlint":123,"./validate":124,"./validate_array":125,"./validate_number":136,"./validate_object":137}],132:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateString=require("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(e.indexOf("{fontstack}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}; +},{"../error/validation_error":102,"./validate_string":141}],133:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateFilter=require("./validate_filter"),validatePaintProperty=require("./validate_paint_property"),validateLayoutProperty=require("./validate_layout_property"),extend=require("../util/extend");module.exports=function(e){var r=[],t=e.value,a=e.key,i=e.style,l=e.styleSpec;t.type||t.ref||r.push(new ValidationError(a,t,'either "type" or "ref" is required'));var u=unbundle(t.type),n=unbundle(t.ref);if(t.id)for(var o=unbundle(t.id),s=0;sm.maximum?[new ValidationError(r,i,"%s is greater than the maximum value %s",i,m.maximum)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],137:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),getType=require("../util/get_type"),validateSpec=require("./validate");module.exports=function(e){var r=e.key,t=e.value,i=e.valueSpec||{},a=e.objectElementValidators||{},o=e.style,l=e.styleSpec,n=[],u=getType(t);if("object"!==u)return[new ValidationError(r,t,"object expected, %s found",u)];for(var d in t){var p=d.split(".")[0],s=i[p]||i["*"],c=void 0;if(a[p])c=a[p];else if(i[p])c=validateSpec;else if(a["*"])c=a["*"];else{if(!i["*"]){n.push(new ValidationError(r,t[d],'unknown property "%s"',d));continue}c=validateSpec}n=n.concat(c({key:(r?r+".":r)+d,value:t[d],valueSpec:s,style:o,styleSpec:l,object:t,objectKey:d}))}for(var v in i)i[v].required&&void 0===i[v].default&&void 0===t[v]&&n.push(new ValidationError(r,t,'missing required property "%s"',v));return n}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],138:[function(require,module,exports){ +"use strict";var validateProperty=require("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}; +},{"./validate_property":139}],139:[function(require,module,exports){ +"use strict";var validate=require("./validate"),ValidationError=require("../error/validation_error"),getType=require("../util/get_type");module.exports=function(e,t){var r=e.key,i=e.style,a=e.styleSpec,n=e.value,o=e.objectKey,l=a[t+"_"+e.layerType];if(!l)return[];var y=o.match(/^(.*)-transition$/);if("paint"===t&&y&&l[y[1]]&&l[y[1]].transition)return validate({key:r,value:n,valueSpec:a.transition,style:i,styleSpec:a});var p=e.valueSpec||l[o];if(!p)return[new ValidationError(r,n,'unknown property "%s"',o)];var s;if("string"===getType(n)&&p["property-function"]&&!p.tokens&&(s=/^{([^}]+)}$/.exec(n)))return[new ValidationError(r,n,'"%s" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": %s` }`.',o,JSON.stringify(s[1]))];var u=[];return"symbol"===e.layerType&&"text-field"===o&&i&&!i.glyphs&&u.push(new ValidationError(r,n,'use of "text-field" requires a style "glyphs" property')),u.concat(validate({key:e.key,value:n,valueSpec:p,style:i,styleSpec:a}))}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],140:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateEnum=require("./validate_enum");module.exports=function(e){var a=e.value,t=e.key,r=e.styleSpec,l=e.style;if(!a.type)return[new ValidationError(t,a,'"type" is required')];var u=unbundle(a.type),i=[];switch(u){case"vector":case"raster":if(i=i.concat(validateObject({key:t,value:a,valueSpec:r.source_tile,style:e.style,styleSpec:r})),"url"in a)for(var s in a)["type","url","tileSize"].indexOf(s)<0&&i.push(new ValidationError(t+"."+s,a[s],'a source with a "url" property may not include a "%s" property',s));return i;case"geojson":return validateObject({key:t,value:a,valueSpec:r.source_geojson,style:l,styleSpec:r});case"video":return validateObject({key:t,value:a,valueSpec:r.source_video,style:l,styleSpec:r});case"image":return validateObject({key:t,value:a,valueSpec:r.source_image,style:l,styleSpec:r});case"canvas":return validateObject({key:t,value:a,valueSpec:r.source_canvas,style:l,styleSpec:r});default:return validateEnum({key:t+".type",value:a.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:l,styleSpec:r})}}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123,"./validate_enum":129,"./validate_object":137}],141:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),ValidationError=require("../error/validation_error");module.exports=function(r){var e=r.value,t=r.key,i=getType(e);return"string"!==i?[new ValidationError(t,e,"string expected, %s found",i)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],142:[function(require,module,exports){ +"use strict";function validateStyleMin(e,a){a=a||latestStyleSpec;var t=[];return t=t.concat(validate({key:"",value:e,valueSpec:a.$root,styleSpec:a,style:e,objectElementValidators:{glyphs:validateGlyphsURL,"*":function(){return[]}}})),a.$version>7&&e.constants&&(t=t.concat(validateConstants({key:"constants",value:e.constants,style:e,styleSpec:a}))),sortErrors(t)}function sortErrors(e){return[].concat(e).sort(function(e,a){return e.line-a.line})}function wrapCleanErrors(e){return function(){return sortErrors(e.apply(this,arguments))}}var validateConstants=require("./validate/validate_constants"),validate=require("./validate/validate"),latestStyleSpec=require("./reference/latest"),validateGlyphsURL=require("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(require("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(require("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(require("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(require("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(require("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(require("./validate/validate_layout_property")),module.exports=validateStyleMin; +},{"./reference/latest":117,"./validate/validate":124,"./validate/validate_constants":128,"./validate/validate_filter":130,"./validate/validate_glyphs_url":132,"./validate/validate_layer":133,"./validate/validate_layout_property":134,"./validate/validate_light":135,"./validate/validate_paint_property":138,"./validate/validate_source":140}],143:[function(require,module,exports){ +"use strict";var AnimationLoop=function(){this.n=0,this.times=[]};AnimationLoop.prototype.stopped=function(){return this.times=this.times.filter(function(t){return t.time>=(new Date).getTime()}),!this.times.length},AnimationLoop.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},AnimationLoop.prototype.cancel=function(t){this.times=this.times.filter(function(i){return i.id!==t})},module.exports=AnimationLoop; +},{}],144:[function(require,module,exports){ +"use strict";var Evented=require("../util/evented"),ajax=require("../util/ajax"),browser=require("../util/browser"),normalizeURL=require("../util/mapbox").normalizeSpriteURL,SpritePosition=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},ImageSprite=function(t){function i(i,e){var a=this;t.call(this),this.base=i,this.retina=browser.devicePixelRatio>1,this.setEventedParent(e);var r=this.retina?"@2x":"";ajax.getJSON(normalizeURL(i,r,".json"),function(t,i){return t?void a.fire("error",{error:t}):(a.data=i,void(a.imgData&&a.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(i,r,".png"),function(t,i){if(t)return void a.fire("error",{error:t});a.imgData=browser.getImageData(i);for(var e=0;e1!==this.retina){var e=new i(this.base);e.on("data",function(){t.data=e.data,t.imgData=e.imgData,t.width=e.width,t.retina=e.retina})}},i.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var i=this.data&&this.data[t];return i&&this.imgData?i:new SpritePosition},i}(Evented);module.exports=ImageSprite; +},{"../util/ajax":191,"../util/browser":192,"../util/evented":200,"../util/mapbox":208}],145:[function(require,module,exports){ +"use strict";var styleSpec=require("../style-spec/reference/latest"),util=require("../util/util"),Evented=require("../util/evented"),validateStyle=require("./validate_style"),StyleDeclaration=require("./style_declaration"),StyleTransition=require("./style_transition"),TRANSITION_SUFFIX="-transition",Light=function(t){function i(i){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=styleSpec.light,this.set(i)}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.set=function(t){var i=this;if(!this._validate(validateStyle.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=util.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var e=0,o=i.properties;eMath.floor(e)&&(t.lastIntegerZoom=Math.floor(e+1),t.lastIntegerZoomTime=Date.now()),t.lastZoom=e},t.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},t.prototype.update=function(e,t){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),o=Object.keys(this._removedLayers);(i.length||o.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,o);for(var s in r._updatedSources){var a=r._updatedSources[s];"reload"===a?r._reloadSource(s):"clear"===a&&r._clearSource(s)}this._applyClasses(e,t),this._resetUpdates(),this.fire("data",{dataType:"style"})}},t.prototype._updateWorkerLayers=function(e,t){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(e){return"symbol"===r._layers[e].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t,symbolOrder:i})},t.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={},this._updatedAllPaintProps=!1},t.prototype.setState=function(e){var t=this;if(this._checkLoaded(),validateStyle.emitErrors(this,validateStyle(e)))return!1;e=util.extend({},e),e.layers=deref(e.layers);var r=diff(this.serialize(),e).filter(function(e){return!(e.command in ignoredDiffOperations)});if(0===r.length)return!1;var i=r.filter(function(e){return!(e.command in supportedDiffOperations)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(e){return e.command}).join(", ")+".");return r.forEach(function(e){"setTransition"!==e.command&&t[e.command].apply(t,e.args)}),this.stylesheet=e,!0},t.prototype.addSource=function(e,t,r){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!t.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(t)+".");var o=["vector","raster","geojson","video","image","canvas"],s=o.indexOf(t.type)>=0;if(!s||!this._validate(validateStyle.source,"sources."+e,t,null,r)){var a=this.sourceCaches[e]=new SourceCache(e,t,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},t.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");var t=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],t.setEventedParent(null),t.clearTiles(),t.onRemove&&t.onRemove(this.map),this._changed=!0},t.prototype.getSource=function(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()},t.prototype.addLayer=function(e,t,r){this._checkLoaded();var i=e.id;if("object"==typeof e.source&&(this.addSource(i,e.source),e=util.extend(e,{source:i})),!this._validate(validateStyle.layer,"layers."+i,e,{arrayIndex:-1},r)){var o=StyleLayer.create(e);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var s=t?this._order.indexOf(t):this._order.length;if(this._order.splice(s,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var a=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=a.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},t.prototype.moveLayer=function(e,t){this._checkLoaded(),this._changed=!0;var r=this._layers[e];if(!r)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(e);this._order.splice(i,1);var o=t?this._order.indexOf(t):this._order.length;this._order.splice(o,0,e),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(!t)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")});t.setEventedParent(null);var r=this._order.indexOf(e);this._order.splice(r,1),"symbol"===t.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[e]=t,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]},t.prototype.getLayer=function(e){return this._layers[e]},t.prototype.setLayerZoomRange=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(i.minzoom===t&&i.maxzoom===r||(null!=t&&(i.minzoom=t),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")})},t.prototype.setFilter=function(e,t){this._checkLoaded();var r=this.getLayer(e);return r?void(null!==t&&void 0!==t&&this._validate(validateStyle.filter,"layers."+r.id+".filter",t)||util.deepEqual(r.filter,t)||(r.filter=util.clone(t),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")})},t.prototype.getFilter=function(e){return util.clone(this.getLayer(e).filter)},t.prototype.setLayoutProperty=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(util.deepEqual(i.getLayoutProperty(t),r)||(i.setLayoutProperty(t,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},t.prototype.getLayoutProperty=function(e,t){return this.getLayer(e).getLayoutProperty(t)},t.prototype.setPaintProperty=function(e,t,r,i){this._checkLoaded();var o=this.getLayer(e);if(!o)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")});if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i);var a=!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&s||this._updateLayer(o),this.updateClasses(e,t)}},t.prototype.getPaintProperty=function(e,t,r){return this.getLayer(e).getPaintProperty(t,r)},t.prototype.getTransition=function(){return util.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},t.prototype.updateClasses=function(e,t){if(this._changed=!0,e){var r=this._updatedPaintProps;r[e]||(r[e]={}),r[e][t||"all"]=!0}else this._updatedAllPaintProps=!0},t.prototype.serialize=function(){var e=this;return util.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:util.mapObject(this.sourceCaches,function(e){return e.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(e){return void 0!==e})},t.prototype._updateLayer=function(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&(this._updatedSources[e.source]="reload"),this._changed=!0},t.prototype._flattenRenderedFeatures=function(e){for(var t=this,r=[],i=this._order.length-1;i>=0;i--)for(var o=t._order[i],s=0,a=e;s=this.maxzoom)||"none"===this.layout.visibility)},i.prototype.updatePaintTransitions=function(t,i,a,e,n){for(var o=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return e;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((o-this.startTime-this.delay)/this.duration);return this.interp(a,e,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var o=t.zoom,e=this.zoomHistory.lastIntegerZoom,a=o>e?2:.5,n=this.declaration.calculate({zoom:o>e?o-1:o+1},i),r=this.declaration.calculate({zoom:o},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(o-e),u=interpolate(s,1,l);return void 0!==n&&void 0!==r?{from:n,fromScale:a,to:r,toScale:1,t:u}:void 0},module.exports=StyleTransition; +},{"../util/interpolate":204,"../util/util":212}],156:[function(require,module,exports){ +"use strict";module.exports=require("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(s--,s<0)return!1;f-=e[s].dist(i),i=e[s]}f+=e[s].dist(e[s+1]),s++;for(var l=[],o=0;fr;)o-=l.shift().angleDelta;if(o>n)return!1;s++,f+=c.dist(g)}return!0}module.exports=checkMaxAngle; +},{}],159:[function(require,module,exports){ +"use strict";function clipLine(n,x,y,o,e){for(var r=[],t=0;t=o&&w.x>=o||(P.x>=o?P=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round():w.x>=o&&(w=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round()),P.y>=e&&w.y>=e||(P.y>=e?P=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round():w.y>=e&&(w=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round()),u&&P.equals(u[u.length-1])||(u=[P],r.push(u)),u.push(w)))))}return r}var Point=require("point-geometry");module.exports=clipLine; +},{"point-geometry":26}],160:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),Point=require("point-geometry"),CollisionBoxArray=createStructArrayType({members:[{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(CollisionBoxArray.prototype.StructType.prototype,"anchorPoint",{get:function(){return new Point(this.anchorPointX,this.anchorPointY)}}),module.exports=CollisionBoxArray; +},{"../util/struct_array":210,"point-geometry":26}],161:[function(require,module,exports){ +"use strict";var CollisionFeature=function(t,e,i,o,s,a,n,r,l,d,u){var h=n.top*r-l,x=n.bottom*r+l,f=n.left*r-l,m=n.right*r+l;if(this.boxStartIndex=t.length,d){var _=x-h,b=m-f;if(_>0)if(_=Math.max(10*r,_),u){var v=e[i.segment+1].sub(e[i.segment])._unit()._mult(b),c=[i.sub(v),i.add(v)];this._addLineCollisionBoxes(t,c,i,0,b,_,o,s,a)}else this._addLineCollisionBoxes(t,e,i,i.segment,b,_,o,s,a)}else t.emplaceBack(i.x,i.y,f,h,m,x,1/0,o,s,a,0,0,0,0,0);this.boxEndIndex=t.length};CollisionFeature.prototype._addLineCollisionBoxes=function(t,e,i,o,s,a,n,r,l){var d=a/2,u=Math.floor(s/d),h=-a/2,x=this.boxes,f=i,m=o+1,_=h;do{if(m--,m<0)return x;_-=e[m].dist(f),f=e[m]}while(_>-s/2);for(var b=e[m].dist(e[m+1]),v=0;v=e.length)return x;b=e[m].dist(e[m+1])}var g=c-_,p=e[m],C=e[m+1],B=C.sub(p)._unit()._mult(g)._add(p)._round(),M=Math.max(Math.abs(c-h)-d/2,0),y=s/2/M;t.emplaceBack(B.x,B.y,-a/2,-a/2,a/2,a/2,y,n,r,l,0,0,0,0,0)}return x},module.exports=CollisionFeature; +},{}],162:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),EXTENT=require("../data/extent"),Grid=require("grid-index"),intersectionTests=require("../util/intersection_tests"),CollisionTile=function(t,e,i){if("object"==typeof t){var r=t;i=e,t=r.angle,e=r.pitch,this.grid=new Grid(r.grid),this.ignoredGrid=new Grid(r.ignoredGrid)}else this.grid=new Grid(EXTENT,12,6),this.ignoredGrid=new Grid(EXTENT,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),o=Math.cos(t);if(this.rotationMatrix=[o,-a,a,o],this.reverseRotationMatrix=[o,a,-a,o],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=i,0===i.length){i.emplaceBack();var n=32767;i.emplaceBack(0,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(EXTENT,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,0,-n,0,n,0,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,EXTENT,-n,0,n,0,n,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=i.get(0),this.edges=[i.get(1),i.get(2),i.get(3),i.get(4)]};CollisionTile.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),i=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(i)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:i}},CollisionTile.prototype.placeCollisionFeature=function(t,e,i){for(var r=this,a=this.collisionBoxArray,o=this.minScale,n=this.rotationMatrix,l=this.yStretch,h=t.boxStartIndex;h=r.maxScale)return o}if(i){var S=void 0;if(r.angle){var P=r.reverseRotationMatrix,b=new Point(s.x1,s.y1).matMult(P),T=new Point(s.x2,s.y1).matMult(P),w=new Point(s.x1,s.y2).matMult(P),N=new Point(s.x2,s.y2).matMult(P);S=r.tempCollisionBox,S.anchorPointX=s.anchorPoint.x,S.anchorPointY=s.anchorPoint.y,S.x1=Math.min(b.x,T.x,w.x,N.x),S.y1=Math.min(b.y,T.x,w.x,N.x),S.x2=Math.max(b.x,T.x,w.x,N.x),S.y2=Math.max(b.y,T.x,w.x,N.x),S.maxScale=s.maxScale}else S=s;for(var B=0;B=r.maxScale)return o}}}return o},CollisionTile.prototype.queryRenderedSymbols=function(t,e){var i={},r=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return r;for(var a=this.collisionBoxArray,o=this.rotationMatrix,n=this.yStretch,l=[],h=1/0,s=1/0,x=-(1/0),c=-(1/0),g=0;gS.maxScale)){var T=S.anchorPoint.matMult(o),w=T.x+S.x1/e,N=T.y+S.y1/e*n,B=T.x+S.x2/e,G=T.y+S.y2/e*n,E=[new Point(w,N),new Point(B,N),new Point(B,G),new Point(w,G)];intersectionTests.polygonIntersectsPolygon(l,E)&&(i[P][b]=!0,r.push(u[v]))}}return r},CollisionTile.prototype.getPlacementScale=function(t,e,i,r,a){var o=e.x-r.x,n=e.y-r.y,l=(a.x1-i.x2)/o,h=(a.x2-i.x1)/o,s=(a.y1-i.y2)*this.yStretch/n,x=(a.y2-i.y1)*this.yStretch/n;(isNaN(l)||isNaN(h))&&(l=h=1),(isNaN(s)||isNaN(x))&&(s=x=1);var c=Math.min(Math.max(l,h),Math.max(s,x)),g=a.maxScale,y=i.maxScale;return c>g&&(c=g),c>y&&(c=y),c>t&&c>=a.placementScale&&(t=c),t},CollisionTile.prototype.insertCollisionFeature=function(t,e,i){for(var r=this,a=i?this.ignoredGrid:this.grid,o=this.collisionBoxArray,n=t.boxStartIndex;n=0&&k=0&&q=0&&p+c<=s){var M=new Anchor(k,q,y,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=A}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,h)),x}var interpolate=require("../util/interpolate"),Anchor=require("../symbol/anchor"),checkMaxAngle=require("./check_max_angle");module.exports=getAnchors; +},{"../symbol/anchor":157,"../util/interpolate":204,"./check_max_angle":158}],164:[function(require,module,exports){ +"use strict";var ShelfPack=require("@mapbox/shelf-pack"),util=require("../util/util"),SIZE_GROWTH_RATE=4,DEFAULT_SIZE=128,MAX_SIZE=2048,GlyphAtlas=function(){this.width=DEFAULT_SIZE,this.height=DEFAULT_SIZE,this.atlas=new ShelfPack(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};GlyphAtlas.prototype.getGlyphs=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]=[]),r[i].push(e);return r},GlyphAtlas.prototype.getRects=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]={}),r[i][e]=h.index[s];return r},GlyphAtlas.prototype.addGlyph=function(t,i,e,h){var r=this;if(!e)return null;var s=i+"#"+e.id;if(this.index[s])return this.ids[s].indexOf(t)<0&&this.ids[s].push(t),this.index[s];if(!e.bitmap)return null;var a=e.width+2*h,E=e.height+2*h,n=1,l=a+2*n,T=E+2*n;l+=4-l%4,T+=4-T%4;var u=this.atlas.packOne(l,T);if(u||(this.resize(),u=this.atlas.packOne(l,T)),!u)return util.warnOnce("glyph bitmap overflow"),null;this.index[s]=u,this.ids[s]=[t];for(var d=this.data,p=e.bitmap,A=0;A=MAX_SIZE||e>=MAX_SIZE)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=SIZE_GROWTH_RATE,this.height*=SIZE_GROWTH_RATE,this.atlas.resize(this.width,this.height);for(var h=new ArrayBuffer(this.width*this.height),r=0;r65535)return a("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var l=this.loading[t];if(l[e])l[e].push(a);else{l[e]=[a];var i=256*e+"-"+(256*e+255),r=glyphUrl(t,i,this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},i.prototype.addIcons=function(t,i){for(var e=this,r=0;r1||(b?(clearTimeout(b),b=null,h("dblclick",t)):b=setTimeout(l,300))}function i(e){f("touchmove",e)}function c(e){f("touchend",e)}function d(e){f("touchcancel",e)}function l(){b=null}function s(e){var t=DOM.mousePos(g,e);t.equals(L)&&h("click",e)}function v(e){h("dblclick",e),e.preventDefault()}function m(t){var n=e.dragRotate&&e.dragRotate.isActive();E||n?E&&(p=t):h("contextmenu",t),t.preventDefault()}function h(t,n){var o=DOM.mousePos(g,n);return e.fire(t,{lngLat:e.unproject(o),point:o,originalEvent:n})}function f(t,n){var o=DOM.touchPos(g,n),r=o.reduce(function(e,t,n,o){return e.add(t.div(o.length))},new Point(0,0));return e.fire(t,{lngLat:e.unproject(r),point:r,lngLats:o.map(function(t){return e.unproject(t)},this),points:o,originalEvent:n})}var g=e.getCanvasContainer(),p=null,E=!1,L=null,b=null;for(var q in handlers)e[q]=new handlers[q](e,t),t.interactive&&t[q]&&e[q].enable(t[q]);g.addEventListener("mouseout",n,!1),g.addEventListener("mousedown",o,!1),g.addEventListener("mouseup",r,!1),g.addEventListener("mousemove",a,!1),g.addEventListener("touchstart",u,!1),g.addEventListener("touchend",c,!1),g.addEventListener("touchmove",i,!1),g.addEventListener("touchcancel",d,!1),g.addEventListener("click",s,!1),g.addEventListener("dblclick",v,!1),g.addEventListener("contextmenu",m,!1)}; +},{"../util/dom":199,"./handler/box_zoom":179,"./handler/dblclick_zoom":180,"./handler/drag_pan":181,"./handler/drag_rotate":182,"./handler/keyboard":183,"./handler/scroll_zoom":184,"./handler/touch_zoom_rotate":185,"point-geometry":26}],172:[function(require,module,exports){ +"use strict";var util=require("../util/util"),interpolate=require("../util/interpolate"),browser=require("../util/browser"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),Evented=require("../util/evented"),Camera=function(t){function i(i,e){t.call(this),this.moving=!1,this.transform=i,this._bearingSnap=e.bearingSnap}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.getCenter=function(){return this.transform.center},i.prototype.setCenter=function(t,i){return this.jumpTo({center:t},i),this},i.prototype.panBy=function(t,i,e){return this.panTo(this.transform.center,util.extend({offset:Point.convert(t).mult(-1)},i),e),this},i.prototype.panTo=function(t,i,e){return this.easeTo(util.extend({center:t},i),e)},i.prototype.getZoom=function(){return this.transform.zoom},i.prototype.setZoom=function(t,i){return this.jumpTo({zoom:t},i),this},i.prototype.zoomTo=function(t,i,e){return this.easeTo(util.extend({zoom:t},i),e)},i.prototype.zoomIn=function(t,i){return this.zoomTo(this.getZoom()+1,t,i),this},i.prototype.zoomOut=function(t,i){return this.zoomTo(this.getZoom()-1,t,i),this},i.prototype.getBearing=function(){return this.transform.bearing},i.prototype.setBearing=function(t,i){return this.jumpTo({bearing:t},i),this},i.prototype.rotateTo=function(t,i,e){return this.easeTo(util.extend({bearing:t},i),e)},i.prototype.resetNorth=function(t,i){return this.rotateTo(0,util.extend({duration:1e3},t),i),this},i.prototype.snapToNorth=function(t,i){return Math.abs(this.getBearing())i?1:0}),["bottom","left","right","top"]))return void util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'");t=LngLatBounds.convert(t);var n=[i.padding.left-i.padding.right,i.padding.top-i.padding.bottom],r=Math.min(i.padding.right,i.padding.left),s=Math.min(i.padding.top,i.padding.bottom);i.offset=[i.offset[0]+n[0],i.offset[1]+n[1]];var a=Point.convert(i.offset),h=this.transform,u=h.project(t.getNorthWest()),p=h.project(t.getSouthEast()),c=p.sub(u),g=(h.width-2*r-2*Math.abs(a.x))/c.x,m=(h.height-2*s-2*Math.abs(a.y))/c.y;return m<0||g<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(i.center=h.unproject(u.add(p).div(2)),i.zoom=Math.min(h.scaleZoom(h.scale*Math.min(g,m)),i.maxZoom),i.bearing=0,i.linear?this.easeTo(i,e):this.flyTo(i,e))},i.prototype.jumpTo=function(t,i){this.stop();var e=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&e.zoom!==+t.zoom&&(o=!0,e.zoom=+t.zoom),"center"in t&&(e.center=LngLat.convert(t.center)),"bearing"in t&&e.bearing!==+t.bearing&&(n=!0,e.bearing=+t.bearing),"pitch"in t&&e.pitch!==+t.pitch&&(r=!0,e.pitch=+t.pitch),this.fire("movestart",i).fire("move",i),o&&this.fire("zoomstart",i).fire("zoom",i).fire("zoomend",i),n&&this.fire("rotate",i),r&&this.fire("pitch",i),this.fire("moveend",i)},i.prototype.easeTo=function(t,i){var e=this;this.stop(),t=util.extend({offset:[0,0],duration:500,easing:util.ease},t);var o,n,r=this.transform,s=Point.convert(t.offset),a=this.getZoom(),h=this.getBearing(),u=this.getPitch(),p="zoom"in t?+t.zoom:a,c="bearing"in t?this._normalizeBearing(t.bearing,h):h,g="pitch"in t?+t.pitch:u;"center"in t?(o=LngLat.convert(t.center),n=r.centerPoint.add(s)):"around"in t?(o=LngLat.convert(t.around),n=r.locationPoint(o)):(n=r.centerPoint.add(s),o=r.pointLocation(n));var m=r.locationPoint(o);return t.animate===!1&&(t.duration=0),this.zooming=p!==a,this.rotating=h!==c,this.pitching=g!==u,t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration)),t.noMoveStart||(this.moving=!0,this.fire("movestart",i)),this.zooming&&this.fire("zoomstart",i),clearTimeout(this._onEaseEnd),this._ease(function(t){this.zooming&&(r.zoom=interpolate(a,p,t)),this.rotating&&(r.bearing=interpolate(h,c,t)),this.pitching&&(r.pitch=interpolate(u,g,t)),r.setLocationAtPoint(o,m.add(n.sub(m)._mult(t))),this.fire("move",i),this.zooming&&this.fire("zoom",i),this.rotating&&this.fire("rotate",i),this.pitching&&this.fire("pitch",i)},function(){t.delayEndEvents?e._onEaseEnd=setTimeout(e._easeToEnd.bind(e,i),t.delayEndEvents):e._easeToEnd(i)},t),this},i.prototype._easeToEnd=function(t){var i=this.zooming;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,i&&this.fire("zoomend",t),this.fire("moveend",t)},i.prototype.flyTo=function(t,i){function e(t){var i=(y*y-z*z+(t?-1:1)*E*E*_*_)/(2*(t?y:z)*E*_);return Math.log(Math.sqrt(i*i+1)-i)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function n(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/n(t)}this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,a=Point.convert(t.offset),h=this.getZoom(),u=this.getBearing(),p=this.getPitch(),c="center"in t?LngLat.convert(t.center):this.getCenter(),g="zoom"in t?+t.zoom:h,m="bearing"in t?this._normalizeBearing(t.bearing,u):u,f="pitch"in t?+t.pitch:p;Math.abs(s.center.lng)+Math.abs(c.lng)>180&&(s.center.lng>0&&c.lng<0?c.lng+=360:s.center.lng<0&&c.lng>0&&(c.lng-=360));var d=s.zoomScale(g-h),l=s.point,v="center"in t?s.project(c).sub(a.div(d)):l,b=t.curve,z=Math.max(s.width,s.height),y=z/d,_=v.sub(l).mag();if("minZoom"in t){var M=util.clamp(Math.min(t.minZoom,h,g),s.minZoom,s.maxZoom),T=z/s.zoomScale(M-h);b=Math.sqrt(T/_*2)}var E=b*b,x=e(0),L=function(t){return n(x)/n(x+b*t)},Z=function(t){return z*((n(x)*r(x+b*t)-o(x))/E)/_},P=(e(1)-x)/b;if(Math.abs(_)<1e-6){if(Math.abs(z-y)<1e-6)return this.easeTo(t,i);var j=y=0)return!1;return!0}),this._container.innerHTML=i.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},module.exports=AttributionControl; +},{"../../util/dom":199,"../../util/util":212}],174:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),FullscreenControl=function(){this._fullscreen=!1,util.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in window.document&&(this._fullscreenchange="MSFullscreenChange")};FullscreenControl.prototype.onAdd=function(e){var n="mapboxgl-ctrl",t=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),l=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return l.setAttribute("aria-label","Toggle fullscreen"),l.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),t},FullscreenControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},FullscreenControl.prototype._isFullscreen=function(){return this._fullscreen},FullscreenControl.prototype._changeIcon=function(e){if(e.target===this._mapContainer){this._fullscreen=!this._fullscreen;var n="mapboxgl-ctrl";this._fullscreenButton.classList.toggle(n+"-shrink"),this._fullscreenButton.classList.toggle(n+"-fullscreen")}},FullscreenControl.prototype._onClickFullscreen=function(){this._isFullscreen()?window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen&&window.document.webkitCancelFullScreen():this._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()},module.exports=FullscreenControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],175:[function(require,module,exports){ +"use strict";function checkGeolocationSupport(t){void 0!==supportsGeolocation?t(supportsGeolocation):void 0!==window.navigator.permissions?window.navigator.permissions.query({name:"geolocation"}).then(function(o){supportsGeolocation="denied"!==o.state,t(supportsGeolocation)}):(supportsGeolocation=!!window.navigator.geolocation,t(supportsGeolocation))}var Evented=require("../../util/evented"),DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},className="mapboxgl-ctrl",supportsGeolocation,GeolocateControl=function(t){function o(o){t.call(this),this.options=o||{},util.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group"),checkGeolocationSupport(this._setupUI),this._container},o.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},o.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},o.prototype._onError=function(t){this.fire("error",t),this._finish()},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},o.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button",className+"-icon "+className+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},o.prototype._onClickGeolocate=function(){var t=util.extend(defaultGeoPositionOptions,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},o}(Evented);module.exports=GeolocateControl; +},{"../../util/dom":199,"../../util/evented":200,"../../util/util":212,"../../util/window":194}],176:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),LogoControl=function(){util.bindAll(["_updateLogo"],this)};LogoControl.prototype.onAdd=function(o){return this._map=o,this._container=DOM.create("div","mapboxgl-ctrl"),this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._container},LogoControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateLogo)},LogoControl.prototype.getDefaultPosition=function(){return"bottom-left"},LogoControl.prototype._updateLogo=function(o){if(o&&"metadata"===o.sourceDataType)if(!this._container.childNodes.length&&this._logoRequired()){var t=DOM.create("a","mapboxgl-ctrl-logo");t.target="_blank",t.href="https://www.mapbox.com/",t.setAttribute("aria-label","Mapbox logo"),this._container.appendChild(t),this._map.off("data",this._updateLogo)}else this._container.childNodes.length&&!this._logoRequired()&&this.onRemove()},LogoControl.prototype._logoRequired=function(){if(this._map.style){var o=this._map.style.sourceCaches;for(var t in o){var e=o[t].getSource();if(e.mapbox_logo)return!0}return!1}},module.exports=LogoControl; +},{"../../util/dom":199,"../../util/util":212}],177:[function(require,module,exports){ +"use strict";function copyMouseEvent(t){return new window.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),className="mapboxgl-ctrl",NavigationControl=function(){util.bindAll(["_rotateCompassArrow"],this)};NavigationControl.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},NavigationControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(className+"-icon "+className+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(className+"-icon "+className+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(className+"-icon "+className+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=DOM.create("span",className+"-compass-arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},NavigationControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},NavigationControl.prototype._onContextMenu=function(t){t.preventDefault()},NavigationControl.prototype._onCompassDown=function(t){0===t.button&&(DOM.disableDrag(),window.document.addEventListener("mousemove",this._onCompassMove),window.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassUp=function(t){0===t.button&&(window.document.removeEventListener("mousemove",this._onCompassMove),window.document.removeEventListener("mouseup",this._onCompassUp),DOM.enableDrag(),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._createButton=function(t,o,e){var n=DOM.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",o),n.addEventListener("click",function(){e()}),n},module.exports=NavigationControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],178:[function(require,module,exports){ +"use strict";function updateScale(t,e,o){var n=o&&o.maxWidth||100,i=t._container.clientHeight/2,a=getDistance(t.unproject([0,i]),t.unproject([n,i]));if(o&&"imperial"===o.unit){var r=3.2808*a;if(r>5280){var l=r/5280;setScale(e,n,l,"mi")}else setScale(e,n,r,"ft")}else setScale(e,n,a,"m")}function setScale(t,e,o,n){var i=getRoundNum(o),a=i/o;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*a+"px",t.innerHTML=i+n}function getDistance(t,e){var o=6371e3,n=Math.PI/180,i=t.lat*n,a=e.lat*n,r=Math.sin(i)*Math.sin(a)+Math.cos(i)*Math.cos(a)*Math.cos((e.lng-t.lng)*n),l=o*Math.acos(Math.min(r,1));return l}function getRoundNum(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),o=t/e;return o=o>=10?10:o>=5?5:o>=3?3:o>=2?2:1,e*o}var DOM=require("../../util/dom"),util=require("../../util/util"),ScaleControl=function(t){this.options=t,util.bindAll(["_onMove"],this)};ScaleControl.prototype.getDefaultPosition=function(){return"bottom-left"},ScaleControl.prototype._onMove=function(){updateScale(this._map,this._container,this.options)},ScaleControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ScaleControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},module.exports=ScaleControl; +},{"../../util/dom":199,"../../util/util":212}],179:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),LngLatBounds=require("../../geo/lng_lat_bounds"),util=require("../../util/util"),window=require("../../util/window"),BoxZoomHandler=function(o){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),util.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};BoxZoomHandler.prototype.isEnabled=function(){return!!this._enabled},BoxZoomHandler.prototype.isActive=function(){return!!this._active},BoxZoomHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},BoxZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},BoxZoomHandler.prototype._onMouseDown=function(o){o.shiftKey&&0===o.button&&(window.document.addEventListener("mousemove",this._onMouseMove,!1),window.document.addEventListener("keydown",this._onKeyDown,!1),window.document.addEventListener("mouseup",this._onMouseUp,!1),DOM.disableDrag(),this._startPos=DOM.mousePos(this._el,o),this._active=!0)},BoxZoomHandler.prototype._onMouseMove=function(o){var e=this._startPos,t=DOM.mousePos(this._el,o);this._box||(this._box=DOM.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",o));var n=Math.min(e.x,t.x),i=Math.max(e.x,t.x),s=Math.min(e.y,t.y),r=Math.max(e.y,t.y);DOM.setTransform(this._box,"translate("+n+"px,"+s+"px)"),this._box.style.width=i-n+"px",this._box.style.height=r-s+"px"},BoxZoomHandler.prototype._onMouseUp=function(o){if(0===o.button){var e=this._startPos,t=DOM.mousePos(this._el,o),n=(new LngLatBounds).extend(this._map.unproject(e)).extend(this._map.unproject(t));this._finish(),e.x===t.x&&e.y===t.y?this._fireEvent("boxzoomcancel",o):this._map.fitBounds(n,{linear:!0}).fire("boxzoomend",{originalEvent:o,boxZoomBounds:n})}},BoxZoomHandler.prototype._onKeyDown=function(o){27===o.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",o))},BoxZoomHandler.prototype._finish=function(){this._active=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!1),window.document.removeEventListener("keydown",this._onKeyDown,!1),window.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),DOM.enableDrag()},BoxZoomHandler.prototype._fireEvent=function(o,e){return this._map.fire(o,{originalEvent:e})},module.exports=BoxZoomHandler; +},{"../../geo/lng_lat_bounds":63,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],180:[function(require,module,exports){ +"use strict";var DoubleClickZoomHandler=function(o){this._map=o,this._onDblClick=this._onDblClick.bind(this)};DoubleClickZoomHandler.prototype.isEnabled=function(){return!!this._enabled},DoubleClickZoomHandler.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},DoubleClickZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},DoubleClickZoomHandler.prototype._onDblClick=function(o){this._map.zoomTo(this._map.getZoom()+(o.originalEvent.shiftKey?-1:1),{around:o.lngLat},o)},module.exports=DoubleClickZoomHandler; +},{}],181:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.3,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=1400,inertiaDeceleration=2500,DragPanHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};DragPanHandler.prototype.isEnabled=function(){return!!this._enabled},DragPanHandler.prototype.isActive=function(){return!!this._active},DragPanHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},DragPanHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(window.document.addEventListener("touchmove",this._onMove),window.document.addEventListener("touchend",this._onTouchEnd)):(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onMouseUp)),window.addEventListener("blur",this._onMouseUp),this._active=!1,this._startPos=this._pos=DOM.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},DragPanHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=DOM.mousePos(this._el,t),n=this._map;n.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),n.transform.setLocationAtPoint(n.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},DragPanHandler.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var n=function(){e._map.moving=!1,e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void n();var o=i[i.length-1],r=i[0],a=o[1].sub(r[1]),s=(o[0]-r[0])/1e3;if(0===s||o[1].equals(r[1]))return void n();var u=a.mult(inertiaLinearity/s),d=u.mag();d>inertiaMaxSpeed&&(d=inertiaMaxSpeed,u._unit()._mult(d));var h=d/(inertiaDeceleration*inertiaLinearity),v=u.mult(-h/2);this._map.panBy(v,{duration:1e3*h,easing:inertiaEasing,noMoveStart:!0},{originalEvent:t})}},DragPanHandler.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onMouseUp),window.removeEventListener("blur",this._onMouseUp))},DragPanHandler.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onTouchEnd))},DragPanHandler.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},DragPanHandler.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var n=1,i=0;return"mousemove"===t.type?t.buttons&0===n:t.button&&t.button!==i},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),n=160;t.length>0&&e-t[0][0]>n;)t.shift()},module.exports=DragPanHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],182:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.25,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=180,inertiaDeceleration=720,DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,util.bindAll(["_onDown","_onMove","_onUp"],this)};DragRotateHandler.prototype.isEnabled=function(){return!!this._enabled},DragRotateHandler.prototype.isActive=function(){return!!this._active},DragRotateHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},DragRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},DragRotateHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onUp),window.addEventListener("blur",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=DOM.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},DragRotateHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=(i.y-n.y)*-.5,o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,v=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,v[1])]),e.transform.bearing=o,this._pitchWithRotate&&(e.transform.pitch=s),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},DragRotateHandler.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onUp),window.removeEventListener("blur",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var i=this._map,n=i.getBearing(),r=this._inertia,a=function(){Math.abs(n)inertiaMaxSpeed&&(p=inertiaMaxSpeed);var l=p/(inertiaDeceleration*inertiaLinearity),g=u*p*(l/2);v+=g,Math.abs(i._normalizeBearing(v,0))1;var i=t.ctrlKey?1:2,n=t.ctrlKey?0:2,r=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&window.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(r=0),"mousemove"===t.type?t.buttons&0===i:!this.isActive()&&r!==n},DragRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),i=160;t.length>0&&e-t[0][0]>i;)t.shift()},module.exports=DragRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],183:[function(require,module,exports){ +"use strict";function easeOut(e){return e*(2-e)}var panStep=100,bearingStep=15,pitchStep=10,KeyboardHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};KeyboardHandler.prototype.isEnabled=function(){return!!this._enabled},KeyboardHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},KeyboardHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},KeyboardHandler.prototype._onKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey)){var t=0,n=0,a=0,i=0,r=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?a=1:(e.preventDefault(),r=-1);break;case 40:e.shiftKey?a=-1:(r=1,e.preventDefault())}var s=this._map,o=s.getZoom(),d={duration:300,delayEndEvents:500,easing:easeOut,zoom:t?Math.round(o)+t*(e.shiftKey?2:1):o,bearing:s.getBearing()+n*bearingStep,pitch:s.getPitch()+a*pitchStep,offset:[-i*panStep,-r*panStep],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler; +},{}],184:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),browser=require("../../util/browser"),window=require("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=ua.indexOf("firefox")!==-1,safari=ua.indexOf("safari")!==-1&&ua.indexOf("chrom")===-1,ScrollZoomHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),util.bindAll(["_onWheel","_onTimeout"],this)};ScrollZoomHandler.prototype.isEnabled=function(){return!!this._enabled},ScrollZoomHandler.prototype.enable=function(e){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=e&&"center"===e.around)},ScrollZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},ScrollZoomHandler.prototype._onWheel=function(e){var t;"wheel"===e.type?(t=e.deltaY,firefox&&e.deltaMode===window.WheelEvent.DOM_DELTA_PIXEL&&(t/=browser.devicePixelRatio),e.deltaMode===window.WheelEvent.DOM_DELTA_LINE&&(t*=40)):"mousewheel"===e.type&&(t=-e.wheelDeltaY,safari&&(t/=3));var o=browser.now(),i=o-(this._time||0);this._pos=DOM.mousePos(this._el,e),this._time=o,0!==t&&t%4.000244140625===0?this._type="wheel":0!==t&&Math.abs(t)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*t)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&this._zoom(-t,e),e.preventDefault()},ScrollZoomHandler.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},ScrollZoomHandler.prototype._zoom=function(e,t){if(0!==e){var o=this._map,i=2/(1+Math.exp(-Math.abs(e/100)));e<0&&0!==i&&(i=1/i);var l=o.ease?o.ease.to:o.transform.scale,s=o.transform.scaleZoom(l*i);o.zoomTo(s,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?o.getCenter():o.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:t})}},module.exports=ScrollZoomHandler; +},{"../../util/browser":192,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],185:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.15,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaDeceleration=12,inertiaMaxSpeed=2.5,significantScaleThreshold=.15,significantRotateThreshold=4,TouchZoomRotateHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onStart","_onMove","_onEnd"],this)};TouchZoomRotateHandler.prototype.isEnabled=function(){return!!this._enabled},TouchZoomRotateHandler.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},TouchZoomRotateHandler.prototype.disableRotation=function(){this._rotationDisabled=!0},TouchZoomRotateHandler.prototype.enableRotation=function(){this._rotationDisabled=!1},TouchZoomRotateHandler.prototype._onStart=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]);this._startVec=e.sub(o),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],window.document.addEventListener("touchmove",this._onMove,!1),window.document.addEventListener("touchend",this._onEnd,!1)}},TouchZoomRotateHandler.prototype._onMove=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]),i=e.add(o).div(2),n=e.sub(o),a=n.mag()/this._startVec.mag(),r=this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI,s=this._map;if(this._gestureIntent){var h={duration:0,around:s.unproject(i)};"rotate"===this._gestureIntent&&(h.bearing=this._startBearing+r),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(h.zoom=s.transform.scaleZoom(this._startScale*a)),s.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),s.easeTo(h,{originalEvent:t})}else{var u=Math.abs(1-a)>significantScaleThreshold,d=Math.abs(r)>significantRotateThreshold;d?this._gestureIntent="rotate":u&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=n,this._startScale=s.transform.scale,this._startBearing=s.transform.bearing)}t.preventDefault()}},TouchZoomRotateHandler.prototype._onEnd=function(t){window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,o=this._map;if(e.length<2)return void o.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],a=o.transform.scaleZoom(this._startScale*i[1]),r=o.transform.scaleZoom(this._startScale*n[1]),s=a-r,h=(i[0]-n[0])/1e3,u=i[2];if(0===h||a===r)return void o.snapToNorth({},{originalEvent:t});var d=s*inertiaLinearity/h;Math.abs(d)>inertiaMaxSpeed&&(d=d>0?inertiaMaxSpeed:-inertiaMaxSpeed);var l=1e3*Math.abs(d/(inertiaDeceleration*inertiaLinearity)),c=a+d*l/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:l,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),o=160;t.length>2&&e-t[0][0]>o;)t.shift()},module.exports=TouchZoomRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],186:[function(require,module,exports){ +"use strict";var util=require("../util/util"),window=require("../util/window"),Hash=function(){util.bindAll(["_onHashChange","_updateHash"],this)};Hash.prototype.addTo=function(t){return this._map=t,window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Hash.prototype.remove=function(){return window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},Hash.prototype._onHashChange=function(){var t=window.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},Hash.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),a=this._map.getBearing(),h=this._map.getPitch(),i=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),n="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(i)+"/"+t.lng.toFixed(i);(a||h)&&(n+="/"+Math.round(10*a)/10),h&&(n+="/"+Math.round(h)),window.history.replaceState("","",n)},module.exports=Hash; +},{"../util/util":212,"../util/window":194}],187:[function(require,module,exports){ +"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=require("../util/util"),browser=require("../util/browser"),window=require("../util/window"),DOM=require("../util/dom"),Style=require("../style/style"),AnimationLoop=require("../style/animation_loop"),Painter=require("../render/painter"),Transform=require("../geo/transform"),Hash=require("./hash"),bindHandlers=require("./bind_handlers"),Camera=require("./camera"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),AttributionControl=require("./control/attribution_control"),LogoControl=require("./control/logo_control"),isSupported=require("mapbox-gl-supported"),defaultMinZoom=0,defaultMaxZoom=22,defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:defaultMinZoom,maxZoom:defaultMaxZoom,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0},Map=function(t){function e(e){var o=this;if(e=util.extend({},defaultOptions,e),null!=e.minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than minZoom");var i=new Transform(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,"string"==typeof e.container){if(this._container=window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new AnimationLoop,e.maxBounds&&this.setMaxBounds(e.maxBounds),util.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){o.animationLoop.set(300),o._rerender()}),"undefined"!=typeof window&&(window.addEventListener("online",this._onWindowOnline,!1),window.addEventListener("resize",this._onWindowResize,!1)),bindHandlers(this,e),this._hash=e.hash&&(new Hash).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new AttributionControl),this.addControl(new LogoControl,e.logoPosition),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var o=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(o,i.firstChild):i.appendChild(o),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var o=this._classes.indexOf(t);return o<0||""===t?this:(this._classes.splice(o,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var o={},i=0;i=0},e.prototype.getClasses=function(){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],o=t[1];return this._resizeCanvas(e,o),this.transform.resize(e,o),this.painter.resize(e,o),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new LngLatBounds(this.transform.pointLocation(new Point(0,this.transform.height)),this.transform.pointLocation(new Point(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new Point(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new Point(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=LngLatBounds.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?defaultMinZoom:t,t>=defaultMinZoom&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(LngLat.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(Point.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof Point||Array.isArray(t)}var e,o={};return 2===arguments.length?(e=arguments[0],o=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(o=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),o,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[Point.convert([0,0]),Point.convert([this.transform.width,this.transform.height])]);var o,i=t instanceof Point||"number"==typeof t[0];if(i){var r=Point.convert(t);o=[r]}else{var s=[Point.convert(t[0]),Point.convert(t[1])];o=[s[0],new Point(s[1].x,s[0].y),s[1],new Point(s[0].x,s[1].y),s[0]]}return o=o.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var o=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof Style)&&"string"!=typeof t;if(o)try{return this.style.setState(t)&&this._update(!0),this}catch(t){util.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof Style?this.style=t:this.style=new Style(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,o){return this.style.addSourceType(t,e,o)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addImage=function(t,e,o){this.style.spriteAtlas.addImage(t,e,o)},e.prototype.removeImage=function(t){this.style.spriteAtlas.removeImage(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,o){return this.style.setLayerZoomRange(t,e,o),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,o,i){return this.style.setPaintProperty(t,e,o,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,o){return this.style.getPaintProperty(t,e,o)},e.prototype.setLayoutProperty=function(t,e,o){return this.style.setLayoutProperty(t,e,o),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=DOM.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=DOM.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",0),this._canvas.setAttribute("aria-label","Map");var o=this._containerDimensions();this._resizeCanvas(o[0],o[1]);var i=this._controlContainer=DOM.create("div","mapboxgl-control-container",t),r=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){r[t]=DOM.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var o=window.devicePixelRatio||1;this._canvas.width=o*t,this._canvas.height=o*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=util.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},isSupported.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new Painter(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&browser.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),browser.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof window&&(window.removeEventListener("resize",this._onWindowResize,!1),window.removeEventListener("online",this._onWindowOnline,!1));var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),removeNode(this._canvasContainer),removeNode(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=browser.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},o.showTileBoundaries.get=function(){return!!this._showTileBoundaries},o.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},o.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},o.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},o.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},o.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},o.repaint.get=function(){return!!this._repaint},o.repaint.set=function(t){this._repaint=t,this._update()},o.vertices.get=function(){return!!this._vertices},o.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,o),e}(Camera);module.exports=Map; +},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../geo/transform":64,"../render/painter":77,"../style/animation_loop":143,"../style/style":146,"../util/browser":192,"../util/dom":199,"../util/util":212,"../util/window":194,"./bind_handlers":171,"./camera":172,"./control/attribution_control":173,"./control/logo_control":176,"./hash":186,"mapbox-gl-supported":22,"point-geometry":26}],188:[function(require,module,exports){ +"use strict";var DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),Marker=function(t,e){this._offset=Point.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=DOM.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};Marker.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},Marker.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),DOM.remove(this._element),this._popup&&this._popup.remove(),this},Marker.prototype.getLngLat=function(){return this._lngLat},Marker.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},Marker.prototype.getElement=function(){return this._element},Marker.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},Marker.prototype._onMapClick=function(t){var e=t.originalEvent.target,p=this._element;this._popup&&(e===p||p.contains(e))&&this.togglePopup()},Marker.prototype.getPopup=function(){return this._popup},Marker.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},Marker.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),DOM.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},module.exports=Marker; +},{"../geo/lng_lat":62,"../util/dom":199,"point-geometry":26}],189:[function(require,module,exports){ +"use strict";function normalizeOffset(t){if(t){if("number"==typeof t){var o=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new Point(0,t),"top-left":new Point(o,o),"top-right":new Point(-o,o),bottom:new Point(0,-t),"bottom-left":new Point(o,-o),"bottom-right":new Point(-o,-o),left:new Point(t,0),right:new Point(-t,0)}}if(isPointLike(t)){var e=Point.convert(t);return{top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{top:Point.convert(t.top||[0,0]),"top-left":Point.convert(t["top-left"]||[0,0]),"top-right":Point.convert(t["top-right"]||[0,0]),bottom:Point.convert(t.bottom||[0,0]),"bottom-left":Point.convert(t["bottom-left"]||[0,0]),"bottom-right":Point.convert(t["bottom-right"]||[0,0]),left:Point.convert(t.left||[0,0]),right:Point.convert(t.right||[0,0])}}return normalizeOffset(new Point(0,0))}function isPointLike(t){return t instanceof Point||Array.isArray(t)}var util=require("../util/util"),Evented=require("../util/evented"),DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),window=require("../util/window"),defaultOptions={closeButton:!0,closeOnClick:!0},Popup=function(t){function o(o){t.call(this),this.options=util.extend(Object.create(defaultOptions),o),util.bindAll(["_update","_onClickClose"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},o.prototype.isOpen=function(){return!!this._map},o.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._update(),this},o.prototype.setText=function(t){return this.setDOMContent(window.document.createTextNode(t))},o.prototype.setHTML=function(t){var o,e=window.document.createDocumentFragment(),n=window.document.createElement("body");for(n.innerHTML=t;;){if(o=n.firstChild,!o)break;e.appendChild(o)}return this.setDOMContent(e)},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=DOM.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=DOM.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},o.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=DOM.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=DOM.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,o=normalizeOffset(this.options.offset),e=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,i=this._container.offsetHeight;t=e.y+o.bottom.ythis._map.transform.height-i?["bottom"]:[],e.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var r=e.add(o[t]),s={top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},p=this._container.classList;for(var a in s)p.remove("mapboxgl-popup-anchor-"+a);p.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,s[t]+" translate("+r.x+"px,"+r.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup; +},{"../geo/lng_lat":62,"../util/dom":199,"../util/evented":200,"../util/util":212,"../util/window":194,"point-geometry":26}],190:[function(require,module,exports){ +"use strict";var Actor=function(t,e,a){this.target=t,this.parent=e,this.mapId=a,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};Actor.prototype.send=function(t,e,a,r,s){var i=a?this.mapId+":"+this.callbackID++:null;a&&(this.callbacks[i]=a),this.target.postMessage({targetMapId:s,sourceMapId:this.mapId,type:t,id:String(i),data:e},r)},Actor.prototype.receive=function(t){var e,a=this,r=t.data,s=r.id;if(!r.targetMapId||this.mapId===r.targetMapId){var i=function(t,e,r){a.target.postMessage({sourceMapId:a.mapId,type:"",id:String(s),error:t?String(t):null,data:e},r)};if(""===r.type)e=this.callbacks[r.id],delete this.callbacks[r.id],e&&e(r.error||null,r.data);else if("undefined"!=typeof r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if("undefined"!=typeof r.id&&this.parent.getWorkerSource){var p=r.type.split("."),d=this.parent.getWorkerSource(r.sourceMapId,p[0]);d[p[1]](r.data,i)}else this.parent[r.type](r.data)}},Actor.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},module.exports=Actor; +},{}],191:[function(require,module,exports){ +"use strict";function sameOrigin(e){var t=window.document.createElement("a");return t.href=e,t.protocol===window.document.location.protocol&&t.host===window.document.location.host}var window=require("./window");exports.getJSON=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","application/json"),n.onerror=function(e){t(e)},n.onload=function(){if(n.status>=200&&n.status<300&&n.response){var e;try{e=JSON.parse(n.response)}catch(e){return t(e)}t(null,e)}else t(new Error(n.statusText))},n.send(),n},exports.getArrayBuffer=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.responseType="arraybuffer",n.onerror=function(e){t(e)},n.onload=function(){return 0===n.response.byteLength&&200===n.status?t(new Error("http status 200 returned without content.")):void(n.status>=200&&n.status<300&&n.response?t(null,{data:n.response,cacheControl:n.getResponseHeader("Cache-Control"),expires:n.getResponseHeader("Expires")}):t(new Error(n.statusText)))},n.send(),n};var transparentPngUrl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,n){if(e)return t(e);var r=new window.Image,o=window.URL||window.webkitURL;r.onload=function(){t(null,r),o.revokeObjectURL(r.src)};var a=new window.Blob([new Uint8Array(n.data)],{type:"image/png"});r.cacheControl=n.cacheControl,r.expires=n.expires,r.src=n.data.byteLength?o.createObjectURL(a):transparentPngUrl})},exports.getVideo=function(e,t){var n=window.document.createElement("video");n.onloadstart=function(){t(null,n)};for(var r=0;r=a+n?e.call(t,1):(e.call(t,(i-a)/n),exports.frame(o)))}if(!n)return e.call(t,1),null;var r=!1,a=module.exports.now();return exports.frame(o),function(){r=!0}},exports.getImageData=function(e){var n=window.document.createElement("canvas"),t=n.getContext("2d");return n.width=e.width,n.height=e.height,t.drawImage(e,0,0),t.getImageData(0,0,e.width,e.height).data},exports.supported=require("mapbox-gl-supported"),exports.hardwareConcurrency=window.navigator.hardwareConcurrency||4,Object.defineProperty(exports,"devicePixelRatio",{get:function(){return window.devicePixelRatio}}),exports.supportsWebp=!1;var webpImgTest=window.document.createElement("img");webpImgTest.onload=function(){exports.supportsWebp=!0},webpImgTest.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="; +},{"./window":194,"mapbox-gl-supported":22}],193:[function(require,module,exports){ +"use strict";var WebWorkify=require("webworkify"),window=require("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(require("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}; +},{"../../source/worker":98,"../window":194,"webworkify":41}],194:[function(require,module,exports){ +"use strict";module.exports=self; +},{}],195:[function(require,module,exports){ +"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=require("quickselect"),calculateSignedArea=require("./util").calculateSignedArea;module.exports=function(e,r){var a=e.length;if(a<=1)return[e];for(var t,u,c=[],i=0;i1)for(var n=0;n0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)},Evented.prototype.setEventedParent=function(e,t){return this._eventedParent=e,this._eventedParentData=t,this},module.exports=Evented; +},{"./util":212}],201:[function(require,module,exports){ +"use strict";function compareMax(e,t){return t.max-e.max}function Cell(e,t,n,r){this.p=new Point(e,t),this.h=n,this.d=pointToPolygonDist(this.p,r),this.max=this.d+this.h*Math.SQRT2}function pointToPolygonDist(e,t){for(var n=!1,r=1/0,o=0;oe.y!=h.y>e.y&&e.x<(h.x-a.x)*(e.y-a.y)/(h.y-a.y)+a.x&&(n=!n),r=Math.min(r,distToSegmentSquared(e,a,h))}return(n?1:-1)*Math.sqrt(r)}function getCentroidCell(e){for(var t=0,n=0,r=0,o=e[0],i=0,l=o.length,u=l-1;ii)&&(i=a.x),(!s||a.y>l)&&(l=a.y)}var h=i-r,p=l-o,y=Math.min(h,p),x=y/2,d=new Queue(null,compareMax);if(0===y)return[r,o];for(var g=r;gm.d||!m.d)&&(m=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,c)),v.max-m.d<=t||(x=v.h/2,d.push(new Cell(v.p.x-x,v.p.y-x,x,e)),d.push(new Cell(v.p.x+x,v.p.y-x,x,e)),d.push(new Cell(v.p.x-x,v.p.y+x,x,e)),d.push(new Cell(v.p.x+x,v.p.y+x,x,e)),c+=4)}return n&&(console.log("num probes: "+c),console.log("best distance: "+m.d)),m.p}; +},{"./intersection_tests":205,"point-geometry":26,"tinyqueue":30}],202:[function(require,module,exports){ +"use strict";var WorkerPool=require("./worker_pool"),globalWorkerPool;module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}; +},{"./worker_pool":215}],203:[function(require,module,exports){ +"use strict";function Glyphs(a,e){this.stacks=a.readFields(readFontstacks,[],e)}function readFontstacks(a,e,r){if(1===a){var t=r.readMessage(readFontstack,{glyphs:{}});e.push(t)}}function readFontstack(a,e,r){if(1===a)e.name=r.readString();else if(2===a)e.range=r.readString();else if(3===a){var t=r.readMessage(readGlyph,{});e.glyphs[t.id]=t}}function readGlyph(a,e,r){1===a?e.id=r.readVarint():2===a?e.bitmap=r.readBytes():3===a?e.width=r.readVarint():4===a?e.height=r.readVarint():5===a?e.left=r.readSVarint():6===a?e.top=r.readSVarint():7===a&&(e.advance=r.readVarint())}module.exports=Glyphs; +},{}],204:[function(require,module,exports){ +"use strict";function interpolate(t,e,n){return t*(1-n)+e*n}module.exports=interpolate,interpolate.number=interpolate,interpolate.vec2=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n)]},interpolate.color=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n),interpolate(t[2],e[2],n),interpolate(t[3],e[3],n)]},interpolate.array=function(t,e,n){return t.map(function(t,r){return interpolate(t,e[r],n)})}; +},{}],205:[function(require,module,exports){ +"use strict";function polygonIntersectsPolygon(n,t){for(var e=0;e=3)for(var u=0;u1){if(lineIntersectsLine(n,t))return!0;for(var r=0;r1?n.distSqr(e):n.distSqr(e.sub(t)._mult(o)._add(t))}function multiPolygonContainsPoint(n,t){for(var e,r,o,i=!1,l=0;lt.y!=o.y>t.y&&t.x<(o.x-r.x)*(t.y-r.y)/(o.y-r.y)+r.x&&(i=!i)}return i}function polygonContainsPoint(n,t){for(var e=!1,r=0,o=n.length-1;rt.y!=l.y>t.y&&t.x<(l.x-i.x)*(t.y-i.y)/(l.y-i.y)+i.x&&(e=!e)}return e}var isCounterClockwise=require("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}; +},{"./util":212}],206:[function(require,module,exports){ +"use strict";var unicodeBlockLookup={"Latin-1 Supplement":function(n){return n>=128&&n<=255},"Hangul Jamo":function(n){return n>=4352&&n<=4607},"Unified Canadian Aboriginal Syllabics":function(n){return n>=5120&&n<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(n){return n>=6320&&n<=6399},"General Punctuation":function(n){return n>=8192&&n<=8303},"Letterlike Symbols":function(n){return n>=8448&&n<=8527},"Number Forms":function(n){return n>=8528&&n<=8591},"Miscellaneous Technical":function(n){return n>=8960&&n<=9215},"Control Pictures":function(n){return n>=9216&&n<=9279},"Optical Character Recognition":function(n){return n>=9280&&n<=9311},"Enclosed Alphanumerics":function(n){return n>=9312&&n<=9471},"Geometric Shapes":function(n){return n>=9632&&n<=9727},"Miscellaneous Symbols":function(n){return n>=9728&&n<=9983},"Miscellaneous Symbols and Arrows":function(n){return n>=11008&&n<=11263},"CJK Radicals Supplement":function(n){return n>=11904&&n<=12031},"Kangxi Radicals":function(n){return n>=12032&&n<=12255},"Ideographic Description Characters":function(n){return n>=12272&&n<=12287},"CJK Symbols and Punctuation":function(n){return n>=12288&&n<=12351},Hiragana:function(n){return n>=12352&&n<=12447},Katakana:function(n){return n>=12448&&n<=12543},Bopomofo:function(n){return n>=12544&&n<=12591},"Hangul Compatibility Jamo":function(n){return n>=12592&&n<=12687},Kanbun:function(n){return n>=12688&&n<=12703},"Bopomofo Extended":function(n){return n>=12704&&n<=12735},"CJK Strokes":function(n){return n>=12736&&n<=12783},"Katakana Phonetic Extensions":function(n){return n>=12784&&n<=12799},"Enclosed CJK Letters and Months":function(n){return n>=12800&&n<=13055},"CJK Compatibility":function(n){return n>=13056&&n<=13311},"CJK Unified Ideographs Extension A":function(n){return n>=13312&&n<=19903},"Yijing Hexagram Symbols":function(n){return n>=19904&&n<=19967},"CJK Unified Ideographs":function(n){return n>=19968&&n<=40959},"Yi Syllables":function(n){return n>=40960&&n<=42127},"Yi Radicals":function(n){return n>=42128&&n<=42191},"Hangul Jamo Extended-A":function(n){return n>=43360&&n<=43391},"Hangul Syllables":function(n){return n>=44032&&n<=55215},"Hangul Jamo Extended-B":function(n){return n>=55216&&n<=55295},"Private Use Area":function(n){return n>=57344&&n<=63743},"CJK Compatibility Ideographs":function(n){return n>=63744&&n<=64255},"Vertical Forms":function(n){return n>=65040&&n<=65055},"CJK Compatibility Forms":function(n){return n>=65072&&n<=65103},"Small Form Variants":function(n){return n>=65104&&n<=65135},"Halfwidth and Fullwidth Forms":function(n){return n>=65280&&n<=65519}};module.exports=unicodeBlockLookup; +},{}],207:[function(require,module,exports){ +"use strict";var LRUCache=function(t,e){this.max=t,this.onRemove=e,this.reset()};LRUCache.prototype.reset=function(){var t=this;for(var e in t.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},LRUCache.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},LRUCache.prototype.has=function(t){return t in this.data},LRUCache.prototype.keys=function(){return this.order},LRUCache.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},LRUCache.prototype.getWithoutRemoving=function(t){if(!this.has(t))return null;var e=this.data[t];return e},LRUCache.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},LRUCache.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},module.exports=LRUCache; +},{}],208:[function(require,module,exports){ +"use strict";function makeAPIURL(r,e){var t=parseUrl(config.API_URL);if(r.protocol=t.protocol,r.authority=t.authority,!config.REQUIRE_ACCESS_TOKEN)return formatUrl(r);if(e=e||config.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+help);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+help);return r.params.push("access_token="+e),formatUrl(r)}function isMapboxURL(r){return 0===r.indexOf("mapbox:")}function replaceTempAccessToken(r){for(var e=0;e=2||512===t?"@2x":"",s=browser.supportsWebp?".webp":"$1";return o.path=o.path.replace(imageExtensionRe,""+a+s),replaceTempAccessToken(o.params),formatUrl(o)};var urlRe=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/; +},{"./browser":192,"./config":196}],209:[function(require,module,exports){ +"use strict";var isChar=require("./is_char_in_unicode_block");module.exports.allowsIdeographicBreaking=function(a){for(var i=0,r=a;i=65097&&a<=65103)||(!!isChar["CJK Compatibility Ideographs"](a)||(!!isChar["CJK Compatibility"](a)||(!!isChar["CJK Radicals Supplement"](a)||(!!isChar["CJK Strokes"](a)||(!(!isChar["CJK Symbols and Punctuation"](a)||a>=12296&&a<=12305||a>=12308&&a<=12319||12336===a)||(!!isChar["CJK Unified Ideographs Extension A"](a)||(!!isChar["CJK Unified Ideographs"](a)||(!!isChar["Enclosed CJK Letters and Months"](a)||(!!isChar["Hangul Compatibility Jamo"](a)||(!!isChar["Hangul Jamo Extended-A"](a)||(!!isChar["Hangul Jamo Extended-B"](a)||(!!isChar["Hangul Jamo"](a)||(!!isChar["Hangul Syllables"](a)||(!!isChar.Hiragana(a)||(!!isChar["Ideographic Description Characters"](a)||(!!isChar.Kanbun(a)||(!!isChar["Kangxi Radicals"](a)||(!!isChar["Katakana Phonetic Extensions"](a)||(!(!isChar.Katakana(a)||12540===a)||(!(!isChar["Halfwidth and Fullwidth Forms"](a)||65288===a||65289===a||65293===a||a>=65306&&a<=65310||65339===a||65341===a||65343===a||a>=65371&&a<=65503||65507===a||a>=65512&&a<=65519)||(!(!isChar["Small Form Variants"](a)||a>=65112&&a<=65118||a>=65123&&a<=65126)||(!!isChar["Unified Canadian Aboriginal Syllabics"](a)||(!!isChar["Unified Canadian Aboriginal Syllabics Extended"](a)||(!!isChar["Vertical Forms"](a)||(!!isChar["Yijing Hexagram Symbols"](a)||(!!isChar["Yi Syllables"](a)||!!isChar["Yi Radicals"](a))))))))))))))))))))))))))))))},exports.charHasNeutralVerticalOrientation=function(a){return!(!isChar["Latin-1 Supplement"](a)||167!==a&&169!==a&&174!==a&&177!==a&&188!==a&&189!==a&&190!==a&&215!==a&&247!==a)||(!(!isChar["General Punctuation"](a)||8214!==a&&8224!==a&&8225!==a&&8240!==a&&8241!==a&&8251!==a&&8252!==a&&8258!==a&&8263!==a&&8264!==a&&8265!==a&&8273!==a)||(!!isChar["Letterlike Symbols"](a)||(!!isChar["Number Forms"](a)||(!(!isChar["Miscellaneous Technical"](a)||!(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||9003===a||a>=9085&&a<=9114||a>=9150&&a<=9165||9167===a||a>=9169&&a<=9179||a>=9186&&a<=9215))||(!(!isChar["Control Pictures"](a)||9251===a)||(!!isChar["Optical Character Recognition"](a)||(!!isChar["Enclosed Alphanumerics"](a)||(!!isChar["Geometric Shapes"](a)||(!(!isChar["Miscellaneous Symbols"](a)||a>=9754&&a<=9759)||(!(!isChar["Miscellaneous Symbols and Arrows"](a)||!(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243))||(!!isChar["CJK Symbols and Punctuation"](a)||(!!isChar.Katakana(a)||(!!isChar["Private Use Area"](a)||(!!isChar["CJK Compatibility Forms"](a)||(!!isChar["Small Form Variants"](a)||(!!isChar["Halfwidth and Fullwidth Forms"](a)||(8734===a||8756===a||8757===a||a>=9984&&a<=10087||a>=10102&&a<=10131||65532===a||65533===a)))))))))))))))))},exports.charHasRotatedVerticalOrientation=function(a){return!(exports.charHasUprightVerticalOrientation(a)||exports.charHasNeutralVerticalOrientation(a))}; +},{"./is_char_in_unicode_block":206}],210:[function(require,module,exports){ +"use strict";function createStructArrayType(t){var e=JSON.stringify(t);if(structArrayTypeCache[e])return structArrayTypeCache[e];var r=void 0===t.alignment?1:t.alignment,i=0,n=0,a=["Uint8"],o=t.members.map(function(t){a.indexOf(t.type)<0&&a.push(t.type);var e=sizeOf(t.type),o=i=align(i,Math.max(r,e)),s=t.components||1;return n=Math.max(n,e),i+=e*s,{name:t.name,type:t.type,components:s,offset:o}}),s=align(i,Math.max(n,r)),p=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Struct);p.prototype.alignment=r,p.prototype.size=s;for(var y=0,c=o;ythis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*RESIZE_MULTIPLIER),DEFAULT_CAPACITY),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},StructArray.prototype._refreshViews=function(){for(var t=this,e=0,r=t._usedTypes;e=1)return 1;var e=r*r,t=e*r;return 4*(r<.5?t:3*(r-e)+t-.75)},exports.bezier=function(r,e,t,n){var o=new UnitBezier(r,e,t,n);return function(r){return o.solve(r)}},exports.ease=exports.bezier(.25,.1,.25,1),exports.clamp=function(r,e,t){return Math.min(t,Math.max(e,r))},exports.wrap=function(r,e,t){var n=t-e,o=((r-e)%n+n)%n+e;return o===e?t:o},exports.asyncAll=function(r,e,t){if(!r.length)return t(null,[]);var n=r.length,o=new Array(r.length),a=null;r.forEach(function(r,i){e(r,function(r,e){r&&(a=r),o[i]=e,0===--n&&t(a,o)})})},exports.values=function(r){var e=[];for(var t in r)e.push(r[t]);return e},exports.keysDifference=function(r,e){var t=[];for(var n in r)n in e||t.push(n);return t},exports.extend=function(r,e,t,n){for(var o=arguments,a=1;a=0)return!0;return!1};var warnOnceHistory={};exports.warnOnce=function(r){warnOnceHistory[r]||("undefined"!=typeof console&&console.warn(r),warnOnceHistory[r]=!0)},exports.isCounterClockwise=function(r,e,t){return(t.y-r.y)*(e.x-r.x)>(e.y-r.y)*(t.x-r.x)},exports.calculateSignedArea=function(r){for(var e=0,t=0,n=r.length,o=n-1,a=void 0,i=void 0;t0||Math.abs(e.y-t.y)>0)&&Math.abs(exports.calculateSignedArea(r))>.01},exports.sphericalToCartesian=function(r){var e=r[0],t=r[1],n=r[2];return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]},exports.parseCacheControl=function(r){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,t={};if(r.replace(e,function(r,e,n,o){var a=n||o;return t[e]=!a||a.toLowerCase(),""}),t["max-age"]){var n=parseInt(t["max-age"],10);isNaN(n)?delete t["max-age"]:t["max-age"]=n}return t}; +},{"../geo/coordinate":61,"@mapbox/unitbezier":3,"point-geometry":26}],213:[function(require,module,exports){ +"use strict";var Feature=function(e,t,r,o){this.type="Feature",this._vectorTileFeature=e,e._z=t,e._x=r,e._y=o,this.properties=e.properties,null!=e.id&&(this.id=e.id)},prototypeAccessors={geometry:{}};prototypeAccessors.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},prototypeAccessors.geometry.set=function(e){this._geometry=e},Feature.prototype.toJSON=function(){var e=this,t={geometry:this.geometry};for(var r in e)"_geometry"!==r&&"_vectorTileFeature"!==r&&(t[r]=e[r]);return t},Object.defineProperties(Feature.prototype,prototypeAccessors),module.exports=Feature; +},{}],214:[function(require,module,exports){ +"use strict";var scriptDetection=require("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}; +},{"./script_detection":209}],215:[function(require,module,exports){ +"use strict";var WebWorker=require("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=require("../").workerCount;for(this.workers=[];this.workers.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�@jg`S?8?0@|6m4{oW=d3($n^@qvc*UNgQ_-Py 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≶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 PBPZ@zA^dN@<#A>Jn$nZO literal 107486 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

D)t?^i@rM*bNbY2 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

ifUm_*$%Z$~_1`(+Y3@P=c3IC8 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%0A; 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 BGqC^w diff --git a/public/assets/js/newnote.js b/public/assets/js/newnote.js index fdd07b21..bfbbdfae 100644 --- a/public/assets/js/newnote.js +++ b/public/assets/js/newnote.js @@ -1,24 +1,3265 @@ -!function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=20)}([function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";function n(t){var e=/POINT\((.*)\)/.exec(t),r=e[1].split(" ")[0],n=e[1].split(" ")[1];return{latitude:n,longitude:r}}e.a=n},function(t,e,r){"use strict";function n(t){return Array.isArray(t)?t:Array.from(t)}function i(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.dataset.latitude,o=t.dataset.longitude,l=t.dataset.id,c=window["geojson"+l];if(null==c&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[o,i]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=n){var p=!0,f=!1,d=void 0;try{for(var m,y=n[Symbol.iterator]();!(p=(m=y.next()).done);p=!0){var v=m.value,g=r.i(s.a)(v.location).longitude,_=r.i(s.a)(v.location).latitude;c.features.push({type:"Feature",geometry:{type:"Point",coordinates:[g,_]},properties:{title:v.name,icon:"circle",uri:v.slug}})}}catch(t){f=!0,d=t}finally{try{!p&&y.return&&y.return()}finally{if(f)throw d}}}if(null!=e){e.coords.longitude,e.coords.latitude}var map=new a.a.Map({container:t,style:"mapbox://styles/mapbox/streets-v9",center:[o,i],zoom:15});if(null==e&&map.scrollZoom.disable(),map.addControl(new a.a.NavigationControl),t.appendChild(h(map)),map.on("load",function(){map.addSource("points",{type:"geojson",data:c}),map.addLayer({id:"points",interactive:!0,type:"symbol",source:"points",layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=e&&map.on("click",function(t){var e=map.queryRenderedFeatures(t.point,{layer:["points"]});e.length&&(map.flyTo({center:e[0].geometry.coordinates}),r.i(u.a)(e[0].properties.uri))}),c.features&&c.features.length>1){var x=new a.a.LngLatBounds,b=!0,w=!1,E=void 0;try{for(var T,S=c.features[Symbol.iterator]();!(b=(T=S.next()).done);b=!0){var z=T.value;x.extend(z.geometry.coordinates)}}catch(t){w=!0,E=t}finally{try{!b&&S.return&&S.return()}finally{if(w)throw E}}map.fitBounds(x,{padding:65})}return map}var o=r(9),a=r.n(o),s=r(1),u=r(4);e.a=i,a.a.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var l=function(t){return t.split("-").map(function(t){var e=n(t),r=e[0],i=e.slice(1);return r.toUpperCase()+i.join("").toLowerCase()}).join(" ")},c=function(map,t,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],n=document.createElement("input");n.setAttribute("id",e),n.setAttribute("type","radio"),n.setAttribute("name","toggle"),n.setAttribute("value",e),1==r&&n.setAttribute("checked","checked"),n.addEventListener("click",function(){map.setStyle("mapbox://styles/mapbox/"+e+"-v9")});var i=document.createElement("label");i.setAttribute("for",e),i.appendChild(document.createTextNode(l(e))),t.appendChild(n),t.appendChild(i)},h=function(map){var t=document.createElement("div");return t.classList.add("map-menu"),c(map,t,"streets",!0),c(map,t,"satellite-streets"),t}},function(t,e,r){(function(t){var n;!function(){"use strict";function i(){var t={parent:document.body,version:"1.0.12",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"

",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,r="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(r+=this.dialogs.input),r=(r+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){a(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?a(t):e>0&&setTimeout(function(){a(t)},e)},dialog:function(t,e,r,n){return this.setup({type:e,message:t,onOkay:r,onCancel:n})},log:function(t,e,r){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var o=0,a=i+1;a>o;o++)this.close(n[o],-1)}this.notify(t,e,r)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,r,n){var i=this.setupLogContainer(),o=document.createElement("div");o.className=r||"default",t.logTemplateMethod?o.innerHTML=t.logTemplateMethod(e):o.innerHTML=e,"function"==typeof n&&o.addEventListener("click",n),i.appendChild(o),setTimeout(function(){o.className+=" show"},10),this.close(o,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),n&&n.addEventListener("click",function(n){t.onOkay&&"function"==typeof t.onOkay&&(o?t.onOkay(o.value,n):t.onOkay(n)),e(o?{buttonClicked:"ok",inputValue:o.value,event:n}:{buttonClicked:"ok",event:n}),a(r)}),i&&i.addEventListener("click",function(n){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(n),e({buttonClicked:"cancel",event:n}),a(r)}),o&&o.addEventListener("keyup",function(t){13===t.which&&n.click()})}var r=document.createElement("div");r.className="alertify hide",r.innerHTML=this.build(t);var n=r.querySelector(".ok"),i=r.querySelector(".cancel"),o=r.querySelector("input"),s=r.querySelector("label");o&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:o.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(o.value=this.promptValue));var u;return"function"==typeof Promise?u=new Promise(e):e(),this.parent.appendChild(r),setTimeout(function(){r.classList.remove("hide"),o&&t.type&&"prompt"===t.type?(o.select(),o.focus()):n&&n.focus()},100),u},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,r,n){return t.dialog(e,"alert",r,n)||this},confirm:function(e,r,n){return t.dialog(e,"confirm",r,n)||this},prompt:function(e,r,n){return t.dialog(e,"prompt",r,n)||this},log:function(e,r){return t.log(e,"default",r),this},theme:function(e){return t.theme(e),this},success:function(e,r){return t.log(e,"success",r),this},error:function(e,r){return t.log(e,"error",r),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var o=500,a=function(t){if(t){var e=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",e),setTimeout(e,o)}};if("undefined"!=typeof t&&t&&t.exports){t.exports=function(){return new i};var s=new i;for(var u in s)t.exports[u]=s[u]}else n=function(){return new i}.call(e,r,e,t),!(void 0!==n&&(t.exports=n))}()}).call(e,r(17)(t))},function(t,e,r){"use strict";function n(t){document.querySelector("select")&&("current-location"==t?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+t+'"]').selected=!0)}e.a=n},function(t,e,r){"use strict";function n(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function i(t){return 3*t.length/4-n(t)}function o(t){var e,r,i,o,a,s,u=t.length;a=n(t),s=new h(3*u/4-a),i=a>0?u-4:u;var l=0;for(e=0,r=0;e>16&255,s[l++]=o>>8&255,s[l++]=255&o;return 2===a?(o=c[t.charCodeAt(e)]<<2|c[t.charCodeAt(e+1)]>>4,s[l++]=255&o):1===a&&(o=c[t.charCodeAt(e)]<<10|c[t.charCodeAt(e+1)]<<4|c[t.charCodeAt(e+2)]>>2,s[l++]=o>>8&255,s[l++]=255&o),s}function a(t){return l[t>>18&63]+l[t>>12&63]+l[t>>6&63]+l[63&t]}function s(t,e,r){for(var n,i=[],o=e;oc?c:u+a));return 1===n?(e=t[r-1],i+=l[e>>2],i+=l[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=l[e>>10],i+=l[e>>4&63],i+=l[e<<2&63],i+="="),o.push(i),o.join("")}e.byteLength=i,e.toByteArray=o,e.fromByteArray=u;for(var l=[],c=[],h="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=p.length;f=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),a.alloc(+t)}function v(t,e){if(a.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(t).length;default:if(n)return G(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return I(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return C(this,e,r);case"latin1":case"binary":return k(this,e,r);case"base64":return M(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function x(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if("number"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,n,i){function o(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,s=t.length,u=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;ls&&(r=s-u),l=r;l>=0;l--){for(var h=!0,p=0;pi&&(n=i)):n=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(i+s<=r){var u,l,c,h;switch(s){case 1:o<128&&(a=o);break;case 2:u=t[i+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(a=h));break;case 3:u=t[i+1],l=t[i+2],128===(192&u)&&128===(192&l)&&(h=(15&o)<<12|(63&u)<<6|63&l,h>2047&&(h<55296||h>57343)&&(a=h));break;case 4:u=t[i+1],l=t[i+2],c=t[i+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(h=(15&o)<<18|(63&u)<<12|(63&l)<<6|63&c,h>65535&&h<1114112&&(a=h))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=s}return L(n)}function L(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function B(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function j(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function F(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,n,i){return i||F(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(t,e,r,n,23,4),r+4}function N(t,e,r,n,i){return i||F(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(t,e,r,n,52,8),r+8}function V(t){if(t=q(t).replace(et,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function q(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function Z(t){return t<16?"0"+t.toString(16):t.toString(16)}function G(t,e){e=e||1/0;for(var r,n=t.length,i=null,o=[],a=0;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function H(t){return K.toByteArray(V(t))}function Y(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function J(t){return t!==t}/*! +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 20); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = parseLocation; +//parse-location.js + +//text = `POINT(lon lat)` +function parseLocation(text) { + var coords = /POINT\((.*)\)/.exec(text); + var parsedLongitude = coords[1].split(' ')[0]; + var parsedLatitude = coords[1].split(' ')[1]; + + return { 'latitude': parsedLatitude, 'longitude': parsedLongitude }; +} + +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse_location__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__select_place__ = __webpack_require__(4); +/* harmony export (immutable) */ __webpack_exports__["a"] = addMap; +function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } + +//mapbox-utils.js + + + + +__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw'; + +//define some functions to be used in the default function. +var titlecase = function titlecase(string) { + return string.split('-').map(function (_ref) { + var _ref2 = _toArray(_ref), + first = _ref2[0], + rest = _ref2.slice(1); + + return first.toUpperCase() + rest.join('').toLowerCase(); + }).join(' '); +}; + +var addMapTypeOption = function addMapTypeOption(map, menu, option) { + var checked = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + var input = document.createElement('input'); + input.setAttribute('id', option); + input.setAttribute('type', 'radio'); + input.setAttribute('name', 'toggle'); + input.setAttribute('value', option); + if (checked == true) { + input.setAttribute('checked', 'checked'); + } + input.addEventListener('click', function () { + map.setStyle('mapbox://styles/mapbox/' + option + '-v9'); + }); + var label = document.createElement('label'); + label.setAttribute('for', option); + label.appendChild(document.createTextNode(titlecase(option))); + menu.appendChild(input); + menu.appendChild(label); +}; + +var makeMapMenu = function makeMapMenu(map) { + var mapMenu = document.createElement('div'); + mapMenu.classList.add('map-menu'); + addMapTypeOption(map, mapMenu, 'streets', true); + addMapTypeOption(map, mapMenu, 'satellite-streets'); + return mapMenu; +}; + +//the main function +function addMap(div) { + var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var places = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var dataLatitude = div.dataset.latitude; + var dataLongitude = div.dataset.longitude; + var dataId = div.dataset.id; + var data = window['geojson' + dataId]; + if (data == null) { + data = { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [dataLongitude, dataLatitude] + }, + 'properties': { + 'title': 'Current Location', + 'icon': 'circle-stroked', + 'uri': 'current-location' + } + }] + }; + } + if (places != null) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = places[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var place = _step.value; + + var placeLongitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).longitude; + var placeLatitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).latitude; + data.features.push({ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [placeLongitude, placeLatitude] + }, + 'properties': { + 'title': place.name, + 'icon': 'circle', + 'uri': place.slug + } + }); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + if (position != null) { + dataLongitude = position.coords.longitude; + dataLatitude = position.coords.latitude; + } + var map = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.Map({ + container: div, + style: 'mapbox://styles/mapbox/streets-v9', + center: [dataLongitude, dataLatitude], + zoom: 15 + }); + if (position == null) { + map.scrollZoom.disable(); + } + map.addControl(new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.NavigationControl()); + div.appendChild(makeMapMenu(map)); + map.on('load', function () { + map.addSource('points', { + 'type': 'geojson', + 'data': data + }); + map.addLayer({ + 'id': 'points', + 'interactive': true, + 'type': 'symbol', + 'source': 'points', + 'layout': { + 'icon-image': '{icon}-15', + 'text-field': '{title}', + 'text-offset': [0, 1] + } + }); + }); + if (position != null) { + map.on('click', function (e) { + var features = map.queryRenderedFeatures(e.point, { + layer: ['points'] + }); + // if there are features within the given radius of the click event, + // fly to the location of the click event + if (features.length) { + // Get coordinates from the symbol and center the map on those coordinates + map.flyTo({ center: features[0].geometry.coordinates }); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__select_place__["a" /* default */])(features[0].properties.uri); + } + }); + } + if (data.features && data.features.length > 1) { + var bounds = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.LngLatBounds(); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = data.features[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var feature = _step2.value; + + bounds.extend(feature.geometry.coordinates); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + map.fitBounds(bounds, { padding: 65 }); + } + + return map; +} + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function t(){var t={parent:document.body,version:"1.0.12",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,o="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){o(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement("div");a.className=o||"default",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,"function"==typeof n&&a.addEventListener("click",n),i.appendChild(a),setTimeout(function(){a.className+=" show"},10),this.close(a,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",function(i){t.onOkay&&"function"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:"ok",inputValue:l.value,event:i}:{buttonClicked:"ok",event:i}),o(n)}),a&&a.addEventListener("click",function(i){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:"cancel",event:i}),o(n)}),l&&l.addEventListener("keyup",function(t){13===t.which&&i.click()})}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var i=n.querySelector(".ok"),a=n.querySelector(".cancel"),l=n.querySelector("input"),s=n.querySelector("label");l&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(l.value=this.promptValue));var r;return"function"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout(function(){n.classList.remove("hide"),l&&t.type&&"prompt"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,"alert",o,n)||this},confirm:function(e,o,n){return t.dialog(e,"confirm",o,n)||this},prompt:function(e,o,n){return t.dialog(e,"prompt",o,n)||this},log:function(e,o){return t.log(e,"default",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,"success",o),this},error:function(e,o){return t.log(e,"error",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",o),setTimeout(o,e)}};if("undefined"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else true?!(__WEBPACK_AMD_DEFINE_RESULT__ = function(){return new t}.call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):window.alertify=new t}(); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module))) + +/***/ }), +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = selectPlaceInForm; +//select-place.js + +function selectPlaceInForm(uri) { + if (document.querySelector('select')) { + if (uri == 'current-location') { + document.querySelector('select [id="option-coords"]').selected = true; + } else { + document.querySelector('select [value="' + uri + '"]').selected = true; + } + } +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return b64.length * 3 / 4 - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr(len * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var K=r(5),Q=r(7),$=r(8);e.Buffer=a,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:n(),e.kMaxLength=i(),a.poolSize=8192,a._augment=function(t){return t.__proto__=a.prototype,t},a.from=function(t,e,r){return s(null,t,e,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(t,e,r){return l(null,t,e,r)},a.allocUnsafe=function(t){return c(null,t)},a.allocUnsafeSlow=function(t){return c(null,t)},a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},a.prototype.compare=function(t,e,r,n,i){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=r-e,u=Math.min(o,s),l=this.slice(n,i),c=t.slice(e,r),h=0;hi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return w(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":return T(this,t,e,r);case"latin1":case"binary":return S(this,t,e,r);case"base64":return z(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var n=this[t],i=1,o=0;++o=i&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;O(this,t,e,r,i,0)}var o=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+o]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);O(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);O(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return N(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return N(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var o;if("number"==typeof t)for(o=e;o>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,n),o-=l}return(f?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,l=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){(function(e,r){var n,n;!function(e){t.exports=e()}(function(){var t;return function t(e,r,i){function o(s,u){if(!r[s]){if(!e[s]){var l="function"==typeof n&&n;if(!u&&l)return n(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var h=r[s]={exports:{}};e[s][0].call(h.exports,function(t){var r=e[s][1][t];return o(r?r:t)},h,h.exports,t,e,r,i)}return r[s].exports}for(var a="function"==typeof n&&n,s=0;sa.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},a.prototype.prepareSegment2=function(t){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+t>a.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},a.prototype.populatePaintArrays=function(t){var e=this;for(var r in this.layerData){var n=e.layerData[r];0!==n.paintVertexArray.bytesPerElement&&n.programConfiguration.populatePaintArray(n.layer,n.paintVertexArray,e.layoutVertexArray.length,e.globalProperties,t)}},a.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},a.prototype.serialize=function(t){return{layoutVertexArray:this.layoutVertexArray.serialize(t),elementArray:this.elementArray&&this.elementArray.serialize(t),elementArray2:this.elementArray2&&this.elementArray2.serialize(t),paintVertexArrays:n(this.layerData,t),segments:this.segments,segments2:this.segments2}},a.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,e.exports=a},{"./program_configuration":15}],2:[function(t,e,r){"use strict";var n=t("./array_group"),i=t("./buffer_group"),o=t("../util/util"),a=function(t,e){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,t.arrays?this.buffers=new i(e,t.layers,t.zoom,t.arrays):this.arrays=new n(e,t.layers,t.zoom)};a.prototype.populate=function(t,e){for(var r=this,n=0,i=t;n=u||p<0||p>=u)){var f=e.prepareSegment(4),d=f.vertexLength;n(e.layoutVertexArray,h,p,-1,-1),n(e.layoutVertexArray,h,p,1,-1),n(e.layoutVertexArray,h,p,1,1),n(e.layoutVertexArray,h,p,-1,1),e.elementArray.emplaceBack(d,d+1,d+2),e.elementArray.emplaceBack(d,d+3,d+2),f.vertexLength+=4,f.primitiveLength+=2}}e.populatePaintArrays(t.properties)},e}(i);e.exports=c},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],4:[function(t,e,r){"use strict";var n=t("../bucket"),i=t("../vertex_array_type"),o=t("../element_array_type"),a=t("../load_geometry"),s=t("earcut"),u=t("../../util/classify_rings"),l=500,c={layoutVertexArrayType:i([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:o(3),elementArrayType2:o(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},h=function(t){function e(e){t.call(this,e,c)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,n=u(a(t),l);rl)||t.y===e.y&&(t.y<0||t.y>l)}var o=t("../bucket"),a=t("../vertex_array_type"),s=t("../element_array_type"),u=t("../load_geometry"),l=t("../extent"),c=t("earcut"),h=t("../../util/classify_rings"),p=500,f={layoutVertexArrayType:a([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:s(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},d=Math.pow(2,13),m=function(t){function e(e){t.call(this,e,f)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,o=h(u(t),p);r=1){var S=b[E-1];if(!i(T,S)){var z=T.sub(S)._perp()._unit();n(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,0,w),n(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,1,w),w+=S.dist(T),n(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,0,w),n(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,1,w);var A=m.vertexLength;e.elementArray.emplaceBack(A,A+1,A+2),e.elementArray.emplaceBack(A+1,A+2,A+3),m.vertexLength+=4,m.primitiveLength+=2}}y.push(T.x),y.push(T.y)}}}for(var M=c(y,v),P=0;P>6)}var i=t("../bucket"),o=t("../vertex_array_type"),a=t("../element_array_type"),s=t("../load_geometry"),u=t("../extent"),l=63,c=Math.cos(37.5*(Math.PI/180)),h=15,p=15,f=.5,d=Math.pow(2,p-1)/f,m={layoutVertexArrayType:o([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:a()},y=function(t){function e(e){t.call(this,e,m)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this,r=this.layers[0].layout,n=r["line-join"],i=r["line-cap"],o=r["line-miter-limit"],a=r["line-round-limit"],u=0,l=s(t,p);u2&&t[s-1].equals(t[s-2]);)s--;if(!(t.length<2)){"bevel"===r&&(i=1.05);var l=h*(u/(512*this.overscaling)),p=t[0],f=t[s-1],d=p.equals(f),m=this.arrays,y=m.prepareSegment(10*s);if(2!==s||!d){this.distance=0;var v,g,_,x,b,w,E,T=n,S=d?"butt":n,z=!0;this.e1=this.e2=this.e3=-1,d&&(v=t[s-2],b=p.sub(v)._unit()._perp());for(var A=0;A0){var k=v.dist(g);if(k>2*l){var I=v.sub(v.sub(g)._mult(l/k)._round());a.distance+=I.dist(g),a.addCurrentVertex(I,a.distance,x.mult(1),0,0,!1,y),g=I}}var R=g&&_,D=R?r:_?T:S;if(R&&"round"===D&&(Li&&(D="bevel"),"bevel"===D&&(L>2&&(D="flipbevel"),L100)M=b.clone().mult(-1);else{var O=x.x*b.y-x.y*b.x>0?-1:1,B=L*x.add(b).mag()/x.sub(b).mag();M._perp()._mult(B*O)}a.addCurrentVertex(v,a.distance,M,0,0,!1,y),a.addCurrentVertex(v,a.distance,M.mult(-1),0,0,!1,y)}else if("bevel"===D||"fakeround"===D){var j=x.x*b.y-x.y*b.x>0,F=-Math.sqrt(L*L-1);if(j?(E=0,w=F):(w=0,E=F),z||a.addCurrentVertex(v,a.distance,x,w,E,!1,y),"fakeround"===D){for(var U,N=Math.floor(8*(.5-(P-.5))),V=0;V=0;q--)U=x.mult((q+1)/(N+1))._add(b)._unit(),a.addPieSliceVertex(v,a.distance,U,j,y)}_&&a.addCurrentVertex(v,a.distance,b,-w,-E,!1,y)}else"butt"===D?(z||a.addCurrentVertex(v,a.distance,x,0,0,!1,y),_&&a.addCurrentVertex(v,a.distance,b,0,0,!1,y)):"square"===D?(z||(a.addCurrentVertex(v,a.distance,x,1,1,!1,y),a.e1=a.e2=-1),_&&a.addCurrentVertex(v,a.distance,b,-1,-1,!1,y)):"round"===D&&(z||(a.addCurrentVertex(v,a.distance,x,0,0,!1,y),a.addCurrentVertex(v,a.distance,x,1,1,!0,y),a.e1=a.e2=-1),_&&(a.addCurrentVertex(v,a.distance,b,-1,-1,!0,y),a.addCurrentVertex(v,a.distance,b,0,0,!1,y)));if(C&&A2*l){var G=v.add(_.sub(v)._mult(l/Z)._round());a.distance+=G.dist(v),a.addCurrentVertex(G,a.distance,b.mult(1),0,0,!1,y),v=G}}z=!1}m.populatePaintArrays(e)}}},e.prototype.addCurrentVertex=function(t,e,r,i,o,a,s){var u,l=a?1:0,c=this.arrays,h=c.layoutVertexArray,p=c.elementArray;u=r.clone(),i&&u._sub(r.perp()._mult(i)),n(h,t,u,l,0,i,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,u=r.mult(-1),o&&u._sub(r.perp()._mult(o)),n(h,t,u,l,1,-o,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>d/2&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,i,o,a,s))},e.prototype.addPieSliceVertex=function(t,e,r,i,o){var a=i?1:0;r=r.mult(i?-1:1);var s=this.arrays,u=s.layoutVertexArray,l=s.elementArray;n(u,t,r,0,a,0,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(l.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},e}(i);e.exports=y},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],7:[function(t,e,r){"use strict";function n(t,e,r,n,i,o,a,s,u,l,c){t.emplaceBack(e,r,Math.round(64*n),Math.round(64*i),o/4,a/4,10*(l||0),c,10*(s||0),10*Math.min(u||25,25))}function i(t,e,r,n,i){return t.emplaceBack(e.x,e.y,Math.round(r.x),Math.round(r.y),10*n,10*i)}var o=t("point-geometry"),a=t("../array_group"),s=t("../buffer_group"),u=t("../vertex_array_type"),l=t("../element_array_type"),c=t("../extent"),h=t("../../symbol/anchor"),p=t("../../symbol/get_anchors"),f=t("../../util/token"),d=t("../../symbol/quads"),m=t("../../symbol/shaping"),y=t("../../symbol/resolve_text"),v=t("../../symbol/mergelines"),g=t("../../symbol/clip_line"),_=t("../../util/util"),x=t("../../util/script_detection"),b=t("../load_geometry"),w=t("../../symbol/collision_feature"),E=t("../../util/find_pole_of_inaccessibility"),T=t("../../util/classify_rings"),S=t("vector-tile").VectorTileFeature,z=t("../../source/rtl_text_plugin"),A=m.shapeText,M=m.shapeIcon,P=m.WritingMode,L=d.getGlyphQuads,C=d.getIconQuads,k=l(),I=u([{name:"a_pos",components:2,type:"Int16"},{name:"a_offset",components:2,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),R={glyph:{layoutVertexArrayType:I,elementArrayType:k},icon:{layoutVertexArrayType:I,elementArrayType:k},collisionBox:{layoutVertexArrayType:u([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:l(2)}},D=function(t){var e=this;if(this.collisionBoxArray=t.collisionBoxArray,this.symbolQuadsArray=t.symbolQuadsArray,this.symbolInstancesArray=t.symbolInstancesArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,this.sdfIcons=t.sdfIcons,this.iconsNeedLinear=t.iconsNeedLinear,this.adjustedTextSize=t.adjustedTextSize,this.adjustedIconSize=t.adjustedIconSize,this.fontstack=t.fontstack,t.arrays){this.buffers={};for(var r in t.arrays)t.arrays[r]&&(e.buffers[r]=new s(R[r],t.layers,t.zoom,t.arrays[r]))}};D.prototype.populate=function(t,e){var r=this,n=this.layers[0].layout,i=n["text-field"],o=n["text-font"],a=n["icon-image"],s=i&&o,u=a;if(this.features=[],s||u){for(var l=e.iconDependencies,c=e.glyphDependencies,h=c[o]=c[o]||{},p=0;pc||o.y<0||o.y>c);if(!m||a){var s=a||w;n.addSymbolInstance(o,i,e,r,n.layers[0],s,n.symbolInstancesArray.length,n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,u,y,x,f,v,b,{zoom:n.zoom},t.properties)}};if("line"===S)for(var M=0,L=g(t.geometry,0,0,c,c);M=0;o--)if(r.dist(i[o])7*Math.PI/4)continue}else if(o&&a&&y<=3*Math.PI/4||y>5*Math.PI/4)continue}else if(o&&a&&(y<=Math.PI/2||y>3*Math.PI/2))continue;var v=m.tl,g=m.tr,_=m.bl,x=m.br,b=m.tex,w=m.anchorPoint,E=Math.max(p+Math.log(m.minScale)/Math.LN2,f),T=Math.min(p+Math.log(m.maxScale)/Math.LN2,25);if(!(T<=E)){E===f&&(E=0);var S=Math.round(m.glyphAngle/(2*Math.PI)*256),z=t.prepareSegment(4),A=z.vertexLength;n(h,w.x,w.y,v.x,v.y,b.x,b.y,E,T,f,S),n(h,w.x,w.y,g.x,g.y,b.x+b.w,b.y,E,T,f,S),n(h,w.x,w.y,_.x,_.y,b.x,b.y+b.h,E,T,f,S),n(h,w.x,w.y,x.x,x.y,b.x+b.w,b.y+b.h,E,T,f,S),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),z.vertexLength+=4,z.primitiveLength+=2}}},D.prototype.addToDebugBuffers=function(t){for(var e=this,r=this.arrays.collisionBox,n=r.layoutVertexArray,a=r.elementArray,s=-t.angle,u=t.yStretch,l=this.symbolInstancesStartIndex;lD.MAX_QUADS&&_.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),I>D.MAX_QUADS&&_.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var N=(r[P.vertical]?P.vertical:0)|(r[P.horizontal]?P.horizontal:0);return this.symbolInstancesArray.emplaceBack(R,O,F,U,M,I,B,j,t.x,t.y,a,N)},D.prototype.addSymbolQuad=function(t){return this.symbolQuadsArray.emplaceBack(t.anchorPoint.x,t.anchorPoint.y,t.tl.x,t.tl.y,t.tr.x,t.tr.y,t.bl.x,t.bl.y,t.br.x,t.br.y,t.tex.h,t.tex.w,t.tex.x,t.tex.y,t.anchorAngle,t.glyphAngle,t.maxScale,t.minScale,t.writingMode)},D.MAX_QUADS=65535,e.exports=D},{"../../source/rtl_text_plugin":49,"../../symbol/anchor":75,"../../symbol/clip_line":77,"../../symbol/collision_feature":79,"../../symbol/get_anchors":81,"../../symbol/mergelines":84,"../../symbol/quads":85,"../../symbol/resolve_text":86,"../../symbol/shaping":87,"../../util/classify_rings":113,"../../util/find_pole_of_inaccessibility":119,"../../util/script_detection":126,"../../util/token":128,"../../util/util":129,"../array_group":1,"../buffer_group":9,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17,"point-geometry":197,"vector-tile":206}],8:[function(t,e,r){"use strict";var n={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},i=function(t,e,r){this.arrayBuffer=t.arrayBuffer,this.length=t.length,this.attributes=e.members,this.itemSize=e.bytesPerElement,this.type=r,this.arrayType=e};i.fromStructArray=function(t,e){return new i(t.serialize(),t.constructor.serialize(),e)},i.prototype.bind=function(t){var e=t[this.type];this.buffer?t.bindBuffer(e,this.buffer):(this.gl=t,this.buffer=t.createBuffer(),t.bindBuffer(e,this.buffer),t.bufferData(e,this.arrayBuffer,t.STATIC_DRAW),this.arrayBuffer=null)},i.prototype.setVertexAttribPointers=function(t,e,r){for(var i=this,o=0;o0?t["line-gap-width"]+2*t["line-width"]:t["line-width"]}function a(t,e,r,n,i){if(!e[0]&&!e[1])return t;e=u.convert(e),"viewport"===r&&e._rotate(-n);for(var o=[],a=0;ar.max||h.yr.max)&&i.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return s}},{"../util/util":129,"./extent":11}],14:[function(t,e,r){"use strict";var n=t("../util/struct_array"),i=n({members:[{name:"a_pos",type:"Int16",components:2}]});e.exports=i},{"../util/struct_array":127}],15:[function(t,e,r){"use strict";function n(t,e,r,n){if(!t.zoomStops)return e.getPaintValue(t.property,r,n);var i=t.zoomStops.map(function(i){return e.getPaintValue(t.property,a.extend({},r,{zoom:i}),n)});return 1===i.length?i[0]:i}function i(t,e){var r=t.property.replace(e.type+"-","").replace(/-/g,"_"),n="color"===e._paintSpecifications[t.property].type;return a.extend({name:"a_"+r,components:n?4:1,multiplier:n?255:1},t)}var o=t("./vertex_array_type"),a=t("../util/util"),s=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};s.createDynamic=function(t,e,r){for(var n=new s,a=0,u=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};i.prototype.wrap=function(){return new i(n(this.lng,-180,180),this.lat)},i.prototype.toArray=function(){return[this.lng,this.lat]},i.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},i.convert=function(t){if(t instanceof i)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new i(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new i(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},e.exports=i},{"../util/util":129}],20:[function(t,e,r){"use strict";var n=t("./lng_lat"),i=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};i.prototype.setNorthEast=function(t){return this._ne=n.convert(t),this},i.prototype.setSouthWest=function(t){return this._sw=n.convert(t),this},i.prototype.extend=function(t){var e,r,o=this._sw,a=this._ne;if(t instanceof n)e=t,r=t;else{if(!(t instanceof i))return Array.isArray(t)?t.every(Array.isArray)?this.extend(i.convert(t)):this.extend(n.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return o||a?(o.lng=Math.min(e.lng,o.lng),o.lat=Math.min(e.lat,o.lat),a.lng=Math.max(r.lng,a.lng),a.lat=Math.max(r.lat,a.lat)):(this._sw=new n(e.lng,e.lat),this._ne=new n(r.lng,r.lat)),this},i.prototype.getCenter=function(){return new n((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},i.prototype.getSouthWest=function(){return this._sw},i.prototype.getNorthEast=function(){return this._ne},i.prototype.getNorthWest=function(){return new n(this.getWest(),this.getNorth())},i.prototype.getSouthEast=function(){return new n(this.getEast(),this.getSouth())},i.prototype.getWest=function(){return this._sw.lng},i.prototype.getSouth=function(){return this._sw.lat},i.prototype.getEast=function(){return this._ne.lng},i.prototype.getNorth=function(){return this._ne.lat},i.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},i.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},i.convert=function(t){return!t||t instanceof i?t:new i(t)},e.exports=i},{"./lng_lat":19}],21:[function(t,e,r){"use strict";var n=t("./lng_lat"),i=t("point-geometry"),o=t("./coordinate"),a=t("../util/util"),s=t("../util/interpolate"),u=t("../source/tile_coord"),l=t("../data/extent"),c=t("@mapbox/gl-matrix"),h=c.vec4,p=c.mat4,f=c.mat2,d=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new n(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},m={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};m.minZoom.get=function(){return this._minZoom},m.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},m.maxZoom.get=function(){return this._maxZoom},m.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},m.worldSize.get=function(){return this.tileSize*this.scale},m.centerPoint.get=function(){return this.size._div(2)},m.size.get=function(){return new i(this.width,this.height)},m.bearing.get=function(){return-this.angle/Math.PI*180},m.bearing.set=function(t){var e=-a.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=f.create(),f.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},m.pitch.get=function(){return this._pitch/Math.PI*180},m.pitch.set=function(t){var e=a.clamp(t,0,60)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},m.fov.get=function(){return this._fov/Math.PI*180},m.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},m.zoom.get=function(){return this._zoom},m.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},m.center.get=function(){return this._center},m.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},d.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},d.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),r=e;if(et.maxzoom&&(e=t.maxzoom);var n=this.pointCoordinate(this.centerPoint,e),o=new i(n.column-.5,n.row-.5),a=[this.pointCoordinate(new i(0,0),e),this.pointCoordinate(new i(this.width,0),e),this.pointCoordinate(new i(this.width,this.height),e),this.pointCoordinate(new i(0,this.height),e)];return u.cover(e,a,t.reparseOverscaled?r:e,this._renderWorldCopies).sort(function(t,e){return o.dist(t)-o.dist(e)})},d.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},m.unmodified.get=function(){return this._unmodified},d.prototype.zoomScale=function(t){return Math.pow(2,t)},d.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},d.prototype.project=function(t){return new i(this.lngX(t.lng),this.latY(t.lat))},d.prototype.unproject=function(t){return new n(this.xLng(t.x),this.yLat(t.y))},m.x.get=function(){return this.lngX(this.center.lng)},m.y.get=function(){return this.latY(this.center.lat)},m.point.get=function(){return new i(this.x,this.y)},d.prototype.lngX=function(t){return(180+t)*this.worldSize/360},d.prototype.latY=function(t){var e=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-e)*this.worldSize/360},d.prototype.xLng=function(t){return 360*t/this.worldSize-180},d.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},d.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r))},d.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},d.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},d.prototype.locationCoordinate=function(t){return new o(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},d.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new n(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},d.prototype.pointCoordinate=function(t,e){void 0===e&&(e=this.tileZoom);var r=0,n=[t.x,t.y,0,1],i=[t.x,t.y,1,1];h.transformMat4(n,n,this.pixelMatrixInverse),h.transformMat4(i,i,this.pixelMatrixInverse);var a=n[3],u=i[3],l=n[0]/a,c=i[0]/u,p=n[1]/a,f=i[1]/u,d=n[2]/a,m=i[2]/u,y=d===m?0:(r-d)/(m-d);return new o(s(l,c,y)/this.tileSize,s(p,f,y)/this.tileSize,this.zoom)._zoomTo(e)},d.prototype.coordinatePoint=function(t){var e=t.zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return h.transformMat4(r,r,this.pixelMatrix),new i(r[0]/r[3],r[1]/r[3])},d.prototype.calculatePosMatrix=function(t,e){var r=t.toCoordinate(e),n=this.worldSize/this.zoomScale(r.zoom),i=p.identity(new Float64Array(16));return p.translate(i,i,[r.column*n,r.row*n,0]),p.scale(i,i,[n/l,n/l,1]),p.multiply(i,this.projMatrix,i),new Float32Array(i)},d.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,r,n,o,a,s,u,l=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),e=this.latY(this.latRange[0]),o=e-te&&(u=e-f)}if(this.lngRange){var d=this.x,m=l.x/2;d-mn&&(s=n-m)}void 0===s&&void 0===u||(this.center=this.unproject(new i(void 0!==s?s:this.x,void 0!==u?u:this.y))),this._unmodified=c,this._constraining=!1}},d.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),n=Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance,i=1.01*n,o=new Float64Array(16);p.perspective(o,this._fov,this.width/this.height,1,i),p.scale(o,o,[1,-1,1]),p.translate(o,o,[0,0,-this.cameraToCenterDistance]),p.rotateX(o,o,this._pitch),p.rotateZ(o,o,this.angle),p.translate(o,o,[-this.x,-this.y,0]);var a=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(p.scale(o,o,[1,1,a,1]),this.projMatrix=o,o=p.create(),p.scale(o,o,[this.width/2,-this.height/2,1]),p.translate(o,o,[1,-1,0]),this.pixelMatrix=p.multiply(new Float64Array(16),o,this.projMatrix),o=p.invert(new Float64Array(16),this.pixelMatrix),!o)throw new Error("failed to invert matrix");this.pixelMatrixInverse=o}},Object.defineProperties(d.prototype,m),e.exports=d},{"../data/extent":11,"../source/tile_coord":53,"../util/interpolate":121,"../util/util":129,"./coordinate":18,"./lng_lat":19,"@mapbox/gl-matrix":133,"point-geometry":197}],22:[function(t,e,r){"use strict";var n,i=t("./util/worker_pool");e.exports=function(){return n||(n=new i),n}},{"./util/worker_pool":132}],23:[function(t,e,r){"use strict";var n={" ":[16,[]],"!":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'"':[16,[4,21,4,14,-1,-1,12,21,12,14]],"#":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],"%":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],"&":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],"'":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],"(":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],")":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],"*":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],"+":[26,[13,18,13,0,-1,-1,4,9,22,9]],",":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"-":[26,[4,9,22,9]],".":[10,[5,2,4,1,5,0,6,1,5,2]],"/":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],":":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],";":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"<":[24,[20,18,4,9,20,0]],"=":[26,[4,12,22,12,-1,-1,4,6,22,6]],">":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]], -C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]};e.exports=function(t,e,r,i){i=i||1;var o,a,s,u,l,c,h,p,f=[];for(o=0,a=t.length;o0?1/(1-t):1+t}function s(t){return t>0?1-1/(1.001-t):-t}function u(t,e,r,n){var i=r.paint["raster-fade-duration"];if(t.sourceCache&&i>0){var o=Date.now(),a=(o-t.timeAdded)/i,s=e?(o-e.timeAdded)/i:-1,u=t.sourceCache.getSource(),c=n.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!e||Math.abs(e.coord.z-c)>Math.abs(t.coord.z-c),p=l.clamp(h?a:1-s,0,1);return e?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var l=t("../util/util");e.exports=n},{"../util/util":129}],33:[function(t,e,r){"use strict";function n(t,e,r,n){if(!t.isOpaquePass){var o=!(r.layout["text-allow-overlap"]||r.layout["icon-allow-overlap"]||r.layout["text-ignore-placement"]||r.layout["icon-ignore-placement"]),a=t.gl;o?a.disable(a.STENCIL_TEST):a.enable(a.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),i(t,e,r,n,!1,r.paint["icon-translate"],r.paint["icon-translate-anchor"],r.layout["icon-rotation-alignment"],r.layout["icon-rotation-alignment"],r.layout["icon-size"],r.paint["icon-halo-width"],r.paint["icon-halo-color"],r.paint["icon-halo-blur"],r.paint["icon-opacity"],r.paint["icon-color"]),i(t,e,r,n,!0,r.paint["text-translate"],r.paint["text-translate-anchor"],r.layout["text-rotation-alignment"],r.layout["text-pitch-alignment"],r.layout["text-size"],r.paint["text-halo-width"],r.paint["text-halo-color"],r.paint["text-halo-blur"],r.paint["text-opacity"],r.paint["text-color"]),e.map.showCollisionBoxes&&l(t,e,r,n)}}function i(t,e,r,n,i,s,u,l,c,h,p,f,d,m,y){if(i||!t.style.sprite||t.style.sprite.loaded()){var v=t.gl,g="map"===l,_="map"===c,x=_;x?v.enable(v.DEPTH_TEST):v.disable(v.DEPTH_TEST);for(var b,w,E=0,T=n;Ethis.previousZoom;i--)n.changeTimes[i]=t,n.changeOpacities[i]=n.opacities[i];for(i=0;i<256;i++){var o=t-n.changeTimes[i],a=255*(r?o/r:1);i<=e?n.opacities[i]=n.changeOpacities[i]+a:n.opacities[i]=n.changeOpacities[i]-a}this.changed=!0,this.previousZoom=e},n.prototype.bind=function(t){this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.changed&&(t.texSubImage2D(t.TEXTURE_2D,0,0,0,256,1,t.ALPHA,t.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,256,1,0,t.ALPHA,t.UNSIGNED_BYTE,this.array))},e.exports=n},{}],35:[function(t,e,r){"use strict";var n=t("../util/util"),i=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};i.prototype.setSprite=function(t){this.sprite=t},i.prototype.getDash=function(t,e){var r=t.join(",")+e;return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},i.prototype.addDash=function(t,e){var r=this,i=e?7:0,o=2*i+1,a=128;if(this.nextRow+o>this.height)return n.warnOnce("LineAtlas out of space"),null;for(var s=0,u=0;u0?e.pop():null},v.prototype.getViewportTexture=function(t,e){var r=this.reusableTextures.viewport;if(r)return r.width===t&&r.height===e?r:(this.gl.deleteTexture(r),void(this.reusableTextures.viewport=null))},v.prototype.lineWidth=function(t){this.gl.lineWidth(l.clamp(t,this.lineWidthRange[0],this.lineWidthRange[1]))},v.prototype.showOverdrawInspector=function(t){if(t||this._showOverdrawInspector){this._showOverdrawInspector=t;var e=this.gl;if(t){e.blendFunc(e.CONSTANT_COLOR,e.ONE);var r=8,n=1/r;e.blendColor(n,n,n,0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)}else e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA)}},v.prototype.createProgram=function(t,e){var r=this.gl,i=r.createProgram(),o=m[t],a="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+n.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(a+="#define OVERDRAW_INSPECTOR;\n");var s=r.createShader(r.FRAGMENT_SHADER);r.shaderSource(s,e.applyPragmas(a+m.prelude.fragmentSource+o.fragmentSource,"fragment")),r.compileShader(s),r.attachShader(i,s);var u=r.createShader(r.VERTEX_SHADER);r.shaderSource(u,e.applyPragmas(a+m.prelude.vertexSource+o.vertexSource,"vertex")),r.compileShader(u),r.attachShader(i,u),r.linkProgram(i);for(var l=r.getProgramParameter(i,r.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:l},h=0;h>16,u>>16),i.uniform2f(r.u_pixel_coord_lower,65535&s,65535&u)}},{"../source/pixels_to_tile_units":46}],38:[function(t,e,r){"use strict";t("path");e.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\nuniform lowp vec4 u_outline_color;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n#ifdef OUTLINE\n color = u_outline_color;\n#endif\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float gapwidth\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n", -vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n"},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_opacity;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * u_opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp vec4 u_color;\nuniform lowp float u_opacity;\nuniform lowp float u_buffer;\nuniform lowp float u_gamma;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n lowp float gamma = u_gamma * v_gamma_scale;\n lowp float alpha = smoothstep(u_buffer - gamma, u_buffer + gamma, dist) * fade_alpha;\n\n gl_FragColor = u_color * (alpha * u_opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}},{path:194}],39:[function(t,e,r){"use strict";var n=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};n.prototype.bind=function(t,e,r,n,i,o){void 0===t.extVertexArrayObject&&(t.extVertexArrayObject=t.getExtension("OES_vertex_array_object"));var a=!this.vao||this.boundProgram!==e||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==i||this.boundElementBuffer!==n||this.boundVertexOffset!==o;!t.extVertexArrayObject||a?(this.freshBind(t,e,r,n,i,o),this.gl=t):t.extVertexArrayObject.bindVertexArrayOES(this.vao)},n.prototype.freshBind=function(t,e,r,n,i,o){var a,s=e.numAttributes;if(t.extVertexArrayObject)this.vao&&this.destroy(),this.vao=t.extVertexArrayObject.createVertexArrayOES(),t.extVertexArrayObject.bindVertexArrayOES(this.vao),a=0,this.boundProgram=e,this.boundVertexBuffer=r,this.boundVertexBuffer2=i,this.boundElementBuffer=n,this.boundVertexOffset=o;else{a=t.currentNumAttributes||0;for(var u=s;uthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,i={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:n,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",i,function(n,i){if(t.unloadVectorData(),!t.aborted)return n?e(n):(t.loadVectorData(i,r.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(r)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(i);e.exports=u},{"../data/extent":11,"../util/evented":118,"../util/util":129,"../util/window":112}],42:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("geojson-rewind"),o=t("./geojson_wrapper"),a=t("vt-pbf"),s=t("supercluster"),u=t("geojson-vt"),l=t("./vector_tile_worker_source"),c=function(t){function e(e,r,n){t.call(this,e,r),n&&(this.loadGeoJSON=n),this._geoJSONIndexes={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.loadVectorData=function(t,e){var r=t.source,n=t.coord;if(!this._geoJSONIndexes[r])return e(null,null);var i=this._geoJSONIndexes[r].getTile(Math.min(n.z,t.maxZoom),n.x,n.y);if(!i)return e(null,null);var s=new o(i.features);s.name="_geojsonTileLayer";var u=a({layers:{_geojsonTileLayer:s}});0===u.byteOffset&&u.byteLength===u.buffer.byteLength||(u=new Uint8Array(u)),s.rawData=u.buffer,e(null,s)},e.prototype.loadData=function(t,e){var r=function(r,n){var o=this;return r?e(r):"object"!=typeof n?e(new Error("Input data is not a valid GeoJSON object.")):(i(n,!0),void this._indexData(n,t,function(r,n){return r?e(r):(o._geoJSONIndexes[t.source]=n,void e(null))}))}.bind(this);this.loadGeoJSON(t,r)},e.prototype.loadGeoJSON=function(t,e){if(t.url)n.getJSON(t.url,e);else{if("string"!=typeof t.data)return e(new Error("Input data is not a valid GeoJSON object."));try{return e(null,JSON.parse(t.data))}catch(t){return e(new Error("Input data is not a valid GeoJSON object."))}}},e.prototype.removeSource=function(t){this._geoJSONIndexes[t.source]&&delete this._geoJSONIndexes[t.source]},e.prototype._indexData=function(t,e,r){try{e.cluster?r(null,s(e.superclusterOptions).load(t.features)):r(null,u(t,e.geojsonVtOptions))}catch(t){return r(t)}},e}(l);e.exports=c},{"../util/ajax":109,"./geojson_wrapper":43,"./vector_tile_worker_source":55,"geojson-rewind":140,"geojson-vt":144,supercluster:201,"vt-pbf":210}],43:[function(t,e,r){"use strict";var n=t("point-geometry"),i=t("vector-tile").VectorTileFeature,o=t("../data/extent"),a=function(t){var e=this;if(this.type=t.type,1===t.type){this.rawGeometry=[];for(var r=0;re)){var s=Math.pow(2,Math.min(a.coord.z,n._source.maxzoom)-Math.min(t.z,n._source.maxzoom));if(Math.floor(a.coord.x/s)===t.x&&Math.floor(a.coord.y/s)===t.y)for(r[o]=!0,i=!0;a&&a.coord.z-1>t.z;){var u=a.coord.parent(n._source.maxzoom).id;a=n._tiles[u],a&&a.hasData()&&(delete r[o],r[u]=!0)}}}return i},e.prototype.findLoadedParent=function(t,e,r){for(var n=this,i=t.z-1;i>=e;i--){t=t.parent(n._source.maxzoom);var o=n._tiles[t.id];if(o&&o.hasData())return r[t.id]=!0,o;if(n._cache.has(t.id))return r[t.id]=!0, -n._cache.get(t.id)}},e.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/t.tileSize)+1,r=Math.ceil(t.height/t.tileSize)+1,n=e*r,i=5;this._cache.setMaxSize(Math.floor(n*i))},e.prototype.update=function(t){var r=this;if(this._sourceLoaded){var n,i,a,s;this.updateCacheSize(t);var u=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(t)),c=Math.max(u-e.maxOverzooming,this._source.minzoom),h=Math.max(u+e.maxUnderzooming,this._source.minzoom),f={};this._coveredTiles={};var d;for(d=this.used?this._source.coord?[this._source.coord]:t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],n=0;n=Date.now())&&(r.findLoadedChildren(i,h,f)&&(f[g]=!0),s=r.findLoadedParent(i,c,m),s&&r.addTile(s.coord))}var _;for(_ in m)f[_]||(r._coveredTiles[_]=!0);for(_ in m)f[_]=!0;var x=p.keysDifference(this._tiles,f);for(n=0;nthis._source.maxzoom?Math.pow(2,n-this._source.maxzoom):1;e=new s(r,this._source.tileSize*i,this._source.maxzoom),this.loadTile(e,this._tileLoaded.bind(this,e,t.id))}return e.uses++,this._tiles[t.id]=e,this._source.fire("dataloading",{tile:e,coord:e.coord,dataType:"tile"}),e},e.prototype._setTileReloadTimer=function(t,e){var r=this,n=e.getExpiry();n&&(this._timers[t]=setTimeout(function(){r.reloadTile(t,"expired"),r._timers[t]=void 0},n-(new Date).getTime()))},e.prototype._setCacheInvalidationTimer=function(t,e){var r=this,n=e.getExpiry();n&&(this._cacheTimers[t]=setTimeout(function(){r._cache.remove(t),r._cacheTimers[t]=void 0},n-(new Date).getTime()))},e.prototype.removeTile=function(t){var e=this._tiles[t];if(e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),this._timers[t]=void 0),this._source.fire("data",{tile:e,coord:e.coord,dataType:"tile"}),!(e.uses>0)))if(e.hasData()){var r=e.coord.wrapped().id;this._cache.add(r,e),this._setCacheInvalidationTimer(r,e)}else e.aborted=!0,this.abortTile(e),this.unloadTile(e)},e.prototype.clearTiles=function(){var t=this;for(var e in this._tiles)t.removeTile(e);this._cache.reset()},e.prototype.tilesIn=function(t){for(var e=this,r={},i=this.getIds(),o=1/0,a=1/0,s=-(1/0),u=-(1/0),c=t[0].zoom,p=0;p=0&&g[1].y>=0){for(var _=[],x=0;xe.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function i(t,e,r,n,i){var o=Math.max(r,Math.floor(e.y0)),a=Math.min(n,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx0,h=e.dx<0,p=o;pc.dy&&(u=l,l=c,c=u),l.dy>h.dy&&(u=l,l=h,h=u),c.dy>h.dy&&(u=c,c=h,h=u),l.dy&&i(h,l,o,a,s),c.dy&&i(h,c,o,a,s)}function a(t,e,r){for(var n,i="",o=t;o>0;o--)n=1<t?new l(this.z-1,this.x,this.y,this.w):new l(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},l.prototype.wrapped=function(){return new l(this.z,this.x,this.y,0)},l.prototype.children=function(t){if(this.z>=t)return[new l(this.z+1,this.x,this.y,this.w)];var e=this.z+1,r=2*this.x,n=2*this.y;return[new l(e,r,n,this.w),new l(e,r+1,n,this.w),new l(e,r,n+1,this.w),new l(e,r+1,n+1,this.w)]},l.cover=function(t,e,r,n){function i(t,e,i){var o,u,c,h;if(i>=0&&i<=a)for(o=t;othis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,i={url:a(t.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:t.uid,coord:t.coord,zoom:t.coord.z,tileSize:this.tileSize*n,type:this.type,source:this.id,overscaling:n,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID&&"expired"!==t.state?"loading"===t.state?t.reloadCallback=e:this.dispatcher.send("reloadTile",i,r.bind(this),t.workerID):t.workerID=this.dispatcher.send("loadTile",i,r.bind(this))},e.prototype.abortTile=function(t){this.dispatcher.send("abortTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e}(n);e.exports=s},{"../util/evented":118,"../util/mapbox":125,"../util/util":129,"./load_tilejson":45}],55:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("vector-tile"),o=t("pbf"),a=t("./worker_tile"),s=t("../util/util"),u=function(t,e,r){this.actor=t,this.layerIndex=e,r&&(this.loadVectorData=r),this.loading={},this.loaded={}};u.prototype.loadTile=function(t,e){function r(t,r){return delete this.loading[n][i],t?e(t):r?(o.vectorTile=r,o.parse(r,this.layerIndex,this.actor,function(t,n,i){if(t)return e(t);var o={};r.expires&&(o.expires=r.expires),r.cacheControl&&(o.cacheControl=r.cacheControl),e(null,s.extend({rawTileData:r.rawData},n,o),i)}),this.loaded[n]=this.loaded[n]||{},void(this.loaded[n][i]=o)):e(null,null)}var n=t.source,i=t.uid;this.loading[n]||(this.loading[n]={});var o=this.loading[n][i]=new a(t);o.abort=this.loadVectorData(t,r.bind(this))},u.prototype.reloadTile=function(t,e){function r(t,r){if(this.reloadCallback){var n=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,o.layerIndex,o.actor,n)}e(t,r)}var n=this.loaded[t.source],i=t.uid,o=this;if(n&&n[i]){var a=n[i];"parsing"===a.status?a.reloadCallback=e:"done"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,r.bind(a))}},u.prototype.abortTile=function(t){var e=this.loading[t.source],r=t.uid;e&&e[r]&&e[r].abort&&(e[r].abort(),delete e[r])},u.prototype.removeTile=function(t){var e=this.loaded[t.source],r=t.uid;e&&e[r]&&delete e[r]},u.prototype.loadVectorData=function(t,e){function r(t,r){if(t)return e(t);var n=new i.VectorTile(new o(r.data));n.rawData=r.data,n.cacheControl=r.cacheControl,n.expires=r.expires,e(t,n)}var a=n.getArrayBuffer(t.url,r.bind(this));return function(){a.abort()}},u.prototype.redoPlacement=function(t,e){var r=this.loaded[t.source],n=this.loading[t.source],i=t.uid;if(r&&r[i]){var o=r[i],a=o.redoPlacement(t.angle,t.pitch,t.showCollisionBoxes);a.result&&e(null,a.result,a.transferables)}else n&&n[i]&&(n[i].angle=t.angle)},e.exports=u},{"../util/ajax":109,"../util/util":129,"./worker_tile":58,pbf:196,"vector-tile":206}],56:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("./image_source"),o=function(t){function e(e,r,n,i){t.call(this,e,r,n,i),this.roundZoom=!0,this.type="video",this.options=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,n.getVideo(e.urls,function(e,r){if(e)return t.fire("error",{error:e});t.video=r,t.video.loop=!0;var n;t.video.addEventListener("playing",function(){n=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(n)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(i);e.exports=o},{"../util/ajax":109,"./image_source":44}],57:[function(t,e,r){"use strict";var n=t("../util/actor"),i=t("../style/style_layer_index"),o=t("./vector_tile_worker_source"),a=t("./geojson_worker_source"),s=t("./rtl_text_plugin"),u=function(t){var e=this;this.self=t,this.actor=new n(t,this),this.layerIndexes={},this.workerSourceTypes={vector:o,geojson:a},this.workerSources={},this.self.registerWorkerSource=function(t,r){if(e.workerSourceTypes[t])throw new Error('Worker source with name "'+t+'" already registered.');e.workerSourceTypes[t]=r},this.self.registerRTLTextPlugin=function(t){if(s.applyArabicShaping||s.processBidirectionalText)throw new Error("RTL text plugin already registered.");s.applyArabicShaping=t.applyArabicShaping,s.processBidirectionalText=t.processBidirectionalText}};u.prototype.setLayers=function(t,e){this.getLayerIndex(t).replace(e)},u.prototype.updateLayers=function(t,e){this.getLayerIndex(t).update(e.layers,e.removedIds,e.symbolOrder)},u.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type).loadTile(e,r)},u.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type).reloadTile(e,r)},u.prototype.abortTile=function(t,e){this.getWorkerSource(t,e.type).abortTile(e)},u.prototype.removeTile=function(t,e){this.getWorkerSource(t,e.type).removeTile(e)},u.prototype.removeSource=function(t,e){var r=this.getWorkerSource(t,e.type);void 0!==r.removeSource&&r.removeSource(e)},u.prototype.redoPlacement=function(t,e,r){this.getWorkerSource(t,e.type).redoPlacement(e,r)},u.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t)}},u.prototype.loadRTLTextPlugin=function(t,e,r){try{s.applyArabicShaping||s.processBidirectionalText||this.self.importScripts(e)}catch(t){r(t)}},u.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new i),e},u.prototype.getWorkerSource=function(t,e){var r=this;if(this.workerSources[t]||(this.workerSources[t]={}),!this.workerSources[t][e]){var n={send:function(e,n,i,o){r.actor.send(e,n,i,o,t)}};this.workerSources[t][e]=new this.workerSourceTypes[e](n,this.getLayerIndex(t))}return this.workerSources[t][e]},e.exports=function(t){return new u(t)}},{"../style/style_layer_index":71,"../util/actor":108,"./geojson_worker_source":42,"./rtl_text_plugin":49,"./vector_tile_worker_source":55}],58:[function(t,e,r){"use strict";function n(t,e){for(var r=0,n=t.layers;r=P.maxzoom||P.layout&&"none"===P.layout.visibility)){for(var L=0,C=M;L=0;D--){var O=y[e.symbolOrder[D]];O&&f.symbolBuckets.push(O)}if(0===this.symbolBuckets.length)return R(new a(this.angle,this.pitch,this.collisionBoxArray));var B=0,j=Object.keys(g.iconDependencies),F=l.mapObject(g.glyphDependencies,function(t){return Object.keys(t).map(Number)}),U=function(t){if(t)return p(t);if(B++,2===B){for(var e=new a(f.angle,f.pitch,f.collisionBoxArray),r=0,i=f.symbolBuckets;r=(new Date).getTime()}),!this.times.length},n.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},n.prototype.cancel=function(t){this.times=this.times.filter(function(e){return e.id!==t})},e.exports=n},{}],60:[function(t,e,r){"use strict";var n=t("../util/evented"),i=t("../util/ajax"),o=t("../util/browser"),a=t("../util/mapbox").normalizeSpriteURL,s=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},u=function(t){function e(e,r){var n=this;t.call(this),this.base=e,this.retina=o.devicePixelRatio>1,this.setEventedParent(r);var s=this.retina?"@2x":"";i.getJSON(a(e,s,".json"),function(t,e){return t?void n.fire("error",{error:t}):(n.data=e,void(n.imgData&&n.fire("data",{dataType:"style"})))}),i.getImage(a(e,s,".png"),function(t,e){if(t)return void n.fire("error",{error:t});n.imgData=o.getImageData(e);for(var r=0;r1!==this.retina){var r=new e(this.base);r.on("data",function(){t.data=r.data,t.imgData=r.imgData,t.width=r.width,t.retina=r.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new s;var e=this.data&&this.data[t];return e&&this.imgData?e:new s},e}(n);e.exports=u},{"../util/ajax":109,"../util/browser":110,"../util/evented":118,"../util/mapbox":125}],61:[function(t,e,r){"use strict";var n=t("./style_spec"),i=t("../util/util"),o=t("../util/evented"),a=t("./validate_style"),s=t("./style_declaration"),u=t("./style_transition"),l="-transition",c=function(t){function e(e){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=n.light,this.set(e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){var e=this;if(!this._validate(a.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=i.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var r=0,n=this.properties;rMath.floor(t)&&(e.lastIntegerZoom=Math.floor(t+1),e.lastIntegerZoomTime=Date.now()),e.lastZoom=t},e.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},e.prototype.update=function(t,e){var r=this;if(this._changed){var n=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(n.length||i.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(n,i);for(var o in this._updatedSources){var a=r._updatedSources[o];"reload"===a?r._reloadSource(o):"clear"===a&&r._clearSource(o)}this._applyClasses(t,e),this._resetUpdates(),this.fire("data",{dataType:"style"})}},e.prototype._updateWorkerLayers=function(t,e){var r=this,n=this._updatedSymbolOrder?this._order.filter(function(t){return"symbol"===r._layers[t].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e,symbolOrder:n})},e.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={}, -this._updatedAllPaintProps=!1},e.prototype.setState=function(t){var e=this;if(this._checkLoaded(),y.emitErrors(this,y(t)))return!1;t=c.extend({},t),t.layers=E(t.layers);var r=T(this.serialize(),t).filter(function(t){return!(t.command in A)});if(0===r.length)return!1;var n=r.filter(function(t){return!(t.command in z)});if(n.length>0)throw new Error("Unimplemented: "+n.map(function(t){return t.command}).join(", ")+".");return r.forEach(function(t){"setTransition"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},e.prototype.addSource=function(t,e,r){if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error("There is already a source with this ID");if(!e.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(e)+".");var n=["vector","raster","geojson","video","image","canvas"],i=n.indexOf(e.type)>=0;if(!i||!this._validate(y.source,"sources."+t,e,null,r)){var o=this.sourceCaches[t]=new _(t,e,this.dispatcher);o.style=this,o.setEventedParent(this,function(){return{isSourceLoaded:o.loaded(),source:o.serialize(),sourceId:t}}),o.onAdd(this.map),this._changed=!0}},e.prototype.removeSource=function(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");var e=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],e.setEventedParent(null),e.clearTiles(),e.onRemove&&e.onRemove(this.map),this._changed=!0},e.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},e.prototype.addLayer=function(t,e,r){this._checkLoaded();var n=t.id;if("object"==typeof t.source&&(this.addSource(n,t.source),t=c.extend(t,{source:n})),!this._validate(y.layer,"layers."+n,t,{arrayIndex:-1},r)){var o=i.create(t);this._validateLayer(o),o.setEventedParent(this,{layer:{id:n}});var a=e?this._order.indexOf(e):this._order.length;if(this._order.splice(a,0,n),this._layers[n]=o,this._removedLayers[n]&&o.source){var s=this._removedLayers[n];delete this._removedLayers[n],this._updatedSources[o.source]=s.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(n)}},e.prototype.moveLayer=function(t,e){this._checkLoaded(),this._changed=!0;var r=this._layers[t];if(!r)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be moved.")});var n=this._order.indexOf(t);this._order.splice(n,1);var i=e?this._order.indexOf(e):this._order.length;this._order.splice(i,0,t),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},e.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(!e)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be removed.")});e.setEventedParent(null);var r=this._order.indexOf(t);this._order.splice(r,1),"symbol"===e.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t]},e.prototype.getLayer=function(t){return this._layers[t]},e.prototype.setLayerZoomRange=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);return n?void(n.minzoom===e&&n.maxzoom===r||(null!=e&&(n.minzoom=e),null!=r&&(n.maxzoom=r),this._updateLayer(n))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot have zoom extent.")})},e.prototype.setFilter=function(t,e){this._checkLoaded();var r=this.getLayer(t);return r?void(null!==e&&void 0!==e&&this._validate(y.filter,"layers."+r.id+".filter",e)||c.deepEqual(r.filter,e)||(r.filter=c.clone(e),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be filtered.")})},e.prototype.getFilter=function(t){return c.clone(this.getLayer(t).filter)},e.prototype.setLayoutProperty=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);return n?void(c.deepEqual(n.getLayoutProperty(e),r)||(n.setLayoutProperty(e,r),this._updateLayer(n))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},e.prototype.setPaintProperty=function(t,e,r,n){this._checkLoaded();var i=this.getLayer(t);if(!i)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")});if(!c.deepEqual(i.getPaintProperty(e,n),r)){var o=i.isPaintValueFeatureConstant(e);i.setPaintProperty(e,r,n);var a=!(r&&b.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&o||this._updateLayer(i),this.updateClasses(t,e)}},e.prototype.getPaintProperty=function(t,e,r){return this.getLayer(t).getPaintProperty(e,r)},e.prototype.getTransition=function(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},e.prototype.updateClasses=function(t,e){if(this._changed=!0,t){var r=this._updatedPaintProps;r[t]||(r[t]={}),r[t][e||"all"]=!0}else this._updatedAllPaintProps=!0},e.prototype.serialize=function(){var t=this;return c.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:c.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(e){return t._layers[e].serialize()})},function(t){return void 0!==t})},e.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]="reload"),this._changed=!0},e.prototype._flattenRenderedFeatures=function(t){for(var e=this,r=[],n=this._order.length-1;n>=0;n--)for(var i=e._order[n],o=0,a=t;o=this.maxzoom)||"none"===this.layout.visibility},e.prototype.updatePaintTransitions=function(t,e,r,n,o){for(var a=this,s=i.extend({},this._paintDeclarations[""]),u=0;u=this.endTime)return n;var o=this.oldTransition.calculate(t,e,this.startTime),a=i.easeCubicInOut((r-this.startTime-this.delay)/this.duration);return this.interp(o,n,a)},s.prototype._calculateTargetValue=function(t,e){if(!this.zoomTransitioned)return this.declaration.calculate(t,e);var r=t.zoom,n=this.zoomHistory.lastIntegerZoom,i=r>n?2:.5,a=this.declaration.calculate({zoom:r>n?r-1:r+1},e),s=this.declaration.calculate({zoom:r},e),u=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(r-n),c=o(u,1,l);return void 0!==a&&void 0!==s?{from:a,fromScale:i,to:s,toScale:1,t:c}:void 0},e.exports=s},{"../util/interpolate":121,"../util/util":129}],74:[function(t,e,r){"use strict";e.exports=t("mapbox-gl-style-spec/lib/validate_style.min"),e.exports.emitErrors=function(t,e){if(e&&e.length){for(var r=0;r-r/2;){if(a--,a<0)return!1;s-=t[a].dist(o),o=t[a]}s+=t[a].dist(t[a+1]),a++;for(var u=[],l=0;sn;)l-=u.shift().angleDelta;if(l>i)return!1;a++,s+=h.dist(p)}return!0}e.exports=n},{}],77:[function(t,e,r){"use strict";function n(t,e,r,n,o){for(var a=[],s=0;s=n&&p.x>=n||(h.x>=n?h=new i(n,h.y+(p.y-h.y)*((n-h.x)/(p.x-h.x)))._round():p.x>=n&&(p=new i(n,h.y+(p.y-h.y)*((n-h.x)/(p.x-h.x)))._round()),h.y>=o&&p.y>=o||(h.y>=o?h=new i(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round():p.y>=o&&(p=new i(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round()),u&&h.equals(u[u.length-1])||(u=[h],a.push(u)),u.push(p)))))}return a}var i=t("point-geometry");e.exports=n},{"point-geometry":197}],78:[function(t,e,r){"use strict";var n=t("../util/struct_array"),i=t("point-geometry"),o=n({members:[{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(o.prototype.StructType.prototype,"anchorPoint",{get:function(){return new i(this.anchorPointX,this.anchorPointY)}}),e.exports=o},{"../util/struct_array":127,"point-geometry":197}],79:[function(t,e,r){"use strict";var n=function(t,e,r,n,i,o,a,s,u,l,c){var h=a.top*s-u,p=a.bottom*s+u,f=a.left*s-u,d=a.right*s+u;if(this.boxStartIndex=t.length,l){var m=p-h,y=d-f;if(m>0)if(m=Math.max(10*s,m),c){var v=e[r.segment+1].sub(e[r.segment])._unit()._mult(y),g=[r.sub(v),r.add(v)];this._addLineCollisionBoxes(t,g,r,0,y,m,n,i,o)}else this._addLineCollisionBoxes(t,e,r,r.segment,y,m,n,i,o)}else t.emplaceBack(r.x,r.y,f,h,d,p,1/0,n,i,o,0,0,0,0,0);this.boxEndIndex=t.length};n.prototype._addLineCollisionBoxes=function(t,e,r,n,i,o,a,s,u){var l=o/2,c=Math.floor(i/l),h=-o/2,p=this.boxes,f=r,d=n+1,m=h;do{if(d--,d<0)return p;m-=e[d].dist(f),f=e[d]}while(m>-i/2);for(var y=e[d].dist(e[d+1]),v=0;v=e.length)return p;y=e[d].dist(e[d+1])}var _=g-m,x=e[d],b=e[d+1],w=b.sub(x)._unit()._mult(_)._add(x)._round(),E=Math.max(Math.abs(g-h)-l/2,0),T=i/2/E;t.emplaceBack(w.x,w.y,-o/2,-o/2,o/2,o/2,T,a,s,u,0,0,0,0,0)}return p},e.exports=n},{}],80:[function(t,e,r){"use strict";var n=t("point-geometry"),i=t("../data/extent"),o=t("grid-index"),a=t("../util/intersection_tests"),s=function(t,e,r){if("object"==typeof t){var n=t;r=e,t=n.angle,e=n.pitch,this.grid=new o(n.grid),this.ignoredGrid=new o(n.ignoredGrid)}else this.grid=new o(i,12,6),this.ignoredGrid=new o(i,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),s=Math.cos(t);if(this.rotationMatrix=[s,-a,a,s],this.reverseRotationMatrix=[s,a,-a,s],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=r,0===r.length){r.emplaceBack();var u=32767;r.emplaceBack(0,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(i,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,0,-u,0,u,0,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,i,-u,0,u,0,u,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=r.get(0),this.edges=[r.get(1),r.get(2),r.get(3),r.get(4)]};s.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),r=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(r)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:r}},s.prototype.placeCollisionFeature=function(t,e,r){for(var i=this,o=this.collisionBoxArray,a=this.minScale,s=this.rotationMatrix,u=this.yStretch,l=t.boxStartIndex;l=i.maxScale)return a}if(r){var w;if(i.angle){var E=i.reverseRotationMatrix,T=new n(c.x1,c.y1).matMult(E),S=new n(c.x2,c.y1).matMult(E),z=new n(c.x1,c.y2).matMult(E),A=new n(c.x2,c.y2).matMult(E);w=i.tempCollisionBox,w.anchorPointX=c.anchorPoint.x,w.anchorPointY=c.anchorPoint.y,w.x1=Math.min(T.x,S.x,z.x,A.x),w.y1=Math.min(T.y,S.x,z.x,A.x),w.x2=Math.max(T.x,S.x,z.x,A.x),w.y2=Math.max(T.y,S.x,z.x,A.x),w.maxScale=c.maxScale}else w=c;for(var M=0;M=i.maxScale)return a}}}return a},s.prototype.queryRenderedSymbols=function(t,e){var r={},i=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return i;for(var o=this.collisionBoxArray,s=this.rotationMatrix,u=this.yStretch,l=[],c=1/0,h=1/0,p=-(1/0),f=-(1/0),d=0;dE.maxScale)){var z=E.anchorPoint.matMult(s),A=z.x+E.x1/e,M=z.y+E.y1/e*u,P=z.x+E.x2/e,L=z.y+E.y2/e*u,C=[new n(A,M),new n(P,M),new n(P,L),new n(A,L)];a.polygonIntersectsPolygon(l,C)&&(r[T][S]=!0,i.push(g[w]))}}return i},s.prototype.getPlacementScale=function(t,e,r,n,i){var o=e.x-n.x,a=e.y-n.y,s=(i.x1-r.x2)/o,u=(i.x2-r.x1)/o,l=(i.y1-r.y2)*this.yStretch/a,c=(i.y2-r.y1)*this.yStretch/a;(isNaN(s)||isNaN(u))&&(s=u=1),(isNaN(l)||isNaN(c))&&(l=c=1);var h=Math.min(Math.max(s,u),Math.max(l,c)),p=i.maxScale,f=r.maxScale;return h>p&&(h=p),h>f&&(h=f),h>t&&h>=i.placementScale&&(t=h),t},s.prototype.insertCollisionFeature=function(t,e,r){for(var n=this,i=r?this.ignoredGrid:this.grid,o=this.collisionBoxArray,a=t.boxStartIndex;a=0&&S=0&&z=0&&v+f<=d){var A=new a(S,z,E,_)._round();n&&!s(t,A,l,n,u)||g.push(A)}}y+=w}return h||g.length||c||(g=i(t,y/2,r,n,u,l,c,!0,p)),g}var o=t("../util/interpolate"),a=t("../symbol/anchor"),s=t("./check_max_angle");e.exports=n},{"../symbol/anchor":75,"../util/interpolate":121,"./check_max_angle":76}],82:[function(t,e,r){"use strict";var n=t("shelf-pack"),i=t("../util/util"),o=4,a=128,s=2048,u=function(){ -this.width=a,this.height=a,this.bin=new n(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};u.prototype.getGlyphs=function(){var t,e,r,n={};for(var i in this.ids)t=i.split("#"),e=t[0],r=t[1],n[e]||(n[e]=[]),n[e].push(r);return n},u.prototype.getRects=function(){var t,e,r,n=this,i={};for(var o in this.ids)t=o.split("#"),e=t[0],r=t[1],i[e]||(i[e]={}),i[e][r]=n.index[o];return i},u.prototype.addGlyph=function(t,e,r,n){var o=this;if(!r)return null;var a=e+"#"+r.id;if(this.index[a])return this.ids[a].indexOf(t)<0&&this.ids[a].push(t),this.index[a];if(!r.bitmap)return null;var s=r.width+2*n,u=r.height+2*n,l=1,c=s+2*l,h=u+2*l;c+=4-c%4,h+=4-h%4;var p=this.bin.packOne(c,h);if(p||(this.resize(),p=this.bin.packOne(c,h)),!p)return i.warnOnce("glyph bitmap overflow"),null;this.index[a]=p,this.ids[a]=[t];for(var f=this.data,d=r.bitmap,m=0;m=s||r>=s)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=o,this.height*=o,this.bin.resize(this.width,this.height);for(var n=new ArrayBuffer(this.width*this.height),i=0;i65535)return r("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var i=this.loading[t];if(i[e])i[e].push(r);else{i[e]=[r];var a=256*e+"-"+(256*e+255),u=n(t,a,this.url);o.getArrayBuffer(u,function(t,r){for(var n=!t&&new s(new l(r.data)),o=0;o1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},u.prototype.addIcons=function(t,e){for(var r=this,n=0;n1||(E?(clearTimeout(E),E=null,v("dblclick",e)):E=setTimeout(f,300))}function c(t){g("touchmove",t)}function h(t){g("touchend",t)}function p(t){g("touchcancel",t)}function f(){E=null}function d(t){var e=n.mousePos(_,t);e.equals(w)&&v("click",t)}function m(t){v("dblclick",t),t.preventDefault()}function y(e){var r=t.dragRotate&&t.dragRotate.isActive();b||r?b&&(x=e):v("contextmenu",e),e.preventDefault()}function v(e,r){var i=n.mousePos(_,r);return t.fire(e,{lngLat:t.unproject(i),point:i,originalEvent:r})}function g(e,r){var o=n.touchPos(_,r),a=o.reduce(function(t,e,r,n){return t.add(e.div(n.length))},new i(0,0));return t.fire(e,{lngLat:t.unproject(a),point:a,lngLats:o.map(function(e){return t.unproject(e)},this),points:o,originalEvent:r})}var _=t.getCanvasContainer(),x=null,b=!1,w=null,E=null;for(var T in o)t[T]=new o[T](t,e),e.interactive&&e[T]&&t[T].enable(e[T]);_.addEventListener("mouseout",r,!1),_.addEventListener("mousedown",a,!1),_.addEventListener("mouseup",s,!1),_.addEventListener("mousemove",u,!1),_.addEventListener("touchstart",l,!1),_.addEventListener("touchend",h,!1),_.addEventListener("touchmove",c,!1),_.addEventListener("touchcancel",p,!1),_.addEventListener("click",d,!1),_.addEventListener("dblclick",m,!1),_.addEventListener("contextmenu",y,!1)}},{"../util/dom":117,"./handler/box_zoom":97,"./handler/dblclick_zoom":98,"./handler/drag_pan":99,"./handler/drag_rotate":100,"./handler/keyboard":101,"./handler/scroll_zoom":102,"./handler/touch_zoom_rotate":103,"point-geometry":197}],92:[function(t,e,r){"use strict";var n=t("../util/util"),i=t("../util/interpolate"),o=t("../util/browser"),a=t("../geo/lng_lat"),s=t("../geo/lng_lat_bounds"),u=t("point-geometry"),l=t("../util/evented"),c=function(t){function e(e,r){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=r.bearingSnap}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCenter=function(){return this.transform.center},e.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e),this},e.prototype.panBy=function(t,e,r){return this.panTo(this.transform.center,n.extend({offset:u.convert(t).mult(-1)},e),r),this},e.prototype.panTo=function(t,e,r){return this.easeTo(n.extend({center:t},e),r)},e.prototype.getZoom=function(){return this.transform.zoom},e.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},e.prototype.zoomTo=function(t,e,r){return this.easeTo(n.extend({zoom:t},e),r)},e.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},e.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},e.prototype.getBearing=function(){return this.transform.bearing},e.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},e.prototype.rotateTo=function(t,e,r){return this.easeTo(n.extend({bearing:t},e),r)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,n.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())180&&(c.center.lng>0&&m.lng<0?m.lng+=360:c.center.lng<0&&m.lng>0&&(m.lng-=360));var _=c.zoomScale(y-p),x=c.point,b="center"in t?c.project(m).sub(h.div(_)):x,w=t.curve,E=Math.max(c.width,c.height),T=E/_,S=b.sub(x).mag();if("minZoom"in t){var z=n.clamp(Math.min(t.minZoom,p,y),c.minZoom,c.maxZoom),A=E/c.zoomScale(z-p);w=Math.sqrt(A/S*2)}var M=w*w,P=r(0),L=function(t){return s(P)/s(P+w*t)},C=function(t){return E*((s(P)*l(P+w*t)-o(P))/M)/S},k=(r(1)-P)/w;if(Math.abs(S)<1e-6){if(Math.abs(E-T)<1e-6)return this.easeTo(t);var I=T=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},o.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},e.exports=o},{"../../util/dom":117,"../../util/util":129}],94:[function(t,e,r){"use strict";function n(t){void 0!==i?t(i):void 0!==s.navigator.permissions?s.navigator.permissions.query({name:"geolocation"}).then(function(e){i="denied"!==e.state,t(i)}):(i=!!s.navigator.geolocation,t(i))}var i,o=t("../../util/evented"),a=t("../../util/dom"),s=t("../../util/window"),u=t("../../util/util"),l={enableHighAccuracy:!1,timeout:6e3},c="mapboxgl-ctrl",h=function(t){function e(e){t.call(this),this.options=e||{},u.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div",c+" "+c+"-group"),n(this._setupUI),this._container},e.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},e.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},e.prototype._onError=function(t){this.fire("error",t),this._finish()},e.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},e.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=a.create("button",c+"-icon "+c+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},e.prototype._onClickGeolocate=function(){var t=u.extend(l,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),s.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=s.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(s.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},e}(o);e.exports=h},{"../../util/dom":117,"../../util/evented":118,"../../util/util":129,"../../util/window":112}],95:[function(t,e,r){"use strict";function n(t){return new o.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var i=t("../../util/dom"),o=t("../../util/window"),a=t("../../util/util"),s="mapboxgl-ctrl",u=function(){a.bindAll(["_rotateCompassArrow"],this)};u.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},u.prototype.onAdd=function(t){return this._map=t,this._container=i.create("div",s+" "+s+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(s+"-icon "+s+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(s+"-icon "+s+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(s+"-icon "+s+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=i.create("span","arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},u.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},u.prototype._onContextMenu=function(t){t.preventDefault()},u.prototype._onCompassDown=function(t){0===t.button&&(i.disableDrag(),o.document.addEventListener("mousemove",this._onCompassMove),o.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._onCompassUp=function(t){0===t.button&&(o.document.removeEventListener("mousemove",this._onCompassMove),o.document.removeEventListener("mouseup",this._onCompassUp), -i.enableDrag(),this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._createButton=function(t,e,r){var n=i.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",e),n.addEventListener("click",function(){r()}),n},e.exports=u},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],96:[function(t,e,r){"use strict";function n(t,e,r){var n=r&&r.maxWidth||100,a=t._container.clientHeight/2,s=o(t.unproject([0,a]),t.unproject([n,a]));if(r&&"imperial"===r.unit){var u=3.2808*s;if(u>5280){var l=u/5280;i(e,n,l,"mi")}else i(e,n,u,"ft")}else i(e,n,s,"m")}function i(t,e,r,n){var i=a(r),o=i/r;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*o+"px",t.innerHTML=i+n}function o(t,e){var r=6371e3,n=Math.PI/180,i=t.lat*n,o=e.lat*n,a=Math.sin(i)*Math.sin(o)+Math.cos(i)*Math.cos(o)*Math.cos((e.lng-t.lng)*n),s=r*Math.acos(Math.min(a,1));return s}function a(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),r=t/e;return r=r>=10?10:r>=5?5:r>=3?3:r>=2?2:1,e*r}var s=t("../../util/dom"),u=t("../../util/util"),l=function(t){this.options=t,u.bindAll(["_onMove"],this)};l.prototype.getDefaultPosition=function(){return"bottom-left"},l.prototype._onMove=function(){n(this._map,this._container,this.options)},l.prototype.onAdd=function(t){return this._map=t,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},l.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},e.exports=l},{"../../util/dom":117,"../../util/util":129}],97:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../geo/lng_lat_bounds"),o=t("../../util/util"),a=t("../../util/window"),s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),o.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.isActive=function(){return!!this._active},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},s.prototype._onMouseDown=function(t){t.shiftKey&&0===t.button&&(a.document.addEventListener("mousemove",this._onMouseMove,!1),a.document.addEventListener("keydown",this._onKeyDown,!1),a.document.addEventListener("mouseup",this._onMouseUp,!1),n.disableDrag(),this._startPos=n.mousePos(this._el,t),this._active=!0)},s.prototype._onMouseMove=function(t){var e=this._startPos,r=n.mousePos(this._el,t);this._box||(this._box=n.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var i=Math.min(e.x,r.x),o=Math.max(e.x,r.x),a=Math.min(e.y,r.y),s=Math.max(e.y,r.y);n.setTransform(this._box,"translate("+i+"px,"+a+"px)"),this._box.style.width=o-i+"px",this._box.style.height=s-a+"px"},s.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,r=n.mousePos(this._el,t),o=(new i).extend(this._map.unproject(e)).extend(this._map.unproject(r));this._finish(),e.x===r.x&&e.y===r.y?this._fireEvent("boxzoomcancel",t):this._map.fitBounds(o,{linear:!0}).fire("boxzoomend",{originalEvent:t,boxZoomBounds:o})}},s.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",t))},s.prototype._finish=function(){this._active=!1,a.document.removeEventListener("mousemove",this._onMouseMove,!1),a.document.removeEventListener("keydown",this._onKeyDown,!1),a.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),n.enableDrag()},s.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},e.exports=s},{"../../geo/lng_lat_bounds":20,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],98:[function(t,e,r){"use strict";var n=function(t){this._map=t,this._onDblClick=this._onDblClick.bind(this)};n.prototype.isEnabled=function(){return!!this._enabled},n.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},n.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},n.prototype._onDblClick=function(t){this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},e.exports=n},{}],99:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.3,s=i.bezier(0,0,a,1),u=1400,l=2500,c=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(o.document.addEventListener("touchmove",this._onMove),o.document.addEventListener("touchend",this._onTouchEnd)):(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onMouseUp)),this._active=!1,this._startPos=this._pos=n.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=n.mousePos(this._el,t),r=this._map;r.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),r.transform.setLocationAtPoint(r.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},c.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var r=function(){return e._fireEvent("moveend",t)},n=this._inertia;if(n.length<2)return void r();var i=n[n.length-1],o=n[0],c=i[1].sub(o[1]),h=(i[0]-o[0])/1e3;if(0===h||i[1].equals(o[1]))return void r();var p=c.mult(a/h),f=p.mag();f>u&&(f=u,p._unit()._mult(f));var d=f/(l*a),m=p.mult(-d/2);this._map.panBy(m,{duration:1e3*d,easing:s,noMoveStart:!0},{originalEvent:t})}},c.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onMouseUp))},c.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onTouchEnd))},c.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},c.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var r=1,n=0;return"mousemove"===t.type?t.buttons&0===r:t.button!==n},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],100:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.25,s=i.bezier(0,0,a,1),u=180,l=720,c=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,i.bindAll(["_onDown","_onMove","_onUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=n.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var r=this._pos,i=n.mousePos(this._el,t),o=.8*(r.x-i.x),a=(r.y-i.y)*-.5,s=e.getBearing()-o,u=e.getPitch()-a,l=this._inertia,c=l[l.length-1];this._drainInertiaBuffer(),l.push([Date.now(),e._normalizeBearing(s,c[1])]),e.transform.bearing=s,this._pitchWithRotate&&(e.transform.pitch=u),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=i}},c.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),i=this._inertia,c=function(){Math.abs(n)u&&(g=u);var _=g/(l*a),x=y*g*(_/2);d+=x,Math.abs(r._normalizeBearing(d,0))1;var r=t.ctrlKey?1:2,n=t.ctrlKey?0:2,i=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&o.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(i=0),"mousemove"===t.type?t.buttons&0===r:i!==n},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],101:[function(t,e,r){"use strict";function n(t){return t*(2-t)}var i=100,o=15,a=10,s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},s.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,s=0,u=0,l=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?r=-1:(t.preventDefault(),u=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),u=1);break;case 38:t.shiftKey?s=1:(t.preventDefault(),l=-1);break;case 40:t.shiftKey?s=-1:(l=1,t.preventDefault())}var c=this._map,h=c.getZoom(),p={duration:300,delayEndEvents:500,easing:n,zoom:e?Math.round(h)+e*(t.shiftKey?2:1):h,bearing:c.getBearing()+r*o,pitch:c.getPitch()+s*a,offset:[-u*i,-l*i],center:c.getCenter()};c.easeTo(p,{originalEvent:t})}},e.exports=s},{}],102:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/browser"),a=t("../../util/window"),s=a.navigator.userAgent.toLowerCase(),u=s.indexOf("firefox")!==-1,l=s.indexOf("safari")!==-1&&s.indexOf("chrom")===-1,c=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onWheel","_onTimeout"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},c.prototype._onWheel=function(t){var e;"wheel"===t.type?(e=t.deltaY,u&&t.deltaMode===a.WheelEvent.DOM_DELTA_PIXEL&&(e/=o.devicePixelRatio),t.deltaMode===a.WheelEvent.DOM_DELTA_LINE&&(e*=40)):"mousewheel"===t.type&&(e=-t.wheelDeltaY,l&&(e/=3));var r=o.now(),i=r-(this._time||0);this._pos=n.mousePos(this._el,t),this._time=r,0!==e&&e%4.000244140625===0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&this._zoom(-e,t),t.preventDefault()},c.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},c.prototype._zoom=function(t,e){if(0!==t){var r=this._map,n=2/(1+Math.exp(-Math.abs(t/100)));t<0&&0!==n&&(n=1/n);var i=r.ease?r.ease.to:r.transform.scale,o=r.transform.scaleZoom(i*n);r.zoomTo(o,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?r.getCenter():r.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:e})}},e.exports=c},{"../../util/browser":110,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],103:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.15,s=i.bezier(0,0,a,1),u=12,l=2.5,c=.15,h=4,p=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onStart","_onMove","_onEnd"],this)};p.prototype.isEnabled=function(){return!!this._enabled},p.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},p.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},p.prototype.disableRotation=function(){this._rotationDisabled=!0},p.prototype.enableRotation=function(){this._rotationDisabled=!1},p.prototype._onStart=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]);this._startVec=e.sub(r),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],o.document.addEventListener("touchmove",this._onMove,!1),o.document.addEventListener("touchend",this._onEnd,!1)}},p.prototype._onMove=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]),i=e.add(r).div(2),o=e.sub(r),a=o.mag()/this._startVec.mag(),s=this._rotationDisabled?0:180*o.angleWith(this._startVec)/Math.PI,u=this._map;if(this._gestureIntent){var l={duration:0,around:u.unproject(i)};"rotate"===this._gestureIntent&&(l.bearing=this._startBearing+s),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(l.zoom=u.transform.scaleZoom(this._startScale*a)),u.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),u.easeTo(l,{originalEvent:t})}else{var p=Math.abs(1-a)>c,f=Math.abs(s)>h;f?this._gestureIntent="rotate":p&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=o,this._startScale=u.transform.scale,this._startBearing=u.transform.bearing)}t.preventDefault()}},p.prototype._onEnd=function(t){o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,r=this._map;if(e.length<2)return void r.snapToNorth({},{originalEvent:t});var n=e[e.length-1],i=e[0],c=r.transform.scaleZoom(this._startScale*n[1]),h=r.transform.scaleZoom(this._startScale*i[1]),p=c-h,f=(n[0]-i[0])/1e3,d=n[2];if(0===f||c===h)return void r.snapToNorth({},{originalEvent:t});var m=p*a/f;Math.abs(m)>l&&(m=m>0?l:-l);var y=1e3*Math.abs(m/(u*a)),v=c+m*y/2e3;v<0&&(v=0),r.easeTo({zoom:v,duration:y,easing:s,around:this._aroundCenter?r.getCenter():r.unproject(d)},{originalEvent:t})},p.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>2&&e-t[0][0]>r;)t.shift()},e.exports=p},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],104:[function(t,e,r){"use strict";var n=t("../util/util"),i=t("../util/window"),o=function(){n.bindAll(["_onHashChange","_updateHash"],this)};o.prototype.addTo=function(t){return this._map=t,i.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},o.prototype.remove=function(){return i.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},o.prototype._onHashChange=function(){var t=i.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},o.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),r=this._map.getBearing(),n=this._map.getPitch(),o=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),a="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(o)+"/"+t.lng.toFixed(o);(r||n)&&(a+="/"+Math.round(10*r)/10),n&&(a+="/"+Math.round(n)),i.history.replaceState("","",a)},e.exports=o},{"../util/util":129,"../util/window":112}],105:[function(t,e,r){"use strict";function n(t){t.parentNode&&t.parentNode.removeChild(t)}var i=t("../util/util"),o=t("../util/browser"),a=t("../util/window"),s=t("../util/dom"),u=t("../style/style"),l=t("../style/animation_loop"),c=t("../render/painter"),h=t("../geo/transform"),p=t("./hash"),f=t("./bind_handlers"),d=t("./camera"),m=t("../geo/lng_lat"),y=t("../geo/lng_lat_bounds"),v=t("point-geometry"),g=t("./control/attribution_control"),_=t("mapbox-gl-supported"),x=0,b=20,w={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:x,maxZoom:b,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0},E=function(t){function e(e){var r=this;e=i.extend({},w,e);var n=new h(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,n,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,"string"==typeof e.container){if(this._container=a.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new l,e.maxBounds&&this.setMaxBounds(e.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){r.animationLoop.set(300),r._rerender()}),"undefined"!=typeof a&&(a.addEventListener("online",this._onWindowOnline,!1),a.addEventListener("resize",this._onWindowResize,!1)),f(this,e),this._hash=e.hash&&(new p).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new g),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var r=t.onAdd(this),n=this._controlPositions[e];return e.indexOf("bottom")!==-1?n.insertBefore(r,n.firstChild):n.appendChild(r),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var r=this._classes.indexOf(t);return r<0||""===t?this:(this._classes.splice(r,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var r={},n=0;n=0},e.prototype.getClasses=function(){return i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],r=t[1];this._resizeCanvas(e,r),this.transform.resize(e,r),this.painter.resize(e,r);var n=this.painter.gl,o=n.getParameter(n.MAX_RENDERBUFFER_SIZE)/2;return(this._canvas.width>o||this._canvas.height>o)&&i.warnOnce("Map is larger than maximum size supported by this system ("+o+"px by "+o+"px)."),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new y(this.transform.pointLocation(new v(0,this.transform.height)),this.transform.pointLocation(new v(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new v(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new v(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=y.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?x:t,t>=x&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(m.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(v.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof v||Array.isArray(t)}var e,r={};return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(r=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[v.convert([0,0]),v.convert([this.transform.width,this.transform.height])]);var r,n=t instanceof v||"number"==typeof t[0];if(n){var i=v.convert(t);r=[i]}else{var o=[v.convert(t[0]),v.convert(t[1])];r=[o[0],new v(o[1].x,o[0].y),o[1],new v(o[0].x,o[1].y),o[0]]}return r=r.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var r=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof u)&&"string"!=typeof t;if(r)try{return this.style.setState(t)&&this._update(!0),this}catch(t){i.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof u?this.style=t:this.style=new u(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,r,n){return this.style.setPaintProperty(t,e,r,n),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,r){return this.style.getPaintProperty(t,e,r)},e.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=s.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=s.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",0),this._canvas.setAttribute("aria-label","Map");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var n=this._controlContainer=s.create("div","mapboxgl-control-container",t),i=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){i[t]=s.create("div","mapboxgl-ctrl-"+t,n)})},e.prototype._resizeCanvas=function(t,e){var r=a.devicePixelRatio||1;this._canvas.width=r*t,this._canvas.height=r*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=i.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},_.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new c(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&o.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),o.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof a&&a.removeEventListener("resize",this._onWindowResize,!1);var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),n(this._canvasContainer),n(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=o.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},r.showTileBoundaries.get=function(){return!!this._showTileBoundaries},r.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},r.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},r.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},r.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},r.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},r.repaint.get=function(){return!!this._repaint},r.repaint.set=function(t){this._repaint=t,this._update()},r.vertices.get=function(){return!!this._vertices},r.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,r),e}(d);e.exports=E},{"../geo/lng_lat":19, -"../geo/lng_lat_bounds":20,"../geo/transform":21,"../render/painter":36,"../style/animation_loop":59,"../style/style":63,"../util/browser":110,"../util/dom":117,"../util/util":129,"../util/window":112,"./bind_handlers":91,"./camera":92,"./control/attribution_control":93,"./hash":104,"mapbox-gl-supported":193,"point-geometry":197}],106:[function(t,e,r){"use strict";var n=t("../util/dom"),i=t("../geo/lng_lat"),o=t("point-geometry"),a=function(t,e){this._offset=o.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=n.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};a.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},a.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),n.remove(this._element),this._popup&&this._popup.remove(),this},a.prototype.getLngLat=function(){return this._lngLat},a.prototype.setLngLat=function(t){return this._lngLat=i.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},a.prototype.getElement=function(){return this._element},a.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},a.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},a.prototype.getPopup=function(){return this._popup},a.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},a.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),n.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},e.exports=a},{"../geo/lng_lat":19,"../util/dom":117,"point-geometry":197}],107:[function(t,e,r){"use strict";function n(t){if(t){if("number"==typeof t){var e=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new l(0,t),"top-left":new l(e,e),"top-right":new l(-e,e),bottom:new l(0,-t),"bottom-left":new l(e,-e),"bottom-right":new l(-e,-e),left:new l(t,0),right:new l(-t,0)}}if(i(t)){var r=l.convert(t);return{top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return{top:l.convert(t.top||[0,0]),"top-left":l.convert(t["top-left"]||[0,0]),"top-right":l.convert(t["top-right"]||[0,0]),bottom:l.convert(t.bottom||[0,0]),"bottom-left":l.convert(t["bottom-left"]||[0,0]),"bottom-right":l.convert(t["bottom-right"]||[0,0]),left:l.convert(t.left||[0,0]),right:l.convert(t.right||[0,0])}}return n(new l(0,0))}function i(t){return t instanceof l||Array.isArray(t)}var o=t("../util/util"),a=t("../util/evented"),s=t("../util/dom"),u=t("../geo/lng_lat"),l=t("point-geometry"),c=t("../util/window"),h={closeButton:!0,closeOnClick:!0},p=function(t){function e(e){t.call(this),this.options=o.extend(Object.create(h),e),o.bindAll(["_update","_onClickClose"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},e.prototype.isOpen=function(){return!!this._map},e.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},e.prototype.getLngLat=function(){return this._lngLat},e.prototype.setLngLat=function(t){return this._lngLat=u.convert(t),this._update(),this},e.prototype.setText=function(t){return this.setDOMContent(c.document.createTextNode(t))},e.prototype.setHTML=function(t){var e,r=c.document.createDocumentFragment(),n=c.document.createElement("body");for(n.innerHTML=t;e=n.firstChild,e;)r.appendChild(e);return this.setDOMContent(r)},e.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},e.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=s.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=s.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},e.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=s.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,e=n(this.options.offset),r=this._map.project(this._lngLat).round();if(!t){var i=this._container.offsetWidth,o=this._container.offsetHeight;t=r.y+e.bottom.ythis._map.transform.height-o?["bottom"]:[],r.xthis._map.transform.width-i/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var a=r.add(e[t]),u={top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},l=this._container.classList;for(var c in u)l.remove("mapboxgl-popup-anchor-"+c);l.add("mapboxgl-popup-anchor-"+t),s.setTransform(this._container,u[t]+" translate("+a.x+"px,"+a.y+"px)")}},e.prototype._onClickClose=function(){this.remove()},e}(a);e.exports=p},{"../geo/lng_lat":19,"../util/dom":117,"../util/evented":118,"../util/util":129,"../util/window":112,"point-geometry":197}],108:[function(t,e,r){"use strict";var n=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};n.prototype.send=function(t,e,r,n,i){var o=r?this.mapId+":"+this.callbackID++:null;r&&(this.callbacks[o]=r),this.target.postMessage({targetMapId:i,sourceMapId:this.mapId,type:t,id:String(o),data:e},n)},n.prototype.receive=function(t){var e,r=this,n=t.data,i=n.id;if(!n.targetMapId||this.mapId===n.targetMapId){var o=function(t,e,n){r.target.postMessage({sourceMapId:r.mapId,type:"",id:String(i),error:t?String(t):null,data:e},n)};if(""===n.type)e=this.callbacks[n.id],delete this.callbacks[n.id],e&&e(n.error||null,n.data);else if("undefined"!=typeof n.id&&this.parent[n.type])this.parent[n.type](n.sourceMapId,n.data,o);else if("undefined"!=typeof n.id&&this.parent.getWorkerSource){var a=n.type.split("."),s=this.parent.getWorkerSource(n.sourceMapId,a[0]);s[a[1]](n.data,o)}else this.parent[n.type](n.data)}},n.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},e.exports=n},{}],109:[function(t,e,r){"use strict";function n(t){var e=i.document.createElement("a");return e.href=t,e.protocol===i.document.location.protocol&&e.host===i.document.location.host}var i=t("./window");r.getJSON=function(t,e){var r=new i.XMLHttpRequest;return r.open("GET",t,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(t){e(t)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var t;try{t=JSON.parse(r.response)}catch(t){return e(t)}e(null,t)}else e(new Error(r.statusText))},r.send(),r},r.getArrayBuffer=function(t,e){var r=new i.XMLHttpRequest;return r.open("GET",t,!0),r.responseType="arraybuffer",r.onerror=function(t){e(t)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?e(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?e(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):e(new Error(r.statusText)))},r.send(),r};var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";r.getImage=function(t,e){return r.getArrayBuffer(t,function(t,r){if(t)return e(t);var n=new i.Image,a=i.URL||i.webkitURL;n.onload=function(){e(null,n),a.revokeObjectURL(n.src)};var s=new i.Blob([new Uint8Array(r.data)],{type:"image/png"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?a.createObjectURL(s):o})},r.getVideo=function(t,e){var r=i.document.createElement("video");r.onloadstart=function(){e(null,r)};for(var o=0;o=s+n?t.call(i,1):(t.call(i,(u-s)/n),r.frame(o)))}if(!n)return t.call(i,1),null;var a=!1,s=e.exports.now();return r.frame(o),function(){a=!0}},r.getImageData=function(t){var e=n.document.createElement("canvas"),r=e.getContext("2d");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height).data},r.supported=t("mapbox-gl-supported"),r.hardwareConcurrency=n.navigator.hardwareConcurrency||4,Object.defineProperty(r,"devicePixelRatio",{get:function(){return n.devicePixelRatio}}),r.supportsWebp=!1;var a=n.document.createElement("img");a.onload=function(){r.supportsWebp=!0},a.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="},{"./window":112,"mapbox-gl-supported":193}],111:[function(t,e,r){"use strict";var n=t("webworkify"),i=t("../window"),o=i.URL.createObjectURL(new n(t("../../source/worker"),{bare:!0}));e.exports=function(){return new i.Worker(o)}},{"../../source/worker":57,"../window":112,webworkify:213}],112:[function(t,e,r){"use strict";e.exports=self},{}],113:[function(t,e,r){"use strict";function n(t,e){return e.area-t.area}var i=t("quickselect"),o=t("./util").calculateSignedArea;e.exports=function(t,e){var r=t.length;if(r<=1)return[t];for(var a,s,u=[],l=0;l1)for(var h=0;ht.y!=h.y>t.y&&t.x<(h.x-c.x)*(t.y-c.y)/(h.y-c.y)+c.x&&(r=!r),n=Math.min(n,l(t,c,h))}return(r?1:-1)*Math.sqrt(n)}function a(t){for(var e=0,r=0,n=0,o=t[0],a=0,s=o.length,u=s-1;al)&&(l=f.x),(!p||f.y>c)&&(c=f.y)}for(var d=l-o,m=c-u,y=Math.min(d,m),v=y/2,g=new s(null,n),_=o;_b.d&&(b=E,r&&console.log("found best %d after %d probes",Math.round(1e4*E.d)/1e4,w)),E.max-b.d<=e||(v=E.h/2,g.push(new i(E.p.x-v,E.p.y-v,v,t)),g.push(new i(E.p.x+v,E.p.y-v,v,t)),g.push(new i(E.p.x-v,E.p.y+v,v,t)),g.push(new i(E.p.x+v,E.p.y+v,v,t)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+b.d)),b.p}},{"./intersection_tests":122,"point-geometry":197,tinyqueue:202}],120:[function(t,e,r){"use strict";function n(t,e){this.stacks=t.readFields(i,[],e)}function i(t,e,r){if(1===t){var n=r.readMessage(o,{glyphs:{}});e.push(n)}}function o(t,e,r){if(1===t)e.name=r.readString();else if(2===t)e.range=r.readString();else if(3===t){var n=r.readMessage(a,{});e.glyphs[n.id]=n}}function a(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}e.exports=n},{}],121:[function(t,e,r){"use strict";function n(t,e,r){return t*(1-r)+e*r}e.exports=n,n.number=n,n.vec2=function(t,e,r){return[n(t[0],e[0],r),n(t[1],e[1],r)]},n.color=function(t,e,r){return[n(t[0],e[0],r),n(t[1],e[1],r),n(t[2],e[2],r),n(t[3],e[3],r)]},n.array=function(t,e,r){return t.map(function(t,i){return n(t,e[i],r)})}},{}],122:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r=3)for(var u=0;u1){if(u(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function p(t,e){for(var r,n,i,o=!1,a=0;ae.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(o=!o)}return o}function f(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=a.y>e.y&&e.x<(a.x-o.x)*(e.y-o.y)/(a.y-o.y)+o.x&&(r=!r)}return r}var d=t("./util").isCounterClockwise;e.exports={multiPolygonIntersectsBufferedMultiPoint:i,multiPolygonIntersectsMultiPolygon:o,multiPolygonIntersectsBufferedMultiLine:a,polygonIntersectsPolygon:n,distToSegmentSquared:h}},{"./util":129}],123:[function(t,e,r){"use strict";var n={"Latin-1 Supplement":function(t){return t>=128&&t<=255},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};e.exports=n},{}],124:[function(t,e,r){"use strict";var n=function(t,e){this.max=t,this.onRemove=e,this.reset()};n.prototype.reset=function(){var t=this;for(var e in this.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},n.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},n.prototype.has=function(t){return t in this.data},n.prototype.keys=function(){return this.order},n.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},n.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},n.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},e.exports=n},{}],125:[function(t,e,r){"use strict";function n(t,e){var r=a(u.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,!u.REQUIRE_ACCESS_TOKEN)return s(t);if(e=e||u.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+c);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+c);return t.params.push("access_token="+e),s(t)}function i(t){return 0===t.indexOf("mapbox:")}function o(t){for(var e=0;e=2||512===r?"@2x":"",c=l.supportsWebp?".webp":"$1";return n.path=n.path.replace(h,""+u+c),o(n.params),s(n)};var p=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/},{"./browser":110,"./config":114}],126:[function(t,e,r){"use strict";var n=t("./is_char_in_unicode_block");e.exports.allowsIdeographicBreaking=function(t){for(var e=0,n=t;e=65097&&t<=65103)||n["CJK Compatibility Ideographs"](t)||n["CJK Compatibility"](t)||n["CJK Radicals Supplement"](t)||n["CJK Strokes"](t)||!(!n["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||n["CJK Unified Ideographs Extension A"](t)||n["CJK Unified Ideographs"](t)||n["Enclosed CJK Letters and Months"](t)||n["Hangul Compatibility Jamo"](t)||n["Hangul Jamo Extended-A"](t)||n["Hangul Jamo Extended-B"](t)||n["Hangul Jamo"](t)||n["Hangul Syllables"](t)||n.Hiragana(t)||n["Ideographic Description Characters"](t)||n.Kanbun(t)||n["Kangxi Radicals"](t)||n["Katakana Phonetic Extensions"](t)||n.Katakana(t)&&12540!==t||!(!n["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!n["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||n["Unified Canadian Aboriginal Syllabics"](t)||n["Unified Canadian Aboriginal Syllabics Extended"](t)||n["Vertical Forms"](t)||n["Yijing Hexagram Symbols"](t)||n["Yi Syllables"](t)||n["Yi Radicals"](t)))},r.charHasNeutralVerticalOrientation=function(t){return!!(n["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||n["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||n["Letterlike Symbols"](t)||n["Number Forms"](t)||n["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||n["Control Pictures"](t)&&9251!==t||n["Optical Character Recognition"](t)||n["Enclosed Alphanumerics"](t)||n["Geometric Shapes"](t)||n["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||n["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||n["CJK Symbols and Punctuation"](t)||n.Katakana(t)||n["Private Use Area"](t)||n["CJK Compatibility Forms"](t)||n["Small Form Variants"](t)||n["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)},r.charHasRotatedVerticalOrientation=function(t){return!(r.charHasUprightVerticalOrientation(t)||r.charHasNeutralVerticalOrientation(t))}},{"./is_char_in_unicode_block":123}],127:[function(t,e,r){"use strict";function n(t){var e=JSON.stringify(t);if(y[e])return y[e];var r=void 0===t.alignment?1:t.alignment,n=0,a=0,u=["Uint8"],h=t.members.map(function(t){u.indexOf(t.type)<0&&u.push(t.type);var e=o(t.type),s=n=i(n,Math.max(r,e)),l=t.components||1;return a=Math.max(a,e),n+=e*l,{name:t.name,type:t.type,components:l,offset:s}}),f=i(n,Math.max(a,r)),d=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(p);d.prototype.alignment=r,d.prototype.size=f;for(var v=0,g=h;vthis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*d),f),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},m.prototype._refreshViews=function(){for(var t=this,e=0,r=this._usedTypes;e=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)},r.bezier=function(t,e,r,i){var o=new n(t,e,r,i);return function(t){return o.solve(t)}},r.ease=r.bezier(.25,.1,.25,1),r.clamp=function(t,e,r){return Math.min(r,Math.max(e,t))},r.wrap=function(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i},r.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),o=null;t.forEach(function(t,a){e(t,function(t,e){t&&(o=t),i[a]=e,0===--n&&r(o,i)})})},r.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},r.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},r.extend=function(t,e,r,n){for(var i=arguments,o=1;o=0)return!0;return!1};var a={};r.warnOnce=function(t){a[t]||("undefined"!=typeof console&&console.warn(t),a[t]=!0)},r.isCounterClockwise=function(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)},r.calculateSignedArea=function(t){for(var e,r,n=0,i=0,o=t.length,a=o-1;i0||Math.abs(e.y-n.y)>0)&&Math.abs(r.calculateSignedArea(t))>.01},r.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(r)*Math.sin(n),e*Math.sin(r)*Math.sin(n),e*Math.cos(n)]},r.parseCacheControl=function(t){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,r={};if(t.replace(e,function(t,e,n,i){var o=n||i;return r[e]=!o||o.toLowerCase(),""}),r["max-age"]){var n=parseInt(r["max-age"],10);isNaN(n)?delete r["max-age"]:r["max-age"]=n}return r}},{"../geo/coordinate":18,"@mapbox/unitbezier":134,"point-geometry":197}],130:[function(t,e,r){"use strict";var n=function(t,e,r,n){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,null!=t.id&&(this.id=t.id)},i={geometry:{}};i.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},i.geometry.set=function(t){this._geometry=t},n.prototype.toJSON=function(){var t=this,e={geometry:this.geometry};for(var r in this)"_geometry"!==r&&"_vectorTileFeature"!==r&&(e[r]=t[r]);return e},Object.defineProperties(n.prototype,i),e.exports=n},{}],131:[function(t,e,r){"use strict";var n=t("./script_detection");e.exports=function(t){for(var r="",i=0;i":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":126}],132:[function(t,e,r){"use strict";var n=t("./web_worker"),i=function(){this.active={}};i.prototype.acquire=function(e){var r=this;if(!this.workers){var i=t("../mapbox-gl").workerCount;for(this.workers=[];this.workers.lengthn)return n;for(;ro?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],135:[function(t,e,r){function n(t){return t=Math.round(t),t<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function o(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return i("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}function u(t){var e=t.replace(/ /g,"").toLowerCase();if(e in l)return l[e].slice();if("#"===e[0]){if(4===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null}if(7===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null}return null}var i=e.indexOf("("),u=e.indexOf(")");if(i!==-1&&u+1===e.length){var c=e.substr(0,i),h=e.substr(i+1,u-(i+1)).split(","),p=1;switch(c){case"rgba":if(4!==h.length)return null;p=a(h.pop());case"rgb":return 3!==h.length?null:[o(h[0]),o(h[1]),o(h[2]),p];case"hsla":if(4!==h.length)return null;p=a(h.pop());case"hsl":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),m=a(h[2]),y=m<=.5?m*(d+1):m+d-m*d,v=2*m-y;return[n(255*s(v,y,f+1/3)),n(255*s(v,y,f)),n(255*s(v,y,f-1/3)),p];default:return null}}return null}var l={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{r.parseCSSColor=u}catch(t){}},{}],136:[function(t,e,r){"use strict";function n(t,e,r){r=r||2;var n=e&&e.length,o=n?e[0]*r:t.length,s=i(t,0,o,r,!0),u=[];if(!s)return u;var l,c,p,f,d,m,y;if(n&&(s=h(t,e,s,r)),t.length>80*r){l=p=t[0],c=f=t[1];for(var v=r;vp&&(p=d),m>f&&(f=m);y=Math.max(p-l,f-c)}return a(s,u,r,l,c,y),u}function i(t,e,r,n,i){var o,a;if(i===C(t,e,r,n)>0)for(o=e;o=e;o-=n)a=M(o,t[o],t[o+1],a);return a&&w(a,a.next)&&(P(a),a=a.next),a}function o(t,e){if(!t)return t;e||(e=t);var r,n=t;do if(r=!1,n.steiner||!w(n,n.next)&&0!==b(n.prev,n,n.next))n=n.next;else{if(P(n),n=e=n.prev,n===n.next)return null;r=!0}while(r||n!==e);return e}function a(t,e,r,n,i,h,p){if(t){!p&&h&&m(t,n,i,h);for(var f,d,y=t;t.prev!==t.next;)if(f=t.prev,d=t.next,h?u(t,n,i,h):s(t))e.push(f.i/r),e.push(t.i/r),e.push(d.i/r),P(t),t=d.next,y=d.next;else if(t=d,t===y){p?1===p?(t=l(t,e,r),a(t,e,r,n,i,h,2)):2===p&&c(t,e,r,n,i,h):a(o(t),e,r,n,i,h,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(b(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(_(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&b(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function u(t,e,r,n){var i=t.prev,o=t,a=t.next;if(b(i,o,a)>=0)return!1;for(var s=i.xo.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,c=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,h=v(s,u,e,r,n),p=v(l,c,e,r,n),f=t.nextZ;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function l(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!w(i,o)&&E(i,n,n.next,o)&&S(i,o)&&S(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),P(n),P(n.next),n=t=o),n=n.next}while(n!==t);return n}function c(t,e,r,n,i,s){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&x(u,l)){var c=A(u,l);return u=o(u,u.next),c=o(c,c.next),a(u,e,r,n,i,s),void a(c,e,r,n,i,s)}l=l.next}u=u.next}while(u!==t)}function h(t,e,r,n){var a,s,u,l,c,h=[];for(a=0,s=e.length;a=n.next.y){var s=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>a){if(a=s,s===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&_(or.x)&&S(n,t)&&(r=n,p=u)),n=n.next;return r}function m(t,e,r,n){var i=t;do null===i.z&&(i.z=v(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,y(i)}function y(t){var e,r,n,i,o,a,s,u,l=1;do{for(r=t,t=null,o=null,a=0;r;){for(a++,n=r,s=0,e=0;e0||u>0&&n;)0===s?(i=n,n=n.nextZ,u--):0!==u&&n?r.z<=n.z?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,l*=2}while(a>1);return t}function v(t,e,r,n,i){return t=32767*(t-r)/i,e=32767*(e-n)/i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function g(t){var e=t,r=t;do e.x=0&&(t-a)*(n-s)-(r-a)*(e-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function x(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!T(t,e)&&S(t,e)&&S(e,t)&&z(t,e)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function w(t,e){return t.x===e.x&&t.y===e.y}function E(t,e,r,n){return!!(w(t,e)&&w(r,n)||w(t,n)&&w(r,e))||b(t,e,r)>0!=b(t,e,n)>0&&b(r,n,t)>0!=b(r,n,e)>0}function T(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&E(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function z(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function A(t,e){var r=new L(t.i,t.x,t.y),n=new L(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function M(t,e,r,n){var i=new L(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function P(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function L(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function C(t,e,r,n){for(var i=0,o=e,a=r-n;o0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],137:[function(t,e,r){function n(t){var e,r,i,l,c,h;switch(typeof t){case"object":if(null===t)return null;if(o(t)){for(i="[",r=t.length-1,e=0;e-1&&(i+=n(t[e])),i+"]"}for(l=a(t).sort(),r=l.length,i="{",c=l[e=0],h=r>0&&void 0!==t[c];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};e.exports=function(t){if(void 0!==t)return""+n(t)},e.exports.stringSearch=s,e.exports.stringReplace=u},{}],138:[function(t,e,r){"use strict";function n(t){return new Function("f","var p = (f && f.properties || {}); return "+i(t))}function i(t){if(!t)return"true";var e=t[0];if(t.length<=1)return"any"===e?"false":"true";var r="=="===e?a(t[1],t[2],"===",!1):"!="===e?a(t[1],t[2],"!==",!1):"<"===e||">"===e||"<="===e||">="===e?a(t[1],t[2],e,!0):"any"===e?s(t.slice(1),"||"):"all"===e?s(t.slice(1),"&&"):"none"===e?c(s(t.slice(1),"||")):"in"===e?u(t[1],t.slice(2)):"!in"===e?c(u(t[1],t.slice(2))):"has"===e?l(t[1]):"!has"===e?c(l([t[1]])):"true";return"("+r+")"}function o(t){return"$type"===t?"f.type":"$id"===t?"f.id":"p["+JSON.stringify(t)+"]"}function a(t,e,r,n){var i=o(t),a="$type"===t?p.indexOf(e):JSON.stringify(e);return(n?"typeof "+i+"=== typeof "+a+"&&":"")+i+r+a}function s(t,e){return t.map(i).join(e)}function u(t,e){"$type"===t&&(e=e.map(function(t){return p.indexOf(t)}));var r=JSON.stringify(e.sort(h)),n=o(t);return e.length<=200?r+".indexOf("+n+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+n+", "+r+",0,"+(e.length-1)+")"}function l(t){return JSON.stringify(t)+" in p"}function c(t){return"!("+t+")"}function h(t,e){return te?1:0}e.exports=n;var p=["Unknown","Point","LineString","Polygon"]},{}],139:[function(t,e,r){function n(t){if("Polygon"===t.type)return i(t.coordinates);if("MultiPolygon"===t.type){for(var e=0,r=0;r0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(var r,n,i=0;i=0}var l=t("geojson-area");e.exports=n},{"geojson-area":139}],141:[function(t,e,r){"use strict";function n(t,e,r,n,a,u,l,c){if(r/=e,n/=e,l>=r&&c<=n)return t;if(l>n||c=r&&d<=n)h.push(m);else if(!(f>n||d=e&&s<=r&&i.push(a)}return i}function o(t,e,r,n,i,o){for(var s=[],u=0;ur?(x.push(i(l,d,e),i(l,d,r)),o||(x=a(s,x,y,v,g))):f>=e&&x.push(i(l,d,e)):p>r?fr&&(x.push(i(l,d,r)),o||(x=a(s,x,y,v,g))));l=m[_-1],p=l[n],p>=e&&p<=r&&x.push(l),h=x[x.length-1],o&&h&&(x[0][0]!==h[0]||x[0][1]!==h[1])&&x.push(x[0]),a(s,x,y,v,g)}return s}function a(t,e,r,n,i){return e.length&&(e.area=r,e.dist=n,void 0!==i&&(e.outer=i),t.push(e)),[]}e.exports=n;var s=t("./feature")},{"./feature":143}],142:[function(t,e,r){"use strict";function n(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n1?1:n,[r,n,0]}function s(t){for(var e,r,n=0,i=0,o=0;o1)return!1;var o=i.geometry[0].length;if(5!==o)return!1;for(var a=0;a1&&console.time("creation"),_=this.tiles[g]=d(t,v,r,n,x,e===f.maxZoom),this.tileCoords.push({z:e,x:r,y:n}),m)){m>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,_.numFeatures,_.numPoints,_.numSimplified),console.timeEnd("creation"));var b="z"+e;this.stats[b]=(this.stats[b]||0)+1,this.total++}if(_.source=t,i){if(e===f.maxZoom||e===i)continue;var w=1<1&&console.time("clipping");var E,T,S,z,A,M,P=.5*f.buffer/f.extent,L=.5-P,C=.5+P,k=1+P;E=T=S=z=null,A=p(t,v,r-P,r+C,0,a,_.min[0],_.max[0]),M=p(t,v,r+L,r+k,0,a,_.min[0],_.max[0]),A&&(E=p(A,v,n-P,n+C,1,s,_.min[1],_.max[1]),T=p(A,v,n+L,n+k,1,s,_.min[1],_.max[1])),M&&(S=p(M,v,n-P,n+C,1,s,_.min[1],_.max[1]),z=p(M,v,n+L,n+k,1,s,_.min[1],_.max[1])),m>1&&console.timeEnd("clipping"),t.length&&(h.push(E||[],e+1,2*r,2*n),h.push(T||[],e+1,2*r,2*n+1),h.push(S||[],e+1,2*r+1,2*n),h.push(z||[],e+1,2*r+1,2*n+1))}else i&&(y=e)}return y},i.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var c,p=t,f=e,d=r;!c&&p>0;)p--,f=Math.floor(f/2),d=Math.floor(d/2),c=this.tiles[o(p,f,d)];if(!c||!c.source)return null;if(a>1&&console.log("found parent tile z%d-%d-%d",p,f,d),l(c,i,n.buffer))return h.tile(c,i);a>1&&console.time("drilling down");var m=this.splitTile(c.source,p,f,d,t,e,r); -if(a>1&&console.timeEnd("drilling down"),null!==m){var y=1<n&&(a=r,n=o);n>s?(t[a][2]=n,h.push(l),h.push(a),l=a):(c=h.pop(),l=h.pop())}}function i(t,e,r){var n=e[0],i=e[1],o=r[0],a=r[1],s=t[0],u=t[1],l=o-n,c=a-i;if(0!==l||0!==c){var h=((s-n)*l+(u-i)*c)/(l*l+c*c);h>1?(n=o,i=a):h>0&&(n+=l*h,i+=c*h)}return l=s-n,c=u-i,l*l+c*c}e.exports=n},{}],146:[function(t,e,r){"use strict";function n(t,e,r,n,o,a){for(var s={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:n,z2:e,transformed:!1,min:[2,1],max:[-1,0]},u=0;us.max[0]&&(s.max[0]=c[0]),c[1]>s.max[1]&&(s.max[1]=c[1])}return s}function i(t,e,r,n){var i,a,s,u,l=e.geometry,c=e.type,h=[],p=r*r;if(1===c)for(i=0;ip)&&(f.push(u),t.numSimplified++),t.numPoints++;3===c&&o(f,s.outer),h.push(f)}else t.numPoints+=s.length;if(h.length){var d={geometry:h,type:c,tags:e.tags||null};null!==e.id&&(d.id=e.id),t.features.push(d)}}function o(t,e){var r=a(t);r<0===e&&t.reverse()}function a(t){for(var e,r,n=0,i=0,o=t.length,a=o-1;i=l[p+0]&&n>=l[p+1]?(a[h]=!0,o.push(u[h])):a[h]=!1}}},n.prototype._forEachCell=function(t,e,r,n,i,o,a){for(var s=this._convertToCellCoord(t),u=this._convertToCellCoord(e),l=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=s;h<=l;h++)for(var p=u;p<=c;p++){var f=this.d*p+h;if(i.call(this,t,e,r,n,f,o,a))return}},n.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},n.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=i+this.cells.length+1+1,r=0,n=0;n>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,n),o-=l}return(f?-1:1)*a*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var a,s,u,l=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},{}],151:[function(t,e,r){"use strict";function n(t,e,r,n,o){return new i(t,e,r,n,o)}function i(t,e,r,n,i){e=e||o,r=r||a,i=i||Array,this.nodeSize=n||64,this.points=t,this.ids=new i(t.length),this.coords=new i(2*t.length);for(var u=0;u=r&&s<=i&&u>=n&&u<=o&&c.push(t[d]);else{var m=Math.floor((f+p)/2);s=e[2*m],u=e[2*m+1],s>=r&&s<=i&&u>=n&&u<=o&&c.push(t[m]);var y=(h+1)%2;(0===h?r<=s:n<=u)&&(l.push(f),l.push(m-1),l.push(y)),(0===h?i>=s:o>=u)&&(l.push(m+1),l.push(p),l.push(y))}}return c}e.exports=n},{}],153:[function(t,e,r){"use strict";function n(t,e,r,o,a,s){if(!(a-o<=r)){var u=Math.floor((o+a)/2);i(t,e,u,o,a,s%2),n(t,e,r,o,u-1,s+1),n(t,e,r,u+1,a,s+1)}}function i(t,e,r,n,a,s){for(;a>n;){if(a-n>600){var u=a-n+1,l=r-n+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(n,Math.floor(r-l*h/u+p)),d=Math.min(a,Math.floor(r+(u-l)*h/u+p));i(t,e,r,f,d,s)}var m=e[2*r+s],y=n,v=a;for(o(t,e,n,r),e[2*a+s]>m&&o(t,e,n,a);ym;)v--}e[2*n+s]===m?o(t,e,n,v):(v++,o(t,e,v,a)),v<=r&&(n=v+1),r<=v&&(a=v-1)}}function o(t,e,r,n){a(t,r,n),a(e,2*r,2*n),a(e,2*r+1,2*n+1)}function a(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}e.exports=n},{}],154:[function(t,e,r){"use strict";function n(t,e,r,n,o,a){for(var s=[0,t.length-1,0],u=[],l=o*o;s.length;){var c=s.pop(),h=s.pop(),p=s.pop();if(h-p<=a)for(var f=p;f<=h;f++)i(e[2*f],e[2*f+1],r,n)<=l&&u.push(t[f]);else{var d=Math.floor((p+h)/2),m=e[2*d],y=e[2*d+1];i(m,y,r,n)<=l&&u.push(t[d]);var v=(c+1)%2;(0===c?r-o<=m:n-o<=y)&&(s.push(p),s.push(d-1),s.push(v)),(0===c?r+o>=m:n+o>=y)&&(s.push(d+1),s.push(h),s.push(v))}}return u}function i(t,e,r,n){var i=t-r,o=e-n;return i*i+o*o}e.exports=n},{}],155:[function(t,e,r){function n(t){return!!t&&"object"==typeof t}function i(t,e){for(var r=-1,n=t.length;++rl))return!1;for(;++u-1&&t%1==0&&t<=c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){return!!t&&"object"==typeof t}var c=9007199254740991,h="[object Arguments]",p="[object Function]",f="[object GeneratorFunction]",d=Object.prototype,m=d.hasOwnProperty,y=d.toString,v=d.propertyIsEnumerable;e.exports=n},{}],159:[function(t,e,r){function n(t){return!!t&&"object"==typeof t}function i(t,e){var r=null==t?void 0:t[e];return u(r)?r:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=g}function a(t){return s(t)&&m.call(t)==c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return null!=t&&(a(t)?y.test(f.call(t)):n(t)&&h.test(t))}var l="[object Array]",c="[object Function]",h=/^\[object .+?Constructor\]$/,p=Object.prototype,f=Function.prototype.toString,d=p.hasOwnProperty,m=p.toString,y=RegExp("^"+f.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=i(Array,"isArray"),g=9007199254740991,_=v||function(t){return n(t)&&o(t.length)&&m.call(t)==l};e.exports=_},{}],160:[function(t,e,r){function n(t,e,r,n){r="function"==typeof r?o(r,n,3):void 0;var a=r?r(t,e):void 0;return void 0===a?i(t,e,r):!!a}var i=t("lodash._baseisequal"),o=t("lodash._bindcallback");e.exports=n},{"lodash._baseisequal":155,"lodash._bindcallback":156}],161:[function(t,e,r){function n(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function i(t){return!!t&&"object"==typeof t}function o(t){return i(t)&&n(t.length)&&!!C[I.call(t)]}var a=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",h="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",v="[object Set]",g="[object String]",_="[object WeakMap]",x="[object ArrayBuffer]",b="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",S="[object Int16Array]",z="[object Int32Array]",A="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",L="[object Uint32Array]",C={};C[w]=C[E]=C[T]=C[S]=C[z]=C[A]=C[M]=C[P]=C[L]=!0,C[s]=C[u]=C[x]=C[l]=C[b]=C[c]=C[h]=C[p]=C[f]=C[d]=C[m]=C[y]=C[v]=C[g]=C[_]=!1;var k=Object.prototype,I=k.toString;e.exports=o},{}],162:[function(t,e,r){function n(t){return function(e){return null==e?void 0:e[t]}}function i(t){return null!=t&&a(g(t))}function o(t,e){return t="number"==typeof t||f.test(t)?+t:-1,e=null==e?v:e,t>-1&&t%1==0&&t-1&&t%1==0&&t<=v}function s(t){for(var e=l(t),r=e.length,n=r&&t.length,i=!!n&&a(n)&&(p(t)||h(t)),s=-1,u=[];++s0;++nv?Math.pow(t,1/3):t/y+d}function i(t){return t>m?t*t*t:y*(t-d)}function o(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function a(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function s(t){var e=a(t[0]),r=a(t[1]),i=a(t[2]),o=n((.4124564*e+.3575761*r+.1804375*i)/h),s=n((.2126729*e+.7151522*r+.072175*i)/p),u=n((.0193339*e+.119192*r+.9503041*i)/f);return[116*s-16,500*(o-s),200*(s-u),t[3]]}function u(t){var e=(t[0]+16)/116,r=isNaN(t[1])?e:e+t[1]/500,n=isNaN(t[2])?e:e-t[2]/200;return e=p*i(e),r=h*i(r),n=f*i(n),[o(3.2404542*r-1.5371385*e-.4985314*n),o(-.969266*r+1.8760108*e+.041556*n),o(.0556434*r-.2040259*e+1.0572252*n),t[3]]}function l(t){var e=s(t),r=e[0],n=e[1],i=e[2],o=Math.atan2(i,n)*_;return[o<0?o+360:o,Math.sqrt(n*n+i*i),r,t[3]]}function c(t){var e=t[0]*g,r=t[1],n=t[2];return u([n,Math.cos(e)*r,Math.sin(e)*r,t[3]])}var h=.95047,p=1,f=1.08883,d=4/29,m=6/29,y=3*m*m,v=m*m*m,g=Math.PI/180,_=180/Math.PI;e.exports={lab:{forward:s,reverse:u},hcl:{forward:l,reverse:c}}},{}],164:[function(t,e,r){"use strict";function n(t){return t}function i(t,e){var r;if(p(t)){var l,c=t.stops&&"object"==typeof t.stops[0][0],h=c||void 0!==t.property,d=c||!h,m=t.stops&&typeof(c?t.stops[0][0].property:t.stops[0][0]),y=t.type||e||("string"===m?"categorical":"exponential");if("exponential"===y)l=s;else if("interval"===y)l=a;else if("categorical"===y)l=o;else{if("identity"!==y)throw new Error('Unknown function type "'+y+'"');l=u}var v;if(t.colorSpace&&"rgb"!==t.colorSpace){if(!f[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);var g=f[t.colorSpace];t=JSON.parse(JSON.stringify(t));for(var _=0;_=t.stops.length)&&!(e<=t.stops[n][0]);)n++;return 0===n?t.stops[n][1]:n===t.stops.length?t.stops[n-1][1]:l(e,r,t.stops[n-1][0],t.stops[n][0],t.stops[n-1][1],t.stops[n][1])}function u(t,e){return e}function l(t,e,r,n,i,o){return"function"==typeof i?function(){var a=i.apply(void 0,arguments),s=o.apply(void 0,arguments);return l(t,e,r,n,a,s)}:i.length?h(t,e,r,n,i,o):c(t,e,r,n,i,o)}function c(t,e,r,n,i,o){var a,s=n-r,u=t-r;return a=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),i*(1-a)+o*a}function h(t,e,r,n,i,o){for(var a=[],s=0;s7)return[new n(c,u,"constants have been deprecated as of v8")];if(!(u in p.constants))return[new n(c,u,'constant "%s" not found',u)];e=o({},e,{value:p.constants[u]})}return l.function&&"object"===i(u)?r(e):l.type&&s[l.type]?s[l.type](e):a(o({},e,{valueSpec:l.type?h[l.type]:l}))}},{"../error/validation_error":167,"../util/extend":169,"../util/get_type":170,"./validate_array":174,"./validate_boolean":175,"./validate_color":176,"./validate_constants":177,"./validate_enum":178,"./validate_filter":179,"./validate_function":180,"./validate_layer":182,"./validate_light":184,"./validate_number":185,"./validate_object":186,"./validate_source":188,"./validate_string":189}],174:[function(t,e,r){"use strict";var n=t("../util/get_type"),i=t("./validate"),o=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.valueSpec,a=t.style,s=t.styleSpec,u=t.key,l=t.arrayElementValidator||i;if("array"!==n(e))return[new o(u,e,"array expected, %s found",n(e))];if(r.length&&e.length!==r.length)return[new o(u,e,"array length %d expected, length %d found",r.length,e.length)];if(r["min-length"]&&e.length7)return r?[new n(e,r,"constants have been deprecated as of v8")]:[];var a=i(r);if("object"!==a)return[new n(e,r,"object expected, %s found",a)];var s=[];for(var u in r)"@"!==u[0]&&s.push(new n(e+"."+u,r[u],'constants must start with "@"'));return s}},{"../error/validation_error":167,"../util/get_type":170}],178:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint");e.exports=function(t){var e=t.key,r=t.value,o=t.valueSpec,a=[];return Array.isArray(o.values)?o.values.indexOf(i(r))===-1&&a.push(new n(e,r,"expected one of [%s], %s found",o.values.join(", "),r)):Object.keys(o.values).indexOf(i(r))===-1&&a.push(new n(e,r,"expected one of [%s], %s found",Object.keys(o.values).join(", "),r)),a}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172}],179:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("./validate_enum"),o=t("../util/get_type"),a=t("../util/unbundle_jsonlint");e.exports=function t(e){var r,s=e.value,u=e.key,l=e.styleSpec,c=[];if("array"!==o(s))return[new n(u,s,"array expected, %s found",o(s))];if(s.length<1)return[new n(u,s,"filter array must have at least 1 element")];switch(c=c.concat(i({key:u+"[0]",value:s[0],valueSpec:l.filter_operator,style:e.style,styleSpec:e.styleSpec})),a(s[0])){case"<":case"<=":case">":case">=":s.length>=2&&"$type"==s[1]&&c.push(new n(u,s,'"$type" cannot be use with operator "%s"',s[0]));case"==":case"!=":3!=s.length&&c.push(new n(u,s,'filter array for operator "%s" must have 3 elements',s[0]));case"in":case"!in":s.length>=2&&(r=o(s[1]),"string"!==r?c.push(new n(u+"[1]",s[1],"string expected, %s found",r)):"@"===s[1][0]&&c.push(new n(u+"[1]",s[1],"filter key cannot be a constant")));for(var h=2;hl(r[0].zoom))return[new n(s,r[0].zoom,"stop zoom values must appear in ascending order")];l(r[0].zoom)!==f&&(f=l(r[0].zoom),p=void 0),e=e.concat(a({key:s+"[0]",value:r[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:u,value:c}}))}else e=e.concat(c({key:s+"[0]",value:r[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec}));return e=e.concat(o({key:s+"[1]",value:r[1],valueSpec:d,style:t.style,styleSpec:t.styleSpec})),"number"===i(r[0])&&"piecewise-constant"===d.function&&r[0]%1!==0&&e.push(new n(s+"[0]",r[0],"zoom level for piecewise-constant functions must be an integer")),e}function c(t){var e=i(t.value),r=l(t.value);if(h){if(e!==h)return[new n(t.key,t.value,"%s stop domain type must match previous stop domain type %s",e,h)]}else h=e,m||"string"!==e||(m="categorical");return"number"!==e&&"string"!==e?[new n(t.key,t.value,"property value must be a number or string")]:"number"!==e&&"categorical"!==m?[new n(t.key,t.value,"number expected, %s found",e)]:"categorical"!==m||"number"!==e||isFinite(r)&&Math.floor(r)===r?"number"===e&&void 0!==p&&r=8&&(g&&!t.valueSpec["property-function"]?x.push(new n(t.key,t.value,"property functions not supported")):v&&!t.valueSpec["zoom-function"]&&x.push(new n(t.key,t.value,"zoom functions not supported"))),"categorical"!==m&&!_||void 0!==t.value.property||x.push(new n(t.key,t.value,'"property" property is required')),x}},{"../error/validation_error":167,"../util/get_type":170,"../util/unbundle_jsonlint":172,"./validate":173,"./validate_array":174,"./validate_number":185,"./validate_object":186}],181:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("./validate_string");e.exports=function(t){var e=t.value,r=t.key,o=i(t);return o.length?o:(e.indexOf("{fontstack}")===-1&&o.push(new n(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&o.push(new n(r,e,'"glyphs" url must include a "{range}" token')),o)}},{"../error/validation_error":167,"./validate_string":189}],182:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_filter"),s=t("./validate_paint_property"),u=t("./validate_layout_property"),l=t("../util/extend");e.exports=function(t){var e=[],r=t.value,c=t.key,h=t.style,p=t.styleSpec;r.type||r.ref||e.push(new n(c,r,'either "type" or "ref" is required'));var f=i(r.type),d=i(r.ref);if(r.id)for(var m=0;mo.maximum?[new i(e,r,"%s is greater than the maximum value %s",r,o.maximum)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],186:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/get_type"),o=t("./validate");e.exports=function(t){var e=t.key,r=t.value,a=t.valueSpec||{},s=t.objectElementValidators||{},u=t.style,l=t.styleSpec,c=[],h=i(r);if("object"!==h)return[new n(e,r,"object expected, %s found",h)];for(var p in r){var f,d=p.split(".")[0],m=a[d]||a["*"];if(s[d])f=s[d];else if(a[d])f=o;else if(s["*"])f=s["*"];else{if(!a["*"]){c.push(new n(e,r[p],'unknown property "%s"',p));continue}f=o}c=c.concat(f({key:(e?e+".":e)+p,value:r[p],valueSpec:m,style:u,styleSpec:l,object:r,objectKey:p}))}for(d in a)a[d].required&&void 0===a[d].default&&void 0===r[d]&&c.push(new n(e,r,'missing required property "%s"',d));return c}},{"../error/validation_error":167,"../util/get_type":170,"./validate":173}],187:[function(t,e,r){"use strict";var n=t("./validate"),i=t("../error/validation_error");e.exports=function(t){var e=t.key,r=t.style,o=t.styleSpec,a=t.value,s=t.objectKey,u=o["paint_"+t.layerType];if(!u)return[];var l=s.match(/^(.*)-transition$/);return l&&u[l[1]]&&u[l[1]].transition?n({key:e,value:a,valueSpec:o.transition,style:r,styleSpec:o}):t.valueSpec||u[s]?n({key:t.key,value:a,valueSpec:t.valueSpec||u[s],style:r,styleSpec:o}):[new i(e,a,'unknown property "%s"',s)]}},{"../error/validation_error":167,"./validate":173}],188:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_enum");e.exports=function(t){var e=t.value,r=t.key,s=t.styleSpec,u=t.style;if(!e.type)return[new n(r,e,'"type" is required')];var l=i(e.type);switch(l){case"vector":case"raster":var c=[];if(c=c.concat(o({key:r,value:e,valueSpec:s.source_tile,style:t.style,styleSpec:s})),"url"in e)for(var h in e)["type","url","tileSize"].indexOf(h)<0&&c.push(new n(r+"."+h,e[h],'a source with a "url" property may not include a "%s" property',h));return c;case"geojson":return o({key:r,value:e,valueSpec:s.source_geojson,style:u,styleSpec:s});case"video":return o({key:r,value:e,valueSpec:s.source_video,style:u,styleSpec:s});case"image":return o({key:r,value:e,valueSpec:s.source_image,style:u,styleSpec:s});case"canvas":return o({key:r,value:e,valueSpec:s.source_canvas,style:u,styleSpec:s});default:return a({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:u,styleSpec:s})}}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172,"./validate_enum":178,"./validate_object":186}],189:[function(t,e,r){"use strict";var n=t("../util/get_type"),i=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.key,o=n(e);return"string"!==o?[new i(r,e,"string expected, %s found",o)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],190:[function(t,e,r){"use strict";function n(t,e){e=e||u;var r=[];return r=r.concat(s({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:l,"*":function(){return[]}}})),e.$version>7&&t.constants&&(r=r.concat(a({key:"constants",value:t.constants,style:t,styleSpec:e}))),i(r)}function i(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function o(t){return function(){return i(t.apply(this,arguments))}}var a=t("./validate/validate_constants"),s=t("./validate/validate"),u=t("../reference/latest.min"),l=t("./validate/validate_glyphs_url");n.source=o(t("./validate/validate_source")),n.light=o(t("./validate/validate_light")),n.layer=o(t("./validate/validate_layer")),n.filter=o(t("./validate/validate_filter")),n.paintProperty=o(t("./validate/validate_paint_property")),n.layoutProperty=o(t("./validate/validate_layout_property")),e.exports=n},{"../reference/latest.min":191,"./validate/validate":173,"./validate/validate_constants":177,"./validate/validate_filter":179,"./validate/validate_glyphs_url":181,"./validate/validate_layer":182,"./validate/validate_layout_property":183,"./validate/validate_light":184,"./validate/validate_paint_property":187,"./validate/validate_source":188}],191:[function(t,e,r){e.exports=t("./v8.min.json")},{"./v8.min.json":192}],192:[function(t,e,r){e.exports={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_tile","source_geojson","source_video","source_image","source_canvas"],source_tile:{type:{required:!0,type:"enum",values:{vector:{},raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_canvas:{type:{required:!0,type:"enum",values:{canvas:{}}},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}},animate:{type:"boolean",default:"true"},canvas:{type:"string",required:!0}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},"fill-extrusion":{},raster:{},background:{}}},metadata:{type:"*"},ref:{type:"string"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"},"paint.*":{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_fill-extrusion","layout_symbol","layout_raster","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_fill:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_circle:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_line:{"line-cap":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{butt:{},round:{},square:{}},default:"butt"},"line-join":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{bevel:{},round:{},miter:{}},default:"miter"},"line-miter-limit":{type:"number",default:2,function:"interpolated","zoom-function":!0,requires:[{"line-join":"miter"}]},"line-round-limit":{type:"number",default:1.05,function:"interpolated","zoom-function":!0,requires:[{"line-join":"round"}]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_symbol:{"symbol-placement":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{point:{},line:{}},default:"point"},"symbol-spacing":{type:"number",default:250,minimum:1,function:"interpolated","zoom-function":!0,units:"pixels",requires:[{"symbol-placement":"line"}]},"symbol-avoid-edges":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1},"icon-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image","text-field"]},"icon-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"]},"icon-size":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,requires:["icon-image"]},"icon-text-fit":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"]},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",function:"interpolated","zoom-function":!0,requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}]},"icon-image":{type:"string",function:"piecewise-constant","zoom-function":!0,tokens:!0},"icon-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,"property-function":!0,units:"degrees",requires:["icon-image"]},"icon-padding":{type:"number",default:2,minimum:0,function:"interpolated","zoom-function":!0,units:"pixels",requires:["icon-image"]},"icon-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":"line"}]},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,"property-function":!0,requires:["icon-image"]},"text-pitch-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-field":{type:"string",function:"piecewise-constant","zoom-function":!0,default:"",tokens:!0},"text-font":{type:"array",value:"string",function:"piecewise-constant","zoom-function":!0,default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"]},"text-size":{type:"number",default:16,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-line-height":{type:"number",default:1.2,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-letter-spacing":{type:"number",default:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-justify":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{left:{},center:{},right:{}},default:"center",requires:["text-field"]},"text-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field"]},"text-max-angle":{type:"number",default:45,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field",{"symbol-placement":"line"}]},"text-rotate":{type:"number",default:0,period:360,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":"line"}]},"text-transform":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"]},"text-offset":{type:"array",value:"number",units:"ems",function:"interpolated","zoom-function":!0,length:2,default:[0,0],requires:["text-field"]},"text-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field","icon-image"]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"}},function_stop:{type:"array",minimum:0,maximum:22,value:["number","color"],length:2},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},transition:!1},position:{type:"array",default:[1.15,210,30],length:3,value:"number",transition:!0,function:"interpolated","zoom-function":!0,"property-function":!1},color:{type:"color",default:"#ffffff",function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},intensity:{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0},"fill-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"fill-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"}]},"fill-outline-color":{type:"color",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}]},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-translate"]},"fill-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!1,default:1,minimum:0,maximum:1,transition:!0},"fill-extrusion-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-extrusion-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"]},"fill-extrusion-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"fill-extrusion-height":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"]}},paint_line:{"line-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"line-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"line-pattern"}]},"line-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["line-translate"]},"line-width":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-gap-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-offset":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-dasharray":{type:"array",value:"number",function:"piecewise-constant","zoom-function":!0,minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}]},"line-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-blur":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"circle-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["circle-translate"]},"circle-pitch-scale":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map"},"circle-stroke-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-stroke-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"]},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"]}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-hue-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,transition:!0,units:"degrees"},"raster-brightness-min":{type:"number",function:"interpolated","zoom-function":!0,default:0,minimum:0,maximum:1,transition:!0},"raster-brightness-max":{type:"number",function:"interpolated","zoom-function":!0,default:1,minimum:0,maximum:1,transition:!0},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-fade-duration":{type:"number",default:300,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"milliseconds"}},paint_background:{"background-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:[{"!":"background-pattern"}]},"background-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}}}},{}],193:[function(t,e,r){"use strict";function n(t){return!!(i()&&o()&&a()&&s()&&u()&&l()&&c()&&h(t&&t.failIfMajorPerformanceCaveat))}function i(){return"undefined"!=typeof window&&"undefined"!=typeof document}function o(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function a(){return Function.prototype&&Function.prototype.bind}function s(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function u(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function l(){return"Worker"in window}function c(){return"Uint8ClampedArray"in window}function h(t){return void 0===f[t]&&(f[t]=p(t)),f[t]}function p(t){var e=document.createElement("canvas"),r=Object.create(n.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=t,e.probablySupportsContext?e.probablySupportsContext("webgl",r)||e.probablySupportsContext("experimental-webgl",r):e.supportsContext?e.supportsContext("webgl",r)||e.supportsContext("experimental-webgl",r):e.getContext("webgl",r)||e.getContext("experimental-webgl",r)}"undefined"!=typeof e&&e.exports?e.exports=n:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=n);var f={};n.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}},{}],194:[function(t,e,r){(function(t){function e(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!i;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,i="/"===a.charAt(0))}return r=e(n(r.split("/"),function(t){return!!t}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(t){var i=r.isAbsolute(t),o="/"===a(t,-1);return t=e(n(t.split("/"),function(t){return!!t}),!i).join("/"),t||i||(t="."),t&&o&&(t+="/"),(i?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(n(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function n(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var i=n(t.split("/")),o=n(e.split("/")),a=Math.min(i.length,o.length),s=a,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}e.exports=n;var o,a,s,u=t("ieee754");o={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return u.read(this,t,!0,23,4)},readDoubleLE:function(t){return u.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return u.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return u.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(e.pos>=r)throw new Error("Given varint doesn't fit into 10 bytes");var n=255&t;e.buf[e.pos++]=n|(t>=128?128:0),t/=128}}function a(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function s(t,e){for(var r=0;r>3,o=this.pos;t(i,e,this),this.pos===o&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*v;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*v;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,e,r=this.buf;return e=r[this.pos++],t=127&e,e<128?t:(e=r[this.pos++],t|=(127&e)<<7,e<128?t:(e=r[this.pos++],t|=(127&e)<<14,e<128?t:(e=r[this.pos++],t|=(127&e)<<21,e<128?t:i(t,this))))},readVarint64:function(){var t=this.pos,e=this.readVarint();if(e<_)return e;for(var r=this.pos-2;255===this.buf[r];)r--;r127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455?void o(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t);var e=y.byteLength(t);this.writeVarint(e),this.realloc(e),this.buf.write(t,this.pos),this.pos+=e},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&a(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,n.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,s,e)},writePackedSVarint:function(t,e){this.writeMessage(t,u,e)},writePackedBoolean:function(t,e){this.writeMessage(t,h,e)},writePackedFloat:function(t,e){this.writeMessage(t,l,e)},writePackedDouble:function(t,e){this.writeMessage(t,c,e)},writePackedFixed32:function(t,e){this.writeMessage(t,p,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,m,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}}).call(this,"undefined"!=typeof r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":195}],197:[function(t,e,r){"use strict";function n(t,e){this.x=t,this.y=e}e.exports=n,n.prototype={clone:function(){return new n(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t}},{}],198:[function(t,e,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(t){if(h===setTimeout)return setTimeout(t,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(t,0);try{return h(t,0)}catch(e){try{return h.call(null,t,0)}catch(e){return h.call(this,t,0)}}}function a(t){if(p===clearTimeout)return clearTimeout(t);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(e){try{return p.call(null,t)}catch(e){return p.call(this,t)}}}function s(){y&&d&&(y=!1,d.length?m=d.concat(m):v=-1,m.length&&u())}function u(){if(!y){var t=o(s);y=!0;for(var e=m.length;e;){for(d=m,m=[];++v1)for(var r=1;rr;){if(a-r>600){var u=a-r+1,l=e-r+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(r,Math.floor(e-l*h/u+p)),d=Math.min(a,Math.floor(e+(u-l)*h/u+p));n(t,e,f,d,s)}var m=t[e],y=r,v=a;for(i(t,r,e),s(t[a],m)>0&&i(t,r,a);y0;)v--}0===s(t[r],m)?i(t,r,v):(v++,i(t,v,a)),v<=e&&(r=v+1),e<=v&&(a=v-1)}}function i(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function o(t,e){return te?1:0}e.exports=n},{}],200:[function(e,r,n){!function(e,i){"object"==typeof n&&"undefined"!=typeof r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.ShelfPack=i()}(this,function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.stats={},this.count=function(t){this.stats[t]=(0|this.stats[t])+1}}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,n,i,o=[],a=0;a0){for(var s=0,u=0,l=0;ln.h||t>n.free||rc)&&(h=2*Math.max(t,c)),(uu)&&(l=2*Math.max(r,u)),this.resize(h,l),this.packOne(t,r)}return null},t.prototype.clear=function(){this.shelves=[],this.stats={}},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;rthis.free||e>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,{x:r,y:this.y,w:t,h:e,width:t,height:e}},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t})},{}],201:[function(t,e,r){"use strict";function n(t){return new i(t)}function i(t){this.options=f(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function o(t,e,r,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:r}}function a(t,e){var r=t.geometry.coordinates;return o(l(r[0]),c(r[1]),1,e)}function s(t){return{type:"Feature",properties:u(t),geometry:{type:"Point",coordinates:[h(t.x),p(t.y)]}}}function u(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:r}}function l(t){return t/360+.5}function c(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function h(t){return 360*(t-.5)}function p(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function f(t,e){for(var r in e)t[r]=e[r];return t}function d(t){return t.x}function m(t){return t.y}var y=t("kdbush");e.exports=n,i.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var r="prepare "+t.length+" points";e&&console.time(r),this.points=t;var n=t.map(a);e&&console.timeEnd(r);for(var i=this.options.maxZoom;i>=this.options.minZoom;i--){var o=+Date.now();this.trees[i+1]=y(n,d,m,this.options.nodeSize,Float32Array),n=this._cluster(n,i),e&&console.log("z%d: %d clusters in %dms",i,n.length,+Date.now()-o)}return this.trees[this.options.minZoom]=y(n,d,m,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],n=r.range(l(t[0]),c(t[3]),l(t[2]),c(t[1])),i=[],o=0;o=0;r--)this._down(r)}function i(t,e){return te?1:0}function o(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}e.exports=n,n.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(r(e[t],e[n])<0))break;o(e,n,t),t=n}},_down:function(t){for(var e=this.data,r=this.compare,n=this.length;;){var i=2*t+1,a=i+1,s=t;if(i=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(e)?r.showHidden=e:e&&n._extend(r,e),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,t,r.depth)}function o(t,e){var r=i.styles[e];return r?"["+i.colors[r][0]+"m"+t+"["+i.colors[r][1]+"m":t}function a(t,e){return t}function s(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}function u(t,e,r){if(t.customInspect&&e&&z(e.inspect)&&e.inspect!==n.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(r,t);return _(i)||(i=u(t,i,r)),i}var o=l(t,e);if(o)return o;var a=Object.keys(e),m=s(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),S(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(z(e)){var y=e.name?": "+e.name:"";return t.stylize("[Function"+y+"]","special")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(T(e))return t.stylize(Date.prototype.toString.call(e),"date");if(S(e))return c(e)}var v="",g=!1,x=["{","}"];if(d(e)&&(g=!0,x=["[","]"]),z(e)){var b=e.name?": "+e.name:"";v=" [Function"+b+"]"}if(w(e)&&(v=" "+RegExp.prototype.toString.call(e)),T(e)&&(v=" "+Date.prototype.toUTCString.call(e)),S(e)&&(v=" "+c(e)),0===a.length&&(!g||0==e.length))return x[0]+v+x[1];if(r<0)return w(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var E;return E=g?h(t,e,r,m,a):a.map(function(n){return p(t,e,r,m,n,g)}),t.seen.pop(),f(E,v,x)}function l(t,e){if(b(e))return t.stylize("undefined","undefined");if(_(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return g(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,n,i){for(var o=[],a=0,s=e.length;a-1&&(s=o?s.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n"))):s=t.stylize("[Circular]","special")),b(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function f(t,e,r){var n=0,i=t.reduce(function(t,e){return n++,e.indexOf("\n")>=0&&n++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function d(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function y(t){return null===t}function v(t){return null==t}function g(t){return"number"==typeof t}function _(t){return"string"==typeof t}function x(t){return"symbol"==typeof t}function b(t){return void 0===t}function w(t){return E(t)&&"[object RegExp]"===M(t)}function E(t){return"object"==typeof t&&null!==t}function T(t){return E(t)&&"[object Date]"===M(t)}function S(t){return E(t)&&("[object Error]"===M(t)||t instanceof Error)}function z(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function M(t){return Object.prototype.toString.call(t)}function P(t){return t<10?"0"+t.toString(10):t.toString(10)}function L(){var t=new Date,e=[P(t.getHours()),P(t.getMinutes()),P(t.getSeconds())].join(":");return[t.getDate(),D[t.getMonth()],e].join(" ")}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var k=/%[sdj%]/g;n.format=function(t){if(!_(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r>3}if(i--,1===n||2===n)o+=t.readSVarint(),a+=t.readSVarint(),1===n&&(e&&s.push(e),e=[]),e.push(new u(o,a));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&s.push(e),s},n.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,o=0,a=1/0,s=-(1/0),u=1/0,l=-(1/0);t.pos>3}if(n--,1===r||2===r)i+=t.readSVarint(),o+=t.readSVarint(),is&&(s=i),ol&&(l=o);else if(7!==r)throw new Error("unknown command "+r)}return[a,u,s,l]},n.prototype.toGeoJSON=function(t,e,r){function i(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}var a=t("./vectortilefeature.js");e.exports=n,n.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new a(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":208}],210:[function(t,e,r){function n(t){var e=[];for(var r in t.layers)e.push(o(t.layers[r]));var n=new c;return h.tile.write({layers:e},n),n.finish()}function i(t){var e={};for(var r in t)e[r]=new p(t[r].features),e[r].name=r;return n({layers:e})}function o(t){for(var e={name:t.name||"",version:t.version||1,extent:t.extent||4096,keys:[],values:[],features:[]},r={},n={},i=0;i>31}function u(t){for(var e=[],r=0,n=0,i=t.length,o=0;o0&&(i=n.places);var map=r.i(a.a)(t,e,i),s=document.createElement("div"),c=l(map,e,i);s.appendChild(c);var h=r.i(u.a)(map);s.appendChild(h);var p=document.querySelector("fieldset");p.insertBefore(s,document.querySelector(".map"))}).catch(function(t){console.error(t)})}var i=r(3),o=r.n(i),a=r(2),s=r(1),u=r(14);e.a=n;var l=function(map,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=document.createElement("select");n.setAttribute("name","location");var i=document.createElement("option");i.setAttribute("selected","selected"),i.setAttribute("value","no-location"),i.appendChild(document.createTextNode("Don’t send location")),n.appendChild(i);var o=document.createElement("option");if(o.setAttribute("id","option-coords"),o.setAttribute("value","geo:"+t.coords.latitude+","+t.coords.longitude),o.dataset.latitude=t.coords.latitude,o.dataset.longitude=t.coords.longitude,o.appendChild(document.createTextNode("Send co-ordinates")),n.appendChild(o),null!=e){var a=!0,u=!1,l=void 0;try{for(var c,h=e[Symbol.iterator]();!(a=(c=h.next()).done);a=!0){var p=c.value,f=r.i(s.a)(p.location),d=document.createElement("option");d.setAttribute("value",p.slug),d.dataset.latitude=f.latitude,d.dataset.longitude=f.longitude,d.appendChild(document.createTextNode(p.name)),n.appendChild(d)}}catch(t){u=!0,l=t}finally{try{!a&&h.return&&h.return()}finally{if(u)throw l}}}return n.addEventListener("change",function(){if("no-location"!==n.value){var t=n[n.selectedIndex].dataset.latitude,e=n[n.selectedIndex].dataset.longitude;map.flyTo({center:[e,t]})}}),n}},function(t,e,r){"use strict";function n(){var t=document.querySelector("fieldset"),e=document.createElement("div");e.classList.add("map"),t.appendChild(e),navigator.geolocation.getCurrentPosition(function(t){e.dataset.latitude=t.coords.latitude,e.dataset.longitude=t.coords.longitude,e.dataset.accuracy=t.coords.accuracy,r.i(i.a)(e,t)})}var i=r(12);e.a=n},function(t,e,r){"use strict";function n(map){var t=document.createElement("button");return t.setAttribute("type","button"),t.setAttribute("id","create-new-place"),t.appendChild(document.createTextNode("Create New Place?")),t.addEventListener("click",function(){var t=document.createElement("div"),e=document.createElement("label");e.setAttribute("for","place-name"),e.classList.add("place-label"),e.appendChild(document.createTextNode("Name:"));var n=document.createElement("input");n.setAttribute("placeholder","Name"),n.setAttribute("name","place-name"),n.setAttribute("id","place-name"),n.setAttribute("type","text"),t.appendChild(e),t.appendChild(n);var o=document.createElement("div"),a=document.createElement("label");a.setAttribute("for","place-description"),a.classList.add("place-label"),a.appendChild(document.createTextNode("Description:"));var s=document.createElement("input");s.setAttribute("placeholder","Description"),s.setAttribute("name","place-description"),s.setAttribute("id","place-description"),s.setAttribute("type","text"),o.appendChild(a),o.appendChild(s);var u=document.createElement("div"),l=document.createElement("label");l.setAttribute("for","place-latitude"),l.classList.add("place-label"),l.appendChild(document.createTextNode("Latitude:"));var c=document.createElement("input");c.setAttribute("name","place-latitude"),c.setAttribute("id","place-latitude"),c.setAttribute("type","text"),c.value=map.getCenter().lat,u.appendChild(l),u.appendChild(c);var h=document.createElement("div"),p=document.createElement("label");p.setAttribute("for","place-longitude"),p.classList.add("place-label"),p.appendChild(document.createTextNode("Longitude:"));var f=document.createElement("input");f.setAttribute("name","place-longitude"),f.setAttribute("id","place-longitude"),f.setAttribute("type","text"),f.value=map.getCenter().lng,h.appendChild(p),h.appendChild(f);var d=document.createElement("button");d.setAttribute("id","place-submit"),d.setAttribute("name","place-submit"),d.setAttribute("type","button"),d.appendChild(document.createTextNode("Submit New Place")),d.addEventListener("click",function(){r.i(i.a)(map)});var m=document.querySelector("fieldset");m.appendChild(t),m.appendChild(o),m.appendChild(u),m.appendChild(h),m.appendChild(d)}),t}var i=r(15);e.a=n},function(t,e,r){"use strict";function n(map){var t=new FormData;t.append("place-name",document.querySelector("#place-name").value),t.append("place-description",document.querySelector("#place-description").value),t.append("place-latitude",document.querySelector("#place-latitude").value),t.append("place-longitude",document.querySelector("#place-longitude").value),fetch("/places/new",{credentials:"same-origin",method:"post",body:t}).then(function(t){return t.json()}).then(function(t){if(t.error===!0)throw new Error(t.error_description);var e=document.querySelector("fieldset"),r=document.querySelectorAll(".place-label"),n=!0,i=!1,o=void 0;try{for(var a,s=r[Symbol.iterator]();!(n=(a=s.next()).done);n=!0){var u=a.value;e.removeChild(u.parentNode)}}catch(t){i=!0,o=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw o}}e.removeChild(document.querySelector("#place-submit"));var l=document.querySelector("#create-new-place");l.parentNode.removeChild(l);var c=map.getSource("points"),h=c._data.features.filter(function(t){return"Current Location"!=t.properties.title});h.push({type:"Feature",geometry:{type:"Point",coordinates:[t.longitude,t.latitude]},properties:{title:t.name,icon:"circle",uri:t.uri}});var p={type:"FeatureCollection",features:h};map.getSource("points").setData(p);var f=document.querySelector("select"),d=document.createElement("option");d.setAttribute("value",t.uri),d.appendChild(document.createTextNode(t.name)),d.dataset.latitude=t.latitude,d.dataset.longitude=t.longitude,f.appendChild(d),document.querySelector('select [value="'+t.uri+'"]').selected=!0}).catch(function(t){o.a.reset(),o.a.error(t)})}var i=r(3),o=r.n(i);e.a=n},function(t,e,r){/*! +/* eslint-disable no-proto */ + + + +var base64 = __webpack_require__(5) +var ieee754 = __webpack_require__(8) +var isArray = __webpack_require__(7) + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, Buffer) {var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.mapboxgl = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0){for(var o=0,a=0,u=0;uh.maxh||t>h.maxw||i<=h.maxh&&t<=h.maxw&&(r=h.maxw*h.maxh-t*i,rn.free)){if(i===n.h)return this.allocShelf(f,t,i,s);i>n.h||ic)&&(p=2*Math.max(t,c)),(uu)&&(l=2*Math.max(i,u)),this.resize(p,l),this.packOne(t,i,s)}return null},t.prototype.allocFreebin=function(t,e,i,s){var h=this.freebins.splice(t,1)[0];return h.id=s,h.w=e,h.h=i,h.refcount=0,this.bins[s]=h,this.ref(h),h},t.prototype.allocShelf=function(t,e,i,s){var h=this.shelves[t],n=h.alloc(e,i,s);return this.bins[s]=n,this.ref(n),n},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1===++t.refcount){var e=t.h;this.stats[e]=(0|this.stats[e])+1}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0===--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var i=0;ithis.free||e>this.h)return null;var h=this.x;return this.x+=t,this.free-=t,new i(s,h,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}); +},{}],3:[function(require,module,exports){ +function UnitBezier(t,i,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(r-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=e,this.p2y=r}module.exports=UnitBezier,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(t,i){"undefined"==typeof i&&(i=1e-6);var e,r,s,h,n;for(s=t,n=0;n<8;n++){if(h=this.sampleCurveX(s)-t,Math.abs(h)r)return r;for(;eh?e=s:r=s,s=.5*(r-e)+e}return s},UnitBezier.prototype.solve=function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}; +},{}],4:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){s=s||{};var f=e+"?"+["bbox="+o(r,n,i),"format="+(s.format||"image/png"),"service="+(s.service||"WMS"),"version="+(s.version||"1.1.1"),"request="+(s.request||"GetMap"),"srs="+(s.srs||"EPSG:3857"),"width="+(s.width||256),"height="+(s.height||256),"layers="+t].join("&");return f}function o(e,t,o){t=Math.pow(2,o)-t-1;var n=r(256*e,256*t,o),i=r(256*(e+1),256*(t+1),o);return n[0]+","+n[1]+","+i[0]+","+i[1]}function r(e,t,o){var r=2*Math.PI*6378137/256/Math.pow(2,o),n=e*r-2*Math.PI*6378137/2,i=t*r-2*Math.PI*6378137/2;return[n,i]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})}); +},{}],5:[function(require,module,exports){ +"use strict";function earcut(e,n,r){r=r||2;var t=n&&n.length,i=t?n[0]*r:e.length,x=linkedList(e,0,i,r,!0),a=[];if(!x)return a;var o,l,u,s,v,f,y;if(t&&(x=eliminateHoles(e,n,x,r)),e.length>80*r){o=u=e[0],l=s=e[1];for(var d=r;du&&(u=v),f>s&&(s=f);y=Math.max(u-o,s-l)}return earcutLinked(x,a,r,o,l,y),a}function linkedList(e,n,r,t,i){var x,a;if(i===signedArea(e,n,r,t)>0)for(x=n;x=n;x-=t)a=insertNode(x,e[x],e[x+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(e,n){if(!e)return e;n||(n=e);var r,t=e;do if(r=!1,t.steiner||!equals(t,t.next)&&0!==area(t.prev,t,t.next))t=t.next;else{if(removeNode(t),t=n=t.prev,t===t.next)return null;r=!0}while(r||t!==n);return n}function earcutLinked(e,n,r,t,i,x,a){if(e){!a&&x&&indexCurve(e,t,i,x);for(var o,l,u=e;e.prev!==e.next;)if(o=e.prev,l=e.next,x?isEarHashed(e,t,i,x):isEar(e))n.push(o.i/r),n.push(e.i/r),n.push(l.i/r),removeNode(e),e=l.next,u=l.next;else if(e=l,e===u){a?1===a?(e=cureLocalIntersections(e,n,r),earcutLinked(e,n,r,t,i,x,2)):2===a&&splitEarcut(e,n,r,t,i,x):earcutLinked(filterPoints(e),n,r,t,i,x,1);break}}}function isEar(e){var n=e.prev,r=e,t=e.next;if(area(n,r,t)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(pointInTriangle(n.x,n.y,r.x,r.y,t.x,t.y,i.x,i.y)&&area(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function isEarHashed(e,n,r,t){var i=e.prev,x=e,a=e.next;if(area(i,x,a)>=0)return!1;for(var o=i.xx.x?i.x>a.x?i.x:a.x:x.x>a.x?x.x:a.x,s=i.y>x.y?i.y>a.y?i.y:a.y:x.y>a.y?x.y:a.y,v=zOrder(o,l,n,r,t),f=zOrder(u,s,n,r,t),y=e.nextZ;y&&y.z<=f;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(y=e.prevZ;y&&y.z>=v;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.prevZ}return!0}function cureLocalIntersections(e,n,r){var t=e;do{var i=t.prev,x=t.next.next;!equals(i,x)&&intersects(i,t,t.next,x)&&locallyInside(i,x)&&locallyInside(x,i)&&(n.push(i.i/r),n.push(t.i/r),n.push(x.i/r),removeNode(t),removeNode(t.next),t=e=x),t=t.next}while(t!==e);return t}function splitEarcut(e,n,r,t,i,x){var a=e;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&isValidDiagonal(a,o)){var l=splitPolygon(a,o);return a=filterPoints(a,a.next),l=filterPoints(l,l.next),earcutLinked(a,n,r,t,i,x),void earcutLinked(l,n,r,t,i,x)}o=o.next}a=a.next}while(a!==e)}function eliminateHoles(e,n,r,t){var i,x,a,o,l,u=[];for(i=0,x=n.length;i=t.next.y){var o=t.x+(x-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(o<=i&&o>a){if(a=o,o===i){if(x===t.y)return t;if(x===t.next.y)return t.next}r=t.x=t.x&&t.x>=s&&pointInTriangle(xr.x)&&locallyInside(t,e)&&(r=t,f=l)),t=t.next;return r}function indexCurve(e,n,r,t){var i=e;do null===i.z&&(i.z=zOrder(i.x,i.y,n,r,t)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,sortLinked(i)}function sortLinked(e){var n,r,t,i,x,a,o,l,u=1;do{for(r=e,e=null,x=null,a=0;r;){for(a++,t=r,o=0,n=0;n0||l>0&&t;)0===o?(i=t,t=t.nextZ,l--):0!==l&&t?r.z<=t.z?(i=r,r=r.nextZ,o--):(i=t,t=t.nextZ,l--):(i=r,r=r.nextZ,o--),x?x.nextZ=i:e=i,i.prevZ=x,x=i;r=t}x.nextZ=null,u*=2}while(a>1);return e}function zOrder(e,n,r,t,i){return e=32767*(e-r)/i,n=32767*(n-t)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),n=16711935&(n|n<<8),n=252645135&(n|n<<4),n=858993459&(n|n<<2),n=1431655765&(n|n<<1),e|n<<1}function getLeftmost(e){var n=e,r=e;do n.x=0&&(e-a)*(t-o)-(r-a)*(n-o)>=0&&(r-a)*(x-o)-(i-a)*(t-o)>=0}function isValidDiagonal(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!intersectsPolygon(e,n)&&locallyInside(e,n)&&locallyInside(n,e)&&middleInside(e,n)}function area(e,n,r){return(n.y-e.y)*(r.x-n.x)-(n.x-e.x)*(r.y-n.y)}function equals(e,n){return e.x===n.x&&e.y===n.y}function intersects(e,n,r,t){return!!(equals(e,n)&&equals(r,t)||equals(e,t)&&equals(r,n))||area(e,n,r)>0!=area(e,n,t)>0&&area(r,t,e)>0!=area(r,t,n)>0}function intersectsPolygon(e,n){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==n.i&&r.next.i!==n.i&&intersects(r,r.next,e,n))return!0;r=r.next}while(r!==e);return!1}function locallyInside(e,n){return area(e.prev,e,e.next)<0?area(e,n,e.next)>=0&&area(e,e.prev,n)>=0:area(e,n,e.prev)<0||area(e,e.next,n)<0}function middleInside(e,n){var r=e,t=!1,i=(e.x+n.x)/2,x=(e.y+n.y)/2;do r.y>x!=r.next.y>x&&i<(r.next.x-r.x)*(x-r.y)/(r.next.y-r.y)+r.x&&(t=!t),r=r.next;while(r!==e);return t}function splitPolygon(e,n){var r=new Node(e.i,e.x,e.y),t=new Node(n.i,n.x,n.y),i=e.next,x=n.prev;return e.next=n,n.prev=e,r.next=i,i.prev=r,t.next=r,r.prev=t,x.next=t,t.prev=x,t}function insertNode(e,n,r,t){var i=new Node(e,n,r);return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function removeNode(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,n,r){this.i=e,this.x=n,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(e,n,r,t){for(var i=0,x=n,a=r-t;x0&&(t+=e[i-1].length,r.holes.push(t))}return r}; +},{}],6:[function(require,module,exports){ +function geometry(r){if("Polygon"===r.type)return polygonArea(r.coordinates);if("MultiPolygon"===r.type){for(var e=0,n=0;n0){e+=Math.abs(ringArea(r[0]));for(var n=1;n2){for(var n,t,o=0;o=0}var geojsonArea=require("geojson-area");module.exports=rewind; +},{"geojson-area":6}],8:[function(require,module,exports){ +"use strict";function clip(e,r,t,n,u,i,l,s){if(t/=r,n/=r,l>=t&&s<=n)return e;if(l>n||s=t&&c<=n)h.push(o);else if(!(a>n||c=r&&s<=t&&u.push(l)}return u}function clipGeometry(e,r,t,n,u,i){for(var l=[],s=0;st?(d.push(u(h,f,r),u(h,f,t)),i||(d=newSlice(l,d,v,m,w))):o>=r&&d.push(u(h,f,r)):c>t?ot&&(d.push(u(h,f,t)),i||(d=newSlice(l,d,v,m,w))));h=g[S-1],c=h[n],c>=r&&c<=t&&d.push(h),a=d[d.length-1],i&&a&&(d[0][0]!==a[0]||d[0][1]!==a[1])&&d.push(d[0]),newSlice(l,d,v,m,w)}return l}function newSlice(e,r,t,n,u){return r.length&&(r.area=t,r.dist=n,void 0!==u&&(r.outer=u),e.push(r)),[]}module.exports=clip;var createFeature=require("./feature"); +},{"./feature":10}],9:[function(require,module,exports){ +"use strict";function convert(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1?1:o,[r,o,0]}function calcSize(e){for(var t,r,o=0,a=0,i=0;i1)return!1;var r=n.geometry[0].length;if(5!==r)return!1;for(var s=0;s1&&console.time("creation"),m=this.tiles[d]=createTile(e,p,i,o,f,t===a.maxZoom),this.tileCoords.push({z:t,x:i,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,i,o,m.numFeatures,m.numPoints,m.numSimplified),console.timeEnd("creation"));var h="z"+t;this.stats[h]=(this.stats[h]||0)+1,this.total++}if(m.source=e,n){if(t===a.maxZoom||t===n)continue;var x=1<1&&console.time("clipping");var g,v,M,T,b,y,S=.5*a.buffer/a.extent,Z=.5-S,q=.5+S,w=1+S;g=v=M=T=null,b=clip(e,p,i-S,i+q,0,intersectX,m.min[0],m.max[0]),y=clip(e,p,i+Z,i+w,0,intersectX,m.min[0],m.max[0]),b&&(g=clip(b,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),v=clip(b,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),y&&(M=clip(y,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),T=clip(y,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),u>1&&console.timeEnd("clipping"),e.length&&(l.push(g||[],t+1,2*i,2*o),l.push(v||[],t+1,2*i,2*o+1),l.push(M||[],t+1,2*i+1,2*o),l.push(T||[],t+1,2*i+1,2*o+1))}else n&&(c=t)}return c},GeoJSONVT.prototype.getTile=function(e,t,i){var o=this.options,n=o.extent,r=o.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,i);for(var a,u=e,c=t,p=i;!a&&u>0;)u--,c=Math.floor(c/2),p=Math.floor(p/2),a=this.tiles[toID(u,c,p)];if(!a||!a.source)return null;if(r>1&&console.log("found parent tile z%d-%d-%d",u,c,p),isClippedSquare(a,n,o.buffer))return transform.tile(a,n);r>1&&console.time("drilling down");var d=this.splitTile(a.source,u,c,p,e,t,i);if(r>1&&console.timeEnd("drilling down"),null!==d){var m=1<p&&(s=e,p=r);p>o?(t[s][2]=p,g.push(u),g.push(s),u=s):(n=g.pop(),u=g.pop())}}function getSqSegDist(t,i,e){var p=i[0],r=i[1],s=e[0],o=e[1],f=t[0],u=t[1],n=s-p,g=o-r;if(0!==n||0!==g){var l=((f-p)*n+(u-r)*g)/(n*n+g*g);l>1?(p=s,r=o):l>0&&(p+=n*l,r+=g*l)}return n=f-p,g=u-r,n*n+g*g}module.exports=simplify; +},{}],13:[function(require,module,exports){ +"use strict";function createTile(e,n,r,i,t,u){for(var a={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:n,transformed:!1,min:[2,1],max:[-1,0]},m=0;ma.max[0]&&(a.max[0]=l[0]),l[1]>a.max[1]&&(a.max[1]=l[1])}return a}function addFeature(e,n,r,i){var t,u,a,m,s=n.geometry,l=n.type,o=[],f=r*r;if(1===l)for(t=0;tf)&&(d.push(m),e.numSimplified++),e.numPoints++;3===l&&rewind(d,a.outer),o.push(d)}else e.numPoints+=a.length;if(o.length){var g={geometry:o,type:l,tags:n.tags||null};null!==n.id&&(g.id=n.id),e.features.push(g)}}function rewind(e,n){var r=signedArea(e);r<0===n&&e.reverse()}function signedArea(e){for(var n,r,i=0,t=0,u=e.length,a=u-1;t=a[u+0]&&s>=a[u+1]?(n[f]=!0,h.push(l[f])):n[f]=!1}}},GridIndex.prototype._forEachCell=function(t,r,e,s,i,h,n){for(var o=this._convertToCellCoord(t),l=this._convertToCellCoord(r),a=this._convertToCellCoord(e),d=this._convertToCellCoord(s),f=o;f<=a;f++)for(var u=l;u<=d;u++){var y=this.d*u+f;if(i.call(this,t,r,e,s,y,h,n))return}},GridIndex.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},GridIndex.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,r=NUM_PARAMS+this.cells.length+1+1,e=0,s=0;s>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; +},{}],18:[function(require,module,exports){ +"use strict";function kdbush(t,i,e,s,n){return new KDBush(t,i,e,s,n)}function KDBush(t,i,e,s,n){i=i||defaultGetX,e=e||defaultGetY,n=n||Array,this.nodeSize=s||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var r=0;r=s&&a<=h&&t>=u&&t<=e&&f.push(p[i]);else{var c=Math.floor((g+v)/2);a=r[2*c],t=r[2*c+1],a>=s&&a<=h&&t>=u&&t<=e&&f.push(p[c]);var d=(l+1)%2;(0===l?s<=a:u<=t)&&(n.push(g),n.push(c-1),n.push(d)),(0===l?h>=a:e>=t)&&(n.push(c+1),n.push(v),n.push(d))}}return f}module.exports=range; +},{}],20:[function(require,module,exports){ +"use strict";function sortKD(t,a,o,s,r,e){if(!(r-s<=o)){var f=Math.floor((s+r)/2);select(t,a,f,s,r,e%2),sortKD(t,a,o,s,f-1,e+1),sortKD(t,a,o,f+1,r,e+1)}}function select(t,a,o,s,r,e){for(;r>s;){if(r-s>600){var f=r-s+1,p=o-s+1,w=Math.log(f),m=.5*Math.exp(2*w/3),n=.5*Math.sqrt(w*m*(f-m)/f)*(p-f/2<0?-1:1),c=Math.max(s,Math.floor(o-p*m/f+n)),h=Math.min(r,Math.floor(o+(f-p)*m/f+n));select(t,a,o,c,h,e)}var i=a[2*o+e],l=s,M=r;for(swapItem(t,a,s,o),a[2*r+e]>i&&swapItem(t,a,s,r);li;)M--}a[2*s+e]===i?swapItem(t,a,s,M):(M++,swapItem(t,a,M,r)),M<=o&&(s=M+1),o<=M&&(r=M-1)}}function swapItem(t,a,o,s){swap(t,o,s),swap(a,2*o,2*s),swap(a,2*o+1,2*s+1)}function swap(t,a,o){var s=t[a];t[a]=t[o],t[o]=s}module.exports=sortKD; +},{}],21:[function(require,module,exports){ +"use strict";function within(s,p,r,t,u,h){for(var i=[0,s.length-1,0],o=[],n=u*u;i.length;){var e=i.pop(),a=i.pop(),f=i.pop();if(a-f<=h)for(var v=f;v<=a;v++)sqDist(p[2*v],p[2*v+1],r,t)<=n&&o.push(s[v]);else{var l=Math.floor((f+a)/2),c=p[2*l],q=p[2*l+1];sqDist(c,q,r,t)<=n&&o.push(s[l]);var D=(e+1)%2;(0===e?r-u<=c:t-u<=q)&&(i.push(f),i.push(l-1),i.push(D)),(0===e?r+u>=c:t+u>=q)&&(i.push(l+1),i.push(a),i.push(D))}}return o}function sqDist(s,p,r,t){var u=s-r,h=p-t;return u*u+h*h}module.exports=within; +},{}],22:[function(require,module,exports){ +"use strict";function isSupported(e){return!!(isBrowser()&&isArraySupported()&&isFunctionSupported()&&isObjectSupported()&&isJSONSupported()&&isWorkerSupported()&&isUint8ClampedArraySupported()&&isWebGLSupportedCached(e&&e.failIfMajorPerformanceCaveat))}function isBrowser(){return"undefined"!=typeof window&&"undefined"!=typeof document}function isArraySupported(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function isFunctionSupported(){return Function.prototype&&Function.prototype.bind}function isObjectSupported(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function isJSONSupported(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function isWorkerSupported(){return"Worker"in window}function isUint8ClampedArraySupported(){return"Uint8ClampedArray"in window}function isWebGLSupportedCached(e){return void 0===isWebGLSupportedCache[e]&&(isWebGLSupportedCache[e]=isWebGLSupported(e)),isWebGLSupportedCache[e]}function isWebGLSupported(e){var t=document.createElement("canvas"),r=Object.create(isSupported.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=e,t.probablySupportsContext?t.probablySupportsContext("webgl",r)||t.probablySupportsContext("experimental-webgl",r):t.supportsContext?t.supportsContext("webgl",r)||t.supportsContext("experimental-webgl",r):t.getContext("webgl",r)||t.getContext("experimental-webgl",r)}"undefined"!=typeof module&&module.exports?module.exports=isSupported:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=isSupported);var isWebGLSupportedCache={};isSupported.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}; +},{}],23:[function(require,module,exports){ +(function (process){ +function normalizeArray(r,t){for(var e=0,n=r.length-1;n>=0;n--){var s=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");return r}function filter(r,t){if(r.filter)return r.filter(t);for(var e=[],n=0;n=-1&&!t;e--){var n=e>=0?arguments[e]:process.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(r=n+"/"+r,t="/"===n.charAt(0))}return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),(t?"/":"")+r||"."},exports.normalize=function(r){var t=exports.isAbsolute(r),e="/"===substr(r,-1);return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),r||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){var r=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(r,function(r,t){if("string"!=typeof r)throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))},exports.relative=function(r,t){function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(var n=e(r.split("/")),s=e(t.split("/")),i=Math.min(n.length,s.length),o=i,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}module.exports=Buffer;var ieee754=require("ieee754"),BufferMethods,lastStr,lastStrEncoded;BufferMethods={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return ieee754.read(this,t,!0,23,4)},readDoubleLE:function(t){return ieee754.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return ieee754.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return ieee754.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(i.pos>=e)throw new Error("Given varint doesn't fit into 10 bytes");var r=255&t;i.buf[i.pos++]=r|(t>=128?128:0),t/=128}}function reallocForRawMessage(t,i,e){var r=i<=16383?1:i<=2097151?2:i<=268435455?3:Math.ceil(Math.log(i)/(7*Math.LN2));e.realloc(r);for(var s=e.pos-1;s>=t;s--)e.buf[s+r]=e.buf[s]}function writePackedVarint(t,i){for(var e=0;e>3,n=this.pos;t(s,i,this),this.pos===n&&this.skip(r)}return i},readMessage:function(t,i){return this.readFields(t,i,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,i,e=this.buf;return i=e[this.pos++],t=127&i,i<128?t:(i=e[this.pos++],t|=(127&i)<<7,i<128?t:(i=e[this.pos++],t|=(127&i)<<14,i<128?t:(i=e[this.pos++],t|=(127&i)<<21,i<128?t:readVarintRemainder(t,this))))},readVarint64:function(){var t=this.pos,i=this.readVarint();if(i127;);else if(i===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(i===Pbf.Fixed32)this.pos+=4;else{if(i!==Pbf.Fixed64)throw new Error("Unimplemented type: "+i);this.pos+=8}},writeTag:function(t,i){this.writeVarint(t<<3|i)},realloc:function(t){for(var i=this.length||16;i268435455?void writeBigVarint(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127)))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t);var i=Buffer.byteLength(t);this.writeVarint(i),this.realloc(i),this.buf.write(t,this.pos),this.pos+=i},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var i=t.length;this.writeVarint(i),this.realloc(i);for(var e=0;e=128&&reallocForRawMessage(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,i,e){this.writeTag(t,Pbf.Bytes),this.writeRawMessage(i,e)},writePackedVarint:function(t,i){this.writeMessage(t,writePackedVarint,i)},writePackedSVarint:function(t,i){this.writeMessage(t,writePackedSVarint,i)},writePackedBoolean:function(t,i){this.writeMessage(t,writePackedBoolean,i)},writePackedFloat:function(t,i){this.writeMessage(t,writePackedFloat,i)},writePackedDouble:function(t,i){this.writeMessage(t,writePackedDouble,i)},writePackedFixed32:function(t,i){this.writeMessage(t,writePackedFixed32,i)},writePackedSFixed32:function(t,i){this.writeMessage(t,writePackedSFixed32,i)},writePackedFixed64:function(t,i){this.writeMessage(t,writePackedFixed64,i)},writePackedSFixed64:function(t,i){this.writeMessage(t,writePackedSFixed64,i)},writeBytesField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeBytes(i)},writeFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFixed32(i)},writeSFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeSFixed32(i)},writeFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeFixed64(i)},writeSFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeSFixed64(i)},writeVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeVarint(i)},writeSVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeSVarint(i)},writeStringField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeString(i)},writeFloatField:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFloat(i)},writeDoubleField:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeDouble(i)},writeBooleanField:function(t,i){this.writeVarintField(t,Boolean(i))}}; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./buffer":24}],26:[function(require,module,exports){ +"use strict";function Point(t,n){this.x=t,this.y=n}module.exports=Point,Point.prototype={clone:function(){return new Point(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,i=t.y-this.y;return n*n+i*i},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},_matMult:function(t){var n=t[0]*this.x+t[1]*this.y,i=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var n=Math.cos(t),i=Math.sin(t),s=n*this.x-i*this.y,r=i*this.x+n*this.y;return this.x=s,this.y=r,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Point.convert=function(t){return t instanceof Point?t:Array.isArray(t)?new Point(t[0],t[1]):t}; +},{}],27:[function(require,module,exports){ +function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var u=1;ur;){if(o-r>600){var f=o-r+1,e=t-r+1,l=Math.log(f),s=.5*Math.exp(2*l/3),i=.5*Math.sqrt(l*s*(f-s)/f)*(e-f/2<0?-1:1),n=Math.max(r,Math.floor(t-e*s/f+i)),h=Math.min(o,Math.floor(t+(f-e)*s/f+i));partialSort(a,t,n,h,p)}var u=a[t],M=r,w=o;for(swap(a,r,t),p(a[o],u)>0&&swap(a,r,o);M0;)w--}0===p(a[r],u)?swap(a,r,w):(w++,swap(a,w,o)),w<=t&&(r=w+1),t<=w&&(o=w-1)}}function swap(a,t,r){var o=a[t];a[t]=a[r],a[r]=o}function defaultCompare(a,t){return at?1:0}module.exports=partialSort; +},{}],29:[function(require,module,exports){ +"use strict";function supercluster(t){return new SuperCluster(t)}function SuperCluster(t){this.options=extend(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function createCluster(t,e,o,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:o}}function createPointCluster(t,e){var o=t.geometry.coordinates;return createCluster(lngX(o[0]),latY(o[1]),1,e)}function getClusterJSON(t){return{type:"Feature",properties:getClusterProperties(t),geometry:{type:"Point",coordinates:[xLng(t.x),yLat(t.y)]}}}function getClusterProperties(t){var e=t.numPoints,o=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:o}}function lngX(t){return t/360+.5}function latY(t){var e=Math.sin(t*Math.PI/180),o=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return o<0?0:o>1?1:o}function xLng(t){return 360*(t-.5)}function yLat(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function extend(t,e){for(var o in e)t[o]=e[o];return t}function getX(t){return t.x}function getY(t){return t.y}var kdbush=require("kdbush");module.exports=supercluster,SuperCluster.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var o="prepare "+t.length+" points";e&&console.time(o),this.points=t;var n=t.map(createPointCluster);e&&console.timeEnd(o);for(var r=this.options.maxZoom;r>=this.options.minZoom;r--){var i=+Date.now();this.trees[r+1]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),n=this._cluster(n,r),e&&console.log("z%d: %d clusters in %dms",r,n.length,+Date.now()-i)}return this.trees[this.options.minZoom]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var o=this.trees[this._limitZoom(e)],n=o.range(lngX(t[0]),latY(t[3]),lngX(t[2]),latY(t[1])),r=[],i=0;i=0;a--)this._down(a)}function defaultCompare(t,i){return ti?1:0}function swap(t,i,a){var n=t[i];t[i]=t[a],t[a]=n}module.exports=TinyQueue,TinyQueue.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var i=this.data,a=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(a(i[t],i[n])<0))break;swap(i,n,t),t=n}},_down:function(t){for(var i=this.data,a=this.compare,n=this.length;;){var e=2*t+1,h=e+1,s=t;if(e=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){var p=r.name?": "+r.name:"";c=" [Function"+p+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var f;return f=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(f,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0,i=e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t>3}if(a--,1===i||2===i)o+=e.readSVarint(),n+=e.readSVarint(),1===i&&(t&&s.push(t),t=[]),t.push(new Point(o,n));else{if(7!==i)throw new Error("unknown command "+i);t&&t.push(t[0].clone())}}return t&&s.push(t),s},VectorTileFeature.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,a=0,o=0,n=1/0,s=-(1/0),p=1/0,h=-(1/0);e.pos>3}if(i--,1===r||2===r)a+=e.readSVarint(),o+=e.readSVarint(),as&&(s=a),oh&&(h=o);else if(7!==r)throw new Error("unknown command "+r)}return[n,p,s,h]},VectorTileFeature.prototype.toGeoJSON=function(e,t,r){function i(e){for(var t=0;t>3;t=1===a?e.readString():2===a?e.readFloat():3===a?e.readDouble():4===a?e.readVarint64():5===a?e.readVarint():6===a?e.readSVarint():7===a?e.readBoolean():null}return t}var VectorTileFeature=require("./vectortilefeature.js");module.exports=VectorTileLayer,VectorTileLayer.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature(this._pbf,t,this.extent,this._keys,this._values)}; +},{"./vectortilefeature.js":36}],38:[function(require,module,exports){ +function fromVectorTileJs(e){var r=[];for(var o in e.layers)r.push(prepareLayer(e.layers[o]));var t=new Pbf;return vtpb.tile.write({layers:r},t),t.finish()}function fromGeojsonVt(e){var r={};for(var o in e)r[o]=new GeoJSONWrapper(e[o].features),r[o].name=o;return fromVectorTileJs({layers:r})}function prepareLayer(e){for(var r={name:e.name||"",version:e.version||1,extent:e.extent||4096,keys:[],values:[],features:[]},o={},t={},n=0;n>31}function encodeGeometry(e){for(var r=[],o=0,t=0,n=e.length,a=0;aArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},ArrayGroup.prototype.prepareSegment2=function(r){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+r>ArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},ArrayGroup.prototype.populatePaintArrays=function(r){var e=this;for(var t in e.layerData){var a=e.layerData[t];0!==a.paintVertexArray.bytesPerElement&&a.programConfiguration.populatePaintArray(a.layer,a.paintVertexArray,a.paintPropertyStatistics,e.layoutVertexArray.length,e.globalProperties,r)}},ArrayGroup.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ArrayGroup.prototype.serialize=function(r){return{layoutVertexArray:this.layoutVertexArray.serialize(r),elementArray:this.elementArray&&this.elementArray.serialize(r),elementArray2:this.elementArray2&&this.elementArray2.serialize(r),paintVertexArrays:serializePaintVertexArrays(this.layerData,r),segments:this.segments,segments2:this.segments2}},ArrayGroup.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,module.exports=ArrayGroup; +},{"./program_configuration":58}],45:[function(require,module,exports){ +"use strict";var ArrayGroup=require("./array_group"),BufferGroup=require("./buffer_group"),util=require("../util/util"),Bucket=function(r,t){this.zoom=r.zoom,this.overscaling=r.overscaling,this.layers=r.layers,this.index=r.index,r.arrays?this.buffers=new BufferGroup(t,r.layers,r.zoom,r.arrays):this.arrays=new ArrayGroup(t,r.layers,r.zoom)};Bucket.prototype.populate=function(r,t){for(var e=this,i=0,a=r;i=EXTENT||o<0||o>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,y,o,-1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,1),addCircleVertex(r.layoutVertexArray,y,o,-1,1),r.elementArray.emplaceBack(u,u+1,u+2),r.elementArray.emplaceBack(u,u+3,u+2),n.vertexLength+=4,n.primitiveLength+=2}}r.populatePaintArrays(e.properties)},r}(Bucket);CircleBucket.programInterface=circleInterface,module.exports=CircleBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60}],47:[function(require,module,exports){ +"use strict";var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:createElementArrayType(3),elementArrayType2:createElementArrayType(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},FillBucket=function(e){function r(r){e.call(this,r,fillInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);tEXTENT)||e.y===r.y&&(e.y<0||e.y>EXTENT)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillExtrusionInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:createElementArrayType(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},FACTOR=Math.pow(2,13),FillExtrusionBucket=function(e){function r(r){e.call(this,r,fillExtrusionInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);t=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var _=g.sub(A)._perp()._unit();addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,1,m),m+=A.dist(g),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,1,m);var v=p.vertexLength;r.elementArray.emplaceBack(v,v+1,v+2),r.elementArray.emplaceBack(v+1,v+2,v+3),p.vertexLength+=4,p.primitiveLength+=2}}u.push(g.x),u.push(g.y)}}}for(var E=earcut(u,c),T=0;T>6)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(37.5*(Math.PI/180)),SHARP_CORNER_OFFSET=15,LINE_DISTANCE_BUFFER_BITS=15,LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,LINE_DISTANCE_BUFFER_BITS-1)/LINE_DISTANCE_SCALE,lineInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:createElementArrayType()},LineBucket=function(e){function t(t){e.call(this,t,lineInterface)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.addFeature=function(e){for(var t=this,r=this.layers[0].layout,i=r["line-join"],a=r["line-cap"],n=r["line-miter-limit"],d=r["line-round-limit"],s=0,u=loadGeometry(e,LINE_DISTANCE_BUFFER_BITS);s=2&&e[l-1].equals(e[l-2]);)l--;if(!(l<(u?3:2))){"bevel"===r&&(a=1.05);var o=SHARP_CORNER_OFFSET*(EXTENT/(512*this.overscaling)),p=e[0],c=this.arrays,_=c.prepareSegment(10*l);this.distance=0;var y,h,m,E,x,C,v,A=i,f=u?"butt":i,L=!0;this.e1=this.e2=this.e3=-1,u&&(y=e[l-2],x=p.sub(y)._unit()._perp());for(var V=0;V0){var b=y.dist(h);if(b>2*o){var R=y.sub(y.sub(h)._mult(o/b)._round());d.distance+=R.dist(h),d.addCurrentVertex(R,d.distance,E.mult(1),0,0,!1,_),h=R}}var g=h&&m,F=g?r:m?A:f;if(g&&"round"===F&&(Ia&&(F="bevel"),"bevel"===F&&(I>2&&(F="flipbevel"),I100)S=x.clone().mult(-1);else{var B=E.x*x.y-E.y*x.x>0?-1:1,k=I*E.add(x).mag()/E.sub(x).mag();S._perp()._mult(k*B)}d.addCurrentVertex(y,d.distance,S,0,0,!1,_),d.addCurrentVertex(y,d.distance,S.mult(-1),0,0,!1,_)}else if("bevel"===F||"fakeround"===F){var D=E.x*x.y-E.y*x.x>0,P=-Math.sqrt(I*I-1);if(D?(v=0,C=P):(C=0,v=P),L||d.addCurrentVertex(y,d.distance,E,C,v,!1,_),"fakeround"===F){for(var U=Math.floor(8*(.5-(T-.5))),q=void 0,M=0;M=0;O--)q=E.mult((O+1)/(U+1))._add(x)._unit(),d.addPieSliceVertex(y,d.distance,q,D,_)}m&&d.addCurrentVertex(y,d.distance,x,-C,-v,!1,_)}else"butt"===F?(L||d.addCurrentVertex(y,d.distance,E,0,0,!1,_),m&&d.addCurrentVertex(y,d.distance,x,0,0,!1,_)):"square"===F?(L||(d.addCurrentVertex(y,d.distance,E,1,1,!1,_),d.e1=d.e2=-1),m&&d.addCurrentVertex(y,d.distance,x,-1,-1,!1,_)):"round"===F&&(L||(d.addCurrentVertex(y,d.distance,E,0,0,!1,_),d.addCurrentVertex(y,d.distance,E,1,1,!0,_),d.e1=d.e2=-1),m&&(d.addCurrentVertex(y,d.distance,x,-1,-1,!0,_),d.addCurrentVertex(y,d.distance,x,0,0,!1,_)));if(N&&V2*o){var H=y.add(m.sub(y)._mult(o/X)._round());d.distance+=H.dist(y),d.addCurrentVertex(H,d.distance,x.mult(1),0,0,!1,_),y=H}}L=!1}c.populatePaintArrays(s)}},t.prototype.addCurrentVertex=function(e,t,r,i,a,n,d){var s,u=n?1:0,l=this.arrays,o=l.layoutVertexArray,p=l.elementArray;s=r.clone(),i&&s._sub(r.perp()._mult(i)),addLineVertex(o,e,s,u,0,i,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,s=r.mult(-1),a&&s._sub(r.perp()._mult(a)),addLineVertex(o,e,s,u,1,-a,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,t>MAX_LINE_DISTANCE/2&&(this.distance=0,this.addCurrentVertex(e,this.distance,r,i,a,n,d))},t.prototype.addPieSliceVertex=function(e,t,r,i,a){var n=i?1:0;r=r.mult(i?-1:1);var d=this.arrays,s=d.layoutVertexArray,u=d.elementArray;addLineVertex(s,e,r,0,n,0,t),this.e3=a.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),a.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},t}(Bucket);LineBucket.programInterface=lineInterface,module.exports=LineBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"vector-tile":34}],50:[function(require,module,exports){ +"use strict";function addVertex(e,t,o,r,a,i,n,l,s,c,y){e.emplaceBack(t,o,Math.round(64*r),Math.round(64*a),i/4,n/4,10*(c||0),y,10*(l||0),10*Math.min(s||25,25))}function addCollisionBoxVertex(e,t,o,r,a){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*r,10*a)}var Point=require("point-geometry"),ArrayGroup=require("../array_group"),BufferGroup=require("../buffer_group"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),EXTENT=require("../extent"),Anchor=require("../../symbol/anchor"),getAnchors=require("../../symbol/get_anchors"),resolveTokens=require("../../util/token"),Quads=require("../../symbol/quads"),Shaping=require("../../symbol/shaping"),resolveText=require("../../symbol/resolve_text"),mergeLines=require("../../symbol/mergelines"),clipLine=require("../../symbol/clip_line"),util=require("../../util/util"),scriptDetection=require("../../util/script_detection"),loadGeometry=require("../load_geometry"),CollisionFeature=require("../../symbol/collision_feature"),findPoleOfInaccessibility=require("../../util/find_pole_of_inaccessibility"),classifyRings=require("../../util/classify_rings"),VectorTileFeature=require("vector-tile").VectorTileFeature,rtlTextPlugin=require("../../source/rtl_text_plugin"),shapeText=Shaping.shapeText,shapeIcon=Shaping.shapeIcon,WritingMode=Shaping.WritingMode,getGlyphQuads=Quads.getGlyphQuads,getIconQuads=Quads.getIconQuads,elementArrayType=createElementArrayType(),layoutVertexArrayType=createVertexArrayType([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),symbolInterfaces={glyph:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"text-color",type:"Uint8"},{name:"a_halo_color",property:"text-halo-color",type:"Uint8"},{name:"a_halo_width",property:"text-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"text-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"text-opacity",type:"Uint8",multiplier:255}]},icon:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"icon-color",type:"Uint8"},{name:"a_halo_color",property:"icon-halo-color",type:"Uint8"},{name:"a_halo_width",property:"icon-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"icon-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"icon-opacity",type:"Uint8",multiplier:255}]},collisionBox:{layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:createElementArrayType(2)}},SymbolBucket=function(e){var t=this;if(this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.index=e.index,this.sdfIcons=e.sdfIcons,this.iconsNeedLinear=e.iconsNeedLinear,this.adjustedTextSize=e.adjustedTextSize,this.adjustedIconSize=e.adjustedIconSize,this.fontstack=e.fontstack,e.arrays){this.buffers={};for(var o in e.arrays)e.arrays[o]&&(t.buffers[o]=new BufferGroup(symbolInterfaces[o],e.layers,e.zoom,e.arrays[o]))}};SymbolBucket.prototype.populate=function(e,t){var o=this,r=this.layers[0],a=r.layout,i=a["text-font"],n=a["icon-image"],l=i&&(!r.isLayoutValueFeatureConstant("text-field")||a["text-field"]),s=n;if(this.features=[],l||s){for(var c=t.iconDependencies,y=t.glyphDependencies,p=y[i]=y[i]||{},x=0;xEXTENT||i.y<0||i.y>EXTENT);if(!x||n){var l=n||f;r.addSymbolInstance(i,a,t,o,r.layers[0],l,r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,s,h,m,y,u,g,{zoom:r.zoom},e.properties)}};if("line"===b)for(var S=0,T=clipLine(e.geometry,0,0,EXTENT,EXTENT);S=0;i--)if(o.dist(a[i])7*Math.PI/4)continue}else if(r&&a&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(r&&a&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var m=u.tl,g=u.tr,f=u.bl,b=u.br,v=u.tex,I=u.anchorPoint,S=Math.max(y+Math.log(u.minScale)/Math.LN2,p),T=Math.min(y+Math.log(u.maxScale)/Math.LN2,25);if(!(T<=S)){S===p&&(S=0);var M=Math.round(u.glyphAngle/(2*Math.PI)*256),B=e.prepareSegment(4),A=B.vertexLength;addVertex(c,I.x,I.y,m.x,m.y,v.x,v.y,S,T,p,M),addVertex(c,I.x,I.y,g.x,g.y,v.x+v.w,v.y,S,T,p,M),addVertex(c,I.x,I.y,f.x,f.y,v.x,v.y+v.h,S,T,p,M),addVertex(c,I.x,I.y,b.x,b.y,v.x+v.w,v.y+v.h,S,T,p,M),s.emplaceBack(A,A+1,A+2),s.emplaceBack(A+1,A+2,A+3),B.vertexLength+=4,B.primitiveLength+=2}}e.populatePaintArrays(n)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,r=o.layoutVertexArray,a=o.elementArray,i=-e.angle,n=e.yStretch,l=0,s=t.symbolInstances;lSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),z>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var _=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:M,textBoxEndIndex:B,iconBoxStartIndex:A,iconBoxEndIndex:z,glyphQuads:I,iconQuads:v,anchor:e,featureIndex:l,featureProperties:g,writingModes:_})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket; +},{"../../source/rtl_text_plugin":90,"../../symbol/anchor":157,"../../symbol/clip_line":159,"../../symbol/collision_feature":161,"../../symbol/get_anchors":163,"../../symbol/mergelines":166,"../../symbol/quads":167,"../../symbol/resolve_text":168,"../../symbol/shaping":169,"../../util/classify_rings":195,"../../util/find_pole_of_inaccessibility":201,"../../util/script_detection":209,"../../util/token":211,"../../util/util":212,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"point-geometry":26,"vector-tile":34}],51:[function(require,module,exports){ +"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=function(e,t,r){this.arrayBuffer=e.arrayBuffer,this.length=e.length,this.attributes=t.members,this.itemSize=t.bytesPerElement,this.type=r,this.arrayType=t};Buffer.fromStructArray=function(e,t){return new Buffer(e.serialize(),e.constructor.serialize(),t)},Buffer.prototype.bind=function(e){var t=e[this.type];this.buffer?e.bindBuffer(t,this.buffer):(this.gl=e,this.buffer=e.createBuffer(),e.bindBuffer(t,this.buffer),e.bufferData(t,this.arrayBuffer,e.STATIC_DRAW),this.arrayBuffer=null)},Buffer.prototype.setVertexAttribPointers=function(e,t,r){for(var f=this,i=0;i0?t+2*e:e}function translate(e,t,r,i,a){if(!t[0]&&!t[1])return e;t=Point.convert(t),"viewport"===r&&t._rotate(-i);for(var n=[],s=0;sr.max||d.yr.max)&&util.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return u}; +},{"../util/util":212,"./extent":54}],57:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),PosArray=createStructArrayType({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray; +},{"../util/struct_array":210}],58:[function(require,module,exports){ +"use strict";function getPaintAttributeValue(t,r,e,i){if(!t.zoomStops)return r.getPaintValue(t.property,e,i);var a=t.zoomStops.map(function(a){return r.getPaintValue(t.property,util.extend({},e,{zoom:a}),i)});return 1===a.length?a[0]:a}function normalizePaintAttribute(t,r){var e=t.name;e||(e=t.property.replace(r.type+"-","").replace(/-/g,"_"));var i="color"===r._paintSpecifications[t.property].type;return util.extend({name:"a_"+e,components:i?4:1,multiplier:i?255:1,dimensions:i?4:1},t)}var createVertexArrayType=require("./vertex_array_type"),util=require("../util/util"),ProgramConfiguration=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};ProgramConfiguration.createDynamic=function(t,r,e){for(var i=new ProgramConfiguration,a=0,n=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};LngLat.prototype.wrap=function(){return new LngLat(wrap(this.lng,-180,180),this.lat)},LngLat.prototype.toArray=function(){return[this.lng,this.lat]},LngLat.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},LngLat.convert=function(t){if(t instanceof LngLat)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new LngLat(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new LngLat(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},module.exports=LngLat; +},{"../util/util":212}],63:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),LngLatBounds=function(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};LngLatBounds.prototype.setNorthEast=function(t){return this._ne=LngLat.convert(t),this},LngLatBounds.prototype.setSouthWest=function(t){return this._sw=LngLat.convert(t),this},LngLatBounds.prototype.extend=function(t){var n,e,s=this._sw,o=this._ne;if(t instanceof LngLat)n=t,e=t;else{if(!(t instanceof LngLatBounds))return Array.isArray(t)?t.every(Array.isArray)?this.extend(LngLatBounds.convert(t)):this.extend(LngLat.convert(t)):this;if(n=t._sw,e=t._ne,!n||!e)return this}return s||o?(s.lng=Math.min(n.lng,s.lng),s.lat=Math.min(n.lat,s.lat),o.lng=Math.max(e.lng,o.lng),o.lat=Math.max(e.lat,o.lat)):(this._sw=new LngLat(n.lng,n.lat),this._ne=new LngLat(e.lng,e.lat)),this},LngLatBounds.prototype.getCenter=function(){return new LngLat((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},LngLatBounds.prototype.getSouthWest=function(){return this._sw},LngLatBounds.prototype.getNorthEast=function(){return this._ne},LngLatBounds.prototype.getNorthWest=function(){return new LngLat(this.getWest(),this.getNorth())},LngLatBounds.prototype.getSouthEast=function(){return new LngLat(this.getEast(),this.getSouth())},LngLatBounds.prototype.getWest=function(){return this._sw.lng},LngLatBounds.prototype.getSouth=function(){return this._sw.lat},LngLatBounds.prototype.getEast=function(){return this._ne.lng},LngLatBounds.prototype.getNorth=function(){return this._ne.lat},LngLatBounds.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},LngLatBounds.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},LngLatBounds.convert=function(t){return!t||t instanceof LngLatBounds?t:new LngLatBounds(t)},module.exports=LngLatBounds; +},{"./lng_lat":62}],64:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),Point=require("point-geometry"),Coordinate=require("./coordinate"),util=require("../util/util"),interp=require("../util/interpolate"),TileCoord=require("../source/tile_coord"),EXTENT=require("../data/extent"),glmatrix=require("@mapbox/gl-matrix"),vec4=glmatrix.vec4,mat4=glmatrix.mat4,mat2=glmatrix.mat2,Transform=function(t,i,o){this.tileSize=512,this._renderWorldCopies=void 0===o||o,this._minZoom=t||0,this._maxZoom=i||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},prototypeAccessors={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};prototypeAccessors.minZoom.get=function(){return this._minZoom},prototypeAccessors.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},prototypeAccessors.maxZoom.get=function(){return this._maxZoom},prototypeAccessors.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},prototypeAccessors.worldSize.get=function(){return this.tileSize*this.scale},prototypeAccessors.centerPoint.get=function(){return this.size._div(2)},prototypeAccessors.size.get=function(){return new Point(this.width,this.height)},prototypeAccessors.bearing.get=function(){return-this.angle/Math.PI*180},prototypeAccessors.bearing.set=function(t){var i=-util.wrap(t,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=mat2.create(),mat2.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},prototypeAccessors.pitch.get=function(){return this._pitch/Math.PI*180},prototypeAccessors.pitch.set=function(t){var i=util.clamp(t,0,60)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices())},prototypeAccessors.fov.get=function(){return this._fov/Math.PI*180},prototypeAccessors.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},prototypeAccessors.zoom.get=function(){return this._zoom},prototypeAccessors.zoom.set=function(t){var i=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom,this._constrain(),this._calcMatrices())},prototypeAccessors.center.get=function(){return this._center},prototypeAccessors.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Transform.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Transform.prototype.coveringTiles=function(t){var i=this.coveringZoomLevel(t),o=i;if(it.maxzoom&&(i=t.maxzoom);var e=this.pointCoordinate(this.centerPoint,i),r=new Point(e.column-.5,e.row-.5),n=[this.pointCoordinate(new Point(0,0),i),this.pointCoordinate(new Point(this.width,0),i),this.pointCoordinate(new Point(this.width,this.height),i),this.pointCoordinate(new Point(0,this.height),i)];return TileCoord.cover(i,n,t.reparseOverscaled?o:i,this._renderWorldCopies).sort(function(t,i){return r.dist(t)-r.dist(i)})},Transform.prototype.resize=function(t,i){this.width=t,this.height=i,this.pixelsToGLUnits=[2/t,-2/i],this._constrain(),this._calcMatrices()},prototypeAccessors.unmodified.get=function(){return this._unmodified},Transform.prototype.zoomScale=function(t){return Math.pow(2,t)},Transform.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Transform.prototype.project=function(t){return new Point(this.lngX(t.lng),this.latY(t.lat))},Transform.prototype.unproject=function(t){return new LngLat(this.xLng(t.x),this.yLat(t.y))},prototypeAccessors.x.get=function(){return this.lngX(this.center.lng)},prototypeAccessors.y.get=function(){return this.latY(this.center.lat)},prototypeAccessors.point.get=function(){return new Point(this.x,this.y)},Transform.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Transform.prototype.latY=function(t){var i=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-i)*this.worldSize/360},Transform.prototype.xLng=function(t){return 360*t/this.worldSize-180},Transform.prototype.yLat=function(t){var i=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(i*Math.PI/180))-90},Transform.prototype.setLocationAtPoint=function(t,i){var o=this.pointCoordinate(i)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(o))},Transform.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Transform.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Transform.prototype.locationCoordinate=function(t){return new Coordinate(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Transform.prototype.coordinateLocation=function(t){var i=t.zoomTo(this.zoom);return new LngLat(this.xLng(i.column*this.tileSize),this.yLat(i.row*this.tileSize))},Transform.prototype.pointCoordinate=function(t,i){void 0===i&&(i=this.tileZoom);var o=0,e=[t.x,t.y,0,1],r=[t.x,t.y,1,1];vec4.transformMat4(e,e,this.pixelMatrixInverse),vec4.transformMat4(r,r,this.pixelMatrixInverse);var n=e[3],s=r[3],a=e[0]/n,h=r[0]/s,c=e[1]/n,m=r[1]/s,p=e[2]/n,l=r[2]/s,u=p===l?0:(o-p)/(l-p);return new Coordinate(interp(a,h,u)/this.tileSize,interp(c,m,u)/this.tileSize,this.zoom)._zoomTo(i)},Transform.prototype.coordinatePoint=function(t){var i=t.zoomTo(this.zoom),o=[i.column*this.tileSize,i.row*this.tileSize,0,1];return vec4.transformMat4(o,o,this.pixelMatrix),new Point(o[0]/o[3],o[1]/o[3])},Transform.prototype.calculatePosMatrix=function(t,i){var o=t.toCoordinate(i),e=this.worldSize/this.zoomScale(o.zoom),r=mat4.identity(new Float64Array(16));return mat4.translate(r,r,[o.column*e,o.row*e,0]),mat4.scale(r,r,[e/EXTENT,e/EXTENT,1]),mat4.multiply(r,this.projMatrix,r),new Float32Array(r)},Transform.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,i,o,e,r,n,s,a,h=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),i=this.latY(this.latRange[0]),r=i-ti&&(a=i-l)}if(this.lngRange){var u=this.x,f=h.x/2;u-fe&&(s=e-f)}void 0===s&&void 0===a||(this.center=this.unproject(new Point(void 0!==s?s:this.x,void 0!==a?a:this.y))),this._unmodified=c,this._constraining=!1}},Transform.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,i=Math.PI/2+this._pitch,o=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-i-t),e=Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance,r=1.01*e,n=new Float64Array(16);mat4.perspective(n,this._fov,this.width/this.height,1,r),mat4.scale(n,n,[1,-1,1]),mat4.translate(n,n,[0,0,-this.cameraToCenterDistance]),mat4.rotateX(n,n,this._pitch),mat4.rotateZ(n,n,this.angle),mat4.translate(n,n,[-this.x,-this.y,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(mat4.scale(n,n,[1,1,s,1]),this.projMatrix=n,n=mat4.create(),mat4.scale(n,n,[this.width/2,-this.height/2,1]),mat4.translate(n,n,[1,-1,0]),this.pixelMatrix=mat4.multiply(new Float64Array(16),n,this.projMatrix),n=mat4.invert(new Float64Array(16),this.pixelMatrix),!n)throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform; +},{"../data/extent":54,"../source/tile_coord":94,"../util/interpolate":204,"../util/util":212,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(require,module,exports){ +"use strict";var browser=require("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=require("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=require("./ui/map"),mapboxgl.NavigationControl=require("./ui/control/navigation_control"),mapboxgl.GeolocateControl=require("./ui/control/geolocate_control"),mapboxgl.AttributionControl=require("./ui/control/attribution_control"),mapboxgl.ScaleControl=require("./ui/control/scale_control"),mapboxgl.FullscreenControl=require("./ui/control/fullscreen_control"),mapboxgl.Popup=require("./ui/popup"),mapboxgl.Marker=require("./ui/marker"),mapboxgl.Style=require("./style/style"),mapboxgl.LngLat=require("./geo/lng_lat"),mapboxgl.LngLatBounds=require("./geo/lng_lat_bounds"),mapboxgl.Point=require("point-geometry"),mapboxgl.Evented=require("./util/evented"),mapboxgl.supported=require("./util/browser").supported;var config=require("./util/config");mapboxgl.config=config;var rtlTextPlugin=require("./source/rtl_text_plugin");mapboxgl.setRTLTextPlugin=rtlTextPlugin.setRTLTextPlugin,Object.defineProperty(mapboxgl,"accessToken",{get:function(){return config.ACCESS_TOKEN},set:function(o){config.ACCESS_TOKEN=o}}); +},{"../package.json":43,"./geo/lng_lat":62,"./geo/lng_lat_bounds":63,"./source/rtl_text_plugin":90,"./style/style":146,"./ui/control/attribution_control":173,"./ui/control/fullscreen_control":174,"./ui/control/geolocate_control":175,"./ui/control/navigation_control":177,"./ui/control/scale_control":178,"./ui/map":187,"./ui/marker":188,"./ui/popup":189,"./util/browser":192,"./util/config":196,"./util/evented":200,"point-geometry":26}],66:[function(require,module,exports){ +"use strict";function drawBackground(r,t,e){var a=r.gl,i=r.transform,n=i.tileSize,o=e.paint["background-color"],l=e.paint["background-pattern"],u=e.paint["background-opacity"],f=!l&&1===o[3]&&1===u;if(r.isOpaquePass===f){a.disable(a.STENCIL_TEST),r.setDepthSublayer(0);var s;l?(s=r.useProgram("fillPattern",r.basicFillProgramConfiguration),pattern.prepare(l,r,s),r.tileExtentPatternVAO.bind(a,s,r.tileExtentBuffer)):(s=r.useProgram("fill",r.basicFillProgramConfiguration),a.uniform4fv(s.u_color,o),r.tileExtentVAO.bind(a,s,r.tileExtentBuffer)),a.uniform1f(s.u_opacity,u);for(var c=i.coveringTiles({tileSize:n}),g=0,p=c;g":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]}; +},{"../data/buffer":51,"../data/extent":54,"../data/pos_array":57,"../util/browser":192,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(require,module,exports){ +"use strict";function drawFill(t,e,r,i){var a=t.gl;a.enable(a.STENCIL_TEST);var l=!r.paint["fill-pattern"]&&r.isPaintValueFeatureConstant("fill-color")&&r.isPaintValueFeatureConstant("fill-opacity")&&1===r.paint["fill-color"][3]&&1===r.paint["fill-opacity"];t.isOpaquePass===l&&(t.setDepthSublayer(1),drawFillTiles(t,e,r,i,drawFillTile)),!t.isOpaquePass&&r.paint["fill-antialias"]&&(t.lineWidth(2),t.depthMask(!1),t.setDepthSublayer(r.getPaintProperty("fill-outline-color")?2:0),drawFillTiles(t,e,r,i,drawStrokeTile))}function drawFillTiles(t,e,r,i,a){for(var l=!0,n=0,o=i;n0?1/(1-r):1+r}function saturationFactor(r){return r>0?1-1/(1.001-r):-r}function getFadeValues(r,t,e,a){var i=e.paint["raster-fade-duration"];if(r.sourceCache&&i>0){var o=Date.now(),n=(o-r.timeAdded)/i,u=t?(o-t.timeAdded)/i:-1,s=r.sourceCache.getSource(),c=a.coveringZoomLevel({tileSize:s.tileSize,roundZoom:s.roundZoom}),f=!t||Math.abs(t.coord.z-c)>Math.abs(r.coord.z-c),d=f&&r.refreshedUponExpiration?1:util.clamp(f?n:1-u,0,1);return r.refreshedUponExpiration&&n>=1&&(r.refreshedUponExpiration=!1),t?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}var util=require("../util/util");module.exports=drawRaster; +},{"../util/util":212}],74:[function(require,module,exports){ +"use strict";function drawSymbols(e,t,a,i){if(!e.isOpaquePass){var o=!(a.layout["text-allow-overlap"]||a.layout["icon-allow-overlap"]||a.layout["text-ignore-placement"]||a.layout["icon-ignore-placement"]),r=e.gl;o?r.disable(r.STENCIL_TEST):r.enable(r.STENCIL_TEST),e.setDepthSublayer(0),e.depthMask(!1),drawLayerSymbols(e,t,a,i,!1,a.paint["icon-translate"],a.paint["icon-translate-anchor"],a.layout["icon-rotation-alignment"],a.layout["icon-rotation-alignment"],a.layout["icon-size"]),drawLayerSymbols(e,t,a,i,!0,a.paint["text-translate"],a.paint["text-translate-anchor"],a.layout["text-rotation-alignment"],a.layout["text-pitch-alignment"],a.layout["text-size"]),t.map.showCollisionBoxes&&drawCollisionDebug(e,t,a,i)}}function drawLayerSymbols(e,t,a,i,o,r,n,l,s,u){if(o||!e.style.sprite||e.style.sprite.loaded()){var f=e.gl,m="map"===l,p="map"===s,c=p;c?f.enable(f.DEPTH_TEST):f.disable(f.DEPTH_TEST);for(var d,_,h=0,g=i;hthis.previousZoom;a--)r.changeTimes[a]=e,r.changeOpacities[a]=r.opacities[a];for(a=0;a<256;a++){var s=e-r.changeTimes[a],o=255*(i?s/i:1);a<=t?r.opacities[a]=r.changeOpacities[a]+o:r.opacities[a]=r.changeOpacities[a]-o}this.changed=!0,this.previousZoom=t},FrameHistory.prototype.bind=function(e){this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.changed&&(e.texSubImage2D(e.TEXTURE_2D,0,0,0,256,1,e.ALPHA,e.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,256,1,0,e.ALPHA,e.UNSIGNED_BYTE,this.array))},module.exports=FrameHistory; +},{}],76:[function(require,module,exports){ +"use strict";var util=require("../util/util"),LineAtlas=function(t,i){this.width=t,this.height=i,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};LineAtlas.prototype.setSprite=function(t){this.sprite=t},LineAtlas.prototype.getDash=function(t,i){var e=t.join(",")+i;return this.positions[e]||(this.positions[e]=this.addDash(t,i)),this.positions[e]},LineAtlas.prototype.addDash=function(t,i){var e=this,h=i?7:0,s=2*h+1,a=128;if(this.nextRow+s>this.height)return util.warnOnce("LineAtlas out of space"),null;for(var r=0,n=0;n0?r.pop():null},Painter.prototype.getViewportTexture=function(e,r){var t=this.reusableTextures.viewport;if(t)return t.width===e&&t.height===r?t:(this.gl.deleteTexture(t),void(this.reusableTextures.viewport=null))},Painter.prototype.lineWidth=function(e){this.gl.lineWidth(util.clamp(e,this.lineWidthRange[0],this.lineWidthRange[1]))},Painter.prototype.showOverdrawInspector=function(e){if(e||this._showOverdrawInspector){this._showOverdrawInspector=e;var r=this.gl;if(e){r.blendFunc(r.CONSTANT_COLOR,r.ONE);var t=8,i=1/t;r.blendColor(i,i,i,0),r.clearColor(0,0,0,1),r.clear(r.COLOR_BUFFER_BIT)}else r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA)}},Painter.prototype.createProgram=function(e,r){var t=this.gl,i=t.createProgram(),a=shaders[e],s="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+browser.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(s+="#define OVERDRAW_INSPECTOR;\n");var o=r.applyPragmas(s+shaders.prelude.fragmentSource+a.fragmentSource,"fragment"),n=r.applyPragmas(s+shaders.prelude.vertexSource+a.vertexSource,"vertex"),l=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(l,o),t.compileShader(l),t.attachShader(i,l);var h=t.createShader(t.VERTEX_SHADER);t.shaderSource(h,n),t.compileShader(h),t.attachShader(i,h),t.linkProgram(i);for(var u=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:u},p=0;p>16,n>>16),o.uniform2f(i.u_pixel_coord_lower,65535&u,65535&n)}; +},{"../source/pixels_to_tile_units":87}],79:[function(require,module,exports){ +"use strict";var path=require("path");module.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n\n// To minimize the number of attributes needed in the mapbox-gl-native shaders,\n// we encode a 4-component color into a pair of floats (i.e. a vec2) as follows:\n// [ floor(color.r * 255) * 256 + color.g * 255,\n// floor(color.b * 255) * 256 + color.g * 255 ]\nvec4 decode_color(const vec2 encodedColor) {\n float r = floor(encodedColor[0]/256.0)/255.0;\n float g = (encodedColor[0] - r*256.0*255.0)/255.0;\n float b = floor(encodedColor[1]/256.0)/255.0;\n float a = (encodedColor[1] - b*256.0*255.0)/255.0;\n return vec4(r, g, b, a);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\n return mix(packedValue[0], packedValue[1], t);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\n vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\n vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\n return mix(minColor, maxColor, t);\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, a_pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, a_pos);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_a * u_pattern_size_a, u_tile_units_to_pixels, pos);\n v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, u_scale_b * u_pattern_size_b, u_tile_units_to_pixels, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(0.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float offset\n #pragma mapbox: initialize mediump float gapwidth\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n" +},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\n\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\n\nuniform bool u_is_halo;\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_font_scale;\nuniform highp float u_gamma_scale;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / u_gamma_scale;\n lowp float buff = (256.0 - 64.0) / 256.0;\n if (u_is_halo) {\n color = halo_color;\n gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / u_gamma_scale;\n buff = (6.0 - halo_width / u_font_scale) / SDF_PX;\n }\n\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n highp float gamma_scaled = gamma * v_gamma_scale;\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist) * fade_alpha;\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}; +},{"path":23}],80:[function(require,module,exports){ +"use strict";var VertexArrayObject=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};VertexArrayObject.prototype.bind=function(e,t,r,i,n,o){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var s=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!e.extVertexArrayObject||s?(this.freshBind(e,t,r,i,n,o),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,o){var s,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),s=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{s=e.currentNumAttributes||0;for(var b=u;bthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,r={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",r,function(i,r){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(r,o.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(o)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(Evented);module.exports=GeoJSONSource; +},{"../data/extent":54,"../util/evented":200,"../util/util":212,"../util/window":194}],83:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),rewind=require("geojson-rewind"),GeoJSONWrapper=require("./geojson_wrapper"),vtpbf=require("vt-pbf"),supercluster=require("supercluster"),geojsonvt=require("geojson-vt"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=function(e){function r(r,t,o){e.call(this,r,t),o&&(this.loadGeoJSON=o),this._geoJSONIndexes={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadVectorData=function(e,r){var t=e.source,o=e.coord;if(!this._geoJSONIndexes[t])return r(null,null);var n=this._geoJSONIndexes[t].getTile(Math.min(o.z,e.maxZoom),o.x,o.y);if(!n)return r(null,null);var u=new GeoJSONWrapper(n.features);u.name="_geojsonTileLayer";var a=vtpbf({layers:{_geojsonTileLayer:u}});0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),u.rawData=a.buffer,r(null,u)},r.prototype.loadData=function(e,r){var t=function(t,o){var n=this;return t?r(t):"object"!=typeof o?r(new Error("Input data is not a valid GeoJSON object.")):(rewind(o,!0),void this._indexData(o,e,function(t,o){return t?r(t):(n._geoJSONIndexes[e.source]=o,void r(null))}))}.bind(this);this.loadGeoJSON(e,t)},r.prototype.loadGeoJSON=function(e,r){if(e.url)ajax.getJSON(e.url,r);else{if("string"!=typeof e.data)return r(new Error("Input data is not a valid GeoJSON object."));try{return r(null,JSON.parse(e.data))}catch(e){return r(new Error("Input data is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(e){this._geoJSONIndexes[e.source]&&delete this._geoJSONIndexes[e.source]},r.prototype._indexData=function(e,r,t){try{r.cluster?t(null,supercluster(r.superclusterOptions).load(e.features)):t(null,geojsonvt(e,r.geojsonVtOptions))}catch(e){return t(e)}},r}(VectorTileWorkerSource);module.exports=GeoJSONWorkerSource; +},{"../util/ajax":191,"./geojson_wrapper":84,"./vector_tile_worker_source":96,"geojson-rewind":7,"geojson-vt":11,"supercluster":29,"vt-pbf":38}],84:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTENT=require("../data/extent"),FeatureWrapper=function(e){var t=this;if(this.type=e.type,1===e.type){this.rawGeometry=[];for(var r=0;rt)){var n=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(e.z,i._source.maxzoom));if(Math.floor(a.coord.x/n)===e.x&&Math.floor(a.coord.y/n)===e.y)for(o[s]=!0,r=!0;a&&a.coord.z-1>e.z;){var d=a.coord.parent(i._source.maxzoom).id;a=i._tiles[d],a&&a.hasData()&&(delete o[s],o[d]=!0)}}}return r},t.prototype.findLoadedParent=function(e,t,o){for(var i=this,r=e.z-1;r>=t;r--){e=e.parent(i._source.maxzoom);var s=i._tiles[e.id];if(s&&s.hasData())return o[e.id]=!0,s;if(i._cache.has(e.id))return o[e.id]=!0,i._cache.getWithoutRemoving(e.id)}},t.prototype.updateCacheSize=function(e){var t=Math.ceil(e.width/e.tileSize)+1,o=Math.ceil(e.height/e.tileSize)+1,i=t*o,r=5;this._cache.setMaxSize(Math.floor(i*r))},t.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded){var i,r,s,a;this.updateCacheSize(e);var n=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),d=Math.max(n-t.maxOverzooming,this._source.minzoom),c=Math.max(n+t.maxUnderzooming,this._source.minzoom),h={};this._coveredTiles={};var u;for(u=this.used?this._source.coord?[this._source.coord]:e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),a=o.findLoadedParent(r,d,l),a&&o.addTile(a.coord))}var f;for(f in l)h[f]||(o._coveredTiles[f]=!0);for(f in l)h[f]=!0;var T=util.keysDifference(this._tiles,h);for(i=0;ithis._source.maxzoom?Math.pow(2,r-this._source.maxzoom):1;t=new Tile(o,this._source.tileSize*s,this._source.maxzoom),this.loadTile(t,this._tileLoaded.bind(this,t,e.id,t.state))}return t.uses++,this._tiles[e.id]=t,i||this._source.fire("dataloading",{tile:t,coord:t.coord,dataType:"source"}),t},t.prototype._setTileReloadTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._timers[e]=setTimeout(function(){o.reloadTile(e,"expired"),o._timers[e]=void 0},i))},t.prototype._setCacheInvalidationTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._cacheTimers[e]=setTimeout(function(){o._cache.remove(e),o._cacheTimers[e]=void 0},i))},t.prototype.removeTile=function(e){var t=this._tiles[e];if(t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),this._timers[e]=void 0),!(t.uses>0)))if(t.hasData()){var o=t.coord.wrapped().id;this._cache.add(o,t),this._setCacheInvalidationTimer(o,t)}else t.aborted=!0,this.abortTile(t),this.unloadTile(t)},t.prototype.clearTiles=function(){var e=this;for(var t in e._tiles)e.removeTile(t);this._cache.reset()},t.prototype.tilesIn=function(e){for(var t=this,o={},i=this.getIds(),r=1/0,s=1/0,a=-(1/0),n=-(1/0),d=e[0].zoom,c=0;c=0&&p[1].y>=0){for(var _=[],f=0;fo)r=!1;else if(t)if(this.expirationTimei.row){var o=t;t=i,i=o}return{x0:t.column,y0:t.row,x1:i.column,y1:i.row,dx:i.column-t.column,dy:i.row-t.row}}function scanSpans(t,i,o,r,e){var n=Math.max(o,Math.floor(i.y0)),h=Math.min(r,Math.ceil(i.y1));if(t.x0===i.x0&&t.y0===i.y0?t.x0+i.dy/t.dy*t.dx0,l=i.dx<0,u=n;ua.dy&&(h=s,s=a,a=h),s.dy>d.dy&&(h=s,s=d,d=h),a.dy>d.dy&&(h=a,a=d,d=h),s.dy&&scanSpans(d,s,r,e,n),a.dy&&scanSpans(d,a,r,e,n)}function getQuadkey(t,i,o){for(var r,e="",n=t;n>0;n--)r=1<t?new TileCoord(this.z-1,this.x,this.y,this.w):new TileCoord(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},TileCoord.prototype.wrapped=function(){return new TileCoord(this.z,this.x,this.y,0)},TileCoord.prototype.children=function(t){if(this.z>=t)return[new TileCoord(this.z+1,this.x,this.y,this.w)];var i=this.z+1,o=2*this.x,r=2*this.y;return[new TileCoord(i,o,r,this.w),new TileCoord(i,o+1,r,this.w),new TileCoord(i,o,r+1,this.w),new TileCoord(i,o+1,r+1,this.w)]},TileCoord.cover=function(t,i,o,r){function e(t,i,e){var s,a,d,y;if(e>=0&&e<=n)for(s=t;sthis.maxzoom?Math.pow(2,e.coord.z-this.maxzoom):1,r={url:normalizeURL(e.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:e.uid,coord:e.coord,zoom:e.coord.z,tileSize:this.tileSize*o,type:this.type,source:this.id,overscaling:o,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};e.workerID&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=t:this.dispatcher.send("reloadTile",r,i.bind(this),e.workerID):e.workerID=this.dispatcher.send("loadTile",r,i.bind(this))},t.prototype.abortTile=function(e){this.dispatcher.send("abortTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t.prototype.unloadTile=function(e){e.unloadVectorData(),this.dispatcher.send("removeTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t}(Evented);module.exports=VectorTileSource; +},{"../util/evented":200,"../util/mapbox":208,"../util/util":212,"./load_tilejson":86}],96:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),vt=require("vector-tile"),Protobuf=require("pbf"),WorkerTile=require("./worker_tile"),util=require("../util/util"),VectorTileWorkerSource=function(e,r,t){this.actor=e,this.layerIndex=r,t&&(this.loadVectorData=t),this.loading={},this.loaded={}};VectorTileWorkerSource.prototype.loadTile=function(e,r){function t(e,t){return delete this.loading[o][i],e?r(e):t?(a.vectorTile=t,a.parse(t,this.layerIndex,this.actor,function(e,o,i){if(e)return r(e);var a={};t.expires&&(a.expires=t.expires),t.cacheControl&&(a.cacheControl=t.cacheControl),r(null,util.extend({rawTileData:t.rawData},o,a),i)}),this.loaded[o]=this.loaded[o]||{},void(this.loaded[o][i]=a)):r(null,null)}var o=e.source,i=e.uid;this.loading[o]||(this.loading[o]={});var a=this.loading[o][i]=new WorkerTile(e);a.abort=this.loadVectorData(e,t.bind(this))},VectorTileWorkerSource.prototype.reloadTile=function(e,r){function t(e,t){if(this.reloadCallback){var o=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,a.layerIndex,a.actor,o)}r(e,t)}var o=this.loaded[e.source],i=e.uid,a=this;if(o&&o[i]){var l=o[i];"parsing"===l.status?l.reloadCallback=r:"done"===l.status&&l.parse(l.vectorTile,this.layerIndex,this.actor,t.bind(l))}},VectorTileWorkerSource.prototype.abortTile=function(e){var r=this.loading[e.source],t=e.uid;r&&r[t]&&r[t].abort&&(r[t].abort(),delete r[t])},VectorTileWorkerSource.prototype.removeTile=function(e){var r=this.loaded[e.source],t=e.uid;r&&r[t]&&delete r[t]},VectorTileWorkerSource.prototype.loadVectorData=function(e,r){function t(e,t){if(e)return r(e);var o=new vt.VectorTile(new Protobuf(t.data));o.rawData=t.data,o.cacheControl=t.cacheControl,o.expires=t.expires,r(e,o)}var o=ajax.getArrayBuffer(e.url,t.bind(this));return function(){o.abort()}},VectorTileWorkerSource.prototype.redoPlacement=function(e,r){var t=this.loaded[e.source],o=this.loading[e.source],i=e.uid;if(t&&t[i]){var a=t[i],l=a.redoPlacement(e.angle,e.pitch,e.showCollisionBoxes);l.result&&r(null,l.result,l.transferables)}else o&&o[i]&&(o[i].angle=e.angle)},module.exports=VectorTileWorkerSource; +},{"../util/ajax":191,"../util/util":212,"./worker_tile":99,"pbf":25,"vector-tile":34}],97:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),ImageSource=require("./image_source"),VideoSource=function(t){function e(e,o,i,r){t.call(this,e,o,i,r),this.roundZoom=!0,this.type="video",this.options=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,ajax.getVideo(e.urls,function(e,o){if(e)return t.fire("error",{error:e});t.video=o,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(ImageSource);module.exports=VideoSource; +},{"../util/ajax":191,"./image_source":85}],98:[function(require,module,exports){ +"use strict";var Actor=require("../util/actor"),StyleLayerIndex=require("../style/style_layer_index"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=require("./geojson_worker_source"),globalRTLTextPlugin=require("./rtl_text_plugin"),Worker=function(e){var r=this;this.self=e,this.actor=new Actor(e,this),this.layerIndexes={},this.workerSourceTypes={vector:VectorTileWorkerSource,geojson:GeoJSONWorkerSource},this.workerSources={},this.self.registerWorkerSource=function(e,o){if(r.workerSourceTypes[e])throw new Error('Worker source with name "'+e+'" already registered.');r.workerSourceTypes[e]=o},this.self.registerRTLTextPlugin=function(e){if(globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText)throw new Error("RTL text plugin already registered.");globalRTLTextPlugin.applyArabicShaping=e.applyArabicShaping,globalRTLTextPlugin.processBidirectionalText=e.processBidirectionalText}};Worker.prototype.setLayers=function(e,r){this.getLayerIndex(e).replace(r)},Worker.prototype.updateLayers=function(e,r){this.getLayerIndex(e).update(r.layers,r.removedIds,r.symbolOrder)},Worker.prototype.loadTile=function(e,r,o){this.getWorkerSource(e,r.type).loadTile(r,o)},Worker.prototype.reloadTile=function(e,r,o){this.getWorkerSource(e,r.type).reloadTile(r,o)},Worker.prototype.abortTile=function(e,r){this.getWorkerSource(e,r.type).abortTile(r)},Worker.prototype.removeTile=function(e,r){this.getWorkerSource(e,r.type).removeTile(r)},Worker.prototype.removeSource=function(e,r){var o=this.getWorkerSource(e,r.type);void 0!==o.removeSource&&o.removeSource(r)},Worker.prototype.redoPlacement=function(e,r,o){this.getWorkerSource(e,r.type).redoPlacement(r,o)},Worker.prototype.loadWorkerSource=function(e,r,o){try{this.self.importScripts(r.url),o()}catch(e){o(e)}},Worker.prototype.loadRTLTextPlugin=function(e,r,o){try{globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText||this.self.importScripts(r)}catch(e){o(e)}},Worker.prototype.getLayerIndex=function(e){var r=this.layerIndexes[e];return r||(r=this.layerIndexes[e]=new StyleLayerIndex),r},Worker.prototype.getWorkerSource=function(e,r){var o=this;if(this.workerSources[e]||(this.workerSources[e]={}),!this.workerSources[e][r]){var t={send:function(r,t,i,n){o.actor.send(r,t,i,n,e)}};this.workerSources[e][r]=new this.workerSourceTypes[r](t,this.getLayerIndex(e))}return this.workerSources[e][r]},module.exports=function(e){return new Worker(e)}; +},{"../style/style_layer_index":154,"../util/actor":190,"./geojson_worker_source":83,"./rtl_text_plugin":90,"./vector_tile_worker_source":96}],99:[function(require,module,exports){ +"use strict";function recalculateLayers(e,i){for(var r=0,o=e.layers;r=B.maxzoom||B.layout&&"none"===B.layout.visibility)){for(var b=0,k=x;b=0;w--){var A=n[i.symbolOrder[w]];A&&t.symbolBuckets.push(A)}if(0===this.symbolBuckets.length)return T(new CollisionTile(this.angle,this.pitch,this.collisionBoxArray));var D=0,I=Object.keys(c.iconDependencies),O=util.mapObject(c.glyphDependencies,function(e){return Object.keys(e).map(Number)}),L=function(e){if(e)return o(e);if(D++,2===D){for(var i=new CollisionTile(t.angle,t.pitch,t.collisionBoxArray),r=0,s=t.symbolBuckets;r"===i||"<="===i||">="===i?compileComparisonOp(e[1],e[2],i,!0):"any"===i?compileLogicalOp(e.slice(1),"||"):"all"===i?compileLogicalOp(e.slice(1),"&&"):"none"===i?compileNegation(compileLogicalOp(e.slice(1),"||")):"in"===i?compileInOp(e[1],e.slice(2)):"!in"===i?compileNegation(compileInOp(e[1],e.slice(2))):"has"===i?compileHasOp(e[1]):"!has"===i?compileNegation(compileHasOp(e[1])):"true";return"("+n+")"}function compilePropertyReference(e){return"$type"===e?"f.type":"$id"===e?"f.id":"p["+JSON.stringify(e)+"]"}function compileComparisonOp(e,i,n,r){var o=compilePropertyReference(e),t="$type"===e?types.indexOf(i):JSON.stringify(i);return(r?"typeof "+o+"=== typeof "+t+"&&":"")+o+n+t}function compileLogicalOp(e,i){return e.map(compile).join(i)}function compileInOp(e,i){"$type"===e&&(i=i.map(function(e){return types.indexOf(e)}));var n=JSON.stringify(i.sort(compare)),r=compilePropertyReference(e);return i.length<=200?n+".indexOf("+r+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+r+", "+n+",0,"+(i.length-1)+")"}function compileHasOp(e){return"$id"===e?'"id" in f':JSON.stringify(e)+" in p"}function compileNegation(e){return"!("+e+")"}function compare(e,i){return ei?1:0}module.exports=createFilter;var types=["Unknown","Point","LineString","Polygon"]; +},{}],104:[function(require,module,exports){ +"use strict";function xyz2lab(r){return r>t3?Math.pow(r,1/3):r/t2+t0}function lab2xyz(r){return r>t1?r*r*r:t2*(r-t0)}function xyz2rgb(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function rgb2xyz(r){return r/=255,r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function rgbToLab(r){var t=rgb2xyz(r[0]),a=rgb2xyz(r[1]),n=rgb2xyz(r[2]),b=xyz2lab((.4124564*t+.3575761*a+.1804375*n)/Xn),o=xyz2lab((.2126729*t+.7151522*a+.072175*n)/Yn),g=xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn);return[116*o-16,500*(b-o),200*(o-g),r[3]]}function labToRgb(r){var t=(r[0]+16)/116,a=isNaN(r[1])?t:t+r[1]/500,n=isNaN(r[2])?t:t-r[2]/200;return t=Yn*lab2xyz(t),a=Xn*lab2xyz(a),n=Zn*lab2xyz(n),[xyz2rgb(3.2404542*a-1.5371385*t-.4985314*n),xyz2rgb(-.969266*a+1.8760108*t+.041556*n),xyz2rgb(.0556434*a-.2040259*t+1.0572252*n),r[3]]}function rgbToHcl(r){var t=rgbToLab(r),a=t[0],n=t[1],b=t[2],o=Math.atan2(b,n)*rad2deg;return[o<0?o+360:o,Math.sqrt(n*n+b*b),a,r[3]]}function hclToRgb(r){var t=r[0]*deg2rad,a=r[1],n=r[2];return labToRgb([n,Math.cos(t)*a,Math.sin(t)*a,r[3]])}var Xn=.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;module.exports={lab:{forward:rgbToLab,reverse:labToRgb},hcl:{forward:rgbToHcl,reverse:hclToRgb}}; +},{}],105:[function(require,module,exports){ +"use strict";function identityFunction(t){return t}function createFunction(t,e){var o,n="color"===e.type;if(isFunctionDefinition(t)){var r=t.stops&&"object"==typeof t.stops[0][0],a=r||void 0!==t.property,i=r||!a,s=t.type||("interpolated"===e.function?"exponential":"interval");n&&(t=extend({},t),t.stops&&(t.stops=t.stops.map(function(t){return[t[0],parseColor(t[1])]})),t.default?t.default=parseColor(t.default):t.default=parseColor(e.default));var u,p,l;if("exponential"===s)u=evaluateExponentialFunction;else if("interval"===s)u=evaluateIntervalFunction;else if("categorical"===s){u=evaluateCategoricalFunction,p=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var r=binarySearchForIndex(t.stops,o);return t.stops[r][1]}function evaluateExponentialFunction(t,e,o){var n=void 0!==t.base?t.base:1;if("number"!==getType(o))return coalesce(t.default,e.default);var r=t.stops.length;if(1===r)return t.stops[0][1];if(o<=t.stops[0][0])return t.stops[0][1];if(o>=t.stops[r-1][0])return t.stops[r-1][1];var a=binarySearchForIndex(t.stops,o);return interpolate(o,n,t.stops[a][0],t.stops[a+1][0],t.stops[a][1],t.stops[a+1][1])}function evaluateIdentityFunction(t,e,o){return"color"===e.type?o=parseColor(o):getType(o)!==e.type&&(o=void 0),coalesce(o,t.default,e.default)}function binarySearchForIndex(t,e){for(var o,n,r=t.length,a=0,i=r-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e>=o&&ee&&(i=s-1)}return Math.max(s-1,0)}function interpolate(t,e,o,n,r,a){return"function"==typeof r?function(){var i=r.apply(void 0,arguments),s=a.apply(void 0,arguments);if(void 0!==i&&void 0!==s)return interpolate(t,e,o,n,i,s)}:r.length?interpolateArray(t,e,o,n,r,a):interpolateNumber(t,e,o,n,r,a)}function interpolateNumber(t,e,o,n,r,a){var i,s=n-o,u=t-o;return i=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),r*(1-i)+a*i}function interpolateArray(t,e,o,n,r,a){for(var i=[],s=0;s255?255:e}function clamp_css_float(e){return e<0?0:e>1?1:e}function parse_css_int(e){return clamp_css_byte("%"===e[e.length-1]?parseFloat(e)/100*255:parseInt(e))}function parse_css_float(e){return clamp_css_float("%"===e[e.length-1]?parseFloat(e)/100:parseFloat(e))}function css_hue_to_rgb(e,r,l){return l<0?l+=1:l>1&&(l-=1),6*l<1?e+(r-e)*l*6:2*l<1?r:3*l<2?e+(r-e)*(2/3-l)*6:e}function parseCSSColor(e){var r=e.replace(/ /g,"").toLowerCase();if(r in kCSSColorTable)return kCSSColorTable[r].slice();if("#"===r[0]){if(4===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=4095?[(3840&l)>>4|(3840&l)>>8,240&l|(240&l)>>4,15&l|(15&l)<<4,1]:null}if(7===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=16777215?[(16711680&l)>>16,(65280&l)>>8,255&l,1]:null}return null}var a=r.indexOf("("),t=r.indexOf(")");if(a!==-1&&t+1===r.length){var n=r.substr(0,a),s=r.substr(a+1,t-(a+1)).split(","),o=1;switch(n){case"rgba":if(4!==s.length)return null;o=parse_css_float(s.pop());case"rgb":return 3!==s.length?null:[parse_css_int(s[0]),parse_css_int(s[1]),parse_css_int(s[2]),o];case"hsla":if(4!==s.length)return null;o=parse_css_float(s.pop());case"hsl":if(3!==s.length)return null;var i=(parseFloat(s[0])%360+360)%360/360,u=parse_css_float(s[1]),g=parse_css_float(s[2]),d=g<=.5?g*(u+1):g+u-g*u,c=2*g-d;return[clamp_css_byte(255*css_hue_to_rgb(c,d,i+1/3)),clamp_css_byte(255*css_hue_to_rgb(c,d,i)),clamp_css_byte(255*css_hue_to_rgb(c,d,i-1/3)),o];default:return null}}return null}var kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{exports.parseCSSColor=parseCSSColor}catch(e){} +},{}],108:[function(require,module,exports){ +function sss(r){var e,t,s,n,u,a;switch(typeof r){case"object":if(null===r)return null;if(isArray(r)){for(s="[",t=r.length-1,e=0;e-1&&(s+=sss(r[e])),s+"]"}for(n=objKeys(r).sort(),t=n.length,s="{",u=n[e=0],a=t>0&&void 0!==r[u];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};module.exports=function(r){if(void 0!==r)return""+sss(r)},module.exports.stringSearch=strReg,module.exports.stringReplace=strReplace; +},{}],109:[function(require,module,exports){ +function isObjectLike(r){return!!r&&"object"==typeof r}function arraySome(r,e){for(var a=-1,t=r.length;++as))return!1;for(;++c-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isObject(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function isObjectLike(t){return!!t&&"object"==typeof t}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,propertyIsEnumerable=objectProto.propertyIsEnumerable;module.exports=isArguments; +},{}],113:[function(require,module,exports){ +function isObjectLike(t){return!!t&&"object"==typeof t}function getNative(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}function isLength(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isFunction(t){return isObject(t)&&objToString.call(t)==funcTag}function isObject(t){var r=typeof t;return!!t&&("object"==r||"function"==r)}function isNative(t){return null!=t&&(isFunction(t)?reIsNative.test(fnToString.call(t)):isObjectLike(t)&&reIsHostCtor.test(t))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(t){return isObjectLike(t)&&isLength(t.length)&&objToString.call(t)==arrayTag};module.exports=isArray; +},{}],114:[function(require,module,exports){ +function isEqual(a,l,i,e){i="function"==typeof i?bindCallback(i,e,3):void 0;var s=i?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback");module.exports=isEqual; +},{"lodash._baseisequal":109,"lodash._bindcallback":110}],115:[function(require,module,exports){ +function isLength(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=MAX_SAFE_INTEGER}function isObjectLike(a){return!!a&&"object"==typeof a}function isTypedArray(a){return isObjectLike(a)&&isLength(a.length)&&!!typedArrayTags[objectToString.call(a)]}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objectToString=objectProto.toString;module.exports=isTypedArray; +},{}],116:[function(require,module,exports){ +function baseProperty(e){return function(t){return null==t?void 0:t[e]}}function isArrayLike(e){return null!=e&&isLength(getLength(e))}function isIndex(e,t){return e="number"==typeof e||reIsUint.test(e)?+e:-1,t=null==t?MAX_SAFE_INTEGER:t,e>-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function shimKeys(e){for(var t=keysIn(e),r=t.length,n=r&&e.length,s=!!n&&isLength(n)&&(isArray(e)||isArguments(e)),o=-1,i=[];++o0;++n":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":22,"value":["number","color"],"length":2},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"transition":false},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","transition":true,"function":"interpolated","zoom-function":true,"property-function":false},"color":{"type":"color","default":"#ffffff","function":"interpolated","zoom-function":true,"property-function":false,"transition":true},"intensity":{"type":"number","default":0.5,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":false,"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],"paint_fill":{"fill-antialias":{"type":"boolean","function":"piecewise-constant","zoom-function":true,"default":true},"fill-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"}]},"fill-outline-color":{"type":"color","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}]},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"]},"fill-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":false,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-extrusion-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-extrusion-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"]},"fill-extrusion-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"fill-extrusion-height":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true},"fill-extrusion-base":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"]}},"paint_line":{"line-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"line-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"line-pattern"}]},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"]},"line-width":{"type":"number","default":1,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-gap-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-offset":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-dasharray":{"type":"array","value":"number","function":"piecewise-constant","zoom-function":true,"minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}]},"line-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-blur":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"circle-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"]},"circle-pitch-scale":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-stroke-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"]},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"]}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-hue-rotate":{"type":"number","default":0,"period":360,"function":"interpolated","zoom-function":true,"transition":true,"units":"degrees"},"raster-brightness-min":{"type":"number","function":"interpolated","zoom-function":true,"default":0,"minimum":0,"maximum":1,"transition":true},"raster-brightness-max":{"type":"number","function":"interpolated","zoom-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"milliseconds"}},"paint_background":{"background-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"transition":true,"requires":[{"!":"background-pattern"}]},"background-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}}} +},{}],119:[function(require,module,exports){ +"use strict";module.exports=function(r){for(var t=arguments,e=1;e7)return[new ValidationError(u,a,"constants have been deprecated as of v8")];if(!(a in l.constants))return[new ValidationError(u,a,'constant "%s" not found',a)];e=extend({},e,{value:l.constants[a]})}return n.function&&"object"===getType(a)?r(e):n.type&&i[n.type]?i[n.type](e):t(extend({},e,{valueSpec:n.type?o[n.type]:n}))}; +},{"../error/validation_error":102,"../util/extend":119,"../util/get_type":120,"./validate_array":125,"./validate_boolean":126,"./validate_color":127,"./validate_constants":128,"./validate_enum":129,"./validate_filter":130,"./validate_function":131,"./validate_layer":133,"./validate_light":135,"./validate_number":136,"./validate_object":137,"./validate_source":140,"./validate_string":141}],125:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),validate=require("./validate"),ValidationError=require("../error/validation_error");module.exports=function(e){var r=e.value,t=e.valueSpec,a=e.style,n=e.styleSpec,l=e.key,i=e.arrayElementValidator||validate;if("array"!==getType(r))return[new ValidationError(l,r,"array expected, %s found",getType(r))];if(t.length&&r.length!==t.length)return[new ValidationError(l,r,"array length %d expected, length %d found",t.length,r.length)];if(t["min-length"]&&r.length7)return t?[new ValidationError(e,t,"constants have been deprecated as of v8")]:[];var o=getType(t);if("object"!==o)return[new ValidationError(e,t,"object expected, %s found",o)];var n=[];for(var i in t)"@"!==i[0]&&n.push(new ValidationError(e+"."+i,t[i],'constants must start with "@"'));return n}; +},{"../error/validation_error":102,"../util/get_type":120}],129:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?u.values.indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):Object.keys(u.values).indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123}],130:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateEnum=require("./validate_enum"),getType=require("../util/get_type"),unbundle=require("../util/unbundle_jsonlint");module.exports=function e(r){var t,a=r.value,n=r.key,l=r.styleSpec,s=[];if("array"!==getType(a))return[new ValidationError(n,a,"array expected, %s found",getType(a))];if(a.length<1)return[new ValidationError(n,a,"filter array must have at least 1 element")];switch(s=s.concat(validateEnum({key:n+"[0]",value:a[0],valueSpec:l.filter_operator,style:r.style,styleSpec:r.styleSpec})),unbundle(a[0])){case"<":case"<=":case">":case">=":a.length>=2&&"$type"===unbundle(a[1])&&s.push(new ValidationError(n,a,'"$type" cannot be use with operator "%s"',a[0]));case"==":case"!=":3!==a.length&&s.push(new ValidationError(n,a,'filter array for operator "%s" must have 3 elements',a[0]));case"in":case"!in":a.length>=2&&(t=getType(a[1]),"string"!==t&&s.push(new ValidationError(n+"[1]",a[1],"string expected, %s found",t)));for(var o=2;ounbundle(r[0].zoom))return[new ValidationError(o,r[0].zoom,"stop zoom values must appear in ascending order")];unbundle(r[0].zoom)!==l&&(l=unbundle(r[0].zoom),i=void 0,s={}),t=t.concat(validateObject({key:o+"[0]",value:r[0],valueSpec:{zoom:{}},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:validateNumber,value:a}}))}else t=t.concat(a({key:o+"[0]",value:r[0],valueSpec:{},style:e.style,styleSpec:e.styleSpec}));return t.concat(validate({key:o+"[1]",value:r[1],valueSpec:u,style:e.style,styleSpec:e.styleSpec}))}function a(e){var t=getType(e.value),r=unbundle(e.value);if(n){if(t!==n)return[new ValidationError(e.key,e.value,"%s stop domain type must match previous stop domain type %s",t,n)]}else n=t;if("number"!==t&&"string"!==t&&"boolean"!==t)return[new ValidationError(e.key,e.value,"stop domain value must be a number, string, or boolean")];if("number"!==t&&"categorical"!==p){var a="number expected, %s found";return u["property-function"]&&void 0===p&&(a+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ValidationError(e.key,e.value,a,t)]}return"categorical"!==p||"number"!==t||isFinite(r)&&Math.floor(r)===r?"number"===t&&void 0!==i&&r=8&&(d&&!e.valueSpec["property-function"]?v.push(new ValidationError(e.key,e.value,"property functions not supported")):y&&!e.valueSpec["zoom-function"]&&v.push(new ValidationError(e.key,e.value,"zoom functions not supported"))),"categorical"!==p&&!c||void 0!==e.value.property||v.push(new ValidationError(e.key,e.value,'"property" property is required')),v}; +},{"../error/validation_error":102,"../util/get_type":120,"../util/unbundle_jsonlint":123,"./validate":124,"./validate_array":125,"./validate_number":136,"./validate_object":137}],132:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateString=require("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(e.indexOf("{fontstack}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}; +},{"../error/validation_error":102,"./validate_string":141}],133:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateFilter=require("./validate_filter"),validatePaintProperty=require("./validate_paint_property"),validateLayoutProperty=require("./validate_layout_property"),extend=require("../util/extend");module.exports=function(e){var r=[],t=e.value,a=e.key,i=e.style,l=e.styleSpec;t.type||t.ref||r.push(new ValidationError(a,t,'either "type" or "ref" is required'));var u=unbundle(t.type),n=unbundle(t.ref);if(t.id)for(var o=unbundle(t.id),s=0;sm.maximum?[new ValidationError(r,i,"%s is greater than the maximum value %s",i,m.maximum)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],137:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),getType=require("../util/get_type"),validateSpec=require("./validate");module.exports=function(e){var r=e.key,t=e.value,i=e.valueSpec||{},a=e.objectElementValidators||{},o=e.style,l=e.styleSpec,n=[],u=getType(t);if("object"!==u)return[new ValidationError(r,t,"object expected, %s found",u)];for(var d in t){var p=d.split(".")[0],s=i[p]||i["*"],c=void 0;if(a[p])c=a[p];else if(i[p])c=validateSpec;else if(a["*"])c=a["*"];else{if(!i["*"]){n.push(new ValidationError(r,t[d],'unknown property "%s"',d));continue}c=validateSpec}n=n.concat(c({key:(r?r+".":r)+d,value:t[d],valueSpec:s,style:o,styleSpec:l,object:t,objectKey:d}))}for(var v in i)i[v].required&&void 0===i[v].default&&void 0===t[v]&&n.push(new ValidationError(r,t,'missing required property "%s"',v));return n}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],138:[function(require,module,exports){ +"use strict";var validateProperty=require("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}; +},{"./validate_property":139}],139:[function(require,module,exports){ +"use strict";var validate=require("./validate"),ValidationError=require("../error/validation_error"),getType=require("../util/get_type");module.exports=function(e,t){var r=e.key,i=e.style,a=e.styleSpec,n=e.value,o=e.objectKey,l=a[t+"_"+e.layerType];if(!l)return[];var y=o.match(/^(.*)-transition$/);if("paint"===t&&y&&l[y[1]]&&l[y[1]].transition)return validate({key:r,value:n,valueSpec:a.transition,style:i,styleSpec:a});var p=e.valueSpec||l[o];if(!p)return[new ValidationError(r,n,'unknown property "%s"',o)];var s;if("string"===getType(n)&&p["property-function"]&&!p.tokens&&(s=/^{([^}]+)}$/.exec(n)))return[new ValidationError(r,n,'"%s" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": %s` }`.',o,JSON.stringify(s[1]))];var u=[];return"symbol"===e.layerType&&"text-field"===o&&i&&!i.glyphs&&u.push(new ValidationError(r,n,'use of "text-field" requires a style "glyphs" property')),u.concat(validate({key:e.key,value:n,valueSpec:p,style:i,styleSpec:a}))}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],140:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateEnum=require("./validate_enum");module.exports=function(e){var a=e.value,t=e.key,r=e.styleSpec,l=e.style;if(!a.type)return[new ValidationError(t,a,'"type" is required')];var u=unbundle(a.type),i=[];switch(u){case"vector":case"raster":if(i=i.concat(validateObject({key:t,value:a,valueSpec:r.source_tile,style:e.style,styleSpec:r})),"url"in a)for(var s in a)["type","url","tileSize"].indexOf(s)<0&&i.push(new ValidationError(t+"."+s,a[s],'a source with a "url" property may not include a "%s" property',s));return i;case"geojson":return validateObject({key:t,value:a,valueSpec:r.source_geojson,style:l,styleSpec:r});case"video":return validateObject({key:t,value:a,valueSpec:r.source_video,style:l,styleSpec:r});case"image":return validateObject({key:t,value:a,valueSpec:r.source_image,style:l,styleSpec:r});case"canvas":return validateObject({key:t,value:a,valueSpec:r.source_canvas,style:l,styleSpec:r});default:return validateEnum({key:t+".type",value:a.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:l,styleSpec:r})}}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123,"./validate_enum":129,"./validate_object":137}],141:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),ValidationError=require("../error/validation_error");module.exports=function(r){var e=r.value,t=r.key,i=getType(e);return"string"!==i?[new ValidationError(t,e,"string expected, %s found",i)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],142:[function(require,module,exports){ +"use strict";function validateStyleMin(e,a){a=a||latestStyleSpec;var t=[];return t=t.concat(validate({key:"",value:e,valueSpec:a.$root,styleSpec:a,style:e,objectElementValidators:{glyphs:validateGlyphsURL,"*":function(){return[]}}})),a.$version>7&&e.constants&&(t=t.concat(validateConstants({key:"constants",value:e.constants,style:e,styleSpec:a}))),sortErrors(t)}function sortErrors(e){return[].concat(e).sort(function(e,a){return e.line-a.line})}function wrapCleanErrors(e){return function(){return sortErrors(e.apply(this,arguments))}}var validateConstants=require("./validate/validate_constants"),validate=require("./validate/validate"),latestStyleSpec=require("./reference/latest"),validateGlyphsURL=require("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(require("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(require("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(require("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(require("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(require("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(require("./validate/validate_layout_property")),module.exports=validateStyleMin; +},{"./reference/latest":117,"./validate/validate":124,"./validate/validate_constants":128,"./validate/validate_filter":130,"./validate/validate_glyphs_url":132,"./validate/validate_layer":133,"./validate/validate_layout_property":134,"./validate/validate_light":135,"./validate/validate_paint_property":138,"./validate/validate_source":140}],143:[function(require,module,exports){ +"use strict";var AnimationLoop=function(){this.n=0,this.times=[]};AnimationLoop.prototype.stopped=function(){return this.times=this.times.filter(function(t){return t.time>=(new Date).getTime()}),!this.times.length},AnimationLoop.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},AnimationLoop.prototype.cancel=function(t){this.times=this.times.filter(function(i){return i.id!==t})},module.exports=AnimationLoop; +},{}],144:[function(require,module,exports){ +"use strict";var Evented=require("../util/evented"),ajax=require("../util/ajax"),browser=require("../util/browser"),normalizeURL=require("../util/mapbox").normalizeSpriteURL,SpritePosition=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},ImageSprite=function(t){function i(i,e){var a=this;t.call(this),this.base=i,this.retina=browser.devicePixelRatio>1,this.setEventedParent(e);var r=this.retina?"@2x":"";ajax.getJSON(normalizeURL(i,r,".json"),function(t,i){return t?void a.fire("error",{error:t}):(a.data=i,void(a.imgData&&a.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(i,r,".png"),function(t,i){if(t)return void a.fire("error",{error:t});a.imgData=browser.getImageData(i);for(var e=0;e1!==this.retina){var e=new i(this.base);e.on("data",function(){t.data=e.data,t.imgData=e.imgData,t.width=e.width,t.retina=e.retina})}},i.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var i=this.data&&this.data[t];return i&&this.imgData?i:new SpritePosition},i}(Evented);module.exports=ImageSprite; +},{"../util/ajax":191,"../util/browser":192,"../util/evented":200,"../util/mapbox":208}],145:[function(require,module,exports){ +"use strict";var styleSpec=require("../style-spec/reference/latest"),util=require("../util/util"),Evented=require("../util/evented"),validateStyle=require("./validate_style"),StyleDeclaration=require("./style_declaration"),StyleTransition=require("./style_transition"),TRANSITION_SUFFIX="-transition",Light=function(t){function i(i){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=styleSpec.light,this.set(i)}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.set=function(t){var i=this;if(!this._validate(validateStyle.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=util.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var e=0,o=i.properties;eMath.floor(e)&&(t.lastIntegerZoom=Math.floor(e+1),t.lastIntegerZoomTime=Date.now()),t.lastZoom=e},t.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},t.prototype.update=function(e,t){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),o=Object.keys(this._removedLayers);(i.length||o.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,o);for(var s in r._updatedSources){var a=r._updatedSources[s];"reload"===a?r._reloadSource(s):"clear"===a&&r._clearSource(s)}this._applyClasses(e,t),this._resetUpdates(),this.fire("data",{dataType:"style"})}},t.prototype._updateWorkerLayers=function(e,t){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(e){return"symbol"===r._layers[e].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t,symbolOrder:i})},t.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={},this._updatedAllPaintProps=!1},t.prototype.setState=function(e){var t=this;if(this._checkLoaded(),validateStyle.emitErrors(this,validateStyle(e)))return!1;e=util.extend({},e),e.layers=deref(e.layers);var r=diff(this.serialize(),e).filter(function(e){return!(e.command in ignoredDiffOperations)});if(0===r.length)return!1;var i=r.filter(function(e){return!(e.command in supportedDiffOperations)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(e){return e.command}).join(", ")+".");return r.forEach(function(e){"setTransition"!==e.command&&t[e.command].apply(t,e.args)}),this.stylesheet=e,!0},t.prototype.addSource=function(e,t,r){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!t.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(t)+".");var o=["vector","raster","geojson","video","image","canvas"],s=o.indexOf(t.type)>=0;if(!s||!this._validate(validateStyle.source,"sources."+e,t,null,r)){var a=this.sourceCaches[e]=new SourceCache(e,t,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},t.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");var t=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],t.setEventedParent(null),t.clearTiles(),t.onRemove&&t.onRemove(this.map),this._changed=!0},t.prototype.getSource=function(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()},t.prototype.addLayer=function(e,t,r){this._checkLoaded();var i=e.id;if("object"==typeof e.source&&(this.addSource(i,e.source),e=util.extend(e,{source:i})),!this._validate(validateStyle.layer,"layers."+i,e,{arrayIndex:-1},r)){var o=StyleLayer.create(e);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var s=t?this._order.indexOf(t):this._order.length;if(this._order.splice(s,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var a=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=a.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},t.prototype.moveLayer=function(e,t){this._checkLoaded(),this._changed=!0;var r=this._layers[e];if(!r)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(e);this._order.splice(i,1);var o=t?this._order.indexOf(t):this._order.length;this._order.splice(o,0,e),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(!t)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")});t.setEventedParent(null);var r=this._order.indexOf(e);this._order.splice(r,1),"symbol"===t.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[e]=t,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]},t.prototype.getLayer=function(e){return this._layers[e]},t.prototype.setLayerZoomRange=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(i.minzoom===t&&i.maxzoom===r||(null!=t&&(i.minzoom=t),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")})},t.prototype.setFilter=function(e,t){this._checkLoaded();var r=this.getLayer(e);return r?void(null!==t&&void 0!==t&&this._validate(validateStyle.filter,"layers."+r.id+".filter",t)||util.deepEqual(r.filter,t)||(r.filter=util.clone(t),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")})},t.prototype.getFilter=function(e){return util.clone(this.getLayer(e).filter)},t.prototype.setLayoutProperty=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(util.deepEqual(i.getLayoutProperty(t),r)||(i.setLayoutProperty(t,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},t.prototype.getLayoutProperty=function(e,t){return this.getLayer(e).getLayoutProperty(t)},t.prototype.setPaintProperty=function(e,t,r,i){this._checkLoaded();var o=this.getLayer(e);if(!o)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")});if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i);var a=!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&s||this._updateLayer(o),this.updateClasses(e,t)}},t.prototype.getPaintProperty=function(e,t,r){return this.getLayer(e).getPaintProperty(t,r)},t.prototype.getTransition=function(){return util.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},t.prototype.updateClasses=function(e,t){if(this._changed=!0,e){var r=this._updatedPaintProps;r[e]||(r[e]={}),r[e][t||"all"]=!0}else this._updatedAllPaintProps=!0},t.prototype.serialize=function(){var e=this;return util.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:util.mapObject(this.sourceCaches,function(e){return e.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(e){return void 0!==e})},t.prototype._updateLayer=function(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&(this._updatedSources[e.source]="reload"),this._changed=!0},t.prototype._flattenRenderedFeatures=function(e){for(var t=this,r=[],i=this._order.length-1;i>=0;i--)for(var o=t._order[i],s=0,a=e;s=this.maxzoom)||"none"===this.layout.visibility)},i.prototype.updatePaintTransitions=function(t,i,a,e,n){for(var o=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return e;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((o-this.startTime-this.delay)/this.duration);return this.interp(a,e,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var o=t.zoom,e=this.zoomHistory.lastIntegerZoom,a=o>e?2:.5,n=this.declaration.calculate({zoom:o>e?o-1:o+1},i),r=this.declaration.calculate({zoom:o},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(o-e),u=interpolate(s,1,l);return void 0!==n&&void 0!==r?{from:n,fromScale:a,to:r,toScale:1,t:u}:void 0},module.exports=StyleTransition; +},{"../util/interpolate":204,"../util/util":212}],156:[function(require,module,exports){ +"use strict";module.exports=require("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(s--,s<0)return!1;f-=e[s].dist(i),i=e[s]}f+=e[s].dist(e[s+1]),s++;for(var l=[],o=0;f
r;)o-=l.shift().angleDelta;if(o>n)return!1;s++,f+=c.dist(g)}return!0}module.exports=checkMaxAngle; +},{}],159:[function(require,module,exports){ +"use strict";function clipLine(n,x,y,o,e){for(var r=[],t=0;t=o&&w.x>=o||(P.x>=o?P=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round():w.x>=o&&(w=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round()),P.y>=e&&w.y>=e||(P.y>=e?P=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round():w.y>=e&&(w=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round()),u&&P.equals(u[u.length-1])||(u=[P],r.push(u)),u.push(w)))))}return r}var Point=require("point-geometry");module.exports=clipLine; +},{"point-geometry":26}],160:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),Point=require("point-geometry"),CollisionBoxArray=createStructArrayType({members:[{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(CollisionBoxArray.prototype.StructType.prototype,"anchorPoint",{get:function(){return new Point(this.anchorPointX,this.anchorPointY)}}),module.exports=CollisionBoxArray; +},{"../util/struct_array":210,"point-geometry":26}],161:[function(require,module,exports){ +"use strict";var CollisionFeature=function(t,e,i,o,s,a,n,r,l,d,u){var h=n.top*r-l,x=n.bottom*r+l,f=n.left*r-l,m=n.right*r+l;if(this.boxStartIndex=t.length,d){var _=x-h,b=m-f;if(_>0)if(_=Math.max(10*r,_),u){var v=e[i.segment+1].sub(e[i.segment])._unit()._mult(b),c=[i.sub(v),i.add(v)];this._addLineCollisionBoxes(t,c,i,0,b,_,o,s,a)}else this._addLineCollisionBoxes(t,e,i,i.segment,b,_,o,s,a)}else t.emplaceBack(i.x,i.y,f,h,m,x,1/0,o,s,a,0,0,0,0,0);this.boxEndIndex=t.length};CollisionFeature.prototype._addLineCollisionBoxes=function(t,e,i,o,s,a,n,r,l){var d=a/2,u=Math.floor(s/d),h=-a/2,x=this.boxes,f=i,m=o+1,_=h;do{if(m--,m<0)return x;_-=e[m].dist(f),f=e[m]}while(_>-s/2);for(var b=e[m].dist(e[m+1]),v=0;v=e.length)return x;b=e[m].dist(e[m+1])}var g=c-_,p=e[m],C=e[m+1],B=C.sub(p)._unit()._mult(g)._add(p)._round(),M=Math.max(Math.abs(c-h)-d/2,0),y=s/2/M;t.emplaceBack(B.x,B.y,-a/2,-a/2,a/2,a/2,y,n,r,l,0,0,0,0,0)}return x},module.exports=CollisionFeature; +},{}],162:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),EXTENT=require("../data/extent"),Grid=require("grid-index"),intersectionTests=require("../util/intersection_tests"),CollisionTile=function(t,e,i){if("object"==typeof t){var r=t;i=e,t=r.angle,e=r.pitch,this.grid=new Grid(r.grid),this.ignoredGrid=new Grid(r.ignoredGrid)}else this.grid=new Grid(EXTENT,12,6),this.ignoredGrid=new Grid(EXTENT,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),o=Math.cos(t);if(this.rotationMatrix=[o,-a,a,o],this.reverseRotationMatrix=[o,a,-a,o],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=i,0===i.length){i.emplaceBack();var n=32767;i.emplaceBack(0,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(EXTENT,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,0,-n,0,n,0,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,EXTENT,-n,0,n,0,n,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=i.get(0),this.edges=[i.get(1),i.get(2),i.get(3),i.get(4)]};CollisionTile.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),i=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(i)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:i}},CollisionTile.prototype.placeCollisionFeature=function(t,e,i){for(var r=this,a=this.collisionBoxArray,o=this.minScale,n=this.rotationMatrix,l=this.yStretch,h=t.boxStartIndex;h=r.maxScale)return o}if(i){var S=void 0;if(r.angle){var P=r.reverseRotationMatrix,b=new Point(s.x1,s.y1).matMult(P),T=new Point(s.x2,s.y1).matMult(P),w=new Point(s.x1,s.y2).matMult(P),N=new Point(s.x2,s.y2).matMult(P);S=r.tempCollisionBox,S.anchorPointX=s.anchorPoint.x,S.anchorPointY=s.anchorPoint.y,S.x1=Math.min(b.x,T.x,w.x,N.x),S.y1=Math.min(b.y,T.x,w.x,N.x),S.x2=Math.max(b.x,T.x,w.x,N.x),S.y2=Math.max(b.y,T.x,w.x,N.x),S.maxScale=s.maxScale}else S=s;for(var B=0;B=r.maxScale)return o}}}return o},CollisionTile.prototype.queryRenderedSymbols=function(t,e){var i={},r=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return r;for(var a=this.collisionBoxArray,o=this.rotationMatrix,n=this.yStretch,l=[],h=1/0,s=1/0,x=-(1/0),c=-(1/0),g=0;gS.maxScale)){var T=S.anchorPoint.matMult(o),w=T.x+S.x1/e,N=T.y+S.y1/e*n,B=T.x+S.x2/e,G=T.y+S.y2/e*n,E=[new Point(w,N),new Point(B,N),new Point(B,G),new Point(w,G)];intersectionTests.polygonIntersectsPolygon(l,E)&&(i[P][b]=!0,r.push(u[v]))}}return r},CollisionTile.prototype.getPlacementScale=function(t,e,i,r,a){var o=e.x-r.x,n=e.y-r.y,l=(a.x1-i.x2)/o,h=(a.x2-i.x1)/o,s=(a.y1-i.y2)*this.yStretch/n,x=(a.y2-i.y1)*this.yStretch/n;(isNaN(l)||isNaN(h))&&(l=h=1),(isNaN(s)||isNaN(x))&&(s=x=1);var c=Math.min(Math.max(l,h),Math.max(s,x)),g=a.maxScale,y=i.maxScale;return c>g&&(c=g),c>y&&(c=y),c>t&&c>=a.placementScale&&(t=c),t},CollisionTile.prototype.insertCollisionFeature=function(t,e,i){for(var r=this,a=i?this.ignoredGrid:this.grid,o=this.collisionBoxArray,n=t.boxStartIndex;n=0&&k=0&&q=0&&p+c<=s){var M=new Anchor(k,q,y,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=A}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,h)),x}var interpolate=require("../util/interpolate"),Anchor=require("../symbol/anchor"),checkMaxAngle=require("./check_max_angle");module.exports=getAnchors; +},{"../symbol/anchor":157,"../util/interpolate":204,"./check_max_angle":158}],164:[function(require,module,exports){ +"use strict";var ShelfPack=require("@mapbox/shelf-pack"),util=require("../util/util"),SIZE_GROWTH_RATE=4,DEFAULT_SIZE=128,MAX_SIZE=2048,GlyphAtlas=function(){this.width=DEFAULT_SIZE,this.height=DEFAULT_SIZE,this.atlas=new ShelfPack(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};GlyphAtlas.prototype.getGlyphs=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]=[]),r[i].push(e);return r},GlyphAtlas.prototype.getRects=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]={}),r[i][e]=h.index[s];return r},GlyphAtlas.prototype.addGlyph=function(t,i,e,h){var r=this;if(!e)return null;var s=i+"#"+e.id;if(this.index[s])return this.ids[s].indexOf(t)<0&&this.ids[s].push(t),this.index[s];if(!e.bitmap)return null;var a=e.width+2*h,E=e.height+2*h,n=1,l=a+2*n,T=E+2*n;l+=4-l%4,T+=4-T%4;var u=this.atlas.packOne(l,T);if(u||(this.resize(),u=this.atlas.packOne(l,T)),!u)return util.warnOnce("glyph bitmap overflow"),null;this.index[s]=u,this.ids[s]=[t];for(var d=this.data,p=e.bitmap,A=0;A=MAX_SIZE||e>=MAX_SIZE)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=SIZE_GROWTH_RATE,this.height*=SIZE_GROWTH_RATE,this.atlas.resize(this.width,this.height);for(var h=new ArrayBuffer(this.width*this.height),r=0;r65535)return a("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var l=this.loading[t];if(l[e])l[e].push(a);else{l[e]=[a];var i=256*e+"-"+(256*e+255),r=glyphUrl(t,i,this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},i.prototype.addIcons=function(t,i){for(var e=this,r=0;r1||(b?(clearTimeout(b),b=null,h("dblclick",t)):b=setTimeout(l,300))}function i(e){f("touchmove",e)}function c(e){f("touchend",e)}function d(e){f("touchcancel",e)}function l(){b=null}function s(e){var t=DOM.mousePos(g,e);t.equals(L)&&h("click",e)}function v(e){h("dblclick",e),e.preventDefault()}function m(t){var n=e.dragRotate&&e.dragRotate.isActive();E||n?E&&(p=t):h("contextmenu",t),t.preventDefault()}function h(t,n){var o=DOM.mousePos(g,n);return e.fire(t,{lngLat:e.unproject(o),point:o,originalEvent:n})}function f(t,n){var o=DOM.touchPos(g,n),r=o.reduce(function(e,t,n,o){return e.add(t.div(o.length))},new Point(0,0));return e.fire(t,{lngLat:e.unproject(r),point:r,lngLats:o.map(function(t){return e.unproject(t)},this),points:o,originalEvent:n})}var g=e.getCanvasContainer(),p=null,E=!1,L=null,b=null;for(var q in handlers)e[q]=new handlers[q](e,t),t.interactive&&t[q]&&e[q].enable(t[q]);g.addEventListener("mouseout",n,!1),g.addEventListener("mousedown",o,!1),g.addEventListener("mouseup",r,!1),g.addEventListener("mousemove",a,!1),g.addEventListener("touchstart",u,!1),g.addEventListener("touchend",c,!1),g.addEventListener("touchmove",i,!1),g.addEventListener("touchcancel",d,!1),g.addEventListener("click",s,!1),g.addEventListener("dblclick",v,!1),g.addEventListener("contextmenu",m,!1)}; +},{"../util/dom":199,"./handler/box_zoom":179,"./handler/dblclick_zoom":180,"./handler/drag_pan":181,"./handler/drag_rotate":182,"./handler/keyboard":183,"./handler/scroll_zoom":184,"./handler/touch_zoom_rotate":185,"point-geometry":26}],172:[function(require,module,exports){ +"use strict";var util=require("../util/util"),interpolate=require("../util/interpolate"),browser=require("../util/browser"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),Evented=require("../util/evented"),Camera=function(t){function i(i,e){t.call(this),this.moving=!1,this.transform=i,this._bearingSnap=e.bearingSnap}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.getCenter=function(){return this.transform.center},i.prototype.setCenter=function(t,i){return this.jumpTo({center:t},i),this},i.prototype.panBy=function(t,i,e){return this.panTo(this.transform.center,util.extend({offset:Point.convert(t).mult(-1)},i),e),this},i.prototype.panTo=function(t,i,e){return this.easeTo(util.extend({center:t},i),e)},i.prototype.getZoom=function(){return this.transform.zoom},i.prototype.setZoom=function(t,i){return this.jumpTo({zoom:t},i),this},i.prototype.zoomTo=function(t,i,e){return this.easeTo(util.extend({zoom:t},i),e)},i.prototype.zoomIn=function(t,i){return this.zoomTo(this.getZoom()+1,t,i),this},i.prototype.zoomOut=function(t,i){return this.zoomTo(this.getZoom()-1,t,i),this},i.prototype.getBearing=function(){return this.transform.bearing},i.prototype.setBearing=function(t,i){return this.jumpTo({bearing:t},i),this},i.prototype.rotateTo=function(t,i,e){return this.easeTo(util.extend({bearing:t},i),e)},i.prototype.resetNorth=function(t,i){return this.rotateTo(0,util.extend({duration:1e3},t),i),this},i.prototype.snapToNorth=function(t,i){return Math.abs(this.getBearing())i?1:0}),["bottom","left","right","top"]))return void util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'");t=LngLatBounds.convert(t);var n=[i.padding.left-i.padding.right,i.padding.top-i.padding.bottom],r=Math.min(i.padding.right,i.padding.left),s=Math.min(i.padding.top,i.padding.bottom);i.offset=[i.offset[0]+n[0],i.offset[1]+n[1]];var a=Point.convert(i.offset),h=this.transform,u=h.project(t.getNorthWest()),p=h.project(t.getSouthEast()),c=p.sub(u),g=(h.width-2*r-2*Math.abs(a.x))/c.x,m=(h.height-2*s-2*Math.abs(a.y))/c.y;return m<0||g<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(i.center=h.unproject(u.add(p).div(2)),i.zoom=Math.min(h.scaleZoom(h.scale*Math.min(g,m)),i.maxZoom),i.bearing=0,i.linear?this.easeTo(i,e):this.flyTo(i,e))},i.prototype.jumpTo=function(t,i){this.stop();var e=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&e.zoom!==+t.zoom&&(o=!0,e.zoom=+t.zoom),"center"in t&&(e.center=LngLat.convert(t.center)),"bearing"in t&&e.bearing!==+t.bearing&&(n=!0,e.bearing=+t.bearing),"pitch"in t&&e.pitch!==+t.pitch&&(r=!0,e.pitch=+t.pitch),this.fire("movestart",i).fire("move",i),o&&this.fire("zoomstart",i).fire("zoom",i).fire("zoomend",i),n&&this.fire("rotate",i),r&&this.fire("pitch",i),this.fire("moveend",i)},i.prototype.easeTo=function(t,i){var e=this;this.stop(),t=util.extend({offset:[0,0],duration:500,easing:util.ease},t);var o,n,r=this.transform,s=Point.convert(t.offset),a=this.getZoom(),h=this.getBearing(),u=this.getPitch(),p="zoom"in t?+t.zoom:a,c="bearing"in t?this._normalizeBearing(t.bearing,h):h,g="pitch"in t?+t.pitch:u;"center"in t?(o=LngLat.convert(t.center),n=r.centerPoint.add(s)):"around"in t?(o=LngLat.convert(t.around),n=r.locationPoint(o)):(n=r.centerPoint.add(s),o=r.pointLocation(n));var m=r.locationPoint(o);return t.animate===!1&&(t.duration=0),this.zooming=p!==a,this.rotating=h!==c,this.pitching=g!==u,t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration)),t.noMoveStart||(this.moving=!0,this.fire("movestart",i)),this.zooming&&this.fire("zoomstart",i),clearTimeout(this._onEaseEnd),this._ease(function(t){this.zooming&&(r.zoom=interpolate(a,p,t)),this.rotating&&(r.bearing=interpolate(h,c,t)),this.pitching&&(r.pitch=interpolate(u,g,t)),r.setLocationAtPoint(o,m.add(n.sub(m)._mult(t))),this.fire("move",i),this.zooming&&this.fire("zoom",i),this.rotating&&this.fire("rotate",i),this.pitching&&this.fire("pitch",i)},function(){t.delayEndEvents?e._onEaseEnd=setTimeout(e._easeToEnd.bind(e,i),t.delayEndEvents):e._easeToEnd(i)},t),this},i.prototype._easeToEnd=function(t){var i=this.zooming;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,i&&this.fire("zoomend",t),this.fire("moveend",t)},i.prototype.flyTo=function(t,i){function e(t){var i=(y*y-z*z+(t?-1:1)*E*E*_*_)/(2*(t?y:z)*E*_);return Math.log(Math.sqrt(i*i+1)-i)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function n(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/n(t)}this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,a=Point.convert(t.offset),h=this.getZoom(),u=this.getBearing(),p=this.getPitch(),c="center"in t?LngLat.convert(t.center):this.getCenter(),g="zoom"in t?+t.zoom:h,m="bearing"in t?this._normalizeBearing(t.bearing,u):u,f="pitch"in t?+t.pitch:p;Math.abs(s.center.lng)+Math.abs(c.lng)>180&&(s.center.lng>0&&c.lng<0?c.lng+=360:s.center.lng<0&&c.lng>0&&(c.lng-=360));var d=s.zoomScale(g-h),l=s.point,v="center"in t?s.project(c).sub(a.div(d)):l,b=t.curve,z=Math.max(s.width,s.height),y=z/d,_=v.sub(l).mag();if("minZoom"in t){var M=util.clamp(Math.min(t.minZoom,h,g),s.minZoom,s.maxZoom),T=z/s.zoomScale(M-h);b=Math.sqrt(T/_*2)}var E=b*b,x=e(0),L=function(t){return n(x)/n(x+b*t)},Z=function(t){return z*((n(x)*r(x+b*t)-o(x))/E)/_},P=(e(1)-x)/b;if(Math.abs(_)<1e-6){if(Math.abs(z-y)<1e-6)return this.easeTo(t,i);var j=y=0)return!1;return!0}),this._container.innerHTML=i.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},module.exports=AttributionControl; +},{"../../util/dom":199,"../../util/util":212}],174:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),FullscreenControl=function(){this._fullscreen=!1,util.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in window.document&&(this._fullscreenchange="MSFullscreenChange")};FullscreenControl.prototype.onAdd=function(e){var n="mapboxgl-ctrl",t=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),l=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return l.setAttribute("aria-label","Toggle fullscreen"),l.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),t},FullscreenControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},FullscreenControl.prototype._isFullscreen=function(){return this._fullscreen},FullscreenControl.prototype._changeIcon=function(e){if(e.target===this._mapContainer){this._fullscreen=!this._fullscreen;var n="mapboxgl-ctrl";this._fullscreenButton.classList.toggle(n+"-shrink"),this._fullscreenButton.classList.toggle(n+"-fullscreen")}},FullscreenControl.prototype._onClickFullscreen=function(){this._isFullscreen()?window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen&&window.document.webkitCancelFullScreen():this._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()},module.exports=FullscreenControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],175:[function(require,module,exports){ +"use strict";function checkGeolocationSupport(t){void 0!==supportsGeolocation?t(supportsGeolocation):void 0!==window.navigator.permissions?window.navigator.permissions.query({name:"geolocation"}).then(function(o){supportsGeolocation="denied"!==o.state,t(supportsGeolocation)}):(supportsGeolocation=!!window.navigator.geolocation,t(supportsGeolocation))}var Evented=require("../../util/evented"),DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},className="mapboxgl-ctrl",supportsGeolocation,GeolocateControl=function(t){function o(o){t.call(this),this.options=o||{},util.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group"),checkGeolocationSupport(this._setupUI),this._container},o.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},o.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},o.prototype._onError=function(t){this.fire("error",t),this._finish()},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},o.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button",className+"-icon "+className+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},o.prototype._onClickGeolocate=function(){var t=util.extend(defaultGeoPositionOptions,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},o}(Evented);module.exports=GeolocateControl; +},{"../../util/dom":199,"../../util/evented":200,"../../util/util":212,"../../util/window":194}],176:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),LogoControl=function(){util.bindAll(["_updateLogo"],this)};LogoControl.prototype.onAdd=function(o){return this._map=o,this._container=DOM.create("div","mapboxgl-ctrl"),this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._container},LogoControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateLogo)},LogoControl.prototype.getDefaultPosition=function(){return"bottom-left"},LogoControl.prototype._updateLogo=function(o){if(o&&"metadata"===o.sourceDataType)if(!this._container.childNodes.length&&this._logoRequired()){var t=DOM.create("a","mapboxgl-ctrl-logo");t.target="_blank",t.href="https://www.mapbox.com/",t.setAttribute("aria-label","Mapbox logo"),this._container.appendChild(t),this._map.off("data",this._updateLogo)}else this._container.childNodes.length&&!this._logoRequired()&&this.onRemove()},LogoControl.prototype._logoRequired=function(){if(this._map.style){var o=this._map.style.sourceCaches;for(var t in o){var e=o[t].getSource();if(e.mapbox_logo)return!0}return!1}},module.exports=LogoControl; +},{"../../util/dom":199,"../../util/util":212}],177:[function(require,module,exports){ +"use strict";function copyMouseEvent(t){return new window.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),className="mapboxgl-ctrl",NavigationControl=function(){util.bindAll(["_rotateCompassArrow"],this)};NavigationControl.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},NavigationControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(className+"-icon "+className+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(className+"-icon "+className+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(className+"-icon "+className+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=DOM.create("span",className+"-compass-arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},NavigationControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},NavigationControl.prototype._onContextMenu=function(t){t.preventDefault()},NavigationControl.prototype._onCompassDown=function(t){0===t.button&&(DOM.disableDrag(),window.document.addEventListener("mousemove",this._onCompassMove),window.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassUp=function(t){0===t.button&&(window.document.removeEventListener("mousemove",this._onCompassMove),window.document.removeEventListener("mouseup",this._onCompassUp),DOM.enableDrag(),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._createButton=function(t,o,e){var n=DOM.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",o),n.addEventListener("click",function(){e()}),n},module.exports=NavigationControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],178:[function(require,module,exports){ +"use strict";function updateScale(t,e,o){var n=o&&o.maxWidth||100,i=t._container.clientHeight/2,a=getDistance(t.unproject([0,i]),t.unproject([n,i]));if(o&&"imperial"===o.unit){var r=3.2808*a;if(r>5280){var l=r/5280;setScale(e,n,l,"mi")}else setScale(e,n,r,"ft")}else setScale(e,n,a,"m")}function setScale(t,e,o,n){var i=getRoundNum(o),a=i/o;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*a+"px",t.innerHTML=i+n}function getDistance(t,e){var o=6371e3,n=Math.PI/180,i=t.lat*n,a=e.lat*n,r=Math.sin(i)*Math.sin(a)+Math.cos(i)*Math.cos(a)*Math.cos((e.lng-t.lng)*n),l=o*Math.acos(Math.min(r,1));return l}function getRoundNum(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),o=t/e;return o=o>=10?10:o>=5?5:o>=3?3:o>=2?2:1,e*o}var DOM=require("../../util/dom"),util=require("../../util/util"),ScaleControl=function(t){this.options=t,util.bindAll(["_onMove"],this)};ScaleControl.prototype.getDefaultPosition=function(){return"bottom-left"},ScaleControl.prototype._onMove=function(){updateScale(this._map,this._container,this.options)},ScaleControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ScaleControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},module.exports=ScaleControl; +},{"../../util/dom":199,"../../util/util":212}],179:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),LngLatBounds=require("../../geo/lng_lat_bounds"),util=require("../../util/util"),window=require("../../util/window"),BoxZoomHandler=function(o){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),util.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};BoxZoomHandler.prototype.isEnabled=function(){return!!this._enabled},BoxZoomHandler.prototype.isActive=function(){return!!this._active},BoxZoomHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},BoxZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},BoxZoomHandler.prototype._onMouseDown=function(o){o.shiftKey&&0===o.button&&(window.document.addEventListener("mousemove",this._onMouseMove,!1),window.document.addEventListener("keydown",this._onKeyDown,!1),window.document.addEventListener("mouseup",this._onMouseUp,!1),DOM.disableDrag(),this._startPos=DOM.mousePos(this._el,o),this._active=!0)},BoxZoomHandler.prototype._onMouseMove=function(o){var e=this._startPos,t=DOM.mousePos(this._el,o);this._box||(this._box=DOM.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",o));var n=Math.min(e.x,t.x),i=Math.max(e.x,t.x),s=Math.min(e.y,t.y),r=Math.max(e.y,t.y);DOM.setTransform(this._box,"translate("+n+"px,"+s+"px)"),this._box.style.width=i-n+"px",this._box.style.height=r-s+"px"},BoxZoomHandler.prototype._onMouseUp=function(o){if(0===o.button){var e=this._startPos,t=DOM.mousePos(this._el,o),n=(new LngLatBounds).extend(this._map.unproject(e)).extend(this._map.unproject(t));this._finish(),e.x===t.x&&e.y===t.y?this._fireEvent("boxzoomcancel",o):this._map.fitBounds(n,{linear:!0}).fire("boxzoomend",{originalEvent:o,boxZoomBounds:n})}},BoxZoomHandler.prototype._onKeyDown=function(o){27===o.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",o))},BoxZoomHandler.prototype._finish=function(){this._active=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!1),window.document.removeEventListener("keydown",this._onKeyDown,!1),window.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),DOM.enableDrag()},BoxZoomHandler.prototype._fireEvent=function(o,e){return this._map.fire(o,{originalEvent:e})},module.exports=BoxZoomHandler; +},{"../../geo/lng_lat_bounds":63,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],180:[function(require,module,exports){ +"use strict";var DoubleClickZoomHandler=function(o){this._map=o,this._onDblClick=this._onDblClick.bind(this)};DoubleClickZoomHandler.prototype.isEnabled=function(){return!!this._enabled},DoubleClickZoomHandler.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},DoubleClickZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},DoubleClickZoomHandler.prototype._onDblClick=function(o){this._map.zoomTo(this._map.getZoom()+(o.originalEvent.shiftKey?-1:1),{around:o.lngLat},o)},module.exports=DoubleClickZoomHandler; +},{}],181:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.3,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=1400,inertiaDeceleration=2500,DragPanHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};DragPanHandler.prototype.isEnabled=function(){return!!this._enabled},DragPanHandler.prototype.isActive=function(){return!!this._active},DragPanHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},DragPanHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(window.document.addEventListener("touchmove",this._onMove),window.document.addEventListener("touchend",this._onTouchEnd)):(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onMouseUp)),window.addEventListener("blur",this._onMouseUp),this._active=!1,this._startPos=this._pos=DOM.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},DragPanHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=DOM.mousePos(this._el,t),n=this._map;n.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),n.transform.setLocationAtPoint(n.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},DragPanHandler.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var n=function(){e._map.moving=!1,e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void n();var o=i[i.length-1],r=i[0],a=o[1].sub(r[1]),s=(o[0]-r[0])/1e3;if(0===s||o[1].equals(r[1]))return void n();var u=a.mult(inertiaLinearity/s),d=u.mag();d>inertiaMaxSpeed&&(d=inertiaMaxSpeed,u._unit()._mult(d));var h=d/(inertiaDeceleration*inertiaLinearity),v=u.mult(-h/2);this._map.panBy(v,{duration:1e3*h,easing:inertiaEasing,noMoveStart:!0},{originalEvent:t})}},DragPanHandler.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onMouseUp),window.removeEventListener("blur",this._onMouseUp))},DragPanHandler.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onTouchEnd))},DragPanHandler.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},DragPanHandler.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var n=1,i=0;return"mousemove"===t.type?t.buttons&0===n:t.button&&t.button!==i},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),n=160;t.length>0&&e-t[0][0]>n;)t.shift()},module.exports=DragPanHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],182:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.25,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=180,inertiaDeceleration=720,DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,util.bindAll(["_onDown","_onMove","_onUp"],this)};DragRotateHandler.prototype.isEnabled=function(){return!!this._enabled},DragRotateHandler.prototype.isActive=function(){return!!this._active},DragRotateHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},DragRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},DragRotateHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onUp),window.addEventListener("blur",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=DOM.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},DragRotateHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=(i.y-n.y)*-.5,o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,v=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,v[1])]),e.transform.bearing=o,this._pitchWithRotate&&(e.transform.pitch=s),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},DragRotateHandler.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onUp),window.removeEventListener("blur",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var i=this._map,n=i.getBearing(),r=this._inertia,a=function(){Math.abs(n)inertiaMaxSpeed&&(p=inertiaMaxSpeed);var l=p/(inertiaDeceleration*inertiaLinearity),g=u*p*(l/2);v+=g,Math.abs(i._normalizeBearing(v,0))1;var i=t.ctrlKey?1:2,n=t.ctrlKey?0:2,r=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&window.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(r=0),"mousemove"===t.type?t.buttons&0===i:!this.isActive()&&r!==n},DragRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),i=160;t.length>0&&e-t[0][0]>i;)t.shift()},module.exports=DragRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],183:[function(require,module,exports){ +"use strict";function easeOut(e){return e*(2-e)}var panStep=100,bearingStep=15,pitchStep=10,KeyboardHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};KeyboardHandler.prototype.isEnabled=function(){return!!this._enabled},KeyboardHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},KeyboardHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},KeyboardHandler.prototype._onKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey)){var t=0,n=0,a=0,i=0,r=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?a=1:(e.preventDefault(),r=-1);break;case 40:e.shiftKey?a=-1:(r=1,e.preventDefault())}var s=this._map,o=s.getZoom(),d={duration:300,delayEndEvents:500,easing:easeOut,zoom:t?Math.round(o)+t*(e.shiftKey?2:1):o,bearing:s.getBearing()+n*bearingStep,pitch:s.getPitch()+a*pitchStep,offset:[-i*panStep,-r*panStep],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler; +},{}],184:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),browser=require("../../util/browser"),window=require("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=ua.indexOf("firefox")!==-1,safari=ua.indexOf("safari")!==-1&&ua.indexOf("chrom")===-1,ScrollZoomHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),util.bindAll(["_onWheel","_onTimeout"],this)};ScrollZoomHandler.prototype.isEnabled=function(){return!!this._enabled},ScrollZoomHandler.prototype.enable=function(e){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=e&&"center"===e.around)},ScrollZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},ScrollZoomHandler.prototype._onWheel=function(e){var t;"wheel"===e.type?(t=e.deltaY,firefox&&e.deltaMode===window.WheelEvent.DOM_DELTA_PIXEL&&(t/=browser.devicePixelRatio),e.deltaMode===window.WheelEvent.DOM_DELTA_LINE&&(t*=40)):"mousewheel"===e.type&&(t=-e.wheelDeltaY,safari&&(t/=3));var o=browser.now(),i=o-(this._time||0);this._pos=DOM.mousePos(this._el,e),this._time=o,0!==t&&t%4.000244140625===0?this._type="wheel":0!==t&&Math.abs(t)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*t)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&this._zoom(-t,e),e.preventDefault()},ScrollZoomHandler.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},ScrollZoomHandler.prototype._zoom=function(e,t){if(0!==e){var o=this._map,i=2/(1+Math.exp(-Math.abs(e/100)));e<0&&0!==i&&(i=1/i);var l=o.ease?o.ease.to:o.transform.scale,s=o.transform.scaleZoom(l*i);o.zoomTo(s,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?o.getCenter():o.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:t})}},module.exports=ScrollZoomHandler; +},{"../../util/browser":192,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],185:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.15,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaDeceleration=12,inertiaMaxSpeed=2.5,significantScaleThreshold=.15,significantRotateThreshold=4,TouchZoomRotateHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onStart","_onMove","_onEnd"],this)};TouchZoomRotateHandler.prototype.isEnabled=function(){return!!this._enabled},TouchZoomRotateHandler.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},TouchZoomRotateHandler.prototype.disableRotation=function(){this._rotationDisabled=!0},TouchZoomRotateHandler.prototype.enableRotation=function(){this._rotationDisabled=!1},TouchZoomRotateHandler.prototype._onStart=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]);this._startVec=e.sub(o),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],window.document.addEventListener("touchmove",this._onMove,!1),window.document.addEventListener("touchend",this._onEnd,!1)}},TouchZoomRotateHandler.prototype._onMove=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]),i=e.add(o).div(2),n=e.sub(o),a=n.mag()/this._startVec.mag(),r=this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI,s=this._map;if(this._gestureIntent){var h={duration:0,around:s.unproject(i)};"rotate"===this._gestureIntent&&(h.bearing=this._startBearing+r),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(h.zoom=s.transform.scaleZoom(this._startScale*a)),s.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),s.easeTo(h,{originalEvent:t})}else{var u=Math.abs(1-a)>significantScaleThreshold,d=Math.abs(r)>significantRotateThreshold;d?this._gestureIntent="rotate":u&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=n,this._startScale=s.transform.scale,this._startBearing=s.transform.bearing)}t.preventDefault()}},TouchZoomRotateHandler.prototype._onEnd=function(t){window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,o=this._map;if(e.length<2)return void o.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],a=o.transform.scaleZoom(this._startScale*i[1]),r=o.transform.scaleZoom(this._startScale*n[1]),s=a-r,h=(i[0]-n[0])/1e3,u=i[2];if(0===h||a===r)return void o.snapToNorth({},{originalEvent:t});var d=s*inertiaLinearity/h;Math.abs(d)>inertiaMaxSpeed&&(d=d>0?inertiaMaxSpeed:-inertiaMaxSpeed);var l=1e3*Math.abs(d/(inertiaDeceleration*inertiaLinearity)),c=a+d*l/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:l,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),o=160;t.length>2&&e-t[0][0]>o;)t.shift()},module.exports=TouchZoomRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],186:[function(require,module,exports){ +"use strict";var util=require("../util/util"),window=require("../util/window"),Hash=function(){util.bindAll(["_onHashChange","_updateHash"],this)};Hash.prototype.addTo=function(t){return this._map=t,window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Hash.prototype.remove=function(){return window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},Hash.prototype._onHashChange=function(){var t=window.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},Hash.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),a=this._map.getBearing(),h=this._map.getPitch(),i=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),n="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(i)+"/"+t.lng.toFixed(i);(a||h)&&(n+="/"+Math.round(10*a)/10),h&&(n+="/"+Math.round(h)),window.history.replaceState("","",n)},module.exports=Hash; +},{"../util/util":212,"../util/window":194}],187:[function(require,module,exports){ +"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=require("../util/util"),browser=require("../util/browser"),window=require("../util/window"),DOM=require("../util/dom"),Style=require("../style/style"),AnimationLoop=require("../style/animation_loop"),Painter=require("../render/painter"),Transform=require("../geo/transform"),Hash=require("./hash"),bindHandlers=require("./bind_handlers"),Camera=require("./camera"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),AttributionControl=require("./control/attribution_control"),LogoControl=require("./control/logo_control"),isSupported=require("mapbox-gl-supported"),defaultMinZoom=0,defaultMaxZoom=22,defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:defaultMinZoom,maxZoom:defaultMaxZoom,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0},Map=function(t){function e(e){var o=this;if(e=util.extend({},defaultOptions,e),null!=e.minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than minZoom");var i=new Transform(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,"string"==typeof e.container){if(this._container=window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new AnimationLoop,e.maxBounds&&this.setMaxBounds(e.maxBounds),util.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){o.animationLoop.set(300),o._rerender()}),"undefined"!=typeof window&&(window.addEventListener("online",this._onWindowOnline,!1),window.addEventListener("resize",this._onWindowResize,!1)),bindHandlers(this,e),this._hash=e.hash&&(new Hash).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new AttributionControl),this.addControl(new LogoControl,e.logoPosition),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var o=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(o,i.firstChild):i.appendChild(o),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var o=this._classes.indexOf(t);return o<0||""===t?this:(this._classes.splice(o,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var o={},i=0;i=0},e.prototype.getClasses=function(){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],o=t[1];return this._resizeCanvas(e,o),this.transform.resize(e,o),this.painter.resize(e,o),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new LngLatBounds(this.transform.pointLocation(new Point(0,this.transform.height)),this.transform.pointLocation(new Point(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new Point(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new Point(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=LngLatBounds.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?defaultMinZoom:t,t>=defaultMinZoom&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(LngLat.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(Point.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof Point||Array.isArray(t)}var e,o={};return 2===arguments.length?(e=arguments[0],o=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(o=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),o,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[Point.convert([0,0]),Point.convert([this.transform.width,this.transform.height])]);var o,i=t instanceof Point||"number"==typeof t[0];if(i){var r=Point.convert(t);o=[r]}else{var s=[Point.convert(t[0]),Point.convert(t[1])];o=[s[0],new Point(s[1].x,s[0].y),s[1],new Point(s[0].x,s[1].y),s[0]]}return o=o.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var o=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof Style)&&"string"!=typeof t;if(o)try{return this.style.setState(t)&&this._update(!0),this}catch(t){util.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof Style?this.style=t:this.style=new Style(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,o){return this.style.addSourceType(t,e,o)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addImage=function(t,e,o){this.style.spriteAtlas.addImage(t,e,o)},e.prototype.removeImage=function(t){this.style.spriteAtlas.removeImage(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,o){return this.style.setLayerZoomRange(t,e,o),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,o,i){return this.style.setPaintProperty(t,e,o,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,o){return this.style.getPaintProperty(t,e,o)},e.prototype.setLayoutProperty=function(t,e,o){return this.style.setLayoutProperty(t,e,o),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=DOM.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=DOM.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",0),this._canvas.setAttribute("aria-label","Map");var o=this._containerDimensions();this._resizeCanvas(o[0],o[1]);var i=this._controlContainer=DOM.create("div","mapboxgl-control-container",t),r=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){r[t]=DOM.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var o=window.devicePixelRatio||1;this._canvas.width=o*t,this._canvas.height=o*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=util.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},isSupported.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new Painter(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&browser.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),browser.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof window&&(window.removeEventListener("resize",this._onWindowResize,!1),window.removeEventListener("online",this._onWindowOnline,!1));var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),removeNode(this._canvasContainer),removeNode(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=browser.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},o.showTileBoundaries.get=function(){return!!this._showTileBoundaries},o.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},o.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},o.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},o.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},o.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},o.repaint.get=function(){return!!this._repaint},o.repaint.set=function(t){this._repaint=t,this._update()},o.vertices.get=function(){return!!this._vertices},o.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,o),e}(Camera);module.exports=Map; +},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../geo/transform":64,"../render/painter":77,"../style/animation_loop":143,"../style/style":146,"../util/browser":192,"../util/dom":199,"../util/util":212,"../util/window":194,"./bind_handlers":171,"./camera":172,"./control/attribution_control":173,"./control/logo_control":176,"./hash":186,"mapbox-gl-supported":22,"point-geometry":26}],188:[function(require,module,exports){ +"use strict";var DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),Marker=function(t,e){this._offset=Point.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=DOM.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};Marker.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},Marker.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),DOM.remove(this._element),this._popup&&this._popup.remove(),this},Marker.prototype.getLngLat=function(){return this._lngLat},Marker.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},Marker.prototype.getElement=function(){return this._element},Marker.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},Marker.prototype._onMapClick=function(t){var e=t.originalEvent.target,p=this._element;this._popup&&(e===p||p.contains(e))&&this.togglePopup()},Marker.prototype.getPopup=function(){return this._popup},Marker.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},Marker.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),DOM.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},module.exports=Marker; +},{"../geo/lng_lat":62,"../util/dom":199,"point-geometry":26}],189:[function(require,module,exports){ +"use strict";function normalizeOffset(t){if(t){if("number"==typeof t){var o=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new Point(0,t),"top-left":new Point(o,o),"top-right":new Point(-o,o),bottom:new Point(0,-t),"bottom-left":new Point(o,-o),"bottom-right":new Point(-o,-o),left:new Point(t,0),right:new Point(-t,0)}}if(isPointLike(t)){var e=Point.convert(t);return{top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{top:Point.convert(t.top||[0,0]),"top-left":Point.convert(t["top-left"]||[0,0]),"top-right":Point.convert(t["top-right"]||[0,0]),bottom:Point.convert(t.bottom||[0,0]),"bottom-left":Point.convert(t["bottom-left"]||[0,0]),"bottom-right":Point.convert(t["bottom-right"]||[0,0]),left:Point.convert(t.left||[0,0]),right:Point.convert(t.right||[0,0])}}return normalizeOffset(new Point(0,0))}function isPointLike(t){return t instanceof Point||Array.isArray(t)}var util=require("../util/util"),Evented=require("../util/evented"),DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),window=require("../util/window"),defaultOptions={closeButton:!0,closeOnClick:!0},Popup=function(t){function o(o){t.call(this),this.options=util.extend(Object.create(defaultOptions),o),util.bindAll(["_update","_onClickClose"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},o.prototype.isOpen=function(){return!!this._map},o.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._update(),this},o.prototype.setText=function(t){return this.setDOMContent(window.document.createTextNode(t))},o.prototype.setHTML=function(t){var o,e=window.document.createDocumentFragment(),n=window.document.createElement("body");for(n.innerHTML=t;;){if(o=n.firstChild,!o)break;e.appendChild(o)}return this.setDOMContent(e)},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=DOM.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=DOM.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},o.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=DOM.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=DOM.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,o=normalizeOffset(this.options.offset),e=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,i=this._container.offsetHeight;t=e.y+o.bottom.ythis._map.transform.height-i?["bottom"]:[],e.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var r=e.add(o[t]),s={top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},p=this._container.classList;for(var a in s)p.remove("mapboxgl-popup-anchor-"+a);p.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,s[t]+" translate("+r.x+"px,"+r.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup; +},{"../geo/lng_lat":62,"../util/dom":199,"../util/evented":200,"../util/util":212,"../util/window":194,"point-geometry":26}],190:[function(require,module,exports){ +"use strict";var Actor=function(t,e,a){this.target=t,this.parent=e,this.mapId=a,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};Actor.prototype.send=function(t,e,a,r,s){var i=a?this.mapId+":"+this.callbackID++:null;a&&(this.callbacks[i]=a),this.target.postMessage({targetMapId:s,sourceMapId:this.mapId,type:t,id:String(i),data:e},r)},Actor.prototype.receive=function(t){var e,a=this,r=t.data,s=r.id;if(!r.targetMapId||this.mapId===r.targetMapId){var i=function(t,e,r){a.target.postMessage({sourceMapId:a.mapId,type:"",id:String(s),error:t?String(t):null,data:e},r)};if(""===r.type)e=this.callbacks[r.id],delete this.callbacks[r.id],e&&e(r.error||null,r.data);else if("undefined"!=typeof r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if("undefined"!=typeof r.id&&this.parent.getWorkerSource){var p=r.type.split("."),d=this.parent.getWorkerSource(r.sourceMapId,p[0]);d[p[1]](r.data,i)}else this.parent[r.type](r.data)}},Actor.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},module.exports=Actor; +},{}],191:[function(require,module,exports){ +"use strict";function sameOrigin(e){var t=window.document.createElement("a");return t.href=e,t.protocol===window.document.location.protocol&&t.host===window.document.location.host}var window=require("./window");exports.getJSON=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","application/json"),n.onerror=function(e){t(e)},n.onload=function(){if(n.status>=200&&n.status<300&&n.response){var e;try{e=JSON.parse(n.response)}catch(e){return t(e)}t(null,e)}else t(new Error(n.statusText))},n.send(),n},exports.getArrayBuffer=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.responseType="arraybuffer",n.onerror=function(e){t(e)},n.onload=function(){return 0===n.response.byteLength&&200===n.status?t(new Error("http status 200 returned without content.")):void(n.status>=200&&n.status<300&&n.response?t(null,{data:n.response,cacheControl:n.getResponseHeader("Cache-Control"),expires:n.getResponseHeader("Expires")}):t(new Error(n.statusText)))},n.send(),n};var transparentPngUrl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,n){if(e)return t(e);var r=new window.Image,o=window.URL||window.webkitURL;r.onload=function(){t(null,r),o.revokeObjectURL(r.src)};var a=new window.Blob([new Uint8Array(n.data)],{type:"image/png"});r.cacheControl=n.cacheControl,r.expires=n.expires,r.src=n.data.byteLength?o.createObjectURL(a):transparentPngUrl})},exports.getVideo=function(e,t){var n=window.document.createElement("video");n.onloadstart=function(){t(null,n)};for(var r=0;r=a+n?e.call(t,1):(e.call(t,(i-a)/n),exports.frame(o)))}if(!n)return e.call(t,1),null;var r=!1,a=module.exports.now();return exports.frame(o),function(){r=!0}},exports.getImageData=function(e){var n=window.document.createElement("canvas"),t=n.getContext("2d");return n.width=e.width,n.height=e.height,t.drawImage(e,0,0),t.getImageData(0,0,e.width,e.height).data},exports.supported=require("mapbox-gl-supported"),exports.hardwareConcurrency=window.navigator.hardwareConcurrency||4,Object.defineProperty(exports,"devicePixelRatio",{get:function(){return window.devicePixelRatio}}),exports.supportsWebp=!1;var webpImgTest=window.document.createElement("img");webpImgTest.onload=function(){exports.supportsWebp=!0},webpImgTest.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="; +},{"./window":194,"mapbox-gl-supported":22}],193:[function(require,module,exports){ +"use strict";var WebWorkify=require("webworkify"),window=require("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(require("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}; +},{"../../source/worker":98,"../window":194,"webworkify":41}],194:[function(require,module,exports){ +"use strict";module.exports=self; +},{}],195:[function(require,module,exports){ +"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=require("quickselect"),calculateSignedArea=require("./util").calculateSignedArea;module.exports=function(e,r){var a=e.length;if(a<=1)return[e];for(var t,u,c=[],i=0;i1)for(var n=0;n0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)},Evented.prototype.setEventedParent=function(e,t){return this._eventedParent=e,this._eventedParentData=t,this},module.exports=Evented; +},{"./util":212}],201:[function(require,module,exports){ +"use strict";function compareMax(e,t){return t.max-e.max}function Cell(e,t,n,r){this.p=new Point(e,t),this.h=n,this.d=pointToPolygonDist(this.p,r),this.max=this.d+this.h*Math.SQRT2}function pointToPolygonDist(e,t){for(var n=!1,r=1/0,o=0;oe.y!=h.y>e.y&&e.x<(h.x-a.x)*(e.y-a.y)/(h.y-a.y)+a.x&&(n=!n),r=Math.min(r,distToSegmentSquared(e,a,h))}return(n?1:-1)*Math.sqrt(r)}function getCentroidCell(e){for(var t=0,n=0,r=0,o=e[0],i=0,l=o.length,u=l-1;ii)&&(i=a.x),(!s||a.y>l)&&(l=a.y)}var h=i-r,p=l-o,y=Math.min(h,p),x=y/2,d=new Queue(null,compareMax);if(0===y)return[r,o];for(var g=r;gm.d||!m.d)&&(m=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,c)),v.max-m.d<=t||(x=v.h/2,d.push(new Cell(v.p.x-x,v.p.y-x,x,e)),d.push(new Cell(v.p.x+x,v.p.y-x,x,e)),d.push(new Cell(v.p.x-x,v.p.y+x,x,e)),d.push(new Cell(v.p.x+x,v.p.y+x,x,e)),c+=4)}return n&&(console.log("num probes: "+c),console.log("best distance: "+m.d)),m.p}; +},{"./intersection_tests":205,"point-geometry":26,"tinyqueue":30}],202:[function(require,module,exports){ +"use strict";var WorkerPool=require("./worker_pool"),globalWorkerPool;module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}; +},{"./worker_pool":215}],203:[function(require,module,exports){ +"use strict";function Glyphs(a,e){this.stacks=a.readFields(readFontstacks,[],e)}function readFontstacks(a,e,r){if(1===a){var t=r.readMessage(readFontstack,{glyphs:{}});e.push(t)}}function readFontstack(a,e,r){if(1===a)e.name=r.readString();else if(2===a)e.range=r.readString();else if(3===a){var t=r.readMessage(readGlyph,{});e.glyphs[t.id]=t}}function readGlyph(a,e,r){1===a?e.id=r.readVarint():2===a?e.bitmap=r.readBytes():3===a?e.width=r.readVarint():4===a?e.height=r.readVarint():5===a?e.left=r.readSVarint():6===a?e.top=r.readSVarint():7===a&&(e.advance=r.readVarint())}module.exports=Glyphs; +},{}],204:[function(require,module,exports){ +"use strict";function interpolate(t,e,n){return t*(1-n)+e*n}module.exports=interpolate,interpolate.number=interpolate,interpolate.vec2=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n)]},interpolate.color=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n),interpolate(t[2],e[2],n),interpolate(t[3],e[3],n)]},interpolate.array=function(t,e,n){return t.map(function(t,r){return interpolate(t,e[r],n)})}; +},{}],205:[function(require,module,exports){ +"use strict";function polygonIntersectsPolygon(n,t){for(var e=0;e=3)for(var u=0;u1){if(lineIntersectsLine(n,t))return!0;for(var r=0;r1?n.distSqr(e):n.distSqr(e.sub(t)._mult(o)._add(t))}function multiPolygonContainsPoint(n,t){for(var e,r,o,i=!1,l=0;lt.y!=o.y>t.y&&t.x<(o.x-r.x)*(t.y-r.y)/(o.y-r.y)+r.x&&(i=!i)}return i}function polygonContainsPoint(n,t){for(var e=!1,r=0,o=n.length-1;rt.y!=l.y>t.y&&t.x<(l.x-i.x)*(t.y-i.y)/(l.y-i.y)+i.x&&(e=!e)}return e}var isCounterClockwise=require("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}; +},{"./util":212}],206:[function(require,module,exports){ +"use strict";var unicodeBlockLookup={"Latin-1 Supplement":function(n){return n>=128&&n<=255},"Hangul Jamo":function(n){return n>=4352&&n<=4607},"Unified Canadian Aboriginal Syllabics":function(n){return n>=5120&&n<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(n){return n>=6320&&n<=6399},"General Punctuation":function(n){return n>=8192&&n<=8303},"Letterlike Symbols":function(n){return n>=8448&&n<=8527},"Number Forms":function(n){return n>=8528&&n<=8591},"Miscellaneous Technical":function(n){return n>=8960&&n<=9215},"Control Pictures":function(n){return n>=9216&&n<=9279},"Optical Character Recognition":function(n){return n>=9280&&n<=9311},"Enclosed Alphanumerics":function(n){return n>=9312&&n<=9471},"Geometric Shapes":function(n){return n>=9632&&n<=9727},"Miscellaneous Symbols":function(n){return n>=9728&&n<=9983},"Miscellaneous Symbols and Arrows":function(n){return n>=11008&&n<=11263},"CJK Radicals Supplement":function(n){return n>=11904&&n<=12031},"Kangxi Radicals":function(n){return n>=12032&&n<=12255},"Ideographic Description Characters":function(n){return n>=12272&&n<=12287},"CJK Symbols and Punctuation":function(n){return n>=12288&&n<=12351},Hiragana:function(n){return n>=12352&&n<=12447},Katakana:function(n){return n>=12448&&n<=12543},Bopomofo:function(n){return n>=12544&&n<=12591},"Hangul Compatibility Jamo":function(n){return n>=12592&&n<=12687},Kanbun:function(n){return n>=12688&&n<=12703},"Bopomofo Extended":function(n){return n>=12704&&n<=12735},"CJK Strokes":function(n){return n>=12736&&n<=12783},"Katakana Phonetic Extensions":function(n){return n>=12784&&n<=12799},"Enclosed CJK Letters and Months":function(n){return n>=12800&&n<=13055},"CJK Compatibility":function(n){return n>=13056&&n<=13311},"CJK Unified Ideographs Extension A":function(n){return n>=13312&&n<=19903},"Yijing Hexagram Symbols":function(n){return n>=19904&&n<=19967},"CJK Unified Ideographs":function(n){return n>=19968&&n<=40959},"Yi Syllables":function(n){return n>=40960&&n<=42127},"Yi Radicals":function(n){return n>=42128&&n<=42191},"Hangul Jamo Extended-A":function(n){return n>=43360&&n<=43391},"Hangul Syllables":function(n){return n>=44032&&n<=55215},"Hangul Jamo Extended-B":function(n){return n>=55216&&n<=55295},"Private Use Area":function(n){return n>=57344&&n<=63743},"CJK Compatibility Ideographs":function(n){return n>=63744&&n<=64255},"Vertical Forms":function(n){return n>=65040&&n<=65055},"CJK Compatibility Forms":function(n){return n>=65072&&n<=65103},"Small Form Variants":function(n){return n>=65104&&n<=65135},"Halfwidth and Fullwidth Forms":function(n){return n>=65280&&n<=65519}};module.exports=unicodeBlockLookup; +},{}],207:[function(require,module,exports){ +"use strict";var LRUCache=function(t,e){this.max=t,this.onRemove=e,this.reset()};LRUCache.prototype.reset=function(){var t=this;for(var e in t.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},LRUCache.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},LRUCache.prototype.has=function(t){return t in this.data},LRUCache.prototype.keys=function(){return this.order},LRUCache.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},LRUCache.prototype.getWithoutRemoving=function(t){if(!this.has(t))return null;var e=this.data[t];return e},LRUCache.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},LRUCache.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},module.exports=LRUCache; +},{}],208:[function(require,module,exports){ +"use strict";function makeAPIURL(r,e){var t=parseUrl(config.API_URL);if(r.protocol=t.protocol,r.authority=t.authority,!config.REQUIRE_ACCESS_TOKEN)return formatUrl(r);if(e=e||config.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+help);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+help);return r.params.push("access_token="+e),formatUrl(r)}function isMapboxURL(r){return 0===r.indexOf("mapbox:")}function replaceTempAccessToken(r){for(var e=0;e=2||512===t?"@2x":"",s=browser.supportsWebp?".webp":"$1";return o.path=o.path.replace(imageExtensionRe,""+a+s),replaceTempAccessToken(o.params),formatUrl(o)};var urlRe=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/; +},{"./browser":192,"./config":196}],209:[function(require,module,exports){ +"use strict";var isChar=require("./is_char_in_unicode_block");module.exports.allowsIdeographicBreaking=function(a){for(var i=0,r=a;i=65097&&a<=65103)||(!!isChar["CJK Compatibility Ideographs"](a)||(!!isChar["CJK Compatibility"](a)||(!!isChar["CJK Radicals Supplement"](a)||(!!isChar["CJK Strokes"](a)||(!(!isChar["CJK Symbols and Punctuation"](a)||a>=12296&&a<=12305||a>=12308&&a<=12319||12336===a)||(!!isChar["CJK Unified Ideographs Extension A"](a)||(!!isChar["CJK Unified Ideographs"](a)||(!!isChar["Enclosed CJK Letters and Months"](a)||(!!isChar["Hangul Compatibility Jamo"](a)||(!!isChar["Hangul Jamo Extended-A"](a)||(!!isChar["Hangul Jamo Extended-B"](a)||(!!isChar["Hangul Jamo"](a)||(!!isChar["Hangul Syllables"](a)||(!!isChar.Hiragana(a)||(!!isChar["Ideographic Description Characters"](a)||(!!isChar.Kanbun(a)||(!!isChar["Kangxi Radicals"](a)||(!!isChar["Katakana Phonetic Extensions"](a)||(!(!isChar.Katakana(a)||12540===a)||(!(!isChar["Halfwidth and Fullwidth Forms"](a)||65288===a||65289===a||65293===a||a>=65306&&a<=65310||65339===a||65341===a||65343===a||a>=65371&&a<=65503||65507===a||a>=65512&&a<=65519)||(!(!isChar["Small Form Variants"](a)||a>=65112&&a<=65118||a>=65123&&a<=65126)||(!!isChar["Unified Canadian Aboriginal Syllabics"](a)||(!!isChar["Unified Canadian Aboriginal Syllabics Extended"](a)||(!!isChar["Vertical Forms"](a)||(!!isChar["Yijing Hexagram Symbols"](a)||(!!isChar["Yi Syllables"](a)||!!isChar["Yi Radicals"](a))))))))))))))))))))))))))))))},exports.charHasNeutralVerticalOrientation=function(a){return!(!isChar["Latin-1 Supplement"](a)||167!==a&&169!==a&&174!==a&&177!==a&&188!==a&&189!==a&&190!==a&&215!==a&&247!==a)||(!(!isChar["General Punctuation"](a)||8214!==a&&8224!==a&&8225!==a&&8240!==a&&8241!==a&&8251!==a&&8252!==a&&8258!==a&&8263!==a&&8264!==a&&8265!==a&&8273!==a)||(!!isChar["Letterlike Symbols"](a)||(!!isChar["Number Forms"](a)||(!(!isChar["Miscellaneous Technical"](a)||!(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||9003===a||a>=9085&&a<=9114||a>=9150&&a<=9165||9167===a||a>=9169&&a<=9179||a>=9186&&a<=9215))||(!(!isChar["Control Pictures"](a)||9251===a)||(!!isChar["Optical Character Recognition"](a)||(!!isChar["Enclosed Alphanumerics"](a)||(!!isChar["Geometric Shapes"](a)||(!(!isChar["Miscellaneous Symbols"](a)||a>=9754&&a<=9759)||(!(!isChar["Miscellaneous Symbols and Arrows"](a)||!(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243))||(!!isChar["CJK Symbols and Punctuation"](a)||(!!isChar.Katakana(a)||(!!isChar["Private Use Area"](a)||(!!isChar["CJK Compatibility Forms"](a)||(!!isChar["Small Form Variants"](a)||(!!isChar["Halfwidth and Fullwidth Forms"](a)||(8734===a||8756===a||8757===a||a>=9984&&a<=10087||a>=10102&&a<=10131||65532===a||65533===a)))))))))))))))))},exports.charHasRotatedVerticalOrientation=function(a){return!(exports.charHasUprightVerticalOrientation(a)||exports.charHasNeutralVerticalOrientation(a))}; +},{"./is_char_in_unicode_block":206}],210:[function(require,module,exports){ +"use strict";function createStructArrayType(t){var e=JSON.stringify(t);if(structArrayTypeCache[e])return structArrayTypeCache[e];var r=void 0===t.alignment?1:t.alignment,i=0,n=0,a=["Uint8"],o=t.members.map(function(t){a.indexOf(t.type)<0&&a.push(t.type);var e=sizeOf(t.type),o=i=align(i,Math.max(r,e)),s=t.components||1;return n=Math.max(n,e),i+=e*s,{name:t.name,type:t.type,components:s,offset:o}}),s=align(i,Math.max(n,r)),p=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Struct);p.prototype.alignment=r,p.prototype.size=s;for(var y=0,c=o;ythis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*RESIZE_MULTIPLIER),DEFAULT_CAPACITY),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},StructArray.prototype._refreshViews=function(){for(var t=this,e=0,r=t._usedTypes;e=1)return 1;var e=r*r,t=e*r;return 4*(r<.5?t:3*(r-e)+t-.75)},exports.bezier=function(r,e,t,n){var o=new UnitBezier(r,e,t,n);return function(r){return o.solve(r)}},exports.ease=exports.bezier(.25,.1,.25,1),exports.clamp=function(r,e,t){return Math.min(t,Math.max(e,r))},exports.wrap=function(r,e,t){var n=t-e,o=((r-e)%n+n)%n+e;return o===e?t:o},exports.asyncAll=function(r,e,t){if(!r.length)return t(null,[]);var n=r.length,o=new Array(r.length),a=null;r.forEach(function(r,i){e(r,function(r,e){r&&(a=r),o[i]=e,0===--n&&t(a,o)})})},exports.values=function(r){var e=[];for(var t in r)e.push(r[t]);return e},exports.keysDifference=function(r,e){var t=[];for(var n in r)n in e||t.push(n);return t},exports.extend=function(r,e,t,n){for(var o=arguments,a=1;a=0)return!0;return!1};var warnOnceHistory={};exports.warnOnce=function(r){warnOnceHistory[r]||("undefined"!=typeof console&&console.warn(r),warnOnceHistory[r]=!0)},exports.isCounterClockwise=function(r,e,t){return(t.y-r.y)*(e.x-r.x)>(e.y-r.y)*(t.x-r.x)},exports.calculateSignedArea=function(r){for(var e=0,t=0,n=r.length,o=n-1,a=void 0,i=void 0;t0||Math.abs(e.y-t.y)>0)&&Math.abs(exports.calculateSignedArea(r))>.01},exports.sphericalToCartesian=function(r){var e=r[0],t=r[1],n=r[2];return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]},exports.parseCacheControl=function(r){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,t={};if(r.replace(e,function(r,e,n,o){var a=n||o;return t[e]=!a||a.toLowerCase(),""}),t["max-age"]){var n=parseInt(t["max-age"],10);isNaN(n)?delete t["max-age"]:t["max-age"]=n}return t}; +},{"../geo/coordinate":61,"@mapbox/unitbezier":3,"point-geometry":26}],213:[function(require,module,exports){ +"use strict";var Feature=function(e,t,r,o){this.type="Feature",this._vectorTileFeature=e,e._z=t,e._x=r,e._y=o,this.properties=e.properties,null!=e.id&&(this.id=e.id)},prototypeAccessors={geometry:{}};prototypeAccessors.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},prototypeAccessors.geometry.set=function(e){this._geometry=e},Feature.prototype.toJSON=function(){var e=this,t={geometry:this.geometry};for(var r in e)"_geometry"!==r&&"_vectorTileFeature"!==r&&(t[r]=e[r]);return t},Object.defineProperties(Feature.prototype,prototypeAccessors),module.exports=Feature; +},{}],214:[function(require,module,exports){ +"use strict";var scriptDetection=require("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}; +},{"./script_detection":209}],215:[function(require,module,exports){ +"use strict";var WebWorker=require("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=require("../").workerCount;for(this.workers=[];this.workers.length 2 && arguments[2] !== undefined ? arguments[2] : null; + + //create the

RZg06Y4f$r){SR$z3=3IS|(7%o1H0P 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 Rf&ML@x3_c5vWd(z0su9be)RwV diff --git a/public/assets/js/maps.js.gz b/public/assets/js/maps.js.gz index 8be727ed100fd32f8832184d735c221cf824d950..edcbc0eb5c9ef3f95dce2d65d2504a156c099422 100644 GIT binary patch literal 141926 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