From ac97a572c592311b8a6a9e559c9933a2d6402925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Parient=C3=A9?= <41431456+arthurpar06@users.noreply.github.com> Date: Tue, 5 Mar 2024 19:01:01 +0100 Subject: [PATCH] Add modal for External Redirects (#1740) * Add Modal for External Redirects * Add Translations * Apply fixes from StyleCI * Add system to always trust a domain * Show modal only if a has data-external-redirect * Move isExternalFile check in an Attribute * Apply fixes from StyleCI --------- Co-authored-by: StyleCI Bot Co-authored-by: Nabeel S --- app/Models/File.php | 7 +++ public/assets/admin/css/vendor.min.css.map | 2 +- public/assets/admin/js/app.js | 2 +- public/assets/admin/js/app.js.map | 2 +- public/assets/frontend/css/now-ui-kit.css.map | 2 +- public/assets/frontend/js/app.js | 2 +- public/assets/frontend/js/app.js.map | 2 +- public/assets/installer/js/app.js | 2 +- public/assets/installer/js/app.js.map | 2 +- public/mix-manifest.json | 8 ++-- resources/js/frontend/app.js | 4 ++ resources/js/frontend/external_redirect.js | 48 +++++++++++++++++++ resources/lang/de/common.php | 5 ++ resources/lang/en/common.php | 5 ++ resources/lang/es-es/common.php | 5 ++ resources/lang/fr/common.php | 5 ++ resources/lang/it/common.php | 5 ++ resources/lang/pt-br/common.php | 5 ++ resources/views/layouts/default/app.blade.php | 3 ++ .../layouts/default/downloads/table.blade.php | 2 +- .../default/external_redirect_modal.blade.php | 25 ++++++++++ 21 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 resources/js/frontend/external_redirect.js create mode 100644 resources/views/layouts/default/external_redirect_modal.blade.php diff --git a/app/Models/File.php b/app/Models/File.php index caa3bd3b7..bb3be118d 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -114,4 +114,11 @@ public function url(): Attribute } ); } + + public function isExternalFile(): Attribute + { + return Attribute::make( + get: fn ($value, array $attrs): bool => is_null($attrs['disk']) && !str_contains($this->url, config('app.url')), + ); + } } diff --git a/public/assets/admin/css/vendor.min.css.map b/public/assets/admin/css/vendor.min.css.map index ac67e4661..ba6071e2b 100644 --- a/public/assets/admin/css/vendor.min.css.map +++ b/public/assets/admin/css/vendor.min.css.map @@ -1 +1 @@ -{"version":3,"file":"assets/admin/css/vendor.min.css","mappings":"AAAA;;;;;;;;;;;;;;EAAA,CC4FA,mBACI,wBDlCJ,CCoCA,UACI,wBDjCJ,CCmCA,WACI,wBDhCJ,CCkCA,QACI,wBD/BJ,CEvEA,yEACI,kCACA,mCAEA,kDFyEJ,CEtEA,4BACI,eCmNyB,CDlNzB,kBFyEJ,CEtEA,OACI,eFyEJ,CEvEA,OACI,eF0EJ,CExEA,OACI,iBC8L2B,CD7L3B,gBAEA,kBF2EJ,CEzEA,cAHI,eFkFJ,CE/EA,OACI,eCyL2B,CDvL3B,iBF4EJ,CE1EA,OACI,gBCqL2B,CDnL3B,kBACA,kBF6EJ,CE3EA,cAJI,eFqFJ,CEjFA,OACI,cCgL2B,CD9K3B,wBF8EJ,CE5EA,EACI,aC2Ja,CD1Jb,iBF+EJ,CE5EA,gPACI,aCZyB,CDazB,eC2KyB,CD1KzB,iBF+EJ,CE5EA,yDACI,aF+EJ,CE7EA,iBACI,wBFgFJ,CE9EA,WACI,iBFiFJ,CE/EA,iBACI,iBFkFJ,CEhFA,YACI,UFmFJ,CEjFA,kCACI,aFoFJ,CElFA,4BACI,aFqFJ,CEnFA,kCACI,aFsFJ,CEpFA,kCACI,aFuFJ,CErFA,gCACI,aFwFJ,CEtFA,WACI,aFyFJ,CEvFA,OACI,aF0FJ,CErFA,yBACI,aF4FJ,CE1FA,cACI,aF6FJ,CE3FA,cACI,aF8FJ,CE5FA,aACI,aF+FJ,CEzFI,sHACI,aF+FR,CE7FI,8DACI,aF+FR,CE7FI,8DACI,aF+FR,CE7FI,4DACI,aF+FR,CE3FA,6CAGI,aCzFyB,CD0FzB,eF8FJ,CIzNA,KACI,cAEA,kCADA,cJ8NJ,CI5NI,cACI,iBACA,iBJ8NR,CI3NA,EACE,aJ8NF,CI5NE,gBACG,aD8Ce,CC7Cf,oBJ8NL,CI1NA,iJAKI,mBJ6NJ,CI3NA,gEAMI,kCAFA,mBJgOJ,CI1NA,mEC+QI,yBLxCJ,CI/NA,iDCuQI,2BL/BJ,CInOA,KCkQI,0BLvBJ,CIxOA,IAEI,kBADA,UJ4OJ,CIzOA,SACI,0BJ4OJ,CIzOA,YACI,eJ4OJ,CI1OA,GACI,oBJ6OJ,CI3OA,SAGI,aAFA,kBACA,KJ+OJ,CMnTA,SAOI,wBADA,sBAHA,SAKA,aHwTwB,CG5TxB,OAHA,kBACA,MAGA,SNyTJ,CMrTI,0BAOI,iCALA,gBACA,gBACA,gBAHA,kBAIA,YACA,SNwTR,CMrTI,6BASI,wBADA,sBAHA,cAFA,YAIA,OANA,kBAKA,MAFA,WAFA,SN8TR,CMnTA,6BAGI,cACA,gBAFA,WNwTJ,CMpTI,yCAEI,cADA,cNwTR,CMrTQ,6CACI,WACA,eAEA,iBADA,WNyTZ,CMrTQ,mEAGI,cACA,aHuJM,CGrJN,eHqKiB,CGpKjB,iBALA,cAGA,kBAJA,wBN8TZ,CMpTI,uCACI,eNuTR,CMpTY,iDAKI,WAHA,kBACA,kBNuThB,CMlTY,6DACI,SNqThB,CMlTY,+DACI,aH1BA,CG2BA,SNqThB,CMnTgB,6EAGI,qCAFA,6BACA,kCAEA,WACA,qBACA,kBACA,QACA,ONsTpB,CMnTgB,2EAGI,qCAFA,gCACA,kCAEA,WACA,qBACA,kBACA,WACA,ONsTpB,CMlTY,mDACI,mCACA,mDACA,iBNqThB,CMlTY,2DAEI,gBNqThB,CMlTY,mDACI,YNqThB,CMjTQ,2CAGI,eACA,gBAFA,iBADA,SAIA,wBNoTZ,CMjTQ,2CAEI,WADA,eAGA,iBADA,kBAGA,kBADA,UNqTZ,CMhTI,oFAUI,eHxHwB,CGiHxB,WADA,cAIA,YAEA,OAJA,kBAGA,MAFA,WAIA,SNoTR,COpcI,4RAEC,qBPycL,COtcI,4IACI,yCP0cR,CO7bY,oiBACI,aP2chB,COxcQ,4KACI,kCP4cZ,COpeI,wMAEC,wBPueL,COpeI,mGACI,0CPueR,CO1dY,yWACI,UPqehB,COleQ,mHACI,mCPqeZ,CO3dY,qHACI,aJQA,CIPA,SP8dhB,COheY,+GACI,aJuBH,CItBG,SPmehB,COreY,qHACI,aJmBA,CIlBA,SPwehB,CO1eY,qHACI,aJ4BA,CI3BA,SP6ehB,CO/eY,mHACI,aJiCD,CIhCC,SPkfhB,CMxWA,YACI,wBHmGoB,CG/FpB,YAEA,gBAJA,kBAGA,wBH6H0B,CG/H1B,SN6WJ,CMxWI,qBAGI,8BADA,aN0WR,CMtWI,oBACI,mCNwWR,CMrWI,oBACI,eNuWR,CMnWA,qBAWI,iCAPA,YADA,gBADA,cAMA,4BAFA,+BAIA,wCNuWJ,CQvjBA,OAME,4BLae,CKZf,gBLiKO,CKvKP,kBAQA,iBLqK6B,CK1K7B,iBLiMe,CKhMf,iBAGA,kBANA,gBACA,wBRikBF,CQxjBA,YACE,kBR2jBF,CQ1jBE,cACE,cR4jBJ,CQxjBA,eCnBI,oBN2CY,CM1CZ,aT+kBJ,CQrjBA,2BC3BI,oBN0DS,CMzDT,aTylBJ,CQ3jBA,eC/BI,oBNsDY,CMrDZ,aT8lBJ,CQ5jBA,eCnCI,oBN+DY,CM9DZ,aTmmBJ,CQ7jBA,cCvCI,oBNoEW,CMnEX,aTwmBJ,CQ9jBA,eC3CI,iBNQyB,CMPzB,UT6mBJ,CU/mBA,kCAKI,4BPea,CQlBf,wBR0Cc,COzCZ,sBC6GA,URvGyB,COHzB,cPmMa,COlMb,ePqNyB,COnNzB,eACA,iBLySA,0BL6UJ,CW5nBE,8qBAWE,wBRgCyB,CQ/BzB,UX+nBJ,CWxnBI,omDAME,wBReU,CQdV,oBX6oBN,CWzoBE,4FAEE,eX4oBJ,CW7jBE,wDAEE,oBRzEY,CQwEZ,aXikBJ,CW9jBI,8MAGE,4BRtGW,CQwGX,oBR7EuB,CQ4EvB,aXkkBN,CW7jBE,oDACE,aXgkBJ,CW9jBI,kMAGE,4BRlHW,CQmHX,aRxFuB,CQyFvB,oBXikBN,CU1rBI,4FAEI,mBV6rBR,CU3rBI,8KLgRM,eK7QD,CACA,mBV+rBT,CU5rBI,oDACI,WV+rBR,CU3rBA,4GAII,gBV8rBJ,CUzrBA,kDCtCE,wBRgDc,CQ8DZ,UXsnBJ,CWluBE,81BAWE,wBRqCyB,CQpCzB,UX0tBJ,CWntBI,o+DAME,wBRqBU,CQpBV,oBXgtBN,CW5sBE,4HAEE,eX6sBJ,CW9nBE,wEAEE,oBRnEY,CQkEZ,aXioBJ,CW9nBI,8PAGE,4BRtGW,CQwGX,oBRxEuB,CQuEvB,aX+nBN,CW1nBE,oEACE,aX4nBJ,CW1nBI,kPAGE,4BRlHW,CQmHX,aRnFuB,CQoFvB,oBX0nBN,CUztBA,kDCvCE,wBRqDc,CQyDZ,UXupBJ,CWnwBE,81BAWE,wBR0CmB,CQzCnB,UX2vBJ,CWpvBI,o+DAME,wBR0BU,CQzBV,oBXivBN,CW7uBE,4HAEE,eX8uBJ,CW/pBE,wEAEE,oBR9DY,CQ6DZ,aXkqBJ,CW/pBI,8PAGE,4BRtGW,CQwGX,oBRnEiB,CQkEjB,aXgqBN,CW3pBE,oEACE,aX6pBJ,CW3pBI,kPAGE,4BRlHW,CQmHX,aR9EiB,CQ+EjB,oBX2pBN,CUzvBA,4CCxCE,wBRyDW,CQqDT,UXwrBJ,CWpyBE,4xBAWE,wBR6CgB,CQ5ChB,UX4xBJ,CWrxBI,o1DAME,wBR8BO,CQ7BP,oBXkxBN,CW9wBE,gHAEE,eX+wBJ,CWhsBE,kEAEE,oBR1DS,CQyDT,aXmsBJ,CWhsBI,4OAGE,4BRtGW,CQwGX,oBRhEc,CQ+Dd,aXisBN,CW5rBE,8DACE,aX8rBJ,CW5rBI,gOAGE,4BRlHW,CQmHX,aR3Ec,CQ4Ed,oBX4rBN,CUzxBA,kDCzCE,wBR8Dc,CQgDZ,UXytBJ,CWr0BE,81BAWE,wBRkDmB,CQjDnB,UX6zBJ,CWtzBI,o+DAME,wBRmCU,CQlCV,oBXmzBN,CW/yBE,4HAEE,eXgzBJ,CWjuBE,wEAEE,oBRrDY,CQoDZ,aXouBJ,CWjuBI,8PAGE,4BRtGW,CQwGX,oBR3DiB,CQ0DjB,aXkuBN,CW7tBE,oEACE,aX+tBJ,CW7tBI,kPAGE,4BRlHW,CQmHX,aRtEiB,CQuEjB,oBX6tBN,CUzzBA,gDC1CE,wBRmEa,CQ2CX,UX0vBJ,CWt2BE,w0BAWE,wBRuDkB,CQtDlB,UX81BJ,CWv1BI,o7DAME,wBRwCS,CQvCT,oBXo1BN,CWh1BE,wHAEE,eXi1BJ,CWlwBE,sEAEE,oBRhDW,CQ+CX,aXqwBJ,CWlwBI,wPAGE,4BRtGW,CQwGX,oBRtDgB,CQqDhB,aXmwBN,CW9vBE,kEACE,aXgwBJ,CW9vBI,4OAGE,4BRlHW,CQmHX,aRjEgB,CQkEhB,oBX8vBN,CWl4BE,wTAWE,qBRNyB,CQOzB,UX+3BJ,CWx3BI,ktBAME,qBRpBuB,CQqBvB,iBXq3BN,CWj3BE,sCAEE,eXk3BJ,CW32BI,wBACE,aX62BN,CW32BM,2FAGE,aX22BR,CWv2BI,sBACE,UXy2BN,CWv2BM,qFAGE,aXu2BR,CWn2BI,yBACE,UXq2BN,CWn2BM,8FAGE,aXm2BR,CW/1BI,yBACE,UXi2BN,CW/1BM,8FAGE,aX+1BR,CW31BI,yBACE,UX61BN,CW31BM,8FAGE,aX21BR,CWv1BI,iPAQE,qBR5FuB,CQ6FvB,aXk1BN,CW/0BI,0DAGE,aX+0BN,CWx0BE,wBAEE,iBR5GyB,CQ2GzB,UX20BJ,CWx0BI,2FAGE,4BRtGW,CQwGX,iBRnHuB,CQkHvB,UXy0BN,CWp0BE,sBACE,UXs0BJ,CWp0BI,qFAGE,4BRlHW,CQmHX,UR9HuB,CQ+HvB,oBXo0BN,CU55BI,sCAEI,aV65BR,CU15BI,2EAGK,qBP/CoB,COgDpB,aV05BT,CUv5BI,sBACI,aVy5BR,CUv5BI,wDAEI,aVw5BR,CUr5BI,8DAEI,4BVs5BR,CUj5BK,2CErEH,yBAHA,UZ89BF,CUh5BA,YACI,QP7EyB,CO8EzB,gBVm5BJ,CUj5BI,qBACI,WVm5BR,CUh5BA,QCsDG,aR4De,COhHf,ePgI0B,CQ1E1B,iBX81BH,CW51BG,mBACI,iBX81BP,CUr5BA,QCkDG,iBRyDe,CQvDf,gBXs2BH,CWp2BG,mBACI,gBXs2BP,CU15BA,QC+CG,iBRwDY,CQtDZ,eX82BH,CW52BG,mBACI,eX82BP,CU/5BA,QACI,eVk6BJ,CU/5BA,kBACI,UVk6BJ,CUh6BA,uBACI,eVm6BJ,CUj6BA,yBAGI,gBAFA,kBAGA,UAFA,OVs6BJ,Ca5gCE,+DACE,UVuByB,CS3B3B,0BAHA,SZ8hCF,CaphCE,yCACE,UVmByB,CS3B3B,0BAHA,SZoiCF,CathCE,oCACE,UVeyB,CS3B3B,0BAHA,SZ0iCF,Cc3iCA,cAGI,4BXea,CWdb,sBAFA,gBT+RM,eSvRN,CALA,UXgByB,CWpBzB,gEAMA,cXgMa,CW/Lb,gBAFA,gBTKF,8FLkjCF,CcjjCI,2BACI,oBdmjCR,CchjCI,oBACI,yBTgRE,eS/QF,CAEA,UXCqB,CWFrB,mBdojCR,CcjjCQ,8EAGI,4BXPK,CWML,wBdmjCZ,Cc9iCI,oHToQM,eL8yBV,CcziCQ,4LAEI,qBd0iCZ,CctiCI,0BACI,yBACA,qBACA,adwiCR,CctiCQ,gCACI,kCdwiCZ,CcpiCI,qCACI,qBXiHoB,CWhHpB,cX+IS,CW9IT,gBACA,kBACA,WACA,QACA,qBdsiCR,CcniCI,oBAEI,gCADA,iCdsiCR,CcliCI,iCACI,qBdoiCR,Cc9hCI,qCAOI,aX9BQ,CWyBR,gBACA,qBAFA,2BAOA,eAJA,kBACA,WACA,QdoiCR,Cc9hCQ,uDACI,eACA,QdiiCZ,Cc3hCI,kBAEI,aX/BO,CW8BP,ed+hCR,CajmCI,2HACE,sBbqmCN,CalmCI,iHACE,gBbqmCN,CanmCM,uJACE,sBbsmCR,Ca/lCI,uEACE,ebmmCN,CajmCM,6GACE,qBbomCR,CahmCI,iFACE,qBbmmCN,CajmCM,6GACE,uBbomCR,Ca3lCI,2HACE,wBb+lCN,Ca5lCI,iHACE,iBb+lCN,Ca7lCM,uJACE,wBbgmCR,CazlCI,uEACE,iBb6lCN,Ca3lCM,6GACE,wBb8lCR,Ca1lCI,iFACE,wBb6lCN,Ca3lCM,6GACE,2Bb8lCR,CarlCI,+FAEE,gBbylCN,CavlCM,qIACE,sBb0lCR,CatlCI,yGACE,sBbylCN,CanlCI,qDACE,eACA,ebulCN,CarlCM,2FACE,qBbwlCR,CaplCI,+DACE,qBbulCN,CarlCM,sLAEE,wBbwlCR,CcjnCI,oOAEI,kCXyMS,CWxMT,WdsnCR,CcrnCQ,4fAII,kCXoMK,CWrML,Wd+nCZ,CcxnCY,iJACI,kCd2nChB,CctnCI,yGACI,kCXsLS,CWrLT,WdynCR,CcpnCI,4DACI,adunCR,CclnCI,gEACI,adqnCR,CcjnCA,mBAEI,yBACA,qBXmBwB,CWlBxB,UXnIc,CWoId,uBT5IF,8FLqwCF,CcrnCI,kFARA,qBdgoCJ,CcpnCI,mDACI,adsnCR,CcpnCI,oDACI,adsnCR,CcnnCI,kEAGI,gBdonCR,Cc/mCI,sCACI,qBXvKqB,CWwKrB,oBdknCR,Cc9mCQ,2DACI,kCdgnCZ,Cc3mCA,yBAEI,kBd8mCJ,Cc1mCI,0CACI,wBd6mCR,Cc7lCA,iFACI,wBXpLyB,CWqLzB,aXzKY,CW0KZ,kBd4mCJ,CczmCA,sBACI,gBXpNyB,CWqNzB,iBd4mCJ,CczmCA,6CACI,iBd4mCJ,CczmCA,iCACI,ad4mCJ,CczmCA,sBAII,4BXtNa,CWuNb,sBAKA,gBAJA,UXrNyB,CWuNzB,cXrCa,CWsCb,gBAFA,gBANA,eACA,aACA,WdmnCJ,Cc1mCI,yDAII,4BXlOS,CWiOT,yBT8CE,eL+jCV,CcrmCI,gMAEI,kBdymCR,Cex2CA,OACI,SACA,gBACA,WAEA,eADA,iBf42CJ,Cez2CI,kBACI,iBf22CR,Cex2CI,eACI,gBACA,OACA,kBACA,QACA,SACA,WACA,Sf02CR,Cex2CI,wCACI,Qf02CR,Cev2CI,8BAEI,cADA,eAEA,UAGA,iBAFA,kBACA,Of02CR,Cet2CI,mBACI,cACA,afw2CR,Cer2CI,8BAEI,iBZqIwB,CYtIxB,2Bfw2CR,Cep2CI,uBACI,iBfs2CR,Cen2CA,YACI,wBZqOoB,CYpOpB,afs2CJ,Cep2CA,eACI,wBZkOoB,CYjOpB,afu2CJ,Cer2CA,eACI,wBZ+NoB,CY9NpB,afw2CJ,Cet2CA,cACI,wBZSW,CYRX,Ufy2CJ,CgBl6CQ,kHAEI,4BhBy6CZ,CgBt6CG,mBACI,sBACA,gBbwMwB,CavMxB,ehBw6CP,CgBr6CG,+BAGI,mBADA,aAEA,UACA,UhBu6CP,CgBr6CG,kHAMI,aACA,qBhBu6CP,CgBp6CG,uBACI,ehBs6CP,CgBp6CG,iBACI,eACA,ebqLsB,CapLtB,eACA,gBhBs6CP,CgBp6CG,iBAEK,gBbwKuB,CazKvB,ebmLqB,CajLrB,iBACA,gBhBs6CR,CgBj6CQ,8DAEI,iBACA,iBhBk6CZ,CgB95CI,gBACI,iBhBg6CR,CgB55CI,yCACI,qBhB+5CR,CgB75CI,wCACI,wBhB+5CR,CgB75CI,kKAMI,gBhB+5CR,CiBx+CA,iBAUI,adTS,CcUT,eAJA,cdiMa,CchMb,gBACA,gBAPA,mBACA,kBACA,kBAEA,oCjBi/CJ,CiB1+CI,+BACE,adbO,CcuBP,eATA,cAQA,eAPA,YACA,OAKA,iBAMC,WAVD,kBAGA,kBAFA,MAOA,qCANA,UjBo/CN,CiBv+CQ,+CACI,SjB0+CZ,CiBt+CI,6BAEI,aADA,sBjB0+CR,CiBn+CI,6BACI,iBjBu+CR,CiBn+CA,gHAQE,6BAJA,qBLlDA,0BKoDA,OAGA,SL1DA,SK2DiB,CALjB,kBAEA,KjB0+CF,CiBr+CA,yDL1DE,wBAHA,SZwiDF,CiBv+CA,6BAGE,2BjB0+CF,CiBx+CA,qDLnEE,wBAHA,SZojDF,CiB1+CA,uDLvEE,0BAHA,SZ0jDF,CiBx+CA,yDAGE,wBADA,SjB4+CF,CiBz+CA,2DAGE,0BADA,UAIA,2BjB2+CF,CiBz+CA,mCAGE,UdpE2B,CcmE3B,cjB6+CF,CiB1+CA,iDAEE,UjB6+CF,CiB3+CA,2DAGE,0BADA,SjB++CF,CiB5+CA,6DAGE,wBADA,SjBg/CF,CiB7+CA,iEAEE,UjBg/CF,CiB9+CA,2EAGE,wBADA,SjBk/CF,CiB/+CA,6EAGE,UdhG2B,CciG3B,0BAFA,SjBo/CF,CkBlnDQ,gCAEI,4BlBqnDZ,CkBjnDA,QACI,QfJyB,CeKzB,gBACA,af0Le,CezLf,SlBonDJ,CkBlnDI,sBACI,UfNqB,CeUrB,cfyLiB,Ce5LjB,ef0MqB,CezMrB,Yf+O0B,Ce9O1B,iBlBqnDR,CkBjnDS,yBACI,oBACA,af+NoB,Ce9NpB,iBlBmnDb,CkBjnDY,sDAEI,qBACA,QlBmnDhB,CkBjnDY,2BAEI,iBADA,kBAEA,OlBmnDhB,CkBhnDS,6BACI,efoNoB,CenNpB,gBlBknDb,CkB/mDI,aACG,elBknDP,CkB/mDI,iCAFG,clBonDP,CkB7mDA,8BACI,iBf0H2B,CezH3B,elBgnDJ,CkB7mDA,gBAEI,wBf3DyB,Ce4DzB,6BAFA,UlBknDJ,CkB9mDI,uBACI,oBlBgnDR,CkB7mDQ,2CACI,UlB+mDZ,CkB5mDQ,oPAKI,6BACA,kBNtEV,0BAHA,SZyrDF,CkB3mDQ,0GAEI,2BfxBC,CeyBD,wBlB6mDZ,CkBzmDQ,wHAGI,6BACA,alB2mDZ,CkBxmDQ,kGACI,4BlB0mDZ,CkBrmDI,4DAEI,oBf5CK,Ce2CL,alBwmDR,CkBrmDI,+KAGQ,alBqmDZ,CkBjmDA,abmLU,eLm7CV,CkBpmDG,2BLvFD,6BAFA,SADA,gBK+FM,afvFqB,CeqFrB,afgFW,CejFX,YAEA,iBf0GuB,CUtM7B,SbssDF,CkBvmDI,6FAGI,QfvHqB,CewHrB,2CAFA,UlB0mDR,CkBnmDA,mBCjII,wBnBwuDJ,CkBpmDA,gBCpII,wBnB4uDJ,CkBrmDA,mBCvII,wBnBgvDJ,CkBtmDA,mBC1II,wBnBovDJ,CkBvmDA,kBC7II,wBnBwvDJ,CkBvmDA,oBAEI,6BACA,oCAFA,gBlB4mDJ,CkBvmDA,eAGI,QftJyB,CeqJzB,mBADA,elB4mDJ,CkBxmDI,yBACI,qBlB0mDR,CkBxmDK,4DAEG,wBlB0mDR,CkBvmDI,sGAEI,4BlBwmDR,CkBlmDI,mENvKF,yBAHA,UZixDF,CkBnmDQ,8JAII,6BN/KV,0BAHA,SZsxDF,CkB5lDI,yGAEI,UlB6lDR,CkBvlDQ,6FAII,iBfhMiB,Ce8LjB,Uf9LiB,CSH3B,yBAHA,UZ+xDF,CkBnlDQ,+hBAUI,6BAEA,kBAEA,UfpNiB,CSH3B,0BAHA,SZ8yDF,CkB9kDQ,uGAEI,4BlB+kDZ,CkB3kDQ,uUAMI,wBftOiB,CewOjB,qBlB2kDZ,CkBvkDQ,qQAMI,6BAEA,UfpPiB,CSH3B,0BAHA,SZm0DF,CkBjkDI,iEAII,iBfhQqB,Ce8PrB,UlBmkDR,CkB7jDI,mFAII,qBfxQqB,CesQrB,af7OqB,CS5B3B,yBAHA,UZ60DF,CkBzjDI,+fAUI,iBfxRqB,CSH3B,0BAHA,SZ01DF,CoB71DA,QACI,4BAEA,iBADA,iBpBi2DJ,CoB91DQ,eAIE,gBAHA,gBACA,SACA,SpBi2DV,CoB/1DY,kBACQ,qBAGA,iBADA,gBADA,kBAGA,iBpBi2DpB,CoB/1DY,2BACI,ajBhBH,CiBiBG,cACA,iBpBi2DhB,CoB/1DgB,kEAEI,apBg2DpB,CoB31DI,mBACI,ajB5BK,CiB8BL,eAGA,iBADA,gBAHA,kBAKA,kBAHA,kBpBg2DR,CoB31DI,eACI,apB61DR,CqBp4DA,eACI,wBlBYyB,CkBXzB,SACA,iBlB4K2B,CEoHrB,+DgBvRN,CARA,cTEF,wBSDE,gBTFF,SSQmB,CALjB,UACA,kBACA,kBACA,YrB24DJ,CqBr4DI,qBTTF,0BAHA,SSauB,CACjB,kBrBw4DR,CqBr4DI,wBACI,wBlBPqB,CkBQrB,QrBu4DR,CqBp4DI,gCACI,alBQqB,CkBPrB,iBlB6KU,CkB5KV,iBrBs4DR,CqBl4DI,uBACG,2BlBqMoB,CE6DjB,egBjQH,CAIA,iBhB6RC,mBAgBA,0BFnGqB,CEmEzB,0BLooDJ,CqB/4DI,4BACI,erBi5DR,CqB94DI,oBACG,alB3CM,CkB4CN,clB2JU,CkB1JV,kBhB4QH,eLyoDJ,CqBl5DO,wBACI,erBo5DX,CqBj5DI,0BACI,mBrBm5DR,CqBh5DI,iCACI,crBk5DR,CqB/4DI,gCACG,0BlBgHwB,CkB/GxB,2BrBi5DP,CqB94DI,+BACI,6BlB2GuB,CkB1GvB,8BrBg5DR,CqB74DI,wCAEI,gBADA,erBg5DR,CqB54DI,oDAEI,wBlBnCQ,CkBoCR,uBlB7EU,CkB8EV,UACA,oBrB84DR,CqBv4DI,sKAEI,wBrB24DR,CqBz4DI,sFAEI,wBrB04DR,CqBx4DI,sFAEI,wBrBy4DR,CqBv4DI,oFAEI,wBrBw4DR,CqBl4DA,kBACI,erBq4DJ,CqBn4DA,uBACI,gBrBs4DJ,CsBv/DA,MAaI,sBAZA,SACA,qBnBwKwB,CmBvKxB,yCAEA,anB2TwB,CmBpTxB,sBANA,mBACA,kBACA,StB8/DJ,CsBv/DI,kBACI,cACA,etBy/DR,CsBt/DI,QACI,atBw/DR,CsBr/DI,aAII,0BADA,aADA,gBAGA,kBAGA,4BAPA,UtB8/DR,CsBr/DQ,iBACI,UtBu/DZ,CsBp/DI,eACI,sBtBs/DR,CsBp/DI,cACI,gBtBs/DR,CsBp/DI,mBAEI,anB5CK,CmB2CL,atBu/DR,CsBn/DI,SACI,iBACA,kBACA,kBtBq/DR,CsBl/DI,SACI,iBnBgJU,CmB/IV,QtBo/DR,CsBl/DI,4BAEI,cnB4IS,CmB3IT,enB6JqB,CmB1JrB,gBADA,yBtBo/DR,CsBl/DQ,gCACI,atBq/DZ,CsBj/DI,YAII,qBAHA,eACA,kBACA,0BAEA,qBtBm/DR,CsBh/DI,aAEI,anB+OoB,CmB9OpB,enBwIqB,CmB1IrB,QtBo/DR,CsBh/DI,cAII,kBAFA,YAGA,iBAFA,gBAFA,UtBs/DR,CsBh/DI,cAEI,iBADA,StBm/DR,CsBh/DQ,sBACI,atBk/DZ,CsB/+DQ,iBAEI,kBADA,ctBk/DZ,CsB9+DI,aACI,cACA,etBg/DR,CsB/+DQ,eACI,iBACA,ctBk/DZ,CsB9+DI,iCAHQ,oBtBo/DZ,CsB7+DI,cACI,iBnBkFU,CmBjFV,enBsGqB,CmBrGrB,wBtB++DR,CsB7+DI,gBACI,ctB++DR,CsB5+DI,2BAKI,qBnBlGqB,CmBmGrB,WALA,YAMA,kBALA,YACA,MACA,StBi/DR,CsB3+DI,gBAEI,aADA,atB8+DR,CsBz+DQ,oEAEI,iBtB2+DZ,CsBx+DQ,kEAEI,kBtB0+DZ,CsBt+DI,aACI,iBnBmBwB,CmBlBxB,iBtBw+DR,CsBt+DQ,6BACI,iBtBw+DZ,CsBr+DI,gBACI,cACA,etBu+DR,CsBr+DI,eACI,cACA,gBtBu+DR,CsBt+DQ,iBACI,QtBw+DZ,CsBp+DQ,yBACI,ctBs+DZ,CsBr+DY,0CACI,+BtBu+DhB,CsBl+DI,mBXnLF,wBRgDc,CQ8DZ,UX2iEJ,CWvpEE,6WAWE,wBRqCyB,CQpCzB,UX+oEJ,CWxoEI,k2BAME,wBRqBU,CQpBV,oBXqoEN,CWjoEE,kDAEE,eXkoEJ,CWnjEE,8BAEE,oBRnEY,CQkEZ,aXsjEJ,CWnjEI,6GAGE,4BRtGW,CQwGX,oBRxEuB,CQuEvB,aXojEN,CW/iEE,4BACE,aXijEJ,CW/iEI,uGAGE,4BRlHW,CQmHX,aRnFuB,CQoFvB,oBX+iEN,CsB9/DI,mBXvLF,wBRqDc,CQyDZ,UX2kEJ,CWvrEE,6WAWE,wBR0CmB,CQzCnB,UX+qEJ,CWxqEI,k2BAME,wBR0BU,CQzBV,oBXqqEN,CWjqEE,kDAEE,eXkqEJ,CWnlEE,8BAEE,oBR9DY,CQ6DZ,aXslEJ,CWnlEI,6GAGE,4BRtGW,CQwGX,oBRnEiB,CQkEjB,aXolEN,CW/kEE,4BACE,aXilEJ,CW/kEI,uGAGE,4BRlHW,CQmHX,aR9EiB,CQ+EjB,oBX+kEN,CsB1hEI,gBX3LF,wBRyDW,CQqDT,UX2mEJ,CWvtEE,4UAWE,wBR6CgB,CQ5ChB,UX+sEJ,CWxsEI,0xBAME,wBR8BO,CQ7BP,oBXqsEN,CWjsEE,4CAEE,eXksEJ,CWnnEE,2BAEE,oBR1DS,CQyDT,aXsnEJ,CWnnEI,oGAGE,4BRtGW,CQwGX,oBRhEc,CQ+Dd,aXonEN,CW/mEE,yBACE,aXinEJ,CW/mEI,8FAGE,4BRlHW,CQmHX,aR3Ec,CQ4Ed,oBX+mEN,CsBtjEI,mBX/LF,wBR8Dc,CQgDZ,UX2oEJ,CWvvEE,6WAWE,wBRkDmB,CQjDnB,UX+uEJ,CWxuEI,k2BAME,wBRmCU,CQlCV,oBXquEN,CWjuEE,kDAEE,eXkuEJ,CWnpEE,8BAEE,oBRrDY,CQoDZ,aXspEJ,CWnpEI,6GAGE,4BRtGW,CQwGX,oBR3DiB,CQ0DjB,aXopEN,CW/oEE,4BACE,aXipEJ,CW/oEI,uGAGE,4BRlHW,CQmHX,aRtEiB,CQuEjB,oBX+oEN,CsBllEI,kBXnMF,wBRmEa,CQ2CX,UX2qEJ,CWvxEE,kWAWE,wBRuDkB,CQtDlB,UX+wEJ,CWxwEI,00BAME,wBRwCS,CQvCT,oBXqwEN,CWjwEE,gDAEE,eXkwEJ,CWnrEE,6BAEE,oBRhDW,CQ+CX,aXsrEJ,CWnrEI,0GAGE,4BRtGW,CQwGX,oBRtDgB,CQqDhB,aXorEN,CW/qEE,2BACE,aXirEJ,CW/qEI,oGAGE,4BRlHW,CQmHX,aRjEgB,CQkEhB,oBX+qEN,CWnzEE,gYAWE,qBRNyB,CQOzB,UX+yEJ,CWxyEI,k2BAME,qBRpBuB,CQqBvB,iBXqyEN,CWjyEE,kDAEE,eXkyEJ,CW3xEI,8BACE,aX6xEN,CW3xEM,6GAGE,aX2xER,CWvxEI,4BACE,UXyxEN,CWvxEM,uGAGE,aXuxER,CWnxEI,+BACE,UXqxEN,CWnxEM,gHAGE,aXmxER,CW/wEI,+BACE,UXixEN,CW/wEM,gHAGE,aX+wER,CW3wEI,+BACE,UX6wEN,CW3wEM,gHAGE,aX2wER,CWvwEI,iSAQE,qBR5FuB,CQ6FvB,aXkwEN,CW/vEI,4EAGE,aX+vEN,CWxvEE,8BAEE,iBR5GyB,CQ2GzB,UX2vEJ,CWxvEI,6GAGE,4BRtGW,CQwGX,iBRnHuB,CQkHvB,UXyvEN,CWpvEE,4BACE,UXsvEJ,CWpvEI,uGAGE,4BRlHW,CQmHX,UR9HuB,CQ+HvB,oBXovEN,CsB9qEI,kBACI,0BACA,aAEA,gBADA,iBtBkrER,CsB/qEQ,sBACI,UtBirEZ,CsB9qEI,wBACI,SACA,gBtBgrER,CsB9qEI,mBAGI,iBAFA,kBACA,mBtBirER,CsB/qEQ,0BACI,atBirEZ,CsBhrEY,gCACI,atBkrEhB,CsB9qEI,mBAGI,kBADA,aAGA,mBADA,kBAHA,WtBorER,CsB9qEQ,gCACI,qBtBgrEZ,CsB9qEQ,+BACI,wBtBgrEZ,CsB7qEI,kBACI,gBACA,gBtB+qER,CsB7qEI,wBACI,etB+qER,CsB7qEI,oBACI,gBtB+qER,CsB3qEQ,8BACI,aACA,WtB6qEZ,CsBvqEI,eACI,aACA,gBtB0qER,CsBxqEQ,mBACI,WtB0qEZ,CsBpqEI,uCACI,qBtBwqER,CsBtqEI,6BACI,etByqER,CsBtqEA,YACI,6BAEA,gBADA,etB0qEJ,CsBvqEI,mBACI,iBtByqER,CuBx1EE,UAxDA,mBtB7Bc,CsB8Bd,oBtB9Bc,CsB+Bd,ctB9Ba,CsB+Bb,avBo5EF,CuB31EE,iDArEA,cAKA,YvBq6EF,CuBh2EE,iCAGE,kBA9FF,oBA4F4B,CAxF5B,0BAwFsC,CArFpC,evBi8EJ,CuBv2EE,+BAGE,kBApGF,sBAkG4B,CA9F5B,0BA8FwC,CA3FtC,evB88EJ,CuB92EE,+BAGE,gBA1GF,oBAwG4B,CApG5B,wBAoGsC,CA/FpC,gBvBy9EJ,CuBr3EE,6BAGE,kBAhHF,oBA8G4B,CA1G5B,0BA0GsC,CAvGpC,evBw+EJ,CuB53EE,+CAGE,kBAtHF,oBAoH4B,CAhH5B,sBAgHsC,CAzGpC,iBvBi/EJ,CuBn4EE,6CAGE,kBA5HF,sBA0H4B,CAtH5B,sBAsHwC,CA/GtC,iBvB8/EJ,CuB14EE,kEAGE,kBAlIF,oBAgI4B,CA5H5B,0BA4HsC,CAzHpC,evB+gFJ,CuBj5EE,gEAGE,kBAxIF,sBAsI4B,CAlI5B,0BAkIwC,CA/HtC,evB4hFJ,CuBx5EE,gEAIE,gBA/IF,kBA6I4B,CAzI5B,wBAyIoC,CApIlC,gBvBuiFJ,CuB95EE,8DAGE,gBArJF,kBAmJ4B,CA/I5B,0BA+IoC,CA5IlC,evBsjFJ,CuBr6EE,SAvHA,qBtB7Bc,CsB8Bd,gBtB5Bc,CsB+BZ,oBvB8hFJ,CuBv6EE,UAlHA,iBtB/Bc,CsBgCd,oBvB6hFF,CuBx6EE,SAjHA,UACA,gBvB6hFF,CuBz6EE,SA5GA,YACA,evByhFF,CuB16EE,QA3GA,UACA,iBvByhFF,CuB36EE,gBA1GA,UACA,iBvByhFF,CuBrhFE,+FACE,cvBwhFJ,CuBrhFE,iDACE,YvBuhFJ,CuB5hFE,+FACE,cvB+hFJ,CuB5hFE,iDACE,YvB8hFJ,CuBniFE,+FACE,cvBsiFJ,CuBniFE,iDACE,YvBqiFJ,CuB1iFE,+FACE,cvB6iFJ,CuB1iFE,iDACE,YvB4iFJ,CuBjjFE,+FACE,cvBojFJ,CuBjjFE,iDACE,YvBmjFJ,CuBxjFE,+FACE,yBvB2jFJ,CuBxjFE,iDACE,uBvB0jFJ,CuB/jFE,+FACE,yBvBkkFJ,CuB/jFE,iDACE,uBvBikFJ,CuBtkFE,+FACE,0BvBykFJ,CuBtkFE,iDACE,wBvBwkFJ,CuB7kFE,+FACE,yBvBglFJ,CuB7kFE,iDACE,uBvB+kFJ,CuBplFE,+FACE,yBvBulFJ,CuBplFE,iDACE,uBvBslFJ,CuB3lFE,+FACE,yBvB8lFJ,CuB3lFE,iDACE,uBvB6lFJ,CuBlmFE,+FACE,yBvBqmFJ,CuBlmFE,iDACE,uBvBomFJ,CuBzmFE,+FACE,0BvB4mFJ,CuBzmFE,iDACE,wBvB2mFJ,CuBhnFE,+FACE,yBvBmnFJ,CuBhnFE,iDACE,uBvBknFJ,CuBvnFE,+FACE,yBvB0nFJ,CuBvnFE,iDACE,uBvBynFJ,CuBrgFM,WA/NJ,cACA,kBACA,UvBwuFF,CuBtuFE,kBAGE,WAFA,cACA,WAGA,SACA,oBAFA,OvB0uFJ,CuBruFE,iBAGE,WAFA,WACA,avBwuFJ,CuBpuFE,eACE,cAGA,OAFA,kBACA,KvBuuFJ,CuB9hFM,iBA/NJ,cACA,kBACA,UvBiwFF,CuB/vFE,wBAGE,WAFA,cACA,WAGA,SACA,sBAFA,OvBmwFJ,CuB9vFE,uBAGE,WAFA,WACA,avBiwFJ,CuB7vFE,qBACE,cAGA,OAFA,kBACA,KvBgwFJ,CuBvjFM,iBA/NJ,cACA,kBACA,UvB0xFF,CuBxxFE,wBAGE,WAFA,cACA,WAGA,SACA,8BAFA,OvB4xFJ,CuBvxFE,uBAGE,WAFA,WACA,avB0xFJ,CuBtxFE,qBACE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AEA,cALA,kBAEA,UxByoGR,CwBnoGE,8BAGI,YAFA,wBACA,UxBsoGN,CwBnoGE,kBAGE,6BxBqoGJ,CwBnoGE,MnB8FC,4CAEA,6BACA,qCAEA,6BmBlGC,KxB2oGJ,CwBxoGE,MACE,SxB0oGJ,CwBxoGE,MnBuFC,+CAEA,gCACA,qCAEA,6BmB3FC,QxBgpGJ,CwB7oGE,enBmFC,yCAEA,0BACA,qCAEA,6BmBvFC,OxBqpGJ,CwBlpGE,eACE,SxBopGJ,CwBlpGE,enB4EC,4CAEA,6BACA,qCAEA,6BmBhFC,UxB0pGJ,CKtkGE,oBACE,GAAI,MAAU,sBL0kGhB,CKzkGE,IAAK,QAAU,wBL6kGjB,CK5kGE,IAAK,wBL+kGP,CK9kGE,GAAM,wBLilGR,CACF,CKhlGE,4BACE,GAAI,MAAU,8BLolGhB,CKnlGE,IAAK,QAAU,gCLulGjB,CKtlGE,IAAK,gCLylGP,CKxlGE,GAAO,gCL2lGT,CACF,CKjlGE,uBACE,GAAK,QAAU,wBLqmGjB,CKpmGE,IAAM,wBLumGR,CKtmGE,IAAM,sBLymGR,CKxmGE,GAAO,MAAU,mBL4mGnB,CACF,CK1mGE,+BACE,GAAK,QAAU,gCL8mGjB,CK7mGE,IAAM,gCLgnGR,CK/mGE,IAAM,8BLknGR,CKjnGE,GAAO,MAAU,2BLqnGnB,CACF,CK1mGE,uBACE,GAAI,SAAa,sBL8nGnB,CK7nGE,IAAK,WAAa,yBLioGpB,CKhoGE,IAAK,yBLmoGP,CKloGE,GAAM,yBLqoGR,CACF,CKpoGE,+BACE,GAAI,SAAa,8BLwoGnB,CKvoGE,IAAK,WAAa,iCL2oGpB,CK1oGE,IAAK,iCL6oGP,CK5oGE,GAAM,iCL+oGR,CACF,CKroGE,0BACE,GAAK,WAAY,yBLypGnB,CKxpGE,IAAM,uBL2pGR,CK1pGE,IAAM,uBL6pGR,CK5pGE,GAAO,SAAY,mBLgqGrB,CACF,CK/pGE,kCACE,GAAI,WAAY,iCLmqGlB,CKlqGE,IAAK,+BLqqGP,CKpqGE,IAAK,+BLuqGP,CKtqGE,GAAM,SAAY,2BL0qGpB,CACF,CwBj0GE,0BACE,GAAI,SxBo1GN,CwBn1GE,GAAM,SxBs1GR,CACF,CwBj1GE,kBACE,GAAI,SxB41GN,CwB31GE,GAAM,SxB81GR,CACF,CwB51GE,wBACI,mCxB81GN,CwB31GE,YACI,YxB61GN,CwB11GE,eACI,YxB41GN,CwBz1GU,oDAEI,4BxB01Gd,CwBr1GE,kBACI,kCxBu1GN,CwBr1GE,WAQI,WAPA,YAKA,UAFA,UAMA,kBAPA,eAIA,YAFA,MAHA,WAOA,YxBw1GN,CwBr1GE,qCACI,exBu1GN,CwBr1GE,0CACI,sCxBu1GN,CwBr1GE,qBACI,exBu1GN,CwBr1GE,oBAGI,cADA,qBAEA,mBAHA,SxB01GN,CwBr1GE,wBACI,UxBu1GN,CwBp1GE,0BACI,qBxBs1GN,CwBp1GE,6BACI,axBs1GN,CwBp1GE,wCACI,uBxBs1GN,CwBp1GE,eACI,UxBs1GN,CwBp1GE,iCAKI,6BACA,SAEA,gBANA,WAEA,aAHA,gBAEA,UxB21GN,CwBn1GE,qBACI,eACA,exBq1GN,CwBl1GM,mDAGI,4BxBk1GV,CwB70GE,mBACI,eACA,UxB+0GN,CACF,CwB10GA,yBACI,kBACI,kBACA,kBxB40GN,CwB10GE,kBACI,gBxB40GN,CACF,CwBx0GA,yBACI,kBAMI,4CACA,iCAJA,sBADA,mBAEA,kBACA,kBAJA,UxBg1GN,CACF,CyBtwHA,gBACI,SACA,kBACA,qBAKA,gBAHA,gBADA,kBAEA,UzB0wHJ,CyBrwHI,mBAGI,mCAFA,eACA,WzBwwHR,CyBpwHI,qCACI,WzBswHR,C0BxxHA,WACC,6BAOA,kBADA,gBALA,iDACA,2R1BgyHD,C2BnyHA,mCAGC,WAQA,mCACA,kCAXA,qBACA,6BAEA,kBAEA,oBADA,gBAGA,cADA,mB3ByyHD;A4B1yHA;;;EAAA,CAMA,OACE,kBACA,kBACA,mB5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OAEE,kBADA,oB5BgzHF,C4B5yHA,OAGE,qBADA,2BADA,c5BizHF,C4B7yHE,UACE,iB5B+yHJ,C4B3yHA,OAEE,qBADA,kBAIA,kBADA,kBADA,oB5BgzHF,C4B5yHE,aACE,oB5B8yHJ,C4B1yHA,WAEE,wBACA,mBAFA,wB5B+yHF,C4B1yHA,YACE,W5B6yHF,C4BzyHE,cACE,WAEA,iBADA,iB5B6yHJ,C4BxyHA,SACE,2E5B2yHF,C4BxyHA,wBACE,GACE,sB5B2yHF,C4BzyHA,GACE,wB5B2yHF,CACF,C4BjzHA,gBACE,GACE,sB5B2yHF,C4BzyHA,GACE,wB5B2yHF,CACF,C4BxyHA,cACE,gEACA,uB5B0yHF,C4BvyHA,eACE,gEACA,wB5B0yHF,C4BvyHA,eACE,gEACA,wB5B0yHF,C4BvyHA,oBACE,yEACA,oB5B0yHF,C4BvyHA,kBACE,yEACA,oB5B0yHF,C4BvyHA,UAEE,qBAEA,WACA,gBAJA,kBAKA,sBAHA,S5B6yHF,C4BvyHA,0BAGE,OADA,kBAGA,kBADA,U5B2yHF,C4BvyHA,aACE,mB5B0yHF,C4BvyHA,aACE,a5B0yHF,C4BvyHA,YACE,U5B0yHF,C4BtyHA,OACE,qB5B0yHF,C4BvyHA,WACE,0B5B0yHF,C6Bl8HA,oBACE,e7Bq8HF,C6Bl8HA,kBACE,e7Bq8HF,C6Bn8HA,qBACE,e7Bs8HF,C6Bp8HA,sBACE,e7Bu8HF,C6Br8HA,kBACE,e7Bw8HF,C6Bt8HA,sBACE,e7By8HF,C6Bv8HA,wBACE,e7B08HF,C6Bx8HA,yBACE,e7B28HF,C6Bz8HA,qBACE,e7B48HF,C6B18HA,kBACE,e7B68HF,C6B38HA,qBACE,e7B88HF,C6B58HA,yBACE,e7B+8HF,C6B78HA,mBACE,e7Bg9HF,C6B98HA,wBACE,e7Bi9HF,C6B/8HA,mBACE,e7Bk9HF,C6Bh9HA,yBACE,e7Bm9HF,C6Bj9HA,mBACE,e7Bo9HF,C6Bl9HA,oBACE,e7Bq9HF,C6Bn9HA,qBACE,e7Bs9HF,C6Bp9HA,2BACE,e7Bu9HF,C6Br9HA,uBACE,e7Bw9HF,C6Bt9HA,oBACE,e7By9HF,C6Bv9HA,oBACE,e7B09HF,C6Bx9HA,qBACE,e7B29HF,C6Bz9HA,wBACE,e7B49HF,C6B19HA,qBACE,e7B69HF,C6B39HA,uBACE,e7B89HF,C6B59HA,qBACE,e7B+9HF,C6B79HA,oBACE,e7Bg+HF,C6B99HA,kBACE,e7Bi+HF,C6B/9HA,qBACE,e7Bk+HF,C6Bh+HA,mBACE,e7Bm+HF,C6Bj+HA,2BACE,e7Bo+HF,C6Bl+HA,mBACE,e7Bq+HF,C6Bn+HA,oBACE,e7Bs+HF,C6Bp+HA,wBACE,e7Bu+HF,C6Br+HA,6BACE,e7Bw+HF,C6Bt+HA,kBACE,e7By+HF,C6Bv+HA,2BACE,e7B0+HF,C6Bx+HA,iBACE,e7B2+HF,C6Bz+HA,uBACE,e7B4+HF,C6B1+HA,yBACE,e7B6+HF,C6B3+HA,8BACE,e7B8+HF,C6B5+HA,oBACE,e7B++HF,C6B7+HA,0BACE,e7Bg/HF,C6B9+HA,qBACE,e7Bi/HF,C6B/+HA,iCACE,e7Bk/HF,C6Bh/HA,oBACE,e7Bm/HF,C6Bj/HA,yBACE,e7Bo/HF,C6Bl/HA,0BACE,e7Bq/HF,C6Bn/HA,gCACE,e7Bs/HF,C6Bp/HA,uBACE,e7Bu/HF,C6Br/HA,yBACE,e7Bw/HF,C6Bt/HA,qBACE,e7By/HF,C6Bv/HA,gCACE,e7B0/HF,C6Bx/HA,uBACE,e7B2/HF,C6Bz/HA,qBACE,e7B4/HF,C6B1/HA,mBACE,e7B6/HF,C6B3/HA,sBACE,e7B8/HF,C6B5/HA,sBACE,e7B+/HF,C6B7/HA,wBACE,e7BggIF,C6B9/HA,oBACE,e7BigIF,C6B//HA,mBACE,e7BkgIF,C6BhgIA,qBACE,e7BmgIF,C6BjgIA,qBACE,e7BogIF,C6BlgIA,uBACE,e7BqgIF,C6BngIA,oBACE,e7BsgIF,C6BpgIA,oBACE,e7BugIF,C6BrgIA,oBACE,e7BwgIF,C6BtgIA,qBACE,e7BygIF,C6BvgIA,qBACE,e7B0gIF,C6BxgIA,kBACE,e7B2gIF,C6BzgIA,oBACE,e7B4gIF,C6B1gIA,wBACE,e7B6gIF,C6B3gIA,mBACE,e7B8gIF,C6B5gIA,sBACE,e7B+gIF,C6B7gIA,qBACE,e7BghIF,C6B9gIA,sBACE,e7BihIF,C6B/gIA,sBACE,e7BkhIF,C6BhhIA,oBACE,e7BmhIF,C6BjhIA,qBACE,e7BohIF,C6BlhIA,qBACE,e7BqhIF,C6BnhIA,mBACE,e7BshIF,C6BphIA,sBACE,e7BuhIF,C6BrhIA,mBACE,e7BwhIF,C6BthIA,qBACE,e7ByhIF,C6BvhIA,qBACE,e7B0hIF,C6BxhIA,sBACE,e7B2hIF,C6BzhIA,uBACE,e7B4hIF,C6B1hIA,4BACE,e7B6hIF,C6B3hIA,wBACE,e7B8hIF,C6B5hIA,oBACE,e7B+hIF,C6B7hIA,oBACE,e7BgiIF,C6B9hIA,oBACE,e7BiiIF,C6B/hIA,sBACE,e7BkiIF,C6BhiIA,mBACE,e7BmiIF,C6BjiIA,mBACE,e7BoiIF,C6BliIA,oBACE,e7BqiIF,C6BniIA,oBACE,e7BsiIF,C6BpiIA,wBACE,e7BuiIF,C6BriIA,oBACE,e7BwiIF,C6BtiIA,mBACE,e7ByiIF,C6BviIA,yBACE,e7B0iIF,C6BxiIA,mBACE,e7B2iIF,C6BziIA,kBACE,e7B4iIF,C6B1iIA,oBACE,e7B6iIF,C6B3iIA,kBACE,e7B8iIF,C6B5iIA,4BACE,e7B+iIF,C6B7iIA,kBACE,e7BgjIF,C6B9iIA,oBACE,e7BijIF,C6B/iIA,mBACE,e7BkjIF,C6BhjIA,kBACE,e7BmjIF,C6BjjIA,0BACE,e7BojIF,C6BljIA,0BACE,e7BqjIF,C6BnjIA,0BACE,e7BsjIF,C6BpjIA,oBACE,e7BujIF,C6BrjIA,2BACE,e7BwjIF,C6BtjIA,uBACE,e7ByjIF,C6BvjIA,mBACE,e7B0jIF,C6BxjIA,mBACE,e7B2jIF,C6BzjIA,yBACE,e7B4jIF,C6B1jIA,wBACE,e7B6jIF,C6B3jIA,oBACE,e7B8jIF,C6B5jIA,oBACE,e7B+jIF,C6B7jIA,mBACE,e7BgkIF,C6B9jIA,mBACE,e7BikIF,C6B/jIA,sBACE,e7BkkIF,C6BhkIA,oBACE,e7BmkIF,C6BjkIA,mBACE,e7BokIF,C6BlkIA,kBACE,e7BqkIF,C6BnkIA,yBACE,e7BskIF,C6BpkIA,mBACE,e7BukIF,C6BrkIA,wBACE,e7BwkIF,C6BtkIA,6BACE,e7BykIF,C6BvkIA,qBACE,e7B0kIF,C6BxkIA,mBACE,e7B2kIF,C6BzkIA,mBACE,e7B4kIF,C6B1kIA,mBACE,e7B6kIF,C6B3kIA,sBACE,e7B8kIF,C6B5kIA,mBACE,e7B+kIF,C6B7kIA,mBACE,e7BglIF,C6B9kIA,oBACE,e7BilIF,C6B/kIA,mBACE,e7BklIF,C6BhlIA,qBACE,e7BmlIF,C6BjlIA,mBACE,e7BolIF,C6BllIA,mBACE,e7BqlIF,C6BnlIA,mBACE,e7BslIF,C6BplIA,oBACE,e7BulIF,C6BrlIA,oBACE,e7BwlIF,C6BtlIA,qBACE,e7BylIF,C6BvlIA,qBACE,e7B0lIF,C6BxlIA,qBACE,e7B2lIF,C6BzlIA,oBACE,e7B4lIF,C6B1lIA,qBACE,e7B6lIF,C6B3lIA,oBACE,e7B8lIF,C6B5lIA,sBACE,e7B+lIF,C6B7lIA,mBACE,e7BgmIF,C6B9lIA,qBACE,e7BimIF,C6B/lIA,mBACE,e7BkmIF,C6BhmIA,qBACE,e7BmmIF,C6BjmIA,mBACE,e7BomIF,C6BlmIA,sBACE,e7BqmIF,C6BnmIA,sBACE,e7BsmIF,C6BpmIA,mBACE,e7BumIF,C6BrmIA,mBACE,e7BwmIF,C6BtmIA,qBACE,e7BymIF,C6BvmIA,uBACE,e7B0mIF,C6BxmIA,uBACE,e7B2mIF,C6BzmIA,uBACE,e7B4mIF,C6B1mIA,uBACE,e7B6mIF,C6B3mIA,mBACE,e7B8mIF,C6B5mIA,kBACE,e7B+mIF,C6B7mIA,sBACE,e7BgnIF,C6B9mIA,mBACE,e7BinIF,C6B/mIA,qBACE,e7BknIF,C6BhnIA,wBACE,e7BmnIF,C6BjnIA,qBACE,e7BonIF,C6BlnIA,sBACE,e7BqnIF,C6BnnIA,sBACE,e7BsnIF,C6BpnIA,qBACE,e7BunIF,C6BrnIA,oBACE,e7BwnIF,C6BtnIA,oBACE,e7BynIF,C6BvnIA,oBACE,e7B0nIF,C6BxnIA,mBACE,e7B2nIF,C6BznIA,mBACE,e7B4nIF,C6B1nIA,qBACE,e7B6nIF,C6B3nIA,mBACE,e7B8nIF,C6B5nIA,yBACE,e7B+nIF,C6B7nIA,sBACE,e7BgoIF,C6B9nIA,mBACE,e7BioIF,C6B/nIA,mBACE,e7BkoIF,C6BhoIA,wBACE,e7BmoIF,C6BjoIA,sBACE,e7BooIF,C6BloIA,mBACE,e7BqoIF,C6BnoIA,sBACE,e7BsoIF,C6BpoIA,mBACE,e7BuoIF,C6BroIA,mBACE,e7BwoIF,C6BtoIA,wBACE,e7ByoIF,C6BvoIA,qBACE,e7B0oIF,C6BxoIA,qBACE,e7B2oIF,C6BzoIA,oBACE,e7B4oIF,C6B1oIA,sBACE,e7B6oIF,C","sources":["webpack:///./resources/sass/admin/paper-dashboard.scss","webpack:///./resources/sass/admin/paper/mixins/_chartist.scss","webpack:///./resources/sass/admin/paper/_typography.scss","webpack:///./resources/sass/admin/paper/_variables.scss","webpack:///./resources/sass/admin/paper/_misc.scss","webpack:///./resources/sass/admin/paper/mixins/_vendor-prefixes.scss","webpack:///./resources/sass/admin/paper/_sidebar-and-main-panel.scss","webpack:///./resources/sass/admin/paper/mixins/_sidebar.scss","webpack:///./resources/sass/admin/paper/_badges.scss","webpack:///./resources/sass/admin/paper/mixins/_badges.scss","webpack:///./resources/sass/admin/paper/_buttons.scss","webpack:///./resources/sass/admin/paper/mixins/_buttons.scss","webpack:///./resources/sass/admin/paper/mixins/_transparency.scss","webpack:///./resources/sass/admin/paper/mixins/_inputs.scss","webpack:///./resources/sass/admin/paper/_inputs.scss","webpack:///./resources/sass/admin/paper/_alerts.scss","webpack:///./resources/sass/admin/paper/_tables.scss","webpack:///./resources/sass/admin/paper/_checkbox-radio.scss","webpack:///./resources/sass/admin/paper/_navbars.scss","webpack:///./resources/sass/admin/paper/mixins/_navbars.scss","webpack:///./resources/sass/admin/paper/_footers.scss","webpack:///./resources/sass/admin/paper/_dropdown.scss","webpack:///./resources/sass/admin/paper/_cards.scss","webpack:///./resources/sass/admin/paper/_chartist.scss","webpack:///./resources/sass/admin/paper/_responsive.scss","webpack:///./resources/sass/admin/paper/_form-container.scss","webpack:///./node_modules/pe7-icon/dist/scss/_path.scss","webpack:///./node_modules/pe7-icon/dist/scss/_core.scss","webpack:///./node_modules/pe7-icon/dist/scss/_helper.scss","webpack:///./node_modules/pe7-icon/dist/scss/_icons.scss"],"sourcesContent":["/*!\r\n\r\n =========================================================\r\n * Paper Dashboard - v1.1.2\r\n =========================================================\r\n\r\n * Product Page: http://www.creative-tim.com/product/paper-dashboard\r\n * Copyright 2017 Creative Tim (http://www.creative-tim.com)\r\n * Licensed under MIT (https://github.com/creativetimofficial/paper-dashboard/blob/master/LICENSE.md)\r\n\r\n =========================================================\r\n\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n */\r\n\r\n\r\n@import \"paper/variables\";\r\n@import \"paper/mixins\";\r\n\r\n@import \"paper/typography\";\r\n\r\n// Core CSS\r\n@import \"paper/misc\";\r\n@import \"paper/sidebar-and-main-panel\";\r\n@import \"paper/badges\";\r\n@import \"paper/buttons\";\r\n@import \"paper/inputs\";\r\n\r\n@import \"paper/alerts\";\r\n@import \"paper/tables\";\r\n\r\n@import \"paper/checkbox-radio\";\r\n@import \"paper/navbars\";\r\n@import \"paper/footers\";\r\n\r\n@import \"paper/dropdown\";\r\n@import \"paper/cards\";\r\n@import \"paper/chartist\";\r\n@import \"paper/responsive\";\r\n@import \"paper/form-container\";\r\n\r\n$pe-7s-font-path: \"../../fonts\" !default;\r\n@import \"../../../node_modules/pe7-icon/dist/scss/pe-icon-7-stroke\";\r\n","// Scales for responsive SVG containers\r\n$ct-scales: ((1), (15/16), (8/9), (5/6), (4/5), (3/4), (2/3), (5/8), (1/1.618), (3/5), (9/16), (8/15), (1/2), (2/5), (3/8), (1/3), (1/4)) !default;\r\n$ct-scales-names: (ct-square, ct-minor-second, ct-major-second, ct-minor-third, ct-major-third, ct-perfect-fourth, ct-perfect-fifth, ct-minor-sixth, ct-golden-section, ct-major-sixth, ct-minor-seventh, ct-major-seventh, ct-octave, ct-major-tenth, ct-major-eleventh, ct-major-twelfth, ct-double-octave) !default;\r\n\r\n// Class names to be used when generating CSS\r\n$ct-class-chart: ct-chart !default;\r\n$ct-class-chart-line: ct-chart-line !default;\r\n$ct-class-chart-bar: ct-chart-bar !default;\r\n$ct-class-horizontal-bars: ct-horizontal-bars !default;\r\n$ct-class-chart-pie: ct-chart-pie !default;\r\n$ct-class-chart-donut: ct-chart-donut !default;\r\n$ct-class-label: ct-label !default;\r\n$ct-class-series: ct-series !default;\r\n$ct-class-line: ct-line !default;\r\n$ct-class-point: ct-point !default;\r\n$ct-class-area: ct-area !default;\r\n$ct-class-bar: ct-bar !default;\r\n$ct-class-slice-pie: ct-slice-pie !default;\r\n$ct-class-slice-donut: ct-slice-donut !default;\r\n$ct-class-grid: ct-grid !default;\r\n$ct-class-vertical: ct-vertical !default;\r\n$ct-class-horizontal: ct-horizontal !default;\r\n$ct-class-start: ct-start !default;\r\n$ct-class-end: ct-end !default;\r\n\r\n// Container ratio\r\n$ct-container-ratio: (1/1.618) !default;\r\n\r\n// Text styles for labels\r\n$ct-text-color: rgba(0, 0, 0, 0.4) !default;\r\n$ct-text-size: 0.9em !default;\r\n$ct-text-align: flex-start !default;\r\n$ct-text-justify: flex-start !default;\r\n$ct-text-line-height: 1;\r\n\r\n// Grid styles\r\n$ct-grid-color: rgba(0, 0, 0, 0.2) !default;\r\n$ct-grid-dasharray: 2px !default;\r\n$ct-grid-width: 1px !default;\r\n\r\n// Line chart properties\r\n$ct-line-width: 4px !default;\r\n$ct-line-dasharray: false !default;\r\n$ct-point-size: 10px !default;\r\n// Line chart point, can be either round or square\r\n$ct-point-shape: round !default;\r\n// Area fill transparency between 0 and 1\r\n$ct-area-opacity: 0.7 !default;\r\n\r\n// Bar chart bar width\r\n$ct-bar-width: 10px !default;\r\n\r\n// Donut width (If donut width is to big it can cause issues where the shape gets distorted)\r\n$ct-donut-width: 60px !default;\r\n\r\n// If set to true it will include the default classes and generate CSS output. If you're planning to use the mixins you\r\n// should set this property to false\r\n$ct-include-classes: true !default;\r\n\r\n// If this is set to true the CSS will contain colored series. You can extend or change the color with the\r\n// properties below\r\n$ct-include-colored-series: $ct-include-classes !default;\r\n\r\n// If set to true this will include all responsive container variations using the scales defined at the top of the script\r\n$ct-include-alternative-responsive-containers: $ct-include-classes !default;\r\n\r\n// Series names and colors. This can be extended or customized as desired. Just add more series and colors.\r\n$ct-series-names: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) !default;\r\n$ct-series-colors: (\r\n $info-color,\r\n $warning-color,\r\n $danger-color,\r\n $success-color,\r\n $primary-color,\r\n rgba($info-color,.8),\r\n rgba($success-color,.8),\r\n rgba($warning-color,.8),\r\n rgba($danger-color,.8),\r\n rgba($primary-color,.8),\r\n rgba($info-color,.6),\r\n rgba($success-color,.6),\r\n rgba($warning-color,.6),\r\n rgba($danger-color,.6),\r\n rgba($primary-color,.6)\r\n \r\n) !default;\r\n\r\n// Paper Kit Colors\r\n\r\n.ct-blue{\r\n stroke: $primary-color !important;\r\n}\r\n.ct-azure{\r\n stroke: $info-color !important;\r\n}\r\n.ct-green{\r\n stroke: $success-color !important;\r\n}\r\n.ct-orange{\r\n stroke: $warning-color !important;\r\n}\r\n.ct-red{\r\n stroke: $danger-color !important;\r\n}","h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, a, .td-name, td{\r\n -moz-osx-font-smoothing: grayscale;\r\n -webkit-font-smoothing: antialiased;\r\n //font-family: 'Roboto', \"Helvetica\", Arial, sans-serif;\r\n font-family: \"Roboto\",\"Helvetica Neue\",Arial,sans-serif;\r\n}\r\n\r\nh1, .h1, h2, .h2, h3, .h3, h4, .h4{\r\n font-weight: $font-weight-normal;\r\n margin: $margin-large-vertical 0 $margin-base-vertical;\r\n}\r\n\r\nh1, .h1 {\r\n font-size: $font-size-h1;\r\n}\r\nh2, .h2{\r\n font-size: $font-size-h2;\r\n}\r\nh3, .h3{\r\n font-size: $font-size-h3;\r\n line-height: 1.4;\r\n font-weight: $font-weight-light;\r\n margin: 20px 0 10px;\r\n}\r\nh4, .h4{\r\n font-size: $font-size-h4;\r\n font-weight: $font-weight-light;\r\n line-height: 1.2em;\r\n}\r\nh5, .h5 {\r\n font-size: $font-size-h5;\r\n font-weight: $font-weight-light;\r\n line-height: 1.4em;\r\n margin-bottom: 15px;\r\n}\r\nh6, .h6{\r\n font-size: $font-size-h6;\r\n font-weight: $font-weight-light;\r\n text-transform: uppercase;\r\n}\r\np{\r\n font-size: $font-paragraph;\r\n line-height: $line-height-general;\r\n}\r\n\r\nh1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small {\r\n color: $dark-gray;\r\n font-weight: $font-weight-light;\r\n line-height: $line-height-general;\r\n}\r\n\r\nh1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small {\r\n font-size: 60%;\r\n}\r\n.title-uppercase{\r\n text-transform: uppercase;\r\n}\r\nblockquote{\r\n font-style: italic;\r\n}\r\nblockquote small{\r\n font-style: normal;\r\n}\r\n.text-muted{\r\n color: $medium-gray;\r\n}\r\n.text-primary, .text-primary:hover{\r\n color: $primary-states-color;\r\n}\r\n.text-info, .text-info:hover{\r\n color: $info-states-color;\r\n}\r\n.text-success, .text-success:hover{\r\n color: $success-states-color;\r\n}\r\n.text-warning, .text-warning:hover{\r\n color: $warning-states-color;\r\n}\r\n.text-danger, .text-danger:hover{\r\n color: $danger-states-color;\r\n}\r\n.glyphicon{\r\n line-height: 1;\r\n}\r\nstrong{\r\n color: $default-states-color;\r\n}\r\n.icon-primary{\r\n color: $primary-color;\r\n}\r\n.icon-info{\r\n color: $info-color;\r\n}\r\n.icon-success{\r\n color: $success-color;\r\n}\r\n.icon-warning{\r\n color: $warning-color;\r\n}\r\n.icon-danger{\r\n color: $danger-color;\r\n}\r\n.chart-legend{\r\n .text-primary, .text-primary:hover{\r\n color: $primary-color;\r\n }\r\n .text-info, .text-info:hover{\r\n color: $info-color;\r\n }\r\n .text-success, .text-success:hover{\r\n color: $success-color;\r\n }\r\n .text-warning, .text-warning:hover{\r\n color: $warning-color;\r\n }\r\n .text-danger, .text-danger:hover{\r\n color: $danger-color;\r\n }\r\n}\r\n\r\n.description,\r\n.card-description,\r\n.footer-big p {\r\n color: $dark-gray;\r\n font-weight: $font-weight-light;\r\n}\r\n","$phpvms-blue: #067ec1 !default;\r\n\r\n$font-color: #4b4743 !default;\r\n$fill-font-color: rgba(182, 182, 182, 0.7);\r\n\r\n$none: 0 !default;\r\n$border-thin: 1px !default;\r\n$border-thick: 2px !default;\r\n\r\n$white-color: #FFFFFF !default;\r\n$white-bg: #FFFFFF !default;\r\n\r\n$smoke-bg: #F5F5F5 !default;\r\n$pale-bg: #FFFCF5 !default;\r\n$medium-pale-bg: #F1EAE0 !default;\r\n\r\n$table-line-color: #CCC5B9 !default;\r\n$muted-color: #a49e93 !default;\r\n\r\n$black-bg: rgba(30,30,30,.97) !default;\r\n$transparent-bg: transparent !default;\r\n$dark-background: #555555 !default;\r\n\r\n$black-color: #333333 !default;\r\n$black-hr: #444444 !default;\r\n\r\n$white-background-color: #FFFFFF !default;\r\n$black-background-color: #212120 !default;\r\n//$black-background-color: #1a2932 !default;\r\n//$black-background-color: #0c1419 !default;\r\n\r\n\r\n$light-gray: #E3E3E3 !default;\r\n$medium-gray: #DDDDDD !default;\r\n$dark-gray: #9A9A9A !default;\r\n\r\n$gray-input-bg: #fffcf5 !default;\r\n$danger-input-bg: #fffcf5 !default;\r\n$success-input-bg: #fffcf5 !default;\r\n$other-medium-gray: #A49E93 !default;\r\n$transparent-bg: transparent !default;\r\n\r\n$black-color: #2c2c2c !default;\r\n//$default-color: #2f2d2a !default; //#66615B !default;\r\n$default-color: #2c2c2c !default; //#66615B !default;\r\n//$default-bg: #66615B !default;\r\n$default-bg: #FFFFFF !default;\r\n$default-states-color: #403D39 !default;\r\n\r\n//$primary-color: #7A9E9F !default;\r\n$primary-color: #067ec1 !default;\r\n$primary-bg: darken($primary-color, 5%) !default;\r\n$primary-states-color: #427C89 !default;\r\n\r\n//$success-color: #7AC29A !default;\r\n$success-color: #18ce0f !default;\r\n$success-bg: darken($success-color, 5%) !default;\r\n$success-states-color: darken($success-color, 5%) !default;\r\n\r\n$info-color: #067ec1 !default; //#2CA8FF !default;\r\n$info-states-color: #0688d0 !default; // #109CFF !default;\r\n$info-color-opacity: rgba(44, 168, 255, .3) !default;\r\n$info-color-alert: rgba(44, 168, 255, .8) !default;\r\n\r\n$warning-color: #FFB236 !default;\r\n$warning-states-color: darken($warning-color, 5%) !default;\r\n$warning-color-opacity: rgba(255, 178, 54, .3) !default;\r\n$warning-color-alert: rgba(255, 178, 54, .8) !default;\r\n\r\n$danger-color: #FF3636 !default;\r\n$danger-states-color: darken($danger-color, 5%) !default;\r\n$danger-color-opacity: rgba(255, 54, 54, .3) !default;\r\n$danger-color-alert: rgba(255, 54, 54, .8) !default;\r\n\r\n/* brand Colors */\r\n$brand-primary: #067ec1 !default;\r\n$brand-info: $info-color !default;\r\n$brand-success: $success-color !default;\r\n$brand-warning: $warning-color !default;\r\n$brand-danger: $danger-color !default;\r\n$brand-inverse: $black-color !default;\r\n\r\n/*\r\n$default-color: #B8B8B8 !default;\r\n$default-states-color: darken($default-color, 5%) !default;\r\n$default-color-opacity: rgba(182, 182, 182, .6) !default;\r\n\r\n$primary-color: #f96332 !default;\r\n$primary-states-color: darken($primary-color, 5%) !default;\r\n$primary-color-opacity: rgba(249, 99, 50, .3) !default;\r\n$primary-color-alert: rgba(249, 99, 50, .8) !default;\r\n\r\n$success-color: #18ce0f !default;\r\n$success-states-color: darken($success-color, 5%) !default;\r\n$success-color-opacity: rgba(24, 206, 15, .3) !default;\r\n$success-color-alert: rgba(24, 206, 15, .8) !default;\r\n\r\n$info-color: #2CA8FF !default;\r\n$info-states-color: #109CFF !default;\r\n$info-color-opacity: rgba(44, 168, 255, .3) !default;\r\n$info-color-alert: rgba(44, 168, 255, .8) !default;\r\n\r\n$warning-color: #FFB236 !default;\r\n$warning-states-color: darken($warning-color, 5%) !default;\r\n$warning-color-opacity: rgba(255, 178, 54, .3) !default;\r\n$warning-color-alert: rgba(255, 178, 54, .8) !default;\r\n\r\n$danger-color: #FF3636 !default;\r\n$danger-states-color: darken($danger-color, 5%) !default;\r\n$danger-color-opacity: rgba(255, 54, 54, .3) !default;\r\n$danger-color-alert: rgba(255, 54, 54, .8) !default;\r\n*/\r\n\r\n$link-disabled-color: #666666 !default;\r\n\r\n\r\n/* light colors - used for select dropdown */\r\n\r\n$light-blue: rgba($primary-color, .2);\r\n$light-azure: rgba($info-color, .2);\r\n$light-green: rgba($success-color, .2);\r\n$light-orange: rgba($warning-color, .2);\r\n$light-red: rgba($danger-color, .2);\r\n\r\n\r\n//== Components\r\n//\r\n$padding-input-vertical: 11px !default;\r\n$padding-input-horizontal: 19px !default;\r\n\r\n$padding-btn-vertical: 11px !default;\r\n$padding-btn-horizontal: 22px !default;\r\n\r\n$padding-base-vertical: 7px !default;\r\n$padding-base-horizontal: 18px !default;\r\n\r\n$padding-round-vertical: 9px !default;\r\n$padding-round-horizontal: 18px !default;\r\n\r\n$padding-simple-vertical: 10px !default;\r\n$padding-simple-horizontal: 18px !default;\r\n\r\n$padding-large-vertical: 11px !default;\r\n$padding-large-horizontal: 30px !default;\r\n\r\n$padding-small-vertical: 4px !default;\r\n$padding-small-horizontal: 10px !default;\r\n\r\n$padding-xs-vertical: 2px !default;\r\n$padding-xs-horizontal: 5px !default;\r\n\r\n$padding-label-vertical: 2px !default;\r\n$padding-label-horizontal: 12px !default;\r\n\r\n// padding for links inside dropdown menu\r\n$padding-dropdown-vertical: 10px !default;\r\n$padding-dropdown-horizontal: 15px !default;\r\n\r\n$margin-large-vertical: 30px !default;\r\n$margin-base-vertical: 15px !default;\r\n\r\n// border radius for buttons\r\n$border-radius-btn-small: 26px !default;\r\n$border-radius-btn-base: 20px !default;\r\n$border-radius-btn-large: 50px !default;\r\n\r\n\r\n// Cristina: am schimbat aici si s-au modificat inputurile\r\n$margin-bottom: 0 0 10px 0 !default;\r\n$border: 1px solid !default;\r\n$border-radius-extra-small: 0.125rem !default;\r\n$border-radius-tiny: 0.1875rem !default;\r\n$border-radius-small: 0.1875px !default;\r\n$border-radius-base: 2px !default;\r\n$border-radius-large: 3px !default;\r\n$border-radius-extreme: 6px !default;\r\n\r\n$border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default;\r\n$border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default;\r\n\r\n$btn-round-radius: 30px !default;\r\n\r\n$height-base: 40px !default;\r\n\r\n$btn-icon-font-size: 24px !default;\r\n$btn-icon-size: 56px !default;\r\n$btn-icon-size-mini: 36px !default;\r\n$btn-icon-font-size-mini: 14px !default;\r\n\r\n/*$font-size-base: 14px !default;\r\n$font-size-xs: 12px !default;\r\n$font-size-small: 12px !default;\r\n$font-size-medium: 16px !default;\r\n$font-size-large: 18px !default;\r\n$font-size-large-navbar: 20px !default;*/\r\n\r\n$font-paragraph: 1em !default;\r\n$font-size-navbar: 1em !default;\r\n$font-size-mini: 0.7142em !default;\r\n$font-size-xs: 0.7142em !default;\r\n$font-size-small: 0.8571em !default;\r\n$font-size-base: 14px !default;\r\n$font-size-medium: 14px !default;\r\n$font-size-large: 1em !default;\r\n$font-size-large-navbar: 20px !default;\r\n$font-size-blockquote: 1.1em !default; // ~ 15px\r\n\r\n$font-size-h1: 3.2em !default;\r\n$font-size-h2: 2.6em !default;\r\n$font-size-h3: 1.825em !default;\r\n$font-size-h4: 1.5em !default;\r\n$font-size-h5: 1.25em !default;\r\n$font-size-h6: 0.9em !default;\r\n$font-paragraph: 16px !default;\r\n$font-size-navbar: 16px !default;\r\n$font-size-small: 12px !default;\r\n$font-size-mini: 0.7142em !default;\r\n\r\n$font-weight-light: 300 !default;\r\n$font-weight-normal: 400 !default;\r\n$font-weight-semi: 500 !default;\r\n$font-weight-bold: 600 !default;\r\n\r\n$line-height-small: 20px !default;\r\n$line-height-general: 1.4em !default;\r\n$line-height: 36px !default;\r\n$line-height-lg: 54px !default;\r\n\r\n\r\n$border-radius-top: 10px 10px 0 0 !default;\r\n$border-radius-bottom: 0 0 10px 10px !default;\r\n\r\n$dropdown-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\r\n\r\n$general-transition-time: 300ms !default;\r\n\r\n$slow-transition-time: 300ms !default;\r\n$dropdown-coordinates: 29px -50px !default;\r\n\r\n$fast-transition-time: 150ms !default;\r\n$select-coordinates: 50% -40px !default;\r\n\r\n$transition-linear: linear !default;\r\n$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;\r\n$transition-ease: ease 0s;\r\n\r\n$navbar-padding-a: 10px 15px;\r\n$navbar-margin-a: 15px 0px;\r\n\r\n$padding-social-a: 10px 5px;\r\n\r\n$navbar-margin-a-btn: 15px 3px;\r\n$navbar-margin-a-btn-round: 16px 3px;\r\n\r\n\r\n$navbar-padding-brand: 20px 15px;\r\n$navbar-margin-brand: 5px 0px;\r\n\r\n$navbar-margin-brand-icons: 12px auto;\r\n\r\n$navbar-margin-btn: 15px 3px;\r\n\r\n$height-icon:\t\t\t\t\t 64px !default;\r\n$width-icon:\t\t\t\t\t 64px !default;\r\n$padding-icon:\t\t\t\t\t 12px !default;\r\n$border-radius-icon:\t\t 15px !default;\r\n\r\n\r\n$white-navbar: rgba(#FFFFFF, .96);\r\n$blue-navbar: rgba(#34ACDC, .98);\r\n$azure-navbar: rgba(#5BCAFF, .98);\r\n$green-navbar: rgba(#4CD964, .98);\r\n$orange-navbar: rgba(#FF9500, .98);\r\n$red-navbar: rgba(#FF4C40, .98);\r\n\r\n$bg-nude: #ebeff2 !default;\r\n$bg-primary: #8ECFD5 !default;\r\n$bg-info: #7CE4FE !default;\r\n$bg-success: #8EF3C5 !default;\r\n$bg-warning: #FFE28C !default;\r\n$bg-danger: #FF4C40 !default;\r\n\r\n$topbar-x: topbar-x !default;\r\n$topbar-back: topbar-back !default;\r\n$bottombar-x: bottombar-x !default;\r\n$bottombar-back: bottombar-back !default;\r\n\r\n$transition-linear: linear !default;\r\n$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;\r\n$transition-ease: ease 0s;\r\n$transition-ease-in: ease-in !default;\r\n$transition-ease-out: ease-out !default;\r\n\r\n$general-transition-time: 300ms !default;\r\n\r\n$slow-transition-time: 370ms !default;\r\n$dropdown-coordinates: 29px -50px !default;\r\n\r\n$fast-transition-time: 150ms !default;\r\n\r\n$ultra-fast-transition-time: 100ms !default;\r\n\r\n$select-coordinates: 50% -40px !default;\r\n\r\n$padding-zero: 0px !default;\r\n\r\n$sidebar-width: calc(100% - 260px) !default;\r\n$medium-dark-gray: #AAAAAA !default;\r\n\r\n$light-gray: #E3E3E3 !default;\r\n$medium-gray: #DDDDDD !default;\r\n$dark-gray: #9A9A9A !default;\r\n\r\n$opacity-gray-3: rgba(222, 222, 222, .3) !default;\r\n$opacity-gray-5: rgba(222, 222, 222, .5) !default;\r\n\r\n$opacity-5: rgba(255, 255, 255, .5) !default;\r\n$opacity-8: rgba(255, 255, 255, .8) !default;\r\n\r\n//variables used in cards\r\n$card-black-color: #2c2c2c !default;\r\n$card-muted-color: #ccc5b9 !default;\r\n\r\n//variables used for sidebar\r\n$sidebar-background-dark-blue: #506367;\r\n\r\n$sidebar-background-blue: #b8d8d8 !default;\r\n$sidebar-font-blue: #506568 !default;\r\n$sidebar-subtitle-blue: #7a9e9f !default;\r\n\r\n$sidebar-background-green: #d5e5a3 !default;\r\n$sidebar-font-green: #60773d !default;\r\n$sidebar-subtitle-green: #92ac56 !default;\r\n\r\n$sidebar-background-yellow: #ffe28c !default;\r\n$sidebar-font-yellow: #b25825 !default;\r\n$sidebar-subtitle-yellow: #d88715 !default;\r\n\r\n$sidebar-background-brown: #d6c1ab !default;\r\n$sidebar-font-brown: #75442e !default;\r\n$sidebar-subtitle-brown: #a47e65 !default;\r\n\r\n$sidebar-background-purple: #baa9ba !default;\r\n$sidebar-font-purple: #3a283d !default;\r\n$sidebar-subtitle-purple: #5a283d !default;\r\n\r\n$sidebar-background-orange: #ff8f5e !default;\r\n$sidebar-font-orange: #772510 !default;\r\n$sidebar-subtitle-orange: #e95e37 !default;\r\n","/* General overwrite */\r\nbody{\r\n color: $font-color;\r\n font-size: $font-size-base;\r\n font-family: 'Muli', Arial, sans-serif;\r\n .wrapper{\r\n min-height: 100vh;\r\n position: relative;\r\n }\r\n}\r\na{\r\n color: $info-color;\r\n\r\n &:hover, &:focus{\r\n color: $info-states-color;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\na:focus, a:active,\r\nbutton::-moz-focus-inner,\r\ninput::-moz-focus-inner,\r\nselect::-moz-focus-inner,\r\ninput[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner{\r\n outline:0 !important;\r\n}\r\n.ui-slider-handle:focus,\r\n.navbar-toggle,\r\ninput:focus,\r\nbutton:focus {\r\n outline : 0 !important;\r\n -webkit-box-shadow: inset 0 -2px 0 #2196f3;\r\n box-shadow: inset 0 -2px 0 #2196f3;\r\n}\r\n\r\n/* Animations */\r\n.form-control,\r\n.input-group-addon,\r\n.tagsinput,\r\n.navbar,\r\n.navbar .alert{\r\n @include transition($general-transition-time, $transition-linear);\r\n}\r\n\r\n.sidebar .nav a,\r\n.table > tbody > tr .td-actions .btn{\r\n @include transition($fast-transition-time, $transition-ease-in);\r\n}\r\n\r\n.btn{\r\n @include transition($ultra-fast-transition-time, $transition-ease-in);\r\n}\r\n.fa{\r\n width: 21px;\r\n text-align: center;\r\n}\r\n.fa-base{\r\n font-size: 1.25em !important;\r\n}\r\n\r\n.margin-top{\r\n margin-top: 50px;\r\n}\r\nhr{\r\n border-color: $medium-pale-bg;\r\n}\r\n.wrapper{\r\n position: relative;\r\n top: 0;\r\n height: 100vh;\r\n}\r\n","// User select\r\n// For selecting text on the page\r\n\r\n@mixin box-shadow($shadow...) {\r\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\r\n box-shadow: $shadow;\r\n}\r\n\r\n@mixin transition-input-focus-color() {\r\n -webkit-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\r\n -moz-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\r\n -o-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\r\n -ms-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\r\n transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\r\n}\r\n\r\n@mixin transition($time, $type) {\r\n -webkit-transition: all $time $type;\r\n -moz-transition: all $time $type;\r\n -o-transition: all $time $type;\r\n -ms-transition: all $time $type;\r\n transition: all $time $type;\r\n}\r\n\r\n@mixin rotate-180() {\r\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\r\n -webkit-transform: rotate(180deg);\r\n -ms-transform: rotate(180deg);\r\n transform: rotate(180deg);\r\n}\r\n\r\n@mixin transform-translate-x($value) {\r\n -webkit-transform: translate3d($value, 0, 0);\r\n -moz-transform: translate3d($value, 0, 0);\r\n -o-transform: translate3d($value, 0, 0);\r\n -ms-transform: translate3d($value, 0, 0);\r\n transform: translate3d($value, 0, 0);\r\n}\r\n\r\n@mixin transform-translate-y($value) {\r\n -webkit-transform: translate3d(0, $value, 0);\r\n -moz-transform: translate3d(0, $value, 0);\r\n -o-transform: translate3d(0, $value, 0);\r\n -ms-transform: translate3d(0, $value, 0);\r\n transform: translate3d(0, $value, 0);\r\n}\r\n\r\n@mixin bar-animation($type) {\r\n -webkit-animation: $type 500ms linear 0s;\r\n -moz-animation: $type 500ms linear 0s;\r\n animation: $type 500ms 0s;\r\n -webkit-animation-fill-mode: forwards;\r\n -moz-animation-fill-mode: forwards;\r\n animation-fill-mode: forwards;\r\n}\r\n\r\n@mixin topbar-x-rotation() {\r\n @keyframes topbar-x {\r\n 0% {\r\n top: 0px;\r\n transform: rotate(0deg);\r\n }\r\n 45% {\r\n top: 6px;\r\n transform: rotate(145deg);\r\n }\r\n 75% {\r\n transform: rotate(130deg);\r\n }\r\n 100% {\r\n transform: rotate(135deg);\r\n }\r\n }\r\n @-webkit-keyframes topbar-x {\r\n 0% {\r\n top: 0px;\r\n -webkit-transform: rotate(0deg);\r\n }\r\n 45% {\r\n top: 6px;\r\n -webkit-transform: rotate(145deg);\r\n }\r\n 75% {\r\n -webkit-transform: rotate(130deg);\r\n }\r\n 100% {\r\n -webkit-transform: rotate(135deg);\r\n }\r\n }\r\n @-moz-keyframes topbar-x {\r\n 0% {\r\n top: 0px;\r\n -moz-transform: rotate(0deg);\r\n }\r\n 45% {\r\n top: 6px;\r\n -moz-transform: rotate(145deg);\r\n }\r\n 75% {\r\n -moz-transform: rotate(130deg);\r\n }\r\n 100% {\r\n -moz-transform: rotate(135deg);\r\n }\r\n }\r\n}\r\n\r\n@mixin topbar-back-rotation() {\r\n @keyframes topbar-back {\r\n 0% {\r\n top: 6px;\r\n transform: rotate(135deg);\r\n }\r\n 45% {\r\n transform: rotate(-10deg);\r\n }\r\n 75% {\r\n transform: rotate(5deg);\r\n }\r\n 100% {\r\n top: 0px;\r\n transform: rotate(0);\r\n }\r\n }\r\n\r\n @-webkit-keyframes topbar-back {\r\n 0% {\r\n top: 6px;\r\n -webkit-transform: rotate(135deg);\r\n }\r\n 45% {\r\n -webkit-transform: rotate(-10deg);\r\n }\r\n 75% {\r\n -webkit-transform: rotate(5deg);\r\n }\r\n 100% {\r\n top: 0px;\r\n -webkit-transform: rotate(0);\r\n }\r\n }\r\n\r\n @-moz-keyframes topbar-back {\r\n 0% {\r\n top: 6px;\r\n -moz-transform: rotate(135deg);\r\n }\r\n 45% {\r\n -moz-transform: rotate(-10deg);\r\n }\r\n 75% {\r\n -moz-transform: rotate(5deg);\r\n }\r\n 100% {\r\n top: 0px;\r\n -moz-transform: rotate(0);\r\n }\r\n }\r\n}\r\n\r\n@mixin bottombar-x-rotation() {\r\n @keyframes bottombar-x {\r\n 0% {\r\n bottom: 0px;\r\n transform: rotate(0deg);\r\n }\r\n 45% {\r\n bottom: 6px;\r\n transform: rotate(-145deg);\r\n }\r\n 75% {\r\n transform: rotate(-130deg);\r\n }\r\n 100% {\r\n transform: rotate(-135deg);\r\n }\r\n }\r\n @-webkit-keyframes bottombar-x {\r\n 0% {\r\n bottom: 0px;\r\n -webkit-transform: rotate(0deg);\r\n }\r\n 45% {\r\n bottom: 6px;\r\n -webkit-transform: rotate(-145deg);\r\n }\r\n 75% {\r\n -webkit-transform: rotate(-130deg);\r\n }\r\n 100% {\r\n -webkit-transform: rotate(-135deg);\r\n }\r\n }\r\n @-moz-keyframes bottombar-x {\r\n 0% {\r\n bottom: 0px;\r\n -moz-transform: rotate(0deg);\r\n }\r\n 45% {\r\n bottom: 6px;\r\n -moz-transform: rotate(-145deg);\r\n }\r\n 75% {\r\n -moz-transform: rotate(-130deg);\r\n }\r\n 100% {\r\n -moz-transform: rotate(-135deg);\r\n }\r\n }\r\n}\r\n\r\n@mixin bottombar-back-rotation {\r\n @keyframes bottombar-back {\r\n 0% {\r\n bottom: 6px;\r\n transform: rotate(-135deg);\r\n }\r\n 45% {\r\n transform: rotate(10deg);\r\n }\r\n 75% {\r\n transform: rotate(-5deg);\r\n }\r\n 100% {\r\n bottom: 0px;\r\n transform: rotate(0);\r\n }\r\n }\r\n @-webkit-keyframes bottombar-back {\r\n 0% {\r\n bottom: 6px;\r\n -webkit-transform: rotate(-135deg);\r\n }\r\n 45% {\r\n -webkit-transform: rotate(10deg);\r\n }\r\n 75% {\r\n -webkit-transform: rotate(-5deg);\r\n }\r\n 100% {\r\n bottom: 0px;\r\n -webkit-transform: rotate(0);\r\n }\r\n }\r\n @-moz-keyframes bottombar-back {\r\n 0% {\r\n bottom: 6px;\r\n -moz-transform: rotate(-135deg);\r\n }\r\n 45% {\r\n -moz-transform: rotate(10deg);\r\n }\r\n 75% {\r\n -moz-transform: rotate(-5deg);\r\n }\r\n 100% {\r\n bottom: 0px;\r\n -moz-transform: rotate(0);\r\n }\r\n }\r\n\r\n}\r\n\r\n@mixin nc-rotate($degrees, $rotation) {\r\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});\r\n -webkit-transform: rotate($degrees);\r\n -moz-transform: rotate($degrees);\r\n -ms-transform: rotate($degrees);\r\n -o-transform: rotate($degrees);\r\n transform: rotate($degrees);\r\n}\r\n\r\n@mixin nc-flip($horiz, $vert, $rotation) {\r\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});\r\n -webkit-transform: scale($horiz, $vert);\r\n -moz-transform: scale($horiz, $vert);\r\n -ms-transform: scale($horiz, $vert);\r\n -o-transform: scale($horiz, $vert);\r\n transform: scale($horiz, $vert);\r\n}\r\n\r\n\r\n@mixin user-select($select) {\r\n -webkit-user-select: $select;\r\n -moz-user-select: $select;\r\n -ms-user-select: $select; // IE10+\r\n user-select: $select;\r\n}\r\n\r\n@mixin box-shadow($shadow...) {\r\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\r\n box-shadow: $shadow;\r\n}\r\n\r\n// Box sizing\r\n@mixin box-sizing($boxmodel) {\r\n -webkit-box-sizing: $boxmodel;\r\n -moz-box-sizing: $boxmodel;\r\n box-sizing: $boxmodel;\r\n}\r\n\r\n\r\n@mixin transition($time, $type){\r\n -webkit-transition: all $time $type;\r\n -moz-transition: all $time $type;\r\n -o-transition: all $time $type;\r\n -ms-transition: all $time $type;\r\n transition: all $time $type;\r\n}\r\n\r\n@mixin transition-none(){\r\n -webkit-transition: none;\r\n -moz-transition: none;\r\n -o-transition: none;\r\n -ms-transition: none;\r\n transition: none;\r\n}\r\n\r\n@mixin transform-scale($value){\r\n -webkit-transform: scale($value);\r\n -moz-transform: scale($value);\r\n -o-transform: scale($value);\r\n -ms-transform: scale($value);\r\n transform: scale($value);\r\n}\r\n\r\n@mixin transform-translate-x($value){\r\n -webkit-transform: translate3d($value, 0, 0);\r\n -moz-transform: translate3d($value, 0, 0);\r\n -o-transform: translate3d($value, 0, 0);\r\n -ms-transform: translate3d($value, 0, 0);\r\n transform: translate3d($value, 0, 0);\r\n}\r\n\r\n@mixin transform-origin($coordinates){\r\n -webkit-transform-origin: $coordinates;\r\n -moz-transform-origin: $coordinates;\r\n -o-transform-origin: $coordinates;\r\n -ms-transform-origin: $coordinates;\r\n transform-origin: $coordinates;\r\n}\r\n\r\n@mixin icon-gradient ($top-color, $bottom-color){\r\n background: $top-color;\r\n background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%);\r\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color));\r\n background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%);\r\n background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%);\r\n background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%);\r\n background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%);\r\n background-size: 150% 150%;\r\n}\r\n\r\n@mixin radial-gradient($extern-color, $center-color){\r\n background: $extern-color;\r\n background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */\r\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */\r\n background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */\r\n background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */\r\n background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */\r\n background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */\r\n background-size: 550% 450%;\r\n}\r\n\r\n@mixin vertical-align {\r\n position: relative;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n}\r\n\r\n@mixin rotate-180(){\r\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\r\n -webkit-transform: rotate(180deg);\r\n -ms-transform: rotate(180deg);\r\n transform: rotate(180deg);\r\n}\r\n\r\n@mixin bar-animation($type){\r\n -webkit-animation: $type 500ms linear 0s;\r\n -moz-animation: $type 500ms linear 0s;\r\n animation: $type 500ms 0s;\r\n -webkit-animation-fill-mode: forwards;\r\n -moz-animation-fill-mode: forwards;\r\n animation-fill-mode: forwards;\r\n}\r\n\r\n@mixin topbar-x-rotation(){\r\n @keyframes topbar-x {\r\n 0% {top: 0px; transform: rotate(0deg); }\r\n 45% {top: 6px; transform: rotate(145deg); }\r\n 75% {transform: rotate(130deg); }\r\n 100% {transform: rotate(135deg); }\r\n }\r\n @-webkit-keyframes topbar-x {\r\n 0% {top: 0px; -webkit-transform: rotate(0deg); }\r\n 45% {top: 6px; -webkit-transform: rotate(145deg); }\r\n 75% {-webkit-transform: rotate(130deg); }\r\n 100% { -webkit-transform: rotate(135deg); }\r\n }\r\n @-moz-keyframes topbar-x {\r\n 0% {top: 0px; -moz-transform: rotate(0deg); }\r\n 45% {top: 6px; -moz-transform: rotate(145deg); }\r\n 75% {-moz-transform: rotate(130deg); }\r\n 100% { -moz-transform: rotate(135deg); }\r\n }\r\n}\r\n\r\n@mixin topbar-back-rotation(){\r\n @keyframes topbar-back {\r\n 0% { top: 6px; transform: rotate(135deg); }\r\n 45% { transform: rotate(-10deg); }\r\n 75% { transform: rotate(5deg); }\r\n 100% { top: 0px; transform: rotate(0); }\r\n }\r\n\r\n @-webkit-keyframes topbar-back {\r\n 0% { top: 6px; -webkit-transform: rotate(135deg); }\r\n 45% { -webkit-transform: rotate(-10deg); }\r\n 75% { -webkit-transform: rotate(5deg); }\r\n 100% { top: 0px; -webkit-transform: rotate(0); }\r\n }\r\n\r\n @-moz-keyframes topbar-back {\r\n 0% { top: 6px; -moz-transform: rotate(135deg); }\r\n 45% { -moz-transform: rotate(-10deg); }\r\n 75% { -moz-transform: rotate(5deg); }\r\n 100% { top: 0px; -moz-transform: rotate(0); }\r\n }\r\n}\r\n\r\n@mixin bottombar-x-rotation(){\r\n @keyframes bottombar-x {\r\n 0% {bottom: 0px; transform: rotate(0deg);}\r\n 45% {bottom: 6px; transform: rotate(-145deg);}\r\n 75% {transform: rotate(-130deg);}\r\n 100% {transform: rotate(-135deg);}\r\n }\r\n @-webkit-keyframes bottombar-x {\r\n 0% {bottom: 0px; -webkit-transform: rotate(0deg);}\r\n 45% {bottom: 6px; -webkit-transform: rotate(-145deg);}\r\n 75% {-webkit-transform: rotate(-130deg);}\r\n 100% {-webkit-transform: rotate(-135deg);}\r\n }\r\n @-moz-keyframes bottombar-x {\r\n 0% {bottom: 0px; -moz-transform: rotate(0deg);}\r\n 45% {bottom: 6px; -moz-transform: rotate(-145deg);}\r\n 75% {-moz-transform: rotate(-130deg);}\r\n 100% {-moz-transform: rotate(-135deg);}\r\n }\r\n}\r\n\r\n@mixin bottombar-back-rotation{\r\n @keyframes bottombar-back {\r\n 0% { bottom: 6px;transform: rotate(-135deg);}\r\n 45% { transform: rotate(10deg);}\r\n 75% { transform: rotate(-5deg);}\r\n 100% { bottom: 0px;transform: rotate(0);}\r\n }\r\n @-webkit-keyframes bottombar-back {\r\n 0% {bottom: 6px;-webkit-transform: rotate(-135deg);}\r\n 45% {-webkit-transform: rotate(10deg);}\r\n 75% {-webkit-transform: rotate(-5deg);}\r\n 100% {bottom: 0px;-webkit-transform: rotate(0);}\r\n }\r\n @-moz-keyframes bottombar-back {\r\n 0% {bottom: 6px;-moz-transform: rotate(-135deg);}\r\n 45% {-moz-transform: rotate(10deg);}\r\n 75% {-moz-transform: rotate(-5deg);}\r\n 100% {bottom: 0px;-moz-transform: rotate(0);}\r\n }\r\n\r\n}\r\n\r\n\r\n",".sidebar{\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n background-size: cover;\r\n background-position: center center;\r\n color: $card-black-color;\r\n .sidebar-wrapper{\r\n position: relative;\r\n max-height: none;\r\n min-height: 100%;\r\n overflow: hidden;\r\n width: 260px;\r\n z-index: 4;\r\n box-shadow: inset -1px 0px 0px 0px $medium-gray;\r\n }\r\n .sidebar-background{\r\n position: absolute;\r\n z-index: 1;\r\n height: 100%;\r\n width: 100%;\r\n display: block;\r\n top: 0;\r\n left: 0;\r\n background-size: cover;\r\n background-position: center center;\r\n }\r\n\r\n}\r\n.sidebar,\r\n.off-canvas-sidebar{\r\n width: 260px;\r\n display: block;\r\n font-weight: 200;\r\n\r\n .logo{\r\n padding: 18px 0px;\r\n margin: 0 20px;\r\n\r\n p{\r\n float: left;\r\n font-size: 20px;\r\n margin: 10px 10px;\r\n line-height: 20px;\r\n }\r\n\r\n .simple-text{\r\n text-transform: uppercase;\r\n padding: $padding-small-vertical $padding-zero;\r\n display: block;\r\n font-size: $font-size-large;\r\n text-align: center;\r\n font-weight: $font-weight-normal;\r\n line-height: 30px;\r\n }\r\n }\r\n\r\n .nav{\r\n margin-top: 20px;\r\n\r\n li{\r\n > a{\r\n //margin: 10px 0px;\r\n padding-left: 25px;\r\n padding-right: 25px;\r\n\r\n opacity: .7;\r\n }\r\n\r\n &:hover > a{\r\n opacity: 1;\r\n }\r\n\r\n &.active > a{\r\n color: $primary-color;\r\n opacity: 1;\r\n\r\n &:before{\r\n border-right: 17px solid $medium-gray;\r\n border-top: 17px solid transparent;\r\n border-bottom: 17px solid transparent;\r\n content: \"\";\r\n display: inline-block;\r\n position: absolute;\r\n right: 0;\r\n top: 8px;\r\n }\r\n\r\n &:after{\r\n border-right: 17px solid $bg-nude;\r\n border-top: 17px solid transparent;\r\n border-bottom: 17px solid transparent;\r\n content: \"\";\r\n display: inline-block;\r\n position: absolute;\r\n right: -1px;\r\n top: 8px;\r\n }\r\n }\r\n\r\n h5 {\r\n -webkit-font-smoothing: antialiased;\r\n font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;\r\n padding-left: 30px;\r\n }\r\n\r\n > a.menu {\r\n padding: 0px;\r\n padding-top: 10px;\r\n }\r\n\r\n ul {\r\n margin-top: 0px;\r\n }\r\n }\r\n\r\n p{\r\n margin: 0;\r\n line-height: 30px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n }\r\n\r\n i{\r\n font-size: 24px;\r\n float: left;\r\n margin-right: 15px;\r\n line-height: 30px;\r\n width: 30px;\r\n text-align: center;\r\n }\r\n }\r\n\r\n &:after,\r\n &:before{\r\n display: block;\r\n content: \"\";\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n z-index: 2;\r\n background: $white-background-color;\r\n }\r\n\r\n &,\r\n &[data-background-color=\"white\"]{\r\n @include sidebar-background-color($white-background-color, $default-color);\r\n }\r\n &[data-background-color=\"black\"]{\r\n @include sidebar-background-color($black-background-color, $white-color);\r\n }\r\n\r\n &[data-active-color=\"primary\"]{\r\n @include sidebar-active-color($default-color);\r\n }\r\n &[data-active-color=\"info\"]{\r\n @include sidebar-active-color($info-color);\r\n }\r\n &[data-active-color=\"success\"]{\r\n @include sidebar-active-color($success-color);\r\n }\r\n &[data-active-color=\"warning\"]{\r\n @include sidebar-active-color($warning-color);\r\n }\r\n &[data-active-color=\"danger\"]{\r\n @include sidebar-active-color($danger-color);\r\n }\r\n\r\n}\r\n\r\n.main-panel{\r\n background-color: $bg-nude;\r\n //background-color: $white-navbar;\r\n position: relative;\r\n z-index: 2;\r\n float: right;\r\n width: $sidebar-width;\r\n min-height: 100%;\r\n\r\n > .content{\r\n //padding: 30px 15px;\r\n padding: 0 2px;\r\n min-height: calc(100% - 123px);\r\n }\r\n\r\n > .footer{\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n .navbar{\r\n margin-bottom: 0;\r\n }\r\n}\r\n\r\n.sidebar,\r\n.main-panel{\r\n overflow: auto;\r\n max-height: 100%;\r\n height: 100%;\r\n -webkit-transition-property: top,bottom;\r\n transition-property: top,bottom;\r\n -webkit-transition-duration: .2s,.2s;\r\n transition-duration: .2s,.2s;\r\n -webkit-transition-timing-function: linear,linear;\r\n transition-timing-function: linear,linear;\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n","@mixin sidebar-background-color($background-color, $font-color){\r\n &:after,\r\n &:before{\r\n\t background-color: $background-color;\r\n\t}\r\n\r\n .logo{\r\n border-bottom: 1px solid rgba($font-color,.3);\r\n\r\n p{\r\n color: $font-color;\r\n }\r\n\r\n .simple-text{\r\n color: $font-color;\r\n }\r\n }\r\n\r\n .nav{\r\n li:not(.active){\r\n > a{\r\n color: $font-color;\r\n }\r\n }\r\n .divider{\r\n background-color: rgba($font-color,.2);\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n@mixin sidebar-active-color($font-color){\r\n .nav{\r\n li{\r\n &.active > a{\r\n color: $font-color;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n}\r\n","/* badges */\r\n.badge {\r\n border-radius: 8px;\r\n padding: 4px 8px;\r\n text-transform: uppercase;\r\n font-size: $font-size-mini;\r\n line-height: 12px;\r\n background-color: $transparent-bg;\r\n border: $border;\r\n margin-bottom: 5px;\r\n border-radius: $border-radius-extreme;\r\n}\r\n\r\n.badge-icon {\r\n padding: 0.4em 0.55em;\r\n i {\r\n font-size: 0.8em;\r\n }\r\n}\r\n\r\n.badge-default {\r\n @include badge-color($default-color);\r\n}\r\n\r\n.badge-primary {\r\n @include badge-color($primary-color);\r\n}\r\n\r\n.badge-info {\r\n @include badge-color($info-color);\r\n}\r\n\r\n.badge-success {\r\n @include badge-color($success-color);\r\n}\r\n\r\n.badge-warning {\r\n @include badge-color($warning-color);\r\n}\r\n\r\n.badge-danger {\r\n @include badge-color($danger-color);\r\n}\r\n\r\n.badge-neutral {\r\n @include badge-color($white-color);\r\n}\r\n","@mixin badge-color($color) {\r\n border-color: $color;\r\n color: $color;\r\n}\r\n",".btn,\r\n.navbar .navbar-nav > li > a.btn{\r\n //border-radius: $border-radius-btn-base;\r\n box-sizing: border-box;\r\n //border-width: $border-thick;\r\n background-color: $transparent-bg;\r\n font-size: $font-size-base;\r\n font-weight: $font-weight-semi;\r\n\r\n margin-top: 5px;\r\n padding: $padding-small-vertical $padding-base-horizontal;\r\n\r\n @include btn-styles($default-color, $default-states-color);\r\n @include transition($fast-transition-time, linear);\r\n\r\n &:hover,\r\n &:focus{\r\n outline: 0 !important;\r\n }\r\n &:active,\r\n &.active,\r\n .open > &.dropdown-toggle {\r\n @include box-shadow(none);\r\n outline: 0 !important;\r\n }\r\n\r\n &.btn-icon{\r\n padding: $padding-base-vertical;\r\n }\r\n}\r\n\r\n.btn-group .btn + .btn,\r\n.btn-group .btn + .btn-group,\r\n.btn-group .btn-group + .btn,\r\n.btn-group .btn-group + .btn-group{\r\n margin-left: -2px;\r\n}\r\n\r\n// Apply the mixin to the buttons\r\n//.btn-default { @include btn-styles($default-color, $default-states-color); }\r\n.navbar .navbar-nav > li > a.btn-primary, .btn-primary { @include btn-styles($primary-color, $primary-states-color); }\r\n.navbar .navbar-nav > li > a.btn-success, .btn-success { @include btn-styles($success-color, $success-states-color); }\r\n.navbar .navbar-nav > li > a.btn-info, .btn-info { @include btn-styles($info-color, $info-states-color); }\r\n.navbar .navbar-nav > li > a.btn-warning, .btn-warning { @include btn-styles($warning-color, $warning-states-color); }\r\n.navbar .navbar-nav > li > a.btn-danger, .btn-danger { @include btn-styles($danger-color, $danger-states-color); }\r\n.btn-neutral {\r\n @include btn-styles($white-color, $white-color);\r\n\r\n &:hover,\r\n &:focus{\r\n color: $default-color;\r\n }\r\n\r\n &:active,\r\n &.active,\r\n .open > &.dropdown-toggle{\r\n background-color: $white-color;\r\n color: $default-color;\r\n }\r\n\r\n &.btn-fill{\r\n color: $default-color;\r\n }\r\n &.btn-fill:hover,\r\n &.btn-fill:focus{\r\n color: $default-states-color;\r\n }\r\n\r\n &.btn-simple:active,\r\n &.btn-simple.active{\r\n background-color: transparent;\r\n }\r\n}\r\n\r\n.btn{\r\n &:disabled,\r\n &[disabled],\r\n &.disabled{\r\n @include opacity(.5);\r\n }\r\n}\r\n.btn-simple{\r\n border: $none;\r\n padding: $padding-base-vertical $padding-base-horizontal;\r\n\r\n &.btn-icon{\r\n padding: $padding-base-vertical;\r\n }\r\n}\r\n.btn-lg{\r\n @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-btn-large, $line-height-small);\r\n font-weight: $font-weight-normal;\r\n}\r\n.btn-sm{\r\n @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-btn-small, $line-height-small);\r\n}\r\n.btn-xs {\r\n @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-xs, $border-radius-btn-small, $line-height-small);\r\n}\r\n.btn-wd {\r\n min-width: 140px;\r\n}\r\n\r\n.btn-group.select{\r\n width: 100%;\r\n}\r\n.btn-group.select .btn{\r\n text-align: left;\r\n}\r\n.btn-group.select .caret{\r\n position: absolute;\r\n top: 50%;\r\n margin-top: -1px;\r\n right: 8px;\r\n}\r\n","// Mixin for generating new styles\r\n@mixin btn-styles($btn-color, $btn-states-color) {\r\n background-color: $btn-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active,\r\n &.active,\r\n &:active:focus,\r\n &:active:hover,\r\n &.active:focus,\r\n &.active:hover,\r\n .open > &.dropdown-toggle,\r\n .open > &.dropdown-toggle:focus,\r\n .open > &.dropdown-toggle:hover {\r\n background-color: $btn-states-color;\r\n color: $white-color;\r\n }\r\n\r\n &.disabled,\r\n &:disabled,\r\n &[disabled],\r\n fieldset[disabled] & {\r\n &,\r\n &:hover,\r\n &:focus,\r\n &.focus,\r\n &:active,\r\n &.active {\r\n background-color: $btn-color;\r\n border-color: $btn-color;\r\n }\r\n }\r\n\r\n &.focus,\r\n &:focus {\r\n box-shadow: none;\r\n }\r\n\r\n // btn-neutral style\r\n @if $btn-color == $white-color {\r\n color: $white-color;\r\n\r\n &.btn-danger {\r\n color: $danger-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $danger-states-color;\r\n }\r\n }\r\n\r\n &.btn-info {\r\n color: $white-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $info-states-color;\r\n }\r\n }\r\n\r\n &.btn-warning {\r\n color: $white-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $warning-states-color;\r\n }\r\n }\r\n\r\n &.btn-success {\r\n color: $white-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $success-states-color;\r\n }\r\n }\r\n\r\n &.btn-default {\r\n color: $white-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $default-states-color;\r\n }\r\n }\r\n\r\n &.active,\r\n &:active:focus,\r\n &:active:hover,\r\n &.active:focus,\r\n &.active:hover,\r\n .open > &.dropdown-toggle,\r\n .open > &.dropdown-toggle:focus,\r\n .open > &.dropdown-toggle:hover {\r\n background-color: $white-color;\r\n color: $primary-color;\r\n }\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n color: $primary-states-color;\r\n }\r\n\r\n } @else {\r\n color: $white-color;\r\n }\r\n\r\n &.btn-simple {\r\n color: $btn-color;\r\n border-color: $btn-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n background-color: $transparent-bg;\r\n color: $btn-states-color;\r\n border-color: $btn-states-color;\r\n }\r\n }\r\n\r\n &.btn-link {\r\n color: $btn-color;\r\n\r\n &:hover,\r\n &:focus,\r\n &:active {\r\n background-color: $transparent-bg;\r\n color: $btn-states-color;\r\n text-decoration: none;\r\n }\r\n }\r\n}\r\n\r\n\r\n@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border, $line-height){\r\n font-size: $font-size;\r\n //border-radius: $border;\r\n padding: $padding-vertical $padding-horizontal;\r\n\r\n &.btn-simple{\r\n padding: $padding-vertical + 2 $padding-horizontal;\r\n }\r\n\r\n}\r\n","// Opacity\r\n\r\n@mixin opacity($opacity) {\r\n opacity: $opacity;\r\n // IE8 filter\r\n $opacity-ie: ($opacity * 100);\r\n filter: #{alpha(opacity=$opacity-ie)};\r\n}\r\n\r\n@mixin black-filter($opacity){\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n width: 100%;\r\n position: absolute;\r\n background-color: rgba(17,17,17,$opacity);\r\n display: block;\r\n content: \"\";\r\n z-index: 1; \r\n}","@mixin input-size($padding-vertical, $padding-horizontal) {\r\n padding: $padding-vertical $padding-horizontal;\r\n}\r\n\r\n@mixin form-control-placeholder($color, $opacity) {\r\n .form-control::-moz-placeholder {\r\n color: $color;\r\n @include opacity(1);\r\n }\r\n .form-control:-moz-placeholder {\r\n color: $color;\r\n @include opacity(1);\r\n }\r\n .form-control::-webkit-input-placeholder {\r\n color: $color;\r\n @include opacity(1);\r\n }\r\n .form-control:-ms-input-placeholder {\r\n color: $color;\r\n @include opacity(1);\r\n }\r\n}\r\n\r\n@mixin light-form() {\r\n border-radius: 0;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n}\r\n\r\n@mixin input-sm-padding($padding-vertical, $padding-horizontal) {\r\n .form-group.form-group-no-border.input-sm,\r\n .input-group.form-group-no-border.input-sm {\r\n .input-group-addon {\r\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\r\n }\r\n\r\n .form-control {\r\n padding: $padding-vertical $padding-horizontal;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\r\n }\r\n }\r\n }\r\n\r\n .form-group.input-sm,\r\n .input-group.input-sm {\r\n .form-control {\r\n padding: $padding-vertical - 1 $padding-horizontal - 1;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n padding: $padding-vertical - 1 0 $padding-vertical $padding-horizontal - 1;\r\n\r\n & + .form-control {\r\n padding: $padding-vertical $padding-horizontal - 1 $padding-vertical $padding-horizontal - 3;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@mixin input-lg-padding($padding-vertical, $padding-horizontal) {\r\n .form-group.form-group-no-border.input-lg,\r\n .input-group.form-group-no-border.input-lg {\r\n .input-group-addon {\r\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\r\n }\r\n\r\n .form-control {\r\n padding: $padding-vertical $padding-horizontal;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\r\n }\r\n }\r\n }\r\n\r\n .form-group.input-lg,\r\n .input-group.input-lg {\r\n .form-control {\r\n padding: $padding-vertical - 1 $padding-horizontal - 1;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n padding: $padding-vertical - 1 0 $padding-vertical $padding-horizontal - 1;\r\n\r\n & + .form-control {\r\n padding: $padding-vertical $padding-horizontal - 1 $padding-vertical $padding-horizontal - 3;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@mixin input-base-padding($padding-vertical, $padding-horizontal) {\r\n .form-group.form-group-no-border,\r\n .input-group.form-group-no-border {\r\n .form-control {\r\n /*margin-top: 2px;*/\r\n padding: $padding-vertical $padding-horizontal;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\r\n }\r\n }\r\n\r\n .form-group,\r\n .input-group {\r\n .form-control {\r\n margin-top: 2px;\r\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 $padding-horizontal - 1;\r\n\r\n & + .input-group-addon {\r\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n padding: $padding-vertical - 1 0 $padding-vertical - 1 $padding-horizontal - 1;\r\n\r\n & + .form-control,\r\n & ~ .form-control {\r\n padding: $padding-vertical - 1 $padding-horizontal $padding-vertical $padding-horizontal - 3;\r\n }\r\n }\r\n }\r\n}\r\n\r\n//color1 = $opacity-5\r\n//color2 = $opacity-8\r\n//color3 = $white-color\r\n//color4 = $transparent-bg\r\n//color5 = $opacity-1\r\n//color6 = $opacity-2\r\n\r\n@mixin input-coloured-bg($color1, $color2, $color3, $color4, $color5, $color6) {\r\n @include form-control-placeholder(darken($color2, 8%), 1);\r\n\r\n .form-control {\r\n border-color: $color1;\r\n color: $color2;\r\n\r\n &:focus {\r\n border-color: $color3;\r\n background-color: $color4;\r\n color: $color3;\r\n }\r\n }\r\n\r\n .has-success,\r\n .has-danger {\r\n &:after {\r\n color: $color3;\r\n }\r\n }\r\n\r\n .has-danger {\r\n .form-control {\r\n background-color: $color4;\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n background-color: $color4;\r\n border-color: $color1;\r\n color: $color2;\r\n }\r\n\r\n .input-group-focus {\r\n .input-group-addon {\r\n background-color: $color4;\r\n border-color: $color3;\r\n color: $color3;\r\n }\r\n }\r\n\r\n .form-group.form-group-no-border,\r\n .input-group.form-group-no-border {\r\n .form-control {\r\n background-color: $color5;\r\n color: $color2;\r\n\r\n &:focus,\r\n &:active,\r\n &:active {\r\n background-color: $color6;\r\n color: $color3;\r\n }\r\n }\r\n\r\n .form-control + .input-group-addon {\r\n background-color: $color5;\r\n\r\n &:focus,\r\n &:active,\r\n &:active {\r\n background-color: $color6;\r\n color: $color3;\r\n }\r\n }\r\n\r\n .form-control {\r\n &:focus {\r\n & + .input-group-addon {\r\n background-color: $color6;\r\n color: $color3;\r\n }\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n background-color: $color5;\r\n border: none;\r\n color: $color2;\r\n }\r\n\r\n &.input-group-focus {\r\n .input-group-addon {\r\n background-color: $color6;\r\n color: $color3;\r\n }\r\n }\r\n }\r\n}\r\n","@include form-control-placeholder($medium-gray, 1);\r\n\r\n.form-control {\r\n font-family: \"Avenir-light\", \"AvenirLTStd-Light\", sans-serif !important;\r\n border-radius: 0;\r\n background-color: $transparent-bg;\r\n border: 1px solid $medium-dark-gray;\r\n color: $black-color;\r\n line-height: 1em;\r\n font-size: $font-size-base;\r\n font-weight: 400;\r\n @include transition-input-focus-color();\r\n @include box-shadow(none);\r\n\r\n .has-success & {\r\n border-color: $light-gray;\r\n }\r\n\r\n &:focus {\r\n border: 1px solid $brand-primary;\r\n @include box-shadow(none);\r\n outline: 0 !important;\r\n color: $black-color;\r\n\r\n & + .input-group-addon,\r\n & ~ .input-group-addon {\r\n border: 1px solid $brand-primary;\r\n background-color: $transparent-bg;\r\n }\r\n }\r\n\r\n .has-success &,\r\n .has-error &,\r\n .has-success &:focus,\r\n .has-error &:focus {\r\n @include box-shadow(none);\r\n }\r\n\r\n .has-danger &,\r\n .has-success & {\r\n &.form-control-success,\r\n &.form-control-danger {\r\n background-image: none;\r\n }\r\n }\r\n\r\n .has-danger & {\r\n background-color: lighten($danger-color, 30%);\r\n border-color: lighten($danger-color, 30%);\r\n color: $danger-color;\r\n\r\n &:focus {\r\n background-color: $opacity-gray-3;\r\n }\r\n }\r\n\r\n & + .form-control-feedback {\r\n border-radius: $border-radius-extra-small;\r\n font-size: $font-size-base;\r\n margin-top: -7px;\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n vertical-align: middle;\r\n }\r\n\r\n .open & {\r\n border-radius: $border-radius-extra-small $border-radius-extra-small 0 0;\r\n border-bottom-color: transparent;\r\n }\r\n\r\n & + .input-group-addon {\r\n background-color: $white-bg;\r\n }\r\n}\r\n\r\n.has-success,\r\n.has-danger {\r\n &:after {\r\n font-family: 'Nucleo Outline';\r\n content: \"\\ea22\";\r\n display: inline-block;\r\n position: absolute;\r\n right: 35px;\r\n top: 12px;\r\n color: $success-color;\r\n font-size: 11px;\r\n }\r\n\r\n &.input-lg {\r\n &:after {\r\n font-size: 13px;\r\n top: 13px;\r\n }\r\n }\r\n}\r\n\r\n.has-danger {\r\n &:after {\r\n content: \"\\ea53\";\r\n color: $danger-color;\r\n }\r\n}\r\n\r\n@include input-sm-padding($padding-small-vertical, $padding-small-horizontal);\r\n@include input-lg-padding($padding-large-vertical, $padding-input-horizontal);\r\n@include input-base-padding($padding-small-vertical, $padding-small-horizontal);\r\n\r\n.form-group.form-group-no-border,\r\n.input-group.form-group-no-border {\r\n .form-control,\r\n .form-control + .input-group-addon {\r\n background-color: $opacity-gray-3;\r\n border: medium none;\r\n &:focus,\r\n &:active,\r\n &:active {\r\n border: medium none;\r\n background-color: $opacity-gray-5;\r\n }\r\n }\r\n\r\n .form-control {\r\n &:focus {\r\n & + .input-group-addon {\r\n background-color: $opacity-gray-5;\r\n }\r\n }\r\n }\r\n\r\n .input-group-addon {\r\n background-color: $opacity-gray-3;\r\n border: none;\r\n }\r\n}\r\n\r\n.has-error {\r\n .form-control-feedback, .control-label {\r\n color: $danger-color;\r\n }\r\n}\r\n\r\n.has-success {\r\n .form-control-feedback, .control-label {\r\n color: $success-color;\r\n }\r\n}\r\n\r\n.input-group-addon {\r\n background-color: $white-bg;\r\n border: 1px solid $light-gray;\r\n border-radius: $border-radius-extra-small;\r\n color: $dark-background;\r\n padding: $padding-base-vertical - 1 0 $padding-base-vertical - 1 $padding-base-horizontal - 1;\r\n\r\n @include transition-input-focus-color();\r\n\r\n .has-success &,\r\n .has-danger & {\r\n background-color: $white-color;\r\n }\r\n .has-danger .form-control:focus + & {\r\n color: $danger-color;\r\n }\r\n .has-success .form-control:focus + & {\r\n color: $success-color;\r\n }\r\n\r\n & + .form-control,\r\n & ~ .form-control {\r\n @include input-size($padding-base-vertical - 1, $padding-base-horizontal);\r\n padding-left: 18px;\r\n }\r\n}\r\n\r\n.input-group-focus {\r\n .input-group-addon {\r\n background-color: $white-bg;\r\n border-color: $primary-color;\r\n }\r\n\r\n &.form-group-no-border {\r\n .input-group-addon {\r\n background-color: $opacity-gray-5;\r\n }\r\n }\r\n}\r\n\r\n.input-group,\r\n.form-group {\r\n margin-bottom: 10px;\r\n}\r\n\r\n.input-group[disabled] {\r\n .input-group-addon {\r\n background-color: $light-gray;\r\n }\r\n}\r\n\r\n/*.input-group .form-control:first-child,\r\n.input-group-addon:first-child,\r\n.input-group-btn:first-child > .dropdown-toggle,\r\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\r\n border-right: 0 none;\r\n}\r\n.input-group .form-control:last-child,\r\n.input-group-addon:last-child,\r\n.input-group-btn:last-child > .dropdown-toggle,\r\n.input-group-btn:first-child > .btn:not(:first-child) {\r\n border-left: 0 none;\r\n}*/\r\n.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {\r\n background-color: $light-gray;\r\n color: $default-color;\r\n cursor: not-allowed;\r\n}\r\n\r\n.input-group-btn .btn {\r\n border-width: $border-thin;\r\n padding: $padding-btn-vertical $padding-base-horizontal;\r\n}\r\n\r\n.input-group-btn .btn-default:not(.btn-fill) {\r\n border-color: $medium-gray;\r\n}\r\n\r\n.input-group-btn:last-child > .btn {\r\n margin-left: 0;\r\n}\r\n\r\ntextarea.form-control {\r\n max-width: 100%;\r\n padding: 10px 10px;\r\n resize: none;\r\n background-color: $transparent-bg;\r\n border: 1px solid $medium-dark-gray;\r\n color: $black-color;\r\n line-height: 1em;\r\n font-size: $font-size-base;\r\n font-weight: 400;\r\n border-radius: 0;\r\n\r\n &:focus,\r\n &:active {\r\n @include box-shadow(none);\r\n border: 1px solid $brand-primary;\r\n background-color: $transparent-bg;\r\n }\r\n}\r\n\r\n.has-success,\r\n.has-danger {\r\n\r\n &.form-group .form-control,\r\n &.form-group.form-group-no-border .form-control {\r\n padding-right: $padding-input-horizontal + 21;\r\n }\r\n}\r\n",".alert{\r\n border: 0;\r\n border-radius: 0;\r\n color: #FFFFFF;\r\n padding: 10px 15px;\r\n font-size: 14px;\r\n\r\n .container &{\r\n border-radius: 4px;\r\n\r\n }\r\n .navbar &{\r\n border-radius: 0;\r\n left: 0;\r\n position: absolute;\r\n right: 0;\r\n top: 85px;\r\n width: 100%;\r\n z-index: 3;\r\n }\r\n .navbar:not(.navbar-transparent) &{\r\n top: 70px;\r\n }\r\n\r\n span[data-notify=\"icon\"]{\r\n font-size: 30px;\r\n display: block;\r\n left: 15px;\r\n position: absolute;\r\n top: 50%;\r\n margin-top: -20px;\r\n }\r\n\r\n .close ~ span{\r\n display: block;\r\n max-width: 89%;\r\n }\r\n\r\n &[data-notify=\"container\"]{\r\n padding: 10px 10px 10px 20px;\r\n border-radius: $border-radius-base;\r\n }\r\n\r\n &.alert-with-icon{\r\n padding-left: 65px;\r\n }\r\n}\r\n.alert-info{\r\n background-color: $bg-info;\r\n color: $info-states-color;\r\n}\r\n.alert-success {\r\n background-color: $bg-success;\r\n color: $success-states-color;\r\n}\r\n.alert-warning {\r\n background-color: $bg-warning;\r\n color: $warning-states-color;\r\n}\r\n.alert-danger {\r\n background-color: $danger-color;\r\n color: #FFF;\r\n}\r\n\r\n",".table{\r\n thead,\r\n tbody,\r\n tfoot{\r\n tr > th,\r\n tr > td{\r\n border-top: 1px solid $table-line-color;\r\n }\r\n }\r\n > thead > tr > th{\r\n border-bottom-width: 0;\r\n font-size: $font-size-h5;\r\n font-weight: $font-weight-light;\r\n }\r\n\r\n .radio,\r\n .checkbox{\r\n margin-top: 0;\r\n margin-bottom: 22px;\r\n padding: 0;\r\n width: 15px;\r\n }\r\n > thead > tr > th,\r\n > tbody > tr > th,\r\n > tfoot > tr > th,\r\n > thead > tr > td,\r\n > tbody > tr > td,\r\n > tfoot > tr > td{\r\n padding: 12px;\r\n vertical-align: middle;\r\n }\r\n\r\n .th-description{\r\n max-width: 150px;\r\n }\r\n .td-price{\r\n font-size: 26px;\r\n font-weight: $font-weight-light;\r\n margin-top: 5px;\r\n text-align: right;\r\n }\r\n .td-total{\r\n font-weight: $font-weight-bold;\r\n font-size: $font-size-h5;\r\n padding-top: 20px;\r\n text-align: right;\r\n }\r\n\r\n .td-actions .btn{\r\n\r\n &.btn-sm,\r\n &.btn-xs{\r\n padding-left: 3px;\r\n padding-right: 3px;\r\n }\r\n }\r\n\r\n > tbody > tr{\r\n position: relative;\r\n }\r\n}\r\n.table-striped{\r\n tbody > tr:nth-of-type(2n+1) {\r\n background-color: #fff;\r\n }\r\n tbody > tr:nth-of-type(2n) {\r\n background-color: $pale-bg;\r\n }\r\n > thead > tr > th,\r\n > tbody > tr > th,\r\n > tfoot > tr > th,\r\n > thead > tr > td,\r\n > tbody > tr > td,\r\n > tfoot > tr > td{\r\n padding: 15px 8px;\r\n }\r\n}","/* Checkbox and radio */\r\n.checkbox,\r\n.radio {\r\n margin-bottom: 12px;\r\n padding-left: 30px;\r\n position: relative;\r\n -webkit-transition: color,opacity 0.25s linear;\r\n transition: color,opacity 0.25s linear;\r\n font-size: $font-size-base;\r\n font-weight: normal;\r\n line-height: 1.5;\r\n color: $font-color;\r\n cursor: pointer;\r\n\r\n .icons {\r\n color: $font-color;\r\n display: block;\r\n height: 20px;\r\n left: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 20px;\r\n text-align: center;\r\n line-height: 21px;\r\n font-size: 20px;\r\n cursor: pointer;\r\n -webkit-transition: color,opacity 0.15s linear;\r\n transition: color,opacity 0.15s linear;\r\n\r\n opacity: .50;\r\n }\r\n\r\n\r\n &.checked{\r\n .icons{\r\n opacity: 1;\r\n }\r\n }\r\n\r\n input{\r\n outline: none !important;\r\n display: none;\r\n }\r\n}\r\n\r\n.checkbox,\r\n.radio{\r\n label{\r\n padding-left: 10px;\r\n }\r\n}\r\n\r\n.checkbox .icons .first-icon,\r\n.radio .icons .first-icon,\r\n.checkbox .icons .second-icon,\r\n.radio .icons .second-icon {\r\n display: inline-table;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n background-color: transparent;\r\n margin: 0;\r\n @include opacity(1);\r\n}\r\n.checkbox .icons .second-icon,\r\n.radio .icons .second-icon {\r\n @include opacity(0);\r\n}\r\n.checkbox:hover,\r\n.radio:hover {\r\n -webkit-transition: color 0.2s linear;\r\n transition: color 0.2s linear;\r\n}\r\n.checkbox:hover .first-icon,\r\n.radio:hover .first-icon {\r\n @include opacity(0);\r\n}\r\n.checkbox:hover .second-icon,\r\n.radio:hover .second-icon {\r\n @include opacity (1);\r\n}\r\n.checkbox.checked,\r\n.radio.checked {\r\n// color: $info-color;\r\n}\r\n.checkbox.checked .first-icon,\r\n.radio.checked .first-icon {\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n}\r\n.checkbox.checked .second-icon,\r\n.radio.checked .second-icon {\r\n opacity: 1;\r\n filter: alpha(opacity=100);\r\n// color: $info-color;\r\n -webkit-transition: color 0.2s linear;\r\n transition: color 0.2s linear;\r\n}\r\n.checkbox.disabled,\r\n.radio.disabled {\r\n cursor: default;\r\n color: $medium-gray;\r\n}\r\n.checkbox.disabled .icons,\r\n.radio.disabled .icons {\r\n color: $medium-gray;\r\n}\r\n.checkbox.disabled .first-icon,\r\n.radio.disabled .first-icon {\r\n opacity: 1;\r\n filter: alpha(opacity=100);\r\n}\r\n.checkbox.disabled .second-icon,\r\n.radio.disabled .second-icon {\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n}\r\n.checkbox.disabled.checked .icons,\r\n.radio.disabled.checked .icons {\r\n color: $medium-gray;\r\n}\r\n.checkbox.disabled.checked .first-icon,\r\n.radio.disabled.checked .first-icon {\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n}\r\n.checkbox.disabled.checked .second-icon,\r\n.radio.disabled.checked .second-icon {\r\n opacity: 1;\r\n color: $medium-gray;\r\n filter: alpha(opacity=100);\r\n}\r\n",".nav {\r\n > li{\r\n > a:hover,\r\n > a:focus{\r\n background-color: transparent;\r\n }\r\n }\r\n}\r\n.navbar{\r\n border: $none;\r\n border-radius: 0;\r\n font-size: $font-size-navbar;\r\n z-index: 3;\r\n\r\n .navbar-brand{\r\n color: $white-color;\r\n font-weight: $font-weight-light;;\r\n margin: $navbar-margin-brand;\r\n padding: $navbar-padding-brand;\r\n font-size: $font-size-large-navbar;\r\n }\r\n .navbar-nav{\r\n > li > a {\r\n line-height: 1.42857;\r\n margin: $navbar-margin-a;\r\n padding: $navbar-padding-a;\r\n\r\n i,\r\n p{\r\n display: inline-block;\r\n margin: 0;\r\n }\r\n i{\r\n position: relative;\r\n margin-right: 5px;\r\n top: 1px;\r\n }\r\n }\r\n > li > a.btn{\r\n margin: $navbar-margin-a-btn;\r\n padding: $padding-base-vertical $padding-base-horizontal;\r\n }\r\n }\r\n .btn{\r\n margin: $navbar-margin-btn;\r\n font-size: $font-size-base;\r\n }\r\n .btn-simple{\r\n font-size: $font-size-medium;\r\n }\r\n}\r\n\r\n.navbar-nav > li > .dropdown-menu{\r\n border-radius: $border-radius-extreme;\r\n margin-top: -5px;\r\n}\r\n\r\n.navbar-default {\r\n color: $white-color;\r\n background-color: $phpvms-blue;\r\n border-bottom: 1px solid $medium-gray;\r\n\r\n .brand{\r\n color: $white-color !important;\r\n }\r\n .navbar-nav{\r\n > li > a:not(.btn){\r\n color: $white-color;\r\n }\r\n\r\n > .active > a,\r\n > .active > a:not(.btn):hover,\r\n > .active > a:not(.btn):focus,\r\n > li > a:not(.btn):hover,\r\n > li > a:not(.btn):focus {\r\n background-color: transparent;\r\n border-radius: 3px;\r\n //color: $info-color;\r\n @include opacity(1);\r\n }\r\n\r\n > .dropdown > a:hover .caret,\r\n > .dropdown > a:focus .caret {\r\n border-bottom-color: $info-color;\r\n border-top-color: $info-color;\r\n\r\n }\r\n\r\n > .open > a,\r\n > .open > a:hover,\r\n > .open > a:focus{\r\n background-color: transparent;\r\n color: $info-color;\r\n }\r\n\r\n .navbar-toggle:hover,.navbar-toggle:focus {\r\n background-color: transparent;\r\n }\r\n\r\n }\r\n\r\n &:not(.navbar-transparent) .btn-default:hover{\r\n color: $info-color;\r\n border-color: $info-color;\r\n }\r\n &:not(.navbar-transparent) .btn-neutral,\r\n &:not(.navbar-transparent) .btn-neutral:hover,\r\n &:not(.navbar-transparent) .btn-neutral:active{\r\n color: $dark-gray;\r\n }\r\n}\r\n\r\n.navbar-form{\r\n @include box-shadow(none);\r\n .form-control{\r\n @include light-form();\r\n height: 22px;\r\n font-size: $font-size-navbar;\r\n line-height: $line-height-general;\r\n color: $light-gray;\r\n }\r\n .navbar-transparent & .form-control,\r\n [class*=\"navbar-ct\"] & .form-control{\r\n color: $white-color;\r\n border: $none;\r\n border-bottom: 1px solid rgba($white-color,.6);\r\n }\r\n\r\n}\r\n\r\n.navbar-ct-primary{\r\n @include navbar-color($bg-primary);\r\n}\r\n.navbar-ct-info{\r\n @include navbar-color($bg-info);\r\n}\r\n.navbar-ct-success{\r\n @include navbar-color($bg-success);\r\n}\r\n.navbar-ct-warning{\r\n @include navbar-color($bg-warning);\r\n}\r\n.navbar-ct-danger{\r\n @include navbar-color($bg-danger);\r\n}\r\n\r\n.navbar-transparent{\r\n padding-top: 15px;\r\n background-color: transparent;\r\n border-bottom: 1px solid transparent;\r\n}\r\n\r\n.navbar-toggle{\r\n margin-top: 19px;\r\n margin-bottom: 19px;\r\n border: $none;\r\n\r\n .icon-bar {\r\n background-color: $white-color;\r\n }\r\n .navbar-collapse,\r\n .navbar-form {\r\n border-color: transparent;\r\n }\r\n\r\n &.navbar-default .navbar-toggle:hover,\r\n &.navbar-default .navbar-toggle:focus {\r\n background-color: transparent;\r\n }\r\n}\r\n\r\n.navbar-transparent, [class*=\"navbar-ct\"]{\r\n\r\n .navbar-brand{\r\n\r\n @include opacity(.9);\r\n\r\n &:focus,\r\n\r\n &:hover{\r\n\r\n background-color: transparent;\r\n\r\n @include opacity(1);\r\n\r\n }\r\n\r\n }\r\n\r\n .navbar-brand:not([class*=\"text\"]){\r\n\r\n color: $white-color;\r\n\r\n }\r\n\r\n .navbar-nav{\r\n\r\n > li > a:not(.btn){\r\n\r\n color: $white-color;\r\n\r\n border-color: $white-color;\r\n\r\n @include opacity(0.8);\r\n\r\n }\r\n\r\n > .active > a:not(.btn),\r\n\r\n > .active > a:hover:not(.btn),\r\n\r\n > .active > a:focus:not(.btn),\r\n\r\n > li > a:hover:not(.btn),\r\n\r\n > li > a:focus:not(.btn){\r\n\r\n background-color: transparent;\r\n\r\n border-radius: 3px;\r\n\r\n color: $white-color;\r\n\r\n @include opacity(1);\r\n\r\n }\r\n\r\n .nav > li > a.btn:hover{\r\n\r\n background-color: transparent;\r\n\r\n }\r\n\r\n > .dropdown > a .caret,\r\n\r\n > .dropdown > a:hover .caret,\r\n\r\n > .dropdown > a:focus .caret{\r\n\r\n border-bottom-color: $white-color;\r\n\r\n border-top-color: $white-color;\r\n\r\n }\r\n\r\n > .open > a,\r\n\r\n > .open > a:hover,\r\n\r\n > .open > a:focus {\r\n\r\n background-color: transparent;\r\n\r\n color: $white-color;\r\n\r\n @include opacity(1);\r\n\r\n }\r\n\r\n }\r\n\r\n .btn-default{\r\n\r\n color: $white-color;\r\n\r\n border-color: $white-color;\r\n\r\n }\r\n\r\n .btn-default.btn-fill{\r\n\r\n color: $dark-gray;\r\n\r\n background-color: $white-color;\r\n\r\n @include opacity(.9);\r\n\r\n }\r\n\r\n .btn-default.btn-fill:hover,\r\n\r\n .btn-default.btn-fill:focus,\r\n\r\n .btn-default.btn-fill:active,\r\n\r\n .btn-default.btn-fill.active,\r\n\r\n .open .dropdown-toggle.btn-fill.btn-default{\r\n\r\n border-color: $white-color;\r\n\r\n @include opacity(1);\r\n\r\n }\r\n\r\n}\r\n","@mixin navbar-color($color){\r\n background-color: $color;\r\n}\r\n\r\n@mixin center-item(){\r\n left: 0;\r\n right: 0;\r\n margin-right: auto;\r\n margin-left: auto;\r\n position: absolute;\r\n}",".footer{\r\n background-attachment: fixed;\r\n position: relative;\r\n line-height: 20px;\r\n nav {\r\n ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n font-weight: normal;\r\n li{\r\n display: inline-block;\r\n padding: 10px 15px;\r\n margin: 15px 3px;\r\n line-height: 20px;\r\n text-align: center;\r\n }\r\n a:not(.btn){\r\n color: $font-color;\r\n display: block;\r\n margin-bottom: 3px;\r\n\r\n &:focus,\r\n &:hover{\r\n color: $default-states-color;\r\n }\r\n }\r\n }\r\n }\r\n .copyright{\r\n color: $font-color;\r\n padding: 10px 15px;\r\n font-size: 14px;\r\n white-space: nowrap;\r\n margin: 15px 3px;\r\n line-height: 20px;\r\n text-align: center;\r\n }\r\n .heart{\r\n color: $danger-color;\r\n }\r\n}\r\n",".dropdown-menu{\r\n background-color: $pale-bg;\r\n border: 0 none;\r\n border-radius: $border-radius-extreme;\r\n display: block;\r\n margin-top: 10px;\r\n padding: 0px;\r\n position: absolute;\r\n visibility: hidden;\r\n z-index: 9000; \r\n \r\n @include opacity(0); \r\n @include box-shadow($dropdown-shadow);\r\n \r\n// the style for opening dropdowns on mobile devices; for the desktop version check the _responsive.scss file \r\n .open &{\r\n @include opacity(1);\r\n visibility: visible;\r\n } \r\n \r\n .divider{\r\n background-color: $medium-pale-bg;\r\n margin: 0px;\r\n }\r\n \r\n .dropdown-header{\r\n color: $dark-gray;\r\n font-size: $font-size-small;\r\n padding: $padding-dropdown-vertical $padding-dropdown-horizontal;\r\n }\r\n \r\n// the style for the dropdown menu that appears under select, it is different from the default one\r\n .select &{\r\n border-radius: $border-radius-bottom; \r\n @include box-shadow(none);\r\n @include transform-origin($select-coordinates);\r\n @include transform-scale(1);\r\n @include transition($fast-transition-time, $transition-linear);\r\n margin-top: -20px;\r\n }\r\n .select.open &{\r\n margin-top: -1px;\r\n }\r\n \r\n > li > a {\r\n color: $font-color;\r\n font-size: $font-size-base;\r\n padding: $padding-dropdown-vertical $padding-dropdown-horizontal;\r\n @include transition-none();\r\n \r\n img{\r\n margin-top: -3px;\r\n }\r\n }\r\n > li > a:focus{\r\n outline: 0 !important;\r\n }\r\n\r\n .btn-group.select &{\r\n min-width: 100%;\r\n }\r\n \r\n > li:first-child > a{\r\n border-top-left-radius: $border-radius-extreme;\r\n border-top-right-radius: $border-radius-extreme;\r\n }\r\n \r\n > li:last-child > a{\r\n border-bottom-left-radius: $border-radius-extreme;\r\n border-bottom-right-radius: $border-radius-extreme;\r\n }\r\n \r\n .select & > li:first-child > a{\r\n border-radius: 0;\r\n border-bottom: 0 none;\r\n }\r\n \r\n > li > a:hover,\r\n > li > a:focus {\r\n background-color: $default-color;\r\n color: $fill-font-color;\r\n opacity: 1;\r\n text-decoration: none;\r\n }\r\n \r\n &.dropdown-primary > li > a:hover,\r\n &.dropdown-primary > li > a:focus{\r\n background-color: $primary-color;\r\n }\r\n &.dropdown-info > li > a:hover,\r\n &.dropdown-info > li > a:focus{\r\n background-color: $info-color;\r\n }\r\n &.dropdown-success > li > a:hover,\r\n &.dropdown-success > li > a:focus{\r\n background-color: $success-color;\r\n }\r\n &.dropdown-warning > li > a:hover,\r\n &.dropdown-warning > li > a:focus{\r\n background-color: $warning-color;\r\n }\r\n &.dropdown-danger > li > a:hover,\r\n &.dropdown-danger > li > a:focus{\r\n background-color: $danger-color;\r\n }\r\n\r\n}\r\n\r\n//fix bug for the select items in btn-group \r\n.btn-group.select{\r\n overflow: hidden;\r\n}\r\n.btn-group.select.open{\r\n overflow: visible;\r\n}\r\n",".card {\r\n border: 0;\r\n border-radius: $border-radius-extra-small;\r\n box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);\r\n background-color: #FFFFFF;\r\n color: $card-black-color;\r\n margin-bottom: 20px;\r\n position: relative;\r\n z-index: 1;\r\n\r\n -webkit-box-orient: vertical;\r\n -webkit-box-direction: normal;\r\n flex-direction: column;\r\n background-color: #fff;\r\n\r\n .card-block {\r\n flex: 1 1 auto;\r\n padding: 1.25rem;\r\n }\r\n\r\n a {\r\n color: #f96332;\r\n }\r\n\r\n .image{\r\n width: 100%;\r\n overflow: hidden;\r\n height: 260px;\r\n border-radius: $border-radius-extreme $border-radius-extreme 0 0;\r\n position: relative;\r\n -webkit-transform-style: preserve-3d;\r\n -moz-transform-style: preserve-3d;\r\n transform-style: preserve-3d;\r\n\r\n img {\r\n width: 100%;\r\n }\r\n }\r\n .content{\r\n padding: 15px 15px 10px 15px;\r\n }\r\n .header{\r\n padding: 0px 0px 10px 0;\r\n }\r\n .description{\r\n font-size: $font-paragraph;\r\n color: $font-color;\r\n }\r\n\r\n h5 {\r\n font-size: 1.57em;\r\n line-height: 1.4em;\r\n margin-bottom: 15px;\r\n }\r\n\r\n h6{\r\n font-size: $font-size-small;\r\n margin: 0;\r\n }\r\n .category,\r\n label{\r\n font-size: $font-size-base;\r\n font-weight: $font-weight-normal;\r\n //color: $dark-gray;\r\n text-transform: capitalize;\r\n margin-bottom: 0px;\r\n i{\r\n font-size: $font-paragraph;\r\n }\r\n }\r\n\r\n label{\r\n font-size: 15px;\r\n margin-bottom: 5px;\r\n text-transform: capitalize;\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n\r\n .title{\r\n margin: $none;\r\n color: $card-black-color;\r\n font-weight: $font-weight-light;\r\n }\r\n .avatar{\r\n width: 50px;\r\n height: 50px;\r\n overflow: hidden;\r\n border-radius: 50%;\r\n margin-right: 5px;\r\n }\r\n .footer{\r\n padding: 0;\r\n line-height: 30px;\r\n\r\n .legend{\r\n padding: 5px 0;\r\n }\r\n\r\n hr{\r\n margin-top: 5px;\r\n margin-bottom: 5px;\r\n }\r\n }\r\n .stats{\r\n color: #a9a9a9;\r\n font-weight: 300;\r\n i{\r\n margin-right: 2px;\r\n min-width: 15px;\r\n display: inline-block;\r\n }\r\n }\r\n .footer div{\r\n display: inline-block;\r\n }\r\n\r\n .author{\r\n font-size: $font-size-small;\r\n font-weight: $font-weight-bold;\r\n text-transform: uppercase;\r\n }\r\n .author i{\r\n font-size: $font-size-base;\r\n }\r\n\r\n &.card-separator:after{\r\n height: 100%;\r\n right: -15px;\r\n top: 0;\r\n width: 1px;\r\n background-color: $medium-gray;\r\n content: \"\";\r\n position: absolute;\r\n }\r\n\r\n .ct-chart{\r\n margin: 30px 0 30px;\r\n height: 245px;\r\n }\r\n\r\n .table{\r\n tbody td:first-child,\r\n thead th:first-child{\r\n padding-left: 15px;\r\n }\r\n\r\n tbody td:last-child,\r\n thead th:last-child{\r\n padding-right: 15px;\r\n }\r\n }\r\n\r\n .alert{\r\n border-radius: $border-radius-base;\r\n position: relative;\r\n\r\n &.alert-with-icon{\r\n padding-left: 65px;\r\n }\r\n }\r\n .icon-big{\r\n font-size: 3em;\r\n min-height: 64px;\r\n }\r\n .numbers{\r\n font-size: 2em;\r\n text-align: right;\r\n p{\r\n margin: 0;\r\n }\r\n }\r\n ul.team-members{\r\n li{\r\n padding: 10px 0px;\r\n &:not(:last-child){\r\n border-bottom: 1px solid $medium-pale-bg;\r\n }\r\n }\r\n }\r\n\r\n .btn-primary {\r\n @include btn-styles($primary-color, $primary-states-color);\r\n }\r\n\r\n .btn-success {\r\n @include btn-styles($success-color, $success-states-color);\r\n }\r\n\r\n .btn-info {\r\n @include btn-styles($info-color, $info-states-color);\r\n }\r\n\r\n .btn-warning {\r\n @include btn-styles($warning-color, $warning-states-color);\r\n }\r\n\r\n .btn-danger {\r\n @include btn-styles($danger-color, $danger-states-color);\r\n }\r\n\r\n .btn-neutral {\r\n @include btn-styles($white-color, $white-color);\r\n }\r\n}\r\n.card-user{\r\n .image{\r\n border-radius: 8px 8px 0 0;\r\n height: 150px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n img{\r\n width: 100%;\r\n }\r\n }\r\n .image-plain{\r\n height: 0;\r\n margin-top: 110px;\r\n }\r\n .author{\r\n text-align: center;\r\n text-transform: none;\r\n margin-top: -65px;\r\n .title{\r\n color: $default-states-color;\r\n small{\r\n color: $card-muted-color;\r\n }\r\n }\r\n }\r\n .avatar{\r\n width: 100px;\r\n height: 100px;\r\n border-radius: 50%;\r\n position: relative;\r\n margin-bottom: 15px;\r\n\r\n &.border-white{\r\n border: 5px solid $white-color;\r\n }\r\n &.border-gray{\r\n border: 5px solid $card-muted-color;\r\n }\r\n }\r\n .title{\r\n font-weight: 600;\r\n line-height: 24px;\r\n }\r\n .description{\r\n margin-top: 10px;\r\n }\r\n .content{\r\n min-height: 200px;\r\n }\r\n\r\n &.card-plain{\r\n .avatar{\r\n height: 190px;\r\n width: 190px;\r\n }\r\n }\r\n}\r\n\r\n.card-map{\r\n .map{\r\n height: 500px;\r\n padding-top: 20px;\r\n\r\n > div{\r\n height: 100%;\r\n }\r\n }\r\n}\r\n.card-user,\r\n.card-price{\r\n .footer{\r\n padding: 5px 15px 10px;\r\n }\r\n hr{\r\n margin: 5px 15px;\r\n }\r\n}\r\n.card-plain{\r\n background-color: transparent;\r\n box-shadow: none;\r\n border-radius: 0;\r\n\r\n .image{\r\n border-radius: 4px;\r\n }\r\n}\r\n","@mixin ct-responsive-svg-container($width: 100%, $ratio: $ct-container-ratio) {\r\n display: block;\r\n position: relative;\r\n width: $width;\r\n\r\n &:before {\r\n display: block;\r\n float: left;\r\n content: \"\";\r\n width: 0;\r\n height: 0;\r\n padding-bottom: $ratio * 100%;\r\n }\r\n\r\n &:after {\r\n content: \"\";\r\n display: table;\r\n clear: both;\r\n }\r\n\r\n > svg {\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n}\r\n\r\n@mixin ct-align-justify($ct-text-align: $ct-text-align, $ct-text-justify: $ct-text-justify) {\r\n -webkit-box-align: $ct-text-align;\r\n -webkit-align-items: $ct-text-align;\r\n -ms-flex-align: $ct-text-align;\r\n align-items: $ct-text-align;\r\n -webkit-box-pack: $ct-text-justify;\r\n -webkit-justify-content: $ct-text-justify;\r\n -ms-flex-pack: $ct-text-justify;\r\n justify-content: $ct-text-justify;\r\n // Fallback to text-align for non-flex browsers\r\n @if($ct-text-justify == 'flex-start') {\r\n text-align: left;\r\n } @else if ($ct-text-justify == 'flex-end') {\r\n text-align: right;\r\n } @else {\r\n text-align: center;\r\n }\r\n}\r\n\r\n@mixin ct-flex() {\r\n // Fallback to block\r\n display: block;\r\n display: -webkit-box;\r\n display: -moz-box;\r\n display: -ms-flexbox;\r\n display: -webkit-flex;\r\n display: flex;\r\n}\r\n\r\n@mixin ct-chart-label($ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-text-line-height: $ct-text-line-height) {\r\n fill: $ct-text-color;\r\n color: $ct-text-color;\r\n font-size: $ct-text-size;\r\n line-height: $ct-text-line-height;\r\n}\r\n\r\n@mixin ct-chart-grid($ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray) {\r\n stroke: $ct-grid-color;\r\n stroke-width: $ct-grid-width;\r\n\r\n @if ($ct-grid-dasharray) {\r\n stroke-dasharray: $ct-grid-dasharray;\r\n }\r\n}\r\n\r\n@mixin ct-chart-point($ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape) {\r\n stroke-width: $ct-point-size;\r\n stroke-linecap: $ct-point-shape;\r\n}\r\n\r\n@mixin ct-chart-line($ct-line-width: $ct-line-width, $ct-line-dasharray: $ct-line-dasharray) {\r\n fill: none;\r\n stroke-width: $ct-line-width;\r\n\r\n @if ($ct-line-dasharray) {\r\n stroke-dasharray: $ct-line-dasharray;\r\n }\r\n}\r\n\r\n@mixin ct-chart-area($ct-area-opacity: $ct-area-opacity) {\r\n stroke: none;\r\n fill-opacity: $ct-area-opacity;\r\n}\r\n\r\n@mixin ct-chart-bar($ct-bar-width: $ct-bar-width) {\r\n fill: none;\r\n stroke-width: $ct-bar-width;\r\n}\r\n\r\n@mixin ct-chart-donut($ct-donut-width: $ct-donut-width) {\r\n fill: none;\r\n stroke-width: $ct-donut-width;\r\n}\r\n\r\n@mixin ct-chart-series-color($color) {\r\n .#{$ct-class-point}, .#{$ct-class-line}, .#{$ct-class-bar}, .#{$ct-class-slice-donut} {\r\n stroke: $color;\r\n }\r\n\r\n .#{$ct-class-slice-pie}, .#{$ct-class-area} {\r\n fill: $color;\r\n }\r\n}\r\n\r\n@mixin ct-chart($ct-container-ratio: $ct-container-ratio, $ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray, $ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape, $ct-line-width: $ct-line-width, $ct-bar-width: $ct-bar-width, $ct-donut-width: $ct-donut-width, $ct-series-names: $ct-series-names, $ct-series-colors: $ct-series-colors) {\r\n\r\n .#{$ct-class-label} {\r\n @include ct-chart-label($ct-text-color, $ct-text-size);\r\n }\r\n\r\n .#{$ct-class-chart-line} .#{$ct-class-label},\r\n .#{$ct-class-chart-bar} .#{$ct-class-label} {\r\n @include ct-flex();\r\n }\r\n\r\n .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\r\n @include ct-align-justify(flex-end, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\r\n @include ct-align-justify(flex-start, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} {\r\n @include ct-align-justify(flex-end, flex-end);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: end;\r\n }\r\n\r\n .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} {\r\n @include ct-align-justify(flex-end, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\r\n @include ct-align-justify(flex-end, center);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\r\n @include ct-align-justify(flex-start, center);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\r\n @include ct-align-justify(flex-end, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\r\n @include ct-align-justify(flex-start, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: start;\r\n }\r\n\r\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} {\r\n //@include ct-chart-label($ct-text-color, $ct-text-size, center, $ct-vertical-text-justify);\r\n @include ct-align-justify(center, flex-end);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: end;\r\n }\r\n\r\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} {\r\n @include ct-align-justify(center, flex-start);\r\n // Fallback for browsers that don't support foreignObjects\r\n text-anchor: end;\r\n }\r\n\r\n .#{$ct-class-grid} {\r\n @include ct-chart-grid($ct-grid-color, $ct-grid-width, $ct-grid-dasharray);\r\n }\r\n\r\n .#{$ct-class-point} {\r\n @include ct-chart-point($ct-point-size, $ct-point-shape);\r\n }\r\n\r\n .#{$ct-class-line} {\r\n @include ct-chart-line($ct-line-width);\r\n }\r\n\r\n .#{$ct-class-area} {\r\n @include ct-chart-area();\r\n }\r\n\r\n .#{$ct-class-bar} {\r\n @include ct-chart-bar($ct-bar-width);\r\n }\r\n\r\n .#{$ct-class-slice-donut} {\r\n @include ct-chart-donut($ct-donut-width);\r\n }\r\n\r\n @if $ct-include-colored-series {\r\n @for $i from 0 to length($ct-series-names) {\r\n .#{$ct-class-series}-#{nth($ct-series-names, $i + 1)} {\r\n $color: nth($ct-series-colors, $i + 1);\r\n\r\n @include ct-chart-series-color($color);\r\n }\r\n }\r\n }\r\n}\r\n\r\n@if $ct-include-classes {\r\n @include ct-chart();\r\n\r\n @if $ct-include-alternative-responsive-containers {\r\n @for $i from 0 to length($ct-scales-names) {\r\n .#{nth($ct-scales-names, $i + 1)} {\r\n @include ct-responsive-svg-container($ratio: nth($ct-scales, $i + 1));\r\n }\r\n }\r\n }\r\n}","@media (min-width: 992px){\r\n .navbar{\r\n min-height: 75px;\r\n }\r\n .navbar-form {\r\n margin-top: 21px;\r\n margin-bottom: 21px;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n }\r\n .navbar-search-form{\r\n display: none;\r\n }\r\n .navbar-nav > li > .dropdown-menu,\r\n .dropdown .dropdown-menu{\r\n transform: translate3d(0px, -40px, 0px);\r\n transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 0.3s ease 0s, height 0s linear 0.35s;\r\n }\r\n .navbar-nav > li.open > .dropdown-menu, .dropdown.open .dropdown-menu{\r\n transform: translate3d(0px, 0px, 0px);\r\n }\r\n\r\n .navbar-nav > li > .dropdown-menu:before{\r\n border-bottom: 11px solid $medium-pale-bg;\r\n border-left: 11px solid rgba(0, 0, 0, 0);\r\n border-right: 11px solid rgba(0, 0, 0, 0);\r\n content: \"\";\r\n display: inline-block;\r\n position: absolute;\r\n right: 12px;\r\n top: -11px;\r\n }\r\n .navbar-nav > li > .dropdown-menu:after {\r\n border-bottom: 11px solid $pale-bg;\r\n border-left: 11px solid rgba(0, 0, 0, 0);\r\n border-right: 11px solid rgba(0, 0, 0, 0);\r\n content: \"\";\r\n display: inline-block;\r\n position: absolute;\r\n right: 12px;\r\n top: -10px;\r\n }\r\n\r\n .navbar-nav.navbar-left > li > .dropdown-menu:before{\r\n right: auto;\r\n left: 12px;\r\n }\r\n\r\n .navbar-nav.navbar-left > li > .dropdown-menu:after{\r\n right: auto;\r\n left: 12px;\r\n }\r\n\r\n .navbar{\r\n .navbar-header{\r\n margin-left: 10px;\r\n }\r\n }\r\n\r\n .footer:not(.footer-big){\r\n nav > ul{\r\n li:first-child{\r\n margin-left: 0;\r\n }\r\n }\r\n }\r\n\r\n body > .navbar-collapse.collapse{\r\n display: none !important;\r\n }\r\n\r\n .card{\r\n form{\r\n [class*=\"col-\"]{\r\n padding: 6px;\r\n }\r\n [class*=\"col-\"]:first-child{\r\n padding-left: 15px;\r\n }\r\n [class*=\"col-\"]:last-child{\r\n padding-right: 15px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* Changes for small display */\r\n\r\n@media (max-width: 991px){\r\n .sidebar{\r\n display: none;\r\n }\r\n\r\n .main-panel{\r\n width: 100%;\r\n }\r\n .navbar-transparent{\r\n padding-top: 15px;\r\n background-color: rgba(0, 0, 0, 0.45);\r\n }\r\n body {\r\n position: relative;\r\n }\r\n h6{\r\n font-size: 1em;\r\n }\r\n .wrapper{\r\n @include transform-translate-x(0px);\r\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\r\n left: 0;\r\n background-color: white;\r\n }\r\n .navbar .container{\r\n left: 0;\r\n width: 100%;\r\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\r\n position: relative;\r\n }\r\n .navbar .navbar-collapse.collapse,\r\n .navbar .navbar-collapse.collapse.in,\r\n .navbar .navbar-collapse.collapsing{\r\n display: none !important;\r\n }\r\n\r\n .navbar-nav > li{\r\n float: none;\r\n position: relative;\r\n display: block;\r\n }\r\n\r\n .off-canvas-sidebar {\r\n position: fixed;\r\n display: block;\r\n top: 0;\r\n height: 100%;\r\n width: 230px;\r\n right: 0;\r\n z-index: 1032;\r\n visibility: visible;\r\n background-color: #999;\r\n overflow-y: visible;\r\n border-top: none;\r\n text-align: left;\r\n padding-right: 0px;\r\n padding-left: 0;\r\n\r\n @include transform-translate-x(230px);\r\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\r\n\r\n .sidebar-wrapper {\r\n position: relative;\r\n z-index: 3;\r\n overflow-y: scroll;\r\n height: 100%;\r\n box-shadow: inset 1px 0px 0px 0px $medium-gray;\r\n }\r\n\r\n .nav{\r\n margin-top: 0;\r\n padding: 10px $margin-base-vertical 0;\r\n\r\n > li{\r\n\r\n > a{\r\n margin: 0px 0px;\r\n color: $default-color;\r\n text-transform: uppercase;\r\n font-weight: 600;\r\n font-size: $font-size-small;\r\n line-height: $line-height-general;\r\n padding: 10px 0;\r\n\r\n &:hover,\r\n &.active{\r\n color: $default-states-color;\r\n }\r\n\r\n p,\r\n .notification,\r\n .caret\r\n {\r\n display: inline-block;\r\n }\r\n\r\n .caret{\r\n float: right;\r\n position: relative;\r\n top: 12px;\r\n }\r\n\r\n i{\r\n font-size: 18px;\r\n margin-right: 10px;\r\n line-height: 26px;\r\n }\r\n }\r\n\r\n &.active > a{\r\n\r\n &:before{\r\n border-right: none;\r\n border-left: 12px solid $medium-gray;\r\n border-top: 12px solid transparent;\r\n border-bottom: 12px solid transparent;\r\n right: auto;\r\n margin-left: -$margin-base-vertical;\r\n left: 0px;\r\n top: 10px;\r\n }\r\n\r\n &:after{\r\n border-right: none;\r\n border-left: 12px solid $bg-nude;\r\n border-top: 12px solid transparent;\r\n border-bottom: 12px solid transparent;\r\n right: auto;\r\n margin-left: -$margin-base-vertical;\r\n left: -1px;\r\n top: 10px;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n &::after{\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n width: 100%;\r\n position: absolute;\r\n background-color: $bg-nude;\r\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\r\n display: block;\r\n content: \"\";\r\n z-index: 1;\r\n }\r\n &.has-image::after{\r\n @include black-filter(.8);\r\n }\r\n\r\n .logo{\r\n position: relative;\r\n z-index: 4;\r\n padding-top: 11px;\r\n padding-bottom: 11px;\r\n }\r\n\r\n .divider{\r\n height: 1px;\r\n margin: 10px 0;\r\n }\r\n }\r\n .nav-open .navbar-collapse{\r\n @include transform-translate-x(0px);\r\n }\r\n .nav-open .navbar .container{\r\n left: -230px;\r\n }\r\n .nav-open .wrapper{\r\n left: 0;\r\n @include transform-translate-x(-230px);\r\n }\r\n .navbar-toggle .icon-bar {\r\n display: block;\r\n position: relative;\r\n background: #fff;\r\n width: 24px;\r\n height: 2px;\r\n border-radius: 1px;\r\n margin: 0 auto;\r\n }\r\n\r\n .navbar-header .navbar-toggle {\r\n margin: 10px 15px 10px 0;\r\n width: 40px;\r\n height: 40px;\r\n }\r\n .bar1,\r\n .bar2,\r\n .bar3 {\r\n outline: 1px solid transparent;\r\n }\r\n .bar1 {\r\n top: 0px;\r\n @include bar-animation($topbar-back);\r\n }\r\n .bar2 {\r\n opacity: 1;\r\n }\r\n .bar3 {\r\n bottom: 0px;\r\n @include bar-animation($bottombar-back);\r\n }\r\n .toggled .bar1 {\r\n top: 6px;\r\n @include bar-animation($topbar-x);\r\n }\r\n .toggled .bar2 {\r\n opacity: 0;\r\n }\r\n .toggled .bar3 {\r\n bottom: 6px;\r\n @include bar-animation($bottombar-x);\r\n }\r\n\r\n @include topbar-x-rotation();\r\n @include topbar-back-rotation();\r\n @include bottombar-x-rotation();\r\n @include bottombar-back-rotation();\r\n\r\n @-webkit-keyframes fadeIn {\r\n 0% {opacity: 0;}\r\n 100% {opacity: 1;}\r\n }\r\n @-moz-keyframes fadeIn {\r\n 0% {opacity: 0;}\r\n 100% {opacity: 1;}\r\n }\r\n @keyframes fadeIn {\r\n 0% {opacity: 0;}\r\n 100% {opacity: 1;}\r\n }\r\n\r\n .dropdown-menu .divider{\r\n background-color: rgba(229, 229, 229, 0.15);\r\n }\r\n\r\n .navbar-nav {\r\n margin: 1px 0;\r\n }\r\n\r\n .dropdown-menu {\r\n display: none;\r\n\r\n & > li > a{\r\n &:hover,\r\n &:focus{\r\n background-color: transparent;\r\n }\r\n }\r\n }\r\n\r\n .navbar-fixed-top {\r\n -webkit-backface-visibility: hidden;\r\n }\r\n #bodyClick {\r\n height: 100%;\r\n width: 100%;\r\n position: fixed;\r\n opacity: 0;\r\n top: 0;\r\n left: auto;\r\n right: 230px;\r\n content: \"\";\r\n z-index: 9999;\r\n overflow-x: hidden;\r\n }\r\n .form-control + .form-control-feedback{\r\n margin-top: -8px;\r\n }\r\n .navbar-toggle:hover,.navbar-toggle:focus {\r\n background-color: transparent !important;\r\n }\r\n .btn.dropdown-toggle{\r\n margin-bottom: 0;\r\n }\r\n .media-post .author{\r\n width: 20%;\r\n float: none !important;\r\n display: block;\r\n margin: 0 auto 10px;\r\n }\r\n .media-post .media-body{\r\n width: 100%;\r\n }\r\n\r\n .navbar-collapse.collapse{\r\n height: 100% !important;\r\n }\r\n .navbar-collapse.collapse.in {\r\n display: block;\r\n }\r\n .navbar-header .collapse, .navbar-toggle {\r\n display:block !important;\r\n }\r\n .navbar-header {\r\n float:none;\r\n }\r\n .navbar-nav .open .dropdown-menu {\r\n position: static;\r\n float: none;\r\n width: auto;\r\n margin-top: 0;\r\n background-color: transparent;\r\n border: 0;\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n }\r\n\r\n .main-panel > .content{\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n .nav .open > a{\r\n &,\r\n &:focus,\r\n &:hover{\r\n background-color: transparent;\r\n }\r\n\r\n }\r\n\r\n .footer .copyright{\r\n padding: 0px 15px;\r\n width: 100%;\r\n }\r\n}\r\n\r\n//overwrite table responsive for 768px screens\r\n\r\n@media (min-width: 992px){\r\n .table-full-width{\r\n margin-left: -15px;\r\n margin-right: -15px;\r\n }\r\n .table-responsive{\r\n overflow: visible;\r\n }\r\n\r\n}\r\n\r\n@media (max-width: 991px){\r\n .table-responsive {\r\n width: 100%;\r\n margin-bottom: 15px;\r\n border: 1px solid #dddddd;\r\n overflow-x: scroll;\r\n overflow-y: hidden;\r\n -ms-overflow-style: -ms-autohiding-scrollbar;\r\n -webkit-overflow-scrolling: touch;\r\n }\r\n\r\n}\r\n",".form-container {\r\n border: 0;\r\n border-radius: 2px;\r\n display: inline-block;\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n /*margin-bottom: 20px;*/\r\n font-weight: bold;\r\n //text-transform: uppercase;\r\n\r\n h6 {\r\n font-size: 15px;\r\n padding: 7px;\r\n background-color: rgba(222, 222, 222, 0.3);\r\n }\r\n\r\n .form-container-body {\r\n padding: 8px;\r\n }\r\n}\r\n","@font-face {\n\tfont-family: 'Pe-icon-7-stroke';\n\tsrc:url('#{$pe-7s-font-path}/Pe-icon-7-stroke.eot?d7yf1v');\n\tsrc:url('#{$pe-7s-font-path}/Pe-icon-7-stroke.eot?#iefixd7yf1v') format('embedded-opentype'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.woff?d7yf1v') format('woff'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.ttf?d7yf1v') format('truetype'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.svg?d7yf1v#Pe-icon-7-stroke') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n","[class^=\"#{$font-prefix}-\"], [class*=\" #{$font-prefix}-\"] {\n\tdisplay: inline-block;\n\tfont-family: 'Pe-icon-7-stroke';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n","\n/* HELPER CLASS\n * -------------------------- */\n\n/* FA based classes */\n\n/*! Modified from font-awesome helper CSS classes - PIXEDEN\n * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (CSS: MIT License)\n */\n\n/* makes the font 33% larger relative to the icon container */\n.pe-lg {\n font-size: $font-size-base * 1.33;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.pe-2x {\n font-size: 2 * $font-size-base;\n}\n\n.pe-3x {\n font-size: 3 * $font-size-base;\n}\n\n.pe-4x {\n font-size: 4 * $font-size-base;\n}\n\n.pe-5x {\n font-size: 5 * $font-size-base;\n}\n\n.pe-fw {\n width: 1.2857142857142858em;\n text-align: center;\n}\n\n.pe-ul {\n padding-left: 0;\n margin-left: 2.142857142857143em;\n list-style-type: none;\n \n & > li {\n position: relative;\n }\n}\n\n.pe-li {\n position: absolute;\n left: -2.142857142857143em;\n width: 2.142857142857143em;\n top: 0.14285714285714285em;\n text-align: center;\n\n &.pe-lg {\n left: -1.8571428571428572em;\n }\n}\n\n.pe-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n\n.pull-right {\n float: right;\n}\n\n.pe {\n &.pull-left {\n float: left;\n margin-right: .3em;\n margin-left: .3em;\n }\n}\n\n.pe-spin {\n animation: spin 2s infinite linear;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n}\n\n.pe-rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n transform: rotate(90deg);\n}\n\n.pe-rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n transform: rotate(180deg);\n}\n\n.pe-rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n transform: rotate(270deg);\n}\n\n.pe-flip-horizontal {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n transform: scale(-1, 1);\n}\n\n.pe-flip-vertical {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n transform: scale(1, -1);\n}\n\n.pe-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.pe-stack-1x,\n.pe-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.pe-stack-1x {\n line-height: inherit;\n}\n\n.pe-stack-2x {\n font-size: 2em;\n}\n\n.pe-inverse {\n color: #ffffff;\n}\n\n/* Custom classes / mods - PIXEDEN */\n.pe-va {\n vertical-align: middle;\n}\n\n.pe-border {\n border: solid 0.08em #eaeaea;\n}\n",".#{$font-prefix}-album:before {\n content: $font-var-album;\n}\n\n.#{$font-prefix}-arc:before {\n content: $font-var-arc;\n}\n.#{$font-prefix}-back-2:before {\n content: $font-var-back-2;\n}\n.#{$font-prefix}-bandaid:before {\n content: $font-var-bandaid;\n}\n.#{$font-prefix}-car:before {\n content: $font-var-car;\n}\n.#{$font-prefix}-diamond:before {\n content: $font-var-diamond;\n}\n.#{$font-prefix}-door-lock:before {\n content: $font-var-door-lock;\n}\n.#{$font-prefix}-eyedropper:before {\n content: $font-var-eyedropper;\n}\n.#{$font-prefix}-female:before {\n content: $font-var-female;\n}\n.#{$font-prefix}-gym:before {\n content: $font-var-gym;\n}\n.#{$font-prefix}-hammer:before {\n content: $font-var-hammer;\n}\n.#{$font-prefix}-headphones:before {\n content: $font-var-headphones;\n}\n.#{$font-prefix}-helm:before {\n content: $font-var-helm;\n}\n.#{$font-prefix}-hourglass:before {\n content: $font-var-hourglass;\n}\n.#{$font-prefix}-leaf:before {\n content: $font-var-leaf;\n}\n.#{$font-prefix}-magic-wand:before {\n content: $font-var-magic-wand;\n}\n.#{$font-prefix}-male:before {\n content: $font-var-male;\n}\n.#{$font-prefix}-map-2:before {\n content: $font-var-map-2;\n}\n.#{$font-prefix}-next-2:before {\n content: $font-var-next-2;\n}\n.#{$font-prefix}-paint-bucket:before {\n content: $font-var-paint-bucket;\n}\n.#{$font-prefix}-pendrive:before {\n content: $font-var-pendrive;\n}\n.#{$font-prefix}-photo:before {\n content: $font-var-photo;\n}\n.#{$font-prefix}-piggy:before {\n content: $font-var-piggy;\n}\n.#{$font-prefix}-plugin:before {\n content: $font-var-plugin;\n}\n.#{$font-prefix}-refresh-2:before {\n content: $font-var-refresh-2;\n}\n.#{$font-prefix}-rocket:before {\n content: $font-var-rocket;\n}\n.#{$font-prefix}-settings:before {\n content: $font-var-settings;\n}\n.#{$font-prefix}-shield:before {\n content: $font-var-shield;\n}\n.#{$font-prefix}-smile:before {\n content: $font-var-smile;\n}\n.#{$font-prefix}-usb:before {\n content: $font-var-usb;\n}\n.#{$font-prefix}-vector:before {\n content: $font-var-vector;\n}\n.#{$font-prefix}-wine:before {\n content: $font-var-wine;\n}\n.#{$font-prefix}-cloud-upload:before {\n content: $font-var-cloud-upload;\n}\n.#{$font-prefix}-cash:before {\n content: $font-var-cash;\n}\n.#{$font-prefix}-close:before {\n content: $font-var-close;\n}\n.#{$font-prefix}-bluetooth:before {\n content: $font-var-bluetooth;\n}\n.#{$font-prefix}-cloud-download:before {\n content: $font-var-cloud-download;\n}\n.#{$font-prefix}-way:before {\n content: $font-var-way;\n}\n.#{$font-prefix}-close-circle:before {\n content: $font-var-close-circle;\n}\n.#{$font-prefix}-id:before {\n content: $font-var-id;\n}\n.#{$font-prefix}-angle-up:before {\n content: $font-var-angle-up;\n}\n.#{$font-prefix}-wristwatch:before {\n content: $font-var-wristwatch;\n}\n.#{$font-prefix}-angle-up-circle:before {\n content: $font-var-angle-up-circle;\n}\n.#{$font-prefix}-world:before {\n content: $font-var-world;\n}\n.#{$font-prefix}-angle-right:before {\n content: $font-var-angle-right;\n}\n.#{$font-prefix}-volume:before {\n content: $font-var-volume;\n}\n.#{$font-prefix}-angle-right-circle:before {\n content: $font-var-angle-right-circle;\n}\n.#{$font-prefix}-users:before {\n content: $font-var-users;\n}\n.#{$font-prefix}-angle-left:before {\n content: $font-var-angle-left;\n}\n.#{$font-prefix}-user-female:before {\n content: $font-var-user-female;\n}\n.#{$font-prefix}-angle-left-circle:before {\n content: $font-var-angle-left-circle;\n}\n.#{$font-prefix}-up-arrow:before {\n content: $font-var-up-arrow;\n}\n.#{$font-prefix}-angle-down:before {\n content: $font-var-angle-down;\n}\n.#{$font-prefix}-switch:before {\n content: $font-var-switch;\n}\n.#{$font-prefix}-angle-down-circle:before {\n content: $font-var-angle-down-circle;\n}\n.#{$font-prefix}-scissors:before {\n content: $font-var-scissors;\n}\n.#{$font-prefix}-wallet:before {\n content: $font-var-wallet;\n}\n.#{$font-prefix}-safe:before {\n content: $font-var-safe;\n}\n.#{$font-prefix}-volume2:before {\n content: $font-var-volume2;\n}\n.#{$font-prefix}-volume1:before {\n content: $font-var-volume1;\n}\n.#{$font-prefix}-voicemail:before {\n content: $font-var-voicemail;\n}\n.#{$font-prefix}-video:before {\n content: $font-var-video;\n}\n.#{$font-prefix}-user:before {\n content: $font-var-user;\n}\n.#{$font-prefix}-upload:before {\n content: $font-var-upload;\n}\n.#{$font-prefix}-unlock:before {\n content: $font-var-unlock;\n}\n.#{$font-prefix}-umbrella:before {\n content: $font-var-umbrella;\n}\n.#{$font-prefix}-trash:before {\n content: $font-var-trash;\n}\n.#{$font-prefix}-tools:before {\n content: $font-var-tools;\n}\n.#{$font-prefix}-timer:before {\n content: $font-var-timer;\n}\n.#{$font-prefix}-ticket:before {\n content: $font-var-ticket;\n}\n.#{$font-prefix}-target:before {\n content: $font-var-target;\n}\n.#{$font-prefix}-sun:before {\n content: $font-var-sun;\n}\n.#{$font-prefix}-study:before {\n content: $font-var-study;\n}\n.#{$font-prefix}-stopwatch:before {\n content: $font-var-stopwatch;\n}\n.#{$font-prefix}-star:before {\n content: $font-var-star;\n}\n.#{$font-prefix}-speaker:before {\n content: $font-var-speaker;\n}\n.#{$font-prefix}-signal:before {\n content: $font-var-signal;\n}\n.#{$font-prefix}-shuffle:before {\n content: $font-var-shuffle;\n}\n.#{$font-prefix}-shopbag:before {\n content: $font-var-shopbag;\n}\n.#{$font-prefix}-share:before {\n content: $font-var-share;\n}\n.#{$font-prefix}-server:before {\n content: $font-var-server;\n}\n.#{$font-prefix}-search:before {\n content: $font-var-search;\n}\n.#{$font-prefix}-film:before {\n content: $font-var-film;\n}\n.#{$font-prefix}-science:before {\n content: $font-var-science;\n}\n.#{$font-prefix}-disk:before {\n content: $font-var-disk;\n}\n.#{$font-prefix}-ribbon:before {\n content: $font-var-ribbon;\n}\n.#{$font-prefix}-repeat:before {\n content: $font-var-repeat;\n}\n.#{$font-prefix}-refresh:before {\n content: $font-var-refresh;\n}\n.#{$font-prefix}-add-user:before {\n content: $font-var-add-user;\n}\n.#{$font-prefix}-refresh-cloud:before {\n content: $font-var-refresh-cloud;\n}\n.#{$font-prefix}-paperclip:before {\n content: $font-var-paperclip;\n}\n.#{$font-prefix}-radio:before {\n content: $font-var-radio;\n}\n.#{$font-prefix}-note2:before {\n content: $font-var-note2;\n}\n.#{$font-prefix}-print:before {\n content: $font-var-print;\n}\n.#{$font-prefix}-network:before {\n content: $font-var-network;\n}\n.#{$font-prefix}-prev:before {\n content: $font-var-prev;\n}\n.#{$font-prefix}-mute:before {\n content: $font-var-mute;\n}\n.#{$font-prefix}-power:before {\n content: $font-var-power;\n}\n.#{$font-prefix}-medal:before {\n content: $font-var-medal;\n}\n.#{$font-prefix}-portfolio:before {\n content: $font-var-portfolio;\n}\n.#{$font-prefix}-like2:before {\n content: $font-var-like2;\n}\n.#{$font-prefix}-plus:before {\n content: $font-var-plus;\n}\n.#{$font-prefix}-left-arrow:before {\n content: $font-var-left-arrow;\n}\n.#{$font-prefix}-play:before {\n content: $font-var-play;\n}\n.#{$font-prefix}-key:before {\n content: $font-var-key;\n}\n.#{$font-prefix}-plane:before {\n content: $font-var-plane;\n}\n.#{$font-prefix}-joy:before {\n content: $font-var-joy;\n}\n.#{$font-prefix}-photo-gallery:before {\n content: $font-var-photo-gallery;\n}\n.#{$font-prefix}-pin:before {\n content: $font-var-pin;\n}\n.#{$font-prefix}-phone:before {\n content: $font-var-phone;\n}\n.#{$font-prefix}-plug:before {\n content: $font-var-plug;\n}\n.#{$font-prefix}-pen:before {\n content: $font-var-pen;\n}\n.#{$font-prefix}-right-arrow:before {\n content: $font-var-right-arrow;\n}\n.#{$font-prefix}-paper-plane:before {\n content: $font-var-paper-plane;\n}\n.#{$font-prefix}-delete-user:before {\n content: $font-var-delete-user;\n}\n.#{$font-prefix}-paint:before {\n content: $font-var-paint;\n}\n.#{$font-prefix}-bottom-arrow:before {\n content: $font-var-bottom-arrow;\n}\n.#{$font-prefix}-notebook:before {\n content: $font-var-notebook;\n}\n.#{$font-prefix}-note:before {\n content: $font-var-note;\n}\n.#{$font-prefix}-next:before {\n content: $font-var-next;\n}\n.#{$font-prefix}-news-paper:before {\n content: $font-var-news-paper;\n}\n.#{$font-prefix}-musiclist:before {\n content: $font-var-musiclist;\n}\n.#{$font-prefix}-music:before {\n content: $font-var-music;\n}\n.#{$font-prefix}-mouse:before {\n content: $font-var-mouse;\n}\n.#{$font-prefix}-more:before {\n content: $font-var-more;\n}\n.#{$font-prefix}-moon:before {\n content: $font-var-moon;\n}\n.#{$font-prefix}-monitor:before {\n content: $font-var-monitor;\n}\n.#{$font-prefix}-micro:before {\n content: $font-var-micro;\n}\n.#{$font-prefix}-menu:before {\n content: $font-var-menu;\n}\n.#{$font-prefix}-map:before {\n content: $font-var-map;\n}\n.#{$font-prefix}-map-marker:before {\n content: $font-var-map-marker;\n}\n.#{$font-prefix}-mail:before {\n content: $font-var-mail;\n}\n.#{$font-prefix}-mail-open:before {\n content: $font-var-mail-open;\n}\n.#{$font-prefix}-mail-open-file:before {\n content: $font-var-mail-open-file;\n}\n.#{$font-prefix}-magnet:before {\n content: $font-var-magnet;\n}\n.#{$font-prefix}-loop:before {\n content: $font-var-loop;\n}\n.#{$font-prefix}-look:before {\n content: $font-var-look;\n}\n.#{$font-prefix}-lock:before {\n content: $font-var-lock;\n}\n.#{$font-prefix}-lintern:before {\n content: $font-var-lintern;\n}\n.#{$font-prefix}-link:before {\n content: $font-var-link;\n}\n.#{$font-prefix}-like:before {\n content: $font-var-like;\n}\n.#{$font-prefix}-light:before {\n content: $font-var-light;\n}\n.#{$font-prefix}-less:before {\n content: $font-var-less;\n}\n.#{$font-prefix}-keypad:before {\n content: $font-var-keypad;\n}\n.#{$font-prefix}-junk:before {\n content: $font-var-junk;\n}\n.#{$font-prefix}-info:before {\n content: $font-var-info;\n}\n.#{$font-prefix}-home:before {\n content: $font-var-home;\n}\n.#{$font-prefix}-help2:before {\n content: $font-var-help2;\n}\n.#{$font-prefix}-help1:before {\n content: $font-var-help1;\n}\n.#{$font-prefix}-graph3:before {\n content: $font-var-graph3;\n}\n.#{$font-prefix}-graph2:before {\n content: $font-var-graph2;\n}\n.#{$font-prefix}-graph1:before {\n content: $font-var-graph1;\n}\n.#{$font-prefix}-graph:before {\n content: $font-var-graph;\n}\n.#{$font-prefix}-global:before {\n content: $font-var-global;\n}\n.#{$font-prefix}-gleam:before {\n content: $font-var-gleam;\n}\n.#{$font-prefix}-glasses:before {\n content: $font-var-glasses;\n}\n.#{$font-prefix}-gift:before {\n content: $font-var-gift;\n}\n.#{$font-prefix}-folder:before {\n content: $font-var-folder;\n}\n.#{$font-prefix}-flag:before {\n content: $font-var-flag;\n}\n.#{$font-prefix}-filter:before {\n content: $font-var-filter;\n}\n.#{$font-prefix}-file:before {\n content: $font-var-file;\n}\n.#{$font-prefix}-expand1:before {\n content: $font-var-expand1;\n}\n.#{$font-prefix}-exapnd2:before {\n content: $font-var-exapnd2;\n}\n.#{$font-prefix}-edit:before {\n content: $font-var-edit;\n}\n.#{$font-prefix}-drop:before {\n content: $font-var-drop;\n}\n.#{$font-prefix}-drawer:before {\n content: $font-var-drawer;\n}\n.#{$font-prefix}-download:before {\n content: $font-var-download;\n}\n.#{$font-prefix}-display2:before {\n content: $font-var-display2;\n}\n.#{$font-prefix}-display1:before {\n content: $font-var-display1;\n}\n.#{$font-prefix}-diskette:before {\n content: $font-var-diskette;\n}\n.#{$font-prefix}-date:before {\n content: $font-var-date;\n}\n.#{$font-prefix}-cup:before {\n content: $font-var-cup;\n}\n.#{$font-prefix}-culture:before {\n content: $font-var-culture;\n}\n.#{$font-prefix}-crop:before {\n content: $font-var-crop;\n}\n.#{$font-prefix}-credit:before {\n content: $font-var-credit;\n}\n.#{$font-prefix}-copy-file:before {\n content: $font-var-copy-file;\n}\n.#{$font-prefix}-config:before {\n content: $font-var-config;\n}\n.#{$font-prefix}-compass:before {\n content: $font-var-compass;\n}\n.#{$font-prefix}-comment:before {\n content: $font-var-comment;\n}\n.#{$font-prefix}-coffee:before {\n content: $font-var-coffee;\n}\n.#{$font-prefix}-cloud:before {\n content: $font-var-cloud;\n}\n.#{$font-prefix}-clock:before {\n content: $font-var-clock;\n}\n.#{$font-prefix}-check:before {\n content: $font-var-check;\n}\n.#{$font-prefix}-chat:before {\n content: $font-var-chat;\n}\n.#{$font-prefix}-cart:before {\n content: $font-var-cart;\n}\n.#{$font-prefix}-camera:before {\n content: $font-var-camera;\n}\n.#{$font-prefix}-call:before {\n content: $font-var-call;\n}\n.#{$font-prefix}-calculator:before {\n content: $font-var-calculator;\n}\n.#{$font-prefix}-browser:before {\n content: $font-var-browser;\n}\n.#{$font-prefix}-box2:before {\n content: $font-var-box2;\n}\n.#{$font-prefix}-box1:before {\n content: $font-var-box1;\n}\n.#{$font-prefix}-bookmarks:before {\n content: $font-var-bookmarks;\n}\n.#{$font-prefix}-bicycle:before {\n content: $font-var-bicycle;\n}\n.#{$font-prefix}-bell:before {\n content: $font-var-bell;\n}\n.#{$font-prefix}-battery:before {\n content: $font-var-battery;\n}\n.#{$font-prefix}-ball:before {\n content: $font-var-ball;\n}\n.#{$font-prefix}-back:before {\n content: $font-var-back;\n}\n.#{$font-prefix}-attention:before {\n content: $font-var-attention;\n}\n.#{$font-prefix}-anchor:before {\n content: $font-var-anchor;\n}\n.#{$font-prefix}-albums:before {\n content: $font-var-albums;\n}\n.#{$font-prefix}-alarm:before {\n content: $font-var-alarm;\n}\n.#{$font-prefix}-airplay:before {\n content: $font-var-airplay;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"assets/admin/css/vendor.min.css","mappings":"AAAA;;;;;;;;;;;;;;EAAA,CC4FA,mBACI,wBDlCJ,CCoCA,UACI,wBDjCJ,CCmCA,WACI,wBDhCJ,CCkCA,QACI,wBD/BJ,CEvEA,yEACI,kCACA,mCAEA,kDFyEJ,CEtEA,4BACI,eCmNyB,CDlNzB,kBFyEJ,CEtEA,OACI,eFyEJ,CEvEA,OACI,eF0EJ,CExEA,OACI,iBC8L2B,CD7L3B,gBAEA,kBF2EJ,CEzEA,cAHI,eFkFJ,CE/EA,OACI,eCyL2B,CDvL3B,iBF4EJ,CE1EA,OACI,gBCqL2B,CDnL3B,kBACA,kBF6EJ,CE3EA,cAJI,eFqFJ,CEjFA,OACI,cCgL2B,CD9K3B,wBF8EJ,CE5EA,EACI,aC2Ja,CD1Jb,iBF+EJ,CE5EA,gPACI,aCZyB,CDazB,eC2KyB,CD1KzB,iBF+EJ,CE5EA,yDACI,aF+EJ,CE7EA,iBACI,wBFgFJ,CE9EA,WACI,iBFiFJ,CE/EA,iBACI,iBFkFJ,CEhFA,YACI,UFmFJ,CEjFA,kCACI,aFoFJ,CElFA,4BACI,aFqFJ,CEnFA,kCACI,aFsFJ,CEpFA,kCACI,aFuFJ,CErFA,gCACI,aFwFJ,CEtFA,WACI,aFyFJ,CEvFA,OACI,aF0FJ,CErFA,yBACI,aF4FJ,CE1FA,cACI,aF6FJ,CE3FA,cACI,aF8FJ,CE5FA,aACI,aF+FJ,CEzFI,sHACI,aF+FR,CE7FI,8DACI,aF+FR,CE7FI,8DACI,aF+FR,CE7FI,4DACI,aF+FR,CE3FA,6CAGI,aCzFyB,CD0FzB,eF8FJ,CIzNA,KACI,cAEA,kCADA,cJ8NJ,CI5NI,cACI,iBACA,iBJ8NR,CI3NA,EACE,aJ8NF,CI5NE,gBACG,aD8Ce,CC7Cf,oBJ8NL,CI1NA,iJAKI,mBJ6NJ,CI3NA,gEAMI,kCAFA,mBJgOJ,CI1NA,mEC+QI,yBLxCJ,CI/NA,iDCuQI,2BL/BJ,CInOA,KCkQI,0BLvBJ,CIxOA,IAEI,kBADA,UJ4OJ,CIzOA,SACI,0BJ4OJ,CIzOA,YACI,eJ4OJ,CI1OA,GACI,oBJ6OJ,CI3OA,SAGI,aAFA,kBACA,KJ+OJ,CMnTA,SAOI,wBADA,sBAHA,SAKA,aHwTwB,CG5TxB,OAHA,kBACA,MAGA,SNyTJ,CMrTI,0BAOI,iCALA,gBACA,gBACA,gBAHA,kBAIA,YACA,SNwTR,CMrTI,6BASI,wBADA,sBAHA,cAFA,YAIA,OANA,kBAKA,MAFA,WAFA,SN8TR,CMnTA,6BAGI,cACA,gBAFA,WNwTJ,CMpTI,yCAEI,cADA,cNwTR,CMrTQ,6CACI,WACA,eAEA,iBADA,WNyTZ,CMrTQ,mEAGI,cACA,aHuJM,CGrJN,eHqKiB,CGpKjB,iBALA,cAGA,kBAJA,wBN8TZ,CMpTI,uCACI,eNuTR,CMpTY,iDAKI,WAHA,kBACA,kBNuThB,CMlTY,6DACI,SNqThB,CMlTY,+DACI,aH1BA,CG2BA,SNqThB,CMnTgB,6EAGI,qCAFA,6BACA,kCAEA,WACA,qBACA,kBACA,QACA,ONsTpB,CMnTgB,2EAGI,qCAFA,gCACA,kCAEA,WACA,qBACA,kBACA,WACA,ONsTpB,CMlTY,mDACI,mCACA,mDACA,iBNqThB,CMlTY,2DAEI,gBNqThB,CMlTY,mDACI,YNqThB,CMjTQ,2CAGI,eACA,gBAFA,iBADA,SAIA,wBNoTZ,CMjTQ,2CAEI,WADA,eAGA,iBADA,kBAGA,kBADA,UNqTZ,CMhTI,oFAUI,eHxHwB,CGiHxB,WADA,cAIA,YAEA,OAJA,kBAGA,MAFA,WAIA,SNoTR,COpcI,4RAEC,qBPycL,COtcI,4IACI,yCP0cR,CO7bY,oiBACI,aP2chB,COxcQ,4KACI,kCP4cZ,COpeI,wMAEC,wBPueL,COpeI,mGACI,0CPueR,CO1dY,yWACI,UPqehB,COleQ,mHACI,mCPqeZ,CO3dY,qHACI,aJQA,CIPA,SP8dhB,COheY,+GACI,aJuBH,CItBG,SPmehB,COreY,qHACI,aJmBA,CIlBA,SPwehB,CO1eY,qHACI,aJ4BA,CI3BA,SP6ehB,CO/eY,mHACI,aJiCD,CIhCC,SPkfhB,CMxWA,YACI,wBHmGoB,CG/FpB,YAEA,gBAJA,kBAGA,wBH6H0B,CG/H1B,SN6WJ,CMxWI,qBAGI,8BADA,aN0WR,CMtWI,oBACI,mCNwWR,CMrWI,oBACI,eNuWR,CMnWA,qBAWI,iCAPA,YADA,gBADA,cAMA,4BAFA,+BAIA,wCNuWJ,CQvjBA,OAME,4BLae,CKZf,gBLiKO,CKvKP,kBAQA,iBLqK6B,CK1K7B,iBLiMe,CKhMf,iBAGA,kBANA,gBACA,wBRikBF,CQxjBA,YACE,kBR2jBF,CQ1jBE,cACE,cR4jBJ,CQxjBA,eCnBI,oBN2CY,CM1CZ,aT+kBJ,CQrjBA,2BC3BI,oBN0DS,CMzDT,aTylBJ,CQ3jBA,eC/BI,oBNsDY,CMrDZ,aT8lBJ,CQ5jBA,eCnCI,oBN+DY,CM9DZ,aTmmBJ,CQ7jBA,cCvCI,oBNoEW,CMnEX,aTwmBJ,CQ9jBA,eC3CI,iBNQyB,CMPzB,UT6mBJ,CU/mBA,kCAKI,4BPea,CQlBf,wBR0Cc,COzCZ,sBC6GA,URvGyB,COHzB,cPmMa,COlMb,ePqNyB,COnNzB,eACA,iBLySA,0BL6UJ,CW5nBE,8qBAWE,wBRgCyB,CQ/BzB,UX+nBJ,CWxnBI,omDAME,wBReU,CQdV,oBX6oBN,CWzoBE,4FAEE,eX4oBJ,CW7jBE,wDAEE,oBRzEY,CQwEZ,aXikBJ,CW9jBI,8MAGE,4BRtGW,CQwGX,oBR7EuB,CQ4EvB,aXkkBN,CW7jBE,oDACE,aXgkBJ,CW9jBI,kMAGE,4BRlHW,CQmHX,aRxFuB,CQyFvB,oBXikBN,CU1rBI,4FAEI,mBV6rBR,CU3rBI,8KLgRM,eK7QD,CACA,mBV+rBT,CU5rBI,oDACI,WV+rBR,CU3rBA,4GAII,gBV8rBJ,CUzrBA,kDCtCE,wBRgDc,CQ8DZ,UXsnBJ,CWluBE,81BAWE,wBRqCyB,CQpCzB,UX0tBJ,CWntBI,o+DAME,wBRqBU,CQpBV,oBXgtBN,CW5sBE,4HAEE,eX6sBJ,CW9nBE,wEAEE,oBRnEY,CQkEZ,aXioBJ,CW9nBI,8PAGE,4BRtGW,CQwGX,oBRxEuB,CQuEvB,aX+nBN,CW1nBE,oEACE,aX4nBJ,CW1nBI,kPAGE,4BRlHW,CQmHX,aRnFuB,CQoFvB,oBX0nBN,CUztBA,kDCvCE,wBRqDc,CQyDZ,UXupBJ,CWnwBE,81BAWE,wBR0CmB,CQzCnB,UX2vBJ,CWpvBI,o+DAME,wBR0BU,CQzBV,oBXivBN,CW7uBE,4HAEE,eX8uBJ,CW/pBE,wEAEE,oBR9DY,CQ6DZ,aXkqBJ,CW/pBI,8PAGE,4BRtGW,CQwGX,oBRnEiB,CQkEjB,aXgqBN,CW3pBE,oEACE,aX6pBJ,CW3pBI,kPAGE,4BRlHW,CQmHX,aR9EiB,CQ+EjB,oBX2pBN,CUzvBA,4CCxCE,wBRyDW,CQqDT,UXwrBJ,CWpyBE,4xBAWE,wBR6CgB,CQ5ChB,UX4xBJ,CWrxBI,o1DAME,wBR8BO,CQ7BP,oBXkxBN,CW9wBE,gHAEE,eX+wBJ,CWhsBE,kEAEE,oBR1DS,CQyDT,aXmsBJ,CWhsBI,4OAGE,4BRtGW,CQwGX,oBRhEc,CQ+Dd,aXisBN,CW5rBE,8DACE,aX8rBJ,CW5rBI,gOAGE,4BRlHW,CQmHX,aR3Ec,CQ4Ed,oBX4rBN,CUzxBA,kDCzCE,wBR8Dc,CQgDZ,UXytBJ,CWr0BE,81BAWE,wBRkDmB,CQjDnB,UX6zBJ,CWtzBI,o+DAME,wBRmCU,CQlCV,oBXmzBN,CW/yBE,4HAEE,eXgzBJ,CWjuBE,wEAEE,oBRrDY,CQoDZ,aXouBJ,CWjuBI,8PAGE,4BRtGW,CQwGX,oBR3DiB,CQ0DjB,aXkuBN,CW7tBE,oEACE,aX+tBJ,CW7tBI,kPAGE,4BRlHW,CQmHX,aRtEiB,CQuEjB,oBX6tBN,CUzzBA,gDC1CE,wBRmEa,CQ2CX,UX0vBJ,CWt2BE,w0BAWE,wBRuDkB,CQtDlB,UX81BJ,CWv1BI,o7DAME,wBRwCS,CQvCT,oBXo1BN,CWh1BE,wHAEE,eXi1BJ,CWlwBE,sEAEE,oBRhDW,CQ+CX,aXqwBJ,CWlwBI,wPAGE,4BRtGW,CQwGX,oBRtDgB,CQqDhB,aXmwBN,CW9vBE,kEACE,aXgwBJ,CW9vBI,4OAGE,4BRlHW,CQmHX,aRjEgB,CQkEhB,oBX8vBN,CWl4BE,wTAWE,qBRNyB,CQOzB,UX+3BJ,CWx3BI,ktBAME,qBRpBuB,CQqBvB,iBXq3BN,CWj3BE,sCAEE,eXk3BJ,CW32BI,wBACE,aX62BN,CW32BM,2FAGE,aX22BR,CWv2BI,sBACE,UXy2BN,CWv2BM,qFAGE,aXu2BR,CWn2BI,yBACE,UXq2BN,CWn2BM,8FAGE,aXm2BR,CW/1BI,yBACE,UXi2BN,CW/1BM,8FAGE,aX+1BR,CW31BI,yBACE,UX61BN,CW31BM,8FAGE,aX21BR,CWv1BI,iPAQE,qBR5FuB,CQ6FvB,aXk1BN,CW/0BI,0DAGE,aX+0BN,CWx0BE,wBAEE,iBR5GyB,CQ2GzB,UX20BJ,CWx0BI,2FAGE,4BRtGW,CQwGX,iBRnHuB,CQkHvB,UXy0BN,CWp0BE,sBACE,UXs0BJ,CWp0BI,qFAGE,4BRlHW,CQmHX,UR9HuB,CQ+HvB,oBXo0BN,CU55BI,sCAEI,aV65BR,CU15BI,2EAGK,qBP/CoB,COgDpB,aV05BT,CUv5BI,sBACI,aVy5BR,CUv5BI,wDAEI,aVw5BR,CUr5BI,8DAEI,4BVs5BR,CUj5BK,2CErEH,yBAHA,UZ89BF,CUh5BA,YACI,QP7EyB,CO8EzB,gBVm5BJ,CUj5BI,qBACI,WVm5BR,CUh5BA,QCsDG,aR4De,COhHf,ePgI0B,CQ1E1B,iBX81BH,CW51BG,mBACI,iBX81BP,CUr5BA,QCkDG,iBRyDe,CQvDf,gBXs2BH,CWp2BG,mBACI,gBXs2BP,CU15BA,QC+CG,iBRwDY,CQtDZ,eX82BH,CW52BG,mBACI,eX82BP,CU/5BA,QACI,eVk6BJ,CU/5BA,kBACI,UVk6BJ,CUh6BA,uBACI,eVm6BJ,CUj6BA,yBAGI,gBAFA,kBAGA,UAFA,OVs6BJ,Ca5gCE,+DACE,UVuByB,CS3B3B,0BAHA,SZ8hCF,CaphCE,yCACE,UVmByB,CS3B3B,0BAHA,SZoiCF,CathCE,oCACE,UVeyB,CS3B3B,0BAHA,SZ0iCF,Cc3iCA,cAGI,4BXea,CWdb,sBAFA,gBT+RM,eSvRN,CALA,UXgByB,CWpBzB,gEAMA,cXgMa,CW/Lb,gBAFA,gBTKF,8FLkjCF,CcjjCI,2BACI,oBdmjCR,CchjCI,oBACI,yBTgRE,eS/QF,CAEA,UXCqB,CWFrB,mBdojCR,CcjjCQ,8EAGI,4BXPK,CWML,wBdmjCZ,Cc9iCI,oHToQM,eL8yBV,CcziCQ,4LAEI,qBd0iCZ,CctiCI,0BACI,yBACA,qBACA,adwiCR,CctiCQ,gCACI,kCdwiCZ,CcpiCI,qCACI,qBXiHoB,CWhHpB,cX+IS,CW9IT,gBACA,kBACA,WACA,QACA,qBdsiCR,CcniCI,oBAEI,gCADA,iCdsiCR,CcliCI,iCACI,qBdoiCR,Cc9hCI,qCAOI,aX9BQ,CWyBR,gBACA,qBAFA,2BAOA,eAJA,kBACA,WACA,QdoiCR,Cc9hCQ,uDACI,eACA,QdiiCZ,Cc3hCI,kBAEI,aX/BO,CW8BP,ed+hCR,CajmCI,2HACE,sBbqmCN,CalmCI,iHACE,gBbqmCN,CanmCM,uJACE,sBbsmCR,Ca/lCI,uEACE,ebmmCN,CajmCM,6GACE,qBbomCR,CahmCI,iFACE,qBbmmCN,CajmCM,6GACE,uBbomCR,Ca3lCI,2HACE,wBb+lCN,Ca5lCI,iHACE,iBb+lCN,Ca7lCM,uJACE,wBbgmCR,CazlCI,uEACE,iBb6lCN,Ca3lCM,6GACE,wBb8lCR,Ca1lCI,iFACE,wBb6lCN,Ca3lCM,6GACE,2Bb8lCR,CarlCI,+FAEE,gBbylCN,CavlCM,qIACE,sBb0lCR,CatlCI,yGACE,sBbylCN,CanlCI,qDACE,eACA,ebulCN,CarlCM,2FACE,qBbwlCR,CaplCI,+DACE,qBbulCN,CarlCM,sLAEE,wBbwlCR,CcjnCI,oOAEI,kCXyMS,CWxMT,WdsnCR,CcrnCQ,4fAII,kCXoMK,CWrML,Wd+nCZ,CcxnCY,iJACI,kCd2nChB,CctnCI,yGACI,kCXsLS,CWrLT,WdynCR,CcpnCI,4DACI,adunCR,CclnCI,gEACI,adqnCR,CcjnCA,mBAEI,yBACA,qBXmBwB,CWlBxB,UXnIc,CWoId,uBT5IF,8FLqwCF,CcrnCI,kFARA,qBdgoCJ,CcpnCI,mDACI,adsnCR,CcpnCI,oDACI,adsnCR,CcnnCI,kEAGI,gBdonCR,Cc/mCI,sCACI,qBXvKqB,CWwKrB,oBdknCR,Cc9mCQ,2DACI,kCdgnCZ,Cc3mCA,yBAEI,kBd8mCJ,Cc1mCI,0CACI,wBd6mCR,Cc7lCA,iFACI,wBXpLyB,CWqLzB,aXzKY,CW0KZ,kBd4mCJ,CczmCA,sBACI,gBXpNyB,CWqNzB,iBd4mCJ,CczmCA,6CACI,iBd4mCJ,CczmCA,iCACI,ad4mCJ,CczmCA,sBAII,4BXtNa,CWuNb,sBAKA,gBAJA,UXrNyB,CWuNzB,cXrCa,CWsCb,gBAFA,gBANA,eACA,aACA,WdmnCJ,Cc1mCI,yDAII,4BXlOS,CWiOT,yBT8CE,eL+jCV,CcrmCI,gMAEI,kBdymCR,Cex2CA,OACI,SACA,gBACA,WAEA,eADA,iBf42CJ,Cez2CI,kBACI,iBf22CR,Cex2CI,eACI,gBACA,OACA,kBACA,QACA,SACA,WACA,Sf02CR,Cex2CI,wCACI,Qf02CR,Cev2CI,8BAEI,cADA,eAEA,UAGA,iBAFA,kBACA,Of02CR,Cet2CI,mBACI,cACA,afw2CR,Cer2CI,8BAEI,iBZqIwB,CYtIxB,2Bfw2CR,Cep2CI,uBACI,iBfs2CR,Cen2CA,YACI,wBZqOoB,CYpOpB,afs2CJ,Cep2CA,eACI,wBZkOoB,CYjOpB,afu2CJ,Cer2CA,eACI,wBZ+NoB,CY9NpB,afw2CJ,Cet2CA,cACI,wBZSW,CYRX,Ufy2CJ,CgBl6CQ,kHAEI,4BhBy6CZ,CgBt6CG,mBACI,sBACA,gBbwMwB,CavMxB,ehBw6CP,CgBr6CG,+BAGI,mBADA,aAEA,UACA,UhBu6CP,CgBr6CG,kHAMI,aACA,qBhBu6CP,CgBp6CG,uBACI,ehBs6CP,CgBp6CG,iBACI,eACA,ebqLsB,CapLtB,eACA,gBhBs6CP,CgBp6CG,iBAEK,gBbwKuB,CazKvB,ebmLqB,CajLrB,iBACA,gBhBs6CR,CgBj6CQ,8DAEI,iBACA,iBhBk6CZ,CgB95CI,gBACI,iBhBg6CR,CgB55CI,yCACI,qBhB+5CR,CgB75CI,wCACI,wBhB+5CR,CgB75CI,kKAMI,gBhB+5CR,CiBx+CA,iBAUI,adTS,CcUT,eAJA,cdiMa,CchMb,gBACA,gBAPA,mBACA,kBACA,kBAEA,oCjBi/CJ,CiB1+CI,+BACE,adbO,CcuBP,eATA,cAQA,eAPA,YACA,OAKA,iBAMC,WAVD,kBAGA,kBAFA,MAOA,qCANA,UjBo/CN,CiBv+CQ,+CACI,SjB0+CZ,CiBt+CI,6BAEI,aADA,sBjB0+CR,CiBn+CI,6BACI,iBjBu+CR,CiBn+CA,gHAQE,6BAJA,qBLlDA,0BKoDA,OAGA,SL1DA,SK2DiB,CALjB,kBAEA,KjB0+CF,CiBr+CA,yDL1DE,wBAHA,SZwiDF,CiBv+CA,6BAGE,2BjB0+CF,CiBx+CA,qDLnEE,wBAHA,SZojDF,CiB1+CA,uDLvEE,0BAHA,SZ0jDF,CiBx+CA,yDAGE,wBADA,SjB4+CF,CiBz+CA,2DAGE,0BADA,UAIA,2BjB2+CF,CiBz+CA,mCAGE,UdpE2B,CcmE3B,cjB6+CF,CiB1+CA,iDAEE,UjB6+CF,CiB3+CA,2DAGE,0BADA,SjB++CF,CiB5+CA,6DAGE,wBADA,SjBg/CF,CiB7+CA,iEAEE,UjBg/CF,CiB9+CA,2EAGE,wBADA,SjBk/CF,CiB/+CA,6EAGE,UdhG2B,CciG3B,0BAFA,SjBo/CF,CkBlnDQ,gCAEI,4BlBqnDZ,CkBjnDA,QACI,QfJyB,CeKzB,gBACA,af0Le,CezLf,SlBonDJ,CkBlnDI,sBACI,UfNqB,CeUrB,cfyLiB,Ce5LjB,ef0MqB,CezMrB,Yf+O0B,Ce9O1B,iBlBqnDR,CkBjnDS,yBACI,oBACA,af+NoB,Ce9NpB,iBlBmnDb,CkBjnDY,sDAEI,qBACA,QlBmnDhB,CkBjnDY,2BAEI,iBADA,kBAEA,OlBmnDhB,CkBhnDS,6BACI,efoNoB,CenNpB,gBlBknDb,CkB/mDI,aACG,elBknDP,CkB/mDI,iCAFG,clBonDP,CkB7mDA,8BACI,iBf0H2B,CezH3B,elBgnDJ,CkB7mDA,gBAEI,wBf3DyB,Ce4DzB,6BAFA,UlBknDJ,CkB9mDI,uBACI,oBlBgnDR,CkB7mDQ,2CACI,UlB+mDZ,CkB5mDQ,oPAKI,6BACA,kBNtEV,0BAHA,SZyrDF,CkB3mDQ,0GAEI,2BfxBC,CeyBD,wBlB6mDZ,CkBzmDQ,wHAGI,6BACA,alB2mDZ,CkBxmDQ,kGACI,4BlB0mDZ,CkBrmDI,4DAEI,oBf5CK,Ce2CL,alBwmDR,CkBrmDI,+KAGQ,alBqmDZ,CkBjmDA,abmLU,eLm7CV,CkBpmDG,2BLvFD,6BAFA,SADA,gBK+FM,afvFqB,CeqFrB,afgFW,CejFX,YAEA,iBf0GuB,CUtM7B,SbssDF,CkBvmDI,6FAGI,QfvHqB,CewHrB,2CAFA,UlB0mDR,CkBnmDA,mBCjII,wBnBwuDJ,CkBpmDA,gBCpII,wBnB4uDJ,CkBrmDA,mBCvII,wBnBgvDJ,CkBtmDA,mBC1II,wBnBovDJ,CkBvmDA,kBC7II,wBnBwvDJ,CkBvmDA,oBAEI,6BACA,oCAFA,gBlB4mDJ,CkBvmDA,eAGI,QftJyB,CeqJzB,mBADA,elB4mDJ,CkBxmDI,yBACI,qBlB0mDR,CkBxmDK,4DAEG,wBlB0mDR,CkBvmDI,sGAEI,4BlBwmDR,CkBlmDI,mENvKF,yBAHA,UZixDF,CkBnmDQ,8JAII,6BN/KV,0BAHA,SZsxDF,CkB5lDI,yGAEI,UlB6lDR,CkBvlDQ,6FAII,iBfhMiB,Ce8LjB,Uf9LiB,CSH3B,yBAHA,UZ+xDF,CkBnlDQ,+hBAUI,6BAEA,kBAEA,UfpNiB,CSH3B,0BAHA,SZ8yDF,CkB9kDQ,uGAEI,4BlB+kDZ,CkB3kDQ,uUAMI,wBftOiB,CewOjB,qBlB2kDZ,CkBvkDQ,qQAMI,6BAEA,UfpPiB,CSH3B,0BAHA,SZm0DF,CkBjkDI,iEAII,iBfhQqB,Ce8PrB,UlBmkDR,CkB7jDI,mFAII,qBfxQqB,CesQrB,af7OqB,CS5B3B,yBAHA,UZ60DF,CkBzjDI,+fAUI,iBfxRqB,CSH3B,0BAHA,SZ01DF,CoB71DA,QACI,4BAEA,iBADA,iBpBi2DJ,CoB91DQ,eAIE,gBAHA,gBACA,SACA,SpBi2DV,CoB/1DY,kBACQ,qBAGA,iBADA,gBADA,kBAGA,iBpBi2DpB,CoB/1DY,2BACI,ajBhBH,CiBiBG,cACA,iBpBi2DhB,CoB/1DgB,kEAEI,apBg2DpB,CoB31DI,mBACI,ajB5BK,CiB8BL,eAGA,iBADA,gBAHA,kBAKA,kBAHA,kBpBg2DR,CoB31DI,eACI,apB61DR,CqBp4DA,eACI,wBlBYyB,CkBXzB,SACA,iBlB4K2B,CEoHrB,+DgBvRN,CARA,cTEF,wBSDE,gBTFF,SSQmB,CALjB,UACA,kBACA,kBACA,YrB24DJ,CqBr4DI,qBTTF,0BAHA,SSauB,CACjB,kBrBw4DR,CqBr4DI,wBACI,wBlBPqB,CkBQrB,QrBu4DR,CqBp4DI,gCACI,alBQqB,CkBPrB,iBlB6KU,CkB5KV,iBrBs4DR,CqBl4DI,uBACG,2BlBqMoB,CE6DjB,egBjQH,CAIA,iBhB6RC,mBAgBA,0BFnGqB,CEmEzB,0BLooDJ,CqB/4DI,4BACI,erBi5DR,CqB94DI,oBACG,alB3CM,CkB4CN,clB2JU,CkB1JV,kBhB4QH,eLyoDJ,CqBl5DO,wBACI,erBo5DX,CqBj5DI,0BACI,mBrBm5DR,CqBh5DI,iCACI,crBk5DR,CqB/4DI,gCACG,0BlBgHwB,CkB/GxB,2BrBi5DP,CqB94DI,+BACI,6BlB2GuB,CkB1GvB,8BrBg5DR,CqB74DI,wCAEI,gBADA,erBg5DR,CqB54DI,oDAEI,wBlBnCQ,CkBoCR,uBlB7EU,CkB8EV,UACA,oBrB84DR,CqBv4DI,sKAEI,wBrB24DR,CqBz4DI,sFAEI,wBrB04DR,CqBx4DI,sFAEI,wBrBy4DR,CqBv4DI,oFAEI,wBrBw4DR,CqBl4DA,kBACI,erBq4DJ,CqBn4DA,uBACI,gBrBs4DJ,CsBv/DA,MAaI,sBAZA,SACA,qBnBwKwB,CmBvKxB,yCAEA,anB2TwB,CmBpTxB,sBANA,mBACA,kBACA,StB8/DJ,CsBv/DI,kBACI,cACA,etBy/DR,CsBt/DI,QACI,atBw/DR,CsBr/DI,aAII,0BADA,aADA,gBAGA,kBAGA,4BAPA,UtB8/DR,CsBr/DQ,iBACI,UtBu/DZ,CsBp/DI,eACI,sBtBs/DR,CsBp/DI,cACI,gBtBs/DR,CsBp/DI,mBAEI,anB5CK,CmB2CL,atBu/DR,CsBn/DI,SACI,iBACA,kBACA,kBtBq/DR,CsBl/DI,SACI,iBnBgJU,CmB/IV,QtBo/DR,CsBl/DI,4BAEI,cnB4IS,CmB3IT,enB6JqB,CmB1JrB,gBADA,yBtBo/DR,CsBl/DQ,gCACI,atBq/DZ,CsBj/DI,YAII,qBAHA,eACA,kBACA,0BAEA,qBtBm/DR,CsBh/DI,aAEI,anB+OoB,CmB9OpB,enBwIqB,CmB1IrB,QtBo/DR,CsBh/DI,cAII,kBAFA,YAGA,iBAFA,gBAFA,UtBs/DR,CsBh/DI,cAEI,iBADA,StBm/DR,CsBh/DQ,sBACI,atBk/DZ,CsB/+DQ,iBAEI,kBADA,ctBk/DZ,CsB9+DI,aACI,cACA,etBg/DR,CsB/+DQ,eACI,iBACA,ctBk/DZ,CsB9+DI,iCAHQ,oBtBo/DZ,CsB7+DI,cACI,iBnBkFU,CmBjFV,enBsGqB,CmBrGrB,wBtB++DR,CsB7+DI,gBACI,ctB++DR,CsB5+DI,2BAKI,qBnBlGqB,CmBmGrB,WALA,YAMA,kBALA,YACA,MACA,StBi/DR,CsB3+DI,gBAEI,aADA,atB8+DR,CsBz+DQ,oEAEI,iBtB2+DZ,CsBx+DQ,kEAEI,kBtB0+DZ,CsBt+DI,aACI,iBnBmBwB,CmBlBxB,iBtBw+DR,CsBt+DQ,6BACI,iBtBw+DZ,CsBr+DI,gBACI,cACA,etBu+DR,CsBr+DI,eACI,cACA,gBtBu+DR,CsBt+DQ,iBACI,QtBw+DZ,CsBp+DQ,yBACI,ctBs+DZ,CsBr+DY,0CACI,+BtBu+DhB,CsBl+DI,mBXnLF,wBRgDc,CQ8DZ,UX2iEJ,CWvpEE,6WAWE,wBRqCyB,CQpCzB,UX+oEJ,CWxoEI,k2BAME,wBRqBU,CQpBV,oBXqoEN,CWjoEE,kDAEE,eXkoEJ,CWnjEE,8BAEE,oBRnEY,CQkEZ,aXsjEJ,CWnjEI,6GAGE,4BRtGW,CQwGX,oBRxEuB,CQuEvB,aXojEN,CW/iEE,4BACE,aXijEJ,CW/iEI,uGAGE,4BRlHW,CQmHX,aRnFuB,CQoFvB,oBX+iEN,CsB9/DI,mBXvLF,wBRqDc,CQyDZ,UX2kEJ,CWvrEE,6WAWE,wBR0CmB,CQzCnB,UX+qEJ,CWxqEI,k2BAME,wBR0BU,CQzBV,oBXqqEN,CWjqEE,kDAEE,eXkqEJ,CWnlEE,8BAEE,oBR9DY,CQ6DZ,aXslEJ,CWnlEI,6GAGE,4BRtGW,CQwGX,oBRnEiB,CQkEjB,aXolEN,CW/kEE,4BACE,aXilEJ,CW/kEI,uGAGE,4BRlHW,CQmHX,aR9EiB,CQ+EjB,oBX+kEN,CsB1hEI,gBX3LF,wBRyDW,CQqDT,UX2mEJ,CWvtEE,4UAWE,wBR6CgB,CQ5ChB,UX+sEJ,CWxsEI,0xBAME,wBR8BO,CQ7BP,oBXqsEN,CWjsEE,4CAEE,eXksEJ,CWnnEE,2BAEE,oBR1DS,CQyDT,aXsnEJ,CWnnEI,oGAGE,4BRtGW,CQwGX,oBRhEc,CQ+Dd,aXonEN,CW/mEE,yBACE,aXinEJ,CW/mEI,8FAGE,4BRlHW,CQmHX,aR3Ec,CQ4Ed,oBX+mEN,CsBtjEI,mBX/LF,wBR8Dc,CQgDZ,UX2oEJ,CWvvEE,6WAWE,wBRkDmB,CQjDnB,UX+uEJ,CWxuEI,k2BAME,wBRmCU,CQlCV,oBXquEN,CWjuEE,kDAEE,eXkuEJ,CWnpEE,8BAEE,oBRrDY,CQoDZ,aXspEJ,CWnpEI,6GAGE,4BRtGW,CQwGX,oBR3DiB,CQ0DjB,aXopEN,CW/oEE,4BACE,aXipEJ,CW/oEI,uGAGE,4BRlHW,CQmHX,aRtEiB,CQuEjB,oBX+oEN,CsBllEI,kBXnMF,wBRmEa,CQ2CX,UX2qEJ,CWvxEE,kWAWE,wBRuDkB,CQtDlB,UX+wEJ,CWxwEI,00BAME,wBRwCS,CQvCT,oBXqwEN,CWjwEE,gDAEE,eXkwEJ,CWnrEE,6BAEE,oBRhDW,CQ+CX,aXsrEJ,CWnrEI,0GAGE,4BRtGW,CQwGX,oBRtDgB,CQqDhB,aXorEN,CW/qEE,2BACE,aXirEJ,CW/qEI,oGAGE,4BRlHW,CQmHX,aRjEgB,CQkEhB,oBX+qEN,CWnzEE,gYAWE,qBRNyB,CQOzB,UX+yEJ,CWxyEI,k2BAME,qBRpBuB,CQqBvB,iBXqyEN,CWjyEE,kDAEE,eXkyEJ,CW3xEI,8BACE,aX6xEN,CW3xEM,6GAGE,aX2xER,CWvxEI,4BACE,UXyxEN,CWvxEM,uGAGE,aXuxER,CWnxEI,+BACE,UXqxEN,CWnxEM,gHAGE,aXmxER,CW/wEI,+BACE,UXixEN,CW/wEM,gHAGE,aX+wER,CW3wEI,+BACE,UX6wEN,CW3wEM,gHAGE,aX2wER,CWvwEI,iSAQE,qBR5FuB,CQ6FvB,aXkwEN,CW/vEI,4EAGE,aX+vEN,CWxvEE,8BAEE,iBR5GyB,CQ2GzB,UX2vEJ,CWxvEI,6GAGE,4BRtGW,CQwGX,iBRnHuB,CQkHvB,UXyvEN,CWpvEE,4BACE,UXsvEJ,CWpvEI,uGAGE,4BRlHW,CQmHX,UR9HuB,CQ+HvB,oBXovEN,CsB9qEI,kBACI,0BACA,aAEA,gBADA,iBtBkrER,CsB/qEQ,sBACI,UtBirEZ,CsB9qEI,wBACI,SACA,gBtBgrER,CsB9qEI,mBAGI,iBAFA,kBACA,mBtBirER,CsB/qEQ,0BACI,atBirEZ,CsBhrEY,gCACI,atBkrEhB,CsB9qEI,mBAGI,kBADA,aAGA,mBADA,kBAHA,WtBorER,CsB9qEQ,gCACI,qBtBgrEZ,CsB9qEQ,+BACI,wBtBgrEZ,CsB7qEI,kBACI,gBACA,gBtB+qER,CsB7qEI,wBACI,etB+qER,CsB7qEI,oBACI,gBtB+qER,CsB3qEQ,8BACI,aACA,WtB6qEZ,CsBvqEI,eACI,aACA,gBtB0qER,CsBxqEQ,mBACI,WtB0qEZ,CsBpqEI,uCACI,qBtBwqER,CsBtqEI,6BACI,etByqER,CsBtqEA,YACI,6BAEA,gBADA,etB0qEJ,CsBvqEI,mBACI,iBtByqER,CuBx1EE,UAxDA,mBtB7Bc,CsB8Bd,oBtB9Bc,CsB+Bd,ctB9Ba,CsB+Bb,avBo5EF,CuB31EE,iDArEA,cAKA,YvBq6EF,CuBh2EE,iCAGE,kBA9FF,oBA4F4B,CAxF5B,0BAwFsC,CArFpC,evBi8EJ,CuBv2EE,+BAGE,kBApGF,sBAkG4B,CA9F5B,0BA8FwC,CA3FtC,evB88EJ,CuB92EE,+BAGE,gBA1GF,oBAwG4B,CApG5B,wBAoGsC,CA/FpC,gBvBy9EJ,CuBr3EE,6BAGE,kBAhHF,oBA8G4B,CA1G5B,0BA0GsC,CAvGpC,evBw+EJ,CuB53EE,+CAGE,kBAtHF,oBAoH4B,CAhH5B,sBAgHsC,CAzGpC,iBvBi/EJ,CuBn4EE,6CAGE,kBA5HF,sBA0H4B,CAtH5B,sBAsHwC,CA/GtC,iBvB8/EJ,CuB14EE,kEAGE,kBAlIF,oBAgI4B,CA5H5B,0BA4HsC,CAzHpC,evB+gFJ,CuBj5EE,gEAGE,kBAxIF,sBAsI4B,CAlI5B,0BAkIwC,CA/HtC,evB4hFJ,CuBx5EE,gEAIE,gBA/IF,kBA6I4B,CAzI5B,wBAyIoC,CApIlC,gBvBuiFJ,CuB95EE,8DAGE,gBArJF,kBAmJ4B,CA/I5B,0BA+IoC,CA5IlC,evBsjFJ,CuBr6EE,SAvHA,qBtB7Bc,CsB8Bd,gBtB5Bc,CsB+BZ,oBvB8hFJ,CuBv6EE,UAlHA,iBtB/Bc,CsBgCd,oBvB6hFF,CuBx6EE,SAjHA,UACA,gBvB6hFF,CuBz6EE,SA5GA,YACA,evByhFF,CuB16EE,QA3GA,UACA,iBvByhFF,CuB36EE,gBA1GA,UACA,iBvByhFF,CuBrhFE,+FACE,cvBwhFJ,CuBrhFE,iDACE,YvBuhFJ,CuB5hFE,+FACE,cvB+hFJ,CuB5hFE,iDACE,YvB8hFJ,CuBniFE,+FACE,cvBsiFJ,CuBniFE,iDACE,YvBqiFJ,CuB1iFE,+FACE,cvB6iFJ,CuB1iFE,iDACE,YvB4iFJ,CuBjjFE,+FACE,cvBojFJ,CuBjjFE,iDACE,YvBmjFJ,CuBxjFE,+FACE,yBvB2jFJ,CuBxjFE,iDACE,uBvB0jFJ,CuB/jFE,+FACE,yBvBkkFJ,CuB/jFE,iDACE,uBvBikFJ,CuBtkFE,+FACE,0BvBykFJ,CuBtkFE,iDACE,wBvBwkFJ,CuB7kFE,+FACE,yBvBglFJ,CuB7kFE,iDACE,uBvB+kFJ,CuBplFE,+FACE,yBvBulFJ,CuBplFE,iDACE,uBvBslFJ,CuB3lFE,+FACE,yBvB8lFJ,CuB3lFE,iDACE,uBvB6lFJ,CuBlmFE,+FACE,yBvBqmFJ,CuBlmFE,iDACE,uBvBomFJ,CuBzmFE,+FACE,0BvB4mFJ,CuBzmFE,iDACE,wBvB2mFJ,CuBhnFE,+FACE,yBvBmnFJ,CuBhnFE,iDACE,uBvBknFJ,CuBvnFE,+FACE,yBvB0nFJ,CuBvnFE,iDACE,uBvBynFJ,CuBrgFM,WA/NJ,cACA,kBACA,UvBwuFF,CuBtuFE,kBAGE,WAFA,cACA,WAGA,SACA,oBAFA,OvB0uFJ,CuBruFE,iBAGE,WAFA,WACA,avBwuFJ,CuBpuFE,eACE,cAGA,OAFA,kBACA,KvBuuFJ,CuB9hFM,iBA/NJ,cACA,kBACA,UvBiwFF,CuB/vFE,wBAGE,WAFA,cACA,WAGA,SACA,sBAFA,OvBmwFJ,CuB9vFE,uBAGE,WAFA,WACA,avBiwFJ,CuB7vFE,qBACE,cAGA,OAFA,kBACA,KvBgwFJ,CuBvjFM,iBA/NJ,cACA,kBACA,UvB0xFF,CuBxxFE,wBAGE,WAFA,cACA,WAGA,SACA,8BAFA,OvB4xFJ,CuBvxFE,uBAGE,WAFA,WACA,avB0xFJ,CuBtxFE,qBACE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AEA,cALA,kBAEA,UxByoGR,CwBnoGE,8BAGI,YAFA,wBACA,UxBsoGN,CwBnoGE,kBAGE,6BxBqoGJ,CwBnoGE,MnB8FC,4CAEA,6BACA,qCAEA,6BmBlGC,KxB2oGJ,CwBxoGE,MACE,SxB0oGJ,CwBxoGE,MnBuFC,+CAEA,gCACA,qCAEA,6BmB3FC,QxBgpGJ,CwB7oGE,enBmFC,yCAEA,0BACA,qCAEA,6BmBvFC,OxBqpGJ,CwBlpGE,eACE,SxBopGJ,CwBlpGE,enB4EC,4CAEA,6BACA,qCAEA,6BmBhFC,UxB0pGJ,CKtkGE,oBACE,GAAI,MAAU,sBL0kGhB,CKzkGE,IAAK,QAAU,wBL6kGjB,CK5kGE,IAAK,wBL+kGP,CK9kGE,GAAM,wBLilGR,CACF,CKhlGE,4BACE,GAAI,MAAU,8BLolGhB,CKnlGE,IAAK,QAAU,gCLulGjB,CKtlGE,IAAK,gCLylGP,CKxlGE,GAAO,gCL2lGT,CACF,CKjlGE,uBACE,GAAK,QAAU,wBLqmGjB,CKpmGE,IAAM,wBLumGR,CKtmGE,IAAM,sBLymGR,CKxmGE,GAAO,MAAU,mBL4mGnB,CACF,CK1mGE,+BACE,GAAK,QAAU,gCL8mGjB,CK7mGE,IAAM,gCLgnGR,CK/mGE,IAAM,8BLknGR,CKjnGE,GAAO,MAAU,2BLqnGnB,CACF,CK1mGE,uBACE,GAAI,SAAa,sBL8nGnB,CK7nGE,IAAK,WAAa,yBLioGpB,CKhoGE,IAAK,yBLmoGP,CKloGE,GAAM,yBLqoGR,CACF,CKpoGE,+BACE,GAAI,SAAa,8BLwoGnB,CKvoGE,IAAK,WAAa,iCL2oGpB,CK1oGE,IAAK,iCL6oGP,CK5oGE,GAAM,iCL+oGR,CACF,CKroGE,0BACE,GAAK,WAAY,yBLypGnB,CKxpGE,IAAM,uBL2pGR,CK1pGE,IAAM,uBL6pGR,CK5pGE,GAAO,SAAY,mBLgqGrB,CACF,CK/pGE,kCACE,GAAI,WAAY,iCLmqGlB,CKlqGE,IAAK,+BLqqGP,CKpqGE,IAAK,+BLuqGP,CKtqGE,GAAM,SAAY,2BL0qGpB,CACF,CwBj0GE,0BACE,GAAI,SxBo1GN,CwBn1GE,GAAM,SxBs1GR,CACF,CwBj1GE,kBACE,GAAI,SxB41GN,CwB31GE,GAAM,SxB81GR,CACF,CwB51GE,wBACI,mCxB81GN,CwB31GE,YACI,YxB61GN,CwB11GE,eACI,YxB41GN,CwBz1GU,oDAEI,4BxB01Gd,CwBr1GE,kBACI,kCxBu1GN,CwBr1GE,WAQI,WAPA,YAKA,UAFA,UAMA,kBAPA,eAIA,YAFA,MAHA,WAOA,YxBw1GN,CwBr1GE,qCACI,exBu1GN,CwBr1GE,0CACI,sCxBu1GN,CwBr1GE,qBACI,exBu1GN,CwBr1GE,oBAGI,cADA,qBAEA,mBAHA,SxB01GN,CwBr1GE,wBACI,UxBu1GN,CwBp1GE,0BACI,qBxBs1GN,CwBp1GE,6BACI,axBs1GN,CwBp1GE,wCACI,uBxBs1GN,CwBp1GE,eACI,UxBs1GN,CwBp1GE,iCAKI,6BACA,SAEA,gBANA,WAEA,aAHA,gBAEA,UxB21GN,CwBn1GE,qBACI,eACA,exBq1GN,CwBl1GM,mDAGI,4BxBk1GV,CwB70GE,mBACI,eACA,UxB+0GN,CACF,CwB10GA,yBACI,kBACI,kBACA,kBxB40GN,CwB10GE,kBACI,gBxB40GN,CACF,CwBx0GA,yBACI,kBAMI,4CACA,iCAJA,sBADA,mBAEA,kBACA,kBAJA,UxBg1GN,CACF,CyBtwHA,gBACI,SACA,kBACA,qBAKA,gBAHA,gBADA,kBAEA,UzB0wHJ,CyBrwHI,mBAGI,mCAFA,eACA,WzBwwHR,CyBpwHI,qCACI,WzBswHR,C0BxxHA,WACC,6BAOA,kBADA,gBALA,iDACA,2R1BgyHD,C2BnyHA,mCAGC,WAQA,mCACA,kCAXA,qBACA,6BAEA,kBAEA,oBADA,gBAGA,cADA,mB3ByyHD;A4B1yHA;;;EAAA,CAMA,OACE,kBACA,kBACA,mB5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OACE,c5B+yHF,C4B5yHA,OAEE,kBADA,oB5BgzHF,C4B5yHA,OAGE,qBADA,2BADA,c5BizHF,C4B7yHE,UACE,iB5B+yHJ,C4B3yHA,OAEE,qBADA,kBAIA,kBADA,kBADA,oB5BgzHF,C4B5yHE,aACE,oB5B8yHJ,C4B1yHA,WAEE,wBACA,mBAFA,wB5B+yHF,C4B1yHA,YACE,W5B6yHF,C4BzyHE,cACE,WAEA,iBADA,iB5B6yHJ,C4BxyHA,SACE,2E5B2yHF,C4BxyHA,wBACE,GACE,sB5B2yHF,C4BzyHA,GACE,wB5B2yHF,CACF,C4BjzHA,gBACE,GACE,sB5B2yHF,C4BzyHA,GACE,wB5B2yHF,CACF,C4BxyHA,cACE,gEACA,uB5B0yHF,C4BvyHA,eACE,gEACA,wB5B0yHF,C4BvyHA,eACE,gEACA,wB5B0yHF,C4BvyHA,oBACE,yEACA,oB5B0yHF,C4BvyHA,kBACE,yEACA,oB5B0yHF,C4BvyHA,UAEE,qBAEA,WACA,gBAJA,kBAKA,sBAHA,S5B6yHF,C4BvyHA,0BAGE,OADA,kBAGA,kBADA,U5B2yHF,C4BvyHA,aACE,mB5B0yHF,C4BvyHA,aACE,a5B0yHF,C4BvyHA,YACE,U5B0yHF,C4BtyHA,OACE,qB5B0yHF,C4BvyHA,WACE,0B5B0yHF,C6Bl8HA,oBACE,e7Bq8HF,C6Bl8HA,kBACE,e7Bq8HF,C6Bn8HA,qBACE,e7Bs8HF,C6Bp8HA,sBACE,e7Bu8HF,C6Br8HA,kBACE,e7Bw8HF,C6Bt8HA,sBACE,e7By8HF,C6Bv8HA,wBACE,e7B08HF,C6Bx8HA,yBACE,e7B28HF,C6Bz8HA,qBACE,e7B48HF,C6B18HA,kBACE,e7B68HF,C6B38HA,qBACE,e7B88HF,C6B58HA,yBACE,e7B+8HF,C6B78HA,mBACE,e7Bg9HF,C6B98HA,wBACE,e7Bi9HF,C6B/8HA,mBACE,e7Bk9HF,C6Bh9HA,yBACE,e7Bm9HF,C6Bj9HA,mBACE,e7Bo9HF,C6Bl9HA,oBACE,e7Bq9HF,C6Bn9HA,qBACE,e7Bs9HF,C6Bp9HA,2BACE,e7Bu9HF,C6Br9HA,uBACE,e7Bw9HF,C6Bt9HA,oBACE,e7By9HF,C6Bv9HA,oBACE,e7B09HF,C6Bx9HA,qBACE,e7B29HF,C6Bz9HA,wBACE,e7B49HF,C6B19HA,qBACE,e7B69HF,C6B39HA,uBACE,e7B89HF,C6B59HA,qBACE,e7B+9HF,C6B79HA,oBACE,e7Bg+HF,C6B99HA,kBACE,e7Bi+HF,C6B/9HA,qBACE,e7Bk+HF,C6Bh+HA,mBACE,e7Bm+HF,C6Bj+HA,2BACE,e7Bo+HF,C6Bl+HA,mBACE,e7Bq+HF,C6Bn+HA,oBACE,e7Bs+HF,C6Bp+HA,wBACE,e7Bu+HF,C6Br+HA,6BACE,e7Bw+HF,C6Bt+HA,kBACE,e7By+HF,C6Bv+HA,2BACE,e7B0+HF,C6Bx+HA,iBACE,e7B2+HF,C6Bz+HA,uBACE,e7B4+HF,C6B1+HA,yBACE,e7B6+HF,C6B3+HA,8BACE,e7B8+HF,C6B5+HA,oBACE,e7B++HF,C6B7+HA,0BACE,e7Bg/HF,C6B9+HA,qBACE,e7Bi/HF,C6B/+HA,iCACE,e7Bk/HF,C6Bh/HA,oBACE,e7Bm/HF,C6Bj/HA,yBACE,e7Bo/HF,C6Bl/HA,0BACE,e7Bq/HF,C6Bn/HA,gCACE,e7Bs/HF,C6Bp/HA,uBACE,e7Bu/HF,C6Br/HA,yBACE,e7Bw/HF,C6Bt/HA,qBACE,e7By/HF,C6Bv/HA,gCACE,e7B0/HF,C6Bx/HA,uBACE,e7B2/HF,C6Bz/HA,qBACE,e7B4/HF,C6B1/HA,mBACE,e7B6/HF,C6B3/HA,sBACE,e7B8/HF,C6B5/HA,sBACE,e7B+/HF,C6B7/HA,wBACE,e7BggIF,C6B9/HA,oBACE,e7BigIF,C6B//HA,mBACE,e7BkgIF,C6BhgIA,qBACE,e7BmgIF,C6BjgIA,qBACE,e7BogIF,C6BlgIA,uBACE,e7BqgIF,C6BngIA,oBACE,e7BsgIF,C6BpgIA,oBACE,e7BugIF,C6BrgIA,oBACE,e7BwgIF,C6BtgIA,qBACE,e7BygIF,C6BvgIA,qBACE,e7B0gIF,C6BxgIA,kBACE,e7B2gIF,C6BzgIA,oBACE,e7B4gIF,C6B1gIA,wBACE,e7B6gIF,C6B3gIA,mBACE,e7B8gIF,C6B5gIA,sBACE,e7B+gIF,C6B7gIA,qBACE,e7BghIF,C6B9gIA,sBACE,e7BihIF,C6B/gIA,sBACE,e7BkhIF,C6BhhIA,oBACE,e7BmhIF,C6BjhIA,qBACE,e7BohIF,C6BlhIA,qBACE,e7BqhIF,C6BnhIA,mBACE,e7BshIF,C6BphIA,sBACE,e7BuhIF,C6BrhIA,mBACE,e7BwhIF,C6BthIA,qBACE,e7ByhIF,C6BvhIA,qBACE,e7B0hIF,C6BxhIA,sBACE,e7B2hIF,C6BzhIA,uBACE,e7B4hIF,C6B1hIA,4BACE,e7B6hIF,C6B3hIA,wBACE,e7B8hIF,C6B5hIA,oBACE,e7B+hIF,C6B7hIA,oBACE,e7BgiIF,C6B9hIA,oBACE,e7BiiIF,C6B/hIA,sBACE,e7BkiIF,C6BhiIA,mBACE,e7BmiIF,C6BjiIA,mBACE,e7BoiIF,C6BliIA,oBACE,e7BqiIF,C6BniIA,oBACE,e7BsiIF,C6BpiIA,wBACE,e7BuiIF,C6BriIA,oBACE,e7BwiIF,C6BtiIA,mBACE,e7ByiIF,C6BviIA,yBACE,e7B0iIF,C6BxiIA,mBACE,e7B2iIF,C6BziIA,kBACE,e7B4iIF,C6B1iIA,oBACE,e7B6iIF,C6B3iIA,kBACE,e7B8iIF,C6B5iIA,4BACE,e7B+iIF,C6B7iIA,kBACE,e7BgjIF,C6B9iIA,oBACE,e7BijIF,C6B/iIA,mBACE,e7BkjIF,C6BhjIA,kBACE,e7BmjIF,C6BjjIA,0BACE,e7BojIF,C6BljIA,0BACE,e7BqjIF,C6BnjIA,0BACE,e7BsjIF,C6BpjIA,oBACE,e7BujIF,C6BrjIA,2BACE,e7BwjIF,C6BtjIA,uBACE,e7ByjIF,C6BvjIA,mBACE,e7B0jIF,C6BxjIA,mBACE,e7B2jIF,C6BzjIA,yBACE,e7B4jIF,C6B1jIA,wBACE,e7B6jIF,C6B3jIA,oBACE,e7B8jIF,C6B5jIA,oBACE,e7B+jIF,C6B7jIA,mBACE,e7BgkIF,C6B9jIA,mBACE,e7BikIF,C6B/jIA,sBACE,e7BkkIF,C6BhkIA,oBACE,e7BmkIF,C6BjkIA,mBACE,e7BokIF,C6BlkIA,kBACE,e7BqkIF,C6BnkIA,yBACE,e7BskIF,C6BpkIA,mBACE,e7BukIF,C6BrkIA,wBACE,e7BwkIF,C6BtkIA,6BACE,e7BykIF,C6BvkIA,qBACE,e7B0kIF,C6BxkIA,mBACE,e7B2kIF,C6BzkIA,mBACE,e7B4kIF,C6B1kIA,mBACE,e7B6kIF,C6B3kIA,sBACE,e7B8kIF,C6B5kIA,mBACE,e7B+kIF,C6B7kIA,mBACE,e7BglIF,C6B9kIA,oBACE,e7BilIF,C6B/kIA,mBACE,e7BklIF,C6BhlIA,qBACE,e7BmlIF,C6BjlIA,mBACE,e7BolIF,C6BllIA,mBACE,e7BqlIF,C6BnlIA,mBACE,e7BslIF,C6BplIA,oBACE,e7BulIF,C6BrlIA,oBACE,e7BwlIF,C6BtlIA,qBACE,e7BylIF,C6BvlIA,qBACE,e7B0lIF,C6BxlIA,qBACE,e7B2lIF,C6BzlIA,oBACE,e7B4lIF,C6B1lIA,qBACE,e7B6lIF,C6B3lIA,oBACE,e7B8lIF,C6B5lIA,sBACE,e7B+lIF,C6B7lIA,mBACE,e7BgmIF,C6B9lIA,qBACE,e7BimIF,C6B/lIA,mBACE,e7BkmIF,C6BhmIA,qBACE,e7BmmIF,C6BjmIA,mBACE,e7BomIF,C6BlmIA,sBACE,e7BqmIF,C6BnmIA,sBACE,e7BsmIF,C6BpmIA,mBACE,e7BumIF,C6BrmIA,mBACE,e7BwmIF,C6BtmIA,qBACE,e7BymIF,C6BvmIA,uBACE,e7B0mIF,C6BxmIA,uBACE,e7B2mIF,C6BzmIA,uBACE,e7B4mIF,C6B1mIA,uBACE,e7B6mIF,C6B3mIA,mBACE,e7B8mIF,C6B5mIA,kBACE,e7B+mIF,C6B7mIA,sBACE,e7BgnIF,C6B9mIA,mBACE,e7BinIF,C6B/mIA,qBACE,e7BknIF,C6BhnIA,wBACE,e7BmnIF,C6BjnIA,qBACE,e7BonIF,C6BlnIA,sBACE,e7BqnIF,C6BnnIA,sBACE,e7BsnIF,C6BpnIA,qBACE,e7BunIF,C6BrnIA,oBACE,e7BwnIF,C6BtnIA,oBACE,e7BynIF,C6BvnIA,oBACE,e7B0nIF,C6BxnIA,mBACE,e7B2nIF,C6BznIA,mBACE,e7B4nIF,C6B1nIA,qBACE,e7B6nIF,C6B3nIA,mBACE,e7B8nIF,C6B5nIA,yBACE,e7B+nIF,C6B7nIA,sBACE,e7BgoIF,C6B9nIA,mBACE,e7BioIF,C6B/nIA,mBACE,e7BkoIF,C6BhoIA,wBACE,e7BmoIF,C6BjoIA,sBACE,e7BooIF,C6BloIA,mBACE,e7BqoIF,C6BnoIA,sBACE,e7BsoIF,C6BpoIA,mBACE,e7BuoIF,C6BroIA,mBACE,e7BwoIF,C6BtoIA,wBACE,e7ByoIF,C6BvoIA,qBACE,e7B0oIF,C6BxoIA,qBACE,e7B2oIF,C6BzoIA,oBACE,e7B4oIF,C6B1oIA,sBACE,e7B6oIF,C","sources":["webpack:///./resources/sass/admin/paper-dashboard.scss","webpack:///./resources/sass/admin/paper/mixins/_chartist.scss","webpack:///./resources/sass/admin/paper/_typography.scss","webpack:///./resources/sass/admin/paper/_variables.scss","webpack:///./resources/sass/admin/paper/_misc.scss","webpack:///./resources/sass/admin/paper/mixins/_vendor-prefixes.scss","webpack:///./resources/sass/admin/paper/_sidebar-and-main-panel.scss","webpack:///./resources/sass/admin/paper/mixins/_sidebar.scss","webpack:///./resources/sass/admin/paper/_badges.scss","webpack:///./resources/sass/admin/paper/mixins/_badges.scss","webpack:///./resources/sass/admin/paper/_buttons.scss","webpack:///./resources/sass/admin/paper/mixins/_buttons.scss","webpack:///./resources/sass/admin/paper/mixins/_transparency.scss","webpack:///./resources/sass/admin/paper/mixins/_inputs.scss","webpack:///./resources/sass/admin/paper/_inputs.scss","webpack:///./resources/sass/admin/paper/_alerts.scss","webpack:///./resources/sass/admin/paper/_tables.scss","webpack:///./resources/sass/admin/paper/_checkbox-radio.scss","webpack:///./resources/sass/admin/paper/_navbars.scss","webpack:///./resources/sass/admin/paper/mixins/_navbars.scss","webpack:///./resources/sass/admin/paper/_footers.scss","webpack:///./resources/sass/admin/paper/_dropdown.scss","webpack:///./resources/sass/admin/paper/_cards.scss","webpack:///./resources/sass/admin/paper/_chartist.scss","webpack:///./resources/sass/admin/paper/_responsive.scss","webpack:///./resources/sass/admin/paper/_form-container.scss","webpack:///./node_modules/pe7-icon/dist/scss/_path.scss","webpack:///./node_modules/pe7-icon/dist/scss/_core.scss","webpack:///./node_modules/pe7-icon/dist/scss/_helper.scss","webpack:///./node_modules/pe7-icon/dist/scss/_icons.scss"],"sourcesContent":["/*!\n\n =========================================================\n * Paper Dashboard - v1.1.2\n =========================================================\n\n * Product Page: http://www.creative-tim.com/product/paper-dashboard\n * Copyright 2017 Creative Tim (http://www.creative-tim.com)\n * Licensed under MIT (https://github.com/creativetimofficial/paper-dashboard/blob/master/LICENSE.md)\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n\n@import \"paper/variables\";\n@import \"paper/mixins\";\n\n@import \"paper/typography\";\n\n// Core CSS\n@import \"paper/misc\";\n@import \"paper/sidebar-and-main-panel\";\n@import \"paper/badges\";\n@import \"paper/buttons\";\n@import \"paper/inputs\";\n\n@import \"paper/alerts\";\n@import \"paper/tables\";\n\n@import \"paper/checkbox-radio\";\n@import \"paper/navbars\";\n@import \"paper/footers\";\n\n@import \"paper/dropdown\";\n@import \"paper/cards\";\n@import \"paper/chartist\";\n@import \"paper/responsive\";\n@import \"paper/form-container\";\n\n$pe-7s-font-path: \"../../fonts\" !default;\n@import \"../../../node_modules/pe7-icon/dist/scss/pe-icon-7-stroke\";\n","// Scales for responsive SVG containers\n$ct-scales: ((1), (15/16), (8/9), (5/6), (4/5), (3/4), (2/3), (5/8), (1/1.618), (3/5), (9/16), (8/15), (1/2), (2/5), (3/8), (1/3), (1/4)) !default;\n$ct-scales-names: (ct-square, ct-minor-second, ct-major-second, ct-minor-third, ct-major-third, ct-perfect-fourth, ct-perfect-fifth, ct-minor-sixth, ct-golden-section, ct-major-sixth, ct-minor-seventh, ct-major-seventh, ct-octave, ct-major-tenth, ct-major-eleventh, ct-major-twelfth, ct-double-octave) !default;\n\n// Class names to be used when generating CSS\n$ct-class-chart: ct-chart !default;\n$ct-class-chart-line: ct-chart-line !default;\n$ct-class-chart-bar: ct-chart-bar !default;\n$ct-class-horizontal-bars: ct-horizontal-bars !default;\n$ct-class-chart-pie: ct-chart-pie !default;\n$ct-class-chart-donut: ct-chart-donut !default;\n$ct-class-label: ct-label !default;\n$ct-class-series: ct-series !default;\n$ct-class-line: ct-line !default;\n$ct-class-point: ct-point !default;\n$ct-class-area: ct-area !default;\n$ct-class-bar: ct-bar !default;\n$ct-class-slice-pie: ct-slice-pie !default;\n$ct-class-slice-donut: ct-slice-donut !default;\n$ct-class-grid: ct-grid !default;\n$ct-class-vertical: ct-vertical !default;\n$ct-class-horizontal: ct-horizontal !default;\n$ct-class-start: ct-start !default;\n$ct-class-end: ct-end !default;\n\n// Container ratio\n$ct-container-ratio: (1/1.618) !default;\n\n// Text styles for labels\n$ct-text-color: rgba(0, 0, 0, 0.4) !default;\n$ct-text-size: 0.9em !default;\n$ct-text-align: flex-start !default;\n$ct-text-justify: flex-start !default;\n$ct-text-line-height: 1;\n\n// Grid styles\n$ct-grid-color: rgba(0, 0, 0, 0.2) !default;\n$ct-grid-dasharray: 2px !default;\n$ct-grid-width: 1px !default;\n\n// Line chart properties\n$ct-line-width: 4px !default;\n$ct-line-dasharray: false !default;\n$ct-point-size: 10px !default;\n// Line chart point, can be either round or square\n$ct-point-shape: round !default;\n// Area fill transparency between 0 and 1\n$ct-area-opacity: 0.7 !default;\n\n// Bar chart bar width\n$ct-bar-width: 10px !default;\n\n// Donut width (If donut width is to big it can cause issues where the shape gets distorted)\n$ct-donut-width: 60px !default;\n\n// If set to true it will include the default classes and generate CSS output. If you're planning to use the mixins you\n// should set this property to false\n$ct-include-classes: true !default;\n\n// If this is set to true the CSS will contain colored series. You can extend or change the color with the\n// properties below\n$ct-include-colored-series: $ct-include-classes !default;\n\n// If set to true this will include all responsive container variations using the scales defined at the top of the script\n$ct-include-alternative-responsive-containers: $ct-include-classes !default;\n\n// Series names and colors. This can be extended or customized as desired. Just add more series and colors.\n$ct-series-names: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) !default;\n$ct-series-colors: (\n $info-color,\n $warning-color,\n $danger-color,\n $success-color,\n $primary-color,\n rgba($info-color,.8),\n rgba($success-color,.8),\n rgba($warning-color,.8),\n rgba($danger-color,.8),\n rgba($primary-color,.8),\n rgba($info-color,.6),\n rgba($success-color,.6),\n rgba($warning-color,.6),\n rgba($danger-color,.6),\n rgba($primary-color,.6)\n \n) !default;\n\n// Paper Kit Colors\n\n.ct-blue{\n stroke: $primary-color !important;\n}\n.ct-azure{\n stroke: $info-color !important;\n}\n.ct-green{\n stroke: $success-color !important;\n}\n.ct-orange{\n stroke: $warning-color !important;\n}\n.ct-red{\n stroke: $danger-color !important;\n}","h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, a, .td-name, td{\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n //font-family: 'Roboto', \"Helvetica\", Arial, sans-serif;\n font-family: \"Roboto\",\"Helvetica Neue\",Arial,sans-serif;\n}\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4{\n font-weight: $font-weight-normal;\n margin: $margin-large-vertical 0 $margin-base-vertical;\n}\n\nh1, .h1 {\n font-size: $font-size-h1;\n}\nh2, .h2{\n font-size: $font-size-h2;\n}\nh3, .h3{\n font-size: $font-size-h3;\n line-height: 1.4;\n font-weight: $font-weight-light;\n margin: 20px 0 10px;\n}\nh4, .h4{\n font-size: $font-size-h4;\n font-weight: $font-weight-light;\n line-height: 1.2em;\n}\nh5, .h5 {\n font-size: $font-size-h5;\n font-weight: $font-weight-light;\n line-height: 1.4em;\n margin-bottom: 15px;\n}\nh6, .h6{\n font-size: $font-size-h6;\n font-weight: $font-weight-light;\n text-transform: uppercase;\n}\np{\n font-size: $font-paragraph;\n line-height: $line-height-general;\n}\n\nh1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small {\n color: $dark-gray;\n font-weight: $font-weight-light;\n line-height: $line-height-general;\n}\n\nh1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small {\n font-size: 60%;\n}\n.title-uppercase{\n text-transform: uppercase;\n}\nblockquote{\n font-style: italic;\n}\nblockquote small{\n font-style: normal;\n}\n.text-muted{\n color: $medium-gray;\n}\n.text-primary, .text-primary:hover{\n color: $primary-states-color;\n}\n.text-info, .text-info:hover{\n color: $info-states-color;\n}\n.text-success, .text-success:hover{\n color: $success-states-color;\n}\n.text-warning, .text-warning:hover{\n color: $warning-states-color;\n}\n.text-danger, .text-danger:hover{\n color: $danger-states-color;\n}\n.glyphicon{\n line-height: 1;\n}\nstrong{\n color: $default-states-color;\n}\n.icon-primary{\n color: $primary-color;\n}\n.icon-info{\n color: $info-color;\n}\n.icon-success{\n color: $success-color;\n}\n.icon-warning{\n color: $warning-color;\n}\n.icon-danger{\n color: $danger-color;\n}\n.chart-legend{\n .text-primary, .text-primary:hover{\n color: $primary-color;\n }\n .text-info, .text-info:hover{\n color: $info-color;\n }\n .text-success, .text-success:hover{\n color: $success-color;\n }\n .text-warning, .text-warning:hover{\n color: $warning-color;\n }\n .text-danger, .text-danger:hover{\n color: $danger-color;\n }\n}\n\n.description,\n.card-description,\n.footer-big p {\n color: $dark-gray;\n font-weight: $font-weight-light;\n}\n","$phpvms-blue: #067ec1 !default;\n\n$font-color: #4b4743 !default;\n$fill-font-color: rgba(182, 182, 182, 0.7);\n\n$none: 0 !default;\n$border-thin: 1px !default;\n$border-thick: 2px !default;\n\n$white-color: #FFFFFF !default;\n$white-bg: #FFFFFF !default;\n\n$smoke-bg: #F5F5F5 !default;\n$pale-bg: #FFFCF5 !default;\n$medium-pale-bg: #F1EAE0 !default;\n\n$table-line-color: #CCC5B9 !default;\n$muted-color: #a49e93 !default;\n\n$black-bg: rgba(30,30,30,.97) !default;\n$transparent-bg: transparent !default;\n$dark-background: #555555 !default;\n\n$black-color: #333333 !default;\n$black-hr: #444444 !default;\n\n$white-background-color: #FFFFFF !default;\n$black-background-color: #212120 !default;\n//$black-background-color: #1a2932 !default;\n//$black-background-color: #0c1419 !default;\n\n\n$light-gray: #E3E3E3 !default;\n$medium-gray: #DDDDDD !default;\n$dark-gray: #9A9A9A !default;\n\n$gray-input-bg: #fffcf5 !default;\n$danger-input-bg: #fffcf5 !default;\n$success-input-bg: #fffcf5 !default;\n$other-medium-gray: #A49E93 !default;\n$transparent-bg: transparent !default;\n\n$black-color: #2c2c2c !default;\n//$default-color: #2f2d2a !default; //#66615B !default;\n$default-color: #2c2c2c !default; //#66615B !default;\n//$default-bg: #66615B !default;\n$default-bg: #FFFFFF !default;\n$default-states-color: #403D39 !default;\n\n//$primary-color: #7A9E9F !default;\n$primary-color: #067ec1 !default;\n$primary-bg: darken($primary-color, 5%) !default;\n$primary-states-color: #427C89 !default;\n\n//$success-color: #7AC29A !default;\n$success-color: #18ce0f !default;\n$success-bg: darken($success-color, 5%) !default;\n$success-states-color: darken($success-color, 5%) !default;\n\n$info-color: #067ec1 !default; //#2CA8FF !default;\n$info-states-color: #0688d0 !default; // #109CFF !default;\n$info-color-opacity: rgba(44, 168, 255, .3) !default;\n$info-color-alert: rgba(44, 168, 255, .8) !default;\n\n$warning-color: #FFB236 !default;\n$warning-states-color: darken($warning-color, 5%) !default;\n$warning-color-opacity: rgba(255, 178, 54, .3) !default;\n$warning-color-alert: rgba(255, 178, 54, .8) !default;\n\n$danger-color: #FF3636 !default;\n$danger-states-color: darken($danger-color, 5%) !default;\n$danger-color-opacity: rgba(255, 54, 54, .3) !default;\n$danger-color-alert: rgba(255, 54, 54, .8) !default;\n\n/* brand Colors */\n$brand-primary: #067ec1 !default;\n$brand-info: $info-color !default;\n$brand-success: $success-color !default;\n$brand-warning: $warning-color !default;\n$brand-danger: $danger-color !default;\n$brand-inverse: $black-color !default;\n\n/*\n$default-color: #B8B8B8 !default;\n$default-states-color: darken($default-color, 5%) !default;\n$default-color-opacity: rgba(182, 182, 182, .6) !default;\n\n$primary-color: #f96332 !default;\n$primary-states-color: darken($primary-color, 5%) !default;\n$primary-color-opacity: rgba(249, 99, 50, .3) !default;\n$primary-color-alert: rgba(249, 99, 50, .8) !default;\n\n$success-color: #18ce0f !default;\n$success-states-color: darken($success-color, 5%) !default;\n$success-color-opacity: rgba(24, 206, 15, .3) !default;\n$success-color-alert: rgba(24, 206, 15, .8) !default;\n\n$info-color: #2CA8FF !default;\n$info-states-color: #109CFF !default;\n$info-color-opacity: rgba(44, 168, 255, .3) !default;\n$info-color-alert: rgba(44, 168, 255, .8) !default;\n\n$warning-color: #FFB236 !default;\n$warning-states-color: darken($warning-color, 5%) !default;\n$warning-color-opacity: rgba(255, 178, 54, .3) !default;\n$warning-color-alert: rgba(255, 178, 54, .8) !default;\n\n$danger-color: #FF3636 !default;\n$danger-states-color: darken($danger-color, 5%) !default;\n$danger-color-opacity: rgba(255, 54, 54, .3) !default;\n$danger-color-alert: rgba(255, 54, 54, .8) !default;\n*/\n\n$link-disabled-color: #666666 !default;\n\n\n/* light colors - used for select dropdown */\n\n$light-blue: rgba($primary-color, .2);\n$light-azure: rgba($info-color, .2);\n$light-green: rgba($success-color, .2);\n$light-orange: rgba($warning-color, .2);\n$light-red: rgba($danger-color, .2);\n\n\n//== Components\n//\n$padding-input-vertical: 11px !default;\n$padding-input-horizontal: 19px !default;\n\n$padding-btn-vertical: 11px !default;\n$padding-btn-horizontal: 22px !default;\n\n$padding-base-vertical: 7px !default;\n$padding-base-horizontal: 18px !default;\n\n$padding-round-vertical: 9px !default;\n$padding-round-horizontal: 18px !default;\n\n$padding-simple-vertical: 10px !default;\n$padding-simple-horizontal: 18px !default;\n\n$padding-large-vertical: 11px !default;\n$padding-large-horizontal: 30px !default;\n\n$padding-small-vertical: 4px !default;\n$padding-small-horizontal: 10px !default;\n\n$padding-xs-vertical: 2px !default;\n$padding-xs-horizontal: 5px !default;\n\n$padding-label-vertical: 2px !default;\n$padding-label-horizontal: 12px !default;\n\n// padding for links inside dropdown menu\n$padding-dropdown-vertical: 10px !default;\n$padding-dropdown-horizontal: 15px !default;\n\n$margin-large-vertical: 30px !default;\n$margin-base-vertical: 15px !default;\n\n// border radius for buttons\n$border-radius-btn-small: 26px !default;\n$border-radius-btn-base: 20px !default;\n$border-radius-btn-large: 50px !default;\n\n\n// Cristina: am schimbat aici si s-au modificat inputurile\n$margin-bottom: 0 0 10px 0 !default;\n$border: 1px solid !default;\n$border-radius-extra-small: 0.125rem !default;\n$border-radius-tiny: 0.1875rem !default;\n$border-radius-small: 0.1875px !default;\n$border-radius-base: 2px !default;\n$border-radius-large: 3px !default;\n$border-radius-extreme: 6px !default;\n\n$border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default;\n$border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default;\n\n$btn-round-radius: 30px !default;\n\n$height-base: 40px !default;\n\n$btn-icon-font-size: 24px !default;\n$btn-icon-size: 56px !default;\n$btn-icon-size-mini: 36px !default;\n$btn-icon-font-size-mini: 14px !default;\n\n/*$font-size-base: 14px !default;\n$font-size-xs: 12px !default;\n$font-size-small: 12px !default;\n$font-size-medium: 16px !default;\n$font-size-large: 18px !default;\n$font-size-large-navbar: 20px !default;*/\n\n$font-paragraph: 1em !default;\n$font-size-navbar: 1em !default;\n$font-size-mini: 0.7142em !default;\n$font-size-xs: 0.7142em !default;\n$font-size-small: 0.8571em !default;\n$font-size-base: 14px !default;\n$font-size-medium: 14px !default;\n$font-size-large: 1em !default;\n$font-size-large-navbar: 20px !default;\n$font-size-blockquote: 1.1em !default; // ~ 15px\n\n$font-size-h1: 3.2em !default;\n$font-size-h2: 2.6em !default;\n$font-size-h3: 1.825em !default;\n$font-size-h4: 1.5em !default;\n$font-size-h5: 1.25em !default;\n$font-size-h6: 0.9em !default;\n$font-paragraph: 16px !default;\n$font-size-navbar: 16px !default;\n$font-size-small: 12px !default;\n$font-size-mini: 0.7142em !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-semi: 500 !default;\n$font-weight-bold: 600 !default;\n\n$line-height-small: 20px !default;\n$line-height-general: 1.4em !default;\n$line-height: 36px !default;\n$line-height-lg: 54px !default;\n\n\n$border-radius-top: 10px 10px 0 0 !default;\n$border-radius-bottom: 0 0 10px 10px !default;\n\n$dropdown-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n\n$general-transition-time: 300ms !default;\n\n$slow-transition-time: 300ms !default;\n$dropdown-coordinates: 29px -50px !default;\n\n$fast-transition-time: 150ms !default;\n$select-coordinates: 50% -40px !default;\n\n$transition-linear: linear !default;\n$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;\n$transition-ease: ease 0s;\n\n$navbar-padding-a: 10px 15px;\n$navbar-margin-a: 15px 0px;\n\n$padding-social-a: 10px 5px;\n\n$navbar-margin-a-btn: 15px 3px;\n$navbar-margin-a-btn-round: 16px 3px;\n\n\n$navbar-padding-brand: 20px 15px;\n$navbar-margin-brand: 5px 0px;\n\n$navbar-margin-brand-icons: 12px auto;\n\n$navbar-margin-btn: 15px 3px;\n\n$height-icon:\t\t\t\t\t 64px !default;\n$width-icon:\t\t\t\t\t 64px !default;\n$padding-icon:\t\t\t\t\t 12px !default;\n$border-radius-icon:\t\t 15px !default;\n\n\n$white-navbar: rgba(#FFFFFF, .96);\n$blue-navbar: rgba(#34ACDC, .98);\n$azure-navbar: rgba(#5BCAFF, .98);\n$green-navbar: rgba(#4CD964, .98);\n$orange-navbar: rgba(#FF9500, .98);\n$red-navbar: rgba(#FF4C40, .98);\n\n$bg-nude: #ebeff2 !default;\n$bg-primary: #8ECFD5 !default;\n$bg-info: #7CE4FE !default;\n$bg-success: #8EF3C5 !default;\n$bg-warning: #FFE28C !default;\n$bg-danger: #FF4C40 !default;\n\n$topbar-x: topbar-x !default;\n$topbar-back: topbar-back !default;\n$bottombar-x: bottombar-x !default;\n$bottombar-back: bottombar-back !default;\n\n$transition-linear: linear !default;\n$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;\n$transition-ease: ease 0s;\n$transition-ease-in: ease-in !default;\n$transition-ease-out: ease-out !default;\n\n$general-transition-time: 300ms !default;\n\n$slow-transition-time: 370ms !default;\n$dropdown-coordinates: 29px -50px !default;\n\n$fast-transition-time: 150ms !default;\n\n$ultra-fast-transition-time: 100ms !default;\n\n$select-coordinates: 50% -40px !default;\n\n$padding-zero: 0px !default;\n\n$sidebar-width: calc(100% - 260px) !default;\n$medium-dark-gray: #AAAAAA !default;\n\n$light-gray: #E3E3E3 !default;\n$medium-gray: #DDDDDD !default;\n$dark-gray: #9A9A9A !default;\n\n$opacity-gray-3: rgba(222, 222, 222, .3) !default;\n$opacity-gray-5: rgba(222, 222, 222, .5) !default;\n\n$opacity-5: rgba(255, 255, 255, .5) !default;\n$opacity-8: rgba(255, 255, 255, .8) !default;\n\n//variables used in cards\n$card-black-color: #2c2c2c !default;\n$card-muted-color: #ccc5b9 !default;\n\n//variables used for sidebar\n$sidebar-background-dark-blue: #506367;\n\n$sidebar-background-blue: #b8d8d8 !default;\n$sidebar-font-blue: #506568 !default;\n$sidebar-subtitle-blue: #7a9e9f !default;\n\n$sidebar-background-green: #d5e5a3 !default;\n$sidebar-font-green: #60773d !default;\n$sidebar-subtitle-green: #92ac56 !default;\n\n$sidebar-background-yellow: #ffe28c !default;\n$sidebar-font-yellow: #b25825 !default;\n$sidebar-subtitle-yellow: #d88715 !default;\n\n$sidebar-background-brown: #d6c1ab !default;\n$sidebar-font-brown: #75442e !default;\n$sidebar-subtitle-brown: #a47e65 !default;\n\n$sidebar-background-purple: #baa9ba !default;\n$sidebar-font-purple: #3a283d !default;\n$sidebar-subtitle-purple: #5a283d !default;\n\n$sidebar-background-orange: #ff8f5e !default;\n$sidebar-font-orange: #772510 !default;\n$sidebar-subtitle-orange: #e95e37 !default;\n","/* General overwrite */\nbody{\n color: $font-color;\n font-size: $font-size-base;\n font-family: 'Muli', Arial, sans-serif;\n .wrapper{\n min-height: 100vh;\n position: relative;\n }\n}\na{\n color: $info-color;\n\n &:hover, &:focus{\n color: $info-states-color;\n text-decoration: none;\n }\n}\n\na:focus, a:active,\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner,\nselect::-moz-focus-inner,\ninput[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner{\n outline:0 !important;\n}\n.ui-slider-handle:focus,\n.navbar-toggle,\ninput:focus,\nbutton:focus {\n outline : 0 !important;\n -webkit-box-shadow: inset 0 -2px 0 #2196f3;\n box-shadow: inset 0 -2px 0 #2196f3;\n}\n\n/* Animations */\n.form-control,\n.input-group-addon,\n.tagsinput,\n.navbar,\n.navbar .alert{\n @include transition($general-transition-time, $transition-linear);\n}\n\n.sidebar .nav a,\n.table > tbody > tr .td-actions .btn{\n @include transition($fast-transition-time, $transition-ease-in);\n}\n\n.btn{\n @include transition($ultra-fast-transition-time, $transition-ease-in);\n}\n.fa{\n width: 21px;\n text-align: center;\n}\n.fa-base{\n font-size: 1.25em !important;\n}\n\n.margin-top{\n margin-top: 50px;\n}\nhr{\n border-color: $medium-pale-bg;\n}\n.wrapper{\n position: relative;\n top: 0;\n height: 100vh;\n}\n","// User select\n// For selecting text on the page\n\n@mixin box-shadow($shadow...) {\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n box-shadow: $shadow;\n}\n\n@mixin transition-input-focus-color() {\n -webkit-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\n -moz-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\n -o-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\n -ms-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\n transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;\n}\n\n@mixin transition($time, $type) {\n -webkit-transition: all $time $type;\n -moz-transition: all $time $type;\n -o-transition: all $time $type;\n -ms-transition: all $time $type;\n transition: all $time $type;\n}\n\n@mixin rotate-180() {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n@mixin transform-translate-x($value) {\n -webkit-transform: translate3d($value, 0, 0);\n -moz-transform: translate3d($value, 0, 0);\n -o-transform: translate3d($value, 0, 0);\n -ms-transform: translate3d($value, 0, 0);\n transform: translate3d($value, 0, 0);\n}\n\n@mixin transform-translate-y($value) {\n -webkit-transform: translate3d(0, $value, 0);\n -moz-transform: translate3d(0, $value, 0);\n -o-transform: translate3d(0, $value, 0);\n -ms-transform: translate3d(0, $value, 0);\n transform: translate3d(0, $value, 0);\n}\n\n@mixin bar-animation($type) {\n -webkit-animation: $type 500ms linear 0s;\n -moz-animation: $type 500ms linear 0s;\n animation: $type 500ms 0s;\n -webkit-animation-fill-mode: forwards;\n -moz-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n}\n\n@mixin topbar-x-rotation() {\n @keyframes topbar-x {\n 0% {\n top: 0px;\n transform: rotate(0deg);\n }\n 45% {\n top: 6px;\n transform: rotate(145deg);\n }\n 75% {\n transform: rotate(130deg);\n }\n 100% {\n transform: rotate(135deg);\n }\n }\n @-webkit-keyframes topbar-x {\n 0% {\n top: 0px;\n -webkit-transform: rotate(0deg);\n }\n 45% {\n top: 6px;\n -webkit-transform: rotate(145deg);\n }\n 75% {\n -webkit-transform: rotate(130deg);\n }\n 100% {\n -webkit-transform: rotate(135deg);\n }\n }\n @-moz-keyframes topbar-x {\n 0% {\n top: 0px;\n -moz-transform: rotate(0deg);\n }\n 45% {\n top: 6px;\n -moz-transform: rotate(145deg);\n }\n 75% {\n -moz-transform: rotate(130deg);\n }\n 100% {\n -moz-transform: rotate(135deg);\n }\n }\n}\n\n@mixin topbar-back-rotation() {\n @keyframes topbar-back {\n 0% {\n top: 6px;\n transform: rotate(135deg);\n }\n 45% {\n transform: rotate(-10deg);\n }\n 75% {\n transform: rotate(5deg);\n }\n 100% {\n top: 0px;\n transform: rotate(0);\n }\n }\n\n @-webkit-keyframes topbar-back {\n 0% {\n top: 6px;\n -webkit-transform: rotate(135deg);\n }\n 45% {\n -webkit-transform: rotate(-10deg);\n }\n 75% {\n -webkit-transform: rotate(5deg);\n }\n 100% {\n top: 0px;\n -webkit-transform: rotate(0);\n }\n }\n\n @-moz-keyframes topbar-back {\n 0% {\n top: 6px;\n -moz-transform: rotate(135deg);\n }\n 45% {\n -moz-transform: rotate(-10deg);\n }\n 75% {\n -moz-transform: rotate(5deg);\n }\n 100% {\n top: 0px;\n -moz-transform: rotate(0);\n }\n }\n}\n\n@mixin bottombar-x-rotation() {\n @keyframes bottombar-x {\n 0% {\n bottom: 0px;\n transform: rotate(0deg);\n }\n 45% {\n bottom: 6px;\n transform: rotate(-145deg);\n }\n 75% {\n transform: rotate(-130deg);\n }\n 100% {\n transform: rotate(-135deg);\n }\n }\n @-webkit-keyframes bottombar-x {\n 0% {\n bottom: 0px;\n -webkit-transform: rotate(0deg);\n }\n 45% {\n bottom: 6px;\n -webkit-transform: rotate(-145deg);\n }\n 75% {\n -webkit-transform: rotate(-130deg);\n }\n 100% {\n -webkit-transform: rotate(-135deg);\n }\n }\n @-moz-keyframes bottombar-x {\n 0% {\n bottom: 0px;\n -moz-transform: rotate(0deg);\n }\n 45% {\n bottom: 6px;\n -moz-transform: rotate(-145deg);\n }\n 75% {\n -moz-transform: rotate(-130deg);\n }\n 100% {\n -moz-transform: rotate(-135deg);\n }\n }\n}\n\n@mixin bottombar-back-rotation {\n @keyframes bottombar-back {\n 0% {\n bottom: 6px;\n transform: rotate(-135deg);\n }\n 45% {\n transform: rotate(10deg);\n }\n 75% {\n transform: rotate(-5deg);\n }\n 100% {\n bottom: 0px;\n transform: rotate(0);\n }\n }\n @-webkit-keyframes bottombar-back {\n 0% {\n bottom: 6px;\n -webkit-transform: rotate(-135deg);\n }\n 45% {\n -webkit-transform: rotate(10deg);\n }\n 75% {\n -webkit-transform: rotate(-5deg);\n }\n 100% {\n bottom: 0px;\n -webkit-transform: rotate(0);\n }\n }\n @-moz-keyframes bottombar-back {\n 0% {\n bottom: 6px;\n -moz-transform: rotate(-135deg);\n }\n 45% {\n -moz-transform: rotate(10deg);\n }\n 75% {\n -moz-transform: rotate(-5deg);\n }\n 100% {\n bottom: 0px;\n -moz-transform: rotate(0);\n }\n }\n\n}\n\n@mixin nc-rotate($degrees, $rotation) {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});\n -webkit-transform: rotate($degrees);\n -moz-transform: rotate($degrees);\n -ms-transform: rotate($degrees);\n -o-transform: rotate($degrees);\n transform: rotate($degrees);\n}\n\n@mixin nc-flip($horiz, $vert, $rotation) {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});\n -webkit-transform: scale($horiz, $vert);\n -moz-transform: scale($horiz, $vert);\n -ms-transform: scale($horiz, $vert);\n -o-transform: scale($horiz, $vert);\n transform: scale($horiz, $vert);\n}\n\n\n@mixin user-select($select) {\n -webkit-user-select: $select;\n -moz-user-select: $select;\n -ms-user-select: $select; // IE10+\n user-select: $select;\n}\n\n@mixin box-shadow($shadow...) {\n -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n -webkit-box-sizing: $boxmodel;\n -moz-box-sizing: $boxmodel;\n box-sizing: $boxmodel;\n}\n\n\n@mixin transition($time, $type){\n -webkit-transition: all $time $type;\n -moz-transition: all $time $type;\n -o-transition: all $time $type;\n -ms-transition: all $time $type;\n transition: all $time $type;\n}\n\n@mixin transition-none(){\n -webkit-transition: none;\n -moz-transition: none;\n -o-transition: none;\n -ms-transition: none;\n transition: none;\n}\n\n@mixin transform-scale($value){\n -webkit-transform: scale($value);\n -moz-transform: scale($value);\n -o-transform: scale($value);\n -ms-transform: scale($value);\n transform: scale($value);\n}\n\n@mixin transform-translate-x($value){\n -webkit-transform: translate3d($value, 0, 0);\n -moz-transform: translate3d($value, 0, 0);\n -o-transform: translate3d($value, 0, 0);\n -ms-transform: translate3d($value, 0, 0);\n transform: translate3d($value, 0, 0);\n}\n\n@mixin transform-origin($coordinates){\n -webkit-transform-origin: $coordinates;\n -moz-transform-origin: $coordinates;\n -o-transform-origin: $coordinates;\n -ms-transform-origin: $coordinates;\n transform-origin: $coordinates;\n}\n\n@mixin icon-gradient ($top-color, $bottom-color){\n background: $top-color;\n background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%);\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color));\n background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%);\n background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%);\n background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%);\n background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%);\n background-size: 150% 150%;\n}\n\n@mixin radial-gradient($extern-color, $center-color){\n background: $extern-color;\n background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */\n background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */\n background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */\n background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */\n background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */\n background-size: 550% 450%;\n}\n\n@mixin vertical-align {\n position: relative;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n@mixin rotate-180(){\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n@mixin bar-animation($type){\n -webkit-animation: $type 500ms linear 0s;\n -moz-animation: $type 500ms linear 0s;\n animation: $type 500ms 0s;\n -webkit-animation-fill-mode: forwards;\n -moz-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n}\n\n@mixin topbar-x-rotation(){\n @keyframes topbar-x {\n 0% {top: 0px; transform: rotate(0deg); }\n 45% {top: 6px; transform: rotate(145deg); }\n 75% {transform: rotate(130deg); }\n 100% {transform: rotate(135deg); }\n }\n @-webkit-keyframes topbar-x {\n 0% {top: 0px; -webkit-transform: rotate(0deg); }\n 45% {top: 6px; -webkit-transform: rotate(145deg); }\n 75% {-webkit-transform: rotate(130deg); }\n 100% { -webkit-transform: rotate(135deg); }\n }\n @-moz-keyframes topbar-x {\n 0% {top: 0px; -moz-transform: rotate(0deg); }\n 45% {top: 6px; -moz-transform: rotate(145deg); }\n 75% {-moz-transform: rotate(130deg); }\n 100% { -moz-transform: rotate(135deg); }\n }\n}\n\n@mixin topbar-back-rotation(){\n @keyframes topbar-back {\n 0% { top: 6px; transform: rotate(135deg); }\n 45% { transform: rotate(-10deg); }\n 75% { transform: rotate(5deg); }\n 100% { top: 0px; transform: rotate(0); }\n }\n\n @-webkit-keyframes topbar-back {\n 0% { top: 6px; -webkit-transform: rotate(135deg); }\n 45% { -webkit-transform: rotate(-10deg); }\n 75% { -webkit-transform: rotate(5deg); }\n 100% { top: 0px; -webkit-transform: rotate(0); }\n }\n\n @-moz-keyframes topbar-back {\n 0% { top: 6px; -moz-transform: rotate(135deg); }\n 45% { -moz-transform: rotate(-10deg); }\n 75% { -moz-transform: rotate(5deg); }\n 100% { top: 0px; -moz-transform: rotate(0); }\n }\n}\n\n@mixin bottombar-x-rotation(){\n @keyframes bottombar-x {\n 0% {bottom: 0px; transform: rotate(0deg);}\n 45% {bottom: 6px; transform: rotate(-145deg);}\n 75% {transform: rotate(-130deg);}\n 100% {transform: rotate(-135deg);}\n }\n @-webkit-keyframes bottombar-x {\n 0% {bottom: 0px; -webkit-transform: rotate(0deg);}\n 45% {bottom: 6px; -webkit-transform: rotate(-145deg);}\n 75% {-webkit-transform: rotate(-130deg);}\n 100% {-webkit-transform: rotate(-135deg);}\n }\n @-moz-keyframes bottombar-x {\n 0% {bottom: 0px; -moz-transform: rotate(0deg);}\n 45% {bottom: 6px; -moz-transform: rotate(-145deg);}\n 75% {-moz-transform: rotate(-130deg);}\n 100% {-moz-transform: rotate(-135deg);}\n }\n}\n\n@mixin bottombar-back-rotation{\n @keyframes bottombar-back {\n 0% { bottom: 6px;transform: rotate(-135deg);}\n 45% { transform: rotate(10deg);}\n 75% { transform: rotate(-5deg);}\n 100% { bottom: 0px;transform: rotate(0);}\n }\n @-webkit-keyframes bottombar-back {\n 0% {bottom: 6px;-webkit-transform: rotate(-135deg);}\n 45% {-webkit-transform: rotate(10deg);}\n 75% {-webkit-transform: rotate(-5deg);}\n 100% {bottom: 0px;-webkit-transform: rotate(0);}\n }\n @-moz-keyframes bottombar-back {\n 0% {bottom: 6px;-moz-transform: rotate(-135deg);}\n 45% {-moz-transform: rotate(10deg);}\n 75% {-moz-transform: rotate(-5deg);}\n 100% {bottom: 0px;-moz-transform: rotate(0);}\n }\n\n}\n\n\n",".sidebar{\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n background-size: cover;\n background-position: center center;\n color: $card-black-color;\n .sidebar-wrapper{\n position: relative;\n max-height: none;\n min-height: 100%;\n overflow: hidden;\n width: 260px;\n z-index: 4;\n box-shadow: inset -1px 0px 0px 0px $medium-gray;\n }\n .sidebar-background{\n position: absolute;\n z-index: 1;\n height: 100%;\n width: 100%;\n display: block;\n top: 0;\n left: 0;\n background-size: cover;\n background-position: center center;\n }\n\n}\n.sidebar,\n.off-canvas-sidebar{\n width: 260px;\n display: block;\n font-weight: 200;\n\n .logo{\n padding: 18px 0px;\n margin: 0 20px;\n\n p{\n float: left;\n font-size: 20px;\n margin: 10px 10px;\n line-height: 20px;\n }\n\n .simple-text{\n text-transform: uppercase;\n padding: $padding-small-vertical $padding-zero;\n display: block;\n font-size: $font-size-large;\n text-align: center;\n font-weight: $font-weight-normal;\n line-height: 30px;\n }\n }\n\n .nav{\n margin-top: 20px;\n\n li{\n > a{\n //margin: 10px 0px;\n padding-left: 25px;\n padding-right: 25px;\n\n opacity: .7;\n }\n\n &:hover > a{\n opacity: 1;\n }\n\n &.active > a{\n color: $primary-color;\n opacity: 1;\n\n &:before{\n border-right: 17px solid $medium-gray;\n border-top: 17px solid transparent;\n border-bottom: 17px solid transparent;\n content: \"\";\n display: inline-block;\n position: absolute;\n right: 0;\n top: 8px;\n }\n\n &:after{\n border-right: 17px solid $bg-nude;\n border-top: 17px solid transparent;\n border-bottom: 17px solid transparent;\n content: \"\";\n display: inline-block;\n position: absolute;\n right: -1px;\n top: 8px;\n }\n }\n\n h5 {\n -webkit-font-smoothing: antialiased;\n font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;\n padding-left: 30px;\n }\n\n > a.menu {\n padding: 0px;\n padding-top: 10px;\n }\n\n ul {\n margin-top: 0px;\n }\n }\n\n p{\n margin: 0;\n line-height: 30px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n }\n\n i{\n font-size: 24px;\n float: left;\n margin-right: 15px;\n line-height: 30px;\n width: 30px;\n text-align: center;\n }\n }\n\n &:after,\n &:before{\n display: block;\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 2;\n background: $white-background-color;\n }\n\n &,\n &[data-background-color=\"white\"]{\n @include sidebar-background-color($white-background-color, $default-color);\n }\n &[data-background-color=\"black\"]{\n @include sidebar-background-color($black-background-color, $white-color);\n }\n\n &[data-active-color=\"primary\"]{\n @include sidebar-active-color($default-color);\n }\n &[data-active-color=\"info\"]{\n @include sidebar-active-color($info-color);\n }\n &[data-active-color=\"success\"]{\n @include sidebar-active-color($success-color);\n }\n &[data-active-color=\"warning\"]{\n @include sidebar-active-color($warning-color);\n }\n &[data-active-color=\"danger\"]{\n @include sidebar-active-color($danger-color);\n }\n\n}\n\n.main-panel{\n background-color: $bg-nude;\n //background-color: $white-navbar;\n position: relative;\n z-index: 2;\n float: right;\n width: $sidebar-width;\n min-height: 100%;\n\n > .content{\n //padding: 30px 15px;\n padding: 0 2px;\n min-height: calc(100% - 123px);\n }\n\n > .footer{\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n }\n\n .navbar{\n margin-bottom: 0;\n }\n}\n\n.sidebar,\n.main-panel{\n overflow: auto;\n max-height: 100%;\n height: 100%;\n -webkit-transition-property: top,bottom;\n transition-property: top,bottom;\n -webkit-transition-duration: .2s,.2s;\n transition-duration: .2s,.2s;\n -webkit-transition-timing-function: linear,linear;\n transition-timing-function: linear,linear;\n -webkit-overflow-scrolling: touch;\n}\n","@mixin sidebar-background-color($background-color, $font-color){\n &:after,\n &:before{\n\t background-color: $background-color;\n\t}\n\n .logo{\n border-bottom: 1px solid rgba($font-color,.3);\n\n p{\n color: $font-color;\n }\n\n .simple-text{\n color: $font-color;\n }\n }\n\n .nav{\n li:not(.active){\n > a{\n color: $font-color;\n }\n }\n .divider{\n background-color: rgba($font-color,.2);\n }\n\n }\n\n}\n\n@mixin sidebar-active-color($font-color){\n .nav{\n li{\n &.active > a{\n color: $font-color;\n opacity: 1;\n }\n }\n }\n}\n","/* badges */\n.badge {\n border-radius: 8px;\n padding: 4px 8px;\n text-transform: uppercase;\n font-size: $font-size-mini;\n line-height: 12px;\n background-color: $transparent-bg;\n border: $border;\n margin-bottom: 5px;\n border-radius: $border-radius-extreme;\n}\n\n.badge-icon {\n padding: 0.4em 0.55em;\n i {\n font-size: 0.8em;\n }\n}\n\n.badge-default {\n @include badge-color($default-color);\n}\n\n.badge-primary {\n @include badge-color($primary-color);\n}\n\n.badge-info {\n @include badge-color($info-color);\n}\n\n.badge-success {\n @include badge-color($success-color);\n}\n\n.badge-warning {\n @include badge-color($warning-color);\n}\n\n.badge-danger {\n @include badge-color($danger-color);\n}\n\n.badge-neutral {\n @include badge-color($white-color);\n}\n","@mixin badge-color($color) {\n border-color: $color;\n color: $color;\n}\n",".btn,\n.navbar .navbar-nav > li > a.btn{\n //border-radius: $border-radius-btn-base;\n box-sizing: border-box;\n //border-width: $border-thick;\n background-color: $transparent-bg;\n font-size: $font-size-base;\n font-weight: $font-weight-semi;\n\n margin-top: 5px;\n padding: $padding-small-vertical $padding-base-horizontal;\n\n @include btn-styles($default-color, $default-states-color);\n @include transition($fast-transition-time, linear);\n\n &:hover,\n &:focus{\n outline: 0 !important;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n @include box-shadow(none);\n outline: 0 !important;\n }\n\n &.btn-icon{\n padding: $padding-base-vertical;\n }\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group{\n margin-left: -2px;\n}\n\n// Apply the mixin to the buttons\n//.btn-default { @include btn-styles($default-color, $default-states-color); }\n.navbar .navbar-nav > li > a.btn-primary, .btn-primary { @include btn-styles($primary-color, $primary-states-color); }\n.navbar .navbar-nav > li > a.btn-success, .btn-success { @include btn-styles($success-color, $success-states-color); }\n.navbar .navbar-nav > li > a.btn-info, .btn-info { @include btn-styles($info-color, $info-states-color); }\n.navbar .navbar-nav > li > a.btn-warning, .btn-warning { @include btn-styles($warning-color, $warning-states-color); }\n.navbar .navbar-nav > li > a.btn-danger, .btn-danger { @include btn-styles($danger-color, $danger-states-color); }\n.btn-neutral {\n @include btn-styles($white-color, $white-color);\n\n &:hover,\n &:focus{\n color: $default-color;\n }\n\n &:active,\n &.active,\n .open > &.dropdown-toggle{\n background-color: $white-color;\n color: $default-color;\n }\n\n &.btn-fill{\n color: $default-color;\n }\n &.btn-fill:hover,\n &.btn-fill:focus{\n color: $default-states-color;\n }\n\n &.btn-simple:active,\n &.btn-simple.active{\n background-color: transparent;\n }\n}\n\n.btn{\n &:disabled,\n &[disabled],\n &.disabled{\n @include opacity(.5);\n }\n}\n.btn-simple{\n border: $none;\n padding: $padding-base-vertical $padding-base-horizontal;\n\n &.btn-icon{\n padding: $padding-base-vertical;\n }\n}\n.btn-lg{\n @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-btn-large, $line-height-small);\n font-weight: $font-weight-normal;\n}\n.btn-sm{\n @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-btn-small, $line-height-small);\n}\n.btn-xs {\n @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-xs, $border-radius-btn-small, $line-height-small);\n}\n.btn-wd {\n min-width: 140px;\n}\n\n.btn-group.select{\n width: 100%;\n}\n.btn-group.select .btn{\n text-align: left;\n}\n.btn-group.select .caret{\n position: absolute;\n top: 50%;\n margin-top: -1px;\n right: 8px;\n}\n","// Mixin for generating new styles\n@mixin btn-styles($btn-color, $btn-states-color) {\n background-color: $btn-color;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n &:active:focus,\n &:active:hover,\n &.active:focus,\n &.active:hover,\n .open > &.dropdown-toggle,\n .open > &.dropdown-toggle:focus,\n .open > &.dropdown-toggle:hover {\n background-color: $btn-states-color;\n color: $white-color;\n }\n\n &.disabled,\n &:disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: $btn-color;\n border-color: $btn-color;\n }\n }\n\n &.focus,\n &:focus {\n box-shadow: none;\n }\n\n // btn-neutral style\n @if $btn-color == $white-color {\n color: $white-color;\n\n &.btn-danger {\n color: $danger-color;\n\n &:hover,\n &:focus,\n &:active {\n color: $danger-states-color;\n }\n }\n\n &.btn-info {\n color: $white-color;\n\n &:hover,\n &:focus,\n &:active {\n color: $info-states-color;\n }\n }\n\n &.btn-warning {\n color: $white-color;\n\n &:hover,\n &:focus,\n &:active {\n color: $warning-states-color;\n }\n }\n\n &.btn-success {\n color: $white-color;\n\n &:hover,\n &:focus,\n &:active {\n color: $success-states-color;\n }\n }\n\n &.btn-default {\n color: $white-color;\n\n &:hover,\n &:focus,\n &:active {\n color: $default-states-color;\n }\n }\n\n &.active,\n &:active:focus,\n &:active:hover,\n &.active:focus,\n &.active:hover,\n .open > &.dropdown-toggle,\n .open > &.dropdown-toggle:focus,\n .open > &.dropdown-toggle:hover {\n background-color: $white-color;\n color: $primary-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-states-color;\n }\n\n } @else {\n color: $white-color;\n }\n\n &.btn-simple {\n color: $btn-color;\n border-color: $btn-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: $transparent-bg;\n color: $btn-states-color;\n border-color: $btn-states-color;\n }\n }\n\n &.btn-link {\n color: $btn-color;\n\n &:hover,\n &:focus,\n &:active {\n background-color: $transparent-bg;\n color: $btn-states-color;\n text-decoration: none;\n }\n }\n}\n\n\n@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border, $line-height){\n font-size: $font-size;\n //border-radius: $border;\n padding: $padding-vertical $padding-horizontal;\n\n &.btn-simple{\n padding: $padding-vertical + 2 $padding-horizontal;\n }\n\n}\n","// Opacity\n\n@mixin opacity($opacity) {\n opacity: $opacity;\n // IE8 filter\n $opacity-ie: ($opacity * 100);\n filter: #{alpha(opacity=$opacity-ie)};\n}\n\n@mixin black-filter($opacity){\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(17,17,17,$opacity);\n display: block;\n content: \"\";\n z-index: 1; \n}","@mixin input-size($padding-vertical, $padding-horizontal) {\n padding: $padding-vertical $padding-horizontal;\n}\n\n@mixin form-control-placeholder($color, $opacity) {\n .form-control::-moz-placeholder {\n color: $color;\n @include opacity(1);\n }\n .form-control:-moz-placeholder {\n color: $color;\n @include opacity(1);\n }\n .form-control::-webkit-input-placeholder {\n color: $color;\n @include opacity(1);\n }\n .form-control:-ms-input-placeholder {\n color: $color;\n @include opacity(1);\n }\n}\n\n@mixin light-form() {\n border-radius: 0;\n border: 0;\n padding: 0;\n background-color: transparent;\n}\n\n@mixin input-sm-padding($padding-vertical, $padding-horizontal) {\n .form-group.form-group-no-border.input-sm,\n .input-group.form-group-no-border.input-sm {\n .input-group-addon {\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\n }\n\n .form-control {\n padding: $padding-vertical $padding-horizontal;\n\n & + .input-group-addon {\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\n }\n }\n }\n\n .form-group.input-sm,\n .input-group.input-sm {\n .form-control {\n padding: $padding-vertical - 1 $padding-horizontal - 1;\n\n & + .input-group-addon {\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\n }\n }\n\n .input-group-addon {\n padding: $padding-vertical - 1 0 $padding-vertical $padding-horizontal - 1;\n\n & + .form-control {\n padding: $padding-vertical $padding-horizontal - 1 $padding-vertical $padding-horizontal - 3;\n }\n }\n }\n}\n\n@mixin input-lg-padding($padding-vertical, $padding-horizontal) {\n .form-group.form-group-no-border.input-lg,\n .input-group.form-group-no-border.input-lg {\n .input-group-addon {\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\n }\n\n .form-control {\n padding: $padding-vertical $padding-horizontal;\n\n & + .input-group-addon {\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\n }\n }\n }\n\n .form-group.input-lg,\n .input-group.input-lg {\n .form-control {\n padding: $padding-vertical - 1 $padding-horizontal - 1;\n\n & + .input-group-addon {\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\n }\n }\n\n .input-group-addon {\n padding: $padding-vertical - 1 0 $padding-vertical $padding-horizontal - 1;\n\n & + .form-control {\n padding: $padding-vertical $padding-horizontal - 1 $padding-vertical $padding-horizontal - 3;\n }\n }\n }\n}\n\n@mixin input-base-padding($padding-vertical, $padding-horizontal) {\n .form-group.form-group-no-border,\n .input-group.form-group-no-border {\n .form-control {\n /*margin-top: 2px;*/\n padding: $padding-vertical $padding-horizontal;\n\n & + .input-group-addon {\n padding: $padding-vertical $padding-horizontal $padding-vertical 0;\n }\n }\n\n .input-group-addon {\n padding: $padding-vertical 0 $padding-vertical $padding-horizontal;\n }\n }\n\n .form-group,\n .input-group {\n .form-control {\n margin-top: 2px;\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 $padding-horizontal - 1;\n\n & + .input-group-addon {\n padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;\n }\n }\n\n .input-group-addon {\n padding: $padding-vertical - 1 0 $padding-vertical - 1 $padding-horizontal - 1;\n\n & + .form-control,\n & ~ .form-control {\n padding: $padding-vertical - 1 $padding-horizontal $padding-vertical $padding-horizontal - 3;\n }\n }\n }\n}\n\n//color1 = $opacity-5\n//color2 = $opacity-8\n//color3 = $white-color\n//color4 = $transparent-bg\n//color5 = $opacity-1\n//color6 = $opacity-2\n\n@mixin input-coloured-bg($color1, $color2, $color3, $color4, $color5, $color6) {\n @include form-control-placeholder(darken($color2, 8%), 1);\n\n .form-control {\n border-color: $color1;\n color: $color2;\n\n &:focus {\n border-color: $color3;\n background-color: $color4;\n color: $color3;\n }\n }\n\n .has-success,\n .has-danger {\n &:after {\n color: $color3;\n }\n }\n\n .has-danger {\n .form-control {\n background-color: $color4;\n }\n }\n\n .input-group-addon {\n background-color: $color4;\n border-color: $color1;\n color: $color2;\n }\n\n .input-group-focus {\n .input-group-addon {\n background-color: $color4;\n border-color: $color3;\n color: $color3;\n }\n }\n\n .form-group.form-group-no-border,\n .input-group.form-group-no-border {\n .form-control {\n background-color: $color5;\n color: $color2;\n\n &:focus,\n &:active,\n &:active {\n background-color: $color6;\n color: $color3;\n }\n }\n\n .form-control + .input-group-addon {\n background-color: $color5;\n\n &:focus,\n &:active,\n &:active {\n background-color: $color6;\n color: $color3;\n }\n }\n\n .form-control {\n &:focus {\n & + .input-group-addon {\n background-color: $color6;\n color: $color3;\n }\n }\n }\n\n .input-group-addon {\n background-color: $color5;\n border: none;\n color: $color2;\n }\n\n &.input-group-focus {\n .input-group-addon {\n background-color: $color6;\n color: $color3;\n }\n }\n }\n}\n","@include form-control-placeholder($medium-gray, 1);\n\n.form-control {\n font-family: \"Avenir-light\", \"AvenirLTStd-Light\", sans-serif !important;\n border-radius: 0;\n background-color: $transparent-bg;\n border: 1px solid $medium-dark-gray;\n color: $black-color;\n line-height: 1em;\n font-size: $font-size-base;\n font-weight: 400;\n @include transition-input-focus-color();\n @include box-shadow(none);\n\n .has-success & {\n border-color: $light-gray;\n }\n\n &:focus {\n border: 1px solid $brand-primary;\n @include box-shadow(none);\n outline: 0 !important;\n color: $black-color;\n\n & + .input-group-addon,\n & ~ .input-group-addon {\n border: 1px solid $brand-primary;\n background-color: $transparent-bg;\n }\n }\n\n .has-success &,\n .has-error &,\n .has-success &:focus,\n .has-error &:focus {\n @include box-shadow(none);\n }\n\n .has-danger &,\n .has-success & {\n &.form-control-success,\n &.form-control-danger {\n background-image: none;\n }\n }\n\n .has-danger & {\n background-color: lighten($danger-color, 30%);\n border-color: lighten($danger-color, 30%);\n color: $danger-color;\n\n &:focus {\n background-color: $opacity-gray-3;\n }\n }\n\n & + .form-control-feedback {\n border-radius: $border-radius-extra-small;\n font-size: $font-size-base;\n margin-top: -7px;\n position: absolute;\n right: 10px;\n top: 50%;\n vertical-align: middle;\n }\n\n .open & {\n border-radius: $border-radius-extra-small $border-radius-extra-small 0 0;\n border-bottom-color: transparent;\n }\n\n & + .input-group-addon {\n background-color: $white-bg;\n }\n}\n\n.has-success,\n.has-danger {\n &:after {\n font-family: 'Nucleo Outline';\n content: \"\\ea22\";\n display: inline-block;\n position: absolute;\n right: 35px;\n top: 12px;\n color: $success-color;\n font-size: 11px;\n }\n\n &.input-lg {\n &:after {\n font-size: 13px;\n top: 13px;\n }\n }\n}\n\n.has-danger {\n &:after {\n content: \"\\ea53\";\n color: $danger-color;\n }\n}\n\n@include input-sm-padding($padding-small-vertical, $padding-small-horizontal);\n@include input-lg-padding($padding-large-vertical, $padding-input-horizontal);\n@include input-base-padding($padding-small-vertical, $padding-small-horizontal);\n\n.form-group.form-group-no-border,\n.input-group.form-group-no-border {\n .form-control,\n .form-control + .input-group-addon {\n background-color: $opacity-gray-3;\n border: medium none;\n &:focus,\n &:active,\n &:active {\n border: medium none;\n background-color: $opacity-gray-5;\n }\n }\n\n .form-control {\n &:focus {\n & + .input-group-addon {\n background-color: $opacity-gray-5;\n }\n }\n }\n\n .input-group-addon {\n background-color: $opacity-gray-3;\n border: none;\n }\n}\n\n.has-error {\n .form-control-feedback, .control-label {\n color: $danger-color;\n }\n}\n\n.has-success {\n .form-control-feedback, .control-label {\n color: $success-color;\n }\n}\n\n.input-group-addon {\n background-color: $white-bg;\n border: 1px solid $light-gray;\n border-radius: $border-radius-extra-small;\n color: $dark-background;\n padding: $padding-base-vertical - 1 0 $padding-base-vertical - 1 $padding-base-horizontal - 1;\n\n @include transition-input-focus-color();\n\n .has-success &,\n .has-danger & {\n background-color: $white-color;\n }\n .has-danger .form-control:focus + & {\n color: $danger-color;\n }\n .has-success .form-control:focus + & {\n color: $success-color;\n }\n\n & + .form-control,\n & ~ .form-control {\n @include input-size($padding-base-vertical - 1, $padding-base-horizontal);\n padding-left: 18px;\n }\n}\n\n.input-group-focus {\n .input-group-addon {\n background-color: $white-bg;\n border-color: $primary-color;\n }\n\n &.form-group-no-border {\n .input-group-addon {\n background-color: $opacity-gray-5;\n }\n }\n}\n\n.input-group,\n.form-group {\n margin-bottom: 10px;\n}\n\n.input-group[disabled] {\n .input-group-addon {\n background-color: $light-gray;\n }\n}\n\n/*.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\n border-right: 0 none;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child) {\n border-left: 0 none;\n}*/\n.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {\n background-color: $light-gray;\n color: $default-color;\n cursor: not-allowed;\n}\n\n.input-group-btn .btn {\n border-width: $border-thin;\n padding: $padding-btn-vertical $padding-base-horizontal;\n}\n\n.input-group-btn .btn-default:not(.btn-fill) {\n border-color: $medium-gray;\n}\n\n.input-group-btn:last-child > .btn {\n margin-left: 0;\n}\n\ntextarea.form-control {\n max-width: 100%;\n padding: 10px 10px;\n resize: none;\n background-color: $transparent-bg;\n border: 1px solid $medium-dark-gray;\n color: $black-color;\n line-height: 1em;\n font-size: $font-size-base;\n font-weight: 400;\n border-radius: 0;\n\n &:focus,\n &:active {\n @include box-shadow(none);\n border: 1px solid $brand-primary;\n background-color: $transparent-bg;\n }\n}\n\n.has-success,\n.has-danger {\n\n &.form-group .form-control,\n &.form-group.form-group-no-border .form-control {\n padding-right: $padding-input-horizontal + 21;\n }\n}\n",".alert{\n border: 0;\n border-radius: 0;\n color: #FFFFFF;\n padding: 10px 15px;\n font-size: 14px;\n\n .container &{\n border-radius: 4px;\n\n }\n .navbar &{\n border-radius: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 85px;\n width: 100%;\n z-index: 3;\n }\n .navbar:not(.navbar-transparent) &{\n top: 70px;\n }\n\n span[data-notify=\"icon\"]{\n font-size: 30px;\n display: block;\n left: 15px;\n position: absolute;\n top: 50%;\n margin-top: -20px;\n }\n\n .close ~ span{\n display: block;\n max-width: 89%;\n }\n\n &[data-notify=\"container\"]{\n padding: 10px 10px 10px 20px;\n border-radius: $border-radius-base;\n }\n\n &.alert-with-icon{\n padding-left: 65px;\n }\n}\n.alert-info{\n background-color: $bg-info;\n color: $info-states-color;\n}\n.alert-success {\n background-color: $bg-success;\n color: $success-states-color;\n}\n.alert-warning {\n background-color: $bg-warning;\n color: $warning-states-color;\n}\n.alert-danger {\n background-color: $danger-color;\n color: #FFF;\n}\n\n",".table{\n thead,\n tbody,\n tfoot{\n tr > th,\n tr > td{\n border-top: 1px solid $table-line-color;\n }\n }\n > thead > tr > th{\n border-bottom-width: 0;\n font-size: $font-size-h5;\n font-weight: $font-weight-light;\n }\n\n .radio,\n .checkbox{\n margin-top: 0;\n margin-bottom: 22px;\n padding: 0;\n width: 15px;\n }\n > thead > tr > th,\n > tbody > tr > th,\n > tfoot > tr > th,\n > thead > tr > td,\n > tbody > tr > td,\n > tfoot > tr > td{\n padding: 12px;\n vertical-align: middle;\n }\n\n .th-description{\n max-width: 150px;\n }\n .td-price{\n font-size: 26px;\n font-weight: $font-weight-light;\n margin-top: 5px;\n text-align: right;\n }\n .td-total{\n font-weight: $font-weight-bold;\n font-size: $font-size-h5;\n padding-top: 20px;\n text-align: right;\n }\n\n .td-actions .btn{\n\n &.btn-sm,\n &.btn-xs{\n padding-left: 3px;\n padding-right: 3px;\n }\n }\n\n > tbody > tr{\n position: relative;\n }\n}\n.table-striped{\n tbody > tr:nth-of-type(2n+1) {\n background-color: #fff;\n }\n tbody > tr:nth-of-type(2n) {\n background-color: $pale-bg;\n }\n > thead > tr > th,\n > tbody > tr > th,\n > tfoot > tr > th,\n > thead > tr > td,\n > tbody > tr > td,\n > tfoot > tr > td{\n padding: 15px 8px;\n }\n}","/* Checkbox and radio */\n.checkbox,\n.radio {\n margin-bottom: 12px;\n padding-left: 30px;\n position: relative;\n -webkit-transition: color,opacity 0.25s linear;\n transition: color,opacity 0.25s linear;\n font-size: $font-size-base;\n font-weight: normal;\n line-height: 1.5;\n color: $font-color;\n cursor: pointer;\n\n .icons {\n color: $font-color;\n display: block;\n height: 20px;\n left: 0;\n position: absolute;\n top: 0;\n width: 20px;\n text-align: center;\n line-height: 21px;\n font-size: 20px;\n cursor: pointer;\n -webkit-transition: color,opacity 0.15s linear;\n transition: color,opacity 0.15s linear;\n\n opacity: .50;\n }\n\n\n &.checked{\n .icons{\n opacity: 1;\n }\n }\n\n input{\n outline: none !important;\n display: none;\n }\n}\n\n.checkbox,\n.radio{\n label{\n padding-left: 10px;\n }\n}\n\n.checkbox .icons .first-icon,\n.radio .icons .first-icon,\n.checkbox .icons .second-icon,\n.radio .icons .second-icon {\n display: inline-table;\n position: absolute;\n left: 0;\n top: 0;\n background-color: transparent;\n margin: 0;\n @include opacity(1);\n}\n.checkbox .icons .second-icon,\n.radio .icons .second-icon {\n @include opacity(0);\n}\n.checkbox:hover,\n.radio:hover {\n -webkit-transition: color 0.2s linear;\n transition: color 0.2s linear;\n}\n.checkbox:hover .first-icon,\n.radio:hover .first-icon {\n @include opacity(0);\n}\n.checkbox:hover .second-icon,\n.radio:hover .second-icon {\n @include opacity (1);\n}\n.checkbox.checked,\n.radio.checked {\n// color: $info-color;\n}\n.checkbox.checked .first-icon,\n.radio.checked .first-icon {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.checkbox.checked .second-icon,\n.radio.checked .second-icon {\n opacity: 1;\n filter: alpha(opacity=100);\n// color: $info-color;\n -webkit-transition: color 0.2s linear;\n transition: color 0.2s linear;\n}\n.checkbox.disabled,\n.radio.disabled {\n cursor: default;\n color: $medium-gray;\n}\n.checkbox.disabled .icons,\n.radio.disabled .icons {\n color: $medium-gray;\n}\n.checkbox.disabled .first-icon,\n.radio.disabled .first-icon {\n opacity: 1;\n filter: alpha(opacity=100);\n}\n.checkbox.disabled .second-icon,\n.radio.disabled .second-icon {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.checkbox.disabled.checked .icons,\n.radio.disabled.checked .icons {\n color: $medium-gray;\n}\n.checkbox.disabled.checked .first-icon,\n.radio.disabled.checked .first-icon {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.checkbox.disabled.checked .second-icon,\n.radio.disabled.checked .second-icon {\n opacity: 1;\n color: $medium-gray;\n filter: alpha(opacity=100);\n}\n",".nav {\n > li{\n > a:hover,\n > a:focus{\n background-color: transparent;\n }\n }\n}\n.navbar{\n border: $none;\n border-radius: 0;\n font-size: $font-size-navbar;\n z-index: 3;\n\n .navbar-brand{\n color: $white-color;\n font-weight: $font-weight-light;;\n margin: $navbar-margin-brand;\n padding: $navbar-padding-brand;\n font-size: $font-size-large-navbar;\n }\n .navbar-nav{\n > li > a {\n line-height: 1.42857;\n margin: $navbar-margin-a;\n padding: $navbar-padding-a;\n\n i,\n p{\n display: inline-block;\n margin: 0;\n }\n i{\n position: relative;\n margin-right: 5px;\n top: 1px;\n }\n }\n > li > a.btn{\n margin: $navbar-margin-a-btn;\n padding: $padding-base-vertical $padding-base-horizontal;\n }\n }\n .btn{\n margin: $navbar-margin-btn;\n font-size: $font-size-base;\n }\n .btn-simple{\n font-size: $font-size-medium;\n }\n}\n\n.navbar-nav > li > .dropdown-menu{\n border-radius: $border-radius-extreme;\n margin-top: -5px;\n}\n\n.navbar-default {\n color: $white-color;\n background-color: $phpvms-blue;\n border-bottom: 1px solid $medium-gray;\n\n .brand{\n color: $white-color !important;\n }\n .navbar-nav{\n > li > a:not(.btn){\n color: $white-color;\n }\n\n > .active > a,\n > .active > a:not(.btn):hover,\n > .active > a:not(.btn):focus,\n > li > a:not(.btn):hover,\n > li > a:not(.btn):focus {\n background-color: transparent;\n border-radius: 3px;\n //color: $info-color;\n @include opacity(1);\n }\n\n > .dropdown > a:hover .caret,\n > .dropdown > a:focus .caret {\n border-bottom-color: $info-color;\n border-top-color: $info-color;\n\n }\n\n > .open > a,\n > .open > a:hover,\n > .open > a:focus{\n background-color: transparent;\n color: $info-color;\n }\n\n .navbar-toggle:hover,.navbar-toggle:focus {\n background-color: transparent;\n }\n\n }\n\n &:not(.navbar-transparent) .btn-default:hover{\n color: $info-color;\n border-color: $info-color;\n }\n &:not(.navbar-transparent) .btn-neutral,\n &:not(.navbar-transparent) .btn-neutral:hover,\n &:not(.navbar-transparent) .btn-neutral:active{\n color: $dark-gray;\n }\n}\n\n.navbar-form{\n @include box-shadow(none);\n .form-control{\n @include light-form();\n height: 22px;\n font-size: $font-size-navbar;\n line-height: $line-height-general;\n color: $light-gray;\n }\n .navbar-transparent & .form-control,\n [class*=\"navbar-ct\"] & .form-control{\n color: $white-color;\n border: $none;\n border-bottom: 1px solid rgba($white-color,.6);\n }\n\n}\n\n.navbar-ct-primary{\n @include navbar-color($bg-primary);\n}\n.navbar-ct-info{\n @include navbar-color($bg-info);\n}\n.navbar-ct-success{\n @include navbar-color($bg-success);\n}\n.navbar-ct-warning{\n @include navbar-color($bg-warning);\n}\n.navbar-ct-danger{\n @include navbar-color($bg-danger);\n}\n\n.navbar-transparent{\n padding-top: 15px;\n background-color: transparent;\n border-bottom: 1px solid transparent;\n}\n\n.navbar-toggle{\n margin-top: 19px;\n margin-bottom: 19px;\n border: $none;\n\n .icon-bar {\n background-color: $white-color;\n }\n .navbar-collapse,\n .navbar-form {\n border-color: transparent;\n }\n\n &.navbar-default .navbar-toggle:hover,\n &.navbar-default .navbar-toggle:focus {\n background-color: transparent;\n }\n}\n\n.navbar-transparent, [class*=\"navbar-ct\"]{\n\n .navbar-brand{\n\n @include opacity(.9);\n\n &:focus,\n\n &:hover{\n\n background-color: transparent;\n\n @include opacity(1);\n\n }\n\n }\n\n .navbar-brand:not([class*=\"text\"]){\n\n color: $white-color;\n\n }\n\n .navbar-nav{\n\n > li > a:not(.btn){\n\n color: $white-color;\n\n border-color: $white-color;\n\n @include opacity(0.8);\n\n }\n\n > .active > a:not(.btn),\n\n > .active > a:hover:not(.btn),\n\n > .active > a:focus:not(.btn),\n\n > li > a:hover:not(.btn),\n\n > li > a:focus:not(.btn){\n\n background-color: transparent;\n\n border-radius: 3px;\n\n color: $white-color;\n\n @include opacity(1);\n\n }\n\n .nav > li > a.btn:hover{\n\n background-color: transparent;\n\n }\n\n > .dropdown > a .caret,\n\n > .dropdown > a:hover .caret,\n\n > .dropdown > a:focus .caret{\n\n border-bottom-color: $white-color;\n\n border-top-color: $white-color;\n\n }\n\n > .open > a,\n\n > .open > a:hover,\n\n > .open > a:focus {\n\n background-color: transparent;\n\n color: $white-color;\n\n @include opacity(1);\n\n }\n\n }\n\n .btn-default{\n\n color: $white-color;\n\n border-color: $white-color;\n\n }\n\n .btn-default.btn-fill{\n\n color: $dark-gray;\n\n background-color: $white-color;\n\n @include opacity(.9);\n\n }\n\n .btn-default.btn-fill:hover,\n\n .btn-default.btn-fill:focus,\n\n .btn-default.btn-fill:active,\n\n .btn-default.btn-fill.active,\n\n .open .dropdown-toggle.btn-fill.btn-default{\n\n border-color: $white-color;\n\n @include opacity(1);\n\n }\n\n}\n","@mixin navbar-color($color){\n background-color: $color;\n}\n\n@mixin center-item(){\n left: 0;\n right: 0;\n margin-right: auto;\n margin-left: auto;\n position: absolute;\n}",".footer{\n background-attachment: fixed;\n position: relative;\n line-height: 20px;\n nav {\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n font-weight: normal;\n li{\n display: inline-block;\n padding: 10px 15px;\n margin: 15px 3px;\n line-height: 20px;\n text-align: center;\n }\n a:not(.btn){\n color: $font-color;\n display: block;\n margin-bottom: 3px;\n\n &:focus,\n &:hover{\n color: $default-states-color;\n }\n }\n }\n }\n .copyright{\n color: $font-color;\n padding: 10px 15px;\n font-size: 14px;\n white-space: nowrap;\n margin: 15px 3px;\n line-height: 20px;\n text-align: center;\n }\n .heart{\n color: $danger-color;\n }\n}\n",".dropdown-menu{\n background-color: $pale-bg;\n border: 0 none;\n border-radius: $border-radius-extreme;\n display: block;\n margin-top: 10px;\n padding: 0px;\n position: absolute;\n visibility: hidden;\n z-index: 9000; \n \n @include opacity(0); \n @include box-shadow($dropdown-shadow);\n \n// the style for opening dropdowns on mobile devices; for the desktop version check the _responsive.scss file \n .open &{\n @include opacity(1);\n visibility: visible;\n } \n \n .divider{\n background-color: $medium-pale-bg;\n margin: 0px;\n }\n \n .dropdown-header{\n color: $dark-gray;\n font-size: $font-size-small;\n padding: $padding-dropdown-vertical $padding-dropdown-horizontal;\n }\n \n// the style for the dropdown menu that appears under select, it is different from the default one\n .select &{\n border-radius: $border-radius-bottom; \n @include box-shadow(none);\n @include transform-origin($select-coordinates);\n @include transform-scale(1);\n @include transition($fast-transition-time, $transition-linear);\n margin-top: -20px;\n }\n .select.open &{\n margin-top: -1px;\n }\n \n > li > a {\n color: $font-color;\n font-size: $font-size-base;\n padding: $padding-dropdown-vertical $padding-dropdown-horizontal;\n @include transition-none();\n \n img{\n margin-top: -3px;\n }\n }\n > li > a:focus{\n outline: 0 !important;\n }\n\n .btn-group.select &{\n min-width: 100%;\n }\n \n > li:first-child > a{\n border-top-left-radius: $border-radius-extreme;\n border-top-right-radius: $border-radius-extreme;\n }\n \n > li:last-child > a{\n border-bottom-left-radius: $border-radius-extreme;\n border-bottom-right-radius: $border-radius-extreme;\n }\n \n .select & > li:first-child > a{\n border-radius: 0;\n border-bottom: 0 none;\n }\n \n > li > a:hover,\n > li > a:focus {\n background-color: $default-color;\n color: $fill-font-color;\n opacity: 1;\n text-decoration: none;\n }\n \n &.dropdown-primary > li > a:hover,\n &.dropdown-primary > li > a:focus{\n background-color: $primary-color;\n }\n &.dropdown-info > li > a:hover,\n &.dropdown-info > li > a:focus{\n background-color: $info-color;\n }\n &.dropdown-success > li > a:hover,\n &.dropdown-success > li > a:focus{\n background-color: $success-color;\n }\n &.dropdown-warning > li > a:hover,\n &.dropdown-warning > li > a:focus{\n background-color: $warning-color;\n }\n &.dropdown-danger > li > a:hover,\n &.dropdown-danger > li > a:focus{\n background-color: $danger-color;\n }\n\n}\n\n//fix bug for the select items in btn-group \n.btn-group.select{\n overflow: hidden;\n}\n.btn-group.select.open{\n overflow: visible;\n}\n",".card {\n border: 0;\n border-radius: $border-radius-extra-small;\n box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);\n background-color: #FFFFFF;\n color: $card-black-color;\n margin-bottom: 20px;\n position: relative;\n z-index: 1;\n\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n flex-direction: column;\n background-color: #fff;\n\n .card-block {\n flex: 1 1 auto;\n padding: 1.25rem;\n }\n\n a {\n color: #f96332;\n }\n\n .image{\n width: 100%;\n overflow: hidden;\n height: 260px;\n border-radius: $border-radius-extreme $border-radius-extreme 0 0;\n position: relative;\n -webkit-transform-style: preserve-3d;\n -moz-transform-style: preserve-3d;\n transform-style: preserve-3d;\n\n img {\n width: 100%;\n }\n }\n .content{\n padding: 15px 15px 10px 15px;\n }\n .header{\n padding: 0px 0px 10px 0;\n }\n .description{\n font-size: $font-paragraph;\n color: $font-color;\n }\n\n h5 {\n font-size: 1.57em;\n line-height: 1.4em;\n margin-bottom: 15px;\n }\n\n h6{\n font-size: $font-size-small;\n margin: 0;\n }\n .category,\n label{\n font-size: $font-size-base;\n font-weight: $font-weight-normal;\n //color: $dark-gray;\n text-transform: capitalize;\n margin-bottom: 0px;\n i{\n font-size: $font-paragraph;\n }\n }\n\n label{\n font-size: 15px;\n margin-bottom: 5px;\n text-transform: capitalize;\n display: inline-block;\n vertical-align: middle;\n }\n\n .title{\n margin: $none;\n color: $card-black-color;\n font-weight: $font-weight-light;\n }\n .avatar{\n width: 50px;\n height: 50px;\n overflow: hidden;\n border-radius: 50%;\n margin-right: 5px;\n }\n .footer{\n padding: 0;\n line-height: 30px;\n\n .legend{\n padding: 5px 0;\n }\n\n hr{\n margin-top: 5px;\n margin-bottom: 5px;\n }\n }\n .stats{\n color: #a9a9a9;\n font-weight: 300;\n i{\n margin-right: 2px;\n min-width: 15px;\n display: inline-block;\n }\n }\n .footer div{\n display: inline-block;\n }\n\n .author{\n font-size: $font-size-small;\n font-weight: $font-weight-bold;\n text-transform: uppercase;\n }\n .author i{\n font-size: $font-size-base;\n }\n\n &.card-separator:after{\n height: 100%;\n right: -15px;\n top: 0;\n width: 1px;\n background-color: $medium-gray;\n content: \"\";\n position: absolute;\n }\n\n .ct-chart{\n margin: 30px 0 30px;\n height: 245px;\n }\n\n .table{\n tbody td:first-child,\n thead th:first-child{\n padding-left: 15px;\n }\n\n tbody td:last-child,\n thead th:last-child{\n padding-right: 15px;\n }\n }\n\n .alert{\n border-radius: $border-radius-base;\n position: relative;\n\n &.alert-with-icon{\n padding-left: 65px;\n }\n }\n .icon-big{\n font-size: 3em;\n min-height: 64px;\n }\n .numbers{\n font-size: 2em;\n text-align: right;\n p{\n margin: 0;\n }\n }\n ul.team-members{\n li{\n padding: 10px 0px;\n &:not(:last-child){\n border-bottom: 1px solid $medium-pale-bg;\n }\n }\n }\n\n .btn-primary {\n @include btn-styles($primary-color, $primary-states-color);\n }\n\n .btn-success {\n @include btn-styles($success-color, $success-states-color);\n }\n\n .btn-info {\n @include btn-styles($info-color, $info-states-color);\n }\n\n .btn-warning {\n @include btn-styles($warning-color, $warning-states-color);\n }\n\n .btn-danger {\n @include btn-styles($danger-color, $danger-states-color);\n }\n\n .btn-neutral {\n @include btn-styles($white-color, $white-color);\n }\n}\n.card-user{\n .image{\n border-radius: 8px 8px 0 0;\n height: 150px;\n position: relative;\n overflow: hidden;\n\n img{\n width: 100%;\n }\n }\n .image-plain{\n height: 0;\n margin-top: 110px;\n }\n .author{\n text-align: center;\n text-transform: none;\n margin-top: -65px;\n .title{\n color: $default-states-color;\n small{\n color: $card-muted-color;\n }\n }\n }\n .avatar{\n width: 100px;\n height: 100px;\n border-radius: 50%;\n position: relative;\n margin-bottom: 15px;\n\n &.border-white{\n border: 5px solid $white-color;\n }\n &.border-gray{\n border: 5px solid $card-muted-color;\n }\n }\n .title{\n font-weight: 600;\n line-height: 24px;\n }\n .description{\n margin-top: 10px;\n }\n .content{\n min-height: 200px;\n }\n\n &.card-plain{\n .avatar{\n height: 190px;\n width: 190px;\n }\n }\n}\n\n.card-map{\n .map{\n height: 500px;\n padding-top: 20px;\n\n > div{\n height: 100%;\n }\n }\n}\n.card-user,\n.card-price{\n .footer{\n padding: 5px 15px 10px;\n }\n hr{\n margin: 5px 15px;\n }\n}\n.card-plain{\n background-color: transparent;\n box-shadow: none;\n border-radius: 0;\n\n .image{\n border-radius: 4px;\n }\n}\n","@mixin ct-responsive-svg-container($width: 100%, $ratio: $ct-container-ratio) {\n display: block;\n position: relative;\n width: $width;\n\n &:before {\n display: block;\n float: left;\n content: \"\";\n width: 0;\n height: 0;\n padding-bottom: $ratio * 100%;\n }\n\n &:after {\n content: \"\";\n display: table;\n clear: both;\n }\n\n > svg {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n }\n}\n\n@mixin ct-align-justify($ct-text-align: $ct-text-align, $ct-text-justify: $ct-text-justify) {\n -webkit-box-align: $ct-text-align;\n -webkit-align-items: $ct-text-align;\n -ms-flex-align: $ct-text-align;\n align-items: $ct-text-align;\n -webkit-box-pack: $ct-text-justify;\n -webkit-justify-content: $ct-text-justify;\n -ms-flex-pack: $ct-text-justify;\n justify-content: $ct-text-justify;\n // Fallback to text-align for non-flex browsers\n @if($ct-text-justify == 'flex-start') {\n text-align: left;\n } @else if ($ct-text-justify == 'flex-end') {\n text-align: right;\n } @else {\n text-align: center;\n }\n}\n\n@mixin ct-flex() {\n // Fallback to block\n display: block;\n display: -webkit-box;\n display: -moz-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n}\n\n@mixin ct-chart-label($ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-text-line-height: $ct-text-line-height) {\n fill: $ct-text-color;\n color: $ct-text-color;\n font-size: $ct-text-size;\n line-height: $ct-text-line-height;\n}\n\n@mixin ct-chart-grid($ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray) {\n stroke: $ct-grid-color;\n stroke-width: $ct-grid-width;\n\n @if ($ct-grid-dasharray) {\n stroke-dasharray: $ct-grid-dasharray;\n }\n}\n\n@mixin ct-chart-point($ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape) {\n stroke-width: $ct-point-size;\n stroke-linecap: $ct-point-shape;\n}\n\n@mixin ct-chart-line($ct-line-width: $ct-line-width, $ct-line-dasharray: $ct-line-dasharray) {\n fill: none;\n stroke-width: $ct-line-width;\n\n @if ($ct-line-dasharray) {\n stroke-dasharray: $ct-line-dasharray;\n }\n}\n\n@mixin ct-chart-area($ct-area-opacity: $ct-area-opacity) {\n stroke: none;\n fill-opacity: $ct-area-opacity;\n}\n\n@mixin ct-chart-bar($ct-bar-width: $ct-bar-width) {\n fill: none;\n stroke-width: $ct-bar-width;\n}\n\n@mixin ct-chart-donut($ct-donut-width: $ct-donut-width) {\n fill: none;\n stroke-width: $ct-donut-width;\n}\n\n@mixin ct-chart-series-color($color) {\n .#{$ct-class-point}, .#{$ct-class-line}, .#{$ct-class-bar}, .#{$ct-class-slice-donut} {\n stroke: $color;\n }\n\n .#{$ct-class-slice-pie}, .#{$ct-class-area} {\n fill: $color;\n }\n}\n\n@mixin ct-chart($ct-container-ratio: $ct-container-ratio, $ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray, $ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape, $ct-line-width: $ct-line-width, $ct-bar-width: $ct-bar-width, $ct-donut-width: $ct-donut-width, $ct-series-names: $ct-series-names, $ct-series-colors: $ct-series-colors) {\n\n .#{$ct-class-label} {\n @include ct-chart-label($ct-text-color, $ct-text-size);\n }\n\n .#{$ct-class-chart-line} .#{$ct-class-label},\n .#{$ct-class-chart-bar} .#{$ct-class-label} {\n @include ct-flex();\n }\n\n .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\n @include ct-align-justify(flex-end, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\n @include ct-align-justify(flex-start, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} {\n @include ct-align-justify(flex-end, flex-end);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: end;\n }\n\n .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} {\n @include ct-align-justify(flex-end, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\n @include ct-align-justify(flex-end, center);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\n @include ct-align-justify(flex-start, center);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} {\n @include ct-align-justify(flex-end, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} {\n @include ct-align-justify(flex-start, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: start;\n }\n\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} {\n //@include ct-chart-label($ct-text-color, $ct-text-size, center, $ct-vertical-text-justify);\n @include ct-align-justify(center, flex-end);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: end;\n }\n\n .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} {\n @include ct-align-justify(center, flex-start);\n // Fallback for browsers that don't support foreignObjects\n text-anchor: end;\n }\n\n .#{$ct-class-grid} {\n @include ct-chart-grid($ct-grid-color, $ct-grid-width, $ct-grid-dasharray);\n }\n\n .#{$ct-class-point} {\n @include ct-chart-point($ct-point-size, $ct-point-shape);\n }\n\n .#{$ct-class-line} {\n @include ct-chart-line($ct-line-width);\n }\n\n .#{$ct-class-area} {\n @include ct-chart-area();\n }\n\n .#{$ct-class-bar} {\n @include ct-chart-bar($ct-bar-width);\n }\n\n .#{$ct-class-slice-donut} {\n @include ct-chart-donut($ct-donut-width);\n }\n\n @if $ct-include-colored-series {\n @for $i from 0 to length($ct-series-names) {\n .#{$ct-class-series}-#{nth($ct-series-names, $i + 1)} {\n $color: nth($ct-series-colors, $i + 1);\n\n @include ct-chart-series-color($color);\n }\n }\n }\n}\n\n@if $ct-include-classes {\n @include ct-chart();\n\n @if $ct-include-alternative-responsive-containers {\n @for $i from 0 to length($ct-scales-names) {\n .#{nth($ct-scales-names, $i + 1)} {\n @include ct-responsive-svg-container($ratio: nth($ct-scales, $i + 1));\n }\n }\n }\n}","@media (min-width: 992px){\n .navbar{\n min-height: 75px;\n }\n .navbar-form {\n margin-top: 21px;\n margin-bottom: 21px;\n padding-left: 5px;\n padding-right: 5px;\n }\n .navbar-search-form{\n display: none;\n }\n .navbar-nav > li > .dropdown-menu,\n .dropdown .dropdown-menu{\n transform: translate3d(0px, -40px, 0px);\n transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 0.3s ease 0s, height 0s linear 0.35s;\n }\n .navbar-nav > li.open > .dropdown-menu, .dropdown.open .dropdown-menu{\n transform: translate3d(0px, 0px, 0px);\n }\n\n .navbar-nav > li > .dropdown-menu:before{\n border-bottom: 11px solid $medium-pale-bg;\n border-left: 11px solid rgba(0, 0, 0, 0);\n border-right: 11px solid rgba(0, 0, 0, 0);\n content: \"\";\n display: inline-block;\n position: absolute;\n right: 12px;\n top: -11px;\n }\n .navbar-nav > li > .dropdown-menu:after {\n border-bottom: 11px solid $pale-bg;\n border-left: 11px solid rgba(0, 0, 0, 0);\n border-right: 11px solid rgba(0, 0, 0, 0);\n content: \"\";\n display: inline-block;\n position: absolute;\n right: 12px;\n top: -10px;\n }\n\n .navbar-nav.navbar-left > li > .dropdown-menu:before{\n right: auto;\n left: 12px;\n }\n\n .navbar-nav.navbar-left > li > .dropdown-menu:after{\n right: auto;\n left: 12px;\n }\n\n .navbar{\n .navbar-header{\n margin-left: 10px;\n }\n }\n\n .footer:not(.footer-big){\n nav > ul{\n li:first-child{\n margin-left: 0;\n }\n }\n }\n\n body > .navbar-collapse.collapse{\n display: none !important;\n }\n\n .card{\n form{\n [class*=\"col-\"]{\n padding: 6px;\n }\n [class*=\"col-\"]:first-child{\n padding-left: 15px;\n }\n [class*=\"col-\"]:last-child{\n padding-right: 15px;\n }\n }\n }\n}\n\n/* Changes for small display */\n\n@media (max-width: 991px){\n .sidebar{\n display: none;\n }\n\n .main-panel{\n width: 100%;\n }\n .navbar-transparent{\n padding-top: 15px;\n background-color: rgba(0, 0, 0, 0.45);\n }\n body {\n position: relative;\n }\n h6{\n font-size: 1em;\n }\n .wrapper{\n @include transform-translate-x(0px);\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n left: 0;\n background-color: white;\n }\n .navbar .container{\n left: 0;\n width: 100%;\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n position: relative;\n }\n .navbar .navbar-collapse.collapse,\n .navbar .navbar-collapse.collapse.in,\n .navbar .navbar-collapse.collapsing{\n display: none !important;\n }\n\n .navbar-nav > li{\n float: none;\n position: relative;\n display: block;\n }\n\n .off-canvas-sidebar {\n position: fixed;\n display: block;\n top: 0;\n height: 100%;\n width: 230px;\n right: 0;\n z-index: 1032;\n visibility: visible;\n background-color: #999;\n overflow-y: visible;\n border-top: none;\n text-align: left;\n padding-right: 0px;\n padding-left: 0;\n\n @include transform-translate-x(230px);\n @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n\n .sidebar-wrapper {\n position: relative;\n z-index: 3;\n overflow-y: scroll;\n height: 100%;\n box-shadow: inset 1px 0px 0px 0px $medium-gray;\n }\n\n .nav{\n margin-top: 0;\n padding: 10px $margin-base-vertical 0;\n\n > li{\n\n > a{\n margin: 0px 0px;\n color: $default-color;\n text-transform: uppercase;\n font-weight: 600;\n font-size: $font-size-small;\n line-height: $line-height-general;\n padding: 10px 0;\n\n &:hover,\n &.active{\n color: $default-states-color;\n }\n\n p,\n .notification,\n .caret\n {\n display: inline-block;\n }\n\n .caret{\n float: right;\n position: relative;\n top: 12px;\n }\n\n i{\n font-size: 18px;\n margin-right: 10px;\n line-height: 26px;\n }\n }\n\n &.active > a{\n\n &:before{\n border-right: none;\n border-left: 12px solid $medium-gray;\n border-top: 12px solid transparent;\n border-bottom: 12px solid transparent;\n right: auto;\n margin-left: -$margin-base-vertical;\n left: 0px;\n top: 10px;\n }\n\n &:after{\n border-right: none;\n border-left: 12px solid $bg-nude;\n border-top: 12px solid transparent;\n border-bottom: 12px solid transparent;\n right: auto;\n margin-left: -$margin-base-vertical;\n left: -1px;\n top: 10px;\n }\n }\n\n }\n\n\n\n }\n\n &::after{\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: $bg-nude;\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n display: block;\n content: \"\";\n z-index: 1;\n }\n &.has-image::after{\n @include black-filter(.8);\n }\n\n .logo{\n position: relative;\n z-index: 4;\n padding-top: 11px;\n padding-bottom: 11px;\n }\n\n .divider{\n height: 1px;\n margin: 10px 0;\n }\n }\n .nav-open .navbar-collapse{\n @include transform-translate-x(0px);\n }\n .nav-open .navbar .container{\n left: -230px;\n }\n .nav-open .wrapper{\n left: 0;\n @include transform-translate-x(-230px);\n }\n .navbar-toggle .icon-bar {\n display: block;\n position: relative;\n background: #fff;\n width: 24px;\n height: 2px;\n border-radius: 1px;\n margin: 0 auto;\n }\n\n .navbar-header .navbar-toggle {\n margin: 10px 15px 10px 0;\n width: 40px;\n height: 40px;\n }\n .bar1,\n .bar2,\n .bar3 {\n outline: 1px solid transparent;\n }\n .bar1 {\n top: 0px;\n @include bar-animation($topbar-back);\n }\n .bar2 {\n opacity: 1;\n }\n .bar3 {\n bottom: 0px;\n @include bar-animation($bottombar-back);\n }\n .toggled .bar1 {\n top: 6px;\n @include bar-animation($topbar-x);\n }\n .toggled .bar2 {\n opacity: 0;\n }\n .toggled .bar3 {\n bottom: 6px;\n @include bar-animation($bottombar-x);\n }\n\n @include topbar-x-rotation();\n @include topbar-back-rotation();\n @include bottombar-x-rotation();\n @include bottombar-back-rotation();\n\n @-webkit-keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n }\n @-moz-keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n }\n @keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n }\n\n .dropdown-menu .divider{\n background-color: rgba(229, 229, 229, 0.15);\n }\n\n .navbar-nav {\n margin: 1px 0;\n }\n\n .dropdown-menu {\n display: none;\n\n & > li > a{\n &:hover,\n &:focus{\n background-color: transparent;\n }\n }\n }\n\n .navbar-fixed-top {\n -webkit-backface-visibility: hidden;\n }\n #bodyClick {\n height: 100%;\n width: 100%;\n position: fixed;\n opacity: 0;\n top: 0;\n left: auto;\n right: 230px;\n content: \"\";\n z-index: 9999;\n overflow-x: hidden;\n }\n .form-control + .form-control-feedback{\n margin-top: -8px;\n }\n .navbar-toggle:hover,.navbar-toggle:focus {\n background-color: transparent !important;\n }\n .btn.dropdown-toggle{\n margin-bottom: 0;\n }\n .media-post .author{\n width: 20%;\n float: none !important;\n display: block;\n margin: 0 auto 10px;\n }\n .media-post .media-body{\n width: 100%;\n }\n\n .navbar-collapse.collapse{\n height: 100% !important;\n }\n .navbar-collapse.collapse.in {\n display: block;\n }\n .navbar-header .collapse, .navbar-toggle {\n display:block !important;\n }\n .navbar-header {\n float:none;\n }\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n\n .main-panel > .content{\n padding-left: 0;\n padding-right: 0;\n }\n .nav .open > a{\n &,\n &:focus,\n &:hover{\n background-color: transparent;\n }\n\n }\n\n .footer .copyright{\n padding: 0px 15px;\n width: 100%;\n }\n}\n\n//overwrite table responsive for 768px screens\n\n@media (min-width: 992px){\n .table-full-width{\n margin-left: -15px;\n margin-right: -15px;\n }\n .table-responsive{\n overflow: visible;\n }\n\n}\n\n@media (max-width: 991px){\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n border: 1px solid #dddddd;\n overflow-x: scroll;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n -webkit-overflow-scrolling: touch;\n }\n\n}\n",".form-container {\n border: 0;\n border-radius: 2px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n width: 100%;\n /*margin-bottom: 20px;*/\n font-weight: bold;\n //text-transform: uppercase;\n\n h6 {\n font-size: 15px;\n padding: 7px;\n background-color: rgba(222, 222, 222, 0.3);\n }\n\n .form-container-body {\n padding: 8px;\n }\n}\n","@font-face {\n\tfont-family: 'Pe-icon-7-stroke';\n\tsrc:url('#{$pe-7s-font-path}/Pe-icon-7-stroke.eot?d7yf1v');\n\tsrc:url('#{$pe-7s-font-path}/Pe-icon-7-stroke.eot?#iefixd7yf1v') format('embedded-opentype'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.woff?d7yf1v') format('woff'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.ttf?d7yf1v') format('truetype'),\n\t\turl('#{$pe-7s-font-path}/Pe-icon-7-stroke.svg?d7yf1v#Pe-icon-7-stroke') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n","[class^=\"#{$font-prefix}-\"], [class*=\" #{$font-prefix}-\"] {\n\tdisplay: inline-block;\n\tfont-family: 'Pe-icon-7-stroke';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n","\n/* HELPER CLASS\n * -------------------------- */\n\n/* FA based classes */\n\n/*! Modified from font-awesome helper CSS classes - PIXEDEN\n * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (CSS: MIT License)\n */\n\n/* makes the font 33% larger relative to the icon container */\n.pe-lg {\n font-size: $font-size-base * 1.33;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.pe-2x {\n font-size: 2 * $font-size-base;\n}\n\n.pe-3x {\n font-size: 3 * $font-size-base;\n}\n\n.pe-4x {\n font-size: 4 * $font-size-base;\n}\n\n.pe-5x {\n font-size: 5 * $font-size-base;\n}\n\n.pe-fw {\n width: 1.2857142857142858em;\n text-align: center;\n}\n\n.pe-ul {\n padding-left: 0;\n margin-left: 2.142857142857143em;\n list-style-type: none;\n \n & > li {\n position: relative;\n }\n}\n\n.pe-li {\n position: absolute;\n left: -2.142857142857143em;\n width: 2.142857142857143em;\n top: 0.14285714285714285em;\n text-align: center;\n\n &.pe-lg {\n left: -1.8571428571428572em;\n }\n}\n\n.pe-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n\n.pull-right {\n float: right;\n}\n\n.pe {\n &.pull-left {\n float: left;\n margin-right: .3em;\n margin-left: .3em;\n }\n}\n\n.pe-spin {\n animation: spin 2s infinite linear;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n}\n\n.pe-rotate-90 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n transform: rotate(90deg);\n}\n\n.pe-rotate-180 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n transform: rotate(180deg);\n}\n\n.pe-rotate-270 {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n transform: rotate(270deg);\n}\n\n.pe-flip-horizontal {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n transform: scale(-1, 1);\n}\n\n.pe-flip-vertical {\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n transform: scale(1, -1);\n}\n\n.pe-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.pe-stack-1x,\n.pe-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.pe-stack-1x {\n line-height: inherit;\n}\n\n.pe-stack-2x {\n font-size: 2em;\n}\n\n.pe-inverse {\n color: #ffffff;\n}\n\n/* Custom classes / mods - PIXEDEN */\n.pe-va {\n vertical-align: middle;\n}\n\n.pe-border {\n border: solid 0.08em #eaeaea;\n}\n",".#{$font-prefix}-album:before {\n content: $font-var-album;\n}\n\n.#{$font-prefix}-arc:before {\n content: $font-var-arc;\n}\n.#{$font-prefix}-back-2:before {\n content: $font-var-back-2;\n}\n.#{$font-prefix}-bandaid:before {\n content: $font-var-bandaid;\n}\n.#{$font-prefix}-car:before {\n content: $font-var-car;\n}\n.#{$font-prefix}-diamond:before {\n content: $font-var-diamond;\n}\n.#{$font-prefix}-door-lock:before {\n content: $font-var-door-lock;\n}\n.#{$font-prefix}-eyedropper:before {\n content: $font-var-eyedropper;\n}\n.#{$font-prefix}-female:before {\n content: $font-var-female;\n}\n.#{$font-prefix}-gym:before {\n content: $font-var-gym;\n}\n.#{$font-prefix}-hammer:before {\n content: $font-var-hammer;\n}\n.#{$font-prefix}-headphones:before {\n content: $font-var-headphones;\n}\n.#{$font-prefix}-helm:before {\n content: $font-var-helm;\n}\n.#{$font-prefix}-hourglass:before {\n content: $font-var-hourglass;\n}\n.#{$font-prefix}-leaf:before {\n content: $font-var-leaf;\n}\n.#{$font-prefix}-magic-wand:before {\n content: $font-var-magic-wand;\n}\n.#{$font-prefix}-male:before {\n content: $font-var-male;\n}\n.#{$font-prefix}-map-2:before {\n content: $font-var-map-2;\n}\n.#{$font-prefix}-next-2:before {\n content: $font-var-next-2;\n}\n.#{$font-prefix}-paint-bucket:before {\n content: $font-var-paint-bucket;\n}\n.#{$font-prefix}-pendrive:before {\n content: $font-var-pendrive;\n}\n.#{$font-prefix}-photo:before {\n content: $font-var-photo;\n}\n.#{$font-prefix}-piggy:before {\n content: $font-var-piggy;\n}\n.#{$font-prefix}-plugin:before {\n content: $font-var-plugin;\n}\n.#{$font-prefix}-refresh-2:before {\n content: $font-var-refresh-2;\n}\n.#{$font-prefix}-rocket:before {\n content: $font-var-rocket;\n}\n.#{$font-prefix}-settings:before {\n content: $font-var-settings;\n}\n.#{$font-prefix}-shield:before {\n content: $font-var-shield;\n}\n.#{$font-prefix}-smile:before {\n content: $font-var-smile;\n}\n.#{$font-prefix}-usb:before {\n content: $font-var-usb;\n}\n.#{$font-prefix}-vector:before {\n content: $font-var-vector;\n}\n.#{$font-prefix}-wine:before {\n content: $font-var-wine;\n}\n.#{$font-prefix}-cloud-upload:before {\n content: $font-var-cloud-upload;\n}\n.#{$font-prefix}-cash:before {\n content: $font-var-cash;\n}\n.#{$font-prefix}-close:before {\n content: $font-var-close;\n}\n.#{$font-prefix}-bluetooth:before {\n content: $font-var-bluetooth;\n}\n.#{$font-prefix}-cloud-download:before {\n content: $font-var-cloud-download;\n}\n.#{$font-prefix}-way:before {\n content: $font-var-way;\n}\n.#{$font-prefix}-close-circle:before {\n content: $font-var-close-circle;\n}\n.#{$font-prefix}-id:before {\n content: $font-var-id;\n}\n.#{$font-prefix}-angle-up:before {\n content: $font-var-angle-up;\n}\n.#{$font-prefix}-wristwatch:before {\n content: $font-var-wristwatch;\n}\n.#{$font-prefix}-angle-up-circle:before {\n content: $font-var-angle-up-circle;\n}\n.#{$font-prefix}-world:before {\n content: $font-var-world;\n}\n.#{$font-prefix}-angle-right:before {\n content: $font-var-angle-right;\n}\n.#{$font-prefix}-volume:before {\n content: $font-var-volume;\n}\n.#{$font-prefix}-angle-right-circle:before {\n content: $font-var-angle-right-circle;\n}\n.#{$font-prefix}-users:before {\n content: $font-var-users;\n}\n.#{$font-prefix}-angle-left:before {\n content: $font-var-angle-left;\n}\n.#{$font-prefix}-user-female:before {\n content: $font-var-user-female;\n}\n.#{$font-prefix}-angle-left-circle:before {\n content: $font-var-angle-left-circle;\n}\n.#{$font-prefix}-up-arrow:before {\n content: $font-var-up-arrow;\n}\n.#{$font-prefix}-angle-down:before {\n content: $font-var-angle-down;\n}\n.#{$font-prefix}-switch:before {\n content: $font-var-switch;\n}\n.#{$font-prefix}-angle-down-circle:before {\n content: $font-var-angle-down-circle;\n}\n.#{$font-prefix}-scissors:before {\n content: $font-var-scissors;\n}\n.#{$font-prefix}-wallet:before {\n content: $font-var-wallet;\n}\n.#{$font-prefix}-safe:before {\n content: $font-var-safe;\n}\n.#{$font-prefix}-volume2:before {\n content: $font-var-volume2;\n}\n.#{$font-prefix}-volume1:before {\n content: $font-var-volume1;\n}\n.#{$font-prefix}-voicemail:before {\n content: $font-var-voicemail;\n}\n.#{$font-prefix}-video:before {\n content: $font-var-video;\n}\n.#{$font-prefix}-user:before {\n content: $font-var-user;\n}\n.#{$font-prefix}-upload:before {\n content: $font-var-upload;\n}\n.#{$font-prefix}-unlock:before {\n content: $font-var-unlock;\n}\n.#{$font-prefix}-umbrella:before {\n content: $font-var-umbrella;\n}\n.#{$font-prefix}-trash:before {\n content: $font-var-trash;\n}\n.#{$font-prefix}-tools:before {\n content: $font-var-tools;\n}\n.#{$font-prefix}-timer:before {\n content: $font-var-timer;\n}\n.#{$font-prefix}-ticket:before {\n content: $font-var-ticket;\n}\n.#{$font-prefix}-target:before {\n content: $font-var-target;\n}\n.#{$font-prefix}-sun:before {\n content: $font-var-sun;\n}\n.#{$font-prefix}-study:before {\n content: $font-var-study;\n}\n.#{$font-prefix}-stopwatch:before {\n content: $font-var-stopwatch;\n}\n.#{$font-prefix}-star:before {\n content: $font-var-star;\n}\n.#{$font-prefix}-speaker:before {\n content: $font-var-speaker;\n}\n.#{$font-prefix}-signal:before {\n content: $font-var-signal;\n}\n.#{$font-prefix}-shuffle:before {\n content: $font-var-shuffle;\n}\n.#{$font-prefix}-shopbag:before {\n content: $font-var-shopbag;\n}\n.#{$font-prefix}-share:before {\n content: $font-var-share;\n}\n.#{$font-prefix}-server:before {\n content: $font-var-server;\n}\n.#{$font-prefix}-search:before {\n content: $font-var-search;\n}\n.#{$font-prefix}-film:before {\n content: $font-var-film;\n}\n.#{$font-prefix}-science:before {\n content: $font-var-science;\n}\n.#{$font-prefix}-disk:before {\n content: $font-var-disk;\n}\n.#{$font-prefix}-ribbon:before {\n content: $font-var-ribbon;\n}\n.#{$font-prefix}-repeat:before {\n content: $font-var-repeat;\n}\n.#{$font-prefix}-refresh:before {\n content: $font-var-refresh;\n}\n.#{$font-prefix}-add-user:before {\n content: $font-var-add-user;\n}\n.#{$font-prefix}-refresh-cloud:before {\n content: $font-var-refresh-cloud;\n}\n.#{$font-prefix}-paperclip:before {\n content: $font-var-paperclip;\n}\n.#{$font-prefix}-radio:before {\n content: $font-var-radio;\n}\n.#{$font-prefix}-note2:before {\n content: $font-var-note2;\n}\n.#{$font-prefix}-print:before {\n content: $font-var-print;\n}\n.#{$font-prefix}-network:before {\n content: $font-var-network;\n}\n.#{$font-prefix}-prev:before {\n content: $font-var-prev;\n}\n.#{$font-prefix}-mute:before {\n content: $font-var-mute;\n}\n.#{$font-prefix}-power:before {\n content: $font-var-power;\n}\n.#{$font-prefix}-medal:before {\n content: $font-var-medal;\n}\n.#{$font-prefix}-portfolio:before {\n content: $font-var-portfolio;\n}\n.#{$font-prefix}-like2:before {\n content: $font-var-like2;\n}\n.#{$font-prefix}-plus:before {\n content: $font-var-plus;\n}\n.#{$font-prefix}-left-arrow:before {\n content: $font-var-left-arrow;\n}\n.#{$font-prefix}-play:before {\n content: $font-var-play;\n}\n.#{$font-prefix}-key:before {\n content: $font-var-key;\n}\n.#{$font-prefix}-plane:before {\n content: $font-var-plane;\n}\n.#{$font-prefix}-joy:before {\n content: $font-var-joy;\n}\n.#{$font-prefix}-photo-gallery:before {\n content: $font-var-photo-gallery;\n}\n.#{$font-prefix}-pin:before {\n content: $font-var-pin;\n}\n.#{$font-prefix}-phone:before {\n content: $font-var-phone;\n}\n.#{$font-prefix}-plug:before {\n content: $font-var-plug;\n}\n.#{$font-prefix}-pen:before {\n content: $font-var-pen;\n}\n.#{$font-prefix}-right-arrow:before {\n content: $font-var-right-arrow;\n}\n.#{$font-prefix}-paper-plane:before {\n content: $font-var-paper-plane;\n}\n.#{$font-prefix}-delete-user:before {\n content: $font-var-delete-user;\n}\n.#{$font-prefix}-paint:before {\n content: $font-var-paint;\n}\n.#{$font-prefix}-bottom-arrow:before {\n content: $font-var-bottom-arrow;\n}\n.#{$font-prefix}-notebook:before {\n content: $font-var-notebook;\n}\n.#{$font-prefix}-note:before {\n content: $font-var-note;\n}\n.#{$font-prefix}-next:before {\n content: $font-var-next;\n}\n.#{$font-prefix}-news-paper:before {\n content: $font-var-news-paper;\n}\n.#{$font-prefix}-musiclist:before {\n content: $font-var-musiclist;\n}\n.#{$font-prefix}-music:before {\n content: $font-var-music;\n}\n.#{$font-prefix}-mouse:before {\n content: $font-var-mouse;\n}\n.#{$font-prefix}-more:before {\n content: $font-var-more;\n}\n.#{$font-prefix}-moon:before {\n content: $font-var-moon;\n}\n.#{$font-prefix}-monitor:before {\n content: $font-var-monitor;\n}\n.#{$font-prefix}-micro:before {\n content: $font-var-micro;\n}\n.#{$font-prefix}-menu:before {\n content: $font-var-menu;\n}\n.#{$font-prefix}-map:before {\n content: $font-var-map;\n}\n.#{$font-prefix}-map-marker:before {\n content: $font-var-map-marker;\n}\n.#{$font-prefix}-mail:before {\n content: $font-var-mail;\n}\n.#{$font-prefix}-mail-open:before {\n content: $font-var-mail-open;\n}\n.#{$font-prefix}-mail-open-file:before {\n content: $font-var-mail-open-file;\n}\n.#{$font-prefix}-magnet:before {\n content: $font-var-magnet;\n}\n.#{$font-prefix}-loop:before {\n content: $font-var-loop;\n}\n.#{$font-prefix}-look:before {\n content: $font-var-look;\n}\n.#{$font-prefix}-lock:before {\n content: $font-var-lock;\n}\n.#{$font-prefix}-lintern:before {\n content: $font-var-lintern;\n}\n.#{$font-prefix}-link:before {\n content: $font-var-link;\n}\n.#{$font-prefix}-like:before {\n content: $font-var-like;\n}\n.#{$font-prefix}-light:before {\n content: $font-var-light;\n}\n.#{$font-prefix}-less:before {\n content: $font-var-less;\n}\n.#{$font-prefix}-keypad:before {\n content: $font-var-keypad;\n}\n.#{$font-prefix}-junk:before {\n content: $font-var-junk;\n}\n.#{$font-prefix}-info:before {\n content: $font-var-info;\n}\n.#{$font-prefix}-home:before {\n content: $font-var-home;\n}\n.#{$font-prefix}-help2:before {\n content: $font-var-help2;\n}\n.#{$font-prefix}-help1:before {\n content: $font-var-help1;\n}\n.#{$font-prefix}-graph3:before {\n content: $font-var-graph3;\n}\n.#{$font-prefix}-graph2:before {\n content: $font-var-graph2;\n}\n.#{$font-prefix}-graph1:before {\n content: $font-var-graph1;\n}\n.#{$font-prefix}-graph:before {\n content: $font-var-graph;\n}\n.#{$font-prefix}-global:before {\n content: $font-var-global;\n}\n.#{$font-prefix}-gleam:before {\n content: $font-var-gleam;\n}\n.#{$font-prefix}-glasses:before {\n content: $font-var-glasses;\n}\n.#{$font-prefix}-gift:before {\n content: $font-var-gift;\n}\n.#{$font-prefix}-folder:before {\n content: $font-var-folder;\n}\n.#{$font-prefix}-flag:before {\n content: $font-var-flag;\n}\n.#{$font-prefix}-filter:before {\n content: $font-var-filter;\n}\n.#{$font-prefix}-file:before {\n content: $font-var-file;\n}\n.#{$font-prefix}-expand1:before {\n content: $font-var-expand1;\n}\n.#{$font-prefix}-exapnd2:before {\n content: $font-var-exapnd2;\n}\n.#{$font-prefix}-edit:before {\n content: $font-var-edit;\n}\n.#{$font-prefix}-drop:before {\n content: $font-var-drop;\n}\n.#{$font-prefix}-drawer:before {\n content: $font-var-drawer;\n}\n.#{$font-prefix}-download:before {\n content: $font-var-download;\n}\n.#{$font-prefix}-display2:before {\n content: $font-var-display2;\n}\n.#{$font-prefix}-display1:before {\n content: $font-var-display1;\n}\n.#{$font-prefix}-diskette:before {\n content: $font-var-diskette;\n}\n.#{$font-prefix}-date:before {\n content: $font-var-date;\n}\n.#{$font-prefix}-cup:before {\n content: $font-var-cup;\n}\n.#{$font-prefix}-culture:before {\n content: $font-var-culture;\n}\n.#{$font-prefix}-crop:before {\n content: $font-var-crop;\n}\n.#{$font-prefix}-credit:before {\n content: $font-var-credit;\n}\n.#{$font-prefix}-copy-file:before {\n content: $font-var-copy-file;\n}\n.#{$font-prefix}-config:before {\n content: $font-var-config;\n}\n.#{$font-prefix}-compass:before {\n content: $font-var-compass;\n}\n.#{$font-prefix}-comment:before {\n content: $font-var-comment;\n}\n.#{$font-prefix}-coffee:before {\n content: $font-var-coffee;\n}\n.#{$font-prefix}-cloud:before {\n content: $font-var-cloud;\n}\n.#{$font-prefix}-clock:before {\n content: $font-var-clock;\n}\n.#{$font-prefix}-check:before {\n content: $font-var-check;\n}\n.#{$font-prefix}-chat:before {\n content: $font-var-chat;\n}\n.#{$font-prefix}-cart:before {\n content: $font-var-cart;\n}\n.#{$font-prefix}-camera:before {\n content: $font-var-camera;\n}\n.#{$font-prefix}-call:before {\n content: $font-var-call;\n}\n.#{$font-prefix}-calculator:before {\n content: $font-var-calculator;\n}\n.#{$font-prefix}-browser:before {\n content: $font-var-browser;\n}\n.#{$font-prefix}-box2:before {\n content: $font-var-box2;\n}\n.#{$font-prefix}-box1:before {\n content: $font-var-box1;\n}\n.#{$font-prefix}-bookmarks:before {\n content: $font-var-bookmarks;\n}\n.#{$font-prefix}-bicycle:before {\n content: $font-var-bicycle;\n}\n.#{$font-prefix}-bell:before {\n content: $font-var-bell;\n}\n.#{$font-prefix}-battery:before {\n content: $font-var-battery;\n}\n.#{$font-prefix}-ball:before {\n content: $font-var-ball;\n}\n.#{$font-prefix}-back:before {\n content: $font-var-back;\n}\n.#{$font-prefix}-attention:before {\n content: $font-var-attention;\n}\n.#{$font-prefix}-anchor:before {\n content: $font-var-anchor;\n}\n.#{$font-prefix}-albums:before {\n content: $font-var-albums;\n}\n.#{$font-prefix}-alarm:before {\n content: $font-var-alarm;\n}\n.#{$font-prefix}-airplay:before {\n content: $font-var-airplay;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/public/assets/admin/js/app.js b/public/assets/admin/js/app.js index ca87d5556..8921aec71 100644 --- a/public/assets/admin/js/app.js +++ b/public/assets/admin/js/app.js @@ -1,3 +1,3 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var t={669:(t,e,i)=>{t.exports=i(609)},448:(t,e,i)=>{"use strict";var n=i(867),o=i(26),s=i(372),r=i(327),a=i(97),h=i(109),u=i(985),l=i(61);t.exports=function(t){return new Promise((function(e,i){var c=t.data,d=t.headers,p=t.responseType;n.isFormData(c)&&delete d["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var _=t.auth.username||"",m=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";d.Authorization="Basic "+btoa(_+":"+m)}var g=a(t.baseURL,t.url);function v(){if(f){var n="getAllResponseHeaders"in f?h(f.getAllResponseHeaders()):null,s={data:p&&"text"!==p&&"json"!==p?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:n,config:t,request:f};o(e,i,s),f=null}}if(f.open(t.method.toUpperCase(),r(g,t.params,t.paramsSerializer),!0),f.timeout=t.timeout,"onloadend"in f?f.onloadend=v:f.onreadystatechange=function(){f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))&&setTimeout(v)},f.onabort=function(){f&&(i(l("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){i(l("Network Error",t,null,f)),f=null},f.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),i(l(e,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||u(g))&&t.xsrfCookieName?s.read(t.xsrfCookieName):void 0;y&&(d[t.xsrfHeaderName]=y)}"setRequestHeader"in f&&n.forEach(d,(function(t,e){void 0===c&&"content-type"===e.toLowerCase()?delete d[e]:f.setRequestHeader(e,t)})),n.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),p&&"json"!==p&&(f.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&f.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){f&&(f.abort(),i(t),f=null)})),c||(c=null),f.send(c)}))}},609:(t,e,i)=>{"use strict";var n=i(867),o=i(849),s=i(321),r=i(185);function a(t){var e=new s(t),i=o(s.prototype.request,e);return n.extend(i,s.prototype,e),n.extend(i,e),i}var h=a(i(655));h.Axios=s,h.create=function(t){return a(r(h.defaults,t))},h.Cancel=i(263),h.CancelToken=i(972),h.isCancel=i(502),h.all=function(t){return Promise.all(t)},h.spread=i(713),h.isAxiosError=i(268),t.exports=h,t.exports.default=h},263:t=>{"use strict";function e(t){this.message=t}e.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},e.prototype.__CANCEL__=!0,t.exports=e},972:(t,e,i)=>{"use strict";var n=i(263);function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var i=this;t((function(t){i.reason||(i.reason=new n(t),e(i.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o((function(e){t=e})),cancel:t}},t.exports=o},502:t=>{"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},321:(t,e,i)=>{"use strict";var n=i(867),o=i(327),s=i(782),r=i(572),a=i(185),h=i(875),u=h.validators;function l(t){this.defaults=t,this.interceptors={request:new s,response:new s}}l.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=a(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=t.transitional;void 0!==e&&h.assertOptions(e,{silentJSONParsing:u.transitional(u.boolean,"1.0.0"),forcedJSONParsing:u.transitional(u.boolean,"1.0.0"),clarifyTimeoutError:u.transitional(u.boolean,"1.0.0")},!1);var i=[],n=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(n=n&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));var o,s=[];if(this.interceptors.response.forEach((function(t){s.push(t.fulfilled,t.rejected)})),!n){var l=[r,void 0];for(Array.prototype.unshift.apply(l,i),l=l.concat(s),o=Promise.resolve(t);l.length;)o=o.then(l.shift(),l.shift());return o}for(var c=t;i.length;){var d=i.shift(),p=i.shift();try{c=d(c)}catch(t){p(t);break}}try{o=r(c)}catch(t){return Promise.reject(t)}for(;s.length;)o=o.then(s.shift(),s.shift());return o},l.prototype.getUri=function(t){return t=a(this.defaults,t),o(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(t){l.prototype[t]=function(e,i){return this.request(a(i||{},{method:t,url:e,data:(i||{}).data}))}})),n.forEach(["post","put","patch"],(function(t){l.prototype[t]=function(e,i,n){return this.request(a(n||{},{method:t,url:e,data:i}))}})),t.exports=l},782:(t,e,i)=>{"use strict";var n=i(867);function o(){this.handlers=[]}o.prototype.use=function(t,e,i){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){n.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=o},97:(t,e,i)=>{"use strict";var n=i(793),o=i(303);t.exports=function(t,e){return t&&!n(e)?o(t,e):e}},61:(t,e,i)=>{"use strict";var n=i(481);t.exports=function(t,e,i,o,s){var r=new Error(t);return n(r,e,i,o,s)}},572:(t,e,i)=>{"use strict";var n=i(867),o=i(527),s=i(502),r=i(655);function a(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return a(t),t.headers=t.headers||{},t.data=o.call(t,t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||r.adapter)(t).then((function(e){return a(t),e.data=o.call(t,e.data,e.headers,t.transformResponse),e}),(function(e){return s(e)||(a(t),e&&e.response&&(e.response.data=o.call(t,e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))}},481:t=>{"use strict";t.exports=function(t,e,i,n,o){return t.config=e,i&&(t.code=i),t.request=n,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}},185:(t,e,i)=>{"use strict";var n=i(867);t.exports=function(t,e){e=e||{};var i={},o=["url","method","data"],s=["headers","auth","proxy","params"],r=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function h(t,e){return n.isPlainObject(t)&&n.isPlainObject(e)?n.merge(t,e):n.isPlainObject(e)?n.merge({},e):n.isArray(e)?e.slice():e}function u(o){n.isUndefined(e[o])?n.isUndefined(t[o])||(i[o]=h(void 0,t[o])):i[o]=h(t[o],e[o])}n.forEach(o,(function(t){n.isUndefined(e[t])||(i[t]=h(void 0,e[t]))})),n.forEach(s,u),n.forEach(r,(function(o){n.isUndefined(e[o])?n.isUndefined(t[o])||(i[o]=h(void 0,t[o])):i[o]=h(void 0,e[o])})),n.forEach(a,(function(n){n in e?i[n]=h(t[n],e[n]):n in t&&(i[n]=h(void 0,t[n]))}));var l=o.concat(s).concat(r).concat(a),c=Object.keys(t).concat(Object.keys(e)).filter((function(t){return-1===l.indexOf(t)}));return n.forEach(c,u),i}},26:(t,e,i)=>{"use strict";var n=i(61);t.exports=function(t,e,i){var o=i.config.validateStatus;i.status&&o&&!o(i.status)?e(n("Request failed with status code "+i.status,i.config,null,i.request,i)):t(i)}},527:(t,e,i)=>{"use strict";var n=i(867),o=i(655);t.exports=function(t,e,i){var s=this||o;return n.forEach(i,(function(i){t=i.call(s,t,e)})),t}},655:(t,e,i)=>{"use strict";var n=i(155),o=i(867),s=i(16),r=i(481),a={"Content-Type":"application/x-www-form-urlencoded"};function h(t,e){!o.isUndefined(t)&&o.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var u,l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==n&&"[object process]"===Object.prototype.toString.call(n))&&(u=i(448)),u),transformRequest:[function(t,e){return s(e,"Accept"),s(e,"Content-Type"),o.isFormData(t)||o.isArrayBuffer(t)||o.isBuffer(t)||o.isStream(t)||o.isFile(t)||o.isBlob(t)?t:o.isArrayBufferView(t)?t.buffer:o.isURLSearchParams(t)?(h(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):o.isObject(t)||e&&"application/json"===e["Content-Type"]?(h(e,"application/json"),function(t,e,i){if(o.isString(t))try{return(e||JSON.parse)(t),o.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(i||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional,i=e&&e.silentJSONParsing,n=e&&e.forcedJSONParsing,s=!i&&"json"===this.responseType;if(s||n&&o.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(s){if("SyntaxError"===t.name)throw r(t,this,"E_JSON_PARSE");throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},o.forEach(["delete","get","head"],(function(t){l.headers[t]={}})),o.forEach(["post","put","patch"],(function(t){l.headers[t]=o.merge(a)})),t.exports=l},849:t=>{"use strict";t.exports=function(t,e){return function(){for(var i=new Array(arguments.length),n=0;n{"use strict";var n=i(867);function o(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,i){if(!e)return t;var s;if(i)s=i(e);else if(n.isURLSearchParams(e))s=e.toString();else{var r=[];n.forEach(e,(function(t,e){null!=t&&(n.isArray(t)?e+="[]":t=[t],n.forEach(t,(function(t){n.isDate(t)?t=t.toISOString():n.isObject(t)&&(t=JSON.stringify(t)),r.push(o(e)+"="+o(t))})))})),s=r.join("&")}if(s){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t}},303:t=>{"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},372:(t,e,i)=>{"use strict";var n=i(867);t.exports=n.isStandardBrowserEnv()?{write:function(t,e,i,o,s,r){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(i)&&a.push("expires="+new Date(i).toGMTString()),n.isString(o)&&a.push("path="+o),n.isString(s)&&a.push("domain="+s),!0===r&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},793:t=>{"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},268:t=>{"use strict";t.exports=function(t){return"object"==typeof t&&!0===t.isAxiosError}},985:(t,e,i)=>{"use strict";var n=i(867);t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function o(t){var n=t;return e&&(i.setAttribute("href",n),n=i.href),i.setAttribute("href",n),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}return t=o(window.location.href),function(e){var i=n.isString(e)?o(e):e;return i.protocol===t.protocol&&i.host===t.host}}():function(){return!0}},16:(t,e,i)=>{"use strict";var n=i(867);t.exports=function(t,e){n.forEach(t,(function(i,n){n!==e&&n.toUpperCase()===e.toUpperCase()&&(t[e]=i,delete t[n])}))}},109:(t,e,i)=>{"use strict";var n=i(867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,i,s,r={};return t?(n.forEach(t.split("\n"),(function(t){if(s=t.indexOf(":"),e=n.trim(t.substr(0,s)).toLowerCase(),i=n.trim(t.substr(s+1)),e){if(r[e]&&o.indexOf(e)>=0)return;r[e]="set-cookie"===e?(r[e]?r[e]:[]).concat([i]):r[e]?r[e]+", "+i:i}})),r):r}},713:t=>{"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},875:(t,e,i)=>{"use strict";var n=i(593),o={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){o[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}}));var s={},r=n.version.split(".");function a(t,e){for(var i=e?e.split("."):r,n=t.split("."),o=0;o<3;o++){if(i[o]>n[o])return!0;if(i[o]0;){var s=n[o],r=e[s];if(r){var a=t[s],h=void 0===a||r(a,s,t);if(!0!==h)throw new TypeError("option "+s+" must be "+h)}else if(!0!==i)throw Error("Unknown option "+s)}},validators:o}},867:(t,e,i)=>{"use strict";var n=i(849),o=Object.prototype.toString;function s(t){return"[object Array]"===o.call(t)}function r(t){return void 0===t}function a(t){return null!==t&&"object"==typeof t}function h(t){if("[object Object]"!==o.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function u(t){return"[object Function]"===o.call(t)}function l(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),s(t))for(var i=0,n=t.length;i{"use strict";function n(t,e){for(var i=0;i{var n=i(551);n.formatters.prepend=function(t,e){return e+t},n.formatters.time_hm=function(t){var e=Math.floor(t/60),i=t%60;return"".concat(e,"h ").concat(i,"m")},n.formatters.gt=function(t,e){return t.length>e},n.formatters.lt=function(t,e){return t.lengthe},n.formatters.fallback=function(t,e){return t||e}},546:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var n=document.head.querySelector('meta[name="base-url"]'),o=document.head.querySelector('meta[name="csrf-token"]');const s={api_key:document.head.querySelector('meta[name="api-key"]').content||"",base_url:n.content||"",csrf_token:o.content||""}},201:(t,e,i)=>{"use strict";i.r(e),i.d(e,{render_airspace_map:()=>h,render_base_map:()=>o,render_live_map:()=>gn,render_route_map:()=>bn});var n=i(243);i(978);const o=function(t){var e=Object.assign({render_elem:"map",center:[29.98139,-95.33374],zoom:5,maxZoom:10,layers:[],set_marker:!1,leafletOptions:{}},t),i=Object.assign({center:e.center,zoom:e.zoom,scrollWheelZoom:!1,providers:{}},e.leafletOptions);0===Object.entries(i.providers).length&&(i.providers={"Esri.WorldStreetMap":{}});var o=n.map("map",i);for(var s in i.providers)n.tileLayer.provider(s,i.providers[s]).addTo(o);return o};var s=i(243);function r(t,e){if(""===e.url)return null;e.params=Object.assign({format:"image/png",transparent:!0,maxZoom:14,minZoom:4},e.params);var i=s.tileLayer.wms(e.url,e.params);return i.addTo(t),i}var a=i(243);const h=function(t){var e=Object.assign({render_elem:"map",overlay_elem:"",lat:0,lon:0,zoom:12,layers:[],set_marker:!0,marker_popup:"",metar_wms:{url:"",params:{}}},t),i=o(e),n=[e.lat,e.lon];return console.log("Applying coords",n),i.setView(n,e.zoom),!0===e.set_marker&&a.marker(n).addTo(i).bindPopup(e.marker_popup),""!==e.metar_wms.url&&r(i,e.metar_wms),i};var u="#067ec1",l=i(152);function c(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function H(t,e,i){return t instanceof D?t:S(t)?new D(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new D(t.x,t.y):new D(t,e,i)}function W(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=V(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=V(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Rt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",v,e),window.removeEventListener("testPassiveEventSupport",v,e)}catch(t){}return t}(),jt=!!document.createElement("canvas").getContext,Dt=!(!document.createElementNS||!st("svg").createSVGRect),Ft=!!Dt&&((at=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(at.firstChild&&at.firstChild.namespaceURI)),Ht=!Dt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Wt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Ut={ie:ut,ielt9:lt,edge:ct,webkit:dt,android:pt,android23:ft,androidStock:mt,opera:gt,chrome:vt,gecko:yt,safari:bt,phantom:wt,opera12:xt,win:Lt,ie3d:Pt,webkit3d:Tt,gecko3d:Mt,any3d:St,mobile:zt,mobileWebkit:Et,mobileWebkit3d:kt,msPointer:Ct,pointer:Ot,touch:At,touchNative:Zt,mobileOpera:Bt,mobileGecko:It,retina:Nt,passiveEvents:Rt,canvas:jt,svg:Dt,vml:Ht,inlineSvg:Ft},Gt=Ut.msPointer?"MSPointerDown":"pointerdown",Vt=Ut.msPointer?"MSPointerMove":"pointermove",qt=Ut.msPointer?"MSPointerUp":"pointerup",Kt=Ut.msPointer?"MSPointerCancel":"pointercancel",Yt={touchstart:Gt,touchmove:Vt,touchend:qt,touchcancel:Kt},Jt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Ve(e);ne(t,e)},touchmove:ne,touchend:ne,touchcancel:ne},Xt={},$t=!1;function Qt(t,e,i){return"touchstart"===e&&($t||(document.addEventListener(Gt,te,!0),document.addEventListener(Vt,ee,!0),document.addEventListener(qt,ie,!0),document.addEventListener(Kt,ie,!0),$t=!0)),Jt[e]?(i=Jt[e].bind(this,i),t.addEventListener(Yt[e],i,!1),i):(console.warn("wrong event specified:",e),L.Util.falseFn)}function te(t){Xt[t.pointerId]=t}function ee(t){Xt[t.pointerId]&&(Xt[t.pointerId]=t)}function ie(t){delete Xt[t.pointerId]}function ne(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Xt)e.touches.push(Xt[i]);e.changedTouches=[e],t(e)}}var oe,se,re,ae,he,ue=Te(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),le=Te(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ce="webkitTransition"===le||"OTransition"===le?le+"End":"transitionend";function de(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function fe(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function _e(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ge(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ve(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ye(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=Le(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function be(t,e){if(void 0!==t.classList)for(var i=w(e),n=0,o=i.length;nthis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,V(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=H((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=H(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=U([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=c({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),o=i.divideBy(2).round(),s=n.subtract(o);return s.x||s.y?(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(p(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=c({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=p(this._handleGeolocationResponse,this),i=p(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new q(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),_e(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(I(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)_e(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=fe("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new G(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=V(t),i=H(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=U(this.project(a,n),this.project(r,n)).getSize(),l=Ut.any3d?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new D(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new W(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(K(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(H(t),e)},layerPointToLatLng:function(t){var e=H(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(K(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(K(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(V(t))},distance:function(t,e){return this.options.crs.distance(K(t),K(e))},containerPointToLayerPoint:function(t){return H(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return H(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(H(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(K(t)))},mouseEventToContainerPoint:function(t){return Ke(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=de(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Ie(e,"scroll",this._onScroll,this),this._containerId=_(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ut.any3d,be(t,"leaflet-container"+(Ut.touch?" leaflet-touch":"")+(Ut.retina?" leaflet-retina":"")+(Ut.ielt9?" leaflet-oldie":"")+(Ut.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=pe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Se(this._mapPane,new D(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(be(t.markerPane,"leaflet-zoom-hide"),be(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){Se(this._mapPane,new D(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return I(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Se(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[_(this._container)]=this;var e=t?Re:Ie;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Ut.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){I(this._resizeRequest),this._resizeRequest=B((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[_(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!Xe(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Oe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=c({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}var o=this._findEventTargets(t,e);if(i){for(var s=[],r=0;r0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=Ut.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){we(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=fe("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=ue,i=this._proxy.style[e];Me(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){_e(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Me(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o))&&(B((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),!0)},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,be(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(p(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&we(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var ti=N.extend({options:{position:"topright"},initialize:function(t){x(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return be(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(_e(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ei=function(t){return new ti(t)};Qe.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=fe("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=fe("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)_e(this._controlCorners[t]);_e(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var ii=ti.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(_(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+_(this),n),this._layerControlInputs.push(e),e.layerId=_(t.layer),Ie(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),ni=ti.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=fe("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=fe("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ge(s),Ie(s,"click",qe),Ie(s,"click",o,this),Ie(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";we(this._zoomInButton,e),we(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(be(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(be(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});Qe.mergeOptions({zoomControl:!0}),Qe.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new ni,this.addControl(this.zoomControl))}));var oi=ti.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=fe("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=fe("div",e,i)),t.imperial&&(this._iScale=fe("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),si=ti.extend({options:{position:"bottomright",prefix:''+(Ut.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){x(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=fe("div","leaflet-control-attribution"),Ge(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});Qe.mergeOptions({attributionControl:!0}),Qe.addInitHook((function(){this.options.attributionControl&&(new si).addTo(this)}));ti.Layers=ii,ti.Zoom=ni,ti.Scale=oi,ti.Attribution=si,ei.layers=function(t,e,i){return new ii(t,e,i)},ei.zoom=function(t){return new ni(t)},ei.scale=function(t){return new oi(t)},ei.attribution=function(t){return new si(t)};var ri=N.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});ri.addTo=function(t,e){return t.addHandler(e,this),this};var ai,hi=Ut.touch?"touchstart mousedown":"mousedown",ui=j.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){x(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Ie(this._dragStartTarget,hi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ui._dragging===this&&this.finishDrag(!0),Re(this._dragStartTarget,hi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ye(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)ui._dragging===this&&this.finishDrag();else if(!(ui._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ui._dragging=this,this._preventOutline&&Oe(this._element),ke(),oe(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ae(this._element);this._startPoint=new D(e.clientX,e.clientY),this._startPos=ze(this._element),this._parentScale=Be(i);var n="mousedown"===t.type;Ie(document,n?"mousemove":"touchmove",this._onMove,this),Ie(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new D(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)e&&(i.push(t[n]),o=n);oh&&(s=r,h=a);h>i&&(e[s]=1,di(t,e,i,n,s),di(t,e,i,s,o))}function pi(t,e,i,n,o){var s,r,a,h=n?ai:_i(t,i),u=_i(e,i);for(ai=u;;){if(!(h|u))return[t,e];if(h&u)return!1;a=_i(r=fi(t,e,s=h||u,i,o),i),s===h?(t=r,h=a):(e=r,u=a)}}function fi(t,e,i,n,o){var s,r,a=e.x-t.x,h=e.y-t.y,u=n.min,l=n.max;return 8&i?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&i?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&i?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&i&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new D(s,r,o)}function _i(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function mi(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function gi(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new D(s,r)}function vi(t){return!S(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function yi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),vi(t)}function bi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new q(a*i,t.x*i/n)}},Li=c({},X,{code:"EPSG:3395",projection:xi,transformation:function(){var t=.5/(Math.PI*xi.R);return it(t,.5,-t,.5)}()}),Pi=c({},X,{code:"EPSG:4326",projection:wi,transformation:it(1/180,1,-1/180,.5)}),Ti=c({},J,{projection:wi,transformation:it(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});J.Earth=X,J.EPSG3395=Li,J.EPSG3857=nt,J.EPSG900913=ot,J.EPSG4326=Pi,J.Simple=Ti;var Mi=j.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[_(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[_(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});Qe.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=_(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=_(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return _(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?S(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=K(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new G,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return vi(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=vi(t),n=0,o=t.length;n=2&&e[0]instanceof q&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ii.prototype._setLatLngs.call(this,t),vi(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return vi(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new D(e,e);if(t=new W(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||Ii.prototype._containsPoint.call(this,t,!0)}});var Ri=zi.extend({initialize:function(t,e){x(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=S(t)?t:t.features;if(o){for(e=0,i=o.length;e0?n:[e.src]}else{S(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;so?(e.height=o+"px",be(t,s)):we(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Se(this._container,e.add(i))},_adjustPan:function(t){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var e=this._map,i=parseInt(pe(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+i,o=this._containerWidth,s=new D(this._containerLeft,-n-this._containerBottom);s._add(ze(this._container));var r=e.layerPointToContainerPoint(s),a=H(this.options.autoPanPadding),h=H(this.options.autoPanPaddingTopLeft||a),u=H(this.options.autoPanPaddingBottomRight||a),l=e.getSize(),c=0,d=0;r.x+o+u.x>l.x&&(c=r.x+o-l.x+u.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+n+u.y>l.y&&(d=r.y+n-l.y+u.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&e.fire("autopanstart").panBy([c,d],{animate:t&&"moveend"===t.type})}},_getAnchor:function(){return H(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Qe.mergeOptions({closePopupOnClick:!0}),Qe.include({openPopup:function(t,e,i){return this._initOverlay(Ji,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Mi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Ji,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){qe(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof Zi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Xi=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=fe("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=H(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new D(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new D(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var f=this._tiles[this._tileCoordsToKey(p)];f?f.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return V(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new G(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new D(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(_e(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){be(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=v,t.onmousemove=v,Ut.ielt9&&this.options.opacity<1&&Pe(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),p(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&B(p(this._tileReady,this,t,null,o)),Se(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(Pe(i.el,0),I(this._fadeFrame),this._fadeFrame=B(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(be(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Ut.ielt9||!this._map._fadeAnimated?B(this._pruneTiles,this):setTimeout(p(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new D(this._wrapX?g(t.x,this._wrapX):t.x,this._wrapY?g(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new W(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Qi=$i.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=x(this,e)).detectRetina&&Ut.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Ie(i,"load",p(this._tileOnLoad,this,e,i)),Ie(i,"error",p(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:Ut.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return M(this._url,c(e,this.options))},_tileOnLoad:function(t,e){Ut.ielt9?setTimeout(p(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=v,e.onerror=v,!e.complete)){e.src=E;var i=this._tiles[t].coords;_e(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",E),$i.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==E))return $i.prototype._tileReady.call(this,t,e,i)}});var tn=Qi.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=c({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);var o=(e=x(this,e)).detectRetina&&Ut.retina?2:1,s=this.getTileSize();i.width=s.x*o,i.height=s.y*o,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Qi.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=U(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Pi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Qi.prototype.getTileUrl.call(this,t);return a+P(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return c(this.wmsParams,t),e||this.redraw(),this}});Qi.WMS=tn;var en=Mi.extend({options:{padding:.1},initialize:function(t){x(this,t),_(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&be(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));Ut.any3d?Me(this._container,s,i):Se(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new W(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),nn=en.extend({options:{tolerance:0},getEvents:function(){var t=en.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){en.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ie(t,"mousemove",this._onMouseMove,this),Ie(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ie(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){I(this._redrawRequest),delete this._ctx,_e(this._container),Re(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){en.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Ut.retina?2:1;Se(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Ut.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){en.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[_(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[_(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),sn={_initContainer:function(){this._container=fe("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(en.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=on("shape");be(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=on("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;_e(e),t.removeInteractiveTarget(e),delete this._layers[_(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=on("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=S(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=on("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ge(t._container)},_bringToBack:function(t){ve(t._container)}},rn=Ut.vml?on:st,an=en.extend({_initContainer:function(){this._container=rn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=rn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){_e(this._container),Re(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){en.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Se(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=rn("path");t.options.className&&be(e,t.options.className),t.options.interactive&&be(e,"leaflet-interactive"),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){_e(t._path),t.removeInteractiveTarget(t._path),delete this._layers[_(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,rt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ge(t._path)},_bringToBack:function(t){ve(t._path)}});Ut.vml&&an.include(sn),Qe.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&function(t){return Ut.canvas?new nn(t):null}(t)||function(t){return Ut.svg||Ut.vml?new an(t):null}(t)}});Ni.extend({initialize:function(t,e){Ni.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=V(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});an.create=rn,an.pointsToPath=rt,Ri.geometryToLayer=ji,Ri.coordsToLatLng=Fi,Ri.coordsToLatLngs=Hi,Ri.latLngToCoords=Wi,Ri.latLngsToCoords=Ui,Ri.getFeature=Gi,Ri.asFeature=Vi,Qe.mergeOptions({boxZoom:!0});var hn=ri.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ie(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Re(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){_e(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),oe(),ke(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ie(document,{contextmenu:qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=fe("div","leaflet-zoom-box",this._container),be(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new W(this._point,this._startPoint),i=e.getSize();Se(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(_e(this._box),we(this._container,"leaflet-crosshair")),se(),Ce(),Re(document,{contextmenu:qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(p(this._resetState,this),0);var e=new G(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Qe.addInitHook("addHandler","boxZoom",hn),Qe.mergeOptions({doubleClickZoom:!0});var un=ri.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Qe.addInitHook("addHandler","doubleClickZoom",un),Qe.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var ln=ri.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ui(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}be(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){we(this._map._container,"leaflet-grab"),we(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=V(this._map.options.maxBounds);this._offsetLimit=U(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Qe.addInitHook("addHandler","scrollWheelZoom",dn);Qe.mergeOptions({tapHold:Ut.touchNative&&Ut.safari&&Ut.mobile,tapTolerance:15});var pn=ri.extend({addHooks:function(){Ie(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Re(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new D(e.clientX,e.clientY),this._holdTimeout=setTimeout(p((function(){this._cancel(),this._isTapValid()&&(Ie(document,"touchend",Ve),Ie(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),600),Ie(document,"touchend touchcancel contextmenu",this._cancel,this),Ie(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Re(document,"touchend",Ve),Re(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Re(document,"touchend touchcancel contextmenu",this._cancel,this),Re(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new D(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});Qe.addInitHook("addHandler","tapHold",pn),Qe.mergeOptions({touchZoom:Ut.touch,bounceAtZoomLimits:!0});var fn=ri.extend({addHooks:function(){be(this._map._container,"leaflet-touch-zoom"),Ie(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){we(this._map._container,"leaflet-touch-zoom"),Re(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Ie(document,"touchmove",this._onTouchMove,this),Ie(document,"touchend touchcancel",this._onTouchEnd,this),Ve(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===o)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===o&&0===s.x&&0===s.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),I(this._animRequest);var r=p(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=B(r,this,!0),Ve(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,I(this._animRequest),Re(document,"touchmove",this._onTouchMove,this),Re(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Qe.addInitHook("addHandler","touchZoom",fn),Qe.BoxZoom=hn,Qe.DoubleClickZoom=un,Qe.Drag=ln,Qe.Keyboard=cn,Qe.ScrollWheelZoom=dn,Qe.TapHold=pn,Qe.TouchZoom=fn;var _n=i(243),mn=i(551);const gn=function(t){var e=Object.assign({center:[29.98139,-95.33374],refresh_interval:10,zoom:5,acars_uri:"/api/acars",update_uri:"/api/acars/geojson",pirep_uri:"/api/pireps/{id}",pirep_link_uri:"/pireps/{id}",positions:null,render_elem:"map",aircraft_icon:"/assets/img/acars/aircraft.png",flown_route_color:u,units:"nmi"},t),i=o(e),n=_n.icon({iconUrl:e.aircraft_icon,iconSize:[42,42],iconAnchor:[21,21]}),s=new q(e.center[0],e.center[1]),r={},a=!1,h=null,c=null,d=null,p=null,f={pirep:{},pireps:[],has_data:!1,controller:{focusMarker:null}};function _(t,n,o){null!==c&&i.removeLayer(c),(c=new L.Geodesic([],{weight:5,opacity:.9,color:e.flown_route_color,wrap:!1}).addTo(i)).fromGeoJson(o.line),d=t,p=n,a||(i.panTo({lat:o.position.lat,lng:o.position.lon}),a=!0)}function m(t,i){var n=e.pirep_uri.replace("{id}",t.properties.pirep_id),o="".concat(e.pirep_uri.replace("{id}",t.properties.pirep_id),"/acars/geojson");(0,l.Z)(n).then((function(t){var e=t.data.data;console.log(e),f.pirep=e})),(0,l.Z)(o).then((function(e){var n=e.data.data;console.log(n),_(t,i,n)}))}mn.bind($("#map-info-box"),f),mn.bind($("#live_flights"),f),f.controller.drawRoute=_,f.controller.focusMarker=function(t,e){if(e.pirep.id in r){var i=r[e.pirep.id];m(i[0],i[1])}else console.log("marker not found in list")},f.controller.onFlightClick=m;var g=function(){(0,l.Z)(e.acars_uri).then((function(t){var e=t.data.data;f.pireps=e,f.has_data=e.length>0})),(0,l.Z)({url:e.update_uri}).then((function(t){var e=t.data.data;if(null!==h&&h.clearLayers(),(h=_n.geoJSON(e,{onEachFeature:function(t,e){e.on({click:function(i){a=!1,f.controller.onFlightClick(t,e)}});var i="";t.properties&&""!==t.properties.popup&&void 0!==t.properties.popup&&(i+=t.properties.popup,e.bindPopup(i)),r[t.properties.pirep_id]=[t,e]},pointToLayer:function(t,e){return _n.marker(e,{icon:n,rotationAngle:t.properties.heading})}})).addTo(i),null!==c)f.controller.onFlightClick(d,p);else if(!a)try{i.panTo(h.getBounds().getCenter())}catch(t){i.panTo(s)}}))};g(),setInterval(g,1e3*e.refresh_interval)};var vn=i(243),yn=function(t,e){var i="";t.properties&&t.properties.popup&&(i+=t.properties.popup),e.bindPopup(i)};const bn=function(t){var e=Object.assign({route_points:null,planned_route_line:null,actual_route_points:null,actual_route_line:null,render_elem:"map",live_map:!1,aircraft_icon:"/assets/img/acars/aircraft.png",refresh_interval:10,flown_route_color:u,circle_color:"#056093",flightplan_route_color:"#8B008B",metar_wms:{url:"",params:{}}},t),i=function(t,i){return vn.circleMarker(i,{radius:5,fillColor:e.circle_color,color:"#000",weight:1,opacity:1,fillOpacity:.8})},n=(vn.icon({iconUrl:e.aircraft_icon,iconSize:[42,42],iconAnchor:[21,21]}),o(e));""!==e.metar_wms.url&&r(n,e.metar_wms);var s=new L.Geodesic([],{weight:4,opacity:.9,color:e.flightplan_route_color,steps:50,wrap:!1}).addTo(n);s.fromGeoJson(e.planned_route_line);try{n.fitBounds(s.getBounds())}catch(t){console.log(t)}null!==e.route_points&&vn.geoJSON(e.route_points,{onEachFeature:yn,pointToLayer:i,style:{color:e.flightplan_route_color,weight:3,opacity:.65}}).addTo(n);if(null!==e.actual_route_line&&e.actual_route_line.features.length>0){var a=new L.Geodesic([],{weight:3,opacity:.9,color:e.flown_route_color,steps:50,wrap:!1}).addTo(n);a.fromGeoJson(e.actual_route_line);try{n.fitBounds(a.getBounds())}catch(t){console.log(t)}}null!==e.actual_route_points&&e.actual_route_points.features.length>0&&vn.geoJSON(e.actual_route_points,{onEachFeature:yn,pointToLayer:i,style:{color:e.flown_route_color,weight:3,opacity:.65}}).addTo(n)};i(154),i(818),window.L=i(243)},152:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var n=i(546);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function s(){s=function(){return t};var t={},e=Object.prototype,i=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",h=n.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,r,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==e&&i.call(v,r)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function n(s,r,a,h){var u=c(t[s],t,r);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==o(d)&&i.call(d,"__await")?e.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):e.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var s;this._invoke=function(t,i){function o(){return new e((function(e,o){n(t,i,e,o)}))}return s=s?s.then(o,o):o()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var s=this.tryEntries[o],r=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var a=i.call(s,"catchLoc"),h=i.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function r(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}var a=i(669);const h=function(){var t,e=(t=s().mark((function t(e){var i;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return("string"==typeof e||e instanceof String)&&(e={url:e}),i=Object.assign({},{baseURL:n.Z.base_url,headers:{"X-API-KEY":n.Z.api_key,"X-CSRF-TOKEN":n.Z.csrf_token}},e),console.log(i),t.abrupt("return",a.request(i));case 4:case"end":return t.stop()}}),t)})),function(){var e=this,i=arguments;return new Promise((function(n,o){var s=t.apply(e,i);function a(t){r(s,n,o,a,h,"next",t)}function h(t){r(s,n,o,a,h,"throw",t)}a(void 0)}))});return function(t){return e.apply(this,arguments)}}()},978:()=>{!function(){"use strict";L.TileLayer.Provider=L.TileLayer.extend({initialize:function(t,e){var i=L.TileLayer.Provider.providers,n=t.split("."),o=n[0],s=n[1];if(!i[o])throw"No such provider ("+o+")";var r={url:i[o].url,options:i[o].options};if(s&&"variants"in i[o]){if(!(s in i[o].variants))throw"No such variant of "+o+" ("+s+")";var a,h=i[o].variants[s];a="string"==typeof h?{variant:h}:h.options,r={url:h.url||r.url,options:L.Util.extend({},r.options,a)}}else"function"==typeof r.url&&(r.url=r.url(n.splice(1,n.length-1).join(".")));var u="file:"===window.location.protocol||r.options.forceHTTP;0===r.url.indexOf("//")&&u&&(r.url="http:"+r.url);var l=function(t){return-1===t.indexOf("{attribution.")?t:t.replace(/\{attribution.(\w*)\}/,(function(t,e){return l(i[e].options.attribution)}))};r.options.attribution=l(r.options.attribution);var c=L.Util.extend({},r.options,e);L.TileLayer.prototype.initialize.call(this,r.url,c)}}),L.TileLayer.Provider.providers={OpenStreetMap:{url:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'© OpenStreetMap'},variants:{Mapnik:{},BlackAndWhite:{url:"http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png",options:{maxZoom:18}},DE:{url:"http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",options:{maxZoom:18}},France:{url:"http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",options:{attribution:"© Openstreetmap France | {attribution.OpenStreetMap}"}},HOT:{url:"http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap}, Tiles courtesy of Humanitarian OpenStreetMap Team'}}}},OpenSeaMap:{url:"http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png",options:{attribution:'Map data: © OpenSeaMap contributors'}},OpenTopoMap:{url:"//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",options:{maxZoom:16,attribution:'Map data: {attribution.OpenStreetMap}, SRTM | Map style: © OpenTopoMap (CC-BY-SA)'}},Thunderforest:{url:"//{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'© OpenCycleMap, {attribution.OpenStreetMap}',variant:"cycle"},variants:{OpenCycleMap:"cycle",Transport:{options:{variant:"transport",maxZoom:19}},TransportDark:{options:{variant:"transport-dark",maxZoom:19}},Landscape:"landscape",Outdoors:"outdoors"}},OpenMapSurfer:{url:"http://openmapsurfer.uni-hd.de/tiles/{variant}/x={x}&y={y}&z={z}",options:{maxZoom:20,variant:"roads",attribution:'Imagery from GIScience Research Group @ University of Heidelberg — Map data {attribution.OpenStreetMap}'},variants:{Roads:"roads",AdminBounds:{options:{variant:"adminb",maxZoom:19}},Grayscale:{options:{variant:"roadsg",maxZoom:19}}}},Hydda:{url:"http://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png",options:{variant:"full",attribution:'Tiles courtesy of OpenStreetMap Sweden — Map data {attribution.OpenStreetMap}'},variants:{Full:"full",Base:"base",RoadsAndLabels:"roads_and_labels"}},MapQuestOpen:{url:"http://otile{s}.mqcdn.com/tiles/1.0.0/{type}/{z}/{x}/{y}.{ext}",options:{type:"map",ext:"jpg",attribution:'Tiles Courtesy of MapQuest — Map data {attribution.OpenStreetMap}',subdomains:"1234"},variants:{OSM:{},Aerial:{options:{type:"sat",attribution:'Tiles Courtesy of MapQuest — Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'}},HybridOverlay:{options:{type:"hyb",ext:"png",opacity:.9}}}},MapBox:{url:function(t){return"//{s}.tiles.mapbox.com/v3/"+t+"/{z}/{x}/{y}.png"},options:{attribution:'Imagery from MapBox — Map data {attribution.OpenStreetMap}',subdomains:"abcd"}},Stamen:{url:"//stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.png",options:{attribution:'Map tiles by Stamen Design, CC BY 3.0 — Map data {attribution.OpenStreetMap}',subdomains:"abcd",minZoom:0,maxZoom:20,variant:"toner",ext:"png"},variants:{Toner:"toner",TonerBackground:"toner-background",TonerHybrid:"toner-hybrid",TonerLines:"toner-lines",TonerLabels:"toner-labels",TonerLite:"toner-lite",Watercolor:{options:{variant:"watercolor",minZoom:1,maxZoom:16}},Terrain:{options:{variant:"terrain",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TerrainBackground:{options:{variant:"terrain-background",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TopOSMRelief:{options:{variant:"toposm-color-relief",ext:"jpg",bounds:[[22,-132],[51,-56]]}},TopOSMFeatures:{options:{variant:"toposm-features",bounds:[[22,-132],[51,-56]],opacity:.9}}}},Esri:{url:"//server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}",options:{variant:"World_Street_Map",attribution:"Tiles © Esri"},variants:{WorldStreetMap:{options:{attribution:"{attribution.Esri} — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"}},DeLorme:{options:{variant:"Specialty/DeLorme_World_Base_Map",minZoom:1,maxZoom:11,attribution:"{attribution.Esri} — Copyright: ©2012 DeLorme"}},WorldTopoMap:{options:{variant:"World_Topo_Map",attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"}},WorldImagery:{options:{variant:"World_Imagery",attribution:"{attribution.Esri} — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"}},WorldTerrain:{options:{variant:"World_Terrain_Base",maxZoom:13,attribution:"{attribution.Esri} — Source: USGS, Esri, TANA, DeLorme, and NPS"}},WorldShadedRelief:{options:{variant:"World_Shaded_Relief",maxZoom:13,attribution:"{attribution.Esri} — Source: Esri"}},WorldPhysical:{options:{variant:"World_Physical_Map",maxZoom:8,attribution:"{attribution.Esri} — Source: US National Park Service"}},OceanBasemap:{options:{variant:"Ocean_Basemap",maxZoom:13,attribution:"{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri"}},NatGeoWorldMap:{options:{variant:"NatGeo_World_Map",maxZoom:16,attribution:"{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"}},WorldGrayCanvas:{options:{variant:"Canvas/World_Light_Gray_Base",maxZoom:16,attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ"}}}},OpenWeatherMap:{url:"http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'Map data © OpenWeatherMap',opacity:.5},variants:{Clouds:"clouds",CloudsClassic:"clouds_cls",Precipitation:"precipitation",PrecipitationClassic:"precipitation_cls",Rain:"rain",RainClassic:"rain_cls",Pressure:"pressure",PressureContour:"pressure_cntr",Wind:"wind",Temperature:"temp",Snow:"snow"}},HERE:{url:"//{s}.{base}.maps.cit.api.here.com/maptile/2.1/maptile/{mapID}/{variant}/{z}/{x}/{y}/256/png8?app_id={app_id}&app_code={app_code}",options:{attribution:'Map © 1987-2014 HERE',subdomains:"1234",mapID:"newest",app_id:"",app_code:"",base:"base",variant:"normal.day",maxZoom:20},variants:{normalDay:"normal.day",normalDayCustom:"normal.day.custom",normalDayGrey:"normal.day.grey",normalDayMobile:"normal.day.mobile",normalDayGreyMobile:"normal.day.grey.mobile",normalDayTransit:"normal.day.transit",normalDayTransitMobile:"normal.day.transit.mobile",normalNight:"normal.night",normalNightMobile:"normal.night.mobile",normalNightGrey:"normal.night.grey",normalNightGreyMobile:"normal.night.grey.mobile",carnavDayGrey:"carnav.day.grey",hybridDay:{options:{base:"aerial",variant:"hybrid.day"}},hybridDayMobile:{options:{base:"aerial",variant:"hybrid.day.mobile"}},pedestrianDay:"pedestrian.day",pedestrianNight:"pedestrian.night",satelliteDay:{options:{base:"aerial",variant:"satellite.day"}},terrainDay:{options:{base:"aerial",variant:"terrain.day"}},terrainDayMobile:{options:{base:"aerial",variant:"terrain.day.mobile"}}}},Acetate:{url:"http://a{s}.acetate.geoiq.com/tiles/{variant}/{z}/{x}/{y}.png",options:{attribution:"©2012 Esri & Stamen, Data from OSM and Natural Earth",subdomains:"0123",minZoom:2,maxZoom:18,variant:"acetate-base"},variants:{basemap:"acetate-base",terrain:"terrain",all:"acetate-hillshading",foreground:"acetate-fg",roads:"acetate-roads",labels:"acetate-labels",hillshading:"hillshading"}},FreeMapSK:{url:"http://{s}.freemap.sk/T/{z}/{x}/{y}.jpeg",options:{minZoom:8,maxZoom:16,subdomains:["t1","t2","t3","t4"],attribution:'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 Freemap.sk'}},MtbMap:{url:"http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png",options:{attribution:"{attribution.OpenStreetMap} & USGS"}},CartoDB:{url:"http://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap} © CartoDB',subdomains:"abcd",maxZoom:19,variant:"light_all"},variants:{Positron:"light_all",PositronNoLabels:"light_nolabels",DarkMatter:"dark_all",DarkMatterNoLabels:"dark_nolabels"}},HikeBike:{url:"http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:"{attribution.OpenStreetMap}",variant:"hikebike"},variants:{HikeBike:{},HillShading:{options:{maxZoom:15,variant:"hillshading"}}}},BasemapAT:{url:"//maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}",options:{maxZoom:19,attribution:'Datenquelle: basemap.at',subdomains:["","1","2","3","4"],format:"png",bounds:[[46.35877,8.782379],[49.037872,17.189532]],variant:"geolandbasemap"},variants:{basemap:"geolandbasemap",grau:"bmapgrau",overlay:"bmapoverlay",highdpi:{options:{variant:"bmaphidpi",format:"jpeg"}},orthofoto:{options:{variant:"bmaporthofoto30cm",format:"jpeg"}}}},NASAGIBS:{url:"//map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",options:{attribution:'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.',bounds:[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],minZoom:1,maxZoom:9,format:"jpg",time:"",tilematrixset:"GoogleMapsCompatible_Level"},variants:{ModisTerraTrueColorCR:"MODIS_Terra_CorrectedReflectance_TrueColor",ModisTerraBands367CR:"MODIS_Terra_CorrectedReflectance_Bands367",ViirsEarthAtNight2012:{options:{variant:"VIIRS_CityLights_2012",maxZoom:8}},ModisTerraLSTDay:{options:{variant:"MODIS_Terra_Land_Surface_Temp_Day",format:"png",maxZoom:7,opacity:.75}},ModisTerraSnowCover:{options:{variant:"MODIS_Terra_Snow_Cover",format:"png",maxZoom:8,opacity:.75}},ModisTerraAOD:{options:{variant:"MODIS_Terra_Aerosol",format:"png",maxZoom:6,opacity:.75}},ModisTerraChlorophyll:{options:{variant:"MODIS_Terra_Chlorophyll_A",format:"png",maxZoom:7,opacity:.75}}}}},L.tileLayer.provider=function(t,e){return new L.TileLayer.Provider(t,e)}}()},818:()=>{var t,e,i;t=L.Marker.prototype._initIcon,e=L.Marker.prototype._setPos,i="msTransform"===L.DomUtil.TRANSFORM,L.Marker.addInitHook((function(){var t=this.options.icon&&this.options.icon.options&&this.options.icon.options.iconAnchor;t&&(t=t[0]+"px "+t[1]+"px"),this.options.rotationOrigin=this.options.rotationOrigin||t||"center bottom",this.options.rotationAngle=this.options.rotationAngle||0,this.on("drag",(function(t){t.target._applyRotation()}))})),L.Marker.include({_initIcon:function(){t.call(this)},_setPos:function(t){e.call(this,t),this._applyRotation()},_applyRotation:function(){this.options.rotationAngle&&(this._icon.style[L.DomUtil.TRANSFORM+"Origin"]=this.options.rotationOrigin,i?this._icon.style[L.DomUtil.TRANSFORM]="rotate("+this.options.rotationAngle+"deg)":this._icon.style[L.DomUtil.TRANSFORM]+=" rotateZ("+this.options.rotationAngle+"deg)")},setRotationAngle:function(t){return this.options.rotationAngle=t,this.update(),this},setRotationOrigin:function(t){return this.options.rotationOrigin=t,this.update(),this}})},154:function(t,e,i){!function(t,e){"use strict";function i(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var n=i(e),o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},o(t,e)};function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var r=function(){return r=Object.assign||function(t){for(var e,i=1,n=arguments.length;ih&&++E=n)throw new EvalError("Direct vincenty formula failed to converge after ".concat(n," iterations \n (start=").concat(t.lat,"/").concat(t.lng,"; bearing=").concat(e,"; distance=").concat(i,")"));var k=g*T-m*M*f,C=Math.atan2(g*M+m*T*f,(1-d)*Math.sqrt(y*y+k*k)),O=d/16*b*(4+d*(4-3*b)),Z=s+(Math.atan2(T*p,m*M-g*T*f)-(1-O)*d*y*(P+O*T*(S+O*M*(2*S*S-1)))),A=Math.atan2(y,-k);return{lat:this.toDegrees(C),lng:this.toDegrees(Z),bearing:this.wrap360(this.toDegrees(A))}},t.prototype.inverse=function(t,e,i,o){void 0===i&&(i=100),void 0===o&&(o=!0);var s=t,r=e,a=this.toRadians(s.lat),h=this.toRadians(s.lng),u=this.toRadians(r.lat),l=this.toRadians(r.lng),c=Math.PI,d=Number.EPSILON,p=this.ellipsoid,f=p.a,_=p.b,m=p.f,g=l-h,v=(1-m)*Math.tan(a),y=1/Math.sqrt(1+v*v),b=v*y,w=(1-m)*Math.tan(u),x=1/Math.sqrt(1+w*w),L=w*x,P=Math.abs(g)>c/2||Math.abs(u-a)>c/2,T=g,M=null,S=null,z=P?c:0,E=0,k=P?-1:1,C=null,O=1,Z=null,A=1,B=null,I=null,N=0;do{if(C=x*(M=Math.sin(T))*(x*M)+(y*L-b*x*(S=Math.cos(T)))*(y*L-b*x*S),Math.abs(C)c)throw new EvalError("λ > π")}while(Math.abs(T-I)>1e-12&&++N=i){if(o)return this.inverse(t,new n.LatLng(e.lat,e.lng-.01),i,o);throw new EvalError("Inverse vincenty formula failed to converge after ".concat(i," iterations \n (start=").concat(t.lat,"/").concat(t.lng,"; dest=").concat(e.lat,"/").concat(e.lng,")"))}var R=A*(f*f-_*_)/(_*_),j=R/1024*(256+R*(R*(74-47*R)-128)),D=_*(1+R/16384*(4096+R*(R*(320-175*R)-768)))*(z-j*E*(O+j/4*(k*(2*O*O-1)-j/6*O*(4*E*E-3)*(4*O*O-3)))),F=Math.abs(C)0?v:2*p-v),w=(Math.sin(h-r)>0?2*p-y:y)-l;if(0===Math.sin(b)&&0===Math.sin(w))return null;if(Math.sin(b)*Math.sin(w)<0)return null;var x=-Math.cos(b)*Math.cos(w)+Math.sin(b)*Math.sin(w)*Math.cos(_),L=Math.atan2(Math.sin(_)*Math.sin(b)*Math.sin(w),Math.cos(w)+Math.cos(b)*x),P=Math.asin(Math.min(Math.max(Math.sin(s)*Math.cos(L)+Math.cos(s)*Math.sin(L)*Math.cos(u),-1),1)),T=r+Math.atan2(Math.sin(u)*Math.sin(L)*Math.cos(s),Math.cos(L)-Math.sin(s)*Math.sin(P));return new n.LatLng(this.toDegrees(P),this.toDegrees(T))},t.prototype.midpoint=function(t,e){var i=this.toRadians(t.lat),o=this.toRadians(t.lng),s=this.toRadians(e.lat),r=this.toRadians(e.lng-t.lng),a=Math.cos(i),h=0,u=Math.sin(i),l={x:a+Math.cos(s)*Math.cos(r),y:h+Math.cos(s)*Math.sin(r),z:u+Math.sin(s)},c=Math.atan2(l.z,Math.sqrt(l.x*l.x+l.y*l.y)),d=o+Math.atan2(l.y,l.x);return new n.LatLng(this.toDegrees(c),this.toDegrees(d))},t}(),u=function(){function t(t){this.geodesic=new h,this.steps=t&&void 0!==t.steps?t.steps:3}return t.prototype.recursiveMidpoint=function(t,e,i){var n=[t,e],o=this.geodesic.midpoint(t,e);return i>0?(n.splice.apply(n,a([0,1],this.recursiveMidpoint(t,o,i-1),!1)),n.splice.apply(n,a([n.length-2,2],this.recursiveMidpoint(o,e,i-1),!1))):n.splice(1,0,o),n},t.prototype.line=function(t,e){return this.recursiveMidpoint(t,e,Math.min(8,this.steps))},t.prototype.multiLineString=function(t){for(var e=[],i=0,n=t;i180?r.lng=r.lng-360:r.lng-s.lng<-180&&(r.lng=r.lng+360);var a=[[new n.LatLng(s.lat,this.geodesic.wrap(s.lng,180)),new n.LatLng(r.lat,this.geodesic.wrap(r.lng,180))]];if(s.lng>=-180&&s.lng<=180)if(r.lng<-180){var h=this.geodesic.inverse(s,r).initialBearing;(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[s,u],[new n.LatLng(u.lat,u.lng+360),new n.LatLng(r.lat,r.lng+360)]])}else r.lng>180&&(h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,o.point,o.bearing))&&(a=[[s,u],[new n.LatLng(u.lat,u.lng-360),new n.LatLng(r.lat,r.lng-360)]]));else if(r.lng>=-180&&r.lng<=180)if(s.lng<-180)h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[new n.LatLng(s.lat,s.lng+360),new n.LatLng(u.lat,u.lng+360)],[u,r]]);else if(s.lng>180){var u;h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[new n.LatLng(s.lat,s.lng-360),new n.LatLng(u.lat,u.lng-360)],[u,r]])}return a},t.prototype.splitMultiLineString=function(t){for(var e=[],i=0,n=t;i1&&(e.push(s),s=a[1])}e.push(s)}else e.push(o)}return e},t.prototype.wrapMultiLineString=function(t){for(var e=[],i=0,o=t;i0?Math.floor(t):Math.ceil(t)};function B(t,e,i){return t instanceof Z?t:g(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function I(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=N(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=N(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,kt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,e),window.removeEventListener("testPassiveEventSupport",u,e)}catch(t){}return t}(),Ct=!!document.createElement("canvas").getContext,Ot=!(!document.createElementNS||!X("svg").createSVGRect),Zt=!!Ot&&((Q=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(Q.firstChild&&Q.firstChild.namespaceURI)),At=!Ot&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Bt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var It={ie:et,ielt9:it,edge:nt,webkit:ot,android:st,android23:rt,androidStock:ht,opera:ut,chrome:lt,gecko:ct,safari:dt,phantom:pt,opera12:ft,win:_t,ie3d:mt,webkit3d:gt,gecko3d:vt,any3d:yt,mobile:bt,mobileWebkit:wt,mobileWebkit3d:xt,msPointer:Lt,pointer:Pt,touch:Mt,touchNative:Tt,mobileOpera:St,mobileGecko:zt,retina:Et,passiveEvents:kt,canvas:Ct,svg:Ot,vml:At,inlineSvg:Zt},Nt=It.msPointer?"MSPointerDown":"pointerdown",Rt=It.msPointer?"MSPointerMove":"pointermove",jt=It.msPointer?"MSPointerUp":"pointerup",Dt=It.msPointer?"MSPointerCancel":"pointercancel",Ft={touchstart:Nt,touchmove:Rt,touchend:jt,touchcancel:Dt},Ht={touchstart:$t,touchmove:Xt,touchend:Xt,touchcancel:Xt},Wt={},Ut=!1;function Gt(t,e,i){return"touchstart"===e&&Jt(),Ht[e]?(i=Ht[e].bind(this,i),t.addEventListener(Ft[e],i,!1),i):(console.warn("wrong event specified:",e),L.Util.falseFn)}function Vt(t,e,i){Ft[e]?t.removeEventListener(Ft[e],i,!1):console.warn("wrong event specified:",e)}function qt(t){Wt[t.pointerId]=t}function Kt(t){Wt[t.pointerId]&&(Wt[t.pointerId]=t)}function Yt(t){delete Wt[t.pointerId]}function Jt(){Ut||(document.addEventListener(Nt,qt,!0),document.addEventListener(Rt,Kt,!0),document.addEventListener(jt,Yt,!0),document.addEventListener(Dt,Yt,!0),Ut=!0)}function Xt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Wt)e.touches.push(Wt[i]);e.changedTouches=[e],t(e)}}function $t(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&qe(e),Xt(t,e)}function Qt(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return t=n,n.type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}var te=200;function ee(t,e){t.addEventListener("dblclick",e);var i,n=0;function o(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var o=Date.now();o-n<=te?2==++i&&e(Qt(t)):i=1,n=o}}else i=t.detail}return t.addEventListener("click",o),{dblclick:e,simDblclick:o}}function ie(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var ne,oe,se,re,ae,he=Te(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ue=Te(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),le="webkitTransition"===ue||"OTransition"===ue?ue+"End":"transitionend";function ce(t){return"string"==typeof t?document.getElementById(t):t}function de(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function pe(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function fe(t){var e=t.parentNode;e&&e.removeChild(t)}function _e(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function me(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=xe(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function ye(t,e){if(void 0!==t.classList)for(var i=d(e),n=0,o=i.length;nthis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,j(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=B((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=B(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=N([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=e.divideBy(2).round(),r=n.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o(this._handleGeolocationResponse,this),n=o(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,n,t):navigator.geolocation.getCurrentPosition(e,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new D(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),fe(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(S(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)fe(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=pe("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new R(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=j(t),i=B(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=N(this.project(a,n),this.project(r,n)).getSize(),l=It.any3d?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new I(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(F(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(B(t),e)},layerPointToLatLng:function(t){var e=B(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(F(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(F(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(j(t))},distance:function(t,e){return this.options.crs.distance(F(t),F(e))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(F(t)))},mouseEventToContainerPoint:function(t){return Ye(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ce(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Ne(e,"scroll",this._onScroll,this),this._containerId=r(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&It.any3d,ye(t,"leaflet-container"+(It.touch?" leaflet-touch":"")+(It.retina?" leaflet-retina":"")+(It.ielt9?" leaflet-oldie":"")+(It.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=de(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Se(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ye(t.markerPane,"leaflet-zoom-hide"),ye(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){Se(this._mapPane,new Z(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return S(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Se(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[r(this._container)]=this;var e=t?je:Ne;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),It.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){S(this._resizeRequest),this._resizeRequest=M((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,a=!1;s;){if((i=this._targets[r(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!$e(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n.length||a||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Oe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,e);if(n){for(var r=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=It.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){be(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=pe("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=he,i=this._proxy.style[e];Me(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){fe(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Me(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(M((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ye(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&be(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function ii(t,e){return new ei(t,e)}var ni=E.extend({options:{position:"topright"},initialize:function(t){p(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return ye(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(fe(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),oi=function(t){return new ni(t)};ei.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=pe("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=pe("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)fe(this._controlCorners[t]);fe(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var si=ni.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(r(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+r(this),n),this._layerControlInputs.push(e),e.layerId=r(t.layer),Ne(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),ri=function(t,e,i){return new si(t,e,i)},ai=ni.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=pe("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=pe("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ve(s),Ne(s,"click",Ke),Ne(s,"click",o,this),Ne(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";be(this._zoomInButton,e),be(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(ye(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(ye(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});ei.mergeOptions({zoomControl:!0}),ei.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new ai,this.addControl(this.zoomControl))}));var hi=function(t){return new ai(t)},ui=ni.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=pe("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=pe("div",e,i)),t.imperial&&(this._iScale=pe("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),li=function(t){return new ui(t)},ci='',di=ni.extend({options:{position:"bottomright",prefix:''+(It.inlineSvg?ci+" ":"")+"Leaflet"},initialize:function(t){p(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=pe("div","leaflet-control-attribution"),Ve(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});ei.mergeOptions({attributionControl:!0}),ei.addInitHook((function(){this.options.attributionControl&&(new di).addTo(this)}));var pi=function(t){return new di(t)};ni.Layers=si,ni.Zoom=ai,ni.Scale=ui,ni.Attribution=di,oi.layers=ri,oi.zoom=hi,oi.scale=li,oi.attribution=pi;var fi=E.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});fi.addTo=function(t,e){return t.addHandler(e,this),this};var _i,mi={Events:C},gi=It.touch?"touchstart mousedown":"mousedown",vi=O.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){p(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Ne(this._dragStartTarget,gi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(vi._dragging===this&&this.finishDrag(!0),je(this._dragStartTarget,gi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ve(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)vi._dragging===this&&this.finishDrag();else if(!(vi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(vi._dragging=this,this._preventOutline&&Oe(this._element),ke(),ne(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ae(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._startPos=ze(this._element),this._parentScale=Be(i);var n="mousedown"===t.type;Ne(document,n?"mousemove":"touchmove",this._onMove,this),Ne(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)h&&(s=r,h=a);h>i&&(e[s]=1,Li(t,e,i,n,s),Li(t,e,i,s,o))}function Pi(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function zi(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function Ei(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new Z(s,r)}function ki(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Ci(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ki(t)}var Oi={__proto__:null,simplify:yi,pointToSegmentDistance:bi,closestPointOnSegment:wi,clipSegment:Ti,_getEdgeIntersection:Mi,_getBitCode:Si,_sqClosestPointOnSegment:Ei,isFlat:ki,_flat:Ci};function Zi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new D(a*i,t.x*i/n)}},Ni={__proto__:null,LonLat:Bi,Mercator:Ii,SphericalMercator:V},Ri=i({},U,{code:"EPSG:3395",projection:Ii,transformation:function(){var t=.5/(Math.PI*Ii.R);return K(t,.5,-t,.5)}()}),ji=i({},U,{code:"EPSG:4326",projection:Bi,transformation:K(1/180,1,-1/180,.5)}),Di=i({},W,{projection:Bi,transformation:K(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});W.Earth=U,W.EPSG3395=Ri,W.EPSG3857=Y,W.EPSG900913=J,W.EPSG4326=ji,W.Simple=Di;var Fi=O.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[r(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[r(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});ei.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=r(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=r(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return r(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?g(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=F(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new R,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ki(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ki(t),n=0,o=t.length;n=2&&e[0]instanceof D&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){on.prototype._setLatLngs.call(this,t),ki(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ki(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new I(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||on.prototype._containsPoint.call(this,t,!0)}});function an(t,e){return new rn(t,e)}var hn=Ui.extend({initialize:function(t,e){p(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=g(t)?t:t.features;if(o){for(e=0,i=o.length;e0?n:[e.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var r=0;ro?(e.height=o+"px",ye(t,s)):be(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Se(this._container,e.add(i))},_adjustPan:function(t){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var e=this._map,i=parseInt(de(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+i,o=this._containerWidth,s=new Z(this._containerLeft,-n-this._containerBottom);s._add(ze(this._container));var r=e.layerPointToContainerPoint(s),a=B(this.options.autoPanPadding),h=B(this.options.autoPanPaddingTopLeft||a),u=B(this.options.autoPanPaddingBottomRight||a),l=e.getSize(),c=0,d=0;r.x+o+u.x>l.x&&(c=r.x+o-l.x+u.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+n+u.y>l.y&&(d=r.y+n-l.y+u.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&e.fire("autopanstart").panBy([c,d],{animate:t&&"moveend"===t.type})}},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),zn=function(t,e){return new Sn(t,e)};ei.mergeOptions({closePopupOnClick:!0}),ei.include({openPopup:function(t,e,i){return this._initOverlay(Sn,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Fi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Sn,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Ke(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof $i?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var En=Mn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Mn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Mn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Mn.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=pe("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=B(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new Z(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new Z(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var f=this._tiles[this._tileCoordsToKey(p)];f?f.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return j(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new R(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(fe(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ye(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,It.ielt9&&this.options.opacity<1&&Le(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&M(o(this._tileReady,this,t,null,s)),Se(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(Le(i.el,0),S(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(ye(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),It.ielt9||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?h(t.x,this._wrapX):t.x,this._wrapY?h(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new I(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function An(t){return new Zn(t)}var Bn=Zn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=p(this,e)).detectRetina&&It.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Ne(i,"load",o(this._tileOnLoad,this,e,i)),Ne(i,"error",o(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:It.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return m(this._url,i(e,this.options))},_tileOnLoad:function(t,e){It.ielt9?setTimeout(o(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=u,e.onerror=u,!e.complete)){e.src=y;var i=this._tiles[t].coords;fe(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",y),Zn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==y))return Zn.prototype._tileReady.call(this,t,e,i)}});function In(t,e){return new Bn(t,e)}var Nn=Bn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=p(this,e)).detectRetina&&It.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Bn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=N(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===ji?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Bn.prototype.getTileUrl.call(this,t);return a+f(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});function Rn(t,e){return new Nn(t,e)}Bn.WMS=Nn,In.wms=Rn;var jn=Fi.extend({options:{padding:.1},initialize:function(t){p(this,t),r(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&ye(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));It.any3d?Me(this._container,s,i):Se(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new I(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Dn=jn.extend({options:{tolerance:0},getEvents:function(){var t=jn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){jn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ne(t,"mousemove",this._onMouseMove,this),Ne(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ne(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){S(this._redrawRequest),delete this._ctx,fe(this._container),je(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){jn.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=It.retina?2:1;Se(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",It.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){jn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[r(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[r(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Wn={_initContainer:function(){this._container=pe("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(jn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Hn("shape");ye(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Hn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;fe(e),t.removeInteractiveTarget(e),delete this._layers[r(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Hn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Hn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){me(t._container)},_bringToBack:function(t){ge(t._container)}},Un=It.vml?Hn:X,Gn=jn.extend({_initContainer:function(){this._container=Un("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Un("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){fe(this._container),je(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){jn.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Se(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Un("path");t.options.className&&ye(e,t.options.className),t.options.interactive&&ye(e,"leaflet-interactive"),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){fe(t._path),t.removeInteractiveTarget(t._path),delete this._layers[r(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,$(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){me(t._path)},_bringToBack:function(t){ge(t._path)}});function Vn(t){return It.svg||It.vml?new Gn(t):null}It.vml&&Gn.include(Wn),ei.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Fn(t)||Vn(t)}});var qn=rn.extend({initialize:function(t,e){rn.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=j(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Kn(t,e){return new qn(t,e)}Gn.create=Un,Gn.pointsToPath=$,hn.geometryToLayer=un,hn.coordsToLatLng=cn,hn.coordsToLatLngs=dn,hn.latLngToCoords=pn,hn.latLngsToCoords=fn,hn.getFeature=_n,hn.asFeature=mn,ei.mergeOptions({boxZoom:!0});var Yn=fi.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ne(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){je(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){fe(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),ne(),ke(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ne(document,{contextmenu:Ke,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=pe("div","leaflet-zoom-box",this._container),ye(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new I(this._point,this._startPoint),i=e.getSize();Se(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(fe(this._box),be(this._container,"leaflet-crosshair")),oe(),Ce(),je(document,{contextmenu:Ke,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var e=new R(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ei.addInitHook("addHandler","boxZoom",Yn),ei.mergeOptions({doubleClickZoom:!0});var Jn=fi.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});ei.addInitHook("addHandler","doubleClickZoom",Jn),ei.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Xn=fi.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new vi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ye(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){be(this._map._container,"leaflet-grab"),be(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=j(this._map.options.maxBounds);this._offsetLimit=N(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});ei.addInitHook("addHandler","scrollWheelZoom",Qn);var to=600;ei.mergeOptions({tapHold:It.touchNative&&It.safari&&It.mobile,tapTolerance:15});var eo=fi.extend({addHooks:function(){Ne(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){je(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new Z(e.clientX,e.clientY),this._holdTimeout=setTimeout(o((function(){this._cancel(),this._isTapValid()&&(Ne(document,"touchend",qe),Ne(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),to),Ne(document,"touchend touchcancel contextmenu",this._cancel,this),Ne(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){je(document,"touchend",qe),je(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),je(document,"touchend touchcancel contextmenu",this._cancel,this),je(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});ei.addInitHook("addHandler","tapHold",eo),ei.mergeOptions({touchZoom:It.touch,bounceAtZoomLimits:!0});var io=fi.extend({addHooks:function(){ye(this._map._container,"leaflet-touch-zoom"),Ne(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){be(this._map._container,"leaflet-touch-zoom"),je(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Ne(document,"touchmove",this._onTouchMove,this),Ne(document,"touchend touchcancel",this._onTouchEnd,this),qe(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),S(this._animRequest);var a=o(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=M(a,this,!0),qe(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,S(this._animRequest),je(document,"touchmove",this._onTouchMove,this),je(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});ei.addInitHook("addHandler","touchZoom",io),ei.BoxZoom=Yn,ei.DoubleClickZoom=Jn,ei.Drag=Xn,ei.Keyboard=$n,ei.ScrollWheelZoom=Qn,ei.TapHold=eo,ei.TouchZoom=io,t.Bounds=I,t.Browser=It,t.CRS=W,t.Canvas=Dn,t.Circle=en,t.CircleMarker=Qi,t.Class=E,t.Control=ni,t.DivIcon=Cn,t.DivOverlay=Mn,t.DomEvent=Qe,t.DomUtil=Ie,t.Draggable=vi,t.Evented=O,t.FeatureGroup=Ui,t.GeoJSON=hn,t.GridLayer=Zn,t.Handler=fi,t.Icon=Vi,t.ImageOverlay=bn,t.LatLng=D,t.LatLngBounds=R,t.Layer=Fi,t.LayerGroup=Hi,t.LineUtil=Oi,t.Map=ei,t.Marker=Ji,t.Mixin=mi,t.Path=$i,t.Point=Z,t.PolyUtil=Ai,t.Polygon=rn,t.Polyline=on,t.Popup=Sn,t.PosAnimation=ti,t.Projection=Ni,t.Rectangle=qn,t.Renderer=jn,t.SVG=Gn,t.SVGOverlay=Pn,t.TileLayer=Bn,t.Tooltip=En,t.Transformation=q,t.Util=z,t.VideoOverlay=xn,t.bind=o,t.bounds=N,t.canvas=Fn,t.circle=nn,t.circleMarker=tn,t.control=oi,t.divIcon=On,t.extend=i,t.featureGroup=Gi,t.geoJSON=vn,t.geoJson=yn,t.gridLayer=An,t.icon=qi,t.imageOverlay=wn,t.latLng=F,t.latLngBounds=j,t.layerGroup=Wi,t.map=ii,t.marker=Xi,t.point=B,t.polygon=an,t.polyline=sn,t.popup=zn,t.rectangle=Kn,t.setOptions=p,t.stamp=r,t.svg=Vn,t.svgOverlay=Tn,t.tileLayer=In,t.tooltip=kn,t.transformation=K,t.version=e,t.videoOverlay=Ln;var no=window.L;t.noConflict=function(){return window.L=no,this},window.L=t}(e)},155:t=>{var e,i,n=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function r(t){if(e===setTimeout)return setTimeout(t,0);if((e===o||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(i){try{return e.call(null,t,0)}catch(i){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:o}catch(t){e=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var a,h=[],u=!1,l=-1;function c(){u&&a&&(u=!1,a.length?h=a.concat(h):l=-1,h.length&&d())}function d(){if(!u){var t=r(c);u=!0;for(var e=h.length;e;){for(a=h,h=[];++l1)for(var i=1;i0&&n=0?this.static[r]=n.value:a.type===s.TypeParser.types.primitive?this.static[r]=a.value:this.observers[r]=n.value)}return p(e,t),e.prototype.sync=function(){},e.prototype.update=function(){},e.prototype.publish=function(){},e.prototype.locals=function(){var t,e,i,n,o,s;for(t in i={},o=this.static)n=o[t],i[t]=n;for(t in s=this.observers)e=s[t],i[t]=e.value();return i},e.prototype.camelCase=function(t){return t.replace(/-([a-z])/g,(function(t){return t[1].toUpperCase()}))},e.prototype.bind=function(){var t,e,i,n,o,r,a,h,u,l,c,d,p,f,_,m,g,v,y,b;if(!this.bound){for(e in f=this.observers)i=f[e],this.observers[e]=this.observe(this.view.models,i,function(t){return function(e){return function(){return t.componentView.models[e]=t.observers[e].value()}}}(this).call(this,e));this.bound=!0}if(null!=this.componentView)this.componentView.bind();else{for(this.el.innerHTML=this.component.template.call(this),a=this.component.initialize.call(this,this.el,this.locals()),this.el._bound=!0,r={},l=0,d=(_=s.extensions).length;l=0));return u}}else if((null!=e?e.toString():void 0)!==(null!=(h=t.value)?h.toString():void 0))return t.value=null!=e?e:""}},s.public.binders.if={block:!0,priority:4e3,bind:function(t){var e,i;if(null==this.marker)return e=[this.view.prefix,this.type].join("-").replace("--","-"),i=t.getAttribute(e),this.marker=document.createComment(" rivets: "+this.type+" "+i+" "),this.bound=!1,t.removeAttribute(e),t.parentNode.insertBefore(this.marker,t),t.parentNode.removeChild(t)},unbind:function(){if(this.nested)return this.nested.unbind(),this.bound=!1},routine:function(t,e){var i,n,o,r;if(!!e==!this.bound){if(e){for(i in o={},r=this.view.models)n=r[i],o[i]=n;return(this.nested||(this.nested=new s.View(t,o,this.view.options()))).bind(),this.marker.parentNode.insertBefore(t,this.marker.nextSibling),this.bound=!0}return t.parentNode.removeChild(t),this.nested.unbind(),this.bound=!1}},update:function(t){var e;return null!=(e=this.nested)?e.update(t):void 0}},s.public.binders.unless={block:!0,priority:4e3,bind:function(t){return s.public.binders.if.bind.call(this,t)},unbind:function(){return s.public.binders.if.unbind.call(this)},routine:function(t,e){return s.public.binders.if.routine.call(this,t,!e)},update:function(t){return s.public.binders.if.update.call(this,t)}},s.public.binders["on-*"]={function:!0,priority:1e3,unbind:function(t){if(this.handler)return s.Util.unbindEvent(t,this.args[0],this.handler)},routine:function(t,e){return this.handler&&s.Util.unbindEvent(t,this.args[0],this.handler),s.Util.bindEvent(t,this.args[0],this.handler=this.eventHandler(e))}},s.public.binders["each-*"]={block:!0,priority:4e3,bind:function(t){var e,i,n,o;if(null==this.marker)e=[this.view.prefix,this.type].join("-").replace("--","-"),this.marker=document.createComment(" rivets: "+this.type+" "),this.iterated=[],t.removeAttribute(e),t.parentNode.insertBefore(this.marker,t),t.parentNode.removeChild(t);else for(i=0,n=(o=this.iterated).length;ie.length)for(p=0,m=(y=Array(this.iterated.length-e.length)).length;p=0&&s.splice(n,1),s.length||delete o.pointers[e],this.cleanupWeakReference(o,t[this.id])},observe:function(t,e,i){var n,o,s,r;return null==(n=this.weakReference(t).callbacks)[e]&&(n[e]=[],(null!=(o=Object.getOwnPropertyDescriptor(t,e))?o.get:void 0)||(null!=o?o.set:void 0)||(s=t[e],Object.defineProperty(t,e,{enumerable:!0,get:function(){return s},set:(r=this,function(i){var o,a,h,u,l;if(i!==s&&(r.unobserveMutations(s,t[r.id],e),s=i,a=r.weakmap[t[r.id]])){if((n=a.callbacks)[e])for(h=0,u=(l=n[e].slice()).length;h=0&&o();return r.observeMutations(i,t[r.id],e)}})}))),f.call(n[e],i)<0&&n[e].push(i),this.observeMutations(t[e],t[this.id],e)},unobserve:function(t,e,i){var n,o,s;if((s=this.weakmap[t[this.id]])&&(n=s.callbacks[e]))return(o=n.indexOf(i))>=0&&(n.splice(o,1),n.length||(delete s.callbacks[e],this.unobserveMutations(t[e],t[this.id],e))),this.cleanupWeakReference(s,t[this.id])},get:function(t,e){return t[e]},set:function(t,e,i){return t[e]=i}},s.factory=function(t){return s.sightglass=t,s.public._=s,s.public},"object"==typeof(null!==t?t.exports:void 0)?t.exports=s.factory(i(206)):(n=[i(206)],void 0===(o=function(t){return this.rivets=s.factory(t)}.apply(e,n))||(t.exports=o))}.call(this)},206:function(t,e){var i;(function(){function n(t,e,i,n){return new o(t,e,i,n)}function o(t,e,i,n){this.options=n||{},this.options.adapters=this.options.adapters||{},this.obj=t,this.keypath=e,this.callback=i,this.objectPath=[],this.update=this.update.bind(this),this.parse(),s(this.target=this.realize())&&this.set(!0,this.key,this.target,this.callback)}function s(t){return"object"==typeof t&&null!==t}function r(t){throw new Error("[sightglass] "+t)}n.adapters={},o.tokenize=function(t,e,i){var n,o,s=[],r={i,path:""};for(n=0;n{"use strict";t.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";var t=i(152);function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(){n=function(){return t};var t={},i=Object.prototype,o=i.hasOwnProperty,s="function"==typeof Symbol?Symbol:{},r=s.iterator||"@@iterator",a=s.asyncIterator||"@@asyncIterator",h=s.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,r,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==i&&o.call(v,r)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,i){function n(s,r,a,h){var u=c(t[s],t,r);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==e(d)&&o.call(d,"__await")?i.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):i.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var s;this._invoke=function(t,e){function o(){return new i((function(i,o){n(t,e,i,o)}))}return s=s?s.then(o,o):o()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,n=function e(){for(;++i=0;--n){var s=this.tryEntries[n],r=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var a=o.call(s,"catchLoc"),h=o.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function o(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}const s=function(){var e,i=(e=n().mark((function e(i){var o,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o={method:"GET",url:"/api/airports/".concat(i,"/lookup")},e.next=3,(0,t.Z)(o);case 3:return s=e.sent,console.log("lookup raw response: ",s),e.abrupt("return",s.data);case 6:case"end":return e.stop()}}),e)})),function(){var t=this,i=arguments;return new Promise((function(n,s){var r=e.apply(t,i);function a(t){o(r,n,s,a,h,"next",t)}function h(t){o(r,n,s,a,h,"throw",t)}a(void 0)}))});return function(t){return i.apply(this,arguments)}}();function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function a(){a=function(){return t};var t={},e=Object.prototype,i=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",s=n.asyncIterator||"@@asyncIterator",h=n.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,o,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==e&&i.call(v,o)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function n(o,s,a,h){var u=c(t[o],t,s);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==r(d)&&i.call(d,"__await")?e.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):e.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var o;this._invoke=function(t,i){function s(){return new e((function(e,o){n(t,i,e,o)}))}return o=o?o.then(s,s):s()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,s=function e(){for(;++n=0;--o){var s=this.tryEntries[o],r=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var a=i.call(s,"catchLoc"),h=i.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function h(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}const u=function(){var e,i=(e=a().mark((function e(i,n){var o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o={method:"GET",url:"/api/airports/".concat(i,"/distance/").concat(n)},e.next=3,(0,t.Z)(o);case 3:return s=e.sent,e.abrupt("return",s.data);case 5:case"end":return e.stop()}}),e)})),function(){var t=this,i=arguments;return new Promise((function(n,o){var s=e.apply(t,i);function r(t){h(s,n,o,r,a,"next",t)}function a(t){h(s,n,o,r,a,"throw",t)}r(void 0)}))});return function(t,e){return i.apply(this,arguments)}}();i(928),window.phpvms.airport_lookup=s,window.phpvms.calculate_distance=u,window.phpvms.map=i(201)})()})(); +(()=>{var t={669:(t,e,i)=>{t.exports=i(609)},448:(t,e,i)=>{"use strict";var n=i(867),o=i(26),s=i(372),r=i(327),a=i(97),h=i(109),u=i(985),l=i(61);t.exports=function(t){return new Promise((function(e,i){var c=t.data,d=t.headers,p=t.responseType;n.isFormData(c)&&delete d["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var _=t.auth.username||"",m=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";d.Authorization="Basic "+btoa(_+":"+m)}var g=a(t.baseURL,t.url);function v(){if(f){var n="getAllResponseHeaders"in f?h(f.getAllResponseHeaders()):null,s={data:p&&"text"!==p&&"json"!==p?f.response:f.responseText,status:f.status,statusText:f.statusText,headers:n,config:t,request:f};o(e,i,s),f=null}}if(f.open(t.method.toUpperCase(),r(g,t.params,t.paramsSerializer),!0),f.timeout=t.timeout,"onloadend"in f?f.onloadend=v:f.onreadystatechange=function(){f&&4===f.readyState&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))&&setTimeout(v)},f.onabort=function(){f&&(i(l("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){i(l("Network Error",t,null,f)),f=null},f.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),i(l(e,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||u(g))&&t.xsrfCookieName?s.read(t.xsrfCookieName):void 0;y&&(d[t.xsrfHeaderName]=y)}"setRequestHeader"in f&&n.forEach(d,(function(t,e){void 0===c&&"content-type"===e.toLowerCase()?delete d[e]:f.setRequestHeader(e,t)})),n.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),p&&"json"!==p&&(f.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&f.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){f&&(f.abort(),i(t),f=null)})),c||(c=null),f.send(c)}))}},609:(t,e,i)=>{"use strict";var n=i(867),o=i(849),s=i(321),r=i(185);function a(t){var e=new s(t),i=o(s.prototype.request,e);return n.extend(i,s.prototype,e),n.extend(i,e),i}var h=a(i(655));h.Axios=s,h.create=function(t){return a(r(h.defaults,t))},h.Cancel=i(263),h.CancelToken=i(972),h.isCancel=i(502),h.all=function(t){return Promise.all(t)},h.spread=i(713),h.isAxiosError=i(268),t.exports=h,t.exports.default=h},263:t=>{"use strict";function e(t){this.message=t}e.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},e.prototype.__CANCEL__=!0,t.exports=e},972:(t,e,i)=>{"use strict";var n=i(263);function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var i=this;t((function(t){i.reason||(i.reason=new n(t),e(i.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o((function(e){t=e})),cancel:t}},t.exports=o},502:t=>{"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},321:(t,e,i)=>{"use strict";var n=i(867),o=i(327),s=i(782),r=i(572),a=i(185),h=i(875),u=h.validators;function l(t){this.defaults=t,this.interceptors={request:new s,response:new s}}l.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=a(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=t.transitional;void 0!==e&&h.assertOptions(e,{silentJSONParsing:u.transitional(u.boolean,"1.0.0"),forcedJSONParsing:u.transitional(u.boolean,"1.0.0"),clarifyTimeoutError:u.transitional(u.boolean,"1.0.0")},!1);var i=[],n=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(n=n&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));var o,s=[];if(this.interceptors.response.forEach((function(t){s.push(t.fulfilled,t.rejected)})),!n){var l=[r,void 0];for(Array.prototype.unshift.apply(l,i),l=l.concat(s),o=Promise.resolve(t);l.length;)o=o.then(l.shift(),l.shift());return o}for(var c=t;i.length;){var d=i.shift(),p=i.shift();try{c=d(c)}catch(t){p(t);break}}try{o=r(c)}catch(t){return Promise.reject(t)}for(;s.length;)o=o.then(s.shift(),s.shift());return o},l.prototype.getUri=function(t){return t=a(this.defaults,t),o(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(t){l.prototype[t]=function(e,i){return this.request(a(i||{},{method:t,url:e,data:(i||{}).data}))}})),n.forEach(["post","put","patch"],(function(t){l.prototype[t]=function(e,i,n){return this.request(a(n||{},{method:t,url:e,data:i}))}})),t.exports=l},782:(t,e,i)=>{"use strict";var n=i(867);function o(){this.handlers=[]}o.prototype.use=function(t,e,i){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){n.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=o},97:(t,e,i)=>{"use strict";var n=i(793),o=i(303);t.exports=function(t,e){return t&&!n(e)?o(t,e):e}},61:(t,e,i)=>{"use strict";var n=i(481);t.exports=function(t,e,i,o,s){var r=new Error(t);return n(r,e,i,o,s)}},572:(t,e,i)=>{"use strict";var n=i(867),o=i(527),s=i(502),r=i(655);function a(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return a(t),t.headers=t.headers||{},t.data=o.call(t,t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||r.adapter)(t).then((function(e){return a(t),e.data=o.call(t,e.data,e.headers,t.transformResponse),e}),(function(e){return s(e)||(a(t),e&&e.response&&(e.response.data=o.call(t,e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))}},481:t=>{"use strict";t.exports=function(t,e,i,n,o){return t.config=e,i&&(t.code=i),t.request=n,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}},185:(t,e,i)=>{"use strict";var n=i(867);t.exports=function(t,e){e=e||{};var i={},o=["url","method","data"],s=["headers","auth","proxy","params"],r=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function h(t,e){return n.isPlainObject(t)&&n.isPlainObject(e)?n.merge(t,e):n.isPlainObject(e)?n.merge({},e):n.isArray(e)?e.slice():e}function u(o){n.isUndefined(e[o])?n.isUndefined(t[o])||(i[o]=h(void 0,t[o])):i[o]=h(t[o],e[o])}n.forEach(o,(function(t){n.isUndefined(e[t])||(i[t]=h(void 0,e[t]))})),n.forEach(s,u),n.forEach(r,(function(o){n.isUndefined(e[o])?n.isUndefined(t[o])||(i[o]=h(void 0,t[o])):i[o]=h(void 0,e[o])})),n.forEach(a,(function(n){n in e?i[n]=h(t[n],e[n]):n in t&&(i[n]=h(void 0,t[n]))}));var l=o.concat(s).concat(r).concat(a),c=Object.keys(t).concat(Object.keys(e)).filter((function(t){return-1===l.indexOf(t)}));return n.forEach(c,u),i}},26:(t,e,i)=>{"use strict";var n=i(61);t.exports=function(t,e,i){var o=i.config.validateStatus;i.status&&o&&!o(i.status)?e(n("Request failed with status code "+i.status,i.config,null,i.request,i)):t(i)}},527:(t,e,i)=>{"use strict";var n=i(867),o=i(655);t.exports=function(t,e,i){var s=this||o;return n.forEach(i,(function(i){t=i.call(s,t,e)})),t}},655:(t,e,i)=>{"use strict";var n=i(155),o=i(867),s=i(16),r=i(481),a={"Content-Type":"application/x-www-form-urlencoded"};function h(t,e){!o.isUndefined(t)&&o.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var u,l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==n&&"[object process]"===Object.prototype.toString.call(n))&&(u=i(448)),u),transformRequest:[function(t,e){return s(e,"Accept"),s(e,"Content-Type"),o.isFormData(t)||o.isArrayBuffer(t)||o.isBuffer(t)||o.isStream(t)||o.isFile(t)||o.isBlob(t)?t:o.isArrayBufferView(t)?t.buffer:o.isURLSearchParams(t)?(h(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):o.isObject(t)||e&&"application/json"===e["Content-Type"]?(h(e,"application/json"),function(t,e,i){if(o.isString(t))try{return(e||JSON.parse)(t),o.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(i||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional,i=e&&e.silentJSONParsing,n=e&&e.forcedJSONParsing,s=!i&&"json"===this.responseType;if(s||n&&o.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(s){if("SyntaxError"===t.name)throw r(t,this,"E_JSON_PARSE");throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},o.forEach(["delete","get","head"],(function(t){l.headers[t]={}})),o.forEach(["post","put","patch"],(function(t){l.headers[t]=o.merge(a)})),t.exports=l},849:t=>{"use strict";t.exports=function(t,e){return function(){for(var i=new Array(arguments.length),n=0;n{"use strict";var n=i(867);function o(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,i){if(!e)return t;var s;if(i)s=i(e);else if(n.isURLSearchParams(e))s=e.toString();else{var r=[];n.forEach(e,(function(t,e){null!=t&&(n.isArray(t)?e+="[]":t=[t],n.forEach(t,(function(t){n.isDate(t)?t=t.toISOString():n.isObject(t)&&(t=JSON.stringify(t)),r.push(o(e)+"="+o(t))})))})),s=r.join("&")}if(s){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t}},303:t=>{"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},372:(t,e,i)=>{"use strict";var n=i(867);t.exports=n.isStandardBrowserEnv()?{write:function(t,e,i,o,s,r){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(i)&&a.push("expires="+new Date(i).toGMTString()),n.isString(o)&&a.push("path="+o),n.isString(s)&&a.push("domain="+s),!0===r&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},793:t=>{"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},268:t=>{"use strict";t.exports=function(t){return"object"==typeof t&&!0===t.isAxiosError}},985:(t,e,i)=>{"use strict";var n=i(867);t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");function o(t){var n=t;return e&&(i.setAttribute("href",n),n=i.href),i.setAttribute("href",n),{href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}return t=o(window.location.href),function(e){var i=n.isString(e)?o(e):e;return i.protocol===t.protocol&&i.host===t.host}}():function(){return!0}},16:(t,e,i)=>{"use strict";var n=i(867);t.exports=function(t,e){n.forEach(t,(function(i,n){n!==e&&n.toUpperCase()===e.toUpperCase()&&(t[e]=i,delete t[n])}))}},109:(t,e,i)=>{"use strict";var n=i(867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,i,s,r={};return t?(n.forEach(t.split("\n"),(function(t){if(s=t.indexOf(":"),e=n.trim(t.substr(0,s)).toLowerCase(),i=n.trim(t.substr(s+1)),e){if(r[e]&&o.indexOf(e)>=0)return;r[e]="set-cookie"===e?(r[e]?r[e]:[]).concat([i]):r[e]?r[e]+", "+i:i}})),r):r}},713:t=>{"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},875:(t,e,i)=>{"use strict";var n=i(593),o={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){o[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}}));var s={},r=n.version.split(".");function a(t,e){for(var i=e?e.split("."):r,n=t.split("."),o=0;o<3;o++){if(i[o]>n[o])return!0;if(i[o]0;){var s=n[o],r=e[s];if(r){var a=t[s],h=void 0===a||r(a,s,t);if(!0!==h)throw new TypeError("option "+s+" must be "+h)}else if(!0!==i)throw Error("Unknown option "+s)}},validators:o}},867:(t,e,i)=>{"use strict";var n=i(849),o=Object.prototype.toString;function s(t){return"[object Array]"===o.call(t)}function r(t){return void 0===t}function a(t){return null!==t&&"object"==typeof t}function h(t){if("[object Object]"!==o.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function u(t){return"[object Function]"===o.call(t)}function l(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),s(t))for(var i=0,n=t.length;i{"use strict";function n(t,e){for(var i=0;i{var n=i(551);n.formatters.prepend=function(t,e){return e+t},n.formatters.time_hm=function(t){var e=Math.floor(t/60),i=t%60;return"".concat(e,"h ").concat(i,"m")},n.formatters.gt=function(t,e){return t.length>e},n.formatters.lt=function(t,e){return t.lengthe},n.formatters.fallback=function(t,e){return t||e}},546:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var n=document.head.querySelector('meta[name="base-url"]'),o=document.head.querySelector('meta[name="csrf-token"]');const s={api_key:document.head.querySelector('meta[name="api-key"]').content||"",base_url:n.content||"",csrf_token:o.content||""}},201:(t,e,i)=>{"use strict";i.r(e),i.d(e,{render_airspace_map:()=>h,render_base_map:()=>o,render_live_map:()=>gn,render_route_map:()=>bn});var n=i(243);i(978);const o=function(t){var e=Object.assign({render_elem:"map",center:[29.98139,-95.33374],zoom:5,maxZoom:10,layers:[],set_marker:!1,leafletOptions:{}},t),i=Object.assign({center:e.center,zoom:e.zoom,scrollWheelZoom:!1,providers:{}},e.leafletOptions);0===Object.entries(i.providers).length&&(i.providers={"Esri.WorldStreetMap":{}});var o=n.map("map",i);for(var s in i.providers)n.tileLayer.provider(s,i.providers[s]).addTo(o);return o};var s=i(243);function r(t,e){if(""===e.url)return null;e.params=Object.assign({format:"image/png",transparent:!0,maxZoom:14,minZoom:4},e.params);var i=s.tileLayer.wms(e.url,e.params);return i.addTo(t),i}var a=i(243);const h=function(t){var e=Object.assign({render_elem:"map",overlay_elem:"",lat:0,lon:0,zoom:12,layers:[],set_marker:!0,marker_popup:"",metar_wms:{url:"",params:{}}},t),i=o(e),n=[e.lat,e.lon];return console.log("Applying coords",n),i.setView(n,e.zoom),!0===e.set_marker&&a.marker(n).addTo(i).bindPopup(e.marker_popup),""!==e.metar_wms.url&&r(i,e.metar_wms),i};var u="#067ec1",l=i(228);function c(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function H(t,e,i){return t instanceof D?t:S(t)?new D(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new D(t.x,t.y):new D(t,e,i)}function W(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=V(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=V(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Rt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",v,e),window.removeEventListener("testPassiveEventSupport",v,e)}catch(t){}return t}(),jt=!!document.createElement("canvas").getContext,Dt=!(!document.createElementNS||!st("svg").createSVGRect),Ft=!!Dt&&((at=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(at.firstChild&&at.firstChild.namespaceURI)),Ht=!Dt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Wt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Ut={ie:ut,ielt9:lt,edge:ct,webkit:dt,android:pt,android23:ft,androidStock:mt,opera:gt,chrome:vt,gecko:yt,safari:bt,phantom:wt,opera12:xt,win:Lt,ie3d:Pt,webkit3d:Tt,gecko3d:Mt,any3d:St,mobile:zt,mobileWebkit:Et,mobileWebkit3d:kt,msPointer:Ct,pointer:Ot,touch:At,touchNative:Zt,mobileOpera:Bt,mobileGecko:It,retina:Nt,passiveEvents:Rt,canvas:jt,svg:Dt,vml:Ht,inlineSvg:Ft},Gt=Ut.msPointer?"MSPointerDown":"pointerdown",Vt=Ut.msPointer?"MSPointerMove":"pointermove",qt=Ut.msPointer?"MSPointerUp":"pointerup",Kt=Ut.msPointer?"MSPointerCancel":"pointercancel",Yt={touchstart:Gt,touchmove:Vt,touchend:qt,touchcancel:Kt},Jt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Ve(e);ne(t,e)},touchmove:ne,touchend:ne,touchcancel:ne},Xt={},$t=!1;function Qt(t,e,i){return"touchstart"===e&&($t||(document.addEventListener(Gt,te,!0),document.addEventListener(Vt,ee,!0),document.addEventListener(qt,ie,!0),document.addEventListener(Kt,ie,!0),$t=!0)),Jt[e]?(i=Jt[e].bind(this,i),t.addEventListener(Yt[e],i,!1),i):(console.warn("wrong event specified:",e),L.Util.falseFn)}function te(t){Xt[t.pointerId]=t}function ee(t){Xt[t.pointerId]&&(Xt[t.pointerId]=t)}function ie(t){delete Xt[t.pointerId]}function ne(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Xt)e.touches.push(Xt[i]);e.changedTouches=[e],t(e)}}var oe,se,re,ae,he,ue=Te(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),le=Te(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ce="webkitTransition"===le||"OTransition"===le?le+"End":"transitionend";function de(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function fe(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function _e(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ge(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ve(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ye(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=Le(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function be(t,e){if(void 0!==t.classList)for(var i=w(e),n=0,o=i.length;nthis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,V(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=H((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=H(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=U([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=c({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),o=i.divideBy(2).round(),s=n.subtract(o);return s.x||s.y?(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(p(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=c({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=p(this._handleGeolocationResponse,this),i=p(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new q(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),_e(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(I(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)_e(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=fe("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new G(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=V(t),i=H(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=U(this.project(a,n),this.project(r,n)).getSize(),l=Ut.any3d?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new D(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new W(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(K(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(H(t),e)},layerPointToLatLng:function(t){var e=H(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(K(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(K(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(V(t))},distance:function(t,e){return this.options.crs.distance(K(t),K(e))},containerPointToLayerPoint:function(t){return H(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return H(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(H(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(K(t)))},mouseEventToContainerPoint:function(t){return Ke(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=de(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Ie(e,"scroll",this._onScroll,this),this._containerId=_(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ut.any3d,be(t,"leaflet-container"+(Ut.touch?" leaflet-touch":"")+(Ut.retina?" leaflet-retina":"")+(Ut.ielt9?" leaflet-oldie":"")+(Ut.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=pe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Se(this._mapPane,new D(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(be(t.markerPane,"leaflet-zoom-hide"),be(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){Se(this._mapPane,new D(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return I(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Se(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[_(this._container)]=this;var e=t?Re:Ie;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Ut.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){I(this._resizeRequest),this._resizeRequest=B((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[_(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!Xe(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Oe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=c({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}var o=this._findEventTargets(t,e);if(i){for(var s=[],r=0;r0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=Ut.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){we(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=fe("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=ue,i=this._proxy.style[e];Me(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){_e(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Me(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o))&&(B((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),!0)},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,be(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(p(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&we(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var ti=N.extend({options:{position:"topright"},initialize:function(t){x(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return be(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(_e(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ei=function(t){return new ti(t)};Qe.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=fe("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=fe("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)_e(this._controlCorners[t]);_e(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var ii=ti.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(_(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+_(this),n),this._layerControlInputs.push(e),e.layerId=_(t.layer),Ie(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),ni=ti.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=fe("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=fe("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ge(s),Ie(s,"click",qe),Ie(s,"click",o,this),Ie(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";we(this._zoomInButton,e),we(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(be(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(be(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});Qe.mergeOptions({zoomControl:!0}),Qe.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new ni,this.addControl(this.zoomControl))}));var oi=ti.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=fe("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=fe("div",e,i)),t.imperial&&(this._iScale=fe("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),si=ti.extend({options:{position:"bottomright",prefix:''+(Ut.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){x(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=fe("div","leaflet-control-attribution"),Ge(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});Qe.mergeOptions({attributionControl:!0}),Qe.addInitHook((function(){this.options.attributionControl&&(new si).addTo(this)}));ti.Layers=ii,ti.Zoom=ni,ti.Scale=oi,ti.Attribution=si,ei.layers=function(t,e,i){return new ii(t,e,i)},ei.zoom=function(t){return new ni(t)},ei.scale=function(t){return new oi(t)},ei.attribution=function(t){return new si(t)};var ri=N.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});ri.addTo=function(t,e){return t.addHandler(e,this),this};var ai,hi=Ut.touch?"touchstart mousedown":"mousedown",ui=j.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){x(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Ie(this._dragStartTarget,hi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ui._dragging===this&&this.finishDrag(!0),Re(this._dragStartTarget,hi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ye(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)ui._dragging===this&&this.finishDrag();else if(!(ui._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ui._dragging=this,this._preventOutline&&Oe(this._element),ke(),oe(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ae(this._element);this._startPoint=new D(e.clientX,e.clientY),this._startPos=ze(this._element),this._parentScale=Be(i);var n="mousedown"===t.type;Ie(document,n?"mousemove":"touchmove",this._onMove,this),Ie(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new D(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)e&&(i.push(t[n]),o=n);oh&&(s=r,h=a);h>i&&(e[s]=1,di(t,e,i,n,s),di(t,e,i,s,o))}function pi(t,e,i,n,o){var s,r,a,h=n?ai:_i(t,i),u=_i(e,i);for(ai=u;;){if(!(h|u))return[t,e];if(h&u)return!1;a=_i(r=fi(t,e,s=h||u,i,o),i),s===h?(t=r,h=a):(e=r,u=a)}}function fi(t,e,i,n,o){var s,r,a=e.x-t.x,h=e.y-t.y,u=n.min,l=n.max;return 8&i?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&i?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&i?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&i&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new D(s,r,o)}function _i(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function mi(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function gi(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new D(s,r)}function vi(t){return!S(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function yi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),vi(t)}function bi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new q(a*i,t.x*i/n)}},Li=c({},X,{code:"EPSG:3395",projection:xi,transformation:function(){var t=.5/(Math.PI*xi.R);return it(t,.5,-t,.5)}()}),Pi=c({},X,{code:"EPSG:4326",projection:wi,transformation:it(1/180,1,-1/180,.5)}),Ti=c({},J,{projection:wi,transformation:it(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});J.Earth=X,J.EPSG3395=Li,J.EPSG3857=nt,J.EPSG900913=ot,J.EPSG4326=Pi,J.Simple=Ti;var Mi=j.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[_(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[_(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});Qe.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=_(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=_(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return _(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?S(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=K(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new G,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return vi(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=vi(t),n=0,o=t.length;n=2&&e[0]instanceof q&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ii.prototype._setLatLngs.call(this,t),vi(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return vi(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new D(e,e);if(t=new W(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||Ii.prototype._containsPoint.call(this,t,!0)}});var Ri=zi.extend({initialize:function(t,e){x(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=S(t)?t:t.features;if(o){for(e=0,i=o.length;e0?n:[e.src]}else{S(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;so?(e.height=o+"px",be(t,s)):we(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Se(this._container,e.add(i))},_adjustPan:function(t){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var e=this._map,i=parseInt(pe(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+i,o=this._containerWidth,s=new D(this._containerLeft,-n-this._containerBottom);s._add(ze(this._container));var r=e.layerPointToContainerPoint(s),a=H(this.options.autoPanPadding),h=H(this.options.autoPanPaddingTopLeft||a),u=H(this.options.autoPanPaddingBottomRight||a),l=e.getSize(),c=0,d=0;r.x+o+u.x>l.x&&(c=r.x+o-l.x+u.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+n+u.y>l.y&&(d=r.y+n-l.y+u.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&e.fire("autopanstart").panBy([c,d],{animate:t&&"moveend"===t.type})}},_getAnchor:function(){return H(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Qe.mergeOptions({closePopupOnClick:!0}),Qe.include({openPopup:function(t,e,i){return this._initOverlay(Ji,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Mi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Ji,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){qe(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof Zi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Xi=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=fe("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=H(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new D(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new D(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var f=this._tiles[this._tileCoordsToKey(p)];f?f.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return V(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new G(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new D(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(_e(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){be(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=v,t.onmousemove=v,Ut.ielt9&&this.options.opacity<1&&Pe(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),p(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&B(p(this._tileReady,this,t,null,o)),Se(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(Pe(i.el,0),I(this._fadeFrame),this._fadeFrame=B(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(be(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Ut.ielt9||!this._map._fadeAnimated?B(this._pruneTiles,this):setTimeout(p(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new D(this._wrapX?g(t.x,this._wrapX):t.x,this._wrapY?g(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new W(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Qi=$i.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=x(this,e)).detectRetina&&Ut.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Ie(i,"load",p(this._tileOnLoad,this,e,i)),Ie(i,"error",p(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:Ut.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return M(this._url,c(e,this.options))},_tileOnLoad:function(t,e){Ut.ielt9?setTimeout(p(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=v,e.onerror=v,!e.complete)){e.src=E;var i=this._tiles[t].coords;_e(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",E),$i.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==E))return $i.prototype._tileReady.call(this,t,e,i)}});var tn=Qi.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=c({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);var o=(e=x(this,e)).detectRetina&&Ut.retina?2:1,s=this.getTileSize();i.width=s.x*o,i.height=s.y*o,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Qi.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=U(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Pi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Qi.prototype.getTileUrl.call(this,t);return a+P(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return c(this.wmsParams,t),e||this.redraw(),this}});Qi.WMS=tn;var en=Mi.extend({options:{padding:.1},initialize:function(t){x(this,t),_(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&be(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));Ut.any3d?Me(this._container,s,i):Se(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new W(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),nn=en.extend({options:{tolerance:0},getEvents:function(){var t=en.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){en.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ie(t,"mousemove",this._onMouseMove,this),Ie(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ie(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){I(this._redrawRequest),delete this._ctx,_e(this._container),Re(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){en.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Ut.retina?2:1;Se(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Ut.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){en.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[_(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[_(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),sn={_initContainer:function(){this._container=fe("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(en.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=on("shape");be(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=on("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;_e(e),t.removeInteractiveTarget(e),delete this._layers[_(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=on("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=S(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=on("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ge(t._container)},_bringToBack:function(t){ve(t._container)}},rn=Ut.vml?on:st,an=en.extend({_initContainer:function(){this._container=rn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=rn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){_e(this._container),Re(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){en.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Se(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=rn("path");t.options.className&&be(e,t.options.className),t.options.interactive&&be(e,"leaflet-interactive"),this._updateStyle(t),this._layers[_(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){_e(t._path),t.removeInteractiveTarget(t._path),delete this._layers[_(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,rt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ge(t._path)},_bringToBack:function(t){ve(t._path)}});Ut.vml&&an.include(sn),Qe.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&function(t){return Ut.canvas?new nn(t):null}(t)||function(t){return Ut.svg||Ut.vml?new an(t):null}(t)}});Ni.extend({initialize:function(t,e){Ni.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=V(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});an.create=rn,an.pointsToPath=rt,Ri.geometryToLayer=ji,Ri.coordsToLatLng=Fi,Ri.coordsToLatLngs=Hi,Ri.latLngToCoords=Wi,Ri.latLngsToCoords=Ui,Ri.getFeature=Gi,Ri.asFeature=Vi,Qe.mergeOptions({boxZoom:!0});var hn=ri.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ie(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Re(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){_e(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),oe(),ke(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ie(document,{contextmenu:qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=fe("div","leaflet-zoom-box",this._container),be(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new W(this._point,this._startPoint),i=e.getSize();Se(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(_e(this._box),we(this._container,"leaflet-crosshair")),se(),Ce(),Re(document,{contextmenu:qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(p(this._resetState,this),0);var e=new G(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Qe.addInitHook("addHandler","boxZoom",hn),Qe.mergeOptions({doubleClickZoom:!0});var un=ri.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Qe.addInitHook("addHandler","doubleClickZoom",un),Qe.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var ln=ri.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ui(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}be(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){we(this._map._container,"leaflet-grab"),we(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=V(this._map.options.maxBounds);this._offsetLimit=U(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Qe.addInitHook("addHandler","scrollWheelZoom",dn);Qe.mergeOptions({tapHold:Ut.touchNative&&Ut.safari&&Ut.mobile,tapTolerance:15});var pn=ri.extend({addHooks:function(){Ie(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Re(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new D(e.clientX,e.clientY),this._holdTimeout=setTimeout(p((function(){this._cancel(),this._isTapValid()&&(Ie(document,"touchend",Ve),Ie(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),600),Ie(document,"touchend touchcancel contextmenu",this._cancel,this),Ie(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Re(document,"touchend",Ve),Re(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Re(document,"touchend touchcancel contextmenu",this._cancel,this),Re(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new D(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});Qe.addInitHook("addHandler","tapHold",pn),Qe.mergeOptions({touchZoom:Ut.touch,bounceAtZoomLimits:!0});var fn=ri.extend({addHooks:function(){be(this._map._container,"leaflet-touch-zoom"),Ie(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){we(this._map._container,"leaflet-touch-zoom"),Re(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Ie(document,"touchmove",this._onTouchMove,this),Ie(document,"touchend touchcancel",this._onTouchEnd,this),Ve(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===o)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===o&&0===s.x&&0===s.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),I(this._animRequest);var r=p(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=B(r,this,!0),Ve(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,I(this._animRequest),Re(document,"touchmove",this._onTouchMove,this),Re(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Qe.addInitHook("addHandler","touchZoom",fn),Qe.BoxZoom=hn,Qe.DoubleClickZoom=un,Qe.Drag=ln,Qe.Keyboard=cn,Qe.ScrollWheelZoom=dn,Qe.TapHold=pn,Qe.TouchZoom=fn;var _n=i(243),mn=i(551);const gn=function(t){var e=Object.assign({center:[29.98139,-95.33374],refresh_interval:10,zoom:5,acars_uri:"/api/acars",update_uri:"/api/acars/geojson",pirep_uri:"/api/pireps/{id}",pirep_link_uri:"/pireps/{id}",positions:null,render_elem:"map",aircraft_icon:"/assets/img/acars/aircraft.png",flown_route_color:u,units:"nmi"},t),i=o(e),n=_n.icon({iconUrl:e.aircraft_icon,iconSize:[42,42],iconAnchor:[21,21]}),s=new q(e.center[0],e.center[1]),r={},a=!1,h=null,c=null,d=null,p=null,f={pirep:{},pireps:[],has_data:!1,controller:{focusMarker:null}};function _(t,n,o){null!==c&&i.removeLayer(c),(c=new L.Geodesic([],{weight:5,opacity:.9,color:e.flown_route_color,wrap:!1}).addTo(i)).fromGeoJson(o.line),d=t,p=n,a||(i.panTo({lat:o.position.lat,lng:o.position.lon}),a=!0)}function m(t,i){var n=e.pirep_uri.replace("{id}",t.properties.pirep_id),o="".concat(e.pirep_uri.replace("{id}",t.properties.pirep_id),"/acars/geojson");(0,l.Z)(n).then((function(t){var e=t.data.data;console.log(e),f.pirep=e})),(0,l.Z)(o).then((function(e){var n=e.data.data;console.log(n),_(t,i,n)}))}mn.bind($("#map-info-box"),f),mn.bind($("#live_flights"),f),f.controller.drawRoute=_,f.controller.focusMarker=function(t,e){if(e.pirep.id in r){var i=r[e.pirep.id];m(i[0],i[1])}else console.log("marker not found in list")},f.controller.onFlightClick=m;var g=function(){(0,l.Z)(e.acars_uri).then((function(t){var e=t.data.data;f.pireps=e,f.has_data=e.length>0})),(0,l.Z)({url:e.update_uri}).then((function(t){var e=t.data.data;if(null!==h&&h.clearLayers(),(h=_n.geoJSON(e,{onEachFeature:function(t,e){e.on({click:function(i){a=!1,f.controller.onFlightClick(t,e)}});var i="";t.properties&&""!==t.properties.popup&&void 0!==t.properties.popup&&(i+=t.properties.popup,e.bindPopup(i)),r[t.properties.pirep_id]=[t,e]},pointToLayer:function(t,e){return _n.marker(e,{icon:n,rotationAngle:t.properties.heading})}})).addTo(i),null!==c)f.controller.onFlightClick(d,p);else if(!a)try{i.panTo(h.getBounds().getCenter())}catch(t){i.panTo(s)}}))};g(),setInterval(g,1e3*e.refresh_interval)};var vn=i(243),yn=function(t,e){var i="";t.properties&&t.properties.popup&&(i+=t.properties.popup),e.bindPopup(i)};const bn=function(t){var e=Object.assign({route_points:null,planned_route_line:null,actual_route_points:null,actual_route_line:null,render_elem:"map",live_map:!1,aircraft_icon:"/assets/img/acars/aircraft.png",refresh_interval:10,flown_route_color:u,circle_color:"#056093",flightplan_route_color:"#8B008B",metar_wms:{url:"",params:{}}},t),i=function(t,i){return vn.circleMarker(i,{radius:5,fillColor:e.circle_color,color:"#000",weight:1,opacity:1,fillOpacity:.8})},n=(vn.icon({iconUrl:e.aircraft_icon,iconSize:[42,42],iconAnchor:[21,21]}),o(e));""!==e.metar_wms.url&&r(n,e.metar_wms);var s=new L.Geodesic([],{weight:4,opacity:.9,color:e.flightplan_route_color,steps:50,wrap:!1}).addTo(n);s.fromGeoJson(e.planned_route_line);try{n.fitBounds(s.getBounds())}catch(t){console.log(t)}null!==e.route_points&&vn.geoJSON(e.route_points,{onEachFeature:yn,pointToLayer:i,style:{color:e.flightplan_route_color,weight:3,opacity:.65}}).addTo(n);if(null!==e.actual_route_line&&e.actual_route_line.features.length>0){var a=new L.Geodesic([],{weight:3,opacity:.9,color:e.flown_route_color,steps:50,wrap:!1}).addTo(n);a.fromGeoJson(e.actual_route_line);try{n.fitBounds(a.getBounds())}catch(t){console.log(t)}}null!==e.actual_route_points&&e.actual_route_points.features.length>0&&vn.geoJSON(e.actual_route_points,{onEachFeature:yn,pointToLayer:i,style:{color:e.flown_route_color,weight:3,opacity:.65}}).addTo(n)};i(154),i(818),window.L=i(243)},228:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var n=i(546);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function s(){s=function(){return t};var t={},e=Object.prototype,i=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",h=n.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,r,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==e&&i.call(v,r)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function n(s,r,a,h){var u=c(t[s],t,r);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==o(d)&&i.call(d,"__await")?e.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):e.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var s;this._invoke=function(t,i){function o(){return new e((function(e,o){n(t,i,e,o)}))}return s=s?s.then(o,o):o()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--o){var s=this.tryEntries[o],r=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var a=i.call(s,"catchLoc"),h=i.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function r(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}var a=i(669);const h=function(){var t,e=(t=s().mark((function t(e){var i;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return("string"==typeof e||e instanceof String)&&(e={url:e}),i=Object.assign({},{baseURL:n.Z.base_url,headers:{"X-API-KEY":n.Z.api_key,"X-CSRF-TOKEN":n.Z.csrf_token}},e),console.log(i),t.abrupt("return",a.request(i));case 4:case"end":return t.stop()}}),t)})),function(){var e=this,i=arguments;return new Promise((function(n,o){var s=t.apply(e,i);function a(t){r(s,n,o,a,h,"next",t)}function h(t){r(s,n,o,a,h,"throw",t)}a(void 0)}))});return function(t){return e.apply(this,arguments)}}()},978:()=>{!function(){"use strict";L.TileLayer.Provider=L.TileLayer.extend({initialize:function(t,e){var i=L.TileLayer.Provider.providers,n=t.split("."),o=n[0],s=n[1];if(!i[o])throw"No such provider ("+o+")";var r={url:i[o].url,options:i[o].options};if(s&&"variants"in i[o]){if(!(s in i[o].variants))throw"No such variant of "+o+" ("+s+")";var a,h=i[o].variants[s];a="string"==typeof h?{variant:h}:h.options,r={url:h.url||r.url,options:L.Util.extend({},r.options,a)}}else"function"==typeof r.url&&(r.url=r.url(n.splice(1,n.length-1).join(".")));var u="file:"===window.location.protocol||r.options.forceHTTP;0===r.url.indexOf("//")&&u&&(r.url="http:"+r.url);var l=function(t){return-1===t.indexOf("{attribution.")?t:t.replace(/\{attribution.(\w*)\}/,(function(t,e){return l(i[e].options.attribution)}))};r.options.attribution=l(r.options.attribution);var c=L.Util.extend({},r.options,e);L.TileLayer.prototype.initialize.call(this,r.url,c)}}),L.TileLayer.Provider.providers={OpenStreetMap:{url:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'© OpenStreetMap'},variants:{Mapnik:{},BlackAndWhite:{url:"http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png",options:{maxZoom:18}},DE:{url:"http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",options:{maxZoom:18}},France:{url:"http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",options:{attribution:"© Openstreetmap France | {attribution.OpenStreetMap}"}},HOT:{url:"http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap}, Tiles courtesy of Humanitarian OpenStreetMap Team'}}}},OpenSeaMap:{url:"http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png",options:{attribution:'Map data: © OpenSeaMap contributors'}},OpenTopoMap:{url:"//{s}.tile.opentopomap.org/{z}/{x}/{y}.png",options:{maxZoom:16,attribution:'Map data: {attribution.OpenStreetMap}, SRTM | Map style: © OpenTopoMap (CC-BY-SA)'}},Thunderforest:{url:"//{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'© OpenCycleMap, {attribution.OpenStreetMap}',variant:"cycle"},variants:{OpenCycleMap:"cycle",Transport:{options:{variant:"transport",maxZoom:19}},TransportDark:{options:{variant:"transport-dark",maxZoom:19}},Landscape:"landscape",Outdoors:"outdoors"}},OpenMapSurfer:{url:"http://openmapsurfer.uni-hd.de/tiles/{variant}/x={x}&y={y}&z={z}",options:{maxZoom:20,variant:"roads",attribution:'Imagery from GIScience Research Group @ University of Heidelberg — Map data {attribution.OpenStreetMap}'},variants:{Roads:"roads",AdminBounds:{options:{variant:"adminb",maxZoom:19}},Grayscale:{options:{variant:"roadsg",maxZoom:19}}}},Hydda:{url:"http://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png",options:{variant:"full",attribution:'Tiles courtesy of OpenStreetMap Sweden — Map data {attribution.OpenStreetMap}'},variants:{Full:"full",Base:"base",RoadsAndLabels:"roads_and_labels"}},MapQuestOpen:{url:"http://otile{s}.mqcdn.com/tiles/1.0.0/{type}/{z}/{x}/{y}.{ext}",options:{type:"map",ext:"jpg",attribution:'Tiles Courtesy of MapQuest — Map data {attribution.OpenStreetMap}',subdomains:"1234"},variants:{OSM:{},Aerial:{options:{type:"sat",attribution:'Tiles Courtesy of MapQuest — Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency'}},HybridOverlay:{options:{type:"hyb",ext:"png",opacity:.9}}}},MapBox:{url:function(t){return"//{s}.tiles.mapbox.com/v3/"+t+"/{z}/{x}/{y}.png"},options:{attribution:'Imagery from MapBox — Map data {attribution.OpenStreetMap}',subdomains:"abcd"}},Stamen:{url:"//stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.png",options:{attribution:'Map tiles by Stamen Design, CC BY 3.0 — Map data {attribution.OpenStreetMap}',subdomains:"abcd",minZoom:0,maxZoom:20,variant:"toner",ext:"png"},variants:{Toner:"toner",TonerBackground:"toner-background",TonerHybrid:"toner-hybrid",TonerLines:"toner-lines",TonerLabels:"toner-labels",TonerLite:"toner-lite",Watercolor:{options:{variant:"watercolor",minZoom:1,maxZoom:16}},Terrain:{options:{variant:"terrain",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TerrainBackground:{options:{variant:"terrain-background",minZoom:4,maxZoom:18,bounds:[[22,-132],[70,-56]]}},TopOSMRelief:{options:{variant:"toposm-color-relief",ext:"jpg",bounds:[[22,-132],[51,-56]]}},TopOSMFeatures:{options:{variant:"toposm-features",bounds:[[22,-132],[51,-56]],opacity:.9}}}},Esri:{url:"//server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}",options:{variant:"World_Street_Map",attribution:"Tiles © Esri"},variants:{WorldStreetMap:{options:{attribution:"{attribution.Esri} — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"}},DeLorme:{options:{variant:"Specialty/DeLorme_World_Base_Map",minZoom:1,maxZoom:11,attribution:"{attribution.Esri} — Copyright: ©2012 DeLorme"}},WorldTopoMap:{options:{variant:"World_Topo_Map",attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"}},WorldImagery:{options:{variant:"World_Imagery",attribution:"{attribution.Esri} — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"}},WorldTerrain:{options:{variant:"World_Terrain_Base",maxZoom:13,attribution:"{attribution.Esri} — Source: USGS, Esri, TANA, DeLorme, and NPS"}},WorldShadedRelief:{options:{variant:"World_Shaded_Relief",maxZoom:13,attribution:"{attribution.Esri} — Source: Esri"}},WorldPhysical:{options:{variant:"World_Physical_Map",maxZoom:8,attribution:"{attribution.Esri} — Source: US National Park Service"}},OceanBasemap:{options:{variant:"Ocean_Basemap",maxZoom:13,attribution:"{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri"}},NatGeoWorldMap:{options:{variant:"NatGeo_World_Map",maxZoom:16,attribution:"{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"}},WorldGrayCanvas:{options:{variant:"Canvas/World_Light_Gray_Base",maxZoom:16,attribution:"{attribution.Esri} — Esri, DeLorme, NAVTEQ"}}}},OpenWeatherMap:{url:"http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:'Map data © OpenWeatherMap',opacity:.5},variants:{Clouds:"clouds",CloudsClassic:"clouds_cls",Precipitation:"precipitation",PrecipitationClassic:"precipitation_cls",Rain:"rain",RainClassic:"rain_cls",Pressure:"pressure",PressureContour:"pressure_cntr",Wind:"wind",Temperature:"temp",Snow:"snow"}},HERE:{url:"//{s}.{base}.maps.cit.api.here.com/maptile/2.1/maptile/{mapID}/{variant}/{z}/{x}/{y}/256/png8?app_id={app_id}&app_code={app_code}",options:{attribution:'Map © 1987-2014 HERE',subdomains:"1234",mapID:"newest",app_id:"",app_code:"",base:"base",variant:"normal.day",maxZoom:20},variants:{normalDay:"normal.day",normalDayCustom:"normal.day.custom",normalDayGrey:"normal.day.grey",normalDayMobile:"normal.day.mobile",normalDayGreyMobile:"normal.day.grey.mobile",normalDayTransit:"normal.day.transit",normalDayTransitMobile:"normal.day.transit.mobile",normalNight:"normal.night",normalNightMobile:"normal.night.mobile",normalNightGrey:"normal.night.grey",normalNightGreyMobile:"normal.night.grey.mobile",carnavDayGrey:"carnav.day.grey",hybridDay:{options:{base:"aerial",variant:"hybrid.day"}},hybridDayMobile:{options:{base:"aerial",variant:"hybrid.day.mobile"}},pedestrianDay:"pedestrian.day",pedestrianNight:"pedestrian.night",satelliteDay:{options:{base:"aerial",variant:"satellite.day"}},terrainDay:{options:{base:"aerial",variant:"terrain.day"}},terrainDayMobile:{options:{base:"aerial",variant:"terrain.day.mobile"}}}},Acetate:{url:"http://a{s}.acetate.geoiq.com/tiles/{variant}/{z}/{x}/{y}.png",options:{attribution:"©2012 Esri & Stamen, Data from OSM and Natural Earth",subdomains:"0123",minZoom:2,maxZoom:18,variant:"acetate-base"},variants:{basemap:"acetate-base",terrain:"terrain",all:"acetate-hillshading",foreground:"acetate-fg",roads:"acetate-roads",labels:"acetate-labels",hillshading:"hillshading"}},FreeMapSK:{url:"http://{s}.freemap.sk/T/{z}/{x}/{y}.jpeg",options:{minZoom:8,maxZoom:16,subdomains:["t1","t2","t3","t4"],attribution:'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 Freemap.sk'}},MtbMap:{url:"http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png",options:{attribution:"{attribution.OpenStreetMap} & USGS"}},CartoDB:{url:"http://{s}.basemaps.cartocdn.com/{variant}/{z}/{x}/{y}.png",options:{attribution:'{attribution.OpenStreetMap} © CartoDB',subdomains:"abcd",maxZoom:19,variant:"light_all"},variants:{Positron:"light_all",PositronNoLabels:"light_nolabels",DarkMatter:"dark_all",DarkMatterNoLabels:"dark_nolabels"}},HikeBike:{url:"http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png",options:{maxZoom:19,attribution:"{attribution.OpenStreetMap}",variant:"hikebike"},variants:{HikeBike:{},HillShading:{options:{maxZoom:15,variant:"hillshading"}}}},BasemapAT:{url:"//maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}",options:{maxZoom:19,attribution:'Datenquelle: basemap.at',subdomains:["","1","2","3","4"],format:"png",bounds:[[46.35877,8.782379],[49.037872,17.189532]],variant:"geolandbasemap"},variants:{basemap:"geolandbasemap",grau:"bmapgrau",overlay:"bmapoverlay",highdpi:{options:{variant:"bmaphidpi",format:"jpeg"}},orthofoto:{options:{variant:"bmaporthofoto30cm",format:"jpeg"}}}},NASAGIBS:{url:"//map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",options:{attribution:'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.',bounds:[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],minZoom:1,maxZoom:9,format:"jpg",time:"",tilematrixset:"GoogleMapsCompatible_Level"},variants:{ModisTerraTrueColorCR:"MODIS_Terra_CorrectedReflectance_TrueColor",ModisTerraBands367CR:"MODIS_Terra_CorrectedReflectance_Bands367",ViirsEarthAtNight2012:{options:{variant:"VIIRS_CityLights_2012",maxZoom:8}},ModisTerraLSTDay:{options:{variant:"MODIS_Terra_Land_Surface_Temp_Day",format:"png",maxZoom:7,opacity:.75}},ModisTerraSnowCover:{options:{variant:"MODIS_Terra_Snow_Cover",format:"png",maxZoom:8,opacity:.75}},ModisTerraAOD:{options:{variant:"MODIS_Terra_Aerosol",format:"png",maxZoom:6,opacity:.75}},ModisTerraChlorophyll:{options:{variant:"MODIS_Terra_Chlorophyll_A",format:"png",maxZoom:7,opacity:.75}}}}},L.tileLayer.provider=function(t,e){return new L.TileLayer.Provider(t,e)}}()},818:()=>{var t,e,i;t=L.Marker.prototype._initIcon,e=L.Marker.prototype._setPos,i="msTransform"===L.DomUtil.TRANSFORM,L.Marker.addInitHook((function(){var t=this.options.icon&&this.options.icon.options&&this.options.icon.options.iconAnchor;t&&(t=t[0]+"px "+t[1]+"px"),this.options.rotationOrigin=this.options.rotationOrigin||t||"center bottom",this.options.rotationAngle=this.options.rotationAngle||0,this.on("drag",(function(t){t.target._applyRotation()}))})),L.Marker.include({_initIcon:function(){t.call(this)},_setPos:function(t){e.call(this,t),this._applyRotation()},_applyRotation:function(){this.options.rotationAngle&&(this._icon.style[L.DomUtil.TRANSFORM+"Origin"]=this.options.rotationOrigin,i?this._icon.style[L.DomUtil.TRANSFORM]="rotate("+this.options.rotationAngle+"deg)":this._icon.style[L.DomUtil.TRANSFORM]+=" rotateZ("+this.options.rotationAngle+"deg)")},setRotationAngle:function(t){return this.options.rotationAngle=t,this.update(),this},setRotationOrigin:function(t){return this.options.rotationOrigin=t,this.update(),this}})},154:function(t,e,i){!function(t,e){"use strict";function i(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var n=i(e),o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},o(t,e)};function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var r=function(){return r=Object.assign||function(t){for(var e,i=1,n=arguments.length;ih&&++E=n)throw new EvalError("Direct vincenty formula failed to converge after ".concat(n," iterations \n (start=").concat(t.lat,"/").concat(t.lng,"; bearing=").concat(e,"; distance=").concat(i,")"));var k=g*T-m*M*f,C=Math.atan2(g*M+m*T*f,(1-d)*Math.sqrt(y*y+k*k)),O=d/16*b*(4+d*(4-3*b)),Z=s+(Math.atan2(T*p,m*M-g*T*f)-(1-O)*d*y*(P+O*T*(S+O*M*(2*S*S-1)))),A=Math.atan2(y,-k);return{lat:this.toDegrees(C),lng:this.toDegrees(Z),bearing:this.wrap360(this.toDegrees(A))}},t.prototype.inverse=function(t,e,i,o){void 0===i&&(i=100),void 0===o&&(o=!0);var s=t,r=e,a=this.toRadians(s.lat),h=this.toRadians(s.lng),u=this.toRadians(r.lat),l=this.toRadians(r.lng),c=Math.PI,d=Number.EPSILON,p=this.ellipsoid,f=p.a,_=p.b,m=p.f,g=l-h,v=(1-m)*Math.tan(a),y=1/Math.sqrt(1+v*v),b=v*y,w=(1-m)*Math.tan(u),x=1/Math.sqrt(1+w*w),L=w*x,P=Math.abs(g)>c/2||Math.abs(u-a)>c/2,T=g,M=null,S=null,z=P?c:0,E=0,k=P?-1:1,C=null,O=1,Z=null,A=1,B=null,I=null,N=0;do{if(C=x*(M=Math.sin(T))*(x*M)+(y*L-b*x*(S=Math.cos(T)))*(y*L-b*x*S),Math.abs(C)c)throw new EvalError("λ > π")}while(Math.abs(T-I)>1e-12&&++N=i){if(o)return this.inverse(t,new n.LatLng(e.lat,e.lng-.01),i,o);throw new EvalError("Inverse vincenty formula failed to converge after ".concat(i," iterations \n (start=").concat(t.lat,"/").concat(t.lng,"; dest=").concat(e.lat,"/").concat(e.lng,")"))}var R=A*(f*f-_*_)/(_*_),j=R/1024*(256+R*(R*(74-47*R)-128)),D=_*(1+R/16384*(4096+R*(R*(320-175*R)-768)))*(z-j*E*(O+j/4*(k*(2*O*O-1)-j/6*O*(4*E*E-3)*(4*O*O-3)))),F=Math.abs(C)0?v:2*p-v),w=(Math.sin(h-r)>0?2*p-y:y)-l;if(0===Math.sin(b)&&0===Math.sin(w))return null;if(Math.sin(b)*Math.sin(w)<0)return null;var x=-Math.cos(b)*Math.cos(w)+Math.sin(b)*Math.sin(w)*Math.cos(_),L=Math.atan2(Math.sin(_)*Math.sin(b)*Math.sin(w),Math.cos(w)+Math.cos(b)*x),P=Math.asin(Math.min(Math.max(Math.sin(s)*Math.cos(L)+Math.cos(s)*Math.sin(L)*Math.cos(u),-1),1)),T=r+Math.atan2(Math.sin(u)*Math.sin(L)*Math.cos(s),Math.cos(L)-Math.sin(s)*Math.sin(P));return new n.LatLng(this.toDegrees(P),this.toDegrees(T))},t.prototype.midpoint=function(t,e){var i=this.toRadians(t.lat),o=this.toRadians(t.lng),s=this.toRadians(e.lat),r=this.toRadians(e.lng-t.lng),a=Math.cos(i),h=0,u=Math.sin(i),l={x:a+Math.cos(s)*Math.cos(r),y:h+Math.cos(s)*Math.sin(r),z:u+Math.sin(s)},c=Math.atan2(l.z,Math.sqrt(l.x*l.x+l.y*l.y)),d=o+Math.atan2(l.y,l.x);return new n.LatLng(this.toDegrees(c),this.toDegrees(d))},t}(),u=function(){function t(t){this.geodesic=new h,this.steps=t&&void 0!==t.steps?t.steps:3}return t.prototype.recursiveMidpoint=function(t,e,i){var n=[t,e],o=this.geodesic.midpoint(t,e);return i>0?(n.splice.apply(n,a([0,1],this.recursiveMidpoint(t,o,i-1),!1)),n.splice.apply(n,a([n.length-2,2],this.recursiveMidpoint(o,e,i-1),!1))):n.splice(1,0,o),n},t.prototype.line=function(t,e){return this.recursiveMidpoint(t,e,Math.min(8,this.steps))},t.prototype.multiLineString=function(t){for(var e=[],i=0,n=t;i180?r.lng=r.lng-360:r.lng-s.lng<-180&&(r.lng=r.lng+360);var a=[[new n.LatLng(s.lat,this.geodesic.wrap(s.lng,180)),new n.LatLng(r.lat,this.geodesic.wrap(r.lng,180))]];if(s.lng>=-180&&s.lng<=180)if(r.lng<-180){var h=this.geodesic.inverse(s,r).initialBearing;(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[s,u],[new n.LatLng(u.lat,u.lng+360),new n.LatLng(r.lat,r.lng+360)]])}else r.lng>180&&(h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,o.point,o.bearing))&&(a=[[s,u],[new n.LatLng(u.lat,u.lng-360),new n.LatLng(r.lat,r.lng-360)]]));else if(r.lng>=-180&&r.lng<=180)if(s.lng<-180)h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[new n.LatLng(s.lat,s.lng+360),new n.LatLng(u.lat,u.lng+360)],[u,r]]);else if(s.lng>180){var u;h=this.geodesic.inverse(s,r).initialBearing,(u=this.geodesic.intersection(s,h,i.point,i.bearing))&&(a=[[new n.LatLng(s.lat,s.lng-360),new n.LatLng(u.lat,u.lng-360)],[u,r]])}return a},t.prototype.splitMultiLineString=function(t){for(var e=[],i=0,n=t;i1&&(e.push(s),s=a[1])}e.push(s)}else e.push(o)}return e},t.prototype.wrapMultiLineString=function(t){for(var e=[],i=0,o=t;i0?Math.floor(t):Math.ceil(t)};function B(t,e,i){return t instanceof Z?t:g(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function I(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=N(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=N(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=j(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,kt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,e),window.removeEventListener("testPassiveEventSupport",u,e)}catch(t){}return t}(),Ct=!!document.createElement("canvas").getContext,Ot=!(!document.createElementNS||!X("svg").createSVGRect),Zt=!!Ot&&((Q=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(Q.firstChild&&Q.firstChild.namespaceURI)),At=!Ot&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Bt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var It={ie:et,ielt9:it,edge:nt,webkit:ot,android:st,android23:rt,androidStock:ht,opera:ut,chrome:lt,gecko:ct,safari:dt,phantom:pt,opera12:ft,win:_t,ie3d:mt,webkit3d:gt,gecko3d:vt,any3d:yt,mobile:bt,mobileWebkit:wt,mobileWebkit3d:xt,msPointer:Lt,pointer:Pt,touch:Mt,touchNative:Tt,mobileOpera:St,mobileGecko:zt,retina:Et,passiveEvents:kt,canvas:Ct,svg:Ot,vml:At,inlineSvg:Zt},Nt=It.msPointer?"MSPointerDown":"pointerdown",Rt=It.msPointer?"MSPointerMove":"pointermove",jt=It.msPointer?"MSPointerUp":"pointerup",Dt=It.msPointer?"MSPointerCancel":"pointercancel",Ft={touchstart:Nt,touchmove:Rt,touchend:jt,touchcancel:Dt},Ht={touchstart:$t,touchmove:Xt,touchend:Xt,touchcancel:Xt},Wt={},Ut=!1;function Gt(t,e,i){return"touchstart"===e&&Jt(),Ht[e]?(i=Ht[e].bind(this,i),t.addEventListener(Ft[e],i,!1),i):(console.warn("wrong event specified:",e),L.Util.falseFn)}function Vt(t,e,i){Ft[e]?t.removeEventListener(Ft[e],i,!1):console.warn("wrong event specified:",e)}function qt(t){Wt[t.pointerId]=t}function Kt(t){Wt[t.pointerId]&&(Wt[t.pointerId]=t)}function Yt(t){delete Wt[t.pointerId]}function Jt(){Ut||(document.addEventListener(Nt,qt,!0),document.addEventListener(Rt,Kt,!0),document.addEventListener(jt,Yt,!0),document.addEventListener(Dt,Yt,!0),Ut=!0)}function Xt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Wt)e.touches.push(Wt[i]);e.changedTouches=[e],t(e)}}function $t(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&qe(e),Xt(t,e)}function Qt(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return t=n,n.type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}var te=200;function ee(t,e){t.addEventListener("dblclick",e);var i,n=0;function o(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var o=Date.now();o-n<=te?2==++i&&e(Qt(t)):i=1,n=o}}else i=t.detail}return t.addEventListener("click",o),{dblclick:e,simDblclick:o}}function ie(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var ne,oe,se,re,ae,he=Te(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ue=Te(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),le="webkitTransition"===ue||"OTransition"===ue?ue+"End":"transitionend";function ce(t){return"string"==typeof t?document.getElementById(t):t}function de(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function pe(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function fe(t){var e=t.parentNode;e&&e.removeChild(t)}function _e(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function me(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=xe(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function ye(t,e){if(void 0!==t.classList)for(var i=d(e),n=0,o=i.length;nthis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,j(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=B((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=B(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=N([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var u=s.subtract(a.getCenter()),l=a.extend(s).getSize().subtract(h);o.x+=u.x<0?-l.x:l.x,o.y+=u.y<0?-l.y:l.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=e.divideBy(2).round(),r=n.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o(this._handleGeolocationResponse,this),n=o(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,n,t):navigator.geolocation.getCurrentPosition(e,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new D(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),fe(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(S(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)fe(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=pe("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new R(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=j(t),i=B(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=N(this.project(a,n),this.project(r,n)).getSize(),l=It.any3d?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new I(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(F(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(B(t),e)},layerPointToLatLng:function(t){var e=B(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(F(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(F(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(j(t))},distance:function(t,e){return this.options.crs.distance(F(t),F(e))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(F(t)))},mouseEventToContainerPoint:function(t){return Ye(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ce(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Ne(e,"scroll",this._onScroll,this),this._containerId=r(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&It.any3d,ye(t,"leaflet-container"+(It.touch?" leaflet-touch":"")+(It.retina?" leaflet-retina":"")+(It.ielt9?" leaflet-oldie":"")+(It.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=de(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Se(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ye(t.markerPane,"leaflet-zoom-hide"),ye(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){Se(this._mapPane,new Z(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return S(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Se(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[r(this._container)]=this;var e=t?je:Ne;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),It.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){S(this._resizeRequest),this._resizeRequest=M((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,a=!1;s;){if((i=this._targets[r(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!$e(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n.length||a||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Oe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,e);if(n){for(var r=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=It.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){be(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=pe("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=he,i=this._proxy.style[e];Me(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){fe(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Me(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(M((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ye(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&be(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function ii(t,e){return new ei(t,e)}var ni=E.extend({options:{position:"topright"},initialize:function(t){p(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return ye(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(fe(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),oi=function(t){return new ni(t)};ei.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=pe("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=pe("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)fe(this._controlCorners[t]);fe(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var si=ni.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(r(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+r(this),n),this._layerControlInputs.push(e),e.layerId=r(t.layer),Ne(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this}}),ri=function(t,e,i){return new si(t,e,i)},ai=ni.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=pe("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=pe("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ve(s),Ne(s,"click",Ke),Ne(s,"click",o,this),Ne(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";be(this._zoomInButton,e),be(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(ye(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(ye(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});ei.mergeOptions({zoomControl:!0}),ei.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new ai,this.addControl(this.zoomControl))}));var hi=function(t){return new ai(t)},ui=ni.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=pe("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=pe("div",e,i)),t.imperial&&(this._iScale=pe("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),li=function(t){return new ui(t)},ci='',di=ni.extend({options:{position:"bottomright",prefix:''+(It.inlineSvg?ci+" ":"")+"Leaflet"},initialize:function(t){p(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=pe("div","leaflet-control-attribution"),Ve(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});ei.mergeOptions({attributionControl:!0}),ei.addInitHook((function(){this.options.attributionControl&&(new di).addTo(this)}));var pi=function(t){return new di(t)};ni.Layers=si,ni.Zoom=ai,ni.Scale=ui,ni.Attribution=di,oi.layers=ri,oi.zoom=hi,oi.scale=li,oi.attribution=pi;var fi=E.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});fi.addTo=function(t,e){return t.addHandler(e,this),this};var _i,mi={Events:C},gi=It.touch?"touchstart mousedown":"mousedown",vi=O.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){p(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Ne(this._dragStartTarget,gi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(vi._dragging===this&&this.finishDrag(!0),je(this._dragStartTarget,gi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ve(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)vi._dragging===this&&this.finishDrag();else if(!(vi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(vi._dragging=this,this._preventOutline&&Oe(this._element),ke(),ne(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Ae(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._startPos=ze(this._element),this._parentScale=Be(i);var n="mousedown"===t.type;Ne(document,n?"mousemove":"touchmove",this._onMove,this),Ne(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)h&&(s=r,h=a);h>i&&(e[s]=1,Li(t,e,i,n,s),Li(t,e,i,s,o))}function Pi(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function zi(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function Ei(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new Z(s,r)}function ki(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Ci(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ki(t)}var Oi={__proto__:null,simplify:yi,pointToSegmentDistance:bi,closestPointOnSegment:wi,clipSegment:Ti,_getEdgeIntersection:Mi,_getBitCode:Si,_sqClosestPointOnSegment:Ei,isFlat:ki,_flat:Ci};function Zi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new D(a*i,t.x*i/n)}},Ni={__proto__:null,LonLat:Bi,Mercator:Ii,SphericalMercator:V},Ri=i({},U,{code:"EPSG:3395",projection:Ii,transformation:function(){var t=.5/(Math.PI*Ii.R);return K(t,.5,-t,.5)}()}),ji=i({},U,{code:"EPSG:4326",projection:Bi,transformation:K(1/180,1,-1/180,.5)}),Di=i({},W,{projection:Bi,transformation:K(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});W.Earth=U,W.EPSG3395=Ri,W.EPSG3857=Y,W.EPSG900913=J,W.EPSG4326=ji,W.Simple=Di;var Fi=O.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[r(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[r(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});ei.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=r(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=r(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return r(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?g(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=F(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new R,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ki(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ki(t),n=0,o=t.length;n=2&&e[0]instanceof D&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){on.prototype._setLatLngs.call(this,t),ki(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ki(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new I(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||on.prototype._containsPoint.call(this,t,!0)}});function an(t,e){return new rn(t,e)}var hn=Ui.extend({initialize:function(t,e){p(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=g(t)?t:t.features;if(o){for(e=0,i=o.length;e0?n:[e.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var r=0;ro?(e.height=o+"px",ye(t,s)):be(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();Se(this._container,e.add(i))},_adjustPan:function(t){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var e=this._map,i=parseInt(de(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+i,o=this._containerWidth,s=new Z(this._containerLeft,-n-this._containerBottom);s._add(ze(this._container));var r=e.layerPointToContainerPoint(s),a=B(this.options.autoPanPadding),h=B(this.options.autoPanPaddingTopLeft||a),u=B(this.options.autoPanPaddingBottomRight||a),l=e.getSize(),c=0,d=0;r.x+o+u.x>l.x&&(c=r.x+o-l.x+u.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+n+u.y>l.y&&(d=r.y+n-l.y+u.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&e.fire("autopanstart").panBy([c,d],{animate:t&&"moveend"===t.type})}},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),zn=function(t,e){return new Sn(t,e)};ei.mergeOptions({closePopupOnClick:!0}),ei.include({openPopup:function(t,e,i){return this._initOverlay(Sn,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),Fi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Sn,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&this._popup._prepareOpen(t)&&this._popup.openOn(this._map),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Ke(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof $i?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var En=Mn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Mn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Mn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Mn.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=pe("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=B(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new Z(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new Z(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var f=this._tiles[this._tileCoordsToKey(p)];f?f.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return j(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new R(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(fe(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ye(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,It.ielt9&&this.options.opacity<1&&Le(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&M(o(this._tileReady,this,t,null,s)),Se(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(Le(i.el,0),S(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(ye(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),It.ielt9||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?h(t.x,this._wrapX):t.x,this._wrapY?h(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new I(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function An(t){return new Zn(t)}var Bn=Zn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=p(this,e)).detectRetina&&It.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Ne(i,"load",o(this._tileOnLoad,this,e,i)),Ne(i,"error",o(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:It.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return m(this._url,i(e,this.options))},_tileOnLoad:function(t,e){It.ielt9?setTimeout(o(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=u,e.onerror=u,!e.complete)){e.src=y;var i=this._tiles[t].coords;fe(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",y),Zn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==y))return Zn.prototype._tileReady.call(this,t,e,i)}});function In(t,e){return new Bn(t,e)}var Nn=Bn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=p(this,e)).detectRetina&&It.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Bn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=N(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===ji?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Bn.prototype.getTileUrl.call(this,t);return a+f(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});function Rn(t,e){return new Nn(t,e)}Bn.WMS=Nn,In.wms=Rn;var jn=Fi.extend({options:{padding:.1},initialize:function(t){p(this,t),r(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&ye(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));It.any3d?Me(this._container,s,i):Se(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new I(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Dn=jn.extend({options:{tolerance:0},getEvents:function(){var t=jn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){jn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ne(t,"mousemove",this._onMouseMove,this),Ne(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ne(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){S(this._redrawRequest),delete this._ctx,fe(this._container),je(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){jn.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=It.retina?2:1;Se(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",It.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){jn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[r(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[r(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Wn={_initContainer:function(){this._container=pe("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(jn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Hn("shape");ye(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Hn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;fe(e),t.removeInteractiveTarget(e),delete this._layers[r(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Hn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Hn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){me(t._container)},_bringToBack:function(t){ge(t._container)}},Un=It.vml?Hn:X,Gn=jn.extend({_initContainer:function(){this._container=Un("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Un("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){fe(this._container),je(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){jn.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Se(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Un("path");t.options.className&&ye(e,t.options.className),t.options.interactive&&ye(e,"leaflet-interactive"),this._updateStyle(t),this._layers[r(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){fe(t._path),t.removeInteractiveTarget(t._path),delete this._layers[r(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,$(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){me(t._path)},_bringToBack:function(t){ge(t._path)}});function Vn(t){return It.svg||It.vml?new Gn(t):null}It.vml&&Gn.include(Wn),ei.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Fn(t)||Vn(t)}});var qn=rn.extend({initialize:function(t,e){rn.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=j(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Kn(t,e){return new qn(t,e)}Gn.create=Un,Gn.pointsToPath=$,hn.geometryToLayer=un,hn.coordsToLatLng=cn,hn.coordsToLatLngs=dn,hn.latLngToCoords=pn,hn.latLngsToCoords=fn,hn.getFeature=_n,hn.asFeature=mn,ei.mergeOptions({boxZoom:!0});var Yn=fi.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ne(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){je(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){fe(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),ne(),ke(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ne(document,{contextmenu:Ke,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=pe("div","leaflet-zoom-box",this._container),ye(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new I(this._point,this._startPoint),i=e.getSize();Se(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(fe(this._box),be(this._container,"leaflet-crosshair")),oe(),Ce(),je(document,{contextmenu:Ke,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var e=new R(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ei.addInitHook("addHandler","boxZoom",Yn),ei.mergeOptions({doubleClickZoom:!0});var Jn=fi.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});ei.addInitHook("addHandler","doubleClickZoom",Jn),ei.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Xn=fi.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new vi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ye(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){be(this._map._container,"leaflet-grab"),be(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=j(this._map.options.maxBounds);this._offsetLimit=N(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});ei.addInitHook("addHandler","scrollWheelZoom",Qn);var to=600;ei.mergeOptions({tapHold:It.touchNative&&It.safari&&It.mobile,tapTolerance:15});var eo=fi.extend({addHooks:function(){Ne(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){je(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new Z(e.clientX,e.clientY),this._holdTimeout=setTimeout(o((function(){this._cancel(),this._isTapValid()&&(Ne(document,"touchend",qe),Ne(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),to),Ne(document,"touchend touchcancel contextmenu",this._cancel,this),Ne(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){je(document,"touchend",qe),je(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),je(document,"touchend touchcancel contextmenu",this._cancel,this),je(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});ei.addInitHook("addHandler","tapHold",eo),ei.mergeOptions({touchZoom:It.touch,bounceAtZoomLimits:!0});var io=fi.extend({addHooks:function(){ye(this._map._container,"leaflet-touch-zoom"),Ne(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){be(this._map._container,"leaflet-touch-zoom"),je(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Ne(document,"touchmove",this._onTouchMove,this),Ne(document,"touchend touchcancel",this._onTouchEnd,this),qe(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),S(this._animRequest);var a=o(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=M(a,this,!0),qe(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,S(this._animRequest),je(document,"touchmove",this._onTouchMove,this),je(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});ei.addInitHook("addHandler","touchZoom",io),ei.BoxZoom=Yn,ei.DoubleClickZoom=Jn,ei.Drag=Xn,ei.Keyboard=$n,ei.ScrollWheelZoom=Qn,ei.TapHold=eo,ei.TouchZoom=io,t.Bounds=I,t.Browser=It,t.CRS=W,t.Canvas=Dn,t.Circle=en,t.CircleMarker=Qi,t.Class=E,t.Control=ni,t.DivIcon=Cn,t.DivOverlay=Mn,t.DomEvent=Qe,t.DomUtil=Ie,t.Draggable=vi,t.Evented=O,t.FeatureGroup=Ui,t.GeoJSON=hn,t.GridLayer=Zn,t.Handler=fi,t.Icon=Vi,t.ImageOverlay=bn,t.LatLng=D,t.LatLngBounds=R,t.Layer=Fi,t.LayerGroup=Hi,t.LineUtil=Oi,t.Map=ei,t.Marker=Ji,t.Mixin=mi,t.Path=$i,t.Point=Z,t.PolyUtil=Ai,t.Polygon=rn,t.Polyline=on,t.Popup=Sn,t.PosAnimation=ti,t.Projection=Ni,t.Rectangle=qn,t.Renderer=jn,t.SVG=Gn,t.SVGOverlay=Pn,t.TileLayer=Bn,t.Tooltip=En,t.Transformation=q,t.Util=z,t.VideoOverlay=xn,t.bind=o,t.bounds=N,t.canvas=Fn,t.circle=nn,t.circleMarker=tn,t.control=oi,t.divIcon=On,t.extend=i,t.featureGroup=Gi,t.geoJSON=vn,t.geoJson=yn,t.gridLayer=An,t.icon=qi,t.imageOverlay=wn,t.latLng=F,t.latLngBounds=j,t.layerGroup=Wi,t.map=ii,t.marker=Xi,t.point=B,t.polygon=an,t.polyline=sn,t.popup=zn,t.rectangle=Kn,t.setOptions=p,t.stamp=r,t.svg=Vn,t.svgOverlay=Tn,t.tileLayer=In,t.tooltip=kn,t.transformation=K,t.version=e,t.videoOverlay=Ln;var no=window.L;t.noConflict=function(){return window.L=no,this},window.L=t}(e)},155:t=>{var e,i,n=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function r(t){if(e===setTimeout)return setTimeout(t,0);if((e===o||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(i){try{return e.call(null,t,0)}catch(i){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:o}catch(t){e=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var a,h=[],u=!1,l=-1;function c(){u&&a&&(u=!1,a.length?h=a.concat(h):l=-1,h.length&&d())}function d(){if(!u){var t=r(c);u=!0;for(var e=h.length;e;){for(a=h,h=[];++l1)for(var i=1;i0&&n=0?this.static[r]=n.value:a.type===s.TypeParser.types.primitive?this.static[r]=a.value:this.observers[r]=n.value)}return p(e,t),e.prototype.sync=function(){},e.prototype.update=function(){},e.prototype.publish=function(){},e.prototype.locals=function(){var t,e,i,n,o,s;for(t in i={},o=this.static)n=o[t],i[t]=n;for(t in s=this.observers)e=s[t],i[t]=e.value();return i},e.prototype.camelCase=function(t){return t.replace(/-([a-z])/g,(function(t){return t[1].toUpperCase()}))},e.prototype.bind=function(){var t,e,i,n,o,r,a,h,u,l,c,d,p,f,_,m,g,v,y,b;if(!this.bound){for(e in f=this.observers)i=f[e],this.observers[e]=this.observe(this.view.models,i,function(t){return function(e){return function(){return t.componentView.models[e]=t.observers[e].value()}}}(this).call(this,e));this.bound=!0}if(null!=this.componentView)this.componentView.bind();else{for(this.el.innerHTML=this.component.template.call(this),a=this.component.initialize.call(this,this.el,this.locals()),this.el._bound=!0,r={},l=0,d=(_=s.extensions).length;l=0));return u}}else if((null!=e?e.toString():void 0)!==(null!=(h=t.value)?h.toString():void 0))return t.value=null!=e?e:""}},s.public.binders.if={block:!0,priority:4e3,bind:function(t){var e,i;if(null==this.marker)return e=[this.view.prefix,this.type].join("-").replace("--","-"),i=t.getAttribute(e),this.marker=document.createComment(" rivets: "+this.type+" "+i+" "),this.bound=!1,t.removeAttribute(e),t.parentNode.insertBefore(this.marker,t),t.parentNode.removeChild(t)},unbind:function(){if(this.nested)return this.nested.unbind(),this.bound=!1},routine:function(t,e){var i,n,o,r;if(!!e==!this.bound){if(e){for(i in o={},r=this.view.models)n=r[i],o[i]=n;return(this.nested||(this.nested=new s.View(t,o,this.view.options()))).bind(),this.marker.parentNode.insertBefore(t,this.marker.nextSibling),this.bound=!0}return t.parentNode.removeChild(t),this.nested.unbind(),this.bound=!1}},update:function(t){var e;return null!=(e=this.nested)?e.update(t):void 0}},s.public.binders.unless={block:!0,priority:4e3,bind:function(t){return s.public.binders.if.bind.call(this,t)},unbind:function(){return s.public.binders.if.unbind.call(this)},routine:function(t,e){return s.public.binders.if.routine.call(this,t,!e)},update:function(t){return s.public.binders.if.update.call(this,t)}},s.public.binders["on-*"]={function:!0,priority:1e3,unbind:function(t){if(this.handler)return s.Util.unbindEvent(t,this.args[0],this.handler)},routine:function(t,e){return this.handler&&s.Util.unbindEvent(t,this.args[0],this.handler),s.Util.bindEvent(t,this.args[0],this.handler=this.eventHandler(e))}},s.public.binders["each-*"]={block:!0,priority:4e3,bind:function(t){var e,i,n,o;if(null==this.marker)e=[this.view.prefix,this.type].join("-").replace("--","-"),this.marker=document.createComment(" rivets: "+this.type+" "),this.iterated=[],t.removeAttribute(e),t.parentNode.insertBefore(this.marker,t),t.parentNode.removeChild(t);else for(i=0,n=(o=this.iterated).length;ie.length)for(p=0,m=(y=Array(this.iterated.length-e.length)).length;p=0&&s.splice(n,1),s.length||delete o.pointers[e],this.cleanupWeakReference(o,t[this.id])},observe:function(t,e,i){var n,o,s,r;return null==(n=this.weakReference(t).callbacks)[e]&&(n[e]=[],(null!=(o=Object.getOwnPropertyDescriptor(t,e))?o.get:void 0)||(null!=o?o.set:void 0)||(s=t[e],Object.defineProperty(t,e,{enumerable:!0,get:function(){return s},set:(r=this,function(i){var o,a,h,u,l;if(i!==s&&(r.unobserveMutations(s,t[r.id],e),s=i,a=r.weakmap[t[r.id]])){if((n=a.callbacks)[e])for(h=0,u=(l=n[e].slice()).length;h=0&&o();return r.observeMutations(i,t[r.id],e)}})}))),f.call(n[e],i)<0&&n[e].push(i),this.observeMutations(t[e],t[this.id],e)},unobserve:function(t,e,i){var n,o,s;if((s=this.weakmap[t[this.id]])&&(n=s.callbacks[e]))return(o=n.indexOf(i))>=0&&(n.splice(o,1),n.length||(delete s.callbacks[e],this.unobserveMutations(t[e],t[this.id],e))),this.cleanupWeakReference(s,t[this.id])},get:function(t,e){return t[e]},set:function(t,e,i){return t[e]=i}},s.factory=function(t){return s.sightglass=t,s.public._=s,s.public},"object"==typeof(null!==t?t.exports:void 0)?t.exports=s.factory(i(206)):(n=[i(206)],void 0===(o=function(t){return this.rivets=s.factory(t)}.apply(e,n))||(t.exports=o))}.call(this)},206:function(t,e){var i;(function(){function n(t,e,i,n){return new o(t,e,i,n)}function o(t,e,i,n){this.options=n||{},this.options.adapters=this.options.adapters||{},this.obj=t,this.keypath=e,this.callback=i,this.objectPath=[],this.update=this.update.bind(this),this.parse(),s(this.target=this.realize())&&this.set(!0,this.key,this.target,this.callback)}function s(t){return"object"==typeof t&&null!==t}function r(t){throw new Error("[sightglass] "+t)}n.adapters={},o.tokenize=function(t,e,i){var n,o,s=[],r={i,path:""};for(n=0;n{"use strict";t.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";var t=i(228);function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(){n=function(){return t};var t={},i=Object.prototype,o=i.hasOwnProperty,s="function"==typeof Symbol?Symbol:{},r=s.iterator||"@@iterator",a=s.asyncIterator||"@@asyncIterator",h=s.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,r,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==i&&o.call(v,r)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,i){function n(s,r,a,h){var u=c(t[s],t,r);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==e(d)&&o.call(d,"__await")?i.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):i.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var s;this._invoke=function(t,e){function o(){return new i((function(i,o){n(t,e,i,o)}))}return s=s?s.then(o,o):o()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,n=function e(){for(;++i=0;--n){var s=this.tryEntries[n],r=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var a=o.call(s,"catchLoc"),h=o.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function o(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}const s=function(){var e,i=(e=n().mark((function e(i){var o,s;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o={method:"GET",url:"/api/airports/".concat(i,"/lookup")},e.next=3,(0,t.Z)(o);case 3:return s=e.sent,console.log("lookup raw response: ",s),e.abrupt("return",s.data);case 6:case"end":return e.stop()}}),e)})),function(){var t=this,i=arguments;return new Promise((function(n,s){var r=e.apply(t,i);function a(t){o(r,n,s,a,h,"next",t)}function h(t){o(r,n,s,a,h,"throw",t)}a(void 0)}))});return function(t){return i.apply(this,arguments)}}();function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function a(){a=function(){return t};var t={},e=Object.prototype,i=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",s=n.asyncIterator||"@@asyncIterator",h=n.toStringTag||"@@toStringTag";function u(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof p?e:p,s=Object.create(o.prototype),r=new T(n||[]);return s._invoke=function(t,e,i){var n="suspendedStart";return function(o,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw s;return S()}for(i.method=o,i.arg=s;;){var r=i.delegate;if(r){var a=x(r,i);if(a){if(a===d)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var h=c(t,e,i);if("normal"===h.type){if(n=i.done?"completed":"suspendedYield",h.arg===d)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n="completed",i.method="throw",i.arg=h.arg)}}}(t,i,r),s}function c(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function p(){}function f(){}function _(){}var m={};u(m,o,(function(){return this}));var g=Object.getPrototypeOf,v=g&&g(g(M([])));v&&v!==e&&i.call(v,o)&&(m=v);var y=_.prototype=p.prototype=Object.create(m);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){function n(o,s,a,h){var u=c(t[o],t,s);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==r(d)&&i.call(d,"__await")?e.resolve(d.__await).then((function(t){n("next",t,a,h)}),(function(t){n("throw",t,a,h)})):e.resolve(d).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,h)}))}h(u.arg)}var o;this._invoke=function(t,i){function s(){return new e((function(e,o){n(t,i,e,o)}))}return o=o?o.then(s,s):s()}}function x(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return d;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=c(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,d;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function M(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,s=function e(){for(;++n=0;--o){var s=this.tryEntries[o],r=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var a=i.call(s,"catchLoc"),h=i.call(s,"finallyLoc");if(a&&h){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),P(i),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:M(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),d}},t}function h(t,e,i,n,o,s,r){try{var a=t[s](r),h=a.value}catch(t){return void i(t)}a.done?e(h):Promise.resolve(h).then(n,o)}const u=function(){var e,i=(e=a().mark((function e(i,n){var o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o={method:"GET",url:"/api/airports/".concat(i,"/distance/").concat(n)},e.next=3,(0,t.Z)(o);case 3:return s=e.sent,e.abrupt("return",s.data);case 5:case"end":return e.stop()}}),e)})),function(){var t=this,i=arguments;return new Promise((function(n,o){var s=e.apply(t,i);function r(t){h(s,n,o,r,a,"next",t)}function a(t){h(s,n,o,r,a,"throw",t)}r(void 0)}))});return function(t,e){return i.apply(this,arguments)}}();i(928),window.phpvms.airport_lookup=s,window.phpvms.calculate_distance=u,window.phpvms.map=i(201)})()})(); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/public/assets/admin/js/app.js.map b/public/assets/admin/js/app.js.map index f4c8cb9d0..f70bb1f2c 100644 --- a/public/assets/admin/js/app.js.map +++ b/public/assets/admin/js/app.js.map @@ -1 +1 @@ -{"version":3,"file":"/assets/admin/js/app.js","mappings":"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","sources":["webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./resources/js/storage.js","webpack:///./resources/js/bootstrap.js","webpack:///./resources/js/common.js","webpack:///./resources/js/config.js","webpack:///./resources/js/maps/base_map.js","webpack:///./resources/js/maps/helpers.js","webpack:///./resources/js/maps/airspace_map.js","webpack:///./resources/js/maps/config.js","webpack:///./node_modules/leaflet/dist/leaflet-src.esm.js","webpack:///./resources/js/maps/live_map.js","webpack:///./resources/js/maps/route_map.js","webpack:///./resources/js/maps/index.js","webpack:///./resources/js/request.js","webpack:///./node_modules/leaflet-providers/leaflet-providers.js","webpack:///./node_modules/leaflet-rotatedmarker/leaflet.rotatedMarker.js","webpack:///./node_modules/leaflet.geodesic/dist/leaflet.geodesic.umd.min.js","webpack:///./node_modules/leaflet/dist/leaflet-src.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/rivets/dist/rivets.js","webpack:///./node_modules/sightglass/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///./resources/js/admin/airport_lookup.js","webpack:///./resources/js/admin/calculate_distance.js","webpack:///./resources/js/admin/app.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\n/**\r\n * Simple browser storage interface\r\n */\r\nexport default class Storage {\r\n constructor(name, default_value) {\r\n this.name = name;\r\n\r\n // Read the object from storage; if it doesn't exist, set\r\n // it to the default value\r\n const st = window.localStorage.getItem(this.name);\r\n if (!st) {\r\n console.log('Nothing found in storage, starting from default');\r\n this.data = default_value;\r\n } else {\r\n console.log('Found in storage: ', st);\r\n this.data = JSON.parse(st);\r\n }\r\n }\r\n\r\n /**\r\n * Save to local storage\r\n */\r\n save() {\r\n window.localStorage.setItem(this.name, JSON.stringify(this.data));\r\n }\r\n\r\n /**\r\n * Return a list from a given key\r\n *\r\n * @param {String} key\r\n *\r\n * @returns {Array|*}\r\n */\r\n getList(key) {\r\n if (!(key in this.data)) {\r\n return [];\r\n }\r\n\r\n return this.data[key];\r\n }\r\n\r\n /**\r\n * Add `value` to a given `key`\r\n *\r\n * @param {string} key\r\n * @param {*} value\r\n */\r\n addToList(key, value) {\r\n if (!(key in this.data)) {\r\n this.data[key] = [];\r\n }\r\n\r\n const index = this.data[key].indexOf(value);\r\n if (index === -1) {\r\n this.data[key].push(value);\r\n }\r\n }\r\n\r\n /**\r\n * Remove `value` from the given `key`\r\n *\r\n * @param {String} key\r\n * @param {*} value\r\n */\r\n removeFromList(key, value) {\r\n if (!(key in this.data)) {\r\n return;\r\n }\r\n\r\n const index = this.data[key].indexOf(value);\r\n if (index !== -1) {\r\n this.data[key].splice(index, 1);\r\n }\r\n }\r\n}\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\n/**\r\n * Bootstrap any Javascript libraries required\r\n */\r\n\r\nimport Storage from './storage';\r\nimport config from './config';\r\nimport request from './request';\r\n\r\nwindow.axios = require('axios');\r\n\r\n/**\r\n * Container for phpVMS specific functions\r\n */\r\nwindow.phpvms = {\r\n config,\r\n request,\r\n Storage,\r\n};\r\n\r\nrequire('./common');\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\nconst rivets = require('rivets');\r\n\r\n/**\r\n * Generic formatter to prepend\r\n *\r\n * @param value\r\n * @param prepend\r\n *\r\n * @returns {*}\r\n */\r\nrivets.formatters.prepend = function (value, prepend) {\r\n return prepend + value;\r\n};\r\n\r\n/**\r\n * Format minutes into HHh MMm\r\n *\r\n * @param value\r\n *\r\n * @returns {string}\r\n */\r\nrivets.formatters.time_hm = function (value) {\r\n const hours = Math.floor(value / 60);\r\n const mins = value % 60;\r\n return `${hours}h ${mins}m`;\r\n};\r\n\r\n/**\r\n *\r\n * @param value\r\n * @param len\r\n *\r\n * @returns {boolean}\r\n */\r\nrivets.formatters.gt = (value, len) => value.length > len;\r\n\r\n/**\r\n *\r\n * @param value\r\n * @param len\r\n *\r\n * @returns {boolean}\r\n */\r\nrivets.formatters.lt = (value, len) => value.length < len;\r\n\r\n/**\r\n *\r\n * @param value\r\n * @param len\r\n *\r\n * @returns {boolean}\r\n */\r\nrivets.formatters.eq = (value, len) => value.length > len;\r\n\r\n/**\r\n * Use a default value if value is null or blank\r\n *\r\n * @param value Value to use\r\n * @param def Default value to use if value is null\r\n */\r\nrivets.formatters.fallback = (value, def) => value || def;\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\nconst base_url = document.head.querySelector('meta[name=\"base-url\"]');\r\nconst token = document.head.querySelector('meta[name=\"csrf-token\"]');\r\nconst api_key = document.head.querySelector('meta[name=\"api-key\"]');\r\n\r\nexport default {\r\n api_key: api_key.content || '',\r\n base_url: base_url.content || '',\r\n csrf_token: token.content || '',\r\n};\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n * Available providers: https://leaflet-extras.github.io/leaflet-providers/preview/\r\n */\r\n\r\nconst leaflet = require('leaflet');\r\nrequire('leaflet-providers');\r\n\r\nexport default (_opts) => {\r\n const opts = Object.assign({\r\n render_elem: 'map',\r\n center: [29.98139, -95.33374],\r\n zoom: 5,\r\n maxZoom: 10,\r\n layers: [],\r\n set_marker: false,\r\n leafletOptions: {},\r\n }, _opts);\r\n\r\n const leafletOptions = Object.assign({\r\n center: opts.center,\r\n zoom: opts.zoom,\r\n scrollWheelZoom: false,\r\n providers: {},\r\n }, opts.leafletOptions);\r\n\r\n // Check if any providers are listed; if not, set the default\r\n if (Object.entries(leafletOptions.providers).length === 0) {\r\n leafletOptions.providers = {\r\n 'Esri.WorldStreetMap': {},\r\n };\r\n }\r\n\r\n const map = leaflet.map('map', leafletOptions);\r\n\r\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\r\n for (const key in leafletOptions.providers) {\r\n leaflet.tileLayer\r\n .provider(key, leafletOptions.providers[key])\r\n .addTo(map);\r\n }\r\n\r\n return map;\r\n};\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\nconst leaflet = require('leaflet');\r\n\r\n/**\r\n * Add a WMS layer to a map. opts must be:\r\n * {\r\n * url: '',\r\n * params: {}\r\n * }\r\n * @param map\r\n * @param opts\r\n */\r\nexport function addWMSLayer(map, opts) {\r\n if (opts.url === '') {\r\n return null;\r\n }\r\n\r\n opts.params = Object.assign({\r\n format: 'image/png',\r\n transparent: true,\r\n maxZoom: 14,\r\n minZoom: 4,\r\n }, opts.params);\r\n\r\n const mlayer = leaflet.tileLayer.wms(\r\n opts.url, opts.params,\r\n );\r\n\r\n mlayer.addTo(map);\r\n\r\n return mlayer;\r\n}\r\n\r\n/**\r\n * Show a popup\r\n * @param feature\r\n * @param layer\r\n */\r\nexport function showFeaturePopup(feature, layer) {\r\n let popup_html = '';\r\n if (feature.properties && feature.properties.popup) {\r\n popup_html += feature.properties.popup;\r\n }\r\n\r\n layer.bindPopup(popup_html);\r\n}\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\nimport draw_base_map from './base_map';\r\nimport { addWMSLayer } from './helpers';\r\n\r\nconst leaflet = require('leaflet');\r\n\r\n/**\r\n * Render a map with the airspace, etc around a given set of coords\r\n * e.g, the airport map\r\n * @param {Object} _opts\r\n */\r\nexport default (_opts) => {\r\n const opts = Object.assign({\r\n render_elem: 'map',\r\n overlay_elem: '',\r\n lat: 0,\r\n lon: 0,\r\n zoom: 12,\r\n layers: [],\r\n set_marker: true,\r\n marker_popup: '',\r\n\r\n // Passed from the config/maps.php file\r\n metar_wms: {\r\n url: '',\r\n params: {},\r\n },\r\n }, _opts);\r\n\r\n const map = draw_base_map(opts);\r\n const coords = [opts.lat, opts.lon];\r\n console.log('Applying coords', coords);\r\n\r\n map.setView(coords, opts.zoom);\r\n if (opts.set_marker === true) {\r\n leaflet.marker(coords).addTo(map).bindPopup(opts.marker_popup);\r\n }\r\n\r\n if (opts.metar_wms.url !== '') {\r\n addWMSLayer(map, opts.metar_wms);\r\n }\r\n\r\n return map;\r\n};\r\n","/**\r\n * Before you edit these, read the documentation on how these files are compiled:\r\n * https://docs.phpvms.net/developers/building-assets\r\n *\r\n * Edits here don't take place until you compile these assets and then upload them.\r\n */\r\n\r\nexport const PLAN_ROUTE_COLOR = '#8B008B';\r\nexport const ACTUAL_ROUTE_COLOR = '#067ec1';\r\nexport const CIRCLE_COLOR = '#056093';\r\n","/* @preserve\n * Leaflet 1.8.0, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\nvar version = \"1.8.0\";\n\n/*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n// @function extend(dest: Object, src?: Object): Object\r\n// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\nfunction extend(dest) {\r\n\tvar i, j, len, src;\r\n\r\n\tfor (j = 1, len = arguments.length; j < len; j++) {\r\n\t\tsrc = arguments[j];\r\n\t\tfor (i in src) {\r\n\t\t\tdest[i] = src[i];\r\n\t\t}\r\n\t}\r\n\treturn dest;\r\n}\r\n\r\n// @function create(proto: Object, properties?: Object): Object\r\n// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\nvar create$2 = Object.create || (function () {\r\n\tfunction F() {}\r\n\treturn function (proto) {\r\n\t\tF.prototype = proto;\r\n\t\treturn new F();\r\n\t};\r\n})();\r\n\r\n// @function bind(fn: Function, …): Function\r\n// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n// Has a `L.bind()` shortcut.\r\nfunction bind(fn, obj) {\r\n\tvar slice = Array.prototype.slice;\r\n\r\n\tif (fn.bind) {\r\n\t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n\t}\r\n\r\n\tvar args = slice.call(arguments, 2);\r\n\r\n\treturn function () {\r\n\t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n\t};\r\n}\r\n\r\n// @property lastId: Number\r\n// Last unique ID used by [`stamp()`](#util-stamp)\r\nvar lastId = 0;\r\n\r\n// @function stamp(obj: Object): Number\r\n// Returns the unique ID of an object, assigning it one if it doesn't have it.\r\nfunction stamp(obj) {\r\n\tif (!('_leaflet_id' in obj)) {\r\n\t\tobj['_leaflet_id'] = ++lastId;\r\n\t}\r\n\treturn obj._leaflet_id;\r\n}\r\n\r\n// @function throttle(fn: Function, time: Number, context: Object): Function\r\n// Returns a function which executes function `fn` with the given scope `context`\r\n// (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n// `fn` will be called no more than one time per given amount of `time`. The arguments\r\n// received by the bound function will be any arguments passed when binding the\r\n// function, followed by any arguments passed when invoking the bound function.\r\n// Has an `L.throttle` shortcut.\r\nfunction throttle(fn, time, context) {\r\n\tvar lock, args, wrapperFn, later;\r\n\r\n\tlater = function () {\r\n\t\t// reset lock and call if queued\r\n\t\tlock = false;\r\n\t\tif (args) {\r\n\t\t\twrapperFn.apply(context, args);\r\n\t\t\targs = false;\r\n\t\t}\r\n\t};\r\n\r\n\twrapperFn = function () {\r\n\t\tif (lock) {\r\n\t\t\t// called too soon, queue to call later\r\n\t\t\targs = arguments;\r\n\r\n\t\t} else {\r\n\t\t\t// call and lock until later\r\n\t\t\tfn.apply(context, arguments);\r\n\t\t\tsetTimeout(later, time);\r\n\t\t\tlock = true;\r\n\t\t}\r\n\t};\r\n\r\n\treturn wrapperFn;\r\n}\r\n\r\n// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n// Returns the number `num` modulo `range` in such a way so it lies within\r\n// `range[0]` and `range[1]`. The returned value will be always smaller than\r\n// `range[1]` unless `includeMax` is set to `true`.\r\nfunction wrapNum(x, range, includeMax) {\r\n\tvar max = range[1],\r\n\t min = range[0],\r\n\t d = max - min;\r\n\treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n}\r\n\r\n// @function falseFn(): Function\r\n// Returns a function which always returns `false`.\r\nfunction falseFn() { return false; }\r\n\r\n// @function formatNum(num: Number, precision?: Number|false): Number\r\n// Returns the number `num` rounded with specified `precision`.\r\n// The default `precision` value is 6 decimal places.\r\n// `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\nfunction formatNum(num, precision) {\r\n\tif (precision === false) { return num; }\r\n\tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n\treturn Math.round(num * pow) / pow;\r\n}\r\n\r\n// @function trim(str: String): String\r\n// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\nfunction trim(str) {\r\n\treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n}\r\n\r\n// @function splitWords(str: String): String[]\r\n// Trims and splits the string on whitespace and returns the array of parts.\r\nfunction splitWords(str) {\r\n\treturn trim(str).split(/\\s+/);\r\n}\r\n\r\n// @function setOptions(obj: Object, options: Object): Object\r\n// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\nfunction setOptions(obj, options) {\r\n\tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n\t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n\t}\r\n\tfor (var i in options) {\r\n\t\tobj.options[i] = options[i];\r\n\t}\r\n\treturn obj.options;\r\n}\r\n\r\n// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n// Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n// be appended at the end. If `uppercase` is `true`, the parameter names will\r\n// be uppercased (e.g. `'?A=foo&B=bar'`)\r\nfunction getParamString(obj, existingUrl, uppercase) {\r\n\tvar params = [];\r\n\tfor (var i in obj) {\r\n\t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n\t}\r\n\treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n}\r\n\r\nvar templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n// @function template(str: String, data: Object): String\r\n// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n// `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n// data values — they will be evaluated passing `data` as an argument.\r\nfunction template(str, data) {\r\n\treturn str.replace(templateRe, function (str, key) {\r\n\t\tvar value = data[key];\r\n\r\n\t\tif (value === undefined) {\r\n\t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n\t\t} else if (typeof value === 'function') {\r\n\t\t\tvalue = value(data);\r\n\t\t}\r\n\t\treturn value;\r\n\t});\r\n}\r\n\r\n// @function isArray(obj): Boolean\r\n// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\nvar isArray = Array.isArray || function (obj) {\r\n\treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n};\r\n\r\n// @function indexOf(array: Array, el: Object): Number\r\n// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\nfunction indexOf(array, el) {\r\n\tfor (var i = 0; i < array.length; i++) {\r\n\t\tif (array[i] === el) { return i; }\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n// @property emptyImageUrl: String\r\n// Data URI string containing a base64-encoded empty GIF image.\r\n// Used as a hack to free memory from unused images on WebKit-powered\r\n// mobile devices (by setting image `src` to this string).\r\nvar emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n// inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\nfunction getPrefixed(name) {\r\n\treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n}\r\n\r\nvar lastTime = 0;\r\n\r\n// fallback for IE 7-8\r\nfunction timeoutDefer(fn) {\r\n\tvar time = +new Date(),\r\n\t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n\tlastTime = time + timeToCall;\r\n\treturn window.setTimeout(fn, timeToCall);\r\n}\r\n\r\nvar requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\nvar cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n\t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n// Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n// `context` if given. When `immediate` is set, `fn` is called immediately if\r\n// the browser doesn't have native support for\r\n// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n// otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\nfunction requestAnimFrame(fn, context, immediate) {\r\n\tif (immediate && requestFn === timeoutDefer) {\r\n\t\tfn.call(context);\r\n\t} else {\r\n\t\treturn requestFn.call(window, bind(fn, context));\r\n\t}\r\n}\r\n\r\n// @function cancelAnimFrame(id: Number): undefined\r\n// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\nfunction cancelAnimFrame(id) {\r\n\tif (id) {\r\n\t\tcancelFn.call(window, id);\r\n\t}\r\n}\n\nvar Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n};\n\n// @class Class\r\n// @aka L.Class\r\n\r\n// @section\r\n// @uninheritable\r\n\r\n// Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\nfunction Class() {}\r\n\r\nClass.extend = function (props) {\r\n\r\n\t// @function extend(props: Object): Function\r\n\t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n\t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n\tvar NewClass = function () {\r\n\r\n\t\tsetOptions(this);\r\n\r\n\t\t// call the constructor\r\n\t\tif (this.initialize) {\r\n\t\t\tthis.initialize.apply(this, arguments);\r\n\t\t}\r\n\r\n\t\t// call all constructor hooks\r\n\t\tthis.callInitHooks();\r\n\t};\r\n\r\n\tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n\tvar proto = create$2(parentProto);\r\n\tproto.constructor = NewClass;\r\n\r\n\tNewClass.prototype = proto;\r\n\r\n\t// inherit parent's statics\r\n\tfor (var i in this) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n\t\t\tNewClass[i] = this[i];\r\n\t\t}\r\n\t}\r\n\r\n\t// mix static properties into the class\r\n\tif (props.statics) {\r\n\t\textend(NewClass, props.statics);\r\n\t}\r\n\r\n\t// mix includes into the prototype\r\n\tif (props.includes) {\r\n\t\tcheckDeprecatedMixinEvents(props.includes);\r\n\t\textend.apply(null, [proto].concat(props.includes));\r\n\t}\r\n\r\n\t// mix given properties into the prototype\r\n\textend(proto, props);\r\n\tdelete proto.statics;\r\n\tdelete proto.includes;\r\n\r\n\t// merge options\r\n\tif (proto.options) {\r\n\t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n\t\textend(proto.options, props.options);\r\n\t}\r\n\r\n\tproto._initHooks = [];\r\n\r\n\t// add method for calling all hooks\r\n\tproto.callInitHooks = function () {\r\n\r\n\t\tif (this._initHooksCalled) { return; }\r\n\r\n\t\tif (parentProto.callInitHooks) {\r\n\t\t\tparentProto.callInitHooks.call(this);\r\n\t\t}\r\n\r\n\t\tthis._initHooksCalled = true;\r\n\r\n\t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n\t\t\tproto._initHooks[i].call(this);\r\n\t\t}\r\n\t};\r\n\r\n\treturn NewClass;\r\n};\r\n\r\n\r\n// @function include(properties: Object): this\r\n// [Includes a mixin](#class-includes) into the current class.\r\nClass.include = function (props) {\r\n\tvar parentOptions = this.prototype.options;\r\n\textend(this.prototype, props);\r\n\tif (props.options) {\r\n\t\tthis.prototype.options = parentOptions;\r\n\t\tthis.mergeOptions(props.options);\r\n\t}\r\n\treturn this;\r\n};\r\n\r\n// @function mergeOptions(options: Object): this\r\n// [Merges `options`](#class-options) into the defaults of the class.\r\nClass.mergeOptions = function (options) {\r\n\textend(this.prototype.options, options);\r\n\treturn this;\r\n};\r\n\r\n// @function addInitHook(fn: Function): this\r\n// Adds a [constructor hook](#class-constructor-hooks) to the class.\r\nClass.addInitHook = function (fn) { // (Function) || (String, args...)\r\n\tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n\tvar init = typeof fn === 'function' ? fn : function () {\r\n\t\tthis[fn].apply(this, args);\r\n\t};\r\n\r\n\tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n\tthis.prototype._initHooks.push(init);\r\n\treturn this;\r\n};\r\n\r\nfunction checkDeprecatedMixinEvents(includes) {\r\n\tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n\tincludes = isArray(includes) ? includes : [includes];\r\n\r\n\tfor (var i = 0; i < includes.length; i++) {\r\n\t\tif (includes[i] === L.Mixin.Events) {\r\n\t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n\t\t\t\t'this property will be removed in future releases, ' +\r\n\t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n\t\t}\r\n\t}\r\n}\n\n/*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\nvar Events = {\r\n\t/* @method on(type: String, fn: Function, context?: Object): this\r\n\t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n\t *\r\n\t * @alternative\r\n\t * @method on(eventMap: Object): this\r\n\t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\t */\r\n\ton: function (types, fn, context) {\r\n\r\n\t\t// types can be a map of types/handlers\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\t// we don't process space-separated events here for performance;\r\n\t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n\t\t\t\tthis._on(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// types can be a string of space-separated words\r\n\t\t\ttypes = splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._on(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* @method off(type: String, fn?: Function, context?: Object): this\r\n\t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n\t *\r\n\t * @alternative\r\n\t * @method off(eventMap: Object): this\r\n\t * Removes a set of type/listener pairs.\r\n\t *\r\n\t * @alternative\r\n\t * @method off: this\r\n\t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n\t */\r\n\toff: function (types, fn, context) {\r\n\r\n\t\tif (!arguments.length) {\r\n\t\t\t// clear all listeners if called without arguments\r\n\t\t\tdelete this._events;\r\n\r\n\t\t} else if (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis._off(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\ttypes = splitWords(types);\r\n\r\n\t\t\tvar removeAll = arguments.length === 1;\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tif (removeAll) {\r\n\t\t\t\t\tthis._off(types[i]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis._off(types[i], fn, context);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// attach listener (without syntactic sugar now)\r\n\t_on: function (type, fn, context) {\r\n\t\tif (typeof fn !== 'function') {\r\n\t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._events = this._events || {};\r\n\r\n\t\t/* get/init listeners for type */\r\n\t\tvar typeListeners = this._events[type];\r\n\t\tif (!typeListeners) {\r\n\t\t\ttypeListeners = [];\r\n\t\t\tthis._events[type] = typeListeners;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\t// Less memory footprint.\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\t\tvar newListener = {fn: fn, ctx: context},\r\n\t\t listeners = typeListeners;\r\n\r\n\t\t// check if fn already there\r\n\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlisteners.push(newListener);\r\n\t},\r\n\r\n\t_off: function (type, fn, context) {\r\n\t\tvar listeners,\r\n\t\t i,\r\n\t\t len;\r\n\r\n\t\tif (!this._events) { return; }\r\n\r\n\t\tlisteners = this._events[type];\r\n\r\n\t\tif (!listeners) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (arguments.length === 1) { // remove all\r\n\t\t\tif (this._firingCount) {\r\n\t\t\t\t// Set all removed listeners to noop\r\n\t\t\t\t// so they are not called if remove happens in fire\r\n\t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tlisteners[i].fn = falseFn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// clear all listeners for a type if function isn't specified\r\n\t\t\tdelete this._events[type];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\r\n\t\tif (typeof fn !== 'function') {\r\n\t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// find fn and remove it\r\n\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\tvar l = listeners[i];\r\n\t\t\tif (l.ctx !== context) { continue; }\r\n\t\t\tif (l.fn === fn) {\r\n\t\t\t\tif (this._firingCount) {\r\n\t\t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n\t\t\t\t\tl.fn = falseFn;\r\n\r\n\t\t\t\t\t/* copy array in case events are being fired */\r\n\t\t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n\t\t\t\t}\r\n\t\t\t\tlisteners.splice(i, 1);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconsole.warn('listener not found');\r\n\t},\r\n\r\n\t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n\t// Fires an event of the specified type. You can optionally provide a data\r\n\t// object — the first argument of the listener function will contain its\r\n\t// properties. The event can optionally be propagated to event parents.\r\n\tfire: function (type, data, propagate) {\r\n\t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n\t\tvar event = extend({}, data, {\r\n\t\t\ttype: type,\r\n\t\t\ttarget: this,\r\n\t\t\tsourceTarget: data && data.sourceTarget || this\r\n\t\t});\r\n\r\n\t\tif (this._events) {\r\n\t\t\tvar listeners = this._events[type];\r\n\r\n\t\t\tif (listeners) {\r\n\t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n\t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tvar l = listeners[i];\r\n\t\t\t\t\tl.fn.call(l.ctx || this, event);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._firingCount--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// propagate the event to parents (set with addEventParent)\r\n\t\t\tthis._propagateEvent(event);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method listens(type: String, propagate?: Boolean): Boolean\r\n\t// Returns `true` if a particular event type has any listeners attached to it.\r\n\t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n\tlistens: function (type, propagate) {\r\n\t\tif (typeof type !== 'string') {\r\n\t\t\tconsole.warn('\"string\" type argument expected');\r\n\t\t}\r\n\t\tvar listeners = this._events && this._events[type];\r\n\t\tif (listeners && listeners.length) { return true; }\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// also check parents for listeners if event propagates\r\n\t\t\tfor (var id in this._eventParents) {\r\n\t\t\t\tif (this._eventParents[id].listens(type, propagate)) { return true; }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t// @method once(…): this\r\n\t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n\tonce: function (types, fn, context) {\r\n\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis.once(type, types[type], fn);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar handler = bind(function () {\r\n\t\t\tthis\r\n\t\t\t .off(types, fn, context)\r\n\t\t\t .off(types, handler, context);\r\n\t\t}, this);\r\n\r\n\t\t// add a listener that's executed once and removed after that\r\n\t\treturn this\r\n\t\t .on(types, fn, context)\r\n\t\t .on(types, handler, context);\r\n\t},\r\n\r\n\t// @method addEventParent(obj: Evented): this\r\n\t// Adds an event parent - an `Evented` that will receive propagated events\r\n\taddEventParent: function (obj) {\r\n\t\tthis._eventParents = this._eventParents || {};\r\n\t\tthis._eventParents[stamp(obj)] = obj;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeEventParent(obj: Evented): this\r\n\t// Removes an event parent, so it will stop receiving propagated events\r\n\tremoveEventParent: function (obj) {\r\n\t\tif (this._eventParents) {\r\n\t\t\tdelete this._eventParents[stamp(obj)];\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_propagateEvent: function (e) {\r\n\t\tfor (var id in this._eventParents) {\r\n\t\t\tthis._eventParents[id].fire(e.type, extend({\r\n\t\t\t\tlayer: e.target,\r\n\t\t\t\tpropagatedFrom: e.target\r\n\t\t\t}, e), true);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// aliases; we should ditch those eventually\r\n\r\n// @method addEventListener(…): this\r\n// Alias to [`on(…)`](#evented-on)\r\nEvents.addEventListener = Events.on;\r\n\r\n// @method removeEventListener(…): this\r\n// Alias to [`off(…)`](#evented-off)\r\n\r\n// @method clearAllEventListeners(…): this\r\n// Alias to [`off()`](#evented-off)\r\nEvents.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n// @method addOneTimeEventListener(…): this\r\n// Alias to [`once(…)`](#evented-once)\r\nEvents.addOneTimeEventListener = Events.once;\r\n\r\n// @method fireEvent(…): this\r\n// Alias to [`fire(…)`](#evented-fire)\r\nEvents.fireEvent = Events.fire;\r\n\r\n// @method hasEventListeners(…): Boolean\r\n// Alias to [`listens(…)`](#evented-listens)\r\nEvents.hasEventListeners = Events.listens;\r\n\r\nvar Evented = Class.extend(Events);\n\n/*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nfunction Point(x, y, round) {\r\n\t// @property x: Number; The `x` coordinate of the point\r\n\tthis.x = (round ? Math.round(x) : x);\r\n\t// @property y: Number; The `y` coordinate of the point\r\n\tthis.y = (round ? Math.round(y) : y);\r\n}\r\n\r\nvar trunc = Math.trunc || function (v) {\r\n\treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n};\r\n\r\nPoint.prototype = {\r\n\r\n\t// @method clone(): Point\r\n\t// Returns a copy of the current point.\r\n\tclone: function () {\r\n\t\treturn new Point(this.x, this.y);\r\n\t},\r\n\r\n\t// @method add(otherPoint: Point): Point\r\n\t// Returns the result of addition of the current and the given points.\r\n\tadd: function (point) {\r\n\t\t// non-destructive, returns a new point\r\n\t\treturn this.clone()._add(toPoint(point));\r\n\t},\r\n\r\n\t_add: function (point) {\r\n\t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n\t\tthis.x += point.x;\r\n\t\tthis.y += point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method subtract(otherPoint: Point): Point\r\n\t// Returns the result of subtraction of the given point from the current.\r\n\tsubtract: function (point) {\r\n\t\treturn this.clone()._subtract(toPoint(point));\r\n\t},\r\n\r\n\t_subtract: function (point) {\r\n\t\tthis.x -= point.x;\r\n\t\tthis.y -= point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method divideBy(num: Number): Point\r\n\t// Returns the result of division of the current point by the given number.\r\n\tdivideBy: function (num) {\r\n\t\treturn this.clone()._divideBy(num);\r\n\t},\r\n\r\n\t_divideBy: function (num) {\r\n\t\tthis.x /= num;\r\n\t\tthis.y /= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method multiplyBy(num: Number): Point\r\n\t// Returns the result of multiplication of the current point by the given number.\r\n\tmultiplyBy: function (num) {\r\n\t\treturn this.clone()._multiplyBy(num);\r\n\t},\r\n\r\n\t_multiplyBy: function (num) {\r\n\t\tthis.x *= num;\r\n\t\tthis.y *= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method scaleBy(scale: Point): Point\r\n\t// Multiply each coordinate of the current point by each coordinate of\r\n\t// `scale`. In linear algebra terms, multiply the point by the\r\n\t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n\t// defined by `scale`.\r\n\tscaleBy: function (point) {\r\n\t\treturn new Point(this.x * point.x, this.y * point.y);\r\n\t},\r\n\r\n\t// @method unscaleBy(scale: Point): Point\r\n\t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n\t// each coordinate of `scale`.\r\n\tunscaleBy: function (point) {\r\n\t\treturn new Point(this.x / point.x, this.y / point.y);\r\n\t},\r\n\r\n\t// @method round(): Point\r\n\t// Returns a copy of the current point with rounded coordinates.\r\n\tround: function () {\r\n\t\treturn this.clone()._round();\r\n\t},\r\n\r\n\t_round: function () {\r\n\t\tthis.x = Math.round(this.x);\r\n\t\tthis.y = Math.round(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method floor(): Point\r\n\t// Returns a copy of the current point with floored coordinates (rounded down).\r\n\tfloor: function () {\r\n\t\treturn this.clone()._floor();\r\n\t},\r\n\r\n\t_floor: function () {\r\n\t\tthis.x = Math.floor(this.x);\r\n\t\tthis.y = Math.floor(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method ceil(): Point\r\n\t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n\tceil: function () {\r\n\t\treturn this.clone()._ceil();\r\n\t},\r\n\r\n\t_ceil: function () {\r\n\t\tthis.x = Math.ceil(this.x);\r\n\t\tthis.y = Math.ceil(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method trunc(): Point\r\n\t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n\ttrunc: function () {\r\n\t\treturn this.clone()._trunc();\r\n\t},\r\n\r\n\t_trunc: function () {\r\n\t\tthis.x = trunc(this.x);\r\n\t\tthis.y = trunc(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method distanceTo(otherPoint: Point): Number\r\n\t// Returns the cartesian distance between the current and the given points.\r\n\tdistanceTo: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\tvar x = point.x - this.x,\r\n\t\t y = point.y - this.y;\r\n\r\n\t\treturn Math.sqrt(x * x + y * y);\r\n\t},\r\n\r\n\t// @method equals(otherPoint: Point): Boolean\r\n\t// Returns `true` if the given point has the same coordinates.\r\n\tequals: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn point.x === this.x &&\r\n\t\t point.y === this.y;\r\n\t},\r\n\r\n\t// @method contains(otherPoint: Point): Boolean\r\n\t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n\tcontains: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n\t\t Math.abs(point.y) <= Math.abs(this.y);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point for debugging purposes.\r\n\ttoString: function () {\r\n\t\treturn 'Point(' +\r\n\t\t formatNum(this.x) + ', ' +\r\n\t\t formatNum(this.y) + ')';\r\n\t}\r\n};\r\n\r\n// @factory L.point(x: Number, y: Number, round?: Boolean)\r\n// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Number[])\r\n// Expects an array of the form `[x, y]` instead.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Object)\r\n// Expects a plain object of the form `{x: Number, y: Number}` instead.\r\nfunction toPoint(x, y, round) {\r\n\tif (x instanceof Point) {\r\n\t\treturn x;\r\n\t}\r\n\tif (isArray(x)) {\r\n\t\treturn new Point(x[0], x[1]);\r\n\t}\r\n\tif (x === undefined || x === null) {\r\n\t\treturn x;\r\n\t}\r\n\tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n\t\treturn new Point(x.x, x.y);\r\n\t}\r\n\treturn new Point(x, y, round);\r\n}\n\n/*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nfunction Bounds(a, b) {\r\n\tif (!a) { return; }\r\n\r\n\tvar points = b ? [a, b] : a;\r\n\r\n\tfor (var i = 0, len = points.length; i < len; i++) {\r\n\t\tthis.extend(points[i]);\r\n\t}\r\n}\r\n\r\nBounds.prototype = {\r\n\t// @method extend(point: Point): this\r\n\t// Extends the bounds to contain the given point.\r\n\textend: function (point) { // (Point)\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\t// @property min: Point\r\n\t\t// The top left corner of the rectangle.\r\n\t\t// @property max: Point\r\n\t\t// The bottom right corner of the rectangle.\r\n\t\tif (!this.min && !this.max) {\r\n\t\t\tthis.min = point.clone();\r\n\t\t\tthis.max = point.clone();\r\n\t\t} else {\r\n\t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n\t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n\t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n\t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getCenter(round?: Boolean): Point\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function (round) {\r\n\t\treturn new Point(\r\n\t\t (this.min.x + this.max.x) / 2,\r\n\t\t (this.min.y + this.max.y) / 2, round);\r\n\t},\r\n\r\n\t// @method getBottomLeft(): Point\r\n\t// Returns the bottom-left point of the bounds.\r\n\tgetBottomLeft: function () {\r\n\t\treturn new Point(this.min.x, this.max.y);\r\n\t},\r\n\r\n\t// @method getTopRight(): Point\r\n\t// Returns the top-right point of the bounds.\r\n\tgetTopRight: function () { // -> Point\r\n\t\treturn new Point(this.max.x, this.min.y);\r\n\t},\r\n\r\n\t// @method getTopLeft(): Point\r\n\t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n\tgetTopLeft: function () {\r\n\t\treturn this.min; // left, top\r\n\t},\r\n\r\n\t// @method getBottomRight(): Point\r\n\t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n\tgetBottomRight: function () {\r\n\t\treturn this.max; // right, bottom\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the size of the given bounds\r\n\tgetSize: function () {\r\n\t\treturn this.max.subtract(this.min);\r\n\t},\r\n\r\n\t// @method contains(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\t// @alternative\r\n\t// @method contains(point: Point): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) {\r\n\t\tvar min, max;\r\n\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n\t\t\tobj = toPoint(obj);\r\n\t\t} else {\r\n\t\t\tobj = toBounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof Bounds) {\r\n\t\t\tmin = obj.min;\r\n\t\t\tmax = obj.max;\r\n\t\t} else {\r\n\t\t\tmin = max = obj;\r\n\t\t}\r\n\r\n\t\treturn (min.x >= this.min.x) &&\r\n\t\t (max.x <= this.max.x) &&\r\n\t\t (min.y >= this.min.y) &&\r\n\t\t (max.y <= this.max.y);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n\t// intersect if they have at least one point in common.\r\n\tintersects: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n\t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n\t\treturn xIntersects && yIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n\t// overlap if their intersection is an area.\r\n\toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n\t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n\t\treturn xOverlaps && yOverlaps;\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this.min && this.max);\r\n\t}\r\n};\r\n\r\n\r\n// @factory L.bounds(corner1: Point, corner2: Point)\r\n// Creates a Bounds object from two corners coordinate pairs.\r\n// @alternative\r\n// @factory L.bounds(points: Point[])\r\n// Creates a Bounds object from the given array of points.\r\nfunction toBounds(a, b) {\r\n\tif (!a || a instanceof Bounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new Bounds(a, b);\r\n}\n\n/*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nfunction LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n\tif (!corner1) { return; }\r\n\r\n\tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tthis.extend(latlngs[i]);\r\n\t}\r\n}\r\n\r\nLatLngBounds.prototype = {\r\n\r\n\t// @method extend(latlng: LatLng): this\r\n\t// Extend the bounds to contain the given point\r\n\r\n\t// @alternative\r\n\t// @method extend(otherBounds: LatLngBounds): this\r\n\t// Extend the bounds to contain the given bounds\r\n\textend: function (obj) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLng) {\r\n\t\t\tsw2 = obj;\r\n\t\t\tne2 = obj;\r\n\r\n\t\t} else if (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj._southWest;\r\n\t\t\tne2 = obj._northEast;\r\n\r\n\t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n\t\t} else {\r\n\t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n\t\t}\r\n\r\n\t\tif (!sw && !ne) {\r\n\t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n\t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n\t\t} else {\r\n\t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n\t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n\t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n\t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method pad(bufferRatio: Number): LatLngBounds\r\n\t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n\t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n\t// Negative values will retract the bounds.\r\n\tpad: function (bufferRatio) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n\t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n\t\treturn new LatLngBounds(\r\n\t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n\t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n\t},\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function () {\r\n\t\treturn new LatLng(\r\n\t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n\t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n\t},\r\n\r\n\t// @method getSouthWest(): LatLng\r\n\t// Returns the south-west point of the bounds.\r\n\tgetSouthWest: function () {\r\n\t\treturn this._southWest;\r\n\t},\r\n\r\n\t// @method getNorthEast(): LatLng\r\n\t// Returns the north-east point of the bounds.\r\n\tgetNorthEast: function () {\r\n\t\treturn this._northEast;\r\n\t},\r\n\r\n\t// @method getNorthWest(): LatLng\r\n\t// Returns the north-west point of the bounds.\r\n\tgetNorthWest: function () {\r\n\t\treturn new LatLng(this.getNorth(), this.getWest());\r\n\t},\r\n\r\n\t// @method getSouthEast(): LatLng\r\n\t// Returns the south-east point of the bounds.\r\n\tgetSouthEast: function () {\r\n\t\treturn new LatLng(this.getSouth(), this.getEast());\r\n\t},\r\n\r\n\t// @method getWest(): Number\r\n\t// Returns the west longitude of the bounds\r\n\tgetWest: function () {\r\n\t\treturn this._southWest.lng;\r\n\t},\r\n\r\n\t// @method getSouth(): Number\r\n\t// Returns the south latitude of the bounds\r\n\tgetSouth: function () {\r\n\t\treturn this._southWest.lat;\r\n\t},\r\n\r\n\t// @method getEast(): Number\r\n\t// Returns the east longitude of the bounds\r\n\tgetEast: function () {\r\n\t\treturn this._northEast.lng;\r\n\t},\r\n\r\n\t// @method getNorth(): Number\r\n\t// Returns the north latitude of the bounds\r\n\tgetNorth: function () {\r\n\t\treturn this._northEast.lat;\r\n\t},\r\n\r\n\t// @method contains(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\r\n\t// @alternative\r\n\t// @method contains (latlng: LatLng): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n\t\t\tobj = toLatLng(obj);\r\n\t\t} else {\r\n\t\t\tobj = toLatLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj.getSouthWest();\r\n\t\t\tne2 = obj.getNorthEast();\r\n\t\t} else {\r\n\t\t\tsw2 = ne2 = obj;\r\n\t\t}\r\n\r\n\t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n\t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n\tintersects: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n\t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n\t\treturn latIntersects && lngIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n\toverlaps: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n\t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n\t\treturn latOverlaps && lngOverlaps;\r\n\t},\r\n\r\n\t// @method toBBoxString(): String\r\n\t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n\ttoBBoxString: function () {\r\n\t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n\t},\r\n\r\n\t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (bounds, maxMargin) {\r\n\t\tif (!bounds) { return false; }\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n\t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n\t},\r\n\r\n\t// @method isValid(): Boolean\r\n\t// Returns `true` if the bounds are properly initialized.\r\n\tisValid: function () {\r\n\t\treturn !!(this._southWest && this._northEast);\r\n\t}\r\n};\r\n\r\n// TODO International date line?\r\n\r\n// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n// @alternative\r\n// @factory L.latLngBounds(latlngs: LatLng[])\r\n// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\nfunction toLatLngBounds(a, b) {\r\n\tif (a instanceof LatLngBounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new LatLngBounds(a, b);\r\n}\n\n/* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nfunction LatLng(lat, lng, alt) {\r\n\tif (isNaN(lat) || isNaN(lng)) {\r\n\t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n\t}\r\n\r\n\t// @property lat: Number\r\n\t// Latitude in degrees\r\n\tthis.lat = +lat;\r\n\r\n\t// @property lng: Number\r\n\t// Longitude in degrees\r\n\tthis.lng = +lng;\r\n\r\n\t// @property alt: Number\r\n\t// Altitude in meters (optional)\r\n\tif (alt !== undefined) {\r\n\t\tthis.alt = +alt;\r\n\t}\r\n}\r\n\r\nLatLng.prototype = {\r\n\t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (obj, maxMargin) {\r\n\t\tif (!obj) { return false; }\r\n\r\n\t\tobj = toLatLng(obj);\r\n\r\n\t\tvar margin = Math.max(\r\n\t\t Math.abs(this.lat - obj.lat),\r\n\t\t Math.abs(this.lng - obj.lng));\r\n\r\n\t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point (for debugging purposes).\r\n\ttoString: function (precision) {\r\n\t\treturn 'LatLng(' +\r\n\t\t formatNum(this.lat, precision) + ', ' +\r\n\t\t formatNum(this.lng, precision) + ')';\r\n\t},\r\n\r\n\t// @method distanceTo(otherLatLng: LatLng): Number\r\n\t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n\tdistanceTo: function (other) {\r\n\t\treturn Earth.distance(this, toLatLng(other));\r\n\t},\r\n\r\n\t// @method wrap(): LatLng\r\n\t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n\twrap: function () {\r\n\t\treturn Earth.wrapLatLng(this);\r\n\t},\r\n\r\n\t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n\t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n\ttoBounds: function (sizeInMeters) {\r\n\t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n\t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n\t\treturn toLatLngBounds(\r\n\t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n\t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n\t}\r\n};\r\n\r\n\r\n\r\n// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Array): LatLng\r\n// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Object): LatLng\r\n// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\nfunction toLatLng(a, b, c) {\r\n\tif (a instanceof LatLng) {\r\n\t\treturn a;\r\n\t}\r\n\tif (isArray(a) && typeof a[0] !== 'object') {\r\n\t\tif (a.length === 3) {\r\n\t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n\t\t}\r\n\t\tif (a.length === 2) {\r\n\t\t\treturn new LatLng(a[0], a[1]);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\tif (a === undefined || a === null) {\r\n\t\treturn a;\r\n\t}\r\n\tif (typeof a === 'object' && 'lat' in a) {\r\n\t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n\t}\r\n\tif (b === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn new LatLng(a, b, c);\r\n}\n\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\nvar CRS = {\r\n\t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n\t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n\tlatLngToPoint: function (latlng, zoom) {\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n\t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n\t// zoom into geographical coordinates.\r\n\tpointToLatLng: function (point, zoom) {\r\n\t\tvar scale = this.scale(zoom),\r\n\t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng): Point\r\n\t// Projects geographical coordinates into coordinates in units accepted for\r\n\t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n\tproject: function (latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\t// @method unproject(point: Point): LatLng\r\n\t// Given a projected coordinate returns the corresponding LatLng.\r\n\t// The inverse of `project`.\r\n\tunproject: function (point) {\r\n\t\treturn this.projection.unproject(point);\r\n\t},\r\n\r\n\t// @method scale(zoom: Number): Number\r\n\t// Returns the scale used when transforming projected coordinates into\r\n\t// pixel coordinates for a particular zoom. For example, it returns\r\n\t// `256 * 2^zoom` for Mercator-based CRS.\r\n\tscale: function (zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\t// @method zoom(scale: Number): Number\r\n\t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n\t// factor of `scale`.\r\n\tzoom: function (scale) {\r\n\t\treturn Math.log(scale / 256) / Math.LN2;\r\n\t},\r\n\r\n\t// @method getProjectedBounds(zoom: Number): Bounds\r\n\t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n\tgetProjectedBounds: function (zoom) {\r\n\t\tif (this.infinite) { return null; }\r\n\r\n\t\tvar b = this.projection.bounds,\r\n\t\t s = this.scale(zoom),\r\n\t\t min = this.transformation.transform(b.min, s),\r\n\t\t max = this.transformation.transform(b.max, s);\r\n\r\n\t\treturn new Bounds(min, max);\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates.\r\n\r\n\t// @property code: String\r\n\t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n\t//\r\n\t// @property wrapLng: Number[]\r\n\t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n\t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n\t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n\t//\r\n\t// @property wrapLat: Number[]\r\n\t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n\t// wrapLng: [min, max],\r\n\t// wrapLat: [min, max],\r\n\r\n\t// @property infinite: Boolean\r\n\t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n\tinfinite: false,\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n\t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n\twrapLatLng: function (latlng) {\r\n\t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n\t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n\t\t alt = latlng.alt;\r\n\r\n\t\treturn new LatLng(lat, lng, alt);\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n\t// that its center is within the CRS's bounds.\r\n\t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n\twrapLatLngBounds: function (bounds) {\r\n\t\tvar center = bounds.getCenter(),\r\n\t\t newCenter = this.wrapLatLng(center),\r\n\t\t latShift = center.lat - newCenter.lat,\r\n\t\t lngShift = center.lng - newCenter.lng;\r\n\r\n\t\tif (latShift === 0 && lngShift === 0) {\r\n\t\t\treturn bounds;\r\n\t\t}\r\n\r\n\t\tvar sw = bounds.getSouthWest(),\r\n\t\t ne = bounds.getNorthEast(),\r\n\t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n\t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n\t\treturn new LatLngBounds(newSw, newNe);\r\n\t}\r\n};\n\n/*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\nvar Earth = extend({}, CRS, {\n\twrapLng: [-180, 180],\n\n\t// Mean Earth Radius, as recommended for use by\n\t// the International Union of Geodesy and Geophysics,\n\t// see https://rosettacode.org/wiki/Haversine_formula\n\tR: 6371000,\n\n\t// distance between two geographical points using spherical law of cosines approximation\n\tdistance: function (latlng1, latlng2) {\n\t\tvar rad = Math.PI / 180,\n\t\t lat1 = latlng1.lat * rad,\n\t\t lat2 = latlng2.lat * rad,\n\t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n\t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n\t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n\t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\t\treturn this.R * c;\n\t}\n});\n\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\nvar earthRadius = 6378137;\r\n\r\nvar SphericalMercator = {\r\n\r\n\tR: earthRadius,\r\n\tMAX_LATITUDE: 85.0511287798,\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t sin = Math.sin(lat * d);\r\n\r\n\t\treturn new Point(\r\n\t\t\tthis.R * latlng.lng * d,\r\n\t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI;\r\n\r\n\t\treturn new LatLng(\r\n\t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n\t\t\tpoint.x * d / this.R);\r\n\t},\r\n\r\n\tbounds: (function () {\r\n\t\tvar d = earthRadius * Math.PI;\r\n\t\treturn new Bounds([-d, -d], [d, d]);\r\n\t})()\r\n};\n\n/*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Creates a `Transformation` object with the given coefficients.\r\nfunction Transformation(a, b, c, d) {\r\n\tif (isArray(a)) {\r\n\t\t// use array properties\r\n\t\tthis._a = a[0];\r\n\t\tthis._b = a[1];\r\n\t\tthis._c = a[2];\r\n\t\tthis._d = a[3];\r\n\t\treturn;\r\n\t}\r\n\tthis._a = a;\r\n\tthis._b = b;\r\n\tthis._c = c;\r\n\tthis._d = d;\r\n}\r\n\r\nTransformation.prototype = {\r\n\t// @method transform(point: Point, scale?: Number): Point\r\n\t// Returns a transformed point, optionally multiplied by the given scale.\r\n\t// Only accepts actual `L.Point` instances, not arrays.\r\n\ttransform: function (point, scale) { // (Point, Number) -> Point\r\n\t\treturn this._transform(point.clone(), scale);\r\n\t},\r\n\r\n\t// destructive transform (faster)\r\n\t_transform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\tpoint.x = scale * (this._a * point.x + this._b);\r\n\t\tpoint.y = scale * (this._c * point.y + this._d);\r\n\t\treturn point;\r\n\t},\r\n\r\n\t// @method untransform(point: Point, scale?: Number): Point\r\n\t// Returns the reverse transformation of the given point, optionally divided\r\n\t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n\tuntransform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\treturn new Point(\r\n\t\t (point.x / scale - this._b) / this._a,\r\n\t\t (point.y / scale - this._d) / this._c);\r\n\t}\r\n};\r\n\r\n// factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n// @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Instantiates a Transformation object with the given coefficients.\r\n\r\n// @alternative\r\n// @factory L.transformation(coefficients: Array): Transformation\r\n// Expects an coefficients array of the form\r\n// `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\nfunction toTransformation(a, b, c, d) {\r\n\treturn new Transformation(a, b, c, d);\r\n}\n\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\nvar EPSG3857 = extend({}, Earth, {\r\n\tcode: 'EPSG:3857',\r\n\tprojection: SphericalMercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n\r\nvar EPSG900913 = extend({}, EPSG3857, {\r\n\tcode: 'EPSG:900913'\r\n});\n\n// @namespace SVG; @section\n// There are several static functions which can be called without instantiating L.SVG:\n\n// @function create(name: String): SVGElement\n// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n// corresponding to the class name passed. For example, using 'line' will return\n// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\nfunction svgCreate(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\n// @function pointsToPath(rings: Point[], closed: Boolean): String\n// Generates a SVG path string for multiple rings, with each ring turning\n// into \"M..L..L..\" instructions\nfunction pointsToPath(rings, closed) {\n\tvar str = '',\n\ti, j, len, len2, points, p;\n\n\tfor (i = 0, len = rings.length; i < len; i++) {\n\t\tpoints = rings[i];\n\n\t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n\t\t\tp = points[j];\n\t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n\t\t}\n\n\t\t// closes the ring for polygons; \"x\" is VML syntax\n\t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n\t}\n\n\t// SVG complains about empty path strings\n\treturn str || 'M0 0';\n}\n\n/*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\nvar style = document.documentElement.style;\r\n\r\n// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\nvar ie = 'ActiveXObject' in window;\r\n\r\n// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\nvar ielt9 = ie && !document.addEventListener;\r\n\r\n// @property edge: Boolean; `true` for the Edge web browser.\r\nvar edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n// @property webkit: Boolean;\r\n// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\nvar webkit = userAgentContains('webkit');\r\n\r\n// @property android: Boolean\r\n// **Deprecated.** `true` for any browser running on an Android platform.\r\nvar android = userAgentContains('android');\r\n\r\n// @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\nvar android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\nvar webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n// @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\nvar androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n// @property opera: Boolean; `true` for the Opera browser\r\nvar opera = !!window.opera;\r\n\r\n// @property chrome: Boolean; `true` for the Chrome browser.\r\nvar chrome = !edge && userAgentContains('chrome');\r\n\r\n// @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\nvar gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n// @property safari: Boolean; `true` for the Safari browser.\r\nvar safari = !chrome && userAgentContains('safari');\r\n\r\nvar phantom = userAgentContains('phantom');\r\n\r\n// @property opera12: Boolean\r\n// `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\nvar opera12 = 'OTransition' in style;\r\n\r\n// @property win: Boolean; `true` when the browser is running in a Windows platform\r\nvar win = navigator.platform.indexOf('Win') === 0;\r\n\r\n// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\nvar ie3d = ie && ('transition' in style);\r\n\r\n// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\nvar webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\nvar gecko3d = 'MozPerspective' in style;\r\n\r\n// @property any3d: Boolean\r\n// `true` for all browsers supporting CSS transforms.\r\nvar any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n// @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\nvar mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\nvar mobileWebkit = mobile && webkit;\r\n\r\n// @property mobileWebkit3d: Boolean\r\n// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\nvar mobileWebkit3d = mobile && webkit3d;\r\n\r\n// @property msPointer: Boolean\r\n// `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\nvar msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n// @property pointer: Boolean\r\n// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\nvar pointer = !!(window.PointerEvent || msPointer);\r\n\r\n// @property touchNative: Boolean\r\n// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n// **This does not necessarily mean** that the browser is running in a computer with\r\n// a touchscreen, it only means that the browser is capable of understanding\r\n// touch events.\r\nvar touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n// @property touch: Boolean\r\n// `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n// Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\nvar touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\nvar mobileOpera = mobile && opera;\r\n\r\n// @property mobileGecko: Boolean\r\n// `true` for gecko-based browsers running in a mobile device.\r\nvar mobileGecko = mobile && gecko;\r\n\r\n// @property retina: Boolean\r\n// `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\nvar retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n// @property passiveEvents: Boolean\r\n// `true` for browsers that support passive events.\r\nvar passiveEvents = (function () {\r\n\tvar supportsPassiveOption = false;\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function () { // eslint-disable-line getter-return\r\n\t\t\t\tsupportsPassiveOption = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n\t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n\t} catch (e) {\r\n\t\t// Errors can safely be ignored since this is only a browser support test.\r\n\t}\r\n\treturn supportsPassiveOption;\r\n}());\r\n\r\n// @property canvas: Boolean\r\n// `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\nvar canvas$1 = (function () {\r\n\treturn !!document.createElement('canvas').getContext;\r\n}());\r\n\r\n// @property svg: Boolean\r\n// `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\nvar svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\nvar inlineSvg = !!svg$1 && (function () {\r\n\tvar div = document.createElement('div');\r\n\tdiv.innerHTML = '';\r\n\treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n})();\r\n\r\n// @property vml: Boolean\r\n// `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\nvar vml = !svg$1 && (function () {\r\n\ttry {\r\n\t\tvar div = document.createElement('div');\r\n\t\tdiv.innerHTML = '';\r\n\r\n\t\tvar shape = div.firstChild;\r\n\t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n\t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n\t} catch (e) {\r\n\t\treturn false;\r\n\t}\r\n}());\r\n\r\nfunction userAgentContains(str) {\r\n\treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n}\r\n\r\n\r\nvar Browser = {\r\n\tie: ie,\r\n\tielt9: ielt9,\r\n\tedge: edge,\r\n\twebkit: webkit,\r\n\tandroid: android,\r\n\tandroid23: android23,\r\n\tandroidStock: androidStock,\r\n\topera: opera,\r\n\tchrome: chrome,\r\n\tgecko: gecko,\r\n\tsafari: safari,\r\n\tphantom: phantom,\r\n\topera12: opera12,\r\n\twin: win,\r\n\tie3d: ie3d,\r\n\twebkit3d: webkit3d,\r\n\tgecko3d: gecko3d,\r\n\tany3d: any3d,\r\n\tmobile: mobile,\r\n\tmobileWebkit: mobileWebkit,\r\n\tmobileWebkit3d: mobileWebkit3d,\r\n\tmsPointer: msPointer,\r\n\tpointer: pointer,\r\n\ttouch: touch,\r\n\ttouchNative: touchNative,\r\n\tmobileOpera: mobileOpera,\r\n\tmobileGecko: mobileGecko,\r\n\tretina: retina,\r\n\tpassiveEvents: passiveEvents,\r\n\tcanvas: canvas$1,\r\n\tsvg: svg$1,\r\n\tvml: vml,\r\n\tinlineSvg: inlineSvg\r\n};\n\n/*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\nvar POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\nvar POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\nvar POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\nvar POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\nvar pEvent = {\n\ttouchstart : POINTER_DOWN,\n\ttouchmove : POINTER_MOVE,\n\ttouchend : POINTER_UP,\n\ttouchcancel : POINTER_CANCEL\n};\nvar handle = {\n\ttouchstart : _onPointerStart,\n\ttouchmove : _handlePointer,\n\ttouchend : _handlePointer,\n\ttouchcancel : _handlePointer\n};\nvar _pointers = {};\nvar _pointerDocListener = false;\n\n// Provides a touch events wrapper for (ms)pointer events.\n// ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\nfunction addPointerListener(obj, type, handler) {\n\tif (type === 'touchstart') {\n\t\t_addPointerDocListener();\n\t}\n\tif (!handle[type]) {\n\t\tconsole.warn('wrong event specified:', type);\n\t\treturn L.Util.falseFn;\n\t}\n\thandler = handle[type].bind(this, handler);\n\tobj.addEventListener(pEvent[type], handler, false);\n\treturn handler;\n}\n\nfunction removePointerListener(obj, type, handler) {\n\tif (!pEvent[type]) {\n\t\tconsole.warn('wrong event specified:', type);\n\t\treturn;\n\t}\n\tobj.removeEventListener(pEvent[type], handler, false);\n}\n\nfunction _globalPointerDown(e) {\n\t_pointers[e.pointerId] = e;\n}\n\nfunction _globalPointerMove(e) {\n\tif (_pointers[e.pointerId]) {\n\t\t_pointers[e.pointerId] = e;\n\t}\n}\n\nfunction _globalPointerUp(e) {\n\tdelete _pointers[e.pointerId];\n}\n\nfunction _addPointerDocListener() {\n\t// need to keep track of what pointers and how many are active to provide e.touches emulation\n\tif (!_pointerDocListener) {\n\t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n\t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n\t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n\t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n\t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n\t\t_pointerDocListener = true;\n\t}\n}\n\nfunction _handlePointer(handler, e) {\n\tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n\te.touches = [];\n\tfor (var i in _pointers) {\n\t\te.touches.push(_pointers[i]);\n\t}\n\te.changedTouches = [e];\n\n\thandler(e);\n}\n\nfunction _onPointerStart(handler, e) {\n\t// IE10 specific: MsTouch needs preventDefault. See #2000\n\tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n\t\tpreventDefault(e);\n\t}\n\t_handlePointer(handler, e);\n}\n\n/*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\nfunction makeDblclick(event) {\r\n\t// in modern browsers `type` cannot be just overridden:\r\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n\tvar newEvent = {},\r\n\t prop, i;\r\n\tfor (i in event) {\r\n\t\tprop = event[i];\r\n\t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n\t}\r\n\tevent = newEvent;\r\n\tnewEvent.type = 'dblclick';\r\n\tnewEvent.detail = 2;\r\n\tnewEvent.isTrusted = false;\r\n\tnewEvent._simulated = true; // for debug purposes\r\n\treturn newEvent;\r\n}\r\n\r\nvar delay = 200;\r\nfunction addDoubleTapListener(obj, handler) {\r\n\t// Most browsers handle double tap natively\r\n\tobj.addEventListener('dblclick', handler);\r\n\r\n\t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n\t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n\t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n\tvar last = 0,\r\n\t detail;\r\n\tfunction simDblclick(e) {\r\n\t\tif (e.detail !== 1) {\r\n\t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (e.pointerType === 'mouse' ||\r\n\t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar now = Date.now();\r\n\t\tif (now - last <= delay) {\r\n\t\t\tdetail++;\r\n\t\t\tif (detail === 2) {\r\n\t\t\t\thandler(makeDblclick(e));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tdetail = 1;\r\n\t\t}\r\n\t\tlast = now;\r\n\t}\r\n\r\n\tobj.addEventListener('click', simDblclick);\r\n\r\n\treturn {\r\n\t\tdblclick: handler,\r\n\t\tsimDblclick: simDblclick\r\n\t};\r\n}\r\n\r\nfunction removeDoubleTapListener(obj, handlers) {\r\n\tobj.removeEventListener('dblclick', handlers.dblclick);\r\n\tobj.removeEventListener('click', handlers.simDblclick);\r\n}\n\n/*\r\n * @namespace DomUtil\r\n *\r\n * Utility functions to work with the [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)\r\n * tree, used by Leaflet internally.\r\n *\r\n * Most functions expecting or returning a `HTMLElement` also work for\r\n * SVG elements. The only difference is that classes refer to CSS classes\r\n * in HTML and SVG classes in SVG.\r\n */\r\n\r\n\r\n// @property TRANSFORM: String\r\n// Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).\r\nvar TRANSFORM = testProp(\r\n\t['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\r\n\r\n// webkitTransition comes first because some browser versions that drop vendor prefix don't do\r\n// the same for the transitionend event, in particular the Android 4.1 stock browser\r\n\r\n// @property TRANSITION: String\r\n// Vendor-prefixed transition style name.\r\nvar TRANSITION = testProp(\r\n\t['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\r\n\r\n// @property TRANSITION_END: String\r\n// Vendor-prefixed transitionend event name.\r\nvar TRANSITION_END =\r\n\tTRANSITION === 'webkitTransition' || TRANSITION === 'OTransition' ? TRANSITION + 'End' : 'transitionend';\r\n\r\n\r\n// @function get(id: String|HTMLElement): HTMLElement\r\n// Returns an element given its DOM id, or returns the element itself\r\n// if it was passed directly.\r\nfunction get(id) {\r\n\treturn typeof id === 'string' ? document.getElementById(id) : id;\r\n}\r\n\r\n// @function getStyle(el: HTMLElement, styleAttrib: String): String\r\n// Returns the value for a certain style attribute on an element,\r\n// including computed values or values set through CSS.\r\nfunction getStyle(el, style) {\r\n\tvar value = el.style[style] || (el.currentStyle && el.currentStyle[style]);\r\n\r\n\tif ((!value || value === 'auto') && document.defaultView) {\r\n\t\tvar css = document.defaultView.getComputedStyle(el, null);\r\n\t\tvalue = css ? css[style] : null;\r\n\t}\r\n\treturn value === 'auto' ? null : value;\r\n}\r\n\r\n// @function create(tagName: String, className?: String, container?: HTMLElement): HTMLElement\r\n// Creates an HTML element with `tagName`, sets its class to `className`, and optionally appends it to `container` element.\r\nfunction create$1(tagName, className, container) {\r\n\tvar el = document.createElement(tagName);\r\n\tel.className = className || '';\r\n\r\n\tif (container) {\r\n\t\tcontainer.appendChild(el);\r\n\t}\r\n\treturn el;\r\n}\r\n\r\n// @function remove(el: HTMLElement)\r\n// Removes `el` from its parent element\r\nfunction remove(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent) {\r\n\t\tparent.removeChild(el);\r\n\t}\r\n}\r\n\r\n// @function empty(el: HTMLElement)\r\n// Removes all of `el`'s children elements from `el`\r\nfunction empty(el) {\r\n\twhile (el.firstChild) {\r\n\t\tel.removeChild(el.firstChild);\r\n\t}\r\n}\r\n\r\n// @function toFront(el: HTMLElement)\r\n// Makes `el` the last child of its parent, so it renders in front of the other children.\r\nfunction toFront(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent && parent.lastChild !== el) {\r\n\t\tparent.appendChild(el);\r\n\t}\r\n}\r\n\r\n// @function toBack(el: HTMLElement)\r\n// Makes `el` the first child of its parent, so it renders behind the other children.\r\nfunction toBack(el) {\r\n\tvar parent = el.parentNode;\r\n\tif (parent && parent.firstChild !== el) {\r\n\t\tparent.insertBefore(el, parent.firstChild);\r\n\t}\r\n}\r\n\r\n// @function hasClass(el: HTMLElement, name: String): Boolean\r\n// Returns `true` if the element's class attribute contains `name`.\r\nfunction hasClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\treturn el.classList.contains(name);\r\n\t}\r\n\tvar className = getClass(el);\r\n\treturn className.length > 0 && new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className);\r\n}\r\n\r\n// @function addClass(el: HTMLElement, name: String)\r\n// Adds `name` to the element's class attribute.\r\nfunction addClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\tvar classes = splitWords(name);\r\n\t\tfor (var i = 0, len = classes.length; i < len; i++) {\r\n\t\t\tel.classList.add(classes[i]);\r\n\t\t}\r\n\t} else if (!hasClass(el, name)) {\r\n\t\tvar className = getClass(el);\r\n\t\tsetClass(el, (className ? className + ' ' : '') + name);\r\n\t}\r\n}\r\n\r\n// @function removeClass(el: HTMLElement, name: String)\r\n// Removes `name` from the element's class attribute.\r\nfunction removeClass(el, name) {\r\n\tif (el.classList !== undefined) {\r\n\t\tel.classList.remove(name);\r\n\t} else {\r\n\t\tsetClass(el, trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')));\r\n\t}\r\n}\r\n\r\n// @function setClass(el: HTMLElement, name: String)\r\n// Sets the element's class.\r\nfunction setClass(el, name) {\r\n\tif (el.className.baseVal === undefined) {\r\n\t\tel.className = name;\r\n\t} else {\r\n\t\t// in case of SVG element\r\n\t\tel.className.baseVal = name;\r\n\t}\r\n}\r\n\r\n// @function getClass(el: HTMLElement): String\r\n// Returns the element's class.\r\nfunction getClass(el) {\r\n\t// Check if the element is an SVGElementInstance and use the correspondingElement instead\r\n\t// (Required for linked SVG elements in IE11.)\r\n\tif (el.correspondingElement) {\r\n\t\tel = el.correspondingElement;\r\n\t}\r\n\treturn el.className.baseVal === undefined ? el.className : el.className.baseVal;\r\n}\r\n\r\n// @function setOpacity(el: HTMLElement, opacity: Number)\r\n// Set the opacity of an element (including old IE support).\r\n// `opacity` must be a number from `0` to `1`.\r\nfunction setOpacity(el, value) {\r\n\tif ('opacity' in el.style) {\r\n\t\tel.style.opacity = value;\r\n\t} else if ('filter' in el.style) {\r\n\t\t_setOpacityIE(el, value);\r\n\t}\r\n}\r\n\r\nfunction _setOpacityIE(el, value) {\r\n\tvar filter = false,\r\n\t filterName = 'DXImageTransform.Microsoft.Alpha';\r\n\r\n\t// filters collection throws an error if we try to retrieve a filter that doesn't exist\r\n\ttry {\r\n\t\tfilter = el.filters.item(filterName);\r\n\t} catch (e) {\r\n\t\t// don't set opacity to 1 if we haven't already set an opacity,\r\n\t\t// it isn't needed and breaks transparent pngs.\r\n\t\tif (value === 1) { return; }\r\n\t}\r\n\r\n\tvalue = Math.round(value * 100);\r\n\r\n\tif (filter) {\r\n\t\tfilter.Enabled = (value !== 100);\r\n\t\tfilter.Opacity = value;\r\n\t} else {\r\n\t\tel.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';\r\n\t}\r\n}\r\n\r\n// @function testProp(props: String[]): String|false\r\n// Goes through the array of style names and returns the first name\r\n// that is a valid style name for an element. If no such name is found,\r\n// it returns false. Useful for vendor-prefixed styles like `transform`.\r\nfunction testProp(props) {\r\n\tvar style = document.documentElement.style;\r\n\r\n\tfor (var i = 0; i < props.length; i++) {\r\n\t\tif (props[i] in style) {\r\n\t\t\treturn props[i];\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\n// @function setTransform(el: HTMLElement, offset: Point, scale?: Number)\r\n// Resets the 3D CSS transform of `el` so it is translated by `offset` pixels\r\n// and optionally scaled by `scale`. Does not have an effect if the\r\n// browser doesn't support 3D CSS transforms.\r\nfunction setTransform(el, offset, scale) {\r\n\tvar pos = offset || new Point(0, 0);\r\n\r\n\tel.style[TRANSFORM] =\r\n\t\t(Browser.ie3d ?\r\n\t\t\t'translate(' + pos.x + 'px,' + pos.y + 'px)' :\r\n\t\t\t'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') +\r\n\t\t(scale ? ' scale(' + scale + ')' : '');\r\n}\r\n\r\n// @function setPosition(el: HTMLElement, position: Point)\r\n// Sets the position of `el` to coordinates specified by `position`,\r\n// using CSS translate or top/left positioning depending on the browser\r\n// (used by Leaflet internally to position its layers).\r\nfunction setPosition(el, point) {\r\n\r\n\t/*eslint-disable */\r\n\tel._leaflet_pos = point;\r\n\t/* eslint-enable */\r\n\r\n\tif (Browser.any3d) {\r\n\t\tsetTransform(el, point);\r\n\t} else {\r\n\t\tel.style.left = point.x + 'px';\r\n\t\tel.style.top = point.y + 'px';\r\n\t}\r\n}\r\n\r\n// @function getPosition(el: HTMLElement): Point\r\n// Returns the coordinates of an element previously positioned with setPosition.\r\nfunction getPosition(el) {\r\n\t// this method is only used for elements previously positioned using setPosition,\r\n\t// so it's safe to cache the position for performance\r\n\r\n\treturn el._leaflet_pos || new Point(0, 0);\r\n}\r\n\r\n// @function disableTextSelection()\r\n// Prevents the user from generating `selectstart` DOM events, usually generated\r\n// when the user drags the mouse through a page with text. Used internally\r\n// by Leaflet to override the behaviour of any click-and-drag interaction on\r\n// the map. Affects drag interactions on the whole document.\r\n\r\n// @function enableTextSelection()\r\n// Cancels the effects of a previous [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection).\r\nvar disableTextSelection;\r\nvar enableTextSelection;\r\nvar _userSelect;\r\nif ('onselectstart' in document) {\r\n\tdisableTextSelection = function () {\r\n\t\ton(window, 'selectstart', preventDefault);\r\n\t};\r\n\tenableTextSelection = function () {\r\n\t\toff(window, 'selectstart', preventDefault);\r\n\t};\r\n} else {\r\n\tvar userSelectProperty = testProp(\r\n\t\t['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);\r\n\r\n\tdisableTextSelection = function () {\r\n\t\tif (userSelectProperty) {\r\n\t\t\tvar style = document.documentElement.style;\r\n\t\t\t_userSelect = style[userSelectProperty];\r\n\t\t\tstyle[userSelectProperty] = 'none';\r\n\t\t}\r\n\t};\r\n\tenableTextSelection = function () {\r\n\t\tif (userSelectProperty) {\r\n\t\t\tdocument.documentElement.style[userSelectProperty] = _userSelect;\r\n\t\t\t_userSelect = undefined;\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// @function disableImageDrag()\r\n// As [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection), but\r\n// for `dragstart` DOM events, usually generated when the user drags an image.\r\nfunction disableImageDrag() {\r\n\ton(window, 'dragstart', preventDefault);\r\n}\r\n\r\n// @function enableImageDrag()\r\n// Cancels the effects of a previous [`L.DomUtil.disableImageDrag`](#domutil-disabletextselection).\r\nfunction enableImageDrag() {\r\n\toff(window, 'dragstart', preventDefault);\r\n}\r\n\r\nvar _outlineElement, _outlineStyle;\r\n// @function preventOutline(el: HTMLElement)\r\n// Makes the [outline](https://developer.mozilla.org/docs/Web/CSS/outline)\r\n// of the element `el` invisible. Used internally by Leaflet to prevent\r\n// focusable elements from displaying an outline when the user performs a\r\n// drag interaction on them.\r\nfunction preventOutline(element) {\r\n\twhile (element.tabIndex === -1) {\r\n\t\telement = element.parentNode;\r\n\t}\r\n\tif (!element.style) { return; }\r\n\trestoreOutline();\r\n\t_outlineElement = element;\r\n\t_outlineStyle = element.style.outline;\r\n\telement.style.outline = 'none';\r\n\ton(window, 'keydown', restoreOutline);\r\n}\r\n\r\n// @function restoreOutline()\r\n// Cancels the effects of a previous [`L.DomUtil.preventOutline`]().\r\nfunction restoreOutline() {\r\n\tif (!_outlineElement) { return; }\r\n\t_outlineElement.style.outline = _outlineStyle;\r\n\t_outlineElement = undefined;\r\n\t_outlineStyle = undefined;\r\n\toff(window, 'keydown', restoreOutline);\r\n}\r\n\r\n// @function getSizedParentNode(el: HTMLElement): HTMLElement\r\n// Finds the closest parent node which size (width and height) is not null.\r\nfunction getSizedParentNode(element) {\r\n\tdo {\r\n\t\telement = element.parentNode;\r\n\t} while ((!element.offsetWidth || !element.offsetHeight) && element !== document.body);\r\n\treturn element;\r\n}\r\n\r\n// @function getScale(el: HTMLElement): Object\r\n// Computes the CSS scale currently applied on the element.\r\n// Returns an object with `x` and `y` members as horizontal and vertical scales respectively,\r\n// and `boundingClientRect` as the result of [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).\r\nfunction getScale(element) {\r\n\tvar rect = element.getBoundingClientRect(); // Read-only in old browsers.\r\n\r\n\treturn {\r\n\t\tx: rect.width / element.offsetWidth || 1,\r\n\t\ty: rect.height / element.offsetHeight || 1,\r\n\t\tboundingClientRect: rect\r\n\t};\r\n}\n\nvar DomUtil = {\n __proto__: null,\n TRANSFORM: TRANSFORM,\n TRANSITION: TRANSITION,\n TRANSITION_END: TRANSITION_END,\n get: get,\n getStyle: getStyle,\n create: create$1,\n remove: remove,\n empty: empty,\n toFront: toFront,\n toBack: toBack,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n setClass: setClass,\n getClass: getClass,\n setOpacity: setOpacity,\n testProp: testProp,\n setTransform: setTransform,\n setPosition: setPosition,\n getPosition: getPosition,\n get disableTextSelection () { return disableTextSelection; },\n get enableTextSelection () { return enableTextSelection; },\n disableImageDrag: disableImageDrag,\n enableImageDrag: enableImageDrag,\n preventOutline: preventOutline,\n restoreOutline: restoreOutline,\n getSizedParentNode: getSizedParentNode,\n getScale: getScale\n};\n\n/*\r\n * @namespace DomEvent\r\n * Utility functions to work with the [DOM events](https://developer.mozilla.org/docs/Web/API/Event), used by Leaflet internally.\r\n */\r\n\r\n// Inspired by John Resig, Dean Edwards and YUI addEvent implementations.\r\n\r\n// @function on(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n// Adds a listener function (`fn`) to a particular DOM event type of the\r\n// element `el`. You can optionally specify the context of the listener\r\n// (object the `this` keyword will point to). You can also pass several\r\n// space-separated types (e.g. `'click dblclick'`).\r\n\r\n// @alternative\r\n// @function on(el: HTMLElement, eventMap: Object, context?: Object): this\r\n// Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\nfunction on(obj, types, fn, context) {\r\n\r\n\tif (types && typeof types === 'object') {\r\n\t\tfor (var type in types) {\r\n\t\t\taddOne(obj, type, types[type], fn);\r\n\t\t}\r\n\t} else {\r\n\t\ttypes = splitWords(types);\r\n\r\n\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\taddOne(obj, types[i], fn, context);\r\n\t\t}\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\nvar eventsKey = '_leaflet_events';\r\n\r\n// @function off(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n// Removes a previously added listener function.\r\n// Note that if you passed a custom context to on, you must pass the same\r\n// context to `off` in order to remove the listener.\r\n\r\n// @alternative\r\n// @function off(el: HTMLElement, eventMap: Object, context?: Object): this\r\n// Removes a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\r\n// @alternative\r\n// @function off(el: HTMLElement, types: String): this\r\n// Removes all previously added listeners of given types.\r\n\r\n// @alternative\r\n// @function off(el: HTMLElement): this\r\n// Removes all previously added listeners from given HTMLElement\r\nfunction off(obj, types, fn, context) {\r\n\r\n\tif (arguments.length === 1) {\r\n\t\tbatchRemove(obj);\r\n\t\tdelete obj[eventsKey];\r\n\r\n\t} else if (types && typeof types === 'object') {\r\n\t\tfor (var type in types) {\r\n\t\t\tremoveOne(obj, type, types[type], fn);\r\n\t\t}\r\n\r\n\t} else {\r\n\t\ttypes = splitWords(types);\r\n\r\n\t\tif (arguments.length === 2) {\r\n\t\t\tbatchRemove(obj, function (type) {\r\n\t\t\t\treturn indexOf(types, type) !== -1;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tremoveOne(obj, types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\nfunction batchRemove(obj, filterFn) {\r\n\tfor (var id in obj[eventsKey]) {\r\n\t\tvar type = id.split(/\\d/)[0];\r\n\t\tif (!filterFn || filterFn(type)) {\r\n\t\t\tremoveOne(obj, type, null, null, id);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar mouseSubst = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout',\r\n\twheel: !('onwheel' in window) && 'mousewheel'\r\n};\r\n\r\nfunction addOne(obj, type, fn, context) {\r\n\tvar id = type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n\r\n\tif (obj[eventsKey] && obj[eventsKey][id]) { return this; }\r\n\r\n\tvar handler = function (e) {\r\n\t\treturn fn.call(context || obj, e || window.event);\r\n\t};\r\n\r\n\tvar originalHandler = handler;\r\n\r\n\tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\t// Needs DomEvent.Pointer.js\r\n\t\thandler = addPointerListener(obj, type, handler);\r\n\r\n\t} else if (Browser.touch && (type === 'dblclick')) {\r\n\t\thandler = addDoubleTapListener(obj, handler);\r\n\r\n\t} else if ('addEventListener' in obj) {\r\n\r\n\t\tif (type === 'touchstart' || type === 'touchmove' || type === 'wheel' || type === 'mousewheel') {\r\n\t\t\tobj.addEventListener(mouseSubst[type] || type, handler, Browser.passiveEvents ? {passive: false} : false);\r\n\r\n\t\t} else if (type === 'mouseenter' || type === 'mouseleave') {\r\n\t\t\thandler = function (e) {\r\n\t\t\t\te = e || window.event;\r\n\t\t\t\tif (isExternalTarget(obj, e)) {\r\n\t\t\t\t\toriginalHandler(e);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tobj.addEventListener(mouseSubst[type], handler, false);\r\n\r\n\t\t} else {\r\n\t\t\tobj.addEventListener(type, originalHandler, false);\r\n\t\t}\r\n\r\n\t} else {\r\n\t\tobj.attachEvent('on' + type, handler);\r\n\t}\r\n\r\n\tobj[eventsKey] = obj[eventsKey] || {};\r\n\tobj[eventsKey][id] = handler;\r\n}\r\n\r\nfunction removeOne(obj, type, fn, context, id) {\r\n\tid = id || type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n\tvar handler = obj[eventsKey] && obj[eventsKey][id];\r\n\r\n\tif (!handler) { return this; }\r\n\r\n\tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n\t\tremovePointerListener(obj, type, handler);\r\n\r\n\t} else if (Browser.touch && (type === 'dblclick')) {\r\n\t\tremoveDoubleTapListener(obj, handler);\r\n\r\n\t} else if ('removeEventListener' in obj) {\r\n\r\n\t\tobj.removeEventListener(mouseSubst[type] || type, handler, false);\r\n\r\n\t} else {\r\n\t\tobj.detachEvent('on' + type, handler);\r\n\t}\r\n\r\n\tobj[eventsKey][id] = null;\r\n}\r\n\r\n// @function stopPropagation(ev: DOMEvent): this\r\n// Stop the given event from propagation to parent elements. Used inside the listener functions:\r\n// ```js\r\n// L.DomEvent.on(div, 'click', function (ev) {\r\n// \tL.DomEvent.stopPropagation(ev);\r\n// });\r\n// ```\r\nfunction stopPropagation(e) {\r\n\r\n\tif (e.stopPropagation) {\r\n\t\te.stopPropagation();\r\n\t} else if (e.originalEvent) { // In case of Leaflet event.\r\n\t\te.originalEvent._stopped = true;\r\n\t} else {\r\n\t\te.cancelBubble = true;\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\n// @function disableScrollPropagation(el: HTMLElement): this\r\n// Adds `stopPropagation` to the element's `'wheel'` events (plus browser variants).\r\nfunction disableScrollPropagation(el) {\r\n\taddOne(el, 'wheel', stopPropagation);\r\n\treturn this;\r\n}\r\n\r\n// @function disableClickPropagation(el: HTMLElement): this\r\n// Adds `stopPropagation` to the element's `'click'`, `'dblclick'`, `'contextmenu'`,\r\n// `'mousedown'` and `'touchstart'` events (plus browser variants).\r\nfunction disableClickPropagation(el) {\r\n\ton(el, 'mousedown touchstart dblclick contextmenu', stopPropagation);\r\n\tel['_leaflet_disable_click'] = true;\r\n\treturn this;\r\n}\r\n\r\n// @function preventDefault(ev: DOMEvent): this\r\n// Prevents the default action of the DOM Event `ev` from happening (such as\r\n// following a link in the href of the a element, or doing a POST request\r\n// with page reload when a `
` is submitted).\r\n// Use it inside listener functions.\r\nfunction preventDefault(e) {\r\n\tif (e.preventDefault) {\r\n\t\te.preventDefault();\r\n\t} else {\r\n\t\te.returnValue = false;\r\n\t}\r\n\treturn this;\r\n}\r\n\r\n// @function stop(ev: DOMEvent): this\r\n// Does `stopPropagation` and `preventDefault` at the same time.\r\nfunction stop(e) {\r\n\tpreventDefault(e);\r\n\tstopPropagation(e);\r\n\treturn this;\r\n}\r\n\r\n// @function getMousePosition(ev: DOMEvent, container?: HTMLElement): Point\r\n// Gets normalized mouse position from a DOM event relative to the\r\n// `container` (border excluded) or to the whole page if not specified.\r\nfunction getMousePosition(e, container) {\r\n\tif (!container) {\r\n\t\treturn new Point(e.clientX, e.clientY);\r\n\t}\r\n\r\n\tvar scale = getScale(container),\r\n\t offset = scale.boundingClientRect; // left and top values are in page scale (like the event clientX/Y)\r\n\r\n\treturn new Point(\r\n\t\t// offset.left/top values are in page scale (like clientX/Y),\r\n\t\t// whereas clientLeft/Top (border width) values are the original values (before CSS scale applies).\r\n\t\t(e.clientX - offset.left) / scale.x - container.clientLeft,\r\n\t\t(e.clientY - offset.top) / scale.y - container.clientTop\r\n\t);\r\n}\r\n\r\n// Chrome on Win scrolls double the pixels as in other platforms (see #4538),\r\n// and Firefox scrolls device pixels, not CSS pixels\r\nvar wheelPxFactor =\r\n\t(Browser.win && Browser.chrome) ? 2 * window.devicePixelRatio :\r\n\tBrowser.gecko ? window.devicePixelRatio : 1;\r\n\r\n// @function getWheelDelta(ev: DOMEvent): Number\r\n// Gets normalized wheel delta from a wheel DOM event, in vertical\r\n// pixels scrolled (negative if scrolling down).\r\n// Events from pointing devices without precise scrolling are mapped to\r\n// a best guess of 60 pixels.\r\nfunction getWheelDelta(e) {\r\n\treturn (Browser.edge) ? e.wheelDeltaY / 2 : // Don't trust window-geometry-based delta\r\n\t (e.deltaY && e.deltaMode === 0) ? -e.deltaY / wheelPxFactor : // Pixels\r\n\t (e.deltaY && e.deltaMode === 1) ? -e.deltaY * 20 : // Lines\r\n\t (e.deltaY && e.deltaMode === 2) ? -e.deltaY * 60 : // Pages\r\n\t (e.deltaX || e.deltaZ) ? 0 :\t// Skip horizontal/depth wheel events\r\n\t e.wheelDelta ? (e.wheelDeltaY || e.wheelDelta) / 2 : // Legacy IE pixels\r\n\t (e.detail && Math.abs(e.detail) < 32765) ? -e.detail * 20 : // Legacy Moz lines\r\n\t e.detail ? e.detail / -32765 * 60 : // Legacy Moz pages\r\n\t 0;\r\n}\r\n\r\n// check if element really left/entered the event target (for mouseenter/mouseleave)\r\nfunction isExternalTarget(el, e) {\r\n\r\n\tvar related = e.relatedTarget;\r\n\r\n\tif (!related) { return true; }\r\n\r\n\ttry {\r\n\t\twhile (related && (related !== el)) {\r\n\t\t\trelated = related.parentNode;\r\n\t\t}\r\n\t} catch (err) {\r\n\t\treturn false;\r\n\t}\r\n\treturn (related !== el);\r\n}\n\nvar DomEvent = {\n __proto__: null,\n on: on,\n off: off,\n stopPropagation: stopPropagation,\n disableScrollPropagation: disableScrollPropagation,\n disableClickPropagation: disableClickPropagation,\n preventDefault: preventDefault,\n stop: stop,\n getMousePosition: getMousePosition,\n getWheelDelta: getWheelDelta,\n isExternalTarget: isExternalTarget,\n addListener: on,\n removeListener: off\n};\n\n/*\n * @class PosAnimation\n * @aka L.PosAnimation\n * @inherits Evented\n * Used internally for panning animations, utilizing CSS3 Transitions for modern browsers and a timer fallback for IE6-9.\n *\n * @example\n * ```js\n * var fx = new L.PosAnimation();\n * fx.run(el, [300, 500], 0.5);\n * ```\n *\n * @constructor L.PosAnimation()\n * Creates a `PosAnimation` object.\n *\n */\n\nvar PosAnimation = Evented.extend({\n\n\t// @method run(el: HTMLElement, newPos: Point, duration?: Number, easeLinearity?: Number)\n\t// Run an animation of a given element to a new position, optionally setting\n\t// duration in seconds (`0.25` by default) and easing linearity factor (3rd\n\t// argument of the [cubic bezier curve](https://cubic-bezier.com/#0,0,.5,1),\n\t// `0.5` by default).\n\trun: function (el, newPos, duration, easeLinearity) {\n\t\tthis.stop();\n\n\t\tthis._el = el;\n\t\tthis._inProgress = true;\n\t\tthis._duration = duration || 0.25;\n\t\tthis._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2);\n\n\t\tthis._startPos = getPosition(el);\n\t\tthis._offset = newPos.subtract(this._startPos);\n\t\tthis._startTime = +new Date();\n\n\t\t// @event start: Event\n\t\t// Fired when the animation starts\n\t\tthis.fire('start');\n\n\t\tthis._animate();\n\t},\n\n\t// @method stop()\n\t// Stops the animation (if currently running).\n\tstop: function () {\n\t\tif (!this._inProgress) { return; }\n\n\t\tthis._step(true);\n\t\tthis._complete();\n\t},\n\n\t_animate: function () {\n\t\t// animation loop\n\t\tthis._animId = requestAnimFrame(this._animate, this);\n\t\tthis._step();\n\t},\n\n\t_step: function (round) {\n\t\tvar elapsed = (+new Date()) - this._startTime,\n\t\t duration = this._duration * 1000;\n\n\t\tif (elapsed < duration) {\n\t\t\tthis._runFrame(this._easeOut(elapsed / duration), round);\n\t\t} else {\n\t\t\tthis._runFrame(1);\n\t\t\tthis._complete();\n\t\t}\n\t},\n\n\t_runFrame: function (progress, round) {\n\t\tvar pos = this._startPos.add(this._offset.multiplyBy(progress));\n\t\tif (round) {\n\t\t\tpos._round();\n\t\t}\n\t\tsetPosition(this._el, pos);\n\n\t\t// @event step: Event\n\t\t// Fired continuously during the animation.\n\t\tthis.fire('step');\n\t},\n\n\t_complete: function () {\n\t\tcancelAnimFrame(this._animId);\n\n\t\tthis._inProgress = false;\n\t\t// @event end: Event\n\t\t// Fired when the animation ends.\n\t\tthis.fire('end');\n\t},\n\n\t_easeOut: function (t) {\n\t\treturn 1 - Math.pow(1 - t, this._easeOutPower);\n\t}\n});\n\n/*\r\n * @class Map\r\n * @aka L.Map\r\n * @inherits Evented\r\n *\r\n * The central class of the API — it is used to create a map on a page and manipulate it.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * // initialize the map on the \"map\" div with a given center and zoom\r\n * var map = L.map('map', {\r\n * \tcenter: [51.505, -0.09],\r\n * \tzoom: 13\r\n * });\r\n * ```\r\n *\r\n */\r\n\r\nvar Map = Evented.extend({\r\n\r\n\toptions: {\r\n\t\t// @section Map State Options\r\n\t\t// @option crs: CRS = L.CRS.EPSG3857\r\n\t\t// The [Coordinate Reference System](#crs) to use. Don't change this if you're not\r\n\t\t// sure what it means.\r\n\t\tcrs: EPSG3857,\r\n\r\n\t\t// @option center: LatLng = undefined\r\n\t\t// Initial geographic center of the map\r\n\t\tcenter: undefined,\r\n\r\n\t\t// @option zoom: Number = undefined\r\n\t\t// Initial map zoom level\r\n\t\tzoom: undefined,\r\n\r\n\t\t// @option minZoom: Number = *\r\n\t\t// Minimum zoom level of the map.\r\n\t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n\t\t// the lowest of their `minZoom` options will be used instead.\r\n\t\tminZoom: undefined,\r\n\r\n\t\t// @option maxZoom: Number = *\r\n\t\t// Maximum zoom level of the map.\r\n\t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n\t\t// the highest of their `maxZoom` options will be used instead.\r\n\t\tmaxZoom: undefined,\r\n\r\n\t\t// @option layers: Layer[] = []\r\n\t\t// Array of layers that will be added to the map initially\r\n\t\tlayers: [],\r\n\r\n\t\t// @option maxBounds: LatLngBounds = null\r\n\t\t// When this option is set, the map restricts the view to the given\r\n\t\t// geographical bounds, bouncing the user back if the user tries to pan\r\n\t\t// outside the view. To set the restriction dynamically, use\r\n\t\t// [`setMaxBounds`](#map-setmaxbounds) method.\r\n\t\tmaxBounds: undefined,\r\n\r\n\t\t// @option renderer: Renderer = *\r\n\t\t// The default method for drawing vector layers on the map. `L.SVG`\r\n\t\t// or `L.Canvas` by default depending on browser support.\r\n\t\trenderer: undefined,\r\n\r\n\r\n\t\t// @section Animation Options\r\n\t\t// @option zoomAnimation: Boolean = true\r\n\t\t// Whether the map zoom animation is enabled. By default it's enabled\r\n\t\t// in all browsers that support CSS3 Transitions except Android.\r\n\t\tzoomAnimation: true,\r\n\r\n\t\t// @option zoomAnimationThreshold: Number = 4\r\n\t\t// Won't animate zoom if the zoom difference exceeds this value.\r\n\t\tzoomAnimationThreshold: 4,\r\n\r\n\t\t// @option fadeAnimation: Boolean = true\r\n\t\t// Whether the tile fade animation is enabled. By default it's enabled\r\n\t\t// in all browsers that support CSS3 Transitions except Android.\r\n\t\tfadeAnimation: true,\r\n\r\n\t\t// @option markerZoomAnimation: Boolean = true\r\n\t\t// Whether markers animate their zoom with the zoom animation, if disabled\r\n\t\t// they will disappear for the length of the animation. By default it's\r\n\t\t// enabled in all browsers that support CSS3 Transitions except Android.\r\n\t\tmarkerZoomAnimation: true,\r\n\r\n\t\t// @option transform3DLimit: Number = 2^23\r\n\t\t// Defines the maximum size of a CSS translation transform. The default\r\n\t\t// value should not be changed unless a web browser positions layers in\r\n\t\t// the wrong place after doing a large `panBy`.\r\n\t\ttransform3DLimit: 8388608, // Precision limit of a 32-bit float\r\n\r\n\t\t// @section Interaction Options\r\n\t\t// @option zoomSnap: Number = 1\r\n\t\t// Forces the map's zoom level to always be a multiple of this, particularly\r\n\t\t// right after a [`fitBounds()`](#map-fitbounds) or a pinch-zoom.\r\n\t\t// By default, the zoom level snaps to the nearest integer; lower values\r\n\t\t// (e.g. `0.5` or `0.1`) allow for greater granularity. A value of `0`\r\n\t\t// means the zoom level will not be snapped after `fitBounds` or a pinch-zoom.\r\n\t\tzoomSnap: 1,\r\n\r\n\t\t// @option zoomDelta: Number = 1\r\n\t\t// Controls how much the map's zoom level will change after a\r\n\t\t// [`zoomIn()`](#map-zoomin), [`zoomOut()`](#map-zoomout), pressing `+`\r\n\t\t// or `-` on the keyboard, or using the [zoom controls](#control-zoom).\r\n\t\t// Values smaller than `1` (e.g. `0.5`) allow for greater granularity.\r\n\t\tzoomDelta: 1,\r\n\r\n\t\t// @option trackResize: Boolean = true\r\n\t\t// Whether the map automatically handles browser window resize to update itself.\r\n\t\ttrackResize: true\r\n\t},\r\n\r\n\tinitialize: function (id, options) { // (HTMLElement or String, Object)\r\n\t\toptions = setOptions(this, options);\r\n\r\n\t\t// Make sure to assign internal flags at the beginning,\r\n\t\t// to avoid inconsistent state in some edge cases.\r\n\t\tthis._handlers = [];\r\n\t\tthis._layers = {};\r\n\t\tthis._zoomBoundLayers = {};\r\n\t\tthis._sizeChanged = true;\r\n\r\n\t\tthis._initContainer(id);\r\n\t\tthis._initLayout();\r\n\r\n\t\t// hack for https://github.com/Leaflet/Leaflet/issues/1980\r\n\t\tthis._onResize = bind(this._onResize, this);\r\n\r\n\t\tthis._initEvents();\r\n\r\n\t\tif (options.maxBounds) {\r\n\t\t\tthis.setMaxBounds(options.maxBounds);\r\n\t\t}\r\n\r\n\t\tif (options.zoom !== undefined) {\r\n\t\t\tthis._zoom = this._limitZoom(options.zoom);\r\n\t\t}\r\n\r\n\t\tif (options.center && options.zoom !== undefined) {\r\n\t\t\tthis.setView(toLatLng(options.center), options.zoom, {reset: true});\r\n\t\t}\r\n\r\n\t\tthis.callInitHooks();\r\n\r\n\t\t// don't animate on browsers without hardware-accelerated transitions or old Android/Opera\r\n\t\tthis._zoomAnimated = TRANSITION && Browser.any3d && !Browser.mobileOpera &&\r\n\t\t\t\tthis.options.zoomAnimation;\r\n\r\n\t\t// zoom transitions run with the same duration for all layers, so if one of transitionend events\r\n\t\t// happens after starting zoom animation (propagating to the map pane), we know that it ended globally\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tthis._createAnimProxy();\r\n\t\t\ton(this._proxy, TRANSITION_END, this._catchTransitionEnd, this);\r\n\t\t}\r\n\r\n\t\tthis._addLayers(this.options.layers);\r\n\t},\r\n\r\n\r\n\t// @section Methods for modifying map state\r\n\r\n\t// @method setView(center: LatLng, zoom: Number, options?: Zoom/pan options): this\r\n\t// Sets the view of the map (geographical center and zoom) with the given\r\n\t// animation options.\r\n\tsetView: function (center, zoom, options) {\r\n\r\n\t\tzoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);\r\n\t\tcenter = this._limitCenter(toLatLng(center), zoom, this.options.maxBounds);\r\n\t\toptions = options || {};\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tif (this._loaded && !options.reset && options !== true) {\r\n\r\n\t\t\tif (options.animate !== undefined) {\r\n\t\t\t\toptions.zoom = extend({animate: options.animate}, options.zoom);\r\n\t\t\t\toptions.pan = extend({animate: options.animate, duration: options.duration}, options.pan);\r\n\t\t\t}\r\n\r\n\t\t\t// try animating pan or zoom\r\n\t\t\tvar moved = (this._zoom !== zoom) ?\r\n\t\t\t\tthis._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) :\r\n\t\t\t\tthis._tryAnimatedPan(center, options.pan);\r\n\r\n\t\t\tif (moved) {\r\n\t\t\t\t// prevent resize handler call, the view will refresh after animation anyway\r\n\t\t\t\tclearTimeout(this._sizeTimer);\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// animation didn't start, just reset the map view\r\n\t\tthis._resetView(center, zoom);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setZoom(zoom: Number, options?: Zoom/pan options): this\r\n\t// Sets the zoom of the map.\r\n\tsetZoom: function (zoom, options) {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthis._zoom = zoom;\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\treturn this.setView(this.getCenter(), zoom, {zoom: options});\r\n\t},\r\n\r\n\t// @method zoomIn(delta?: Number, options?: Zoom options): this\r\n\t// Increases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n\tzoomIn: function (delta, options) {\r\n\t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n\t\treturn this.setZoom(this._zoom + delta, options);\r\n\t},\r\n\r\n\t// @method zoomOut(delta?: Number, options?: Zoom options): this\r\n\t// Decreases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n\tzoomOut: function (delta, options) {\r\n\t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n\t\treturn this.setZoom(this._zoom - delta, options);\r\n\t},\r\n\r\n\t// @method setZoomAround(latlng: LatLng, zoom: Number, options: Zoom options): this\r\n\t// Zooms the map while keeping a specified geographical point on the map\r\n\t// stationary (e.g. used internally for scroll zoom and double-click zoom).\r\n\t// @alternative\r\n\t// @method setZoomAround(offset: Point, zoom: Number, options: Zoom options): this\r\n\t// Zooms the map while keeping a specified pixel on the map (relative to the top-left corner) stationary.\r\n\tsetZoomAround: function (latlng, zoom, options) {\r\n\t\tvar scale = this.getZoomScale(zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t containerPoint = latlng instanceof Point ? latlng : this.latLngToContainerPoint(latlng),\r\n\r\n\t\t centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),\r\n\t\t newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));\r\n\r\n\t\treturn this.setView(newCenter, zoom, {zoom: options});\r\n\t},\r\n\r\n\t_getBoundsCenterZoom: function (bounds, options) {\r\n\r\n\t\toptions = options || {};\r\n\t\tbounds = bounds.getBounds ? bounds.getBounds() : toLatLngBounds(bounds);\r\n\r\n\t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n\t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\r\n\t\t zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));\r\n\r\n\t\tzoom = (typeof options.maxZoom === 'number') ? Math.min(options.maxZoom, zoom) : zoom;\r\n\r\n\t\tif (zoom === Infinity) {\r\n\t\t\treturn {\r\n\t\t\t\tcenter: bounds.getCenter(),\r\n\t\t\t\tzoom: zoom\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tvar paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),\r\n\r\n\t\t swPoint = this.project(bounds.getSouthWest(), zoom),\r\n\t\t nePoint = this.project(bounds.getNorthEast(), zoom),\r\n\t\t center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);\r\n\r\n\t\treturn {\r\n\t\t\tcenter: center,\r\n\t\t\tzoom: zoom\r\n\t\t};\r\n\t},\r\n\r\n\t// @method fitBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n\t// Sets a map view that contains the given geographical bounds with the\r\n\t// maximum zoom level possible.\r\n\tfitBounds: function (bounds, options) {\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (!bounds.isValid()) {\r\n\t\t\tthrow new Error('Bounds are not valid.');\r\n\t\t}\r\n\r\n\t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n\t\treturn this.setView(target.center, target.zoom, options);\r\n\t},\r\n\r\n\t// @method fitWorld(options?: fitBounds options): this\r\n\t// Sets a map view that mostly contains the whole world with the maximum\r\n\t// zoom level possible.\r\n\tfitWorld: function (options) {\r\n\t\treturn this.fitBounds([[-90, -180], [90, 180]], options);\r\n\t},\r\n\r\n\t// @method panTo(latlng: LatLng, options?: Pan options): this\r\n\t// Pans the map to a given center.\r\n\tpanTo: function (center, options) { // (LatLng)\r\n\t\treturn this.setView(center, this._zoom, {pan: options});\r\n\t},\r\n\r\n\t// @method panBy(offset: Point, options?: Pan options): this\r\n\t// Pans the map by a given number of pixels (animated).\r\n\tpanBy: function (offset, options) {\r\n\t\toffset = toPoint(offset).round();\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!offset.x && !offset.y) {\r\n\t\t\treturn this.fire('moveend');\r\n\t\t}\r\n\t\t// If we pan too far, Chrome gets issues with tiles\r\n\t\t// and makes them disappear or appear in the wrong place (slightly offset) #2602\r\n\t\tif (options.animate !== true && !this.getSize().contains(offset)) {\r\n\t\t\tthis._resetView(this.unproject(this.project(this.getCenter()).add(offset)), this.getZoom());\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif (!this._panAnim) {\r\n\t\t\tthis._panAnim = new PosAnimation();\r\n\r\n\t\t\tthis._panAnim.on({\r\n\t\t\t\t'step': this._onPanTransitionStep,\r\n\t\t\t\t'end': this._onPanTransitionEnd\r\n\t\t\t}, this);\r\n\t\t}\r\n\r\n\t\t// don't fire movestart if animating inertia\r\n\t\tif (!options.noMoveStart) {\r\n\t\t\tthis.fire('movestart');\r\n\t\t}\r\n\r\n\t\t// animate pan unless animate: false specified\r\n\t\tif (options.animate !== false) {\r\n\t\t\taddClass(this._mapPane, 'leaflet-pan-anim');\r\n\r\n\t\t\tvar newPos = this._getMapPanePos().subtract(offset).round();\r\n\t\t\tthis._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity);\r\n\t\t} else {\r\n\t\t\tthis._rawPanBy(offset);\r\n\t\t\tthis.fire('move').fire('moveend');\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method flyTo(latlng: LatLng, zoom?: Number, options?: Zoom/pan options): this\r\n\t// Sets the view of the map (geographical center and zoom) performing a smooth\r\n\t// pan-zoom animation.\r\n\tflyTo: function (targetCenter, targetZoom, options) {\r\n\r\n\t\toptions = options || {};\r\n\t\tif (options.animate === false || !Browser.any3d) {\r\n\t\t\treturn this.setView(targetCenter, targetZoom, options);\r\n\t\t}\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tvar from = this.project(this.getCenter()),\r\n\t\t to = this.project(targetCenter),\r\n\t\t size = this.getSize(),\r\n\t\t startZoom = this._zoom;\r\n\r\n\t\ttargetCenter = toLatLng(targetCenter);\r\n\t\ttargetZoom = targetZoom === undefined ? startZoom : targetZoom;\r\n\r\n\t\tvar w0 = Math.max(size.x, size.y),\r\n\t\t w1 = w0 * this.getZoomScale(startZoom, targetZoom),\r\n\t\t u1 = (to.distanceTo(from)) || 1,\r\n\t\t rho = 1.42,\r\n\t\t rho2 = rho * rho;\r\n\r\n\t\tfunction r(i) {\r\n\t\t\tvar s1 = i ? -1 : 1,\r\n\t\t\t s2 = i ? w1 : w0,\r\n\t\t\t t1 = w1 * w1 - w0 * w0 + s1 * rho2 * rho2 * u1 * u1,\r\n\t\t\t b1 = 2 * s2 * rho2 * u1,\r\n\t\t\t b = t1 / b1,\r\n\t\t\t sq = Math.sqrt(b * b + 1) - b;\r\n\r\n\t\t\t // workaround for floating point precision bug when sq = 0, log = -Infinite,\r\n\t\t\t // thus triggering an infinite loop in flyTo\r\n\t\t\t var log = sq < 0.000000001 ? -18 : Math.log(sq);\r\n\r\n\t\t\treturn log;\r\n\t\t}\r\n\r\n\t\tfunction sinh(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }\r\n\t\tfunction cosh(n) { return (Math.exp(n) + Math.exp(-n)) / 2; }\r\n\t\tfunction tanh(n) { return sinh(n) / cosh(n); }\r\n\r\n\t\tvar r0 = r(0);\r\n\r\n\t\tfunction w(s) { return w0 * (cosh(r0) / cosh(r0 + rho * s)); }\r\n\t\tfunction u(s) { return w0 * (cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) / rho2; }\r\n\r\n\t\tfunction easeOut(t) { return 1 - Math.pow(1 - t, 1.5); }\r\n\r\n\t\tvar start = Date.now(),\r\n\t\t S = (r(1) - r0) / rho,\r\n\t\t duration = options.duration ? 1000 * options.duration : 1000 * S * 0.8;\r\n\r\n\t\tfunction frame() {\r\n\t\t\tvar t = (Date.now() - start) / duration,\r\n\t\t\t s = easeOut(t) * S;\r\n\r\n\t\t\tif (t <= 1) {\r\n\t\t\t\tthis._flyToFrame = requestAnimFrame(frame, this);\r\n\r\n\t\t\t\tthis._move(\r\n\t\t\t\t\tthis.unproject(from.add(to.subtract(from).multiplyBy(u(s) / u1)), startZoom),\r\n\t\t\t\t\tthis.getScaleZoom(w0 / w(s), startZoom),\r\n\t\t\t\t\t{flyTo: true});\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis\r\n\t\t\t\t\t._move(targetCenter, targetZoom)\r\n\t\t\t\t\t._moveEnd(true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._moveStart(true, options.noMoveStart);\r\n\r\n\t\tframe.call(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method flyToBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n\t// Sets the view of the map with a smooth animation like [`flyTo`](#map-flyto),\r\n\t// but takes a bounds parameter like [`fitBounds`](#map-fitbounds).\r\n\tflyToBounds: function (bounds, options) {\r\n\t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n\t\treturn this.flyTo(target.center, target.zoom, options);\r\n\t},\r\n\r\n\t// @method setMaxBounds(bounds: LatLngBounds): this\r\n\t// Restricts the map view to the given bounds (see the [maxBounds](#map-maxbounds) option).\r\n\tsetMaxBounds: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (!bounds.isValid()) {\r\n\t\t\tthis.options.maxBounds = null;\r\n\t\t\treturn this.off('moveend', this._panInsideMaxBounds);\r\n\t\t} else if (this.options.maxBounds) {\r\n\t\t\tthis.off('moveend', this._panInsideMaxBounds);\r\n\t\t}\r\n\r\n\t\tthis.options.maxBounds = bounds;\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\tthis._panInsideMaxBounds();\r\n\t\t}\r\n\r\n\t\treturn this.on('moveend', this._panInsideMaxBounds);\r\n\t},\r\n\r\n\t// @method setMinZoom(zoom: Number): this\r\n\t// Sets the lower limit for the available zoom levels (see the [minZoom](#map-minzoom) option).\r\n\tsetMinZoom: function (zoom) {\r\n\t\tvar oldZoom = this.options.minZoom;\r\n\t\tthis.options.minZoom = zoom;\r\n\r\n\t\tif (this._loaded && oldZoom !== zoom) {\r\n\t\t\tthis.fire('zoomlevelschange');\r\n\r\n\t\t\tif (this.getZoom() < this.options.minZoom) {\r\n\t\t\t\treturn this.setZoom(zoom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setMaxZoom(zoom: Number): this\r\n\t// Sets the upper limit for the available zoom levels (see the [maxZoom](#map-maxzoom) option).\r\n\tsetMaxZoom: function (zoom) {\r\n\t\tvar oldZoom = this.options.maxZoom;\r\n\t\tthis.options.maxZoom = zoom;\r\n\r\n\t\tif (this._loaded && oldZoom !== zoom) {\r\n\t\t\tthis.fire('zoomlevelschange');\r\n\r\n\t\t\tif (this.getZoom() > this.options.maxZoom) {\r\n\t\t\t\treturn this.setZoom(zoom);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method panInsideBounds(bounds: LatLngBounds, options?: Pan options): this\r\n\t// Pans the map to the closest view that would lie inside the given bounds (if it's not already), controlling the animation using the options specific, if any.\r\n\tpanInsideBounds: function (bounds, options) {\r\n\t\tthis._enforcingBounds = true;\r\n\t\tvar center = this.getCenter(),\r\n\t\t newCenter = this._limitCenter(center, this._zoom, toLatLngBounds(bounds));\r\n\r\n\t\tif (!center.equals(newCenter)) {\r\n\t\t\tthis.panTo(newCenter, options);\r\n\t\t}\r\n\r\n\t\tthis._enforcingBounds = false;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method panInside(latlng: LatLng, options?: padding options): this\r\n\t// Pans the map the minimum amount to make the `latlng` visible. Use\r\n\t// padding options to fit the display to more restricted bounds.\r\n\t// If `latlng` is already within the (optionally padded) display bounds,\r\n\t// the map will not be panned.\r\n\tpanInside: function (latlng, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n\t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\t\t pixelCenter = this.project(this.getCenter()),\r\n\t\t pixelPoint = this.project(latlng),\r\n\t\t pixelBounds = this.getPixelBounds(),\r\n\t\t paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]),\r\n\t\t paddedSize = paddedBounds.getSize();\r\n\r\n\t\tif (!paddedBounds.contains(pixelPoint)) {\r\n\t\t\tthis._enforcingBounds = true;\r\n\t\t\tvar centerOffset = pixelPoint.subtract(paddedBounds.getCenter());\r\n\t\t\tvar offset = paddedBounds.extend(pixelPoint).getSize().subtract(paddedSize);\r\n\t\t\tpixelCenter.x += centerOffset.x < 0 ? -offset.x : offset.x;\r\n\t\t\tpixelCenter.y += centerOffset.y < 0 ? -offset.y : offset.y;\r\n\t\t\tthis.panTo(this.unproject(pixelCenter), options);\r\n\t\t\tthis._enforcingBounds = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method invalidateSize(options: Zoom/pan options): this\r\n\t// Checks if the map container size changed and updates the map if so —\r\n\t// call it after you've changed the map size dynamically, also animating\r\n\t// pan by default. If `options.pan` is `false`, panning will not occur.\r\n\t// If `options.debounceMoveend` is `true`, it will delay `moveend` event so\r\n\t// that it doesn't happen often even if the method is called many\r\n\t// times in a row.\r\n\r\n\t// @alternative\r\n\t// @method invalidateSize(animate: Boolean): this\r\n\t// Checks if the map container size changed and updates the map if so —\r\n\t// call it after you've changed the map size dynamically, also animating\r\n\t// pan by default.\r\n\tinvalidateSize: function (options) {\r\n\t\tif (!this._loaded) { return this; }\r\n\r\n\t\toptions = extend({\r\n\t\t\tanimate: false,\r\n\t\t\tpan: true\r\n\t\t}, options === true ? {animate: true} : options);\r\n\r\n\t\tvar oldSize = this.getSize();\r\n\t\tthis._sizeChanged = true;\r\n\t\tthis._lastCenter = null;\r\n\r\n\t\tvar newSize = this.getSize(),\r\n\t\t oldCenter = oldSize.divideBy(2).round(),\r\n\t\t newCenter = newSize.divideBy(2).round(),\r\n\t\t offset = oldCenter.subtract(newCenter);\r\n\r\n\t\tif (!offset.x && !offset.y) { return this; }\r\n\r\n\t\tif (options.animate && options.pan) {\r\n\t\t\tthis.panBy(offset);\r\n\r\n\t\t} else {\r\n\t\t\tif (options.pan) {\r\n\t\t\t\tthis._rawPanBy(offset);\r\n\t\t\t}\r\n\r\n\t\t\tthis.fire('move');\r\n\r\n\t\t\tif (options.debounceMoveend) {\r\n\t\t\t\tclearTimeout(this._sizeTimer);\r\n\t\t\t\tthis._sizeTimer = setTimeout(bind(this.fire, this, 'moveend'), 200);\r\n\t\t\t} else {\r\n\t\t\t\tthis.fire('moveend');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// @section Map state change events\r\n\t\t// @event resize: ResizeEvent\r\n\t\t// Fired when the map is resized.\r\n\t\treturn this.fire('resize', {\r\n\t\t\toldSize: oldSize,\r\n\t\t\tnewSize: newSize\r\n\t\t});\r\n\t},\r\n\r\n\t// @section Methods for modifying map state\r\n\t// @method stop(): this\r\n\t// Stops the currently running `panTo` or `flyTo` animation, if any.\r\n\tstop: function () {\r\n\t\tthis.setZoom(this._limitZoom(this._zoom));\r\n\t\tif (!this.options.zoomSnap) {\r\n\t\t\tthis.fire('viewreset');\r\n\t\t}\r\n\t\treturn this._stop();\r\n\t},\r\n\r\n\t// @section Geolocation methods\r\n\t// @method locate(options?: Locate options): this\r\n\t// Tries to locate the user using the Geolocation API, firing a [`locationfound`](#map-locationfound)\r\n\t// event with location data on success or a [`locationerror`](#map-locationerror) event on failure,\r\n\t// and optionally sets the map view to the user's location with respect to\r\n\t// detection accuracy (or to the world view if geolocation failed).\r\n\t// Note that, if your page doesn't use HTTPS, this method will fail in\r\n\t// modern browsers ([Chrome 50 and newer](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins))\r\n\t// See `Locate options` for more details.\r\n\tlocate: function (options) {\r\n\r\n\t\toptions = this._locateOptions = extend({\r\n\t\t\ttimeout: 10000,\r\n\t\t\twatch: false\r\n\t\t\t// setView: false\r\n\t\t\t// maxZoom: \r\n\t\t\t// maximumAge: 0\r\n\t\t\t// enableHighAccuracy: false\r\n\t\t}, options);\r\n\r\n\t\tif (!('geolocation' in navigator)) {\r\n\t\t\tthis._handleGeolocationError({\r\n\t\t\t\tcode: 0,\r\n\t\t\t\tmessage: 'Geolocation not supported.'\r\n\t\t\t});\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar onResponse = bind(this._handleGeolocationResponse, this),\r\n\t\t onError = bind(this._handleGeolocationError, this);\r\n\r\n\t\tif (options.watch) {\r\n\t\t\tthis._locationWatchId =\r\n\t\t\t navigator.geolocation.watchPosition(onResponse, onError, options);\r\n\t\t} else {\r\n\t\t\tnavigator.geolocation.getCurrentPosition(onResponse, onError, options);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method stopLocate(): this\r\n\t// Stops watching location previously initiated by `map.locate({watch: true})`\r\n\t// and aborts resetting the map view if map.locate was called with\r\n\t// `{setView: true}`.\r\n\tstopLocate: function () {\r\n\t\tif (navigator.geolocation && navigator.geolocation.clearWatch) {\r\n\t\t\tnavigator.geolocation.clearWatch(this._locationWatchId);\r\n\t\t}\r\n\t\tif (this._locateOptions) {\r\n\t\t\tthis._locateOptions.setView = false;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_handleGeolocationError: function (error) {\r\n\t\tif (!this._container._leaflet_id) { return; }\r\n\r\n\t\tvar c = error.code,\r\n\t\t message = error.message ||\r\n\t\t (c === 1 ? 'permission denied' :\r\n\t\t (c === 2 ? 'position unavailable' : 'timeout'));\r\n\r\n\t\tif (this._locateOptions.setView && !this._loaded) {\r\n\t\t\tthis.fitWorld();\r\n\t\t}\r\n\r\n\t\t// @section Location events\r\n\t\t// @event locationerror: ErrorEvent\r\n\t\t// Fired when geolocation (using the [`locate`](#map-locate) method) failed.\r\n\t\tthis.fire('locationerror', {\r\n\t\t\tcode: c,\r\n\t\t\tmessage: 'Geolocation error: ' + message + '.'\r\n\t\t});\r\n\t},\r\n\r\n\t_handleGeolocationResponse: function (pos) {\r\n\t\tif (!this._container._leaflet_id) { return; }\r\n\r\n\t\tvar lat = pos.coords.latitude,\r\n\t\t lng = pos.coords.longitude,\r\n\t\t latlng = new LatLng(lat, lng),\r\n\t\t bounds = latlng.toBounds(pos.coords.accuracy * 2),\r\n\t\t options = this._locateOptions;\r\n\r\n\t\tif (options.setView) {\r\n\t\t\tvar zoom = this.getBoundsZoom(bounds);\r\n\t\t\tthis.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom);\r\n\t\t}\r\n\r\n\t\tvar data = {\r\n\t\t\tlatlng: latlng,\r\n\t\t\tbounds: bounds,\r\n\t\t\ttimestamp: pos.timestamp\r\n\t\t};\r\n\r\n\t\tfor (var i in pos.coords) {\r\n\t\t\tif (typeof pos.coords[i] === 'number') {\r\n\t\t\t\tdata[i] = pos.coords[i];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// @event locationfound: LocationEvent\r\n\t\t// Fired when geolocation (using the [`locate`](#map-locate) method)\r\n\t\t// went successfully.\r\n\t\tthis.fire('locationfound', data);\r\n\t},\r\n\r\n\t// TODO Appropriate docs section?\r\n\t// @section Other Methods\r\n\t// @method addHandler(name: String, HandlerClass: Function): this\r\n\t// Adds a new `Handler` to the map, given its name and constructor function.\r\n\taddHandler: function (name, HandlerClass) {\r\n\t\tif (!HandlerClass) { return this; }\r\n\r\n\t\tvar handler = this[name] = new HandlerClass(this);\r\n\r\n\t\tthis._handlers.push(handler);\r\n\r\n\t\tif (this.options[name]) {\r\n\t\t\thandler.enable();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method remove(): this\r\n\t// Destroys the map and clears all related event listeners.\r\n\tremove: function () {\r\n\r\n\t\tthis._initEvents(true);\r\n\t\tif (this.options.maxBounds) { this.off('moveend', this._panInsideMaxBounds); }\r\n\r\n\t\tif (this._containerId !== this._container._leaflet_id) {\r\n\t\t\tthrow new Error('Map container is being reused by another instance');\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// throws error in IE6-8\r\n\t\t\tdelete this._container._leaflet_id;\r\n\t\t\tdelete this._containerId;\r\n\t\t} catch (e) {\r\n\t\t\t/*eslint-disable */\r\n\t\t\tthis._container._leaflet_id = undefined;\r\n\t\t\t/* eslint-enable */\r\n\t\t\tthis._containerId = undefined;\r\n\t\t}\r\n\r\n\t\tif (this._locationWatchId !== undefined) {\r\n\t\t\tthis.stopLocate();\r\n\t\t}\r\n\r\n\t\tthis._stop();\r\n\r\n\t\tremove(this._mapPane);\r\n\r\n\t\tif (this._clearControlPos) {\r\n\t\t\tthis._clearControlPos();\r\n\t\t}\r\n\t\tif (this._resizeRequest) {\r\n\t\t\tcancelAnimFrame(this._resizeRequest);\r\n\t\t\tthis._resizeRequest = null;\r\n\t\t}\r\n\r\n\t\tthis._clearHandlers();\r\n\r\n\t\tif (this._loaded) {\r\n\t\t\t// @section Map state change events\r\n\t\t\t// @event unload: Event\r\n\t\t\t// Fired when the map is destroyed with [remove](#map-remove) method.\r\n\t\t\tthis.fire('unload');\r\n\t\t}\r\n\r\n\t\tvar i;\r\n\t\tfor (i in this._layers) {\r\n\t\t\tthis._layers[i].remove();\r\n\t\t}\r\n\t\tfor (i in this._panes) {\r\n\t\t\tremove(this._panes[i]);\r\n\t\t}\r\n\r\n\t\tthis._layers = [];\r\n\t\tthis._panes = [];\r\n\t\tdelete this._mapPane;\r\n\t\tdelete this._renderer;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\t// @method createPane(name: String, container?: HTMLElement): HTMLElement\r\n\t// Creates a new [map pane](#map-pane) with the given name if it doesn't exist already,\r\n\t// then returns it. The pane is created as a child of `container`, or\r\n\t// as a child of the main map pane if not set.\r\n\tcreatePane: function (name, container) {\r\n\t\tvar className = 'leaflet-pane' + (name ? ' leaflet-' + name.replace('Pane', '') + '-pane' : ''),\r\n\t\t pane = create$1('div', className, container || this._mapPane);\r\n\r\n\t\tif (name) {\r\n\t\t\tthis._panes[name] = pane;\r\n\t\t}\r\n\t\treturn pane;\r\n\t},\r\n\r\n\t// @section Methods for Getting Map State\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the geographical center of the map view\r\n\tgetCenter: function () {\r\n\t\tthis._checkIfLoaded();\r\n\r\n\t\tif (this._lastCenter && !this._moved()) {\r\n\t\t\treturn this._lastCenter;\r\n\t\t}\r\n\t\treturn this.layerPointToLatLng(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\t// @method getZoom(): Number\r\n\t// Returns the current zoom level of the map view\r\n\tgetZoom: function () {\r\n\t\treturn this._zoom;\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Returns the geographical bounds visible in the current map view\r\n\tgetBounds: function () {\r\n\t\tvar bounds = this.getPixelBounds(),\r\n\t\t sw = this.unproject(bounds.getBottomLeft()),\r\n\t\t ne = this.unproject(bounds.getTopRight());\r\n\r\n\t\treturn new LatLngBounds(sw, ne);\r\n\t},\r\n\r\n\t// @method getMinZoom(): Number\r\n\t// Returns the minimum zoom level of the map (if set in the `minZoom` option of the map or of any layers), or `0` by default.\r\n\tgetMinZoom: function () {\r\n\t\treturn this.options.minZoom === undefined ? this._layersMinZoom || 0 : this.options.minZoom;\r\n\t},\r\n\r\n\t// @method getMaxZoom(): Number\r\n\t// Returns the maximum zoom level of the map (if set in the `maxZoom` option of the map or of any layers).\r\n\tgetMaxZoom: function () {\r\n\t\treturn this.options.maxZoom === undefined ?\r\n\t\t\t(this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) :\r\n\t\t\tthis.options.maxZoom;\r\n\t},\r\n\r\n\t// @method getBoundsZoom(bounds: LatLngBounds, inside?: Boolean, padding?: Point): Number\r\n\t// Returns the maximum zoom level on which the given bounds fit to the map\r\n\t// view in its entirety. If `inside` (optional) is set to `true`, the method\r\n\t// instead returns the minimum zoom level on which the map view fits into\r\n\t// the given bounds in its entirety.\r\n\tgetBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\t\tpadding = toPoint(padding || [0, 0]);\r\n\r\n\t\tvar zoom = this.getZoom() || 0,\r\n\t\t min = this.getMinZoom(),\r\n\t\t max = this.getMaxZoom(),\r\n\t\t nw = bounds.getNorthWest(),\r\n\t\t se = bounds.getSouthEast(),\r\n\t\t size = this.getSize().subtract(padding),\r\n\t\t boundsSize = toBounds(this.project(se, zoom), this.project(nw, zoom)).getSize(),\r\n\t\t snap = Browser.any3d ? this.options.zoomSnap : 1,\r\n\t\t scalex = size.x / boundsSize.x,\r\n\t\t scaley = size.y / boundsSize.y,\r\n\t\t scale = inside ? Math.max(scalex, scaley) : Math.min(scalex, scaley);\r\n\r\n\t\tzoom = this.getScaleZoom(scale, zoom);\r\n\r\n\t\tif (snap) {\r\n\t\t\tzoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level\r\n\t\t\tzoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap;\r\n\t\t}\r\n\r\n\t\treturn Math.max(min, Math.min(max, zoom));\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the current size of the map container (in pixels).\r\n\tgetSize: function () {\r\n\t\tif (!this._size || this._sizeChanged) {\r\n\t\t\tthis._size = new Point(\r\n\t\t\t\tthis._container.clientWidth || 0,\r\n\t\t\t\tthis._container.clientHeight || 0);\r\n\r\n\t\t\tthis._sizeChanged = false;\r\n\t\t}\r\n\t\treturn this._size.clone();\r\n\t},\r\n\r\n\t// @method getPixelBounds(): Bounds\r\n\t// Returns the bounds of the current map view in projected pixel\r\n\t// coordinates (sometimes useful in layer and overlay implementations).\r\n\tgetPixelBounds: function (center, zoom) {\r\n\t\tvar topLeftPoint = this._getTopLeftPoint(center, zoom);\r\n\t\treturn new Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));\r\n\t},\r\n\r\n\t// TODO: Check semantics - isn't the pixel origin the 0,0 coord relative to\r\n\t// the map pane? \"left point of the map layer\" can be confusing, specially\r\n\t// since there can be negative offsets.\r\n\t// @method getPixelOrigin(): Point\r\n\t// Returns the projected pixel coordinates of the top left point of\r\n\t// the map layer (useful in custom layer and overlay implementations).\r\n\tgetPixelOrigin: function () {\r\n\t\tthis._checkIfLoaded();\r\n\t\treturn this._pixelOrigin;\r\n\t},\r\n\r\n\t// @method getPixelWorldBounds(zoom?: Number): Bounds\r\n\t// Returns the world's bounds in pixel coordinates for zoom level `zoom`.\r\n\t// If `zoom` is omitted, the map's current zoom level is used.\r\n\tgetPixelWorldBounds: function (zoom) {\r\n\t\treturn this.options.crs.getProjectedBounds(zoom === undefined ? this.getZoom() : zoom);\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\r\n\t// @method getPane(pane: String|HTMLElement): HTMLElement\r\n\t// Returns a [map pane](#map-pane), given its name or its HTML element (its identity).\r\n\tgetPane: function (pane) {\r\n\t\treturn typeof pane === 'string' ? this._panes[pane] : pane;\r\n\t},\r\n\r\n\t// @method getPanes(): Object\r\n\t// Returns a plain object containing the names of all [panes](#map-pane) as keys and\r\n\t// the panes as values.\r\n\tgetPanes: function () {\r\n\t\treturn this._panes;\r\n\t},\r\n\r\n\t// @method getContainer: HTMLElement\r\n\t// Returns the HTML element that contains the map.\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\r\n\t// @section Conversion Methods\r\n\r\n\t// @method getZoomScale(toZoom: Number, fromZoom: Number): Number\r\n\t// Returns the scale factor to be applied to a map transition from zoom level\r\n\t// `fromZoom` to `toZoom`. Used internally to help with zoom animations.\r\n\tgetZoomScale: function (toZoom, fromZoom) {\r\n\t\t// TODO replace with universal implementation after refactoring projections\r\n\t\tvar crs = this.options.crs;\r\n\t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n\t\treturn crs.scale(toZoom) / crs.scale(fromZoom);\r\n\t},\r\n\r\n\t// @method getScaleZoom(scale: Number, fromZoom: Number): Number\r\n\t// Returns the zoom level that the map would end up at, if it is at `fromZoom`\r\n\t// level and everything is scaled by a factor of `scale`. Inverse of\r\n\t// [`getZoomScale`](#map-getZoomScale).\r\n\tgetScaleZoom: function (scale, fromZoom) {\r\n\t\tvar crs = this.options.crs;\r\n\t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n\t\tvar zoom = crs.zoom(scale * crs.scale(fromZoom));\r\n\t\treturn isNaN(zoom) ? Infinity : zoom;\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng, zoom: Number): Point\r\n\t// Projects a geographical coordinate `LatLng` according to the projection\r\n\t// of the map's CRS, then scales it according to `zoom` and the CRS's\r\n\t// `Transformation`. The result is pixel coordinate relative to\r\n\t// the CRS origin.\r\n\tproject: function (latlng, zoom) {\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.latLngToPoint(toLatLng(latlng), zoom);\r\n\t},\r\n\r\n\t// @method unproject(point: Point, zoom: Number): LatLng\r\n\t// Inverse of [`project`](#map-project).\r\n\tunproject: function (point, zoom) {\r\n\t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n\t\treturn this.options.crs.pointToLatLng(toPoint(point), zoom);\r\n\t},\r\n\r\n\t// @method layerPointToLatLng(point: Point): LatLng\r\n\t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n\t// returns the corresponding geographical coordinate (for the current zoom level).\r\n\tlayerPointToLatLng: function (point) {\r\n\t\tvar projectedPoint = toPoint(point).add(this.getPixelOrigin());\r\n\t\treturn this.unproject(projectedPoint);\r\n\t},\r\n\r\n\t// @method latLngToLayerPoint(latlng: LatLng): Point\r\n\t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n\t// relative to the [origin pixel](#map-getpixelorigin).\r\n\tlatLngToLayerPoint: function (latlng) {\r\n\t\tvar projectedPoint = this.project(toLatLng(latlng))._round();\r\n\t\treturn projectedPoint._subtract(this.getPixelOrigin());\r\n\t},\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where `lat` and `lng` has been wrapped according to the\r\n\t// map's CRS's `wrapLat` and `wrapLng` properties, if they are outside the\r\n\t// CRS's bounds.\r\n\t// By default this means longitude is wrapped around the dateline so its\r\n\t// value is between -180 and +180 degrees.\r\n\twrapLatLng: function (latlng) {\r\n\t\treturn this.options.crs.wrapLatLng(toLatLng(latlng));\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring that\r\n\t// its center is within the CRS's bounds.\r\n\t// By default this means the center longitude is wrapped around the dateline so its\r\n\t// value is between -180 and +180 degrees, and the majority of the bounds\r\n\t// overlaps the CRS's bounds.\r\n\twrapLatLngBounds: function (latlng) {\r\n\t\treturn this.options.crs.wrapLatLngBounds(toLatLngBounds(latlng));\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates according to\r\n\t// the map's CRS. By default this measures distance in meters.\r\n\tdistance: function (latlng1, latlng2) {\r\n\t\treturn this.options.crs.distance(toLatLng(latlng1), toLatLng(latlng2));\r\n\t},\r\n\r\n\t// @method containerPointToLayerPoint(point: Point): Point\r\n\t// Given a pixel coordinate relative to the map container, returns the corresponding\r\n\t// pixel coordinate relative to the [origin pixel](#map-getpixelorigin).\r\n\tcontainerPointToLayerPoint: function (point) { // (Point)\r\n\t\treturn toPoint(point).subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\t// @method layerPointToContainerPoint(point: Point): Point\r\n\t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n\t// returns the corresponding pixel coordinate relative to the map container.\r\n\tlayerPointToContainerPoint: function (point) { // (Point)\r\n\t\treturn toPoint(point).add(this._getMapPanePos());\r\n\t},\r\n\r\n\t// @method containerPointToLatLng(point: Point): LatLng\r\n\t// Given a pixel coordinate relative to the map container, returns\r\n\t// the corresponding geographical coordinate (for the current zoom level).\r\n\tcontainerPointToLatLng: function (point) {\r\n\t\tvar layerPoint = this.containerPointToLayerPoint(toPoint(point));\r\n\t\treturn this.layerPointToLatLng(layerPoint);\r\n\t},\r\n\r\n\t// @method latLngToContainerPoint(latlng: LatLng): Point\r\n\t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n\t// relative to the map container.\r\n\tlatLngToContainerPoint: function (latlng) {\r\n\t\treturn this.layerPointToContainerPoint(this.latLngToLayerPoint(toLatLng(latlng)));\r\n\t},\r\n\r\n\t// @method mouseEventToContainerPoint(ev: MouseEvent): Point\r\n\t// Given a MouseEvent object, returns the pixel coordinate relative to the\r\n\t// map container where the event took place.\r\n\tmouseEventToContainerPoint: function (e) {\r\n\t\treturn getMousePosition(e, this._container);\r\n\t},\r\n\r\n\t// @method mouseEventToLayerPoint(ev: MouseEvent): Point\r\n\t// Given a MouseEvent object, returns the pixel coordinate relative to\r\n\t// the [origin pixel](#map-getpixelorigin) where the event took place.\r\n\tmouseEventToLayerPoint: function (e) {\r\n\t\treturn this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e));\r\n\t},\r\n\r\n\t// @method mouseEventToLatLng(ev: MouseEvent): LatLng\r\n\t// Given a MouseEvent object, returns geographical coordinate where the\r\n\t// event took place.\r\n\tmouseEventToLatLng: function (e) { // (MouseEvent)\r\n\t\treturn this.layerPointToLatLng(this.mouseEventToLayerPoint(e));\r\n\t},\r\n\r\n\r\n\t// map initialization methods\r\n\r\n\t_initContainer: function (id) {\r\n\t\tvar container = this._container = get(id);\r\n\r\n\t\tif (!container) {\r\n\t\t\tthrow new Error('Map container not found.');\r\n\t\t} else if (container._leaflet_id) {\r\n\t\t\tthrow new Error('Map container is already initialized.');\r\n\t\t}\r\n\r\n\t\ton(container, 'scroll', this._onScroll, this);\r\n\t\tthis._containerId = stamp(container);\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar container = this._container;\r\n\r\n\t\tthis._fadeAnimated = this.options.fadeAnimation && Browser.any3d;\r\n\r\n\t\taddClass(container, 'leaflet-container' +\r\n\t\t\t(Browser.touch ? ' leaflet-touch' : '') +\r\n\t\t\t(Browser.retina ? ' leaflet-retina' : '') +\r\n\t\t\t(Browser.ielt9 ? ' leaflet-oldie' : '') +\r\n\t\t\t(Browser.safari ? ' leaflet-safari' : '') +\r\n\t\t\t(this._fadeAnimated ? ' leaflet-fade-anim' : ''));\r\n\r\n\t\tvar position = getStyle(container, 'position');\r\n\r\n\t\tif (position !== 'absolute' && position !== 'relative' && position !== 'fixed') {\r\n\t\t\tcontainer.style.position = 'relative';\r\n\t\t}\r\n\r\n\t\tthis._initPanes();\r\n\r\n\t\tif (this._initControlPos) {\r\n\t\t\tthis._initControlPos();\r\n\t\t}\r\n\t},\r\n\r\n\t_initPanes: function () {\r\n\t\tvar panes = this._panes = {};\r\n\t\tthis._paneRenderers = {};\r\n\r\n\t\t// @section\r\n\t\t//\r\n\t\t// Panes are DOM elements used to control the ordering of layers on the map. You\r\n\t\t// can access panes with [`map.getPane`](#map-getpane) or\r\n\t\t// [`map.getPanes`](#map-getpanes) methods. New panes can be created with the\r\n\t\t// [`map.createPane`](#map-createpane) method.\r\n\t\t//\r\n\t\t// Every map has the following default panes that differ only in zIndex.\r\n\t\t//\r\n\t\t// @pane mapPane: HTMLElement = 'auto'\r\n\t\t// Pane that contains all other map panes\r\n\r\n\t\tthis._mapPane = this.createPane('mapPane', this._container);\r\n\t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n\t\t// @pane tilePane: HTMLElement = 200\r\n\t\t// Pane for `GridLayer`s and `TileLayer`s\r\n\t\tthis.createPane('tilePane');\r\n\t\t// @pane overlayPane: HTMLElement = 400\r\n\t\t// Pane for vectors (`Path`s, like `Polyline`s and `Polygon`s), `ImageOverlay`s and `VideoOverlay`s\r\n\t\tthis.createPane('overlayPane');\r\n\t\t// @pane shadowPane: HTMLElement = 500\r\n\t\t// Pane for overlay shadows (e.g. `Marker` shadows)\r\n\t\tthis.createPane('shadowPane');\r\n\t\t// @pane markerPane: HTMLElement = 600\r\n\t\t// Pane for `Icon`s of `Marker`s\r\n\t\tthis.createPane('markerPane');\r\n\t\t// @pane tooltipPane: HTMLElement = 650\r\n\t\t// Pane for `Tooltip`s.\r\n\t\tthis.createPane('tooltipPane');\r\n\t\t// @pane popupPane: HTMLElement = 700\r\n\t\t// Pane for `Popup`s.\r\n\t\tthis.createPane('popupPane');\r\n\r\n\t\tif (!this.options.markerZoomAnimation) {\r\n\t\t\taddClass(panes.markerPane, 'leaflet-zoom-hide');\r\n\t\t\taddClass(panes.shadowPane, 'leaflet-zoom-hide');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// private methods that modify map state\r\n\r\n\t// @section Map state change events\r\n\t_resetView: function (center, zoom) {\r\n\t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n\t\tvar loading = !this._loaded;\r\n\t\tthis._loaded = true;\r\n\t\tzoom = this._limitZoom(zoom);\r\n\r\n\t\tthis.fire('viewprereset');\r\n\r\n\t\tvar zoomChanged = this._zoom !== zoom;\r\n\t\tthis\r\n\t\t\t._moveStart(zoomChanged, false)\r\n\t\t\t._move(center, zoom)\r\n\t\t\t._moveEnd(zoomChanged);\r\n\r\n\t\t// @event viewreset: Event\r\n\t\t// Fired when the map needs to redraw its content (this usually happens\r\n\t\t// on map zoom or load). Very useful for creating custom overlays.\r\n\t\tthis.fire('viewreset');\r\n\r\n\t\t// @event load: Event\r\n\t\t// Fired when the map is initialized (when its center and zoom are set\r\n\t\t// for the first time).\r\n\t\tif (loading) {\r\n\t\t\tthis.fire('load');\r\n\t\t}\r\n\t},\r\n\r\n\t_moveStart: function (zoomChanged, noMoveStart) {\r\n\t\t// @event zoomstart: Event\r\n\t\t// Fired when the map zoom is about to change (e.g. before zoom animation).\r\n\t\t// @event movestart: Event\r\n\t\t// Fired when the view of the map starts changing (e.g. user starts dragging the map).\r\n\t\tif (zoomChanged) {\r\n\t\t\tthis.fire('zoomstart');\r\n\t\t}\r\n\t\tif (!noMoveStart) {\r\n\t\t\tthis.fire('movestart');\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_move: function (center, zoom, data, supressEvent) {\r\n\t\tif (zoom === undefined) {\r\n\t\t\tzoom = this._zoom;\r\n\t\t}\r\n\t\tvar zoomChanged = this._zoom !== zoom;\r\n\r\n\t\tthis._zoom = zoom;\r\n\t\tthis._lastCenter = center;\r\n\t\tthis._pixelOrigin = this._getNewPixelOrigin(center);\r\n\r\n\t\tif (!supressEvent) {\r\n\t\t\t// @event zoom: Event\r\n\t\t\t// Fired repeatedly during any change in zoom level,\r\n\t\t\t// including zoom and fly animations.\r\n\t\t\tif (zoomChanged || (data && data.pinch)) {\t// Always fire 'zoom' if pinching because #3530\r\n\t\t\t\tthis.fire('zoom', data);\r\n\t\t\t}\r\n\r\n\t\t\t// @event move: Event\r\n\t\t\t// Fired repeatedly during any movement of the map,\r\n\t\t\t// including pan and fly animations.\r\n\t\t\tthis.fire('move', data);\r\n\t\t} else if (data && data.pinch) {\t// Always fire 'zoom' if pinching because #3530\r\n\t\t\tthis.fire('zoom', data);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_moveEnd: function (zoomChanged) {\r\n\t\t// @event zoomend: Event\r\n\t\t// Fired when the map zoom changed, after any animations.\r\n\t\tif (zoomChanged) {\r\n\t\t\tthis.fire('zoomend');\r\n\t\t}\r\n\r\n\t\t// @event moveend: Event\r\n\t\t// Fired when the center of the map stops changing\r\n\t\t// (e.g. user stopped dragging the map or after non-centered zoom).\r\n\t\treturn this.fire('moveend');\r\n\t},\r\n\r\n\t_stop: function () {\r\n\t\tcancelAnimFrame(this._flyToFrame);\r\n\t\tif (this._panAnim) {\r\n\t\t\tthis._panAnim.stop();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_rawPanBy: function (offset) {\r\n\t\tsetPosition(this._mapPane, this._getMapPanePos().subtract(offset));\r\n\t},\r\n\r\n\t_getZoomSpan: function () {\r\n\t\treturn this.getMaxZoom() - this.getMinZoom();\r\n\t},\r\n\r\n\t_panInsideMaxBounds: function () {\r\n\t\tif (!this._enforcingBounds) {\r\n\t\t\tthis.panInsideBounds(this.options.maxBounds);\r\n\t\t}\r\n\t},\r\n\r\n\t_checkIfLoaded: function () {\r\n\t\tif (!this._loaded) {\r\n\t\t\tthrow new Error('Set map center and zoom first.');\r\n\t\t}\r\n\t},\r\n\r\n\t// DOM event handling\r\n\r\n\t// @section Interaction events\r\n\t_initEvents: function (remove) {\r\n\t\tthis._targets = {};\r\n\t\tthis._targets[stamp(this._container)] = this;\r\n\r\n\t\tvar onOff = remove ? off : on;\r\n\r\n\t\t// @event click: MouseEvent\r\n\t\t// Fired when the user clicks (or taps) the map.\r\n\t\t// @event dblclick: MouseEvent\r\n\t\t// Fired when the user double-clicks (or double-taps) the map.\r\n\t\t// @event mousedown: MouseEvent\r\n\t\t// Fired when the user pushes the mouse button on the map.\r\n\t\t// @event mouseup: MouseEvent\r\n\t\t// Fired when the user releases the mouse button on the map.\r\n\t\t// @event mouseover: MouseEvent\r\n\t\t// Fired when the mouse enters the map.\r\n\t\t// @event mouseout: MouseEvent\r\n\t\t// Fired when the mouse leaves the map.\r\n\t\t// @event mousemove: MouseEvent\r\n\t\t// Fired while the mouse moves over the map.\r\n\t\t// @event contextmenu: MouseEvent\r\n\t\t// Fired when the user pushes the right mouse button on the map, prevents\r\n\t\t// default browser context menu from showing if there are listeners on\r\n\t\t// this event. Also fired on mobile when the user holds a single touch\r\n\t\t// for a second (also called long press).\r\n\t\t// @event keypress: KeyboardEvent\r\n\t\t// Fired when the user presses a key from the keyboard that produces a character value while the map is focused.\r\n\t\t// @event keydown: KeyboardEvent\r\n\t\t// Fired when the user presses a key from the keyboard while the map is focused. Unlike the `keypress` event,\r\n\t\t// the `keydown` event is fired for keys that produce a character value and for keys\r\n\t\t// that do not produce a character value.\r\n\t\t// @event keyup: KeyboardEvent\r\n\t\t// Fired when the user releases a key from the keyboard while the map is focused.\r\n\t\tonOff(this._container, 'click dblclick mousedown mouseup ' +\r\n\t\t\t'mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this);\r\n\r\n\t\tif (this.options.trackResize) {\r\n\t\t\tonOff(window, 'resize', this._onResize, this);\r\n\t\t}\r\n\r\n\t\tif (Browser.any3d && this.options.transform3DLimit) {\r\n\t\t\t(remove ? this.off : this.on).call(this, 'moveend', this._onMoveEnd);\r\n\t\t}\r\n\t},\r\n\r\n\t_onResize: function () {\r\n\t\tcancelAnimFrame(this._resizeRequest);\r\n\t\tthis._resizeRequest = requestAnimFrame(\r\n\t\t function () { this.invalidateSize({debounceMoveend: true}); }, this);\r\n\t},\r\n\r\n\t_onScroll: function () {\r\n\t\tthis._container.scrollTop = 0;\r\n\t\tthis._container.scrollLeft = 0;\r\n\t},\r\n\r\n\t_onMoveEnd: function () {\r\n\t\tvar pos = this._getMapPanePos();\r\n\t\tif (Math.max(Math.abs(pos.x), Math.abs(pos.y)) >= this.options.transform3DLimit) {\r\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1203873 but Webkit also have\r\n\t\t\t// a pixel offset on very high values, see: https://jsfiddle.net/dg6r5hhb/\r\n\t\t\tthis._resetView(this.getCenter(), this.getZoom());\r\n\t\t}\r\n\t},\r\n\r\n\t_findEventTargets: function (e, type) {\r\n\t\tvar targets = [],\r\n\t\t target,\r\n\t\t isHover = type === 'mouseout' || type === 'mouseover',\r\n\t\t src = e.target || e.srcElement,\r\n\t\t dragging = false;\r\n\r\n\t\twhile (src) {\r\n\t\t\ttarget = this._targets[stamp(src)];\r\n\t\t\tif (target && (type === 'click' || type === 'preclick') && this._draggableMoved(target)) {\r\n\t\t\t\t// Prevent firing click after you just dragged an object.\r\n\t\t\t\tdragging = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (target && target.listens(type, true)) {\r\n\t\t\t\tif (isHover && !isExternalTarget(src, e)) { break; }\r\n\t\t\t\ttargets.push(target);\r\n\t\t\t\tif (isHover) { break; }\r\n\t\t\t}\r\n\t\t\tif (src === this._container) { break; }\r\n\t\t\tsrc = src.parentNode;\r\n\t\t}\r\n\t\tif (!targets.length && !dragging && !isHover && this.listens(type, true)) {\r\n\t\t\ttargets = [this];\r\n\t\t}\r\n\t\treturn targets;\r\n\t},\r\n\r\n\t_isClickDisabled: function (el) {\r\n\t\twhile (el !== this._container) {\r\n\t\t\tif (el['_leaflet_disable_click']) { return true; }\r\n\t\t\tel = el.parentNode;\r\n\t\t}\r\n\t},\r\n\r\n\t_handleDOMEvent: function (e) {\r\n\t\tvar el = (e.target || e.srcElement);\r\n\t\tif (!this._loaded || el['_leaflet_disable_events'] || e.type === 'click' && this._isClickDisabled(el)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar type = e.type;\r\n\r\n\t\tif (type === 'mousedown') {\r\n\t\t\t// prevents outline when clicking on keyboard-focusable element\r\n\t\t\tpreventOutline(el);\r\n\t\t}\r\n\r\n\t\tthis._fireDOMEvent(e, type);\r\n\t},\r\n\r\n\t_mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'],\r\n\r\n\t_fireDOMEvent: function (e, type, canvasTargets) {\r\n\r\n\t\tif (e.type === 'click') {\r\n\t\t\t// Fire a synthetic 'preclick' event which propagates up (mainly for closing popups).\r\n\t\t\t// @event preclick: MouseEvent\r\n\t\t\t// Fired before mouse click on the map (sometimes useful when you\r\n\t\t\t// want something to happen on click before any existing click\r\n\t\t\t// handlers start running).\r\n\t\t\tvar synth = extend({}, e);\r\n\t\t\tsynth.type = 'preclick';\r\n\t\t\tthis._fireDOMEvent(synth, synth.type, canvasTargets);\r\n\t\t}\r\n\r\n\t\t// Find the layer the event is propagating from and its parents.\r\n\t\tvar targets = this._findEventTargets(e, type);\r\n\r\n\t\tif (canvasTargets) {\r\n\t\t\tvar filtered = []; // pick only targets with listeners\r\n\t\t\tfor (var i = 0; i < canvasTargets.length; i++) {\r\n\t\t\t\tif (canvasTargets[i].listens(type, true)) {\r\n\t\t\t\t\tfiltered.push(canvasTargets[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttargets = filtered.concat(targets);\r\n\t\t}\r\n\r\n\t\tif (!targets.length) { return; }\r\n\r\n\t\tif (type === 'contextmenu') {\r\n\t\t\tpreventDefault(e);\r\n\t\t}\r\n\r\n\t\tvar target = targets[0];\r\n\t\tvar data = {\r\n\t\t\toriginalEvent: e\r\n\t\t};\r\n\r\n\t\tif (e.type !== 'keypress' && e.type !== 'keydown' && e.type !== 'keyup') {\r\n\t\t\tvar isMarker = target.getLatLng && (!target._radius || target._radius <= 10);\r\n\t\t\tdata.containerPoint = isMarker ?\r\n\t\t\t\tthis.latLngToContainerPoint(target.getLatLng()) : this.mouseEventToContainerPoint(e);\r\n\t\t\tdata.layerPoint = this.containerPointToLayerPoint(data.containerPoint);\r\n\t\t\tdata.latlng = isMarker ? target.getLatLng() : this.layerPointToLatLng(data.layerPoint);\r\n\t\t}\r\n\r\n\t\tfor (i = 0; i < targets.length; i++) {\r\n\t\t\ttargets[i].fire(type, data, true);\r\n\t\t\tif (data.originalEvent._stopped ||\r\n\t\t\t\t(targets[i].options.bubblingMouseEvents === false && indexOf(this._mouseEvents, type) !== -1)) { return; }\r\n\t\t}\r\n\t},\r\n\r\n\t_draggableMoved: function (obj) {\r\n\t\tobj = obj.dragging && obj.dragging.enabled() ? obj : this;\r\n\t\treturn (obj.dragging && obj.dragging.moved()) || (this.boxZoom && this.boxZoom.moved());\r\n\t},\r\n\r\n\t_clearHandlers: function () {\r\n\t\tfor (var i = 0, len = this._handlers.length; i < len; i++) {\r\n\t\t\tthis._handlers[i].disable();\r\n\t\t}\r\n\t},\r\n\r\n\t// @section Other Methods\r\n\r\n\t// @method whenReady(fn: Function, context?: Object): this\r\n\t// Runs the given function `fn` when the map gets initialized with\r\n\t// a view (center and zoom) and at least one layer, or immediately\r\n\t// if it's already initialized, optionally passing a function context.\r\n\twhenReady: function (callback, context) {\r\n\t\tif (this._loaded) {\r\n\t\t\tcallback.call(context || this, {target: this});\r\n\t\t} else {\r\n\t\t\tthis.on('load', callback, context);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\r\n\t// private methods for getting map state\r\n\r\n\t_getMapPanePos: function () {\r\n\t\treturn getPosition(this._mapPane) || new Point(0, 0);\r\n\t},\r\n\r\n\t_moved: function () {\r\n\t\tvar pos = this._getMapPanePos();\r\n\t\treturn pos && !pos.equals([0, 0]);\r\n\t},\r\n\r\n\t_getTopLeftPoint: function (center, zoom) {\r\n\t\tvar pixelOrigin = center && zoom !== undefined ?\r\n\t\t\tthis._getNewPixelOrigin(center, zoom) :\r\n\t\t\tthis.getPixelOrigin();\r\n\t\treturn pixelOrigin.subtract(this._getMapPanePos());\r\n\t},\r\n\r\n\t_getNewPixelOrigin: function (center, zoom) {\r\n\t\tvar viewHalf = this.getSize()._divideBy(2);\r\n\t\treturn this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._round();\r\n\t},\r\n\r\n\t_latLngToNewLayerPoint: function (latlng, zoom, center) {\r\n\t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n\t\treturn this.project(latlng, zoom)._subtract(topLeft);\r\n\t},\r\n\r\n\t_latLngBoundsToNewLayerBounds: function (latLngBounds, zoom, center) {\r\n\t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n\t\treturn toBounds([\r\n\t\t\tthis.project(latLngBounds.getSouthWest(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getNorthWest(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getSouthEast(), zoom)._subtract(topLeft),\r\n\t\t\tthis.project(latLngBounds.getNorthEast(), zoom)._subtract(topLeft)\r\n\t\t]);\r\n\t},\r\n\r\n\t// layer point of the current center\r\n\t_getCenterLayerPoint: function () {\r\n\t\treturn this.containerPointToLayerPoint(this.getSize()._divideBy(2));\r\n\t},\r\n\r\n\t// offset of the specified place to the current center in pixels\r\n\t_getCenterOffset: function (latlng) {\r\n\t\treturn this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint());\r\n\t},\r\n\r\n\t// adjust center for view to get inside bounds\r\n\t_limitCenter: function (center, zoom, bounds) {\r\n\r\n\t\tif (!bounds) { return center; }\r\n\r\n\t\tvar centerPoint = this.project(center, zoom),\r\n\t\t viewHalf = this.getSize().divideBy(2),\r\n\t\t viewBounds = new Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)),\r\n\t\t offset = this._getBoundsOffset(viewBounds, bounds, zoom);\r\n\r\n\t\t// If offset is less than a pixel, ignore.\r\n\t\t// This prevents unstable projections from getting into\r\n\t\t// an infinite loop of tiny offsets.\r\n\t\tif (offset.round().equals([0, 0])) {\r\n\t\t\treturn center;\r\n\t\t}\r\n\r\n\t\treturn this.unproject(centerPoint.add(offset), zoom);\r\n\t},\r\n\r\n\t// adjust offset for view to get inside bounds\r\n\t_limitOffset: function (offset, bounds) {\r\n\t\tif (!bounds) { return offset; }\r\n\r\n\t\tvar viewBounds = this.getPixelBounds(),\r\n\t\t newBounds = new Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset));\r\n\r\n\t\treturn offset.add(this._getBoundsOffset(newBounds, bounds));\r\n\t},\r\n\r\n\t// returns offset needed for pxBounds to get inside maxBounds at a specified zoom\r\n\t_getBoundsOffset: function (pxBounds, maxBounds, zoom) {\r\n\t\tvar projectedMaxBounds = toBounds(\r\n\t\t this.project(maxBounds.getNorthEast(), zoom),\r\n\t\t this.project(maxBounds.getSouthWest(), zoom)\r\n\t\t ),\r\n\t\t minOffset = projectedMaxBounds.min.subtract(pxBounds.min),\r\n\t\t maxOffset = projectedMaxBounds.max.subtract(pxBounds.max),\r\n\r\n\t\t dx = this._rebound(minOffset.x, -maxOffset.x),\r\n\t\t dy = this._rebound(minOffset.y, -maxOffset.y);\r\n\r\n\t\treturn new Point(dx, dy);\r\n\t},\r\n\r\n\t_rebound: function (left, right) {\r\n\t\treturn left + right > 0 ?\r\n\t\t\tMath.round(left - right) / 2 :\r\n\t\t\tMath.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right));\r\n\t},\r\n\r\n\t_limitZoom: function (zoom) {\r\n\t\tvar min = this.getMinZoom(),\r\n\t\t max = this.getMaxZoom(),\r\n\t\t snap = Browser.any3d ? this.options.zoomSnap : 1;\r\n\t\tif (snap) {\r\n\t\t\tzoom = Math.round(zoom / snap) * snap;\r\n\t\t}\r\n\t\treturn Math.max(min, Math.min(max, zoom));\r\n\t},\r\n\r\n\t_onPanTransitionStep: function () {\r\n\t\tthis.fire('move');\r\n\t},\r\n\r\n\t_onPanTransitionEnd: function () {\r\n\t\tremoveClass(this._mapPane, 'leaflet-pan-anim');\r\n\t\tthis.fire('moveend');\r\n\t},\r\n\r\n\t_tryAnimatedPan: function (center, options) {\r\n\t\t// difference between the new and current centers in pixels\r\n\t\tvar offset = this._getCenterOffset(center)._trunc();\r\n\r\n\t\t// don't animate too far unless animate: true specified in options\r\n\t\tif ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n\t\tthis.panBy(offset, options);\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_createAnimProxy: function () {\r\n\r\n\t\tvar proxy = this._proxy = create$1('div', 'leaflet-proxy leaflet-zoom-animated');\r\n\t\tthis._panes.mapPane.appendChild(proxy);\r\n\r\n\t\tthis.on('zoomanim', function (e) {\r\n\t\t\tvar prop = TRANSFORM,\r\n\t\t\t transform = this._proxy.style[prop];\r\n\r\n\t\t\tsetTransform(this._proxy, this.project(e.center, e.zoom), this.getZoomScale(e.zoom, 1));\r\n\r\n\t\t\t// workaround for case when transform is the same and so transitionend event is not fired\r\n\t\t\tif (transform === this._proxy.style[prop] && this._animatingZoom) {\r\n\t\t\t\tthis._onZoomTransitionEnd();\r\n\t\t\t}\r\n\t\t}, this);\r\n\r\n\t\tthis.on('load moveend', this._animMoveEnd, this);\r\n\r\n\t\tthis._on('unload', this._destroyAnimProxy, this);\r\n\t},\r\n\r\n\t_destroyAnimProxy: function () {\r\n\t\tremove(this._proxy);\r\n\t\tthis.off('load moveend', this._animMoveEnd, this);\r\n\t\tdelete this._proxy;\r\n\t},\r\n\r\n\t_animMoveEnd: function () {\r\n\t\tvar c = this.getCenter(),\r\n\t\t z = this.getZoom();\r\n\t\tsetTransform(this._proxy, this.project(c, z), this.getZoomScale(z, 1));\r\n\t},\r\n\r\n\t_catchTransitionEnd: function (e) {\r\n\t\tif (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) {\r\n\t\t\tthis._onZoomTransitionEnd();\r\n\t\t}\r\n\t},\r\n\r\n\t_nothingToAnimate: function () {\r\n\t\treturn !this._container.getElementsByClassName('leaflet-zoom-animated').length;\r\n\t},\r\n\r\n\t_tryAnimatedZoom: function (center, zoom, options) {\r\n\r\n\t\tif (this._animatingZoom) { return true; }\r\n\r\n\t\toptions = options || {};\r\n\r\n\t\t// don't animate if disabled, not supported or zoom difference is too large\r\n\t\tif (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() ||\r\n\t\t Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; }\r\n\r\n\t\t// offset is the pixel coords of the zoom origin relative to the current center\r\n\t\tvar scale = this.getZoomScale(zoom),\r\n\t\t offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale);\r\n\r\n\t\t// don't animate if the zoom origin isn't within one screen from the current center, unless forced\r\n\t\tif (options.animate !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n\t\trequestAnimFrame(function () {\r\n\t\t\tthis\r\n\t\t\t ._moveStart(true, false)\r\n\t\t\t ._animateZoom(center, zoom, true);\r\n\t\t}, this);\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_animateZoom: function (center, zoom, startAnim, noUpdate) {\r\n\t\tif (!this._mapPane) { return; }\r\n\r\n\t\tif (startAnim) {\r\n\t\t\tthis._animatingZoom = true;\r\n\r\n\t\t\t// remember what center/zoom to set after animation\r\n\t\t\tthis._animateToCenter = center;\r\n\t\t\tthis._animateToZoom = zoom;\r\n\r\n\t\t\taddClass(this._mapPane, 'leaflet-zoom-anim');\r\n\t\t}\r\n\r\n\t\t// @section Other Events\r\n\t\t// @event zoomanim: ZoomAnimEvent\r\n\t\t// Fired at least once per zoom animation. For continuous zoom, like pinch zooming, fired once per frame during zoom.\r\n\t\tthis.fire('zoomanim', {\r\n\t\t\tcenter: center,\r\n\t\t\tzoom: zoom,\r\n\t\t\tnoUpdate: noUpdate\r\n\t\t});\r\n\r\n\t\tif (!this._tempFireZoomEvent) {\r\n\t\t\tthis._tempFireZoomEvent = this._zoom !== this._animateToZoom;\r\n\t\t}\r\n\r\n\t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n\t\t// Work around webkit not firing 'transitionend', see https://github.com/Leaflet/Leaflet/issues/3689, 2693\r\n\t\tsetTimeout(bind(this._onZoomTransitionEnd, this), 250);\r\n\t},\r\n\r\n\t_onZoomTransitionEnd: function () {\r\n\t\tif (!this._animatingZoom) { return; }\r\n\r\n\t\tif (this._mapPane) {\r\n\t\t\tremoveClass(this._mapPane, 'leaflet-zoom-anim');\r\n\t\t}\r\n\r\n\t\tthis._animatingZoom = false;\r\n\r\n\t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n\t\tif (this._tempFireZoomEvent) {\r\n\t\t\tthis.fire('zoom');\r\n\t\t}\r\n\t\tdelete this._tempFireZoomEvent;\r\n\r\n\t\tthis.fire('move');\r\n\r\n\t\tthis._moveEnd(true);\r\n\t}\r\n});\r\n\r\n// @section\r\n\r\n// @factory L.map(id: String, options?: Map options)\r\n// Instantiates a map object given the DOM ID of a `
` element\r\n// and optionally an object literal with `Map options`.\r\n//\r\n// @alternative\r\n// @factory L.map(el: HTMLElement, options?: Map options)\r\n// Instantiates a map object given an instance of a `
` HTML element\r\n// and optionally an object literal with `Map options`.\r\nfunction createMap(id, options) {\r\n\treturn new Map(id, options);\r\n}\n\n/*\r\n * @class Control\r\n * @aka L.Control\r\n * @inherits Class\r\n *\r\n * L.Control is a base class for implementing map controls. Handles positioning.\r\n * All other controls extend from this class.\r\n */\r\n\r\nvar Control = Class.extend({\r\n\t// @section\r\n\t// @aka Control Options\r\n\toptions: {\r\n\t\t// @option position: String = 'topright'\r\n\t\t// The position of the control (one of the map corners). Possible values are `'topleft'`,\r\n\t\t// `'topright'`, `'bottomleft'` or `'bottomright'`\r\n\t\tposition: 'topright'\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tsetOptions(this, options);\r\n\t},\r\n\r\n\t/* @section\r\n\t * Classes extending L.Control will inherit the following methods:\r\n\t *\r\n\t * @method getPosition: string\r\n\t * Returns the position of the control.\r\n\t */\r\n\tgetPosition: function () {\r\n\t\treturn this.options.position;\r\n\t},\r\n\r\n\t// @method setPosition(position: string): this\r\n\t// Sets the position of the control.\r\n\tsetPosition: function (position) {\r\n\t\tvar map = this._map;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.removeControl(this);\r\n\t\t}\r\n\r\n\t\tthis.options.position = position;\r\n\r\n\t\tif (map) {\r\n\t\t\tmap.addControl(this);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getContainer: HTMLElement\r\n\t// Returns the HTMLElement that contains the control.\r\n\tgetContainer: function () {\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\t// @method addTo(map: Map): this\r\n\t// Adds the control to the given map.\r\n\taddTo: function (map) {\r\n\t\tthis.remove();\r\n\t\tthis._map = map;\r\n\r\n\t\tvar container = this._container = this.onAdd(map),\r\n\t\t pos = this.getPosition(),\r\n\t\t corner = map._controlCorners[pos];\r\n\r\n\t\taddClass(container, 'leaflet-control');\r\n\r\n\t\tif (pos.indexOf('bottom') !== -1) {\r\n\t\t\tcorner.insertBefore(container, corner.firstChild);\r\n\t\t} else {\r\n\t\t\tcorner.appendChild(container);\r\n\t\t}\r\n\r\n\t\tthis._map.on('unload', this.remove, this);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method remove: this\r\n\t// Removes the control from the map it is currently active on.\r\n\tremove: function () {\r\n\t\tif (!this._map) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tremove(this._container);\r\n\r\n\t\tif (this.onRemove) {\r\n\t\t\tthis.onRemove(this._map);\r\n\t\t}\r\n\r\n\t\tthis._map.off('unload', this.remove, this);\r\n\t\tthis._map = null;\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_refocusOnMap: function (e) {\r\n\t\t// if map exists and event is not a keyboard event\r\n\t\tif (this._map && e && e.screenX > 0 && e.screenY > 0) {\r\n\t\t\tthis._map.getContainer().focus();\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar control = function (options) {\r\n\treturn new Control(options);\r\n};\r\n\r\n/* @section Extension methods\r\n * @uninheritable\r\n *\r\n * Every control should extend from `L.Control` and (re-)implement the following methods.\r\n *\r\n * @method onAdd(map: Map): HTMLElement\r\n * Should return the container DOM element for the control and add listeners on relevant map events. Called on [`control.addTo(map)`](#control-addTo).\r\n *\r\n * @method onRemove(map: Map)\r\n * Optional method. Should contain all clean up code that removes the listeners previously added in [`onAdd`](#control-onadd). Called on [`control.remove()`](#control-remove).\r\n */\r\n\r\n/* @namespace Map\r\n * @section Methods for Layers and Controls\r\n */\r\nMap.include({\r\n\t// @method addControl(control: Control): this\r\n\t// Adds the given control to the map\r\n\taddControl: function (control) {\r\n\t\tcontrol.addTo(this);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeControl(control: Control): this\r\n\t// Removes the given control from the map\r\n\tremoveControl: function (control) {\r\n\t\tcontrol.remove();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initControlPos: function () {\r\n\t\tvar corners = this._controlCorners = {},\r\n\t\t l = 'leaflet-',\r\n\t\t container = this._controlContainer =\r\n\t\t create$1('div', l + 'control-container', this._container);\r\n\r\n\t\tfunction createCorner(vSide, hSide) {\r\n\t\t\tvar className = l + vSide + ' ' + l + hSide;\r\n\r\n\t\t\tcorners[vSide + hSide] = create$1('div', className, container);\r\n\t\t}\r\n\r\n\t\tcreateCorner('top', 'left');\r\n\t\tcreateCorner('top', 'right');\r\n\t\tcreateCorner('bottom', 'left');\r\n\t\tcreateCorner('bottom', 'right');\r\n\t},\r\n\r\n\t_clearControlPos: function () {\r\n\t\tfor (var i in this._controlCorners) {\r\n\t\t\tremove(this._controlCorners[i]);\r\n\t\t}\r\n\t\tremove(this._controlContainer);\r\n\t\tdelete this._controlCorners;\r\n\t\tdelete this._controlContainer;\r\n\t}\r\n});\n\n/*\r\n * @class Control.Layers\r\n * @aka L.Control.Layers\r\n * @inherits Control\r\n *\r\n * The layers control gives users the ability to switch between different base layers and switch overlays on/off (check out the [detailed example](https://leafletjs.com/examples/layers-control/)). Extends `Control`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var baseLayers = {\r\n * \t\"Mapbox\": mapbox,\r\n * \t\"OpenStreetMap\": osm\r\n * };\r\n *\r\n * var overlays = {\r\n * \t\"Marker\": marker,\r\n * \t\"Roads\": roadsLayer\r\n * };\r\n *\r\n * L.control.layers(baseLayers, overlays).addTo(map);\r\n * ```\r\n *\r\n * The `baseLayers` and `overlays` parameters are object literals with layer names as keys and `Layer` objects as values:\r\n *\r\n * ```js\r\n * {\r\n * \"\": layer1,\r\n * \"\": layer2\r\n * }\r\n * ```\r\n *\r\n * The layer names can contain HTML, which allows you to add additional styling to the items:\r\n *\r\n * ```js\r\n * {\" My Layer\": myLayer}\r\n * ```\r\n */\r\n\r\nvar Layers = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Layers options\r\n\toptions: {\r\n\t\t// @option collapsed: Boolean = true\r\n\t\t// If `true`, the control will be collapsed into an icon and expanded on mouse hover, touch, or keyboard activation.\r\n\t\tcollapsed: true,\r\n\t\tposition: 'topright',\r\n\r\n\t\t// @option autoZIndex: Boolean = true\r\n\t\t// If `true`, the control will assign zIndexes in increasing order to all of its layers so that the order is preserved when switching them on/off.\r\n\t\tautoZIndex: true,\r\n\r\n\t\t// @option hideSingleBase: Boolean = false\r\n\t\t// If `true`, the base layers in the control will be hidden when there is only one.\r\n\t\thideSingleBase: false,\r\n\r\n\t\t// @option sortLayers: Boolean = false\r\n\t\t// Whether to sort the layers. When `false`, layers will keep the order\r\n\t\t// in which they were added to the control.\r\n\t\tsortLayers: false,\r\n\r\n\t\t// @option sortFunction: Function = *\r\n\t\t// A [compare function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)\r\n\t\t// that will be used for sorting the layers, when `sortLayers` is `true`.\r\n\t\t// The function receives both the `L.Layer` instances and their names, as in\r\n\t\t// `sortFunction(layerA, layerB, nameA, nameB)`.\r\n\t\t// By default, it sorts layers alphabetically by their name.\r\n\t\tsortFunction: function (layerA, layerB, nameA, nameB) {\r\n\t\t\treturn nameA < nameB ? -1 : (nameB < nameA ? 1 : 0);\r\n\t\t}\r\n\t},\r\n\r\n\tinitialize: function (baseLayers, overlays, options) {\r\n\t\tsetOptions(this, options);\r\n\r\n\t\tthis._layerControlInputs = [];\r\n\t\tthis._layers = [];\r\n\t\tthis._lastZIndex = 0;\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tfor (var i in baseLayers) {\r\n\t\t\tthis._addLayer(baseLayers[i], i);\r\n\t\t}\r\n\r\n\t\tfor (i in overlays) {\r\n\t\t\tthis._addLayer(overlays[i], i, true);\r\n\t\t}\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._initLayout();\r\n\t\tthis._update();\r\n\r\n\t\tthis._map = map;\r\n\t\tmap.on('zoomend', this._checkDisabledLayers, this);\r\n\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\t\t\tthis._layers[i].layer.on('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\taddTo: function (map) {\r\n\t\tControl.prototype.addTo.call(this, map);\r\n\t\t// Trigger expand after Layers Control has been inserted into DOM so that is now has an actual height.\r\n\t\treturn this._expandIfNotCollapsed();\r\n\t},\r\n\r\n\tonRemove: function () {\r\n\t\tthis._map.off('zoomend', this._checkDisabledLayers, this);\r\n\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\t\t\tthis._layers[i].layer.off('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addBaseLayer(layer: Layer, name: String): this\r\n\t// Adds a base layer (radio button entry) with the given name to the control.\r\n\taddBaseLayer: function (layer, name) {\r\n\t\tthis._addLayer(layer, name);\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method addOverlay(layer: Layer, name: String): this\r\n\t// Adds an overlay (checkbox entry) with the given name to the control.\r\n\taddOverlay: function (layer, name) {\r\n\t\tthis._addLayer(layer, name, true);\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method removeLayer(layer: Layer): this\r\n\t// Remove the given layer from the control.\r\n\tremoveLayer: function (layer) {\r\n\t\tlayer.off('add remove', this._onLayerChange, this);\r\n\r\n\t\tvar obj = this._getLayer(stamp(layer));\r\n\t\tif (obj) {\r\n\t\t\tthis._layers.splice(this._layers.indexOf(obj), 1);\r\n\t\t}\r\n\t\treturn (this._map) ? this._update() : this;\r\n\t},\r\n\r\n\t// @method expand(): this\r\n\t// Expand the control container if collapsed.\r\n\texpand: function () {\r\n\t\taddClass(this._container, 'leaflet-control-layers-expanded');\r\n\t\tthis._section.style.height = null;\r\n\t\tvar acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);\r\n\t\tif (acceptableHeight < this._section.clientHeight) {\r\n\t\t\taddClass(this._section, 'leaflet-control-layers-scrollbar');\r\n\t\t\tthis._section.style.height = acceptableHeight + 'px';\r\n\t\t} else {\r\n\t\t\tremoveClass(this._section, 'leaflet-control-layers-scrollbar');\r\n\t\t}\r\n\t\tthis._checkDisabledLayers();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method collapse(): this\r\n\t// Collapse the control container if expanded.\r\n\tcollapse: function () {\r\n\t\tremoveClass(this._container, 'leaflet-control-layers-expanded');\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initLayout: function () {\r\n\t\tvar className = 'leaflet-control-layers',\r\n\t\t container = this._container = create$1('div', className),\r\n\t\t collapsed = this.options.collapsed;\r\n\r\n\t\t// makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\r\n\t\tcontainer.setAttribute('aria-haspopup', true);\r\n\r\n\t\tdisableClickPropagation(container);\r\n\t\tdisableScrollPropagation(container);\r\n\r\n\t\tvar section = this._section = create$1('section', className + '-list');\r\n\r\n\t\tif (collapsed) {\r\n\t\t\tthis._map.on('click', this.collapse, this);\r\n\r\n\t\t\ton(container, {\r\n\t\t\t\tmouseenter: function () {\r\n\t\t\t\t\ton(section, 'click', preventDefault);\r\n\t\t\t\t\tthis.expand();\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\toff(section, 'click', preventDefault);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tmouseleave: this.collapse\r\n\t\t\t}, this);\r\n\t\t}\r\n\r\n\t\tvar link = this._layersLink = create$1('a', className + '-toggle', container);\r\n\t\tlink.href = '#';\r\n\t\tlink.title = 'Layers';\r\n\t\tlink.setAttribute('role', 'button');\r\n\r\n\t\ton(link, 'click', preventDefault); // prevent link function\r\n\t\ton(link, 'focus', this.expand, this);\r\n\r\n\t\tif (!collapsed) {\r\n\t\t\tthis.expand();\r\n\t\t}\r\n\r\n\t\tthis._baseLayersList = create$1('div', className + '-base', section);\r\n\t\tthis._separator = create$1('div', className + '-separator', section);\r\n\t\tthis._overlaysList = create$1('div', className + '-overlays', section);\r\n\r\n\t\tcontainer.appendChild(section);\r\n\t},\r\n\r\n\t_getLayer: function (id) {\r\n\t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\r\n\t\t\tif (this._layers[i] && stamp(this._layers[i].layer) === id) {\r\n\t\t\t\treturn this._layers[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_addLayer: function (layer, name, overlay) {\r\n\t\tif (this._map) {\r\n\t\t\tlayer.on('add remove', this._onLayerChange, this);\r\n\t\t}\r\n\r\n\t\tthis._layers.push({\r\n\t\t\tlayer: layer,\r\n\t\t\tname: name,\r\n\t\t\toverlay: overlay\r\n\t\t});\r\n\r\n\t\tif (this.options.sortLayers) {\r\n\t\t\tthis._layers.sort(bind(function (a, b) {\r\n\t\t\t\treturn this.options.sortFunction(a.layer, b.layer, a.name, b.name);\r\n\t\t\t}, this));\r\n\t\t}\r\n\r\n\t\tif (this.options.autoZIndex && layer.setZIndex) {\r\n\t\t\tthis._lastZIndex++;\r\n\t\t\tlayer.setZIndex(this._lastZIndex);\r\n\t\t}\r\n\r\n\t\tthis._expandIfNotCollapsed();\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._container) { return this; }\r\n\r\n\t\tempty(this._baseLayersList);\r\n\t\tempty(this._overlaysList);\r\n\r\n\t\tthis._layerControlInputs = [];\r\n\t\tvar baseLayersPresent, overlaysPresent, i, obj, baseLayersCount = 0;\r\n\r\n\t\tfor (i = 0; i < this._layers.length; i++) {\r\n\t\t\tobj = this._layers[i];\r\n\t\t\tthis._addItem(obj);\r\n\t\t\toverlaysPresent = overlaysPresent || obj.overlay;\r\n\t\t\tbaseLayersPresent = baseLayersPresent || !obj.overlay;\r\n\t\t\tbaseLayersCount += !obj.overlay ? 1 : 0;\r\n\t\t}\r\n\r\n\t\t// Hide base layers section if there's only one layer.\r\n\t\tif (this.options.hideSingleBase) {\r\n\t\t\tbaseLayersPresent = baseLayersPresent && baseLayersCount > 1;\r\n\t\t\tthis._baseLayersList.style.display = baseLayersPresent ? '' : 'none';\r\n\t\t}\r\n\r\n\t\tthis._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none';\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_onLayerChange: function (e) {\r\n\t\tif (!this._handlingClick) {\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\tvar obj = this._getLayer(stamp(e.target));\r\n\r\n\t\t// @namespace Map\r\n\t\t// @section Layer events\r\n\t\t// @event baselayerchange: LayersControlEvent\r\n\t\t// Fired when the base layer is changed through the [layers control](#control-layers).\r\n\t\t// @event overlayadd: LayersControlEvent\r\n\t\t// Fired when an overlay is selected through the [layers control](#control-layers).\r\n\t\t// @event overlayremove: LayersControlEvent\r\n\t\t// Fired when an overlay is deselected through the [layers control](#control-layers).\r\n\t\t// @namespace Control.Layers\r\n\t\tvar type = obj.overlay ?\r\n\t\t\t(e.type === 'add' ? 'overlayadd' : 'overlayremove') :\r\n\t\t\t(e.type === 'add' ? 'baselayerchange' : null);\r\n\r\n\t\tif (type) {\r\n\t\t\tthis._map.fire(type, obj);\r\n\t\t}\r\n\t},\r\n\r\n\t// IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see https://stackoverflow.com/a/119079)\r\n\t_createRadioElement: function (name, checked) {\r\n\r\n\t\tvar radioHtml = '';\r\n\r\n\t\tvar radioFragment = document.createElement('div');\r\n\t\tradioFragment.innerHTML = radioHtml;\r\n\r\n\t\treturn radioFragment.firstChild;\r\n\t},\r\n\r\n\t_addItem: function (obj) {\r\n\t\tvar label = document.createElement('label'),\r\n\t\t checked = this._map.hasLayer(obj.layer),\r\n\t\t input;\r\n\r\n\t\tif (obj.overlay) {\r\n\t\t\tinput = document.createElement('input');\r\n\t\t\tinput.type = 'checkbox';\r\n\t\t\tinput.className = 'leaflet-control-layers-selector';\r\n\t\t\tinput.defaultChecked = checked;\r\n\t\t} else {\r\n\t\t\tinput = this._createRadioElement('leaflet-base-layers_' + stamp(this), checked);\r\n\t\t}\r\n\r\n\t\tthis._layerControlInputs.push(input);\r\n\t\tinput.layerId = stamp(obj.layer);\r\n\r\n\t\ton(input, 'click', this._onInputClick, this);\r\n\r\n\t\tvar name = document.createElement('span');\r\n\t\tname.innerHTML = ' ' + obj.name;\r\n\r\n\t\t// Helps from preventing layer control flicker when checkboxes are disabled\r\n\t\t// https://github.com/Leaflet/Leaflet/issues/2771\r\n\t\tvar holder = document.createElement('span');\r\n\r\n\t\tlabel.appendChild(holder);\r\n\t\tholder.appendChild(input);\r\n\t\tholder.appendChild(name);\r\n\r\n\t\tvar container = obj.overlay ? this._overlaysList : this._baseLayersList;\r\n\t\tcontainer.appendChild(label);\r\n\r\n\t\tthis._checkDisabledLayers();\r\n\t\treturn label;\r\n\t},\r\n\r\n\t_onInputClick: function () {\r\n\t\tvar inputs = this._layerControlInputs,\r\n\t\t input, layer;\r\n\t\tvar addedLayers = [],\r\n\t\t removedLayers = [];\r\n\r\n\t\tthis._handlingClick = true;\r\n\r\n\t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n\t\t\tinput = inputs[i];\r\n\t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\r\n\t\t\tif (input.checked) {\r\n\t\t\t\taddedLayers.push(layer);\r\n\t\t\t} else if (!input.checked) {\r\n\t\t\t\tremovedLayers.push(layer);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Bugfix issue 2318: Should remove all old layers before readding new ones\r\n\t\tfor (i = 0; i < removedLayers.length; i++) {\r\n\t\t\tif (this._map.hasLayer(removedLayers[i])) {\r\n\t\t\t\tthis._map.removeLayer(removedLayers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i = 0; i < addedLayers.length; i++) {\r\n\t\t\tif (!this._map.hasLayer(addedLayers[i])) {\r\n\t\t\t\tthis._map.addLayer(addedLayers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._handlingClick = false;\r\n\r\n\t\tthis._refocusOnMap();\r\n\t},\r\n\r\n\t_checkDisabledLayers: function () {\r\n\t\tvar inputs = this._layerControlInputs,\r\n\t\t input,\r\n\t\t layer,\r\n\t\t zoom = this._map.getZoom();\r\n\r\n\t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n\t\t\tinput = inputs[i];\r\n\t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\t\t\tinput.disabled = (layer.options.minZoom !== undefined && zoom < layer.options.minZoom) ||\r\n\t\t\t (layer.options.maxZoom !== undefined && zoom > layer.options.maxZoom);\r\n\r\n\t\t}\r\n\t},\r\n\r\n\t_expandIfNotCollapsed: function () {\r\n\t\tif (this._map && !this.options.collapsed) {\r\n\t\t\tthis.expand();\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n});\r\n\r\n\r\n// @factory L.control.layers(baselayers?: Object, overlays?: Object, options?: Control.Layers options)\r\n// Creates a layers control with the given layers. Base layers will be switched with radio buttons, while overlays will be switched with checkboxes. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation.\r\nvar layers = function (baseLayers, overlays, options) {\r\n\treturn new Layers(baseLayers, overlays, options);\r\n};\n\n/*\r\n * @class Control.Zoom\r\n * @aka L.Control.Zoom\r\n * @inherits Control\r\n *\r\n * A basic zoom control with two buttons (zoom in and zoom out). It is put on the map by default unless you set its [`zoomControl` option](#map-zoomcontrol) to `false`. Extends `Control`.\r\n */\r\n\r\nvar Zoom = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Zoom options\r\n\toptions: {\r\n\t\tposition: 'topleft',\r\n\r\n\t\t// @option zoomInText: String = '+'\r\n\t\t// The text set on the 'zoom in' button.\r\n\t\tzoomInText: '+',\r\n\r\n\t\t// @option zoomInTitle: String = 'Zoom in'\r\n\t\t// The title set on the 'zoom in' button.\r\n\t\tzoomInTitle: 'Zoom in',\r\n\r\n\t\t// @option zoomOutText: String = ''\r\n\t\t// The text set on the 'zoom out' button.\r\n\t\tzoomOutText: '',\r\n\r\n\t\t// @option zoomOutTitle: String = 'Zoom out'\r\n\t\t// The title set on the 'zoom out' button.\r\n\t\tzoomOutTitle: 'Zoom out'\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tvar zoomName = 'leaflet-control-zoom',\r\n\t\t container = create$1('div', zoomName + ' leaflet-bar'),\r\n\t\t options = this.options;\r\n\r\n\t\tthis._zoomInButton = this._createButton(options.zoomInText, options.zoomInTitle,\r\n\t\t zoomName + '-in', container, this._zoomIn);\r\n\t\tthis._zoomOutButton = this._createButton(options.zoomOutText, options.zoomOutTitle,\r\n\t\t zoomName + '-out', container, this._zoomOut);\r\n\r\n\t\tthis._updateDisabled();\r\n\t\tmap.on('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\r\n\t\treturn container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap.off('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\t},\r\n\r\n\tdisable: function () {\r\n\t\tthis._disabled = true;\r\n\t\tthis._updateDisabled();\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function () {\r\n\t\tthis._disabled = false;\r\n\t\tthis._updateDisabled();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_zoomIn: function (e) {\r\n\t\tif (!this._disabled && this._map._zoom < this._map.getMaxZoom()) {\r\n\t\t\tthis._map.zoomIn(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n\t\t}\r\n\t},\r\n\r\n\t_zoomOut: function (e) {\r\n\t\tif (!this._disabled && this._map._zoom > this._map.getMinZoom()) {\r\n\t\t\tthis._map.zoomOut(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n\t\t}\r\n\t},\r\n\r\n\t_createButton: function (html, title, className, container, fn) {\r\n\t\tvar link = create$1('a', className, container);\r\n\t\tlink.innerHTML = html;\r\n\t\tlink.href = '#';\r\n\t\tlink.title = title;\r\n\r\n\t\t/*\r\n\t\t * Will force screen readers like VoiceOver to read this as \"Zoom in - button\"\r\n\t\t */\r\n\t\tlink.setAttribute('role', 'button');\r\n\t\tlink.setAttribute('aria-label', title);\r\n\r\n\t\tdisableClickPropagation(link);\r\n\t\ton(link, 'click', stop);\r\n\t\ton(link, 'click', fn, this);\r\n\t\ton(link, 'click', this._refocusOnMap, this);\r\n\r\n\t\treturn link;\r\n\t},\r\n\r\n\t_updateDisabled: function () {\r\n\t\tvar map = this._map,\r\n\t\t className = 'leaflet-disabled';\r\n\r\n\t\tremoveClass(this._zoomInButton, className);\r\n\t\tremoveClass(this._zoomOutButton, className);\r\n\t\tthis._zoomInButton.setAttribute('aria-disabled', 'false');\r\n\t\tthis._zoomOutButton.setAttribute('aria-disabled', 'false');\r\n\r\n\t\tif (this._disabled || map._zoom === map.getMinZoom()) {\r\n\t\t\taddClass(this._zoomOutButton, className);\r\n\t\t\tthis._zoomOutButton.setAttribute('aria-disabled', 'true');\r\n\t\t}\r\n\t\tif (this._disabled || map._zoom === map.getMaxZoom()) {\r\n\t\t\taddClass(this._zoomInButton, className);\r\n\t\t\tthis._zoomInButton.setAttribute('aria-disabled', 'true');\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// @namespace Map\r\n// @section Control options\r\n// @option zoomControl: Boolean = true\r\n// Whether a [zoom control](#control-zoom) is added to the map by default.\r\nMap.mergeOptions({\r\n\tzoomControl: true\r\n});\r\n\r\nMap.addInitHook(function () {\r\n\tif (this.options.zoomControl) {\r\n\t\t// @section Controls\r\n\t\t// @property zoomControl: Control.Zoom\r\n\t\t// The default zoom control (only available if the\r\n\t\t// [`zoomControl` option](#map-zoomcontrol) was `true` when creating the map).\r\n\t\tthis.zoomControl = new Zoom();\r\n\t\tthis.addControl(this.zoomControl);\r\n\t}\r\n});\r\n\r\n// @namespace Control.Zoom\r\n// @factory L.control.zoom(options: Control.Zoom options)\r\n// Creates a zoom control\r\nvar zoom = function (options) {\r\n\treturn new Zoom(options);\r\n};\n\n/*\n * @class Control.Scale\n * @aka L.Control.Scale\n * @inherits Control\n *\n * A simple scale control that shows the scale of the current center of screen in metric (m/km) and imperial (mi/ft) systems. Extends `Control`.\n *\n * @example\n *\n * ```js\n * L.control.scale().addTo(map);\n * ```\n */\n\nvar Scale = Control.extend({\n\t// @section\n\t// @aka Control.Scale options\n\toptions: {\n\t\tposition: 'bottomleft',\n\n\t\t// @option maxWidth: Number = 100\n\t\t// Maximum width of the control in pixels. The width is set dynamically to show round values (e.g. 100, 200, 500).\n\t\tmaxWidth: 100,\n\n\t\t// @option metric: Boolean = True\n\t\t// Whether to show the metric scale line (m/km).\n\t\tmetric: true,\n\n\t\t// @option imperial: Boolean = True\n\t\t// Whether to show the imperial scale line (mi/ft).\n\t\timperial: true\n\n\t\t// @option updateWhenIdle: Boolean = false\n\t\t// If `true`, the control is updated on [`moveend`](#map-moveend), otherwise it's always up-to-date (updated on [`move`](#map-move)).\n\t},\n\n\tonAdd: function (map) {\n\t\tvar className = 'leaflet-control-scale',\n\t\t container = create$1('div', className),\n\t\t options = this.options;\n\n\t\tthis._addScales(options, className + '-line', container);\n\n\t\tmap.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t\tmap.whenReady(this._update, this);\n\n\t\treturn container;\n\t},\n\n\tonRemove: function (map) {\n\t\tmap.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n\t},\n\n\t_addScales: function (options, className, container) {\n\t\tif (options.metric) {\n\t\t\tthis._mScale = create$1('div', className, container);\n\t\t}\n\t\tif (options.imperial) {\n\t\t\tthis._iScale = create$1('div', className, container);\n\t\t}\n\t},\n\n\t_update: function () {\n\t\tvar map = this._map,\n\t\t y = map.getSize().y / 2;\n\n\t\tvar maxMeters = map.distance(\n\t\t\tmap.containerPointToLatLng([0, y]),\n\t\t\tmap.containerPointToLatLng([this.options.maxWidth, y]));\n\n\t\tthis._updateScales(maxMeters);\n\t},\n\n\t_updateScales: function (maxMeters) {\n\t\tif (this.options.metric && maxMeters) {\n\t\t\tthis._updateMetric(maxMeters);\n\t\t}\n\t\tif (this.options.imperial && maxMeters) {\n\t\t\tthis._updateImperial(maxMeters);\n\t\t}\n\t},\n\n\t_updateMetric: function (maxMeters) {\n\t\tvar meters = this._getRoundNum(maxMeters),\n\t\t label = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km';\n\n\t\tthis._updateScale(this._mScale, label, meters / maxMeters);\n\t},\n\n\t_updateImperial: function (maxMeters) {\n\t\tvar maxFeet = maxMeters * 3.2808399,\n\t\t maxMiles, miles, feet;\n\n\t\tif (maxFeet > 5280) {\n\t\t\tmaxMiles = maxFeet / 5280;\n\t\t\tmiles = this._getRoundNum(maxMiles);\n\t\t\tthis._updateScale(this._iScale, miles + ' mi', miles / maxMiles);\n\n\t\t} else {\n\t\t\tfeet = this._getRoundNum(maxFeet);\n\t\t\tthis._updateScale(this._iScale, feet + ' ft', feet / maxFeet);\n\t\t}\n\t},\n\n\t_updateScale: function (scale, text, ratio) {\n\t\tscale.style.width = Math.round(this.options.maxWidth * ratio) + 'px';\n\t\tscale.innerHTML = text;\n\t},\n\n\t_getRoundNum: function (num) {\n\t\tvar pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),\n\t\t d = num / pow10;\n\n\t\td = d >= 10 ? 10 :\n\t\t d >= 5 ? 5 :\n\t\t d >= 3 ? 3 :\n\t\t d >= 2 ? 2 : 1;\n\n\t\treturn pow10 * d;\n\t}\n});\n\n\n// @factory L.control.scale(options?: Control.Scale options)\n// Creates an scale control with the given options.\nvar scale = function (options) {\n\treturn new Scale(options);\n};\n\nvar ukrainianFlag = '';\r\n\r\n\r\n/*\r\n * @class Control.Attribution\r\n * @aka L.Control.Attribution\r\n * @inherits Control\r\n *\r\n * The attribution control allows you to display attribution data in a small text box on a map. It is put on the map by default unless you set its [`attributionControl` option](#map-attributioncontrol) to `false`, and it fetches attribution texts from layers with the [`getAttribution` method](#layer-getattribution) automatically. Extends Control.\r\n */\r\n\r\nvar Attribution = Control.extend({\r\n\t// @section\r\n\t// @aka Control.Attribution options\r\n\toptions: {\r\n\t\tposition: 'bottomright',\r\n\r\n\t\t// @option prefix: String|false = 'Leaflet'\r\n\t\t// The HTML text shown before the attributions. Pass `false` to disable.\r\n\t\tprefix: '' + (Browser.inlineSvg ? ukrainianFlag + ' ' : '') + 'Leaflet'\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tsetOptions(this, options);\r\n\r\n\t\tthis._attributions = {};\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tmap.attributionControl = this;\r\n\t\tthis._container = create$1('div', 'leaflet-control-attribution');\r\n\t\tdisableClickPropagation(this._container);\r\n\r\n\t\t// TODO ugly, refactor\r\n\t\tfor (var i in map._layers) {\r\n\t\t\tif (map._layers[i].getAttribution) {\r\n\t\t\t\tthis.addAttribution(map._layers[i].getAttribution());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._update();\r\n\r\n\t\tmap.on('layeradd', this._addAttribution, this);\r\n\r\n\t\treturn this._container;\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tmap.off('layeradd', this._addAttribution, this);\r\n\t},\r\n\r\n\t_addAttribution: function (ev) {\r\n\t\tif (ev.layer.getAttribution) {\r\n\t\t\tthis.addAttribution(ev.layer.getAttribution());\r\n\t\t\tev.layer.once('remove', function () {\r\n\t\t\t\tthis.removeAttribution(ev.layer.getAttribution());\r\n\t\t\t}, this);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method setPrefix(prefix: String|false): this\r\n\t// The HTML text shown before the attributions. Pass `false` to disable.\r\n\tsetPrefix: function (prefix) {\r\n\t\tthis.options.prefix = prefix;\r\n\t\tthis._update();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method addAttribution(text: String): this\r\n\t// Adds an attribution text (e.g. `'Vector data © Mapbox'`).\r\n\taddAttribution: function (text) {\r\n\t\tif (!text) { return this; }\r\n\r\n\t\tif (!this._attributions[text]) {\r\n\t\t\tthis._attributions[text] = 0;\r\n\t\t}\r\n\t\tthis._attributions[text]++;\r\n\r\n\t\tthis._update();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeAttribution(text: String): this\r\n\t// Removes an attribution text.\r\n\tremoveAttribution: function (text) {\r\n\t\tif (!text) { return this; }\r\n\r\n\t\tif (this._attributions[text]) {\r\n\t\t\tthis._attributions[text]--;\r\n\t\t\tthis._update();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_update: function () {\r\n\t\tif (!this._map) { return; }\r\n\r\n\t\tvar attribs = [];\r\n\r\n\t\tfor (var i in this._attributions) {\r\n\t\t\tif (this._attributions[i]) {\r\n\t\t\t\tattribs.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar prefixAndAttribs = [];\r\n\r\n\t\tif (this.options.prefix) {\r\n\t\t\tprefixAndAttribs.push(this.options.prefix);\r\n\t\t}\r\n\t\tif (attribs.length) {\r\n\t\t\tprefixAndAttribs.push(attribs.join(', '));\r\n\t\t}\r\n\r\n\t\tthis._container.innerHTML = prefixAndAttribs.join(' | ');\r\n\t}\r\n});\r\n\r\n// @namespace Map\r\n// @section Control options\r\n// @option attributionControl: Boolean = true\r\n// Whether a [attribution control](#control-attribution) is added to the map by default.\r\nMap.mergeOptions({\r\n\tattributionControl: true\r\n});\r\n\r\nMap.addInitHook(function () {\r\n\tif (this.options.attributionControl) {\r\n\t\tnew Attribution().addTo(this);\r\n\t}\r\n});\r\n\r\n// @namespace Control.Attribution\r\n// @factory L.control.attribution(options: Control.Attribution options)\r\n// Creates an attribution control.\r\nvar attribution = function (options) {\r\n\treturn new Attribution(options);\r\n};\n\nControl.Layers = Layers;\nControl.Zoom = Zoom;\nControl.Scale = Scale;\nControl.Attribution = Attribution;\n\ncontrol.layers = layers;\ncontrol.zoom = zoom;\ncontrol.scale = scale;\ncontrol.attribution = attribution;\n\n/*\n\tL.Handler is a base class for handler classes that are used internally to inject\n\tinteraction features like dragging to classes like Map and Marker.\n*/\n\n// @class Handler\n// @aka L.Handler\n// Abstract class for map interaction handlers\n\nvar Handler = Class.extend({\n\tinitialize: function (map) {\n\t\tthis._map = map;\n\t},\n\n\t// @method enable(): this\n\t// Enables the handler\n\tenable: function () {\n\t\tif (this._enabled) { return this; }\n\n\t\tthis._enabled = true;\n\t\tthis.addHooks();\n\t\treturn this;\n\t},\n\n\t// @method disable(): this\n\t// Disables the handler\n\tdisable: function () {\n\t\tif (!this._enabled) { return this; }\n\n\t\tthis._enabled = false;\n\t\tthis.removeHooks();\n\t\treturn this;\n\t},\n\n\t// @method enabled(): Boolean\n\t// Returns `true` if the handler is enabled\n\tenabled: function () {\n\t\treturn !!this._enabled;\n\t}\n\n\t// @section Extension methods\n\t// Classes inheriting from `Handler` must implement the two following methods:\n\t// @method addHooks()\n\t// Called when the handler is enabled, should add event hooks.\n\t// @method removeHooks()\n\t// Called when the handler is disabled, should remove the event hooks added previously.\n});\n\n// @section There is static function which can be called without instantiating L.Handler:\n// @function addTo(map: Map, name: String): this\n// Adds a new Handler to the given map with the given name.\nHandler.addTo = function (map, name) {\n\tmap.addHandler(name, this);\n\treturn this;\n};\n\nvar Mixin = {Events: Events};\n\n/*\r\n * @class Draggable\r\n * @aka L.Draggable\r\n * @inherits Evented\r\n *\r\n * A class for making DOM elements draggable (including touch support).\r\n * Used internally for map and marker dragging. Only works for elements\r\n * that were positioned with [`L.DomUtil.setPosition`](#domutil-setposition).\r\n *\r\n * @example\r\n * ```js\r\n * var draggable = new L.Draggable(elementToDrag);\r\n * draggable.enable();\r\n * ```\r\n */\r\n\r\nvar START = Browser.touch ? 'touchstart mousedown' : 'mousedown';\r\n\r\nvar Draggable = Evented.extend({\r\n\r\n\toptions: {\r\n\t\t// @section\r\n\t\t// @aka Draggable options\r\n\t\t// @option clickTolerance: Number = 3\r\n\t\t// The max number of pixels a user can shift the mouse pointer during a click\r\n\t\t// for it to be considered a valid click (as opposed to a mouse drag).\r\n\t\tclickTolerance: 3\r\n\t},\r\n\r\n\t// @constructor L.Draggable(el: HTMLElement, dragHandle?: HTMLElement, preventOutline?: Boolean, options?: Draggable options)\r\n\t// Creates a `Draggable` object for moving `el` when you start dragging the `dragHandle` element (equals `el` itself by default).\r\n\tinitialize: function (element, dragStartTarget, preventOutline, options) {\r\n\t\tsetOptions(this, options);\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._dragStartTarget = dragStartTarget || element;\r\n\t\tthis._preventOutline = preventOutline;\r\n\t},\r\n\r\n\t// @method enable()\r\n\t// Enables the dragging ability\r\n\tenable: function () {\r\n\t\tif (this._enabled) { return; }\r\n\r\n\t\ton(this._dragStartTarget, START, this._onDown, this);\r\n\r\n\t\tthis._enabled = true;\r\n\t},\r\n\r\n\t// @method disable()\r\n\t// Disables the dragging ability\r\n\tdisable: function () {\r\n\t\tif (!this._enabled) { return; }\r\n\r\n\t\t// If we're currently dragging this draggable,\r\n\t\t// disabling it counts as first ending the drag.\r\n\t\tif (Draggable._dragging === this) {\r\n\t\t\tthis.finishDrag(true);\r\n\t\t}\r\n\r\n\t\toff(this._dragStartTarget, START, this._onDown, this);\r\n\r\n\t\tthis._enabled = false;\r\n\t\tthis._moved = false;\r\n\t},\r\n\r\n\t_onDown: function (e) {\r\n\t\t// Ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (!this._enabled) { return; }\r\n\r\n\t\tthis._moved = false;\r\n\r\n\t\tif (hasClass(this._element, 'leaflet-zoom-anim')) { return; }\r\n\r\n\t\tif (e.touches && e.touches.length !== 1) {\r\n\t\t\t// Finish dragging to avoid conflict with touchZoom\r\n\t\t\tif (Draggable._dragging === this) {\r\n\t\t\t\tthis.finishDrag();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (Draggable._dragging || e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; }\r\n\t\tDraggable._dragging = this; // Prevent dragging multiple objects at once.\r\n\r\n\t\tif (this._preventOutline) {\r\n\t\t\tpreventOutline(this._element);\r\n\t\t}\r\n\r\n\t\tdisableImageDrag();\r\n\t\tdisableTextSelection();\r\n\r\n\t\tif (this._moving) { return; }\r\n\r\n\t\t// @event down: Event\r\n\t\t// Fired when a drag is about to start.\r\n\t\tthis.fire('down');\r\n\r\n\t\tvar first = e.touches ? e.touches[0] : e,\r\n\t\t sizedParent = getSizedParentNode(this._element);\r\n\r\n\t\tthis._startPoint = new Point(first.clientX, first.clientY);\r\n\t\tthis._startPos = getPosition(this._element);\r\n\r\n\t\t// Cache the scale, so that we can continuously compensate for it during drag (_onMove).\r\n\t\tthis._parentScale = getScale(sizedParent);\r\n\r\n\t\tvar mouseevent = e.type === 'mousedown';\r\n\t\ton(document, mouseevent ? 'mousemove' : 'touchmove', this._onMove, this);\r\n\t\ton(document, mouseevent ? 'mouseup' : 'touchend touchcancel', this._onUp, this);\r\n\t},\r\n\r\n\t_onMove: function (e) {\r\n\t\t// Ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (!this._enabled) { return; }\r\n\r\n\t\tif (e.touches && e.touches.length > 1) {\r\n\t\t\tthis._moved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar first = (e.touches && e.touches.length === 1 ? e.touches[0] : e),\r\n\t\t offset = new Point(first.clientX, first.clientY)._subtract(this._startPoint);\r\n\r\n\t\tif (!offset.x && !offset.y) { return; }\r\n\t\tif (Math.abs(offset.x) + Math.abs(offset.y) < this.options.clickTolerance) { return; }\r\n\r\n\t\t// We assume that the parent container's position, border and scale do not change for the duration of the drag.\r\n\t\t// Therefore there is no need to account for the position and border (they are eliminated by the subtraction)\r\n\t\t// and we can use the cached value for the scale.\r\n\t\toffset.x /= this._parentScale.x;\r\n\t\toffset.y /= this._parentScale.y;\r\n\r\n\t\tpreventDefault(e);\r\n\r\n\t\tif (!this._moved) {\r\n\t\t\t// @event dragstart: Event\r\n\t\t\t// Fired when a drag starts\r\n\t\t\tthis.fire('dragstart');\r\n\r\n\t\t\tthis._moved = true;\r\n\r\n\t\t\taddClass(document.body, 'leaflet-dragging');\r\n\r\n\t\t\tthis._lastTarget = e.target || e.srcElement;\r\n\t\t\t// IE and Edge do not give the element, so fetch it\r\n\t\t\t// if necessary\r\n\t\t\tif (window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance) {\r\n\t\t\t\tthis._lastTarget = this._lastTarget.correspondingUseElement;\r\n\t\t\t}\r\n\t\t\taddClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t}\r\n\r\n\t\tthis._newPos = this._startPos.add(offset);\r\n\t\tthis._moving = true;\r\n\r\n\t\tthis._lastEvent = e;\r\n\t\tthis._updatePosition();\r\n\t},\r\n\r\n\t_updatePosition: function () {\r\n\t\tvar e = {originalEvent: this._lastEvent};\r\n\r\n\t\t// @event predrag: Event\r\n\t\t// Fired continuously during dragging *before* each corresponding\r\n\t\t// update of the element's position.\r\n\t\tthis.fire('predrag', e);\r\n\t\tsetPosition(this._element, this._newPos);\r\n\r\n\t\t// @event drag: Event\r\n\t\t// Fired continuously during dragging.\r\n\t\tthis.fire('drag', e);\r\n\t},\r\n\r\n\t_onUp: function () {\r\n\t\t// Ignore the event if disabled; this happens in IE11\r\n\t\t// under some circumstances, see #3666.\r\n\t\tif (!this._enabled) { return; }\r\n\t\tthis.finishDrag();\r\n\t},\r\n\r\n\tfinishDrag: function (noInertia) {\r\n\t\tremoveClass(document.body, 'leaflet-dragging');\r\n\r\n\t\tif (this._lastTarget) {\r\n\t\t\tremoveClass(this._lastTarget, 'leaflet-drag-target');\r\n\t\t\tthis._lastTarget = null;\r\n\t\t}\r\n\r\n\t\toff(document, 'mousemove touchmove', this._onMove, this);\r\n\t\toff(document, 'mouseup touchend touchcancel', this._onUp, this);\r\n\r\n\t\tenableImageDrag();\r\n\t\tenableTextSelection();\r\n\r\n\t\tif (this._moved && this._moving) {\r\n\r\n\t\t\t// @event dragend: DragEndEvent\r\n\t\t\t// Fired when the drag ends.\r\n\t\t\tthis.fire('dragend', {\r\n\t\t\t\tnoInertia: noInertia,\r\n\t\t\t\tdistance: this._newPos.distanceTo(this._startPos)\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._moving = false;\r\n\t\tDraggable._dragging = false;\r\n\t}\r\n\r\n});\n\n/*\r\n * @namespace LineUtil\r\n *\r\n * Various utility functions for polyline points processing, used by Leaflet internally to make polylines lightning-fast.\r\n */\r\n\r\n// Simplify polyline with vertex reduction and Douglas-Peucker simplification.\r\n// Improves rendering performance dramatically by lessening the number of points to draw.\r\n\r\n// @function simplify(points: Point[], tolerance: Number): Point[]\r\n// Dramatically reduces the number of points in a polyline while retaining\r\n// its shape and returns a new array of simplified points, using the\r\n// [Ramer-Douglas-Peucker algorithm](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm).\r\n// Used for a huge performance boost when processing/displaying Leaflet polylines for\r\n// each zoom level and also reducing visual noise. tolerance affects the amount of\r\n// simplification (lesser value means higher quality but slower and with more points).\r\n// Also released as a separated micro-library [Simplify.js](https://mourner.github.io/simplify-js/).\r\nfunction simplify(points, tolerance) {\r\n\tif (!tolerance || !points.length) {\r\n\t\treturn points.slice();\r\n\t}\r\n\r\n\tvar sqTolerance = tolerance * tolerance;\r\n\r\n\t // stage 1: vertex reduction\r\n\t points = _reducePoints(points, sqTolerance);\r\n\r\n\t // stage 2: Douglas-Peucker simplification\r\n\t points = _simplifyDP(points, sqTolerance);\r\n\r\n\treturn points;\r\n}\r\n\r\n// @function pointToSegmentDistance(p: Point, p1: Point, p2: Point): Number\r\n// Returns the distance between point `p` and segment `p1` to `p2`.\r\nfunction pointToSegmentDistance(p, p1, p2) {\r\n\treturn Math.sqrt(_sqClosestPointOnSegment(p, p1, p2, true));\r\n}\r\n\r\n// @function closestPointOnSegment(p: Point, p1: Point, p2: Point): Number\r\n// Returns the closest point from a point `p` on a segment `p1` to `p2`.\r\nfunction closestPointOnSegment(p, p1, p2) {\r\n\treturn _sqClosestPointOnSegment(p, p1, p2);\r\n}\r\n\r\n// Ramer-Douglas-Peucker simplification, see https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm\r\nfunction _simplifyDP(points, sqTolerance) {\r\n\r\n\tvar len = points.length,\r\n\t ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array,\r\n\t markers = new ArrayConstructor(len);\r\n\r\n\t markers[0] = markers[len - 1] = 1;\r\n\r\n\t_simplifyDPStep(points, markers, sqTolerance, 0, len - 1);\r\n\r\n\tvar i,\r\n\t newPoints = [];\r\n\r\n\tfor (i = 0; i < len; i++) {\r\n\t\tif (markers[i]) {\r\n\t\t\tnewPoints.push(points[i]);\r\n\t\t}\r\n\t}\r\n\r\n\treturn newPoints;\r\n}\r\n\r\nfunction _simplifyDPStep(points, markers, sqTolerance, first, last) {\r\n\r\n\tvar maxSqDist = 0,\r\n\tindex, i, sqDist;\r\n\r\n\tfor (i = first + 1; i <= last - 1; i++) {\r\n\t\tsqDist = _sqClosestPointOnSegment(points[i], points[first], points[last], true);\r\n\r\n\t\tif (sqDist > maxSqDist) {\r\n\t\t\tindex = i;\r\n\t\t\tmaxSqDist = sqDist;\r\n\t\t}\r\n\t}\r\n\r\n\tif (maxSqDist > sqTolerance) {\r\n\t\tmarkers[index] = 1;\r\n\r\n\t\t_simplifyDPStep(points, markers, sqTolerance, first, index);\r\n\t\t_simplifyDPStep(points, markers, sqTolerance, index, last);\r\n\t}\r\n}\r\n\r\n// reduce points that are too close to each other to a single point\r\nfunction _reducePoints(points, sqTolerance) {\r\n\tvar reducedPoints = [points[0]];\r\n\r\n\tfor (var i = 1, prev = 0, len = points.length; i < len; i++) {\r\n\t\tif (_sqDist(points[i], points[prev]) > sqTolerance) {\r\n\t\t\treducedPoints.push(points[i]);\r\n\t\t\tprev = i;\r\n\t\t}\r\n\t}\r\n\tif (prev < len - 1) {\r\n\t\treducedPoints.push(points[len - 1]);\r\n\t}\r\n\treturn reducedPoints;\r\n}\r\n\r\nvar _lastCode;\r\n\r\n// @function clipSegment(a: Point, b: Point, bounds: Bounds, useLastCode?: Boolean, round?: Boolean): Point[]|Boolean\r\n// Clips the segment a to b by rectangular bounds with the\r\n// [Cohen-Sutherland algorithm](https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm)\r\n// (modifying the segment points directly!). Used by Leaflet to only show polyline\r\n// points that are on the screen or near, increasing performance.\r\nfunction clipSegment(a, b, bounds, useLastCode, round) {\r\n\tvar codeA = useLastCode ? _lastCode : _getBitCode(a, bounds),\r\n\t codeB = _getBitCode(b, bounds),\r\n\r\n\t codeOut, p, newCode;\r\n\r\n\t // save 2nd code to avoid calculating it on the next segment\r\n\t _lastCode = codeB;\r\n\r\n\twhile (true) {\r\n\t\t// if a,b is inside the clip window (trivial accept)\r\n\t\tif (!(codeA | codeB)) {\r\n\t\t\treturn [a, b];\r\n\t\t}\r\n\r\n\t\t// if a,b is outside the clip window (trivial reject)\r\n\t\tif (codeA & codeB) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// other cases\r\n\t\tcodeOut = codeA || codeB;\r\n\t\tp = _getEdgeIntersection(a, b, codeOut, bounds, round);\r\n\t\tnewCode = _getBitCode(p, bounds);\r\n\r\n\t\tif (codeOut === codeA) {\r\n\t\t\ta = p;\r\n\t\t\tcodeA = newCode;\r\n\t\t} else {\r\n\t\t\tb = p;\r\n\t\t\tcodeB = newCode;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction _getEdgeIntersection(a, b, code, bounds, round) {\r\n\tvar dx = b.x - a.x,\r\n\t dy = b.y - a.y,\r\n\t min = bounds.min,\r\n\t max = bounds.max,\r\n\t x, y;\r\n\r\n\tif (code & 8) { // top\r\n\t\tx = a.x + dx * (max.y - a.y) / dy;\r\n\t\ty = max.y;\r\n\r\n\t} else if (code & 4) { // bottom\r\n\t\tx = a.x + dx * (min.y - a.y) / dy;\r\n\t\ty = min.y;\r\n\r\n\t} else if (code & 2) { // right\r\n\t\tx = max.x;\r\n\t\ty = a.y + dy * (max.x - a.x) / dx;\r\n\r\n\t} else if (code & 1) { // left\r\n\t\tx = min.x;\r\n\t\ty = a.y + dy * (min.x - a.x) / dx;\r\n\t}\r\n\r\n\treturn new Point(x, y, round);\r\n}\r\n\r\nfunction _getBitCode(p, bounds) {\r\n\tvar code = 0;\r\n\r\n\tif (p.x < bounds.min.x) { // left\r\n\t\tcode |= 1;\r\n\t} else if (p.x > bounds.max.x) { // right\r\n\t\tcode |= 2;\r\n\t}\r\n\r\n\tif (p.y < bounds.min.y) { // bottom\r\n\t\tcode |= 4;\r\n\t} else if (p.y > bounds.max.y) { // top\r\n\t\tcode |= 8;\r\n\t}\r\n\r\n\treturn code;\r\n}\r\n\r\n// square distance (to avoid unnecessary Math.sqrt calls)\r\nfunction _sqDist(p1, p2) {\r\n\tvar dx = p2.x - p1.x,\r\n\t dy = p2.y - p1.y;\r\n\treturn dx * dx + dy * dy;\r\n}\r\n\r\n// return closest point on segment or distance to that point\r\nfunction _sqClosestPointOnSegment(p, p1, p2, sqDist) {\r\n\tvar x = p1.x,\r\n\t y = p1.y,\r\n\t dx = p2.x - x,\r\n\t dy = p2.y - y,\r\n\t dot = dx * dx + dy * dy,\r\n\t t;\r\n\r\n\tif (dot > 0) {\r\n\t\tt = ((p.x - x) * dx + (p.y - y) * dy) / dot;\r\n\r\n\t\tif (t > 1) {\r\n\t\t\tx = p2.x;\r\n\t\t\ty = p2.y;\r\n\t\t} else if (t > 0) {\r\n\t\t\tx += dx * t;\r\n\t\t\ty += dy * t;\r\n\t\t}\r\n\t}\r\n\r\n\tdx = p.x - x;\r\n\tdy = p.y - y;\r\n\r\n\treturn sqDist ? dx * dx + dy * dy : new Point(x, y);\r\n}\r\n\r\n\r\n// @function isFlat(latlngs: LatLng[]): Boolean\r\n// Returns true if `latlngs` is a flat array, false is nested.\r\nfunction isFlat(latlngs) {\r\n\treturn !isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');\r\n}\r\n\r\nfunction _flat(latlngs) {\r\n\tconsole.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.');\r\n\treturn isFlat(latlngs);\r\n}\n\nvar LineUtil = {\n __proto__: null,\n simplify: simplify,\n pointToSegmentDistance: pointToSegmentDistance,\n closestPointOnSegment: closestPointOnSegment,\n clipSegment: clipSegment,\n _getEdgeIntersection: _getEdgeIntersection,\n _getBitCode: _getBitCode,\n _sqClosestPointOnSegment: _sqClosestPointOnSegment,\n isFlat: isFlat,\n _flat: _flat\n};\n\n/*\r\n * @namespace PolyUtil\r\n * Various utility functions for polygon geometries.\r\n */\r\n\r\n/* @function clipPolygon(points: Point[], bounds: Bounds, round?: Boolean): Point[]\r\n * Clips the polygon geometry defined by the given `points` by the given bounds (using the [Sutherland-Hodgman algorithm](https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm)).\r\n * Used by Leaflet to only show polygon points that are on the screen or near, increasing\r\n * performance. Note that polygon points needs different algorithm for clipping\r\n * than polyline, so there's a separate method for it.\r\n */\r\nfunction clipPolygon(points, bounds, round) {\r\n\tvar clippedPoints,\r\n\t edges = [1, 4, 2, 8],\r\n\t i, j, k,\r\n\t a, b,\r\n\t len, edge, p;\r\n\r\n\tfor (i = 0, len = points.length; i < len; i++) {\r\n\t\tpoints[i]._code = _getBitCode(points[i], bounds);\r\n\t}\r\n\r\n\t// for each edge (left, bottom, right, top)\r\n\tfor (k = 0; k < 4; k++) {\r\n\t\tedge = edges[k];\r\n\t\tclippedPoints = [];\r\n\r\n\t\tfor (i = 0, len = points.length, j = len - 1; i < len; j = i++) {\r\n\t\t\ta = points[i];\r\n\t\t\tb = points[j];\r\n\r\n\t\t\t// if a is inside the clip window\r\n\t\t\tif (!(a._code & edge)) {\r\n\t\t\t\t// if b is outside the clip window (a->b goes out of screen)\r\n\t\t\t\tif (b._code & edge) {\r\n\t\t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n\t\t\t\t\tp._code = _getBitCode(p, bounds);\r\n\t\t\t\t\tclippedPoints.push(p);\r\n\t\t\t\t}\r\n\t\t\t\tclippedPoints.push(a);\r\n\r\n\t\t\t// else if b is inside the clip window (a->b enters the screen)\r\n\t\t\t} else if (!(b._code & edge)) {\r\n\t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n\t\t\t\tp._code = _getBitCode(p, bounds);\r\n\t\t\t\tclippedPoints.push(p);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpoints = clippedPoints;\r\n\t}\r\n\r\n\treturn points;\r\n}\n\nvar PolyUtil = {\n __proto__: null,\n clipPolygon: clipPolygon\n};\n\n/*\r\n * @namespace Projection\r\n * @section\r\n * Leaflet comes with a set of already defined Projections out of the box:\r\n *\r\n * @projection L.Projection.LonLat\r\n *\r\n * Equirectangular, or Plate Carree projection — the most simple projection,\r\n * mostly used by GIS enthusiasts. Directly maps `x` as longitude, and `y` as\r\n * latitude. Also suitable for flat worlds, e.g. game maps. Used by the\r\n * `EPSG:4326` and `Simple` CRS.\r\n */\r\n\r\nvar LonLat = {\r\n\tproject: function (latlng) {\r\n\t\treturn new Point(latlng.lng, latlng.lat);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\treturn new LatLng(point.y, point.x);\r\n\t},\r\n\r\n\tbounds: new Bounds([-180, -90], [180, 90])\r\n};\n\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.Mercator\r\n *\r\n * Elliptical Mercator projection — more complex than Spherical Mercator. Assumes that Earth is an ellipsoid. Used by the EPSG:3395 CRS.\r\n */\r\n\r\nvar Mercator = {\r\n\tR: 6378137,\r\n\tR_MINOR: 6356752.314245179,\r\n\r\n\tbounds: new Bounds([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t r = this.R,\r\n\t\t y = latlng.lat * d,\r\n\t\t tmp = this.R_MINOR / r,\r\n\t\t e = Math.sqrt(1 - tmp * tmp),\r\n\t\t con = e * Math.sin(y);\r\n\r\n\t\tvar ts = Math.tan(Math.PI / 4 - y / 2) / Math.pow((1 - con) / (1 + con), e / 2);\r\n\t\ty = -r * Math.log(Math.max(ts, 1E-10));\r\n\r\n\t\treturn new Point(latlng.lng * d * r, y);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI,\r\n\t\t r = this.R,\r\n\t\t tmp = this.R_MINOR / r,\r\n\t\t e = Math.sqrt(1 - tmp * tmp),\r\n\t\t ts = Math.exp(-point.y / r),\r\n\t\t phi = Math.PI / 2 - 2 * Math.atan(ts);\r\n\r\n\t\tfor (var i = 0, dphi = 0.1, con; i < 15 && Math.abs(dphi) > 1e-7; i++) {\r\n\t\t\tcon = e * Math.sin(phi);\r\n\t\t\tcon = Math.pow((1 - con) / (1 + con), e / 2);\r\n\t\t\tdphi = Math.PI / 2 - 2 * Math.atan(ts * con) - phi;\r\n\t\t\tphi += dphi;\r\n\t\t}\r\n\r\n\t\treturn new LatLng(phi * d, point.x * d / r);\r\n\t}\r\n};\n\n/*\n * @class Projection\n\n * An object with methods for projecting geographical coordinates of the world onto\n * a flat surface (and back). See [Map projection](https://en.wikipedia.org/wiki/Map_projection).\n\n * @property bounds: Bounds\n * The bounds (specified in CRS units) where the projection is valid\n\n * @method project(latlng: LatLng): Point\n * Projects geographical coordinates into a 2D point.\n * Only accepts actual `L.LatLng` instances, not arrays.\n\n * @method unproject(point: Point): LatLng\n * The inverse of `project`. Projects a 2D point into a geographical location.\n * Only accepts actual `L.Point` instances, not arrays.\n\n * Note that the projection instances do not inherit from Leaflet's `Class` object,\n * and can't be instantiated. Also, new classes can't inherit from them,\n * and methods can't be added to them with the `include` function.\n\n */\n\nvar index = {\n __proto__: null,\n LonLat: LonLat,\n Mercator: Mercator,\n SphericalMercator: SphericalMercator\n};\n\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3395\r\n *\r\n * Rarely used by some commercial tile providers. Uses Elliptical Mercator projection.\r\n */\r\nvar EPSG3395 = extend({}, Earth, {\r\n\tcode: 'EPSG:3395',\r\n\tprojection: Mercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * Mercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\n\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG4326\r\n *\r\n * A common CRS among GIS enthusiasts. Uses simple Equirectangular projection.\r\n *\r\n * Leaflet 1.0.x complies with the [TMS coordinate scheme for EPSG:4326](https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#global-geodetic),\r\n * which is a breaking change from 0.7.x behaviour. If you are using a `TileLayer`\r\n * with this CRS, ensure that there are two 256x256 pixel tiles covering the\r\n * whole earth at zoom level zero, and that the tile coordinate origin is (-180,+90),\r\n * or (-180,-90) for `TileLayer`s with [the `tms` option](#tilelayer-tms) set.\r\n */\r\n\r\nvar EPSG4326 = extend({}, Earth, {\r\n\tcode: 'EPSG:4326',\r\n\tprojection: LonLat,\r\n\ttransformation: toTransformation(1 / 180, 1, -1 / 180, 0.5)\r\n});\n\n/*\n * @namespace CRS\n * @crs L.CRS.Simple\n *\n * A simple CRS that maps longitude and latitude into `x` and `y` directly.\n * May be used for maps of flat surfaces (e.g. game maps). Note that the `y`\n * axis should still be inverted (going from bottom to top). `distance()` returns\n * simple euclidean distance.\n */\n\nvar Simple = extend({}, CRS, {\n\tprojection: LonLat,\n\ttransformation: toTransformation(1, 0, -1, 0),\n\n\tscale: function (zoom) {\n\t\treturn Math.pow(2, zoom);\n\t},\n\n\tzoom: function (scale) {\n\t\treturn Math.log(scale) / Math.LN2;\n\t},\n\n\tdistance: function (latlng1, latlng2) {\n\t\tvar dx = latlng2.lng - latlng1.lng,\n\t\t dy = latlng2.lat - latlng1.lat;\n\n\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t},\n\n\tinfinite: true\n});\n\nCRS.Earth = Earth;\nCRS.EPSG3395 = EPSG3395;\nCRS.EPSG3857 = EPSG3857;\nCRS.EPSG900913 = EPSG900913;\nCRS.EPSG4326 = EPSG4326;\nCRS.Simple = Simple;\n\n/*\n * @class Layer\n * @inherits Evented\n * @aka L.Layer\n * @aka ILayer\n *\n * A set of methods from the Layer base class that all Leaflet layers use.\n * Inherits all methods, options and events from `L.Evented`.\n *\n * @example\n *\n * ```js\n * var layer = L.marker(latlng).addTo(map);\n * layer.addTo(map);\n * layer.remove();\n * ```\n *\n * @event add: Event\n * Fired after the layer is added to a map\n *\n * @event remove: Event\n * Fired after the layer is removed from a map\n */\n\n\nvar Layer = Evented.extend({\n\n\t// Classes extending `L.Layer` will inherit the following options:\n\toptions: {\n\t\t// @option pane: String = 'overlayPane'\n\t\t// By default the layer will be added to the map's [overlay pane](#map-overlaypane). Overriding this option will cause the layer to be placed on another pane by default.\n\t\tpane: 'overlayPane',\n\n\t\t// @option attribution: String = null\n\t\t// String to be shown in the attribution control, e.g. \"© OpenStreetMap contributors\". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.\n\t\tattribution: null,\n\n\t\tbubblingMouseEvents: true\n\t},\n\n\t/* @section\n\t * Classes extending `L.Layer` will inherit the following methods:\n\t *\n\t * @method addTo(map: Map|LayerGroup): this\n\t * Adds the layer to the given map or layer group.\n\t */\n\taddTo: function (map) {\n\t\tmap.addLayer(this);\n\t\treturn this;\n\t},\n\n\t// @method remove: this\n\t// Removes the layer from the map it is currently active on.\n\tremove: function () {\n\t\treturn this.removeFrom(this._map || this._mapToAdd);\n\t},\n\n\t// @method removeFrom(map: Map): this\n\t// Removes the layer from the given map\n\t//\n\t// @alternative\n\t// @method removeFrom(group: LayerGroup): this\n\t// Removes the layer from the given `LayerGroup`\n\tremoveFrom: function (obj) {\n\t\tif (obj) {\n\t\t\tobj.removeLayer(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method getPane(name? : String): HTMLElement\n\t// Returns the `HTMLElement` representing the named pane on the map. If `name` is omitted, returns the pane for this layer.\n\tgetPane: function (name) {\n\t\treturn this._map.getPane(name ? (this.options[name] || name) : this.options.pane);\n\t},\n\n\taddInteractiveTarget: function (targetEl) {\n\t\tthis._map._targets[stamp(targetEl)] = this;\n\t\treturn this;\n\t},\n\n\tremoveInteractiveTarget: function (targetEl) {\n\t\tdelete this._map._targets[stamp(targetEl)];\n\t\treturn this;\n\t},\n\n\t// @method getAttribution: String\n\t// Used by the `attribution control`, returns the [attribution option](#gridlayer-attribution).\n\tgetAttribution: function () {\n\t\treturn this.options.attribution;\n\t},\n\n\t_layerAdd: function (e) {\n\t\tvar map = e.target;\n\n\t\t// check in case layer gets added and then removed before the map is ready\n\t\tif (!map.hasLayer(this)) { return; }\n\n\t\tthis._map = map;\n\t\tthis._zoomAnimated = map._zoomAnimated;\n\n\t\tif (this.getEvents) {\n\t\t\tvar events = this.getEvents();\n\t\t\tmap.on(events, this);\n\t\t\tthis.once('remove', function () {\n\t\t\t\tmap.off(events, this);\n\t\t\t}, this);\n\t\t}\n\n\t\tthis.onAdd(map);\n\n\t\tthis.fire('add');\n\t\tmap.fire('layeradd', {layer: this});\n\t}\n});\n\n/* @section Extension methods\n * @uninheritable\n *\n * Every layer should extend from `L.Layer` and (re-)implement the following methods.\n *\n * @method onAdd(map: Map): this\n * Should contain code that creates DOM elements for the layer, adds them to `map panes` where they should belong and puts listeners on relevant map events. Called on [`map.addLayer(layer)`](#map-addlayer).\n *\n * @method onRemove(map: Map): this\n * Should contain all clean up code that removes the layer's elements from the DOM and removes listeners previously added in [`onAdd`](#layer-onadd). Called on [`map.removeLayer(layer)`](#map-removelayer).\n *\n * @method getEvents(): Object\n * This optional method should return an object like `{ viewreset: this._reset }` for [`addEventListener`](#evented-addeventlistener). The event handlers in this object will be automatically added and removed from the map with your layer.\n *\n * @method getAttribution(): String\n * This optional method should return a string containing HTML to be shown on the `Attribution control` whenever the layer is visible.\n *\n * @method beforeAdd(map: Map): this\n * Optional method. Called on [`map.addLayer(layer)`](#map-addlayer), before the layer is added to the map, before events are initialized, without waiting until the map is in a usable state. Use for early initialization only.\n */\n\n\n/* @namespace Map\n * @section Layer events\n *\n * @event layeradd: LayerEvent\n * Fired when a new layer is added to the map.\n *\n * @event layerremove: LayerEvent\n * Fired when some layer is removed from the map\n *\n * @section Methods for Layers and Controls\n */\nMap.include({\n\t// @method addLayer(layer: Layer): this\n\t// Adds the given layer to the map\n\taddLayer: function (layer) {\n\t\tif (!layer._layerAdd) {\n\t\t\tthrow new Error('The provided object is not a Layer.');\n\t\t}\n\n\t\tvar id = stamp(layer);\n\t\tif (this._layers[id]) { return this; }\n\t\tthis._layers[id] = layer;\n\n\t\tlayer._mapToAdd = this;\n\n\t\tif (layer.beforeAdd) {\n\t\t\tlayer.beforeAdd(this);\n\t\t}\n\n\t\tthis.whenReady(layer._layerAdd, layer);\n\n\t\treturn this;\n\t},\n\n\t// @method removeLayer(layer: Layer): this\n\t// Removes the given layer from the map.\n\tremoveLayer: function (layer) {\n\t\tvar id = stamp(layer);\n\n\t\tif (!this._layers[id]) { return this; }\n\n\t\tif (this._loaded) {\n\t\t\tlayer.onRemove(this);\n\t\t}\n\n\t\tdelete this._layers[id];\n\n\t\tif (this._loaded) {\n\t\t\tthis.fire('layerremove', {layer: layer});\n\t\t\tlayer.fire('remove');\n\t\t}\n\n\t\tlayer._map = layer._mapToAdd = null;\n\n\t\treturn this;\n\t},\n\n\t// @method hasLayer(layer: Layer): Boolean\n\t// Returns `true` if the given layer is currently added to the map\n\thasLayer: function (layer) {\n\t\treturn stamp(layer) in this._layers;\n\t},\n\n\t/* @method eachLayer(fn: Function, context?: Object): this\n\t * Iterates over the layers of the map, optionally specifying context of the iterator function.\n\t * ```\n\t * map.eachLayer(function(layer){\n\t * layer.bindPopup('Hello');\n\t * });\n\t * ```\n\t */\n\teachLayer: function (method, context) {\n\t\tfor (var i in this._layers) {\n\t\t\tmethod.call(context, this._layers[i]);\n\t\t}\n\t\treturn this;\n\t},\n\n\t_addLayers: function (layers) {\n\t\tlayers = layers ? (isArray(layers) ? layers : [layers]) : [];\n\n\t\tfor (var i = 0, len = layers.length; i < len; i++) {\n\t\t\tthis.addLayer(layers[i]);\n\t\t}\n\t},\n\n\t_addZoomLimit: function (layer) {\n\t\tif (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom)) {\n\t\t\tthis._zoomBoundLayers[stamp(layer)] = layer;\n\t\t\tthis._updateZoomLevels();\n\t\t}\n\t},\n\n\t_removeZoomLimit: function (layer) {\n\t\tvar id = stamp(layer);\n\n\t\tif (this._zoomBoundLayers[id]) {\n\t\t\tdelete this._zoomBoundLayers[id];\n\t\t\tthis._updateZoomLevels();\n\t\t}\n\t},\n\n\t_updateZoomLevels: function () {\n\t\tvar minZoom = Infinity,\n\t\t maxZoom = -Infinity,\n\t\t oldZoomSpan = this._getZoomSpan();\n\n\t\tfor (var i in this._zoomBoundLayers) {\n\t\t\tvar options = this._zoomBoundLayers[i].options;\n\n\t\t\tminZoom = options.minZoom === undefined ? minZoom : Math.min(minZoom, options.minZoom);\n\t\t\tmaxZoom = options.maxZoom === undefined ? maxZoom : Math.max(maxZoom, options.maxZoom);\n\t\t}\n\n\t\tthis._layersMaxZoom = maxZoom === -Infinity ? undefined : maxZoom;\n\t\tthis._layersMinZoom = minZoom === Infinity ? undefined : minZoom;\n\n\t\t// @section Map state change events\n\t\t// @event zoomlevelschange: Event\n\t\t// Fired when the number of zoomlevels on the map is changed due\n\t\t// to adding or removing a layer.\n\t\tif (oldZoomSpan !== this._getZoomSpan()) {\n\t\t\tthis.fire('zoomlevelschange');\n\t\t}\n\n\t\tif (this.options.maxZoom === undefined && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom) {\n\t\t\tthis.setZoom(this._layersMaxZoom);\n\t\t}\n\t\tif (this.options.minZoom === undefined && this._layersMinZoom && this.getZoom() < this._layersMinZoom) {\n\t\t\tthis.setZoom(this._layersMinZoom);\n\t\t}\n\t}\n});\n\n/*\r\n * @class LayerGroup\r\n * @aka L.LayerGroup\r\n * @inherits Interactive layer\r\n *\r\n * Used to group several layers and handle them as one. If you add it to the map,\r\n * any layers added or removed from the group will be added/removed on the map as\r\n * well. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.layerGroup([marker1, marker2])\r\n * \t.addLayer(polyline)\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\nvar LayerGroup = Layer.extend({\r\n\r\n\tinitialize: function (layers, options) {\r\n\t\tsetOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\r\n\t\tvar i, len;\r\n\r\n\t\tif (layers) {\r\n\t\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n\t\t\t\tthis.addLayer(layers[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addLayer(layer: Layer): this\r\n\t// Adds the given layer to the group.\r\n\taddLayer: function (layer) {\r\n\t\tvar id = this.getLayerId(layer);\r\n\r\n\t\tthis._layers[id] = layer;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._map.addLayer(layer);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeLayer(layer: Layer): this\r\n\t// Removes the given layer from the group.\r\n\t// @alternative\r\n\t// @method removeLayer(id: Number): this\r\n\t// Removes the layer with the given internal ID from the group.\r\n\tremoveLayer: function (layer) {\r\n\t\tvar id = layer in this._layers ? layer : this.getLayerId(layer);\r\n\r\n\t\tif (this._map && this._layers[id]) {\r\n\t\t\tthis._map.removeLayer(this._layers[id]);\r\n\t\t}\r\n\r\n\t\tdelete this._layers[id];\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method hasLayer(layer: Layer): Boolean\r\n\t// Returns `true` if the given layer is currently added to the group.\r\n\t// @alternative\r\n\t// @method hasLayer(id: Number): Boolean\r\n\t// Returns `true` if the given internal ID is currently added to the group.\r\n\thasLayer: function (layer) {\r\n\t\tvar layerId = typeof layer === 'number' ? layer : this.getLayerId(layer);\r\n\t\treturn layerId in this._layers;\r\n\t},\r\n\r\n\t// @method clearLayers(): this\r\n\t// Removes all the layers from the group.\r\n\tclearLayers: function () {\r\n\t\treturn this.eachLayer(this.removeLayer, this);\r\n\t},\r\n\r\n\t// @method invoke(methodName: String, …): this\r\n\t// Calls `methodName` on every layer contained in this group, passing any\r\n\t// additional parameters. Has no effect if the layers contained do not\r\n\t// implement `methodName`.\r\n\tinvoke: function (methodName) {\r\n\t\tvar args = Array.prototype.slice.call(arguments, 1),\r\n\t\t i, layer;\r\n\r\n\t\tfor (i in this._layers) {\r\n\t\t\tlayer = this._layers[i];\r\n\r\n\t\t\tif (layer[methodName]) {\r\n\t\t\t\tlayer[methodName].apply(layer, args);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis.eachLayer(map.addLayer, map);\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tthis.eachLayer(map.removeLayer, map);\r\n\t},\r\n\r\n\t// @method eachLayer(fn: Function, context?: Object): this\r\n\t// Iterates over the layers of the group, optionally specifying context of the iterator function.\r\n\t// ```js\r\n\t// group.eachLayer(function (layer) {\r\n\t// \tlayer.bindPopup('Hello');\r\n\t// });\r\n\t// ```\r\n\teachLayer: function (method, context) {\r\n\t\tfor (var i in this._layers) {\r\n\t\t\tmethod.call(context, this._layers[i]);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getLayer(id: Number): Layer\r\n\t// Returns the layer with the given internal ID.\r\n\tgetLayer: function (id) {\r\n\t\treturn this._layers[id];\r\n\t},\r\n\r\n\t// @method getLayers(): Layer[]\r\n\t// Returns an array of all the layers added to the group.\r\n\tgetLayers: function () {\r\n\t\tvar layers = [];\r\n\t\tthis.eachLayer(layers.push, layers);\r\n\t\treturn layers;\r\n\t},\r\n\r\n\t// @method setZIndex(zIndex: Number): this\r\n\t// Calls `setZIndex` on every layer contained in this group, passing the z-index.\r\n\tsetZIndex: function (zIndex) {\r\n\t\treturn this.invoke('setZIndex', zIndex);\r\n\t},\r\n\r\n\t// @method getLayerId(layer: Layer): Number\r\n\t// Returns the internal ID for a layer\r\n\tgetLayerId: function (layer) {\r\n\t\treturn stamp(layer);\r\n\t}\r\n});\r\n\r\n\r\n// @factory L.layerGroup(layers?: Layer[], options?: Object)\r\n// Create a layer group, optionally given an initial set of layers and an `options` object.\r\nvar layerGroup = function (layers, options) {\r\n\treturn new LayerGroup(layers, options);\r\n};\n\n/*\r\n * @class FeatureGroup\r\n * @aka L.FeatureGroup\r\n * @inherits LayerGroup\r\n *\r\n * Extended `LayerGroup` that makes it easier to do the same thing to all its member layers:\r\n * * [`bindPopup`](#layer-bindpopup) binds a popup to all of the layers at once (likewise with [`bindTooltip`](#layer-bindtooltip))\r\n * * Events are propagated to the `FeatureGroup`, so if the group has an event\r\n * handler, it will handle events from any of the layers. This includes mouse events\r\n * and custom events.\r\n * * Has `layeradd` and `layerremove` events\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.featureGroup([marker1, marker2, polyline])\r\n * \t.bindPopup('Hello world!')\r\n * \t.on('click', function() { alert('Clicked on a member of the group!'); })\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\nvar FeatureGroup = LayerGroup.extend({\r\n\r\n\taddLayer: function (layer) {\r\n\t\tif (this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tlayer.addEventParent(this);\r\n\r\n\t\tLayerGroup.prototype.addLayer.call(this, layer);\r\n\r\n\t\t// @event layeradd: LayerEvent\r\n\t\t// Fired when a layer is added to this `FeatureGroup`\r\n\t\treturn this.fire('layeradd', {layer: layer});\r\n\t},\r\n\r\n\tremoveLayer: function (layer) {\r\n\t\tif (!this.hasLayer(layer)) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif (layer in this._layers) {\r\n\t\t\tlayer = this._layers[layer];\r\n\t\t}\r\n\r\n\t\tlayer.removeEventParent(this);\r\n\r\n\t\tLayerGroup.prototype.removeLayer.call(this, layer);\r\n\r\n\t\t// @event layerremove: LayerEvent\r\n\t\t// Fired when a layer is removed from this `FeatureGroup`\r\n\t\treturn this.fire('layerremove', {layer: layer});\r\n\t},\r\n\r\n\t// @method setStyle(style: Path options): this\r\n\t// Sets the given path options to each layer of the group that has a `setStyle` method.\r\n\tsetStyle: function (style) {\r\n\t\treturn this.invoke('setStyle', style);\r\n\t},\r\n\r\n\t// @method bringToFront(): this\r\n\t// Brings the layer group to the top of all other layers\r\n\tbringToFront: function () {\r\n\t\treturn this.invoke('bringToFront');\r\n\t},\r\n\r\n\t// @method bringToBack(): this\r\n\t// Brings the layer group to the back of all other layers\r\n\tbringToBack: function () {\r\n\t\treturn this.invoke('bringToBack');\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Returns the LatLngBounds of the Feature Group (created from bounds and coordinates of its children).\r\n\tgetBounds: function () {\r\n\t\tvar bounds = new LatLngBounds();\r\n\r\n\t\tfor (var id in this._layers) {\r\n\t\t\tvar layer = this._layers[id];\r\n\t\t\tbounds.extend(layer.getBounds ? layer.getBounds() : layer.getLatLng());\r\n\t\t}\r\n\t\treturn bounds;\r\n\t}\r\n});\r\n\r\n// @factory L.featureGroup(layers?: Layer[], options?: Object)\r\n// Create a feature group, optionally given an initial set of layers and an `options` object.\r\nvar featureGroup = function (layers, options) {\r\n\treturn new FeatureGroup(layers, options);\r\n};\n\n/*\r\n * @class Icon\r\n * @aka L.Icon\r\n *\r\n * Represents an icon to provide when creating a marker.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var myIcon = L.icon({\r\n * iconUrl: 'my-icon.png',\r\n * iconRetinaUrl: 'my-icon@2x.png',\r\n * iconSize: [38, 95],\r\n * iconAnchor: [22, 94],\r\n * popupAnchor: [-3, -76],\r\n * shadowUrl: 'my-icon-shadow.png',\r\n * shadowRetinaUrl: 'my-icon-shadow@2x.png',\r\n * shadowSize: [68, 95],\r\n * shadowAnchor: [22, 94]\r\n * });\r\n *\r\n * L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);\r\n * ```\r\n *\r\n * `L.Icon.Default` extends `L.Icon` and is the blue icon Leaflet uses for markers by default.\r\n *\r\n */\r\n\r\nvar Icon = Class.extend({\r\n\r\n\t/* @section\r\n\t * @aka Icon options\r\n\t *\r\n\t * @option iconUrl: String = null\r\n\t * **(required)** The URL to the icon image (absolute or relative to your script path).\r\n\t *\r\n\t * @option iconRetinaUrl: String = null\r\n\t * The URL to a retina sized version of the icon image (absolute or relative to your\r\n\t * script path). Used for Retina screen devices.\r\n\t *\r\n\t * @option iconSize: Point = null\r\n\t * Size of the icon image in pixels.\r\n\t *\r\n\t * @option iconAnchor: Point = null\r\n\t * The coordinates of the \"tip\" of the icon (relative to its top left corner). The icon\r\n\t * will be aligned so that this point is at the marker's geographical location. Centered\r\n\t * by default if size is specified, also can be set in CSS with negative margins.\r\n\t *\r\n\t * @option popupAnchor: Point = [0, 0]\r\n\t * The coordinates of the point from which popups will \"open\", relative to the icon anchor.\r\n\t *\r\n\t * @option tooltipAnchor: Point = [0, 0]\r\n\t * The coordinates of the point from which tooltips will \"open\", relative to the icon anchor.\r\n\t *\r\n\t * @option shadowUrl: String = null\r\n\t * The URL to the icon shadow image. If not specified, no shadow image will be created.\r\n\t *\r\n\t * @option shadowRetinaUrl: String = null\r\n\t *\r\n\t * @option shadowSize: Point = null\r\n\t * Size of the shadow image in pixels.\r\n\t *\r\n\t * @option shadowAnchor: Point = null\r\n\t * The coordinates of the \"tip\" of the shadow (relative to its top left corner) (the same\r\n\t * as iconAnchor if not specified).\r\n\t *\r\n\t * @option className: String = ''\r\n\t * A custom class name to assign to both icon and shadow images. Empty by default.\r\n\t */\r\n\r\n\toptions: {\r\n\t\tpopupAnchor: [0, 0],\r\n\t\ttooltipAnchor: [0, 0],\r\n\r\n\t\t// @option crossOrigin: Boolean|String = false\r\n\t\t// Whether the crossOrigin attribute will be added to the tiles.\r\n\t\t// If a String is provided, all tiles will have their crossOrigin attribute set to the String provided. This is needed if you want to access tile pixel data.\r\n\t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n\t\tcrossOrigin: false\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\tsetOptions(this, options);\r\n\t},\r\n\r\n\t// @method createIcon(oldIcon?: HTMLElement): HTMLElement\r\n\t// Called internally when the icon has to be shown, returns a `` HTML element\r\n\t// styled according to the options.\r\n\tcreateIcon: function (oldIcon) {\r\n\t\treturn this._createIcon('icon', oldIcon);\r\n\t},\r\n\r\n\t// @method createShadow(oldIcon?: HTMLElement): HTMLElement\r\n\t// As `createIcon`, but for the shadow beneath it.\r\n\tcreateShadow: function (oldIcon) {\r\n\t\treturn this._createIcon('shadow', oldIcon);\r\n\t},\r\n\r\n\t_createIcon: function (name, oldIcon) {\r\n\t\tvar src = this._getIconUrl(name);\r\n\r\n\t\tif (!src) {\r\n\t\t\tif (name === 'icon') {\r\n\t\t\t\tthrow new Error('iconUrl not set in Icon options (see the docs).');\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar img = this._createImg(src, oldIcon && oldIcon.tagName === 'IMG' ? oldIcon : null);\r\n\t\tthis._setIconStyles(img, name);\r\n\r\n\t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n\t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n\t\t}\r\n\r\n\t\treturn img;\r\n\t},\r\n\r\n\t_setIconStyles: function (img, name) {\r\n\t\tvar options = this.options;\r\n\t\tvar sizeOption = options[name + 'Size'];\r\n\r\n\t\tif (typeof sizeOption === 'number') {\r\n\t\t\tsizeOption = [sizeOption, sizeOption];\r\n\t\t}\r\n\r\n\t\tvar size = toPoint(sizeOption),\r\n\t\t anchor = toPoint(name === 'shadow' && options.shadowAnchor || options.iconAnchor ||\r\n\t\t size && size.divideBy(2, true));\r\n\r\n\t\timg.className = 'leaflet-marker-' + name + ' ' + (options.className || '');\r\n\r\n\t\tif (anchor) {\r\n\t\t\timg.style.marginLeft = (-anchor.x) + 'px';\r\n\t\t\timg.style.marginTop = (-anchor.y) + 'px';\r\n\t\t}\r\n\r\n\t\tif (size) {\r\n\t\t\timg.style.width = size.x + 'px';\r\n\t\t\timg.style.height = size.y + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\t_createImg: function (src, el) {\r\n\t\tel = el || document.createElement('img');\r\n\t\tel.src = src;\r\n\t\treturn el;\r\n\t},\r\n\r\n\t_getIconUrl: function (name) {\r\n\t\treturn Browser.retina && this.options[name + 'RetinaUrl'] || this.options[name + 'Url'];\r\n\t}\r\n});\r\n\r\n\r\n// @factory L.icon(options: Icon options)\r\n// Creates an icon instance with the given options.\r\nfunction icon(options) {\r\n\treturn new Icon(options);\r\n}\n\n/*\n * @miniclass Icon.Default (Icon)\n * @aka L.Icon.Default\n * @section\n *\n * A trivial subclass of `Icon`, represents the icon to use in `Marker`s when\n * no icon is specified. Points to the blue marker image distributed with Leaflet\n * releases.\n *\n * In order to customize the default icon, just change the properties of `L.Icon.Default.prototype.options`\n * (which is a set of `Icon options`).\n *\n * If you want to _completely_ replace the default icon, override the\n * `L.Marker.prototype.options.icon` with your own icon instead.\n */\n\nvar IconDefault = Icon.extend({\n\n\toptions: {\n\t\ticonUrl: 'marker-icon.png',\n\t\ticonRetinaUrl: 'marker-icon-2x.png',\n\t\tshadowUrl: 'marker-shadow.png',\n\t\ticonSize: [25, 41],\n\t\ticonAnchor: [12, 41],\n\t\tpopupAnchor: [1, -34],\n\t\ttooltipAnchor: [16, -28],\n\t\tshadowSize: [41, 41]\n\t},\n\n\t_getIconUrl: function (name) {\n\t\tif (typeof IconDefault.imagePath !== 'string') {\t// Deprecated, backwards-compatibility only\n\t\t\tIconDefault.imagePath = this._detectIconPath();\n\t\t}\n\n\t\t// @option imagePath: String\n\t\t// `Icon.Default` will try to auto-detect the location of the\n\t\t// blue icon images. If you are placing these images in a non-standard\n\t\t// way, set this option to point to the right path.\n\t\treturn (this.options.imagePath || IconDefault.imagePath) + Icon.prototype._getIconUrl.call(this, name);\n\t},\n\n\t_stripUrl: function (path) {\t// separate function to use in tests\n\t\tvar strip = function (str, re, idx) {\n\t\t\tvar match = re.exec(str);\n\t\t\treturn match && match[idx];\n\t\t};\n\t\tpath = strip(path, /^url\\((['\"])?(.+)\\1\\)$/, 2);\n\t\treturn path && strip(path, /^(.*)marker-icon\\.png$/, 1);\n\t},\n\n\t_detectIconPath: function () {\n\t\tvar el = create$1('div', 'leaflet-default-icon-path', document.body);\n\t\tvar path = getStyle(el, 'background-image') ||\n\t\t getStyle(el, 'backgroundImage');\t// IE8\n\n\t\tdocument.body.removeChild(el);\n\t\tpath = this._stripUrl(path);\n\t\tif (path) { return path; }\n\t\tvar link = document.querySelector('link[href$=\"leaflet.css\"]');\n\t\tif (!link) { return ''; }\n\t\treturn link.href.substring(0, link.href.length - 'leaflet.css'.length - 1);\n\t}\n});\n\n/*\n * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable.\n */\n\n\n/* @namespace Marker\n * @section Interaction handlers\n *\n * Interaction handlers are properties of a marker instance that allow you to control interaction behavior in runtime, enabling or disabling certain features such as dragging (see `Handler` methods). Example:\n *\n * ```js\n * marker.dragging.disable();\n * ```\n *\n * @property dragging: Handler\n * Marker dragging handler (by both mouse and touch). Only valid when the marker is on the map (Otherwise set [`marker.options.draggable`](#marker-draggable)).\n */\n\nvar MarkerDrag = Handler.extend({\n\tinitialize: function (marker) {\n\t\tthis._marker = marker;\n\t},\n\n\taddHooks: function () {\n\t\tvar icon = this._marker._icon;\n\n\t\tif (!this._draggable) {\n\t\t\tthis._draggable = new Draggable(icon, icon, true);\n\t\t}\n\n\t\tthis._draggable.on({\n\t\t\tdragstart: this._onDragStart,\n\t\t\tpredrag: this._onPreDrag,\n\t\t\tdrag: this._onDrag,\n\t\t\tdragend: this._onDragEnd\n\t\t}, this).enable();\n\n\t\taddClass(icon, 'leaflet-marker-draggable');\n\t},\n\n\tremoveHooks: function () {\n\t\tthis._draggable.off({\n\t\t\tdragstart: this._onDragStart,\n\t\t\tpredrag: this._onPreDrag,\n\t\t\tdrag: this._onDrag,\n\t\t\tdragend: this._onDragEnd\n\t\t}, this).disable();\n\n\t\tif (this._marker._icon) {\n\t\t\tremoveClass(this._marker._icon, 'leaflet-marker-draggable');\n\t\t}\n\t},\n\n\tmoved: function () {\n\t\treturn this._draggable && this._draggable._moved;\n\t},\n\n\t_adjustPan: function (e) {\n\t\tvar marker = this._marker,\n\t\t map = marker._map,\n\t\t speed = this._marker.options.autoPanSpeed,\n\t\t padding = this._marker.options.autoPanPadding,\n\t\t iconPos = getPosition(marker._icon),\n\t\t bounds = map.getPixelBounds(),\n\t\t origin = map.getPixelOrigin();\n\n\t\tvar panBounds = toBounds(\n\t\t\tbounds.min._subtract(origin).add(padding),\n\t\t\tbounds.max._subtract(origin).subtract(padding)\n\t\t);\n\n\t\tif (!panBounds.contains(iconPos)) {\n\t\t\t// Compute incremental movement\n\t\t\tvar movement = toPoint(\n\t\t\t\t(Math.max(panBounds.max.x, iconPos.x) - panBounds.max.x) / (bounds.max.x - panBounds.max.x) -\n\t\t\t\t(Math.min(panBounds.min.x, iconPos.x) - panBounds.min.x) / (bounds.min.x - panBounds.min.x),\n\n\t\t\t\t(Math.max(panBounds.max.y, iconPos.y) - panBounds.max.y) / (bounds.max.y - panBounds.max.y) -\n\t\t\t\t(Math.min(panBounds.min.y, iconPos.y) - panBounds.min.y) / (bounds.min.y - panBounds.min.y)\n\t\t\t).multiplyBy(speed);\n\n\t\t\tmap.panBy(movement, {animate: false});\n\n\t\t\tthis._draggable._newPos._add(movement);\n\t\t\tthis._draggable._startPos._add(movement);\n\n\t\t\tsetPosition(marker._icon, this._draggable._newPos);\n\t\t\tthis._onDrag(e);\n\n\t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n\t\t}\n\t},\n\n\t_onDragStart: function () {\n\t\t// @section Dragging events\n\t\t// @event dragstart: Event\n\t\t// Fired when the user starts dragging the marker.\n\n\t\t// @event movestart: Event\n\t\t// Fired when the marker starts moving (because of dragging).\n\n\t\tthis._oldLatLng = this._marker.getLatLng();\n\n\t\t// When using ES6 imports it could not be set when `Popup` was not imported as well\n\t\tthis._marker.closePopup && this._marker.closePopup();\n\n\t\tthis._marker\n\t\t\t.fire('movestart')\n\t\t\t.fire('dragstart');\n\t},\n\n\t_onPreDrag: function (e) {\n\t\tif (this._marker.options.autoPan) {\n\t\t\tcancelAnimFrame(this._panRequest);\n\t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n\t\t}\n\t},\n\n\t_onDrag: function (e) {\n\t\tvar marker = this._marker,\n\t\t shadow = marker._shadow,\n\t\t iconPos = getPosition(marker._icon),\n\t\t latlng = marker._map.layerPointToLatLng(iconPos);\n\n\t\t// update shadow position\n\t\tif (shadow) {\n\t\t\tsetPosition(shadow, iconPos);\n\t\t}\n\n\t\tmarker._latlng = latlng;\n\t\te.latlng = latlng;\n\t\te.oldLatLng = this._oldLatLng;\n\n\t\t// @event drag: Event\n\t\t// Fired repeatedly while the user drags the marker.\n\t\tmarker\n\t\t .fire('move', e)\n\t\t .fire('drag', e);\n\t},\n\n\t_onDragEnd: function (e) {\n\t\t// @event dragend: DragEndEvent\n\t\t// Fired when the user stops dragging the marker.\n\n\t\t cancelAnimFrame(this._panRequest);\n\n\t\t// @event moveend: Event\n\t\t// Fired when the marker stops moving (because of dragging).\n\t\tdelete this._oldLatLng;\n\t\tthis._marker\n\t\t .fire('moveend')\n\t\t .fire('dragend', e);\n\t}\n});\n\n/*\r\n * @class Marker\r\n * @inherits Interactive layer\r\n * @aka L.Marker\r\n * L.Marker is used to display clickable/draggable icons on the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.marker([50.5, 30.5]).addTo(map);\r\n * ```\r\n */\r\n\r\nvar Marker = Layer.extend({\r\n\r\n\t// @section\r\n\t// @aka Marker options\r\n\toptions: {\r\n\t\t// @option icon: Icon = *\r\n\t\t// Icon instance to use for rendering the marker.\r\n\t\t// See [Icon documentation](#L.Icon) for details on how to customize the marker icon.\r\n\t\t// If not specified, a common instance of `L.Icon.Default` is used.\r\n\t\ticon: new IconDefault(),\r\n\r\n\t\t// Option inherited from \"Interactive layer\" abstract class\r\n\t\tinteractive: true,\r\n\r\n\t\t// @option keyboard: Boolean = true\r\n\t\t// Whether the marker can be tabbed to with a keyboard and clicked by pressing enter.\r\n\t\tkeyboard: true,\r\n\r\n\t\t// @option title: String = ''\r\n\t\t// Text for the browser tooltip that appear on marker hover (no tooltip by default).\r\n\t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n\t\ttitle: '',\r\n\r\n\t\t// @option alt: String = 'Marker'\r\n\t\t// Text for the `alt` attribute of the icon image.\r\n\t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n\t\talt: 'Marker',\r\n\r\n\t\t// @option zIndexOffset: Number = 0\r\n\t\t// By default, marker images zIndex is set automatically based on its latitude. Use this option if you want to put the marker on top of all others (or below), specifying a high value like `1000` (or high negative value, respectively).\r\n\t\tzIndexOffset: 0,\r\n\r\n\t\t// @option opacity: Number = 1.0\r\n\t\t// The opacity of the marker.\r\n\t\topacity: 1,\r\n\r\n\t\t// @option riseOnHover: Boolean = false\r\n\t\t// If `true`, the marker will get on top of others when you hover the mouse over it.\r\n\t\triseOnHover: false,\r\n\r\n\t\t// @option riseOffset: Number = 250\r\n\t\t// The z-index offset used for the `riseOnHover` feature.\r\n\t\triseOffset: 250,\r\n\r\n\t\t// @option pane: String = 'markerPane'\r\n\t\t// `Map pane` where the markers icon will be added.\r\n\t\tpane: 'markerPane',\r\n\r\n\t\t// @option shadowPane: String = 'shadowPane'\r\n\t\t// `Map pane` where the markers shadow will be added.\r\n\t\tshadowPane: 'shadowPane',\r\n\r\n\t\t// @option bubblingMouseEvents: Boolean = false\r\n\t\t// When `true`, a mouse event on this marker will trigger the same event on the map\r\n\t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\r\n\t\tbubblingMouseEvents: false,\r\n\r\n\t\t// @option autoPanOnFocus: Boolean = true\r\n\t\t// When `true`, the map will pan whenever the marker is focused (via\r\n\t\t// e.g. pressing `tab` on the keyboard) to ensure the marker is\r\n\t\t// visible within the map's bounds\r\n\t\tautoPanOnFocus: true,\r\n\r\n\t\t// @section Draggable marker options\r\n\t\t// @option draggable: Boolean = false\r\n\t\t// Whether the marker is draggable with mouse/touch or not.\r\n\t\tdraggable: false,\r\n\r\n\t\t// @option autoPan: Boolean = false\r\n\t\t// Whether to pan the map when dragging this marker near its edge or not.\r\n\t\tautoPan: false,\r\n\r\n\t\t// @option autoPanPadding: Point = Point(50, 50)\r\n\t\t// Distance (in pixels to the left/right and to the top/bottom) of the\r\n\t\t// map edge to start panning the map.\r\n\t\tautoPanPadding: [50, 50],\r\n\r\n\t\t// @option autoPanSpeed: Number = 10\r\n\t\t// Number of pixels the map should pan by.\r\n\t\tautoPanSpeed: 10\r\n\t},\r\n\r\n\t/* @section\r\n\t *\r\n\t * In addition to [shared layer methods](#Layer) like `addTo()` and `remove()` and [popup methods](#Popup) like bindPopup() you can also use the following methods:\r\n\t */\r\n\r\n\tinitialize: function (latlng, options) {\r\n\t\tsetOptions(this, options);\r\n\t\tthis._latlng = toLatLng(latlng);\r\n\t},\r\n\r\n\tonAdd: function (map) {\r\n\t\tthis._zoomAnimated = this._zoomAnimated && map.options.markerZoomAnimation;\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\r\n\t\tthis._initIcon();\r\n\t\tthis.update();\r\n\t},\r\n\r\n\tonRemove: function (map) {\r\n\t\tif (this.dragging && this.dragging.enabled()) {\r\n\t\t\tthis.options.draggable = true;\r\n\t\t\tthis.dragging.removeHooks();\r\n\t\t}\r\n\t\tdelete this.dragging;\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tmap.off('zoomanim', this._animateZoom, this);\r\n\t\t}\r\n\r\n\t\tthis._removeIcon();\r\n\t\tthis._removeShadow();\r\n\t},\r\n\r\n\tgetEvents: function () {\r\n\t\treturn {\r\n\t\t\tzoom: this.update,\r\n\t\t\tviewreset: this.update\r\n\t\t};\r\n\t},\r\n\r\n\t// @method getLatLng: LatLng\r\n\t// Returns the current geographical position of the marker.\r\n\tgetLatLng: function () {\r\n\t\treturn this._latlng;\r\n\t},\r\n\r\n\t// @method setLatLng(latlng: LatLng): this\r\n\t// Changes the marker position to the given point.\r\n\tsetLatLng: function (latlng) {\r\n\t\tvar oldLatLng = this._latlng;\r\n\t\tthis._latlng = toLatLng(latlng);\r\n\t\tthis.update();\r\n\r\n\t\t// @event move: Event\r\n\t\t// Fired when the marker is moved via [`setLatLng`](#marker-setlatlng) or by [dragging](#marker-dragging). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\r\n\t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\r\n\t},\r\n\r\n\t// @method setZIndexOffset(offset: Number): this\r\n\t// Changes the [zIndex offset](#marker-zindexoffset) of the marker.\r\n\tsetZIndexOffset: function (offset) {\r\n\t\tthis.options.zIndexOffset = offset;\r\n\t\treturn this.update();\r\n\t},\r\n\r\n\t// @method getIcon: Icon\r\n\t// Returns the current icon used by the marker\r\n\tgetIcon: function () {\r\n\t\treturn this.options.icon;\r\n\t},\r\n\r\n\t// @method setIcon(icon: Icon): this\r\n\t// Changes the marker icon.\r\n\tsetIcon: function (icon) {\r\n\r\n\t\tthis.options.icon = icon;\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._initIcon();\r\n\t\t\tthis.update();\r\n\t\t}\r\n\r\n\t\tif (this._popup) {\r\n\t\t\tthis.bindPopup(this._popup, this._popup.options);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetElement: function () {\r\n\t\treturn this._icon;\r\n\t},\r\n\r\n\tupdate: function () {\r\n\r\n\t\tif (this._icon && this._map) {\r\n\t\t\tvar pos = this._map.latLngToLayerPoint(this._latlng).round();\r\n\t\t\tthis._setPos(pos);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_initIcon: function () {\r\n\t\tvar options = this.options,\r\n\t\t classToAdd = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');\r\n\r\n\t\tvar icon = options.icon.createIcon(this._icon),\r\n\t\t addIcon = false;\r\n\r\n\t\t// if we're not reusing the icon, remove the old one and init new one\r\n\t\tif (icon !== this._icon) {\r\n\t\t\tif (this._icon) {\r\n\t\t\t\tthis._removeIcon();\r\n\t\t\t}\r\n\t\t\taddIcon = true;\r\n\r\n\t\t\tif (options.title) {\r\n\t\t\t\ticon.title = options.title;\r\n\t\t\t}\r\n\r\n\t\t\tif (icon.tagName === 'IMG') {\r\n\t\t\t\ticon.alt = options.alt || '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\taddClass(icon, classToAdd);\r\n\r\n\t\tif (options.keyboard) {\r\n\t\t\ticon.tabIndex = '0';\r\n\t\t\ticon.setAttribute('role', 'button');\r\n\t\t}\r\n\r\n\t\tthis._icon = icon;\r\n\r\n\t\tif (options.riseOnHover) {\r\n\t\t\tthis.on({\r\n\t\t\t\tmouseover: this._bringToFront,\r\n\t\t\t\tmouseout: this._resetZIndex\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.options.autoPanOnFocus) {\r\n\t\t\ton(icon, 'focus', this._panOnFocus, this);\r\n\t\t}\r\n\r\n\t\tvar newShadow = options.icon.createShadow(this._shadow),\r\n\t\t addShadow = false;\r\n\r\n\t\tif (newShadow !== this._shadow) {\r\n\t\t\tthis._removeShadow();\r\n\t\t\taddShadow = true;\r\n\t\t}\r\n\r\n\t\tif (newShadow) {\r\n\t\t\taddClass(newShadow, classToAdd);\r\n\t\t\tnewShadow.alt = '';\r\n\t\t}\r\n\t\tthis._shadow = newShadow;\r\n\r\n\r\n\t\tif (options.opacity < 1) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\r\n\t\tif (addIcon) {\r\n\t\t\tthis.getPane().appendChild(this._icon);\r\n\t\t}\r\n\t\tthis._initInteraction();\r\n\t\tif (newShadow && addShadow) {\r\n\t\t\tthis.getPane(options.shadowPane).appendChild(this._shadow);\r\n\t\t}\r\n\t},\r\n\r\n\t_removeIcon: function () {\r\n\t\tif (this.options.riseOnHover) {\r\n\t\t\tthis.off({\r\n\t\t\t\tmouseover: this._bringToFront,\r\n\t\t\t\tmouseout: this._resetZIndex\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.options.autoPanOnFocus) {\r\n\t\t\toff(this._icon, 'focus', this._panOnFocus, this);\r\n\t\t}\r\n\r\n\t\tremove(this._icon);\r\n\t\tthis.removeInteractiveTarget(this._icon);\r\n\r\n\t\tthis._icon = null;\r\n\t},\r\n\r\n\t_removeShadow: function () {\r\n\t\tif (this._shadow) {\r\n\t\t\tremove(this._shadow);\r\n\t\t}\r\n\t\tthis._shadow = null;\r\n\t},\r\n\r\n\t_setPos: function (pos) {\r\n\r\n\t\tif (this._icon) {\r\n\t\t\tsetPosition(this._icon, pos);\r\n\t\t}\r\n\r\n\t\tif (this._shadow) {\r\n\t\t\tsetPosition(this._shadow, pos);\r\n\t\t}\r\n\r\n\t\tthis._zIndex = pos.y + this.options.zIndexOffset;\r\n\r\n\t\tthis._resetZIndex();\r\n\t},\r\n\r\n\t_updateZIndex: function (offset) {\r\n\t\tif (this._icon) {\r\n\t\t\tthis._icon.style.zIndex = this._zIndex + offset;\r\n\t\t}\r\n\t},\r\n\r\n\t_animateZoom: function (opt) {\r\n\t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round();\r\n\r\n\t\tthis._setPos(pos);\r\n\t},\r\n\r\n\t_initInteraction: function () {\r\n\r\n\t\tif (!this.options.interactive) { return; }\r\n\r\n\t\taddClass(this._icon, 'leaflet-interactive');\r\n\r\n\t\tthis.addInteractiveTarget(this._icon);\r\n\r\n\t\tif (MarkerDrag) {\r\n\t\t\tvar draggable = this.options.draggable;\r\n\t\t\tif (this.dragging) {\r\n\t\t\t\tdraggable = this.dragging.enabled();\r\n\t\t\t\tthis.dragging.disable();\r\n\t\t\t}\r\n\r\n\t\t\tthis.dragging = new MarkerDrag(this);\r\n\r\n\t\t\tif (draggable) {\r\n\t\t\t\tthis.dragging.enable();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method setOpacity(opacity: Number): this\r\n\t// Changes the opacity of the marker.\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\t\tif (this._map) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tvar opacity = this.options.opacity;\r\n\r\n\t\tif (this._icon) {\r\n\t\t\tsetOpacity(this._icon, opacity);\r\n\t\t}\r\n\r\n\t\tif (this._shadow) {\r\n\t\t\tsetOpacity(this._shadow, opacity);\r\n\t\t}\r\n\t},\r\n\r\n\t_bringToFront: function () {\r\n\t\tthis._updateZIndex(this.options.riseOffset);\r\n\t},\r\n\r\n\t_resetZIndex: function () {\r\n\t\tthis._updateZIndex(0);\r\n\t},\r\n\r\n\t_panOnFocus: function () {\r\n\t\tvar map = this._map;\r\n\t\tif (!map) { return; }\r\n\r\n\t\tvar iconOpts = this.options.icon.options;\r\n\t\tvar size = iconOpts.iconSize ? toPoint(iconOpts.iconSize) : toPoint(0, 0);\r\n\t\tvar anchor = iconOpts.iconAnchor ? toPoint(iconOpts.iconAnchor) : toPoint(0, 0);\r\n\r\n\t\tmap.panInside(this._latlng, {\r\n\t\t\tpaddingTopLeft: anchor,\r\n\t\t\tpaddingBottomRight: size.subtract(anchor)\r\n\t\t});\r\n\t},\r\n\r\n\t_getPopupAnchor: function () {\r\n\t\treturn this.options.icon.options.popupAnchor;\r\n\t},\r\n\r\n\t_getTooltipAnchor: function () {\r\n\t\treturn this.options.icon.options.tooltipAnchor;\r\n\t}\r\n});\r\n\r\n\r\n// factory L.marker(latlng: LatLng, options? : Marker options)\r\n\r\n// @factory L.marker(latlng: LatLng, options? : Marker options)\r\n// Instantiates a Marker object given a geographical point and optionally an options object.\r\nfunction marker(latlng, options) {\r\n\treturn new Marker(latlng, options);\r\n}\n\n/*\n * @class Path\n * @aka L.Path\n * @inherits Interactive layer\n *\n * An abstract class that contains options and constants shared between vector\n * overlays (Polygon, Polyline, Circle). Do not use it directly. Extends `Layer`.\n */\n\nvar Path = Layer.extend({\n\n\t// @section\n\t// @aka Path options\n\toptions: {\n\t\t// @option stroke: Boolean = true\n\t\t// Whether to draw stroke along the path. Set it to `false` to disable borders on polygons or circles.\n\t\tstroke: true,\n\n\t\t// @option color: String = '#3388ff'\n\t\t// Stroke color\n\t\tcolor: '#3388ff',\n\n\t\t// @option weight: Number = 3\n\t\t// Stroke width in pixels\n\t\tweight: 3,\n\n\t\t// @option opacity: Number = 1.0\n\t\t// Stroke opacity\n\t\topacity: 1,\n\n\t\t// @option lineCap: String= 'round'\n\t\t// A string that defines [shape to be used at the end](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linecap) of the stroke.\n\t\tlineCap: 'round',\n\n\t\t// @option lineJoin: String = 'round'\n\t\t// A string that defines [shape to be used at the corners](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linejoin) of the stroke.\n\t\tlineJoin: 'round',\n\n\t\t// @option dashArray: String = null\n\t\t// A string that defines the stroke [dash pattern](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dasharray). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n\t\tdashArray: null,\n\n\t\t// @option dashOffset: String = null\n\t\t// A string that defines the [distance into the dash pattern to start the dash](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dashoffset). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n\t\tdashOffset: null,\n\n\t\t// @option fill: Boolean = depends\n\t\t// Whether to fill the path with color. Set it to `false` to disable filling on polygons or circles.\n\t\tfill: false,\n\n\t\t// @option fillColor: String = *\n\t\t// Fill color. Defaults to the value of the [`color`](#path-color) option\n\t\tfillColor: null,\n\n\t\t// @option fillOpacity: Number = 0.2\n\t\t// Fill opacity.\n\t\tfillOpacity: 0.2,\n\n\t\t// @option fillRule: String = 'evenodd'\n\t\t// A string that defines [how the inside of a shape](https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule) is determined.\n\t\tfillRule: 'evenodd',\n\n\t\t// className: '',\n\n\t\t// Option inherited from \"Interactive layer\" abstract class\n\t\tinteractive: true,\n\n\t\t// @option bubblingMouseEvents: Boolean = true\n\t\t// When `true`, a mouse event on this path will trigger the same event on the map\n\t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\n\t\tbubblingMouseEvents: true\n\t},\n\n\tbeforeAdd: function (map) {\n\t\t// Renderer is set here because we need to call renderer.getEvents\n\t\t// before this.getEvents.\n\t\tthis._renderer = map.getRenderer(this);\n\t},\n\n\tonAdd: function () {\n\t\tthis._renderer._initPath(this);\n\t\tthis._reset();\n\t\tthis._renderer._addPath(this);\n\t},\n\n\tonRemove: function () {\n\t\tthis._renderer._removePath(this);\n\t},\n\n\t// @method redraw(): this\n\t// Redraws the layer. Sometimes useful after you changed the coordinates that the path uses.\n\tredraw: function () {\n\t\tif (this._map) {\n\t\t\tthis._renderer._updatePath(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method setStyle(style: Path options): this\n\t// Changes the appearance of a Path based on the options in the `Path options` object.\n\tsetStyle: function (style) {\n\t\tsetOptions(this, style);\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._updateStyle(this);\n\t\t\tif (this.options.stroke && style && Object.prototype.hasOwnProperty.call(style, 'weight')) {\n\t\t\t\tthis._updateBounds();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method bringToFront(): this\n\t// Brings the layer to the top of all path layers.\n\tbringToFront: function () {\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._bringToFront(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\t// @method bringToBack(): this\n\t// Brings the layer to the bottom of all path layers.\n\tbringToBack: function () {\n\t\tif (this._renderer) {\n\t\t\tthis._renderer._bringToBack(this);\n\t\t}\n\t\treturn this;\n\t},\n\n\tgetElement: function () {\n\t\treturn this._path;\n\t},\n\n\t_reset: function () {\n\t\t// defined in child classes\n\t\tthis._project();\n\t\tthis._update();\n\t},\n\n\t_clickTolerance: function () {\n\t\t// used when doing hit detection for Canvas layers\n\t\treturn (this.options.stroke ? this.options.weight / 2 : 0) +\n\t\t (this._renderer.options.tolerance || 0);\n\t}\n});\n\n/*\n * @class CircleMarker\n * @aka L.CircleMarker\n * @inherits Path\n *\n * A circle of a fixed size with radius specified in pixels. Extends `Path`.\n */\n\nvar CircleMarker = Path.extend({\n\n\t// @section\n\t// @aka CircleMarker options\n\toptions: {\n\t\tfill: true,\n\n\t\t// @option radius: Number = 10\n\t\t// Radius of the circle marker, in pixels\n\t\tradius: 10\n\t},\n\n\tinitialize: function (latlng, options) {\n\t\tsetOptions(this, options);\n\t\tthis._latlng = toLatLng(latlng);\n\t\tthis._radius = this.options.radius;\n\t},\n\n\t// @method setLatLng(latLng: LatLng): this\n\t// Sets the position of a circle marker to a new location.\n\tsetLatLng: function (latlng) {\n\t\tvar oldLatLng = this._latlng;\n\t\tthis._latlng = toLatLng(latlng);\n\t\tthis.redraw();\n\n\t\t// @event move: Event\n\t\t// Fired when the marker is moved via [`setLatLng`](#circlemarker-setlatlng). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\n\t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\n\t},\n\n\t// @method getLatLng(): LatLng\n\t// Returns the current geographical position of the circle marker\n\tgetLatLng: function () {\n\t\treturn this._latlng;\n\t},\n\n\t// @method setRadius(radius: Number): this\n\t// Sets the radius of a circle marker. Units are in pixels.\n\tsetRadius: function (radius) {\n\t\tthis.options.radius = this._radius = radius;\n\t\treturn this.redraw();\n\t},\n\n\t// @method getRadius(): Number\n\t// Returns the current radius of the circle\n\tgetRadius: function () {\n\t\treturn this._radius;\n\t},\n\n\tsetStyle : function (options) {\n\t\tvar radius = options && options.radius || this._radius;\n\t\tPath.prototype.setStyle.call(this, options);\n\t\tthis.setRadius(radius);\n\t\treturn this;\n\t},\n\n\t_project: function () {\n\t\tthis._point = this._map.latLngToLayerPoint(this._latlng);\n\t\tthis._updateBounds();\n\t},\n\n\t_updateBounds: function () {\n\t\tvar r = this._radius,\n\t\t r2 = this._radiusY || r,\n\t\t w = this._clickTolerance(),\n\t\t p = [r + w, r2 + w];\n\t\tthis._pxBounds = new Bounds(this._point.subtract(p), this._point.add(p));\n\t},\n\n\t_update: function () {\n\t\tif (this._map) {\n\t\t\tthis._updatePath();\n\t\t}\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updateCircle(this);\n\t},\n\n\t_empty: function () {\n\t\treturn this._radius && !this._renderer._bounds.intersects(this._pxBounds);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p) {\n\t\treturn p.distanceTo(this._point) <= this._radius + this._clickTolerance();\n\t}\n});\n\n\n// @factory L.circleMarker(latlng: LatLng, options?: CircleMarker options)\n// Instantiates a circle marker object given a geographical point, and an optional options object.\nfunction circleMarker(latlng, options) {\n\treturn new CircleMarker(latlng, options);\n}\n\n/*\n * @class Circle\n * @aka L.Circle\n * @inherits CircleMarker\n *\n * A class for drawing circle overlays on a map. Extends `CircleMarker`.\n *\n * It's an approximation and starts to diverge from a real circle closer to poles (due to projection distortion).\n *\n * @example\n *\n * ```js\n * L.circle([50.5, 30.5], {radius: 200}).addTo(map);\n * ```\n */\n\nvar Circle = CircleMarker.extend({\n\n\tinitialize: function (latlng, options, legacyOptions) {\n\t\tif (typeof options === 'number') {\n\t\t\t// Backwards compatibility with 0.7.x factory (latlng, radius, options?)\n\t\t\toptions = extend({}, legacyOptions, {radius: options});\n\t\t}\n\t\tsetOptions(this, options);\n\t\tthis._latlng = toLatLng(latlng);\n\n\t\tif (isNaN(this.options.radius)) { throw new Error('Circle radius cannot be NaN'); }\n\n\t\t// @section\n\t\t// @aka Circle options\n\t\t// @option radius: Number; Radius of the circle, in meters.\n\t\tthis._mRadius = this.options.radius;\n\t},\n\n\t// @method setRadius(radius: Number): this\n\t// Sets the radius of a circle. Units are in meters.\n\tsetRadius: function (radius) {\n\t\tthis._mRadius = radius;\n\t\treturn this.redraw();\n\t},\n\n\t// @method getRadius(): Number\n\t// Returns the current radius of a circle. Units are in meters.\n\tgetRadius: function () {\n\t\treturn this._mRadius;\n\t},\n\n\t// @method getBounds(): LatLngBounds\n\t// Returns the `LatLngBounds` of the path.\n\tgetBounds: function () {\n\t\tvar half = [this._radius, this._radiusY || this._radius];\n\n\t\treturn new LatLngBounds(\n\t\t\tthis._map.layerPointToLatLng(this._point.subtract(half)),\n\t\t\tthis._map.layerPointToLatLng(this._point.add(half)));\n\t},\n\n\tsetStyle: Path.prototype.setStyle,\n\n\t_project: function () {\n\n\t\tvar lng = this._latlng.lng,\n\t\t lat = this._latlng.lat,\n\t\t map = this._map,\n\t\t crs = map.options.crs;\n\n\t\tif (crs.distance === Earth.distance) {\n\t\t\tvar d = Math.PI / 180,\n\t\t\t latR = (this._mRadius / Earth.R) / d,\n\t\t\t top = map.project([lat + latR, lng]),\n\t\t\t bottom = map.project([lat - latR, lng]),\n\t\t\t p = top.add(bottom).divideBy(2),\n\t\t\t lat2 = map.unproject(p).lat,\n\t\t\t lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d)) /\n\t\t\t (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\n\n\t\t\tif (isNaN(lngR) || lngR === 0) {\n\t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\n\t\t\t}\n\n\t\t\tthis._point = p.subtract(map.getPixelOrigin());\n\t\t\tthis._radius = isNaN(lngR) ? 0 : p.x - map.project([lat2, lng - lngR]).x;\n\t\t\tthis._radiusY = p.y - top.y;\n\n\t\t} else {\n\t\t\tvar latlng2 = crs.unproject(crs.project(this._latlng).subtract([this._mRadius, 0]));\n\n\t\t\tthis._point = map.latLngToLayerPoint(this._latlng);\n\t\t\tthis._radius = this._point.x - map.latLngToLayerPoint(latlng2).x;\n\t\t}\n\n\t\tthis._updateBounds();\n\t}\n});\n\n// @factory L.circle(latlng: LatLng, options?: Circle options)\n// Instantiates a circle object given a geographical point, and an options object\n// which contains the circle radius.\n// @alternative\n// @factory L.circle(latlng: LatLng, radius: Number, options?: Circle options)\n// Obsolete way of instantiating a circle, for compatibility with 0.7.x code.\n// Do not use in new applications or plugins.\nfunction circle(latlng, options, legacyOptions) {\n\treturn new Circle(latlng, options, legacyOptions);\n}\n\n/*\n * @class Polyline\n * @aka L.Polyline\n * @inherits Path\n *\n * A class for drawing polyline overlays on a map. Extends `Path`.\n *\n * @example\n *\n * ```js\n * // create a red polyline from an array of LatLng points\n * var latlngs = [\n * \t[45.51, -122.68],\n * \t[37.77, -122.43],\n * \t[34.04, -118.2]\n * ];\n *\n * var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polyline\n * map.fitBounds(polyline.getBounds());\n * ```\n *\n * You can also pass a multi-dimensional array to represent a `MultiPolyline` shape:\n *\n * ```js\n * // create a red polyline from an array of arrays of LatLng points\n * var latlngs = [\n * \t[[45.51, -122.68],\n * \t [37.77, -122.43],\n * \t [34.04, -118.2]],\n * \t[[40.78, -73.91],\n * \t [41.83, -87.62],\n * \t [32.76, -96.72]]\n * ];\n * ```\n */\n\n\nvar Polyline = Path.extend({\n\n\t// @section\n\t// @aka Polyline options\n\toptions: {\n\t\t// @option smoothFactor: Number = 1.0\n\t\t// How much to simplify the polyline on each zoom level. More means\n\t\t// better performance and smoother look, and less means more accurate representation.\n\t\tsmoothFactor: 1.0,\n\n\t\t// @option noClip: Boolean = false\n\t\t// Disable polyline clipping.\n\t\tnoClip: false\n\t},\n\n\tinitialize: function (latlngs, options) {\n\t\tsetOptions(this, options);\n\t\tthis._setLatLngs(latlngs);\n\t},\n\n\t// @method getLatLngs(): LatLng[]\n\t// Returns an array of the points in the path, or nested arrays of points in case of multi-polyline.\n\tgetLatLngs: function () {\n\t\treturn this._latlngs;\n\t},\n\n\t// @method setLatLngs(latlngs: LatLng[]): this\n\t// Replaces all the points in the polyline with the given array of geographical points.\n\tsetLatLngs: function (latlngs) {\n\t\tthis._setLatLngs(latlngs);\n\t\treturn this.redraw();\n\t},\n\n\t// @method isEmpty(): Boolean\n\t// Returns `true` if the Polyline has no LatLngs.\n\tisEmpty: function () {\n\t\treturn !this._latlngs.length;\n\t},\n\n\t// @method closestLayerPoint(p: Point): Point\n\t// Returns the point closest to `p` on the Polyline.\n\tclosestLayerPoint: function (p) {\n\t\tvar minDistance = Infinity,\n\t\t minPoint = null,\n\t\t closest = _sqClosestPointOnSegment,\n\t\t p1, p2;\n\n\t\tfor (var j = 0, jLen = this._parts.length; j < jLen; j++) {\n\t\t\tvar points = this._parts[j];\n\n\t\t\tfor (var i = 1, len = points.length; i < len; i++) {\n\t\t\t\tp1 = points[i - 1];\n\t\t\t\tp2 = points[i];\n\n\t\t\t\tvar sqDist = closest(p, p1, p2, true);\n\n\t\t\t\tif (sqDist < minDistance) {\n\t\t\t\t\tminDistance = sqDist;\n\t\t\t\t\tminPoint = closest(p, p1, p2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (minPoint) {\n\t\t\tminPoint.distance = Math.sqrt(minDistance);\n\t\t}\n\t\treturn minPoint;\n\t},\n\n\t// @method getCenter(): LatLng\n\t// Returns the center ([centroid](https://en.wikipedia.org/wiki/Centroid)) of the polyline.\n\tgetCenter: function () {\n\t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n\t\tif (!this._map) {\n\t\t\tthrow new Error('Must add layer to map before using getCenter()');\n\t\t}\n\n\t\tvar i, halfDist, segDist, dist, p1, p2, ratio,\n\t\t points = this._rings[0],\n\t\t len = points.length;\n\n\t\tif (!len) { return null; }\n\n\t\t// polyline centroid algorithm; only uses the first ring if there are multiple\n\n\t\tfor (i = 0, halfDist = 0; i < len - 1; i++) {\n\t\t\thalfDist += points[i].distanceTo(points[i + 1]) / 2;\n\t\t}\n\n\t\t// The line is so small in the current view that all points are on the same pixel.\n\t\tif (halfDist === 0) {\n\t\t\treturn this._map.layerPointToLatLng(points[0]);\n\t\t}\n\n\t\tfor (i = 0, dist = 0; i < len - 1; i++) {\n\t\t\tp1 = points[i];\n\t\t\tp2 = points[i + 1];\n\t\t\tsegDist = p1.distanceTo(p2);\n\t\t\tdist += segDist;\n\n\t\t\tif (dist > halfDist) {\n\t\t\t\tratio = (dist - halfDist) / segDist;\n\t\t\t\treturn this._map.layerPointToLatLng([\n\t\t\t\t\tp2.x - ratio * (p2.x - p1.x),\n\t\t\t\t\tp2.y - ratio * (p2.y - p1.y)\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\t},\n\n\t// @method getBounds(): LatLngBounds\n\t// Returns the `LatLngBounds` of the path.\n\tgetBounds: function () {\n\t\treturn this._bounds;\n\t},\n\n\t// @method addLatLng(latlng: LatLng, latlngs?: LatLng[]): this\n\t// Adds a given point to the polyline. By default, adds to the first ring of\n\t// the polyline in case of a multi-polyline, but can be overridden by passing\n\t// a specific ring as a LatLng array (that you can earlier access with [`getLatLngs`](#polyline-getlatlngs)).\n\taddLatLng: function (latlng, latlngs) {\n\t\tlatlngs = latlngs || this._defaultShape();\n\t\tlatlng = toLatLng(latlng);\n\t\tlatlngs.push(latlng);\n\t\tthis._bounds.extend(latlng);\n\t\treturn this.redraw();\n\t},\n\n\t_setLatLngs: function (latlngs) {\n\t\tthis._bounds = new LatLngBounds();\n\t\tthis._latlngs = this._convertLatLngs(latlngs);\n\t},\n\n\t_defaultShape: function () {\n\t\treturn isFlat(this._latlngs) ? this._latlngs : this._latlngs[0];\n\t},\n\n\t// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way\n\t_convertLatLngs: function (latlngs) {\n\t\tvar result = [],\n\t\t flat = isFlat(latlngs);\n\n\t\tfor (var i = 0, len = latlngs.length; i < len; i++) {\n\t\t\tif (flat) {\n\t\t\t\tresult[i] = toLatLng(latlngs[i]);\n\t\t\t\tthis._bounds.extend(result[i]);\n\t\t\t} else {\n\t\t\t\tresult[i] = this._convertLatLngs(latlngs[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\t_project: function () {\n\t\tvar pxBounds = new Bounds();\n\t\tthis._rings = [];\n\t\tthis._projectLatlngs(this._latlngs, this._rings, pxBounds);\n\n\t\tif (this._bounds.isValid() && pxBounds.isValid()) {\n\t\t\tthis._rawPxBounds = pxBounds;\n\t\t\tthis._updateBounds();\n\t\t}\n\t},\n\n\t_updateBounds: function () {\n\t\tvar w = this._clickTolerance(),\n\t\t p = new Point(w, w);\n\n\t\tif (!this._rawPxBounds) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._pxBounds = new Bounds([\n\t\t\tthis._rawPxBounds.min.subtract(p),\n\t\t\tthis._rawPxBounds.max.add(p)\n\t\t]);\n\t},\n\n\t// recursively turns latlngs into a set of rings with projected coordinates\n\t_projectLatlngs: function (latlngs, result, projectedBounds) {\n\t\tvar flat = latlngs[0] instanceof LatLng,\n\t\t len = latlngs.length,\n\t\t i, ring;\n\n\t\tif (flat) {\n\t\t\tring = [];\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tring[i] = this._map.latLngToLayerPoint(latlngs[i]);\n\t\t\t\tprojectedBounds.extend(ring[i]);\n\t\t\t}\n\t\t\tresult.push(ring);\n\t\t} else {\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tthis._projectLatlngs(latlngs[i], result, projectedBounds);\n\t\t\t}\n\t\t}\n\t},\n\n\t// clip polyline by renderer bounds so that we have less to render for performance\n\t_clipPoints: function () {\n\t\tvar bounds = this._renderer._bounds;\n\n\t\tthis._parts = [];\n\t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.noClip) {\n\t\t\tthis._parts = this._rings;\n\t\t\treturn;\n\t\t}\n\n\t\tvar parts = this._parts,\n\t\t i, j, k, len, len2, segment, points;\n\n\t\tfor (i = 0, k = 0, len = this._rings.length; i < len; i++) {\n\t\t\tpoints = this._rings[i];\n\n\t\t\tfor (j = 0, len2 = points.length; j < len2 - 1; j++) {\n\t\t\t\tsegment = clipSegment(points[j], points[j + 1], bounds, j, true);\n\n\t\t\t\tif (!segment) { continue; }\n\n\t\t\t\tparts[k] = parts[k] || [];\n\t\t\t\tparts[k].push(segment[0]);\n\n\t\t\t\t// if segment goes out of screen, or it's the last one, it's the end of the line part\n\t\t\t\tif ((segment[1] !== points[j + 1]) || (j === len2 - 2)) {\n\t\t\t\t\tparts[k].push(segment[1]);\n\t\t\t\t\tk++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// simplify each clipped part of the polyline for performance\n\t_simplifyPoints: function () {\n\t\tvar parts = this._parts,\n\t\t tolerance = this.options.smoothFactor;\n\n\t\tfor (var i = 0, len = parts.length; i < len; i++) {\n\t\t\tparts[i] = simplify(parts[i], tolerance);\n\t\t}\n\t},\n\n\t_update: function () {\n\t\tif (!this._map) { return; }\n\n\t\tthis._clipPoints();\n\t\tthis._simplifyPoints();\n\t\tthis._updatePath();\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updatePoly(this);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p, closed) {\n\t\tvar i, j, k, len, len2, part,\n\t\t w = this._clickTolerance();\n\n\t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n\t\t// hit detection for polylines\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n\t\t\tpart = this._parts[i];\n\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n\t\t\t\tif (!closed && (j === 0)) { continue; }\n\n\t\t\t\tif (pointToSegmentDistance(p, part[k], part[j]) <= w) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n});\n\n// @factory L.polyline(latlngs: LatLng[], options?: Polyline options)\n// Instantiates a polyline object given an array of geographical points and\n// optionally an options object. You can create a `Polyline` object with\n// multiple separate lines (`MultiPolyline`) by passing an array of arrays\n// of geographic points.\nfunction polyline(latlngs, options) {\n\treturn new Polyline(latlngs, options);\n}\n\n// Retrocompat. Allow plugins to support Leaflet versions before and after 1.1.\nPolyline._flat = _flat;\n\n/*\n * @class Polygon\n * @aka L.Polygon\n * @inherits Polyline\n *\n * A class for drawing polygon overlays on a map. Extends `Polyline`.\n *\n * Note that points you pass when creating a polygon shouldn't have an additional last point equal to the first one — it's better to filter out such points.\n *\n *\n * @example\n *\n * ```js\n * // create a red polygon from an array of LatLng points\n * var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];\n *\n * var polygon = L.polygon(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polygon\n * map.fitBounds(polygon.getBounds());\n * ```\n *\n * You can also pass an array of arrays of latlngs, with the first array representing the outer shape and the other arrays representing holes in the outer shape:\n *\n * ```js\n * var latlngs = [\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ];\n * ```\n *\n * Additionally, you can pass a multi-dimensional array to represent a MultiPolygon shape.\n *\n * ```js\n * var latlngs = [\n * [ // first polygon\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ],\n * [ // second polygon\n * [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]\n * ]\n * ];\n * ```\n */\n\nvar Polygon = Polyline.extend({\n\n\toptions: {\n\t\tfill: true\n\t},\n\n\tisEmpty: function () {\n\t\treturn !this._latlngs.length || !this._latlngs[0].length;\n\t},\n\n\tgetCenter: function () {\n\t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n\t\tif (!this._map) {\n\t\t\tthrow new Error('Must add layer to map before using getCenter()');\n\t\t}\n\n\t\tvar i, j, p1, p2, f, area, x, y, center,\n\t\t points = this._rings[0],\n\t\t len = points.length;\n\n\t\tif (!len) { return null; }\n\n\t\t// polygon centroid algorithm; only uses the first ring if there are multiple\n\n\t\tarea = x = y = 0;\n\n\t\tfor (i = 0, j = len - 1; i < len; j = i++) {\n\t\t\tp1 = points[i];\n\t\t\tp2 = points[j];\n\n\t\t\tf = p1.y * p2.x - p2.y * p1.x;\n\t\t\tx += (p1.x + p2.x) * f;\n\t\t\ty += (p1.y + p2.y) * f;\n\t\t\tarea += f * 3;\n\t\t}\n\n\t\tif (area === 0) {\n\t\t\t// Polygon is so small that all points are on same pixel.\n\t\t\tcenter = points[0];\n\t\t} else {\n\t\t\tcenter = [x / area, y / area];\n\t\t}\n\t\treturn this._map.layerPointToLatLng(center);\n\t},\n\n\t_convertLatLngs: function (latlngs) {\n\t\tvar result = Polyline.prototype._convertLatLngs.call(this, latlngs),\n\t\t len = result.length;\n\n\t\t// remove last point if it equals first one\n\t\tif (len >= 2 && result[0] instanceof LatLng && result[0].equals(result[len - 1])) {\n\t\t\tresult.pop();\n\t\t}\n\t\treturn result;\n\t},\n\n\t_setLatLngs: function (latlngs) {\n\t\tPolyline.prototype._setLatLngs.call(this, latlngs);\n\t\tif (isFlat(this._latlngs)) {\n\t\t\tthis._latlngs = [this._latlngs];\n\t\t}\n\t},\n\n\t_defaultShape: function () {\n\t\treturn isFlat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];\n\t},\n\n\t_clipPoints: function () {\n\t\t// polygons need a different clipping algorithm so we redefine that\n\n\t\tvar bounds = this._renderer._bounds,\n\t\t w = this.options.weight,\n\t\t p = new Point(w, w);\n\n\t\t// increase clip padding by stroke width to avoid stroke on clip edges\n\t\tbounds = new Bounds(bounds.min.subtract(p), bounds.max.add(p));\n\n\t\tthis._parts = [];\n\t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.noClip) {\n\t\t\tthis._parts = this._rings;\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, len = this._rings.length, clipped; i < len; i++) {\n\t\t\tclipped = clipPolygon(this._rings[i], bounds, true);\n\t\t\tif (clipped.length) {\n\t\t\t\tthis._parts.push(clipped);\n\t\t\t}\n\t\t}\n\t},\n\n\t_updatePath: function () {\n\t\tthis._renderer._updatePoly(this, true);\n\t},\n\n\t// Needed by the `Canvas` renderer for interactivity\n\t_containsPoint: function (p) {\n\t\tvar inside = false,\n\t\t part, p1, p2, i, j, k, len, len2;\n\n\t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n\t\t// ray casting algorithm for detecting if point is in polygon\n\t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n\t\t\tpart = this._parts[i];\n\n\t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n\t\t\t\tp1 = part[j];\n\t\t\t\tp2 = part[k];\n\n\t\t\t\tif (((p1.y > p.y) !== (p2.y > p.y)) && (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) {\n\t\t\t\t\tinside = !inside;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// also check if it's on polygon stroke\n\t\treturn inside || Polyline.prototype._containsPoint.call(this, p, true);\n\t}\n\n});\n\n\n// @factory L.polygon(latlngs: LatLng[], options?: Polyline options)\nfunction polygon(latlngs, options) {\n\treturn new Polygon(latlngs, options);\n}\n\n/*\r\n * @class GeoJSON\r\n * @aka L.GeoJSON\r\n * @inherits FeatureGroup\r\n *\r\n * Represents a GeoJSON object or an array of GeoJSON objects. Allows you to parse\r\n * GeoJSON data and display it on the map. Extends `FeatureGroup`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.geoJSON(data, {\r\n * \tstyle: function (feature) {\r\n * \t\treturn {color: feature.properties.color};\r\n * \t}\r\n * }).bindPopup(function (layer) {\r\n * \treturn layer.feature.properties.description;\r\n * }).addTo(map);\r\n * ```\r\n */\r\n\r\nvar GeoJSON = FeatureGroup.extend({\r\n\r\n\t/* @section\r\n\t * @aka GeoJSON options\r\n\t *\r\n\t * @option pointToLayer: Function = *\r\n\t * A `Function` defining how GeoJSON points spawn Leaflet layers. It is internally\r\n\t * called when data is added, passing the GeoJSON point feature and its `LatLng`.\r\n\t * The default is to spawn a default `Marker`:\r\n\t * ```js\r\n\t * function(geoJsonPoint, latlng) {\r\n\t * \treturn L.marker(latlng);\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @option style: Function = *\r\n\t * A `Function` defining the `Path options` for styling GeoJSON lines and polygons,\r\n\t * called internally when data is added.\r\n\t * The default value is to not override any defaults:\r\n\t * ```js\r\n\t * function (geoJsonFeature) {\r\n\t * \treturn {}\r\n\t * }\r\n\t * ```\r\n\t *\r\n\t * @option onEachFeature: Function = *\r\n\t * A `Function` that will be called once for each created `Feature`, after it has\r\n\t * been created and styled. Useful for attaching events and popups to features.\r\n\t * The default is to do nothing with the newly created layers:\r\n\t * ```js\r\n\t * function (feature, layer) {}\r\n\t * ```\r\n\t *\r\n\t * @option filter: Function = *\r\n\t * A `Function` that will be used to decide whether to include a feature or not.\r\n\t * The default is to include all features:\r\n\t * ```js\r\n\t * function (geoJsonFeature) {\r\n\t * \treturn true;\r\n\t * }\r\n\t * ```\r\n\t * Note: dynamically changing the `filter` option will have effect only on newly\r\n\t * added data. It will _not_ re-evaluate already included features.\r\n\t *\r\n\t * @option coordsToLatLng: Function = *\r\n\t * A `Function` that will be used for converting GeoJSON coordinates to `LatLng`s.\r\n\t * The default is the `coordsToLatLng` static method.\r\n\t *\r\n\t * @option markersInheritOptions: Boolean = false\r\n\t * Whether default Markers for \"Point\" type Features inherit from group options.\r\n\t */\r\n\r\n\tinitialize: function (geojson, options) {\r\n\t\tsetOptions(this, options);\r\n\r\n\t\tthis._layers = {};\r\n\r\n\t\tif (geojson) {\r\n\t\t\tthis.addData(geojson);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method addData( data ): this\r\n\t// Adds a GeoJSON object to the layer.\r\n\taddData: function (geojson) {\r\n\t\tvar features = isArray(geojson) ? geojson : geojson.features,\r\n\t\t i, len, feature;\r\n\r\n\t\tif (features) {\r\n\t\t\tfor (i = 0, len = features.length; i < len; i++) {\r\n\t\t\t\t// only add this if geometry or geometries are set and not null\r\n\t\t\t\tfeature = features[i];\r\n\t\t\t\tif (feature.geometries || feature.geometry || feature.features || feature.coordinates) {\r\n\t\t\t\t\tthis.addData(feature);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (options.filter && !options.filter(geojson)) { return this; }\r\n\r\n\t\tvar layer = geometryToLayer(geojson, options);\r\n\t\tif (!layer) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tlayer.feature = asFeature(geojson);\r\n\r\n\t\tlayer.defaultOptions = layer.options;\r\n\t\tthis.resetStyle(layer);\r\n\r\n\t\tif (options.onEachFeature) {\r\n\t\t\toptions.onEachFeature(geojson, layer);\r\n\t\t}\r\n\r\n\t\treturn this.addLayer(layer);\r\n\t},\r\n\r\n\t// @method resetStyle( layer? ): this\r\n\t// Resets the given vector layer's style to the original GeoJSON style, useful for resetting style after hover events.\r\n\t// If `layer` is omitted, the style of all features in the current layer is reset.\r\n\tresetStyle: function (layer) {\r\n\t\tif (layer === undefined) {\r\n\t\t\treturn this.eachLayer(this.resetStyle, this);\r\n\t\t}\r\n\t\t// reset any custom styles\r\n\t\tlayer.options = extend({}, layer.defaultOptions);\r\n\t\tthis._setLayerStyle(layer, this.options.style);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setStyle( style ): this\r\n\t// Changes styles of GeoJSON vector layers with the given style function.\r\n\tsetStyle: function (style) {\r\n\t\treturn this.eachLayer(function (layer) {\r\n\t\t\tthis._setLayerStyle(layer, style);\r\n\t\t}, this);\r\n\t},\r\n\r\n\t_setLayerStyle: function (layer, style) {\r\n\t\tif (layer.setStyle) {\r\n\t\t\tif (typeof style === 'function') {\r\n\t\t\t\tstyle = style(layer.feature);\r\n\t\t\t}\r\n\t\t\tlayer.setStyle(style);\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// @section\r\n// There are several static functions which can be called without instantiating L.GeoJSON:\r\n\r\n// @function geometryToLayer(featureData: Object, options?: GeoJSON options): Layer\r\n// Creates a `Layer` from a given GeoJSON feature. Can use a custom\r\n// [`pointToLayer`](#geojson-pointtolayer) and/or [`coordsToLatLng`](#geojson-coordstolatlng)\r\n// functions if provided as options.\r\nfunction geometryToLayer(geojson, options) {\r\n\r\n\tvar geometry = geojson.type === 'Feature' ? geojson.geometry : geojson,\r\n\t coords = geometry ? geometry.coordinates : null,\r\n\t layers = [],\r\n\t pointToLayer = options && options.pointToLayer,\r\n\t _coordsToLatLng = options && options.coordsToLatLng || coordsToLatLng,\r\n\t latlng, latlngs, i, len;\r\n\r\n\tif (!coords && !geometry) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tswitch (geometry.type) {\r\n\tcase 'Point':\r\n\t\tlatlng = _coordsToLatLng(coords);\r\n\t\treturn _pointToLayer(pointToLayer, geojson, latlng, options);\r\n\r\n\tcase 'MultiPoint':\r\n\t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n\t\t\tlatlng = _coordsToLatLng(coords[i]);\r\n\t\t\tlayers.push(_pointToLayer(pointToLayer, geojson, latlng, options));\r\n\t\t}\r\n\t\treturn new FeatureGroup(layers);\r\n\r\n\tcase 'LineString':\r\n\tcase 'MultiLineString':\r\n\t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'LineString' ? 0 : 1, _coordsToLatLng);\r\n\t\treturn new Polyline(latlngs, options);\r\n\r\n\tcase 'Polygon':\r\n\tcase 'MultiPolygon':\r\n\t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'Polygon' ? 1 : 2, _coordsToLatLng);\r\n\t\treturn new Polygon(latlngs, options);\r\n\r\n\tcase 'GeometryCollection':\r\n\t\tfor (i = 0, len = geometry.geometries.length; i < len; i++) {\r\n\t\t\tvar layer = geometryToLayer({\r\n\t\t\t\tgeometry: geometry.geometries[i],\r\n\t\t\t\ttype: 'Feature',\r\n\t\t\t\tproperties: geojson.properties\r\n\t\t\t}, options);\r\n\r\n\t\t\tif (layer) {\r\n\t\t\t\tlayers.push(layer);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new FeatureGroup(layers);\r\n\r\n\tdefault:\r\n\t\tthrow new Error('Invalid GeoJSON object.');\r\n\t}\r\n}\r\n\r\nfunction _pointToLayer(pointToLayerFn, geojson, latlng, options) {\r\n\treturn pointToLayerFn ?\r\n\t\tpointToLayerFn(geojson, latlng) :\r\n\t\tnew Marker(latlng, options && options.markersInheritOptions && options);\r\n}\r\n\r\n// @function coordsToLatLng(coords: Array): LatLng\r\n// Creates a `LatLng` object from an array of 2 numbers (longitude, latitude)\r\n// or 3 numbers (longitude, latitude, altitude) used in GeoJSON for points.\r\nfunction coordsToLatLng(coords) {\r\n\treturn new LatLng(coords[1], coords[0], coords[2]);\r\n}\r\n\r\n// @function coordsToLatLngs(coords: Array, levelsDeep?: Number, coordsToLatLng?: Function): Array\r\n// Creates a multidimensional array of `LatLng`s from a GeoJSON coordinates array.\r\n// `levelsDeep` specifies the nesting level (0 is for an array of points, 1 for an array of arrays of points, etc., 0 by default).\r\n// Can use a custom [`coordsToLatLng`](#geojson-coordstolatlng) function.\r\nfunction coordsToLatLngs(coords, levelsDeep, _coordsToLatLng) {\r\n\tvar latlngs = [];\r\n\r\n\tfor (var i = 0, len = coords.length, latlng; i < len; i++) {\r\n\t\tlatlng = levelsDeep ?\r\n\t\t\tcoordsToLatLngs(coords[i], levelsDeep - 1, _coordsToLatLng) :\r\n\t\t\t(_coordsToLatLng || coordsToLatLng)(coords[i]);\r\n\r\n\t\tlatlngs.push(latlng);\r\n\t}\r\n\r\n\treturn latlngs;\r\n}\r\n\r\n// @function latLngToCoords(latlng: LatLng, precision?: Number|false): Array\r\n// Reverse of [`coordsToLatLng`](#geojson-coordstolatlng)\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\nfunction latLngToCoords(latlng, precision) {\r\n\tlatlng = toLatLng(latlng);\r\n\treturn latlng.alt !== undefined ?\r\n\t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision), formatNum(latlng.alt, precision)] :\r\n\t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision)];\r\n}\r\n\r\n// @function latLngsToCoords(latlngs: Array, levelsDeep?: Number, closed?: Boolean, precision?: Number|false): Array\r\n// Reverse of [`coordsToLatLngs`](#geojson-coordstolatlngs)\r\n// `closed` determines whether the first point should be appended to the end of the array to close the feature, only used when `levelsDeep` is 0. False by default.\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\nfunction latLngsToCoords(latlngs, levelsDeep, closed, precision) {\r\n\tvar coords = [];\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tcoords.push(levelsDeep ?\r\n\t\t\tlatLngsToCoords(latlngs[i], levelsDeep - 1, closed, precision) :\r\n\t\t\tlatLngToCoords(latlngs[i], precision));\r\n\t}\r\n\r\n\tif (!levelsDeep && closed) {\r\n\t\tcoords.push(coords[0]);\r\n\t}\r\n\r\n\treturn coords;\r\n}\r\n\r\nfunction getFeature(layer, newGeometry) {\r\n\treturn layer.feature ?\r\n\t\textend({}, layer.feature, {geometry: newGeometry}) :\r\n\t\tasFeature(newGeometry);\r\n}\r\n\r\n// @function asFeature(geojson: Object): Object\r\n// Normalize GeoJSON geometries/features into GeoJSON features.\r\nfunction asFeature(geojson) {\r\n\tif (geojson.type === 'Feature' || geojson.type === 'FeatureCollection') {\r\n\t\treturn geojson;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttype: 'Feature',\r\n\t\tproperties: {},\r\n\t\tgeometry: geojson\r\n\t};\r\n}\r\n\r\nvar PointToGeoJSON = {\r\n\ttoGeoJSON: function (precision) {\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: 'Point',\r\n\t\t\tcoordinates: latLngToCoords(this.getLatLng(), precision)\r\n\t\t});\r\n\t}\r\n};\r\n\r\n// @namespace Marker\r\n// @section Other methods\r\n// @method toGeoJSON(precision?: Number|false): Object\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the marker (as a GeoJSON `Point` Feature).\r\nMarker.include(PointToGeoJSON);\r\n\r\n// @namespace CircleMarker\r\n// @method toGeoJSON(precision?: Number|false): Object\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the circle marker (as a GeoJSON `Point` Feature).\r\nCircle.include(PointToGeoJSON);\r\nCircleMarker.include(PointToGeoJSON);\r\n\r\n\r\n// @namespace Polyline\r\n// @method toGeoJSON(precision?: Number|false): Object\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).\r\nPolyline.include({\r\n\ttoGeoJSON: function (precision) {\r\n\t\tvar multi = !isFlat(this._latlngs);\r\n\r\n\t\tvar coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: (multi ? 'Multi' : '') + 'LineString',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t}\r\n});\r\n\r\n// @namespace Polygon\r\n// @method toGeoJSON(precision?: Number|false): Object\r\n// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).\r\nPolygon.include({\r\n\ttoGeoJSON: function (precision) {\r\n\t\tvar holes = !isFlat(this._latlngs),\r\n\t\t multi = holes && !isFlat(this._latlngs[0]);\r\n\r\n\t\tvar coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);\r\n\r\n\t\tif (!holes) {\r\n\t\t\tcoords = [coords];\r\n\t\t}\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: (multi ? 'Multi' : '') + 'Polygon',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t}\r\n});\r\n\r\n\r\n// @namespace LayerGroup\r\nLayerGroup.include({\r\n\ttoMultiPoint: function (precision) {\r\n\t\tvar coords = [];\r\n\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tcoords.push(layer.toGeoJSON(precision).geometry.coordinates);\r\n\t\t});\r\n\r\n\t\treturn getFeature(this, {\r\n\t\t\ttype: 'MultiPoint',\r\n\t\t\tcoordinates: coords\r\n\t\t});\r\n\t},\r\n\r\n\t// @method toGeoJSON(precision?: Number|false): Object\r\n\t// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n\t// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the layer group (as a GeoJSON `FeatureCollection`, `GeometryCollection`, or `MultiPoint`).\r\n\ttoGeoJSON: function (precision) {\r\n\r\n\t\tvar type = this.feature && this.feature.geometry && this.feature.geometry.type;\r\n\r\n\t\tif (type === 'MultiPoint') {\r\n\t\t\treturn this.toMultiPoint(precision);\r\n\t\t}\r\n\r\n\t\tvar isGeometryCollection = type === 'GeometryCollection',\r\n\t\t jsons = [];\r\n\r\n\t\tthis.eachLayer(function (layer) {\r\n\t\t\tif (layer.toGeoJSON) {\r\n\t\t\t\tvar json = layer.toGeoJSON(precision);\r\n\t\t\t\tif (isGeometryCollection) {\r\n\t\t\t\t\tjsons.push(json.geometry);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar feature = asFeature(json);\r\n\t\t\t\t\t// Squash nested feature collections\r\n\t\t\t\t\tif (feature.type === 'FeatureCollection') {\r\n\t\t\t\t\t\tjsons.push.apply(jsons, feature.features);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tjsons.push(feature);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (isGeometryCollection) {\r\n\t\t\treturn getFeature(this, {\r\n\t\t\t\tgeometries: jsons,\r\n\t\t\t\ttype: 'GeometryCollection'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttype: 'FeatureCollection',\r\n\t\t\tfeatures: jsons\r\n\t\t};\r\n\t}\r\n});\r\n\r\n// @namespace GeoJSON\r\n// @factory L.geoJSON(geojson?: Object, options?: GeoJSON options)\r\n// Creates a GeoJSON layer. Optionally accepts an object in\r\n// [GeoJSON format](https://tools.ietf.org/html/rfc7946) to display on the map\r\n// (you can alternatively add it later with `addData` method) and an `options` object.\r\nfunction geoJSON(geojson, options) {\r\n\treturn new GeoJSON(geojson, options);\r\n}\r\n\r\n// Backward compatibility.\r\nvar geoJson = geoJSON;\n\n/*\r\n * @class ImageOverlay\r\n * @aka L.ImageOverlay\r\n * @inherits Interactive layer\r\n *\r\n * Used to load and display a single image over specific bounds of the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var imageUrl = 'https://maps.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',\r\n * \timageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];\r\n * L.imageOverlay(imageUrl, imageBounds).addTo(map);\r\n * ```\r\n */\r\n\r\nvar ImageOverlay = Layer.extend({\r\n\r\n\t// @section\r\n\t// @aka ImageOverlay options\r\n\toptions: {\r\n\t\t// @option opacity: Number = 1.0\r\n\t\t// The opacity of the image overlay.\r\n\t\topacity: 1,\r\n\r\n\t\t// @option alt: String = ''\r\n\t\t// Text for the `alt` attribute of the image (useful for accessibility).\r\n\t\talt: '',\r\n\r\n\t\t// @option interactive: Boolean = false\r\n\t\t// If `true`, the image overlay will emit [mouse events](#interactive-layer) when clicked or hovered.\r\n\t\tinteractive: false,\r\n\r\n\t\t// @option crossOrigin: Boolean|String = false\r\n\t\t// Whether the crossOrigin attribute will be added to the image.\r\n\t\t// If a String is provided, the image will have its crossOrigin attribute set to the String provided. This is needed if you want to access image pixel data.\r\n\t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n\t\tcrossOrigin: false,\r\n\r\n\t\t// @option errorOverlayUrl: String = ''\r\n\t\t// URL to the overlay image to show in place of the overlay that failed to load.\r\n\t\terrorOverlayUrl: '',\r\n\r\n\t\t// @option zIndex: Number = 1\r\n\t\t// The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the overlay layer.\r\n\t\tzIndex: 1,\r\n\r\n\t\t// @option className: String = ''\r\n\t\t// A custom class name to assign to the image. Empty by default.\r\n\t\tclassName: ''\r\n\t},\r\n\r\n\tinitialize: function (url, bounds, options) { // (String, LatLngBounds, Object)\r\n\t\tthis._url = url;\r\n\t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n\t\tsetOptions(this, options);\r\n\t},\r\n\r\n\tonAdd: function () {\r\n\t\tif (!this._image) {\r\n\t\t\tthis._initImage();\r\n\r\n\t\t\tif (this.options.opacity < 1) {\r\n\t\t\t\tthis._updateOpacity();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.options.interactive) {\r\n\t\t\taddClass(this._image, 'leaflet-interactive');\r\n\t\t\tthis.addInteractiveTarget(this._image);\r\n\t\t}\r\n\r\n\t\tthis.getPane().appendChild(this._image);\r\n\t\tthis._reset();\r\n\t},\r\n\r\n\tonRemove: function () {\r\n\t\tremove(this._image);\r\n\t\tif (this.options.interactive) {\r\n\t\t\tthis.removeInteractiveTarget(this._image);\r\n\t\t}\r\n\t},\r\n\r\n\t// @method setOpacity(opacity: Number): this\r\n\t// Sets the opacity of the overlay.\r\n\tsetOpacity: function (opacity) {\r\n\t\tthis.options.opacity = opacity;\r\n\r\n\t\tif (this._image) {\r\n\t\t\tthis._updateOpacity();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsetStyle: function (styleOpts) {\r\n\t\tif (styleOpts.opacity) {\r\n\t\t\tthis.setOpacity(styleOpts.opacity);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method bringToFront(): this\r\n\t// Brings the layer to the top of all overlays.\r\n\tbringToFront: function () {\r\n\t\tif (this._map) {\r\n\t\t\ttoFront(this._image);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method bringToBack(): this\r\n\t// Brings the layer to the bottom of all overlays.\r\n\tbringToBack: function () {\r\n\t\tif (this._map) {\r\n\t\t\ttoBack(this._image);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setUrl(url: String): this\r\n\t// Changes the URL of the image.\r\n\tsetUrl: function (url) {\r\n\t\tthis._url = url;\r\n\r\n\t\tif (this._image) {\r\n\t\t\tthis._image.src = url;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method setBounds(bounds: LatLngBounds): this\r\n\t// Update the bounds that this ImageOverlay covers\r\n\tsetBounds: function (bounds) {\r\n\t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n\t\tif (this._map) {\r\n\t\t\tthis._reset();\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgetEvents: function () {\r\n\t\tvar events = {\r\n\t\t\tzoom: this._reset,\r\n\t\t\tviewreset: this._reset\r\n\t\t};\r\n\r\n\t\tif (this._zoomAnimated) {\r\n\t\t\tevents.zoomanim = this._animateZoom;\r\n\t\t}\r\n\r\n\t\treturn events;\r\n\t},\r\n\r\n\t// @method setZIndex(value: Number): this\r\n\t// Changes the [zIndex](#imageoverlay-zindex) of the image overlay.\r\n\tsetZIndex: function (value) {\r\n\t\tthis.options.zIndex = value;\r\n\t\tthis._updateZIndex();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getBounds(): LatLngBounds\r\n\t// Get the bounds that this ImageOverlay covers\r\n\tgetBounds: function () {\r\n\t\treturn this._bounds;\r\n\t},\r\n\r\n\t// @method getElement(): HTMLElement\r\n\t// Returns the instance of [`HTMLImageElement`](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)\r\n\t// used by this overlay.\r\n\tgetElement: function () {\r\n\t\treturn this._image;\r\n\t},\r\n\r\n\t_initImage: function () {\r\n\t\tvar wasElementSupplied = this._url.tagName === 'IMG';\r\n\t\tvar img = this._image = wasElementSupplied ? this._url : create$1('img');\r\n\r\n\t\taddClass(img, 'leaflet-image-layer');\r\n\t\tif (this._zoomAnimated) { addClass(img, 'leaflet-zoom-animated'); }\r\n\t\tif (this.options.className) { addClass(img, this.options.className); }\r\n\r\n\t\timg.onselectstart = falseFn;\r\n\t\timg.onmousemove = falseFn;\r\n\r\n\t\t// @event load: Event\r\n\t\t// Fired when the ImageOverlay layer has loaded its image\r\n\t\timg.onload = bind(this.fire, this, 'load');\r\n\t\timg.onerror = bind(this._overlayOnError, this, 'error');\r\n\r\n\t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n\t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n\t\t}\r\n\r\n\t\tif (this.options.zIndex) {\r\n\t\t\tthis._updateZIndex();\r\n\t\t}\r\n\r\n\t\tif (wasElementSupplied) {\r\n\t\t\tthis._url = img.src;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\timg.src = this._url;\r\n\t\timg.alt = this.options.alt;\r\n\t},\r\n\r\n\t_animateZoom: function (e) {\r\n\t\tvar scale = this._map.getZoomScale(e.zoom),\r\n\t\t offset = this._map._latLngBoundsToNewLayerBounds(this._bounds, e.zoom, e.center).min;\r\n\r\n\t\tsetTransform(this._image, offset, scale);\r\n\t},\r\n\r\n\t_reset: function () {\r\n\t\tvar image = this._image,\r\n\t\t bounds = new Bounds(\r\n\t\t this._map.latLngToLayerPoint(this._bounds.getNorthWest()),\r\n\t\t this._map.latLngToLayerPoint(this._bounds.getSouthEast())),\r\n\t\t size = bounds.getSize();\r\n\r\n\t\tsetPosition(image, bounds.min);\r\n\r\n\t\timage.style.width = size.x + 'px';\r\n\t\timage.style.height = size.y + 'px';\r\n\t},\r\n\r\n\t_updateOpacity: function () {\r\n\t\tsetOpacity(this._image, this.options.opacity);\r\n\t},\r\n\r\n\t_updateZIndex: function () {\r\n\t\tif (this._image && this.options.zIndex !== undefined && this.options.zIndex !== null) {\r\n\t\t\tthis._image.style.zIndex = this.options.zIndex;\r\n\t\t}\r\n\t},\r\n\r\n\t_overlayOnError: function () {\r\n\t\t// @event error: Event\r\n\t\t// Fired when the ImageOverlay layer fails to load its image\r\n\t\tthis.fire('error');\r\n\r\n\t\tvar errorUrl = this.options.errorOverlayUrl;\r\n\t\tif (errorUrl && this._url !== errorUrl) {\r\n\t\t\tthis._url = errorUrl;\r\n\t\t\tthis._image.src = errorUrl;\r\n\t\t}\r\n\t},\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the center of the ImageOverlay.\r\n\tgetCenter: function () {\r\n\t\treturn this._bounds.getCenter();\r\n\t}\r\n});\r\n\r\n// @factory L.imageOverlay(imageUrl: String, bounds: LatLngBounds, options?: ImageOverlay options)\r\n// Instantiates an image overlay object given the URL of the image and the\r\n// geographical bounds it is tied to.\r\nvar imageOverlay = function (url, bounds, options) {\r\n\treturn new ImageOverlay(url, bounds, options);\r\n};\n\n/*\r\n * @class VideoOverlay\r\n * @aka L.VideoOverlay\r\n * @inherits ImageOverlay\r\n *\r\n * Used to load and display a video player over specific bounds of the map. Extends `ImageOverlay`.\r\n *\r\n * A video overlay uses the [`