diff options
Diffstat (limited to '')
21 files changed, 1092 insertions, 370 deletions
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 9b6637d2b..aada66c8f 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -210,13 +210,6 @@ </intent-filter> </activity> - <meta-data - android:name="com.google.android.gms.version" - android:value="@integer/google_play_services_version" /> - <meta-data - android:name="com.google.android.maps.v2.API_KEY" - android:value="@string/google_maps_api_key" /> - <activity android:name=".ui.ShareLocationActivity" android:label="@string/share_location" diff --git a/src/main/assets/animate.min.css b/src/main/assets/animate.min.css new file mode 100644 index 000000000..b6f612953 --- /dev/null +++ b/src/main/assets/animate.min.css @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */ + +.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
\ No newline at end of file diff --git a/src/main/assets/font-awesome.min.css b/src/main/assets/font-awesome.min.css new file mode 100644 index 000000000..9b27f8ea8 --- /dev/null +++ b/src/main/assets/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/src/main/assets/fonts/weather.ttf b/src/main/assets/fonts/weather.ttf Binary files differnew file mode 100644 index 000000000..948f0a5d2 --- /dev/null +++ b/src/main/assets/fonts/weather.ttf diff --git a/src/main/assets/images/layers-2x.png b/src/main/assets/images/layers-2x.png Binary files differnew file mode 100644 index 000000000..200c333dc --- /dev/null +++ b/src/main/assets/images/layers-2x.png diff --git a/src/main/assets/images/layers.png b/src/main/assets/images/layers.png Binary files differnew file mode 100644 index 000000000..1a72e5784 --- /dev/null +++ b/src/main/assets/images/layers.png diff --git a/src/main/assets/images/marker-icon-2x.png b/src/main/assets/images/marker-icon-2x.png Binary files differnew file mode 100644 index 000000000..7a1ce76af --- /dev/null +++ b/src/main/assets/images/marker-icon-2x.png diff --git a/src/main/assets/images/marker-icon.png b/src/main/assets/images/marker-icon.png Binary files differnew file mode 100644 index 000000000..950edf246 --- /dev/null +++ b/src/main/assets/images/marker-icon.png diff --git a/src/main/assets/images/marker-shadow.png b/src/main/assets/images/marker-shadow.png Binary files differnew file mode 100644 index 000000000..9fd297953 --- /dev/null +++ b/src/main/assets/images/marker-shadow.png diff --git a/src/main/assets/jquery.min.js b/src/main/assets/jquery.min.js new file mode 100644 index 000000000..006e95310 --- /dev/null +++ b/src/main/assets/jquery.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; +return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) +}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file diff --git a/src/main/assets/leaflet.css b/src/main/assets/leaflet.css new file mode 100644 index 000000000..fa5abca60 --- /dev/null +++ b/src/main/assets/leaflet.css @@ -0,0 +1,632 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer { + max-width: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + } +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } diff --git a/src/main/assets/leaflet.js b/src/main/assets/leaflet.js new file mode 100644 index 000000000..1de4ee1b1 --- /dev/null +++ b/src/main/assets/leaflet.js @@ -0,0 +1,5 @@ +/* @preserve + * Leaflet 1.2.0+Detached: 1ac320ba232cb85b73ac81f3d82780c9d07f0d4e.1ac320b, a JS library for interactive maps. http://leafletjs.com + * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in o)t[i]=o[i]}return t}function e(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++ti,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function s(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,i){var e=Math.pow(10,i||5);return Math.round(t*e)/e}function h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function u(t){return h(t).split(/\s+/)}function l(t,i){t.hasOwnProperty("options")||(t.options=t.options?Qt(t.options):{});for(var e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}function _(t,i){return t.replace(ii,function(t,e){var n=i[e];if(void 0===n)throw new Error("No value provided for variable "+t);return"function"==typeof n&&(n=n(i)),n})}function d(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}function m(t){var i=+new Date,e=Math.max(0,16-(i-oi));return oi=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||si!==m)return si.call(window,e(t,i));t.call(i)}function g(t){t&&ri.call(window,t)}function v(){}function y(t){if(L&&L.Mixin){t=ei(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}}function x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function w(t,i,e){return t instanceof x?t:ei(t)?new x(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new x(t.x,t.y):new x(t,i,e)}function b(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function P(t,i){return!t||t instanceof b?t:new b(t,i)}function T(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function z(t,i){return t instanceof T?t:new T(t,i)}function M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof M?t:ei(t)&&"object"!=typeof t[0]?3===t.length?new M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void 0===t||null===t?t:"object"==typeof t&&"lat"in t?new M(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new M(t,i,e)}function Z(t,i,e,n){if(ei(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function E(t,i,e,n){return new Z(t,i,e,n)}function S(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function k(t,i){var e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+" "+a.y;h+=i?qi?"z":"x":""}return h||"M0 0"}function B(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function I(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function A(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(Xi,n,!1):"touchmove"===i?t.removeEventListener(Ji,n,!1):"touchend"===i&&(t.removeEventListener($i,n,!1),t.removeEventListener(Qi,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(te.indexOf(t.target.tagName)<0))return;$(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(Xi,o,!1),ee||(document.documentElement.addEventListener(Xi,R,!0),document.documentElement.addEventListener(Ji,D,!0),document.documentElement.addEventListener($i,N,!0),document.documentElement.addEventListener(Qi,N,!0),ee=!0)}function R(t){ie[t.pointerId]=t,ne++}function D(t){ie[t.pointerId]&&(ie[t.pointerId]=t)}function N(t){delete ie[t.pointerId],ne--}function j(t,i){t.touches=[];for(var e in ie)t.touches.push(ie[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(Ji,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener($i,n,!1),t.addEventListener(Qi,n,!1)}function F(t,i,e){function n(t){var i;if(Wi){if(!Li||"mouse"===t.pointerType)return;i=ne}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Wi){if(!Li||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[re+oe+e]=n,t[re+se+e]=o,t[re+"dblclick"+e]=i,t.addEventListener(oe,n,!1),t.addEventListener(se,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[re+oe+i],n=t[re+se+i],o=t[re+"dblclick"+i];return t.removeEventListener(oe,e,!1),t.removeEventListener(se,n,!1),Li||t.removeEventListener("dblclick",o,!1),this}function V(t,i,e,n){if("object"==typeof i)for(var o in i)q(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s<r;s++)q(t,i[s],e,n);return this}function G(t,i,e,n){if("object"==typeof i)for(var o in i)K(t,o,i[o],e);else if(i)for(var s=0,r=(i=u(i)).length;s<r;s++)K(t,i[s],e,n);else{for(var a in t[ae])K(t,a,t[ae][a]);delete t[ae]}return this}function q(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):"");if(t[ae]&&t[ae][s])return this;var r=function(i){return e.call(o||t,i||window.event)},a=r;Wi&&0===i.indexOf("touch")?I(t,i,r,s):!Hi||"dblclick"!==i||!F||Wi&&Mi?"addEventListener"in t?"mousewheel"===i?t.addEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):"mouseenter"===i||"mouseleave"===i?(r=function(i){i=i||window.event,ot(t,i)&&a(i)},t.addEventListener("mouseenter"===i?"mouseover":"mouseout",r,!1)):("click"===i&&Pi&&(r=function(t){st(t,a)}),t.addEventListener(i,r,!1)):"attachEvent"in t&&t.attachEvent("on"+i,r):F(t,r,s),t[ae]=t[ae]||{},t[ae][s]=r}function K(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):""),r=t[ae]&&t[ae][s];if(!r)return this;Wi&&0===i.indexOf("touch")?A(t,i,s):Hi&&"dblclick"===i&&U?U(t,s):"removeEventListener"in t?"mousewheel"===i?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,r,!1):"detachEvent"in t&&t.detachEvent("on"+i,r),t[ae][s]=null}function Y(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,nt(t),this}function X(t){return q(t,"mousewheel",Y),this}function J(t){return V(t,"mousedown touchstart dblclick",Y),q(t,"click",et),this}function $(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Q(t){return $(t),Y(t),this}function tt(t,i){if(!i)return new x(t.clientX,t.clientY);var e=i.getBoundingClientRect();return new x(t.clientX-e.left-i.clientLeft,t.clientY-e.top-i.clientTop)}function it(t){return Li?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/he:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function et(t){ue[t.type]=!0}function nt(t){var i=ue[t.type];return ue[t.type]=!1,i}function ot(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}function st(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=di&&e-di;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Q(t):(di=e,i(t))}function rt(t){return"string"==typeof t?document.getElementById(t):t}function at(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function ht(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ut(t){var i=t.parentNode;i&&i.removeChild(t)}function lt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ct(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function _t(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function dt(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=gt(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function pt(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!dt(t,i)){var s=gt(t);ft(t,(s?s+" ":"")+i)}}function mt(t,i){void 0!==t.classList?t.classList.remove(i):ft(t,h((" "+gt(t)+" ").replace(" "+i+" "," ")))}function ft(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function gt(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function vt(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&yt(t,i)}function yt(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}function xt(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function wt(t,i,e){var n=i||new x(0,0);t.style[ce]=(Bi?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function Lt(t,i){t._leaflet_pos=i,Oi?wt(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function bt(t){return t._leaflet_pos||new x(0,0)}function Pt(){V(window,"dragstart",$)}function Tt(){G(window,"dragstart",$)}function zt(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Mt(),me=t,fe=t.style.outline,t.style.outline="none",V(window,"keydown",Mt))}function Mt(){me&&(me.style.outline=fe,me=void 0,fe=void 0,G(window,"keydown",Mt))}function Ct(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=kt(t,e),t=Et(t,e)}function Zt(t,i,e){return Math.sqrt(Rt(t,i,e,!0))}function Et(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,St(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function St(t,i,e,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Rt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,St(t,i,e,n,s),St(t,i,e,s,o))}function kt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Ot(t[n],t[o])>i&&(e.push(t[n]),o=n);return o<s-1&&e.push(t[s-1]),e}function Bt(t,i,e,n,o){var s,r,a,h=n?ze:At(t,e),u=At(i,e);for(ze=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=At(r=It(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function It(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new x(s,r,o)}function At(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function Ot(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Rt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function Dt(t){return!ei(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Nt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Dt(t)}function jt(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=At(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=It(h,a,l,i,e))._code=At(c,i),n.push(c)):(h._code&l&&((c=It(h,a,l,i,e))._code=At(c,i),n.push(c)),n.push(a));t=n}return t}function Wt(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ht;if(!a&&!r)return null;switch(r.type){case"Point":return e=l(a),u?u(t,e):new qe(e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new qe(e));return new Fe(h);case"LineString":case"MultiLineString":return n=Ft(a,"LineString"===r.type?0:1,l),new Je(n,i);case"Polygon":case"MultiPolygon":return n=Ft(a,"Polygon"===r.type?1:2,l),new $e(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Wt({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new Fe(h);default:throw new Error("Invalid GeoJSON object.")}}function Ht(t){return new M(t[1],t[0],t[2])}function Ft(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Ft(t[s],i-1,e):(e||Ht)(t[s]),o.push(n);return o}function Ut(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function Vt(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Vt(t[s],i-1,e,n):Ut(t[s],n));return!i&&e&&o.push(o[0]),o}function Gt(t,e){return t.feature?i({},t.feature,{geometry:e}):qt(e)}function qt(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function Kt(t,i){return new Qe(t,i)}function Yt(t,i){return new ln(t,i)}function Xt(t){return Gi?new dn(t):null}function Jt(t){return qi||Ki?new gn(t):null}var $t=Object.freeze;Object.freeze=function(t){return t};var Qt=Object.create||function(){function t(){}return function(i){return t.prototype=i,new t}}(),ti=0,ii=/\{ *([\w_\-]+) *\}/g,ei=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},ni="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",oi=0,si=window.requestAnimationFrame||p("RequestAnimationFrame")||m,ri=window.cancelAnimationFrame||p("CancelAnimationFrame")||p("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},ai=(Object.freeze||Object)({freeze:$t,extend:i,create:Qt,bind:e,lastId:ti,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:ei,indexOf:d,emptyImageUrl:ni,requestFn:si,cancelFn:ri,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=Qt(n);o.constructor=e,e.prototype=o;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(e[s]=this[s]);return t.statics&&(i(e,t.statics),delete t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=i(Qt(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return i(this.prototype,t),this},v.mergeOptions=function(t){return i(this.prototype.options,t),this},v.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var hi={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o];if(a.ctx===e&&a.fn===i)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return this;var o=i({},e,{type:t,target:this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if("object"==typeof t){for(var o in t)this.once(o,t[o],i);return this}var s=e(function(){this.off(t,i,n).off(t,s,n)},this);return this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target},t),!0)}};hi.addEventListener=hi.on,hi.removeEventListener=hi.clearAllEventListeners=hi.off,hi.addOneTimeEventListener=hi.once,hi.fireEvent=hi.fire,hi.hasEventListeners=hi.listens;var ui=v.extend(hi);x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},b.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof x?w(t):P(t))instanceof b?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=P(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=P(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof M)i=t,e=t;else{if(!(t instanceof T))return t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new M(i.lat,i.lng),this._northEast=new M(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new T(new M(i.lat-n,i.lng-o),new M(e.lat+n,e.lng+o))},getCenter:function(){return new M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new M(this.getNorth(),this.getWest())},getSouthEast:function(){return new M(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof M||"lat"in t?C(t):z(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+a(this.lat,t)+", "+a(this.lng,t)+")"},distanceTo:function(t){return ci.distance(this,C(t))},wrap:function(){return ci.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new M(this.lat,this.lng,this.alt)}};var li={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new b(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new M(s.lat-n,s.lng-o),new M(r.lat-n,r.lng-o))}},ci=i({},li,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((i.lng-t.lng)*e);return this.R*Math.acos(Math.min(s,1))}}),_i={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var t=6378137*Math.PI;return new b([-t,-t],[t,t])}()};Z.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var di,pi,mi,fi,gi=i({},ci,{code:"EPSG:3857",projection:_i,transformation:function(){var t=.5/(Math.PI*_i.R);return E(t,.5,-t,.5)}()}),vi=i({},gi,{code:"EPSG:900913"}),yi=document.documentElement.style,xi="ActiveXObject"in window,wi=xi&&!document.addEventListener,Li="msLaunchUri"in navigator&&!("documentMode"in document),bi=B("webkit"),Pi=B("android"),Ti=B("android 2")||B("android 3"),zi=!!window.opera,Mi=B("chrome"),Ci=B("gecko")&&!bi&&!zi&&!xi,Zi=!Mi&&B("safari"),Ei=B("phantom"),Si="OTransition"in yi,ki=0===navigator.platform.indexOf("Win"),Bi=xi&&"transition"in yi,Ii="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!Ti,Ai="MozPerspective"in yi,Oi=!window.L_DISABLE_3D&&(Bi||Ii||Ai)&&!Si&&!Ei,Ri="undefined"!=typeof orientation||B("mobile"),Di=Ri&&bi,Ni=Ri&&Ii,ji=!window.PointerEvent&&window.MSPointerEvent,Wi=!(!window.PointerEvent&&!ji),Hi=!window.L_NO_TOUCH&&(Wi||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),Fi=Ri&&zi,Ui=Ri&&Ci,Vi=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Gi=!!document.createElement("canvas").getContext,qi=!(!document.createElementNS||!S("svg").createSVGRect),Ki=!qi&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),Yi=(Object.freeze||Object)({ie:xi,ielt9:wi,edge:Li,webkit:bi,android:Pi,android23:Ti,opera:zi,chrome:Mi,gecko:Ci,safari:Zi,phantom:Ei,opera12:Si,win:ki,ie3d:Bi,webkit3d:Ii,gecko3d:Ai,any3d:Oi,mobile:Ri,mobileWebkit:Di,mobileWebkit3d:Ni,msPointer:ji,pointer:Wi,touch:Hi,mobileOpera:Fi,mobileGecko:Ui,retina:Vi,canvas:Gi,svg:qi,vml:Ki}),Xi=ji?"MSPointerDown":"pointerdown",Ji=ji?"MSPointerMove":"pointermove",$i=ji?"MSPointerUp":"pointerup",Qi=ji?"MSPointerCancel":"pointercancel",te=["INPUT","SELECT","OPTION"],ie={},ee=!1,ne=0,oe=ji?"MSPointerDown":Wi?"pointerdown":"touchstart",se=ji?"MSPointerUp":Wi?"pointerup":"touchend",re="_leaflet_",ae="_leaflet_events",he=ki&&Mi?2*window.devicePixelRatio:Ci?window.devicePixelRatio:1,ue={},le=(Object.freeze||Object)({on:V,off:G,stopPropagation:Y,disableScrollPropagation:X,disableClickPropagation:J,preventDefault:$,stop:Q,getMousePosition:tt,getWheelDelta:it,fakeStop:et,skipped:nt,isExternalTarget:ot,addListener:V,removeListener:G}),ce=xt(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),_e=xt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===_e||"OTransition"===_e?_e+"End":"transitionend";if("onselectstart"in document)pi=function(){V(window,"selectstart",$)},mi=function(){G(window,"selectstart",$)};else{var pe=xt(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);pi=function(){if(pe){var t=document.documentElement.style;fi=t[pe],t[pe]="none"}},mi=function(){pe&&(document.documentElement.style[pe]=fi,fi=void 0)}}var me,fe,ge=(Object.freeze||Object)({TRANSFORM:ce,TRANSITION:_e,TRANSITION_END:de,get:rt,getStyle:at,create:ht,remove:ut,empty:lt,toFront:ct,toBack:_t,hasClass:dt,addClass:pt,removeClass:mt,setClass:ft,getClass:gt,setOpacity:vt,testProp:xt,setTransform:wt,setPosition:Lt,getPosition:bt,disableTextSelection:pi,enableTextSelection:mi,disableImageDrag:Pt,enableImageDrag:Tt,preventOutline:zt,restoreOutline:Mt}),ve=ui.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=bt(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),Lt(this._el,e),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),ye=ui.extend({options:{crs:gi,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=_e&&Oi&&!Fi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),V(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void 0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(Oi?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(Oi?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new ve,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){pt(this._mapPane,"leaflet-pan-anim");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(t,i,e){function n(t){var i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function l(){var e=(Date.now()-L)/P,n=u(e)*b;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!Oi)return this.setView(t,i,e);this._stop();var c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void 0===i?p:i;var m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),L=Date.now(),b=(n(1)-w)/y,P=e.duration?1e3*e.duration:1e3*b*.8;return this._moveStart(!0),l.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){return this.options.minZoom=t,this._loaded&&this.getZoom()<this.options.minZoom?this.setZoom(t):this},setMaxZoom:function(t){return this.options.maxZoom=t,this._loaded&&this.getZoom()>this.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.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(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):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 n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,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){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,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,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),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}ut(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)ut(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ht("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},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 T(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,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=P(this.project(a,n),this.project(r,n)).getSize(),l=Oi?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?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 x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new b(e,e.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,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return tt(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 i=this._container=rt(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");V(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Oi,pt(t,"leaflet-container"+(Hi?" leaflet-touch":"")+(Vi?" leaflet-retina":"")+(wi?" leaflet-oldie":"")+(Zi?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=at(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(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),Lt(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(pt(t.markerPane,"leaflet-zoom-hide"),pt(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Lt(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Lt(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[n(this._container)]=this;var i=t?G:V;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Oi&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(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,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!ot(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!ot(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!nt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||zt(t.target||t.srcElement),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)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&$(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.options&&"icon"in s.options;r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return bt(this._mapPane)||new x(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return P([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new b(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new b(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=P(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=Oi?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){mt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._floor();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ht("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ce,e=this._proxy.style[i];wt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();wt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ut(this._proxy),delete this._proxy},_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,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(mt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),xe=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pt(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(ut(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),we=function(t){return new xe(t)};ye.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=ht("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=ht("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ut(this._controlCorners[t]);ut(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Le=xe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return xe.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(n(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){pt(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(pt(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):mt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return mt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=ht("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),J(i),X(i);var n=this._form=ht("form",t+"-list");e&&(this._map.on("click",this.collapse,this),Pi||V(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=ht("a",t+"-toggle",i);o.href="#",o.title="Layers",Hi?(V(o,"click",Q),V(o,"click",this.expand,this)):V(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=ht("div",t+"-base",n),this._separator=ht("div",t+"-separator",n),this._overlaysList=ht("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;lt(this._baseLayersList),lt(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),V(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),be=xe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=ht("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},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._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ht("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),J(s),V(s,"click",Q),V(s,"click",o,this),V(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";mt(this._zoomInButton,i),mt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&pt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&pt(this._zoomInButton,i)}});ye.mergeOptions({zoomControl:!0}),ye.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new be,this.addControl(this.zoomControl))});var Pe=xe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=ht("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.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,i,e){t.metric&&(this._mScale=ht("div",i,e)),t.imperial&&(this._iScale=ht("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Te=xe.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=ht("div","leaflet-control-attribution"),J(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},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 i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});ye.mergeOptions({attributionControl:!0}),ye.addInitHook(function(){this.options.attributionControl&&(new Te).addTo(this)});xe.Layers=Le,xe.Zoom=be,xe.Scale=Pe,xe.Attribution=Te,we.layers=function(t,i,e){return new Le(t,i,e)},we.zoom=function(t){return new be(t)},we.scale=function(t){return new Pe(t)},we.attribution=function(t){return new Te(t)};var ze,Me=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}}),Ce={Events:hi},Ze=Hi?"touchstart mousedown":"mousedown",Ee={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Se={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ke=ui.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(V(this._dragStartTarget,Ze,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ke._dragging===this&&this.finishDrag(),G(this._dragStartTarget,Ze,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!dt(this._element,"leaflet-zoom-anim")&&!(ke._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ke._dragging=this,this._preventOutline&&zt(this._element),Pt(),pi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new x(i.clientX,i.clientY),V(document,Se[t.type],this._onMove,this),V(document,Ee[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY).subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||($(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=bt(this._element).subtract(e),pt(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),pt(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),Lt(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){mt(document.body,"leaflet-dragging"),this._lastTarget&&(mt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in Se)G(document,Se[t],this._onMove,this),G(document,Ee[t],this._onUp,this);Tt(),mi(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,ke._dragging=!1}}),Be=(Object.freeze||Object)({simplify:Ct,pointToSegmentDistance:Zt,closestPointOnSegment:function(t,i,e){return Rt(t,i,e)},clipSegment:Bt,_getEdgeIntersection:It,_getBitCode:At,_sqClosestPointOnSegment:Rt,isFlat:Dt,_flat:Nt}),Ie=(Object.freeze||Object)({clipPolygon:jt}),Ae={project:function(t){return new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new b([-180,-90],[180,90])},Oe={R:6378137,R_MINOR:6356752.314245179,bounds:new b([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new x(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},Re=(Object.freeze||Object)({LonLat:Ae,Mercator:Oe,SphericalMercator:_i}),De=i({},ci,{code:"EPSG:3395",projection:Oe,transformation:function(){var t=.5/(Math.PI*Oe.R);return E(t,.5,-t,.5)}()}),Ne=i({},ci,{code:"EPSG:4326",projection:Ae,transformation:E(1/180,1,-1/180,.5)}),je=i({},li,{projection:Ae,transformation:E(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});li.Earth=ci,li.EPSG3395=De,li.EPSG3857=gi,li.EPSG900913=vi,li.EPSG4326=Ne,li.Simple=je;var We=ui.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[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});ye.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?ei(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=n(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var He=We.extend({initialize:function(t){this._layers={};var i,e;if(t)for(i=0,e=t.length;i<e;i++)this.addLayer(t[i])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){for(var t in this._layers)this.removeLayer(this._layers[t]);return this},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){for(var i in this._layers)t.addLayer(this._layers[i])},onRemove:function(t){for(var i in this._layers)t.removeLayer(this._layers[i])},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var i in this._layers)t.push(this._layers[i]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return n(t)}}),Fe=He.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),He.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),He.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new T;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Ue=v.extend({initialize:function(t){l(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=w(n),s=w("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return i=i||document.createElement("img"),i.src=t,i},_getIconUrl:function(t){return Vi&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),Ve=Ue.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Ve.imagePath||(Ve.imagePath=this._detectIconPath()),(this.options.imagePath||Ve.imagePath)+Ue.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=ht("div","leaflet-default-icon-path",document.body),i=at(t,"background-image")||at(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\([\"\']?/,"").replace(/marker-icon\.png[\"\']?\)$/,"")}}),Ge=Me.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new ke(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),pt(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&mt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(t){var i=this._marker,e=i._shadow,n=bt(i._icon),o=i._map.layerPointToLatLng(n);e&&Lt(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),qe=We.extend({options:{icon:new Ve,interactive:!0,draggable:!1,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=C(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),t.alt&&(e.alt=t.alt)),pt(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(pt(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),ut(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&ut(this._shadow),this._shadow=null},_setPos:function(t){Lt(this._icon,t),this._shadow&&Lt(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(pt(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Ge)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Ge(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;vt(this._icon,t),this._shadow&&vt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor||[0,0]},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor||[0,0]}}),Ke=We.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(Hi?10:0)}}),Ye=Ke.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=C(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Ke.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new b(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),Xe=Ye.extend({initialize:function(t,e,n){if("number"==typeof e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Ke.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===ci.distance){var o=Math.PI/180,s=this._mRadius/ci.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:Math.max(Math.round(h.x-e.project([u,t-l]).x),1),this._radiusY=Math.max(Math.round(h.y-r.y),1)}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),Je=Ke.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=Rt,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return r=(n-i)/e,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,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Dt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=Dt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new b;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var i=this._clickTolerance(),e=new x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=Bt(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Ct(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Zt(t,a[o],a[n])<=h)return!0;return!1}});Je._flat=Nt;var $e=Je.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=Je.prototype._convertLatLngs.call(this,t),e=i.length;return e>=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){Je.prototype._setLatLngs.call(this,t),Dt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Dt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new b(t.min.subtract(e),t.max.add(e)),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;o<s;o++)(n=jt(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||Je.prototype._containsPoint.call(this,t,!0)}}),Qe=Fe.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=ei(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Wt(t,s);return r?(r.feature=qt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){"function"==typeof i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),tn={toGeoJSON:function(t){return Gt(this,{type:"Point",coordinates:Ut(this.getLatLng(),t)})}};qe.include(tn),Xe.include(tn),Ye.include(tn),Je.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=Vt(this._latlngs,i?1:0,!1,t);return Gt(this,{type:(i?"Multi":"")+"LineString",coordinates:e})}}),$e.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=i&&!Dt(this._latlngs[0]),n=Vt(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),Gt(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),He.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),Gt(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===i)return this.toMultiPoint(t);var e="GeometryCollection"===i,n=[];return this.eachLayer(function(i){if(i.toGeoJSON){var o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var s=qt(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?Gt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var en=Kt,nn=We.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(pt(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){ut(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&ct(this._image),this},bringToBack:function(){return this._map&&_t(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._image=ht("img","leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":"")+(this.options.className||""));t.onselectstart=r,t.onmousemove=r,t.onload=e(this.fire,this,"load"),t.onerror=e(this._overlayOnError,this,"error"),this.options.crossOrigin&&(t.crossOrigin=""),this.options.zIndex&&this._updateZIndex(),t.src=this._url,t.alt=this.options.alt},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;wt(this._image,e,i)},_reset:function(){var t=this._image,i=new b(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();Lt(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){vt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),on=nn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:ht("video");if(i.class=i.class||"",i.class+="leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":""),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,"load"),!t){ei(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var n=0;n<this._url.length;n++){var o=ht("source");o.src=this._url[n],i.appendChild(o)}}}}),sn=We.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&vt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&vt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(vt(this._container,0),this._removeTimeout=setTimeout(e(ut,void 0,this._container),200)):ut(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&ct(this._container),this},bringToBack:function(){return this._map&&_t(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?Lt(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),rn=sn.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){sn.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Ke||this._source.on("preclick",Y))},onRemove:function(t){sn.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Ke||this._source.off("preclick",Y))},getEvents:function(){var t=sn.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",i=this._container=ht("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=ht("div",t+"-content-wrapper",i);if(this._contentNode=ht("div",t+"-content",e),J(e),X(this._contentNode),V(e,"contextmenu",Y),this._tipContainer=ht("div",t+"-tip-container",i),this._tip=ht("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=ht("a",t+"-close-button",i);n.href="#close",n.innerHTML="×",V(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+"px",pt(t,"leaflet-popup-scrolled")):mt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Lt(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(at(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(bt(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Q(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});ye.mergeOptions({closePopupOnClick:!0}),ye.include({openPopup:function(t,i,e){return t instanceof rn||(t=new rn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),We.include({bindPopup:function(t,i){return t instanceof rn?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new rn(i,this)),this._popup.setContent(t)),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,i){if(t instanceof We||(i=t,t=this),t instanceof Fe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),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){var i=t.layer||t.target;this._popup&&this._map&&(Q(t),i instanceof Ke?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var an=sn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){sn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){sn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=sn.prototype.getEvents.call(this);return Hi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ht("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),mt(e,"leaflet-tooltip-right"),mt(e,"leaflet-tooltip-left"),mt(e,"leaflet-tooltip-top"),mt(e,"leaflet-tooltip-bottom"),pt(e,"leaflet-tooltip-"+s),Lt(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&vt(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});ye.include({openTooltip:function(t,i,e){return t instanceof an||(t=new an(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),We.include({bindTooltip:function(t,i){return t instanceof an?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new an(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),Hi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t instanceof We||(i=t,t=this),t instanceof Fe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(pt(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(mt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var hn=Ue.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var n=w(e.bgPos);i.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}});Ue.Default=Ve;var un=We.extend({options:{tileSize:256,opacity:1,updateWhenIdle:Ri,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),ut(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=null},bringToFront:function(){return this._map&&(ct(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(_t(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof x?t:new x(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!wi){vt(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);vt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=ht("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(ut(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=ht("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)ut(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=null},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();Oi?wt(t.el,o,n):Lt(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new b(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new b(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);d.z=this._tileZoom,this._isValidTile(d)&&(this._tiles[this._tileCoordsToKey(d)]||r.push(d))}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var p=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],p);this._level.el.appendChild(p)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e),s=new T(i.unproject(n,t.z),i.unproject(o,t.z));return this.options.noWrap||i.wrapLatLngBounds(s),s},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(ut(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pt(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,wi&&this.options.opacity<1&&vt(t,this.options.opacity),Pi&&!Ti&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),Lt(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(vt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(pt(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),wi||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new b(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),ln=un.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Vi&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),Pi||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return V(n,"load",e(this._tileOnLoad,this,i,n)),V(n,"error",e(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Vi?"@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 _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){wi?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.src!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=ni,ut(i)))}}),cn=ln.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]);e=l(this,e),n.width=n.height=e.tileSize*(e.detectRetina&&Vi?2:1),this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,ln.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToBounds(t),e=this._crs.project(i.getNorthWest()),n=this._crs.project(i.getSouthEast()),o=(this._wmsVersion>=1.3&&this._crs===Ne?[n.y,e.x,e.y,n.x]:[e.x,n.y,n.x,e.y]).join(","),s=ln.prototype.getTileUrl.call(this,t);return s+c(this.wmsParams,s,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+o},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});ln.WMS=cn,Yt.wms=function(t,i){return new cn(t,i)};var _n=We.extend({options:{padding:.1},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&pt(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,i){var e=this._map.getZoomScale(i,this._zoom),n=bt(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);Oi?wt(this._container,a,e):Lt(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in 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,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new b(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),dn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){_n.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");V(t,"mousemove",o(this._onMouseMove,32,this),this),V(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),V(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){delete this._ctx,ut(this._container),G(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},_n.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Vi?2:1;Lt(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Vi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){_n.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[L.stamp(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(t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new b,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=t._radius,o=(t._radiusY||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(et(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(mt(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(pt(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),pn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),mn={_initContainer:function(){this._container=ht("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(_n.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=pn("shape");pt(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=pn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ut(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=pn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=ei(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=pn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ct(t._container)},_bringToBack:function(t){_t(t._container)}},fn=Ki?pn:S,gn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=fn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=fn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ut(this._container),G(this._container),delete this._container,delete this._rootGroup},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){_n.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Lt(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=fn("path");t.options.className&&pt(i,t.options.className),t.options.interactive&&pt(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ut(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=t._radius,n="a"+e+","+(t._radiusY||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){ct(t._path)},_bringToBack:function(t){_t(t._path)}});Ki&&gn.include(mn),ye.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this.options.preferCanvas&&Xt()||Jt()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=gn&&Jt({pane:t})||dn&&Xt({pane:t}),this._paneRenderers[t]=i),i}});var vn=$e.extend({initialize:function(t,i){$e.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});gn.create=fn,gn.pointsToPath=k,Qe.geometryToLayer=Wt,Qe.coordsToLatLng=Ht,Qe.coordsToLatLngs=Ft,Qe.latLngToCoords=Ut,Qe.latLngsToCoords=Vt,Qe.getFeature=Gt,Qe.asFeature=qt,ye.mergeOptions({boxZoom:!0});var yn=Me.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(){V(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){G(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ut(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(),pi(),Pt(),this._startPoint=this._map.mouseEventToContainerPoint(t),V(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ht("div","leaflet-zoom-box",this._container),pt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new b(this._point,this._startPoint),e=i.getSize();Lt(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ut(this._box),mt(this._container,"leaflet-crosshair")),mi(),Tt(),G(document,{contextmenu:Q,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(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});ye.addInitHook("addHandler","boxZoom",yn),ye.mergeOptions({doubleClickZoom:!0});var xn=Me.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});ye.addInitHook("addHandler","doubleClickZoom",xn),ye.mergeOptions({dragging:!0,inertia:!Ti,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var wn=Me.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ke(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))}pt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mt(this._map._container,"leaflet-grab"),mt(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 i=z(this._map.options.maxBounds);this._offsetLimit=P(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.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 i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),i-this._times[0]>50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});ye.addInitHook("addHandler","dragging",wn),ye.mergeOptions({keyboard:!0,keyboardPanDelta:80});var Ln=Me.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),V(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),G(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){V(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){G(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup)return;n.closePopup()}Q(t)}}});ye.addInitHook("addHandler","keyboard",Ln),ye.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var bn=Me.extend({addHooks:function(){V(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){G(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=it(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var o=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Q(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});ye.addInitHook("addHandler","scrollWheelZoom",bn),ye.mergeOptions({tap:!0,tapTolerance:15});var Pn=Me.extend({addHooks:function(){V(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){G(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if($(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&pt(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),V(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),G(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&mt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Hi&&!Wi&&ye.addInitHook("addHandler","tap",Pn),ye.mergeOptions({touchZoom:Hi&&!Ti,bounceAtZoomLimits:!0});var Tn=Me.extend({addHooks:function(){pt(this._map._container,"leaflet-touch-zoom"),V(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){mt(this._map._container,"leaflet-touch-zoom"),G(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),V(document,"touchmove",this._onTouchMove,this),V(document,"touchend",this._onTouchEnd,this),$(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),$(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),G(document,"touchmove",this._onTouchMove),G(document,"touchend",this._onTouchEnd),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}});ye.addInitHook("addHandler","touchZoom",Tn),ye.BoxZoom=yn,ye.DoubleClickZoom=xn,ye.Drag=wn,ye.Keyboard=Ln,ye.ScrollWheelZoom=bn,ye.Tap=Pn,ye.TouchZoom=Tn;var zn=window.L;window.L=t,Object.freeze=$t,t.version="1.2.0+HEAD.1ac320b",t.noConflict=function(){return window.L=zn,this},t.Control=xe,t.control=we,t.Browser=Yi,t.Evented=ui,t.Mixin=Ce,t.Util=ai,t.Class=v,t.Handler=Me,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=le,t.DomUtil=ge,t.PosAnimation=ve,t.Draggable=ke,t.LineUtil=Be,t.PolyUtil=Ie,t.Point=x,t.point=w,t.Bounds=b,t.bounds=P,t.Transformation=Z,t.transformation=E,t.Projection=Re,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=li,t.GeoJSON=Qe,t.geoJSON=Kt,t.geoJson=en,t.Layer=We,t.LayerGroup=He,t.layerGroup=function(t){return new He(t)},t.FeatureGroup=Fe,t.featureGroup=function(t){return new Fe(t)},t.ImageOverlay=nn,t.imageOverlay=function(t,i,e){return new nn(t,i,e)},t.VideoOverlay=on,t.videoOverlay=function(t,i,e){return new on(t,i,e)},t.DivOverlay=sn,t.Popup=rn,t.popup=function(t,i){return new rn(t,i)},t.Tooltip=an,t.tooltip=function(t,i){return new an(t,i)},t.Icon=Ue,t.icon=function(t){return new Ue(t)},t.DivIcon=hn,t.divIcon=function(t){return new hn(t)},t.Marker=qe,t.marker=function(t,i){return new qe(t,i)},t.TileLayer=ln,t.tileLayer=Yt,t.GridLayer=un,t.gridLayer=function(t){return new un(t)},t.SVG=gn,t.svg=Jt,t.Renderer=_n,t.Canvas=dn,t.canvas=Xt,t.Path=Ke,t.CircleMarker=Ye,t.circleMarker=function(t,i){return new Ye(t,i)},t.Circle=Xe,t.circle=function(t,i,e){return new Xe(t,i,e)},t.Polyline=Je,t.polyline=function(t,i){return new Je(t,i)},t.Polygon=$e,t.polygon=function(t,i){return new $e(t,i)},t.Rectangle=vn,t.rectangle=function(t,i){return new vn(t,i)},t.Map=ye,t.map=function(t,i){return new ye(t,i)}});
\ No newline at end of file diff --git a/src/main/assets/leaflet.js.map b/src/main/assets/leaflet.js.map new file mode 100644 index 000000000..da037d717 --- /dev/null +++ b/src/main/assets/leaflet.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["dist/leaflet-src.js"],"names":["global","factory","exports","module","define","amd","L","this","extend","dest","i","j","len","src","arguments","length","bind","fn","obj","slice","Array","prototype","apply","call","args","concat","stamp","_leaflet_id","lastId","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","digits","pow","Math","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","create","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","template","data","templateRe","key","value","undefined","Error","array","el","getPrefixed","name","window","timeoutDefer","Date","timeToCall","lastTime","requestAnimFrame","immediate","requestFn","cancelAnimFrame","id","cancelFn","Class","checkDeprecatedMixinEvents","includes","Mixin","isArray","Events","console","warn","stack","Point","y","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","Transformation","_a","_b","_c","_d","toTransformation","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","p","svg","userAgentContains","navigator","userAgent","toLowerCase","addPointerListener","type","handler","_addPointerStart","_addPointerMove","_addPointerEnd","removePointerListener","removeEventListener","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","onDown","e","pointerType","MSPOINTER_TYPE_MOUSE","TAG_WHITE_LIST","target","tagName","preventDefault","_handlePointer","addEventListener","_pointerDocListener","documentElement","_globalPointerDown","_globalPointerMove","_globalPointerUp","_pointers","pointerId","_pointersCount","touches","changedTouches","onMove","buttons","onUp","addDoubleTapListener","onTouchStart","count","pointer","edge","now","delta","last","touch$$1","doubleTap","delay","onTouchEnd","cancelBubble","prop","newTouch","_pre","_touchstart","_touchend","removeDoubleTapListener","touchstart","touchend","dblclick","on","types","addOne","off","removeOne","eventsKey","event","originalHandler","touch","chrome","isExternalTarget","android","filterClick","attachEvent","detachEvent","stopPropagation","originalEvent","_stopped","skipped","disableScrollPropagation","disableClickPropagation","fakeStop","returnValue","stop","getMousePosition","container","clientX","clientY","rect","getBoundingClientRect","left","clientLeft","top","clientTop","getWheelDelta","wheelDeltaY","deltaY","deltaMode","wheelPxFactor","deltaX","deltaZ","wheelDelta","detail","abs","skipEvents","events","related","relatedTarget","parentNode","err","timeStamp","elapsed","lastClick","_simulatedClick","_simulated","get","getElementById","getStyle","style","currentStyle","defaultView","css","getComputedStyle","create$1","className","createElement","appendChild","remove","parent","removeChild","empty","firstChild","toFront","lastChild","toBack","insertBefore","hasClass","classList","contains","getClass","RegExp","test","addClass","classes","add","setClass","removeClass","baseVal","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","testProp","props","setTransform","offset","scale","pos","TRANSFORM","ie3d","setPosition","point","_leaflet_pos","any3d","getPosition","disableImageDrag","enableImageDrag","preventOutline","element","tabIndex","restoreOutline","_outlineElement","_outlineStyle","outline","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","p1","p2","sqrt","_sqClosestPointOnSegment","markers","Uint8Array","_simplifyDPStep","newPoints","first","index","sqDist","maxSqDist","reducedPoints","prev","_sqDist","clipSegment","bounds","useLastCode","codeOut","newCode","codeA","_lastCode","_getBitCode","codeB","_getEdgeIntersection","code","dx","dy","t","dot","isFlat","_flat","clipPolygon","clippedPoints","k","edges","_code","geometryToLayer","geojson","latlng","geometry","coords","coordinates","layers","pointToLayer","_coordsToLatLng","coordsToLatLng","Marker","FeatureGroup","coordsToLatLngs","Polyline","Polygon","geometries","layer","properties","levelsDeep","latLngToCoords","precision","latLngsToCoords","getFeature","newGeometry","feature","asFeature","geoJSON","GeoJSON","tileLayer","url","TileLayer","canvas$1","canvas","Canvas","svg$1","vml","SVG","freeze","Object","F","proto","toString","emptyImageUrl","requestAnimationFrame","cancelAnimationFrame","clearTimeout","Util","NewClass","initialize","callInitHooks","parentProto","__super__","constructor","statics","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","init","_on","_off","_events","typeListeners","newListener","ctx","listeners","l","_firingCount","splice","fire","propagate","listens","_propagateEvent","_eventParents","once","addEventParent","removeEventParent","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","clone","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","floor","_floor","ceil","_ceil","distanceTo","equals","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","sw2","ne2","sw","_southWest","ne","_northEast","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","zoom","projectedPoint","projection","project","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sin","acos","SphericalMercator","MAX_LATITUDE","atan","exp","disableTextSelection","enableTextSelection","_userSelect","EPSG3857","EPSG900913","style$1","ie","ielt9","webkit","android23","opera","gecko","safari","phantom","opera12","win","platform","webkit3d","WebKitCSSMatrix","gecko3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","L_NO_TOUCH","DocumentTouch","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","getContext","createSVGRect","div","innerHTML","shape","behavior","adj","Browser","DomEvent","addListener","removeListener","TRANSITION","TRANSITION_END","userSelectProperty","DomUtil","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","_runFrame","_easeOut","progress","Map","crs","minZoom","maxZoom","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","step","_onPanTransitionStep","end","_onPanTransitionEnd","noMoveStart","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","r","w1","w0","rho2","u1","sq","sinh","n","cosh","tanh","w","r0","rho","u","easeOut","frame","start","S","_flyToFrame","_move","from","to","startZoom","getScaleZoom","_moveEnd","size","_moveStart","flyToBounds","_panInsideMaxBounds","setMinZoom","setMaxZoom","panInsideBounds","_enforcingBounds","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_container","_clearControlPos","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getPixelBounds","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","position","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","_getNewPixelOrigin","pinch","_getZoomSpan","remove$$1","_targets","onOff","_handleDOMEvent","_onMoveEnd","_resizeRequest","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","_fireDOMEvent","_mouseEvents","synth","isMarker","containerPoint","getLatLng","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","z","_destroyAnimProxy","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","createCorner","vSide","hSide","corners","_controlContainer","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_form","height","acceptableHeight","offsetTop","collapse","setAttribute","form","mouseenter","mouseleave","link","_layersLink","href","title","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","_expand","_collapse","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","width","pow10","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","setPrefix","removeAttribution","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","START","END","mousedown","pointerdown","MSPointerDown","MOVE","Draggable","clickTolerance","dragStartTarget","preventOutline$$1","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","which","button","_moving","_startPoint","_onMove","_onUp","body","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_animRequest","_lastEvent","_updatePosition","LineUtil","closestPointOnSegment","PolyUtil","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","setStyle","bringToFront","bringToBack","Icon","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","popupAnchor","tooltipAnchor","shadowSize","imagePath","_detectIconPath","path","MarkerDrag","marker","_marker","icon","_icon","_draggable","dragstart","_onDragStart","drag","_onDrag","dragend","_onDragEnd","_oldLatLng","closePopup","shadow","_shadow","iconPos","_latlng","oldLatLng","interactive","draggable","keyboard","zIndexOffset","riseOnHover","riseOffset","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","_radius","setRadius","getRadius","_point","_updateBounds","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","result","flat","_projectLatlngs","projectedBounds","ring","_clipPoints","segment","parts","_simplifyPoints","_updatePoly","part","f","area","pop","clipped","addData","features","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","PointToGeoJSON","toGeoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","crossOrigin","errorOverlayUrl","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","wasElementSupplied","vid","class","onloadeddata","source","DivOverlay","_source","_removeTimeout","_adjustPan","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","minWidth","maxHeight","autoPan","autoPanPaddingTopLeft","autoPanPaddingBottomRight","autoPanPadding","keepInView","closeButton","autoClose","openOn","openPopup","popup","closeOnClick","closePopupOnClick","preclick","_close","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","_onCloseButtonClick","whiteSpace","offsetWidth","offsetHeight","marginBottom","parseInt","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","Tooltip","direction","permanent","sticky","tooltip","closeTooltip","_setPosition","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","bindTooltip","_tooltip","_initTooltipInteractions","unbindTooltip","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","isTooltipOpen","setTooltipContent","getTooltip","DivIcon","bgPos","backgroundPosition","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","viewprereset","_invalidateAll","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_updateLevels","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","origin","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","_clampZoom","noPrune","tileZoom","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","pixelCenter","halfSize","pixelBounds","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","nwPoint","sePoint","_initTile","WebkitBackfaceVisibility","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","tilePoint","complete","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","ev","_updateTransform","currentCenterPoint","_center","topLeftOffset","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawBounds","_redraw","_drawnLayers","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","Number","_dashArray","_redrawRequest","_clear","clearRect","save","beginPath","clip","_drawing","restore","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","moving","_handleMouseHover","_hoveredLayer","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","v","create$2","zoomstart","_onZoomStart","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","oldZoom","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","noInertia","ease","speedVector","speed","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","touchmove","simulatedEvent","createEvent","initMouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","moveFn","oldL","noConflict","Projection","latLng","layerGroup","featureGroup","imageOverlay","videoOverlay","video","divIcon","gridLayer","circleMarker","circle","polyline","polygon","rectangle"],"mappings":"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","file":"dist/leaflet.js.map"}
\ No newline at end of file diff --git a/src/main/assets/map.html b/src/main/assets/map.html new file mode 100644 index 000000000..6d5784336 --- /dev/null +++ b/src/main/assets/map.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <link href="font-awesome.min.css" rel="stylesheet"> + <link href="animate.min.css" rel="stylesheet"> + + <script src="jquery.min.js"></script> + <link rel="stylesheet" href="leaflet.css"/> + <script src="leaflet.js"></script> + </head> + + <body> + + <style> + #map{width:100%;height:100%;position:fixed;top:0px;left:0px;right:0px;bottom:0px} + + </style> + + <div id='map'> + </div> + + <script type="text/javascript"> + var getUrlParameter = function getUrlParameter(sParam) { + var sPageURL = decodeURIComponent(window.location.search.substring(1)), + sURLVariables = sPageURL.split('&'), + sParameterName, + i; + + for (i = 0; i < sURLVariables.length; i++) { + sParameterName = sURLVariables[i].split('='); + + if (sParameterName[0] === sParam) { + return sParameterName[1] === undefined ? true : sParameterName[1]; + } + } + }; + + if (typeof getUrlParameter('lat') === 'undefined' && typeof getUrlParameter('lon') === 'undefined') { + var map = L.map('map', { + zoomControl: true, + attributionControl: false + }).fitWorld(); + } else { + + var map = L.map('map', { + zoomControl: true, + attributionControl: false + }).setView([getUrlParameter('lat'), getUrlParameter('lon')], 15); + } + + map.addLayer(new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { + minZoom: 1, + maxZoom: 19 + })); + + if (typeof getUrlParameter('lat') !== 'undefined' && typeof getUrlParameter('lon') !== 'undefined' && typeof getUrlParameter('name') !== 'undefined') { + var marker = L.marker([getUrlParameter('lat'), getUrlParameter('lon')]).addTo(map); + marker.bindPopup(getUrlParameter('name'), { + closeOnClick: false, + closeButton: false, + autoClose: false + }).openPopup(); + } else if (typeof getUrlParameter('lat') !== 'undefined' && typeof getUrlParameter('lon') !== 'undefined' && typeof getUrlParameter('name') === 'undefined') { + var marker = L.marker([getUrlParameter('lat'), getUrlParameter('lon')]).addTo(map); + } + + + + </script> + + </body> + </html> diff --git a/src/main/java/de/pixart/messenger/Config.java b/src/main/java/de/pixart/messenger/Config.java index 0604b0dda..9d4296ed3 100644 --- a/src/main/java/de/pixart/messenger/Config.java +++ b/src/main/java/de/pixart/messenger/Config.java @@ -78,6 +78,9 @@ public final class Config { public static final int IMAGE_QUALITY = 75; public static final int DEFAULT_ZOOM = 15; //for locations + public final static long LOCATION_FIX_TIME_DELTA = 1000 * 10; // ms + public final static float LOCATION_FIX_SPACE_DELTA = 10; // m + public final static int LOCATION_FIX_SIGNIFICANT_TIME_DELTA = 1000 * 60 * 2; // ms public static final int MESSAGE_MERGE_WINDOW = 20; diff --git a/src/main/java/de/pixart/messenger/ui/LocationActivity.java b/src/main/java/de/pixart/messenger/ui/LocationActivity.java new file mode 100644 index 000000000..74e2b45f9 --- /dev/null +++ b/src/main/java/de/pixart/messenger/ui/LocationActivity.java @@ -0,0 +1,60 @@ +package de.pixart.messenger.ui; + +import android.app.Activity; +import android.content.Context; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; + +import de.pixart.messenger.Config; + +public abstract class LocationActivity extends Activity implements LocationListener { + private LocationManager locationManager; + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); + } + + protected abstract void gotoLoc() throws UnsupportedOperationException; + + protected abstract void setmLastLocation(final Location location); + + protected void requestLocationUpdates() { + final Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (lastKnownLocation != null) { + setmLastLocation(lastKnownLocation); + try { + gotoLoc(); + } catch (final UnsupportedOperationException ignored) { + } + } + + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, Config.LOCATION_FIX_TIME_DELTA, Config.LOCATION_FIX_SPACE_DELTA, this); + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, Config.LOCATION_FIX_TIME_DELTA, Config.LOCATION_FIX_SPACE_DELTA, this); + + // If something else is also querying for location more frequently than we are, the battery is already being + // drained. Go ahead and use the existing locations as often as we can get them. + locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 0, 0, this); + } + + protected void pauseLocationUpdates() { + locationManager.removeUpdates(this); + } + + @Override + protected void onPause() { + super.onPause(); + pauseLocationUpdates(); + } + + @Override + protected void onResume() { + super.onResume(); + this.setmLastLocation(null); + + requestLocationUpdates(); + } +}
\ No newline at end of file diff --git a/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java b/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java index a9bfabff9..29142f26f 100644 --- a/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ShareLocationActivity.java @@ -1,263 +1,235 @@ package de.pixart.messenger.ui; -import android.Manifest; import android.annotation.TargetApi; -import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; import android.location.Address; import android.location.Geocoder; import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; -import android.util.Log; import android.view.View; +import android.webkit.WebView; import android.widget.Button; import android.widget.RelativeLayout; import android.widget.TextView; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.api.GoogleApiClient; -import com.google.android.gms.location.LocationListener; -import com.google.android.gms.location.LocationRequest; -import com.google.android.gms.location.LocationServices; -import com.google.android.gms.maps.CameraUpdateFactory; -import com.google.android.gms.maps.GoogleMap; -import com.google.android.gms.maps.MapFragment; -import com.google.android.gms.maps.OnMapReadyCallback; -import com.google.android.gms.maps.model.LatLng; - -import java.io.IOException; +import org.jetbrains.annotations.Nullable; + +import java.lang.ref.WeakReference; import java.util.List; import java.util.Locale; -import de.pixart.messenger.Config; import de.pixart.messenger.R; +import de.pixart.messenger.utils.LocationHelper; -public class ShareLocationActivity extends Activity implements OnMapReadyCallback, - GoogleApiClient.ConnectionCallbacks, - GoogleApiClient.OnConnectionFailedListener, - LocationListener { +public class ShareLocationActivity extends LocationActivity implements LocationListener { - private GoogleMap mGoogleMap; - private GoogleApiClient mGoogleApiClient; - private LocationRequest mLocationRequest; + LocationManager locationManager; private Location mLastLocation; private Button mCancelButton; private Button mShareButton; + private String mLocationName; private RelativeLayout mSnackbar; - private RelativeLayout mLocationInfo; - private TextView mSnackbarLocation; - private TextView mSnackbarAction; @Override - public void onCreate(Bundle savedInstanceState) { + protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.activity_share_locaction); if (getActionBar() != null) { getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); } - setContentView(R.layout.activity_share_locaction); - MapFragment fragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map_fragment); - fragment.getMapAsync(this); - mGoogleApiClient = new GoogleApiClient.Builder(this) - .addApi(LocationServices.API) - .addConnectionCallbacks(this) - .addOnConnectionFailedListener(this) - .build(); + locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); + + mLocationName = getString(R.string.me); + mCancelButton = findViewById(R.id.cancel_button); - mCancelButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - setResult(RESULT_CANCELED); - finish(); - } + mCancelButton.setOnClickListener(view -> { + setResult(RESULT_CANCELED); + finish(); }); + mShareButton = findViewById(R.id.share_button); - mShareButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (mLastLocation != null) { - Intent result = new Intent(); - result.putExtra("latitude", mLastLocation.getLatitude()); - result.putExtra("longitude", mLastLocation.getLongitude()); - result.putExtra("altitude", mLastLocation.getAltitude()); - result.putExtra("accuracy", (int) mLastLocation.getAccuracy()); - setResult(RESULT_OK, result); - finish(); - } + mShareButton.setOnClickListener(view -> { + if (mLastLocation != null) { + Intent result = new Intent(); + result.putExtra("latitude", mLastLocation.getLatitude()); + result.putExtra("longitude", mLastLocation.getLongitude()); + result.putExtra("altitude", mLastLocation.getAltitude()); + result.putExtra("accuracy", (int) mLastLocation.getAccuracy()); + setResult(RESULT_OK, result); + finish(); } }); + mSnackbar = findViewById(R.id.snackbar); - mLocationInfo = findViewById(R.id.snackbar_location); - mSnackbarLocation = findViewById(R.id.snackbar_location_message); - mSnackbarAction = findViewById(R.id.snackbar_action); - mSnackbarAction.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); - } - }); + TextView snackbarAction = findViewById(R.id.snackbar_action); + snackbarAction.setOnClickListener(view -> startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS))); + + requestLocationUpdates(); } @Override - protected void onResume() { - super.onResume(); - this.mLastLocation = null; - if (isLocationEnabled()) { - this.mSnackbar.setVisibility(View.GONE); - } else { - this.mSnackbar.setVisibility(View.VISIBLE); - } - mShareButton.setEnabled(false); - mShareButton.setTextColor(0x8a000000); - mShareButton.setText(R.string.locating); - mGoogleApiClient.connect(); + protected void gotoLoc() throws UnsupportedOperationException { + new getAddressAsync(this).execute(); + } + + @Override + protected void setmLastLocation(Location location) { + this.mLastLocation = location; } @Override protected void onPause() { - mGoogleApiClient.disconnect(); super.onPause(); } @Override - public void onMapReady(GoogleMap googleMap) { - this.mGoogleMap = googleMap; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED - || checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - this.mGoogleMap.setBuildingsEnabled(true); - this.mGoogleMap.setMyLocationEnabled(true); - } + protected void onResume() { + super.onResume(); + if (isLocationEnabled()) { + this.mSnackbar.setVisibility(View.GONE); } else { - this.mGoogleMap.setBuildingsEnabled(true); - this.mGoogleMap.setMyLocationEnabled(true); + this.mSnackbar.setVisibility(View.VISIBLE); } - } - - private void centerOnLocation(LatLng location) { - this.mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location, Config.DEFAULT_ZOOM)); + setShareButtonEnabled(false); } @Override - public void onConnected(Bundle bundle) { - mLocationRequest = LocationRequest.create(); - mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); - mLocationRequest.setInterval(1000); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED - || checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); - } - } else { - LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + public void onLocationChanged(final Location location) { + if (LocationHelper.isBetterLocation(location, this.mLastLocation)) { + setShareButtonEnabled(true); + this.mLastLocation = location; + gotoLoc(); } - } @Override - public void onConnectionSuspended(int i) { + public void onStatusChanged(final String provider, final int status, final Bundle extras) { } @Override - public void onConnectionFailed(ConnectionResult connectionResult) { + public void onProviderEnabled(final String provider) { } @Override - public void onLocationChanged(Location location) { - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); + public void onProviderDisabled(final String provider) { - if (this.mLastLocation == null) { - centerOnLocation(new LatLng(location.getLatitude(), location.getLongitude())); - this.mShareButton.setEnabled(true); - this.mShareButton.setTextColor(0xde000000); - this.mShareButton.setText(R.string.share); - } - this.mLastLocation = location; - if (latitude != 0 && longitude != 0) { - Double[] lat_long = new Double[]{latitude, longitude}; - new ReverseGeocodingTask(getBaseContext()).execute(lat_long); - } } @TargetApi(Build.VERSION_CODES.KITKAT) private boolean isLocationEnabledKitkat() { try { - int locationMode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE); + final int locationMode = Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE); return locationMode != Settings.Secure.LOCATION_MODE_OFF; - } catch (Settings.SettingNotFoundException e) { + } catch (final Settings.SettingNotFoundException e) { return false; } } @SuppressWarnings("deprecation") private boolean isLocationEnabledLegacy() { - String locationProviders = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); + final String locationProviders = Settings.Secure.getString(getContentResolver(), + Settings.Secure.LOCATION_PROVIDERS_ALLOWED); return !TextUtils.isEmpty(locationProviders); } private boolean isLocationEnabled() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ return isLocationEnabledKitkat(); } else { return isLocationEnabledLegacy(); } } - private class ReverseGeocodingTask extends AsyncTask<Double, Void, String> { - Context mContext; - - public ReverseGeocodingTask(Context context) { - super(); - mContext = context; + private void setShareButtonEnabled(final boolean enabled) { + if (enabled) { + this.mShareButton.setEnabled(true); + this.mShareButton.setTextColor(0xff2e4272); + this.mShareButton.setText(R.string.share); + } else { + this.mShareButton.setEnabled(false); + this.mShareButton.setTextColor(0x8a000000); + this.mShareButton.setText(R.string.locating); + showLocation(null, null); } + } - @Override - protected String doInBackground(Double... params) { - Geocoder geocoder = new Geocoder(mContext, Locale.getDefault()); - - double latitude = params[0]; - double longitude = params[1]; - - List<Address> addresses = null; - String address = ""; - + private static String getAddress(Context context, Location location) { + double longitude = location.getLongitude(); + double latitude = location.getLatitude(); + String address = ""; + if (latitude != 0 && longitude != 0) { + Geocoder geoCoder = new Geocoder(context, Locale.getDefault()); try { - addresses = geocoder.getFromLocation(latitude, longitude, 1); - } catch (IOException e) { + List<Address> addresses = geoCoder.getFromLocation(latitude, longitude, 1); + if (addresses != null && addresses.size() > 0) { + Address Address = addresses.get(0); + StringBuilder strAddress = new StringBuilder(""); + + if (Address.getAddressLine(0).length() > 0) { + strAddress.append(Address.getAddressLine(0)); + } + address = strAddress.toString().replace(", ", "<br>"); + } + } catch (Exception e) { e.printStackTrace(); } + } + return address; + } - if (addresses != null && addresses.size() > 0) { - Address Address = addresses.get(0); - StringBuilder strAddress = new StringBuilder(""); + private class getAddressAsync extends AsyncTask<Void, Void, Void> { + String address = null; - if (Address.getAddressLine(0).length() > 0) { - strAddress.append(Address.getAddressLine(0)); - } - address = strAddress.toString().replace(", ", "\n"); - } + private WeakReference<ShareLocationActivity> activityReference; - return address; + getAddressAsync(ShareLocationActivity context) { + activityReference = new WeakReference<>(context); + } + @Override + protected void onPreExecute() { + super.onPreExecute(); + showLocation(mLastLocation, null); } @Override - protected void onPostExecute(String address) { - // Setting address of the touched Position - if (address.length() > 0) { - mLocationInfo.setVisibility(View.VISIBLE); - mSnackbarLocation.setText(address); - Log.d(Config.LOGTAG, "Location: Address = " + address); - } + protected Void doInBackground(Void... params) { + address = getAddress(ShareLocationActivity.this, mLastLocation); + return null; + } + + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + showLocation(mLastLocation, address); + } + } + + private void showLocation (@Nullable Location location, @Nullable String address) { + if (location == null && TextUtils.isEmpty(address)) { // no location and no address available + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html"); + } else if (location != null && TextUtils.isEmpty(address)) { // location but no address available + String LocationName = "<b>" + mLocationName + "</b>"; + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html?lat=" + mLastLocation.getLatitude() + "&lon=" + mLastLocation.getLongitude() + "&name=" + LocationName); + } else if (location != null && !TextUtils.isEmpty(address)) { // location and address available + String LocationName = "<b>" + mLocationName + "</b><br>" + address; + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html?lat=" + mLastLocation.getLatitude() + "&lon=" + mLastLocation.getLongitude() + "&name=" + LocationName); } } } diff --git a/src/main/java/de/pixart/messenger/ui/ShowLocationActivity.java b/src/main/java/de/pixart/messenger/ui/ShowLocationActivity.java index 27e48c0d3..67641238d 100644 --- a/src/main/java/de/pixart/messenger/ui/ShowLocationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ShowLocationActivity.java @@ -9,67 +9,33 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.location.Address; import android.location.Geocoder; +import android.location.Location; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; +import android.text.TextUtils; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import android.view.View; -import android.widget.TextView; +import android.webkit.WebView; import android.widget.Toast; -import com.google.android.gms.maps.CameraUpdateFactory; -import com.google.android.gms.maps.GoogleMap; -import com.google.android.gms.maps.MapFragment; -import com.google.android.gms.maps.OnMapReadyCallback; -import com.google.android.gms.maps.model.LatLng; -import com.google.android.gms.maps.model.Marker; -import com.google.android.gms.maps.model.MarkerOptions; +import org.jetbrains.annotations.Nullable; +import java.lang.ref.WeakReference; import java.util.List; import java.util.Locale; -import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.services.EmojiService; import static de.pixart.messenger.ui.SettingsActivity.USE_BUNDLED_EMOJIS; -public class ShowLocationActivity extends Activity implements OnMapReadyCallback { - - private GoogleMap mGoogleMap; - private LatLng mLocation; +public class ShowLocationActivity extends Activity { + private Location location; private String mLocationName; - private MarkerOptions options; - private Marker marker; - - class InfoWindowAdapter implements GoogleMap.InfoWindowAdapter { - - private final View InfoWindow; - - InfoWindowAdapter() { - InfoWindow = getLayoutInflater().inflate(R.layout.show_location_infowindow, null); - } - - @Override - public View getInfoWindow(Marker marker) { - return null; - } - - @Override - public View getInfoContents(Marker marker) { - - TextView Title = InfoWindow.findViewById(R.id.title); - Title.setText(marker.getTitle()); - TextView Snippet = InfoWindow.findViewById(R.id.snippet); - Snippet.setText(marker.getSnippet()); - - return InfoWindow; - } - } @Override protected void onCreate(Bundle savedInstanceState) { @@ -80,46 +46,8 @@ public class ShowLocationActivity extends Activity implements OnMapReadyCallback getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); } - setContentView(R.layout.activity_show_locaction); - MapFragment fragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map_fragment); - fragment.getMapAsync(this); - } - - protected SharedPreferences getPreferences() { - return PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - case R.id.action_navigate: - double longitude = mLocation.longitude; - double latitude = mLocation.latitude; - try { - Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:" + String.valueOf(latitude) + "," + String.valueOf(longitude))); - startActivity(intent); - } catch (ActivityNotFoundException e) { - Toast.makeText(this, R.string.no_application_found_to_display_location, Toast.LENGTH_SHORT).show(); - } - return true; - } - return super.onOptionsItemSelected(item); - } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.showlocation, menu); - return true; - } - - @Override - protected void onResume() { - super.onResume(); Intent intent = getIntent(); this.mLocationName = intent != null ? intent.getStringExtra("name") : null; @@ -127,39 +55,59 @@ public class ShowLocationActivity extends Activity implements OnMapReadyCallback if (intent != null && intent.hasExtra("longitude") && intent.hasExtra("latitude")) { double longitude = intent.getDoubleExtra("longitude", 0); double latitude = intent.getDoubleExtra("latitude", 0); - this.mLocation = new LatLng(latitude, longitude); - if (this.mGoogleMap != null) { - markAndCenterOnLocation(this.mLocation, this.mLocationName); - } + this.location = new Location(""); + this.location.setLatitude(latitude); + this.location.setLongitude(longitude); } - } - - @Override - protected void onPause() { - super.onPause(); - } - @Override - public void onMapReady(GoogleMap googleMap) { - this.mGoogleMap = googleMap; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - this.mGoogleMap.setBuildingsEnabled(true); - this.mGoogleMap.setMyLocationEnabled(true); + markAndCenterOnLocation(location); } } else { - this.mGoogleMap.setBuildingsEnabled(true); - this.mGoogleMap.setMyLocationEnabled(true); + markAndCenterOnLocation(location); } - if (this.mLocation != null) { - this.markAndCenterOnLocation(this.mLocation, this.mLocationName); + } + + private void markAndCenterOnLocation(final Location location) { + double longitude = location.getLongitude(); + double latitude = location.getLatitude(); + if (latitude != 0 && longitude != 0) { + new getAddressAsync(this).execute(); } } + private class getAddressAsync extends AsyncTask<Void, Void, Void> { + String address = null; + + private WeakReference<ShowLocationActivity> activityReference; + + getAddressAsync(ShowLocationActivity context) { + activityReference = new WeakReference<>(context); + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + showLocation(location, null); + } + + @Override + protected Void doInBackground(Void... params) { + address = getAddress(ShowLocationActivity.this, location); + return null; + } + + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + showLocation(location, address); + } + }; - private static String getAddress(Context context, LatLng location) { - double longitude = location.longitude; - double latitude = location.latitude; + private static String getAddress(Context context, Location location) { + double longitude = location.getLongitude(); + double latitude = location.getLatitude(); String address = ""; if (latitude != 0 && longitude != 0) { Geocoder geoCoder = new Geocoder(context, Locale.getDefault()); @@ -172,7 +120,7 @@ public class ShowLocationActivity extends Activity implements OnMapReadyCallback if (Address.getAddressLine(0).length() > 0) { strAddress.append(Address.getAddressLine(0)); } - address = strAddress.toString().replace(", ", "\n"); + address = strAddress.toString().replace(", ", "<br>"); } } catch (Exception e) { e.printStackTrace(); @@ -181,52 +129,58 @@ public class ShowLocationActivity extends Activity implements OnMapReadyCallback return address; } - private void markAndCenterOnLocation(final LatLng location, String name) { - mGoogleMap.clear(); - options = new MarkerOptions(); - options.position(location); - double longitude = mLocation.longitude; - double latitude = mLocation.latitude; - mGoogleMap.setInfoWindowAdapter(new InfoWindowAdapter()); - if (name != null) { - options.title(name); - } - if (latitude != 0 && longitude != 0) { - new AsyncTask<Void, Void, Void>() { - String address = null; - - @Override - protected void onPreExecute() { - super.onPreExecute(); - marker = mGoogleMap.addMarker(options); - marker.showInfoWindow(); - mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location, Config.DEFAULT_ZOOM)); - } - @Override - protected Void doInBackground(Void... params) { - address = getAddress(ShowLocationActivity.this, location); - return null; - } + protected SharedPreferences getPreferences() { + return PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + } - @Override - protected void onPostExecute(Void result) { - super.onPostExecute(result); - marker.remove(); - options.snippet(String.valueOf(address)); - marker = mGoogleMap.addMarker(options); - marker.showInfoWindow(); + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + case R.id.action_navigate: + double longitude = location.getLongitude(); + double latitude = location.getLatitude(); + try { + Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:" + String.valueOf(latitude) + "," + String.valueOf(longitude))); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(this, R.string.no_application_found_to_display_location, Toast.LENGTH_SHORT).show(); } - }.execute(); + return true; } + return super.onOptionsItemSelected(item); + } - mGoogleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { - @Override - public void onMapClick(LatLng latLng) { - if (marker != null) { - marker.showInfoWindow(); - } - } - }); + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.showlocation, menu); + return true; + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + } + + private void showLocation (@Nullable Location location, @Nullable String address) { + if (location == null && TextUtils.isEmpty(address)) { // no location and no address available + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html"); + } else if (location != null && TextUtils.isEmpty(address)) { // location but no address available + String LocationName = "<b>" + mLocationName + "</b>"; + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html?lat=" + location.getLatitude() + "&lon=" + location.getLongitude()+ "&name=" + LocationName); + } else if (location != null && !TextUtils.isEmpty(address)) { // location and address available + String LocationName = "<b>" + mLocationName + "</b><br>" + address; + final WebView webView = findViewById(R.id.webView); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("file:///android_asset/map.html?lat=" + location.getLatitude() + "&lon=" + location.getLongitude() + "&name=" + LocationName); + } } -} +}
\ No newline at end of file diff --git a/src/main/java/de/pixart/messenger/utils/LocationHelper.java b/src/main/java/de/pixart/messenger/utils/LocationHelper.java new file mode 100644 index 000000000..85226bcd1 --- /dev/null +++ b/src/main/java/de/pixart/messenger/utils/LocationHelper.java @@ -0,0 +1,51 @@ +package de.pixart.messenger.utils; + +import android.location.Location; + +import de.pixart.messenger.Config; + +public final class LocationHelper { + private static boolean isSameProvider(final String provider1, final String provider2) { + if (provider1 == null) { + return provider2 == null; + } + return provider1.equals(provider2); + } + + public static boolean isBetterLocation(final Location location, final Location prevLoc) { + if (prevLoc == null) { + return true; + } + + // Check whether the new location fix is newer or older + final long timeDelta = location.getTime() - prevLoc.getTime(); + final boolean isSignificantlyNewer = timeDelta > Config.LOCATION_FIX_SIGNIFICANT_TIME_DELTA; + final boolean isSignificantlyOlder = timeDelta < -Config.LOCATION_FIX_SIGNIFICANT_TIME_DELTA; + final boolean isNewer = timeDelta > 0; + + if (isSignificantlyNewer) { + return true; + } else if (isSignificantlyOlder) { + return false; + } + + // Check whether the new location fix is more or less accurate + final int accuracyDelta = (int) (location.getAccuracy() - prevLoc.getAccuracy()); + final boolean isLessAccurate = accuracyDelta > 0; + final boolean isMoreAccurate = accuracyDelta < 0; + final boolean isSignificantlyLessAccurate = accuracyDelta > 200; + + // Check if the old and new location are from the same provider + final boolean isFromSameProvider = isSameProvider(location.getProvider(), prevLoc.getProvider()); + + // Determine location quality using a combination of timeliness and accuracy + if (isMoreAccurate) { + return true; + } else if (isNewer && !isLessAccurate) { + return true; + } else if (isNewer && !isSignificantlyLessAccurate && isFromSameProvider) { + return true; + } + return false; + } +} diff --git a/src/main/res/layout/activity_share_locaction.xml b/src/main/res/layout/activity_share_locaction.xml index 7505e9b99..c9a146825 100644 --- a/src/main/res/layout/activity_share_locaction.xml +++ b/src/main/res/layout/activity_share_locaction.xml @@ -1,25 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/ripple_material_dark"> + tools:context="ui.ShareLocationActivity"> - <fragment - android:name="com.google.android.gms.maps.MapFragment" - android:id="@+id/map_fragment" - android:layout_width="match_parent" - android:layout_height="match_parent" + <WebView + android:id="@+id/webView" android:layout_above="@+id/snackbar" - map:mapType="normal" - map:uiCompass="true" - map:uiRotateGestures="false" - map:uiScrollGestures="true" - map:uiTiltGestures="false" - map:uiZoomControls="false" - map:uiZoomGestures="true" - tools:ignore="MissingPrefix" /> + android:layout_width="match_parent" + android:layout_height="match_parent"> + </WebView> <RelativeLayout android:id="@+id/snackbar" @@ -32,7 +23,7 @@ android:layout_above="@+id/button_bar" android:background="@drawable/snackbar" android:minHeight="48dp" - android:visibility="visible"> + android:visibility="visible" > <TextView android:layout_width="wrap_content" @@ -41,9 +32,9 @@ android:layout_centerVertical="true" android:layout_toLeftOf="@+id/snackbar_action" android:paddingLeft="24dp" - android:textColor="@color/grey50" + android:textColor="@color/white" android:textSize="?attr/TextSizeBody" - android:text="@string/location_sharing_disabled" /> + android:text="@string/location_sharing_disabled"/> <TextView android:id="@+id/snackbar_action" @@ -54,38 +45,13 @@ android:paddingRight="24dp" android:paddingTop="16dp" android:textAllCaps="true" - android:textColor="@color/grey50" + android:textColor="@color/white" android:textSize="?attr/TextSizeBody" android:textStyle="bold" android:text="@string/enable" android:layout_alignParentTop="true" android:layout_alignParentRight="true" - android:layout_alignParentEnd="true" /> - </RelativeLayout> - - <RelativeLayout - android:id="@+id/snackbar_location" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_marginTop="4dp" - android:layout_marginBottom="4dp" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" - android:layout_above="@+id/button_bar" - android:background="@drawable/snackbar" - android:minHeight="24dp" - android:visibility="gone"> - - <TextView - android:id="@id/snackbar_location_message" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentLeft="true" - android:paddingLeft="24dp" - android:textColor="@color/grey50" - android:textSize="?attr/TextSizeBody" - android:layout_centerVertical="true" /> - + android:layout_alignParentEnd="true"/> </RelativeLayout> <LinearLayout @@ -120,6 +86,6 @@ android:layout_weight="1" android:enabled="false" android:text="@string/share" - android:textColor="@color/secondary_text_disabled_material_light" /> + android:textColor="@color/primary" /> </LinearLayout> </RelativeLayout>
\ No newline at end of file diff --git a/src/main/res/layout/activity_show_locaction.xml b/src/main/res/layout/activity_show_locaction.xml index 32e177b33..5e164b407 100644 --- a/src/main/res/layout/activity_show_locaction.xml +++ b/src/main/res/layout/activity_show_locaction.xml @@ -1,23 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + tools:context="ui.ShowLocationActivity"> - <fragment - - android:name="com.google.android.gms.maps.MapFragment" - android:id="@+id/map_fragment" + <WebView + android:id="@+id/webView" android:layout_width="match_parent" - android:layout_height="match_parent" - map:mapType="normal" - map:uiCompass="true" - map:uiRotateGestures="false" - map:uiScrollGestures="true" - map:uiTiltGestures="false" - map:uiZoomControls="false" - map:uiZoomGestures="true" - tools:ignore="MissingPrefix" /> - + android:layout_height="match_parent"> + </WebView> </RelativeLayout>
\ No newline at end of file |