Version Description
Download this release
Release Info
Developer | bmarshall511 |
Plugin | WordPress Zero Spam |
Version | 2.2.0 |
Comparing to | |
See all releases |
Code changes from version 2.1.1 to 2.2.0
- css/style.css +1 -1
- inc/admin-sidebar.tpl.php +1 -1
- inc/spammer-logs.tpl.php +4 -4
- js/charts.js +5953 -9
- js/zero-spam-admin.js +105 -1
- js/zerospam.js +24 -1
- readme.txt +14 -3
- src/ZeroSpam/Admin.php +10 -8
- src/ZeroSpam/Ajax.php +4 -2
- src/helpers.php +98 -4
- zero-spam.php +1 -1
css/style.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
/*!
|
2 |
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
|
3 |
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
4 |
-
*/@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.2.0#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.33333em;line-height:0.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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.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}@-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{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-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:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}.jvectormap-container{width:100%;height:100%;position:relative;overflow:hidden}.jvectormap-tip{position:absolute;display:none;border:solid 1px #CDCDCD;border-radius:3px;background:#292929;color:white;font-family:sans-serif, Verdana;font-size:smaller;padding:3px}.jvectormap-zoomin,.jvectormap-zoomout,.jvectormap-goback{position:absolute;left:10px;border-radius:3px;background:#292929;padding:3px;color:white;cursor:pointer;line-height:10px;text-align:center}.jvectormap-zoomin,.jvectormap-zoomout{width:10px;height:10px}.jvectormap-zoomin{top:10px}.jvectormap-zoomout{top:30px}.jvectormap-goback{bottom:10px;z-index:1000;padding:6px}.jvectormap-spinner{position:absolute;left:0;top:0;right:0;bottom:0;background:center no-repeat url(data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==)}.jvectormap-legend-title{font-weight:bold;font-size:14px;text-align:center}.jvectormap-legend-cnt{position:absolute}.jvectormap-legend-cnt-h{bottom:0;right:0}.jvectormap-legend-cnt-v{top:0;right:0}.jvectormap-legend{background:black;color:white;border-radius:3px}.jvectormap-legend-cnt-h .jvectormap-legend{float:left;margin:0 10px 10px 0;padding:3px 3px 1px 3px}.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick{float:left}.jvectormap-legend-cnt-v .jvectormap-legend{margin:10px 10px 0 0;padding:3px}.jvectormap-legend-cnt-h .jvectormap-legend-tick{width:40px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample{height:15px}.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample{height:20px;width:20px;display:inline-block;vertical-align:middle}.jvectormap-legend-tick-text{font-size:12px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-text{text-align:center}.jvectormap-legend-cnt-v .jvectormap-legend-tick-text{display:inline-block;vertical-align:middle;line-height:20px;padding-left:3px}.country-flags-sprite,.country-flags-ad,.country-flags-ae,.country-flags-af,.country-flags-ag,.country-flags-ai,.country-flags-al,.country-flags-am,.country-flags-an,.country-flags-ao,.country-flags-ar,.country-flags-as,.country-flags-at,.country-flags-au,.country-flags-aw,.country-flags-ax,.country-flags-az,.country-flags-ba,.country-flags-bb,.country-flags-bd,.country-flags-be,.country-flags-bf,.country-flags-bg,.country-flags-bh,.country-flags-bi,.country-flags-bj,.country-flags-bm,.country-flags-bn,.country-flags-bo,.country-flags-br,.country-flags-bs,.country-flags-bt,.country-flags-bv,.country-flags-bw,.country-flags-by,.country-flags-bz,.country-flags-ca,.country-flags-catalonia,.country-flags-cc,.country-flags-cd,.country-flags-cf,.country-flags-cg,.country-flags-ch,.country-flags-ci,.country-flags-ck,.country-flags-cl,.country-flags-cm,.country-flags-cn,.country-flags-co,.country-flags-cr,.country-flags-cs,.country-flags-cu,.country-flags-cv,.country-flags-cx,.country-flags-cy,.country-flags-cz,.country-flags-de,.country-flags-dj,.country-flags-dk,.country-flags-dm,.country-flags-do,.country-flags-dz,.country-flags-ec,.country-flags-ee,.country-flags-eg,.country-flags-eh,.country-flags-england,.country-flags-er,.country-flags-es,.country-flags-et,.country-flags-europeanunion,.country-flags-fam,.country-flags-fi,.country-flags-fj,.country-flags-fk,.country-flags-fm,.country-flags-fo,.country-flags-fr,.country-flags-ga,.country-flags-gb,.country-flags-gd,.country-flags-ge,.country-flags-gf,.country-flags-gh,.country-flags-gi,.country-flags-gl,.country-flags-gm,.country-flags-gn,.country-flags-gp,.country-flags-gq,.country-flags-gr,.country-flags-gs,.country-flags-gt,.country-flags-gu,.country-flags-gw,.country-flags-gy,.country-flags-hk,.country-flags-hm,.country-flags-hn,.country-flags-hr,.country-flags-ht,.country-flags-hu,.country-flags-id,.country-flags-ie,.country-flags-il,.country-flags-in,.country-flags-io,.country-flags-iq,.country-flags-ir,.country-flags-is,.country-flags-it,.country-flags-jm,.country-flags-jo,.country-flags-jp,.country-flags-ke,.country-flags-kg,.country-flags-kh,.country-flags-ki,.country-flags-km,.country-flags-kn,.country-flags-kp,.country-flags-kr,.country-flags-kw,.country-flags-ky,.country-flags-kz,.country-flags-la,.country-flags-lb,.country-flags-lc,.country-flags-li,.country-flags-lk,.country-flags-lr,.country-flags-ls,.country-flags-lt,.country-flags-lu,.country-flags-lv,.country-flags-ly,.country-flags-ma,.country-flags-mc,.country-flags-md,.country-flags-me,.country-flags-mg,.country-flags-mh,.country-flags-mk,.country-flags-ml,.country-flags-mm,.country-flags-mn,.country-flags-mo,.country-flags-mp,.country-flags-mq,.country-flags-mr,.country-flags-ms,.country-flags-mt,.country-flags-mu,.country-flags-mv,.country-flags-mw,.country-flags-mx,.country-flags-my,.country-flags-mz,.country-flags-na,.country-flags-nc,.country-flags-ne,.country-flags-nf,.country-flags-ng,.country-flags-ni,.country-flags-nl,.country-flags-no,.country-flags-np,.country-flags-nr,.country-flags-nu,.country-flags-nz,.country-flags-om,.country-flags-pa,.country-flags-pe,.country-flags-pf,.country-flags-pg,.country-flags-ph,.country-flags-pk,.country-flags-pl,.country-flags-pm,.country-flags-pn,.country-flags-pr,.country-flags-ps,.country-flags-pt,.country-flags-pw,.country-flags-py,.country-flags-qa,.country-flags-re,.country-flags-ro,.country-flags-rs,.country-flags-ru,.country-flags-rw,.country-flags-sa,.country-flags-sb,.country-flags-sc,.country-flags-scotland,.country-flags-sd,.country-flags-se,.country-flags-sg,.country-flags-sh,.country-flags-si,.country-flags-sj,.country-flags-sk,.country-flags-sl,.country-flags-sm,.country-flags-sn,.country-flags-so,.country-flags-sr,.country-flags-st,.country-flags-sv,.country-flags-sy,.country-flags-sz,.country-flags-tc,.country-flags-td,.country-flags-tf,.country-flags-tg,.country-flags-th,.country-flags-tj,.country-flags-tk,.country-flags-tl,.country-flags-tm,.country-flags-tn,.country-flags-to,.country-flags-tr,.country-flags-tt,.country-flags-tv,.country-flags-tw,.country-flags-tz,.country-flags-ua,.country-flags-ug,.country-flags-um,.country-flags-us,.country-flags-uy,.country-flags-uz,.country-flags-va,.country-flags-vc,.country-flags-ve,.country-flags-vg,.country-flags-vi,.country-flags-vn,.country-flags-vu,.country-flags-wales,.country-flags-wf,.country-flags-ws,.country-flags-ye,.country-flags-yt,.country-flags-za,.country-flags-zm,.country-flags-zw{background-image:url('../img/country-flags-sed4ce568d7.png');background-repeat:no-repeat}.country-flags-ad{background-position:0 0}.country-flags-ae{background-position:0 -11px}.country-flags-af{background-position:0 -22px}.country-flags-ag{background-position:0 -33px}.country-flags-ai{background-position:0 -44px}.country-flags-al{background-position:0 -55px}.country-flags-am{background-position:0 -66px}.country-flags-an{background-position:0 -77px}.country-flags-ao{background-position:0 -88px}.country-flags-ar{background-position:0 -99px}.country-flags-as{background-position:0 -110px}.country-flags-at{background-position:0 -121px}.country-flags-au{background-position:0 -132px}.country-flags-aw{background-position:0 -143px}.country-flags-ax{background-position:0 -154px}.country-flags-az{background-position:0 -165px}.country-flags-ba{background-position:0 -176px}.country-flags-bb{background-position:0 -187px}.country-flags-bd{background-position:0 -198px}.country-flags-be{background-position:0 -209px}.country-flags-bf{background-position:0 -220px}.country-flags-bg{background-position:0 -231px}.country-flags-bh{background-position:0 -242px}.country-flags-bi{background-position:0 -253px}.country-flags-bj{background-position:0 -264px}.country-flags-bm{background-position:0 -275px}.country-flags-bn{background-position:0 -286px}.country-flags-bo{background-position:0 -297px}.country-flags-br{background-position:0 -308px}.country-flags-bs{background-position:0 -319px}.country-flags-bt{background-position:0 -330px}.country-flags-bv{background-position:0 -341px}.country-flags-bw{background-position:0 -352px}.country-flags-by{background-position:0 -363px}.country-flags-bz{background-position:0 -374px}.country-flags-ca{background-position:0 -385px}.country-flags-catalonia{background-position:0 -396px}.country-flags-cc{background-position:0 -407px}.country-flags-cd{background-position:0 -418px}.country-flags-cf{background-position:0 -429px}.country-flags-cg{background-position:0 -440px}.country-flags-ch{background-position:0 -451px}.country-flags-ci{background-position:0 -462px}.country-flags-ck{background-position:0 -473px}.country-flags-cl{background-position:0 -484px}.country-flags-cm{background-position:0 -495px}.country-flags-cn{background-position:0 -506px}.country-flags-co{background-position:0 -517px}.country-flags-cr{background-position:0 -528px}.country-flags-cs{background-position:0 -539px}.country-flags-cu{background-position:0 -550px}.country-flags-cv{background-position:0 -561px}.country-flags-cx{background-position:0 -572px}.country-flags-cy{background-position:0 -583px}.country-flags-cz{background-position:0 -594px}.country-flags-de{background-position:0 -605px}.country-flags-dj{background-position:0 -616px}.country-flags-dk{background-position:0 -627px}.country-flags-dm{background-position:0 -638px}.country-flags-do{background-position:0 -649px}.country-flags-dz{background-position:0 -660px}.country-flags-ec{background-position:0 -671px}.country-flags-ee{background-position:0 -682px}.country-flags-eg{background-position:0 -693px}.country-flags-eh{background-position:0 -704px}.country-flags-england{background-position:0 -715px}.country-flags-er{background-position:0 -726px}.country-flags-es{background-position:0 -737px}.country-flags-et{background-position:0 -748px}.country-flags-europeanunion{background-position:0 -759px}.country-flags-fam{background-position:0 -770px}.country-flags-fi{background-position:0 -781px}.country-flags-fj{background-position:0 -792px}.country-flags-fk{background-position:0 -803px}.country-flags-fm{background-position:0 -814px}.country-flags-fo{background-position:0 -825px}.country-flags-fr{background-position:0 -836px}.country-flags-ga{background-position:0 -847px}.country-flags-gb{background-position:0 -858px}.country-flags-gd{background-position:0 -869px}.country-flags-ge{background-position:0 -880px}.country-flags-gf{background-position:0 -891px}.country-flags-gh{background-position:0 -902px}.country-flags-gi{background-position:0 -913px}.country-flags-gl{background-position:0 -924px}.country-flags-gm{background-position:0 -935px}.country-flags-gn{background-position:0 -946px}.country-flags-gp{background-position:0 -957px}.country-flags-gq{background-position:0 -968px}.country-flags-gr{background-position:0 -979px}.country-flags-gs{background-position:0 -990px}.country-flags-gt{background-position:0 -1001px}.country-flags-gu{background-position:0 -1012px}.country-flags-gw{background-position:0 -1023px}.country-flags-gy{background-position:0 -1034px}.country-flags-hk{background-position:0 -1045px}.country-flags-hm{background-position:0 -1056px}.country-flags-hn{background-position:0 -1067px}.country-flags-hr{background-position:0 -1078px}.country-flags-ht{background-position:0 -1089px}.country-flags-hu{background-position:0 -1100px}.country-flags-id{background-position:0 -1111px}.country-flags-ie{background-position:0 -1122px}.country-flags-il{background-position:0 -1133px}.country-flags-in{background-position:0 -1144px}.country-flags-io{background-position:0 -1155px}.country-flags-iq{background-position:0 -1166px}.country-flags-ir{background-position:0 -1177px}.country-flags-is{background-position:0 -1188px}.country-flags-it{background-position:0 -1199px}.country-flags-jm{background-position:0 -1210px}.country-flags-jo{background-position:0 -1221px}.country-flags-jp{background-position:0 -1232px}.country-flags-ke{background-position:0 -1243px}.country-flags-kg{background-position:0 -1254px}.country-flags-kh{background-position:0 -1265px}.country-flags-ki{background-position:0 -1276px}.country-flags-km{background-position:0 -1287px}.country-flags-kn{background-position:0 -1298px}.country-flags-kp{background-position:0 -1309px}.country-flags-kr{background-position:0 -1320px}.country-flags-kw{background-position:0 -1331px}.country-flags-ky{background-position:0 -1342px}.country-flags-kz{background-position:0 -1353px}.country-flags-la{background-position:0 -1364px}.country-flags-lb{background-position:0 -1375px}.country-flags-lc{background-position:0 -1386px}.country-flags-li{background-position:0 -1397px}.country-flags-lk{background-position:0 -1408px}.country-flags-lr{background-position:0 -1419px}.country-flags-ls{background-position:0 -1430px}.country-flags-lt{background-position:0 -1441px}.country-flags-lu{background-position:0 -1452px}.country-flags-lv{background-position:0 -1463px}.country-flags-ly{background-position:0 -1474px}.country-flags-ma{background-position:0 -1485px}.country-flags-mc{background-position:0 -1496px}.country-flags-md{background-position:0 -1507px}.country-flags-me{background-position:0 -1518px}.country-flags-mg{background-position:0 -1530px}.country-flags-mh{background-position:0 -1541px}.country-flags-mk{background-position:0 -1552px}.country-flags-ml{background-position:0 -1563px}.country-flags-mm{background-position:0 -1574px}.country-flags-mn{background-position:0 -1585px}.country-flags-mo{background-position:0 -1596px}.country-flags-mp{background-position:0 -1607px}.country-flags-mq{background-position:0 -1618px}.country-flags-mr{background-position:0 -1629px}.country-flags-ms{background-position:0 -1640px}.country-flags-mt{background-position:0 -1651px}.country-flags-mu{background-position:0 -1662px}.country-flags-mv{background-position:0 -1673px}.country-flags-mw{background-position:0 -1684px}.country-flags-mx{background-position:0 -1695px}.country-flags-my{background-position:0 -1706px}.country-flags-mz{background-position:0 -1717px}.country-flags-na{background-position:0 -1728px}.country-flags-nc{background-position:0 -1739px}.country-flags-ne{background-position:0 -1750px}.country-flags-nf{background-position:0 -1761px}.country-flags-ng{background-position:0 -1772px}.country-flags-ni{background-position:0 -1783px}.country-flags-nl{background-position:0 -1794px}.country-flags-no{background-position:0 -1805px}.country-flags-np{background-position:0 -1816px}.country-flags-nr{background-position:0 -1827px}.country-flags-nu{background-position:0 -1838px}.country-flags-nz{background-position:0 -1849px}.country-flags-om{background-position:0 -1860px}.country-flags-pa{background-position:0 -1871px}.country-flags-pe{background-position:0 -1882px}.country-flags-pf{background-position:0 -1893px}.country-flags-pg{background-position:0 -1904px}.country-flags-ph{background-position:0 -1915px}.country-flags-pk{background-position:0 -1926px}.country-flags-pl{background-position:0 -1937px}.country-flags-pm{background-position:0 -1948px}.country-flags-pn{background-position:0 -1959px}.country-flags-pr{background-position:0 -1970px}.country-flags-ps{background-position:0 -1981px}.country-flags-pt{background-position:0 -1992px}.country-flags-pw{background-position:0 -2003px}.country-flags-py{background-position:0 -2014px}.country-flags-qa{background-position:0 -2025px}.country-flags-re{background-position:0 -2036px}.country-flags-ro{background-position:0 -2047px}.country-flags-rs{background-position:0 -2058px}.country-flags-ru{background-position:0 -2069px}.country-flags-rw{background-position:0 -2080px}.country-flags-sa{background-position:0 -2091px}.country-flags-sb{background-position:0 -2102px}.country-flags-sc{background-position:0 -2113px}.country-flags-scotland{background-position:0 -2124px}.country-flags-sd{background-position:0 -2135px}.country-flags-se{background-position:0 -2146px}.country-flags-sg{background-position:0 -2157px}.country-flags-sh{background-position:0 -2168px}.country-flags-si{background-position:0 -2179px}.country-flags-sj{background-position:0 -2190px}.country-flags-sk{background-position:0 -2201px}.country-flags-sl{background-position:0 -2212px}.country-flags-sm{background-position:0 -2223px}.country-flags-sn{background-position:0 -2234px}.country-flags-so{background-position:0 -2245px}.country-flags-sr{background-position:0 -2256px}.country-flags-st{background-position:0 -2267px}.country-flags-sv{background-position:0 -2278px}.country-flags-sy{background-position:0 -2289px}.country-flags-sz{background-position:0 -2300px}.country-flags-tc{background-position:0 -2311px}.country-flags-td{background-position:0 -2322px}.country-flags-tf{background-position:0 -2333px}.country-flags-tg{background-position:0 -2344px}.country-flags-th{background-position:0 -2355px}.country-flags-tj{background-position:0 -2366px}.country-flags-tk{background-position:0 -2377px}.country-flags-tl{background-position:0 -2388px}.country-flags-tm{background-position:0 -2399px}.country-flags-tn{background-position:0 -2410px}.country-flags-to{background-position:0 -2421px}.country-flags-tr{background-position:0 -2432px}.country-flags-tt{background-position:0 -2443px}.country-flags-tv{background-position:0 -2454px}.country-flags-tw{background-position:0 -2465px}.country-flags-tz{background-position:0 -2476px}.country-flags-ua{background-position:0 -2487px}.country-flags-ug{background-position:0 -2498px}.country-flags-um{background-position:0 -2509px}.country-flags-us{background-position:0 -2520px}.country-flags-uy{background-position:0 -2531px}.country-flags-uz{background-position:0 -2542px}.country-flags-va{background-position:0 -2553px}.country-flags-vc{background-position:0 -2564px}.country-flags-ve{background-position:0 -2575px}.country-flags-vg{background-position:0 -2586px}.country-flags-vi{background-position:0 -2597px}.country-flags-vn{background-position:0 -2608px}.country-flags-vu{background-position:0 -2619px}.country-flags-wales{background-position:0 -2630px}.country-flags-wf{background-position:0 -2641px}.country-flags-ws{background-position:0 -2652px}.country-flags-ye{background-position:0 -2663px}.country-flags-yt{background-position:0 -2674px}.country-flags-za{background-position:0 -2685px}.country-flags-zm{background-position:0 -2696px}.country-flags-zw{background-position:0 -2707px}.country-flag{display:inline-block;vertical-align:middle}.country-flag{width:16px;height:11px}.zero-spam__text-right{text-align:right !important}.zero-spam__text-center{text-align:center !important}.zero-spam__table{width:100%;border-collapse:collapse;border-bottom:2px solid #e8edf1;margin-bottom:10px}.zero-spam__table th,.zero-spam__table td{font-size:12px;padding:10px 12px}.zero-spam__table th{text-align:left;text-transform:uppercase;font-weight:bold;line-height:1.42857143}.zero-spam__table td{border-top:1px solid #e8edf1}.zero-spam__table tr .fa-circle-o-notch,.zero-spam__table tr .fa-edit{display:none}.zero-spam__table tr.zero-spam__loading .fa-circle-o-notch{display:inline}.zero-spam__table tr.zero-spam__loading .zero-spam__block-ip{display:none}.zero-spam__table tr.zero-spam__loaded .fa-edit{display:inline}.zero-spam__table tr.zero-spam__loaded .zero-spam__block-ip{display:none}.zero-spam__table .form-table th{text-transform:none}.zero-spam__table .form-table td{border:0}.zero-spam__msg{display:block;margin:7px 0;padding:15px 20px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#529e00;color:#fff}.zero-spam__row-highlight{background:#f8f9fb}.zero-spam__widget{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;position:relative;margin:20px 0 0 0;background:#fff;overflow:hidden}.zero-spam__overlay{position:absolute;z-index:99;top:0;left:0;width:100%;height:100%;padding-top:50px;background:rgba(27,30,36,0.7);color:#fff;text-align:center}.zero-spam__overlay .fa{font-size:130px}.zero-spam__overlay h4{margin-bottom:10px;font-size:20px;font-weight:bold}.zero-spam__overlay p{margin-top:10px;font-style:italic}.zero-spam__inner{padding:20px}.zero-spam__widget h3{margin-top:0;text-transform:uppercase;font-size:10.5px;color:#1b1e24}.zero-spam__inner h3:first-child{margin-top:0}.zero-spam__inner p:last-child{margin-bottom:0}.zero-spam__widget p{margin-bottom:20px}.zero-spam__widget a{color:#ff183a;text-decoration:none;transition:all .3s}.zero-spam__widget a:hover{color:#0086c6}.wrap .zero-spam__widget h2{margin:0px 0 5px 0;padding:0;font-weight:400}.zero-spam__widget h2 a{color:#000}.zero-spam__widget .fa-star{color:#fddb5a}.zero-spam__button{display:inline-block;background:#00639e;color:#fff !important;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;padding:10px 15px;font-weight:600}.zero-spam__button:hover{background:#0086c6}.zero-spam__description{margin:0 0 20px 0}.wrap .zero-spam__widget h2.zero-spam__title{display:block;border-bottom:1px solid #ddd;padding:10px;font-size:15px;font-weight:600}.zero-spam__bg--primary{background:#ff183a;color:#fff}.zero-spam__bg--secondary{background:#00639e;color:#fff}.zero-spam__bg--trinary{background:#fddb5a;color:#1b1e24}.zero-spam__bg--gf{background:#222d3a;color:#fff}.zero-spam__bg--bpr{background:#be3631;color:#fff}.zero-spam__bg--nf{background:#ef4748;color:#fff}.zero-spam__bg--wpf{background:#e27730;color:#fff}.zero-spam__bg--misc{background:#c2c2c2;color:#000}.zero-spam__row{overflow:hidden}.zero-spam__row .zero-spam__cell:first-child{padding-right:10px}.zero-spam__row .zero-spam__cell:last-child{padding-left:10px}.zero-spam__cell{display:inline-block;float:left;width:50%;box-sizing:border-box}@media all and (max-width: 1640px){.zero-spam__cell{display:block;float:none;width:100%}.zero-spam__row .zero-spam__cell:first-child{padding-right:0}.zero-spam__row .zero-spam__cell:last-child{padding-left:0}}.zero-spam__row .zero-spam__stat:last-child{border-right:0}.zero-spam__cell .zero-spam__widget{margin-bottom:0}.zero-spam__stat{display:inline-block;float:left;border-right:1px solid rgba(0,0,0,0.2);margin:0 10px 10px 0;padding-right:10px;font-size:12px}.zero-spam__stat b{font-size:15px;text-align:right;display:block}.zerospam__left{padding-right:445px}.zerospam__right{width:422px;float:right}.zero-spam__label{display:inline-block;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__fright{float:right}@media all and (max-width: 1140px){.zerospam__left{padding-right:0}.zerospam__right{width:100%;float:none}.zerospam__right .zero-spam__widget:first-child{margin-top:0}}.zero-spam__label{display:inline-block;padding:3px 5px;font-size:11px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__pager{display:inline-block;margin:0;padding:0;list-style-type:none;overflow:hidden;font-size:11px;font-weight:bold}.zero-spam__pager li{display:inline-block;float:left;margin:0 1px}.zero-spam__pager a{display:block;padding:6px 13px;border-radius:3px;background:#fddb5a;color:#896d02;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__pager a.zero-spam__page-selected{background:transparent;color:#000}.zero-spam__page-info{display:inline-block;font-size:11px;line-height:30px;margin-left:10px;vertical-align:top}.zero-spam__map{height:350px}.zero-spam__photos{display:block;margin:0;padding:0;list-style-type:none}.zero-spam__photos li{display:block;overflow:hidden}.zero-spam__photos img{max-width:100%}.zero-spam__photo{display:block;width:94px;height:94px;float:left;margin-right:10px}
|
1 |
/*!
|
2 |
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
|
3 |
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
4 |
+
*/@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.2.0#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.33333em;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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.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}@-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{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-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:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}.jvectormap-container{width:100%;height:100%;position:relative;overflow:hidden}.jvectormap-tip{position:absolute;display:none;border:solid 1px #CDCDCD;border-radius:3px;background:#292929;color:white;font-family:sans-serif, Verdana;font-size:smaller;padding:3px}.jvectormap-zoomin,.jvectormap-zoomout,.jvectormap-goback{position:absolute;left:10px;border-radius:3px;background:#292929;padding:3px;color:white;cursor:pointer;line-height:10px;text-align:center}.jvectormap-zoomin,.jvectormap-zoomout{width:10px;height:10px}.jvectormap-zoomin{top:10px}.jvectormap-zoomout{top:30px}.jvectormap-goback{bottom:10px;z-index:1000;padding:6px}.jvectormap-spinner{position:absolute;left:0;top:0;right:0;bottom:0;background:center no-repeat url(data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==)}.jvectormap-legend-title{font-weight:bold;font-size:14px;text-align:center}.jvectormap-legend-cnt{position:absolute}.jvectormap-legend-cnt-h{bottom:0;right:0}.jvectormap-legend-cnt-v{top:0;right:0}.jvectormap-legend{background:black;color:white;border-radius:3px}.jvectormap-legend-cnt-h .jvectormap-legend{float:left;margin:0 10px 10px 0;padding:3px 3px 1px 3px}.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick{float:left}.jvectormap-legend-cnt-v .jvectormap-legend{margin:10px 10px 0 0;padding:3px}.jvectormap-legend-cnt-h .jvectormap-legend-tick{width:40px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample{height:15px}.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample{height:20px;width:20px;display:inline-block;vertical-align:middle}.jvectormap-legend-tick-text{font-size:12px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-text{text-align:center}.jvectormap-legend-cnt-v .jvectormap-legend-tick-text{display:inline-block;vertical-align:middle;line-height:20px;padding-left:3px}.country-flags-sprite,.country-flags-ad,.country-flags-ae,.country-flags-af,.country-flags-ag,.country-flags-ai,.country-flags-al,.country-flags-am,.country-flags-an,.country-flags-ao,.country-flags-ar,.country-flags-as,.country-flags-at,.country-flags-au,.country-flags-aw,.country-flags-ax,.country-flags-az,.country-flags-ba,.country-flags-bb,.country-flags-bd,.country-flags-be,.country-flags-bf,.country-flags-bg,.country-flags-bh,.country-flags-bi,.country-flags-bj,.country-flags-bm,.country-flags-bn,.country-flags-bo,.country-flags-br,.country-flags-bs,.country-flags-bt,.country-flags-bv,.country-flags-bw,.country-flags-by,.country-flags-bz,.country-flags-ca,.country-flags-catalonia,.country-flags-cc,.country-flags-cd,.country-flags-cf,.country-flags-cg,.country-flags-ch,.country-flags-ci,.country-flags-ck,.country-flags-cl,.country-flags-cm,.country-flags-cn,.country-flags-co,.country-flags-cr,.country-flags-cs,.country-flags-cu,.country-flags-cv,.country-flags-cx,.country-flags-cy,.country-flags-cz,.country-flags-de,.country-flags-dj,.country-flags-dk,.country-flags-dm,.country-flags-do,.country-flags-dz,.country-flags-ec,.country-flags-ee,.country-flags-eg,.country-flags-eh,.country-flags-england,.country-flags-er,.country-flags-es,.country-flags-et,.country-flags-europeanunion,.country-flags-fam,.country-flags-fi,.country-flags-fj,.country-flags-fk,.country-flags-fm,.country-flags-fo,.country-flags-fr,.country-flags-ga,.country-flags-gb,.country-flags-gd,.country-flags-ge,.country-flags-gf,.country-flags-gh,.country-flags-gi,.country-flags-gl,.country-flags-gm,.country-flags-gn,.country-flags-gp,.country-flags-gq,.country-flags-gr,.country-flags-gs,.country-flags-gt,.country-flags-gu,.country-flags-gw,.country-flags-gy,.country-flags-hk,.country-flags-hm,.country-flags-hn,.country-flags-hr,.country-flags-ht,.country-flags-hu,.country-flags-id,.country-flags-ie,.country-flags-il,.country-flags-in,.country-flags-io,.country-flags-iq,.country-flags-ir,.country-flags-is,.country-flags-it,.country-flags-jm,.country-flags-jo,.country-flags-jp,.country-flags-ke,.country-flags-kg,.country-flags-kh,.country-flags-ki,.country-flags-km,.country-flags-kn,.country-flags-kp,.country-flags-kr,.country-flags-kw,.country-flags-ky,.country-flags-kz,.country-flags-la,.country-flags-lb,.country-flags-lc,.country-flags-li,.country-flags-lk,.country-flags-lr,.country-flags-ls,.country-flags-lt,.country-flags-lu,.country-flags-lv,.country-flags-ly,.country-flags-ma,.country-flags-mc,.country-flags-md,.country-flags-me,.country-flags-mg,.country-flags-mh,.country-flags-mk,.country-flags-ml,.country-flags-mm,.country-flags-mn,.country-flags-mo,.country-flags-mp,.country-flags-mq,.country-flags-mr,.country-flags-ms,.country-flags-mt,.country-flags-mu,.country-flags-mv,.country-flags-mw,.country-flags-mx,.country-flags-my,.country-flags-mz,.country-flags-na,.country-flags-nc,.country-flags-ne,.country-flags-nf,.country-flags-ng,.country-flags-ni,.country-flags-nl,.country-flags-no,.country-flags-np,.country-flags-nr,.country-flags-nu,.country-flags-nz,.country-flags-om,.country-flags-pa,.country-flags-pe,.country-flags-pf,.country-flags-pg,.country-flags-ph,.country-flags-pk,.country-flags-pl,.country-flags-pm,.country-flags-pn,.country-flags-pr,.country-flags-ps,.country-flags-pt,.country-flags-pw,.country-flags-py,.country-flags-qa,.country-flags-re,.country-flags-ro,.country-flags-rs,.country-flags-ru,.country-flags-rw,.country-flags-sa,.country-flags-sb,.country-flags-sc,.country-flags-scotland,.country-flags-sd,.country-flags-se,.country-flags-sg,.country-flags-sh,.country-flags-si,.country-flags-sj,.country-flags-sk,.country-flags-sl,.country-flags-sm,.country-flags-sn,.country-flags-so,.country-flags-sr,.country-flags-st,.country-flags-sv,.country-flags-sy,.country-flags-sz,.country-flags-tc,.country-flags-td,.country-flags-tf,.country-flags-tg,.country-flags-th,.country-flags-tj,.country-flags-tk,.country-flags-tl,.country-flags-tm,.country-flags-tn,.country-flags-to,.country-flags-tr,.country-flags-tt,.country-flags-tv,.country-flags-tw,.country-flags-tz,.country-flags-ua,.country-flags-ug,.country-flags-um,.country-flags-us,.country-flags-uy,.country-flags-uz,.country-flags-va,.country-flags-vc,.country-flags-ve,.country-flags-vg,.country-flags-vi,.country-flags-vn,.country-flags-vu,.country-flags-wales,.country-flags-wf,.country-flags-ws,.country-flags-ye,.country-flags-yt,.country-flags-za,.country-flags-zm,.country-flags-zw{background-image:url('../img/country-flags-sed4ce568d7.png');background-repeat:no-repeat}.country-flags-ad{background-position:0 0}.country-flags-ae{background-position:0 -11px}.country-flags-af{background-position:0 -22px}.country-flags-ag{background-position:0 -33px}.country-flags-ai{background-position:0 -44px}.country-flags-al{background-position:0 -55px}.country-flags-am{background-position:0 -66px}.country-flags-an{background-position:0 -77px}.country-flags-ao{background-position:0 -88px}.country-flags-ar{background-position:0 -99px}.country-flags-as{background-position:0 -110px}.country-flags-at{background-position:0 -121px}.country-flags-au{background-position:0 -132px}.country-flags-aw{background-position:0 -143px}.country-flags-ax{background-position:0 -154px}.country-flags-az{background-position:0 -165px}.country-flags-ba{background-position:0 -176px}.country-flags-bb{background-position:0 -187px}.country-flags-bd{background-position:0 -198px}.country-flags-be{background-position:0 -209px}.country-flags-bf{background-position:0 -220px}.country-flags-bg{background-position:0 -231px}.country-flags-bh{background-position:0 -242px}.country-flags-bi{background-position:0 -253px}.country-flags-bj{background-position:0 -264px}.country-flags-bm{background-position:0 -275px}.country-flags-bn{background-position:0 -286px}.country-flags-bo{background-position:0 -297px}.country-flags-br{background-position:0 -308px}.country-flags-bs{background-position:0 -319px}.country-flags-bt{background-position:0 -330px}.country-flags-bv{background-position:0 -341px}.country-flags-bw{background-position:0 -352px}.country-flags-by{background-position:0 -363px}.country-flags-bz{background-position:0 -374px}.country-flags-ca{background-position:0 -385px}.country-flags-catalonia{background-position:0 -396px}.country-flags-cc{background-position:0 -407px}.country-flags-cd{background-position:0 -418px}.country-flags-cf{background-position:0 -429px}.country-flags-cg{background-position:0 -440px}.country-flags-ch{background-position:0 -451px}.country-flags-ci{background-position:0 -462px}.country-flags-ck{background-position:0 -473px}.country-flags-cl{background-position:0 -484px}.country-flags-cm{background-position:0 -495px}.country-flags-cn{background-position:0 -506px}.country-flags-co{background-position:0 -517px}.country-flags-cr{background-position:0 -528px}.country-flags-cs{background-position:0 -539px}.country-flags-cu{background-position:0 -550px}.country-flags-cv{background-position:0 -561px}.country-flags-cx{background-position:0 -572px}.country-flags-cy{background-position:0 -583px}.country-flags-cz{background-position:0 -594px}.country-flags-de{background-position:0 -605px}.country-flags-dj{background-position:0 -616px}.country-flags-dk{background-position:0 -627px}.country-flags-dm{background-position:0 -638px}.country-flags-do{background-position:0 -649px}.country-flags-dz{background-position:0 -660px}.country-flags-ec{background-position:0 -671px}.country-flags-ee{background-position:0 -682px}.country-flags-eg{background-position:0 -693px}.country-flags-eh{background-position:0 -704px}.country-flags-england{background-position:0 -715px}.country-flags-er{background-position:0 -726px}.country-flags-es{background-position:0 -737px}.country-flags-et{background-position:0 -748px}.country-flags-europeanunion{background-position:0 -759px}.country-flags-fam{background-position:0 -770px}.country-flags-fi{background-position:0 -781px}.country-flags-fj{background-position:0 -792px}.country-flags-fk{background-position:0 -803px}.country-flags-fm{background-position:0 -814px}.country-flags-fo{background-position:0 -825px}.country-flags-fr{background-position:0 -836px}.country-flags-ga{background-position:0 -847px}.country-flags-gb{background-position:0 -858px}.country-flags-gd{background-position:0 -869px}.country-flags-ge{background-position:0 -880px}.country-flags-gf{background-position:0 -891px}.country-flags-gh{background-position:0 -902px}.country-flags-gi{background-position:0 -913px}.country-flags-gl{background-position:0 -924px}.country-flags-gm{background-position:0 -935px}.country-flags-gn{background-position:0 -946px}.country-flags-gp{background-position:0 -957px}.country-flags-gq{background-position:0 -968px}.country-flags-gr{background-position:0 -979px}.country-flags-gs{background-position:0 -990px}.country-flags-gt{background-position:0 -1001px}.country-flags-gu{background-position:0 -1012px}.country-flags-gw{background-position:0 -1023px}.country-flags-gy{background-position:0 -1034px}.country-flags-hk{background-position:0 -1045px}.country-flags-hm{background-position:0 -1056px}.country-flags-hn{background-position:0 -1067px}.country-flags-hr{background-position:0 -1078px}.country-flags-ht{background-position:0 -1089px}.country-flags-hu{background-position:0 -1100px}.country-flags-id{background-position:0 -1111px}.country-flags-ie{background-position:0 -1122px}.country-flags-il{background-position:0 -1133px}.country-flags-in{background-position:0 -1144px}.country-flags-io{background-position:0 -1155px}.country-flags-iq{background-position:0 -1166px}.country-flags-ir{background-position:0 -1177px}.country-flags-is{background-position:0 -1188px}.country-flags-it{background-position:0 -1199px}.country-flags-jm{background-position:0 -1210px}.country-flags-jo{background-position:0 -1221px}.country-flags-jp{background-position:0 -1232px}.country-flags-ke{background-position:0 -1243px}.country-flags-kg{background-position:0 -1254px}.country-flags-kh{background-position:0 -1265px}.country-flags-ki{background-position:0 -1276px}.country-flags-km{background-position:0 -1287px}.country-flags-kn{background-position:0 -1298px}.country-flags-kp{background-position:0 -1309px}.country-flags-kr{background-position:0 -1320px}.country-flags-kw{background-position:0 -1331px}.country-flags-ky{background-position:0 -1342px}.country-flags-kz{background-position:0 -1353px}.country-flags-la{background-position:0 -1364px}.country-flags-lb{background-position:0 -1375px}.country-flags-lc{background-position:0 -1386px}.country-flags-li{background-position:0 -1397px}.country-flags-lk{background-position:0 -1408px}.country-flags-lr{background-position:0 -1419px}.country-flags-ls{background-position:0 -1430px}.country-flags-lt{background-position:0 -1441px}.country-flags-lu{background-position:0 -1452px}.country-flags-lv{background-position:0 -1463px}.country-flags-ly{background-position:0 -1474px}.country-flags-ma{background-position:0 -1485px}.country-flags-mc{background-position:0 -1496px}.country-flags-md{background-position:0 -1507px}.country-flags-me{background-position:0 -1518px}.country-flags-mg{background-position:0 -1530px}.country-flags-mh{background-position:0 -1541px}.country-flags-mk{background-position:0 -1552px}.country-flags-ml{background-position:0 -1563px}.country-flags-mm{background-position:0 -1574px}.country-flags-mn{background-position:0 -1585px}.country-flags-mo{background-position:0 -1596px}.country-flags-mp{background-position:0 -1607px}.country-flags-mq{background-position:0 -1618px}.country-flags-mr{background-position:0 -1629px}.country-flags-ms{background-position:0 -1640px}.country-flags-mt{background-position:0 -1651px}.country-flags-mu{background-position:0 -1662px}.country-flags-mv{background-position:0 -1673px}.country-flags-mw{background-position:0 -1684px}.country-flags-mx{background-position:0 -1695px}.country-flags-my{background-position:0 -1706px}.country-flags-mz{background-position:0 -1717px}.country-flags-na{background-position:0 -1728px}.country-flags-nc{background-position:0 -1739px}.country-flags-ne{background-position:0 -1750px}.country-flags-nf{background-position:0 -1761px}.country-flags-ng{background-position:0 -1772px}.country-flags-ni{background-position:0 -1783px}.country-flags-nl{background-position:0 -1794px}.country-flags-no{background-position:0 -1805px}.country-flags-np{background-position:0 -1816px}.country-flags-nr{background-position:0 -1827px}.country-flags-nu{background-position:0 -1838px}.country-flags-nz{background-position:0 -1849px}.country-flags-om{background-position:0 -1860px}.country-flags-pa{background-position:0 -1871px}.country-flags-pe{background-position:0 -1882px}.country-flags-pf{background-position:0 -1893px}.country-flags-pg{background-position:0 -1904px}.country-flags-ph{background-position:0 -1915px}.country-flags-pk{background-position:0 -1926px}.country-flags-pl{background-position:0 -1937px}.country-flags-pm{background-position:0 -1948px}.country-flags-pn{background-position:0 -1959px}.country-flags-pr{background-position:0 -1970px}.country-flags-ps{background-position:0 -1981px}.country-flags-pt{background-position:0 -1992px}.country-flags-pw{background-position:0 -2003px}.country-flags-py{background-position:0 -2014px}.country-flags-qa{background-position:0 -2025px}.country-flags-re{background-position:0 -2036px}.country-flags-ro{background-position:0 -2047px}.country-flags-rs{background-position:0 -2058px}.country-flags-ru{background-position:0 -2069px}.country-flags-rw{background-position:0 -2080px}.country-flags-sa{background-position:0 -2091px}.country-flags-sb{background-position:0 -2102px}.country-flags-sc{background-position:0 -2113px}.country-flags-scotland{background-position:0 -2124px}.country-flags-sd{background-position:0 -2135px}.country-flags-se{background-position:0 -2146px}.country-flags-sg{background-position:0 -2157px}.country-flags-sh{background-position:0 -2168px}.country-flags-si{background-position:0 -2179px}.country-flags-sj{background-position:0 -2190px}.country-flags-sk{background-position:0 -2201px}.country-flags-sl{background-position:0 -2212px}.country-flags-sm{background-position:0 -2223px}.country-flags-sn{background-position:0 -2234px}.country-flags-so{background-position:0 -2245px}.country-flags-sr{background-position:0 -2256px}.country-flags-st{background-position:0 -2267px}.country-flags-sv{background-position:0 -2278px}.country-flags-sy{background-position:0 -2289px}.country-flags-sz{background-position:0 -2300px}.country-flags-tc{background-position:0 -2311px}.country-flags-td{background-position:0 -2322px}.country-flags-tf{background-position:0 -2333px}.country-flags-tg{background-position:0 -2344px}.country-flags-th{background-position:0 -2355px}.country-flags-tj{background-position:0 -2366px}.country-flags-tk{background-position:0 -2377px}.country-flags-tl{background-position:0 -2388px}.country-flags-tm{background-position:0 -2399px}.country-flags-tn{background-position:0 -2410px}.country-flags-to{background-position:0 -2421px}.country-flags-tr{background-position:0 -2432px}.country-flags-tt{background-position:0 -2443px}.country-flags-tv{background-position:0 -2454px}.country-flags-tw{background-position:0 -2465px}.country-flags-tz{background-position:0 -2476px}.country-flags-ua{background-position:0 -2487px}.country-flags-ug{background-position:0 -2498px}.country-flags-um{background-position:0 -2509px}.country-flags-us{background-position:0 -2520px}.country-flags-uy{background-position:0 -2531px}.country-flags-uz{background-position:0 -2542px}.country-flags-va{background-position:0 -2553px}.country-flags-vc{background-position:0 -2564px}.country-flags-ve{background-position:0 -2575px}.country-flags-vg{background-position:0 -2586px}.country-flags-vi{background-position:0 -2597px}.country-flags-vn{background-position:0 -2608px}.country-flags-vu{background-position:0 -2619px}.country-flags-wales{background-position:0 -2630px}.country-flags-wf{background-position:0 -2641px}.country-flags-ws{background-position:0 -2652px}.country-flags-ye{background-position:0 -2663px}.country-flags-yt{background-position:0 -2674px}.country-flags-za{background-position:0 -2685px}.country-flags-zm{background-position:0 -2696px}.country-flags-zw{background-position:0 -2707px}.country-flag{display:inline-block;vertical-align:middle}.country-flag{width:16px;height:11px}.zero-spam__text-right{text-align:right !important}.zero-spam__text-center{text-align:center !important}.zero-spam__table{width:100%;border-collapse:collapse;border-bottom:2px solid #e8edf1;margin-bottom:10px}.zero-spam__table th,.zero-spam__table td{font-size:12px;padding:10px 12px}.zero-spam__table th{text-align:left;text-transform:uppercase;font-weight:bold;line-height:1.42857143}.zero-spam__table td{border-top:1px solid #e8edf1}.zero-spam__table tr .fa-circle-o-notch,.zero-spam__table tr .fa-edit{display:none}.zero-spam__table tr.zero-spam__loading .fa-circle-o-notch{display:inline}.zero-spam__table tr.zero-spam__loading .zero-spam__block-ip{display:none}.zero-spam__table tr.zero-spam__loaded .fa-edit{display:inline}.zero-spam__table tr.zero-spam__loaded .zero-spam__block-ip{display:none}.zero-spam__table .form-table th{text-transform:none}.zero-spam__table .form-table td{border:0}.zero-spam__msg{display:block;margin:7px 0;padding:15px 20px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#529e00;color:#fff}.zero-spam__row-highlight{background:#f8f9fb}.zero-spam__widget{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;position:relative;margin:20px 0 0 0;background:#fff;overflow:hidden}.zero-spam__overlay{position:absolute;z-index:99;top:0;left:0;width:100%;height:100%;padding-top:50px;background:rgba(27,30,36,0.7);color:#fff;text-align:center}.zero-spam__overlay .fa{font-size:130px}.zero-spam__overlay h4{margin-bottom:10px;font-size:20px;font-weight:bold}.zero-spam__overlay p{margin-top:10px;font-style:italic}.zero-spam__inner{padding:20px}.zero-spam__widget h3{margin-top:0;text-transform:uppercase;font-size:10.5px;color:#1b1e24}.zero-spam__inner h3:first-child{margin-top:0}.zero-spam__inner p:last-child{margin-bottom:0}.zero-spam__widget p{margin-bottom:20px}.zero-spam__widget a{color:#ff183a;text-decoration:none;transition:all .3s}.zero-spam__widget a:hover{color:#0086c6}.wrap .zero-spam__widget h2{margin:0px 0 5px 0;padding:0;font-weight:400}.zero-spam__widget h2 a{color:#000}.zero-spam__widget .fa-star{color:#fddb5a}.zero-spam__button{display:inline-block;background:#00639e;color:#fff !important;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;padding:10px 15px;font-weight:600}.zero-spam__button:hover{background:#0086c6}.zero-spam__description{margin:0 0 20px 0}.wrap .zero-spam__widget h2.zero-spam__title{display:block;border-bottom:1px solid #ddd;padding:10px;font-size:15px;font-weight:600}.zero-spam__bg--primary{background:#ff183a;color:#fff}.zero-spam__bg--secondary{background:#00639e;color:#fff}.zero-spam__bg--trinary{background:#fddb5a;color:#1b1e24}.zero-spam__bg--gf{background:#222d3a;color:#fff}.zero-spam__bg--bpr{background:#be3631;color:#fff}.zero-spam__bg--nf{background:#ef4748;color:#fff}.zero-spam__bg--wpf{background:#e27730;color:#fff}.zero-spam__bg--misc{background:#c2c2c2;color:#000}.zero-spam__row{overflow:hidden}.zero-spam__row .zero-spam__cell:first-child{padding-right:10px}.zero-spam__row .zero-spam__cell:last-child{padding-left:10px}.zero-spam__cell{display:inline-block;float:left;width:50%;box-sizing:border-box}@media all and (max-width: 1640px){.zero-spam__cell{display:block;float:none;width:100%}.zero-spam__row .zero-spam__cell:first-child{padding-right:0}.zero-spam__row .zero-spam__cell:last-child{padding-left:0}}.zero-spam__row .zero-spam__stat:last-child{border-right:0}.zero-spam__cell .zero-spam__widget{margin-bottom:0}.zero-spam__stat{display:inline-block;float:left;border-right:1px solid rgba(0,0,0,0.2);margin:0 10px 10px 0;padding-right:10px;font-size:12px}.zero-spam__stat b{font-size:15px;text-align:right;display:block}.zerospam__left{padding-right:445px}.zerospam__right{width:422px;float:right}.zero-spam__label{display:inline-block;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__fright{float:right}@media all and (max-width: 1140px){.zerospam__left{padding-right:0}.zerospam__right{width:100%;float:none}.zerospam__right .zero-spam__widget:first-child{margin-top:0}}.zero-spam__label{display:inline-block;padding:3px 5px;font-size:11px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__pager{display:inline-block;margin:0;padding:0;list-style-type:none;overflow:hidden;font-size:11px;font-weight:bold}.zero-spam__pager li{display:inline-block;float:left;margin:0 1px}.zero-spam__pager a{display:block;padding:6px 13px;border-radius:3px;background:#fddb5a;color:#896d02;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.zero-spam__pager a.zero-spam__page-selected{background:transparent;color:#000}.zero-spam__page-info{display:inline-block;font-size:11px;line-height:30px;margin-left:10px;vertical-align:top}.zero-spam__map{height:350px}.zero-spam__photos{display:block;margin:0;padding:0;list-style-type:none}.zero-spam__photos li{display:block;overflow:hidden}.zero-spam__photos img{max-width:100%}.zero-spam__photo{display:block;width:94px;height:94px;float:left;margin-right:10px}
|
inc/admin-sidebar.tpl.php
CHANGED
@@ -35,6 +35,6 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
35 |
<h3><?php echo __( 'Are you a WordPress developer?', 'zerospam' ); ?></h3>
|
36 |
|
37 |
<p><?php echo __( 'Help grow this plugin, integrate into your own or add new features by contributing.', 'zerospam' ); ?></p>
|
38 |
-
<p><a href="https://github.com/bmarshall511/wordpress-zero-spam
|
39 |
</div>
|
40 |
</div>
|
35 |
<h3><?php echo __( 'Are you a WordPress developer?', 'zerospam' ); ?></h3>
|
36 |
|
37 |
<p><?php echo __( 'Help grow this plugin, integrate into your own or add new features by contributing.', 'zerospam' ); ?></p>
|
38 |
+
<p><a href="https://github.com/bmarshall511/wordpress-zero-spam" target="_blank" class="button button-large button-primary"><?php echo __( 'Fork it on GitHub!', 'zerospam' ); ?></a></p>
|
39 |
</div>
|
40 |
</div>
|
inc/spammer-logs.tpl.php
CHANGED
@@ -26,7 +26,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
26 |
<?php endif; ?>
|
27 |
<div class="zero-spam__stat">
|
28 |
<?php echo __( 'Total Spam', 'zerospam' ); ?>
|
29 |
-
<b><?php echo number_format(
|
30 |
</div>
|
31 |
<?php if ( isset( $per_day ) ): ?>
|
32 |
<div class="zero-spam__stat">
|
@@ -36,7 +36,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
36 |
<?php endif; ?>
|
37 |
<div class="zero-spam__stat">
|
38 |
<?php echo __( 'Unique Spammers', 'zerospam' ); ?>
|
39 |
-
<b><?php echo number_format(
|
40 |
</div>
|
41 |
</div>
|
42 |
</div>
|
@@ -191,7 +191,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
191 |
</div>
|
192 |
<?php endif; ?>
|
193 |
|
194 |
-
<?php if (
|
195 |
<div class="zero-spam__row">
|
196 |
<div class="zero-spam__cell">
|
197 |
<div class="zero-spam__widget">
|
@@ -224,7 +224,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
224 |
element: 'donut',
|
225 |
data: [
|
226 |
<?php foreach( $all_spam['by_day'] as $day => $count ): ?>
|
227 |
-
{value: <?php echo zerospam_get_percent( $count,
|
228 |
<?php endforeach; ?>
|
229 |
],
|
230 |
formatter: function (x, data) { return data.formatted; }
|
26 |
<?php endif; ?>
|
27 |
<div class="zero-spam__stat">
|
28 |
<?php echo __( 'Total Spam', 'zerospam' ); ?>
|
29 |
+
<b><?php echo number_format( $all_spam['raw'], 0 ); ?></b>
|
30 |
</div>
|
31 |
<?php if ( isset( $per_day ) ): ?>
|
32 |
<div class="zero-spam__stat">
|
36 |
<?php endif; ?>
|
37 |
<div class="zero-spam__stat">
|
38 |
<?php echo __( 'Unique Spammers', 'zerospam' ); ?>
|
39 |
+
<b><?php echo number_format( $all_spam['unique_spammers'], 0 ); ?></b>
|
40 |
</div>
|
41 |
</div>
|
42 |
</div>
|
191 |
</div>
|
192 |
<?php endif; ?>
|
193 |
|
194 |
+
<?php if ( $all_spam['raw'] ): ?>
|
195 |
<div class="zero-spam__row">
|
196 |
<div class="zero-spam__cell">
|
197 |
<div class="zero-spam__widget">
|
224 |
element: 'donut',
|
225 |
data: [
|
226 |
<?php foreach( $all_spam['by_day'] as $day => $count ): ?>
|
227 |
+
{value: <?php echo zerospam_get_percent( $count, $all_spam['raw'] ); ?>, label: '<?php echo $day; ?>', formatted: '<?php echo zerospam_get_percent( $count, $all_spam['raw'] ); ?>%'},
|
228 |
<?php endforeach; ?>
|
229 |
],
|
230 |
formatter: function (x, data) { return data.formatted; }
|
js/charts.js
CHANGED
@@ -1,9 +1,5953 @@
|
|
1 |
-
!function(a){var b,c,d="0.3.4",e="hasOwnProperty",f=/[\.\/]/,g="*",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)"zIndex"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],"zIndex"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,!d[c[e]]&&(d[c[e]]={n:{}}),d=d[c[e]];for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},k.off=k.unbind=function(a,b){var c,d,h,i,k,l,m,n=a.split(f),o=[j];for(i=0,k=n.length;k>i;i++)for(l=0;l<o.length;l+=h.length-2){if(h=[l,1],c=o[l].n,n[i]!=g)c[n[i]]&&h.push(c[n[i]]);else for(d in c)c[e](d)&&h.push(c[d]);o.splice.apply(o,h)}for(i=0,k=o.length;k>i;i++)for(c=o[i];c.n;){if(b){if(c.f){for(l=0,m=c.f.length;m>l;l++)if(c.f[l]==b){c.f.splice(l,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var p=c.n[d].f;for(l=0,m=p.length;m>l;l++)if(p[l]==b){p.splice(l,1);break}!p.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){var d=b.apply(this,arguments);return k.unbind(a,c),d};return k.on(a,c)},k.version=d,k.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=k:"undefined"!=typeof define?define("eve",[],function(){return k}):a.eve=k}(this),function(){function a(a){for(var b=0;b<fb.length;b++)fb[b].el.paper==a&&fb.splice(b--,1)}function b(a,b,c,e,g,h){c=Z(c);var i,j,k,l,m,n,o=a.ms,p={},q={},s={};if(e)for(v=0,w=fb.length;w>v;v++){var t=fb[v];if(t.el.id==b.id&&t.anim==a){t.percent!=c?(fb.splice(v,1),k=1):j=t,b.attr(t.totalOrigin);break}}else e=+q;for(var v=0,w=a.percents.length;w>v;v++){if(a.percents[v]==c||a.percents[v]>e*a.top){c=a.percents[v],m=a.percents[v-1]||0,o=o/a.top*(c-m),l=a.percents[v+1],i=a.anim[c];break}e&&b.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=e,j.start=new Date-j.ms*e;else{for(var y in i)if(i[x](y)&&(ba[x](y)||b.paper.customAttributes[x](y)))switch(p[y]=b.attr(y),null==p[y]&&(p[y]=aa[y]),q[y]=i[y],ba[y]){case R:s[y]=(q[y]-p[y])/o;break;case"colour":p[y]=r.getRGB(p[y]);var z=r.getRGB(q[y]);s[y]={r:(z.r-p[y].r)/o,g:(z.g-p[y].g)/o,b:(z.b-p[y].b)/o};break;case"path":var A=Ia(p[y],q[y]),B=A[1];for(p[y]=A[0],s[y]=[],v=0,w=p[y].length;w>v;v++){s[y][v]=[0];for(var D=1,E=p[y][v].length;E>D;D++)s[y][v][D]=(B[v][D]-p[y][v][D])/o}break;case"transform":var F=b._,I=Na(F[y],q[y]);if(I)for(p[y]=I.from,q[y]=I.to,s[y]=[],s[y].real=!0,v=0,w=p[y].length;w>v;v++)for(s[y][v]=[p[y][v][0]],D=1,E=p[y][v].length;E>D;D++)s[y][v][D]=(q[y][v][D]-p[y][v][D])/o;else{var J=b.matrix||new f,K={_:{transform:F.transform},getBBox:function(){return b.getBBox(1)}};p[y]=[J.a,J.b,J.c,J.d,J.e,J.f],La(K,q[y]),q[y]=K._.transform,s[y]=[(K.matrix.a-J.a)/o,(K.matrix.b-J.b)/o,(K.matrix.c-J.c)/o,(K.matrix.d-J.d)/o,(K.matrix.e-J.e)/o,(K.matrix.f-J.f)/o]}break;case"csv":var L=G(i[y])[H](u),M=G(p[y])[H](u);if("clip-rect"==y)for(p[y]=M,s[y]=[],v=M.length;v--;)s[y][v]=(L[v]-p[y][v])/o;q[y]=L;break;default:for(L=[][C](i[y]),M=[][C](p[y]),s[y]=[],v=b.paper.customAttributes[y].length;v--;)s[y][v]=((L[v]||0)-(M[v]||0))/o}var N=i.easing,O=r.easing_formulas[N];if(!O)if(O=G(N).match(X),O&&5==O.length){var P=O;O=function(a){return d(a,+P[1],+P[2],+P[3],+P[4],o)}}else O=la;if(n=i.start||a.start||+new Date,t={anim:a,percent:c,timestamp:n,start:n+(a.del||0),status:0,initstatus:e||0,stop:!1,ms:o,easing:O,from:p,diff:s,to:q,el:b,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:b.attr(),totalOrigin:g},fb.push(t),e&&!j&&!k&&(t.stop=!0,t.start=new Date-o*e,1==fb.length))return hb();k&&(t.start=new Date-t.ms*e),1==fb.length&&gb(hb)}eve("raphael.anim.start."+b.id,b,a)}}function c(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[x](e)&&(d[Z(e)]=a[e],c.push(Z(e)));c.sort(ja)}this.anim=d,this.top=c[c.length-1],this.percents=c}function d(a,b,c,d,e,f){function g(a,b){var c,d,e,f,g,h;for(e=a,h=0;8>h;h++){if(f=i(e)-a,O(f)<b)return e;if(g=(3*l*e+2*k)*e+j,O(g)<1e-6)break;e-=f/g}if(c=0,d=1,e=a,c>e)return c;if(e>d)return d;for(;d>c;){if(f=i(e),O(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}function h(a,b){var c=g(a,b);return((o*c+n)*c+m)*c}function i(a){return((l*a+k)*a+j)*a}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function e(){return this.x+F+this.y+F+this.width+" × "+this.height}function f(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function g(a,b,c){a=r._path2curve(a),b=r._path2curve(b);for(var d,e,f,g,i,j,k,l,m,n,o=c?0:[],p=0,q=a.length;q>p;p++){var s=a[p];if("M"==s[0])d=i=s[1],e=j=s[2];else{"C"==s[0]?(m=[d,e].concat(s.slice(1)),d=m[6],e=m[7]):(m=[d,e,d,e,i,j,i,j],d=i,e=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if("M"==v[0])f=k=v[1],g=l=v[2];else{"C"==v[0]?(n=[f,g].concat(v.slice(1)),f=n[6],g=n[7]):(n=[f,g,f,g,k,l,k,l],f=k,g=l);var w=h(m,n,c);if(c)o+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=p,w[x].segment2=t,w[x].bez1=m,w[x].bez2=n;o=o.concat(w)}}}}}return o}function h(a,b,c){var d=r.bezierBBox(a),e=r.bezierBBox(b);if(!r.isBBoxIntersect(d,e))return c?0:[];for(var f=k.apply(0,a),g=k.apply(0,b),h=~~(f/5),j=~~(g/5),l=[],m=[],n={},o=c?0:[],p=0;h+1>p;p++){var q=r.findDotsAtSegment.apply(r,a.concat(p/h));l.push({x:q.x,y:q.y,t:p/h})}for(p=0;j+1>p;p++)q=r.findDotsAtSegment.apply(r,b.concat(p/j)),m.push({x:q.x,y:q.y,t:p/j});for(p=0;h>p;p++)for(var s=0;j>s;s++){var t=l[p],u=l[p+1],v=m[s],w=m[s+1],x=O(u.x-t.x)<.001?"y":"x",y=O(w.x-v.x)<.001?"y":"x",z=i(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(n[z.x.toFixed(4)]==z.y.toFixed(4))continue;n[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+O((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+O((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1>=A&&B>=0&&1>=B&&(c?o++:o.push({x:z.x,y:z.y,t1:A,t2:B}))}}return o}function i(a,b,c,d,e,f,g,h){if(!(M(a,c)<N(e,g)||N(a,c)>M(e,g)||M(b,d)<N(f,h)||N(b,d)>M(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(!k)return;var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(n<+N(a,c).toFixed(2)||n>+M(a,c).toFixed(2)||n<+N(e,g).toFixed(2)||n>+M(e,g).toFixed(2)||o<+N(b,d).toFixed(2)||o>+M(b,d).toFixed(2)||o<+N(f,h).toFixed(2)||o>+M(f,h).toFixed(2))return;return{x:l,y:m}}}function j(a,b,c,d,e,f,g,h,i){if(!(0>i||k(a,b,c,d,e,f,g,h)<i)){var j,l=1,m=l/2,n=l-m,o=.01;for(j=k(a,b,c,d,e,f,g,h,n);O(j-i)>o;)m/=2,n+=(i>j?1:-1)*m,j=k(a,b,c,d,e,f,g,h,n);return n}}function k(a,b,c,d,e,f,g,h,i){null==i&&(i=1),i=i>1?1:0>i?0:i;for(var j=i/2,k=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;k>p;p++){var q=j*m[p]+j,r=l(q,a,c,e,g),s=l(q,b,d,f,h),t=r*r+s*s;o+=n[p]*L.sqrt(t)}return j*o}function l(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function m(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function n(){return this.hex}function o(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),g=d.cache=d.cache||{},h=d.count=d.count||[];return g[x](f)?(p(h,f),c?c(g[f]):g[f]):(h.length>=1e3&&delete g[h.shift()],h.push(f),g[f]=a[B](b,e),c?c(g[f]):g[f])}return d}function p(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function q(a){if(Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[x](c)&&(b[c]=q(a[c]));return b}function r(a){if(r.is(a,"function"))return s?a():eve.on("raphael.DOMload",a);if(r.is(a,T))return r._engine.create[B](r,a.splice(0,3+r.is(a[0],R))).add(a);var b=Array.prototype.slice.call(arguments,0);if(r.is(b[b.length-1],"function")){var c=b.pop();return s?c.call(r._engine.create[B](r,b)):eve.on("raphael.DOMload",function(){c.call(r._engine.create[B](r,b))})}return r._engine.create[B](r,arguments)}r.version="2.1.0",r.eve=eve;var s,t,u=/[, ]+/,v={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},w=/\{(\d+)\}/g,x="hasOwnProperty",y={doc:document,win:window},z={was:Object.prototype[x].call(y.win,"Raphael"),is:y.win.Raphael},A=function(){this.ca=this.customAttributes={}},B="apply",C="concat",D="createTouch"in y.doc,E="",F=" ",G=String,H="split",I="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[H](F),J={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},K=G.prototype.toLowerCase,L=Math,M=L.max,N=L.min,O=L.abs,P=L.pow,Q=L.PI,R="number",S="string",T="array",U=Object.prototype.toString,V=(r._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i),W={NaN:1,Infinity:1,"-Infinity":1},X=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,Y=L.round,Z=parseFloat,$=parseInt,_=G.prototype.toUpperCase,aa=r._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0},ba=r._availableAnimAttrs={blur:R,"clip-rect":"csv",cx:R,cy:R,fill:"colour","fill-opacity":R,"font-size":R,height:R,opacity:R,path:"path",r:R,rx:R,ry:R,stroke:"colour","stroke-opacity":R,"stroke-width":R,transform:"transform",width:R,x:R,y:R},ca=/[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,da={hs:1,rg:1},ea=/,?([achlmqrstvxz]),?/gi,fa=/([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,ga=/([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,ha=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,ia=(r._radial_gradient=/^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,{}),ja=function(a,b){return Z(a)-Z(b)},ka=function(){},la=function(a){return a},ma=r._rectPath=function(a,b,c,d,e){return e?[["M",a+e,b],["l",c-2*e,0],["a",e,e,0,0,1,e,e],["l",0,d-2*e],["a",e,e,0,0,1,-e,e],["l",2*e-c,0],["a",e,e,0,0,1,-e,-e],["l",0,2*e-d],["a",e,e,0,0,1,e,-e],["z"]]:[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]]},na=function(a,b,c,d){return null==d&&(d=c),[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]]},oa=r._getPath={path:function(a){return a.attr("path")},circle:function(a){var b=a.attrs;return na(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return na(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return ma(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return ma(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return ma(b.x,b.y,b.width,b.height)}},pa=r.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=Ia(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(r._g=y,r.type=y.win.SVGAngle||y.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==r.type){var qa,ra=y.doc.createElement("div");if(ra.innerHTML='<v:shape adj="1"/>',qa=ra.firstChild,qa.style.behavior="url(#default#VML)",!qa||"object"!=typeof qa.adj)return r.type=E;ra=null}r.svg=!(r.vml="VML"==r.type),r._Paper=A,r.fn=t=A.prototype=r.prototype,r._id=0,r._oid=0,r.is=function(a,b){return b=K.call(b),"finite"==b?!W[x](+a):"array"==b?a instanceof Array:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||"array"==b&&Array.isArray&&Array.isArray(a)||U.call(a).slice(8,-1).toLowerCase()==b},r.angle=function(a,b,c,d,e,f){if(null==e){var g=a-c,h=b-d;return g||h?(180+180*L.atan2(-h,-g)/Q+360)%360:0}return r.angle(a,b,e,f)-r.angle(c,d,e,f)},r.rad=function(a){return a%360*Q/180},r.deg=function(a){return 180*a/Q%360},r.snapTo=function(a,b,c){if(c=r.is(c,"finite")?c:10,r.is(a,T)){for(var d=a.length;d--;)if(O(a[d]-b)<=c)return a[d]}else{a=+a;var e=b%a;if(c>e)return b-e;if(e>a-c)return b-e+a}return b};r.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*L.random()|0,c="x"==a?b:3&b|8;return c.toString(16)});r.setWindow=function(a){eve("raphael.setWindow",r,y.win,a),y.win=a,y.doc=y.win.document,r._engine.initWin&&r._engine.initWin(y.win)};var sa=function(a){if(r.vml){var b,c=/^\s+|\s+$/g;try{var d=new ActiveXObject("htmlfile");d.write("<body>"),d.close(),b=d.body}catch(e){b=createPopup().document.body}var f=b.createTextRange();sa=o(function(a){try{b.style.color=G(a).replace(c,E);var d=f.queryCommandValue("ForeColor");return d=(255&d)<<16|65280&d|(16711680&d)>>>16,"#"+("000000"+d.toString(16)).slice(-6)}catch(e){return"none"}})}else{var g=y.doc.createElement("i");g.title="Raphaël Colour Picker",g.style.display="none",y.doc.body.appendChild(g),sa=o(function(a){return g.style.color=a,y.doc.defaultView.getComputedStyle(g,E).getPropertyValue("color")})}return sa(a)},ta=function(){return"hsb("+[this.h,this.s,this.b]+")"},ua=function(){return"hsl("+[this.h,this.s,this.l]+")"},va=function(){return this.hex},wa=function(a,b,c){if(null==b&&r.is(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(c=a.b,b=a.g,a=a.r),null==b&&r.is(a,S)){var d=r.getRGB(a);a=d.r,b=d.g,c=d.b}return(a>1||b>1||c>1)&&(a/=255,b/=255,c/=255),[a,b,c]},xa=function(a,b,c,d){a*=255,b*=255,c*=255;var e={r:a,g:b,b:c,hex:r.rgb(a,b,c),toString:va};return r.is(d,"finite")&&(e.opacity=d),e};r.color=function(a){var b;return r.is(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=r.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):r.is(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=r.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(r.is(a,"string")&&(a=r.getRGB(a)),r.is(a,"object")&&"r"in a&&"g"in a&&"b"in a?(b=r.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=r.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=va,a},r.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-O(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],xa(e,f,g,d)},r.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-O(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],xa(e,f,g,d)},r.rgb2hsb=function(a,b,c){c=wa(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=M(a,b,c),g=f-N(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:ta}},r.rgb2hsl=function(a,b,c){c=wa(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=M(a,b,c),h=N(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:ua}},r._path2string=function(){return this.join(",").replace(ea,"$1")};r._preload=function(a,b){var c=y.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,y.doc.body.removeChild(this)},c.onerror=function(){y.doc.body.removeChild(this)},y.doc.body.appendChild(c),c.src=a};r.getRGB=o(function(a){if(!a||(a=G(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:n};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:n};!da[x](a.toLowerCase().substring(0,2))&&"#"!=a.charAt()&&(a=sa(a));var b,c,d,e,f,g,h=a.match(V);return h?(h[2]&&(d=$(h[2].substring(5),16),c=$(h[2].substring(3,5),16),b=$(h[2].substring(1,3),16)),h[3]&&(d=$((f=h[3].charAt(3))+f,16),c=$((f=h[3].charAt(2))+f,16),b=$((f=h[3].charAt(1))+f,16)),h[4]&&(g=h[4][H](ca),b=Z(g[0]),"%"==g[0].slice(-1)&&(b*=2.55),c=Z(g[1]),"%"==g[1].slice(-1)&&(c*=2.55),d=Z(g[2]),"%"==g[2].slice(-1)&&(d*=2.55),"rgba"==h[1].toLowerCase().slice(0,4)&&(e=Z(g[3])),g[3]&&"%"==g[3].slice(-1)&&(e/=100)),h[5]?(g=h[5][H](ca),b=Z(g[0]),"%"==g[0].slice(-1)&&(b*=2.55),c=Z(g[1]),"%"==g[1].slice(-1)&&(c*=2.55),d=Z(g[2]),"%"==g[2].slice(-1)&&(d*=2.55),("deg"==g[0].slice(-3)||"°"==g[0].slice(-1))&&(b/=360),"hsba"==h[1].toLowerCase().slice(0,4)&&(e=Z(g[3])),g[3]&&"%"==g[3].slice(-1)&&(e/=100),r.hsb2rgb(b,c,d,e)):h[6]?(g=h[6][H](ca),b=Z(g[0]),"%"==g[0].slice(-1)&&(b*=2.55),c=Z(g[1]),"%"==g[1].slice(-1)&&(c*=2.55),d=Z(g[2]),"%"==g[2].slice(-1)&&(d*=2.55),("deg"==g[0].slice(-3)||"°"==g[0].slice(-1))&&(b/=360),"hsla"==h[1].toLowerCase().slice(0,4)&&(e=Z(g[3])),g[3]&&"%"==g[3].slice(-1)&&(e/=100),r.hsl2rgb(b,c,d,e)):(h={r:b,g:c,b:d,toString:n},h.hex="#"+(16777216|d|c<<8|b<<16).toString(16).slice(1),r.is(e,"finite")&&(h.opacity=e),h)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:n}},r),r.hsb=o(function(a,b,c){return r.hsb2rgb(a,b,c).hex}),r.hsl=o(function(a,b,c){return r.hsl2rgb(a,b,c).hex}),r.rgb=o(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),r.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},r.getColor.reset=function(){delete this.start},r.parsePathString=function(a){if(!a)return null;var b=ya(a);if(b.arr)return Aa(b.arr);var c={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},d=[];return r.is(a,T)&&r.is(a[0],T)&&(d=Aa(a)),d.length||G(a).replace(fa,function(a,b,e){var f=[],g=b.toLowerCase();if(e.replace(ha,function(a,b){b&&f.push(+b)}),"m"==g&&f.length>2&&(d.push([b][C](f.splice(0,2))),g="l",b="m"==b?"l":"L"),"r"==g)d.push([b][C](f));else for(;f.length>=c[g]&&(d.push([b][C](f.splice(0,c[g]))),c[g]););}),d.toString=r._path2string,b.arr=Aa(d),d},r.parseTransformString=o(function(a){if(!a)return null;var b=[];return r.is(a,T)&&r.is(a[0],T)&&(b=Aa(a)),b.length||G(a).replace(ga,function(a,c,d){var e=[];K.call(c);d.replace(ha,function(a,b){b&&e.push(+b)}),b.push([c][C](e))}),b.toString=r._path2string,b});var ya=function(a){var b=ya.ps=ya.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[x](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};r.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=P(j,3),l=P(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*L.atan2(q-s,r-t)/Q;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},r.bezierBBox=function(a,b,c,d,e,f,g,h){r.is(a,"array")||(a=[a,b,c,d,e,f,g,h]);var i=Ha.apply(null,a);return{x:i.min.x,y:i.min.y,x2:i.max.x,y2:i.max.y,width:i.max.x-i.min.x,height:i.max.y-i.min.y}},r.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},r.isBBoxIntersect=function(a,b){var c=r.isPointInsideBBox;return c(b,a.x,a.y)||c(b,a.x2,a.y)||c(b,a.x,a.y2)||c(b,a.x2,a.y2)||c(a,b.x,b.y)||c(a,b.x2,b.y)||c(a,b.x,b.y2)||c(a,b.x2,b.y2)||(a.x<b.x2&&a.x>b.x||b.x<a.x2&&b.x>a.x)&&(a.y<b.y2&&a.y>b.y||b.y<a.y2&&b.y>a.y)},r.pathIntersection=function(a,b){return g(a,b)},r.pathIntersectionNumber=function(a,b){return g(a,b,1)},r.isPointInsidePath=function(a,b,c){var d=r.pathBBox(a);return r.isPointInsideBBox(d,b,c)&&g(a,[["M",b,c],["H",d.x2+10]],1)%2==1},r._removedFactory=function(a){return function(){eve("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var za=r.pathBBox=function(a){var b=ya(a);if(b.bbox)return b.bbox;if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Ia(a);for(var c,d=0,e=0,f=[],g=[],h=0,i=a.length;i>h;h++)if(c=a[h],"M"==c[0])d=c[1],e=c[2],f.push(d),g.push(e);else{var j=Ha(d,e,c[1],c[2],c[3],c[4],c[5],c[6]);f=f[C](j.min.x,j.max.x),g=g[C](j.min.y,j.max.y),d=c[5],e=c[6]}var k=N[B](0,f),l=N[B](0,g),m=M[B](0,f),n=M[B](0,g),o={x:k,y:l,x2:m,y2:n,width:m-k,height:n-l};return b.bbox=q(o),o},Aa=function(a){var b=q(a);return b.toString=r._path2string,b},Ba=r._pathToRelative=function(a){var b=ya(a);if(b.rel)return Aa(b.rel);r.is(a,T)&&r.is(a&&a[0],T)||(a=r.parsePathString(a));var c=[],d=0,e=0,f=0,g=0,h=0;"M"==a[0][0]&&(d=a[0][1],e=a[0][2],f=d,g=e,h++,c.push(["M",d,e]));for(var i=h,j=a.length;j>i;i++){var k=c[i]=[],l=a[i];if(l[0]!=K.call(l[0]))switch(k[0]=K.call(l[0]),k[0]){case"a":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]-d).toFixed(3),k[7]=+(l[7]-e).toFixed(3);break;case"v":k[1]=+(l[1]-e).toFixed(3);break;case"m":f=l[1],g=l[2];default:for(var m=1,n=l.length;n>m;m++)k[m]=+(l[m]-(m%2?d:e)).toFixed(3)}else{k=c[i]=[],"m"==l[0]&&(f=l[1]+d,g=l[2]+e);for(var o=0,p=l.length;p>o;o++)c[i][o]=l[o]}var q=c[i].length;switch(c[i][0]){case"z":d=f,e=g;break;case"h":d+=+c[i][q-1];break;case"v":e+=+c[i][q-1];break;default:d+=+c[i][q-2],e+=+c[i][q-1]}}return c.toString=r._path2string,b.rel=Aa(c),c},Ca=r._pathToAbsolute=function(a){var b=ya(a);if(b.abs)return Aa(b.abs);if(r.is(a,T)&&r.is(a&&a[0],T)||(a=r.parsePathString(a)),!a||!a.length)return[["M",0,0]];var c=[],d=0,e=0,f=0,g=0,h=0;"M"==a[0][0]&&(d=+a[0][1],e=+a[0][2],f=d,g=e,h++,c[0]=["M",d,e]);for(var i,j,k=3==a.length&&"M"==a[0][0]&&"R"==a[1][0].toUpperCase()&&"Z"==a[2][0].toUpperCase(),l=h,n=a.length;n>l;l++){if(c.push(i=[]),j=a[l],j[0]!=_.call(j[0]))switch(i[0]=_.call(j[0]),i[0]){case"A":i[1]=j[1],i[2]=j[2],i[3]=j[3],i[4]=j[4],i[5]=j[5],i[6]=+(j[6]+d),i[7]=+(j[7]+e);break;case"V":i[1]=+j[1]+e;break;case"H":i[1]=+j[1]+d;break;case"R":for(var o=[d,e][C](j.slice(1)),p=2,q=o.length;q>p;p++)o[p]=+o[p]+d,o[++p]=+o[p]+e;c.pop(),c=c[C](m(o,k));break;case"M":f=+j[1]+d,g=+j[2]+e;default:for(p=1,q=j.length;q>p;p++)i[p]=+j[p]+(p%2?d:e)}else if("R"==j[0])o=[d,e][C](j.slice(1)),c.pop(),c=c[C](m(o,k)),i=["R"][C](j.slice(-2));else for(var s=0,t=j.length;t>s;s++)i[s]=j[s];switch(i[0]){case"Z":d=f,e=g;break;case"H":d=i[1];break;case"V":e=i[1];break;case"M":f=i[i.length-2],g=i[i.length-1];default:d=i[i.length-2],e=i[i.length-1]}}return c.toString=r._path2string,b.abs=Aa(c),c},Da=function(a,b,c,d){return[a,b,c,d,c,d]},Ea=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Fa=function(a,b,c,d,e,f,g,h,i,j){var k,l=120*Q/180,m=Q/180*(+e||0),n=[],p=o(function(a,b,c){var d=a*L.cos(c)-b*L.sin(c),e=a*L.sin(c)+b*L.cos(c);return{x:d,y:e}});if(j)y=j[0],z=j[1],w=j[2],x=j[3];else{k=p(a,b,-m),a=k.x,b=k.y,k=p(h,i,-m),h=k.x,i=k.y;var q=(L.cos(Q/180*e),L.sin(Q/180*e),(a-h)/2),r=(b-i)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=L.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(f==g?-1:1)*L.sqrt(O((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+h)/2,x=v*-d*q/c+(b+i)/2,y=L.asin(((b-x)/d).toFixed(9)),z=L.asin(((i-x)/d).toFixed(9));y=w>a?Q-y:y,z=w>h?Q-z:z,0>y&&(y=2*Q+y),0>z&&(z=2*Q+z),g&&y>z&&(y-=2*Q),!g&&z>y&&(z-=2*Q)}var A=z-y;if(O(A)>l){var B=z,D=h,E=i;z=y+l*(g&&z>y?1:-1),h=w+c*L.cos(z),i=x+d*L.sin(z),n=Fa(h,i,c,d,e,0,g,D,E,[z,B,w,x])}A=z-y;var F=L.cos(y),G=L.sin(y),I=L.cos(z),J=L.sin(z),K=L.tan(A/4),M=4/3*c*K,N=4/3*d*K,P=[a,b],R=[a+M*G,b-N*F],S=[h+M*J,i-N*I],T=[h,i];if(R[0]=2*P[0]-R[0],R[1]=2*P[1]-R[1],j)return[R,S,T][C](n);n=[R,S,T][C](n).join()[H](",");for(var U=[],V=0,W=n.length;W>V;V++)U[V]=V%2?p(n[V-1],n[V],m).y:p(n[V],n[V+1],m).x;return U},Ga=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:P(j,3)*a+3*P(j,2)*i*c+3*j*i*i*e+P(i,3)*g,y:P(j,3)*b+3*P(j,2)*i*d+3*j*i*i*f+P(i,3)*h}},Ha=o(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+L.sqrt(k*k-4*j*l))/2/j,n=(-k-L.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return O(m)>"1e12"&&(m=.5),O(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ga(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ga(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+L.sqrt(k*k-4*j*l))/2/j,n=(-k-L.sqrt(k*k-4*j*l))/2/j,O(m)>"1e12"&&(m=.5),O(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ga(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ga(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:N[B](0,p),y:N[B](0,o)},max:{x:M[B](0,p),y:M[B](0,o)}}}),Ia=r._path2curve=o(function(a,b){var c=!b&&ya(a);if(!b&&c.curve)return Aa(c.curve);for(var d=Ca(a),e=b&&Ca(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b){var c,d;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][C](Fa[B](0,[b.x,b.y][C](a.slice(1))));break;case"S":c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][C](a.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][C](Ea(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][C](Ea(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][C](Da(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][C](Da(b.x,b.y,a[1],b.y));break;case"V":a=["C"][C](Da(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][C](Da(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)a.splice(b++,0,["C"][C](c.splice(0,6)));a.splice(b,1),l=M(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=M(d.length,e&&e.length||0))},k=0,l=M(d.length,e&&e.length||0);l>k;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var m=d[k],n=e&&e[k],o=m.length,p=e&&n.length;f.x=m[o-2],f.y=m[o-1],f.bx=Z(m[o-4])||f.x,f.by=Z(m[o-3])||f.y,g.bx=e&&(Z(n[p-4])||g.x),g.by=e&&(Z(n[p-3])||g.y),g.x=e&&n[p-2],g.y=e&&n[p-1]}return e||(c.curve=Aa(d)),e?[d,e]:d},null,Aa),Ja=(r._parseDots=o(function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e={},f=a[c].match(/^([^:]*):?([\d\.]*)/);if(e.color=r.getRGB(f[1]),e.color.error)return null;e.color=e.color.hex,f[2]&&(e.offset=f[2]+"%"),b.push(e)}for(c=1,d=b.length-1;d>c;c++)if(!b[c].offset){for(var g=Z(b[c-1].offset||0),h=0,i=c+1;d>i;i++)if(b[i].offset){h=b[i].offset;break}h||(h=100,i=d),h=Z(h);for(var j=(h-g)/(i-c+1);i>c;c++)g+=j,b[c].offset=g+"%"}return b}),r._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Ka=(r._tofront=function(a,b){b.top!==a&&(Ja(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},r._toback=function(a,b){b.bottom!==a&&(Ja(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},r._insertafter=function(a,b,c){Ja(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},r._insertbefore=function(a,b,c){Ja(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},r.toMatrix=function(a,b){var c=za(a),d={_:{transform:E},getBBox:function(){return c}};return La(d,b),d.matrix}),La=(r.transformPath=function(a,b){return pa(a,Ka(a,b))},r._extractTransform=function(a,b){if(null==b)return a._.transform;b=G(b).replace(/\.{3}|\u2026/g,a._.transform||E);var c=r.parseTransformString(b),d=0,e=0,g=0,h=1,i=1,j=a._,k=new f;if(j.transform=c||[],c)for(var l=0,m=c.length;m>l;l++){var n,o,p,q,s,t=c[l],u=t.length,v=G(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;"t"==v&&3==u?w?(n=x.x(0,0),o=x.y(0,0),p=x.x(t[1],t[2]),q=x.y(t[1],t[2]),k.translate(p-n,q-o)):k.translate(t[1],t[2]):"r"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),d+=t[1]):4==u&&(w?(p=x.x(t[2],t[3]),q=x.y(t[2],t[3]),k.rotate(t[1],p,q)):k.rotate(t[1],t[2],t[3]),d+=t[1]):"s"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(p=x.x(t[3],t[4]),q=x.y(t[3],t[4]),k.scale(t[1],t[2],p,q)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):"m"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=d,j.dx=e=k.e,j.dy=g=k.f,1==h&&1==i&&!d&&j.bbox?(j.bbox.x+=+e,j.bbox.y+=+g):j.dirtyT=1}),Ma=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Na=r._equaliseTransform=function(a,b){b=G(b).replace(/\.{3}|\u2026/g,a),a=r.parseTransformString(a)||[],b=r.parseTransformString(b)||[];for(var c,d,e,f,g=M(a.length,b.length),h=[],i=[],j=0;g>j;j++){if(e=a[j]||Ma(b[j]),f=b[j]||Ma(e),e[0]!=f[0]||"r"==e[0].toLowerCase()&&(e[2]!=f[2]||e[3]!=f[3])||"s"==e[0].toLowerCase()&&(e[3]!=f[3]||e[4]!=f[4]))return;for(h[j]=[],i[j]=[],c=0,d=M(e.length,f.length);d>c;c++)c in e&&(h[j][c]=e[c]),c in f&&(i[j][c]=f[c])}return{from:h,to:i}};r._getContainer=function(a,b,c,d){var e;return e=null!=d||r.is(a,"object")?a:y.doc.getElementById(a),null!=e?e.tagName?null==b?{container:e,width:e.style.pixelWidth||e.offsetWidth,height:e.style.pixelHeight||e.offsetHeight}:{container:e,width:b,height:c}:{container:1,x:a,y:b,width:c,height:d}:void 0},r.pathToRelative=Ba,r._engine={},r.path2curve=Ia,r.matrix=function(a,b,c,d,e,g){return new f(a,b,c,d,e,g)},function(a){function b(a){var b=L.sqrt(c(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}function c(a){return a[0]*a[0]+a[1]*a[1]}
|
2 |
-
a.add=function(a,b,c,d,e,g){var h,i,j,k,l=[[],[],[]],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],n=[[a,c,e],[b,d,g],[0,0,1]];for(a&&a instanceof f&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new f(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new f(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,c){a=r.rad(a),b=b||0,c=c||0;var d=+L.cos(a).toFixed(9),e=+L.sin(a).toFixed(9);this.add(d,e,-e,d,b,c),this.add(1,0,0,1,-b,-c)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[G.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return r.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var d=[[this.a,this.c],[this.b,this.d]];a.scalex=L.sqrt(c(d[0])),b(d[0]),a.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1],d[1]=[d[1][0]-d[0][0]*a.shear,d[1][1]-d[0][1]*a.shear],a.scaley=L.sqrt(c(d[1])),b(d[1]),a.shear/=a.scaley;var e=-d[0][1],f=d[1][1];return 0>f?(a.rotate=r.deg(L.acos(f)),0>e&&(a.rotate=360-a.rotate)):a.rotate=r.deg(L.asin(e)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[H]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[b.dx,b.dy]:E)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:E)+(b.rotate?"r"+[b.rotate,0,0]:E)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(f.prototype);var Oa=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);"Apple Computer, Inc."==navigator.vendor&&(Oa&&Oa[1]<4||"iP"==navigator.platform.slice(0,2))||"Google Inc."==navigator.vendor&&Oa&&Oa[1]<8?t.safari=function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:t.safari=ka;for(var Pa=function(){this.returnValue=!1},Qa=function(){return this.originalEvent.preventDefault()},Ra=function(){this.cancelBubble=!0},Sa=function(){return this.originalEvent.stopPropagation()},Ta=function(){return y.doc.addEventListener?function(a,b,c,d){var e=D&&J[b]?J[b]:b,f=function(e){var f=y.doc.documentElement.scrollTop||y.doc.body.scrollTop,g=y.doc.documentElement.scrollLeft||y.doc.body.scrollLeft,h=e.clientX+g,i=e.clientY+f;if(D&&J[x](b))for(var j=0,k=e.targetTouches&&e.targetTouches.length;k>j;j++)if(e.targetTouches[j].target==a){var l=e;e=e.targetTouches[j],e.originalEvent=l,e.preventDefault=Qa,e.stopPropagation=Sa;break}return c.call(d,e,h,i)};return a.addEventListener(e,f,!1),function(){return a.removeEventListener(e,f,!1),!0}}:y.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||y.win.event;var b=y.doc.documentElement.scrollTop||y.doc.body.scrollTop,e=y.doc.documentElement.scrollLeft||y.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Pa,a.stopPropagation=a.stopPropagation||Ra,c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){return a.detachEvent("on"+b,e),!0};return f}:void 0}(),Ua=[],Va=function(a){for(var b,c=a.clientX,d=a.clientY,e=y.doc.documentElement.scrollTop||y.doc.body.scrollTop,f=y.doc.documentElement.scrollLeft||y.doc.body.scrollLeft,g=Ua.length;g--;){if(b=Ua[g],D){for(var h,i=a.touches.length;i--;)if(h=a.touches[i],h.identifier==b.el._drag.id){c=h.clientX,d=h.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var j,k=b.el.node,l=k.nextSibling,m=k.parentNode,n=k.style.display;y.win.opera&&m.removeChild(k),k.style.display="none",j=b.el.paper.getElementByPoint(c,d),k.style.display=n,y.win.opera&&(l?m.insertBefore(k,l):m.appendChild(k)),j&&eve("raphael.drag.over."+b.el.id,b.el,j),c+=f,d+=e,eve("raphael.drag.move."+b.el.id,b.move_scope||b.el,c-b.el._drag.x,d-b.el._drag.y,c,d,a)}},Wa=function(a){r.unmousemove(Va).unmouseup(Wa);for(var b,c=Ua.length;c--;)b=Ua[c],b.el._drag={},eve("raphael.drag.end."+b.el.id,b.end_scope||b.start_scope||b.move_scope||b.el,a);Ua=[]},Xa=r.el={},Ya=I.length;Ya--;)(function(a){r[a]=Xa[a]=function(b,c){return r.is(b,"function")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Ta(this.shape||this.node||y.doc,a,b,c||this)})),this},r["un"+a]=Xa["un"+a]=function(b){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==a&&c[d].f==b)return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}})(I[Ya]);Xa.data=function(a,b){var c=ia[this.id]=ia[this.id]||{};if(1==arguments.length){if(r.is(a,"object")){for(var d in a)a[x](d)&&this.data(d,a[d]);return this}return eve("raphael.data.get."+this.id,this,c[a],a),c[a]}return c[a]=b,eve("raphael.data.set."+this.id,this,b,a),this},Xa.removeData=function(a){return null==a?ia[this.id]={}:ia[this.id]&&delete ia[this.id][a],this},Xa.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},Xa.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var Za=[];Xa.drag=function(a,b,c,d,e,f){function g(g){(g.originalEvent||g).preventDefault();var h=y.doc.documentElement.scrollTop||y.doc.body.scrollTop,i=y.doc.documentElement.scrollLeft||y.doc.body.scrollLeft;this._drag.x=g.clientX+i,this._drag.y=g.clientY+h,this._drag.id=g.identifier,!Ua.length&&r.mousemove(Va).mouseup(Wa),Ua.push({el:this,move_scope:d,start_scope:e,end_scope:f}),b&&eve.on("raphael.drag.start."+this.id,b),a&&eve.on("raphael.drag.move."+this.id,a),c&&eve.on("raphael.drag.end."+this.id,c),eve("raphael.drag.start."+this.id,e||d||this,g.clientX+i,g.clientY+h,g)}return this._drag={},Za.push({el:this,start:g}),this.mousedown(g),this},Xa.onDragOver=function(a){a?eve.on("raphael.drag.over."+this.id,a):eve.unbind("raphael.drag.over."+this.id)},Xa.undrag=function(){for(var a=Za.length;a--;)Za[a].el==this&&(this.unmousedown(Za[a].start),Za.splice(a,1),eve.unbind("raphael.drag.*."+this.id));!Za.length&&r.unmousemove(Va).unmouseup(Wa)},t.circle=function(a,b,c){var d=r._engine.circle(this,a||0,b||0,c||0);return this.__set__&&this.__set__.push(d),d},t.rect=function(a,b,c,d,e){var f=r._engine.rect(this,a||0,b||0,c||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},t.ellipse=function(a,b,c,d){var e=r._engine.ellipse(this,a||0,b||0,c||0,d||0);return this.__set__&&this.__set__.push(e),e},t.path=function(a){a&&!r.is(a,S)&&!r.is(a[0],T)&&(a+=E);var b=r._engine.path(r.format[B](r,arguments),this);return this.__set__&&this.__set__.push(b),b},t.image=function(a,b,c,d,e){var f=r._engine.image(this,a||"about:blank",b||0,c||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},t.text=function(a,b,c){var d=r._engine.text(this,a||0,b||0,G(c));return this.__set__&&this.__set__.push(d),d},t.set=function(a){!r.is(a,"array")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new jb(a);return this.__set__&&this.__set__.push(b),b},t.setStart=function(a){this.__set__=a||this.set()},t.setFinish=function(a){var b=this.__set__;return delete this.__set__,b},t.setSize=function(a,b){return r._engine.setSize.call(this,a,b)},t.setViewBox=function(a,b,c,d,e){return r._engine.setViewBox.call(this,a,b,c,d,e)},t.top=t.bottom=null,t.raphael=r;var $a=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(y.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(y.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};t.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=y.doc.elementFromPoint(a,b);if(y.win.opera&&"svg"==e.tagName){var f=$a(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},t.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},t.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},t.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},Xa.isPointInside=function(a,b){var c=this.realPath=this.realPath||oa[this.type](this);return r.isPointInsidePath(c,a,b)},Xa.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=oa[this.type](this),b.bboxwt=za(this.realPath),b.bboxwt.toString=e,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=oa[this.type](this)),b.bbox=za(pa(this.realPath,this.matrix)),b.bbox.toString=e,b.dirty=b.dirtyT=0),b.bbox)},Xa.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},Xa.glow=function(a){if("text"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||oa[this.type](this);f=this.matrix?pa(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var _a=function(a,b,c,d,e,f,g,h,i){return null==i?k(a,b,c,d,e,f,g,h):r.findDotsAtSegment(a,b,c,d,e,f,g,h,j(a,b,c,d,e,f,g,h,i))},ab=function(a,b){return function(c,d,e){c=Ia(c);for(var f,g,h,i,j,k="",l={},m=0,n=0,o=c.length;o>n;n++){if(h=c[n],"M"==h[0])f=+h[1],g=+h[2];else{if(i=_a(f,g,h[1],h[2],h[3],h[4],h[5],h[6]),m+i>d){if(b&&!l.start){if(j=_a(f,g,h[1],h[2],h[3],h[4],h[5],h[6],d-m),k+=["C"+j.start.x,j.start.y,j.m.x,j.m.y,j.x,j.y],e)return k;l.start=k,k=["M"+j.x,j.y+"C"+j.n.x,j.n.y,j.end.x,j.end.y,h[5],h[6]].join(),m+=i,f=+h[5],g=+h[6];continue}if(!a&&!b)return j=_a(f,g,h[1],h[2],h[3],h[4],h[5],h[6],d-m),{x:j.x,y:j.y,alpha:j.alpha}}m+=i,f=+h[5],g=+h[6]}k+=h.shift()+h}return l.end=k,j=a?m:b?l:r.findDotsAtSegment(f,g,h[0],h[1],h[2],h[3],h[4],h[5],1),j.alpha&&(j={x:j.x,y:j.y,alpha:j.alpha}),j}},bb=ab(1),cb=ab(),db=ab(0,1);r.getTotalLength=bb,r.getPointAtLength=cb,r.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return db(a,b).end;var d=db(a,c,1);return b?db(d,b).end:d},Xa.getTotalLength=function(){return"path"==this.type?this.node.getTotalLength?this.node.getTotalLength():bb(this.attrs.path):void 0},Xa.getPointAtLength=function(a){return"path"==this.type?cb(this.attrs.path,a):void 0},Xa.getSubpath=function(a,b){return"path"==this.type?r.getSubpath(this.attrs.path,a,b):void 0};var eb=r.easing_formulas={linear:function(a){return a},"<":function(a){return P(a,1.7)},">":function(a){return P(a,.48)},"<>":function(a){var b=.48-a/1.04,c=L.sqrt(.1734+b*b),d=c-b,e=P(O(d),1/3)*(0>d?-1:1),f=-c-b,g=P(O(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:P(2,-10*a)*L.sin(2*(a-.075)*Q/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};eb.easeIn=eb["ease-in"]=eb["<"],eb.easeOut=eb["ease-out"]=eb[">"],eb.easeInOut=eb["ease-in-out"]=eb["<>"],eb["back-in"]=eb.backIn,eb["back-out"]=eb.backOut;var fb=[],gb=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,16)},hb=function(){for(var a=+new Date,c=0;c<fb.length;c++){var d=fb[c];if(!d.el.removed&&!d.paused){var e,f,g=a-d.start,h=d.ms,i=d.easing,j=d.from,k=d.diff,l=d.to,m=(d.t,d.el),n={},o={};if(d.initstatus?(g=(d.initstatus*d.anim.top-d.prev)/(d.percent-d.prev)*h,d.status=d.initstatus,delete d.initstatus,d.stop&&fb.splice(c--,1)):d.status=(d.prev+(d.percent-d.prev)*(g/h))/d.anim.top,!(0>g))if(h>g){var p=i(g/h);for(var q in j)if(j[x](q)){switch(ba[q]){case R:e=+j[q]+p*h*k[q];break;case"colour":e="rgb("+[ib(Y(j[q].r+p*h*k[q].r)),ib(Y(j[q].g+p*h*k[q].g)),ib(Y(j[q].b+p*h*k[q].b))].join(",")+")";break;case"path":e=[];for(var s=0,t=j[q].length;t>s;s++){e[s]=[j[q][s][0]];for(var u=1,v=j[q][s].length;v>u;u++)e[s][u]=+j[q][s][u]+p*h*k[q][s][u];e[s]=e[s].join(F)}e=e.join(F);break;case"transform":if(k[q].real)for(e=[],s=0,t=j[q].length;t>s;s++)for(e[s]=[j[q][s][0]],u=1,v=j[q][s].length;v>u;u++)e[s][u]=j[q][s][u]+p*h*k[q][s][u];else{var w=function(a){return+j[q][a]+p*h*k[q][a]};e=[["m",w(0),w(1),w(2),w(3),w(4),w(5)]]}break;case"csv":if("clip-rect"==q)for(e=[],s=4;s--;)e[s]=+j[q][s]+p*h*k[q][s];break;default:var y=[][C](j[q]);for(e=[],s=m.paper.customAttributes[q].length;s--;)e[s]=+y[s]+p*h*k[q][s]}n[q]=e}m.attr(n),function(a,b,c){setTimeout(function(){eve("raphael.anim.frame."+a,b,c)})}(m.id,m,d.anim)}else{if(function(a,b,c){setTimeout(function(){eve("raphael.anim.frame."+b.id,b,c),eve("raphael.anim.finish."+b.id,b,c),r.is(a,"function")&&a.call(b)})}(d.callback,m,d.anim),m.attr(l),fb.splice(c--,1),d.repeat>1&&!d.next){for(f in l)l[x](f)&&(o[f]=d.totalOrigin[f]);d.el.attr(o),b(d.anim,d.el,d.anim.percents[0],null,d.totalOrigin,d.repeat-1)}d.next&&!d.stop&&b(d.anim,d.el,d.next,null,d.totalOrigin,d.repeat)}}}r.svg&&m&&m.paper&&m.paper.safari(),fb.length&&gb(hb)},ib=function(a){return a>255?255:0>a?0:a};Xa.animateWith=function(a,d,e,f,g,h){var i=this;if(i.removed)return h&&h.call(i),i;var j=e instanceof c?e:r.animation(e,f,g,h);b(j,i,j.percents[0],null,i.attr());for(var k=0,l=fb.length;l>k;k++)if(fb[k].anim==d&&fb[k].el==a){fb[l-1].start=fb[k].start;break}return i},Xa.onAnimation=function(a){return a?eve.on("raphael.anim.frame."+this.id,a):eve.unbind("raphael.anim.frame."+this.id),this},c.prototype.delay=function(a){var b=new c(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},c.prototype.repeat=function(a){var b=new c(this.anim,this.ms);return b.del=this.del,b.times=L.floor(M(a,0))||1,b},r.animation=function(a,b,d,e){if(a instanceof c)return a;(r.is(d,"function")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[x](g)&&Z(g)!=g&&Z(g)+"%"!=g&&(f=!0,h[g]=a[g]);return f?(d&&(h.easing=d),e&&(h.callback=e),new c({100:h},b)):new c(a,b)},Xa.animate=function(a,d,e,f){var g=this;if(g.removed)return f&&f.call(g),g;var h=a instanceof c?a:r.animation(a,d,e,f);return b(h,g,h.percents[0],null,g.attr()),g},Xa.setTime=function(a,b){return a&&null!=b&&this.status(a,N(b,a.ms)/a.ms),this},Xa.status=function(a,c){var d,e,f=[],g=0;if(null!=c)return b(a,this,-1,N(c,1)),this;for(d=fb.length;d>g;g++)if(e=fb[g],e.el.id==this.id&&(!a||e.anim==a)){if(a)return e.status;f.push({anim:e.anim,status:e.status})}return a?0:f},Xa.pause=function(a){for(var b=0;b<fb.length;b++)fb[b].el.id==this.id&&(!a||fb[b].anim==a)&&eve("raphael.anim.pause."+this.id,this,fb[b].anim)!==!1&&(fb[b].paused=!0);return this},Xa.resume=function(a){for(var b=0;b<fb.length;b++)if(fb[b].el.id==this.id&&(!a||fb[b].anim==a)){var c=fb[b];eve("raphael.anim.resume."+this.id,this,c.anim)!==!1&&(delete c.paused,this.status(c.anim,c.status))}return this},Xa.stop=function(a){for(var b=0;b<fb.length;b++)fb[b].el.id==this.id&&(!a||fb[b].anim==a)&&eve("raphael.anim.stop."+this.id,this,fb[b].anim)!==!1&&fb.splice(b--,1);return this},eve.on("raphael.remove",a),eve.on("raphael.clear",a),Xa.toString=function(){return"Raphaël’s object"};var jb=function(a){if(this.items=[],this.length=0,this.type="set",a)for(var b=0,c=a.length;c>b;b++)a[b]&&(a[b].constructor==Xa.constructor||a[b].constructor==jb)&&(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},kb=jb.prototype;kb.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],a&&(a.constructor==Xa.constructor||a.constructor==jb)&&(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},kb.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},kb.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var lb in Xa)Xa[x](lb)&&(kb[lb]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][B](c,b)})}}(lb));kb.attr=function(a,b){if(a&&r.is(a,T)&&r.is(a[0],"object"))for(var c=0,d=a.length;d>c;c++)this.items[c].attr(a[c]);else for(var e=0,f=this.items.length;f>e;e++)this.items[e].attr(a,b);return this},kb.clear=function(){for(;this.length;)this.pop()},kb.splice=function(a,b,c){a=0>a?M(this.length+a,0):a,b=M(0,N(this.length-a,b));var d,e=[],f=[],g=[];for(d=2;d<arguments.length;d++)g.push(arguments[d]);for(d=0;b>d;d++)f.push(this[a+d]);for(;d<this.length-a;d++)e.push(this[a+d]);var h=g.length;for(d=0;d<h+e.length;d++)this.items[a+d]=this[a+d]=h>d?g[d]:e[d-h];for(d=this.items.length=this.length-=b-h;this[d];)delete this[d++];return new jb(f)},kb.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},kb.animate=function(a,b,c,d){(r.is(c,"function")||!c)&&(d=c||null);var e,f,g=this.items.length,h=g,i=this;if(!g)return this;d&&(f=function(){!--g&&d.call(i)}),c=r.is(c,S)?c:f;var j=r.animation(a,b,c,f);for(e=this.items[--h].animate(j);h--;)this.items[h]&&!this.items[h].removed&&this.items[h].animateWith(e,j,j);return this},kb.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},kb.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=N[B](0,a),b=N[B](0,b),c=M[B](0,c),d=M[B](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},kb.clone=function(a){a=new jb;for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},kb.toString=function(){return"Raphaël‘s set"},r.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[x](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face["units-per-em"]=$(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[x](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"},f.k)for(var g in f.k)f[x](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},t.getFont=function(a,b,c,d){if(d=d||"normal",c=c||"normal",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,r.fonts){var e=r.fonts[a];if(!e){var f=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,E)+"(\\s|$)","i");for(var g in r.fonts)if(r.fonts[x](g)&&f.test(g)){e=r.fonts[g];break}}var h;if(e)for(var i=0,j=e.length;j>i&&(h=e[i],h.face["font-weight"]!=b||h.face["font-style"]!=c&&h.face["font-style"]||h.face["font-stretch"]!=d);i++);return h}},t.print=function(a,b,c,d,e,f,g){f=f||"middle",g=M(N(g||0,1),-1);var h,i=G(c)[H](E),j=0,k=0,l=E;if(r.is(d,c)&&(d=this.getFont(d)),d){h=(e||16)/d.face["units-per-em"];for(var m=d.face.bbox[H](u),n=+m[0],o=m[3]-m[1],p=0,q=+m[1]+("baseline"==f?o+ +d.face.descent:o/2),s=0,t=i.length;t>s;s++){if("\n"==i[s])j=0,w=0,k=0,p+=o;else{var v=k&&d.glyphs[i[s-1]]||{},w=d.glyphs[i[s]];j+=k?(v.w||d.w)+(v.k&&v.k[i[s]]||0)+d.w*g:0,k=1}w&&w.d&&(l+=r.transformPath(w.d,["t",j*h,p*h,"s",h,h,n,q,"t",(a-n)/h,(b-q)/h]))}}return this.path(l).attr({fill:"#000",stroke:"none"})},t.add=function(a){if(r.is(a,"array"))for(var b,c=this.set(),d=0,e=a.length;e>d;d++)b=a[d]||{},v[x](b.type)&&c.push(this[b.type]().attr(b));return c},r.format=function(a,b){var c=r.is(b,T)?[0][C](b):arguments;return a&&r.is(a,S)&&c.length-1&&(a=a.replace(w,function(a,b){return null==c[++b]?E:c[b]})),a||E},r.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),r.ninja=function(){return z.was?y.win.Raphael=z.is:delete Raphael,r},r.st=kb,function(a,b,c){function d(){/in/.test(a.readyState)?setTimeout(d,9):r.eve("raphael.DOMload")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,c=function(){a.removeEventListener(b,c,!1),a.readyState="complete"},!1),a.readyState="loading"),d()}(document,"DOMContentLoaded"),z.was?y.win.Raphael=r:Raphael=r,eve.on("raphael.DOMload",function(){s=!0})}(),window.Raphael.svg&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=a.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};a.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){"string"==typeof d&&(d=q(d));for(var f in e)e[b](f)&&("xlink:"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),c(e[f])):d.setAttribute(f,c(e[f])))}else d=a._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(b,e){var j="linear",k=b.id+e,m=.5,n=.5,o=b.node,p=b.paper,r=o.style,s=a._g.doc.getElementById(k);if(!s){if(e=c(e).replace(a._radial_gradient,function(a,b,c){if(j="radial",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/),"linear"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(a.rad(t)),f.sin(a.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=a._parseDots(e);if(!w)return null;if(k=k.replace(/[\(\)\s,\xb0#]/g,"_"),b.gradient&&k!=b.gradient.id&&(p.defs.removeChild(b.gradient),delete b.gradient),!b.gradient){s=q(j+"Gradient",{id:k}),b.gradient=s,q(s,"radial"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:b.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}return q(o,{fill:"url(#"+k+")",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if("path"==d.type){for(var g,h,i,j,k,m=c(e).toLowerCase().split("-"),n=d.paper,r=f?"end":"start",s=d.node,t=d.attrs,u=t["stroke-width"],v=m.length,w="classic",x=3,y=3,z=5;v--;)switch(m[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":w=m[v];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}if("open"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:"none",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},"none"!=w){var A="raphael-marker-"+w,B="raphael-marker-"+r+w+x+y;a._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[w],id:A})),p[A]=1);var C,D=a._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName("use")[0]):(D=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:j,refY:y/2}),C=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*("diamond"!=w&&"oval"!=w);f?(g=d._.arrows.startdx*u||0,h=a.getTotalLength(t.path)-E*u):(g=E*u,h=a.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k["marker-"+r]="url(#"+B+")",(h||g)&&(k.d=Raphael.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+"Path"]=A,d._.arrows[r+"Marker"]=B,d._.arrows[r+"dx"]=E,d._.arrows[r+"Type"]=w,d._.arrows[r+"String"]=e}else f?(g=d._.arrows.startdx*u||0,h=a.getTotalLength(t.path)-g):(g=0,h=a.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+"Path"]&&q(s,{d:Raphael.getSubpath(t.path,g,h)}),delete d._.arrows[r+"Path"],delete d._.arrows[r+"Marker"],delete d._.arrows[r+"dx"],delete d._.arrows[r+"Type"],delete d._.arrows[r+"String"];for(k in p)if(p[b](k)&&!p[k]){var F=a._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,b,d){if(b=u[c(b).toLowerCase()]){for(var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=b.length;h--;)g[h]=b[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[b](o)){if(!a._availableAttrs[b](o))continue;var p=f[o];switch(k[o]=p,o){case"blur":d.blur(p);break;case"href":case"title":case"target":var u=i.parentNode;if("a"!=u.tagName.toLowerCase()){var w=q("a");u.insertBefore(w,i),w.appendChild(i),u=w}"target"==o?u.setAttributeNS(n,"show","blank"==p?"new":p):u.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var x=c(p).split(j);if(4==x.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var z=q("clipPath"),A=q("rect");z.id=a.createUUID(),q(A,{x:x[0],y:x[1],width:x[2],height:x[3]}),z.appendChild(A),d.paper.defs.appendChild(z),q(i,{"clip-path":"url(#"+z.id+")"}),d.clip=A}if(!p){var B=i.getAttribute("clip-path");if(B){var C=a._g.doc.getElementById(B.replace(/(^url\(#|\)$)/g,l));C&&C.parentNode.removeChild(C),q(i,{"clip-path":l}),delete d.clip}}break;case"path":"path"==d.type&&(q(i,{d:p?k.path=a._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o="x",p=k.x;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if("rx"==o&&"rect"==d.type)break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o="y",p=k.y;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if("ry"==o&&"rect"==d.type)break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":"rect"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":"image"==d.type&&i.setAttributeNS(n,"href",p);break;case"stroke-width":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var D=c(p).match(a._ISURL);if(D){z=q("pattern");var E=q("image");z.id=a.createUUID(),q(z,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(E,{x:0,y:0,"xlink:href":D[1]}),z.appendChild(E),function(b){a._preload(D[1],function(){var a=this.offsetWidth,c=this.offsetHeight;q(b,{width:a,height:c}),q(E,{width:a,height:c}),d.paper.safari()})}(z),d.paper.defs.appendChild(z),q(i,{fill:"url(#"+z.id+")"}),d.pattern=z,d.pattern&&s(d);break}var F=a.getRGB(p);if(F.error){if(("circle"==d.type||"ellipse"==d.type||"r"!=c(p).charAt())&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var G=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(G){var H=G.getElementsByTagName("stop");q(H[H.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}}else delete f.gradient,delete k.gradient,!a.is(k.opacity,"undefined")&&a.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!a.is(k["fill-opacity"],"undefined")&&a.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});F[b]("opacity")&&q(i,{"fill-opacity":F.opacity>1?F.opacity/100:F.opacity});case"stroke":F=a.getRGB(p),i.setAttribute(o,F.hex),"stroke"==o&&F[b]("opacity")&&q(i,{"stroke-opacity":F.opacity>1?F.opacity/100:F.opacity}),"stroke"==o&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":("circle"==d.type||"ellipse"==d.type||"r"!=c(p).charAt())&&r(d,p);break;case"opacity":k.gradient&&!k[b]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){G=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),G&&(H=G.getElementsByTagName("stop"),q(H[H.length-1],{"stop-opacity":p}));break}default:"font-size"==o&&(p=e(p,10)+"px");var I=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[I]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if("text"==d.type&&(f[b]("text")||f[b]("font")||f[b]("font-size")||f[b]("x")||f[b]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(a._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[b]("text")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=c(f.text).split("\n"),m=[],n=0,o=k.length;o>n;n++)j=q("tspan"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(a._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName("tspan"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&a.is(r,"finite")&&q(m[0],{dy:r})}},z=function(b,c){this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.matrix=a.matrix(),this.realPath=null,this.paper=c,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},A=a.el;z.prototype=A,A.constructor=z,a._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);return d.type="path",w(d,{fill:"none",stroke:"#000",path:a}),d},A.rotate=function(a,b,e){if(this.removed)return this;if(a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(b=e),null==b||null==e){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([["r",a,b,e]])),this},A.scale=function(a,b,e,f){if(this.removed)return this;if(a=c(a).split(j),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==b&&(b=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,
|
3 |
-
f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]])),this},A.translate=function(a,b){return this.removed?this:(a=c(a).split(j),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this.transform(this._.transform.concat([["t",a,b]])),this)},A.transform=function(c){var d=this._;if(null==c)return d.transform;if(a._extractTransform(this,c),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[b]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},A.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display="none"),this},A.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=""),this},A.remove=function(){if(!this.removed&&this.node.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),a._tear(this,b),"a"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var c in this)this[c]="function"==typeof this[c]?a._removedFactory(c):null;this.removed=!0}},A._getBBox=function(){if("none"==this.node.style.display){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}return a&&this.hide(),b},A.attr=function(c,d){if(this.removed)return this;if(null==c){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&a.is(c,"string")){if("fill"==c&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==c)return this._.transform;for(var g=c.split(j),h={},i=0,l=g.length;l>i;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return l-1?h:h[g[0]]}if(null==d&&a.is(c,"array")){for(h={},i=0,l=c.length;l>i;i++)h[c[i]]=this.attr(c[i]);return h}if(null!=d){var m={};m[c]=d}else null!=c&&a.is(c,"object")&&(m=c);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[b](n)&&m[b](n)&&a.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[b](p)&&(m[p]=o[p])}return w(this,m),this},A.toFront=function(){if(this.removed)return this;"a"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var b=this.paper;return b.top!=this&&a._tofront(this,b),this},A.toBack=function(){if(this.removed)return this;var b=this.node.parentNode;"a"==b.tagName.toLowerCase()?b.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):b.firstChild!=this.node&&b.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper);this.paper;return this},A.insertAfter=function(b){if(this.removed)return this;var c=b.node||b[b.length-1].node;return c.nextSibling?c.parentNode.insertBefore(this.node,c.nextSibling):c.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper),this},A.insertBefore=function(b){if(this.removed)return this;var c=b.node||b[0].node;return c.parentNode.insertBefore(this.node,c),a._insertbefore(this,b,this.paper),this},A.blur=function(b){var c=this;if(0!==+b){var d=q("filter"),e=q("feGaussianBlur");c.attrs.blur=b,d.id=a.createUUID(),q(e,{stdDeviation:+b||1.5}),d.appendChild(e),c.paper.defs.appendChild(d),c._blur=d,q(c.node,{filter:"url(#"+d.id+")"})}else c._blur&&(c._blur.parentNode.removeChild(c._blur),delete c._blur,delete c.attrs.blur),c.node.removeAttribute("filter")},a._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);return f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs),f},a._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs),h},a._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs),g},a._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image",h},a._engine.text=function(b,c,d,e){var f=q("text");b.canvas&&b.canvas.appendChild(f);var g=new z(f,b);return g.attrs={x:c,y:d,"text-anchor":"middle",text:e,font:a._availableAttrs.font,stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs),g},a._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b&&b.container,d=b.x,e=b.y,f=b.width,g=b.height;if(!c)throw new Error("SVG container not found.");var h,i=q("svg"),j="overflow:hidden;";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg"}),1==c?(i.style.cssText=j+"position:absolute;left:"+d+"px;top:"+e+"px",a._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+"position:relative",c.firstChild?c.insertBefore(i,c.firstChild):c.appendChild(i)),c=new a._Paper,c.width=f,c.height=g,c.canvas=i,c.clear(),c._left=c._top=0,h&&(c.renderfix=function(){}),c.renderfix(),c},a._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f,h,i=g(c/this.width,d/this.height),j=this.top,l=e?"meet":"xMinYMin";for(null==a?(this._vbSize&&(i=1),delete this._vbSize,f="0 0 "+this.width+m+this.height):(this._vbSize=i,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:l});i&&j;)h="stroke-width"in j.attrs?j.attrs["stroke-width"]:1,j.attr({"stroke-width":h}),j._.dirty=1,j._.dirtyT=1,j=j.prev;return this._viewBox=[a,b,c,d,!!e],this},a.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+"px"),f&&(this._top=(this._top+f)%1,c.top=this._top+"px"))},a.prototype.clear=function(){a.eve("raphael.clear",this);for(var b=this.canvas;b.firstChild;)b.removeChild(b.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(a._g.doc.createTextNode("Created with Raphaël "+a.version)),b.appendChild(this.desc),b.appendChild(this.defs=q("defs"))},a.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]="function"==typeof this[b]?a._removedFactory(b):null};var B=a.st;for(var C in A)A[b](C)&&!B[b](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}(window.Raphael),window.Raphael.vml&&function(a){var b="hasOwnProperty",c=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=a.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(b){var d=/[ahqstv]/gi,e=a._pathToAbsolute;if(c(b).match(d)&&(e=a._path2curve),d=/[clmz]/g,e==a._pathToAbsolute&&!c(b).match(d)){var g=c(b).replace(q,function(a,b,c){var d=[],e="m"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p["m"==b?"l":"L"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(b);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),"z"==i&&(i="x");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?",":o);g.push(i)}return g.join(n)},y=function(b,c,d){var e=a.matrix();return e.rotate(-b,.5,.5),{dx:e.x(c,d),dy:e.y(c,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q=u/b,r=u/c;if(m.visibility="hidden",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+="x"),0>c&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility="visible"}};a.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,b,d){for(var e=c(b).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";g--;)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[b](t)&&(m[t]=i[t]);if(q&&(m.path=a._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur),(i.path&&"path"==e.type||q)&&(l.path=x(~c(m.path).toLowerCase().indexOf("r")?a._pathToAbsolute(m.path):m.path),"image"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),"transform"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=a.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u))}if("clip-rect"in i){var G=c(i["clip-rect"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||a._g.doc.createElement("div"),I=H.style;I.clip=a.format("rect({1}px {2}px {3}px {0}px)",G),l.clipRect||(I.position="absolute",I.top=0,I.left=0,I.width=e.paper.width+"px",I.height=e.paper.height+"px",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i["font-family"]&&(J.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(J.fontSize=i["font-size"]),i["font-weight"]&&(J.fontWeight=i["font-weight"]),i["font-style"]&&(J.fontStyle=i["font-style"])}if("arrow-start"in i&&A(s,i["arrow-start"]),"arrow-end"in i&&A(s,i["arrow-end"],1),null!=i.opacity||null!=i["stroke-width"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i["stroke-width"]||null!=i["stroke-opacity"]||null!=i["fill-opacity"]||null!=i["stroke-dasharray"]||null!=i["stroke-miterlimit"]||null!=i["stroke-linejoin"]||null!=i["stroke-linecap"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),"image"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||"none"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=c(i.fill).match(a._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type="tile";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],a._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=a.getRGB(i.fill).hex,K.src=o,K.type="solid",a.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||"r"!=c(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill="none",m.gradient=i.fill,K.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var O=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+a.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color="none")}l.appendChild(K);var P=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],Q=!1;!P&&(Q=P=F("stroke")),(i.stroke&&"none"!=i.stroke||i["stroke-width"]||null!=i["stroke-opacity"]||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])&&(P.on=!0),("none"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i["stroke-width"])&&(P.on=!1);var R=a.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i["stroke-width"])||1);if(O=h(g(O,0),1),null==i["stroke-width"]&&(S=m["stroke-width"]),i["stroke-width"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i["stroke-linejoin"]&&(P.joinstyle=i["stroke-linejoin"]||"miter"),P.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(P.endcap="butt"==i["stroke-linecap"]?"flat":"square"==i["stroke-linecap"]?"square":"round"),i["stroke-dasharray"]){var T={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};P.dashstyle=T[b](i["stroke-dasharray"])?T[i["stroke-dasharray"]]:o}Q&&l.appendChild(P)}if("text"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),W=d(m["font-size"]||W&&W[0])||10,p.fontSize=W*V+"px",s.textpath.string&&(U.innerHTML=c(s.textpath.string).replace(/</g,"<").replace(/&/g,"&").replace(/\n/g,"<br>"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,("x"in i||"y"in i)&&(s.path.v=a.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=["x","y","text","font","font-family","font-weight","font-style","font-size"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m["text-anchor"]){case"start":s.textpath.style["v-text-align"]="left",s.bbx=s.W/2;break;case"end":s.textpath.style["v-text-align"]="right",s.bbx=-s.W/2;break;default:s.textpath.style["v-text-align"]="center",s.bbx=0}s.textpath.style["v-text-kern"]=!0}},C=function(b,f,g){b.attrs=b.attrs||{};var h=(b.attrs,Math.pow),i="linear",j=".5 .5";if(b.attrs.gradient=f,f=c(f).replace(a._radial_gradient,function(a,b,c){return i="radial",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\s*\-\s*/),"linear"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=a._parseDots(f);if(!l)return null;if(b=b.shape||b.node,l.length){b.removeChild(g),g.on=!0,g.method="none",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():"0% "+g.color,"radial"==i?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=j,g.angle=0):(g.type="gradient",g.angle=(270-k)%360),b.appendChild(g)}return 1},D=function(b,c){this[0]=this.node=b,b.raphael=!0,this.id=a._oid++,b.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=c,this.matrix=a.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!c.bottom&&(c.bottom=this),this.prev=c.top,c.top&&(c.top.next=this),c.top=this,this.next=null},E=a.el;D.prototype=E,E.constructor=D,E.transform=function(b){if(null==b)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?"s"+[e.scale,e.scale]+"-1-1t"+[e.dx,e.dy]:o;e&&(d=b=c(b).replace(/\.{3}|\u2026/g,this._.transform||o)),a._extractTransform(this,f+b);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~c(this.attrs.fill).indexOf("-"),l=!c(this.attrs.fill).indexOf("url(");if(h.translate(-.5,-.5),l||k||"image"==this.type)if(i.matrix="1 0 0 1",i.offset="0 0",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=c(h),i.offset=h.offset();return d&&(this._.transform=d),this},E.rotate=function(a,b,e){if(this.removed)return this;if(null!=a){if(a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(b=e),null==b||null==e){var f=this.getBBox(1);b=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,b,e]])),this}},E.translate=function(a,b){return this.removed?this:(a=c(a).split(k),a.length-1&&(b=d(a[1])),a=d(a[0])||0,b=+b||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=b),this.transform(this._.transform.concat([["t",a,b]])),this)},E.scale=function(a,b,e,f){if(this.removed)return this;if(a=c(a).split(k),a.length-1&&(b=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==b&&(b=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,b,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),a.eve.unbind("raphael.*.*."+this.id),a._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var b in this)this[b]="function"==typeof this[b]?a._removedFactory(b):null;this.removed=!0}},E.attr=function(c,d){if(this.removed)return this;if(null==c){var e={};for(var f in this.attrs)this.attrs[b](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&a.is(c,"string")){if(c==j&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=c.split(k),h={},i=0,m=g.length;m>i;i++)c=g[i],c in this.attrs?h[c]=this.attrs[c]:a.is(this.paper.customAttributes[c],"function")?h[c]=this.paper.customAttributes[c].def:h[c]=a._availableAttrs[c];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&a.is(c,"array")){for(h={},i=0,m=c.length;m>i;i++)h[c[i]]=this.attr(c[i]);return h}var n;null!=d&&(n={},n[c]=d),null==d&&a.is(c,"object")&&(n=c);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[b](o)&&n[b](o)&&a.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[b](q)&&(n[q]=p[q])}n.text&&"text"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&a._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),a._toback(this,this.paper)),this)},E.insertAfter=function(b){return this.removed?this:(b.constructor==a.st.constructor&&(b=b[b.length-1]),b.node.nextSibling?b.node.parentNode.insertBefore(this.node,b.node.nextSibling):b.node.parentNode.appendChild(this.node),a._insertafter(this,b,this.paper),this)},E.insertBefore=function(b){return this.removed?this:(b.constructor==a.st.constructor&&(b=b[0]),b.node.parentNode.insertBefore(this.node,b.node),a._insertbefore(this,b,this.paper),this)},E.blur=function(b){var c=this.node.runtimeStyle,d=c.filter;d=d.replace(r,o),0!==+b?(this.attrs.blur=b,c.filter=d+n+m+".Blur(pixelradius="+(+b||1.5)+")",c.margin=a.format("-{0}px 0 0 -{0}px",f(+b||1.5))):(c.filter=d,c.margin=0,delete this.attrs.blur)},a._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},a._engine.rect=function(b,c,d,e,f,g){var h=a._rectPath(c,d,e,f,g),i=b.path(h),j=i.attrs;return i.X=j.x=c,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect",i},a._engine.ellipse=function(a,b,c,d,e){var f=a.path();f.attrs;return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e}),f},a._engine.circle=function(a,b,c,d){var e=a.path();e.attrs;return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type="circle",B(e,{cx:b,cy:c,r:d}),e},a._engine.image=function(b,c,d,e,f,g){var h=a._rectPath(d,e,f,g),i=b.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=c,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=c,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},a._engine.text=function(b,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=a.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=c(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,b),l={fill:"#000",stroke:"none",font:a._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=c(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),b.canvas.appendChild(h);var m=F("skew");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},a._engine.setSize=function(b,c){var d=this.canvas.style;return this.width=b,this.height=c,b==+b&&(b+="px"),c==+c&&(c+="px"),d.width=b,d.height=c,d.clip="rect(0 "+b+" "+c+" 0)",this._viewBox&&a._engine.setViewBox.apply(this,this._viewBox),this},a._engine.setViewBox=function(b,c,d,e,f){a.eve("raphael.setViewBox",this,this._viewBox,[b,c,d,e,f]);var h,i,j=this.width,k=this.height,l=1/g(d/j,e/k);return f&&(h=k/e,i=j/d,j>d*h&&(b-=(j-d*h)/2/h),k>e*i&&(c-=(k-e*i)/2/i)),this._viewBox=[b,c,d,e,!!f],this._viewBoxShift={dx:-b,dy:-c,scale:l},this.forEach(function(a){a.transform("...")}),this};var F;a._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("<rvml:"+a+' class="rvml">')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},a._engine.initWin(a._g.win),a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b.container,d=b.height,e=b.width,f=b.x,g=b.y;if(!c)throw new Error("VML container not found.");var h=new a._Paper,i=h.canvas=a._g.doc.createElement("div"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+="px"),d==+d&&(d+="px"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin="0 0",h.span=a._g.doc.createElement("span"),h.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",i.appendChild(h.span),j.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",e,d),1==c?(a._g.doc.body.appendChild(i),j.left=f+"px",j.top=g+"px",j.position="absolute"):c.firstChild?c.insertBefore(i,c.firstChild):c.appendChild(i),h.renderfix=function(){},h},a.prototype.clear=function(){a.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=a._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},a.prototype.remove=function(){a.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]="function"==typeof this[b]?a._removedFactory(b):null;return!0};var G=a.st;for(var H in E)E[b](H)&&!G[b](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}(window.Raphael),function(){var a,b,c,d,e=[].slice,f=function(a,b){return function(){return a.apply(b,arguments)}},g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},i=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=window.Morris={},a=jQuery,b.EventEmitter=function(){function a(){}return a.prototype.on=function(a,b){return null==this.handlers&&(this.handlers={}),null==this.handlers[a]&&(this.handlers[a]=[]),this.handlers[a].push(b),this},a.prototype.fire=function(){var a,b,c,d,f,g,h;if(c=arguments[0],a=2<=arguments.length?e.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[c]){for(g=this.handlers[c],h=[],d=0,f=g.length;f>d;d++)b=g[d],h.push(b.apply(null,a));return h}},a}(),b.commas=function(a){var b,c,d,e;return null!=a?(d=0>a?"-":"",b=Math.abs(a),c=Math.floor(b).toFixed(0),d+=c.replace(/(?=(?:\d{3})+$)(?!^)/g,","),e=b.toString(),e.length>c.length&&(d+=e.slice(c.length)),d):"-"},b.pad2=function(a){return(10>a?"0":"")+a},b.Grid=function(c){function d(b){this.resizeHandler=f(this.resizeHandler,this);var c=this;if(this.el=a("string"==typeof b.element?document.getElementById(b.element):b.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=a.extend({},this.gridDefaults,this.defaults||{},b),"string"==typeof this.options.units&&(this.options.postUnits=b.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(a){var b,d,e,f,g;return d=c.el.offset(),g=a.pageX-d.left,c.selectFrom?(b=c.data[c.hitTest(Math.min(g,c.selectFrom))]._x,e=c.data[c.hitTest(Math.max(g,c.selectFrom))]._x,f=e-b,c.selectionRect.attr({x:b,width:f})):c.fire("hovermove",g,a.pageY-d.top)}),this.el.bind("mouseleave",function(){return c.selectFrom&&(c.selectionRect.hide(),c.selectFrom=null),c.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(a){var b,d;return d=a.originalEvent.touches[0]||a.originalEvent.changedTouches[0],b=c.el.offset(),c.fire("hovermove",d.pageX-b.left,d.pageY-b.top)}),this.el.bind("click",function(a){var b;return b=c.el.offset(),c.fire("gridclick",a.pageX-b.left,a.pageY-b.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(a){var b;return b=c.el.offset(),c.startRange(a.pageX-b.left)}),this.el.bind("mouseup",function(a){var b;return b=c.el.offset(),c.endRange(a.pageX-b.left),c.fire("hovermove",a.pageX-b.left,a.pageY-b.top)})),this.options.resize&&a(window).bind("resize",function(){return null!=c.timeoutId&&window.clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(c.resizeHandler,100)}),this.el.css("-webkit-tap-highlight-color","rgba(0,0,0,0)"),this.postInit&&this.postInit()}return h(d,c),d.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},d.prototype.setData=function(a,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return null==c&&(c=!0),this.options.data=a,null==a||0===a.length?(this.data=[],this.raphael.clear(),void(null!=this.hover&&this.hover.hide())):(o=this.cumulative?0:null,p=this.cumulative?0:null,this.options.goals.length>0&&(h=Math.min.apply(Math,this.options.goals),g=Math.max.apply(Math,this.options.goals),p=null!=p?Math.min(p,h):h,o=null!=o?Math.max(o,g):g),this.data=function(){var c,d,g;for(g=[],f=c=0,d=a.length;d>c;f=++c)j=a[f],i={src:j},i.label=j[this.options.xkey],this.options.parseTime?(i.x=b.parseDate(i.label),this.options.dateFormat?i.label=this.options.dateFormat(i.x):"number"==typeof i.label&&(i.label=new Date(i.label).toString())):(i.x=f,this.options.xLabelFormat&&(i.label=this.options.xLabelFormat(i))),l=0,i.y=function(){var a,b,c,d;for(c=this.options.ykeys,d=[],e=a=0,b=c.length;b>a;e=++a)n=c[e],q=j[n],"string"==typeof q&&(q=parseFloat(q)),null!=q&&"number"!=typeof q&&(q=null),null!=q&&(this.cumulative?l+=q:null!=o?(o=Math.max(q,o),p=Math.min(q,p)):o=p=q),this.cumulative&&null!=l&&(o=Math.max(l,o),p=Math.min(l,p)),d.push(q);return d}.call(this),g.push(i);return g}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(a,b){return(a.x>b.x)-(b.x>a.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0&&(this.events=this.options.parseTime?function(){var a,c,e,f;for(e=this.options.events,f=[],a=0,c=e.length;c>a;a++)d=e[a],f.push(b.parseDate(d));return f}.call(this):this.options.events,this.xmax=Math.max(this.xmax,Math.max.apply(Math,this.events)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,this.events))),this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",p),this.ymax=this.yboundary("max",o),this.ymin===this.ymax&&(p&&(this.ymin-=1),this.ymax+=1),((r=this.options.axes)===!0||"both"===r||"y"===r||this.options.grid===!0)&&(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(k=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var a,b,c,d;for(d=[],m=a=b=this.ymin,c=this.ymax;k>0?c>=a:a>=c;m=a+=k)d.push(m);return d}.call(this))),this.dirty=!0,c?this.redraw():void 0)},d.prototype.yboundary=function(a,b){var c,d;return c=this.options["y"+a],"string"==typeof c?"auto"===c.slice(0,4)?c.length>5?(d=parseInt(c.slice(5),10),null==b?d:Math[a](b,d)):null!=b?b:0:parseInt(c,10):c},d.prototype.autoGridLines=function(a,b,c){var d,e,f,g,h,i,j,k,l;return h=b-a,l=Math.floor(Math.log(h)/Math.log(10)),j=Math.pow(10,l),e=Math.floor(a/j)*j,d=Math.ceil(b/j)*j,i=(d-e)/(c-1),1===j&&i>1&&Math.ceil(i)!==i&&(i=Math.ceil(i),d=e+i*(c-1)),0>e&&d>0&&(e=Math.floor(a/i)*i,d=Math.ceil(b/i)*i),1>i?(g=Math.floor(Math.log(i)/Math.log(10)),f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(parseFloat(k.toFixed(1-g)));return b}()):f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(k);return b}(),f},d.prototype._calc=function(){var a,b,c,d,e,f,g,h;return e=this.el.width(),c=this.el.height(),(this.elementWidth!==e||this.elementHeight!==c||this.dirty)&&(this.elementWidth=e,this.elementHeight=c,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,((g=this.options.axes)===!0||"both"===g||"y"===g)&&(f=function(){var a,c,d,e;for(d=this.grid,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(this.measureText(this.yAxisFormat(b)).width);return e}.call(this),this.left+=Math.max.apply(Math,f)),((h=this.options.axes)===!0||"both"===h||"x"===h)&&(a=function(){var a,b,c;
|
4 |
-
for(c=[],d=a=0,b=this.data.length;b>=0?b>a:a>b;d=b>=0?++a:--a)c.push(this.measureText(this.data[d].text,-this.options.xLabelAngle).height);return c}.call(this),this.bottom-=Math.max.apply(Math,a)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.calc)?this.calc():void 0},d.prototype.transY=function(a){return this.bottom-(a-this.ymin)*this.dy},d.prototype.transX=function(a){return 1===this.data.length?(this.left+this.right)/2:this.left+(a-this.xmin)*this.dx},d.prototype.redraw=function(){return this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw?this.draw():void 0},d.prototype.measureText=function(a,b){var c,d;return null==b&&(b=0),d=this.raphael.text(100,100,a).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(b),c=d.getBBox(),d.remove(),c},d.prototype.yAxisFormat=function(a){return this.yLabelFormat(a)},d.prototype.yLabelFormat=function(a){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(a):""+this.options.preUnits+b.commas(a)+this.options.postUnits},d.prototype.drawGrid=function(){var a,b,c,d,e,f,g,h;if(this.options.grid!==!1||(e=this.options.axes)===!0||"both"===e||"y"===e){for(f=this.grid,h=[],c=0,d=f.length;d>c;c++)a=f[c],b=this.transY(a),((g=this.options.axes)===!0||"both"===g||"y"===g)&&this.drawYAxisLabel(this.left-this.options.padding/2,b,this.yAxisFormat(a)),this.options.grid?h.push(this.drawGridLine("M"+this.left+","+b+"H"+(this.left+this.width))):h.push(void 0);return h}},d.prototype.drawGoals=function(){var a,b,c,d,e,f,g;for(f=this.options.goals,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.goalLineColors[c%this.options.goalLineColors.length],g.push(this.drawGoal(b,a));return g},d.prototype.drawEvents=function(){var a,b,c,d,e,f,g;for(f=this.events,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.eventLineColors[c%this.options.eventLineColors.length],g.push(this.drawEvent(b,a));return g},d.prototype.drawGoal=function(a,b){return this.raphael.path("M"+this.left+","+this.transY(a)+"H"+this.right).attr("stroke",b).attr("stroke-width",this.options.goalStrokeWidth)},d.prototype.drawEvent=function(a,b){return this.raphael.path("M"+this.transX(a)+","+this.bottom+"V"+this.top).attr("stroke",b).attr("stroke-width",this.options.eventStrokeWidth)},d.prototype.drawYAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},d.prototype.drawGridLine=function(a){return this.raphael.path(a).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},d.prototype.startRange=function(a){return this.hover.hide(),this.selectFrom=a,this.selectionRect.attr({x:a,width:0}).show()},d.prototype.endRange=function(a){var b,c;return this.selectFrom?(c=Math.min(this.selectFrom,a),b=Math.max(this.selectFrom,a),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(c)].x,end:this.data[this.hitTest(b)].x}),this.selectFrom=null):void 0},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.parseDate=function(a){var b,c,d,e,f,g,h,i,j,k,l;return"number"==typeof a?a:(c=a.match(/^(\d+) Q(\d)$/),e=a.match(/^(\d+)-(\d+)$/),f=a.match(/^(\d+)-(\d+)-(\d+)$/),h=a.match(/^(\d+) W(\d+)$/),i=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),j=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),c?new Date(parseInt(c[1],10),3*parseInt(c[2],10)-1,1).getTime():e?new Date(parseInt(e[1],10),parseInt(e[2],10)-1,1).getTime():f?new Date(parseInt(f[1],10),parseInt(f[2],10)-1,parseInt(f[3],10)).getTime():h?(k=new Date(parseInt(h[1],10),0,1),4!==k.getDay()&&k.setMonth(0,1+(4-k.getDay()+7)%7),k.getTime()+6048e5*parseInt(h[2],10)):i?i[6]?(g=0,"Z"!==i[6]&&(g=60*parseInt(i[8],10)+parseInt(i[9],10),"+"===i[7]&&(g=0-g)),Date.UTC(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)+g)):new Date(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)).getTime():j?(l=parseFloat(j[6]),b=Math.floor(l),d=Math.round(1e3*(l-b)),j[8]?(g=0,"Z"!==j[8]&&(g=60*parseInt(j[10],10)+parseInt(j[11],10),"+"===j[9]&&(g=0-g)),Date.UTC(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10)+g,b,d)):new Date(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10),b,d).getTime()):new Date(parseInt(a,10),0,1).getTime())},b.Hover=function(){function c(c){null==c&&(c={}),this.options=a.extend({},b.Hover.defaults,c),this.el=a("<div class='"+this.options["class"]+"'></div>"),this.el.hide(),this.options.parent.append(this.el)}return c.defaults={"class":"morris-hover morris-default-style"},c.prototype.update=function(a,b,c){return a?(this.html(a),this.show(),this.moveTo(b,c)):this.hide()},c.prototype.html=function(a){return this.el.html(a)},c.prototype.moveTo=function(a,b){var c,d,e,f,g,h;return g=this.options.parent.innerWidth(),f=this.options.parent.innerHeight(),d=this.el.outerWidth(),c=this.el.outerHeight(),e=Math.min(Math.max(0,a-d/2),g-d),null!=b?(h=b-c-10,0>h&&(h=b+10,h+c>f&&(h=f/2-c/2))):h=f/2-c/2,this.el.css({left:e+"px",top:parseInt(h)+"px"})},c.prototype.show=function(){return this.el.show()},c.prototype.hide=function(){return this.el.hide()},c}(),b.Line=function(a){function c(a){return this.hilight=f(this.hilight,this),this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Line?void c.__super__.constructor.call(this,a):new b.Line(a)}return h(c,a),c.prototype.init=function(){return"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},c.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,hideHover:!1},c.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},c.prototype.calcPoints=function(){var a,b,c,d,e,f;for(e=this.data,f=[],c=0,d=e.length;d>c;c++)a=e[c],a._x=this.transX(a.x),a._y=function(){var c,d,e,f;for(e=a.y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b?f.push(this.transY(b)):f.push(b);return f}.call(this),f.push(a._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var c,d,e,f;for(e=a._y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b&&f.push(b);return f}())));return f},c.prototype.hitTest=function(a){var b,c,d,e,f;if(0===this.data.length)return null;for(f=this.data.slice(1),b=d=0,e=f.length;e>d&&(c=f[b],!(a<(c._x+this.data[b]._x)/2));b=++d);return b},c.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},c.prototype.onHoverMove=function(a){var b;return b=this.hitTest(a),this.displayHoverForRow(b)},c.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.displayHoverForRow(null):void 0},c.prototype.displayHoverForRow=function(a){var b;return null!=a?((b=this.hover).update.apply(b,this.hoverContentForRow(a)),this.hilight(a)):(this.hover.hide(),this.hilight())},c.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",h=d.y,c=f=0,g=h.length;g>f;c=++f)e=h[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(e)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),[b,d._x,d._ymax]},c.prototype.generatePaths=function(){var a,c,d,e;return this.paths=function(){var f,g,h,j;for(j=[],c=f=0,g=this.options.ykeys.length;g>=0?g>f:f>g;c=g>=0?++f:--f)e="boolean"==typeof this.options.smooth?this.options.smooth:(h=this.options.ykeys[c],i.call(this.options.smooth,h)>=0),a=function(){var a,b,e,f;for(e=this.data,f=[],a=0,b=e.length;b>a;a++)d=e[a],void 0!==d._y[c]&&f.push({x:d._x,y:d._y[c]});return f}.call(this),a.length>1?j.push(b.Line.createPath(a,e,this.bottom)):j.push(null);return j}.call(this)},c.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1?this.displayHoverForRow(this.data.length-1):void 0},c.prototype.drawXAxis=function(){var a,c,d,e,f,g,h,i,j,k,l=this;for(h=this.bottom+this.options.padding/2,f=null,e=null,a=function(a,b){var c,d,g,i,j;return c=l.drawXAxisLabel(l.transX(b),h,a),j=c.getBBox(),c.transform("r"+-l.options.xLabelAngle),d=c.getBBox(),c.transform("t0,"+d.height/2+"..."),0!==l.options.xLabelAngle&&(i=-.5*j.width*Math.cos(l.options.xLabelAngle*Math.PI/180),c.transform("t"+i+",0...")),d=c.getBBox(),(null==f||f>=d.x+d.width||null!=e&&e>=d.x)&&d.x>=0&&d.x+d.width<l.el.width()?(0!==l.options.xLabelAngle&&(g=1.25*l.options.gridTextSize/Math.sin(l.options.xLabelAngle*Math.PI/180),e=d.x-g),f=d.x-l.options.xLabelMargin):c.remove()},d=this.options.parseTime?1===this.data.length&&"auto"===this.options.xLabels?[[this.data[0].label,this.data[0].x]]:b.labelSeries(this.xmin,this.xmax,this.width,this.options.xLabels,this.options.xLabelFormat):function(){var a,b,c,d;for(c=this.data,d=[],a=0,b=c.length;b>a;a++)g=c[a],d.push([g.label,g.x]);return d}.call(this),d.reverse(),k=[],i=0,j=d.length;j>i;i++)c=d[i],k.push(a(c[0],c[1]));return k},c.prototype.drawSeries=function(){var a,b,c,d,e,f;for(this.seriesPoints=[],a=b=d=this.options.ykeys.length-1;0>=d?0>=b:b>=0;a=0>=d?++b:--b)this._drawLineFor(a);for(f=[],a=c=e=this.options.ykeys.length-1;0>=e?0>=c:c>=0;a=0>=e?++c:--c)f.push(this._drawPointFor(a));return f},c.prototype._drawPointFor=function(a){var b,c,d,e,f,g;for(this.seriesPoints[a]=[],f=this.data,g=[],d=0,e=f.length;e>d;d++)c=f[d],b=null,null!=c._y[a]&&(b=this.drawLinePoint(c._x,c._y[a],this.colorFor(c,a,"point"),a)),g.push(this.seriesPoints[a].push(b));return g},c.prototype._drawLineFor=function(a){var b;return b=this.paths[a],null!==b?this.drawLinePath(b,this.colorFor(null,a,"line"),a):void 0},c.createPath=function(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(k="",c&&(g=b.Line.gradients(a)),l={y:null},h=q=0,r=a.length;r>q;h=++q)e=a[h],null!=e.y&&(null!=l.y?c?(f=g[h],j=g[h-1],i=(e.x-l.x)/4,m=l.x+i,o=Math.min(d,l.y+i*j),n=e.x-i,p=Math.min(d,e.y-i*f),k+="C"+m+","+o+","+n+","+p+","+e.x+","+e.y):k+="L"+e.x+","+e.y:c&&null==g[h]||(k+="M"+e.x+","+e.y)),l=e;return k},c.gradients=function(a){var b,c,d,e,f,g,h,i;for(c=function(a,b){return(a.y-b.y)/(a.x-b.x)},i=[],d=g=0,h=a.length;h>g;d=++g)b=a[d],null!=b.y?(e=a[d+1]||{y:null},f=a[d-1]||{y:null},null!=f.y&&null!=e.y?i.push(c(f,e)):null!=f.y?i.push(c(f,b)):null!=e.y?i.push(c(b,e)):i.push(null)):i.push(null);return i},c.prototype.hilight=function(a){var b,c,d,e,f;if(null!==this.prevHilight&&this.prevHilight!==a)for(b=c=0,e=this.seriesPoints.length-1;e>=0?e>=c:c>=e;b=e>=0?++c:--c)this.seriesPoints[b][this.prevHilight]&&this.seriesPoints[b][this.prevHilight].animate(this.pointShrinkSeries(b));if(null!==a&&this.prevHilight!==a)for(b=d=0,f=this.seriesPoints.length-1;f>=0?f>=d:d>=f;b=f>=0?++d:--d)this.seriesPoints[b][a]&&this.seriesPoints[b][a].animate(this.pointGrowSeries(b));return this.prevHilight=a},c.prototype.colorFor=function(a,b,c){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,a,b,c):"point"===c?this.options.pointFillColors[b%this.options.pointFillColors.length]||this.options.lineColors[b%this.options.lineColors.length]:this.options.lineColors[b%this.options.lineColors.length]},c.prototype.drawXAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},c.prototype.drawLinePath=function(a,b,c){return this.raphael.path(a).attr("stroke",b).attr("stroke-width",this.lineWidthForSeries(c))},c.prototype.drawLinePoint=function(a,b,c,d){return this.raphael.circle(a,b,this.pointSizeForSeries(d)).attr("fill",c).attr("stroke-width",this.pointStrokeWidthForSeries(d)).attr("stroke",this.pointStrokeColorForSeries(d))},c.prototype.pointStrokeWidthForSeries=function(a){return this.options.pointStrokeWidths[a%this.options.pointStrokeWidths.length]},c.prototype.pointStrokeColorForSeries=function(a){return this.options.pointStrokeColors[a%this.options.pointStrokeColors.length]},c.prototype.lineWidthForSeries=function(a){return this.options.lineWidth instanceof Array?this.options.lineWidth[a%this.options.lineWidth.length]:this.options.lineWidth},c.prototype.pointSizeForSeries=function(a){return this.options.pointSize instanceof Array?this.options.pointSize[a%this.options.pointSize.length]:this.options.pointSize},c.prototype.pointGrowSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)+3},25,"linear")},c.prototype.pointShrinkSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)},25,"linear")},c}(b.Grid),b.labelSeries=function(c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r;if(j=200*(d-c)/e,i=new Date(c),n=b.LABEL_SPECS[f],void 0===n)for(r=b.AUTO_LABEL_ORDER,p=0,q=r.length;q>p;p++)if(k=r[p],m=b.LABEL_SPECS[k],j>=m.span){n=m;break}for(void 0===n&&(n=b.LABEL_SPECS.second),g&&(n=a.extend({},n,{fmt:g})),h=n.start(i),l=[];(o=h.getTime())<=d;)o>=c&&l.push([n.fmt(h),o]),n.incr(h);return l},c=function(a){return{span:60*a*1e3,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())},incr:function(b){return b.setUTCMinutes(b.getUTCMinutes()+a)}}},d=function(a){return{span:1e3*a,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())+":"+b.pad2(a.getSeconds())},incr:function(b){return b.setUTCSeconds(b.getUTCSeconds()+a)}}},b.LABEL_SPECS={decade:{span:1728e8,start:function(a){return new Date(a.getFullYear()-a.getFullYear()%10,0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+10)}},year:{span:1728e7,start:function(a){return new Date(a.getFullYear(),0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+1)}},month:{span:24192e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),1)},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)},incr:function(a){return a.setMonth(a.getMonth()+1)}},week:{span:6048e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+7)}},day:{span:864e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+1)}},hour:c(60),"30min":c(30),"15min":c(15),"10min":c(10),"5min":c(5),minute:c(1),"30sec":d(30),"15sec":d(15),"10sec":d(10),"5sec":d(5),second:d(1)},b.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],b.Area=function(c){function d(c){var f;return this instanceof b.Area?(f=a.extend({},e,c),this.cumulative=!f.behaveLikeLine,"auto"===f.fillOpacity&&(f.fillOpacity=f.behaveLikeLine?.8:1),void d.__super__.constructor.call(this,f)):new b.Area(c)}var e;return h(d,c),e={fillOpacity:"auto",behaveLikeLine:!1},d.prototype.calcPoints=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],d=0,e=f.length;e>d;d++)a=f[d],a._x=this.transX(a.x),b=0,a._y=function(){var d,e,f,g;for(f=a.y,g=[],d=0,e=f.length;e>d;d++)c=f[d],this.options.behaveLikeLine?g.push(this.transY(c)):(b+=c||0,g.push(this.transY(b)));return g}.call(this),g.push(a._ymax=Math.max.apply(Math,a._y));return g},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h;for(this.seriesPoints=[],b=this.options.behaveLikeLine?function(){f=[];for(var a=0,b=this.options.ykeys.length-1;b>=0?b>=a:a>=b;b>=0?a++:a--)f.push(a);return f}.apply(this):function(){g=[];for(var a=e=this.options.ykeys.length-1;0>=e?0>=a:a>=0;0>=e?a++:a--)g.push(a);return g}.apply(this),h=[],c=0,d=b.length;d>c;c++)a=b[c],this._drawFillFor(a),this._drawLineFor(a),h.push(this._drawPointFor(a));return h},d.prototype._drawFillFor=function(a){var b;return b=this.paths[a],null!==b?(b+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(b,this.fillForSeries(a))):void 0},d.prototype.fillForSeries=function(a){var b;return b=Raphael.rgb2hsl(this.colorFor(this.data[a],a,"line")),Raphael.hsl(b.h,this.options.behaveLikeLine?.9*b.s:.75*b.s,Math.min(.98,this.options.behaveLikeLine?1.2*b.l:1.25*b.l))},d.prototype.drawFilledPath=function(a,b){return this.raphael.path(a).attr("fill",b).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},d}(b.Line),b.Bar=function(c){function d(c){return this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Bar?void d.__super__.constructor.call(this,a.extend({},c,{parseTime:!1})):new b.Bar(c)}return h(d,c),d.prototype.init=function(){return this.cumulative=this.options.stacked,"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},d.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50},d.prototype.calc=function(){var a;return this.calcBars(),this.options.hideHover===!1?(a=this.hover).update.apply(a,this.hoverContentForRow(this.data.length-1)):void 0},d.prototype.calcBars=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],a=d=0,e=f.length;e>d;a=++d)b=f[a],b._x=this.left+this.width*(a+.5)/this.data.length,g.push(b._y=function(){var a,d,e,f;for(e=b.y,f=[],a=0,d=e.length;d>a;a++)c=e[a],null!=c?f.push(this.transY(c)):f.push(null);return f}.call(this));return g},d.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries()},d.prototype.drawXAxis=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(j=this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2),g=null,f=null,m=[],a=k=0,l=this.data.length;l>=0?l>k:k>l;a=l>=0?++k:--k)h=this.data[this.data.length-1-a],b=this.drawXAxisLabel(h._x,j,h.label),i=b.getBBox(),b.transform("r"+-this.options.xLabelAngle),c=b.getBBox(),b.transform("t0,"+c.height/2+"..."),0!==this.options.xLabelAngle&&(e=-.5*i.width*Math.cos(this.options.xLabelAngle*Math.PI/180),b.transform("t"+e+",0...")),(null==g||g>=c.x+c.width||null!=f&&f>=c.x)&&c.x>=0&&c.x+c.width<this.el.width()?(0!==this.options.xLabelAngle&&(d=1.25*this.options.gridTextSize/Math.sin(this.options.xLabelAngle*Math.PI/180),f=c.x-d),m.push(g=c.x-this.options.xLabelMargin)):m.push(b.remove());return m},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;return c=this.width/this.options.data.length,h=this.options.stacked?1:this.options.ykeys.length,a=(c*this.options.barSizeRatio-this.options.barGap*(h-1))/h,this.options.barSize&&(a=Math.min(a,this.options.barSize)),l=c-a*h-this.options.barGap*(h-1),g=l/2,o=this.ymin<=0&&this.ymax>=0?this.transY(0):null,this.bars=function(){var h,l,p,q;for(p=this.data,q=[],d=h=0,l=p.length;l>h;d=++h)i=p[d],e=0,q.push(function(){var h,l,p,q;for(p=i._y,q=[],j=h=0,l=p.length;l>h;j=++h)n=p[j],null!==n?(o?(m=Math.min(n,o),b=Math.max(n,o)):(m=n,b=this.bottom),f=this.left+d*c+g,this.options.stacked||(f+=j*(a+this.options.barGap)),k=b-m,this.options.verticalGridCondition&&this.options.verticalGridCondition(i.x)&&this.drawBar(this.left+d*c,this.top,c,Math.abs(this.top-this.bottom),this.options.verticalGridColor,this.options.verticalGridOpacity,this.options.barRadius),this.options.stacked&&(m-=e),this.drawBar(f,m,a,k,this.colorFor(i,j,"bar"),this.options.barOpacity,this.options.barRadius),q.push(e+=k)):q.push(null);return q}.call(this));return q}.call(this)},d.prototype.colorFor=function(a,b,c){var d,e;return"function"==typeof this.options.barColors?(d={x:a.x,y:a.y[b],label:a.label},e={index:b,key:this.options.ykeys[b],label:this.options.labels[b]},this.options.barColors.call(this,d,e,c)):this.options.barColors[b%this.options.barColors.length]},d.prototype.hitTest=function(a){return 0===this.data.length?null:(a=Math.max(Math.min(a,this.right),this.left),Math.min(this.data.length-1,Math.floor((a-this.left)/(this.width/this.data.length))))},d.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},d.prototype.onHoverMove=function(a){var b,c;return b=this.hitTest(a),(c=this.hover).update.apply(c,this.hoverContentForRow(b))},d.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.hover.hide():void 0},d.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h,i;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",i=d.y,c=g=0,h=i.length;h>g;c=++g)f=i[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(f)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),e=this.left+(a+.5)*this.width/this.data.length,[b,e]},d.prototype.drawXAxisLabel=function(a,b,c){var d;return d=this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},d.prototype.drawBar=function(a,b,c,d,e,f,g){var h,i;return h=Math.max.apply(Math,g),i=0===h||h>d?this.raphael.rect(a,b,c,d):this.raphael.path(this.roundedRect(a,b,c,d,g)),i.attr("fill",e).attr("fill-opacity",f).attr("stroke","none")},d.prototype.roundedRect=function(a,b,c,d,e){return null==e&&(e=[0,0,0,0]),["M",a,e[0]+b,"Q",a,b,a+e[0],b,"L",a+c-e[1],b,"Q",a+c,b,a+c,b+e[1],"L",a+c,b+d-e[2],"Q",a+c,b+d,a+c-e[2],b+d,"L",a+e[3],b+d,"Q",a,b+d,a,b+d-e[3],"Z"]},d}(b.Grid),b.Donut=function(c){function d(c){this.resizeHandler=f(this.resizeHandler,this),this.select=f(this.select,this),this.click=f(this.click,this);var d=this;if(!(this instanceof b.Donut))return new b.Donut(c);if(this.options=a.extend({},this.defaults,c),this.el=a("string"==typeof c.element?document.getElementById(c.element):c.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==c.data&&0!==c.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&a(window).bind("resize",function(){return null!=d.timeoutId&&window.clearTimeout(d.timeoutId),d.timeoutId=window.setTimeout(d.resizeHandler,100)}),this.setData(c.data))}return h(d,c),d.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:b.commas,resize:!1},d.prototype.redraw=function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;for(this.raphael.clear(),c=this.el.width()/2,d=this.el.height()/2,n=(Math.min(c,d)-10)/3,l=0,u=this.values,o=0,r=u.length;r>o;o++)m=u[o],l+=m;for(i=5/(2*n),a=1.9999*Math.PI-i*this.data.length,g=0,f=0,this.segments=[],v=this.values,e=p=0,s=v.length;s>p;e=++p)m=v[e],j=g+i+a*(m/l),k=new b.DonutSegment(c,d,2*n,n,g,j,this.data[e].color||this.options.colors[f%this.options.colors.length],this.options.backgroundColor,f,this.raphael),k.render(),this.segments.push(k),k.on("hover",this.select),k.on("click",this.click),g=j,f+=1;for(this.text1=this.drawEmptyDonutLabel(c,d-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(c,d+10,this.options.labelColor,14),h=Math.max.apply(Math,this.values),f=0,w=this.values,x=[],q=0,t=w.length;t>q;q++){if(m=w[q],m===h){this.select(f);break}x.push(f+=1)}return x},d.prototype.setData=function(a){var b;return this.data=a,this.values=function(){var a,c,d,e;for(d=this.data,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(parseFloat(b.value));return e}.call(this),this.redraw()},d.prototype.click=function(a){return this.fire("click",a,this.data[a])},d.prototype.select=function(a){var b,c,d,e,f,g;for(g=this.segments,e=0,f=g.length;f>e;e++)c=g[e],c.deselect();return d=this.segments[a],d.select(),b=this.data[a],this.setLabels(b.label,this.options.formatter(b.value,b))},d.prototype.setLabels=function(a,b){var c,d,e,f,g,h,i,j;return c=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,f=1.8*c,e=c/2,d=c/3,this.text1.attr({text:a,transform:""}),g=this.text1.getBBox(),h=Math.min(f/g.width,e/g.height),this.text1.attr({transform:"S"+h+","+h+","+(g.x+g.width/2)+","+(g.y+g.height)}),this.text2.attr({text:b,transform:""}),i=this.text2.getBBox(),j=Math.min(f/i.width,d/i.height),this.text2.attr({transform:"S"+j+","+j+","+(i.x+i.width/2)+","+i.y})},d.prototype.drawEmptyDonutLabel=function(a,b,c,d,e){var f;return f=this.raphael.text(a,b,"").attr("font-size",d).attr("fill",c),null!=e&&f.attr("font-weight",e),f},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.DonutSegment=function(a){function b(a,b,c,d,e,g,h,i,j,k){this.cx=a,this.cy=b,this.inner=c,this.outer=d,this.color=h,this.backgroundColor=i,this.index=j,this.raphael=k,this.deselect=f(this.deselect,this),this.select=f(this.select,this),this.sin_p0=Math.sin(e),this.cos_p0=Math.cos(e),this.sin_p1=Math.sin(g),this.cos_p1=Math.cos(g),this.is_long=g-e>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return h(b,a),b.prototype.calcArcPoints=function(a){return[this.cx+a*this.sin_p0,this.cy+a*this.cos_p0,this.cx+a*this.sin_p1,this.cy+a*this.cos_p1]},b.prototype.calcSegment=function(a,b){var c,d,e,f,g,h,i,j,k,l;return k=this.calcArcPoints(a),c=k[0],e=k[1],d=k[2],f=k[3],l=this.calcArcPoints(b),g=l[0],i=l[1],h=l[2],j=l[3],"M"+c+","+e+("A"+a+","+a+",0,"+this.is_long+",0,"+d+","+f)+("L"+h+","+j)+("A"+b+","+b+",0,"+this.is_long+",1,"+g+","+i)+"Z"},b.prototype.calcArc=function(a){var b,c,d,e,f;return f=this.calcArcPoints(a),b=f[0],d=f[1],c=f[2],e=f[3],"M"+b+","+d+("A"+a+","+a+",0,"+this.is_long+",0,"+c+","+e)},b.prototype.render=function(){var a=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return a.fire("hover",a.index)},function(){return a.fire("click",a.index)})},b.prototype.drawDonutArc=function(a,b){return this.raphael.path(a).attr({stroke:b,"stroke-width":2,opacity:0})},b.prototype.drawDonutSegment=function(a,b,c,d,e){return this.raphael.path(a).attr({fill:b,stroke:c,"stroke-width":3}).hover(d).click(e)},b.prototype.select=function(){return this.selected?void 0:(this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0)},b.prototype.deselect=function(){return this.selected?(this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1):void 0},b}(b.EventEmitter)}.call(this),!function(a){var b={set:{colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,focus:1},get:{selectedRegions:1,selectedMarkers:1,mapObject:1,regionName:1}};a.fn.vectorMap=function(a){var c,d,c=this.children(".jvectormap-container").data("mapObject");if("addMap"===a)jvm.Map.maps[arguments[1]]=arguments[2];else{if(("set"===a||"get"===a)&&b[a][arguments[1]])return d=arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1),c[a+d].apply(c,Array.prototype.slice.call(arguments,2));a=a||{},a.container=this,c=new jvm.Map(a)}return this}}(jQuery),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,k=0,l=0,m=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(l=-1*g.detail),"wheelDelta"in g&&(l=g.wheelDelta),"wheelDeltaY"in g&&(l=g.wheelDeltaY),"wheelDeltaX"in g&&(k=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(k=-1*l,l=0),j=0===l?k:l,"deltaY"in g&&(l=-1*g.deltaY,j=l),"deltaX"in g&&(k=g.deltaX,0===l&&(j=-1*k)),0!==l||0!==k){if(1===g.deltaMode){var n=a.data(this,"mousewheel-line-height");j*=n,l*=n,k*=n}else if(2===g.deltaMode){var o=a.data(this,"mousewheel-page-height");j*=o,l*=o,k*=o}return m=Math.max(Math.abs(l),Math.abs(k)),(!f||f>m)&&(f=m,d(g,m)&&(f/=40)),d(g,m)&&(j/=40,k/=40,l/=40),j=Math[j>=1?"floor":"ceil"](j/f),k=Math[k>=1?"floor":"ceil"](k/f),l=Math[l>=1?"floor":"ceil"](l/f),b.deltaX=k,b.deltaY=l,b.deltaFactor=f,b.deltaMode=0,h.unshift(b,j,k,l),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.9",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var a=h.length;a;)this.removeEventListener(h[--a],b,!1);else this.onmousewheel=null},getLineHeight:function(b){return parseInt(a(b)["offsetParent"in a.fn?"offsetParent":"parent"]().css("fontSize"),10)},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});var jvm={inherits:function(a,b){function c(){}c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a,a.parentClass=b},mixin:function(a,b){var c;for(c in b.prototype)b.prototype.hasOwnProperty(c)&&(a.prototype[c]=b.prototype[c])},min:function(a){var b,c=Number.MAX_VALUE;if(a instanceof Array)for(b=0;b<a.length;b++)a[b]<c&&(c=a[b]);else for(b in a)a[b]<c&&(c=a[b]);return c},max:function(a){var b,c=Number.MIN_VALUE;if(a instanceof Array)for(b=0;b<a.length;b++)a[b]>c&&(c=a[b]);else for(b in a)a[b]>c&&(c=a[b]);return c},keys:function(a){var b,c=[];for(b in a)c.push(b);return c},values:function(a){var b,c,d=[];for(c=0;c<arguments.length;c++){a=arguments[c];for(b in a)d.push(a[b])}return d},whenImageLoaded:function(a){var b=new jvm.$.Deferred,c=jvm.$("<img/>");return c.error(function(){b.reject()}).load(function(){b.resolve(c)}),c.attr("src",a),b},isImageUrl:function(a){return/\.\w{3,4}$/.test(a)}};jvm.$=jQuery,Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var c;if(null==this)throw new TypeError('"this" is null or not defined');var d=Object(this),e=d.length>>>0;if(0===e)return-1;var f=+b||0;if(1/0===Math.abs(f)&&(f=0),f>=e)return-1;for(c=Math.max(f>=0?f:e-Math.abs(f),0);e>c;){
|
5 |
-
if(c in d&&d[c]===a)return c;c++}return-1}),jvm.AbstractElement=function(a,b){this.node=this.createElement(a),this.name=a,this.properties={},b&&this.set(b)},jvm.AbstractElement.prototype.set=function(a,b){var c;if("object"==typeof a)for(c in a)this.properties[c]=a[c],this.applyAttr(c,a[c]);else this.properties[a]=b,this.applyAttr(a,b)},jvm.AbstractElement.prototype.get=function(a){return this.properties[a]},jvm.AbstractElement.prototype.applyAttr=function(a,b){this.node.setAttribute(a,b)},jvm.AbstractElement.prototype.remove=function(){jvm.$(this.node).remove()},jvm.AbstractCanvasElement=function(a,b,c){this.container=a,this.setSize(b,c),this.rootElement=new jvm[this.classPrefix+"GroupElement"],this.node.appendChild(this.rootElement.node),this.container.appendChild(this.node)},jvm.AbstractCanvasElement.prototype.add=function(a,b){b=b||this.rootElement,b.add(a),a.canvas=this},jvm.AbstractCanvasElement.prototype.addPath=function(a,b,c){var d=new jvm[this.classPrefix+"PathElement"](a,b);return this.add(d,c),d},jvm.AbstractCanvasElement.prototype.addCircle=function(a,b,c){var d=new jvm[this.classPrefix+"CircleElement"](a,b);return this.add(d,c),d},jvm.AbstractCanvasElement.prototype.addImage=function(a,b,c){var d=new jvm[this.classPrefix+"ImageElement"](a,b);return this.add(d,c),d},jvm.AbstractCanvasElement.prototype.addText=function(a,b,c){var d=new jvm[this.classPrefix+"TextElement"](a,b);return this.add(d,c),d},jvm.AbstractCanvasElement.prototype.addGroup=function(a){var b=new jvm[this.classPrefix+"GroupElement"];return a?a.node.appendChild(b.node):this.node.appendChild(b.node),b.canvas=this,b},jvm.AbstractShapeElement=function(a,b,c){this.style=c||{},this.style.current=this.style.current||{},this.isHovered=!1,this.isSelected=!1,this.updateStyle()},jvm.AbstractShapeElement.prototype.setStyle=function(a,b){var c={};"object"==typeof a?c=a:c[a]=b,jvm.$.extend(this.style.current,c),this.updateStyle()},jvm.AbstractShapeElement.prototype.updateStyle=function(){var a={};jvm.AbstractShapeElement.mergeStyles(a,this.style.initial),jvm.AbstractShapeElement.mergeStyles(a,this.style.current),this.isHovered&&jvm.AbstractShapeElement.mergeStyles(a,this.style.hover),this.isSelected&&(jvm.AbstractShapeElement.mergeStyles(a,this.style.selected),this.isHovered&&jvm.AbstractShapeElement.mergeStyles(a,this.style.selectedHover)),this.set(a)},jvm.AbstractShapeElement.mergeStyles=function(a,b){var c;b=b||{};for(c in b)null===b[c]?delete a[c]:a[c]=b[c]},jvm.SVGElement=function(){jvm.SVGElement.parentClass.apply(this,arguments)},jvm.inherits(jvm.SVGElement,jvm.AbstractElement),jvm.SVGElement.svgns="http://www.w3.org/2000/svg",jvm.SVGElement.prototype.createElement=function(a){return document.createElementNS(jvm.SVGElement.svgns,a)},jvm.SVGElement.prototype.addClass=function(a){this.node.setAttribute("class",a)},jvm.SVGElement.prototype.getElementCtr=function(a){return jvm["SVG"+a]},jvm.SVGElement.prototype.getBBox=function(){return this.node.getBBox()},jvm.SVGGroupElement=function(){jvm.SVGGroupElement.parentClass.call(this,"g")},jvm.inherits(jvm.SVGGroupElement,jvm.SVGElement),jvm.SVGGroupElement.prototype.add=function(a){this.node.appendChild(a.node)},jvm.SVGCanvasElement=function(){this.classPrefix="SVG",jvm.SVGCanvasElement.parentClass.call(this,"svg"),this.defsElement=new jvm.SVGElement("defs"),this.node.appendChild(this.defsElement.node),jvm.AbstractCanvasElement.apply(this,arguments)},jvm.inherits(jvm.SVGCanvasElement,jvm.SVGElement),jvm.mixin(jvm.SVGCanvasElement,jvm.AbstractCanvasElement),jvm.SVGCanvasElement.prototype.setSize=function(a,b){this.width=a,this.height=b,this.node.setAttribute("width",a),this.node.setAttribute("height",b)},jvm.SVGCanvasElement.prototype.applyTransformParams=function(a,b,c){this.scale=a,this.transX=b,this.transY=c,this.rootElement.node.setAttribute("transform","scale("+a+") translate("+b+", "+c+")")},jvm.SVGShapeElement=function(a,b){jvm.SVGShapeElement.parentClass.call(this,a,b),jvm.AbstractShapeElement.apply(this,arguments)},jvm.inherits(jvm.SVGShapeElement,jvm.SVGElement),jvm.mixin(jvm.SVGShapeElement,jvm.AbstractShapeElement),jvm.SVGShapeElement.prototype.applyAttr=function(a,b){var c,d,e=this;"fill"===a&&jvm.isImageUrl(b)?jvm.SVGShapeElement.images[b]?this.applyAttr("fill","url(#image"+jvm.SVGShapeElement.images[b]+")"):jvm.whenImageLoaded(b).then(function(a){d=new jvm.SVGElement("image"),d.node.setAttributeNS("http://www.w3.org/1999/xlink","href",b),d.applyAttr("x","0"),d.applyAttr("y","0"),d.applyAttr("width",a[0].width),d.applyAttr("height",a[0].height),c=new jvm.SVGElement("pattern"),c.applyAttr("id","image"+jvm.SVGShapeElement.imageCounter),c.applyAttr("x",0),c.applyAttr("y",0),c.applyAttr("width",a[0].width/2),c.applyAttr("height",a[0].height/2),c.applyAttr("viewBox","0 0 "+a[0].width+" "+a[0].height),c.applyAttr("patternUnits","userSpaceOnUse"),c.node.appendChild(d.node),e.canvas.defsElement.node.appendChild(c.node),jvm.SVGShapeElement.images[b]=jvm.SVGShapeElement.imageCounter++,e.applyAttr("fill","url(#image"+jvm.SVGShapeElement.images[b]+")")}):jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.SVGShapeElement.imageCounter=1,jvm.SVGShapeElement.images={},jvm.SVGPathElement=function(a,b){jvm.SVGPathElement.parentClass.call(this,"path",a,b),this.node.setAttribute("fill-rule","evenodd")},jvm.inherits(jvm.SVGPathElement,jvm.SVGShapeElement),jvm.SVGCircleElement=function(a,b){jvm.SVGCircleElement.parentClass.call(this,"circle",a,b)},jvm.inherits(jvm.SVGCircleElement,jvm.SVGShapeElement),jvm.SVGImageElement=function(a,b){jvm.SVGImageElement.parentClass.call(this,"image",a,b)},jvm.inherits(jvm.SVGImageElement,jvm.SVGShapeElement),jvm.SVGImageElement.prototype.applyAttr=function(a,b){var c=this;"image"==a?jvm.SVGImageElement.images[b]||jvm.whenImageLoaded(b).then(function(a){c.node.setAttributeNS("http://www.w3.org/1999/xlink","href",b),c.width=a[0].width,c.height=a[0].height,c.applyAttr("width",c.width),c.applyAttr("height",c.height),jvm.SVGImageElement.images[b]=jvm.SVGImageElement.imageCounter++,c.applyAttr("x",c.cx-c.width/2),c.applyAttr("y",c.cy-c.height/2),jvm.$(c.node).trigger("imageloaded",[a])}):"cx"==a?(this.cx=b,this.width&&this.applyAttr("x",b-this.width/2)):"cy"==a?(this.cy=b,this.height&&this.applyAttr("y",b-this.height/2)):jvm.SVGImageElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.SVGImageElement.imageCounter=1,jvm.SVGImageElement.images={},jvm.SVGTextElement=function(a,b){jvm.SVGTextElement.parentClass.call(this,"text",a,b)},jvm.inherits(jvm.SVGTextElement,jvm.SVGShapeElement),jvm.SVGTextElement.prototype.applyAttr=function(a,b){"text"===a?this.node.textContent=b:jvm.SVGTextElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.VMLElement=function(){jvm.VMLElement.VMLInitialized||jvm.VMLElement.initializeVML(),jvm.VMLElement.parentClass.apply(this,arguments)},jvm.inherits(jvm.VMLElement,jvm.AbstractElement),jvm.VMLElement.VMLInitialized=!1,jvm.VMLElement.initializeVML=function(){try{document.namespaces.rvml||document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),jvm.VMLElement.prototype.createElement=function(a){return document.createElement("<rvml:"+a+' class="rvml">')}}catch(a){jvm.VMLElement.prototype.createElement=function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"),jvm.VMLElement.VMLInitialized=!0},jvm.VMLElement.prototype.getElementCtr=function(a){return jvm["VML"+a]},jvm.VMLElement.prototype.addClass=function(a){jvm.$(this.node).addClass(a)},jvm.VMLElement.prototype.applyAttr=function(a,b){this.node[a]=b},jvm.VMLElement.prototype.getBBox=function(){var a=jvm.$(this.node);return{x:a.position().left/this.canvas.scale,y:a.position().top/this.canvas.scale,width:a.width()/this.canvas.scale,height:a.height()/this.canvas.scale}},jvm.VMLGroupElement=function(){jvm.VMLGroupElement.parentClass.call(this,"group"),this.node.style.left="0px",this.node.style.top="0px",this.node.coordorigin="0 0"},jvm.inherits(jvm.VMLGroupElement,jvm.VMLElement),jvm.VMLGroupElement.prototype.add=function(a){this.node.appendChild(a.node)},jvm.VMLCanvasElement=function(){this.classPrefix="VML",jvm.VMLCanvasElement.parentClass.call(this,"group"),jvm.AbstractCanvasElement.apply(this,arguments),this.node.style.position="absolute"},jvm.inherits(jvm.VMLCanvasElement,jvm.VMLElement),jvm.mixin(jvm.VMLCanvasElement,jvm.AbstractCanvasElement),jvm.VMLCanvasElement.prototype.setSize=function(a,b){var c,d,e,f;if(this.width=a,this.height=b,this.node.style.width=a+"px",this.node.style.height=b+"px",this.node.coordsize=a+" "+b,this.node.coordorigin="0 0",this.rootElement){for(c=this.rootElement.node.getElementsByTagName("shape"),e=0,f=c.length;f>e;e++)c[e].coordsize=a+" "+b,c[e].style.width=a+"px",c[e].style.height=b+"px";for(d=this.node.getElementsByTagName("group"),e=0,f=d.length;f>e;e++)d[e].coordsize=a+" "+b,d[e].style.width=a+"px",d[e].style.height=b+"px"}},jvm.VMLCanvasElement.prototype.applyTransformParams=function(a,b,c){this.scale=a,this.transX=b,this.transY=c,this.rootElement.node.coordorigin=this.width-b-this.width/100+","+(this.height-c-this.height/100),this.rootElement.node.coordsize=this.width/a+","+this.height/a},jvm.VMLShapeElement=function(a,b){jvm.VMLShapeElement.parentClass.call(this,a,b),this.fillElement=new jvm.VMLElement("fill"),this.strokeElement=new jvm.VMLElement("stroke"),this.node.appendChild(this.fillElement.node),this.node.appendChild(this.strokeElement.node),this.node.stroked=!1,jvm.AbstractShapeElement.apply(this,arguments)},jvm.inherits(jvm.VMLShapeElement,jvm.VMLElement),jvm.mixin(jvm.VMLShapeElement,jvm.AbstractShapeElement),jvm.VMLShapeElement.prototype.applyAttr=function(a,b){switch(a){case"fill":this.node.fillcolor=b;break;case"fill-opacity":this.fillElement.node.opacity=Math.round(100*b)+"%";break;case"stroke":this.node.stroked="none"===b?!1:!0,this.node.strokecolor=b;break;case"stroke-opacity":this.strokeElement.node.opacity=Math.round(100*b)+"%";break;case"stroke-width":this.node.stroked=0===parseInt(b,10)?!1:!0,this.node.strokeweight=b;break;case"d":this.node.path=jvm.VMLPathElement.pathSvgToVml(b);break;default:jvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this,arguments)}},jvm.VMLPathElement=function(a,b){var c=new jvm.VMLElement("skew");jvm.VMLPathElement.parentClass.call(this,"shape",a,b),this.node.coordorigin="0 0",c.node.on=!0,c.node.matrix="0.01,0,0,0.01,0,0",c.node.offset="0,0",this.node.appendChild(c.node)},jvm.inherits(jvm.VMLPathElement,jvm.VMLShapeElement),jvm.VMLPathElement.prototype.applyAttr=function(a,b){"d"===a?this.node.path=jvm.VMLPathElement.pathSvgToVml(b):jvm.VMLShapeElement.prototype.applyAttr.call(this,a,b)},jvm.VMLPathElement.pathSvgToVml=function(a){var b,c,d=0,e=0;return a=a.replace(/(-?\d+)e(-?\d+)/g,"0"),a.replace(/([MmLlHhVvCcSs])\s*((?:-?\d*(?:\.\d+)?\s*,?\s*)+)/g,function(a,f,g){g=g.replace(/(\d)-/g,"$1,-").replace(/^\s+/g,"").replace(/\s+$/g,"").replace(/\s+/g,",").split(","),g[0]||g.shift();for(var h=0,i=g.length;i>h;h++)g[h]=Math.round(100*g[h]);switch(f){case"m":return d+=g[0],e+=g[1],"t"+g.join(",");case"M":return d=g[0],e=g[1],"m"+g.join(",");case"l":return d+=g[0],e+=g[1],"r"+g.join(",");case"L":return d=g[0],e=g[1],"l"+g.join(",");case"h":return d+=g[0],"r"+g[0]+",0";case"H":return d=g[0],"l"+d+","+e;case"v":return e+=g[0],"r0,"+g[0];case"V":return e=g[0],"l"+d+","+e;case"c":return b=d+g[g.length-4],c=e+g[g.length-3],d+=g[g.length-2],e+=g[g.length-1],"v"+g.join(",");case"C":return b=g[g.length-4],c=g[g.length-3],d=g[g.length-2],e=g[g.length-1],"c"+g.join(",");case"s":return g.unshift(e-c),g.unshift(d-b),b=d+g[g.length-4],c=e+g[g.length-3],d+=g[g.length-2],e+=g[g.length-1],"v"+g.join(",");case"S":return g.unshift(e+e-c),g.unshift(d+d-b),b=g[g.length-4],c=g[g.length-3],d=g[g.length-2],e=g[g.length-1],"c"+g.join(",")}return""}).replace(/z/g,"e")},jvm.VMLCircleElement=function(a,b){jvm.VMLCircleElement.parentClass.call(this,"oval",a,b)},jvm.inherits(jvm.VMLCircleElement,jvm.VMLShapeElement),jvm.VMLCircleElement.prototype.applyAttr=function(a,b){switch(a){case"r":this.node.style.width=2*b+"px",this.node.style.height=2*b+"px",this.applyAttr("cx",this.get("cx")||0),this.applyAttr("cy",this.get("cy")||0);break;case"cx":if(!b)return;this.node.style.left=b-(this.get("r")||0)+"px";break;case"cy":if(!b)return;this.node.style.top=b-(this.get("r")||0)+"px";break;default:jvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this,a,b)}},jvm.VectorCanvas=function(a,b,c){return this.mode=window.SVGAngle?"svg":"vml",this.impl="svg"==this.mode?new jvm.SVGCanvasElement(a,b,c):new jvm.VMLCanvasElement(a,b,c),this.impl.mode=this.mode,this.impl},jvm.SimpleScale=function(a){this.scale=a},jvm.SimpleScale.prototype.getValue=function(a){return a},jvm.OrdinalScale=function(a){this.scale=a},jvm.OrdinalScale.prototype.getValue=function(a){return this.scale[a]},jvm.OrdinalScale.prototype.getTicks=function(){var a,b=[];for(a in this.scale)b.push({label:a,value:this.scale[a]});return b},jvm.NumericScale=function(a,b,c,d){this.scale=[],b=b||"linear",a&&this.setScale(a),b&&this.setNormalizeFunction(b),"undefined"!=typeof c&&this.setMin(c),"undefined"!=typeof d&&this.setMin(d)},jvm.NumericScale.prototype={setMin:function(a){this.clearMinValue=a,this.minValue="function"==typeof this.normalize?this.normalize(a):a},setMax:function(a){this.clearMaxValue=a,this.maxValue="function"==typeof this.normalize?this.normalize(a):a},setScale:function(a){var b;for(this.scale=[],b=0;b<a.length;b++)this.scale[b]=[a[b]]},setNormalizeFunction:function(a){"polynomial"===a?this.normalize=function(a){return Math.pow(a,.2)}:"linear"===a?delete this.normalize:this.normalize=a,this.setMin(this.clearMinValue),this.setMax(this.clearMaxValue)},getValue:function(a){var b,c,d=[],e=0,f=0;for("function"==typeof this.normalize&&(a=this.normalize(a)),f=0;f<this.scale.length-1;f++)b=this.vectorLength(this.vectorSubtract(this.scale[f+1],this.scale[f])),d.push(b),e+=b;for(c=(this.maxValue-this.minValue)/e,f=0;f<d.length;f++)d[f]*=c;for(f=0,a-=this.minValue;a-d[f]>=0;)a-=d[f],f++;return a=this.vectorToNum(f==this.scale.length-1?this.scale[f]:this.vectorAdd(this.scale[f],this.vectorMult(this.vectorSubtract(this.scale[f+1],this.scale[f]),a/d[f])))},vectorToNum:function(a){var b,c=0;for(b=0;b<a.length;b++)c+=Math.round(a[b])*Math.pow(256,a.length-b-1);return c},vectorSubtract:function(a,b){var c,d=[];for(c=0;c<a.length;c++)d[c]=a[c]-b[c];return d},vectorAdd:function(a,b){var c,d=[];for(c=0;c<a.length;c++)d[c]=a[c]+b[c];return d},vectorMult:function(a,b){var c,d=[];for(c=0;c<a.length;c++)d[c]=a[c]*b;return d},vectorLength:function(a){var b,c=0;for(b=0;b<a.length;b++)c+=a[b]*a[b];return Math.sqrt(c)},getTicks:function(){var a,b,c=5,d=[this.clearMinValue,this.clearMaxValue],e=d[1]-d[0],f=Math.pow(10,Math.floor(Math.log(e/c)/Math.LN10)),g=c/e*f,h=[];for(.15>=g?f*=10:.35>=g?f*=5:.75>=g&&(f*=2),d[0]=Math.floor(d[0]/f)*f,d[1]=Math.ceil(d[1]/f)*f,a=d[0];a<=d[1];)b=a==d[0]?this.clearMinValue:a==d[1]?this.clearMaxValue:a,h.push({label:a,value:this.getValue(b)}),a+=f;return h}},jvm.ColorScale=function(){jvm.ColorScale.parentClass.apply(this,arguments)},jvm.inherits(jvm.ColorScale,jvm.NumericScale),jvm.ColorScale.prototype.setScale=function(a){var b;for(b=0;b<a.length;b++)this.scale[b]=jvm.ColorScale.rgbToArray(a[b])},jvm.ColorScale.prototype.getValue=function(a){return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this,a))},jvm.ColorScale.arrayToRgb=function(a){var b,c,d="#";for(c=0;c<a.length;c++)b=a[c].toString(16),d+=1==b.length?"0"+b:b;return d},jvm.ColorScale.numToRgb=function(a){for(a=a.toString(16);a.length<6;)a="0"+a;return"#"+a},jvm.ColorScale.rgbToArray=function(a){return a=a.substr(1),[parseInt(a.substr(0,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(4,2),16)]},jvm.Legend=function(a){this.params=a||{},this.map=this.params.map,this.series=this.params.series,this.body=jvm.$("<div/>"),this.body.addClass("jvectormap-legend"),this.params.cssClass&&this.body.addClass(this.params.cssClass),a.vertical?this.map.legendCntVertical.append(this.body):this.map.legendCntHorizontal.append(this.body),this.render()},jvm.Legend.prototype.render=function(){var a,b,c,d,e=this.series.scale.getTicks(),f=jvm.$("<div/>").addClass("jvectormap-legend-inner");for(this.body.html(""),this.params.title&&this.body.append(jvm.$("<div/>").addClass("jvectormap-legend-title").html(this.params.title)),this.body.append(f),a=0;a<e.length;a++){switch(b=jvm.$("<div/>").addClass("jvectormap-legend-tick"),c=jvm.$("<div/>").addClass("jvectormap-legend-tick-sample"),this.series.params.attribute){case"fill":jvm.isImageUrl(e[a].value)?c.css("background","url("+e[a].value+")"):c.css("background",e[a].value);break;case"stroke":c.css("background",e[a].value);break;case"image":c.css("background","url("+e[a].value+") no-repeat center center");break;case"r":jvm.$("<div/>").css({"border-radius":e[a].value,border:this.map.params.markerStyle.initial["stroke-width"]+"px "+this.map.params.markerStyle.initial.stroke+" solid",width:2*e[a].value+"px",height:2*e[a].value+"px",background:this.map.params.markerStyle.initial.fill}).appendTo(c)}b.append(c),d=e[a].label,this.params.labelRender&&(d=this.params.labelRender(d)),b.append(jvm.$("<div>"+d+" </div>").addClass("jvectormap-legend-tick-text")),f.append(b)}f.append(jvm.$("<div/>").css("clear","both"))},jvm.DataSeries=function(a,b,c){var d;a=a||{},a.attribute=a.attribute||"fill",this.elements=b,this.params=a,this.map=c,a.attributes&&this.setAttributes(a.attributes),jvm.$.isArray(a.scale)?(d="fill"===a.attribute||"stroke"===a.attribute?jvm.ColorScale:jvm.NumericScale,this.scale=new d(a.scale,a.normalizeFunction,a.min,a.max)):this.scale=a.scale?new jvm.OrdinalScale(a.scale):new jvm.SimpleScale(a.scale),this.values=a.values||{},this.setValues(this.values),this.params.legend&&(this.legend=new jvm.Legend($.extend({map:this.map,series:this},this.params.legend)))},jvm.DataSeries.prototype={setAttributes:function(a,b){var c,d=a;if("string"==typeof a)this.elements[a]&&this.elements[a].setStyle(this.params.attribute,b);else for(c in d)this.elements[c]&&this.elements[c].element.setStyle(this.params.attribute,d[c])},setValues:function(a){var b,c,d=-Number.MAX_VALUE,e=Number.MAX_VALUE,f={};if(this.scale instanceof jvm.OrdinalScale||this.scale instanceof jvm.SimpleScale)for(c in a)f[c]=a[c]?this.scale.getValue(a[c]):this.elements[c].element.style.initial[this.params.attribute];else{if("undefined"==typeof this.params.min||"undefined"==typeof this.params.max)for(c in a)b=parseFloat(a[c]),b>d&&(d=b),e>b&&(e=b);"undefined"==typeof this.params.min?(this.scale.setMin(e),this.params.min=e):this.scale.setMin(this.params.min),"undefined"==typeof this.params.max?(this.scale.setMax(d),this.params.max=d):this.scale.setMax(this.params.max);for(c in a)"indexOf"!=c&&(b=parseFloat(a[c]),f[c]=isNaN(b)?this.elements[c].element.style.initial[this.params.attribute]:this.scale.getValue(b))}this.setAttributes(f),jvm.$.extend(this.values,a)},clear:function(){var a,b={};for(a in this.values)this.elements[a]&&(b[a]=this.elements[a].element.shape.style.initial[this.params.attribute]);this.setAttributes(b),this.values={}},setScale:function(a){this.scale.setScale(a),this.values&&this.setValues(this.values)},setNormalizeFunction:function(a){this.scale.setNormalizeFunction(a),this.values&&this.setValues(this.values)}},jvm.Proj={degRad:180/Math.PI,radDeg:Math.PI/180,radius:6381372,sgn:function(a){return a>0?1:0>a?-1:a},mill:function(a,b,c){return{x:this.radius*(b-c)*this.radDeg,y:-this.radius*Math.log(Math.tan((45+.4*a)*this.radDeg))/.8}},mill_inv:function(a,b,c){return{lat:(2.5*Math.atan(Math.exp(.8*b/this.radius))-5*Math.PI/8)*this.degRad,lng:(c*this.radDeg+a/this.radius)*this.degRad}},merc:function(a,b,c){return{x:this.radius*(b-c)*this.radDeg,y:-this.radius*Math.log(Math.tan(Math.PI/4+a*Math.PI/360))}},merc_inv:function(a,b,c){return{lat:(2*Math.atan(Math.exp(b/this.radius))-Math.PI/2)*this.degRad,lng:(c*this.radDeg+a/this.radius)*this.degRad}},aea:function(a,b,c){var d=0,e=c*this.radDeg,f=29.5*this.radDeg,g=45.5*this.radDeg,h=a*this.radDeg,i=b*this.radDeg,j=(Math.sin(f)+Math.sin(g))/2,k=Math.cos(f)*Math.cos(f)+2*j*Math.sin(f),l=j*(i-e),m=Math.sqrt(k-2*j*Math.sin(h))/j,n=Math.sqrt(k-2*j*Math.sin(d))/j;return{x:m*Math.sin(l)*this.radius,y:-(n-m*Math.cos(l))*this.radius}},aea_inv:function(a,b,c){var d=a/this.radius,e=b/this.radius,f=0,g=c*this.radDeg,h=29.5*this.radDeg,i=45.5*this.radDeg,j=(Math.sin(h)+Math.sin(i))/2,k=Math.cos(h)*Math.cos(h)+2*j*Math.sin(h),l=Math.sqrt(k-2*j*Math.sin(f))/j,m=Math.sqrt(d*d+(l-e)*(l-e)),n=Math.atan(d/(l-e));return{lat:Math.asin((k-m*m*j*j)/(2*j))*this.degRad,lng:(g+n/j)*this.degRad}},lcc:function(a,b,c){var d=0,e=c*this.radDeg,f=b*this.radDeg,g=33*this.radDeg,h=45*this.radDeg,i=a*this.radDeg,j=Math.log(Math.cos(g)*(1/Math.cos(h)))/Math.log(Math.tan(Math.PI/4+h/2)*(1/Math.tan(Math.PI/4+g/2))),k=Math.cos(g)*Math.pow(Math.tan(Math.PI/4+g/2),j)/j,l=k*Math.pow(1/Math.tan(Math.PI/4+i/2),j),m=k*Math.pow(1/Math.tan(Math.PI/4+d/2),j);return{x:l*Math.sin(j*(f-e))*this.radius,y:-(m-l*Math.cos(j*(f-e)))*this.radius}},lcc_inv:function(a,b,c){var d=a/this.radius,e=b/this.radius,f=0,g=c*this.radDeg,h=33*this.radDeg,i=45*this.radDeg,j=Math.log(Math.cos(h)*(1/Math.cos(i)))/Math.log(Math.tan(Math.PI/4+i/2)*(1/Math.tan(Math.PI/4+h/2))),k=Math.cos(h)*Math.pow(Math.tan(Math.PI/4+h/2),j)/j,l=k*Math.pow(1/Math.tan(Math.PI/4+f/2),j),m=this.sgn(j)*Math.sqrt(d*d+(l-e)*(l-e)),n=Math.atan(d/(l-e));return{lat:(2*Math.atan(Math.pow(k/m,1/j))-Math.PI/2)*this.degRad,lng:(g+n/j)*this.degRad}}},jvm.MapObject=function(){},jvm.MapObject.prototype.getLabelText=function(a){var b;return b=this.config.label?"function"==typeof this.config.label.render?this.config.label.render(a):a:null},jvm.MapObject.prototype.getLabelOffsets=function(a){var b;return this.config.label&&("function"==typeof this.config.label.offsets?b=this.config.label.offsets(a):"object"==typeof this.config.label.offsets&&(b=this.config.label.offsets[a])),b||[0,0]},jvm.MapObject.prototype.setHovered=function(a){this.isHovered!==a&&(this.isHovered=a,this.shape.isHovered=a,this.shape.updateStyle(),this.label&&(this.label.isHovered=a,this.label.updateStyle()))},jvm.MapObject.prototype.setSelected=function(a){this.isSelected!==a&&(this.isSelected=a,this.shape.isSelected=a,this.shape.updateStyle(),this.label&&(this.label.isSelected=a,this.label.updateStyle()),jvm.$(this.shape).trigger("selected",[a]))},jvm.MapObject.prototype.setStyle=function(){this.shape.setStyle.apply(this.shape,arguments)},jvm.MapObject.prototype.remove=function(){this.shape.remove(),this.label&&this.label.remove()},jvm.Region=function(a){var b,c,d;this.config=a,this.map=this.config.map,this.shape=a.canvas.addPath({d:a.path,"data-code":a.code},a.style,a.canvas.rootElement),this.shape.addClass("jvectormap-region jvectormap-element"),b=this.shape.getBBox(),c=this.getLabelText(a.code),this.config.label&&c&&(d=this.getLabelOffsets(a.code),this.labelX=b.x+b.width/2+d[0],this.labelY=b.y+b.height/2+d[1],this.label=a.canvas.addText({text:c,"text-anchor":"middle","alignment-baseline":"central",x:this.labelX,y:this.labelY,"data-code":a.code},a.labelStyle,a.labelsGroup),this.label.addClass("jvectormap-region jvectormap-element"))},jvm.inherits(jvm.Region,jvm.MapObject),jvm.Region.prototype.updateLabelPosition=function(){this.label&&this.label.set({x:this.labelX*this.map.scale+this.map.transX*this.map.scale,y:this.labelY*this.map.scale+this.map.transY*this.map.scale})},jvm.Marker=function(a){var b,c;this.config=a,this.map=this.config.map,this.isImage=!!this.config.style.initial.image,this.createShape(),b=this.getLabelText(a.index),this.config.label&&b&&(c=this.getLabelOffsets(a.code),this.labelX=(a.cx+c[0])/this.map.scale-this.map.transX,this.labelY=(a.cy+c[1])/this.map.scale-this.map.transY,console.log(this.labelX,this.labelY),this.label=a.canvas.addText({text:b,"data-index":a.index,dy:"0.6ex",x:this.labelX,y:this.labelY},a.labelStyle,a.labelsGroup),this.label.addClass("jvectormap-marker jvectormap-element"))},jvm.inherits(jvm.Marker,jvm.MapObject),jvm.Marker.prototype.createShape=function(){var a=this;this.shape&&this.shape.remove(),this.shape=this.config.canvas[this.isImage?"addImage":"addCircle"]({"data-index":this.config.index,cx:this.config.cx,cy:this.config.cy},this.config.style,this.config.group),this.shape.addClass("jvectormap-marker jvectormap-element"),this.isImage&&jvm.$(this.shape.node).on("imageloaded",function(){a.updateLabelPosition()})},jvm.Marker.prototype.updateLabelPosition=function(){this.label&&this.label.set({x:this.labelX*this.map.scale+this.map.transX*this.map.scale+5+(this.isImage?(this.shape.width||0)/2:this.shape.properties.r),y:this.labelY*this.map.scale+this.map.transY*this.map.scale})},jvm.Marker.prototype.setStyle=function(a){var b;jvm.Marker.parentClass.prototype.setStyle.apply(this,arguments),"r"===a&&this.updateLabelPosition(),b=!!this.shape.get("image"),b!=this.isImage&&(this.isImage=b,this.config.style=jvm.$.extend(!0,{},this.shape.style),this.createShape())},jvm.Map=function(a){var b,c=this;if(this.params=jvm.$.extend(!0,{},jvm.Map.defaultParams,a),!jvm.Map.maps[this.params.map])throw new Error("Attempt to use map which was not loaded: "+this.params.map);this.mapData=jvm.Map.maps[this.params.map],this.markers={},this.regions={},this.regionsColors={},this.regionsData={},this.container=jvm.$("<div>").addClass("jvectormap-container"),this.params.container&&this.params.container.append(this.container),this.container.data("mapObject",this),this.defaultWidth=this.mapData.width,this.defaultHeight=this.mapData.height,this.setBackgroundColor(this.params.backgroundColor),this.onResize=function(){c.updateSize()},jvm.$(window).resize(this.onResize);for(b in jvm.Map.apiEvents)this.params[b]&&this.container.bind(jvm.Map.apiEvents[b]+".jvectormap",this.params[b]);this.canvas=new jvm.VectorCanvas(this.container[0],this.width,this.height),("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&this.params.bindTouchEvents&&this.bindContainerTouchEvents(),this.bindContainerEvents(),this.bindElementEvents(),this.createTip(),this.params.zoomButtons&&this.bindZoomButtons(),this.createRegions(),this.createMarkers(this.params.markers||{}),this.updateSize(),this.params.focusOn&&("string"==typeof this.params.focusOn?this.params.focusOn={region:this.params.focusOn}:jvm.$.isArray(this.params.focusOn)&&(this.params.focusOn={regions:this.params.focusOn}),this.setFocus(this.params.focusOn)),this.params.selectedRegions&&this.setSelectedRegions(this.params.selectedRegions),this.params.selectedMarkers&&this.setSelectedMarkers(this.params.selectedMarkers),this.legendCntHorizontal=jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-h"),this.legendCntVertical=jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-v"),this.container.append(this.legendCntHorizontal),this.container.append(this.legendCntVertical),this.params.series&&this.createSeries()},jvm.Map.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,setBackgroundColor:function(a){this.container.css("background-color",a)},resize:function(){var a=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/a,this.transX*=this.baseScale/a,this.transY*=this.baseScale/a},updateSize:function(){this.width=this.container.width(),this.height=this.container.height(),this.resize(),this.canvas.setSize(this.width,this.height),this.applyTransform()},reset:function(){var a,b;for(a in this.series)for(b=0;b<this.series[a].length;b++)this.series[a][b].clear();this.scale=this.baseScale,this.transX=this.baseTransX,this.transY=this.baseTransY,this.applyTransform()},applyTransform:function(){var a,b,c,d;this.defaultWidth*this.scale<=this.width?(a=(this.width-this.defaultWidth*this.scale)/(2*this.scale),c=(this.width-this.defaultWidth*this.scale)/(2*this.scale)):(a=0,c=(this.width-this.defaultWidth*this.scale)/this.scale),this.defaultHeight*this.scale<=this.height?(b=(this.height-this.defaultHeight*this.scale)/(2*this.scale),d=(this.height-this.defaultHeight*this.scale)/(2*this.scale)):(b=0,d=(this.height-this.defaultHeight*this.scale)/this.scale),this.transY>b?this.transY=b:this.transY<d&&(this.transY=d),this.transX>a?this.transX=a:this.transX<c&&(this.transX=c),this.canvas.applyTransformParams(this.scale,this.transX,this.transY),this.markers&&this.repositionMarkers(),this.repositionLabels(),this.container.trigger("viewportChange",[this.scale/this.baseScale,this.transX,this.transY])},bindContainerEvents:function(){var a,b,c=!1,d=this;this.params.panOnDrag&&(this.container.mousemove(function(e){return c&&(d.transX-=(a-e.pageX)/d.scale,d.transY-=(b-e.pageY)/d.scale,d.applyTransform(),a=e.pageX,b=e.pageY),!1}).mousedown(function(d){return c=!0,a=d.pageX,b=d.pageY,!1}),this.onContainerMouseUp=function(){c=!1},jvm.$("body").mouseup(this.onContainerMouseUp)),this.params.zoomOnScroll&&this.container.mousewheel(function(a){var b=jvm.$(d.container).offset(),c=a.pageX-b.left,e=a.pageY-b.top,f=Math.pow(1.003,a.deltaY);d.tip.hide(),d.setScale(d.scale*f,c,e),a.preventDefault()})},bindContainerTouchEvents:function(){var a,b,c,d,e,f,g,h=this,i=function(i){var j,k,l,m,n=i.originalEvent.touches;"touchstart"==i.type&&(g=0),1==n.length?(1==g&&(l=h.transX,m=h.transY,h.transX-=(c-n[0].pageX)/h.scale,h.transY-=(d-n[0].pageY)/h.scale,h.applyTransform(),h.tip.hide(),(l!=h.transX||m!=h.transY)&&i.preventDefault()),c=n[0].pageX,d=n[0].pageY):2==n.length&&(2==g?(k=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))/b,h.setScale(a*k,e,f),h.tip.hide(),i.preventDefault()):(j=jvm.$(h.container).offset(),e=n[0].pageX>n[1].pageX?n[1].pageX+(n[0].pageX-n[1].pageX)/2:n[0].pageX+(n[1].pageX-n[0].pageX)/2,f=n[0].pageY>n[1].pageY?n[1].pageY+(n[0].pageY-n[1].pageY)/2:n[0].pageY+(n[1].pageY-n[0].pageY)/2,e-=j.left,f-=j.top,a=h.scale,b=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2)))),g=n.length};jvm.$(this.container).bind("touchstart",i),jvm.$(this.container).bind("touchmove",i)},bindElementEvents:function(){var a,b=this;this.container.mousemove(function(){a=!0}),this.container.delegate("[class~='jvectormap-element']","mouseover mouseout",function(a){var c=jvm.$(this).attr("class").baseVal||jvm.$(this).attr("class"),d=-1===c.indexOf("jvectormap-region")?"marker":"region",e=jvm.$(this).attr("region"==d?"data-code":"data-index"),f="region"==d?b.regions[e].element:b.markers[e].element,g="region"==d?b.mapData.paths[e].name:b.markers[e].config.name||"",h=jvm.$.Event(d+"TipShow.jvectormap"),i=jvm.$.Event(d+"Over.jvectormap");"mouseover"==a.type?(b.container.trigger(i,[e]),i.isDefaultPrevented()||f.setHovered(!0),b.tip.text(g),b.container.trigger(h,[b.tip,e]),h.isDefaultPrevented()||(b.tip.show(),b.tipWidth=b.tip.width(),b.tipHeight=b.tip.height())):(f.setHovered(!1),b.tip.hide(),b.container.trigger(d+"Out.jvectormap",[e]))}),this.container.delegate("[class~='jvectormap-element']","mousedown",function(){a=!1}),this.container.delegate("[class~='jvectormap-element']","mouseup",function(){var c=jvm.$(this).attr("class").baseVal?jvm.$(this).attr("class").baseVal:jvm.$(this).attr("class"),d=-1===c.indexOf("jvectormap-region")?"marker":"region",e=jvm.$(this).attr("region"==d?"data-code":"data-index"),f=jvm.$.Event(d+"Click.jvectormap"),g="region"==d?b.regions[e].element:b.markers[e].element;a||(b.container.trigger(f,[e]),("region"===d&&b.params.regionsSelectable||"marker"===d&&b.params.markersSelectable)&&(f.isDefaultPrevented()||(b.params[d+"sSelectableOne"]&&b.clearSelected(d+"s"),
|
6 |
-
g.setSelected(!g.isSelected))))})},bindZoomButtons:function(){var a=this;jvm.$("<div/>").addClass("jvectormap-zoomin").text("+").appendTo(this.container),jvm.$("<div/>").addClass("jvectormap-zoomout").html("−").appendTo(this.container),this.container.find(".jvectormap-zoomin").click(function(){a.setScale(a.scale*a.params.zoomStep,a.width/2,a.height/2,!1,a.params.zoomAnimate)}),this.container.find(".jvectormap-zoomout").click(function(){a.setScale(a.scale/a.params.zoomStep,a.width/2,a.height/2,!1,a.params.zoomAnimate)})},createTip:function(){var a=this;this.tip=jvm.$("<div/>").addClass("jvectormap-tip").appendTo(jvm.$("body")),this.container.mousemove(function(b){var c=b.pageX-15-a.tipWidth,d=b.pageY-15-a.tipHeight;5>c&&(c=b.pageX+15),5>d&&(d=b.pageY+15),a.tip.is(":visible")&&a.tip.css({left:c,top:d})})},setScale:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o=jvm.$.Event("zoom.jvectormap"),p=this,q=0,r=Math.abs(Math.round(60*(a-this.scale)/Math.max(a,this.scale))),s=new jvm.$.Deferred;return a>this.params.zoomMax*this.baseScale?a=this.params.zoomMax*this.baseScale:a<this.params.zoomMin*this.baseScale&&(a=this.params.zoomMin*this.baseScale),"undefined"!=typeof b&&"undefined"!=typeof c&&(zoomStep=a/this.scale,d?(m=b+this.defaultWidth*(this.width/(this.defaultWidth*a))/2,n=c+this.defaultHeight*(this.height/(this.defaultHeight*a))/2):(m=this.transX-(zoomStep-1)/a*b,n=this.transY-(zoomStep-1)/a*c)),e&&r>0?(g=this.scale,h=(a-g)/r,i=this.transX*this.scale,k=this.transY*this.scale,j=(m*a-i)/r,l=(n*a-k)/r,f=setInterval(function(){q+=1,p.scale=g+h*q,p.transX=(i+j*q)/p.scale,p.transY=(k+l*q)/p.scale,p.applyTransform(),q==r&&(clearInterval(f),p.container.trigger(o,[a/p.baseScale]),s.resolve())},10)):(this.transX=m,this.transY=n,this.scale=a,this.applyTransform(),this.container.trigger(o,[a/this.baseScale]),s.resolve()),s},setFocus:function(a){var b,c,d,e,f,g;if(a=a||{},a.region?e=[a.region]:a.regions&&(e=a.regions),e){for(f=0;f<e.length;f++)this.regions[e[f]]&&(c=this.regions[e[f]].element.shape.getBBox(),c&&("undefined"==typeof b?b=c:(d={x:Math.min(b.x,c.x),y:Math.min(b.y,c.y),width:Math.max(b.x+b.width,c.x+c.width)-Math.min(b.x,c.x),height:Math.max(b.y+b.height,c.y+c.height)-Math.min(b.y,c.y)},b=d)));return this.setScale(Math.min(this.width/b.width,this.height/b.height),-(b.x+b.width/2),-(b.y+b.height/2),!0,a.animate)}return a.lat&&a.lng?(g=this.latLngToPoint(a.lat,a.lng),a.x=this.transX-g.x/this.scale,a.y=this.transY-g.y/this.scale,console.log(a.x,a.y)):a.x&&a.y&&(a.x*=-this.defaultWidth,a.y*=-this.defaultHeight),this.setScale(a.scale*this.baseScale,a.x,a.y,!0,a.animate)},getSelected:function(a){var b,c=[];for(b in this[a])this[a][b].element.isSelected&&c.push(b);return c},getSelectedRegions:function(){return this.getSelected("regions")},getSelectedMarkers:function(){return this.getSelected("markers")},setSelected:function(a,b){var c;if("object"!=typeof b&&(b=[b]),jvm.$.isArray(b))for(c=0;c<b.length;c++)this[a][b[c]].element.setSelected(!0);else for(c in b)this[a][c].element.setSelected(!!b[c])},setSelectedRegions:function(a){this.setSelected("regions",a)},setSelectedMarkers:function(a){this.setSelected("markers",a)},clearSelected:function(a){var b,c={},d=this.getSelected(a);for(b=0;b<d.length;b++)c[d[b]]=!1;this.setSelected(a,c)},clearSelectedRegions:function(){this.clearSelected("regions")},clearSelectedMarkers:function(){this.clearSelected("markers")},getMapObject:function(){return this},getRegionName:function(a){return this.mapData.paths[a].name},createRegions:function(){var a,b,c=this;this.regionLabelsGroup=this.regionLabelsGroup||this.canvas.addGroup();for(a in this.mapData.paths)b=new jvm.Region({map:this,path:this.mapData.paths[a].path,code:a,style:jvm.$.extend(!0,{},this.params.regionStyle),labelStyle:jvm.$.extend(!0,{},this.params.regionLabelStyle),canvas:this.canvas,labelsGroup:this.regionLabelsGroup,label:"vml"!=this.canvas.mode?this.params.labels&&this.params.labels.regions:null}),jvm.$(b.shape).bind("selected",function(a,b){c.container.trigger("regionSelected.jvectormap",[jvm.$(this.node).attr("data-code"),b,c.getSelectedRegions()])}),this.regions[a]={element:b,config:this.mapData.paths[a]}},createMarkers:function(a){var b,c,d,e,f,g=this;if(this.markersGroup=this.markersGroup||this.canvas.addGroup(),this.markerLabelsGroup=this.markerLabelsGroup||this.canvas.addGroup(),jvm.$.isArray(a))for(f=a.slice(),a={},b=0;b<f.length;b++)a[b]=f[b];for(b in a)e=a[b]instanceof Array?{latLng:a[b]}:a[b],d=this.getMarkerPosition(e),d!==!1&&(c=new jvm.Marker({map:this,style:jvm.$.extend(!0,{},this.params.markerStyle,{initial:e.style||{}}),labelStyle:jvm.$.extend(!0,{},this.params.markerLabelStyle),index:b,cx:d.x,cy:d.y,group:this.markersGroup,canvas:this.canvas,labelsGroup:this.markerLabelsGroup,label:"vml"!=this.canvas.mode?this.params.labels&&this.params.labels.markers:null}),jvm.$(c.shape).bind("selected",function(a,b){g.container.trigger("markerSelected.jvectormap",[jvm.$(this.node).attr("data-index"),b,g.getSelectedMarkers()])}),this.markers[b]&&this.removeMarkers([b]),this.markers[b]={element:c,config:e})},repositionMarkers:function(){var a,b;for(a in this.markers)b=this.getMarkerPosition(this.markers[a].config),b!==!1&&this.markers[a].element.setStyle({cx:b.x,cy:b.y})},repositionLabels:function(){var a;for(a in this.regions)this.regions[a].element.updateLabelPosition();for(a in this.markers)this.markers[a].element.updateLabelPosition()},getMarkerPosition:function(a){return jvm.Map.maps[this.params.map].projection?this.latLngToPoint.apply(this,a.latLng||[0,0]):{x:a.coords[0]*this.scale+this.transX*this.scale,y:a.coords[1]*this.scale+this.transY*this.scale}},addMarker:function(a,b,c){var d,e,f={},g=[],c=c||[];for(f[a]=b,e=0;e<c.length;e++)d={},d[a]=c[e],g.push(d);this.addMarkers(f,g)},addMarkers:function(a,b){var c;for(b=b||[],this.createMarkers(a),c=0;c<b.length;c++)this.series.markers[c].setValues(b[c]||{})},removeMarkers:function(a){var b;for(b=0;b<a.length;b++)this.markers[a[b]].element.remove(),delete this.markers[a[b]]},removeAllMarkers:function(){var a,b=[];for(a in this.markers)b.push(a);this.removeMarkers(b)},latLngToPoint:function(a,b){var c,d,e,f=jvm.Map.maps[this.params.map].projection,g=f.centralMeridian;return-180+g>b&&(b+=360),c=jvm.Proj[f.type](a,b,g),d=this.getInsetForPoint(c.x,c.y),d?(e=d.bbox,c.x=(c.x-e[0].x)/(e[1].x-e[0].x)*d.width*this.scale,c.y=(c.y-e[0].y)/(e[1].y-e[0].y)*d.height*this.scale,{x:c.x+this.transX*this.scale+d.left*this.scale,y:c.y+this.transY*this.scale+d.top*this.scale}):!1},pointToLatLng:function(a,b){var c,d,e,f,g,h=jvm.Map.maps[this.params.map].projection,i=h.centralMeridian,j=jvm.Map.maps[this.params.map].insets;for(c=0;c<j.length;c++)if(d=j[c],e=d.bbox,f=a-(this.transX*this.scale+d.left*this.scale),g=b-(this.transY*this.scale+d.top*this.scale),f=f/(d.width*this.scale)*(e[1].x-e[0].x)+e[0].x,g=g/(d.height*this.scale)*(e[1].y-e[0].y)+e[0].y,f>e[0].x&&f<e[1].x&&g>e[0].y&&g<e[1].y)return jvm.Proj[h.type+"_inv"](f,-g,i);return!1},getInsetForPoint:function(a,b){var c,d,e=jvm.Map.maps[this.params.map].insets;for(c=0;c<e.length;c++)if(d=e[c].bbox,a>d[0].x&&a<d[1].x&&b>d[0].y&&b<d[1].y)return e[c]},createSeries:function(){var a,b;this.series={markers:[],regions:[]};for(b in this.params.series)for(a=0;a<this.params.series[b].length;a++)this.series[b][a]=new jvm.DataSeries(this.params.series[b][a],this[b],this)},remove:function(){this.tip.remove(),this.container.remove(),jvm.$(window).unbind("resize",this.onResize),jvm.$("body").unbind("mouseup",this.onContainerMouseUp)}},jvm.Map.maps={},jvm.Map.defaultParams={map:"world_mill_en",backgroundColor:"#505050",zoomButtons:!0,zoomOnScroll:!0,panOnDrag:!0,zoomMax:8,zoomMin:1,zoomStep:1.6,zoomAnimate:!0,regionsSelectable:!1,markersSelectable:!1,bindTouchEvents:!0,regionStyle:{initial:{fill:"white","fill-opacity":1,stroke:"none","stroke-width":0,"stroke-opacity":1},hover:{"fill-opacity":.8,cursor:"pointer"},selected:{fill:"yellow"},selectedHover:{}},regionLabelStyle:{initial:{"font-family":"Verdana","font-size":"12","font-weight":"bold",cursor:"default",fill:"black"},hover:{cursor:"pointer"}},markerStyle:{initial:{fill:"grey",stroke:"#505050","fill-opacity":1,"stroke-width":1,"stroke-opacity":1,r:5},hover:{stroke:"black","stroke-width":2,cursor:"pointer"},selected:{fill:"blue"},selectedHover:{}},markerLabelStyle:{initial:{"font-family":"Verdana","font-size":"12","font-weight":"bold",cursor:"default",fill:"black"},hover:{cursor:"pointer"}}},jvm.Map.apiEvents={onRegionTipShow:"regionTipShow",onRegionOver:"regionOver",onRegionOut:"regionOut",onRegionClick:"regionClick",onRegionSelected:"regionSelected",onMarkerTipShow:"markerTipShow",onMarkerOver:"markerOver",onMarkerOut:"markerOut",onMarkerClick:"markerClick",onMarkerSelected:"markerSelected",onViewportChange:"viewportChange"},jQuery.fn.vectorMap("addMap","world_mill_en",{insets:[{width:900,top:0,height:440.70631074413296,bbox:[{y:-12671671.123330014,x:-20004297.151525836},{y:6930392.025135122,x:20026572.39474939}],left:0}],paths:{BD:{path:"M651.84,230.21l-0.6,-2.0l-1.36,-1.71l-2.31,-0.11l-0.41,0.48l0.2,0.94l-0.53,0.99l-0.72,-0.36l-0.68,0.35l-1.2,-0.36l-0.37,-2.0l-0.81,-1.86l0.39,-1.46l-0.22,-0.47l-1.14,-0.53l0.29,-0.5l1.48,-0.94l0.03,-0.65l-1.55,-1.22l0.55,-1.14l1.61,0.94l1.04,0.15l0.18,1.54l0.34,0.35l5.64,0.63l-0.84,1.64l-1.22,0.34l-0.77,1.51l0.07,0.47l1.37,1.37l0.67,-0.19l0.42,-1.39l1.21,3.84l-0.03,1.21l-0.33,-0.15l-0.4,0.28Z",name:"Bangladesh"},BE:{path:"M429.29,144.05l1.91,0.24l2.1,-0.63l2.63,1.99l-0.21,1.66l-0.69,0.4l-0.18,1.2l-1.66,-1.13l-1.39,0.15l-2.73,-2.7l-1.17,-0.18l-0.16,-0.52l1.54,-0.5Z",name:"Belgium"},BF:{path:"M421.42,247.64l-0.11,0.95l0.34,1.16l1.4,1.71l0.07,1.1l0.32,0.37l2.55,0.51l-0.04,1.28l-0.38,0.53l-1.07,0.21l-0.72,1.18l-0.63,0.21l-3.22,-0.25l-0.94,0.39l-5.4,-0.05l-0.39,0.38l0.16,2.73l-1.23,-0.43l-1.17,0.1l-0.89,0.57l-2.27,-1.72l-0.13,-1.11l0.61,-0.96l0.02,-0.93l1.87,-1.98l0.44,-1.81l0.43,-0.39l1.28,0.26l1.05,-0.52l0.47,-0.73l1.84,-1.09l0.55,-0.83l2.2,-1.0l1.15,-0.3l0.72,0.45l1.13,-0.01Z",name:"Burkina Faso"},BG:{path:"M491.65,168.18l-0.86,0.88l-0.91,2.17l0.48,1.34l-1.6,-0.24l-2.55,0.95l-0.28,1.51l-1.8,0.22l-2.0,-1.0l-1.92,0.79l-1.42,-0.07l-0.15,-1.63l-1.05,-0.97l0.0,-0.8l1.2,-1.57l0.01,-0.56l-1.14,-1.23l-0.05,-0.94l0.88,0.97l0.88,-0.2l1.91,0.47l3.68,0.16l1.42,-0.81l2.72,-0.66l2.55,1.24Z",name:"Bulgaria"},BA:{path:"M463.49,163.65l2.1,0.5l1.72,-0.03l1.52,0.68l-0.36,0.78l0.08,0.45l1.04,1.02l-0.25,0.98l-1.81,1.15l-0.38,1.38l-1.67,-0.87l-0.89,-1.2l-2.11,-1.83l-1.63,-2.22l0.23,-0.57l0.48,0.38l0.55,-0.06l0.43,-0.51l0.94,-0.06Z",name:"Bosnia and Herz."},BN:{path:"M707.48,273.58l0.68,-0.65l1.41,-0.91l-0.15,1.63l-0.81,-0.05l-0.61,0.58l-0.53,-0.6Z",name:"Brunei"},BO:{path:"M263.83,340.69l-3.09,-0.23l-0.38,0.23l-0.7,1.52l-1.31,-1.53l-3.28,-0.64l-2.37,2.4l-1.31,0.26l-0.88,-3.26l-1.3,-2.86l0.74,-2.37l-0.13,-0.43l-1.2,-1.01l-0.37,-1.89l-1.08,-1.55l1.45,-2.56l-0.96,-2.33l0.47,-1.06l-0.34,-0.73l0.91,-1.32l0.16,-3.84l0.5,-1.18l-1.81,-3.41l2.46,0.07l0.8,-0.85l3.4,-1.91l2.66,-0.35l-0.19,1.38l0.3,1.07l-0.05,1.97l2.72,2.27l2.88,0.49l0.89,0.86l1.79,0.58l0.98,0.7l1.71,0.05l1.17,0.61l0.6,2.7l-0.7,0.54l0.96,2.99l0.37,0.28l4.3,0.1l-0.25,1.2l0.27,1.02l1.43,0.9l0.5,1.35l-0.41,1.86l-0.65,1.08l0.12,1.35l-2.69,-1.65l-2.4,-0.03l-4.36,0.76l-1.49,2.5l-0.11,1.52l-0.75,2.37Z",name:"Bolivia"},JP:{path:"M781.12,166.87l1.81,0.68l1.62,-0.97l0.39,2.42l-3.35,0.75l-2.23,2.88l-3.63,-1.9l-0.56,0.2l-1.26,3.05l-2.16,0.03l-0.29,-2.51l1.08,-2.03l2.45,-0.16l0.37,-0.33l1.25,-5.94l2.47,2.71l2.03,1.12ZM773.56,187.34l-0.91,2.22l0.37,1.52l-1.14,1.75l-3.02,1.26l-4.58,0.27l-3.34,3.01l-1.25,-0.8l-0.09,-1.9l-0.46,-0.38l-4.35,0.62l-3.0,1.32l-2.85,0.05l-0.37,0.27l0.13,0.44l2.32,1.89l-1.54,4.34l-1.26,0.9l-0.79,-0.7l0.56,-2.27l-0.21,-0.45l-1.47,-0.75l-0.74,-1.4l2.12,-0.84l1.26,-1.7l2.45,-1.42l1.83,-1.91l4.78,-0.81l2.6,0.57l0.44,-0.21l2.39,-4.66l1.29,1.06l0.5,0.01l5.1,-4.02l1.69,-3.73l-0.38,-3.4l0.9,-1.61l2.14,-0.44l1.23,3.72l-0.07,2.18l-2.23,2.84l-0.04,3.16ZM757.78,196.26l0.19,0.56l-1.01,1.21l-1.16,-0.68l-1.28,0.65l-0.69,1.45l-1.02,-0.5l0.01,-0.93l1.14,-1.38l1.57,0.14l0.85,-0.98l1.4,0.46Z",name:"Japan"},BI:{path:"M495.45,295.49l-1.08,-2.99l1.14,-0.11l0.64,-1.19l0.76,0.09l0.65,1.83l-2.1,2.36Z",name:"Burundi"},BJ:{path:"M429.57,255.75l-0.05,0.8l0.5,1.34l-0.42,0.86l0.17,0.79l-1.81,2.12l-0.57,1.76l-0.08,5.42l-1.41,0.2l-0.48,-1.36l0.11,-5.71l-0.52,-0.7l-0.2,-1.35l-1.48,-1.48l0.21,-0.9l0.89,-0.43l0.42,-0.92l1.27,-0.36l1.22,-1.34l0.61,-0.0l1.62,1.24Z",name:"Benin"},BT:{path:"M650.32,213.86l0.84,0.71l-0.12,1.1l-3.76,-0.11l-1.57,0.4l-1.93,-0.87l1.48,-1.96l1.13,-0.57l1.63,0.57l1.33,0.08l0.99,0.65Z",name:"Bhutan"},JM:{path:"M228.38,239.28l-0.8,0.4l-2.26,-1.06l0.84,-0.23l2.14,0.3l1.17,0.56l-1.08,0.03Z",name:"Jamaica"},BW:{path:"M483.92,330.07l2.27,4.01l2.83,2.86l0.96,0.31l0.78,2.43l2.13,0.61l1.02,0.76l-3.0,1.64l-2.32,2.02l-1.54,2.69l-1.52,0.45l-0.64,1.94l-1.34,0.52l-1.85,-0.12l-1.21,-0.74l-1.35,-0.3l-1.22,0.62l-0.75,1.37l-2.31,1.9l-1.4,0.21l-0.35,-0.59l0.16,-1.75l-1.48,-2.54l-0.62,-0.43l-0.0,-7.1l2.08,-0.08l0.39,-0.4l0.07,-8.9l5.19,-0.93l0.8,0.89l0.51,0.07l1.5,-0.95l2.21,-0.49Z",name:"Botswana"},BR:{path:"M259.98,275.05l3.24,0.7l0.65,-0.53l4.55,-1.32l1.08,-1.06l-0.02,-0.63l0.55,-0.05l0.28,0.28l-0.26,0.87l0.22,0.48l0.73,0.32l0.4,0.81l-0.62,0.86l-0.4,2.13l0.82,2.56l1.69,1.43l1.43,0.2l3.17,-1.68l3.18,0.3l0.65,-0.75l-0.27,-0.92l1.9,-0.09l2.39,0.99l1.06,-0.61l0.84,0.78l1.2,-0.18l1.18,-1.06l0.84,-1.94l1.36,-2.11l0.37,-0.05l1.89,5.45l1.33,0.59l0.05,1.28l-1.77,1.94l0.02,0.56l1.02,0.87l4.07,0.36l0.08,2.16l0.66,0.29l1.74,-1.5l6.97,2.32l1.02,1.22l-0.35,1.18l0.49,0.5l2.81,-0.74l4.77,1.3l3.75,-0.08l3.57,2.0l3.29,2.86l1.93,0.72l2.12,0.12l0.71,0.62l1.21,4.51l-0.95,3.98l-4.72,5.06l-1.64,2.92l-1.72,2.05l-0.8,0.3l-0.72,2.03l0.18,4.75l-0.94,5.53l-0.81,1.13l-0.43,3.36l-2.55,3.5l-0.4,2.51l-1.86,1.04l-0.67,1.53l-2.54,0.01l-3.94,1.01l-1.83,1.2l-2.87,0.82l-3.03,2.19l-2.2,2.83l-0.36,2.0l0.4,1.58l-0.44,2.6l-0.51,1.2l-1.77,1.54l-2.75,4.78l-3.83,3.42l-1.24,2.74l-1.18,1.15l-0.36,-0.83l0.95,-1.14l0.01,-0.5l-1.52,-1.97l-4.56,-3.32l-1.03,-0.0l-2.38,-2.02l-0.81,-0.0l5.34,-5.45l3.77,-2.58l0.22,-2.46l-1.35,-1.81l-0.91,0.07l0.58,-2.33l0.01,-1.54l-1.11,-0.83l-1.75,0.3l-0.44,-3.11l-0.52,-0.95l-1.88,-0.88l-1.24,0.47l-2.17,-0.41l0.15,-3.21l-0.62,-1.34l0.66,-0.73l-0.22,-1.34l0.66,-1.13l0.44,-2.04l-0.61,-1.83l-1.4,-0.86l-0.2,-0.75l0.34,-1.39l-0.38,-0.5l-4.52,-0.1l-0.72,-2.22l0.59,-0.42l-0.03,-1.1l-0.5,-0.87l-0.32,-1.7l-1.45,-0.76l-1.63,-0.02l-1.05,-0.72l-1.6,-0.48l-1.13,-0.99l-2.69,-0.4l-2.47,-2.06l0.13,-4.35l-0.45,-0.45l-3.46,0.5l-3.44,1.94l-0.6,0.74l-2.9,-0.17l-1.47,0.42l-0.72,-0.18l0.15,-3.52l-0.63,-0.34l-1.94,1.41l-1.87,-0.06l-0.83,-1.18l-1.37,-0.26l0.21,-1.01l-1.35,-1.49l-0.88,-1.91l0.56,-0.6l-0.0,-0.81l1.29,-0.62l0.22,-0.43l-0.22,-1.19l0.61,-0.91l0.15,-0.99l2.65,-1.58l1.99,-0.47l0.42,-0.36l2.06,0.11l0.42,-0.33l1.19,-8.0l-0.41,-1.56l-1.1,-1.0l0.01,-1.33l1.91,-0.42l0.08,-0.96l-0.33,-0.43l-1.14,-0.2l-0.02,-0.83l4.47,0.05l0.82,-0.67l0.82,1.81l0.8,0.07l1.15,1.1l2.26,-0.05l0.71,-0.83l2.78,-0.96l0.48,-1.13l1.6,-0.64l0.24,-0.47l-0.48,-0.82l-1.83,-0.19l-0.36,-3.22Z",name:"Brazil"},BS:{path:"M226.4,223.87l-0.48,-1.15l-0.84,-0.75l0.36,-1.11l0.95,1.95l0.01,1.06ZM225.56,216.43l-1.87,0.29l-0.04,-0.22l0.74,-0.14l1.17,0.06Z",name:"Bahamas"},BY:{path:"M493.84,128.32l0.29,0.7l0.49,0.23l1.19,-0.38l2.09,0.72l0.19,1.26l-0.45,1.24l1.57,2.26l0.89,0.59l0.17,0.81l1.58,0.56l0.4,0.5l-0.53,0.41l-1.87,-0.11l-0.73,0.38l-0.13,0.52l1.04,2.74l-1.91,0.26l-0.89,0.99l-0.11,1.18l-2.73,-0.04l-0.53,-0.62l-0.52,-0.08l-0.75,0.46l-0.91,-0.42l-1.92,-0.07l-2.75,-0.79l-2.6,-0.28l-2.0,0.07l-1.5,0.92l-0.67,0.07l-0.08,-1.22l-0.59,-1.19l1.36,-0.88l0.01,-1.35l-0.7,-1.41l-0.07,-1.0l2.16,-0.02l2.72,-1.3l0.75,-2.04l1.91,-1.04l0.2,-0.41l-0.19,-1.25l3.8,-1.78l2.3,0.77Z",name:"Belarus"},BZ:{path:"M198.03,244.38l0.1,-4.49l0.69,-0.06l0.74,-1.3l0.34,0.28l-0.4,1.3l0.17,0.58l-0.34,2.25l-1.3,1.42Z",name:"Belize"},RU:{path:"M491.55,115.25l2.55,-1.85l-0.01,-0.65l-2.2,-1.5l7.32,-6.76l1.03,-2.11l-0.13,-0.49l-3.46,-2.52l0.86,-2.7l-2.11,-2.81l1.56,-3.67l-2.77,-4.52l2.15,-2.99l-0.08,-0.55l-3.65,-2.73l0.3,-2.54l1.81,-0.37l4.26,-1.77l2.42,-1.45l4.06,2.61l6.79,1.04l9.34,4.85l1.78,1.88l0.14,2.46l-2.55,2.02l-3.9,1.06l-11.07,-3.14l-2.06,0.53l-0.13,0.7l3.94,2.94l0.31,5.86l0.26,0.36l5.14,2.24l0.58,-0.29l0.32,-1.94l-1.35,-1.78l1.13,-1.09l6.13,2.42l2.11,-0.98l0.18,-0.56l-1.51,-2.67l5.41,-3.76l2.07,0.22l2.26,1.41l0.57,-0.16l1.46,-2.87l-0.05,-0.44l-1.92,-2.32l1.12,-2.32l-1.32,-2.27l5.87,1.16l1.04,1.75l-2.59,0.43l-0.33,0.4l0.02,2.36l2.46,1.83l3.87,-0.91l0.86,-2.8l13.69,-5.65l0.99,0.11l-1.92,2.06l0.23,0.67l3.11,0.45l2.0,-1.48l4.56,-0.12l3.64,-1.73l2.65,2.44l0.56,-0.01l2.85,-2.88l-0.01,-0.57l-2.35,-2.29l0.9,-1.01l7.14,1.3l3.41,1.36l9.05,4.97l0.51,-0.11l1.67,-2.27l-0.05,-0.53l-2.43,-2.21l-0.06,-0.78l-0.34,-0.36l-2.52,-0.36l0.64,-1.93l-1.32,-3.46l-0.06,-1.21l4.48,-4.06l1.69,-4.29l1.6,-0.81l6.23,1.18l0.44,2.21l-2.29,3.64l0.06,0.5l1.47,1.39l0.76,3.0l-0.56,6.03l2.69,2.82l-0.96,2.57l-4.86,5.95l0.23,0.64l2.86,0.61l0.42,-0.17l0.93,-1.4l2.64,-1.03l0.87,-2.24l2.09,-1.96l0.07,-0.5l-1.36,-2.28l1.09,-2.69l-0.32,-0.55l-2.47,-0.33l-0.5,-2.06l1.94,-4.38l-0.06,-0.42l-2.96,-3.4l4.12,-2.88l0.16,-0.4l-0.51,-2.93l0.54,-0.05l1.13,2.25l-0.96,4.35l0.27,0.47l2.68,0.84l0.5,-0.51l-1.02,-2.99l3.79,-1.66l5.01,-0.24l4.53,2.61l0.48,-0.06l0.07,-0.48l-2.18,-3.82l-0.23,-4.67l3.98,-0.9l5.97,0.21l5.49,-0.64l0.27,-0.65l-1.83,-2.31l2.56,-2.9l2.87,-0.17l4.8,-2.47l6.54,-0.67l1.03,-1.42l6.25,-0.45l2.32,1.11l5.53,-2.7l4.5,0.08l0.39,-0.28l0.66,-2.15l2.26,-2.12l5.69,-2.11l3.21,1.29l-2.46,0.94l-0.25,0.42l0.34,0.35l5.41,0.77l0.61,2.33l0.58,0.25l2.2,-1.22l7.13,0.07l5.51,2.47l1.79,1.72l-0.53,2.24l-9.16,4.15l-1.97,1.52l0.16,0.71l6.77,1.91l2.16,-0.78l1.13,2.74l0.67,0.11l1.01,-1.15l3.81,-0.73l7.7,0.77l0.54,1.99l0.36,0.29l10.47,0.71l0.43,-0.38l0.13,-3.23l4.87,0.78l3.95,-0.02l3.83,2.4l1.03,2.71l-1.35,1.79l0.02,0.5l3.15,3.64l4.07,1.96l0.53,-0.18l2.23,-4.47l3.95,1.93l4.16,-1.21l4.73,1.39l2.05,-1.26l3.94,0.62l0.43,-0.55l-1.68,-4.02l2.89,-1.8l22.31,3.03l2.16,2.75l6.55,3.51l10.29,-0.81l4.82,0.73l1.85,1.66l-0.29,3.08l0.25,0.41l3.08,1.26l3.56,-0.88l4.35,-0.11l4.8,0.87l4.57,-0.47l4.23,3.79l0.43,0.07l3.1,-1.4l0.16,-0.6l-1.88,-2.62l0.85,-1.52l7.71,1.21l5.22,-0.26l7.09,2.09l9.59,5.22l6.35,4.11l-0.2,2.38l1.88,1.41l0.6,-0.42l-0.48,-2.53l6.15,0.57l4.4,3.51l-1.97,1.43l-4.0,0.41l-0.36,0.39l-0.06,3.79l-0.74,0.62l-2.07,-0.11l-1.91,-1.39l-3.14,-1.11l-0.78,-1.85l-2.72,-0.68l-2.63,0.49l-1.04,-1.1l0.46,-1.31l-0.5,-0.51l-3.0,0.98l-0.22,0.58l0.99,1.7l-1.21,1.48l-3.04,1.68l-3.12,-0.28l-0.4,0.23l0.09,0.46l2.2,2.09l1.46,3.2l1.15,1.1l0.24,1.33l-0.42,0.67l-4.63,-0.77l-6.96,2.9l-2.19,0.44l-7.6,5.06l-0.84,1.45l-3.61,-2.37l-6.24,2.82l-0.94,-1.15l-0.53,-0.08l-2.28,1.52l-3.2,-0.49l-0.44,0.27l-0.78,2.37l-3.05,3.78l0.09,1.47l0.29,0.36l2.54,0.72l-0.29,4.53l-1.97,0.11l-0.35,0.26l-1.07,2.94l0.8,1.45l-3.91,1.58l-1.05,3.95l-3.48,0.77l-0.3,0.3l-0.72,3.29l-3.09,2.65l-0.7,-1.74l-2.44,-12.44l1.16,-4.71l2.04,-2.06l0.22,-1.64l3.8,-0.86l4.46,-4.61l4.28,-3.81l4.48,-3.01l2.17,-5.63l-0.42,-0.54l-3.04,0.33l-1.77,3.31l-5.86,3.86l-1.86,-4.25l-0.45,-0.23l-6.46,1.3l-6.47,6.44l-0.01,0.55l1.58,1.74l-8.24,1.17l0.15,-2.2l-0.34,-0.42l-3.89,-0.56l-3.25,1.81l-7.62,-0.62l-8.45,1.19l-17.71,15.41l0.22,0.7l3.74,0.41l1.36,2.17l2.43,0.76l1.88,-1.68l2.4,0.2l3.4,3.54l0.08,2.6l-1.95,3.42l-0.21,3.9l-1.1,5.06l-3.71,4.54l-0.87,2.21l-8.29,8.89l-3.19,1.7l-1.32,0.03l-1.45,-1.36l-0.49,-0.04l-2.27,1.5l0.41,-3.65l-0.59,-2.47l1.75,-0.89l2.91,0.53l0.42,-0.2l1.68,-3.03l0.87,-3.46l0.97,-1.18l1.32,-2.88l-0.45,-0.56l-4.14,0.95l-2.19,1.25l-3.41,-0.0l-1.06,-2.93l-2.97,-2.3l-4.28,-1.06l-1.75,-5.07l-2.66,-5.01l-2.29,-1.29l-3.75,-1.01l-3.44,0.08l-3.18,0.62l-2.24,1.77l0.05,0.66l1.18,0.69l0.02,1.43l-1.33,1.05l-2.26,3.51l-0.04,1.43l-3.16,1.84l-2.82,-1.16l-3.01,0.23l-1.35,-1.07l-1.5,-0.35l-3.9,2.31l-3.22,0.52l-2.27,0.79l-3.05,-0.51l-2.21,0.03l-1.48,-1.6l-2.6,-1.63l-2.63,-0.43l-5.46,1.01l-3.23,-1.25l-0.72,-2.57l-5.2,-1.24l-2.75,-1.36l-0.5,0.12l-2.59,3.45l0.84,2.1l-2.06,1.93l-3.41,-0.77l-2.42,-0.12l-1.83,-1.54l-2.53,-0.05l-2.42,-0.98l-3.86,1.57l-4.72,2.78l-3.3,0.75l-1.55,-1.92l-3.0,0.41l-1.11,-1.33l-1.62,-0.59l-1.31,-1.94l-1.38,-0.6l-3.7,0.79l-3.31,-1.83l-0.51,0.11l-0.99,1.29l-5.29,-8.05l-2.96,-2.48l0.65,-0.77l0.01,-0.51l-0.5,-0.11l-6.2,3.21l-1.84,0.15l0.15,-1.39l-0.26,-0.42l-3.22,-1.17l-2.46,0.7l-0.69,-3.16l-0.32,-0.31l-4.5,-0.75l-2.47,1.47l-6.19,1.27l-1.29,0.86l-9.51,1.3l-1.15,1.17l-0.03,0.53l1.47,1.9l-1.89,0.69l-0.22,0.56l0.31,0.6l-2.11,1.44l0.03,0.68l3.75,2.12l-0.39,0.98l-3.23,-0.13l-0.86,0.86l-3.09,-1.59l-3.97,0.07l-2.66,1.35l-8.32,-3.56l-4.07,0.06l-5.39,3.68l-0.39,2.0l-2.03,-1.5l-0.59,0.13l-2.0,3.59l0.57,0.93l-1.28,2.16l0.06,0.48l2.13,2.17l1.95,0.04l1.37,1.82l-0.23,1.46l0.25,0.43l0.83,0.33l-0.8,1.31l-2.49,0.62l-2.49,3.2l0.0,0.49l2.17,2.78l-0.15,2.18l2.5,3.24l-1.58,1.59l-0.7,-0.13l-1.63,-1.72l-2.29,-0.84l-0.94,-1.31l-2.34,-0.63l-1.48,0.4l-0.43,-0.47l-3.51,-1.48l-5.76,-1.01l-0.45,0.19l-2.89,-2.34l-2.9,-1.2l-1.53,-1.29l1.29,-0.43l2.08,-2.61l-0.05,-0.55l-0.89,-0.79l3.05,-1.06l0.27,-0.42l-0.07,-0.69l-0.49,-0.35l-1.73,0.39l0.04,-0.68l1.04,-0.72l2.66,-0.48l0.4,-1.32l-0.5,-1.6l0.92,-1.54l0.03,-1.17l-0.29,-0.37l-3.69,-1.06l-1.41,0.02l-1.42,-1.41l-2.19,0.38l-2.77,-1.01l-0.03,-0.59l-0.89,-1.43l-2.0,-0.32l-0.11,-0.54l0.49,-0.53l0.01,-0.53l-1.6,-1.9l-3.58,0.02l-0.88,0.73l-0.46,-0.07l-1.0,-2.79l2.22,-0.02l0.97,-0.74l0.07,-0.57l-0.9,-1.04l-1.35,-0.48l-0.11,-0.7l-0.95,-0.58l-1.38,-1.99l0.46,-0.98l-0.51,-1.96l-2.45,-0.84l-1.21,0.3l-0.46,-0.76l-2.46,-0.83l-0.72,-1.87l-0.21,-1.69l-0.99,-0.85l0.85,-1.17l-0.7,-3.21l1.66,-1.97l-0.16,-0.79ZM749.2,170.72l-0.6,0.4l-0.13,0.16l-0.01,-0.51l0.74,-0.05ZM874.85,67.94l-5.63,0.48l-0.26,-0.84l3.15,-1.89l1.94,0.01l3.19,1.16l-2.39,1.09ZM797.39,48.49l-2.0,1.36l-3.8,-0.42l-4.25,-1.8l0.35,-0.97l9.69,1.83ZM783.67,46.12l-1.63,3.09l-8.98,-0.13l-4.09,1.14l-4.54,-2.97l1.16,-3.01l3.05,-0.89l6.5,0.22l8.54,2.56ZM778.2,134.98l-0.56,-0.9l0.27,-0.12l0.29,1.01ZM778.34,135.48l0.94,3.53l-0.05,3.38l1.05,3.39l2.18,5.0l-2.89,-0.83l-0.49,0.26l-1.54,4.65l2.42,3.5l-0.04,1.13l-1.24,-1.24l-0.61,0.06l-1.09,1.61l-0.28,-1.61l0.27,-3.1l-0.28,-3.4l0.58,-2.47l0.11,-4.39l-1.46,-3.36l0.21,-4.32l2.15,-1.46l0.07,-0.34ZM771.95,56.61l1.76,-1.42l2.89,-0.42l3.28,1.71l0.14,0.6l-3.27,0.03l-4.81,-0.5ZM683.76,31.09l-13.01,1.93l4.03,-6.35l1.82,-0.56l1.73,0.34l5.99,2.98l-0.56,1.66ZM670.85,27.93l-5.08,0.64l-6.86,-1.57l-3.99,-2.05l-2.1,-4.16l-2.6,-0.87l5.72,-3.5l5.2,-1.28l4.69,2.85l5.59,5.4l-0.56,4.53ZM564.15,68.94l-0.64,0.17l-7.85,-0.57l-0.86,-2.04l-4.28,-1.17l-0.28,-1.94l2.27,-0.89l0.25,-0.39l-0.08,-2.38l4.81,-3.97l-0.15,-0.7l-1.47,-0.38l5.3,-3.81l0.15,-0.44l-0.58,-1.94l5.28,-2.51l8.21,-3.27l8.28,-0.96l4.35,-1.94l4.6,-0.64l1.36,1.61l-1.34,1.28l-16.43,4.94l-7.97,4.88l-7.74,9.63l0.66,4.14l4.16,3.27ZM548.81,18.48l-5.5,1.18l-0.58,1.02l-2.59,0.84l-2.13,-1.07l1.12,-1.42l-0.3,-0.65l-2.33,-0.07l1.68,-0.36l3.47,-0.06l0.42,1.29l0.66,0.16l1.38,-1.34l2.15,-0.88l2.94,1.01l-0.39,0.36ZM477.37,133.15l-4.08,0.05l-2.56,-0.32l0.33,-0.87l3.17,-1.03l3.24,0.96l-0.09,1.23Z",name:"Russia"},RW:{path:"M497.0,288.25l0.71,1.01l-0.11,1.09l-1.63,0.03l-1.04,1.39l-0.83,-0.11l0.51,-1.2l0.08,-1.34l0.42,-0.41l0.7,0.14l1.19,-0.61Z",name:"Rwanda"},RS:{path:"M469.4,163.99l0.42,-0.5l-0.01,-0.52l-1.15,-1.63l1.43,-0.62l1.33,0.12l1.17,1.06l0.46,1.13l1.34,0.64l0.35,1.35l1.46,0.9l0.76,-0.29l0.2,0.69l-0.48,0.78l0.22,1.12l1.05,1.22l-0.77,0.8l-0.37,1.52l-1.21,0.08l0.24,-0.64l-0.39,-0.54l-2.08,-1.64l-0.9,0.05l-0.48,0.94l-2.12,-1.37l0.53,-1.6l-1.11,-1.37l0.51,-1.1l-0.41,-0.57Z",name:"Serbia"},LT:{path:"M486.93,129.3l0.17,1.12l-1.81,0.98l-0.72,2.02l-2.47,1.18l-2.1,-0.02l-0.73,-1.05l-1.06,-0.3l-0.09,-1.87l-3.56,-1.13l-0.43,-2.36l2.48,-0.94l4.12,0.22l2.25,-0.31l0.52,0.69l1.24,0.21l2.19,1.56Z",name:"Lithuania"},LU:{path:"M436.08,149.45l-0.48,-0.07l0.3,-1.28l0.27,0.4l-0.09,0.96Z",name:"Luxembourg"},LR:{path:"M399.36,265.97l0.18,1.54l-0.48,0.99l0.08,0.47l2.47,1.8l-0.33,2.8l-2.65,-1.13l-5.78,-4.61l0.58,-1.32l2.1,-2.33l0.86,-0.22l0.77,1.14l-0.14,0.85l0.59,0.87l1.0,0.14l0.76,-0.99Z",name:"Liberia"},RO:{path:"M487.53,154.23l0.6,0.24l2.87,3.98l-0.17,2.69l0.45,1.42l1.32,0.81l1.35,-0.42l0.76,0.36l0.02,0.31l-0.83,0.45l-0.59,-0.22l-0.54,0.3l-0.62,3.3l-1.0,-0.22l-2.07,-1.13l-2.95,0.71l-1.25,0.76l-3.51,-0.15l-1.89,-0.47l-0.87,0.16l-0.82,-1.3l0.29,-0.26l-0.06,-0.64l-1.09,-0.34l-0.56,0.5l-1.05,-0.64l-0.39,-1.39l-1.36,-0.65l-0.35,-1.0l-0.83,-0.75l1.54,-0.54l2.66,-4.21l2.4,-1.24l2.96,0.34l1.48,0.73l0.79,-0.45l1.78,-0.3l0.75,-0.74l0.79,0.0Z",name:"Romania"},GW:{path:"M386.23,253.6l-0.29,0.84l0.15,0.6l-2.21,0.59l-0.86,0.96l-1.04,-0.83l-1.09,-0.23l-0.54,-1.06l-0.66,-0.49l2.41,-0.48l4.13,0.1Z",name:"Guinea-Bissau"},GT:{path:"M195.08,249.77l-2.48,-0.37l-1.03,-0.45l-1.14,-0.89l0.3,-0.99l-0.24,-0.68l0.96,-1.66l2.98,-0.01l0.4,-0.37l-0.19,-1.28l-1.67,-1.4l0.51,-0.4l0.0,-1.05l3.85,0.02l-0.21,4.53l0.4,0.43l1.46,0.38l-1.48,0.98l-0.35,0.7l0.12,0.57l-2.2,1.96Z",name:"Guatemala"},GR:{path:"M487.07,174.59l-0.59,1.43l-0.37,0.21l-2.84,-0.35l-3.03,0.77l-0.18,0.68l1.28,1.23l-0.61,0.23l-1.14,0.0l-1.2,-1.39l-0.63,0.03l-0.53,1.01l0.56,1.76l1.03,1.19l-0.56,0.38l-0.05,0.62l2.52,2.12l0.02,0.87l-1.78,-0.59l-0.48,0.56l0.5,1.0l-1.07,0.2l-0.3,0.53l0.75,2.01l-0.98,0.02l-1.84,-1.12l-1.37,-4.2l-2.21,-2.95l-0.11,-0.56l1.04,-1.28l0.2,-0.95l0.85,-0.66l0.03,-0.46l1.32,-0.21l1.01,-0.64l1.22,0.05l0.65,-0.56l2.26,-0.0l1.82,-0.75l1.85,1.0l2.28,-0.28l0.35,-0.39l0.01,-0.77l0.34,0.22ZM480.49,192.16l0.58,0.4l-0.68,-0.12l0.11,-0.28ZM482.52,192.82l2.51,0.06l0.24,0.32l-1.99,0.13l-0.77,-0.51Z",name:"Greece"},GQ:{path:"M448.79,279.62l0.02,2.22l-4.09,0.0l0.69,-2.27l3.38,0.05Z",name:"Eq. Guinea"},GY:{path:"M277.42,270.07l-0.32,1.83l-1.32,0.57l-0.23,0.46l-0.28,2.0l1.11,1.82l0.83,0.19l0.32,1.25l1.13,1.62l-1.21,-0.19l-1.08,0.71l-1.77,0.5l-0.44,0.46l-0.86,-0.09l-1.32,-1.01l-0.77,-2.27l0.36,-1.9l0.68,-1.23l-0.57,-1.17l-0.74,-0.43l0.12,-1.16l-0.9,-0.69l-1.1,0.09l-1.31,-1.48l0.53,-0.72l-0.04,-0.84l1.99,-0.86l0.05,-0.59l-0.71,-0.78l0.14,-0.57l1.66,-1.24l1.36,0.77l1.41,1.49l0.06,1.15l0.37,0.38l0.8,0.05l2.06,1.86Z",name:"Guyana"},GE:{path:"M521.71,168.93l5.29,0.89l4.07,2.01l1.41,-0.44l2.07,0.56l0.68,1.1l1.07,0.55l-0.12,0.59l0.98,1.29l-1.01,-0.13l-1.81,-0.83l-0.94,0.47l-3.23,0.43l-2.29,-1.39l-2.33,0.05l0.21,-0.97l-0.76,-2.26l-1.45,-1.12l-1.43,-0.39l-0.41,-0.42Z",name:"Georgia"},GB:{path:"M412.61,118.72l-2.19,3.22l-0.0,0.45l5.13,-0.3l-0.53,2.37l-2.2,3.12l0.29,0.63l2.37,0.21l2.33,4.3l1.76,0.69l2.2,5.12l2.94,0.77l-0.23,1.62l-1.15,0.88l-0.1,0.52l0.82,1.42l-1.86,1.43l-3.3,-0.02l-4.12,0.87l-1.04,-0.58l-0.47,0.06l-1.51,1.41l-2.12,-0.34l-1.86,1.18l-0.6,-0.29l3.19,-3.0l2.16,-0.69l0.28,-0.41l-0.34,-0.36l-3.73,-0.53l-0.4,-0.76l2.2,-0.87l0.17,-0.61l-1.26,-1.67l0.36,-1.7l3.38,0.28l0.43,-0.33l0.37,-1.99l-1.79,-2.49l-3.11,-0.72l-0.38,-0.59l0.79,-1.35l-0.04,-0.46l-0.82,-0.97l-0.61,0.01l-0.68,0.84l-0.1,-2.34l-1.23,-1.88l0.85,-3.47l1.77,-2.68l1.85,0.26l2.17,-0.22ZM406.26,132.86l-1.01,1.77l-1.57,-0.59l-1.16,0.01l0.37,-1.54l-0.39,-1.39l1.45,-0.1l2.3,1.84Z",name:"United Kingdom"},GA:{path:"M453.24,279.52l-0.08,0.98l0.7,1.29l2.36,0.24l-0.98,2.63l1.18,1.79l0.25,1.78l-0.29,1.52l-0.6,0.93l-1.84,-0.09l-1.23,-1.11l-0.66,0.23l-0.15,0.84l-1.42,0.26l-1.02,0.7l-0.11,0.52l0.77,1.35l-1.34,0.97l-3.94,-4.3l-1.44,-2.45l0.06,-0.6l0.54,-0.81l1.05,-3.46l4.17,-0.07l0.4,-0.4l-0.02,-2.66l2.39,0.21l1.25,-0.27Z",name:"Gabon"},GN:{path:"M391.8,254.11l0.47,0.8l1.11,-0.32l0.98,0.7l1.07,0.2l2.26,-1.22l0.64,0.44l1.13,1.56l-0.48,1.4l0.8,0.3l-0.08,0.48l0.46,0.68l-0.35,1.36l1.05,2.61l-1.0,0.69l0.03,1.41l-0.72,-0.06l-1.08,1.0l-0.24,-0.27l0.07,-1.11l-1.05,-1.54l-1.79,0.21l-0.35,-2.01l-1.6,-2.18l-2.0,-0.0l-1.31,0.54l-1.95,2.18l-1.86,-2.19l-1.2,-0.78l-0.3,-1.11l-0.8,-0.85l0.65,-0.72l0.81,-0.03l1.64,-0.8l0.23,-1.87l2.67,0.64l0.89,-0.3l1.21,0.15Z",name:"Guinea"},GM:{path:"M379.31,251.39l0.1,-0.35l2.43,-0.07l0.74,-0.61l0.51,-0.03l0.77,0.49l-1.03,-0.3l-1.87,0.9l-1.65,-0.04ZM384.03,250.91l0.91,0.05l0.75,-0.24l-0.59,0.31l-1.08,-0.13Z",name:"Gambia"},GL:{path:"M353.02,1.2l14.69,4.67l-3.68,1.89l-22.97,0.86l-0.36,0.27l0.12,0.43l1.55,1.18l8.79,-0.66l7.48,2.07l4.86,-1.77l1.66,1.73l-2.53,3.19l-0.01,0.48l0.46,0.15l6.35,-2.2l12.06,-2.31l7.24,1.13l1.09,1.99l-9.79,4.01l-1.44,1.32l-7.87,0.98l-0.35,0.41l0.38,0.38l5.07,0.24l-2.53,3.58l-2.07,3.81l0.08,6.05l2.57,3.11l-3.22,0.2l-4.12,1.66l-0.05,0.72l4.45,2.65l0.51,3.75l-2.3,0.4l-0.25,0.64l2.79,3.69l-4.82,0.31l-0.36,0.29l0.16,0.44l2.62,1.8l-0.59,1.22l-3.3,0.7l-3.45,0.01l-0.29,0.68l3.03,3.12l0.02,1.34l-4.4,-1.73l-1.72,1.35l0.15,0.66l3.31,1.15l3.13,2.71l0.81,3.16l-3.85,0.75l-4.89,-4.26l-0.47,-0.03l-0.17,0.44l0.79,2.86l-2.71,2.21l-0.13,0.44l0.37,0.27l8.73,0.34l-12.32,6.64l-7.24,1.48l-2.94,0.08l-2.69,1.75l-3.43,4.41l-5.24,2.84l-1.73,0.18l-7.12,2.1l-2.15,2.52l-0.13,2.99l-1.19,2.45l-4.01,3.09l-0.14,0.44l0.97,2.9l-2.28,6.48l-3.1,0.2l-3.83,-3.07l-4.86,-0.02l-2.25,-1.93l-1.7,-3.79l-4.3,-4.84l-1.21,-2.49l-0.44,-3.8l-3.32,-3.63l0.84,-2.86l-1.56,-1.7l2.28,-4.6l3.83,-1.74l1.03,-1.96l0.52,-3.47l-0.59,-0.41l-4.17,2.21l-2.07,0.58l-2.72,-1.28l-0.15,-2.71l0.85,-2.09l2.01,-0.06l5.06,1.2l0.46,-0.23l-0.14,-0.49l-6.54,-4.47l-2.67,0.55l-1.58,-0.86l2.56,-4.01l-0.03,-0.48l-1.5,-1.74l-4.98,-8.5l-3.13,-1.96l0.03,-1.88l-0.24,-0.37l-6.85,-3.02l-5.36,-0.38l-12.7,0.58l-2.78,-1.57l-3.66,-2.77l5.73,-1.45l5.0,-0.28l0.38,-0.38l-0.35,-0.41l-10.67,-1.38l-5.3,-2.06l0.25,-1.54l18.41,-5.26l1.22,-2.27l-0.25,-0.55l-6.14,-1.86l1.68,-1.77l8.55,-4.03l3.59,-0.63l0.3,-0.54l-0.88,-2.27l5.47,-1.47l7.65,-0.95l7.55,-0.05l3.04,1.85l6.48,-3.27l5.81,2.22l3.56,0.5l5.16,1.94l0.5,-0.21l-0.17,-0.52l-5.71,-3.13l0.28,-2.13l8.12,-3.6l8.7,0.28l3.35,-2.34l8.71,-0.6l19.93,0.8Z",name:"Greenland"},KW:{path:"M540.81,207.91l0.37,0.86l-0.17,0.76l0.6,1.53l-0.95,0.04l-0.82,-1.28l-1.57,-0.18l1.31,-1.88l1.22,0.17Z",name:"Kuwait"},GH:{path:"M420.53,257.51l-0.01,0.72l0.96,1.2l0.24,3.73l0.59,0.95l-0.51,2.1l0.19,1.41l1.02,2.21l-6.97,2.84l-1.8,-0.57l0.04,-0.89l-1.02,-2.04l0.61,-2.65l1.07,-2.32l-0.96,-6.47l5.01,0.07l0.94,-0.39l0.61,0.11Z",name:"Ghana"},OM:{path:"M568.09,230.93l-0.91,1.67l-1.22,0.04l-0.6,0.76l-0.41,1.51l0.27,1.58l-1.16,0.05l-1.56,0.97l-0.76,1.74l-1.62,0.05l-0.98,0.65l-0.17,1.15l-0.89,0.52l-1.49,-0.18l-2.4,0.94l-2.47,-5.4l7.35,-2.71l1.67,-5.23l-1.12,-2.09l0.05,-0.83l0.67,-1.0l0.07,-1.05l0.9,-0.42l-0.05,-2.07l0.7,-0.01l1.0,1.62l1.51,1.08l3.3,0.84l1.73,2.29l0.81,0.37l-1.23,2.35l-0.99,0.79Z",name:"Oman"},_1:{path:"M531.15,258.94l1.51,0.12l5.13,-0.95l5.3,-1.48l-0.01,4.4l-2.67,3.39l-1.85,0.01l-8.04,-2.94l-2.55,-3.17l1.12,-1.71l2.04,2.34Z",name:"Somaliland"},_0:{path:"M472.77,172.64l-1.08,-1.29l0.96,-0.77l0.29,-0.83l1.98,1.64l-0.36,0.67l-1.79,0.58Z",name:"Kosovo"},JO:{path:"M518.64,201.38l-5.14,1.56l-0.19,0.65l2.16,2.39l-0.89,1.14l-1.71,0.34l-1.71,1.8l-2.34,-0.37l1.21,-4.32l0.56,-4.07l2.8,0.94l4.46,-2.71l0.79,2.66Z",name:"Jordan"},HR:{path:"M455.59,162.84l1.09,0.07l-0.82,0.94l-0.27,-1.01ZM456.96,162.92l0.62,-0.41l1.73,0.45l0.42,-0.4l-0.01,-0.59l0.86,-0.52l0.2,-1.05l1.63,-0.68l2.57,1.68l2.07,0.6l0.87,-0.31l1.05,1.57l-0.52,0.63l-1.05,-0.56l-1.68,0.04l-2.1,-0.5l-1.29,0.06l-0.57,0.49l-0.59,-0.47l-0.62,0.16l-0.46,1.7l1.79,2.42l2.79,2.75l-1.18,-0.87l-2.21,-0.87l-1.67,-1.78l0.13,-0.63l-1.05,-1.19l-0.32,-1.27l-1.42,-0.43Z",name:"Croatia"},HT:{path:"M237.05,238.38l-1.16,0.43l-0.91,-0.55l0.05,-0.2l2.02,0.31ZM237.53,238.43l1.06,0.12l-0.05,0.01l-1.01,-0.12ZM239.25,238.45l0.79,-0.51l0.06,-0.62l-1.02,-1.0l0.02,-0.82l-0.3,-0.4l-0.93,-0.32l3.16,0.45l0.02,1.84l-0.48,0.34l-0.08,0.58l0.54,0.72l-1.78,-0.26Z",name:"Haiti"},HU:{path:"M462.08,157.89l0.65,-1.59l-0.09,-0.44l0.64,-0.0l0.39,-0.34l0.1,-0.69l1.75,0.87l2.32,-0.37l0.43,-0.66l3.49,-0.78l0.69,-0.78l0.57,-0.14l2.57,0.93l0.67,-0.23l1.03,0.65l0.08,0.37l-1.42,0.71l-2.59,4.14l-1.8,0.53l-1.68,-0.1l-2.74,1.23l-1.85,-0.54l-2.54,-1.66l-0.66,-1.1Z",name:"Hungary"},HN:{path:"M199.6,249.52l-1.7,-1.21l0.06,-0.94l3.04,-2.14l2.37,0.28l1.27,-0.09l1.1,-0.52l1.3,0.28l1.14,-0.25l1.38,0.37l2.23,1.37l-2.36,0.93l-1.23,-0.39l-0.88,1.3l-1.28,0.99l-0.98,-0.22l-0.42,0.52l-0.96,0.05l-0.36,0.41l0.04,0.88l-0.52,0.6l-0.3,0.04l-0.3,-0.55l-0.66,-0.31l0.11,-0.67l-0.48,-0.65l-0.87,-0.26l-0.73,0.2Z",name:"Honduras"},PR:{path:"M256.17,238.73l-0.26,0.27l-2.83,0.05l-0.07,-0.55l1.95,-0.1l1.22,0.33Z",
|
7 |
-
name:"Puerto Rico"},PS:{path:"M509.21,203.07l0.1,-0.06l-0.02,0.03l-0.09,0.03ZM509.36,202.91l-0.02,-0.63l-0.33,-0.16l0.31,-1.09l0.24,0.1l-0.2,1.78Z",name:"Palestine"},PT:{path:"M401.84,187.38l-0.64,0.47l-1.13,-0.35l-0.91,0.17l0.28,-1.78l-0.24,-1.78l-1.25,-0.56l-0.45,-0.84l0.17,-1.66l1.01,-1.18l0.69,-2.92l-0.04,-1.39l-0.59,-1.9l1.3,-0.85l0.84,1.35l3.1,-0.3l0.46,0.99l-1.05,0.94l-0.03,2.16l-0.41,0.57l-0.08,1.1l-0.79,0.18l-0.26,0.59l0.91,1.6l-0.63,1.75l0.76,1.09l-1.1,1.52l0.07,1.05Z",name:"Portugal"},PY:{path:"M274.9,336.12l0.74,1.52l-0.16,3.45l0.32,0.41l2.64,0.5l1.11,-0.47l1.4,0.59l0.36,0.6l0.53,3.42l1.27,0.4l0.98,-0.38l0.51,0.27l-0.0,1.18l-1.21,5.32l-2.09,1.9l-1.8,0.4l-4.71,-0.98l2.2,-3.63l-0.32,-1.5l-2.78,-1.28l-3.03,-1.94l-2.07,-0.44l-4.34,-4.06l0.91,-2.9l0.08,-1.42l1.07,-2.04l4.13,-0.72l2.18,0.03l2.05,1.17l0.03,0.59Z",name:"Paraguay"},PA:{path:"M213.8,263.68l0.26,-1.52l-0.36,-0.26l-0.01,-0.49l0.44,-0.1l0.93,1.4l1.26,0.03l0.77,0.49l1.38,-0.23l2.51,-1.11l0.86,-0.72l3.45,0.85l1.4,1.18l0.41,1.74l-0.21,0.34l-0.53,-0.12l-0.47,0.29l-0.16,0.6l-0.68,-1.28l0.45,-0.49l-0.19,-0.66l-0.47,-0.13l-0.54,-0.84l-1.5,-0.75l-1.1,0.16l-0.75,0.99l-1.62,0.84l-0.18,0.96l0.85,0.97l-0.58,0.45l-0.69,0.08l-0.34,-1.18l-1.27,0.03l-0.71,-1.05l-2.59,-0.46Z",name:"Panama"},PG:{path:"M808.58,298.86l2.54,2.56l-0.13,0.26l-0.33,0.12l-0.87,-0.78l-1.22,-2.16ZM801.41,293.04l0.5,0.29l0.26,0.27l-0.49,-0.35l-0.27,-0.21ZM803.17,294.58l0.59,0.5l0.08,1.06l-0.29,-0.91l-0.38,-0.65ZM796.68,298.41l0.52,0.75l1.43,-0.19l2.27,-1.81l-0.01,-1.43l1.12,0.16l-0.04,1.1l-0.7,1.28l-1.12,0.18l-0.62,0.79l-2.46,1.11l-1.17,-0.0l-3.08,-1.25l3.41,0.0l0.45,-0.68ZM789.15,303.55l2.31,1.8l1.59,2.61l1.34,0.13l-0.06,0.66l0.31,0.43l1.06,0.24l0.06,0.65l2.25,1.05l-1.22,0.13l-0.72,-0.63l-4.56,-0.65l-3.22,-2.87l-1.49,-2.34l-3.27,-1.1l-2.38,0.72l-1.59,0.86l-0.2,0.42l0.27,1.55l-1.55,0.68l-1.36,-0.4l-2.21,-0.09l-0.08,-15.41l8.39,2.93l2.95,2.4l0.6,1.64l4.02,1.49l0.31,0.68l-1.76,0.21l-0.33,0.52l0.55,1.68Z",name:"Papua New Guinea"},PE:{path:"M244.96,295.21l-1.26,-0.07l-0.57,0.42l-1.93,0.45l-2.98,1.75l-0.36,1.36l-0.58,0.8l0.12,1.37l-1.24,0.59l-0.22,1.22l-0.62,0.84l1.04,2.27l1.28,1.44l-0.41,0.84l0.32,0.57l1.48,0.13l1.16,1.37l2.21,0.07l1.63,-1.08l-0.13,3.02l0.3,0.4l1.14,0.29l1.31,-0.34l1.9,3.59l-0.48,0.85l-0.17,3.85l-0.94,1.59l0.35,0.75l-0.47,1.07l0.98,1.97l-2.1,3.82l-0.98,0.5l-2.17,-1.28l-0.39,-1.16l-4.95,-2.58l-4.46,-2.79l-1.84,-1.51l-0.91,-1.84l0.3,-0.96l-2.11,-3.33l-4.82,-9.68l-1.04,-1.2l-0.87,-1.94l-3.4,-2.48l0.58,-1.18l-1.13,-2.23l0.66,-1.49l1.45,-1.15l-0.6,0.98l0.07,0.92l0.47,0.36l1.74,0.03l0.97,1.17l0.54,0.07l1.42,-1.03l0.6,-1.84l1.42,-2.02l3.04,-1.04l2.73,-2.62l0.86,-1.74l-0.1,-1.87l1.44,1.02l0.9,1.25l1.06,0.59l1.7,2.73l1.86,0.31l1.45,-0.61l0.96,0.39l1.36,-0.19l1.45,0.89l-1.4,2.21l0.31,0.61l0.59,0.05l0.47,0.5Z",name:"Peru"},PK:{path:"M615.09,192.34l-1.83,1.81l-2.6,0.39l-3.73,-0.68l-1.58,1.33l-0.09,0.42l1.77,4.39l1.7,1.23l-1.69,1.27l-0.12,2.14l-2.33,2.64l-1.6,2.8l-2.46,2.67l-3.03,-0.07l-2.76,2.83l0.05,0.6l1.5,1.11l0.26,1.9l1.44,1.5l0.37,1.68l-5.01,-0.01l-1.78,1.7l-1.42,-0.52l-0.76,-1.87l-2.27,-2.15l-11.61,0.86l0.71,-2.34l3.43,-1.32l0.25,-0.44l-0.21,-1.24l-1.2,-0.65l-0.28,-2.46l-2.29,-1.14l-1.28,-1.94l2.82,0.94l2.62,-0.38l1.42,0.33l0.76,-0.56l1.71,0.19l3.25,-1.14l0.27,-0.36l0.08,-2.19l1.18,-1.32l1.68,0.0l0.58,-0.82l1.6,-0.3l1.19,0.16l0.98,-0.78l0.02,-1.88l0.93,-1.47l1.48,-0.66l0.19,-0.55l-0.66,-1.25l2.04,-0.11l0.69,-1.01l-0.02,-1.16l1.11,-1.06l-0.17,-1.78l-0.49,-1.03l1.15,-0.98l5.42,-0.91l2.6,-0.82l1.6,1.16l0.97,2.34l3.45,0.97Z",name:"Pakistan"},PH:{path:"M737.01,263.84l0.39,2.97l-0.44,1.18l-0.55,-1.53l-0.67,-0.14l-1.17,1.28l0.65,2.09l-0.42,0.69l-2.48,-1.23l-0.57,-1.49l0.65,-1.03l-0.1,-0.54l-1.59,-1.19l-0.56,0.08l-0.65,0.87l-1.23,0.0l-1.58,0.97l0.83,-1.8l2.56,-1.42l0.65,0.84l0.45,0.13l1.9,-0.69l0.56,-1.11l1.5,-0.06l0.38,-0.43l-0.09,-1.19l1.21,0.71l0.36,2.02ZM733.59,256.58l0.05,0.75l0.08,0.26l-0.8,-0.42l-0.18,-0.71l0.85,0.12ZM734.08,256.1l-0.12,-1.12l-1.0,-1.27l1.36,0.03l0.53,0.73l0.51,2.04l-1.27,-0.4ZM733.76,257.68l0.38,0.98l-0.32,0.15l-0.07,-1.13ZM724.65,238.43l1.46,0.7l0.72,-0.31l-0.32,1.17l0.79,1.71l-0.57,1.84l-1.53,1.04l-0.39,2.25l0.56,2.04l1.63,0.57l1.16,-0.27l2.71,1.23l-0.19,1.08l0.76,0.84l-0.08,0.36l-1.4,-0.9l-0.88,-1.27l-0.66,0.0l-0.38,0.55l-1.6,-1.31l-2.15,0.36l-0.87,-0.39l0.07,-0.61l0.66,-0.55l-0.01,-0.62l-0.75,-0.59l-0.72,0.44l-0.74,-0.87l-0.39,-2.49l0.32,0.27l0.66,-0.28l0.26,-3.97l0.7,-2.02l1.14,0.0ZM731.03,258.87l-0.88,0.85l-1.19,1.94l-1.05,-1.19l0.93,-1.1l0.32,-1.47l0.52,-0.06l-0.27,1.15l0.22,0.45l0.49,-0.12l1.0,-1.32l-0.08,0.85ZM726.83,255.78l0.83,0.38l1.17,-0.0l-0.02,0.48l-2.0,1.4l0.03,-2.26ZM724.81,252.09l-0.38,1.27l-1.42,-1.95l1.2,0.05l0.6,0.63ZM716.55,261.82l1.1,-0.95l0.03,-0.03l-0.28,0.36l-0.85,0.61ZM719.22,259.06l0.04,-0.06l0.8,-1.53l0.16,0.75l-1.0,0.84Z",name:"Philippines"},PL:{path:"M468.44,149.42l-1.11,-1.54l-1.86,-0.33l-0.48,-1.05l-1.72,-0.37l-0.65,0.69l-0.72,-0.36l0.11,-0.61l-0.33,-0.46l-1.75,-0.27l-1.04,-0.93l-0.94,-1.94l0.16,-1.22l-0.62,-1.8l-0.78,-1.07l0.57,-1.04l-0.48,-1.43l1.41,-0.83l6.91,-2.71l2.14,0.5l0.52,0.91l5.51,0.44l4.55,-0.05l1.07,0.31l0.48,0.84l0.15,1.58l0.65,1.2l-0.01,0.99l-1.27,0.58l-0.19,0.54l0.73,1.48l0.08,1.55l1.2,2.76l-0.17,0.58l-1.23,0.44l-2.27,2.72l0.18,0.95l-1.97,-1.03l-1.98,0.4l-1.36,-0.28l-1.24,0.58l-1.07,-0.97l-1.16,0.24Z",name:"Poland"},"-99":{path:"M504.91,192.87l0.34,0.01l0.27,-0.07l-0.29,0.26l-0.31,-0.2Z",name:"N. Cyprus"},ZM:{path:"M481.47,313.3l0.39,0.31l2.52,0.14l0.99,1.17l2.01,0.35l1.4,-0.64l0.69,1.17l1.78,0.33l1.84,2.35l2.23,0.18l0.4,-0.43l-0.21,-2.74l-0.62,-0.3l-0.48,0.32l-1.98,-1.17l0.72,-5.29l-0.51,-1.18l0.57,-1.3l3.68,-0.62l0.26,0.63l1.21,0.63l0.9,-0.22l2.16,0.67l1.33,0.71l1.07,1.02l0.56,1.87l-0.88,2.7l0.43,2.09l-0.73,0.87l-0.76,2.37l0.59,0.68l-6.6,1.83l-0.29,0.44l0.19,1.45l-1.68,0.35l-1.43,1.02l-0.38,0.87l-0.87,0.26l-3.48,3.69l-4.16,-0.53l-1.52,-1.0l-1.77,-0.13l-1.83,0.52l-3.04,-3.4l0.11,-7.59l4.82,0.03l0.39,-0.49l-0.18,-0.76l0.33,-0.83l-0.4,-1.36l0.24,-1.05Z",name:"Zambia"},EH:{path:"M384.42,230.28l0.25,-0.79l1.06,-1.29l0.8,-3.51l3.38,-2.78l0.7,-1.81l0.06,4.84l-1.98,0.2l-0.94,1.59l0.39,3.56l-3.7,-0.01ZM392.01,218.1l0.7,-1.8l1.77,-0.24l2.09,0.34l0.95,-0.62l1.28,-0.07l-0.0,2.51l-6.79,-0.12Z",name:"W. Sahara"},EE:{path:"M485.71,115.04l2.64,0.6l2.56,0.11l-1.6,1.91l0.61,3.54l-0.81,0.87l-1.78,-0.01l-3.22,-1.76l-1.8,0.45l0.21,-1.53l-0.58,-0.41l-0.69,0.34l-1.26,-1.03l-0.17,-1.63l2.83,-0.92l3.05,-0.52Z",name:"Estonia"},EG:{path:"M492.06,205.03l1.46,0.42l2.95,-1.64l2.04,-0.21l1.53,0.3l0.59,1.19l0.69,0.04l0.41,-0.64l1.81,0.58l1.95,0.16l1.04,-0.51l1.42,4.08l-2.03,4.54l-1.66,-1.77l-1.76,-3.85l-0.64,-0.12l-0.36,0.67l1.04,2.88l3.44,6.95l1.78,3.04l2.03,2.65l-0.36,0.53l0.23,2.01l2.7,2.19l-28.41,0.0l0.0,-18.96l-0.73,-2.2l0.59,-1.56l-0.32,-1.26l0.68,-0.99l3.06,-0.04l4.82,1.52Z",name:"Egypt"},ZA:{path:"M467.14,373.21l-0.13,-1.96l-0.68,-1.56l0.7,-0.68l-0.13,-2.33l-4.56,-8.19l0.77,-0.86l0.6,0.45l0.69,1.31l2.83,0.72l1.5,-0.26l2.24,-1.39l0.19,-9.55l1.35,2.3l-0.21,1.5l0.61,1.2l0.4,0.19l1.79,-0.27l2.6,-2.07l0.69,-1.32l0.96,-0.48l2.19,1.04l2.04,0.13l1.77,-0.65l0.85,-2.12l1.38,-0.33l1.59,-2.76l2.15,-1.89l3.41,-1.87l2.0,0.45l1.02,-0.28l0.99,0.2l1.75,5.29l-0.38,3.25l-0.81,-0.23l-1.0,0.46l-0.87,1.68l-0.05,1.16l1.97,1.84l1.47,-0.29l0.69,-1.18l1.09,0.01l-0.76,3.69l-0.58,1.09l-2.2,1.79l-3.17,4.76l-2.8,2.83l-3.57,2.88l-2.53,1.05l-1.22,0.14l-0.51,0.7l-1.18,-0.32l-1.39,0.5l-2.59,-0.52l-1.61,0.33l-1.18,-0.11l-2.55,1.1l-2.1,0.44l-1.6,1.07l-0.85,0.05l-0.93,-0.89l-0.93,-0.15l-0.97,-1.13l-0.25,0.05ZM491.45,364.19l0.62,-0.93l1.48,-0.59l1.18,-2.19l-0.07,-0.49l-1.99,-1.69l-1.66,0.56l-1.43,1.14l-1.34,1.73l0.02,0.51l1.88,2.11l1.31,-0.16Z",name:"South Africa"},EC:{path:"M231.86,285.53l0.29,1.59l-0.69,1.45l-2.61,2.51l-3.13,1.11l-1.53,2.18l-0.49,1.68l-1.0,0.73l-1.02,-1.11l-1.78,-0.16l0.67,-1.15l-0.24,-0.86l1.25,-2.13l-0.54,-1.09l-0.67,-0.08l-0.72,0.87l-0.87,-0.64l0.35,-0.69l-0.36,-1.96l0.81,-0.51l0.45,-1.51l0.92,-1.57l-0.07,-0.97l2.65,-1.33l2.75,1.35l0.77,1.05l2.12,0.35l0.76,-0.32l1.96,1.21Z",name:"Ecuador"},AL:{path:"M470.32,171.8l0.74,0.03l0.92,0.89l-0.17,1.95l0.36,1.28l1.01,0.82l-1.82,2.83l-0.19,-0.61l-1.25,-0.89l-0.18,-1.2l0.53,-2.82l-0.54,-1.47l0.6,-0.83Z",name:"Albania"},AO:{path:"M461.55,300.03l1.26,3.15l1.94,2.36l2.47,-0.53l1.25,0.32l0.44,-0.18l0.93,-1.92l1.31,-0.08l0.41,-0.44l0.47,-0.0l-0.1,0.41l0.39,0.49l2.65,-0.02l0.03,1.19l0.48,1.01l-0.34,1.52l0.18,1.55l0.83,1.04l-0.13,2.85l0.54,0.39l3.96,-0.41l-0.1,1.79l0.39,1.05l-0.24,1.43l-4.7,-0.03l-0.4,0.39l-0.12,8.13l2.92,3.49l-3.83,0.88l-5.89,-0.36l-1.88,-1.24l-10.47,0.22l-1.3,-1.01l-1.85,-0.16l-2.4,0.77l-0.15,-1.06l0.33,-2.16l1.0,-3.45l1.35,-3.2l2.24,-2.8l0.33,-2.06l-0.13,-1.53l-0.8,-1.08l-1.21,-2.87l0.87,-1.62l-1.27,-4.12l-1.17,-1.53l2.47,-0.63l7.03,0.03ZM451.71,298.87l-0.47,-1.25l1.25,-1.11l0.32,0.3l-0.99,1.03l-0.12,1.03Z",name:"Angola"},KZ:{path:"M552.8,172.89l0.46,-1.27l-0.48,-1.05l-2.96,-1.19l-1.06,-2.58l-1.37,-0.87l-0.03,-0.3l1.95,0.23l0.45,-0.38l0.08,-1.96l1.75,-0.41l2.1,0.45l0.48,-0.33l0.45,-3.04l-0.45,-2.09l-0.41,-0.31l-2.42,0.15l-2.36,-0.73l-2.87,1.37l-2.17,0.61l-0.85,-0.34l0.13,-1.61l-1.6,-2.12l-2.02,-0.08l-1.78,-1.82l1.29,-2.18l-0.57,-0.95l1.62,-2.91l2.21,1.63l0.63,-0.27l0.29,-2.22l4.92,-3.43l3.71,-0.08l8.4,3.6l2.92,-1.36l3.77,-0.06l3.11,1.66l0.51,-0.11l0.6,-0.81l3.31,0.13l0.39,-0.25l0.63,-1.57l-0.17,-0.5l-3.5,-1.98l1.87,-1.27l-0.13,-1.03l1.98,-0.72l0.18,-0.62l-1.59,-2.06l0.81,-0.82l9.23,-1.18l1.33,-0.88l6.18,-1.26l2.26,-1.42l4.08,0.68l0.73,3.33l0.51,0.3l2.48,-0.8l2.79,1.02l-0.17,1.56l0.43,0.44l2.55,-0.24l4.89,-2.53l0.03,0.32l3.15,2.61l5.56,8.47l0.65,0.02l1.12,-1.46l3.15,1.74l3.76,-0.78l1.15,0.49l1.14,1.8l1.84,0.76l0.99,1.29l3.35,-0.25l1.02,1.52l-1.6,1.81l-1.93,0.28l-0.34,0.38l-0.11,3.05l-1.13,1.16l-4.75,-1.0l-0.46,0.27l-1.76,5.47l-1.1,0.59l-4.91,1.23l-0.27,0.54l2.1,4.97l-1.37,0.63l-0.23,0.41l0.13,1.13l-0.88,-0.25l-1.42,-1.13l-7.89,-0.4l-0.92,0.31l-3.73,-1.22l-1.42,0.63l-0.53,1.66l-3.72,-0.94l-1.85,0.43l-0.76,1.4l-4.65,2.62l-1.13,2.08l-0.44,0.01l-0.92,-1.4l-2.87,-0.09l-0.45,-2.14l-0.38,-0.32l-0.8,-0.01l0.0,-2.96l-3.0,-2.22l-7.31,0.58l-2.35,-2.68l-6.71,-3.69l-6.45,1.83l-0.29,0.39l0.1,10.85l-0.7,0.08l-1.62,-2.17l-1.83,-0.96l-3.11,0.59l-0.64,0.51Z",name:"Kazakhstan"},ET:{path:"M516.04,247.79l1.1,0.84l1.63,-0.45l0.68,0.47l1.63,0.03l2.01,0.94l1.73,1.66l1.64,2.07l-1.52,2.04l0.16,1.72l0.39,0.38l2.05,0.0l-0.36,1.03l2.86,3.58l8.32,3.08l1.31,0.02l-6.32,6.75l-3.1,0.11l-2.36,1.77l-1.47,0.04l-0.86,0.79l-1.38,-0.0l-1.32,-0.81l-2.29,1.05l-0.76,0.98l-3.29,-0.41l-3.07,-2.07l-1.8,-0.07l-0.62,-0.6l0.0,-1.24l-0.28,-0.38l-1.15,-0.37l-1.4,-2.59l-1.19,-0.68l-0.47,-1.0l-1.27,-1.23l-1.16,-0.22l0.43,-0.72l1.45,-0.28l0.41,-0.95l-0.03,-2.21l0.68,-2.44l1.05,-0.63l1.43,-3.06l1.57,-1.37l1.02,-2.51l0.35,-1.88l2.52,0.46l0.44,-0.24l0.58,-1.43Z",name:"Ethiopia"},ZW:{path:"M498.91,341.09l-1.11,-0.22l-0.92,0.28l-2.09,-0.44l-1.5,-1.11l-1.89,-0.43l-0.62,-1.4l-0.01,-0.84l-0.3,-0.38l-0.97,-0.25l-2.71,-2.74l-1.92,-3.32l3.83,0.45l3.73,-3.82l1.08,-0.44l0.26,-0.77l1.25,-0.9l1.41,-0.26l0.5,0.89l1.99,-0.05l1.72,1.17l1.11,0.17l1.05,0.66l0.01,2.99l-0.59,3.76l0.38,0.86l-0.23,1.23l-0.39,0.35l-0.63,1.81l-2.43,2.75Z",name:"Zimbabwe"},ES:{path:"M416.0,169.21l1.07,1.17l4.61,1.38l1.06,-0.57l2.6,1.26l2.71,-0.3l0.09,1.12l-2.14,1.8l-3.11,0.61l-0.31,0.31l-0.2,0.89l-1.54,1.69l-0.97,2.4l0.84,1.74l-1.32,1.27l-0.48,1.68l-1.88,0.65l-1.66,2.07l-5.36,-0.01l-1.79,1.08l-0.89,0.98l-0.88,-0.17l-0.79,-0.82l-0.68,-1.59l-2.37,-0.63l-0.11,-0.5l1.21,-1.82l-0.77,-1.13l0.61,-1.68l-0.76,-1.62l0.87,-0.49l0.09,-1.25l0.42,-0.6l0.03,-2.11l0.99,-0.69l0.13,-0.5l-1.03,-1.73l-1.46,-0.11l-0.61,0.38l-1.06,0.0l-0.52,-1.23l-0.53,-0.21l-1.32,0.67l-0.01,-1.49l-0.75,-0.96l3.03,-1.88l2.99,0.53l3.32,-0.02l2.63,0.51l6.01,-0.06Z",name:"Spain"},ER:{path:"M520.38,246.23l3.42,2.43l3.5,3.77l0.84,0.54l-0.95,-0.01l-3.51,-3.89l-2.33,-1.15l-1.73,-0.07l-0.91,-0.51l-1.26,0.51l-1.34,-1.02l-0.61,0.17l-0.66,1.61l-2.35,-0.43l-0.17,-0.67l1.29,-5.29l0.61,-0.61l1.95,-0.53l0.87,-1.01l1.17,2.41l0.68,2.33l1.49,1.43Z",name:"Eritrea"},ME:{path:"M468.91,172.53l-1.22,-1.02l0.47,-1.81l0.89,-0.72l2.26,1.51l-0.5,0.57l-0.75,-0.27l-1.14,1.73Z",name:"Montenegro"},MD:{path:"M488.41,153.73l1.4,-0.27l1.72,0.93l1.07,0.15l0.85,0.65l-0.14,0.84l0.96,0.85l1.12,2.47l-1.15,-0.07l-0.66,-0.41l-0.52,0.25l-0.09,0.86l-1.08,1.89l-0.27,-0.86l0.25,-1.34l-0.16,-1.6l-3.29,-4.34Z",name:"Moldova"},MG:{path:"M545.91,319.14l0.4,3.03l0.62,1.21l-0.21,1.02l-0.57,-0.8l-0.69,-0.01l-0.47,0.76l0.41,2.12l-0.18,0.87l-0.73,0.78l-0.15,2.14l-4.71,15.2l-1.06,2.88l-3.92,1.64l-3.12,-1.49l-0.6,-1.21l-0.19,-2.4l-0.86,-2.05l-0.21,-1.77l0.38,-1.62l1.21,-0.75l0.01,-0.76l1.19,-2.04l0.23,-1.66l-1.06,-2.99l-0.19,-2.21l0.81,-1.33l0.32,-1.46l4.63,-1.22l3.44,-3.0l0.85,-1.4l-0.08,-0.7l0.78,-0.04l1.38,-1.77l0.13,-1.64l0.45,-0.61l1.16,1.69l0.59,1.6Z",name:"Madagascar"},MA:{path:"M378.78,230.02l0.06,-0.59l0.92,-0.73l0.82,-1.37l-0.09,-1.04l0.79,-1.7l1.31,-1.58l0.96,-0.59l0.66,-1.55l0.09,-1.47l0.81,-1.48l1.72,-1.07l1.55,-2.69l1.16,-0.96l2.44,-0.39l1.94,-1.82l1.31,-0.78l2.09,-2.28l-0.51,-3.65l1.24,-3.7l1.5,-1.75l4.46,-2.57l2.37,-4.47l1.44,0.01l1.68,1.21l2.32,-0.19l3.47,0.65l0.8,1.54l0.16,1.71l0.86,2.96l0.56,0.59l-0.26,0.61l-3.05,0.44l-1.26,1.05l-1.33,0.22l-0.33,0.37l-0.09,1.78l-2.68,1.0l-1.07,1.42l-4.47,1.13l-4.04,2.01l-0.54,4.64l-1.15,0.06l-0.92,0.61l-1.96,-0.35l-2.42,0.54l-0.74,1.9l-0.86,0.4l-1.14,3.26l-3.53,3.01l-0.8,3.55l-0.96,1.1l-0.29,0.82l-4.95,0.18Z",name:"Morocco"},UZ:{path:"M598.64,172.75l-1.63,1.52l0.06,0.64l1.85,1.12l1.97,-0.64l2.21,1.17l-2.52,1.68l-2.59,-0.22l-0.18,-0.41l0.46,-1.23l-0.45,-0.53l-3.35,0.69l-2.1,3.51l-1.87,-0.12l-1.03,1.51l0.22,0.55l1.64,0.62l0.46,1.83l-1.19,2.49l-2.66,-0.53l0.05,-1.36l-0.26,-0.39l-3.3,-1.23l-2.56,-1.4l-4.4,-3.34l-1.34,-3.14l-1.08,-0.6l-2.58,0.13l-0.69,-0.44l-0.47,-2.52l-3.37,-1.6l-0.43,0.05l-2.07,1.72l-2.1,1.01l-0.21,0.47l0.28,1.01l-1.91,0.03l-0.09,-10.5l5.99,-1.7l6.19,3.54l2.71,2.84l7.05,-0.67l2.71,2.01l-0.17,2.81l0.39,0.42l0.9,0.02l0.44,2.14l0.38,0.32l2.94,0.09l0.95,1.42l1.28,-0.24l1.05,-2.04l4.43,-2.5Z",name:"Uzbekistan"},MM:{path:"M673.9,230.21l-1.97,1.57l-0.57,0.96l-1.4,0.6l-1.36,1.05l-1.99,0.36l-1.08,2.66l-0.91,0.4l-0.19,0.55l1.21,2.27l2.52,3.43l-0.79,1.91l-0.74,0.41l-0.17,0.52l0.65,1.37l1.61,1.95l0.25,2.58l0.9,2.13l-1.92,3.57l0.68,-2.25l-0.81,-1.74l0.19,-2.65l-1.05,-1.53l-1.24,-6.17l-1.12,-2.26l-0.6,-0.13l-4.34,3.02l-2.39,-0.65l0.77,-2.84l-0.52,-2.61l-1.91,-2.96l0.25,-0.75l-0.29,-0.51l-1.33,-0.3l-1.61,-1.93l-0.1,-1.3l0.82,-0.24l0.04,-1.64l1.02,-0.52l0.21,-0.45l-0.23,-0.95l0.54,-0.96l0.08,-2.22l1.46,0.45l0.47,-0.2l1.12,-2.19l0.16,-1.35l1.33,-2.16l-0.0,-1.52l2.89,-1.66l1.63,0.44l0.5,-0.44l-0.17,-1.4l0.64,-0.36l0.08,-1.04l0.77,-0.11l0.71,1.35l1.06,0.69l-0.03,3.86l-2.38,2.37l-0.3,3.15l0.46,0.43l2.28,-0.38l0.51,2.08l1.47,0.67l-0.6,1.8l0.19,0.48l2.97,1.48l1.64,-0.55l0.02,0.32Z",name:"Myanmar"},ML:{path:"M392.61,254.08l-0.19,-2.37l-0.99,-0.87l-0.44,-1.3l-0.09,-1.28l0.81,-0.58l0.35,-1.24l2.37,0.65l1.31,-0.47l0.86,0.15l0.66,-0.56l9.83,-0.04l0.38,-0.28l0.56,-1.8l-0.44,-0.65l-2.35,-21.95l3.27,-0.04l16.7,11.38l0.74,1.31l2.5,1.09l0.02,1.38l0.44,0.39l2.34,-0.21l0.01,5.38l-1.28,1.61l-0.26,1.49l-5.31,0.57l-1.07,0.92l-2.9,0.1l-0.86,-0.48l-1.38,0.36l-2.4,1.08l-0.6,0.87l-1.85,1.09l-0.43,0.7l-0.79,0.39l-1.44,-0.21l-0.81,0.84l-0.34,1.64l-1.91,2.02l-0.06,1.03l-0.67,1.22l0.13,1.16l-0.97,0.39l-0.23,-0.64l-0.52,-0.24l-1.35,0.4l-0.34,0.55l-2.69,-0.28l-0.37,-0.35l-0.02,-0.9l-0.65,-0.35l0.45,-0.64l-0.03,-0.53l-2.12,-2.44l-0.76,-0.01l-2.0,1.16l-0.78,-0.15l-0.8,-0.67l-1.21,0.23Z",name:"Mali"},MN:{path:"M676.61,146.48l3.81,1.68l5.67,-1.0l2.37,0.41l2.34,1.5l1.79,1.75l2.29,-0.03l3.12,0.52l2.47,-0.81l3.41,-0.59l3.53,-2.21l1.25,0.29l1.53,1.13l2.27,-0.21l-2.66,5.01l0.64,1.68l0.47,0.21l1.32,-0.38l2.38,0.48l2.02,-1.11l1.76,0.89l2.06,2.02l-0.13,0.53l-1.72,-0.29l-3.77,0.46l-1.88,0.99l-1.76,1.99l-3.71,1.17l-2.45,1.6l-3.83,-0.87l-0.41,0.17l-1.31,1.99l1.04,2.24l-1.52,0.9l-1.74,1.57l-2.79,1.02l-3.78,0.13l-4.05,1.05l-2.77,1.52l-1.16,-0.85l-2.94,0.0l-3.62,-1.79l-2.58,-0.49l-3.4,0.41l-5.12,-0.67l-2.63,0.06l-1.31,-1.6l-1.4,-3.0l-1.48,-0.33l-3.13,-1.94l-6.16,-0.93l-0.71,-1.06l0.86,-3.82l-1.93,-2.71l-3.5,-1.18l-1.95,-1.58l-0.5,-1.72l2.34,-0.52l4.75,-2.8l3.62,-1.47l2.18,0.97l2.46,0.05l1.81,1.53l2.46,0.12l3.95,0.71l2.43,-2.28l0.08,-0.48l-0.9,-1.72l2.24,-2.98l2.62,1.27l4.94,1.17l0.43,2.24Z",name:"Mongolia"},MK:{path:"M472.8,173.98l0.49,-0.71l3.57,-0.71l1.0,0.77l0.13,1.45l-0.65,0.53l-1.15,-0.05l-1.12,0.67l-1.39,0.22l-0.79,-0.55l-0.29,-1.03l0.19,-0.6Z",name:"Macedonia"},MW:{path:"M505.5,309.31l0.85,1.95l0.15,2.86l-0.69,1.65l0.71,1.8l0.06,1.28l0.49,0.64l0.07,1.06l0.4,0.55l0.8,-0.23l0.55,0.61l0.69,-0.21l0.34,0.6l0.19,2.94l-1.04,0.62l-0.54,1.25l-1.11,-1.08l-0.16,-1.56l0.51,-1.31l-0.32,-1.3l-0.99,-0.65l-0.82,0.12l-2.36,-1.64l0.63,-1.96l0.82,-1.18l-0.46,-2.01l0.9,-2.86l-0.94,-2.51l0.96,0.18l0.29,0.4Z",name:"Malawi"},MR:{path:"M407.36,220.66l-2.58,0.03l-0.39,0.44l2.42,22.56l0.36,0.43l-0.39,1.24l-9.75,0.04l-0.56,0.53l-0.91,-0.11l-1.27,0.45l-1.61,-0.66l-0.97,0.03l-0.36,0.29l-0.38,1.35l-0.42,0.23l-2.93,-3.4l-2.96,-1.52l-1.62,-0.03l-1.27,0.54l-1.12,-0.2l-0.65,0.4l-0.08,-0.49l0.68,-1.29l0.31,-2.43l-0.57,-3.91l0.23,-1.21l-0.69,-1.5l-1.15,-1.02l0.25,-0.39l9.58,0.02l0.4,-0.45l-0.46,-3.68l0.47,-1.04l2.12,-0.21l0.36,-0.4l-0.08,-6.4l7.81,0.13l0.41,-0.4l0.01,-3.31l7.76,5.35Z",name:"Mauritania"},UG:{path:"M498.55,276.32l0.7,-0.46l1.65,0.5l1.96,-0.57l1.7,0.01l1.45,-0.98l0.91,1.33l1.33,3.95l-2.57,4.03l-1.46,-0.4l-2.54,0.91l-1.37,1.61l-0.01,0.81l-2.42,-0.01l-2.26,1.01l-0.17,-1.59l0.58,-1.04l0.14,-1.94l1.37,-2.28l1.78,-1.58l-0.17,-0.65l-0.72,-0.24l0.13,-2.43Z",name:"Uganda"},MY:{path:"M717.47,273.46l-1.39,0.65l-2.12,-0.41l-2.88,-0.0l-0.38,0.28l-0.84,2.75l-0.99,0.96l-1.21,3.29l-1.73,0.45l-2.45,-0.68l-1.39,0.31l-1.33,1.15l-1.59,-0.14l-1.41,0.44l-1.44,-1.19l-0.18,-0.73l1.34,0.53l1.93,-0.47l0.75,-2.22l4.02,-1.03l2.75,-3.21l0.82,0.94l0.64,-0.05l0.4,-0.65l0.96,0.06l0.42,-0.36l0.24,-2.68l1.81,-1.64l1.21,-1.86l0.63,-0.01l1.07,1.05l0.34,1.28l3.44,1.35l-0.06,0.35l-1.37,0.1l-0.35,0.54l0.32,0.88ZM673.68,269.59l0.17,1.09l0.47,0.33l1.65,-0.3l0.87,-0.94l1.61,1.52l0.98,1.56l-0.12,2.81l0.41,2.29l0.95,0.9l0.88,2.44l-1.27,0.12l-5.1,-3.67l-0.34,-1.29l-1.37,-1.59l-0.33,-1.97l-0.88,-1.4l0.25,-1.68l-0.46,-1.05l1.63,0.84Z",name:"Malaysia"},MX:{path:"M133.12,200.41l0.2,0.47l9.63,3.33l6.96,-0.02l0.4,-0.4l0.0,-0.74l3.77,0.0l3.55,2.93l1.39,2.83l1.52,1.04l2.08,0.82l0.47,-0.14l1.46,-2.0l1.73,-0.04l1.59,0.98l2.05,3.35l1.47,1.56l1.26,3.14l2.18,1.02l2.26,0.58l-1.18,3.72l-0.42,5.04l1.79,4.89l1.62,1.89l0.61,1.52l1.2,1.42l2.55,0.66l1.37,1.1l7.54,-1.89l1.86,-1.3l1.14,-4.3l4.1,-1.21l3.57,-0.11l0.32,0.3l-0.06,0.94l-1.26,1.45l-0.67,1.71l0.38,0.7l-0.72,2.27l-0.49,-0.3l-1.0,0.08l-1.0,1.39l-0.47,-0.11l-0.53,0.47l-4.26,-0.02l-0.4,0.4l-0.0,1.06l-1.1,0.26l0.1,0.44l1.82,1.44l0.56,0.91l-3.19,0.21l-1.21,2.09l0.24,0.72l-0.2,0.44l-2.24,-2.18l-1.45,-0.93l-2.22,-0.69l-1.52,0.22l-3.07,1.16l-10.55,-3.85l-2.86,-1.96l-3.78,-0.92l-1.08,-1.19l-2.62,-1.43l-1.18,-1.54l-0.38,-0.81l0.66,-0.63l-0.18,-0.53l0.52,-0.76l0.01,-0.91l-2.0,-3.82l-2.21,-2.63l-2.53,-2.09l-1.19,-1.62l-2.2,-1.17l-0.3,-0.43l0.34,-1.48l-0.21,-0.45l-1.23,-0.6l-1.36,-1.2l-0.59,-1.78l-1.54,-0.47l-2.44,-2.55l-0.16,-0.9l-1.33,-2.03l-0.84,-1.99l-0.16,-1.33l-1.81,-1.1l-0.97,0.05l-1.31,-0.7l-0.57,0.22l-0.4,1.12l0.72,3.77l3.51,3.89l0.28,0.78l0.53,0.26l0.41,1.43l1.33,1.73l1.58,1.41l0.8,2.39l1.43,2.41l0.13,1.32l0.37,0.36l1.04,0.08l1.67,2.28l-0.85,0.76l-0.66,-1.51l-1.68,-1.54l-2.91,-1.87l0.06,-1.82l-0.54,-1.68l-2.91,-2.03l-0.55,0.09l-1.95,-1.1l-0.88,-0.94l0.68,-0.08l0.93,-1.01l0.08,-1.78l-1.93,-1.94l-1.46,-0.77l-3.75,-7.56l4.88,-0.42Z",name:"Mexico"},VU:{path:"M839.04,322.8l0.22,1.14l-0.44,0.03l-0.2,-1.45l0.42,0.27Z",name:"Vanuatu"},FR:{path:"M444.48,172.62l-0.64,1.78l-0.58,-0.31l-0.49,-1.72l0.4,-0.89l1.0,-0.72l0.3,1.85ZM429.64,147.1l1.78,1.58l1.46,-0.13l2.1,1.42l1.35,0.27l1.23,0.83l3.04,0.5l-1.03,1.85l-0.3,2.12l-0.41,0.32l-0.95,-0.24l-0.5,0.43l0.06,0.61l-1.81,1.92l-0.04,1.42l0.55,0.38l0.88,-0.36l0.61,0.97l-0.03,1.0l0.57,0.91l-0.75,1.09l0.65,2.39l1.27,0.57l-0.18,0.82l-2.01,1.53l-4.77,-0.8l-3.82,1.0l-0.53,1.85l-2.49,0.34l-2.71,-1.31l-1.16,0.57l-4.31,-1.29l-0.72,-0.86l1.19,-1.78l0.39,-6.45l-2.58,-3.3l-1.9,-1.66l-3.72,-1.23l-0.19,-1.72l2.81,-0.61l4.12,0.81l0.47,-0.48l-0.6,-2.77l1.94,0.95l5.83,-2.54l0.92,-2.74l1.6,-0.49l0.24,0.78l1.36,0.33l1.05,1.19ZM289.01,278.39l-0.81,0.8l-0.78,0.12l-0.5,-0.66l-0.56,-0.1l-0.91,0.6l-0.46,-0.22l1.09,-2.96l-0.96,-1.77l-0.17,-1.49l1.07,-1.77l2.32,0.75l2.51,2.01l0.3,0.74l-2.14,3.96Z",name:"France"},FI:{path:"M492.17,76.39l-0.23,3.5l3.52,2.63l-2.08,2.88l-0.02,0.44l2.8,4.56l-1.59,3.31l2.16,3.24l-0.94,2.39l0.14,0.47l3.44,2.51l-0.77,1.62l-7.52,6.95l-4.5,0.31l-4.38,1.37l-3.8,0.74l-1.44,-1.96l-2.17,-1.11l0.5,-3.66l-1.16,-3.33l1.09,-2.08l2.21,-2.42l5.67,-4.32l1.64,-0.83l0.21,-0.42l-0.46,-2.02l-3.38,-1.89l-0.75,-1.43l-0.22,-6.74l-6.79,-4.8l0.8,-0.62l2.54,2.12l3.46,-0.12l3.0,0.96l2.51,-2.11l1.17,-3.08l3.55,-1.38l2.76,1.53l-0.95,2.79Z",name:"Finland"},FJ:{path:"M871.53,326.34l-2.8,1.05l-0.08,-0.23l2.97,-1.21l-0.1,0.39ZM867.58,329.25l0.43,0.37l-0.27,0.88l-1.24,0.28l-1.04,-0.24l-0.14,-0.66l0.63,-0.58l0.92,0.26l0.7,-0.31Z",name:"Fiji"},FK:{path:"M274.36,425.85l1.44,1.08l-0.47,0.73l-3.0,0.89l-0.96,-1.0l-0.52,-0.05l-1.83,1.29l-0.73,-0.88l2.46,-1.64l1.93,0.76l1.67,-1.19Z",name:"Falkland Is."},NI:{path:"M202.33,252.67l0.81,-0.18l1.03,-1.02l-0.04,-0.88l0.68,-0.0l0.63,-0.54l0.97,0.22l1.53,-1.26l0.58,-0.99l1.17,0.34l2.41,-0.94l0.13,1.32l-0.81,1.94l0.1,2.74l-0.36,0.37l-0.11,1.75l-0.47,0.81l0.18,1.14l-1.73,-0.85l-0.71,0.27l-1.47,-0.6l-0.52,0.16l-4.01,-3.81Z",name:"Nicaragua"},NL:{path:"M430.31,143.39l0.6,-0.5l2.13,-4.8l3.2,-1.33l1.74,0.08l0.33,0.8l-0.59,2.92l-0.5,0.99l-1.26,0.0l-0.4,0.45l0.33,2.7l-2.2,-1.78l-2.62,0.58l-0.75,-0.11Z",name:"Netherlands"},NO:{path:"M491.44,67.41l6.8,2.89l-2.29,0.86l-0.15,0.65l2.33,2.38l-4.98,1.79l0.84,-2.45l-0.18,-0.48l-3.55,-1.8l-3.89,1.52l-1.42,3.38l-2.12,1.72l-2.64,-1.0l-3.11,0.21l-2.66,-2.22l-0.5,-0.01l-1.41,1.1l-1.44,0.17l-0.35,0.35l-0.32,2.47l-4.32,-0.64l-0.44,0.29l-0.58,2.11l-2.45,0.2l-4.15,7.68l-3.88,5.76l0.78,1.62l-0.64,1.16l-2.24,-0.06l-0.38,0.24l-1.66,3.89l0.15,5.17l1.57,2.04l-0.78,4.16l-2.02,2.48l-0.85,1.63l-1.3,-1.75l-0.58,-0.07l-4.87,4.19l-3.1,0.79l-3.16,-1.7l-0.85,-3.77l-0.77,-8.55l2.14,-2.31l6.55,-3.27l5.02,-4.17l10.63,-13.84l10.98,-8.7l5.35,-1.91l4.34,0.12l3.69,-3.64l4.49,0.19l4.37,-0.89ZM484.55,20.04l4.26,1.75l-3.1,2.55l-7.1,0.65l-7.08,-0.9l-0.37,-1.31l-0.37,-0.29l-3.44,-0.1l-2.08,-2.0l6.87,-1.44l3.9,1.31l2.39,-1.64l6.13,1.4ZM481.69,33.93l-4.45,1.74l-3.54,-0.99l1.12,-0.9l0.05,-0.58l-1.06,-1.22l4.22,-0.89l1.09,1.97l2.57,0.87ZM466.44,24.04l7.43,3.77l-5.41,1.86l-1.58,4.08l-2.26,1.2l-1.12,4.11l-2.61,0.18l-4.79,-2.86l1.84,-1.54l-0.1,-0.68l-3.69,-1.53l-4.77,-4.51l-1.73,-3.89l6.11,-1.82l1.54,1.92l3.57,-0.08l1.2,-1.96l3.32,-0.18l3.05,1.92Z",name:"Norway"},NA:{path:"M474.26,330.66l-0.97,0.04l-0.38,0.4l-0.07,8.9l-2.09,0.08l-0.39,0.4l-0.0,17.42l-1.98,1.23l-1.17,0.17l-2.44,-0.66l-0.48,-1.13l-0.99,-0.74l-0.54,0.05l-0.9,1.01l-1.53,-1.68l-0.93,-1.88l-1.99,-8.56l-0.06,-3.12l-0.33,-1.52l-2.3,-3.34l-1.91,-4.83l-1.96,-2.43l-0.12,-1.57l2.33,-0.79l1.43,0.07l1.81,1.13l10.23,-0.25l1.84,1.23l5.87,0.35ZM474.66,330.64l6.51,-1.6l1.9,0.39l-1.69,0.4l-1.31,0.83l-1.12,-0.94l-4.29,0.92Z",name:"Namibia"},NC:{path:"M838.78,341.24l-0.33,0.22l-2.9,-1.75l-3.26,-3.37l1.65,0.83l4.85,4.07Z",name:"New Caledonia"},NE:{path:"M454.75,226.53l1.33,1.37l0.48,0.07l1.27,-0.7l0.53,3.52l0.94,0.83l0.17,0.92l0.81,0.69l-0.44,0.95l-0.96,5.26l-0.13,3.22l-3.04,2.31l-1.22,3.57l1.02,1.24l-0.0,1.46l0.39,0.4l1.13,0.04l-0.9,1.25l-1.47,-2.42l-0.86,-0.29l-2.09,1.37l-1.74,-0.67l-1.45,-0.17l-0.85,0.35l-1.36,-0.07l-1.64,1.09l-1.06,0.05l-2.94,-1.28l-1.44,0.59l-1.01,-0.03l-0.97,-0.94l-2.7,-0.98l-2.69,0.3l-0.87,0.64l-0.47,1.6l-0.75,1.16l-0.12,1.53l-1.57,-1.1l-1.31,0.24l0.03,-0.81l-0.32,-0.41l-2.59,-0.52l-0.15,-1.16l-1.35,-1.6l-0.29,-1.0l0.13,-0.84l1.29,-0.08l1.08,-0.92l3.31,-0.22l2.22,-0.41l0.32,-0.34l0.2,-1.47l1.39,-1.88l-0.01,-5.66l3.36,-1.12l7.24,-5.12l8.42,-4.92l3.69,1.06Z",name:"Niger"},NG:{path:"M456.32,253.89l0.64,0.65l-0.28,1.04l-2.11,2.01l-2.03,5.18l-1.37,1.16l-1.15,3.18l-1.33,0.66l-1.46,-0.97l-1.21,0.16l-1.38,1.36l-0.91,0.24l-1.79,4.06l-2.33,0.81l-1.11,-0.07l-0.86,0.5l-1.71,-0.05l-1.19,-1.39l-0.89,-1.89l-1.77,-1.66l-3.95,-0.08l0.07,-5.21l0.42,-1.43l1.95,-2.3l-0.14,-0.91l0.43,-1.18l-0.53,-1.41l0.25,-2.92l0.72,-1.07l0.32,-1.34l0.46,-0.39l2.47,-0.28l2.34,0.89l1.15,1.02l1.28,0.04l1.22,-0.58l3.03,1.27l1.49,-0.14l1.36,-1.0l1.33,0.07l0.82,-0.35l3.45,0.8l1.82,-1.32l1.84,2.67l0.66,0.16Z",name:"Nigeria"},NZ:{path:"M857.8,379.65l1.86,3.12l0.44,0.18l0.3,-0.38l0.03,-1.23l0.38,0.27l0.57,2.31l2.02,0.94l1.81,0.27l1.57,-1.06l0.7,0.18l-1.15,3.59l-1.98,0.11l-0.74,1.2l0.2,1.11l-2.42,3.98l-1.49,0.92l-1.04,-0.85l1.21,-2.05l-0.81,-2.01l-2.63,-1.25l0.04,-0.57l1.82,-1.19l0.43,-2.34l-0.16,-2.03l-0.95,-1.82l-0.06,-0.72l-3.11,-3.64l-0.79,-1.52l1.56,1.45l1.76,0.66l0.65,2.34ZM853.83,393.59l0.57,1.24l0.59,0.16l1.42,-0.97l0.46,0.79l0.0,1.03l-2.47,3.48l-1.26,1.2l-0.06,0.5l0.55,0.87l-1.41,0.07l-2.33,1.38l-2.03,5.02l-3.02,2.16l-2.06,-0.06l-1.71,-1.04l-2.47,-0.2l-0.27,-0.73l1.22,-2.1l3.05,-2.94l1.62,-0.59l4.02,-2.82l1.57,-1.67l1.07,-2.16l0.88,-0.7l0.48,-1.75l1.24,-0.97l0.35,0.79Z",name:"New Zealand"},NP:{path:"M641.14,213.62l0.01,3.19l-1.74,0.04l-4.8,-0.86l-1.58,-1.39l-3.37,-0.34l-7.65,-3.7l0.8,-2.09l2.33,-1.7l1.77,0.75l2.49,1.76l1.38,0.41l0.99,1.35l1.9,0.52l1.99,1.17l5.49,0.9Z",name:"Nepal"},CI:{path:"M407.4,259.27l0.86,0.42l0.56,0.9l1.13,0.53l1.19,-0.61l0.97,-0.08l1.42,0.54l0.6,3.24l-1.03,2.08l-0.65,2.84l1.06,2.33l-0.06,0.53l-2.54,-0.47l-1.66,0.03l-3.06,0.46l-4.11,1.6l0.32,-3.06l-1.18,-1.31l-1.32,-0.66l0.42,-0.85l-0.2,-1.4l0.5,-0.67l0.01,-1.59l0.84,-0.32l0.26,-0.5l-1.15,-3.01l0.12,-0.5l0.51,-0.25l0.66,0.31l1.93,0.02l0.67,-0.71l0.71,-0.14l0.25,0.69l0.57,0.22l1.4,-0.61Z",name:"Côte d'Ivoire"},CH:{path:"M444.62,156.35l-0.29,0.87l0.18,0.53l1.13,0.58l1.0,0.1l-0.1,0.65l-0.79,0.38l-1.72,-0.37l-0.45,0.23l-0.45,1.04l-0.75,0.06l-0.84,-0.4l-1.32,1.0l-0.96,0.12l-0.88,-0.55l-0.81,-1.3l-0.49,-0.16l-0.63,0.26l0.02,-0.65l1.71,-1.66l0.1,-0.56l0.93,0.08l0.58,-0.46l1.99,0.02l0.66,-0.61l2.19,0.79Z",name:"Switzerland"},CO:{path:"M242.07,254.93l-1.7,0.59l-0.59,1.18l-1.7,1.69l-0.38,1.93l-0.67,1.43l0.31,0.57l1.03,0.13l0.25,0.9l0.57,0.64l-0.04,2.34l1.64,1.42l3.16,-0.24l1.26,0.28l1.67,2.06l0.41,0.13l4.09,-0.39l0.45,0.22l-0.92,1.95l-0.2,1.8l0.52,1.83l0.75,1.05l-1.12,1.1l0.07,0.63l0.84,0.51l0.74,1.29l-0.39,-0.45l-0.59,-0.01l-0.71,0.74l-4.71,-0.05l-0.4,0.41l0.03,1.57l0.33,0.39l1.11,0.2l-1.68,0.4l-0.29,0.38l-0.01,1.82l1.16,1.14l0.34,1.25l-1.05,7.05l-1.04,-0.87l1.26,-1.99l-0.13,-0.56l-2.18,-1.23l-1.38,0.2l-1.14,-0.38l-1.27,0.61l-1.55,-0.26l-1.38,-2.46l-1.23,-0.75l-0.85,-1.2l-1.67,-1.19l-0.86,0.13l-2.11,-1.32l-1.01,0.31l-1.8,-0.29l-0.52,-0.91l-3.09,-1.68l0.77,-0.52l-0.1,-1.12l0.41,-0.64l1.34,-0.32l2.0,-2.88l-0.11,-0.57l-0.66,-0.43l0.39,-1.38l-0.52,-2.1l0.49,-0.83l-0.4,-2.13l-0.97,-1.35l0.17,-0.66l0.86,-0.08l0.47,-0.75l-0.46,-1.63l1.41,-0.07l1.8,-1.69l0.93,-0.24l0.3,-0.38l0.45,-2.76l1.22,-1.0l1.44,-0.04l0.45,-0.5l1.91,0.12l2.93,-1.84l1.15,-1.14l0.91,0.46l-0.25,0.45Z",name:"Colombia"},CN:{path:"M740.23,148.97l4.57,1.3l2.8,2.17l0.98,2.9l0.38,0.27l3.8,0.0l2.32,-1.28l3.29,-0.75l-0.96,2.09l-1.02,1.28l-0.85,3.4l-1.52,2.73l-2.76,-0.5l-2.4,1.13l-0.21,0.45l0.64,2.57l-0.32,3.2l-0.94,0.06l-0.37,0.89l-0.91,-1.01l-0.64,0.07l-0.92,1.57l-3.73,1.25l-0.26,0.48l0.26,1.06l-1.5,-0.08l-1.09,-0.86l-0.56,0.06l-1.67,2.06l-2.7,1.56l-2.03,1.88l-3.4,0.83l-1.93,1.4l-1.15,0.34l0.33,-0.7l-0.41,-0.89l1.79,-1.79l0.02,-0.54l-1.32,-1.56l-0.48,-0.1l-2.24,1.09l-2.83,2.06l-1.51,1.83l-2.28,0.13l-1.55,1.49l-0.04,0.5l1.32,1.97l2.0,0.58l0.31,1.35l1.98,0.84l3.0,-1.96l2.0,1.02l1.49,0.11l0.22,0.83l-3.37,0.86l-1.12,1.48l-2.5,1.52l-1.29,1.99l0.14,0.56l2.57,1.48l0.97,2.7l3.17,4.63l-0.03,1.66l-1.35,0.65l-0.2,0.51l0.6,1.47l1.4,0.91l-0.89,3.82l-1.43,0.38l-3.85,6.44l-2.27,3.11l-6.78,4.57l-2.73,0.29l-1.45,1.04l-0.62,-0.61l-0.55,-0.01l-1.36,1.25l-3.39,1.27l-2.61,0.4l-1.1,2.79l-0.81,0.09l-0.49,-1.42l0.5,-0.85l-0.25,-0.59l-3.36,-0.84l-1.3,0.4l-2.31,-0.62l-0.94,-0.84l0.33,-1.28l-0.3,-0.49l-2.19,-0.46l-1.13,-0.93l-0.47,-0.02l-2.06,1.36l-4.29,0.28l-2.76,1.05l-0.28,0.43l0.32,2.53l-0.59,-0.03l-0.19,-1.34l-0.55,-0.34l-1.68,0.7l-2.46,-1.23l0.62,-1.87l-0.26,-0.51l-1.37,-0.44l-0.54,-2.22l-0.45,-0.3l-2.13,0.35l0.24,-2.48l2.39,-2.4l0.03,-4.31l-1.19,-0.92l-0.78,-1.49l-0.41,-0.21l-1.41,0.19l-1.98,-0.3l0.46,-1.07l-1.17,-1.7l-0.55,-0.11l-1.63,1.05l-2.25,-0.57l-2.89,1.73l-2.25,1.98l-1.75,0.29l-1.17,-0.71l-3.31,-0.65l-1.48,0.79l-1.04,1.27l-0.12,-1.17l-0.54,-0.34l-1.44,0.54l-5.55,-0.86l-1.98,-1.16l-1.89,-0.54l-0.99,-1.35l-1.34,-0.37l-2.55,-1.79l-2.01,-0.84l-1.21,0.56l-5.57,-3.45l-0.53,-2.31l1.19,0.25l0.48,-0.37l0.08,-1.42l-0.98,-1.56l0.15,-2.44l-2.69,-3.32l-4.12,-1.23l-0.67,-2.0l-1.92,-1.48l-0.38,-0.7l-0.51,-3.01l-1.52,-0.66l-0.7,0.13l-0.48,-2.05l0.55,-0.51l-0.09,-0.82l2.03,-1.19l1.6,-0.54l2.56,0.38l0.42,-0.22l0.85,-1.7l3.0,-0.33l1.1,-1.26l4.05,-1.77l0.39,-0.91l-0.17,-1.44l1.45,-0.67l0.2,-0.52l-2.07,-4.9l4.51,-1.12l1.37,-0.73l1.89,-5.51l4.98,0.86l1.51,-1.7l0.11,-2.87l1.99,-0.38l1.83,-2.06l0.49,-0.13l0.68,2.08l2.23,1.77l3.44,1.16l1.55,2.29l-0.92,3.49l0.96,1.67l6.54,1.13l2.95,1.87l1.47,0.35l1.06,2.62l1.53,1.91l3.05,0.08l5.14,0.67l3.37,-0.41l2.36,0.43l3.65,1.8l3.06,0.04l1.45,0.88l2.87,-1.59l3.95,-1.02l3.83,-0.14l3.06,-1.14l1.77,-1.6l1.72,-1.01l0.17,-0.49l-1.1,-2.05l1.02,-1.54l4.02,0.8l2.45,-1.61l3.76,-1.19l1.96,-2.13l1.63,-0.83l3.51,-0.4l1.92,0.34l0.46,-0.3l0.17,-1.5l-2.27,-2.22l-2.11,-1.09l-2.18,1.11l-2.32,-0.47l-1.29,0.32l-0.4,-0.82l2.73,-5.16l3.02,1.06l3.53,-2.06l0.18,-1.68l2.16,-3.35l1.49,-1.35l-0.03,-1.85l-1.07,-0.85l1.54,-1.26l2.98,-0.59l3.23,-0.09l3.64,0.99l2.04,1.16l3.29,6.71l0.92,3.19ZM696.92,237.31l-1.87,1.08l-1.63,-0.64l-0.06,-1.79l1.03,-0.98l2.58,-0.69l1.16,0.05l0.3,0.54l-0.98,1.06l-0.53,1.37Z",name:"China"},CM:{path:"M457.92,257.49l1.05,1.91l-1.4,0.16l-1.05,-0.23l-0.45,0.22l-0.54,1.19l0.08,0.45l1.48,1.47l1.05,0.45l1.01,2.46l-1.52,2.99l-0.68,0.68l-0.13,3.69l2.38,3.84l1.09,0.8l0.24,2.48l-3.67,-1.14l-11.27,-0.13l0.23,-1.79l-0.98,-1.66l-1.19,-0.54l-0.44,-0.97l-0.6,-0.42l1.71,-4.27l0.75,-0.13l1.38,-1.36l0.65,-0.03l1.71,0.99l1.93,-1.12l1.14,-3.18l1.38,-1.17l2.0,-5.14l2.17,-2.13l0.3,-1.64l-0.86,-0.88l0.03,-0.33l0.94,1.28l0.07,3.22Z",name:"Cameroon"},CL:{path:"M246.5,429.18l-3.14,1.83l-0.57,3.16l-0.64,0.05l-2.68,-1.06l-2.82,-2.33l-3.04,-1.89l-0.69,-1.85l0.63,-2.14l-1.21,-2.11l-0.31,-5.37l1.01,-2.91l2.57,-2.38l-0.18,-0.68l-3.16,-0.77l2.05,-2.47l0.77,-4.65l2.32,0.9l0.54,-0.29l1.31,-6.31l-0.22,-0.44l-1.68,-0.8l-0.56,0.28l-0.7,3.36l-0.81,-0.22l1.56,-9.41l1.15,-2.24l-0.71,-2.82l-0.18,-2.84l1.01,-0.33l3.26,-9.14l1.07,-4.22l-0.56,-4.21l0.74,-2.34l-0.29,-3.27l1.46,-3.34l2.04,-16.59l-0.66,-7.76l1.03,-0.53l0.54,-0.9l0.79,1.14l0.32,1.78l1.25,1.16l-0.69,2.55l1.33,2.9l0.97,3.59l0.46,0.29l1.5,-0.3l0.11,0.23l-0.76,2.44l-2.57,1.23l-0.23,0.37l0.08,4.33l-0.46,0.77l0.56,1.21l-1.58,1.51l-1.68,2.62l-0.89,2.47l0.2,2.7l-1.48,2.73l1.12,5.09l0.64,0.61l-0.01,2.29l-1.38,2.68l0.01,2.4l-1.89,2.04l0.02,2.75l0.69,2.57l-1.43,1.13l-1.26,5.68l0.39,3.51l-0.97,0.89l0.58,3.5l1.02,1.14l-0.65,1.02l0.15,0.57l1.0,0.53l0.16,0.69l-1.03,0.85l0.26,1.75l-0.89,4.03l-1.31,2.66l0.24,1.75l-0.71,1.83l-1.99,1.7l0.3,3.67l0.88,1.19l1.58,0.01l0.01,2.21l1.04,1.95l5.98,0.63ZM248.69,430.79l0.0,7.33l0.4,0.4l3.52,0.05l-0.44,0.75l-1.94,0.98l-2.49,-0.37l-1.88,-1.06l-2.55,-0.49l-5.59,-3.71l-2.38,-2.63l4.1,2.48l3.32,1.23l0.45,-0.12l1.29,-1.57l0.83,-2.32l2.05,-1.24l1.31,0.29Z",name:"Chile"},CA:{path:"M280.06,145.6l-1.67,2.88l0.07,0.49l0.5,0.04l1.46,-0.98l1.0,0.42l-0.56,0.72l0.17,0.62l2.22,0.89l1.35,-0.71l1.95,0.78l-0.66,2.01l0.5,0.51l1.32,-0.42l0.98,3.17l-0.91,2.41l-0.8,0.08l-1.23,-0.45l0.47,-2.25l-0.89,-0.83l-0.48,0.06l-2.78,2.63l-0.34,-0.02l1.02,-0.85l-0.14,-0.69l-2.4,-0.77l-7.4,0.08l-0.17,-0.41l1.3,-0.94l0.02,-0.64l-0.73,-0.58l1.85,-1.74l2.57,-5.16l1.47,-1.79l1.99,-1.05l0.46,0.06l-1.53,2.45ZM68.32,74.16l4.13,0.95l4.02,2.14l2.61,0.4l2.47,-1.89l2.88,-1.31l3.85,0.48l3.71,-1.94l3.82,-1.04l1.56,1.68l0.49,0.08l1.87,-1.04l0.65,-1.98l1.24,0.35l4.16,3.94l0.54,0.01l2.75,-2.49l0.26,2.59l0.49,0.35l3.08,-0.73l1.04,-1.27l2.73,0.23l3.83,1.86l5.86,1.61l3.47,0.75l2.44,-0.26l2.73,1.78l-2.98,1.81l-0.19,0.41l0.31,0.32l4.53,0.92l6.87,-0.5l2.0,-0.69l2.49,2.39l0.53,0.02l2.72,-2.16l-0.02,-0.64l-2.16,-1.54l1.15,-1.06l4.83,-0.61l1.84,0.95l2.48,2.31l3.01,-0.23l4.55,1.92l3.85,-0.67l3.61,0.1l0.41,-0.44l-0.25,-2.36l1.79,-0.61l3.49,1.32l-0.01,3.77l0.31,0.39l0.45,-0.22l1.48,-3.16l1.74,0.1l0.41,-0.3l1.13,-4.37l-2.78,-3.11l-2.8,-1.74l0.19,-4.64l2.71,-3.07l2.98,0.67l2.41,1.95l3.19,4.8l-1.99,1.97l0.21,0.68l4.33,0.84l-0.01,4.15l0.25,0.37l0.44,-0.09l3.07,-3.15l2.54,2.39l-0.61,3.33l2.42,2.88l0.61,0.0l2.61,-3.08l1.88,-3.82l0.17,-4.58l6.72,0.94l3.13,2.04l0.13,1.82l-1.76,2.19l-0.01,0.49l1.66,2.16l-0.26,1.71l-4.68,2.8l-3.28,0.61l-2.47,-1.2l-0.55,0.23l-0.73,2.04l-2.38,3.43l-0.74,1.77l-2.74,2.57l-3.44,0.25l-2.21,1.78l-0.28,2.53l-2.82,0.55l-3.12,3.22l-2.72,4.31l-1.03,3.17l-0.14,4.31l0.33,0.41l3.44,0.57l2.24,5.95l0.45,0.23l3.4,-0.69l4.52,1.51l2.43,1.31l1.91,1.73l3.1,0.96l2.62,1.46l6.6,0.54l-0.35,2.74l0.81,3.53l1.81,3.78l3.83,3.3l0.45,0.04l2.1,-1.28l1.37,-3.69l-1.31,-5.38l-1.45,-1.58l3.57,-1.47l2.84,-2.46l1.52,-2.8l-0.25,-2.55l-1.7,-3.07l-2.85,-2.61l2.8,-3.95l-1.08,-3.37l-0.79,-5.67l1.36,-0.7l6.76,1.41l2.12,-0.96l5.12,3.36l1.05,1.61l4.08,0.26l-0.06,2.87l0.83,4.7l0.3,0.32l2.16,0.54l1.73,2.06l0.5,0.09l3.63,-2.03l2.52,-4.19l1.26,-1.32l7.6,11.72l-0.92,2.04l0.16,0.51l3.3,1.97l2.22,1.98l4.1,0.98l1.43,0.99l0.95,2.79l2.1,0.68l0.84,1.08l0.17,3.45l-3.37,2.26l-4.22,1.24l-3.06,2.63l-4.06,0.51l-5.35,-0.69l-6.39,0.2l-2.3,2.41l-3.26,1.51l-6.47,7.15l-0.06,0.48l0.44,0.19l2.13,-0.52l4.17,-4.24l5.12,-2.62l3.52,-0.3l1.69,1.21l-2.12,2.21l0.81,3.47l1.02,2.61l3.47,1.6l4.14,-0.45l2.15,-2.8l0.26,1.48l1.14,0.8l-2.56,1.69l-5.5,1.82l-2.54,1.27l-2.74,2.15l-1.4,-0.16l-0.07,-2.01l4.14,-2.44l0.18,-0.45l-0.39,-0.29l-6.63,0.45l-1.39,-1.49l-0.14,-4.43l-1.11,-0.91l-1.82,0.39l-0.66,-0.66l-0.6,0.03l-1.91,2.39l-0.82,2.52l-0.8,1.27l-1.67,0.56l-0.46,0.76l-8.31,0.07l-1.21,0.62l-2.35,1.97l-0.71,-0.14l-1.37,0.96l-1.12,-0.48l-4.74,1.26l-0.9,1.17l0.21,0.62l1.73,0.3l-1.81,0.31l-1.85,0.81l-2.11,-0.13l-2.95,1.78l-0.69,-0.09l1.39,-2.1l1.73,-1.21l0.1,-2.29l1.16,-1.99l0.49,0.53l2.03,0.42l1.2,-1.16l0.02,-0.47l-2.66,-3.51l-2.28,-0.61l-5.64,-0.71l-0.4,-0.57l-0.79,0.13l0.2,-0.41l-0.22,-0.55l-0.68,-0.26l0.19,-1.26l-0.78,-0.73l0.31,-0.64l-0.29,-0.57l-2.6,-0.44l-0.75,-1.63l-0.94,-0.66l-4.31,-0.65l-1.13,1.19l-1.48,0.59l-0.85,1.06l-2.83,-0.76l-2.09,0.39l-2.39,-0.97l-4.24,-0.7l-0.57,-0.4l-0.41,-1.63l-0.4,-0.3l-0.85,0.02l-0.39,0.4l-0.01,0.85l-69.13,-0.01l-6.51,-4.52l-4.5,-1.38l-1.26,-2.66l0.33,-1.93l-0.23,-0.43l-3.01,-1.35l-0.55,-2.77l-2.89,-2.38l-0.04,-1.45l1.39,-1.83l-0.28,-2.55l-4.16,-2.2l-4.07,-6.6l-4.02,-3.22l-1.3,-1.88l-0.5,-0.13l-2.51,1.21l-2.23,1.87l-3.85,-3.88l-2.44,-1.04l-2.22,-0.13l0.03,-37.49ZM260.37,148.65l3.04,0.76l2.26,1.2l-3.78,-0.95l-1.53,-1.01ZM249.4,3.81l6.68,0.49l5.32,0.79l4.26,1.57l-0.07,1.1l-5.85,2.53l-6.02,1.21l-2.39,1.39l-0.18,0.45l0.39,0.29l4.01,-0.02l-4.65,2.82l-4.2,1.74l-4.19,4.59l-5.03,0.92l-1.67,1.15l-7.47,0.59l-0.37,0.37l0.32,0.42l2.41,0.49l-0.81,0.47l-0.12,0.59l1.83,2.41l-2.02,1.59l-3.81,1.51l-1.32,2.16l-3.38,1.53l-0.22,0.48l0.35,1.19l0.4,0.29l3.88,-0.18l0.03,0.61l-6.33,2.95l-6.41,-1.4l-7.43,0.79l-3.72,-0.62l-4.4,-0.25l-0.23,-1.83l4.29,-1.11l0.28,-0.51l-1.1,-3.45l1.0,-0.25l6.58,2.28l0.47,-0.16l-0.05,-0.49l-3.41,-3.45l-3.58,-0.98l1.48,-1.55l4.34,-1.29l0.97,-2.19l-0.16,-0.48l-3.42,-2.13l-0.81,-2.26l6.2,0.22l2.24,0.58l3.91,-2.1l0.2,-0.43l-0.35,-0.32l-5.64,-0.67l-8.73,0.36l-4.26,-1.9l-2.12,-2.4l-2.78,-1.66l-0.41,-1.52l3.31,-1.03l2.93,-0.2l4.91,-0.99l3.7,-2.27l2.87,0.3l2.62,1.67l0.56,-0.14l1.82,-3.2l3.13,-0.94l4.44,-0.69l7.53,-0.26l1.48,0.67l7.19,-1.06l10.8,0.79ZM203.85,57.54l0.01,0.42l1.97,2.97l0.68,-0.02l2.24,-3.72l5.95,-1.86l4.01,4.64l-0.35,2.91l0.5,0.43l4.95,-1.36l2.32,-1.8l5.31,2.28l3.27,2.11l0.3,1.84l0.48,0.33l4.42,-0.99l2.64,2.87l5.97,1.77l2.06,1.72l2.11,3.71l-4.19,1.86l-0.01,0.73l5.9,2.83l3.94,0.94l3.78,3.95l3.46,0.25l-0.63,2.37l-4.11,4.47l-2.76,-1.56l-3.9,-3.94l-3.59,0.41l-0.33,0.34l-0.19,2.72l2.63,2.38l3.42,1.89l0.94,0.97l1.55,3.75l-0.7,2.29l-2.74,-0.92l-6.25,-3.15l-0.51,0.13l0.05,0.52l6.07,5.69l0.18,0.59l-6.09,-1.39l-5.31,-2.24l-2.63,-1.66l0.6,-0.77l-0.12,-0.6l-7.39,-4.01l-0.59,0.37l0.03,0.79l-6.73,0.6l-1.69,-1.1l1.36,-2.46l4.51,-0.07l5.15,-0.52l0.31,-0.6l-0.74,-1.3l0.78,-1.84l3.21,-4.05l-0.67,-2.35l-1.11,-1.6l-3.84,-2.1l-4.35,-1.28l0.91,-0.63l0.06,-0.61l-2.65,-2.75l-2.34,-0.36l-1.89,-1.46l-0.53,0.03l-1.24,1.23l-4.36,0.55l-9.04,-0.99l-9.26,-1.98l-1.6,-1.22l2.22,-1.77l0.13,-0.44l-0.38,-0.27l-3.22,-0.02l-0.72,-4.25l1.83,-4.04l2.42,-1.85l5.5,-1.1l-1.39,2.35ZM261.19,159.33l2.07,0.61l1.44,-0.04l-1.15,0.63l-2.94,-1.23l-0.4,-0.68l0.36,-0.37l0.61,1.07ZM230.83,84.39l-2.37,0.18l-0.49,-1.63l0.93,-2.09l1.94,-0.51l1.62,0.99l0.02,1.52l-1.66,1.54ZM229.43,58.25l0.11,0.65l-4.87,-0.21l-2.72,0.62l-3.1,-2.57l0.08,-1.26l0.86,-0.23l5.57,0.51l4.08,2.5ZM222.0,105.02l-0.72,1.49l-0.63,-0.19l-0.48,-0.84l0.81,-0.99l0.65,0.05l0.37,0.46ZM183.74,38.32l2.9,1.7l4.79,-0.01l1.84,1.46l-0.49,1.68l0.23,0.48l2.82,1.14l1.76,1.26l7.01,0.65l4.1,-1.1l5.03,-0.43l3.93,0.35l2.48,1.77l0.46,1.7l-1.3,1.1l-3.56,1.01l-3.23,-0.59l-7.17,0.76l-5.09,0.09l-3.99,-0.6l-6.42,-1.54l-0.79,-2.51l-0.3,-2.49l-2.64,-2.5l-5.32,-0.72l-2.52,-1.4l0.68,-1.57l4.78,0.31ZM207.38,91.35l0.4,1.56l0.56,0.26l1.06,-0.52l1.32,0.96l5.42,2.57l0.2,1.68l0.46,0.35l1.68,-0.28l1.15,0.85l-1.55,0.87l-3.61,-0.88l-1.32,-1.69l-0.57,-0.06l-2.45,2.1l-3.12,1.79l-0.7,-1.87l-0.42,-0.26l-2.16,0.24l1.39,-1.39l0.32,-3.14l0.76,-3.35l1.18,0.22ZM215.49,102.6l-2.67,1.95l-1.4,-0.07l-0.3,-0.58l1.53,-1.48l2.84,0.18ZM202.7,24.12l2.53,1.59l-2.87,1.4l-4.53,4.05l-4.25,0.38l-5.03,-0.68l-2.45,-2.04l0.03,-1.62l1.82,-1.37l0.14,-0.45l-0.38,-0.27l-4.45,0.04l-2.59,-1.76l-1.41,-2.29l1.57,-2.32l1.62,-1.66l2.44,-0.39l0.25,-0.65l-0.6,-0.74l4.86,-0.25l3.24,3.11l8.16,2.3l1.9,3.61ZM187.47,59.2l-2.76,3.49l-2.38,-0.15l-1.44,-3.84l0.04,-2.2l1.19,-1.88l2.3,-1.23l5.07,0.17l4.11,1.02l-3.24,3.72l-2.88,0.89ZM186.07,48.79l-1.08,1.53l-3.34,-0.34l-2.56,-1.1l1.03,-1.75l3.25,-1.23l1.95,1.58l0.75,1.3ZM185.71,35.32l-5.3,-0.2l-0.32,-0.71l4.31,0.07l1.3,0.84ZM180.68,32.48l-3.34,1.0l-1.79,-1.1l-0.98,-1.87l-0.15,-1.73l4.1,0.53l2.67,1.7l-0.51,1.47ZM180.9,76.31l-1.1,1.08l-3.13,-1.23l-2.12,0.43l-2.71,-1.57l1.72,-1.09l1.55,-1.72l3.81,1.9l1.98,2.2ZM169.74,54.87l2.96,0.97l4.17,-0.57l0.41,0.88l-2.14,2.11l0.09,0.64l3.55,1.92l-0.4,3.72l-3.79,1.65l-2.17,-0.35l-1.72,-1.74l-6.02,-3.5l0.03,-0.85l4.68,0.54l0.4,-0.21l-0.05,-0.45l-2.48,-2.81l2.46,-1.95ZM174.45,40.74l1.37,1.73l0.07,2.44l-1.05,3.45l-3.79,0.47l-2.32,-0.69l0.05,-2.64l-0.44,-0.41l-3.68,0.35l-0.12,-3.1l2.45,0.1l3.67,-1.73l3.41,0.29l0.37,-0.26ZM170.05,31.55l0.67,1.56l-3.33,-0.49l-4.22,-1.77l-4.35,-0.16l1.4,-0.94l-0.06,-0.7l-2.81,-1.23l-0.12,-1.39l4.39,0.68l6.62,1.98l1.81,2.47ZM134.5,58.13l-1.02,1.82l0.45,0.58l5.4,-1.39l3.33,2.29l0.49,-0.03l2.6,-2.23l1.94,1.32l2.0,4.5l0.7,0.06l1.3,-2.29l-1.63,-4.46l1.69,-0.54l2.31,0.71l2.65,1.81l2.49,7.92l8.48,4.27l-0.19,1.35l-3.79,0.33l-0.26,0.67l1.4,1.49l-0.58,1.1l-4.23,-0.64l-4.43,-1.19l-3.0,0.28l-4.66,1.47l-10.52,1.04l-1.43,-2.02l-3.42,-1.2l-2.21,0.43l-2.51,-2.86l4.84,-1.05l3.6,0.19l3.27,-0.78l0.31,-0.39l-0.31,-0.39l-4.84,-1.06l-8.79,0.27l-0.85,-1.07l5.26,-1.66l0.27,-0.45l-0.4,-0.34l-3.8,0.06l-3.81,-1.06l1.81,-3.01l1.66,-1.79l6.48,-2.81l1.97,0.71ZM158.7,56.61l-1.7,2.44l-3.2,-2.75l0.37,-0.3l3.11,-0.18l1.42,0.79ZM149.61,42.73l1.01,1.89l0.5,0.18l2.14,-0.82l2.23,0.19l0.36,2.04l-1.33,2.09l-8.28,0.76l-6.35,2.15l-3.41,0.1l-0.19,-0.96l4.9,-2.08l0.23,-0.46l-0.41,-0.31l-11.25,0.59l-2.89,-0.74l3.04,-4.44l2.14,-1.32l6.81,1.69l4.58,3.06l4.37,0.39l0.36,-0.63l-3.36,-4.6l1.85,-1.53l2.18,0.51l0.77,2.26ZM144.76,34.41l-4.36,1.44l-3.0,-1.4l1.46,-1.24l3.47,-0.52l2.96,0.71l-0.52,1.01ZM145.13,29.83l-1.9,0.66l-3.67,-0.0l2.27,-1.61l3.3,0.95ZM118.92,65.79l-6.03,2.02l-1.33,-1.9l-5.38,-2.28l2.59,-5.05l2.16,-3.14l-0.02,-0.48l-1.97,-2.41l7.64,-0.7l3.6,1.02l6.3,0.27l4.42,2.95l-2.53,0.98l-6.24,3.43l-3.1,3.28l-0.11,2.01ZM129.54,35.53l-0.28,3.37l-1.72,1.62l-2.33,0.28l-4.61,2.19l-3.86,0.76l-2.64,-0.87l3.72,-3.4l5.01,-3.34l3.72,0.07l3.0,-0.67ZM111.09,152.69l-0.67,0.24l-3.85,-1.37l-0.83,-1.17l-2.12,-1.07l-0.66,-1.02l-2.4,-0.55l-0.74,-1.71l6.02,1.45l2.0,2.55l2.52,1.39l0.73,1.27ZM87.8,134.64l0.89,0.29l1.86,-0.21l-0.65,3.34l1.69,2.33l-1.31,-1.33l-0.99,-1.62l-1.17,-0.98l-0.33,-1.82Z",
|
8 |
-
name:"Canada"},CG:{path:"M466.72,276.48l-0.1,1.03l-1.25,2.97l-0.19,3.62l-0.46,1.78l-0.23,0.63l-1.61,1.19l-1.21,1.39l-1.09,2.43l0.04,2.09l-3.25,3.24l-0.5,-0.24l-0.5,-0.83l-1.36,-0.02l-0.98,0.89l-1.68,-0.99l-1.54,1.24l-1.52,-1.96l1.57,-1.14l0.11,-0.52l-0.77,-1.35l2.1,-0.66l0.39,-0.73l1.05,0.82l2.21,0.11l1.12,-1.37l0.37,-1.81l-0.27,-2.09l-1.13,-1.5l1.0,-2.69l-0.13,-0.45l-0.92,-0.58l-1.6,0.17l-0.51,-0.94l0.1,-0.61l2.75,0.09l3.97,1.24l0.51,-0.33l0.17,-1.28l1.24,-2.21l1.28,-1.14l2.76,0.49Z",name:"Congo"},CF:{path:"M461.16,278.2l-0.26,-1.19l-1.09,-0.77l-0.84,-1.17l-0.29,-1.0l-1.04,-1.15l0.08,-3.43l0.58,-0.49l1.16,-2.35l1.85,-0.17l0.61,-0.62l0.97,0.58l3.15,-0.96l2.48,-1.92l0.02,-0.96l2.81,0.02l2.36,-1.17l1.93,-2.85l1.16,-0.93l1.11,-0.3l0.27,0.86l1.34,1.47l-0.39,2.01l0.3,1.01l4.01,2.75l0.17,0.93l2.63,2.31l0.6,1.44l2.08,1.4l-3.84,-0.21l-1.94,0.88l-1.23,-0.49l-2.67,1.2l-1.29,-0.18l-0.51,0.36l-0.6,1.22l-3.35,-0.65l-1.57,-0.91l-2.42,-0.83l-1.45,0.91l-0.97,1.27l-0.26,1.56l-3.22,-0.43l-1.49,1.33l-0.94,1.62Z",name:"Central African Rep."},CD:{path:"M487.01,272.38l2.34,-0.14l1.35,1.84l1.34,0.45l0.86,-0.39l1.21,0.12l1.07,-0.41l0.54,0.89l2.04,1.54l-0.14,2.72l0.7,0.54l-1.38,1.13l-1.53,2.54l-0.17,2.05l-0.59,1.08l-0.02,1.72l-0.72,0.84l-0.66,3.01l0.63,1.32l-0.44,4.26l0.64,1.47l-0.37,1.22l0.86,1.8l1.53,1.41l0.3,1.26l0.44,0.5l-4.08,0.75l-0.92,1.81l0.51,1.34l-0.74,5.43l0.17,0.38l2.45,1.46l0.54,-0.1l0.12,1.62l-1.28,-0.01l-1.85,-2.35l-1.94,-0.45l-0.48,-1.13l-0.55,-0.2l-1.41,0.74l-1.71,-0.3l-1.01,-1.18l-2.49,-0.19l-0.44,-0.77l-1.98,-0.21l-2.88,0.36l0.11,-2.41l-0.85,-1.13l-0.16,-1.36l0.32,-1.73l-0.46,-0.89l-0.04,-1.49l-0.4,-0.39l-2.53,0.02l0.1,-0.41l-0.39,-0.49l-1.28,0.01l-0.43,0.45l-1.62,0.32l-0.83,1.79l-1.09,-0.28l-2.4,0.52l-1.37,-1.91l-1.3,-3.3l-0.38,-0.27l-7.39,-0.03l-2.46,0.42l0.5,-0.45l0.37,-1.47l0.66,-0.38l0.92,0.08l0.73,-0.82l0.87,0.02l0.31,0.68l1.4,0.36l3.59,-3.63l0.01,-2.23l1.02,-2.29l2.69,-2.39l0.43,-0.99l0.49,-1.96l0.17,-3.51l1.25,-2.95l0.36,-3.14l0.86,-1.13l1.1,-0.66l3.57,1.73l3.65,0.73l0.46,-0.21l0.8,-1.46l1.24,0.19l2.61,-1.17l0.81,0.44l1.04,-0.03l0.59,-0.66l0.7,-0.16l1.81,0.25Z",name:"Dem. Rep. Congo"},CZ:{path:"M458.46,144.88l1.22,1.01l1.47,0.23l0.13,0.93l1.36,0.68l0.54,-0.2l0.24,-0.55l1.15,0.25l0.53,1.09l1.68,0.18l0.6,0.84l-1.04,0.73l-0.96,1.28l-1.6,0.17l-0.55,0.56l-1.04,-0.46l-1.05,0.15l-2.12,-0.96l-1.05,0.34l-1.2,1.12l-1.56,-0.87l-2.57,-2.1l-0.53,-1.88l4.7,-2.52l0.71,0.26l0.9,-0.28Z",name:"Czech Rep."},CY:{path:"M504.36,193.47l0.43,0.28l-1.28,0.57l-0.92,-0.28l-0.24,-0.46l2.01,-0.13Z",name:"Cyprus"},CR:{path:"M211.34,258.05l0.48,0.99l1.6,1.6l-0.54,0.45l0.29,1.42l-0.25,1.19l-1.09,-0.59l-0.05,-1.25l-2.46,-1.42l-0.28,-0.77l-0.66,-0.45l-0.45,-0.0l-0.11,1.04l-1.32,-0.95l0.31,-1.3l-0.36,-0.6l0.31,-0.27l1.42,0.58l1.29,-0.14l0.56,0.56l0.74,0.17l0.55,-0.27Z",name:"Costa Rica"},CU:{path:"M221.21,227.25l1.27,1.02l2.19,-0.28l4.43,3.33l2.08,0.43l-0.1,0.38l0.36,0.5l1.75,0.1l1.48,0.84l-3.11,0.51l-4.15,-0.03l0.77,-0.67l-0.04,-0.64l-1.2,-0.74l-1.49,-0.16l-0.7,-0.61l-0.56,-1.4l-0.4,-0.25l-1.34,0.1l-2.2,-0.66l-0.88,-0.58l-3.18,-0.4l-0.27,-0.16l0.58,-0.74l-0.36,-0.29l-2.72,-0.05l-1.7,1.29l-0.91,0.03l-0.61,0.69l-1.01,0.22l1.11,-1.29l1.01,-0.52l3.69,-1.01l3.98,0.21l2.21,0.84Z",name:"Cuba"},SZ:{path:"M500.35,351.36l0.5,2.04l-0.38,0.89l-1.05,0.21l-1.23,-1.2l-0.02,-0.64l0.83,-1.57l1.34,0.27Z",name:"Swaziland"},SY:{path:"M511.0,199.79l0.05,-1.33l0.54,-1.36l1.28,-0.99l0.13,-0.45l-0.41,-1.11l-1.14,-0.36l-0.19,-1.74l0.52,-1.0l1.29,-1.21l0.2,-1.18l0.59,0.23l2.62,-0.76l1.36,0.52l2.06,-0.01l2.95,-1.08l3.25,-0.26l-0.67,0.94l-1.28,0.66l-0.21,0.4l0.23,2.01l-0.88,3.19l-10.15,5.73l-2.15,-0.85Z",name:"Syria"},KG:{path:"M621.35,172.32l-3.87,1.69l-0.96,1.18l-3.04,0.34l-1.13,1.86l-2.36,-0.35l-1.99,0.63l-2.39,1.4l0.06,0.95l-0.4,0.37l-4.52,0.43l-3.02,-0.93l-2.37,0.17l0.11,-0.79l2.32,0.42l1.13,-0.88l1.99,0.2l3.21,-2.14l-0.03,-0.69l-2.97,-1.57l-1.94,0.65l-1.22,-0.74l1.71,-1.58l-0.12,-0.67l-0.36,-0.15l0.32,-0.77l1.36,-0.35l4.02,1.02l0.49,-0.3l0.35,-1.59l1.09,-0.48l3.42,1.22l1.11,-0.31l7.64,0.39l1.16,1.0l1.23,0.39Z",name:"Kyrgyzstan"},KE:{path:"M506.26,284.69l1.87,-2.56l0.93,-2.15l-1.38,-4.08l-1.06,-1.6l2.82,-2.75l0.79,0.26l0.12,1.41l0.86,0.83l1.9,0.11l3.28,2.13l3.57,0.44l1.05,-1.12l1.96,-0.9l0.82,0.68l1.16,0.09l-1.78,2.45l0.03,9.12l1.3,1.94l-1.37,0.78l-0.67,1.03l-1.08,0.46l-0.34,1.67l-0.81,1.07l-0.45,1.55l-0.68,0.56l-3.2,-2.23l-0.35,-1.58l-8.86,-4.98l0.14,-1.6l-0.57,-1.04Z",name:"Kenya"},SS:{path:"M481.71,263.34l1.07,-0.72l1.2,-3.18l1.36,-0.26l1.61,1.99l0.87,0.34l1.1,-0.41l1.5,0.07l0.57,0.53l2.49,0.0l0.44,-0.63l1.07,-0.4l0.45,-0.84l0.59,-0.33l1.9,1.33l1.6,-0.2l2.83,-3.33l-0.32,-2.21l1.59,-0.52l-0.24,1.6l0.3,1.83l1.35,1.18l0.2,1.87l0.35,0.41l0.02,1.53l-0.23,0.47l-1.42,0.25l-0.85,1.44l0.3,0.6l1.4,0.16l1.11,1.08l0.59,1.13l1.03,0.53l1.28,2.36l-4.41,3.98l-1.74,0.01l-1.89,0.55l-1.47,-0.52l-1.15,0.57l-2.96,-2.62l-1.3,0.49l-1.06,-0.15l-0.79,0.39l-0.82,-0.22l-1.8,-2.7l-1.91,-1.1l-0.66,-1.5l-2.62,-2.32l-0.18,-0.94l-2.37,-1.6Z",name:"S. Sudan"},SR:{path:"M283.12,270.19l2.1,0.53l-1.08,1.95l0.2,1.72l0.93,1.49l-0.59,2.03l-0.43,0.71l-1.12,-0.42l-1.32,0.22l-0.93,-0.2l-0.46,0.26l-0.25,0.73l0.33,0.7l-0.89,-0.13l-1.39,-1.97l-0.31,-1.34l-0.97,-0.31l-0.89,-1.47l0.35,-1.61l1.45,-0.82l0.33,-1.87l2.61,0.44l0.57,-0.47l1.75,-0.16Z",name:"Suriname"},KH:{path:"M689.52,249.39l0.49,1.45l-0.28,2.74l-4.0,1.86l-0.16,0.6l0.68,0.95l-2.06,0.17l-2.05,0.97l-1.82,-0.32l-2.12,-3.7l-0.55,-2.85l1.4,-1.85l3.02,-0.45l2.23,0.35l2.01,0.98l0.51,-0.14l0.95,-1.48l1.74,0.74Z",name:"Cambodia"},SV:{path:"M195.8,250.13l1.4,-1.19l2.24,1.45l0.98,-0.27l0.44,0.2l-0.27,1.05l-1.14,-0.03l-3.64,-1.21Z",name:"El Salvador"},SK:{path:"M476.82,151.17l-1.14,1.9l-2.73,-0.92l-0.82,0.2l-0.74,0.8l-3.46,0.73l-0.47,0.69l-1.76,0.33l-1.88,-1.0l-0.18,-0.81l0.38,-0.75l1.87,-0.32l1.74,-1.89l0.83,0.16l0.79,-0.34l1.51,1.04l1.34,-0.63l1.25,0.3l1.65,-0.42l1.81,0.95Z",name:"Slovakia"},KR:{path:"M737.51,185.84l0.98,-0.1l0.87,-1.17l2.69,-0.32l0.33,-0.29l1.76,2.79l0.58,1.76l0.02,3.12l-0.8,1.32l-2.21,0.55l-1.93,1.13l-1.8,0.19l-0.2,-1.1l0.43,-2.28l-0.95,-2.56l1.43,-0.37l0.23,-0.62l-1.43,-2.06Z",name:"Korea"},SI:{path:"M456.18,162.07l-0.51,-1.32l0.18,-1.05l1.69,0.2l1.42,-0.71l2.09,-0.07l0.62,-0.51l0.21,0.47l-1.61,0.67l-0.44,1.34l-0.66,0.24l-0.26,0.82l-1.22,-0.49l-0.84,0.46l-0.69,-0.04Z",name:"Slovenia"},KP:{path:"M736.77,185.16l-0.92,-0.42l-0.88,0.62l-1.21,-0.88l0.96,-1.15l0.59,-2.59l-0.46,-0.74l-2.09,-0.77l1.64,-1.52l2.72,-1.58l1.58,-1.91l1.11,0.78l2.17,0.11l0.41,-0.5l-0.3,-1.22l3.52,-1.18l0.94,-1.4l0.98,1.08l-2.19,2.18l0.01,2.14l-1.06,0.54l-1.41,1.4l-1.7,0.52l-1.25,1.09l-0.14,1.98l0.94,0.45l1.15,1.04l-0.13,0.26l-2.6,0.29l-1.13,1.29l-1.22,0.08Z",name:"Dem. Rep. Korea"},SO:{path:"M525.13,288.48l-1.13,-1.57l-0.03,-8.86l2.66,-3.38l1.67,-0.13l2.13,-1.69l3.41,-0.23l7.08,-7.55l2.91,-3.69l0.08,-4.82l2.98,-0.67l1.24,-0.86l0.45,-0.0l-0.2,3.0l-1.21,3.62l-2.73,5.97l-2.13,3.65l-5.03,6.16l-8.56,6.4l-2.78,3.08l-0.8,1.56Z",name:"Somalia"},SN:{path:"M390.09,248.21l0.12,1.55l0.49,1.46l0.96,0.82l0.05,1.28l-1.26,-0.19l-0.75,0.33l-1.84,-0.61l-5.84,-0.13l-2.54,0.51l-0.22,-1.03l1.77,0.04l2.01,-0.91l1.03,0.48l1.09,0.04l1.29,-0.62l0.14,-0.58l-0.51,-0.74l-1.81,0.25l-1.13,-0.63l-0.79,0.04l-0.72,0.61l-2.31,0.06l-0.92,-1.77l-0.81,-0.64l0.64,-0.35l2.46,-3.74l1.04,0.19l1.38,-0.56l1.19,-0.02l2.72,1.37l3.03,3.48Z",name:"Senegal"},SL:{path:"M394.46,264.11l-1.73,1.98l-0.58,1.33l-2.07,-1.06l-1.22,-1.26l-0.65,-2.39l1.16,-0.96l0.67,-1.17l1.21,-0.52l1.66,0.0l1.03,1.64l0.52,2.41Z",name:"Sierra Leone"},SB:{path:"M826.69,311.6l-0.61,0.09l-0.2,-0.33l0.37,0.15l0.44,0.09ZM824.18,307.38l-0.26,-0.3l-0.31,-0.91l0.03,0.0l0.54,1.21ZM823.04,309.33l-1.66,-0.22l-0.2,-0.52l1.16,0.28l0.69,0.46ZM819.28,304.68l1.14,0.65l0.02,0.03l-0.81,-0.44l-0.35,-0.23Z",name:"Solomon Is."},SA:{path:"M537.53,210.34l2.0,0.24l0.9,1.32l1.49,-0.06l0.87,2.08l1.29,0.76l0.51,0.99l1.56,1.03l-0.1,1.9l0.32,0.9l1.58,2.47l0.76,0.53l0.7,-0.04l1.68,4.23l7.53,1.33l0.51,-0.29l0.77,1.25l-1.55,4.87l-7.29,2.52l-7.3,1.03l-2.34,1.17l-1.88,2.74l-0.76,0.28l-0.82,-0.78l-0.91,0.12l-2.88,-0.51l-3.51,0.25l-0.86,-0.56l-0.57,0.15l-0.66,1.27l0.16,1.11l-0.43,0.32l-0.93,-1.4l-0.33,-1.16l-1.23,-0.88l-1.27,-2.06l-0.78,-2.22l-1.73,-1.79l-1.14,-0.48l-1.54,-2.31l-0.21,-3.41l-1.44,-2.93l-1.27,-1.16l-1.33,-0.57l-1.31,-3.37l-0.77,-0.67l-0.97,-1.97l-2.8,-4.03l-1.06,-0.17l0.37,-1.96l0.2,-0.72l2.74,0.3l1.08,-0.84l0.6,-0.94l1.74,-0.35l0.65,-1.03l0.71,-0.4l0.1,-0.62l-2.06,-2.28l4.39,-1.22l0.48,-0.37l2.77,0.69l3.66,1.9l7.03,5.5l4.87,0.3Z",name:"Saudi Arabia"},SE:{path:"M480.22,89.3l-4.03,1.17l-2.43,2.86l0.26,2.57l-8.77,6.64l-1.78,5.79l1.78,2.68l2.22,1.96l-2.07,3.77l-2.72,1.13l-0.95,6.04l-1.29,3.01l-2.74,-0.31l-0.4,0.22l-1.31,2.59l-2.34,0.13l-0.75,-3.09l-2.08,-4.03l-1.83,-4.96l1.0,-1.93l2.14,-2.7l0.83,-4.45l-1.6,-2.17l-0.15,-4.94l1.48,-3.39l2.58,-0.15l0.87,-1.59l-0.78,-1.57l3.76,-5.59l4.04,-7.48l2.17,0.01l0.39,-0.29l0.57,-2.07l4.37,0.64l0.46,-0.34l0.33,-2.56l1.1,-0.13l6.94,4.87l0.06,6.32l0.66,1.36Z",name:"Sweden"},SD:{path:"M505.98,259.4l-0.34,-0.77l-1.17,-0.9l-0.26,-1.61l0.29,-1.81l-0.34,-0.46l-1.16,-0.17l-0.54,0.59l-1.23,0.11l-0.28,0.65l0.53,0.65l0.17,1.22l-2.44,3.0l-0.96,0.19l-2.39,-1.4l-0.95,0.52l-0.38,0.78l-1.11,0.41l-0.29,0.5l-1.94,0.0l-0.54,-0.52l-1.81,-0.09l-0.95,0.4l-2.45,-2.35l-2.07,0.54l-0.73,1.26l-0.6,2.1l-1.25,0.58l-0.75,-0.62l0.27,-2.65l-1.48,-1.78l-0.22,-1.48l-0.92,-0.96l-0.02,-1.29l-0.57,-1.16l-0.68,-0.16l0.69,-1.29l-0.18,-1.14l0.65,-0.62l0.03,-0.55l-0.36,-0.41l1.55,-2.97l1.91,0.16l0.43,-0.4l-0.1,-10.94l2.49,-0.01l0.4,-0.4l-0.0,-4.82l29.02,0.0l0.64,2.04l-0.49,0.66l0.36,2.69l0.93,3.16l2.12,1.55l-0.89,1.04l-1.72,0.39l-0.98,0.9l-1.43,5.65l0.24,1.15l-0.38,2.06l-0.96,2.38l-1.53,1.31l-1.32,2.91l-1.22,0.86l-0.37,1.34Z",name:"Sudan"},DO:{path:"M241.8,239.2l0.05,-0.65l-0.46,-0.73l0.42,-0.44l0.19,-1.0l-0.09,-1.53l1.66,0.01l1.99,0.63l0.33,0.67l1.28,0.19l0.33,0.76l1.0,0.08l0.8,0.62l-0.45,0.51l-1.13,-0.47l-1.88,-0.01l-1.27,0.59l-0.75,-0.55l-1.01,0.54l-0.79,1.4l-0.23,-0.61Z",name:"Dominican Rep."},DJ:{path:"M528.43,256.18l-0.45,0.66l-0.58,-0.25l-1.51,0.13l-0.18,-1.01l1.45,-1.95l0.83,0.17l0.77,-0.44l0.2,1.0l-1.2,0.51l-0.06,0.7l0.73,0.47Z",name:"Djibouti"},DK:{path:"M452.28,129.07l-1.19,2.24l-2.13,-1.6l-0.23,-0.95l2.98,-0.95l0.57,1.26ZM447.74,126.31l-0.26,0.57l-0.88,-0.07l-1.8,2.53l0.48,1.69l-1.09,0.36l-1.61,-0.39l-0.89,-1.69l-0.07,-3.43l0.96,-1.73l2.02,-0.2l1.09,-1.07l1.33,-0.67l-0.05,1.06l-0.73,1.41l0.3,1.0l1.2,0.64Z",name:"Denmark"},DE:{path:"M453.14,155.55l-0.55,-0.36l-1.2,-0.1l-1.87,0.57l-2.13,-0.13l-0.56,0.63l-0.86,-0.6l-0.96,0.09l-2.57,-0.93l-0.85,0.67l-1.47,-0.02l0.24,-1.75l1.23,-2.14l-0.28,-0.59l-3.52,-0.58l-0.92,-0.66l0.12,-1.2l-0.48,-0.88l0.27,-2.17l-0.37,-3.03l1.41,-0.22l0.63,-1.26l0.66,-3.19l-0.41,-1.18l0.26,-0.39l1.66,-0.15l0.33,0.54l0.62,0.07l1.7,-1.69l-0.54,-3.02l1.37,0.33l1.31,-0.37l0.31,1.18l2.25,0.71l-0.02,0.92l0.5,0.4l2.55,-0.65l1.34,-0.87l2.57,1.24l1.06,0.98l0.48,1.44l-0.57,0.74l-0.0,0.48l0.87,1.15l0.57,1.64l-0.14,1.29l0.82,1.7l-1.5,-0.07l-0.56,0.57l-4.47,2.15l-0.22,0.54l0.68,2.26l2.58,2.16l-0.66,1.11l-0.79,0.36l-0.23,0.43l0.32,1.87Z",name:"Germany"},YE:{path:"M528.27,246.72l0.26,-0.42l-0.22,-1.01l0.19,-1.5l0.92,-0.69l-0.07,-1.35l0.39,-0.75l1.01,0.47l3.34,-0.27l3.76,0.41l0.95,0.81l1.36,-0.58l1.74,-2.62l2.18,-1.09l6.86,-0.94l2.48,5.41l-1.64,0.76l-0.56,1.9l-6.23,2.16l-2.29,1.8l-1.93,0.05l-1.41,1.02l-4.24,0.74l-1.72,1.49l-3.28,0.19l-0.52,-1.18l0.02,-1.51l-1.34,-3.29Z",name:"Yemen"},AT:{path:"M462.89,152.8l0.04,2.25l-1.07,0.0l-0.33,0.63l0.36,0.51l-1.04,2.13l-2.02,0.07l-1.33,0.7l-5.29,-0.99l-0.47,-0.93l-0.44,-0.21l-2.47,0.55l-0.42,0.51l-3.18,-0.81l0.43,-0.91l1.12,0.78l0.6,-0.17l0.25,-0.58l1.93,0.12l1.86,-0.56l1.0,0.08l0.68,0.57l0.62,-0.15l0.26,-0.77l-0.3,-1.78l0.8,-0.44l0.68,-1.15l1.52,0.85l0.47,-0.06l1.34,-1.25l0.64,-0.17l1.81,0.92l1.28,-0.11l0.7,0.37Z",name:"Austria"},DZ:{path:"M441.46,188.44l-0.32,1.07l0.39,2.64l-0.54,2.16l-1.58,1.82l0.37,2.39l1.91,1.55l0.18,0.8l1.42,1.03l1.84,7.23l0.12,1.16l-0.57,5.0l0.2,1.51l-0.87,0.99l-0.02,0.51l1.41,1.86l0.14,1.2l0.89,1.48l0.5,0.16l0.98,-0.41l1.73,1.08l0.82,1.23l-8.22,4.81l-7.23,5.11l-3.43,1.13l-2.3,0.21l-0.28,-1.59l-2.56,-1.09l-0.67,-1.25l-26.12,-17.86l0.01,-3.47l3.77,-1.88l2.44,-0.41l2.12,-0.75l1.08,-1.42l2.81,-1.05l0.35,-2.08l1.33,-0.29l1.04,-0.94l3.47,-0.69l0.46,-1.08l-0.1,-0.45l-0.58,-0.52l-0.82,-2.81l-0.19,-1.83l-0.78,-1.49l2.03,-1.31l2.63,-0.48l1.7,-1.22l2.31,-0.84l8.24,-0.73l1.49,0.38l2.28,-1.1l2.46,-0.02l0.92,0.6l1.35,-0.05Z",name:"Algeria"},US:{path:"M892.72,99.2l1.31,0.53l1.41,-0.37l1.89,0.98l1.89,0.42l-1.32,0.58l-2.9,-1.53l-2.08,0.22l-0.26,-0.15l0.07,-0.67ZM183.22,150.47l0.37,1.47l1.12,0.85l4.23,0.7l2.39,0.98l2.17,-0.38l1.85,0.5l-1.55,0.65l-3.49,2.61l-0.16,0.77l0.5,0.39l2.33,-0.61l1.77,1.02l5.15,-2.4l-0.31,0.65l0.25,0.56l1.36,0.38l1.71,1.16l4.7,-0.88l0.67,0.85l1.31,0.21l0.58,0.58l-1.34,0.17l-2.18,-0.32l-3.6,0.89l-2.71,3.25l0.35,0.9l0.59,-0.0l0.55,-0.6l-1.36,4.65l0.29,3.09l0.67,1.58l0.61,0.45l1.77,-0.44l1.6,-1.96l0.14,-2.21l-0.82,-1.96l0.11,-1.13l1.19,-2.37l0.44,-0.33l0.48,0.75l0.4,-0.29l0.4,-1.37l0.6,-0.47l0.24,-0.8l1.69,0.49l1.65,1.08l-0.03,2.37l-1.27,1.13l-0.0,1.13l0.87,0.36l1.66,-1.29l0.5,0.17l0.5,2.6l-2.49,3.75l0.17,0.61l1.54,0.62l1.48,0.17l1.92,-0.44l4.72,-2.15l2.16,-1.8l-0.05,-1.24l0.75,-0.22l3.92,0.36l2.12,-1.05l0.21,-0.4l-0.28,-1.48l3.27,-2.4l8.32,-0.02l0.56,-0.82l1.9,-0.77l0.93,-1.51l0.74,-2.37l1.58,-1.98l0.92,0.62l1.47,-0.47l0.8,0.66l-0.0,4.09l1.96,2.6l-2.34,1.31l-5.37,2.09l-1.83,2.72l0.02,1.79l0.83,1.59l0.54,0.23l-6.19,0.94l-2.2,0.89l-0.23,0.48l0.45,0.29l2.99,-0.46l-2.19,0.56l-1.13,0.0l-0.15,-0.32l-0.48,0.08l-0.76,0.82l0.22,0.67l0.32,0.06l-0.41,1.62l-1.27,1.58l-1.48,-1.07l-0.49,-0.04l-0.16,0.46l0.52,1.58l0.61,0.59l0.03,0.79l-0.95,1.38l-1.21,-1.22l-0.27,-2.27l-0.35,-0.35l-0.42,0.25l-0.48,1.27l0.33,1.41l-0.97,-0.27l-0.48,0.24l0.18,0.5l1.52,0.83l0.1,2.52l0.79,0.51l0.52,3.42l-1.42,1.88l-2.47,0.8l-1.71,1.66l-1.31,0.25l-1.27,1.03l-0.43,0.99l-2.69,1.78l-2.64,3.03l-0.45,2.12l0.45,2.08l0.85,2.38l1.09,1.9l0.04,1.2l1.16,3.06l-0.18,2.69l-0.55,1.43l-0.47,0.21l-0.89,-0.23l-0.49,-1.18l-0.87,-0.56l-2.75,-5.16l0.48,-1.68l-0.72,-1.78l-2.01,-2.38l-1.12,-0.53l-2.72,1.18l-1.47,-1.35l-1.57,-0.68l-2.99,0.31l-2.17,-0.3l-2.0,0.19l-1.15,0.46l-0.19,0.58l0.39,0.63l0.14,1.34l-0.84,-0.2l-0.84,0.46l-1.58,-0.07l-2.08,-1.44l-2.09,0.33l-1.91,-0.62l-3.73,0.84l-2.39,2.07l-2.54,1.22l-1.45,1.41l-0.61,1.38l0.34,3.71l-0.29,0.02l-3.5,-1.33l-1.25,-3.11l-1.44,-1.5l-2.24,-3.56l-1.76,-1.09l-2.27,-0.01l-1.71,2.07l-1.76,-0.69l-1.16,-0.74l-1.52,-2.98l-3.93,-3.16l-4.34,-0.0l-0.4,0.4l-0.0,0.74l-6.5,0.02l-9.02,-3.14l-0.34,-0.71l-5.7,0.49l-0.43,-1.29l-1.62,-1.61l-1.14,-0.38l-0.55,-0.88l-1.28,-0.13l-1.01,-0.77l-2.22,-0.27l-0.43,-0.3l-0.36,-1.58l-2.4,-2.83l-2.01,-3.85l-0.06,-0.9l-2.92,-3.26l-0.33,-2.29l-1.3,-1.66l0.52,-2.37l-0.09,-2.57l-0.78,-2.3l0.95,-2.82l0.61,-5.68l-0.47,-4.27l-1.46,-4.08l3.19,0.79l1.26,2.83l0.69,0.08l0.69,-1.14l-1.1,-4.79l68.76,-0.0l0.4,-0.4l0.14,-0.86ZM32.44,67.52l1.73,1.97l0.55,0.05l0.99,-0.79l3.65,0.24l-0.09,0.62l0.32,0.45l3.83,0.77l2.61,-0.43l5.19,1.4l4.84,0.43l1.89,0.57l3.42,-0.7l6.14,1.87l-0.03,38.06l0.38,0.4l2.39,0.11l2.31,0.98l3.9,3.99l0.55,0.04l2.4,-2.03l2.16,-1.04l1.2,1.71l3.95,3.14l4.09,6.63l4.2,2.29l0.06,1.83l-1.02,1.23l-1.16,-1.08l-2.04,-1.03l-0.67,-2.89l-3.28,-3.03l-1.65,-3.57l-6.35,-0.32l-2.82,-1.01l-5.26,-3.85l-6.77,-2.04l-3.53,0.3l-4.81,-1.69l-3.25,-1.63l-2.78,0.8l-0.28,0.46l0.44,2.21l-3.91,0.96l-2.26,1.27l-2.3,0.65l-0.27,-1.65l1.05,-3.42l2.49,-1.09l0.16,-0.6l-0.69,-0.96l-0.55,-0.1l-3.19,2.12l-1.78,2.56l-3.55,2.61l-0.04,0.61l1.56,1.52l-2.07,2.29l-5.11,2.57l-0.77,1.66l-3.76,1.77l-0.92,1.73l-2.69,1.38l-1.81,-0.22l-6.95,3.32l-3.97,0.91l4.85,-2.5l2.59,-1.86l3.26,-0.52l1.19,-1.4l3.42,-2.1l2.59,-2.27l0.42,-2.68l1.23,-2.1l-0.04,-0.46l-0.45,-0.11l-2.68,1.03l-0.63,-0.49l-0.53,0.03l-1.05,1.04l-1.36,-1.54l-0.66,0.08l-0.32,0.62l-0.58,-1.14l-0.56,-0.16l-2.41,1.42l-1.07,-0.0l-0.17,-1.75l0.3,-1.71l-1.61,-1.33l-3.41,0.59l-1.96,-1.63l-1.57,-0.84l-0.15,-2.21l-1.7,-1.43l0.82,-1.88l1.99,-2.12l0.88,-1.92l1.71,-0.24l2.04,0.51l1.87,-1.77l1.91,0.25l1.91,-1.23l0.17,-0.43l-0.47,-1.82l-1.07,-0.7l1.39,-1.17l0.12,-0.45l-0.39,-0.26l-1.65,0.07l-2.66,0.88l-0.75,0.78l-1.92,-0.8l-3.46,0.44l-3.44,-0.91l-1.06,-1.61l-2.65,-1.99l2.91,-1.43l5.5,-2.0l1.52,0.0l-0.26,1.62l0.41,0.46l5.29,-0.16l0.3,-0.65l-2.03,-2.59l-3.14,-1.68l-1.79,-2.12l-2.4,-1.83l-3.09,-1.24l1.04,-1.69l4.23,-0.14l3.36,-2.07l0.73,-2.27l2.39,-1.99l2.42,-0.52l4.65,-1.97l2.46,0.23l3.71,-2.35l3.5,0.89ZM37.6,123.41l-2.25,1.23l-0.95,-0.69l-0.29,-1.24l3.21,-1.63l1.42,0.21l0.67,0.7l-1.8,1.42ZM31.06,234.03l0.98,0.47l0.74,0.87l-1.77,1.07l-0.44,-1.53l0.49,-0.89ZM29.34,232.07l0.18,0.05l0.08,0.05l-0.16,0.03l-0.11,-0.14ZM25.16,230.17l0.05,-0.03l0.18,0.22l-0.13,-0.01l-0.1,-0.18ZM5.89,113.26l-1.08,0.41l-2.21,-1.12l1.53,-0.4l1.62,0.28l0.14,0.83Z",name:"United States"},LV:{path:"M489.16,122.85l0.96,0.66l0.22,1.65l0.68,1.76l-3.65,1.7l-2.23,-1.58l-1.29,-0.26l-0.68,-0.77l-2.42,0.34l-4.16,-0.23l-2.47,0.9l0.06,-1.98l1.13,-2.06l1.95,-1.02l2.12,2.58l2.01,-0.07l0.38,-0.33l0.44,-2.52l1.76,-0.53l3.06,1.7l2.15,0.07Z",name:"Latvia"},UY:{path:"M286.85,372.74l-0.92,1.5l-2.59,1.44l-1.69,-0.52l-1.42,0.26l-2.39,-1.19l-1.52,0.08l-1.27,-1.3l0.16,-1.5l0.56,-0.79l-0.02,-2.73l1.21,-4.74l1.19,-0.21l2.37,2.0l1.08,0.03l4.36,3.17l1.22,1.6l-0.96,1.5l0.61,1.4Z",name:"Uruguay"},LB:{path:"M510.37,198.01l-0.88,0.51l1.82,-3.54l0.62,0.08l0.22,0.61l-1.13,0.88l-0.65,1.47Z",name:"Lebanon"},LA:{path:"M689.54,248.53l-1.76,-0.74l-0.49,0.15l-0.94,1.46l-1.32,-0.64l0.62,-0.98l0.11,-2.17l-2.04,-2.42l-0.25,-2.65l-1.9,-2.1l-2.15,-0.31l-0.78,0.91l-1.12,0.06l-1.05,-0.4l-2.06,1.2l-0.04,-1.59l0.61,-2.68l-0.36,-0.49l-1.35,-0.1l-0.11,-1.23l-0.96,-0.88l1.96,-1.89l0.39,0.36l1.33,0.07l0.42,-0.45l-0.34,-2.66l0.7,-0.21l1.28,1.81l1.11,2.35l0.36,0.23l2.82,0.02l0.71,1.67l-1.39,0.65l-0.72,0.93l0.13,0.6l2.91,1.51l3.6,5.25l1.88,1.78l0.56,1.62l-0.35,1.96Z",name:"Lao PDR"},TW:{path:"M724.01,226.68l-0.74,1.48l-0.9,-1.52l-0.25,-1.74l1.38,-2.44l1.73,-1.74l0.64,0.44l-1.85,5.52Z",name:"Taiwan"},TT:{path:"M266.64,259.32l0.28,-1.16l1.13,-0.22l-0.06,1.2l-1.35,0.18Z",name:"Trinidad and Tobago"},TR:{path:"M513.21,175.47l3.64,1.17l3.05,-0.44l2.1,0.26l3.11,-1.56l2.46,-0.13l2.19,1.33l0.33,0.82l-0.22,1.33l0.25,0.44l2.28,1.13l-1.17,0.57l-0.21,0.45l0.75,3.2l-0.41,1.16l1.13,1.92l-0.55,0.22l-0.9,-0.67l-2.91,-0.37l-1.24,0.46l-4.23,0.41l-2.81,1.05l-1.91,0.01l-1.52,-0.53l-2.58,0.75l-0.66,-0.45l-0.62,0.3l-0.12,1.45l-0.89,0.84l-0.47,-0.67l0.79,-1.3l-0.41,-0.2l-1.43,0.23l-2.0,-0.63l-2.02,1.65l-3.51,0.3l-2.13,-1.53l-2.7,-0.1l-0.86,1.24l-1.38,0.27l-2.29,-1.44l-2.71,-0.01l-1.37,-2.65l-1.68,-1.52l1.07,-1.99l-0.09,-0.49l-1.27,-1.12l2.37,-2.41l3.7,-0.11l1.28,-2.24l4.49,0.37l3.21,-1.97l2.81,-0.82l3.99,-0.06l4.29,2.07ZM488.79,176.72l-1.72,1.31l-0.5,-0.88l1.37,-2.57l-0.7,-0.85l1.7,-0.63l1.8,0.34l0.46,1.17l1.76,0.78l-2.87,0.32l-1.3,1.01Z",name:"Turkey"},LK:{path:"M624.16,268.99l-1.82,0.48l-0.99,-1.67l-0.42,-3.46l0.95,-3.43l1.21,0.98l2.26,4.19l-0.34,2.33l-0.85,0.58Z",name:"Sri Lanka"},TN:{path:"M448.1,188.24l-1.0,1.27l-0.02,1.32l0.84,0.88l-0.28,2.09l-1.53,1.32l-0.12,0.42l0.48,1.54l1.42,0.32l0.53,1.11l0.9,0.52l-0.11,1.67l-3.54,2.64l-0.1,2.38l-0.58,0.3l-0.96,-4.45l-1.54,-1.25l-0.16,-0.78l-1.92,-1.56l-0.18,-1.76l1.51,-1.62l0.59,-2.34l-0.38,-2.78l0.42,-1.21l2.45,-1.05l1.29,0.26l-0.06,1.11l0.58,0.38l1.47,-0.73Z",name:"Tunisia"},TL:{path:"M734.55,307.93l-0.1,-0.97l4.5,-0.86l-2.82,1.28l-1.59,0.55Z",name:"Timor-Leste"},TM:{path:"M553.03,173.76l-0.04,0.34l-0.09,-0.22l0.13,-0.12ZM555.87,172.66l0.45,-0.1l1.48,0.74l2.06,2.43l4.07,-0.18l0.38,-0.51l-0.32,-1.19l1.92,-0.94l1.91,-1.59l2.94,1.39l0.43,2.47l1.19,0.67l2.58,-0.13l0.62,0.4l1.32,3.12l4.54,3.44l2.67,1.45l3.06,1.14l-0.04,1.05l-1.33,-0.75l-0.59,0.19l-0.32,0.84l-2.2,0.81l-0.46,2.13l-1.21,0.74l-1.91,0.42l-0.73,1.33l-1.56,0.31l-2.22,-0.94l-0.2,-2.17l-0.38,-0.36l-1.73,-0.09l-2.76,-2.46l-2.14,-0.4l-2.84,-1.48l-1.78,-0.27l-1.24,0.53l-1.57,-0.08l-2.0,1.69l-1.7,0.43l-0.36,-1.58l0.36,-2.98l-0.22,-0.4l-1.65,-0.84l0.54,-1.69l-0.34,-0.52l-1.22,-0.13l0.36,-1.64l2.22,0.59l2.2,-0.95l0.12,-0.65l-1.77,-1.74l-0.66,-1.57Z",name:"Turkmenistan"},TJ:{path:"M597.75,178.82l-2.54,-0.44l-0.47,0.34l-0.24,1.7l0.43,0.45l2.64,-0.22l3.18,0.95l4.39,-0.41l0.56,2.37l0.52,0.29l0.67,-0.24l1.11,0.49l0.21,2.13l-3.76,-0.21l-1.8,1.32l-1.76,0.74l-0.61,-0.58l0.21,-2.23l-0.64,-0.49l-0.07,-0.93l-1.36,-0.66l-0.45,0.07l-1.08,1.01l-0.55,1.48l-1.31,-0.05l-0.95,1.16l-0.9,-0.35l-1.86,0.74l1.26,-2.83l-0.54,-2.17l-1.67,-0.82l0.33,-0.66l2.18,-0.04l1.19,-1.63l0.76,-1.79l2.43,-0.5l-0.26,1.0l0.73,1.05Z",name:"Tajikistan"},LS:{path:"M491.06,363.48l-0.49,0.15l-1.49,-1.67l1.1,-1.43l2.19,-1.44l1.51,1.27l-0.98,1.82l-1.23,0.38l-0.62,0.93Z",name:"Lesotho"},TH:{path:"M670.27,255.86l-1.41,3.87l0.15,2.0l0.38,0.36l1.38,0.07l0.9,2.04l0.55,2.34l1.4,1.44l1.61,0.38l0.96,0.97l-0.5,0.64l-1.1,0.2l-0.34,-1.18l-2.04,-1.1l-0.63,0.23l-0.63,-0.62l-0.48,-1.3l-2.56,-2.63l-0.73,0.41l0.95,-3.89l2.16,-4.22ZM670.67,254.77l-0.92,-2.18l-0.26,-2.61l-2.14,-3.06l0.71,-0.49l0.89,-2.59l-3.61,-5.45l0.87,-0.51l1.05,-2.58l1.74,-0.18l2.6,-1.59l0.76,0.56l0.13,1.39l0.37,0.36l1.23,0.09l-0.51,2.28l0.05,2.42l0.6,0.34l2.43,-1.42l0.77,0.39l1.47,-0.07l0.71,-0.88l1.48,0.14l1.71,1.88l0.25,2.65l1.92,2.11l-0.1,1.89l-0.61,0.86l-2.22,-0.33l-3.5,0.64l-1.6,2.12l0.36,2.58l-1.51,-0.79l-1.84,-0.01l0.28,-1.52l-0.4,-0.47l-2.21,0.01l-0.4,0.37l-0.19,2.74l-0.34,0.93Z",name:"Thailand"},TF:{path:"M596.68,420.38l-3.2,0.18l-0.05,-1.26l0.39,-1.41l1.3,0.78l2.08,0.35l-0.52,1.36Z",name:"Fr. S. Antarctic Lands"},TG:{path:"M422.7,257.63l-0.09,1.23l1.53,1.52l0.08,1.09l0.5,0.65l-0.11,5.62l0.49,1.47l-1.31,0.35l-1.02,-2.13l-0.18,-1.12l0.53,-2.19l-0.63,-1.16l-0.22,-3.68l-1.01,-1.4l0.07,-0.28l1.37,0.03Z",name:"Togo"},TD:{path:"M480.25,235.49l0.12,9.57l-2.1,0.05l-1.14,1.89l-0.69,1.63l0.34,0.73l-0.66,0.91l0.24,0.89l-0.86,1.95l0.45,0.5l0.6,-0.1l0.34,0.64l0.03,1.38l0.9,1.04l-1.45,0.43l-1.27,1.03l-1.83,2.76l-2.16,1.07l-2.31,-0.15l-0.86,0.25l-0.26,0.49l0.17,0.61l-2.11,1.68l-2.85,0.87l-1.09,-0.57l-0.73,0.66l-1.12,0.1l-1.1,-3.12l-1.25,-0.64l-1.22,-1.22l0.29,-0.64l3.01,0.04l0.35,-0.6l-1.3,-2.2l-0.08,-3.31l-0.97,-1.66l0.22,-1.04l-0.38,-0.48l-1.22,-0.04l0.0,-1.25l-0.98,-1.07l0.96,-3.01l3.25,-2.65l0.13,-3.33l0.95,-5.18l0.52,-1.07l-0.1,-0.48l-0.91,-0.78l-0.2,-0.96l-0.8,-0.58l-0.55,-3.65l2.1,-1.2l19.57,9.83Z",name:"Chad"},LY:{path:"M483.48,203.15l-0.75,1.1l0.29,1.39l-0.6,1.83l0.73,2.14l0.0,24.12l-2.48,0.01l-0.41,0.85l-19.41,-9.76l-4.41,2.28l-1.37,-1.33l-3.82,-1.1l-1.14,-1.65l-1.98,-1.23l-1.22,0.32l-0.66,-1.11l-0.17,-1.26l-1.28,-1.69l0.87,-1.19l-0.07,-4.34l0.43,-2.27l-0.86,-3.45l1.13,-0.76l0.22,-1.16l-0.2,-1.03l3.48,-2.61l0.29,-1.94l2.45,0.8l1.18,-0.21l1.98,0.44l3.15,1.18l1.37,2.54l5.72,1.67l2.64,1.35l1.61,-0.72l1.29,-1.34l-0.44,-2.34l0.66,-1.13l1.67,-1.21l1.57,-0.35l3.14,0.53l1.08,1.28l3.99,0.78l0.36,0.54Z",name:"Libya"},AE:{path:"M550.76,223.97l1.88,-0.4l3.84,0.02l4.78,-4.75l0.19,0.36l0.26,1.58l-0.81,0.01l-0.39,0.35l-0.08,2.04l-0.81,0.63l-0.01,0.96l-0.66,0.99l-0.39,1.41l-7.08,-1.25l-0.7,-1.96Z",name:"United Arab Emirates"},VE:{path:"M240.68,256.69l0.53,0.75l-0.02,1.06l-1.07,1.78l0.95,2.0l0.42,0.22l1.4,-0.44l0.56,-1.83l-0.77,-1.17l-0.1,-1.47l2.82,-0.93l0.26,-0.49l-0.28,-0.96l0.3,-0.28l0.66,1.31l1.96,0.26l1.4,1.22l0.08,0.68l0.39,0.35l4.81,-0.22l1.49,1.11l1.92,0.31l1.67,-0.84l0.22,-0.6l3.44,-0.14l-0.17,0.55l0.86,1.19l2.19,0.35l1.67,1.1l0.37,1.86l0.41,0.32l1.55,0.17l-1.66,1.35l-0.22,0.92l0.65,0.97l-1.67,0.54l-0.3,0.4l0.04,0.99l-0.56,0.57l-0.01,0.55l1.85,2.27l-0.66,0.69l-4.47,1.29l-0.72,0.54l-3.69,-0.9l-0.71,0.27l-0.02,0.7l0.91,0.53l-0.08,1.54l0.35,1.58l0.35,0.31l1.66,0.17l-1.3,0.52l-0.48,1.13l-2.68,0.91l-0.6,0.77l-1.57,0.13l-1.17,-1.13l-0.8,-2.52l-1.25,-1.26l1.02,-1.23l-1.29,-2.95l0.18,-1.62l1.0,-2.21l-0.2,-0.49l-1.14,-0.46l-4.02,0.36l-1.82,-2.1l-1.57,-0.33l-2.99,0.22l-1.06,-0.97l0.25,-1.23l-0.2,-1.01l-0.59,-0.69l-0.29,-1.06l-1.08,-0.39l0.78,-2.79l1.9,-2.11Z",name:"Venezuela"},AF:{path:"M600.7,188.88l-1.57,1.3l-0.1,0.48l0.8,2.31l-1.09,1.04l-0.03,1.27l-0.48,0.71l-2.16,-0.08l-0.37,0.59l0.78,1.48l-1.38,0.69l-1.06,1.69l0.06,1.7l-0.65,0.52l-0.91,-0.21l-1.91,0.36l-0.48,0.77l-1.88,0.13l-1.4,1.56l-0.18,2.32l-2.91,1.02l-1.65,-0.23l-0.71,0.55l-1.41,-0.3l-2.41,0.39l-3.52,-1.17l1.96,-2.35l-0.21,-1.78l-0.3,-0.34l-1.63,-0.4l-0.19,-1.58l-0.75,-2.03l0.95,-1.36l-0.19,-0.6l-0.73,-0.28l1.47,-4.8l2.14,0.9l2.12,-0.36l0.74,-1.34l1.77,-0.39l1.54,-0.92l0.63,-2.31l1.87,-0.5l0.49,-0.81l0.94,0.56l2.13,0.11l2.55,0.92l1.95,-0.83l0.65,0.43l0.56,-0.13l0.69,-1.12l1.57,-0.08l0.72,-1.66l0.79,-0.74l0.8,0.39l-0.17,0.56l0.71,0.58l-0.08,2.39l1.11,0.95ZM601.37,188.71l1.73,-0.71l1.43,-1.18l4.03,0.35l-2.23,0.74l-4.95,0.8Z",name:"Afghanistan"},IQ:{path:"M530.82,187.47l0.79,0.66l1.26,-0.28l1.46,3.08l1.63,0.94l0.14,1.23l-1.22,1.05l-0.53,2.52l1.73,2.67l3.12,1.62l1.15,1.88l-0.38,1.85l0.39,0.48l0.41,-0.0l0.02,1.07l0.76,0.94l-2.47,-0.1l-1.71,2.44l-4.31,-0.2l-7.02,-5.48l-3.73,-1.94l-2.88,-0.73l-0.85,-2.87l5.45,-3.02l0.95,-3.43l-0.19,-1.96l1.27,-0.7l1.22,-1.7l0.87,-0.36l2.69,0.34Z",name:"Iraq"},IS:{path:"M384.14,88.06l-0.37,2.61l2.54,2.51l-2.9,2.75l-9.19,3.4l-9.25,-1.66l1.7,-1.22l-0.1,-0.7l-4.05,-1.47l2.96,-0.53l0.33,-0.43l-0.11,-1.2l-0.33,-0.36l-4.67,-0.85l1.28,-2.04l3.45,-0.56l3.77,2.72l0.44,0.02l3.64,-2.16l3.3,1.08l3.98,-2.16l3.58,0.26Z",name:"Iceland"},IR:{path:"M533.43,187.16l-1.27,-2.15l0.42,-0.98l-0.71,-3.04l1.03,-0.5l0.33,0.83l1.26,1.35l2.05,0.51l1.11,-0.16l2.89,-2.11l0.62,-0.14l0.39,0.46l-0.72,1.2l0.06,0.49l1.56,1.53l0.65,0.04l0.67,1.81l2.56,0.83l1.87,1.48l3.69,0.49l3.91,-0.76l0.47,-0.73l2.17,-0.6l1.66,-1.54l1.51,0.08l1.18,-0.53l1.59,0.24l2.83,1.48l1.88,0.3l2.77,2.47l1.77,0.18l0.18,1.99l-1.68,5.49l0.24,0.5l0.61,0.23l-0.82,1.48l0.8,2.18l0.19,1.71l0.3,0.34l1.63,0.4l0.15,1.32l-2.15,2.35l-0.01,0.53l2.21,3.03l2.34,1.24l0.06,2.14l1.24,0.72l0.11,0.69l-3.31,1.27l-1.08,3.03l-9.68,-1.68l-0.99,-3.05l-1.43,-0.73l-2.17,0.46l-2.47,1.26l-2.83,-0.82l-2.46,-2.02l-2.41,-0.8l-3.42,-6.06l-0.48,-0.2l-1.18,0.39l-1.44,-0.82l-0.5,0.08l-0.65,0.74l-0.97,-1.01l-0.02,-1.31l-0.71,-0.39l0.26,-1.81l-1.29,-2.11l-3.13,-1.63l-1.58,-2.43l0.5,-1.9l1.31,-1.26l-0.19,-1.66l-1.74,-1.1l-1.57,-3.3Z",name:"Iran"},AM:{path:"M536.99,182.33l-0.28,0.03l-1.23,-2.13l-0.93,0.01l-0.62,-0.66l-0.69,-0.07l-0.96,-0.81l-1.56,-0.62l0.19,-1.12l-0.26,-0.79l2.72,-0.36l1.09,1.01l-0.17,0.92l1.02,0.78l-0.47,0.62l0.08,0.56l2.04,1.23l0.04,1.4Z",name:"Armenia"},IT:{path:"M451.59,158.63l3.48,0.94l-0.21,1.17l0.3,0.83l-1.49,-0.24l-2.04,1.1l-0.21,0.39l0.13,1.45l-0.25,1.12l0.82,1.57l2.39,1.63l1.31,2.54l2.79,2.43l2.05,0.08l0.21,0.23l-0.39,0.33l0.09,0.67l4.05,1.97l2.17,1.76l-0.16,0.36l-1.17,-1.08l-2.18,-0.49l-0.44,0.2l-1.05,1.91l0.14,0.54l1.57,0.95l-0.19,0.98l-1.06,0.33l-1.25,2.34l-0.37,0.08l0.0,-0.33l1.0,-2.45l-1.73,-3.17l-1.12,-0.51l-0.88,-1.33l-1.51,-0.51l-1.27,-1.25l-1.75,-0.18l-4.12,-3.21l-1.62,-1.65l-1.03,-3.19l-3.53,-1.36l-1.3,0.51l-1.69,1.41l0.16,-0.72l-0.28,-0.47l-1.14,-0.33l-0.53,-1.96l0.72,-0.78l0.04,-0.48l-0.65,-1.17l0.8,0.39l1.4,-0.23l1.11,-0.84l0.52,0.35l1.19,-0.1l0.75,-1.2l1.53,0.33l1.36,-0.56l0.35,-1.14l1.08,0.32l0.68,-0.64l1.98,-0.44l0.42,0.82ZM459.19,184.75l-0.65,1.65l0.32,1.05l-0.31,0.89l-1.5,-0.85l-4.5,-1.67l0.19,-0.82l2.67,0.23l3.78,-0.48ZM443.93,176.05l1.18,1.66l-0.3,3.32l-1.06,-0.01l-0.77,0.73l-0.53,-0.44l-0.1,-3.37l-0.39,-1.22l1.04,0.01l0.92,-0.68Z",name:"Italy"},VN:{path:"M690.56,230.25l-2.7,1.82l-2.09,2.46l-0.63,1.95l4.31,6.45l2.32,1.65l1.43,1.94l1.11,4.59l-0.32,4.24l-1.93,1.54l-2.84,1.61l-2.11,2.15l-2.73,2.06l-0.59,-1.05l0.63,-1.53l-0.13,-0.47l-1.34,-1.04l1.51,-0.71l2.55,-0.18l0.3,-0.63l-0.82,-1.14l4.0,-2.07l0.31,-3.05l-0.57,-1.77l0.42,-2.66l-0.73,-1.97l-1.86,-1.76l-3.63,-5.29l-2.72,-1.46l0.36,-0.47l1.5,-0.64l0.21,-0.52l-0.97,-2.27l-0.37,-0.24l-2.83,-0.02l-2.24,-3.9l0.83,-0.4l4.39,-0.29l2.06,-1.31l1.15,0.89l1.88,0.4l-0.17,1.51l1.35,1.16l1.67,0.45Z",name:"Vietnam"},AR:{path:"M249.29,428.93l-2.33,-0.52l-5.83,-0.43l-0.89,-1.66l0.05,-2.37l-0.45,-0.4l-1.43,0.18l-0.67,-0.91l-0.2,-3.13l1.88,-1.47l0.79,-2.04l-0.25,-1.7l1.3,-2.68l0.91,-4.15l-0.22,-1.69l0.85,-0.45l0.2,-0.44l-0.27,-1.16l-0.98,-0.68l0.59,-0.92l-0.05,-0.5l-1.04,-1.07l-0.52,-3.1l0.97,-0.86l-0.42,-3.58l1.2,-5.43l1.38,-0.98l0.16,-0.43l-0.75,-2.79l-0.01,-2.43l1.78,-1.75l0.06,-2.57l1.43,-2.85l0.01,-2.58l-0.69,-0.74l-1.09,-4.52l1.47,-2.7l-0.18,-2.79l0.85,-2.35l1.59,-2.46l1.73,-1.64l0.05,-0.52l-0.6,-0.84l0.44,-0.85l-0.07,-4.19l2.7,-1.44l0.86,-2.75l-0.21,-0.71l1.76,-2.01l2.9,0.57l1.38,1.78l0.68,-0.08l0.87,-1.87l2.39,0.09l4.95,4.77l2.17,0.49l3.0,1.92l2.47,1.0l0.25,0.82l-2.37,3.93l0.23,0.59l5.39,1.16l2.12,-0.44l2.45,-2.16l0.5,-2.38l0.76,-0.31l0.98,1.2l-0.04,1.8l-3.67,2.51l-2.85,2.66l-3.43,3.88l-1.3,5.07l0.01,2.72l-0.54,0.73l-0.36,3.28l3.14,2.64l-0.16,2.11l1.4,1.11l-0.1,1.09l-2.29,3.52l-3.55,1.49l-4.92,0.6l-2.71,-0.29l-0.43,0.51l0.5,1.65l-0.49,2.1l0.38,1.42l-1.19,0.83l-2.36,0.38l-2.3,-1.04l-1.38,0.83l0.41,3.64l1.69,0.91l1.4,-0.71l0.36,0.76l-2.04,0.86l-2.01,1.89l-0.97,4.63l-2.34,0.1l-2.09,1.78l-0.61,2.75l2.46,2.31l2.17,0.63l-0.7,2.32l-2.83,1.73l-1.73,3.86l-2.17,1.22l-1.16,1.67l0.75,3.76l1.04,1.28ZM256.71,438.88l-2.0,0.15l-1.4,-1.22l-3.82,-0.1l-0.0,-5.83l1.6,3.05l3.26,2.07l3.08,0.78l-0.71,1.1Z",name:"Argentina"},AU:{path:"M705.8,353.26l0.26,0.04l0.17,-0.47l-0.48,-1.42l0.92,1.11l0.45,0.15l0.27,-0.39l-0.1,-1.56l-1.98,-3.63l1.09,-3.31l-0.24,-1.57l0.34,-0.62l0.38,1.06l0.43,-0.19l0.99,-1.7l1.91,-0.83l1.29,-1.15l1.81,-0.91l0.96,-0.17l0.92,0.26l1.92,-0.95l1.47,-0.28l1.03,-0.8l1.43,0.04l2.78,-0.84l1.36,-1.15l0.71,-1.45l1.41,-1.26l0.3,-2.58l1.27,-1.59l0.78,1.65l0.54,0.19l1.07,-0.51l0.15,-0.6l-0.73,-1.0l0.45,-0.71l0.78,0.39l0.58,-0.3l0.28,-1.82l1.87,-2.14l1.12,-0.39l0.28,-0.58l0.62,0.17l0.53,-0.73l1.87,-0.57l1.65,1.05l1.35,1.48l3.39,0.38l0.43,-0.54l-0.46,-1.23l1.05,-1.79l1.04,-0.61l0.14,-0.55l-0.25,-0.41l0.88,-1.17l1.31,-0.77l1.3,0.27l2.1,-0.48l0.31,-0.4l-0.05,-1.3l-0.92,-0.77l1.48,0.56l1.41,1.07l2.11,0.65l0.81,-0.2l1.4,0.7l1.69,-0.66l0.8,0.19l0.64,-0.33l0.71,0.77l-1.33,1.94l-0.71,0.07l-0.35,0.51l0.24,0.86l-1.52,2.35l0.12,1.05l2.15,1.65l1.97,0.85l3.04,2.36l1.97,0.65l0.55,0.88l2.72,0.85l1.84,-1.1l2.07,-5.97l-0.42,-3.59l0.3,-1.73l0.47,-0.87l-0.31,-0.68l1.09,-3.28l0.46,-0.47l0.4,0.71l0.16,1.51l0.65,0.52l0.16,1.04l0.85,1.21l0.12,2.38l0.9,2.0l0.57,0.18l1.3,-0.78l1.69,1.7l-0.2,1.08l0.53,2.2l0.39,1.3l0.68,0.48l0.6,1.95l-0.19,1.48l0.81,1.76l6.01,3.69l-0.11,0.76l1.38,1.58l0.95,2.77l0.58,0.22l0.72,-0.41l0.8,0.9l0.61,0.01l0.46,2.41l4.81,4.71l0.66,2.02l-0.07,3.31l1.14,2.2l-0.13,2.24l-1.1,3.68l0.03,1.64l-0.47,1.89l-1.05,2.4l-1.9,1.47l-1.72,3.51l-2.38,6.09l-0.24,2.82l-1.14,0.8l-2.85,0.15l-2.31,1.19l-2.51,2.25l-3.09,-1.57l0.3,-1.15l-0.54,-0.47l-1.5,0.63l-2.01,1.94l-7.12,-2.18l-1.48,-1.63l-1.14,-3.74l-1.45,-1.26l-1.81,-0.26l0.56,-1.18l-0.61,-2.1l-0.72,-0.1l-1.14,1.82l-0.9,0.21l0.63,-0.82l0.36,-1.55l0.92,-1.31l-0.13,-2.34l-0.7,-0.22l-2.0,2.34l-1.51,0.93l-0.94,2.01l-1.35,-0.81l-0.02,-1.52l-1.57,-2.04l-1.09,-0.88l0.24,-0.33l-0.14,-0.59l-3.21,-1.69l-1.83,-0.12l-2.54,-1.35l-4.58,0.28l-6.02,1.9l-2.53,-0.13l-2.62,1.41l-2.13,0.63l-1.49,2.6l-3.49,0.31l-2.29,-0.5l-3.48,0.43l-1.6,1.47l-0.81,-0.04l-2.37,1.63l-3.26,-0.1l-3.72,-2.21l0.04,-1.05l1.19,-0.46l0.49,-0.89l0.21,-2.97l-0.28,-1.64l-1.34,-2.86l-0.38,-1.47l0.05,-1.72l-0.95,-1.7l-0.18,-0.97l-1.01,-0.99l-0.29,-1.98l-1.13,-1.75ZM784.92,393.44l2.65,1.02l3.23,-0.96l1.09,0.14l0.15,3.06l-0.85,1.13l-0.17,1.63l-0.87,-0.24l-1.57,1.91l-1.68,-0.18l-1.4,-2.36l-0.37,-2.04l-1.39,-2.51l0.04,-0.8l1.15,0.18Z",name:"Australia"},IL:{path:"M507.76,203.05l0.4,-0.78l0.18,0.4l-0.33,1.03l0.52,0.44l0.68,-0.22l-0.86,3.6l-1.16,-3.32l0.59,-0.74l-0.03,-0.41ZM508.73,200.34l0.37,-1.02l0.64,0.0l0.52,-0.51l-0.49,1.53l-0.56,-0.24l-0.48,0.23Z",name:"Israel"},IN:{path:"M623.34,207.03l-1.24,1.04l-0.97,2.55l0.22,0.51l8.04,3.87l3.42,0.37l1.57,1.38l4.92,0.88l2.18,-0.04l0.38,-0.3l0.29,-1.24l-0.32,-1.64l0.14,-0.87l0.82,-0.31l0.45,2.48l2.28,1.02l1.77,-0.38l4.14,0.1l0.38,-0.36l0.18,-1.66l-0.5,-0.65l1.37,-0.29l2.25,-1.99l2.7,-1.62l1.93,0.62l1.8,-0.98l0.79,1.14l-0.68,0.91l0.26,0.63l2.42,0.36l0.09,0.47l-0.83,0.75l0.13,1.07l-1.52,-0.29l-3.24,1.86l-0.13,1.78l-1.32,2.14l-0.18,1.39l-0.93,1.82l-1.64,-0.5l-0.52,0.37l-0.09,2.63l-0.56,1.11l0.19,0.81l-0.53,0.27l-1.18,-3.73l-1.08,-0.27l-0.38,0.31l-0.24,1.0l-0.66,-0.66l0.54,-1.06l1.22,-0.34l1.15,-2.25l-0.24,-0.56l-1.57,-0.47l-4.34,-0.28l-0.18,-1.56l-0.35,-0.35l-1.11,-0.12l-1.91,-1.12l-0.56,0.17l-0.88,1.82l0.11,0.49l1.36,1.07l-1.09,0.69l-0.69,1.11l0.18,0.56l1.24,0.57l-0.32,1.54l0.85,1.94l0.36,2.01l-0.22,0.59l-4.58,0.52l-0.33,0.42l0.13,1.8l-1.17,1.36l-3.65,1.81l-2.79,3.03l-4.32,3.28l-0.18,1.27l-4.65,1.79l-0.77,2.16l0.64,5.3l-1.06,2.49l-0.01,3.94l-1.24,0.28l-1.14,1.93l0.39,0.84l-1.68,0.53l-1.04,1.83l-0.65,0.47l-2.06,-2.05l-2.1,-6.02l-2.2,-3.64l-1.05,-4.75l-2.29,-3.57l-1.76,-8.2l0.01,-3.11l-0.49,-2.53l-0.55,-0.29l-3.53,1.52l-1.53,-0.27l-2.86,-2.77l0.85,-0.67l0.08,-0.55l-0.74,-1.03l-2.67,-2.06l1.24,-1.32l5.34,0.01l0.39,-0.49l-0.5,-2.29l-1.42,-1.46l-0.27,-1.93l-1.43,-1.2l2.31,-2.37l3.05,0.06l2.62,-2.85l1.6,-2.81l2.4,-2.73l0.07,-2.04l1.97,-1.48l-0.02,-0.65l-1.93,-1.31l-0.82,-1.78l-0.8,-2.21l0.9,-0.89l3.59,0.65l2.92,-0.42l2.33,-2.19l2.31,2.85l-0.24,2.13l0.99,1.59l-0.05,0.82l-1.34,-0.28l-0.47,0.48l0.7,3.06l2.62,1.99l2.99,1.65Z",
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function(a) {
|
2 |
+
var b = "0.3.4", c = "hasOwnProperty", d = /[\.\/]/, e = "*", f = function() {}, g = function(a, b) {
|
3 |
+
return a - b;
|
4 |
+
}, h, i, j = {
|
5 |
+
n: {}
|
6 |
+
}, k = function(a, b) {
|
7 |
+
var c = j, d = i, e = Array.prototype.slice.call(arguments, 2), f = k.listeners(a), l = 0, m = !1, n, o = [], p = {}, q = [], r = h, s = [];
|
8 |
+
h = a, i = 0;
|
9 |
+
for (var t = 0, u = f.length; t < u; t++) "zIndex" in f[t] && (o.push(f[t].zIndex),
|
10 |
+
f[t].zIndex < 0 && (p[f[t].zIndex] = f[t]));
|
11 |
+
o.sort(g);
|
12 |
+
while (o[l] < 0) {
|
13 |
+
n = p[o[l++]], q.push(n.apply(b, e));
|
14 |
+
if (i) {
|
15 |
+
i = d;
|
16 |
+
return q;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
for (t = 0; t < u; t++) {
|
20 |
+
n = f[t];
|
21 |
+
if ("zIndex" in n) if (n.zIndex == o[l]) {
|
22 |
+
q.push(n.apply(b, e));
|
23 |
+
if (i) break;
|
24 |
+
do {
|
25 |
+
l++, n = p[o[l]], n && q.push(n.apply(b, e));
|
26 |
+
if (i) break;
|
27 |
+
} while (n);
|
28 |
+
} else p[n.zIndex] = n; else {
|
29 |
+
q.push(n.apply(b, e));
|
30 |
+
if (i) break;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
i = d, h = r;
|
34 |
+
return q.length ? q : null;
|
35 |
+
};
|
36 |
+
k.listeners = function(a) {
|
37 |
+
var b = a.split(d), c = j, f, g, h, i, k, l, m, n, o = [ c ], p = [];
|
38 |
+
for (i = 0, k = b.length; i < k; i++) {
|
39 |
+
n = [];
|
40 |
+
for (l = 0, m = o.length; l < m; l++) {
|
41 |
+
c = o[l].n, g = [ c[b[i]], c[e] ], h = 2;
|
42 |
+
while (h--) f = g[h], f && (n.push(f), p = p.concat(f.f || []));
|
43 |
+
}
|
44 |
+
o = n;
|
45 |
+
}
|
46 |
+
return p;
|
47 |
+
}, k.on = function(a, b) {
|
48 |
+
var c = a.split(d), e = j;
|
49 |
+
for (var g = 0, h = c.length; g < h; g++) e = e.n, !e[c[g]] && (e[c[g]] = {
|
50 |
+
n: {}
|
51 |
+
}), e = e[c[g]];
|
52 |
+
e.f = e.f || [];
|
53 |
+
for (g = 0, h = e.f.length; g < h; g++) if (e.f[g] == b) return f;
|
54 |
+
e.f.push(b);
|
55 |
+
return function(a) {
|
56 |
+
+a == +a && (b.zIndex = +a);
|
57 |
+
};
|
58 |
+
}, k.stop = function() {
|
59 |
+
i = 1;
|
60 |
+
}, k.nt = function(a) {
|
61 |
+
if (a) return new RegExp("(?:\\.|\\/|^)" + a + "(?:\\.|\\/|$)").test(h);
|
62 |
+
return h;
|
63 |
+
}, k.off = k.unbind = function(a, b) {
|
64 |
+
var f = a.split(d), g, h, i, k, l, m, n, o = [ j ];
|
65 |
+
for (k = 0, l = f.length; k < l; k++) for (m = 0; m < o.length; m += i.length - 2) {
|
66 |
+
i = [ m, 1 ], g = o[m].n;
|
67 |
+
if (f[k] != e) g[f[k]] && i.push(g[f[k]]); else for (h in g) g[c](h) && i.push(g[h]);
|
68 |
+
o.splice.apply(o, i);
|
69 |
+
}
|
70 |
+
for (k = 0, l = o.length; k < l; k++) {
|
71 |
+
g = o[k];
|
72 |
+
while (g.n) {
|
73 |
+
if (b) {
|
74 |
+
if (g.f) {
|
75 |
+
for (m = 0, n = g.f.length; m < n; m++) if (g.f[m] == b) {
|
76 |
+
g.f.splice(m, 1);
|
77 |
+
break;
|
78 |
+
}
|
79 |
+
!g.f.length && delete g.f;
|
80 |
+
}
|
81 |
+
for (h in g.n) if (g.n[c](h) && g.n[h].f) {
|
82 |
+
var p = g.n[h].f;
|
83 |
+
for (m = 0, n = p.length; m < n; m++) if (p[m] == b) {
|
84 |
+
p.splice(m, 1);
|
85 |
+
break;
|
86 |
+
}
|
87 |
+
!p.length && delete g.n[h].f;
|
88 |
+
}
|
89 |
+
} else {
|
90 |
+
delete g.f;
|
91 |
+
for (h in g.n) g.n[c](h) && g.n[h].f && delete g.n[h].f;
|
92 |
+
}
|
93 |
+
g = g.n;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}, k.once = function(a, b) {
|
97 |
+
var c = function() {
|
98 |
+
var d = b.apply(this, arguments);
|
99 |
+
k.unbind(a, c);
|
100 |
+
return d;
|
101 |
+
};
|
102 |
+
return k.on(a, c);
|
103 |
+
}, k.version = b, k.toString = function() {
|
104 |
+
return "You are running Eve " + b;
|
105 |
+
}, typeof module != "undefined" && module.exports ? module.exports = k : typeof define != "undefined" ? define("eve", [], function() {
|
106 |
+
return k;
|
107 |
+
}) : a.eve = k;
|
108 |
+
})(this), function() {
|
109 |
+
function cF(a) {
|
110 |
+
for (var b = 0; b < cy.length; b++) cy[b].el.paper == a && cy.splice(b--, 1);
|
111 |
+
}
|
112 |
+
function cE(b, d, e, f, h, i) {
|
113 |
+
e = Q(e);
|
114 |
+
var j, k, l, m = [], o, p, q, t = b.ms, u = {}, v = {}, w = {};
|
115 |
+
if (f) for (y = 0, z = cy.length; y < z; y++) {
|
116 |
+
var x = cy[y];
|
117 |
+
if (x.el.id == d.id && x.anim == b) {
|
118 |
+
x.percent != e ? (cy.splice(y, 1), l = 1) : k = x, d.attr(x.totalOrigin);
|
119 |
+
break;
|
120 |
+
}
|
121 |
+
} else f = +v;
|
122 |
+
for (var y = 0, z = b.percents.length; y < z; y++) {
|
123 |
+
if (b.percents[y] == e || b.percents[y] > f * b.top) {
|
124 |
+
e = b.percents[y], p = b.percents[y - 1] || 0, t = t / b.top * (e - p), o = b.percents[y + 1],
|
125 |
+
j = b.anim[e];
|
126 |
+
break;
|
127 |
+
}
|
128 |
+
f && d.attr(b.anim[b.percents[y]]);
|
129 |
+
}
|
130 |
+
if (!!j) {
|
131 |
+
if (!k) {
|
132 |
+
for (var A in j) if (j[g](A)) if (U[g](A) || d.paper.customAttributes[g](A)) {
|
133 |
+
u[A] = d.attr(A), u[A] == null && (u[A] = T[A]), v[A] = j[A];
|
134 |
+
switch (U[A]) {
|
135 |
+
case C:
|
136 |
+
w[A] = (v[A] - u[A]) / t;
|
137 |
+
break;
|
138 |
+
|
139 |
+
case "colour":
|
140 |
+
u[A] = a.getRGB(u[A]);
|
141 |
+
var B = a.getRGB(v[A]);
|
142 |
+
w[A] = {
|
143 |
+
r: (B.r - u[A].r) / t,
|
144 |
+
g: (B.g - u[A].g) / t,
|
145 |
+
b: (B.b - u[A].b) / t
|
146 |
+
};
|
147 |
+
break;
|
148 |
+
|
149 |
+
case "path":
|
150 |
+
var D = bR(u[A], v[A]), E = D[1];
|
151 |
+
u[A] = D[0], w[A] = [];
|
152 |
+
for (y = 0, z = u[A].length; y < z; y++) {
|
153 |
+
w[A][y] = [ 0 ];
|
154 |
+
for (var F = 1, G = u[A][y].length; F < G; F++) w[A][y][F] = (E[y][F] - u[A][y][F]) / t;
|
155 |
+
}
|
156 |
+
break;
|
157 |
+
|
158 |
+
case "transform":
|
159 |
+
var H = d._, I = ca(H[A], v[A]);
|
160 |
+
if (I) {
|
161 |
+
u[A] = I.from, v[A] = I.to, w[A] = [], w[A].real = !0;
|
162 |
+
for (y = 0, z = u[A].length; y < z; y++) {
|
163 |
+
w[A][y] = [ u[A][y][0] ];
|
164 |
+
for (F = 1, G = u[A][y].length; F < G; F++) w[A][y][F] = (v[A][y][F] - u[A][y][F]) / t;
|
165 |
+
}
|
166 |
+
} else {
|
167 |
+
var J = d.matrix || new cb(), K = {
|
168 |
+
_: {
|
169 |
+
transform: H.transform
|
170 |
+
},
|
171 |
+
getBBox: function() {
|
172 |
+
return d.getBBox(1);
|
173 |
+
}
|
174 |
+
};
|
175 |
+
u[A] = [ J.a, J.b, J.c, J.d, J.e, J.f ], b$(K, v[A]), v[A] = K._.transform, w[A] = [ (K.matrix.a - J.a) / t, (K.matrix.b - J.b) / t, (K.matrix.c - J.c) / t, (K.matrix.d - J.d) / t, (K.matrix.e - J.e) / t, (K.matrix.f - J.f) / t ];
|
176 |
+
}
|
177 |
+
break;
|
178 |
+
|
179 |
+
case "csv":
|
180 |
+
var L = r(j[A])[s](c), M = r(u[A])[s](c);
|
181 |
+
if (A == "clip-rect") {
|
182 |
+
u[A] = M, w[A] = [], y = M.length;
|
183 |
+
while (y--) w[A][y] = (L[y] - u[A][y]) / t;
|
184 |
+
}
|
185 |
+
v[A] = L;
|
186 |
+
break;
|
187 |
+
|
188 |
+
default:
|
189 |
+
L = [][n](j[A]), M = [][n](u[A]), w[A] = [], y = d.paper.customAttributes[A].length;
|
190 |
+
while (y--) w[A][y] = ((L[y] || 0) - (M[y] || 0)) / t;
|
191 |
+
}
|
192 |
+
}
|
193 |
+
var O = j.easing, P = a.easing_formulas[O];
|
194 |
+
if (!P) {
|
195 |
+
P = r(O).match(N);
|
196 |
+
if (P && P.length == 5) {
|
197 |
+
var R = P;
|
198 |
+
P = function(a) {
|
199 |
+
return cC(a, +R[1], +R[2], +R[3], +R[4], t);
|
200 |
+
};
|
201 |
+
} else P = bf;
|
202 |
+
}
|
203 |
+
q = j.start || b.start || +new Date(), x = {
|
204 |
+
anim: b,
|
205 |
+
percent: e,
|
206 |
+
timestamp: q,
|
207 |
+
start: q + (b.del || 0),
|
208 |
+
status: 0,
|
209 |
+
initstatus: f || 0,
|
210 |
+
stop: !1,
|
211 |
+
ms: t,
|
212 |
+
easing: P,
|
213 |
+
from: u,
|
214 |
+
diff: w,
|
215 |
+
to: v,
|
216 |
+
el: d,
|
217 |
+
callback: j.callback,
|
218 |
+
prev: p,
|
219 |
+
next: o,
|
220 |
+
repeat: i || b.times,
|
221 |
+
origin: d.attr(),
|
222 |
+
totalOrigin: h
|
223 |
+
}, cy.push(x);
|
224 |
+
if (f && !k && !l) {
|
225 |
+
x.stop = !0, x.start = new Date() - t * f;
|
226 |
+
if (cy.length == 1) return cA();
|
227 |
+
}
|
228 |
+
l && (x.start = new Date() - x.ms * f), cy.length == 1 && cz(cA);
|
229 |
+
} else k.initstatus = f, k.start = new Date() - k.ms * f;
|
230 |
+
eve("raphael.anim.start." + d.id, d, b);
|
231 |
+
}
|
232 |
+
}
|
233 |
+
function cD(a, b) {
|
234 |
+
var c = [], d = {};
|
235 |
+
this.ms = b, this.times = 1;
|
236 |
+
if (a) {
|
237 |
+
for (var e in a) a[g](e) && (d[Q(e)] = a[e], c.push(Q(e)));
|
238 |
+
c.sort(bd);
|
239 |
+
}
|
240 |
+
this.anim = d, this.top = c[c.length - 1], this.percents = c;
|
241 |
+
}
|
242 |
+
function cC(a, b, c, d, e, f) {
|
243 |
+
function o(a, b) {
|
244 |
+
var c, d, e, f, j, k;
|
245 |
+
for (e = a, k = 0; k < 8; k++) {
|
246 |
+
f = m(e) - a;
|
247 |
+
if (z(f) < b) return e;
|
248 |
+
j = (3 * i * e + 2 * h) * e + g;
|
249 |
+
if (z(j) < 1e-6) break;
|
250 |
+
e = e - f / j;
|
251 |
+
}
|
252 |
+
c = 0, d = 1, e = a;
|
253 |
+
if (e < c) return c;
|
254 |
+
if (e > d) return d;
|
255 |
+
while (c < d) {
|
256 |
+
f = m(e);
|
257 |
+
if (z(f - a) < b) return e;
|
258 |
+
a > f ? c = e : d = e, e = (d - c) / 2 + c;
|
259 |
+
}
|
260 |
+
return e;
|
261 |
+
}
|
262 |
+
function n(a, b) {
|
263 |
+
var c = o(a, b);
|
264 |
+
return ((l * c + k) * c + j) * c;
|
265 |
+
}
|
266 |
+
function m(a) {
|
267 |
+
return ((i * a + h) * a + g) * a;
|
268 |
+
}
|
269 |
+
var g = 3 * b, h = 3 * (d - b) - g, i = 1 - g - h, j = 3 * c, k = 3 * (e - c) - j, l = 1 - j - k;
|
270 |
+
return n(a, 1 / (200 * f));
|
271 |
+
}
|
272 |
+
function cq() {
|
273 |
+
return this.x + q + this.y + q + this.width + " × " + this.height;
|
274 |
+
}
|
275 |
+
function cp() {
|
276 |
+
return this.x + q + this.y;
|
277 |
+
}
|
278 |
+
function cb(a, b, c, d, e, f) {
|
279 |
+
a != null ? (this.a = +a, this.b = +b, this.c = +c, this.d = +d, this.e = +e, this.f = +f) : (this.a = 1,
|
280 |
+
this.b = 0, this.c = 0, this.d = 1, this.e = 0, this.f = 0);
|
281 |
+
}
|
282 |
+
function bH(b, c, d) {
|
283 |
+
b = a._path2curve(b), c = a._path2curve(c);
|
284 |
+
var e, f, g, h, i, j, k, l, m, n, o = d ? 0 : [];
|
285 |
+
for (var p = 0, q = b.length; p < q; p++) {
|
286 |
+
var r = b[p];
|
287 |
+
if (r[0] == "M") e = i = r[1], f = j = r[2]; else {
|
288 |
+
r[0] == "C" ? (m = [ e, f ].concat(r.slice(1)), e = m[6], f = m[7]) : (m = [ e, f, e, f, i, j, i, j ],
|
289 |
+
e = i, f = j);
|
290 |
+
for (var s = 0, t = c.length; s < t; s++) {
|
291 |
+
var u = c[s];
|
292 |
+
if (u[0] == "M") g = k = u[1], h = l = u[2]; else {
|
293 |
+
u[0] == "C" ? (n = [ g, h ].concat(u.slice(1)), g = n[6], h = n[7]) : (n = [ g, h, g, h, k, l, k, l ],
|
294 |
+
g = k, h = l);
|
295 |
+
var v = bG(m, n, d);
|
296 |
+
if (d) o += v; else {
|
297 |
+
for (var w = 0, x = v.length; w < x; w++) v[w].segment1 = p, v[w].segment2 = s,
|
298 |
+
v[w].bez1 = m, v[w].bez2 = n;
|
299 |
+
o = o.concat(v);
|
300 |
+
}
|
301 |
+
}
|
302 |
+
}
|
303 |
+
}
|
304 |
+
}
|
305 |
+
return o;
|
306 |
+
}
|
307 |
+
function bG(b, c, d) {
|
308 |
+
var e = a.bezierBBox(b), f = a.bezierBBox(c);
|
309 |
+
if (!a.isBBoxIntersect(e, f)) return d ? 0 : [];
|
310 |
+
var g = bB.apply(0, b), h = bB.apply(0, c), i = ~~(g / 5), j = ~~(h / 5), k = [], l = [], m = {}, n = d ? 0 : [];
|
311 |
+
for (var o = 0; o < i + 1; o++) {
|
312 |
+
var p = a.findDotsAtSegment.apply(a, b.concat(o / i));
|
313 |
+
k.push({
|
314 |
+
x: p.x,
|
315 |
+
y: p.y,
|
316 |
+
t: o / i
|
317 |
+
});
|
318 |
+
}
|
319 |
+
for (o = 0; o < j + 1; o++) p = a.findDotsAtSegment.apply(a, c.concat(o / j)), l.push({
|
320 |
+
x: p.x,
|
321 |
+
y: p.y,
|
322 |
+
t: o / j
|
323 |
+
});
|
324 |
+
for (o = 0; o < i; o++) for (var q = 0; q < j; q++) {
|
325 |
+
var r = k[o], s = k[o + 1], t = l[q], u = l[q + 1], v = z(s.x - r.x) < .001 ? "y" : "x", w = z(u.x - t.x) < .001 ? "y" : "x", x = bD(r.x, r.y, s.x, s.y, t.x, t.y, u.x, u.y);
|
326 |
+
if (x) {
|
327 |
+
if (m[x.x.toFixed(4)] == x.y.toFixed(4)) continue;
|
328 |
+
m[x.x.toFixed(4)] = x.y.toFixed(4);
|
329 |
+
var y = r.t + z((x[v] - r[v]) / (s[v] - r[v])) * (s.t - r.t), A = t.t + z((x[w] - t[w]) / (u[w] - t[w])) * (u.t - t.t);
|
330 |
+
y >= 0 && y <= 1 && A >= 0 && A <= 1 && (d ? n++ : n.push({
|
331 |
+
x: x.x,
|
332 |
+
y: x.y,
|
333 |
+
t1: y,
|
334 |
+
t2: A
|
335 |
+
}));
|
336 |
+
}
|
337 |
+
}
|
338 |
+
return n;
|
339 |
+
}
|
340 |
+
function bF(a, b) {
|
341 |
+
return bG(a, b, 1);
|
342 |
+
}
|
343 |
+
function bE(a, b) {
|
344 |
+
return bG(a, b);
|
345 |
+
}
|
346 |
+
function bD(a, b, c, d, e, f, g, h) {
|
347 |
+
if (!(x(a, c) < y(e, g) || y(a, c) > x(e, g) || x(b, d) < y(f, h) || y(b, d) > x(f, h))) {
|
348 |
+
var i = (a * d - b * c) * (e - g) - (a - c) * (e * h - f * g), j = (a * d - b * c) * (f - h) - (b - d) * (e * h - f * g), k = (a - c) * (f - h) - (b - d) * (e - g);
|
349 |
+
if (!k) return;
|
350 |
+
var l = i / k, m = j / k, n = +l.toFixed(2), o = +m.toFixed(2);
|
351 |
+
if (n < +y(a, c).toFixed(2) || n > +x(a, c).toFixed(2) || n < +y(e, g).toFixed(2) || n > +x(e, g).toFixed(2) || o < +y(b, d).toFixed(2) || o > +x(b, d).toFixed(2) || o < +y(f, h).toFixed(2) || o > +x(f, h).toFixed(2)) return;
|
352 |
+
return {
|
353 |
+
x: l,
|
354 |
+
y: m
|
355 |
+
};
|
356 |
+
}
|
357 |
+
}
|
358 |
+
function bC(a, b, c, d, e, f, g, h, i) {
|
359 |
+
if (!(i < 0 || bB(a, b, c, d, e, f, g, h) < i)) {
|
360 |
+
var j = 1, k = j / 2, l = j - k, m, n = .01;
|
361 |
+
m = bB(a, b, c, d, e, f, g, h, l);
|
362 |
+
while (z(m - i) > n) k /= 2, l += (m < i ? 1 : -1) * k, m = bB(a, b, c, d, e, f, g, h, l);
|
363 |
+
return l;
|
364 |
+
}
|
365 |
+
}
|
366 |
+
function bB(a, b, c, d, e, f, g, h, i) {
|
367 |
+
i == null && (i = 1), i = i > 1 ? 1 : i < 0 ? 0 : i;
|
368 |
+
var j = i / 2, k = 12, l = [ -.1252, .1252, -.3678, .3678, -.5873, .5873, -.7699, .7699, -.9041, .9041, -.9816, .9816 ], m = [ .2491, .2491, .2335, .2335, .2032, .2032, .1601, .1601, .1069, .1069, .0472, .0472 ], n = 0;
|
369 |
+
for (var o = 0; o < k; o++) {
|
370 |
+
var p = j * l[o] + j, q = bA(p, a, c, e, g), r = bA(p, b, d, f, h), s = q * q + r * r;
|
371 |
+
n += m[o] * w.sqrt(s);
|
372 |
+
}
|
373 |
+
return j * n;
|
374 |
+
}
|
375 |
+
function bA(a, b, c, d, e) {
|
376 |
+
var f = -3 * b + 9 * c - 9 * d + 3 * e, g = a * f + 6 * b - 12 * c + 6 * d;
|
377 |
+
return a * g - 3 * b + 3 * c;
|
378 |
+
}
|
379 |
+
function by(a, b) {
|
380 |
+
var c = [];
|
381 |
+
for (var d = 0, e = a.length; e - 2 * !b > d; d += 2) {
|
382 |
+
var f = [ {
|
383 |
+
x: +a[d - 2],
|
384 |
+
y: +a[d - 1]
|
385 |
+
}, {
|
386 |
+
x: +a[d],
|
387 |
+
y: +a[d + 1]
|
388 |
+
}, {
|
389 |
+
x: +a[d + 2],
|
390 |
+
y: +a[d + 3]
|
391 |
+
}, {
|
392 |
+
x: +a[d + 4],
|
393 |
+
y: +a[d + 5]
|
394 |
+
} ];
|
395 |
+
b ? d ? e - 4 == d ? f[3] = {
|
396 |
+
x: +a[0],
|
397 |
+
y: +a[1]
|
398 |
+
} : e - 2 == d && (f[2] = {
|
399 |
+
x: +a[0],
|
400 |
+
y: +a[1]
|
401 |
+
}, f[3] = {
|
402 |
+
x: +a[2],
|
403 |
+
y: +a[3]
|
404 |
+
}) : f[0] = {
|
405 |
+
x: +a[e - 2],
|
406 |
+
y: +a[e - 1]
|
407 |
+
} : e - 4 == d ? f[3] = f[2] : d || (f[0] = {
|
408 |
+
x: +a[d],
|
409 |
+
y: +a[d + 1]
|
410 |
+
}), c.push([ "C", (-f[0].x + 6 * f[1].x + f[2].x) / 6, (-f[0].y + 6 * f[1].y + f[2].y) / 6, (f[1].x + 6 * f[2].x - f[3].x) / 6, (f[1].y + 6 * f[2].y - f[3].y) / 6, f[2].x, f[2].y ]);
|
411 |
+
}
|
412 |
+
return c;
|
413 |
+
}
|
414 |
+
function bx() {
|
415 |
+
return this.hex;
|
416 |
+
}
|
417 |
+
function bv(a, b, c) {
|
418 |
+
function d() {
|
419 |
+
var e = Array.prototype.slice.call(arguments, 0), f = e.join("␀"), h = d.cache = d.cache || {}, i = d.count = d.count || [];
|
420 |
+
if (h[g](f)) {
|
421 |
+
bu(i, f);
|
422 |
+
return c ? c(h[f]) : h[f];
|
423 |
+
}
|
424 |
+
i.length >= 1e3 && delete h[i.shift()], i.push(f), h[f] = a[m](b, e);
|
425 |
+
return c ? c(h[f]) : h[f];
|
426 |
+
}
|
427 |
+
return d;
|
428 |
+
}
|
429 |
+
function bu(a, b) {
|
430 |
+
for (var c = 0, d = a.length; c < d; c++) if (a[c] === b) return a.push(a.splice(c, 1)[0]);
|
431 |
+
}
|
432 |
+
function bm(a) {
|
433 |
+
if (Object(a) !== a) return a;
|
434 |
+
var b = new a.constructor();
|
435 |
+
for (var c in a) a[g](c) && (b[c] = bm(a[c]));
|
436 |
+
return b;
|
437 |
+
}
|
438 |
+
function a(c) {
|
439 |
+
if (a.is(c, "function")) return b ? c() : eve.on("raphael.DOMload", c);
|
440 |
+
if (a.is(c, E)) return a._engine.create[m](a, c.splice(0, 3 + a.is(c[0], C))).add(c);
|
441 |
+
var d = Array.prototype.slice.call(arguments, 0);
|
442 |
+
if (a.is(d[d.length - 1], "function")) {
|
443 |
+
var e = d.pop();
|
444 |
+
return b ? e.call(a._engine.create[m](a, d)) : eve.on("raphael.DOMload", function() {
|
445 |
+
e.call(a._engine.create[m](a, d));
|
446 |
+
});
|
447 |
+
}
|
448 |
+
return a._engine.create[m](a, arguments);
|
449 |
+
}
|
450 |
+
a.version = "2.1.0", a.eve = eve;
|
451 |
+
var b, c = /[, ]+/, d = {
|
452 |
+
circle: 1,
|
453 |
+
rect: 1,
|
454 |
+
path: 1,
|
455 |
+
ellipse: 1,
|
456 |
+
text: 1,
|
457 |
+
image: 1
|
458 |
+
}, e = /\{(\d+)\}/g, f = "prototype", g = "hasOwnProperty", h = {
|
459 |
+
doc: document,
|
460 |
+
win: window
|
461 |
+
}, i = {
|
462 |
+
was: Object.prototype[g].call(h.win, "Raphael"),
|
463 |
+
is: h.win.Raphael
|
464 |
+
}, j = function() {
|
465 |
+
this.ca = this.customAttributes = {};
|
466 |
+
}, k, l = "appendChild", m = "apply", n = "concat", o = "createTouch" in h.doc, p = "", q = " ", r = String, s = "split", t = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[s](q), u = {
|
467 |
+
mousedown: "touchstart",
|
468 |
+
mousemove: "touchmove",
|
469 |
+
mouseup: "touchend"
|
470 |
+
}, v = r.prototype.toLowerCase, w = Math, x = w.max, y = w.min, z = w.abs, A = w.pow, B = w.PI, C = "number", D = "string", E = "array", F = "toString", G = "fill", H = Object.prototype.toString, I = {}, J = "push", K = a._ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, L = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, M = {
|
471 |
+
NaN: 1,
|
472 |
+
Infinity: 1,
|
473 |
+
"-Infinity": 1
|
474 |
+
}, N = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/, O = w.round, P = "setAttribute", Q = parseFloat, R = parseInt, S = r.prototype.toUpperCase, T = a._availableAttrs = {
|
475 |
+
"arrow-end": "none",
|
476 |
+
"arrow-start": "none",
|
477 |
+
blur: 0,
|
478 |
+
"clip-rect": "0 0 1e9 1e9",
|
479 |
+
cursor: "default",
|
480 |
+
cx: 0,
|
481 |
+
cy: 0,
|
482 |
+
fill: "#fff",
|
483 |
+
"fill-opacity": 1,
|
484 |
+
font: '10px "Arial"',
|
485 |
+
"font-family": '"Arial"',
|
486 |
+
"font-size": "10",
|
487 |
+
"font-style": "normal",
|
488 |
+
"font-weight": 400,
|
489 |
+
gradient: 0,
|
490 |
+
height: 0,
|
491 |
+
href: "http://raphaeljs.com/",
|
492 |
+
"letter-spacing": 0,
|
493 |
+
opacity: 1,
|
494 |
+
path: "M0,0",
|
495 |
+
r: 0,
|
496 |
+
rx: 0,
|
497 |
+
ry: 0,
|
498 |
+
src: "",
|
499 |
+
stroke: "#000",
|
500 |
+
"stroke-dasharray": "",
|
501 |
+
"stroke-linecap": "butt",
|
502 |
+
"stroke-linejoin": "butt",
|
503 |
+
"stroke-miterlimit": 0,
|
504 |
+
"stroke-opacity": 1,
|
505 |
+
"stroke-width": 1,
|
506 |
+
target: "_blank",
|
507 |
+
"text-anchor": "middle",
|
508 |
+
title: "Raphael",
|
509 |
+
transform: "",
|
510 |
+
width: 0,
|
511 |
+
x: 0,
|
512 |
+
y: 0
|
513 |
+
}, U = a._availableAnimAttrs = {
|
514 |
+
blur: C,
|
515 |
+
"clip-rect": "csv",
|
516 |
+
cx: C,
|
517 |
+
cy: C,
|
518 |
+
fill: "colour",
|
519 |
+
"fill-opacity": C,
|
520 |
+
"font-size": C,
|
521 |
+
height: C,
|
522 |
+
opacity: C,
|
523 |
+
path: "path",
|
524 |
+
r: C,
|
525 |
+
rx: C,
|
526 |
+
ry: C,
|
527 |
+
stroke: "colour",
|
528 |
+
"stroke-opacity": C,
|
529 |
+
"stroke-width": C,
|
530 |
+
transform: "transform",
|
531 |
+
width: C,
|
532 |
+
x: C,
|
533 |
+
y: C
|
534 |
+
}, V = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g, W = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/, X = {
|
535 |
+
hs: 1,
|
536 |
+
rg: 1
|
537 |
+
}, Y = /,?([achlmqrstvxz]),?/gi, Z = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi, $ = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi, _ = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi, ba = a._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/, bb = {}, bc = function(a, b) {
|
538 |
+
return a.key - b.key;
|
539 |
+
}, bd = function(a, b) {
|
540 |
+
return Q(a) - Q(b);
|
541 |
+
}, be = function() {}, bf = function(a) {
|
542 |
+
return a;
|
543 |
+
}, bg = a._rectPath = function(a, b, c, d, e) {
|
544 |
+
if (e) return [ [ "M", a + e, b ], [ "l", c - e * 2, 0 ], [ "a", e, e, 0, 0, 1, e, e ], [ "l", 0, d - e * 2 ], [ "a", e, e, 0, 0, 1, -e, e ], [ "l", e * 2 - c, 0 ], [ "a", e, e, 0, 0, 1, -e, -e ], [ "l", 0, e * 2 - d ], [ "a", e, e, 0, 0, 1, e, -e ], [ "z" ] ];
|
545 |
+
return [ [ "M", a, b ], [ "l", c, 0 ], [ "l", 0, d ], [ "l", -c, 0 ], [ "z" ] ];
|
546 |
+
}, bh = function(a, b, c, d) {
|
547 |
+
d == null && (d = c);
|
548 |
+
return [ [ "M", a, b ], [ "m", 0, -d ], [ "a", c, d, 0, 1, 1, 0, 2 * d ], [ "a", c, d, 0, 1, 1, 0, -2 * d ], [ "z" ] ];
|
549 |
+
}, bi = a._getPath = {
|
550 |
+
path: function(a) {
|
551 |
+
return a.attr("path");
|
552 |
+
},
|
553 |
+
circle: function(a) {
|
554 |
+
var b = a.attrs;
|
555 |
+
return bh(b.cx, b.cy, b.r);
|
556 |
+
},
|
557 |
+
ellipse: function(a) {
|
558 |
+
var b = a.attrs;
|
559 |
+
return bh(b.cx, b.cy, b.rx, b.ry);
|
560 |
+
},
|
561 |
+
rect: function(a) {
|
562 |
+
var b = a.attrs;
|
563 |
+
return bg(b.x, b.y, b.width, b.height, b.r);
|
564 |
+
},
|
565 |
+
image: function(a) {
|
566 |
+
var b = a.attrs;
|
567 |
+
return bg(b.x, b.y, b.width, b.height);
|
568 |
+
},
|
569 |
+
text: function(a) {
|
570 |
+
var b = a._getBBox();
|
571 |
+
return bg(b.x, b.y, b.width, b.height);
|
572 |
+
}
|
573 |
+
}, bj = a.mapPath = function(a, b) {
|
574 |
+
if (!b) return a;
|
575 |
+
var c, d, e, f, g, h, i;
|
576 |
+
a = bR(a);
|
577 |
+
for (e = 0, g = a.length; e < g; e++) {
|
578 |
+
i = a[e];
|
579 |
+
for (f = 1, h = i.length; f < h; f += 2) c = b.x(i[f], i[f + 1]), d = b.y(i[f], i[f + 1]),
|
580 |
+
i[f] = c, i[f + 1] = d;
|
581 |
+
}
|
582 |
+
return a;
|
583 |
+
};
|
584 |
+
a._g = h, a.type = h.win.SVGAngle || h.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML";
|
585 |
+
if (a.type == "VML") {
|
586 |
+
var bk = h.doc.createElement("div"), bl;
|
587 |
+
bk.innerHTML = '<v:shape adj="1"/>', bl = bk.firstChild, bl.style.behavior = "url(#default#VML)";
|
588 |
+
if (!bl || typeof bl.adj != "object") return a.type = p;
|
589 |
+
bk = null;
|
590 |
+
}
|
591 |
+
a.svg = !(a.vml = a.type == "VML"), a._Paper = j, a.fn = k = j.prototype = a.prototype,
|
592 |
+
a._id = 0, a._oid = 0, a.is = function(a, b) {
|
593 |
+
b = v.call(b);
|
594 |
+
if (b == "finite") return !M[g](+a);
|
595 |
+
if (b == "array") return a instanceof Array;
|
596 |
+
return b == "null" && a === null || b == typeof a && a !== null || b == "object" && a === Object(a) || b == "array" && Array.isArray && Array.isArray(a) || H.call(a).slice(8, -1).toLowerCase() == b;
|
597 |
+
}, a.angle = function(b, c, d, e, f, g) {
|
598 |
+
if (f == null) {
|
599 |
+
var h = b - d, i = c - e;
|
600 |
+
if (!h && !i) return 0;
|
601 |
+
return (180 + w.atan2(-i, -h) * 180 / B + 360) % 360;
|
602 |
+
}
|
603 |
+
return a.angle(b, c, f, g) - a.angle(d, e, f, g);
|
604 |
+
}, a.rad = function(a) {
|
605 |
+
return a % 360 * B / 180;
|
606 |
+
}, a.deg = function(a) {
|
607 |
+
return a * 180 / B % 360;
|
608 |
+
}, a.snapTo = function(b, c, d) {
|
609 |
+
d = a.is(d, "finite") ? d : 10;
|
610 |
+
if (a.is(b, E)) {
|
611 |
+
var e = b.length;
|
612 |
+
while (e--) if (z(b[e] - c) <= d) return b[e];
|
613 |
+
} else {
|
614 |
+
b = +b;
|
615 |
+
var f = c % b;
|
616 |
+
if (f < d) return c - f;
|
617 |
+
if (f > b - d) return c - f + b;
|
618 |
+
}
|
619 |
+
return c;
|
620 |
+
};
|
621 |
+
var bn = a.createUUID = function(a, b) {
|
622 |
+
return function() {
|
623 |
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a, b).toUpperCase();
|
624 |
+
};
|
625 |
+
}(/[xy]/g, function(a) {
|
626 |
+
var b = w.random() * 16 | 0, c = a == "x" ? b : b & 3 | 8;
|
627 |
+
return c.toString(16);
|
628 |
+
});
|
629 |
+
a.setWindow = function(b) {
|
630 |
+
eve("raphael.setWindow", a, h.win, b), h.win = b, h.doc = h.win.document, a._engine.initWin && a._engine.initWin(h.win);
|
631 |
+
};
|
632 |
+
var bo = function(b) {
|
633 |
+
if (a.vml) {
|
634 |
+
var c = /^\s+|\s+$/g, d;
|
635 |
+
try {
|
636 |
+
var e = new ActiveXObject("htmlfile");
|
637 |
+
e.write("<body>"), e.close(), d = e.body;
|
638 |
+
} catch (f) {
|
639 |
+
d = createPopup().document.body;
|
640 |
+
}
|
641 |
+
var g = d.createTextRange();
|
642 |
+
bo = bv(function(a) {
|
643 |
+
try {
|
644 |
+
d.style.color = r(a).replace(c, p);
|
645 |
+
var b = g.queryCommandValue("ForeColor");
|
646 |
+
b = (b & 255) << 16 | b & 65280 | (b & 16711680) >>> 16;
|
647 |
+
return "#" + ("000000" + b.toString(16)).slice(-6);
|
648 |
+
} catch (e) {
|
649 |
+
return "none";
|
650 |
+
}
|
651 |
+
});
|
652 |
+
} else {
|
653 |
+
var i = h.doc.createElement("i");
|
654 |
+
i.title = "Raphaël Colour Picker", i.style.display = "none", h.doc.body.appendChild(i),
|
655 |
+
bo = bv(function(a) {
|
656 |
+
i.style.color = a;
|
657 |
+
return h.doc.defaultView.getComputedStyle(i, p).getPropertyValue("color");
|
658 |
+
});
|
659 |
+
}
|
660 |
+
return bo(b);
|
661 |
+
}, bp = function() {
|
662 |
+
return "hsb(" + [ this.h, this.s, this.b ] + ")";
|
663 |
+
}, bq = function() {
|
664 |
+
return "hsl(" + [ this.h, this.s, this.l ] + ")";
|
665 |
+
}, br = function() {
|
666 |
+
return this.hex;
|
667 |
+
}, bs = function(b, c, d) {
|
668 |
+
c == null && a.is(b, "object") && "r" in b && "g" in b && "b" in b && (d = b.b,
|
669 |
+
c = b.g, b = b.r);
|
670 |
+
if (c == null && a.is(b, D)) {
|
671 |
+
var e = a.getRGB(b);
|
672 |
+
b = e.r, c = e.g, d = e.b;
|
673 |
+
}
|
674 |
+
if (b > 1 || c > 1 || d > 1) b /= 255, c /= 255, d /= 255;
|
675 |
+
return [ b, c, d ];
|
676 |
+
}, bt = function(b, c, d, e) {
|
677 |
+
b *= 255, c *= 255, d *= 255;
|
678 |
+
var f = {
|
679 |
+
r: b,
|
680 |
+
g: c,
|
681 |
+
b: d,
|
682 |
+
hex: a.rgb(b, c, d),
|
683 |
+
toString: br
|
684 |
+
};
|
685 |
+
a.is(e, "finite") && (f.opacity = e);
|
686 |
+
return f;
|
687 |
+
};
|
688 |
+
a.color = function(b) {
|
689 |
+
var c;
|
690 |
+
a.is(b, "object") && "h" in b && "s" in b && "b" in b ? (c = a.hsb2rgb(b), b.r = c.r,
|
691 |
+
b.g = c.g, b.b = c.b, b.hex = c.hex) : a.is(b, "object") && "h" in b && "s" in b && "l" in b ? (c = a.hsl2rgb(b),
|
692 |
+
b.r = c.r, b.g = c.g, b.b = c.b, b.hex = c.hex) : (a.is(b, "string") && (b = a.getRGB(b)),
|
693 |
+
a.is(b, "object") && "r" in b && "g" in b && "b" in b ? (c = a.rgb2hsl(b), b.h = c.h,
|
694 |
+
b.s = c.s, b.l = c.l, c = a.rgb2hsb(b), b.v = c.b) : (b = {
|
695 |
+
hex: "none"
|
696 |
+
}, b.r = b.g = b.b = b.h = b.s = b.v = b.l = -1)), b.toString = br;
|
697 |
+
return b;
|
698 |
+
}, a.hsb2rgb = function(a, b, c, d) {
|
699 |
+
this.is(a, "object") && "h" in a && "s" in a && "b" in a && (c = a.b, b = a.s, a = a.h,
|
700 |
+
d = a.o), a *= 360;
|
701 |
+
var e, f, g, h, i;
|
702 |
+
a = a % 360 / 60, i = c * b, h = i * (1 - z(a % 2 - 1)), e = f = g = c - i, a = ~~a,
|
703 |
+
e += [ i, h, 0, 0, h, i ][a], f += [ h, i, i, h, 0, 0 ][a], g += [ 0, 0, h, i, i, h ][a];
|
704 |
+
return bt(e, f, g, d);
|
705 |
+
}, a.hsl2rgb = function(a, b, c, d) {
|
706 |
+
this.is(a, "object") && "h" in a && "s" in a && "l" in a && (c = a.l, b = a.s, a = a.h);
|
707 |
+
if (a > 1 || b > 1 || c > 1) a /= 360, b /= 100, c /= 100;
|
708 |
+
a *= 360;
|
709 |
+
var e, f, g, h, i;
|
710 |
+
a = a % 360 / 60, i = 2 * b * (c < .5 ? c : 1 - c), h = i * (1 - z(a % 2 - 1)),
|
711 |
+
e = f = g = c - i / 2, a = ~~a, e += [ i, h, 0, 0, h, i ][a], f += [ h, i, i, h, 0, 0 ][a],
|
712 |
+
g += [ 0, 0, h, i, i, h ][a];
|
713 |
+
return bt(e, f, g, d);
|
714 |
+
}, a.rgb2hsb = function(a, b, c) {
|
715 |
+
c = bs(a, b, c), a = c[0], b = c[1], c = c[2];
|
716 |
+
var d, e, f, g;
|
717 |
+
f = x(a, b, c), g = f - y(a, b, c), d = g == 0 ? null : f == a ? (b - c) / g : f == b ? (c - a) / g + 2 : (a - b) / g + 4,
|
718 |
+
d = (d + 360) % 6 * 60 / 360, e = g == 0 ? 0 : g / f;
|
719 |
+
return {
|
720 |
+
h: d,
|
721 |
+
s: e,
|
722 |
+
b: f,
|
723 |
+
toString: bp
|
724 |
+
};
|
725 |
+
}, a.rgb2hsl = function(a, b, c) {
|
726 |
+
c = bs(a, b, c), a = c[0], b = c[1], c = c[2];
|
727 |
+
var d, e, f, g, h, i;
|
728 |
+
g = x(a, b, c), h = y(a, b, c), i = g - h, d = i == 0 ? null : g == a ? (b - c) / i : g == b ? (c - a) / i + 2 : (a - b) / i + 4,
|
729 |
+
d = (d + 360) % 6 * 60 / 360, f = (g + h) / 2, e = i == 0 ? 0 : f < .5 ? i / (2 * f) : i / (2 - 2 * f);
|
730 |
+
return {
|
731 |
+
h: d,
|
732 |
+
s: e,
|
733 |
+
l: f,
|
734 |
+
toString: bq
|
735 |
+
};
|
736 |
+
}, a._path2string = function() {
|
737 |
+
return this.join(",").replace(Y, "$1");
|
738 |
+
};
|
739 |
+
var bw = a._preload = function(a, b) {
|
740 |
+
var c = h.doc.createElement("img");
|
741 |
+
c.style.cssText = "position:absolute;left:-9999em;top:-9999em", c.onload = function() {
|
742 |
+
b.call(this), this.onload = null, h.doc.body.removeChild(this);
|
743 |
+
}, c.onerror = function() {
|
744 |
+
h.doc.body.removeChild(this);
|
745 |
+
}, h.doc.body.appendChild(c), c.src = a;
|
746 |
+
};
|
747 |
+
a.getRGB = bv(function(b) {
|
748 |
+
if (!b || !!((b = r(b)).indexOf("-") + 1)) return {
|
749 |
+
r: -1,
|
750 |
+
g: -1,
|
751 |
+
b: -1,
|
752 |
+
hex: "none",
|
753 |
+
error: 1,
|
754 |
+
toString: bx
|
755 |
+
};
|
756 |
+
if (b == "none") return {
|
757 |
+
r: -1,
|
758 |
+
g: -1,
|
759 |
+
b: -1,
|
760 |
+
hex: "none",
|
761 |
+
toString: bx
|
762 |
+
};
|
763 |
+
!X[g](b.toLowerCase().substring(0, 2)) && b.charAt() != "#" && (b = bo(b));
|
764 |
+
var c, d, e, f, h, i, j, k = b.match(L);
|
765 |
+
if (k) {
|
766 |
+
k[2] && (f = R(k[2].substring(5), 16), e = R(k[2].substring(3, 5), 16), d = R(k[2].substring(1, 3), 16)),
|
767 |
+
k[3] && (f = R((i = k[3].charAt(3)) + i, 16), e = R((i = k[3].charAt(2)) + i, 16),
|
768 |
+
d = R((i = k[3].charAt(1)) + i, 16)), k[4] && (j = k[4][s](W), d = Q(j[0]), j[0].slice(-1) == "%" && (d *= 2.55),
|
769 |
+
e = Q(j[1]), j[1].slice(-1) == "%" && (e *= 2.55), f = Q(j[2]), j[2].slice(-1) == "%" && (f *= 2.55),
|
770 |
+
k[1].toLowerCase().slice(0, 4) == "rgba" && (h = Q(j[3])), j[3] && j[3].slice(-1) == "%" && (h /= 100));
|
771 |
+
if (k[5]) {
|
772 |
+
j = k[5][s](W), d = Q(j[0]), j[0].slice(-1) == "%" && (d *= 2.55), e = Q(j[1]),
|
773 |
+
j[1].slice(-1) == "%" && (e *= 2.55), f = Q(j[2]), j[2].slice(-1) == "%" && (f *= 2.55),
|
774 |
+
(j[0].slice(-3) == "deg" || j[0].slice(-1) == "°") && (d /= 360), k[1].toLowerCase().slice(0, 4) == "hsba" && (h = Q(j[3])),
|
775 |
+
j[3] && j[3].slice(-1) == "%" && (h /= 100);
|
776 |
+
return a.hsb2rgb(d, e, f, h);
|
777 |
+
}
|
778 |
+
if (k[6]) {
|
779 |
+
j = k[6][s](W), d = Q(j[0]), j[0].slice(-1) == "%" && (d *= 2.55), e = Q(j[1]),
|
780 |
+
j[1].slice(-1) == "%" && (e *= 2.55), f = Q(j[2]), j[2].slice(-1) == "%" && (f *= 2.55),
|
781 |
+
(j[0].slice(-3) == "deg" || j[0].slice(-1) == "°") && (d /= 360), k[1].toLowerCase().slice(0, 4) == "hsla" && (h = Q(j[3])),
|
782 |
+
j[3] && j[3].slice(-1) == "%" && (h /= 100);
|
783 |
+
return a.hsl2rgb(d, e, f, h);
|
784 |
+
}
|
785 |
+
k = {
|
786 |
+
r: d,
|
787 |
+
g: e,
|
788 |
+
b: f,
|
789 |
+
toString: bx
|
790 |
+
}, k.hex = "#" + (16777216 | f | e << 8 | d << 16).toString(16).slice(1), a.is(h, "finite") && (k.opacity = h);
|
791 |
+
return k;
|
792 |
+
}
|
793 |
+
return {
|
794 |
+
r: -1,
|
795 |
+
g: -1,
|
796 |
+
b: -1,
|
797 |
+
hex: "none",
|
798 |
+
error: 1,
|
799 |
+
toString: bx
|
800 |
+
};
|
801 |
+
}, a), a.hsb = bv(function(b, c, d) {
|
802 |
+
return a.hsb2rgb(b, c, d).hex;
|
803 |
+
}), a.hsl = bv(function(b, c, d) {
|
804 |
+
return a.hsl2rgb(b, c, d).hex;
|
805 |
+
}), a.rgb = bv(function(a, b, c) {
|
806 |
+
return "#" + (16777216 | c | b << 8 | a << 16).toString(16).slice(1);
|
807 |
+
}), a.getColor = function(a) {
|
808 |
+
var b = this.getColor.start = this.getColor.start || {
|
809 |
+
h: 0,
|
810 |
+
s: 1,
|
811 |
+
b: a || .75
|
812 |
+
}, c = this.hsb2rgb(b.h, b.s, b.b);
|
813 |
+
b.h += .075, b.h > 1 && (b.h = 0, b.s -= .2, b.s <= 0 && (this.getColor.start = {
|
814 |
+
h: 0,
|
815 |
+
s: 1,
|
816 |
+
b: b.b
|
817 |
+
}));
|
818 |
+
return c.hex;
|
819 |
+
}, a.getColor.reset = function() {
|
820 |
+
delete this.start;
|
821 |
+
}, a.parsePathString = function(b) {
|
822 |
+
if (!b) return null;
|
823 |
+
var c = bz(b);
|
824 |
+
if (c.arr) return bJ(c.arr);
|
825 |
+
var d = {
|
826 |
+
a: 7,
|
827 |
+
c: 6,
|
828 |
+
h: 1,
|
829 |
+
l: 2,
|
830 |
+
m: 2,
|
831 |
+
r: 4,
|
832 |
+
q: 4,
|
833 |
+
s: 4,
|
834 |
+
t: 2,
|
835 |
+
v: 1,
|
836 |
+
z: 0
|
837 |
+
}, e = [];
|
838 |
+
a.is(b, E) && a.is(b[0], E) && (e = bJ(b)), e.length || r(b).replace(Z, function(a, b, c) {
|
839 |
+
var f = [], g = b.toLowerCase();
|
840 |
+
c.replace(_, function(a, b) {
|
841 |
+
b && f.push(+b);
|
842 |
+
}), g == "m" && f.length > 2 && (e.push([ b ][n](f.splice(0, 2))), g = "l", b = b == "m" ? "l" : "L");
|
843 |
+
if (g == "r") e.push([ b ][n](f)); else while (f.length >= d[g]) {
|
844 |
+
e.push([ b ][n](f.splice(0, d[g])));
|
845 |
+
if (!d[g]) break;
|
846 |
+
}
|
847 |
+
}), e.toString = a._path2string, c.arr = bJ(e);
|
848 |
+
return e;
|
849 |
+
}, a.parseTransformString = bv(function(b) {
|
850 |
+
if (!b) return null;
|
851 |
+
var c = {
|
852 |
+
r: 3,
|
853 |
+
s: 4,
|
854 |
+
t: 2,
|
855 |
+
m: 6
|
856 |
+
}, d = [];
|
857 |
+
a.is(b, E) && a.is(b[0], E) && (d = bJ(b)), d.length || r(b).replace($, function(a, b, c) {
|
858 |
+
var e = [], f = v.call(b);
|
859 |
+
c.replace(_, function(a, b) {
|
860 |
+
b && e.push(+b);
|
861 |
+
}), d.push([ b ][n](e));
|
862 |
+
}), d.toString = a._path2string;
|
863 |
+
return d;
|
864 |
+
});
|
865 |
+
var bz = function(a) {
|
866 |
+
var b = bz.ps = bz.ps || {};
|
867 |
+
b[a] ? b[a].sleep = 100 : b[a] = {
|
868 |
+
sleep: 100
|
869 |
+
}, setTimeout(function() {
|
870 |
+
for (var c in b) b[g](c) && c != a && (b[c].sleep--, !b[c].sleep && delete b[c]);
|
871 |
+
});
|
872 |
+
return b[a];
|
873 |
+
};
|
874 |
+
a.findDotsAtSegment = function(a, b, c, d, e, f, g, h, i) {
|
875 |
+
var j = 1 - i, k = A(j, 3), l = A(j, 2), m = i * i, n = m * i, o = k * a + l * 3 * i * c + j * 3 * i * i * e + n * g, p = k * b + l * 3 * i * d + j * 3 * i * i * f + n * h, q = a + 2 * i * (c - a) + m * (e - 2 * c + a), r = b + 2 * i * (d - b) + m * (f - 2 * d + b), s = c + 2 * i * (e - c) + m * (g - 2 * e + c), t = d + 2 * i * (f - d) + m * (h - 2 * f + d), u = j * a + i * c, v = j * b + i * d, x = j * e + i * g, y = j * f + i * h, z = 90 - w.atan2(q - s, r - t) * 180 / B;
|
876 |
+
(q > s || r < t) && (z += 180);
|
877 |
+
return {
|
878 |
+
x: o,
|
879 |
+
y: p,
|
880 |
+
m: {
|
881 |
+
x: q,
|
882 |
+
y: r
|
883 |
+
},
|
884 |
+
n: {
|
885 |
+
x: s,
|
886 |
+
y: t
|
887 |
+
},
|
888 |
+
start: {
|
889 |
+
x: u,
|
890 |
+
y: v
|
891 |
+
},
|
892 |
+
end: {
|
893 |
+
x: x,
|
894 |
+
y: y
|
895 |
+
},
|
896 |
+
alpha: z
|
897 |
+
};
|
898 |
+
}, a.bezierBBox = function(b, c, d, e, f, g, h, i) {
|
899 |
+
a.is(b, "array") || (b = [ b, c, d, e, f, g, h, i ]);
|
900 |
+
var j = bQ.apply(null, b);
|
901 |
+
return {
|
902 |
+
x: j.min.x,
|
903 |
+
y: j.min.y,
|
904 |
+
x2: j.max.x,
|
905 |
+
y2: j.max.y,
|
906 |
+
width: j.max.x - j.min.x,
|
907 |
+
height: j.max.y - j.min.y
|
908 |
+
};
|
909 |
+
}, a.isPointInsideBBox = function(a, b, c) {
|
910 |
+
return b >= a.x && b <= a.x2 && c >= a.y && c <= a.y2;
|
911 |
+
}, a.isBBoxIntersect = function(b, c) {
|
912 |
+
var d = a.isPointInsideBBox;
|
913 |
+
return d(c, b.x, b.y) || d(c, b.x2, b.y) || d(c, b.x, b.y2) || d(c, b.x2, b.y2) || d(b, c.x, c.y) || d(b, c.x2, c.y) || d(b, c.x, c.y2) || d(b, c.x2, c.y2) || (b.x < c.x2 && b.x > c.x || c.x < b.x2 && c.x > b.x) && (b.y < c.y2 && b.y > c.y || c.y < b.y2 && c.y > b.y);
|
914 |
+
}, a.pathIntersection = function(a, b) {
|
915 |
+
return bH(a, b);
|
916 |
+
}, a.pathIntersectionNumber = function(a, b) {
|
917 |
+
return bH(a, b, 1);
|
918 |
+
}, a.isPointInsidePath = function(b, c, d) {
|
919 |
+
var e = a.pathBBox(b);
|
920 |
+
return a.isPointInsideBBox(e, c, d) && bH(b, [ [ "M", c, d ], [ "H", e.x2 + 10 ] ], 1) % 2 == 1;
|
921 |
+
}, a._removedFactory = function(a) {
|
922 |
+
return function() {
|
923 |
+
eve("raphael.log", null, "Raphaël: you are calling to method “" + a + "” of removed object", a);
|
924 |
+
};
|
925 |
+
};
|
926 |
+
var bI = a.pathBBox = function(a) {
|
927 |
+
var b = bz(a);
|
928 |
+
if (b.bbox) return b.bbox;
|
929 |
+
if (!a) return {
|
930 |
+
x: 0,
|
931 |
+
y: 0,
|
932 |
+
width: 0,
|
933 |
+
height: 0,
|
934 |
+
x2: 0,
|
935 |
+
y2: 0
|
936 |
+
};
|
937 |
+
a = bR(a);
|
938 |
+
var c = 0, d = 0, e = [], f = [], g;
|
939 |
+
for (var h = 0, i = a.length; h < i; h++) {
|
940 |
+
g = a[h];
|
941 |
+
if (g[0] == "M") c = g[1], d = g[2], e.push(c), f.push(d); else {
|
942 |
+
var j = bQ(c, d, g[1], g[2], g[3], g[4], g[5], g[6]);
|
943 |
+
e = e[n](j.min.x, j.max.x), f = f[n](j.min.y, j.max.y), c = g[5], d = g[6];
|
944 |
+
}
|
945 |
+
}
|
946 |
+
var k = y[m](0, e), l = y[m](0, f), o = x[m](0, e), p = x[m](0, f), q = {
|
947 |
+
x: k,
|
948 |
+
y: l,
|
949 |
+
x2: o,
|
950 |
+
y2: p,
|
951 |
+
width: o - k,
|
952 |
+
height: p - l
|
953 |
+
};
|
954 |
+
b.bbox = bm(q);
|
955 |
+
return q;
|
956 |
+
}, bJ = function(b) {
|
957 |
+
var c = bm(b);
|
958 |
+
c.toString = a._path2string;
|
959 |
+
return c;
|
960 |
+
}, bK = a._pathToRelative = function(b) {
|
961 |
+
var c = bz(b);
|
962 |
+
if (c.rel) return bJ(c.rel);
|
963 |
+
if (!a.is(b, E) || !a.is(b && b[0], E)) b = a.parsePathString(b);
|
964 |
+
var d = [], e = 0, f = 0, g = 0, h = 0, i = 0;
|
965 |
+
b[0][0] == "M" && (e = b[0][1], f = b[0][2], g = e, h = f, i++, d.push([ "M", e, f ]));
|
966 |
+
for (var j = i, k = b.length; j < k; j++) {
|
967 |
+
var l = d[j] = [], m = b[j];
|
968 |
+
if (m[0] != v.call(m[0])) {
|
969 |
+
l[0] = v.call(m[0]);
|
970 |
+
switch (l[0]) {
|
971 |
+
case "a":
|
972 |
+
l[1] = m[1], l[2] = m[2], l[3] = m[3], l[4] = m[4], l[5] = m[5], l[6] = +(m[6] - e).toFixed(3),
|
973 |
+
l[7] = +(m[7] - f).toFixed(3);
|
974 |
+
break;
|
975 |
+
|
976 |
+
case "v":
|
977 |
+
l[1] = +(m[1] - f).toFixed(3);
|
978 |
+
break;
|
979 |
+
|
980 |
+
case "m":
|
981 |
+
g = m[1], h = m[2];
|
982 |
+
|
983 |
+
default:
|
984 |
+
for (var n = 1, o = m.length; n < o; n++) l[n] = +(m[n] - (n % 2 ? e : f)).toFixed(3);
|
985 |
+
}
|
986 |
+
} else {
|
987 |
+
l = d[j] = [], m[0] == "m" && (g = m[1] + e, h = m[2] + f);
|
988 |
+
for (var p = 0, q = m.length; p < q; p++) d[j][p] = m[p];
|
989 |
+
}
|
990 |
+
var r = d[j].length;
|
991 |
+
switch (d[j][0]) {
|
992 |
+
case "z":
|
993 |
+
e = g, f = h;
|
994 |
+
break;
|
995 |
+
|
996 |
+
case "h":
|
997 |
+
e += +d[j][r - 1];
|
998 |
+
break;
|
999 |
+
|
1000 |
+
case "v":
|
1001 |
+
f += +d[j][r - 1];
|
1002 |
+
break;
|
1003 |
+
|
1004 |
+
default:
|
1005 |
+
e += +d[j][r - 2], f += +d[j][r - 1];
|
1006 |
+
}
|
1007 |
+
}
|
1008 |
+
d.toString = a._path2string, c.rel = bJ(d);
|
1009 |
+
return d;
|
1010 |
+
}, bL = a._pathToAbsolute = function(b) {
|
1011 |
+
var c = bz(b);
|
1012 |
+
if (c.abs) return bJ(c.abs);
|
1013 |
+
if (!a.is(b, E) || !a.is(b && b[0], E)) b = a.parsePathString(b);
|
1014 |
+
if (!b || !b.length) return [ [ "M", 0, 0 ] ];
|
1015 |
+
var d = [], e = 0, f = 0, g = 0, h = 0, i = 0;
|
1016 |
+
b[0][0] == "M" && (e = +b[0][1], f = +b[0][2], g = e, h = f, i++, d[0] = [ "M", e, f ]);
|
1017 |
+
var j = b.length == 3 && b[0][0] == "M" && b[1][0].toUpperCase() == "R" && b[2][0].toUpperCase() == "Z";
|
1018 |
+
for (var k, l, m = i, o = b.length; m < o; m++) {
|
1019 |
+
d.push(k = []), l = b[m];
|
1020 |
+
if (l[0] != S.call(l[0])) {
|
1021 |
+
k[0] = S.call(l[0]);
|
1022 |
+
switch (k[0]) {
|
1023 |
+
case "A":
|
1024 |
+
k[1] = l[1], k[2] = l[2], k[3] = l[3], k[4] = l[4], k[5] = l[5], k[6] = +(l[6] + e),
|
1025 |
+
k[7] = +(l[7] + f);
|
1026 |
+
break;
|
1027 |
+
|
1028 |
+
case "V":
|
1029 |
+
k[1] = +l[1] + f;
|
1030 |
+
break;
|
1031 |
+
|
1032 |
+
case "H":
|
1033 |
+
k[1] = +l[1] + e;
|
1034 |
+
break;
|
1035 |
+
|
1036 |
+
case "R":
|
1037 |
+
var p = [ e, f ][n](l.slice(1));
|
1038 |
+
for (var q = 2, r = p.length; q < r; q++) p[q] = +p[q] + e, p[++q] = +p[q] + f;
|
1039 |
+
d.pop(), d = d[n](by(p, j));
|
1040 |
+
break;
|
1041 |
+
|
1042 |
+
case "M":
|
1043 |
+
g = +l[1] + e, h = +l[2] + f;
|
1044 |
+
|
1045 |
+
default:
|
1046 |
+
for (q = 1, r = l.length; q < r; q++) k[q] = +l[q] + (q % 2 ? e : f);
|
1047 |
+
}
|
1048 |
+
} else if (l[0] == "R") p = [ e, f ][n](l.slice(1)), d.pop(), d = d[n](by(p, j)),
|
1049 |
+
k = [ "R" ][n](l.slice(-2)); else for (var s = 0, t = l.length; s < t; s++) k[s] = l[s];
|
1050 |
+
switch (k[0]) {
|
1051 |
+
case "Z":
|
1052 |
+
e = g, f = h;
|
1053 |
+
break;
|
1054 |
+
|
1055 |
+
case "H":
|
1056 |
+
e = k[1];
|
1057 |
+
break;
|
1058 |
+
|
1059 |
+
case "V":
|
1060 |
+
f = k[1];
|
1061 |
+
break;
|
1062 |
+
|
1063 |
+
case "M":
|
1064 |
+
g = k[k.length - 2], h = k[k.length - 1];
|
1065 |
+
|
1066 |
+
default:
|
1067 |
+
e = k[k.length - 2], f = k[k.length - 1];
|
1068 |
+
}
|
1069 |
+
}
|
1070 |
+
d.toString = a._path2string, c.abs = bJ(d);
|
1071 |
+
return d;
|
1072 |
+
}, bM = function(a, b, c, d) {
|
1073 |
+
return [ a, b, c, d, c, d ];
|
1074 |
+
}, bN = function(a, b, c, d, e, f) {
|
1075 |
+
var g = 1 / 3, h = 2 / 3;
|
1076 |
+
return [ g * a + h * c, g * b + h * d, g * e + h * c, g * f + h * d, e, f ];
|
1077 |
+
}, bO = function(a, b, c, d, e, f, g, h, i, j) {
|
1078 |
+
var k = B * 120 / 180, l = B / 180 * (+e || 0), m = [], o, p = bv(function(a, b, c) {
|
1079 |
+
var d = a * w.cos(c) - b * w.sin(c), e = a * w.sin(c) + b * w.cos(c);
|
1080 |
+
return {
|
1081 |
+
x: d,
|
1082 |
+
y: e
|
1083 |
+
};
|
1084 |
+
});
|
1085 |
+
if (!j) {
|
1086 |
+
o = p(a, b, -l), a = o.x, b = o.y, o = p(h, i, -l), h = o.x, i = o.y;
|
1087 |
+
var q = w.cos(B / 180 * e), r = w.sin(B / 180 * e), t = (a - h) / 2, u = (b - i) / 2, v = t * t / (c * c) + u * u / (d * d);
|
1088 |
+
v > 1 && (v = w.sqrt(v), c = v * c, d = v * d);
|
1089 |
+
var x = c * c, y = d * d, A = (f == g ? -1 : 1) * w.sqrt(z((x * y - x * u * u - y * t * t) / (x * u * u + y * t * t))), C = A * c * u / d + (a + h) / 2, D = A * -d * t / c + (b + i) / 2, E = w.asin(((b - D) / d).toFixed(9)), F = w.asin(((i - D) / d).toFixed(9));
|
1090 |
+
E = a < C ? B - E : E, F = h < C ? B - F : F, E < 0 && (E = B * 2 + E), F < 0 && (F = B * 2 + F),
|
1091 |
+
g && E > F && (E = E - B * 2), !g && F > E && (F = F - B * 2);
|
1092 |
+
} else E = j[0], F = j[1], C = j[2], D = j[3];
|
1093 |
+
var G = F - E;
|
1094 |
+
if (z(G) > k) {
|
1095 |
+
var H = F, I = h, J = i;
|
1096 |
+
F = E + k * (g && F > E ? 1 : -1), h = C + c * w.cos(F), i = D + d * w.sin(F), m = bO(h, i, c, d, e, 0, g, I, J, [ F, H, C, D ]);
|
1097 |
+
}
|
1098 |
+
G = F - E;
|
1099 |
+
var K = w.cos(E), L = w.sin(E), M = w.cos(F), N = w.sin(F), O = w.tan(G / 4), P = 4 / 3 * c * O, Q = 4 / 3 * d * O, R = [ a, b ], S = [ a + P * L, b - Q * K ], T = [ h + P * N, i - Q * M ], U = [ h, i ];
|
1100 |
+
S[0] = 2 * R[0] - S[0], S[1] = 2 * R[1] - S[1];
|
1101 |
+
if (j) return [ S, T, U ][n](m);
|
1102 |
+
m = [ S, T, U ][n](m).join()[s](",");
|
1103 |
+
var V = [];
|
1104 |
+
for (var W = 0, X = m.length; W < X; W++) V[W] = W % 2 ? p(m[W - 1], m[W], l).y : p(m[W], m[W + 1], l).x;
|
1105 |
+
return V;
|
1106 |
+
}, bP = function(a, b, c, d, e, f, g, h, i) {
|
1107 |
+
var j = 1 - i;
|
1108 |
+
return {
|
1109 |
+
x: A(j, 3) * a + A(j, 2) * 3 * i * c + j * 3 * i * i * e + A(i, 3) * g,
|
1110 |
+
y: A(j, 3) * b + A(j, 2) * 3 * i * d + j * 3 * i * i * f + A(i, 3) * h
|
1111 |
+
};
|
1112 |
+
}, bQ = bv(function(a, b, c, d, e, f, g, h) {
|
1113 |
+
var i = e - 2 * c + a - (g - 2 * e + c), j = 2 * (c - a) - 2 * (e - c), k = a - c, l = (-j + w.sqrt(j * j - 4 * i * k)) / 2 / i, n = (-j - w.sqrt(j * j - 4 * i * k)) / 2 / i, o = [ b, h ], p = [ a, g ], q;
|
1114 |
+
z(l) > "1e12" && (l = .5), z(n) > "1e12" && (n = .5), l > 0 && l < 1 && (q = bP(a, b, c, d, e, f, g, h, l),
|
1115 |
+
p.push(q.x), o.push(q.y)), n > 0 && n < 1 && (q = bP(a, b, c, d, e, f, g, h, n),
|
1116 |
+
p.push(q.x), o.push(q.y)), i = f - 2 * d + b - (h - 2 * f + d), j = 2 * (d - b) - 2 * (f - d),
|
1117 |
+
k = b - d, l = (-j + w.sqrt(j * j - 4 * i * k)) / 2 / i, n = (-j - w.sqrt(j * j - 4 * i * k)) / 2 / i,
|
1118 |
+
z(l) > "1e12" && (l = .5), z(n) > "1e12" && (n = .5), l > 0 && l < 1 && (q = bP(a, b, c, d, e, f, g, h, l),
|
1119 |
+
p.push(q.x), o.push(q.y)), n > 0 && n < 1 && (q = bP(a, b, c, d, e, f, g, h, n),
|
1120 |
+
p.push(q.x), o.push(q.y));
|
1121 |
+
return {
|
1122 |
+
min: {
|
1123 |
+
x: y[m](0, p),
|
1124 |
+
y: y[m](0, o)
|
1125 |
+
},
|
1126 |
+
max: {
|
1127 |
+
x: x[m](0, p),
|
1128 |
+
y: x[m](0, o)
|
1129 |
+
}
|
1130 |
+
};
|
1131 |
+
}), bR = a._path2curve = bv(function(a, b) {
|
1132 |
+
var c = !b && bz(a);
|
1133 |
+
if (!b && c.curve) return bJ(c.curve);
|
1134 |
+
var d = bL(a), e = b && bL(b), f = {
|
1135 |
+
x: 0,
|
1136 |
+
y: 0,
|
1137 |
+
bx: 0,
|
1138 |
+
by: 0,
|
1139 |
+
X: 0,
|
1140 |
+
Y: 0,
|
1141 |
+
qx: null,
|
1142 |
+
qy: null
|
1143 |
+
}, g = {
|
1144 |
+
x: 0,
|
1145 |
+
y: 0,
|
1146 |
+
bx: 0,
|
1147 |
+
by: 0,
|
1148 |
+
X: 0,
|
1149 |
+
Y: 0,
|
1150 |
+
qx: null,
|
1151 |
+
qy: null
|
1152 |
+
}, h = function(a, b) {
|
1153 |
+
var c, d;
|
1154 |
+
if (!a) return [ "C", b.x, b.y, b.x, b.y, b.x, b.y ];
|
1155 |
+
!(a[0] in {
|
1156 |
+
T: 1,
|
1157 |
+
Q: 1
|
1158 |
+
}) && (b.qx = b.qy = null);
|
1159 |
+
switch (a[0]) {
|
1160 |
+
case "M":
|
1161 |
+
b.X = a[1], b.Y = a[2];
|
1162 |
+
break;
|
1163 |
+
|
1164 |
+
case "A":
|
1165 |
+
a = [ "C" ][n](bO[m](0, [ b.x, b.y ][n](a.slice(1))));
|
1166 |
+
break;
|
1167 |
+
|
1168 |
+
case "S":
|
1169 |
+
c = b.x + (b.x - (b.bx || b.x)), d = b.y + (b.y - (b.by || b.y)), a = [ "C", c, d ][n](a.slice(1));
|
1170 |
+
break;
|
1171 |
+
|
1172 |
+
case "T":
|
1173 |
+
b.qx = b.x + (b.x - (b.qx || b.x)), b.qy = b.y + (b.y - (b.qy || b.y)), a = [ "C" ][n](bN(b.x, b.y, b.qx, b.qy, a[1], a[2]));
|
1174 |
+
break;
|
1175 |
+
|
1176 |
+
case "Q":
|
1177 |
+
b.qx = a[1], b.qy = a[2], a = [ "C" ][n](bN(b.x, b.y, a[1], a[2], a[3], a[4]));
|
1178 |
+
break;
|
1179 |
+
|
1180 |
+
case "L":
|
1181 |
+
a = [ "C" ][n](bM(b.x, b.y, a[1], a[2]));
|
1182 |
+
break;
|
1183 |
+
|
1184 |
+
case "H":
|
1185 |
+
a = [ "C" ][n](bM(b.x, b.y, a[1], b.y));
|
1186 |
+
break;
|
1187 |
+
|
1188 |
+
case "V":
|
1189 |
+
a = [ "C" ][n](bM(b.x, b.y, b.x, a[1]));
|
1190 |
+
break;
|
1191 |
+
|
1192 |
+
case "Z":
|
1193 |
+
a = [ "C" ][n](bM(b.x, b.y, b.X, b.Y));
|
1194 |
+
}
|
1195 |
+
return a;
|
1196 |
+
}, i = function(a, b) {
|
1197 |
+
if (a[b].length > 7) {
|
1198 |
+
a[b].shift();
|
1199 |
+
var c = a[b];
|
1200 |
+
while (c.length) a.splice(b++, 0, [ "C" ][n](c.splice(0, 6)));
|
1201 |
+
a.splice(b, 1), l = x(d.length, e && e.length || 0);
|
1202 |
+
}
|
1203 |
+
}, j = function(a, b, c, f, g) {
|
1204 |
+
a && b && a[g][0] == "M" && b[g][0] != "M" && (b.splice(g, 0, [ "M", f.x, f.y ]),
|
1205 |
+
c.bx = 0, c.by = 0, c.x = a[g][1], c.y = a[g][2], l = x(d.length, e && e.length || 0));
|
1206 |
+
};
|
1207 |
+
for (var k = 0, l = x(d.length, e && e.length || 0); k < l; k++) {
|
1208 |
+
d[k] = h(d[k], f), i(d, k), e && (e[k] = h(e[k], g)), e && i(e, k), j(d, e, f, g, k),
|
1209 |
+
j(e, d, g, f, k);
|
1210 |
+
var o = d[k], p = e && e[k], q = o.length, r = e && p.length;
|
1211 |
+
f.x = o[q - 2], f.y = o[q - 1], f.bx = Q(o[q - 4]) || f.x, f.by = Q(o[q - 3]) || f.y,
|
1212 |
+
g.bx = e && (Q(p[r - 4]) || g.x), g.by = e && (Q(p[r - 3]) || g.y), g.x = e && p[r - 2],
|
1213 |
+
g.y = e && p[r - 1];
|
1214 |
+
}
|
1215 |
+
e || (c.curve = bJ(d));
|
1216 |
+
return e ? [ d, e ] : d;
|
1217 |
+
}, null, bJ), bS = a._parseDots = bv(function(b) {
|
1218 |
+
var c = [];
|
1219 |
+
for (var d = 0, e = b.length; d < e; d++) {
|
1220 |
+
var f = {}, g = b[d].match(/^([^:]*):?([\d\.]*)/);
|
1221 |
+
f.color = a.getRGB(g[1]);
|
1222 |
+
if (f.color.error) return null;
|
1223 |
+
f.color = f.color.hex, g[2] && (f.offset = g[2] + "%"), c.push(f);
|
1224 |
+
}
|
1225 |
+
for (d = 1, e = c.length - 1; d < e; d++) if (!c[d].offset) {
|
1226 |
+
var h = Q(c[d - 1].offset || 0), i = 0;
|
1227 |
+
for (var j = d + 1; j < e; j++) if (c[j].offset) {
|
1228 |
+
i = c[j].offset;
|
1229 |
+
break;
|
1230 |
+
}
|
1231 |
+
i || (i = 100, j = e), i = Q(i);
|
1232 |
+
var k = (i - h) / (j - d + 1);
|
1233 |
+
for (;d < j; d++) h += k, c[d].offset = h + "%";
|
1234 |
+
}
|
1235 |
+
return c;
|
1236 |
+
}), bT = a._tear = function(a, b) {
|
1237 |
+
a == b.top && (b.top = a.prev), a == b.bottom && (b.bottom = a.next), a.next && (a.next.prev = a.prev),
|
1238 |
+
a.prev && (a.prev.next = a.next);
|
1239 |
+
}, bU = a._tofront = function(a, b) {
|
1240 |
+
b.top !== a && (bT(a, b), a.next = null, a.prev = b.top, b.top.next = a, b.top = a);
|
1241 |
+
}, bV = a._toback = function(a, b) {
|
1242 |
+
b.bottom !== a && (bT(a, b), a.next = b.bottom, a.prev = null, b.bottom.prev = a,
|
1243 |
+
b.bottom = a);
|
1244 |
+
}, bW = a._insertafter = function(a, b, c) {
|
1245 |
+
bT(a, c), b == c.top && (c.top = a), b.next && (b.next.prev = a), a.next = b.next,
|
1246 |
+
a.prev = b, b.next = a;
|
1247 |
+
}, bX = a._insertbefore = function(a, b, c) {
|
1248 |
+
bT(a, c), b == c.bottom && (c.bottom = a), b.prev && (b.prev.next = a), a.prev = b.prev,
|
1249 |
+
b.prev = a, a.next = b;
|
1250 |
+
}, bY = a.toMatrix = function(a, b) {
|
1251 |
+
var c = bI(a), d = {
|
1252 |
+
_: {
|
1253 |
+
transform: p
|
1254 |
+
},
|
1255 |
+
getBBox: function() {
|
1256 |
+
return c;
|
1257 |
+
}
|
1258 |
+
};
|
1259 |
+
b$(d, b);
|
1260 |
+
return d.matrix;
|
1261 |
+
}, bZ = a.transformPath = function(a, b) {
|
1262 |
+
return bj(a, bY(a, b));
|
1263 |
+
}, b$ = a._extractTransform = function(b, c) {
|
1264 |
+
if (c == null) return b._.transform;
|
1265 |
+
c = r(c).replace(/\.{3}|\u2026/g, b._.transform || p);
|
1266 |
+
var d = a.parseTransformString(c), e = 0, f = 0, g = 0, h = 1, i = 1, j = b._, k = new cb();
|
1267 |
+
j.transform = d || [];
|
1268 |
+
if (d) for (var l = 0, m = d.length; l < m; l++) {
|
1269 |
+
var n = d[l], o = n.length, q = r(n[0]).toLowerCase(), s = n[0] != q, t = s ? k.invert() : 0, u, v, w, x, y;
|
1270 |
+
q == "t" && o == 3 ? s ? (u = t.x(0, 0), v = t.y(0, 0), w = t.x(n[1], n[2]), x = t.y(n[1], n[2]),
|
1271 |
+
k.translate(w - u, x - v)) : k.translate(n[1], n[2]) : q == "r" ? o == 2 ? (y = y || b.getBBox(1),
|
1272 |
+
k.rotate(n[1], y.x + y.width / 2, y.y + y.height / 2), e += n[1]) : o == 4 && (s ? (w = t.x(n[2], n[3]),
|
1273 |
+
x = t.y(n[2], n[3]), k.rotate(n[1], w, x)) : k.rotate(n[1], n[2], n[3]), e += n[1]) : q == "s" ? o == 2 || o == 3 ? (y = y || b.getBBox(1),
|
1274 |
+
k.scale(n[1], n[o - 1], y.x + y.width / 2, y.y + y.height / 2), h *= n[1], i *= n[o - 1]) : o == 5 && (s ? (w = t.x(n[3], n[4]),
|
1275 |
+
x = t.y(n[3], n[4]), k.scale(n[1], n[2], w, x)) : k.scale(n[1], n[2], n[3], n[4]),
|
1276 |
+
h *= n[1], i *= n[2]) : q == "m" && o == 7 && k.add(n[1], n[2], n[3], n[4], n[5], n[6]),
|
1277 |
+
j.dirtyT = 1, b.matrix = k;
|
1278 |
+
}
|
1279 |
+
b.matrix = k, j.sx = h, j.sy = i, j.deg = e, j.dx = f = k.e, j.dy = g = k.f, h == 1 && i == 1 && !e && j.bbox ? (j.bbox.x += +f,
|
1280 |
+
j.bbox.y += +g) : j.dirtyT = 1;
|
1281 |
+
}, b_ = function(a) {
|
1282 |
+
var b = a[0];
|
1283 |
+
switch (b.toLowerCase()) {
|
1284 |
+
case "t":
|
1285 |
+
return [ b, 0, 0 ];
|
1286 |
+
|
1287 |
+
case "m":
|
1288 |
+
return [ b, 1, 0, 0, 1, 0, 0 ];
|
1289 |
+
|
1290 |
+
case "r":
|
1291 |
+
return a.length == 4 ? [ b, 0, a[2], a[3] ] : [ b, 0 ];
|
1292 |
+
|
1293 |
+
case "s":
|
1294 |
+
return a.length == 5 ? [ b, 1, 1, a[3], a[4] ] : a.length == 3 ? [ b, 1, 1 ] : [ b, 1 ];
|
1295 |
+
}
|
1296 |
+
}, ca = a._equaliseTransform = function(b, c) {
|
1297 |
+
c = r(c).replace(/\.{3}|\u2026/g, b), b = a.parseTransformString(b) || [], c = a.parseTransformString(c) || [];
|
1298 |
+
var d = x(b.length, c.length), e = [], f = [], g = 0, h, i, j, k;
|
1299 |
+
for (;g < d; g++) {
|
1300 |
+
j = b[g] || b_(c[g]), k = c[g] || b_(j);
|
1301 |
+
if (j[0] != k[0] || j[0].toLowerCase() == "r" && (j[2] != k[2] || j[3] != k[3]) || j[0].toLowerCase() == "s" && (j[3] != k[3] || j[4] != k[4])) return;
|
1302 |
+
e[g] = [], f[g] = [];
|
1303 |
+
for (h = 0, i = x(j.length, k.length); h < i; h++) h in j && (e[g][h] = j[h]), h in k && (f[g][h] = k[h]);
|
1304 |
+
}
|
1305 |
+
return {
|
1306 |
+
from: e,
|
1307 |
+
to: f
|
1308 |
+
};
|
1309 |
+
};
|
1310 |
+
a._getContainer = function(b, c, d, e) {
|
1311 |
+
var f;
|
1312 |
+
f = e == null && !a.is(b, "object") ? h.doc.getElementById(b) : b;
|
1313 |
+
if (f != null) {
|
1314 |
+
if (f.tagName) return c == null ? {
|
1315 |
+
container: f,
|
1316 |
+
width: f.style.pixelWidth || f.offsetWidth,
|
1317 |
+
height: f.style.pixelHeight || f.offsetHeight
|
1318 |
+
} : {
|
1319 |
+
container: f,
|
1320 |
+
width: c,
|
1321 |
+
height: d
|
1322 |
+
};
|
1323 |
+
return {
|
1324 |
+
container: 1,
|
1325 |
+
x: b,
|
1326 |
+
y: c,
|
1327 |
+
width: d,
|
1328 |
+
height: e
|
1329 |
+
};
|
1330 |
+
}
|
1331 |
+
}, a.pathToRelative = bK, a._engine = {}, a.path2curve = bR, a.matrix = function(a, b, c, d, e, f) {
|
1332 |
+
return new cb(a, b, c, d, e, f);
|
1333 |
+
}, function(b) {
|
1334 |
+
function d(a) {
|
1335 |
+
var b = w.sqrt(c(a));
|
1336 |
+
a[0] && (a[0] /= b), a[1] && (a[1] /= b);
|
1337 |
+
}
|
1338 |
+
function c(a) {
|
1339 |
+
return a[0] * a[0] + a[1] * a[1];
|
1340 |
+
}
|
1341 |
+
b.add = function(a, b, c, d, e, f) {
|
1342 |
+
var g = [ [], [], [] ], h = [ [ this.a, this.c, this.e ], [ this.b, this.d, this.f ], [ 0, 0, 1 ] ], i = [ [ a, c, e ], [ b, d, f ], [ 0, 0, 1 ] ], j, k, l, m;
|
1343 |
+
a && a instanceof cb && (i = [ [ a.a, a.c, a.e ], [ a.b, a.d, a.f ], [ 0, 0, 1 ] ]);
|
1344 |
+
for (j = 0; j < 3; j++) for (k = 0; k < 3; k++) {
|
1345 |
+
m = 0;
|
1346 |
+
for (l = 0; l < 3; l++) m += h[j][l] * i[l][k];
|
1347 |
+
g[j][k] = m;
|
1348 |
+
}
|
1349 |
+
this.a = g[0][0], this.b = g[1][0], this.c = g[0][1], this.d = g[1][1], this.e = g[0][2],
|
1350 |
+
this.f = g[1][2];
|
1351 |
+
}, b.invert = function() {
|
1352 |
+
var a = this, b = a.a * a.d - a.b * a.c;
|
1353 |
+
return new cb(a.d / b, -a.b / b, -a.c / b, a.a / b, (a.c * a.f - a.d * a.e) / b, (a.b * a.e - a.a * a.f) / b);
|
1354 |
+
}, b.clone = function() {
|
1355 |
+
return new cb(this.a, this.b, this.c, this.d, this.e, this.f);
|
1356 |
+
}, b.translate = function(a, b) {
|
1357 |
+
this.add(1, 0, 0, 1, a, b);
|
1358 |
+
}, b.scale = function(a, b, c, d) {
|
1359 |
+
b == null && (b = a), (c || d) && this.add(1, 0, 0, 1, c, d), this.add(a, 0, 0, b, 0, 0),
|
1360 |
+
(c || d) && this.add(1, 0, 0, 1, -c, -d);
|
1361 |
+
}, b.rotate = function(b, c, d) {
|
1362 |
+
b = a.rad(b), c = c || 0, d = d || 0;
|
1363 |
+
var e = +w.cos(b).toFixed(9), f = +w.sin(b).toFixed(9);
|
1364 |
+
this.add(e, f, -f, e, c, d), this.add(1, 0, 0, 1, -c, -d);
|
1365 |
+
}, b.x = function(a, b) {
|
1366 |
+
return a * this.a + b * this.c + this.e;
|
1367 |
+
}, b.y = function(a, b) {
|
1368 |
+
return a * this.b + b * this.d + this.f;
|
1369 |
+
}, b.get = function(a) {
|
1370 |
+
return +this[r.fromCharCode(97 + a)].toFixed(4);
|
1371 |
+
}, b.toString = function() {
|
1372 |
+
return a.svg ? "matrix(" + [ this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5) ].join() + ")" : [ this.get(0), this.get(2), this.get(1), this.get(3), 0, 0 ].join();
|
1373 |
+
}, b.toFilter = function() {
|
1374 |
+
return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')";
|
1375 |
+
}, b.offset = function() {
|
1376 |
+
return [ this.e.toFixed(4), this.f.toFixed(4) ];
|
1377 |
+
}, b.split = function() {
|
1378 |
+
var b = {};
|
1379 |
+
b.dx = this.e, b.dy = this.f;
|
1380 |
+
var e = [ [ this.a, this.c ], [ this.b, this.d ] ];
|
1381 |
+
b.scalex = w.sqrt(c(e[0])), d(e[0]), b.shear = e[0][0] * e[1][0] + e[0][1] * e[1][1],
|
1382 |
+
e[1] = [ e[1][0] - e[0][0] * b.shear, e[1][1] - e[0][1] * b.shear ], b.scaley = w.sqrt(c(e[1])),
|
1383 |
+
d(e[1]), b.shear /= b.scaley;
|
1384 |
+
var f = -e[0][1], g = e[1][1];
|
1385 |
+
g < 0 ? (b.rotate = a.deg(w.acos(g)), f < 0 && (b.rotate = 360 - b.rotate)) : b.rotate = a.deg(w.asin(f)),
|
1386 |
+
b.isSimple = !+b.shear.toFixed(9) && (b.scalex.toFixed(9) == b.scaley.toFixed(9) || !b.rotate),
|
1387 |
+
b.isSuperSimple = !+b.shear.toFixed(9) && b.scalex.toFixed(9) == b.scaley.toFixed(9) && !b.rotate,
|
1388 |
+
b.noRotation = !+b.shear.toFixed(9) && !b.rotate;
|
1389 |
+
return b;
|
1390 |
+
}, b.toTransformString = function(a) {
|
1391 |
+
var b = a || this[s]();
|
1392 |
+
if (b.isSimple) {
|
1393 |
+
b.scalex = +b.scalex.toFixed(4), b.scaley = +b.scaley.toFixed(4), b.rotate = +b.rotate.toFixed(4);
|
1394 |
+
return (b.dx || b.dy ? "t" + [ b.dx, b.dy ] : p) + (b.scalex != 1 || b.scaley != 1 ? "s" + [ b.scalex, b.scaley, 0, 0 ] : p) + (b.rotate ? "r" + [ b.rotate, 0, 0 ] : p);
|
1395 |
+
}
|
1396 |
+
return "m" + [ this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5) ];
|
1397 |
+
};
|
1398 |
+
}(cb.prototype);
|
1399 |
+
var cc = navigator.userAgent.match(/Version\/(.*?)\s/) || navigator.userAgent.match(/Chrome\/(\d+)/);
|
1400 |
+
navigator.vendor == "Apple Computer, Inc." && (cc && cc[1] < 4 || navigator.platform.slice(0, 2) == "iP") || navigator.vendor == "Google Inc." && cc && cc[1] < 8 ? k.safari = function() {
|
1401 |
+
var a = this.rect(-99, -99, this.width + 99, this.height + 99).attr({
|
1402 |
+
stroke: "none"
|
1403 |
+
});
|
1404 |
+
setTimeout(function() {
|
1405 |
+
a.remove();
|
1406 |
+
});
|
1407 |
+
} : k.safari = be;
|
1408 |
+
var cd = function() {
|
1409 |
+
this.returnValue = !1;
|
1410 |
+
}, ce = function() {
|
1411 |
+
return this.originalEvent.preventDefault();
|
1412 |
+
}, cf = function() {
|
1413 |
+
this.cancelBubble = !0;
|
1414 |
+
}, cg = function() {
|
1415 |
+
return this.originalEvent.stopPropagation();
|
1416 |
+
}, ch = function() {
|
1417 |
+
if (h.doc.addEventListener) return function(a, b, c, d) {
|
1418 |
+
var e = o && u[b] ? u[b] : b, f = function(e) {
|
1419 |
+
var f = h.doc.documentElement.scrollTop || h.doc.body.scrollTop, i = h.doc.documentElement.scrollLeft || h.doc.body.scrollLeft, j = e.clientX + i, k = e.clientY + f;
|
1420 |
+
if (o && u[g](b)) for (var l = 0, m = e.targetTouches && e.targetTouches.length; l < m; l++) if (e.targetTouches[l].target == a) {
|
1421 |
+
var n = e;
|
1422 |
+
e = e.targetTouches[l], e.originalEvent = n, e.preventDefault = ce, e.stopPropagation = cg;
|
1423 |
+
break;
|
1424 |
+
}
|
1425 |
+
return c.call(d, e, j, k);
|
1426 |
+
};
|
1427 |
+
a.addEventListener(e, f, !1);
|
1428 |
+
return function() {
|
1429 |
+
a.removeEventListener(e, f, !1);
|
1430 |
+
return !0;
|
1431 |
+
};
|
1432 |
+
};
|
1433 |
+
if (h.doc.attachEvent) return function(a, b, c, d) {
|
1434 |
+
var e = function(a) {
|
1435 |
+
a = a || h.win.event;
|
1436 |
+
var b = h.doc.documentElement.scrollTop || h.doc.body.scrollTop, e = h.doc.documentElement.scrollLeft || h.doc.body.scrollLeft, f = a.clientX + e, g = a.clientY + b;
|
1437 |
+
a.preventDefault = a.preventDefault || cd, a.stopPropagation = a.stopPropagation || cf;
|
1438 |
+
return c.call(d, a, f, g);
|
1439 |
+
};
|
1440 |
+
a.attachEvent("on" + b, e);
|
1441 |
+
var f = function() {
|
1442 |
+
a.detachEvent("on" + b, e);
|
1443 |
+
return !0;
|
1444 |
+
};
|
1445 |
+
return f;
|
1446 |
+
};
|
1447 |
+
}(), ci = [], cj = function(a) {
|
1448 |
+
var b = a.clientX, c = a.clientY, d = h.doc.documentElement.scrollTop || h.doc.body.scrollTop, e = h.doc.documentElement.scrollLeft || h.doc.body.scrollLeft, f, g = ci.length;
|
1449 |
+
while (g--) {
|
1450 |
+
f = ci[g];
|
1451 |
+
if (o) {
|
1452 |
+
var i = a.touches.length, j;
|
1453 |
+
while (i--) {
|
1454 |
+
j = a.touches[i];
|
1455 |
+
if (j.identifier == f.el._drag.id) {
|
1456 |
+
b = j.clientX, c = j.clientY, (a.originalEvent ? a.originalEvent : a).preventDefault();
|
1457 |
+
break;
|
1458 |
+
}
|
1459 |
+
}
|
1460 |
+
} else a.preventDefault();
|
1461 |
+
var k = f.el.node, l, m = k.nextSibling, n = k.parentNode, p = k.style.display;
|
1462 |
+
h.win.opera && n.removeChild(k), k.style.display = "none", l = f.el.paper.getElementByPoint(b, c),
|
1463 |
+
k.style.display = p, h.win.opera && (m ? n.insertBefore(k, m) : n.appendChild(k)),
|
1464 |
+
l && eve("raphael.drag.over." + f.el.id, f.el, l), b += e, c += d, eve("raphael.drag.move." + f.el.id, f.move_scope || f.el, b - f.el._drag.x, c - f.el._drag.y, b, c, a);
|
1465 |
+
}
|
1466 |
+
}, ck = function(b) {
|
1467 |
+
a.unmousemove(cj).unmouseup(ck);
|
1468 |
+
var c = ci.length, d;
|
1469 |
+
while (c--) d = ci[c], d.el._drag = {}, eve("raphael.drag.end." + d.el.id, d.end_scope || d.start_scope || d.move_scope || d.el, b);
|
1470 |
+
ci = [];
|
1471 |
+
}, cl = a.el = {};
|
1472 |
+
for (var cm = t.length; cm--; ) (function(b) {
|
1473 |
+
a[b] = cl[b] = function(c, d) {
|
1474 |
+
a.is(c, "function") && (this.events = this.events || [], this.events.push({
|
1475 |
+
name: b,
|
1476 |
+
f: c,
|
1477 |
+
unbind: ch(this.shape || this.node || h.doc, b, c, d || this)
|
1478 |
+
}));
|
1479 |
+
return this;
|
1480 |
+
}, a["un" + b] = cl["un" + b] = function(a) {
|
1481 |
+
var c = this.events || [], d = c.length;
|
1482 |
+
while (d--) if (c[d].name == b && c[d].f == a) {
|
1483 |
+
c[d].unbind(), c.splice(d, 1), !c.length && delete this.events;
|
1484 |
+
return this;
|
1485 |
+
}
|
1486 |
+
return this;
|
1487 |
+
};
|
1488 |
+
})(t[cm]);
|
1489 |
+
cl.data = function(b, c) {
|
1490 |
+
var d = bb[this.id] = bb[this.id] || {};
|
1491 |
+
if (arguments.length == 1) {
|
1492 |
+
if (a.is(b, "object")) {
|
1493 |
+
for (var e in b) b[g](e) && this.data(e, b[e]);
|
1494 |
+
return this;
|
1495 |
+
}
|
1496 |
+
eve("raphael.data.get." + this.id, this, d[b], b);
|
1497 |
+
return d[b];
|
1498 |
+
}
|
1499 |
+
d[b] = c, eve("raphael.data.set." + this.id, this, c, b);
|
1500 |
+
return this;
|
1501 |
+
}, cl.removeData = function(a) {
|
1502 |
+
a == null ? bb[this.id] = {} : bb[this.id] && delete bb[this.id][a];
|
1503 |
+
return this;
|
1504 |
+
}, cl.hover = function(a, b, c, d) {
|
1505 |
+
return this.mouseover(a, c).mouseout(b, d || c);
|
1506 |
+
}, cl.unhover = function(a, b) {
|
1507 |
+
return this.unmouseover(a).unmouseout(b);
|
1508 |
+
};
|
1509 |
+
var cn = [];
|
1510 |
+
cl.drag = function(b, c, d, e, f, g) {
|
1511 |
+
function i(i) {
|
1512 |
+
(i.originalEvent || i).preventDefault();
|
1513 |
+
var j = h.doc.documentElement.scrollTop || h.doc.body.scrollTop, k = h.doc.documentElement.scrollLeft || h.doc.body.scrollLeft;
|
1514 |
+
this._drag.x = i.clientX + k, this._drag.y = i.clientY + j, this._drag.id = i.identifier,
|
1515 |
+
!ci.length && a.mousemove(cj).mouseup(ck), ci.push({
|
1516 |
+
el: this,
|
1517 |
+
move_scope: e,
|
1518 |
+
start_scope: f,
|
1519 |
+
end_scope: g
|
1520 |
+
}), c && eve.on("raphael.drag.start." + this.id, c), b && eve.on("raphael.drag.move." + this.id, b),
|
1521 |
+
d && eve.on("raphael.drag.end." + this.id, d), eve("raphael.drag.start." + this.id, f || e || this, i.clientX + k, i.clientY + j, i);
|
1522 |
+
}
|
1523 |
+
this._drag = {}, cn.push({
|
1524 |
+
el: this,
|
1525 |
+
start: i
|
1526 |
+
}), this.mousedown(i);
|
1527 |
+
return this;
|
1528 |
+
}, cl.onDragOver = function(a) {
|
1529 |
+
a ? eve.on("raphael.drag.over." + this.id, a) : eve.unbind("raphael.drag.over." + this.id);
|
1530 |
+
}, cl.undrag = function() {
|
1531 |
+
var b = cn.length;
|
1532 |
+
while (b--) cn[b].el == this && (this.unmousedown(cn[b].start), cn.splice(b, 1),
|
1533 |
+
eve.unbind("raphael.drag.*." + this.id));
|
1534 |
+
!cn.length && a.unmousemove(cj).unmouseup(ck);
|
1535 |
+
}, k.circle = function(b, c, d) {
|
1536 |
+
var e = a._engine.circle(this, b || 0, c || 0, d || 0);
|
1537 |
+
this.__set__ && this.__set__.push(e);
|
1538 |
+
return e;
|
1539 |
+
}, k.rect = function(b, c, d, e, f) {
|
1540 |
+
var g = a._engine.rect(this, b || 0, c || 0, d || 0, e || 0, f || 0);
|
1541 |
+
this.__set__ && this.__set__.push(g);
|
1542 |
+
return g;
|
1543 |
+
}, k.ellipse = function(b, c, d, e) {
|
1544 |
+
var f = a._engine.ellipse(this, b || 0, c || 0, d || 0, e || 0);
|
1545 |
+
this.__set__ && this.__set__.push(f);
|
1546 |
+
return f;
|
1547 |
+
}, k.path = function(b) {
|
1548 |
+
b && !a.is(b, D) && !a.is(b[0], E) && (b += p);
|
1549 |
+
var c = a._engine.path(a.format[m](a, arguments), this);
|
1550 |
+
this.__set__ && this.__set__.push(c);
|
1551 |
+
return c;
|
1552 |
+
}, k.image = function(b, c, d, e, f) {
|
1553 |
+
var g = a._engine.image(this, b || "about:blank", c || 0, d || 0, e || 0, f || 0);
|
1554 |
+
this.__set__ && this.__set__.push(g);
|
1555 |
+
return g;
|
1556 |
+
}, k.text = function(b, c, d) {
|
1557 |
+
var e = a._engine.text(this, b || 0, c || 0, r(d));
|
1558 |
+
this.__set__ && this.__set__.push(e);
|
1559 |
+
return e;
|
1560 |
+
}, k.set = function(b) {
|
1561 |
+
!a.is(b, "array") && (b = Array.prototype.splice.call(arguments, 0, arguments.length));
|
1562 |
+
var c = new cG(b);
|
1563 |
+
this.__set__ && this.__set__.push(c);
|
1564 |
+
return c;
|
1565 |
+
}, k.setStart = function(a) {
|
1566 |
+
this.__set__ = a || this.set();
|
1567 |
+
}, k.setFinish = function(a) {
|
1568 |
+
var b = this.__set__;
|
1569 |
+
delete this.__set__;
|
1570 |
+
return b;
|
1571 |
+
}, k.setSize = function(b, c) {
|
1572 |
+
return a._engine.setSize.call(this, b, c);
|
1573 |
+
}, k.setViewBox = function(b, c, d, e, f) {
|
1574 |
+
return a._engine.setViewBox.call(this, b, c, d, e, f);
|
1575 |
+
}, k.top = k.bottom = null, k.raphael = a;
|
1576 |
+
var co = function(a) {
|
1577 |
+
var b = a.getBoundingClientRect(), c = a.ownerDocument, d = c.body, e = c.documentElement, f = e.clientTop || d.clientTop || 0, g = e.clientLeft || d.clientLeft || 0, i = b.top + (h.win.pageYOffset || e.scrollTop || d.scrollTop) - f, j = b.left + (h.win.pageXOffset || e.scrollLeft || d.scrollLeft) - g;
|
1578 |
+
return {
|
1579 |
+
y: i,
|
1580 |
+
x: j
|
1581 |
+
};
|
1582 |
+
};
|
1583 |
+
k.getElementByPoint = function(a, b) {
|
1584 |
+
var c = this, d = c.canvas, e = h.doc.elementFromPoint(a, b);
|
1585 |
+
if (h.win.opera && e.tagName == "svg") {
|
1586 |
+
var f = co(d), g = d.createSVGRect();
|
1587 |
+
g.x = a - f.x, g.y = b - f.y, g.width = g.height = 1;
|
1588 |
+
var i = d.getIntersectionList(g, null);
|
1589 |
+
i.length && (e = i[i.length - 1]);
|
1590 |
+
}
|
1591 |
+
if (!e) return null;
|
1592 |
+
while (e.parentNode && e != d.parentNode && !e.raphael) e = e.parentNode;
|
1593 |
+
e == c.canvas.parentNode && (e = d), e = e && e.raphael ? c.getById(e.raphaelid) : null;
|
1594 |
+
return e;
|
1595 |
+
}, k.getById = function(a) {
|
1596 |
+
var b = this.bottom;
|
1597 |
+
while (b) {
|
1598 |
+
if (b.id == a) return b;
|
1599 |
+
b = b.next;
|
1600 |
+
}
|
1601 |
+
return null;
|
1602 |
+
}, k.forEach = function(a, b) {
|
1603 |
+
var c = this.bottom;
|
1604 |
+
while (c) {
|
1605 |
+
if (a.call(b, c) === !1) return this;
|
1606 |
+
c = c.next;
|
1607 |
+
}
|
1608 |
+
return this;
|
1609 |
+
}, k.getElementsByPoint = function(a, b) {
|
1610 |
+
var c = this.set();
|
1611 |
+
this.forEach(function(d) {
|
1612 |
+
d.isPointInside(a, b) && c.push(d);
|
1613 |
+
});
|
1614 |
+
return c;
|
1615 |
+
}, cl.isPointInside = function(b, c) {
|
1616 |
+
var d = this.realPath = this.realPath || bi[this.type](this);
|
1617 |
+
return a.isPointInsidePath(d, b, c);
|
1618 |
+
}, cl.getBBox = function(a) {
|
1619 |
+
if (this.removed) return {};
|
1620 |
+
var b = this._;
|
1621 |
+
if (a) {
|
1622 |
+
if (b.dirty || !b.bboxwt) this.realPath = bi[this.type](this), b.bboxwt = bI(this.realPath),
|
1623 |
+
b.bboxwt.toString = cq, b.dirty = 0;
|
1624 |
+
return b.bboxwt;
|
1625 |
+
}
|
1626 |
+
if (b.dirty || b.dirtyT || !b.bbox) {
|
1627 |
+
if (b.dirty || !this.realPath) b.bboxwt = 0, this.realPath = bi[this.type](this);
|
1628 |
+
b.bbox = bI(bj(this.realPath, this.matrix)), b.bbox.toString = cq, b.dirty = b.dirtyT = 0;
|
1629 |
+
}
|
1630 |
+
return b.bbox;
|
1631 |
+
}, cl.clone = function() {
|
1632 |
+
if (this.removed) return null;
|
1633 |
+
var a = this.paper[this.type]().attr(this.attr());
|
1634 |
+
this.__set__ && this.__set__.push(a);
|
1635 |
+
return a;
|
1636 |
+
}, cl.glow = function(a) {
|
1637 |
+
if (this.type == "text") return null;
|
1638 |
+
a = a || {};
|
1639 |
+
var b = {
|
1640 |
+
width: (a.width || 10) + (+this.attr("stroke-width") || 1),
|
1641 |
+
fill: a.fill || !1,
|
1642 |
+
opacity: a.opacity || .5,
|
1643 |
+
offsetx: a.offsetx || 0,
|
1644 |
+
offsety: a.offsety || 0,
|
1645 |
+
color: a.color || "#000"
|
1646 |
+
}, c = b.width / 2, d = this.paper, e = d.set(), f = this.realPath || bi[this.type](this);
|
1647 |
+
f = this.matrix ? bj(f, this.matrix) : f;
|
1648 |
+
for (var g = 1; g < c + 1; g++) e.push(d.path(f).attr({
|
1649 |
+
stroke: b.color,
|
1650 |
+
fill: b.fill ? b.color : "none",
|
1651 |
+
"stroke-linejoin": "round",
|
1652 |
+
"stroke-linecap": "round",
|
1653 |
+
"stroke-width": +(b.width / c * g).toFixed(3),
|
1654 |
+
opacity: +(b.opacity / c).toFixed(3)
|
1655 |
+
}));
|
1656 |
+
return e.insertBefore(this).translate(b.offsetx, b.offsety);
|
1657 |
+
};
|
1658 |
+
var cr = {}, cs = function(b, c, d, e, f, g, h, i, j) {
|
1659 |
+
return j == null ? bB(b, c, d, e, f, g, h, i) : a.findDotsAtSegment(b, c, d, e, f, g, h, i, bC(b, c, d, e, f, g, h, i, j));
|
1660 |
+
}, ct = function(b, c) {
|
1661 |
+
return function(d, e, f) {
|
1662 |
+
d = bR(d);
|
1663 |
+
var g, h, i, j, k = "", l = {}, m, n = 0;
|
1664 |
+
for (var o = 0, p = d.length; o < p; o++) {
|
1665 |
+
i = d[o];
|
1666 |
+
if (i[0] == "M") g = +i[1], h = +i[2]; else {
|
1667 |
+
j = cs(g, h, i[1], i[2], i[3], i[4], i[5], i[6]);
|
1668 |
+
if (n + j > e) {
|
1669 |
+
if (c && !l.start) {
|
1670 |
+
m = cs(g, h, i[1], i[2], i[3], i[4], i[5], i[6], e - n), k += [ "C" + m.start.x, m.start.y, m.m.x, m.m.y, m.x, m.y ];
|
1671 |
+
if (f) return k;
|
1672 |
+
l.start = k, k = [ "M" + m.x, m.y + "C" + m.n.x, m.n.y, m.end.x, m.end.y, i[5], i[6] ].join(),
|
1673 |
+
n += j, g = +i[5], h = +i[6];
|
1674 |
+
continue;
|
1675 |
+
}
|
1676 |
+
if (!b && !c) {
|
1677 |
+
m = cs(g, h, i[1], i[2], i[3], i[4], i[5], i[6], e - n);
|
1678 |
+
return {
|
1679 |
+
x: m.x,
|
1680 |
+
y: m.y,
|
1681 |
+
alpha: m.alpha
|
1682 |
+
};
|
1683 |
+
}
|
1684 |
+
}
|
1685 |
+
n += j, g = +i[5], h = +i[6];
|
1686 |
+
}
|
1687 |
+
k += i.shift() + i;
|
1688 |
+
}
|
1689 |
+
l.end = k, m = b ? n : c ? l : a.findDotsAtSegment(g, h, i[0], i[1], i[2], i[3], i[4], i[5], 1),
|
1690 |
+
m.alpha && (m = {
|
1691 |
+
x: m.x,
|
1692 |
+
y: m.y,
|
1693 |
+
alpha: m.alpha
|
1694 |
+
});
|
1695 |
+
return m;
|
1696 |
+
};
|
1697 |
+
}, cu = ct(1), cv = ct(), cw = ct(0, 1);
|
1698 |
+
a.getTotalLength = cu, a.getPointAtLength = cv, a.getSubpath = function(a, b, c) {
|
1699 |
+
if (this.getTotalLength(a) - c < 1e-6) return cw(a, b).end;
|
1700 |
+
var d = cw(a, c, 1);
|
1701 |
+
return b ? cw(d, b).end : d;
|
1702 |
+
}, cl.getTotalLength = function() {
|
1703 |
+
if (this.type == "path") {
|
1704 |
+
if (this.node.getTotalLength) return this.node.getTotalLength();
|
1705 |
+
return cu(this.attrs.path);
|
1706 |
+
}
|
1707 |
+
}, cl.getPointAtLength = function(a) {
|
1708 |
+
if (this.type == "path") return cv(this.attrs.path, a);
|
1709 |
+
}, cl.getSubpath = function(b, c) {
|
1710 |
+
if (this.type == "path") return a.getSubpath(this.attrs.path, b, c);
|
1711 |
+
};
|
1712 |
+
var cx = a.easing_formulas = {
|
1713 |
+
linear: function(a) {
|
1714 |
+
return a;
|
1715 |
+
},
|
1716 |
+
"<": function(a) {
|
1717 |
+
return A(a, 1.7);
|
1718 |
+
},
|
1719 |
+
">": function(a) {
|
1720 |
+
return A(a, .48);
|
1721 |
+
},
|
1722 |
+
"<>": function(a) {
|
1723 |
+
var b = .48 - a / 1.04, c = w.sqrt(.1734 + b * b), d = c - b, e = A(z(d), 1 / 3) * (d < 0 ? -1 : 1), f = -c - b, g = A(z(f), 1 / 3) * (f < 0 ? -1 : 1), h = e + g + .5;
|
1724 |
+
return (1 - h) * 3 * h * h + h * h * h;
|
1725 |
+
},
|
1726 |
+
backIn: function(a) {
|
1727 |
+
var b = 1.70158;
|
1728 |
+
return a * a * ((b + 1) * a - b);
|
1729 |
+
},
|
1730 |
+
backOut: function(a) {
|
1731 |
+
a = a - 1;
|
1732 |
+
var b = 1.70158;
|
1733 |
+
return a * a * ((b + 1) * a + b) + 1;
|
1734 |
+
},
|
1735 |
+
elastic: function(a) {
|
1736 |
+
if (a == !!a) return a;
|
1737 |
+
return A(2, -10 * a) * w.sin((a - .075) * 2 * B / .3) + 1;
|
1738 |
+
},
|
1739 |
+
bounce: function(a) {
|
1740 |
+
var b = 7.5625, c = 2.75, d;
|
1741 |
+
a < 1 / c ? d = b * a * a : a < 2 / c ? (a -= 1.5 / c, d = b * a * a + .75) : a < 2.5 / c ? (a -= 2.25 / c,
|
1742 |
+
d = b * a * a + .9375) : (a -= 2.625 / c, d = b * a * a + .984375);
|
1743 |
+
return d;
|
1744 |
+
}
|
1745 |
+
};
|
1746 |
+
cx.easeIn = cx["ease-in"] = cx["<"], cx.easeOut = cx["ease-out"] = cx[">"], cx.easeInOut = cx["ease-in-out"] = cx["<>"],
|
1747 |
+
cx["back-in"] = cx.backIn, cx["back-out"] = cx.backOut;
|
1748 |
+
var cy = [], cz = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(a) {
|
1749 |
+
setTimeout(a, 16);
|
1750 |
+
}, cA = function() {
|
1751 |
+
var b = +new Date(), c = 0;
|
1752 |
+
for (;c < cy.length; c++) {
|
1753 |
+
var d = cy[c];
|
1754 |
+
if (d.el.removed || d.paused) continue;
|
1755 |
+
var e = b - d.start, f = d.ms, h = d.easing, i = d.from, j = d.diff, k = d.to, l = d.t, m = d.el, o = {}, p, r = {}, s;
|
1756 |
+
d.initstatus ? (e = (d.initstatus * d.anim.top - d.prev) / (d.percent - d.prev) * f,
|
1757 |
+
d.status = d.initstatus, delete d.initstatus, d.stop && cy.splice(c--, 1)) : d.status = (d.prev + (d.percent - d.prev) * (e / f)) / d.anim.top;
|
1758 |
+
if (e < 0) continue;
|
1759 |
+
if (e < f) {
|
1760 |
+
var t = h(e / f);
|
1761 |
+
for (var u in i) if (i[g](u)) {
|
1762 |
+
switch (U[u]) {
|
1763 |
+
case C:
|
1764 |
+
p = +i[u] + t * f * j[u];
|
1765 |
+
break;
|
1766 |
+
|
1767 |
+
case "colour":
|
1768 |
+
p = "rgb(" + [ cB(O(i[u].r + t * f * j[u].r)), cB(O(i[u].g + t * f * j[u].g)), cB(O(i[u].b + t * f * j[u].b)) ].join(",") + ")";
|
1769 |
+
break;
|
1770 |
+
|
1771 |
+
case "path":
|
1772 |
+
p = [];
|
1773 |
+
for (var v = 0, w = i[u].length; v < w; v++) {
|
1774 |
+
p[v] = [ i[u][v][0] ];
|
1775 |
+
for (var x = 1, y = i[u][v].length; x < y; x++) p[v][x] = +i[u][v][x] + t * f * j[u][v][x];
|
1776 |
+
p[v] = p[v].join(q);
|
1777 |
+
}
|
1778 |
+
p = p.join(q);
|
1779 |
+
break;
|
1780 |
+
|
1781 |
+
case "transform":
|
1782 |
+
if (j[u].real) {
|
1783 |
+
p = [];
|
1784 |
+
for (v = 0, w = i[u].length; v < w; v++) {
|
1785 |
+
p[v] = [ i[u][v][0] ];
|
1786 |
+
for (x = 1, y = i[u][v].length; x < y; x++) p[v][x] = i[u][v][x] + t * f * j[u][v][x];
|
1787 |
+
}
|
1788 |
+
} else {
|
1789 |
+
var z = function(a) {
|
1790 |
+
return +i[u][a] + t * f * j[u][a];
|
1791 |
+
};
|
1792 |
+
p = [ [ "m", z(0), z(1), z(2), z(3), z(4), z(5) ] ];
|
1793 |
+
}
|
1794 |
+
break;
|
1795 |
+
|
1796 |
+
case "csv":
|
1797 |
+
if (u == "clip-rect") {
|
1798 |
+
p = [], v = 4;
|
1799 |
+
while (v--) p[v] = +i[u][v] + t * f * j[u][v];
|
1800 |
+
}
|
1801 |
+
break;
|
1802 |
+
|
1803 |
+
default:
|
1804 |
+
var A = [][n](i[u]);
|
1805 |
+
p = [], v = m.paper.customAttributes[u].length;
|
1806 |
+
while (v--) p[v] = +A[v] + t * f * j[u][v];
|
1807 |
+
}
|
1808 |
+
o[u] = p;
|
1809 |
+
}
|
1810 |
+
m.attr(o), function(a, b, c) {
|
1811 |
+
setTimeout(function() {
|
1812 |
+
eve("raphael.anim.frame." + a, b, c);
|
1813 |
+
});
|
1814 |
+
}(m.id, m, d.anim);
|
1815 |
+
} else {
|
1816 |
+
(function(b, c, d) {
|
1817 |
+
setTimeout(function() {
|
1818 |
+
eve("raphael.anim.frame." + c.id, c, d), eve("raphael.anim.finish." + c.id, c, d),
|
1819 |
+
a.is(b, "function") && b.call(c);
|
1820 |
+
});
|
1821 |
+
})(d.callback, m, d.anim), m.attr(k), cy.splice(c--, 1);
|
1822 |
+
if (d.repeat > 1 && !d.next) {
|
1823 |
+
for (s in k) k[g](s) && (r[s] = d.totalOrigin[s]);
|
1824 |
+
d.el.attr(r), cE(d.anim, d.el, d.anim.percents[0], null, d.totalOrigin, d.repeat - 1);
|
1825 |
+
}
|
1826 |
+
d.next && !d.stop && cE(d.anim, d.el, d.next, null, d.totalOrigin, d.repeat);
|
1827 |
+
}
|
1828 |
+
}
|
1829 |
+
a.svg && m && m.paper && m.paper.safari(), cy.length && cz(cA);
|
1830 |
+
}, cB = function(a) {
|
1831 |
+
return a > 255 ? 255 : a < 0 ? 0 : a;
|
1832 |
+
};
|
1833 |
+
cl.animateWith = function(b, c, d, e, f, g) {
|
1834 |
+
var h = this;
|
1835 |
+
if (h.removed) {
|
1836 |
+
g && g.call(h);
|
1837 |
+
return h;
|
1838 |
+
}
|
1839 |
+
var i = d instanceof cD ? d : a.animation(d, e, f, g), j, k;
|
1840 |
+
cE(i, h, i.percents[0], null, h.attr());
|
1841 |
+
for (var l = 0, m = cy.length; l < m; l++) if (cy[l].anim == c && cy[l].el == b) {
|
1842 |
+
cy[m - 1].start = cy[l].start;
|
1843 |
+
break;
|
1844 |
+
}
|
1845 |
+
return h;
|
1846 |
+
}, cl.onAnimation = function(a) {
|
1847 |
+
a ? eve.on("raphael.anim.frame." + this.id, a) : eve.unbind("raphael.anim.frame." + this.id);
|
1848 |
+
return this;
|
1849 |
+
}, cD.prototype.delay = function(a) {
|
1850 |
+
var b = new cD(this.anim, this.ms);
|
1851 |
+
b.times = this.times, b.del = +a || 0;
|
1852 |
+
return b;
|
1853 |
+
}, cD.prototype.repeat = function(a) {
|
1854 |
+
var b = new cD(this.anim, this.ms);
|
1855 |
+
b.del = this.del, b.times = w.floor(x(a, 0)) || 1;
|
1856 |
+
return b;
|
1857 |
+
}, a.animation = function(b, c, d, e) {
|
1858 |
+
if (b instanceof cD) return b;
|
1859 |
+
if (a.is(d, "function") || !d) e = e || d || null, d = null;
|
1860 |
+
b = Object(b), c = +c || 0;
|
1861 |
+
var f = {}, h, i;
|
1862 |
+
for (i in b) b[g](i) && Q(i) != i && Q(i) + "%" != i && (h = !0, f[i] = b[i]);
|
1863 |
+
if (!h) return new cD(b, c);
|
1864 |
+
d && (f.easing = d), e && (f.callback = e);
|
1865 |
+
return new cD({
|
1866 |
+
100: f
|
1867 |
+
}, c);
|
1868 |
+
}, cl.animate = function(b, c, d, e) {
|
1869 |
+
var f = this;
|
1870 |
+
if (f.removed) {
|
1871 |
+
e && e.call(f);
|
1872 |
+
return f;
|
1873 |
+
}
|
1874 |
+
var g = b instanceof cD ? b : a.animation(b, c, d, e);
|
1875 |
+
cE(g, f, g.percents[0], null, f.attr());
|
1876 |
+
return f;
|
1877 |
+
}, cl.setTime = function(a, b) {
|
1878 |
+
a && b != null && this.status(a, y(b, a.ms) / a.ms);
|
1879 |
+
return this;
|
1880 |
+
}, cl.status = function(a, b) {
|
1881 |
+
var c = [], d = 0, e, f;
|
1882 |
+
if (b != null) {
|
1883 |
+
cE(a, this, -1, y(b, 1));
|
1884 |
+
return this;
|
1885 |
+
}
|
1886 |
+
e = cy.length;
|
1887 |
+
for (;d < e; d++) {
|
1888 |
+
f = cy[d];
|
1889 |
+
if (f.el.id == this.id && (!a || f.anim == a)) {
|
1890 |
+
if (a) return f.status;
|
1891 |
+
c.push({
|
1892 |
+
anim: f.anim,
|
1893 |
+
status: f.status
|
1894 |
+
});
|
1895 |
+
}
|
1896 |
+
}
|
1897 |
+
if (a) return 0;
|
1898 |
+
return c;
|
1899 |
+
}, cl.pause = function(a) {
|
1900 |
+
for (var b = 0; b < cy.length; b++) cy[b].el.id == this.id && (!a || cy[b].anim == a) && eve("raphael.anim.pause." + this.id, this, cy[b].anim) !== !1 && (cy[b].paused = !0);
|
1901 |
+
return this;
|
1902 |
+
}, cl.resume = function(a) {
|
1903 |
+
for (var b = 0; b < cy.length; b++) if (cy[b].el.id == this.id && (!a || cy[b].anim == a)) {
|
1904 |
+
var c = cy[b];
|
1905 |
+
eve("raphael.anim.resume." + this.id, this, c.anim) !== !1 && (delete c.paused,
|
1906 |
+
this.status(c.anim, c.status));
|
1907 |
+
}
|
1908 |
+
return this;
|
1909 |
+
}, cl.stop = function(a) {
|
1910 |
+
for (var b = 0; b < cy.length; b++) cy[b].el.id == this.id && (!a || cy[b].anim == a) && eve("raphael.anim.stop." + this.id, this, cy[b].anim) !== !1 && cy.splice(b--, 1);
|
1911 |
+
return this;
|
1912 |
+
}, eve.on("raphael.remove", cF), eve.on("raphael.clear", cF), cl.toString = function() {
|
1913 |
+
return "Raphaël’s object";
|
1914 |
+
};
|
1915 |
+
var cG = function(a) {
|
1916 |
+
this.items = [], this.length = 0, this.type = "set";
|
1917 |
+
if (a) for (var b = 0, c = a.length; b < c; b++) a[b] && (a[b].constructor == cl.constructor || a[b].constructor == cG) && (this[this.items.length] = this.items[this.items.length] = a[b],
|
1918 |
+
this.length++);
|
1919 |
+
}, cH = cG.prototype;
|
1920 |
+
cH.push = function() {
|
1921 |
+
var a, b;
|
1922 |
+
for (var c = 0, d = arguments.length; c < d; c++) a = arguments[c], a && (a.constructor == cl.constructor || a.constructor == cG) && (b = this.items.length,
|
1923 |
+
this[b] = this.items[b] = a, this.length++);
|
1924 |
+
return this;
|
1925 |
+
}, cH.pop = function() {
|
1926 |
+
this.length && delete this[this.length--];
|
1927 |
+
return this.items.pop();
|
1928 |
+
}, cH.forEach = function(a, b) {
|
1929 |
+
for (var c = 0, d = this.items.length; c < d; c++) if (a.call(b, this.items[c], c) === !1) return this;
|
1930 |
+
return this;
|
1931 |
+
};
|
1932 |
+
for (var cI in cl) cl[g](cI) && (cH[cI] = function(a) {
|
1933 |
+
return function() {
|
1934 |
+
var b = arguments;
|
1935 |
+
return this.forEach(function(c) {
|
1936 |
+
c[a][m](c, b);
|
1937 |
+
});
|
1938 |
+
};
|
1939 |
+
}(cI));
|
1940 |
+
cH.attr = function(b, c) {
|
1941 |
+
if (b && a.is(b, E) && a.is(b[0], "object")) for (var d = 0, e = b.length; d < e; d++) this.items[d].attr(b[d]); else for (var f = 0, g = this.items.length; f < g; f++) this.items[f].attr(b, c);
|
1942 |
+
return this;
|
1943 |
+
}, cH.clear = function() {
|
1944 |
+
while (this.length) this.pop();
|
1945 |
+
}, cH.splice = function(a, b, c) {
|
1946 |
+
a = a < 0 ? x(this.length + a, 0) : a, b = x(0, y(this.length - a, b));
|
1947 |
+
var d = [], e = [], f = [], g;
|
1948 |
+
for (g = 2; g < arguments.length; g++) f.push(arguments[g]);
|
1949 |
+
for (g = 0; g < b; g++) e.push(this[a + g]);
|
1950 |
+
for (;g < this.length - a; g++) d.push(this[a + g]);
|
1951 |
+
var h = f.length;
|
1952 |
+
for (g = 0; g < h + d.length; g++) this.items[a + g] = this[a + g] = g < h ? f[g] : d[g - h];
|
1953 |
+
g = this.items.length = this.length -= b - h;
|
1954 |
+
while (this[g]) delete this[g++];
|
1955 |
+
return new cG(e);
|
1956 |
+
}, cH.exclude = function(a) {
|
1957 |
+
for (var b = 0, c = this.length; b < c; b++) if (this[b] == a) {
|
1958 |
+
this.splice(b, 1);
|
1959 |
+
return !0;
|
1960 |
+
}
|
1961 |
+
}, cH.animate = function(b, c, d, e) {
|
1962 |
+
(a.is(d, "function") || !d) && (e = d || null);
|
1963 |
+
var f = this.items.length, g = f, h, i = this, j;
|
1964 |
+
if (!f) return this;
|
1965 |
+
e && (j = function() {
|
1966 |
+
!--f && e.call(i);
|
1967 |
+
}), d = a.is(d, D) ? d : j;
|
1968 |
+
var k = a.animation(b, c, d, j);
|
1969 |
+
h = this.items[--g].animate(k);
|
1970 |
+
while (g--) this.items[g] && !this.items[g].removed && this.items[g].animateWith(h, k, k);
|
1971 |
+
return this;
|
1972 |
+
}, cH.insertAfter = function(a) {
|
1973 |
+
var b = this.items.length;
|
1974 |
+
while (b--) this.items[b].insertAfter(a);
|
1975 |
+
return this;
|
1976 |
+
}, cH.getBBox = function() {
|
1977 |
+
var a = [], b = [], c = [], d = [];
|
1978 |
+
for (var e = this.items.length; e--; ) if (!this.items[e].removed) {
|
1979 |
+
var f = this.items[e].getBBox();
|
1980 |
+
a.push(f.x), b.push(f.y), c.push(f.x + f.width), d.push(f.y + f.height);
|
1981 |
+
}
|
1982 |
+
a = y[m](0, a), b = y[m](0, b), c = x[m](0, c), d = x[m](0, d);
|
1983 |
+
return {
|
1984 |
+
x: a,
|
1985 |
+
y: b,
|
1986 |
+
x2: c,
|
1987 |
+
y2: d,
|
1988 |
+
width: c - a,
|
1989 |
+
height: d - b
|
1990 |
+
};
|
1991 |
+
}, cH.clone = function(a) {
|
1992 |
+
a = new cG();
|
1993 |
+
for (var b = 0, c = this.items.length; b < c; b++) a.push(this.items[b].clone());
|
1994 |
+
return a;
|
1995 |
+
}, cH.toString = function() {
|
1996 |
+
return "Raphaël‘s set";
|
1997 |
+
}, a.registerFont = function(a) {
|
1998 |
+
if (!a.face) return a;
|
1999 |
+
this.fonts = this.fonts || {};
|
2000 |
+
var b = {
|
2001 |
+
w: a.w,
|
2002 |
+
face: {},
|
2003 |
+
glyphs: {}
|
2004 |
+
}, c = a.face["font-family"];
|
2005 |
+
for (var d in a.face) a.face[g](d) && (b.face[d] = a.face[d]);
|
2006 |
+
this.fonts[c] ? this.fonts[c].push(b) : this.fonts[c] = [ b ];
|
2007 |
+
if (!a.svg) {
|
2008 |
+
b.face["units-per-em"] = R(a.face["units-per-em"], 10);
|
2009 |
+
for (var e in a.glyphs) if (a.glyphs[g](e)) {
|
2010 |
+
var f = a.glyphs[e];
|
2011 |
+
b.glyphs[e] = {
|
2012 |
+
w: f.w,
|
2013 |
+
k: {},
|
2014 |
+
d: f.d && "M" + f.d.replace(/[mlcxtrv]/g, function(a) {
|
2015 |
+
return {
|
2016 |
+
l: "L",
|
2017 |
+
c: "C",
|
2018 |
+
x: "z",
|
2019 |
+
t: "m",
|
2020 |
+
r: "l",
|
2021 |
+
v: "c"
|
2022 |
+
}[a] || "M";
|
2023 |
+
}) + "z"
|
2024 |
+
};
|
2025 |
+
if (f.k) for (var h in f.k) f[g](h) && (b.glyphs[e].k[h] = f.k[h]);
|
2026 |
+
}
|
2027 |
+
}
|
2028 |
+
return a;
|
2029 |
+
}, k.getFont = function(b, c, d, e) {
|
2030 |
+
e = e || "normal", d = d || "normal", c = +c || {
|
2031 |
+
normal: 400,
|
2032 |
+
bold: 700,
|
2033 |
+
lighter: 300,
|
2034 |
+
bolder: 800
|
2035 |
+
}[c] || 400;
|
2036 |
+
if (!!a.fonts) {
|
2037 |
+
var f = a.fonts[b];
|
2038 |
+
if (!f) {
|
2039 |
+
var h = new RegExp("(^|\\s)" + b.replace(/[^\w\d\s+!~.:_-]/g, p) + "(\\s|$)", "i");
|
2040 |
+
for (var i in a.fonts) if (a.fonts[g](i) && h.test(i)) {
|
2041 |
+
f = a.fonts[i];
|
2042 |
+
break;
|
2043 |
+
}
|
2044 |
+
}
|
2045 |
+
var j;
|
2046 |
+
if (f) for (var k = 0, l = f.length; k < l; k++) {
|
2047 |
+
j = f[k];
|
2048 |
+
if (j.face["font-weight"] == c && (j.face["font-style"] == d || !j.face["font-style"]) && j.face["font-stretch"] == e) break;
|
2049 |
+
}
|
2050 |
+
return j;
|
2051 |
+
}
|
2052 |
+
}, k.print = function(b, d, e, f, g, h, i) {
|
2053 |
+
h = h || "middle", i = x(y(i || 0, 1), -1);
|
2054 |
+
var j = r(e)[s](p), k = 0, l = 0, m = p, n;
|
2055 |
+
a.is(f, e) && (f = this.getFont(f));
|
2056 |
+
if (f) {
|
2057 |
+
n = (g || 16) / f.face["units-per-em"];
|
2058 |
+
var o = f.face.bbox[s](c), q = +o[0], t = o[3] - o[1], u = 0, v = +o[1] + (h == "baseline" ? t + +f.face.descent : t / 2);
|
2059 |
+
for (var w = 0, z = j.length; w < z; w++) {
|
2060 |
+
if (j[w] == "\n") k = 0, B = 0, l = 0, u += t; else {
|
2061 |
+
var A = l && f.glyphs[j[w - 1]] || {}, B = f.glyphs[j[w]];
|
2062 |
+
k += l ? (A.w || f.w) + (A.k && A.k[j[w]] || 0) + f.w * i : 0, l = 1;
|
2063 |
+
}
|
2064 |
+
B && B.d && (m += a.transformPath(B.d, [ "t", k * n, u * n, "s", n, n, q, v, "t", (b - q) / n, (d - v) / n ]));
|
2065 |
+
}
|
2066 |
+
}
|
2067 |
+
return this.path(m).attr({
|
2068 |
+
fill: "#000",
|
2069 |
+
stroke: "none"
|
2070 |
+
});
|
2071 |
+
}, k.add = function(b) {
|
2072 |
+
if (a.is(b, "array")) {
|
2073 |
+
var c = this.set(), e = 0, f = b.length, h;
|
2074 |
+
for (;e < f; e++) h = b[e] || {}, d[g](h.type) && c.push(this[h.type]().attr(h));
|
2075 |
+
}
|
2076 |
+
return c;
|
2077 |
+
}, a.format = function(b, c) {
|
2078 |
+
var d = a.is(c, E) ? [ 0 ][n](c) : arguments;
|
2079 |
+
b && a.is(b, D) && d.length - 1 && (b = b.replace(e, function(a, b) {
|
2080 |
+
return d[++b] == null ? p : d[b];
|
2081 |
+
}));
|
2082 |
+
return b || p;
|
2083 |
+
}, a.fullfill = function() {
|
2084 |
+
var a = /\{([^\}]+)\}/g, b = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, c = function(a, c, d) {
|
2085 |
+
var e = d;
|
2086 |
+
c.replace(b, function(a, b, c, d, f) {
|
2087 |
+
b = b || d, e && (b in e && (e = e[b]), typeof e == "function" && f && (e = e()));
|
2088 |
+
}), e = (e == null || e == d ? a : e) + "";
|
2089 |
+
return e;
|
2090 |
+
};
|
2091 |
+
return function(b, d) {
|
2092 |
+
return String(b).replace(a, function(a, b) {
|
2093 |
+
return c(a, b, d);
|
2094 |
+
});
|
2095 |
+
};
|
2096 |
+
}(), a.ninja = function() {
|
2097 |
+
i.was ? h.win.Raphael = i.is : delete Raphael;
|
2098 |
+
return a;
|
2099 |
+
}, a.st = cH, function(b, c, d) {
|
2100 |
+
function e() {
|
2101 |
+
/in/.test(b.readyState) ? setTimeout(e, 9) : a.eve("raphael.DOMload");
|
2102 |
+
}
|
2103 |
+
b.readyState == null && b.addEventListener && (b.addEventListener(c, d = function() {
|
2104 |
+
b.removeEventListener(c, d, !1), b.readyState = "complete";
|
2105 |
+
}, !1), b.readyState = "loading"), e();
|
2106 |
+
}(document, "DOMContentLoaded"), i.was ? h.win.Raphael = a : Raphael = a, eve.on("raphael.DOMload", function() {
|
2107 |
+
b = !0;
|
2108 |
+
});
|
2109 |
+
}(), window.Raphael.svg && function(a) {
|
2110 |
+
var b = "hasOwnProperty", c = String, d = parseFloat, e = parseInt, f = Math, g = f.max, h = f.abs, i = f.pow, j = /[, ]+/, k = a.eve, l = "", m = " ", n = "http://www.w3.org/1999/xlink", o = {
|
2111 |
+
block: "M5,0 0,2.5 5,5z",
|
2112 |
+
classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",
|
2113 |
+
diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",
|
2114 |
+
open: "M6,1 1,3.5 6,6",
|
2115 |
+
oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"
|
2116 |
+
}, p = {};
|
2117 |
+
a.toString = function() {
|
2118 |
+
return "Your browser supports SVG.\nYou are running Raphaël " + this.version;
|
2119 |
+
};
|
2120 |
+
var q = function(d, e) {
|
2121 |
+
if (e) {
|
2122 |
+
typeof d == "string" && (d = q(d));
|
2123 |
+
for (var f in e) e[b](f) && (f.substring(0, 6) == "xlink:" ? d.setAttributeNS(n, f.substring(6), c(e[f])) : d.setAttribute(f, c(e[f])));
|
2124 |
+
} else d = a._g.doc.createElementNS("http://www.w3.org/2000/svg", d), d.style && (d.style.webkitTapHighlightColor = "rgba(0,0,0,0)");
|
2125 |
+
return d;
|
2126 |
+
}, r = function(b, e) {
|
2127 |
+
var j = "linear", k = b.id + e, m = .5, n = .5, o = b.node, p = b.paper, r = o.style, s = a._g.doc.getElementById(k);
|
2128 |
+
if (!s) {
|
2129 |
+
e = c(e).replace(a._radial_gradient, function(a, b, c) {
|
2130 |
+
j = "radial";
|
2131 |
+
if (b && c) {
|
2132 |
+
m = d(b), n = d(c);
|
2133 |
+
var e = (n > .5) * 2 - 1;
|
2134 |
+
i(m - .5, 2) + i(n - .5, 2) > .25 && (n = f.sqrt(.25 - i(m - .5, 2)) * e + .5) && n != .5 && (n = n.toFixed(5) - 1e-5 * e);
|
2135 |
+
}
|
2136 |
+
return l;
|
2137 |
+
}), e = e.split(/\s*\-\s*/);
|
2138 |
+
if (j == "linear") {
|
2139 |
+
var t = e.shift();
|
2140 |
+
t = -d(t);
|
2141 |
+
if (isNaN(t)) return null;
|
2142 |
+
var u = [ 0, 0, f.cos(a.rad(t)), f.sin(a.rad(t)) ], v = 1 / (g(h(u[2]), h(u[3])) || 1);
|
2143 |
+
u[2] *= v, u[3] *= v, u[2] < 0 && (u[0] = -u[2], u[2] = 0), u[3] < 0 && (u[1] = -u[3],
|
2144 |
+
u[3] = 0);
|
2145 |
+
}
|
2146 |
+
var w = a._parseDots(e);
|
2147 |
+
if (!w) return null;
|
2148 |
+
k = k.replace(/[\(\)\s,\xb0#]/g, "_"), b.gradient && k != b.gradient.id && (p.defs.removeChild(b.gradient),
|
2149 |
+
delete b.gradient);
|
2150 |
+
if (!b.gradient) {
|
2151 |
+
s = q(j + "Gradient", {
|
2152 |
+
id: k
|
2153 |
+
}), b.gradient = s, q(s, j == "radial" ? {
|
2154 |
+
fx: m,
|
2155 |
+
fy: n
|
2156 |
+
} : {
|
2157 |
+
x1: u[0],
|
2158 |
+
y1: u[1],
|
2159 |
+
x2: u[2],
|
2160 |
+
y2: u[3],
|
2161 |
+
gradientTransform: b.matrix.invert()
|
2162 |
+
}), p.defs.appendChild(s);
|
2163 |
+
for (var x = 0, y = w.length; x < y; x++) s.appendChild(q("stop", {
|
2164 |
+
offset: w[x].offset ? w[x].offset : x ? "100%" : "0%",
|
2165 |
+
"stop-color": w[x].color || "#fff"
|
2166 |
+
}));
|
2167 |
+
}
|
2168 |
+
}
|
2169 |
+
q(o, {
|
2170 |
+
fill: "url(#" + k + ")",
|
2171 |
+
opacity: 1,
|
2172 |
+
"fill-opacity": 1
|
2173 |
+
}), r.fill = l, r.opacity = 1, r.fillOpacity = 1;
|
2174 |
+
return 1;
|
2175 |
+
}, s = function(a) {
|
2176 |
+
var b = a.getBBox(1);
|
2177 |
+
q(a.pattern, {
|
2178 |
+
patternTransform: a.matrix.invert() + " translate(" + b.x + "," + b.y + ")"
|
2179 |
+
});
|
2180 |
+
}, t = function(d, e, f) {
|
2181 |
+
if (d.type == "path") {
|
2182 |
+
var g = c(e).toLowerCase().split("-"), h = d.paper, i = f ? "end" : "start", j = d.node, k = d.attrs, m = k["stroke-width"], n = g.length, r = "classic", s, t, u, v, w, x = 3, y = 3, z = 5;
|
2183 |
+
while (n--) switch (g[n]) {
|
2184 |
+
case "block":
|
2185 |
+
case "classic":
|
2186 |
+
case "oval":
|
2187 |
+
case "diamond":
|
2188 |
+
case "open":
|
2189 |
+
case "none":
|
2190 |
+
r = g[n];
|
2191 |
+
break;
|
2192 |
+
|
2193 |
+
case "wide":
|
2194 |
+
y = 5;
|
2195 |
+
break;
|
2196 |
+
|
2197 |
+
case "narrow":
|
2198 |
+
y = 2;
|
2199 |
+
break;
|
2200 |
+
|
2201 |
+
case "long":
|
2202 |
+
x = 5;
|
2203 |
+
break;
|
2204 |
+
|
2205 |
+
case "short":
|
2206 |
+
x = 2;
|
2207 |
+
}
|
2208 |
+
r == "open" ? (x += 2, y += 2, z += 2, u = 1, v = f ? 4 : 1, w = {
|
2209 |
+
fill: "none",
|
2210 |
+
stroke: k.stroke
|
2211 |
+
}) : (v = u = x / 2, w = {
|
2212 |
+
fill: k.stroke,
|
2213 |
+
stroke: "none"
|
2214 |
+
}), d._.arrows ? f ? (d._.arrows.endPath && p[d._.arrows.endPath]--, d._.arrows.endMarker && p[d._.arrows.endMarker]--) : (d._.arrows.startPath && p[d._.arrows.startPath]--,
|
2215 |
+
d._.arrows.startMarker && p[d._.arrows.startMarker]--) : d._.arrows = {};
|
2216 |
+
if (r != "none") {
|
2217 |
+
var A = "raphael-marker-" + r, B = "raphael-marker-" + i + r + x + y;
|
2218 |
+
a._g.doc.getElementById(A) ? p[A]++ : (h.defs.appendChild(q(q("path"), {
|
2219 |
+
"stroke-linecap": "round",
|
2220 |
+
d: o[r],
|
2221 |
+
id: A
|
2222 |
+
})), p[A] = 1);
|
2223 |
+
var C = a._g.doc.getElementById(B), D;
|
2224 |
+
C ? (p[B]++, D = C.getElementsByTagName("use")[0]) : (C = q(q("marker"), {
|
2225 |
+
id: B,
|
2226 |
+
markerHeight: y,
|
2227 |
+
markerWidth: x,
|
2228 |
+
orient: "auto",
|
2229 |
+
refX: v,
|
2230 |
+
refY: y / 2
|
2231 |
+
}), D = q(q("use"), {
|
2232 |
+
"xlink:href": "#" + A,
|
2233 |
+
transform: (f ? "rotate(180 " + x / 2 + " " + y / 2 + ") " : l) + "scale(" + x / z + "," + y / z + ")",
|
2234 |
+
"stroke-width": (1 / ((x / z + y / z) / 2)).toFixed(4)
|
2235 |
+
}), C.appendChild(D), h.defs.appendChild(C), p[B] = 1), q(D, w);
|
2236 |
+
var F = u * (r != "diamond" && r != "oval");
|
2237 |
+
f ? (s = d._.arrows.startdx * m || 0, t = a.getTotalLength(k.path) - F * m) : (s = F * m,
|
2238 |
+
t = a.getTotalLength(k.path) - (d._.arrows.enddx * m || 0)), w = {}, w["marker-" + i] = "url(#" + B + ")";
|
2239 |
+
if (t || s) w.d = Raphael.getSubpath(k.path, s, t);
|
2240 |
+
q(j, w), d._.arrows[i + "Path"] = A, d._.arrows[i + "Marker"] = B, d._.arrows[i + "dx"] = F,
|
2241 |
+
d._.arrows[i + "Type"] = r, d._.arrows[i + "String"] = e;
|
2242 |
+
} else f ? (s = d._.arrows.startdx * m || 0, t = a.getTotalLength(k.path) - s) : (s = 0,
|
2243 |
+
t = a.getTotalLength(k.path) - (d._.arrows.enddx * m || 0)), d._.arrows[i + "Path"] && q(j, {
|
2244 |
+
d: Raphael.getSubpath(k.path, s, t)
|
2245 |
+
}), delete d._.arrows[i + "Path"], delete d._.arrows[i + "Marker"], delete d._.arrows[i + "dx"],
|
2246 |
+
delete d._.arrows[i + "Type"], delete d._.arrows[i + "String"];
|
2247 |
+
for (w in p) if (p[b](w) && !p[w]) {
|
2248 |
+
var G = a._g.doc.getElementById(w);
|
2249 |
+
G && G.parentNode.removeChild(G);
|
2250 |
+
}
|
2251 |
+
}
|
2252 |
+
}, u = {
|
2253 |
+
"": [ 0 ],
|
2254 |
+
none: [ 0 ],
|
2255 |
+
"-": [ 3, 1 ],
|
2256 |
+
".": [ 1, 1 ],
|
2257 |
+
"-.": [ 3, 1, 1, 1 ],
|
2258 |
+
"-..": [ 3, 1, 1, 1, 1, 1 ],
|
2259 |
+
". ": [ 1, 3 ],
|
2260 |
+
"- ": [ 4, 3 ],
|
2261 |
+
"--": [ 8, 3 ],
|
2262 |
+
"- .": [ 4, 3, 1, 3 ],
|
2263 |
+
"--.": [ 8, 3, 1, 3 ],
|
2264 |
+
"--..": [ 8, 3, 1, 3, 1, 3 ]
|
2265 |
+
}, v = function(a, b, d) {
|
2266 |
+
b = u[c(b).toLowerCase()];
|
2267 |
+
if (b) {
|
2268 |
+
var e = a.attrs["stroke-width"] || "1", f = {
|
2269 |
+
round: e,
|
2270 |
+
square: e,
|
2271 |
+
butt: 0
|
2272 |
+
}[a.attrs["stroke-linecap"] || d["stroke-linecap"]] || 0, g = [], h = b.length;
|
2273 |
+
while (h--) g[h] = b[h] * e + (h % 2 ? 1 : -1) * f;
|
2274 |
+
q(a.node, {
|
2275 |
+
"stroke-dasharray": g.join(",")
|
2276 |
+
});
|
2277 |
+
}
|
2278 |
+
}, w = function(d, f) {
|
2279 |
+
var i = d.node, k = d.attrs, m = i.style.visibility;
|
2280 |
+
i.style.visibility = "hidden";
|
2281 |
+
for (var o in f) if (f[b](o)) {
|
2282 |
+
if (!a._availableAttrs[b](o)) continue;
|
2283 |
+
var p = f[o];
|
2284 |
+
k[o] = p;
|
2285 |
+
switch (o) {
|
2286 |
+
case "blur":
|
2287 |
+
d.blur(p);
|
2288 |
+
break;
|
2289 |
+
|
2290 |
+
case "href":
|
2291 |
+
case "title":
|
2292 |
+
case "target":
|
2293 |
+
var u = i.parentNode;
|
2294 |
+
if (u.tagName.toLowerCase() != "a") {
|
2295 |
+
var w = q("a");
|
2296 |
+
u.insertBefore(w, i), w.appendChild(i), u = w;
|
2297 |
+
}
|
2298 |
+
o == "target" ? u.setAttributeNS(n, "show", p == "blank" ? "new" : p) : u.setAttributeNS(n, o, p);
|
2299 |
+
break;
|
2300 |
+
|
2301 |
+
case "cursor":
|
2302 |
+
i.style.cursor = p;
|
2303 |
+
break;
|
2304 |
+
|
2305 |
+
case "transform":
|
2306 |
+
d.transform(p);
|
2307 |
+
break;
|
2308 |
+
|
2309 |
+
case "arrow-start":
|
2310 |
+
t(d, p);
|
2311 |
+
break;
|
2312 |
+
|
2313 |
+
case "arrow-end":
|
2314 |
+
t(d, p, 1);
|
2315 |
+
break;
|
2316 |
+
|
2317 |
+
case "clip-rect":
|
2318 |
+
var x = c(p).split(j);
|
2319 |
+
if (x.length == 4) {
|
2320 |
+
d.clip && d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);
|
2321 |
+
var z = q("clipPath"), A = q("rect");
|
2322 |
+
z.id = a.createUUID(), q(A, {
|
2323 |
+
x: x[0],
|
2324 |
+
y: x[1],
|
2325 |
+
width: x[2],
|
2326 |
+
height: x[3]
|
2327 |
+
}), z.appendChild(A), d.paper.defs.appendChild(z), q(i, {
|
2328 |
+
"clip-path": "url(#" + z.id + ")"
|
2329 |
+
}), d.clip = A;
|
2330 |
+
}
|
2331 |
+
if (!p) {
|
2332 |
+
var B = i.getAttribute("clip-path");
|
2333 |
+
if (B) {
|
2334 |
+
var C = a._g.doc.getElementById(B.replace(/(^url\(#|\)$)/g, l));
|
2335 |
+
C && C.parentNode.removeChild(C), q(i, {
|
2336 |
+
"clip-path": l
|
2337 |
+
}), delete d.clip;
|
2338 |
+
}
|
2339 |
+
}
|
2340 |
+
break;
|
2341 |
+
|
2342 |
+
case "path":
|
2343 |
+
d.type == "path" && (q(i, {
|
2344 |
+
d: p ? k.path = a._pathToAbsolute(p) : "M0,0"
|
2345 |
+
}), d._.dirty = 1, d._.arrows && ("startString" in d._.arrows && t(d, d._.arrows.startString),
|
2346 |
+
"endString" in d._.arrows && t(d, d._.arrows.endString, 1)));
|
2347 |
+
break;
|
2348 |
+
|
2349 |
+
case "width":
|
2350 |
+
i.setAttribute(o, p), d._.dirty = 1;
|
2351 |
+
if (k.fx) o = "x", p = k.x; else break;
|
2352 |
+
|
2353 |
+
case "x":
|
2354 |
+
k.fx && (p = -k.x - (k.width || 0));
|
2355 |
+
|
2356 |
+
case "rx":
|
2357 |
+
if (o == "rx" && d.type == "rect") break;
|
2358 |
+
|
2359 |
+
case "cx":
|
2360 |
+
i.setAttribute(o, p), d.pattern && s(d), d._.dirty = 1;
|
2361 |
+
break;
|
2362 |
+
|
2363 |
+
case "height":
|
2364 |
+
i.setAttribute(o, p), d._.dirty = 1;
|
2365 |
+
if (k.fy) o = "y", p = k.y; else break;
|
2366 |
+
|
2367 |
+
case "y":
|
2368 |
+
k.fy && (p = -k.y - (k.height || 0));
|
2369 |
+
|
2370 |
+
case "ry":
|
2371 |
+
if (o == "ry" && d.type == "rect") break;
|
2372 |
+
|
2373 |
+
case "cy":
|
2374 |
+
i.setAttribute(o, p), d.pattern && s(d), d._.dirty = 1;
|
2375 |
+
break;
|
2376 |
+
|
2377 |
+
case "r":
|
2378 |
+
d.type == "rect" ? q(i, {
|
2379 |
+
rx: p,
|
2380 |
+
ry: p
|
2381 |
+
}) : i.setAttribute(o, p), d._.dirty = 1;
|
2382 |
+
break;
|
2383 |
+
|
2384 |
+
case "src":
|
2385 |
+
d.type == "image" && i.setAttributeNS(n, "href", p);
|
2386 |
+
break;
|
2387 |
+
|
2388 |
+
case "stroke-width":
|
2389 |
+
if (d._.sx != 1 || d._.sy != 1) p /= g(h(d._.sx), h(d._.sy)) || 1;
|
2390 |
+
d.paper._vbSize && (p *= d.paper._vbSize), i.setAttribute(o, p), k["stroke-dasharray"] && v(d, k["stroke-dasharray"], f),
|
2391 |
+
d._.arrows && ("startString" in d._.arrows && t(d, d._.arrows.startString), "endString" in d._.arrows && t(d, d._.arrows.endString, 1));
|
2392 |
+
break;
|
2393 |
+
|
2394 |
+
case "stroke-dasharray":
|
2395 |
+
v(d, p, f);
|
2396 |
+
break;
|
2397 |
+
|
2398 |
+
case "fill":
|
2399 |
+
var D = c(p).match(a._ISURL);
|
2400 |
+
if (D) {
|
2401 |
+
z = q("pattern");
|
2402 |
+
var F = q("image");
|
2403 |
+
z.id = a.createUUID(), q(z, {
|
2404 |
+
x: 0,
|
2405 |
+
y: 0,
|
2406 |
+
patternUnits: "userSpaceOnUse",
|
2407 |
+
height: 1,
|
2408 |
+
width: 1
|
2409 |
+
}), q(F, {
|
2410 |
+
x: 0,
|
2411 |
+
y: 0,
|
2412 |
+
"xlink:href": D[1]
|
2413 |
+
}), z.appendChild(F), function(b) {
|
2414 |
+
a._preload(D[1], function() {
|
2415 |
+
var a = this.offsetWidth, c = this.offsetHeight;
|
2416 |
+
q(b, {
|
2417 |
+
width: a,
|
2418 |
+
height: c
|
2419 |
+
}), q(F, {
|
2420 |
+
width: a,
|
2421 |
+
height: c
|
2422 |
+
}), d.paper.safari();
|
2423 |
+
});
|
2424 |
+
}(z), d.paper.defs.appendChild(z), q(i, {
|
2425 |
+
fill: "url(#" + z.id + ")"
|
2426 |
+
}), d.pattern = z, d.pattern && s(d);
|
2427 |
+
break;
|
2428 |
+
}
|
2429 |
+
var G = a.getRGB(p);
|
2430 |
+
if (!G.error) delete f.gradient, delete k.gradient, !a.is(k.opacity, "undefined") && a.is(f.opacity, "undefined") && q(i, {
|
2431 |
+
opacity: k.opacity
|
2432 |
+
}), !a.is(k["fill-opacity"], "undefined") && a.is(f["fill-opacity"], "undefined") && q(i, {
|
2433 |
+
"fill-opacity": k["fill-opacity"]
|
2434 |
+
}); else if ((d.type == "circle" || d.type == "ellipse" || c(p).charAt() != "r") && r(d, p)) {
|
2435 |
+
if ("opacity" in k || "fill-opacity" in k) {
|
2436 |
+
var H = a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g, l));
|
2437 |
+
if (H) {
|
2438 |
+
var I = H.getElementsByTagName("stop");
|
2439 |
+
q(I[I.length - 1], {
|
2440 |
+
"stop-opacity": ("opacity" in k ? k.opacity : 1) * ("fill-opacity" in k ? k["fill-opacity"] : 1)
|
2441 |
+
});
|
2442 |
+
}
|
2443 |
+
}
|
2444 |
+
k.gradient = p, k.fill = "none";
|
2445 |
+
break;
|
2446 |
+
}
|
2447 |
+
G[b]("opacity") && q(i, {
|
2448 |
+
"fill-opacity": G.opacity > 1 ? G.opacity / 100 : G.opacity
|
2449 |
+
});
|
2450 |
+
|
2451 |
+
case "stroke":
|
2452 |
+
G = a.getRGB(p), i.setAttribute(o, G.hex), o == "stroke" && G[b]("opacity") && q(i, {
|
2453 |
+
"stroke-opacity": G.opacity > 1 ? G.opacity / 100 : G.opacity
|
2454 |
+
}), o == "stroke" && d._.arrows && ("startString" in d._.arrows && t(d, d._.arrows.startString),
|
2455 |
+
"endString" in d._.arrows && t(d, d._.arrows.endString, 1));
|
2456 |
+
break;
|
2457 |
+
|
2458 |
+
case "gradient":
|
2459 |
+
(d.type == "circle" || d.type == "ellipse" || c(p).charAt() != "r") && r(d, p);
|
2460 |
+
break;
|
2461 |
+
|
2462 |
+
case "opacity":
|
2463 |
+
k.gradient && !k[b]("stroke-opacity") && q(i, {
|
2464 |
+
"stroke-opacity": p > 1 ? p / 100 : p
|
2465 |
+
});
|
2466 |
+
|
2467 |
+
case "fill-opacity":
|
2468 |
+
if (k.gradient) {
|
2469 |
+
H = a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g, l)),
|
2470 |
+
H && (I = H.getElementsByTagName("stop"), q(I[I.length - 1], {
|
2471 |
+
"stop-opacity": p
|
2472 |
+
}));
|
2473 |
+
break;
|
2474 |
+
}
|
2475 |
+
;
|
2476 |
+
|
2477 |
+
default:
|
2478 |
+
o == "font-size" && (p = e(p, 10) + "px");
|
2479 |
+
var J = o.replace(/(\-.)/g, function(a) {
|
2480 |
+
return a.substring(1).toUpperCase();
|
2481 |
+
});
|
2482 |
+
i.style[J] = p, d._.dirty = 1, i.setAttribute(o, p);
|
2483 |
+
}
|
2484 |
+
}
|
2485 |
+
y(d, f), i.style.visibility = m;
|
2486 |
+
}, x = 1.2, y = function(d, f) {
|
2487 |
+
if (d.type == "text" && !!(f[b]("text") || f[b]("font") || f[b]("font-size") || f[b]("x") || f[b]("y"))) {
|
2488 |
+
var g = d.attrs, h = d.node, i = h.firstChild ? e(a._g.doc.defaultView.getComputedStyle(h.firstChild, l).getPropertyValue("font-size"), 10) : 10;
|
2489 |
+
if (f[b]("text")) {
|
2490 |
+
g.text = f.text;
|
2491 |
+
while (h.firstChild) h.removeChild(h.firstChild);
|
2492 |
+
var j = c(f.text).split("\n"), k = [], m;
|
2493 |
+
for (var n = 0, o = j.length; n < o; n++) m = q("tspan"), n && q(m, {
|
2494 |
+
dy: i * x,
|
2495 |
+
x: g.x
|
2496 |
+
}), m.appendChild(a._g.doc.createTextNode(j[n])), h.appendChild(m), k[n] = m;
|
2497 |
+
} else {
|
2498 |
+
k = h.getElementsByTagName("tspan");
|
2499 |
+
for (n = 0, o = k.length; n < o; n++) n ? q(k[n], {
|
2500 |
+
dy: i * x,
|
2501 |
+
x: g.x
|
2502 |
+
}) : q(k[0], {
|
2503 |
+
dy: 0
|
2504 |
+
});
|
2505 |
+
}
|
2506 |
+
q(h, {
|
2507 |
+
x: g.x,
|
2508 |
+
y: g.y
|
2509 |
+
}), d._.dirty = 1;
|
2510 |
+
var p = d._getBBox(), r = g.y - (p.y + p.height / 2);
|
2511 |
+
r && a.is(r, "finite") && q(k[0], {
|
2512 |
+
dy: r
|
2513 |
+
});
|
2514 |
+
}
|
2515 |
+
}, z = function(b, c) {
|
2516 |
+
var d = 0, e = 0;
|
2517 |
+
this[0] = this.node = b, b.raphael = !0, this.id = a._oid++, b.raphaelid = this.id,
|
2518 |
+
this.matrix = a.matrix(), this.realPath = null, this.paper = c, this.attrs = this.attrs || {},
|
2519 |
+
this._ = {
|
2520 |
+
transform: [],
|
2521 |
+
sx: 1,
|
2522 |
+
sy: 1,
|
2523 |
+
deg: 0,
|
2524 |
+
dx: 0,
|
2525 |
+
dy: 0,
|
2526 |
+
dirty: 1
|
2527 |
+
}, !c.bottom && (c.bottom = this), this.prev = c.top, c.top && (c.top.next = this),
|
2528 |
+
c.top = this, this.next = null;
|
2529 |
+
}, A = a.el;
|
2530 |
+
z.prototype = A, A.constructor = z, a._engine.path = function(a, b) {
|
2531 |
+
var c = q("path");
|
2532 |
+
b.canvas && b.canvas.appendChild(c);
|
2533 |
+
var d = new z(c, b);
|
2534 |
+
d.type = "path", w(d, {
|
2535 |
+
fill: "none",
|
2536 |
+
stroke: "#000",
|
2537 |
+
path: a
|
2538 |
+
});
|
2539 |
+
return d;
|
2540 |
+
}, A.rotate = function(a, b, e) {
|
2541 |
+
if (this.removed) return this;
|
2542 |
+
a = c(a).split(j), a.length - 1 && (b = d(a[1]), e = d(a[2])), a = d(a[0]), e == null && (b = e);
|
2543 |
+
if (b == null || e == null) {
|
2544 |
+
var f = this.getBBox(1);
|
2545 |
+
b = f.x + f.width / 2, e = f.y + f.height / 2;
|
2546 |
+
}
|
2547 |
+
this.transform(this._.transform.concat([ [ "r", a, b, e ] ]));
|
2548 |
+
return this;
|
2549 |
+
}, A.scale = function(a, b, e, f) {
|
2550 |
+
if (this.removed) return this;
|
2551 |
+
a = c(a).split(j), a.length - 1 && (b = d(a[1]), e = d(a[2]), f = d(a[3])), a = d(a[0]),
|
2552 |
+
b == null && (b = a), f == null && (e = f);
|
2553 |
+
if (e == null || f == null) var g = this.getBBox(1);
|
2554 |
+
e = e == null ? g.x + g.width / 2 : e, f = f == null ? g.y + g.height / 2 : f, this.transform(this._.transform.concat([ [ "s", a, b, e, f ] ]));
|
2555 |
+
return this;
|
2556 |
+
}, A.translate = function(a, b) {
|
2557 |
+
if (this.removed) return this;
|
2558 |
+
a = c(a).split(j), a.length - 1 && (b = d(a[1])), a = d(a[0]) || 0, b = +b || 0,
|
2559 |
+
this.transform(this._.transform.concat([ [ "t", a, b ] ]));
|
2560 |
+
return this;
|
2561 |
+
}, A.transform = function(c) {
|
2562 |
+
var d = this._;
|
2563 |
+
if (c == null) return d.transform;
|
2564 |
+
a._extractTransform(this, c), this.clip && q(this.clip, {
|
2565 |
+
transform: this.matrix.invert()
|
2566 |
+
}), this.pattern && s(this), this.node && q(this.node, {
|
2567 |
+
transform: this.matrix
|
2568 |
+
});
|
2569 |
+
if (d.sx != 1 || d.sy != 1) {
|
2570 |
+
var e = this.attrs[b]("stroke-width") ? this.attrs["stroke-width"] : 1;
|
2571 |
+
this.attr({
|
2572 |
+
"stroke-width": e
|
2573 |
+
});
|
2574 |
+
}
|
2575 |
+
return this;
|
2576 |
+
}, A.hide = function() {
|
2577 |
+
!this.removed && this.paper.safari(this.node.style.display = "none");
|
2578 |
+
return this;
|
2579 |
+
}, A.show = function() {
|
2580 |
+
!this.removed && this.paper.safari(this.node.style.display = "");
|
2581 |
+
return this;
|
2582 |
+
}, A.remove = function() {
|
2583 |
+
if (!this.removed && !!this.node.parentNode) {
|
2584 |
+
var b = this.paper;
|
2585 |
+
b.__set__ && b.__set__.exclude(this), k.unbind("raphael.*.*." + this.id), this.gradient && b.defs.removeChild(this.gradient),
|
2586 |
+
a._tear(this, b), this.node.parentNode.tagName.toLowerCase() == "a" ? this.node.parentNode.parentNode.removeChild(this.node.parentNode) : this.node.parentNode.removeChild(this.node);
|
2587 |
+
for (var c in this) this[c] = typeof this[c] == "function" ? a._removedFactory(c) : null;
|
2588 |
+
this.removed = !0;
|
2589 |
+
}
|
2590 |
+
}, A._getBBox = function() {
|
2591 |
+
if (this.node.style.display == "none") {
|
2592 |
+
this.show();
|
2593 |
+
var a = !0;
|
2594 |
+
}
|
2595 |
+
var b = {};
|
2596 |
+
try {
|
2597 |
+
b = this.node.getBBox();
|
2598 |
+
} catch (c) {} finally {
|
2599 |
+
b = b || {};
|
2600 |
+
}
|
2601 |
+
a && this.hide();
|
2602 |
+
return b;
|
2603 |
+
}, A.attr = function(c, d) {
|
2604 |
+
if (this.removed) return this;
|
2605 |
+
if (c == null) {
|
2606 |
+
var e = {};
|
2607 |
+
for (var f in this.attrs) this.attrs[b](f) && (e[f] = this.attrs[f]);
|
2608 |
+
e.gradient && e.fill == "none" && (e.fill = e.gradient) && delete e.gradient, e.transform = this._.transform;
|
2609 |
+
return e;
|
2610 |
+
}
|
2611 |
+
if (d == null && a.is(c, "string")) {
|
2612 |
+
if (c == "fill" && this.attrs.fill == "none" && this.attrs.gradient) return this.attrs.gradient;
|
2613 |
+
if (c == "transform") return this._.transform;
|
2614 |
+
var g = c.split(j), h = {};
|
2615 |
+
for (var i = 0, l = g.length; i < l; i++) c = g[i], c in this.attrs ? h[c] = this.attrs[c] : a.is(this.paper.customAttributes[c], "function") ? h[c] = this.paper.customAttributes[c].def : h[c] = a._availableAttrs[c];
|
2616 |
+
return l - 1 ? h : h[g[0]];
|
2617 |
+
}
|
2618 |
+
if (d == null && a.is(c, "array")) {
|
2619 |
+
h = {};
|
2620 |
+
for (i = 0, l = c.length; i < l; i++) h[c[i]] = this.attr(c[i]);
|
2621 |
+
return h;
|
2622 |
+
}
|
2623 |
+
if (d != null) {
|
2624 |
+
var m = {};
|
2625 |
+
m[c] = d;
|
2626 |
+
} else c != null && a.is(c, "object") && (m = c);
|
2627 |
+
for (var n in m) k("raphael.attr." + n + "." + this.id, this, m[n]);
|
2628 |
+
for (n in this.paper.customAttributes) if (this.paper.customAttributes[b](n) && m[b](n) && a.is(this.paper.customAttributes[n], "function")) {
|
2629 |
+
var o = this.paper.customAttributes[n].apply(this, [].concat(m[n]));
|
2630 |
+
this.attrs[n] = m[n];
|
2631 |
+
for (var p in o) o[b](p) && (m[p] = o[p]);
|
2632 |
+
}
|
2633 |
+
w(this, m);
|
2634 |
+
return this;
|
2635 |
+
}, A.toFront = function() {
|
2636 |
+
if (this.removed) return this;
|
2637 |
+
this.node.parentNode.tagName.toLowerCase() == "a" ? this.node.parentNode.parentNode.appendChild(this.node.parentNode) : this.node.parentNode.appendChild(this.node);
|
2638 |
+
var b = this.paper;
|
2639 |
+
b.top != this && a._tofront(this, b);
|
2640 |
+
return this;
|
2641 |
+
}, A.toBack = function() {
|
2642 |
+
if (this.removed) return this;
|
2643 |
+
var b = this.node.parentNode;
|
2644 |
+
b.tagName.toLowerCase() == "a" ? b.parentNode.insertBefore(this.node.parentNode, this.node.parentNode.parentNode.firstChild) : b.firstChild != this.node && b.insertBefore(this.node, this.node.parentNode.firstChild),
|
2645 |
+
a._toback(this, this.paper);
|
2646 |
+
var c = this.paper;
|
2647 |
+
return this;
|
2648 |
+
}, A.insertAfter = function(b) {
|
2649 |
+
if (this.removed) return this;
|
2650 |
+
var c = b.node || b[b.length - 1].node;
|
2651 |
+
c.nextSibling ? c.parentNode.insertBefore(this.node, c.nextSibling) : c.parentNode.appendChild(this.node),
|
2652 |
+
a._insertafter(this, b, this.paper);
|
2653 |
+
return this;
|
2654 |
+
}, A.insertBefore = function(b) {
|
2655 |
+
if (this.removed) return this;
|
2656 |
+
var c = b.node || b[0].node;
|
2657 |
+
c.parentNode.insertBefore(this.node, c), a._insertbefore(this, b, this.paper);
|
2658 |
+
return this;
|
2659 |
+
}, A.blur = function(b) {
|
2660 |
+
var c = this;
|
2661 |
+
if (+b !== 0) {
|
2662 |
+
var d = q("filter"), e = q("feGaussianBlur");
|
2663 |
+
c.attrs.blur = b, d.id = a.createUUID(), q(e, {
|
2664 |
+
stdDeviation: +b || 1.5
|
2665 |
+
}), d.appendChild(e), c.paper.defs.appendChild(d), c._blur = d, q(c.node, {
|
2666 |
+
filter: "url(#" + d.id + ")"
|
2667 |
+
});
|
2668 |
+
} else c._blur && (c._blur.parentNode.removeChild(c._blur), delete c._blur, delete c.attrs.blur),
|
2669 |
+
c.node.removeAttribute("filter");
|
2670 |
+
}, a._engine.circle = function(a, b, c, d) {
|
2671 |
+
var e = q("circle");
|
2672 |
+
a.canvas && a.canvas.appendChild(e);
|
2673 |
+
var f = new z(e, a);
|
2674 |
+
f.attrs = {
|
2675 |
+
cx: b,
|
2676 |
+
cy: c,
|
2677 |
+
r: d,
|
2678 |
+
fill: "none",
|
2679 |
+
stroke: "#000"
|
2680 |
+
}, f.type = "circle", q(e, f.attrs);
|
2681 |
+
return f;
|
2682 |
+
}, a._engine.rect = function(a, b, c, d, e, f) {
|
2683 |
+
var g = q("rect");
|
2684 |
+
a.canvas && a.canvas.appendChild(g);
|
2685 |
+
var h = new z(g, a);
|
2686 |
+
h.attrs = {
|
2687 |
+
x: b,
|
2688 |
+
y: c,
|
2689 |
+
width: d,
|
2690 |
+
height: e,
|
2691 |
+
r: f || 0,
|
2692 |
+
rx: f || 0,
|
2693 |
+
ry: f || 0,
|
2694 |
+
fill: "none",
|
2695 |
+
stroke: "#000"
|
2696 |
+
}, h.type = "rect", q(g, h.attrs);
|
2697 |
+
return h;
|
2698 |
+
}, a._engine.ellipse = function(a, b, c, d, e) {
|
2699 |
+
var f = q("ellipse");
|
2700 |
+
a.canvas && a.canvas.appendChild(f);
|
2701 |
+
var g = new z(f, a);
|
2702 |
+
g.attrs = {
|
2703 |
+
cx: b,
|
2704 |
+
cy: c,
|
2705 |
+
rx: d,
|
2706 |
+
ry: e,
|
2707 |
+
fill: "none",
|
2708 |
+
stroke: "#000"
|
2709 |
+
}, g.type = "ellipse", q(f, g.attrs);
|
2710 |
+
return g;
|
2711 |
+
}, a._engine.image = function(a, b, c, d, e, f) {
|
2712 |
+
var g = q("image");
|
2713 |
+
q(g, {
|
2714 |
+
x: c,
|
2715 |
+
y: d,
|
2716 |
+
width: e,
|
2717 |
+
height: f,
|
2718 |
+
preserveAspectRatio: "none"
|
2719 |
+
}), g.setAttributeNS(n, "href", b), a.canvas && a.canvas.appendChild(g);
|
2720 |
+
var h = new z(g, a);
|
2721 |
+
h.attrs = {
|
2722 |
+
x: c,
|
2723 |
+
y: d,
|
2724 |
+
width: e,
|
2725 |
+
height: f,
|
2726 |
+
src: b
|
2727 |
+
}, h.type = "image";
|
2728 |
+
return h;
|
2729 |
+
}, a._engine.text = function(b, c, d, e) {
|
2730 |
+
var f = q("text");
|
2731 |
+
b.canvas && b.canvas.appendChild(f);
|
2732 |
+
var g = new z(f, b);
|
2733 |
+
g.attrs = {
|
2734 |
+
x: c,
|
2735 |
+
y: d,
|
2736 |
+
"text-anchor": "middle",
|
2737 |
+
text: e,
|
2738 |
+
font: a._availableAttrs.font,
|
2739 |
+
stroke: "none",
|
2740 |
+
fill: "#000"
|
2741 |
+
}, g.type = "text", w(g, g.attrs);
|
2742 |
+
return g;
|
2743 |
+
}, a._engine.setSize = function(a, b) {
|
2744 |
+
this.width = a || this.width, this.height = b || this.height, this.canvas.setAttribute("width", this.width),
|
2745 |
+
this.canvas.setAttribute("height", this.height), this._viewBox && this.setViewBox.apply(this, this._viewBox);
|
2746 |
+
return this;
|
2747 |
+
}, a._engine.create = function() {
|
2748 |
+
var b = a._getContainer.apply(0, arguments), c = b && b.container, d = b.x, e = b.y, f = b.width, g = b.height;
|
2749 |
+
if (!c) throw new Error("SVG container not found.");
|
2750 |
+
var h = q("svg"), i = "overflow:hidden;", j;
|
2751 |
+
d = d || 0, e = e || 0, f = f || 512, g = g || 342, q(h, {
|
2752 |
+
height: g,
|
2753 |
+
version: 1.1,
|
2754 |
+
width: f,
|
2755 |
+
xmlns: "http://www.w3.org/2000/svg"
|
2756 |
+
}), c == 1 ? (h.style.cssText = i + "position:absolute;left:" + d + "px;top:" + e + "px",
|
2757 |
+
a._g.doc.body.appendChild(h), j = 1) : (h.style.cssText = i + "position:relative",
|
2758 |
+
c.firstChild ? c.insertBefore(h, c.firstChild) : c.appendChild(h)), c = new a._Paper(),
|
2759 |
+
c.width = f, c.height = g, c.canvas = h, c.clear(), c._left = c._top = 0, j && (c.renderfix = function() {}),
|
2760 |
+
c.renderfix();
|
2761 |
+
return c;
|
2762 |
+
}, a._engine.setViewBox = function(a, b, c, d, e) {
|
2763 |
+
k("raphael.setViewBox", this, this._viewBox, [ a, b, c, d, e ]);
|
2764 |
+
var f = g(c / this.width, d / this.height), h = this.top, i = e ? "meet" : "xMinYMin", j, l;
|
2765 |
+
a == null ? (this._vbSize && (f = 1), delete this._vbSize, j = "0 0 " + this.width + m + this.height) : (this._vbSize = f,
|
2766 |
+
j = a + m + b + m + c + m + d), q(this.canvas, {
|
2767 |
+
viewBox: j,
|
2768 |
+
preserveAspectRatio: i
|
2769 |
+
});
|
2770 |
+
while (f && h) l = "stroke-width" in h.attrs ? h.attrs["stroke-width"] : 1, h.attr({
|
2771 |
+
"stroke-width": l
|
2772 |
+
}), h._.dirty = 1, h._.dirtyT = 1, h = h.prev;
|
2773 |
+
this._viewBox = [ a, b, c, d, !!e ];
|
2774 |
+
return this;
|
2775 |
+
}, a.prototype.renderfix = function() {
|
2776 |
+
var a = this.canvas, b = a.style, c;
|
2777 |
+
try {
|
2778 |
+
c = a.getScreenCTM() || a.createSVGMatrix();
|
2779 |
+
} catch (d) {
|
2780 |
+
c = a.createSVGMatrix();
|
2781 |
+
}
|
2782 |
+
var e = -c.e % 1, f = -c.f % 1;
|
2783 |
+
if (e || f) e && (this._left = (this._left + e) % 1, b.left = this._left + "px"),
|
2784 |
+
f && (this._top = (this._top + f) % 1, b.top = this._top + "px");
|
2785 |
+
}, a.prototype.clear = function() {
|
2786 |
+
a.eve("raphael.clear", this);
|
2787 |
+
var b = this.canvas;
|
2788 |
+
while (b.firstChild) b.removeChild(b.firstChild);
|
2789 |
+
this.bottom = this.top = null, (this.desc = q("desc")).appendChild(a._g.doc.createTextNode("Created with Raphaël " + a.version)),
|
2790 |
+
b.appendChild(this.desc), b.appendChild(this.defs = q("defs"));
|
2791 |
+
}, a.prototype.remove = function() {
|
2792 |
+
k("raphael.remove", this), this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);
|
2793 |
+
for (var b in this) this[b] = typeof this[b] == "function" ? a._removedFactory(b) : null;
|
2794 |
+
};
|
2795 |
+
var B = a.st;
|
2796 |
+
for (var C in A) A[b](C) && !B[b](C) && (B[C] = function(a) {
|
2797 |
+
return function() {
|
2798 |
+
var b = arguments;
|
2799 |
+
return this.forEach(function(c) {
|
2800 |
+
c[a].apply(c, b);
|
2801 |
+
});
|
2802 |
+
};
|
2803 |
+
}(C));
|
2804 |
+
}(window.Raphael), window.Raphael.vml && function(a) {
|
2805 |
+
var b = "hasOwnProperty", c = String, d = parseFloat, e = Math, f = e.round, g = e.max, h = e.min, i = e.abs, j = "fill", k = /[, ]+/, l = a.eve, m = " progid:DXImageTransform.Microsoft", n = " ", o = "", p = {
|
2806 |
+
M: "m",
|
2807 |
+
L: "l",
|
2808 |
+
C: "c",
|
2809 |
+
Z: "x",
|
2810 |
+
m: "t",
|
2811 |
+
l: "r",
|
2812 |
+
c: "v",
|
2813 |
+
z: "x"
|
2814 |
+
}, q = /([clmz]),?([^clmz]*)/gi, r = / progid:\S+Blur\([^\)]+\)/g, s = /-?[^,\s-]+/g, t = "position:absolute;left:0;top:0;width:1px;height:1px", u = 21600, v = {
|
2815 |
+
path: 1,
|
2816 |
+
rect: 1,
|
2817 |
+
image: 1
|
2818 |
+
}, w = {
|
2819 |
+
circle: 1,
|
2820 |
+
ellipse: 1
|
2821 |
+
}, x = function(b) {
|
2822 |
+
var d = /[ahqstv]/gi, e = a._pathToAbsolute;
|
2823 |
+
c(b).match(d) && (e = a._path2curve), d = /[clmz]/g;
|
2824 |
+
if (e == a._pathToAbsolute && !c(b).match(d)) {
|
2825 |
+
var g = c(b).replace(q, function(a, b, c) {
|
2826 |
+
var d = [], e = b.toLowerCase() == "m", g = p[b];
|
2827 |
+
c.replace(s, function(a) {
|
2828 |
+
e && d.length == 2 && (g += d + p[b == "m" ? "l" : "L"], d = []), d.push(f(a * u));
|
2829 |
+
});
|
2830 |
+
return g + d;
|
2831 |
+
});
|
2832 |
+
return g;
|
2833 |
+
}
|
2834 |
+
var h = e(b), i, j;
|
2835 |
+
g = [];
|
2836 |
+
for (var k = 0, l = h.length; k < l; k++) {
|
2837 |
+
i = h[k], j = h[k][0].toLowerCase(), j == "z" && (j = "x");
|
2838 |
+
for (var m = 1, r = i.length; m < r; m++) j += f(i[m] * u) + (m != r - 1 ? "," : o);
|
2839 |
+
g.push(j);
|
2840 |
+
}
|
2841 |
+
return g.join(n);
|
2842 |
+
}, y = function(b, c, d) {
|
2843 |
+
var e = a.matrix();
|
2844 |
+
e.rotate(-b, .5, .5);
|
2845 |
+
return {
|
2846 |
+
dx: e.x(c, d),
|
2847 |
+
dy: e.y(c, d)
|
2848 |
+
};
|
2849 |
+
}, z = function(a, b, c, d, e, f) {
|
2850 |
+
var g = a._, h = a.matrix, k = g.fillpos, l = a.node, m = l.style, o = 1, p = "", q, r = u / b, s = u / c;
|
2851 |
+
m.visibility = "hidden";
|
2852 |
+
if (!!b && !!c) {
|
2853 |
+
l.coordsize = i(r) + n + i(s), m.rotation = f * (b * c < 0 ? -1 : 1);
|
2854 |
+
if (f) {
|
2855 |
+
var t = y(f, d, e);
|
2856 |
+
d = t.dx, e = t.dy;
|
2857 |
+
}
|
2858 |
+
b < 0 && (p += "x"), c < 0 && (p += " y") && (o = -1), m.flip = p, l.coordorigin = d * -r + n + e * -s;
|
2859 |
+
if (k || g.fillsize) {
|
2860 |
+
var v = l.getElementsByTagName(j);
|
2861 |
+
v = v && v[0], l.removeChild(v), k && (t = y(f, h.x(k[0], k[1]), h.y(k[0], k[1])),
|
2862 |
+
v.position = t.dx * o + n + t.dy * o), g.fillsize && (v.size = g.fillsize[0] * i(b) + n + g.fillsize[1] * i(c)),
|
2863 |
+
l.appendChild(v);
|
2864 |
+
}
|
2865 |
+
m.visibility = "visible";
|
2866 |
+
}
|
2867 |
+
};
|
2868 |
+
a.toString = function() {
|
2869 |
+
return "Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël " + this.version;
|
2870 |
+
};
|
2871 |
+
var A = function(a, b, d) {
|
2872 |
+
var e = c(b).toLowerCase().split("-"), f = d ? "end" : "start", g = e.length, h = "classic", i = "medium", j = "medium";
|
2873 |
+
while (g--) switch (e[g]) {
|
2874 |
+
case "block":
|
2875 |
+
case "classic":
|
2876 |
+
case "oval":
|
2877 |
+
case "diamond":
|
2878 |
+
case "open":
|
2879 |
+
case "none":
|
2880 |
+
h = e[g];
|
2881 |
+
break;
|
2882 |
+
|
2883 |
+
case "wide":
|
2884 |
+
case "narrow":
|
2885 |
+
j = e[g];
|
2886 |
+
break;
|
2887 |
+
|
2888 |
+
case "long":
|
2889 |
+
case "short":
|
2890 |
+
i = e[g];
|
2891 |
+
}
|
2892 |
+
var k = a.node.getElementsByTagName("stroke")[0];
|
2893 |
+
k[f + "arrow"] = h, k[f + "arrowlength"] = i, k[f + "arrowwidth"] = j;
|
2894 |
+
}, B = function(e, i) {
|
2895 |
+
e.attrs = e.attrs || {};
|
2896 |
+
var l = e.node, m = e.attrs, p = l.style, q, r = v[e.type] && (i.x != m.x || i.y != m.y || i.width != m.width || i.height != m.height || i.cx != m.cx || i.cy != m.cy || i.rx != m.rx || i.ry != m.ry || i.r != m.r), s = w[e.type] && (m.cx != i.cx || m.cy != i.cy || m.r != i.r || m.rx != i.rx || m.ry != i.ry), t = e;
|
2897 |
+
for (var y in i) i[b](y) && (m[y] = i[y]);
|
2898 |
+
r && (m.path = a._getPath[e.type](e), e._.dirty = 1), i.href && (l.href = i.href),
|
2899 |
+
i.title && (l.title = i.title), i.target && (l.target = i.target), i.cursor && (p.cursor = i.cursor),
|
2900 |
+
"blur" in i && e.blur(i.blur);
|
2901 |
+
if (i.path && e.type == "path" || r) l.path = x(~c(m.path).toLowerCase().indexOf("r") ? a._pathToAbsolute(m.path) : m.path),
|
2902 |
+
e.type == "image" && (e._.fillpos = [ m.x, m.y ], e._.fillsize = [ m.width, m.height ],
|
2903 |
+
z(e, 1, 1, 0, 0, 0));
|
2904 |
+
"transform" in i && e.transform(i.transform);
|
2905 |
+
if (s) {
|
2906 |
+
var B = +m.cx, D = +m.cy, E = +m.rx || +m.r || 0, G = +m.ry || +m.r || 0;
|
2907 |
+
l.path = a.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", f((B - E) * u), f((D - G) * u), f((B + E) * u), f((D + G) * u), f(B * u));
|
2908 |
+
}
|
2909 |
+
if ("clip-rect" in i) {
|
2910 |
+
var H = c(i["clip-rect"]).split(k);
|
2911 |
+
if (H.length == 4) {
|
2912 |
+
H[2] = +H[2] + +H[0], H[3] = +H[3] + +H[1];
|
2913 |
+
var I = l.clipRect || a._g.doc.createElement("div"), J = I.style;
|
2914 |
+
J.clip = a.format("rect({1}px {2}px {3}px {0}px)", H), l.clipRect || (J.position = "absolute",
|
2915 |
+
J.top = 0, J.left = 0, J.width = e.paper.width + "px", J.height = e.paper.height + "px",
|
2916 |
+
l.parentNode.insertBefore(I, l), I.appendChild(l), l.clipRect = I);
|
2917 |
+
}
|
2918 |
+
i["clip-rect"] || l.clipRect && (l.clipRect.style.clip = "auto");
|
2919 |
+
}
|
2920 |
+
if (e.textpath) {
|
2921 |
+
var K = e.textpath.style;
|
2922 |
+
i.font && (K.font = i.font), i["font-family"] && (K.fontFamily = '"' + i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, o) + '"'),
|
2923 |
+
i["font-size"] && (K.fontSize = i["font-size"]), i["font-weight"] && (K.fontWeight = i["font-weight"]),
|
2924 |
+
i["font-style"] && (K.fontStyle = i["font-style"]);
|
2925 |
+
}
|
2926 |
+
"arrow-start" in i && A(t, i["arrow-start"]), "arrow-end" in i && A(t, i["arrow-end"], 1);
|
2927 |
+
if (i.opacity != null || i["stroke-width"] != null || i.fill != null || i.src != null || i.stroke != null || i["stroke-width"] != null || i["stroke-opacity"] != null || i["fill-opacity"] != null || i["stroke-dasharray"] != null || i["stroke-miterlimit"] != null || i["stroke-linejoin"] != null || i["stroke-linecap"] != null) {
|
2928 |
+
var L = l.getElementsByTagName(j), M = !1;
|
2929 |
+
L = L && L[0], !L && (M = L = F(j)), e.type == "image" && i.src && (L.src = i.src),
|
2930 |
+
i.fill && (L.on = !0);
|
2931 |
+
if (L.on == null || i.fill == "none" || i.fill === null) L.on = !1;
|
2932 |
+
if (L.on && i.fill) {
|
2933 |
+
var N = c(i.fill).match(a._ISURL);
|
2934 |
+
if (N) {
|
2935 |
+
L.parentNode == l && l.removeChild(L), L.rotate = !0, L.src = N[1], L.type = "tile";
|
2936 |
+
var O = e.getBBox(1);
|
2937 |
+
L.position = O.x + n + O.y, e._.fillpos = [ O.x, O.y ], a._preload(N[1], function() {
|
2938 |
+
e._.fillsize = [ this.offsetWidth, this.offsetHeight ];
|
2939 |
+
});
|
2940 |
+
} else L.color = a.getRGB(i.fill).hex, L.src = o, L.type = "solid", a.getRGB(i.fill).error && (t.type in {
|
2941 |
+
circle: 1,
|
2942 |
+
ellipse: 1
|
2943 |
+
} || c(i.fill).charAt() != "r") && C(t, i.fill, L) && (m.fill = "none", m.gradient = i.fill,
|
2944 |
+
L.rotate = !1);
|
2945 |
+
}
|
2946 |
+
if ("fill-opacity" in i || "opacity" in i) {
|
2947 |
+
var P = ((+m["fill-opacity"] + 1 || 2) - 1) * ((+m.opacity + 1 || 2) - 1) * ((+a.getRGB(i.fill).o + 1 || 2) - 1);
|
2948 |
+
P = h(g(P, 0), 1), L.opacity = P, L.src && (L.color = "none");
|
2949 |
+
}
|
2950 |
+
l.appendChild(L);
|
2951 |
+
var Q = l.getElementsByTagName("stroke") && l.getElementsByTagName("stroke")[0], T = !1;
|
2952 |
+
!Q && (T = Q = F("stroke"));
|
2953 |
+
if (i.stroke && i.stroke != "none" || i["stroke-width"] || i["stroke-opacity"] != null || i["stroke-dasharray"] || i["stroke-miterlimit"] || i["stroke-linejoin"] || i["stroke-linecap"]) Q.on = !0;
|
2954 |
+
(i.stroke == "none" || i.stroke === null || Q.on == null || i.stroke == 0 || i["stroke-width"] == 0) && (Q.on = !1);
|
2955 |
+
var U = a.getRGB(i.stroke);
|
2956 |
+
Q.on && i.stroke && (Q.color = U.hex), P = ((+m["stroke-opacity"] + 1 || 2) - 1) * ((+m.opacity + 1 || 2) - 1) * ((+U.o + 1 || 2) - 1);
|
2957 |
+
var V = (d(i["stroke-width"]) || 1) * .75;
|
2958 |
+
P = h(g(P, 0), 1), i["stroke-width"] == null && (V = m["stroke-width"]), i["stroke-width"] && (Q.weight = V),
|
2959 |
+
V && V < 1 && (P *= V) && (Q.weight = 1), Q.opacity = P, i["stroke-linejoin"] && (Q.joinstyle = i["stroke-linejoin"] || "miter"),
|
2960 |
+
Q.miterlimit = i["stroke-miterlimit"] || 8, i["stroke-linecap"] && (Q.endcap = i["stroke-linecap"] == "butt" ? "flat" : i["stroke-linecap"] == "square" ? "square" : "round");
|
2961 |
+
if (i["stroke-dasharray"]) {
|
2962 |
+
var W = {
|
2963 |
+
"-": "shortdash",
|
2964 |
+
".": "shortdot",
|
2965 |
+
"-.": "shortdashdot",
|
2966 |
+
"-..": "shortdashdotdot",
|
2967 |
+
". ": "dot",
|
2968 |
+
"- ": "dash",
|
2969 |
+
"--": "longdash",
|
2970 |
+
"- .": "dashdot",
|
2971 |
+
"--.": "longdashdot",
|
2972 |
+
"--..": "longdashdotdot"
|
2973 |
+
};
|
2974 |
+
Q.dashstyle = W[b](i["stroke-dasharray"]) ? W[i["stroke-dasharray"]] : o;
|
2975 |
+
}
|
2976 |
+
T && l.appendChild(Q);
|
2977 |
+
}
|
2978 |
+
if (t.type == "text") {
|
2979 |
+
t.paper.canvas.style.display = o;
|
2980 |
+
var X = t.paper.span, Y = 100, Z = m.font && m.font.match(/\d+(?:\.\d*)?(?=px)/);
|
2981 |
+
p = X.style, m.font && (p.font = m.font), m["font-family"] && (p.fontFamily = m["font-family"]),
|
2982 |
+
m["font-weight"] && (p.fontWeight = m["font-weight"]), m["font-style"] && (p.fontStyle = m["font-style"]),
|
2983 |
+
Z = d(m["font-size"] || Z && Z[0]) || 10, p.fontSize = Z * Y + "px", t.textpath.string && (X.innerHTML = c(t.textpath.string).replace(/</g, "<").replace(/&/g, "&").replace(/\n/g, "<br>"));
|
2984 |
+
var $ = X.getBoundingClientRect();
|
2985 |
+
t.W = m.w = ($.right - $.left) / Y, t.H = m.h = ($.bottom - $.top) / Y, t.X = m.x,
|
2986 |
+
t.Y = m.y + t.H / 2, ("x" in i || "y" in i) && (t.path.v = a.format("m{0},{1}l{2},{1}", f(m.x * u), f(m.y * u), f(m.x * u) + 1));
|
2987 |
+
var _ = [ "x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size" ];
|
2988 |
+
for (var ba = 0, bb = _.length; ba < bb; ba++) if (_[ba] in i) {
|
2989 |
+
t._.dirty = 1;
|
2990 |
+
break;
|
2991 |
+
}
|
2992 |
+
switch (m["text-anchor"]) {
|
2993 |
+
case "start":
|
2994 |
+
t.textpath.style["v-text-align"] = "left", t.bbx = t.W / 2;
|
2995 |
+
break;
|
2996 |
+
|
2997 |
+
case "end":
|
2998 |
+
t.textpath.style["v-text-align"] = "right", t.bbx = -t.W / 2;
|
2999 |
+
break;
|
3000 |
+
|
3001 |
+
default:
|
3002 |
+
t.textpath.style["v-text-align"] = "center", t.bbx = 0;
|
3003 |
+
}
|
3004 |
+
t.textpath.style["v-text-kern"] = !0;
|
3005 |
+
}
|
3006 |
+
}, C = function(b, f, g) {
|
3007 |
+
b.attrs = b.attrs || {};
|
3008 |
+
var h = b.attrs, i = Math.pow, j, k, l = "linear", m = ".5 .5";
|
3009 |
+
b.attrs.gradient = f, f = c(f).replace(a._radial_gradient, function(a, b, c) {
|
3010 |
+
l = "radial", b && c && (b = d(b), c = d(c), i(b - .5, 2) + i(c - .5, 2) > .25 && (c = e.sqrt(.25 - i(b - .5, 2)) * ((c > .5) * 2 - 1) + .5),
|
3011 |
+
m = b + n + c);
|
3012 |
+
return o;
|
3013 |
+
}), f = f.split(/\s*\-\s*/);
|
3014 |
+
if (l == "linear") {
|
3015 |
+
var p = f.shift();
|
3016 |
+
p = -d(p);
|
3017 |
+
if (isNaN(p)) return null;
|
3018 |
+
}
|
3019 |
+
var q = a._parseDots(f);
|
3020 |
+
if (!q) return null;
|
3021 |
+
b = b.shape || b.node;
|
3022 |
+
if (q.length) {
|
3023 |
+
b.removeChild(g), g.on = !0, g.method = "none", g.color = q[0].color, g.color2 = q[q.length - 1].color;
|
3024 |
+
var r = [];
|
3025 |
+
for (var s = 0, t = q.length; s < t; s++) q[s].offset && r.push(q[s].offset + n + q[s].color);
|
3026 |
+
g.colors = r.length ? r.join() : "0% " + g.color, l == "radial" ? (g.type = "gradientTitle",
|
3027 |
+
g.focus = "100%", g.focussize = "0 0", g.focusposition = m, g.angle = 0) : (g.type = "gradient",
|
3028 |
+
g.angle = (270 - p) % 360), b.appendChild(g);
|
3029 |
+
}
|
3030 |
+
return 1;
|
3031 |
+
}, D = function(b, c) {
|
3032 |
+
this[0] = this.node = b, b.raphael = !0, this.id = a._oid++, b.raphaelid = this.id,
|
3033 |
+
this.X = 0, this.Y = 0, this.attrs = {}, this.paper = c, this.matrix = a.matrix(),
|
3034 |
+
this._ = {
|
3035 |
+
transform: [],
|
3036 |
+
sx: 1,
|
3037 |
+
sy: 1,
|
3038 |
+
dx: 0,
|
3039 |
+
dy: 0,
|
3040 |
+
deg: 0,
|
3041 |
+
dirty: 1,
|
3042 |
+
dirtyT: 1
|
3043 |
+
}, !c.bottom && (c.bottom = this), this.prev = c.top, c.top && (c.top.next = this),
|
3044 |
+
c.top = this, this.next = null;
|
3045 |
+
}, E = a.el;
|
3046 |
+
D.prototype = E, E.constructor = D, E.transform = function(b) {
|
3047 |
+
if (b == null) return this._.transform;
|
3048 |
+
var d = this.paper._viewBoxShift, e = d ? "s" + [ d.scale, d.scale ] + "-1-1t" + [ d.dx, d.dy ] : o, f;
|
3049 |
+
d && (f = b = c(b).replace(/\.{3}|\u2026/g, this._.transform || o)), a._extractTransform(this, e + b);
|
3050 |
+
var g = this.matrix.clone(), h = this.skew, i = this.node, j, k = ~c(this.attrs.fill).indexOf("-"), l = !c(this.attrs.fill).indexOf("url(");
|
3051 |
+
g.translate(-.5, -.5);
|
3052 |
+
if (l || k || this.type == "image") {
|
3053 |
+
h.matrix = "1 0 0 1", h.offset = "0 0", j = g.split();
|
3054 |
+
if (k && j.noRotation || !j.isSimple) {
|
3055 |
+
i.style.filter = g.toFilter();
|
3056 |
+
var m = this.getBBox(), p = this.getBBox(1), q = m.x - p.x, r = m.y - p.y;
|
3057 |
+
i.coordorigin = q * -u + n + r * -u, z(this, 1, 1, q, r, 0);
|
3058 |
+
} else i.style.filter = o, z(this, j.scalex, j.scaley, j.dx, j.dy, j.rotate);
|
3059 |
+
} else i.style.filter = o, h.matrix = c(g), h.offset = g.offset();
|
3060 |
+
f && (this._.transform = f);
|
3061 |
+
return this;
|
3062 |
+
}, E.rotate = function(a, b, e) {
|
3063 |
+
if (this.removed) return this;
|
3064 |
+
if (a != null) {
|
3065 |
+
a = c(a).split(k), a.length - 1 && (b = d(a[1]), e = d(a[2])), a = d(a[0]), e == null && (b = e);
|
3066 |
+
if (b == null || e == null) {
|
3067 |
+
var f = this.getBBox(1);
|
3068 |
+
b = f.x + f.width / 2, e = f.y + f.height / 2;
|
3069 |
+
}
|
3070 |
+
this._.dirtyT = 1, this.transform(this._.transform.concat([ [ "r", a, b, e ] ]));
|
3071 |
+
return this;
|
3072 |
+
}
|
3073 |
+
}, E.translate = function(a, b) {
|
3074 |
+
if (this.removed) return this;
|
3075 |
+
a = c(a).split(k), a.length - 1 && (b = d(a[1])), a = d(a[0]) || 0, b = +b || 0,
|
3076 |
+
this._.bbox && (this._.bbox.x += a, this._.bbox.y += b), this.transform(this._.transform.concat([ [ "t", a, b ] ]));
|
3077 |
+
return this;
|
3078 |
+
}, E.scale = function(a, b, e, f) {
|
3079 |
+
if (this.removed) return this;
|
3080 |
+
a = c(a).split(k), a.length - 1 && (b = d(a[1]), e = d(a[2]), f = d(a[3]), isNaN(e) && (e = null),
|
3081 |
+
isNaN(f) && (f = null)), a = d(a[0]), b == null && (b = a), f == null && (e = f);
|
3082 |
+
if (e == null || f == null) var g = this.getBBox(1);
|
3083 |
+
e = e == null ? g.x + g.width / 2 : e, f = f == null ? g.y + g.height / 2 : f, this.transform(this._.transform.concat([ [ "s", a, b, e, f ] ])),
|
3084 |
+
this._.dirtyT = 1;
|
3085 |
+
return this;
|
3086 |
+
}, E.hide = function() {
|
3087 |
+
!this.removed && (this.node.style.display = "none");
|
3088 |
+
return this;
|
3089 |
+
}, E.show = function() {
|
3090 |
+
!this.removed && (this.node.style.display = o);
|
3091 |
+
return this;
|
3092 |
+
}, E._getBBox = function() {
|
3093 |
+
if (this.removed) return {};
|
3094 |
+
return {
|
3095 |
+
x: this.X + (this.bbx || 0) - this.W / 2,
|
3096 |
+
y: this.Y - this.H,
|
3097 |
+
width: this.W,
|
3098 |
+
height: this.H
|
3099 |
+
};
|
3100 |
+
}, E.remove = function() {
|
3101 |
+
if (!this.removed && !!this.node.parentNode) {
|
3102 |
+
this.paper.__set__ && this.paper.__set__.exclude(this), a.eve.unbind("raphael.*.*." + this.id),
|
3103 |
+
a._tear(this, this.paper), this.node.parentNode.removeChild(this.node), this.shape && this.shape.parentNode.removeChild(this.shape);
|
3104 |
+
for (var b in this) this[b] = typeof this[b] == "function" ? a._removedFactory(b) : null;
|
3105 |
+
this.removed = !0;
|
3106 |
+
}
|
3107 |
+
}, E.attr = function(c, d) {
|
3108 |
+
if (this.removed) return this;
|
3109 |
+
if (c == null) {
|
3110 |
+
var e = {};
|
3111 |
+
for (var f in this.attrs) this.attrs[b](f) && (e[f] = this.attrs[f]);
|
3112 |
+
e.gradient && e.fill == "none" && (e.fill = e.gradient) && delete e.gradient, e.transform = this._.transform;
|
3113 |
+
return e;
|
3114 |
+
}
|
3115 |
+
if (d == null && a.is(c, "string")) {
|
3116 |
+
if (c == j && this.attrs.fill == "none" && this.attrs.gradient) return this.attrs.gradient;
|
3117 |
+
var g = c.split(k), h = {};
|
3118 |
+
for (var i = 0, m = g.length; i < m; i++) c = g[i], c in this.attrs ? h[c] = this.attrs[c] : a.is(this.paper.customAttributes[c], "function") ? h[c] = this.paper.customAttributes[c].def : h[c] = a._availableAttrs[c];
|
3119 |
+
return m - 1 ? h : h[g[0]];
|
3120 |
+
}
|
3121 |
+
if (this.attrs && d == null && a.is(c, "array")) {
|
3122 |
+
h = {};
|
3123 |
+
for (i = 0, m = c.length; i < m; i++) h[c[i]] = this.attr(c[i]);
|
3124 |
+
return h;
|
3125 |
+
}
|
3126 |
+
var n;
|
3127 |
+
d != null && (n = {}, n[c] = d), d == null && a.is(c, "object") && (n = c);
|
3128 |
+
for (var o in n) l("raphael.attr." + o + "." + this.id, this, n[o]);
|
3129 |
+
if (n) {
|
3130 |
+
for (o in this.paper.customAttributes) if (this.paper.customAttributes[b](o) && n[b](o) && a.is(this.paper.customAttributes[o], "function")) {
|
3131 |
+
var p = this.paper.customAttributes[o].apply(this, [].concat(n[o]));
|
3132 |
+
this.attrs[o] = n[o];
|
3133 |
+
for (var q in p) p[b](q) && (n[q] = p[q]);
|
3134 |
+
}
|
3135 |
+
n.text && this.type == "text" && (this.textpath.string = n.text), B(this, n);
|
3136 |
+
}
|
3137 |
+
return this;
|
3138 |
+
}, E.toFront = function() {
|
3139 |
+
!this.removed && this.node.parentNode.appendChild(this.node), this.paper && this.paper.top != this && a._tofront(this, this.paper);
|
3140 |
+
return this;
|
3141 |
+
}, E.toBack = function() {
|
3142 |
+
if (this.removed) return this;
|
3143 |
+
this.node.parentNode.firstChild != this.node && (this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild),
|
3144 |
+
a._toback(this, this.paper));
|
3145 |
+
return this;
|
3146 |
+
}, E.insertAfter = function(b) {
|
3147 |
+
if (this.removed) return this;
|
3148 |
+
b.constructor == a.st.constructor && (b = b[b.length - 1]), b.node.nextSibling ? b.node.parentNode.insertBefore(this.node, b.node.nextSibling) : b.node.parentNode.appendChild(this.node),
|
3149 |
+
a._insertafter(this, b, this.paper);
|
3150 |
+
return this;
|
3151 |
+
}, E.insertBefore = function(b) {
|
3152 |
+
if (this.removed) return this;
|
3153 |
+
b.constructor == a.st.constructor && (b = b[0]), b.node.parentNode.insertBefore(this.node, b.node),
|
3154 |
+
a._insertbefore(this, b, this.paper);
|
3155 |
+
return this;
|
3156 |
+
}, E.blur = function(b) {
|
3157 |
+
var c = this.node.runtimeStyle, d = c.filter;
|
3158 |
+
d = d.replace(r, o), +b !== 0 ? (this.attrs.blur = b, c.filter = d + n + m + ".Blur(pixelradius=" + (+b || 1.5) + ")",
|
3159 |
+
c.margin = a.format("-{0}px 0 0 -{0}px", f(+b || 1.5))) : (c.filter = d, c.margin = 0,
|
3160 |
+
delete this.attrs.blur);
|
3161 |
+
}, a._engine.path = function(a, b) {
|
3162 |
+
var c = F("shape");
|
3163 |
+
c.style.cssText = t, c.coordsize = u + n + u, c.coordorigin = b.coordorigin;
|
3164 |
+
var d = new D(c, b), e = {
|
3165 |
+
fill: "none",
|
3166 |
+
stroke: "#000"
|
3167 |
+
};
|
3168 |
+
a && (e.path = a), d.type = "path", d.path = [], d.Path = o, B(d, e), b.canvas.appendChild(c);
|
3169 |
+
var f = F("skew");
|
3170 |
+
f.on = !0, c.appendChild(f), d.skew = f, d.transform(o);
|
3171 |
+
return d;
|
3172 |
+
}, a._engine.rect = function(b, c, d, e, f, g) {
|
3173 |
+
var h = a._rectPath(c, d, e, f, g), i = b.path(h), j = i.attrs;
|
3174 |
+
i.X = j.x = c, i.Y = j.y = d, i.W = j.width = e, i.H = j.height = f, j.r = g, j.path = h,
|
3175 |
+
i.type = "rect";
|
3176 |
+
return i;
|
3177 |
+
}, a._engine.ellipse = function(a, b, c, d, e) {
|
3178 |
+
var f = a.path(), g = f.attrs;
|
3179 |
+
f.X = b - d, f.Y = c - e, f.W = d * 2, f.H = e * 2, f.type = "ellipse", B(f, {
|
3180 |
+
cx: b,
|
3181 |
+
cy: c,
|
3182 |
+
rx: d,
|
3183 |
+
ry: e
|
3184 |
+
});
|
3185 |
+
return f;
|
3186 |
+
}, a._engine.circle = function(a, b, c, d) {
|
3187 |
+
var e = a.path(), f = e.attrs;
|
3188 |
+
e.X = b - d, e.Y = c - d, e.W = e.H = d * 2, e.type = "circle", B(e, {
|
3189 |
+
cx: b,
|
3190 |
+
cy: c,
|
3191 |
+
r: d
|
3192 |
+
});
|
3193 |
+
return e;
|
3194 |
+
}, a._engine.image = function(b, c, d, e, f, g) {
|
3195 |
+
var h = a._rectPath(d, e, f, g), i = b.path(h).attr({
|
3196 |
+
stroke: "none"
|
3197 |
+
}), k = i.attrs, l = i.node, m = l.getElementsByTagName(j)[0];
|
3198 |
+
k.src = c, i.X = k.x = d, i.Y = k.y = e, i.W = k.width = f, i.H = k.height = g,
|
3199 |
+
k.path = h, i.type = "image", m.parentNode == l && l.removeChild(m), m.rotate = !0,
|
3200 |
+
m.src = c, m.type = "tile", i._.fillpos = [ d, e ], i._.fillsize = [ f, g ], l.appendChild(m),
|
3201 |
+
z(i, 1, 1, 0, 0, 0);
|
3202 |
+
return i;
|
3203 |
+
}, a._engine.text = function(b, d, e, g) {
|
3204 |
+
var h = F("shape"), i = F("path"), j = F("textpath");
|
3205 |
+
d = d || 0, e = e || 0, g = g || "", i.v = a.format("m{0},{1}l{2},{1}", f(d * u), f(e * u), f(d * u) + 1),
|
3206 |
+
i.textpathok = !0, j.string = c(g), j.on = !0, h.style.cssText = t, h.coordsize = u + n + u,
|
3207 |
+
h.coordorigin = "0 0";
|
3208 |
+
var k = new D(h, b), l = {
|
3209 |
+
fill: "#000",
|
3210 |
+
stroke: "none",
|
3211 |
+
font: a._availableAttrs.font,
|
3212 |
+
text: g
|
3213 |
+
};
|
3214 |
+
k.shape = h, k.path = i, k.textpath = j, k.type = "text", k.attrs.text = c(g), k.attrs.x = d,
|
3215 |
+
k.attrs.y = e, k.attrs.w = 1, k.attrs.h = 1, B(k, l), h.appendChild(j), h.appendChild(i),
|
3216 |
+
b.canvas.appendChild(h);
|
3217 |
+
var m = F("skew");
|
3218 |
+
m.on = !0, h.appendChild(m), k.skew = m, k.transform(o);
|
3219 |
+
return k;
|
3220 |
+
}, a._engine.setSize = function(b, c) {
|
3221 |
+
var d = this.canvas.style;
|
3222 |
+
this.width = b, this.height = c, b == +b && (b += "px"), c == +c && (c += "px"),
|
3223 |
+
d.width = b, d.height = c, d.clip = "rect(0 " + b + " " + c + " 0)", this._viewBox && a._engine.setViewBox.apply(this, this._viewBox);
|
3224 |
+
return this;
|
3225 |
+
}, a._engine.setViewBox = function(b, c, d, e, f) {
|
3226 |
+
a.eve("raphael.setViewBox", this, this._viewBox, [ b, c, d, e, f ]);
|
3227 |
+
var h = this.width, i = this.height, j = 1 / g(d / h, e / i), k, l;
|
3228 |
+
f && (k = i / e, l = h / d, d * k < h && (b -= (h - d * k) / 2 / k), e * l < i && (c -= (i - e * l) / 2 / l)),
|
3229 |
+
this._viewBox = [ b, c, d, e, !!f ], this._viewBoxShift = {
|
3230 |
+
dx: -b,
|
3231 |
+
dy: -c,
|
3232 |
+
scale: j
|
3233 |
+
}, this.forEach(function(a) {
|
3234 |
+
a.transform("...");
|
3235 |
+
});
|
3236 |
+
return this;
|
3237 |
+
};
|
3238 |
+
var F;
|
3239 |
+
a._engine.initWin = function(a) {
|
3240 |
+
var b = a.document;
|
3241 |
+
b.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");
|
3242 |
+
try {
|
3243 |
+
!b.namespaces.rvml && b.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"),
|
3244 |
+
F = function(a) {
|
3245 |
+
return b.createElement("<rvml:" + a + ' class="rvml">');
|
3246 |
+
};
|
3247 |
+
} catch (c) {
|
3248 |
+
F = function(a) {
|
3249 |
+
return b.createElement("<" + a + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
|
3250 |
+
};
|
3251 |
+
}
|
3252 |
+
}, a._engine.initWin(a._g.win), a._engine.create = function() {
|
3253 |
+
var b = a._getContainer.apply(0, arguments), c = b.container, d = b.height, e, f = b.width, g = b.x, h = b.y;
|
3254 |
+
if (!c) throw new Error("VML container not found.");
|
3255 |
+
var i = new a._Paper(), j = i.canvas = a._g.doc.createElement("div"), k = j.style;
|
3256 |
+
g = g || 0, h = h || 0, f = f || 512, d = d || 342, i.width = f, i.height = d, f == +f && (f += "px"),
|
3257 |
+
d == +d && (d += "px"), i.coordsize = u * 1e3 + n + u * 1e3, i.coordorigin = "0 0",
|
3258 |
+
i.span = a._g.doc.createElement("span"), i.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",
|
3259 |
+
j.appendChild(i.span), k.cssText = a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", f, d),
|
3260 |
+
c == 1 ? (a._g.doc.body.appendChild(j), k.left = g + "px", k.top = h + "px", k.position = "absolute") : c.firstChild ? c.insertBefore(j, c.firstChild) : c.appendChild(j),
|
3261 |
+
i.renderfix = function() {};
|
3262 |
+
return i;
|
3263 |
+
}, a.prototype.clear = function() {
|
3264 |
+
a.eve("raphael.clear", this), this.canvas.innerHTML = o, this.span = a._g.doc.createElement("span"),
|
3265 |
+
this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",
|
3266 |
+
this.canvas.appendChild(this.span), this.bottom = this.top = null;
|
3267 |
+
}, a.prototype.remove = function() {
|
3268 |
+
a.eve("raphael.remove", this), this.canvas.parentNode.removeChild(this.canvas);
|
3269 |
+
for (var b in this) this[b] = typeof this[b] == "function" ? a._removedFactory(b) : null;
|
3270 |
+
return !0;
|
3271 |
+
};
|
3272 |
+
var G = a.st;
|
3273 |
+
for (var H in E) E[b](H) && !G[b](H) && (G[H] = function(a) {
|
3274 |
+
return function() {
|
3275 |
+
var b = arguments;
|
3276 |
+
return this.forEach(function(c) {
|
3277 |
+
c[a].apply(c, b);
|
3278 |
+
});
|
3279 |
+
};
|
3280 |
+
}(H));
|
3281 |
+
}(window.Raphael);
|
3282 |
+
|
3283 |
+
(function() {
|
3284 |
+
var a, b, c, d, e = [].slice, f = function(a, b) {
|
3285 |
+
return function() {
|
3286 |
+
return a.apply(b, arguments);
|
3287 |
+
};
|
3288 |
+
}, g = {}.hasOwnProperty, h = function(a, b) {
|
3289 |
+
function c() {
|
3290 |
+
this.constructor = a;
|
3291 |
+
}
|
3292 |
+
for (var d in b) g.call(b, d) && (a[d] = b[d]);
|
3293 |
+
return c.prototype = b.prototype, a.prototype = new c(), a.__super__ = b.prototype,
|
3294 |
+
a;
|
3295 |
+
}, i = [].indexOf || function(a) {
|
3296 |
+
for (var b = 0, c = this.length; c > b; b++) if (b in this && this[b] === a) return b;
|
3297 |
+
return -1;
|
3298 |
+
};
|
3299 |
+
b = window.Morris = {}, a = jQuery, b.EventEmitter = function() {
|
3300 |
+
function a() {}
|
3301 |
+
return a.prototype.on = function(a, b) {
|
3302 |
+
return null == this.handlers && (this.handlers = {}), null == this.handlers[a] && (this.handlers[a] = []),
|
3303 |
+
this.handlers[a].push(b), this;
|
3304 |
+
}, a.prototype.fire = function() {
|
3305 |
+
var a, b, c, d, f, g, h;
|
3306 |
+
if (c = arguments[0], a = 2 <= arguments.length ? e.call(arguments, 1) : [], null != this.handlers && null != this.handlers[c]) {
|
3307 |
+
for (g = this.handlers[c], h = [], d = 0, f = g.length; f > d; d++) b = g[d], h.push(b.apply(null, a));
|
3308 |
+
return h;
|
3309 |
+
}
|
3310 |
+
}, a;
|
3311 |
+
}(), b.commas = function(a) {
|
3312 |
+
var b, c, d, e;
|
3313 |
+
return null != a ? (d = 0 > a ? "-" : "", b = Math.abs(a), c = Math.floor(b).toFixed(0),
|
3314 |
+
d += c.replace(/(?=(?:\d{3})+$)(?!^)/g, ","), e = b.toString(), e.length > c.length && (d += e.slice(c.length)),
|
3315 |
+
d) : "-";
|
3316 |
+
}, b.pad2 = function(a) {
|
3317 |
+
return (10 > a ? "0" : "") + a;
|
3318 |
+
}, b.Grid = function(c) {
|
3319 |
+
function d(b) {
|
3320 |
+
this.resizeHandler = f(this.resizeHandler, this);
|
3321 |
+
var c = this;
|
3322 |
+
if (this.el = "string" == typeof b.element ? a(document.getElementById(b.element)) : a(b.element),
|
3323 |
+
null == this.el || 0 === this.el.length) throw new Error("Graph container element not found");
|
3324 |
+
"static" === this.el.css("position") && this.el.css("position", "relative"), this.options = a.extend({}, this.gridDefaults, this.defaults || {}, b),
|
3325 |
+
"string" == typeof this.options.units && (this.options.postUnits = b.units), this.raphael = new Raphael(this.el[0]),
|
3326 |
+
this.elementWidth = null, this.elementHeight = null, this.dirty = !1, this.selectFrom = null,
|
3327 |
+
this.init && this.init(), this.setData(this.options.data), this.el.bind("mousemove", function(a) {
|
3328 |
+
var b, d, e, f, g;
|
3329 |
+
return d = c.el.offset(), g = a.pageX - d.left, c.selectFrom ? (b = c.data[c.hitTest(Math.min(g, c.selectFrom))]._x,
|
3330 |
+
e = c.data[c.hitTest(Math.max(g, c.selectFrom))]._x, f = e - b, c.selectionRect.attr({
|
3331 |
+
x: b,
|
3332 |
+
width: f
|
3333 |
+
})) : c.fire("hovermove", g, a.pageY - d.top);
|
3334 |
+
}), this.el.bind("mouseleave", function() {
|
3335 |
+
return c.selectFrom && (c.selectionRect.hide(), c.selectFrom = null), c.fire("hoverout");
|
3336 |
+
}), this.el.bind("touchstart touchmove touchend", function(a) {
|
3337 |
+
var b, d;
|
3338 |
+
return d = a.originalEvent.touches[0] || a.originalEvent.changedTouches[0], b = c.el.offset(),
|
3339 |
+
c.fire("hovermove", d.pageX - b.left, d.pageY - b.top);
|
3340 |
+
}), this.el.bind("click", function(a) {
|
3341 |
+
var b;
|
3342 |
+
return b = c.el.offset(), c.fire("gridclick", a.pageX - b.left, a.pageY - b.top);
|
3343 |
+
}), this.options.rangeSelect && (this.selectionRect = this.raphael.rect(0, 0, 0, this.el.innerHeight()).attr({
|
3344 |
+
fill: this.options.rangeSelectColor,
|
3345 |
+
stroke: !1
|
3346 |
+
}).toBack().hide(), this.el.bind("mousedown", function(a) {
|
3347 |
+
var b;
|
3348 |
+
return b = c.el.offset(), c.startRange(a.pageX - b.left);
|
3349 |
+
}), this.el.bind("mouseup", function(a) {
|
3350 |
+
var b;
|
3351 |
+
return b = c.el.offset(), c.endRange(a.pageX - b.left), c.fire("hovermove", a.pageX - b.left, a.pageY - b.top);
|
3352 |
+
})), this.options.resize && a(window).bind("resize", function() {
|
3353 |
+
return null != c.timeoutId && window.clearTimeout(c.timeoutId), c.timeoutId = window.setTimeout(c.resizeHandler, 100);
|
3354 |
+
}), this.el.css("-webkit-tap-highlight-color", "rgba(0,0,0,0)"), this.postInit && this.postInit();
|
3355 |
+
}
|
3356 |
+
return h(d, c), d.prototype.gridDefaults = {
|
3357 |
+
dateFormat: null,
|
3358 |
+
axes: !0,
|
3359 |
+
grid: !0,
|
3360 |
+
gridLineColor: "#aaa",
|
3361 |
+
gridStrokeWidth: .5,
|
3362 |
+
gridTextColor: "#888",
|
3363 |
+
gridTextSize: 12,
|
3364 |
+
gridTextFamily: "sans-serif",
|
3365 |
+
gridTextWeight: "normal",
|
3366 |
+
hideHover: !1,
|
3367 |
+
yLabelFormat: null,
|
3368 |
+
xLabelAngle: 0,
|
3369 |
+
numLines: 5,
|
3370 |
+
padding: 25,
|
3371 |
+
parseTime: !0,
|
3372 |
+
postUnits: "",
|
3373 |
+
preUnits: "",
|
3374 |
+
ymax: "auto",
|
3375 |
+
ymin: "auto 0",
|
3376 |
+
goals: [],
|
3377 |
+
goalStrokeWidth: 1,
|
3378 |
+
goalLineColors: [ "#666633", "#999966", "#cc6666", "#663333" ],
|
3379 |
+
events: [],
|
3380 |
+
eventStrokeWidth: 1,
|
3381 |
+
eventLineColors: [ "#005a04", "#ccffbb", "#3a5f0b", "#005502" ],
|
3382 |
+
rangeSelect: null,
|
3383 |
+
rangeSelectColor: "#eef",
|
3384 |
+
resize: !1
|
3385 |
+
}, d.prototype.setData = function(a, c) {
|
3386 |
+
var d, e, f, g, h, i, j, k, l, m, n, o, p, q, r;
|
3387 |
+
return null == c && (c = !0), this.options.data = a, null == a || 0 === a.length ? (this.data = [],
|
3388 |
+
this.raphael.clear(), null != this.hover && this.hover.hide(), void 0) : (o = this.cumulative ? 0 : null,
|
3389 |
+
p = this.cumulative ? 0 : null, this.options.goals.length > 0 && (h = Math.min.apply(Math, this.options.goals),
|
3390 |
+
g = Math.max.apply(Math, this.options.goals), p = null != p ? Math.min(p, h) : h,
|
3391 |
+
o = null != o ? Math.max(o, g) : g), this.data = function() {
|
3392 |
+
var c, d, g;
|
3393 |
+
for (g = [], f = c = 0, d = a.length; d > c; f = ++c) j = a[f], i = {
|
3394 |
+
src: j
|
3395 |
+
}, i.label = j[this.options.xkey], this.options.parseTime ? (i.x = b.parseDate(i.label),
|
3396 |
+
this.options.dateFormat ? i.label = this.options.dateFormat(i.x) : "number" == typeof i.label && (i.label = new Date(i.label).toString())) : (i.x = f,
|
3397 |
+
this.options.xLabelFormat && (i.label = this.options.xLabelFormat(i))), l = 0, i.y = function() {
|
3398 |
+
var a, b, c, d;
|
3399 |
+
for (c = this.options.ykeys, d = [], e = a = 0, b = c.length; b > a; e = ++a) n = c[e],
|
3400 |
+
q = j[n], "string" == typeof q && (q = parseFloat(q)), null != q && "number" != typeof q && (q = null),
|
3401 |
+
null != q && (this.cumulative ? l += q : null != o ? (o = Math.max(q, o), p = Math.min(q, p)) : o = p = q),
|
3402 |
+
this.cumulative && null != l && (o = Math.max(l, o), p = Math.min(l, p)), d.push(q);
|
3403 |
+
return d;
|
3404 |
+
}.call(this), g.push(i);
|
3405 |
+
return g;
|
3406 |
+
}.call(this), this.options.parseTime && (this.data = this.data.sort(function(a, b) {
|
3407 |
+
return (a.x > b.x) - (b.x > a.x);
|
3408 |
+
})), this.xmin = this.data[0].x, this.xmax = this.data[this.data.length - 1].x,
|
3409 |
+
this.events = [], this.options.events.length > 0 && (this.events = this.options.parseTime ? function() {
|
3410 |
+
var a, c, e, f;
|
3411 |
+
for (e = this.options.events, f = [], a = 0, c = e.length; c > a; a++) d = e[a],
|
3412 |
+
f.push(b.parseDate(d));
|
3413 |
+
return f;
|
3414 |
+
}.call(this) : this.options.events, this.xmax = Math.max(this.xmax, Math.max.apply(Math, this.events)),
|
3415 |
+
this.xmin = Math.min(this.xmin, Math.min.apply(Math, this.events))), this.xmin === this.xmax && (this.xmin -= 1,
|
3416 |
+
this.xmax += 1), this.ymin = this.yboundary("min", p), this.ymax = this.yboundary("max", o),
|
3417 |
+
this.ymin === this.ymax && (p && (this.ymin -= 1), this.ymax += 1), ((r = this.options.axes) === !0 || "both" === r || "y" === r || this.options.grid === !0) && (this.options.ymax === this.gridDefaults.ymax && this.options.ymin === this.gridDefaults.ymin ? (this.grid = this.autoGridLines(this.ymin, this.ymax, this.options.numLines),
|
3418 |
+
this.ymin = Math.min(this.ymin, this.grid[0]), this.ymax = Math.max(this.ymax, this.grid[this.grid.length - 1])) : (k = (this.ymax - this.ymin) / (this.options.numLines - 1),
|
3419 |
+
this.grid = function() {
|
3420 |
+
var a, b, c, d;
|
3421 |
+
for (d = [], m = a = b = this.ymin, c = this.ymax; k > 0 ? c >= a : a >= c; m = a += k) d.push(m);
|
3422 |
+
return d;
|
3423 |
+
}.call(this))), this.dirty = !0, c ? this.redraw() : void 0);
|
3424 |
+
}, d.prototype.yboundary = function(a, b) {
|
3425 |
+
var c, d;
|
3426 |
+
return c = this.options["y" + a], "string" == typeof c ? "auto" === c.slice(0, 4) ? c.length > 5 ? (d = parseInt(c.slice(5), 10),
|
3427 |
+
null == b ? d : Math[a](b, d)) : null != b ? b : 0 : parseInt(c, 10) : c;
|
3428 |
+
}, d.prototype.autoGridLines = function(a, b, c) {
|
3429 |
+
var d, e, f, g, h, i, j, k, l;
|
3430 |
+
return h = b - a, l = Math.floor(Math.log(h) / Math.log(10)), j = Math.pow(10, l),
|
3431 |
+
e = Math.floor(a / j) * j, d = Math.ceil(b / j) * j, i = (d - e) / (c - 1), 1 === j && i > 1 && Math.ceil(i) !== i && (i = Math.ceil(i),
|
3432 |
+
d = e + i * (c - 1)), 0 > e && d > 0 && (e = Math.floor(a / i) * i, d = Math.ceil(b / i) * i),
|
3433 |
+
1 > i ? (g = Math.floor(Math.log(i) / Math.log(10)), f = function() {
|
3434 |
+
var a, b;
|
3435 |
+
for (b = [], k = a = e; i > 0 ? d >= a : a >= d; k = a += i) b.push(parseFloat(k.toFixed(1 - g)));
|
3436 |
+
return b;
|
3437 |
+
}()) : f = function() {
|
3438 |
+
var a, b;
|
3439 |
+
for (b = [], k = a = e; i > 0 ? d >= a : a >= d; k = a += i) b.push(k);
|
3440 |
+
return b;
|
3441 |
+
}(), f;
|
3442 |
+
}, d.prototype._calc = function() {
|
3443 |
+
var a, b, c, d, e, f, g, h;
|
3444 |
+
return e = this.el.width(), c = this.el.height(), (this.elementWidth !== e || this.elementHeight !== c || this.dirty) && (this.elementWidth = e,
|
3445 |
+
this.elementHeight = c, this.dirty = !1, this.left = this.options.padding, this.right = this.elementWidth - this.options.padding,
|
3446 |
+
this.top = this.options.padding, this.bottom = this.elementHeight - this.options.padding,
|
3447 |
+
((g = this.options.axes) === !0 || "both" === g || "y" === g) && (f = function() {
|
3448 |
+
var a, c, d, e;
|
3449 |
+
for (d = this.grid, e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(this.measureText(this.yAxisFormat(b)).width);
|
3450 |
+
return e;
|
3451 |
+
}.call(this), this.left += Math.max.apply(Math, f)), ((h = this.options.axes) === !0 || "both" === h || "x" === h) && (a = function() {
|
3452 |
+
var a, b, c;
|
3453 |
+
for (c = [], d = a = 0, b = this.data.length; b >= 0 ? b > a : a > b; d = b >= 0 ? ++a : --a) c.push(this.measureText(this.data[d].text, -this.options.xLabelAngle).height);
|
3454 |
+
return c;
|
3455 |
+
}.call(this), this.bottom -= Math.max.apply(Math, a)), this.width = Math.max(1, this.right - this.left),
|
3456 |
+
this.height = Math.max(1, this.bottom - this.top), this.dx = this.width / (this.xmax - this.xmin),
|
3457 |
+
this.dy = this.height / (this.ymax - this.ymin), this.calc) ? this.calc() : void 0;
|
3458 |
+
}, d.prototype.transY = function(a) {
|
3459 |
+
return this.bottom - (a - this.ymin) * this.dy;
|
3460 |
+
}, d.prototype.transX = function(a) {
|
3461 |
+
return 1 === this.data.length ? (this.left + this.right) / 2 : this.left + (a - this.xmin) * this.dx;
|
3462 |
+
}, d.prototype.redraw = function() {
|
3463 |
+
return this.raphael.clear(), this._calc(), this.drawGrid(), this.drawGoals(), this.drawEvents(),
|
3464 |
+
this.draw ? this.draw() : void 0;
|
3465 |
+
}, d.prototype.measureText = function(a, b) {
|
3466 |
+
var c, d;
|
3467 |
+
return null == b && (b = 0), d = this.raphael.text(100, 100, a).attr("font-size", this.options.gridTextSize).attr("font-family", this.options.gridTextFamily).attr("font-weight", this.options.gridTextWeight).rotate(b),
|
3468 |
+
c = d.getBBox(), d.remove(), c;
|
3469 |
+
}, d.prototype.yAxisFormat = function(a) {
|
3470 |
+
return this.yLabelFormat(a);
|
3471 |
+
}, d.prototype.yLabelFormat = function(a) {
|
3472 |
+
return "function" == typeof this.options.yLabelFormat ? this.options.yLabelFormat(a) : "" + this.options.preUnits + b.commas(a) + this.options.postUnits;
|
3473 |
+
}, d.prototype.drawGrid = function() {
|
3474 |
+
var a, b, c, d, e, f, g, h;
|
3475 |
+
if (this.options.grid !== !1 || (e = this.options.axes) === !0 || "both" === e || "y" === e) {
|
3476 |
+
for (f = this.grid, h = [], c = 0, d = f.length; d > c; c++) a = f[c], b = this.transY(a),
|
3477 |
+
((g = this.options.axes) === !0 || "both" === g || "y" === g) && this.drawYAxisLabel(this.left - this.options.padding / 2, b, this.yAxisFormat(a)),
|
3478 |
+
this.options.grid ? h.push(this.drawGridLine("M" + this.left + "," + b + "H" + (this.left + this.width))) : h.push(void 0);
|
3479 |
+
return h;
|
3480 |
+
}
|
3481 |
+
}, d.prototype.drawGoals = function() {
|
3482 |
+
var a, b, c, d, e, f, g;
|
3483 |
+
for (f = this.options.goals, g = [], c = d = 0, e = f.length; e > d; c = ++d) b = f[c],
|
3484 |
+
a = this.options.goalLineColors[c % this.options.goalLineColors.length], g.push(this.drawGoal(b, a));
|
3485 |
+
return g;
|
3486 |
+
}, d.prototype.drawEvents = function() {
|
3487 |
+
var a, b, c, d, e, f, g;
|
3488 |
+
for (f = this.events, g = [], c = d = 0, e = f.length; e > d; c = ++d) b = f[c],
|
3489 |
+
a = this.options.eventLineColors[c % this.options.eventLineColors.length], g.push(this.drawEvent(b, a));
|
3490 |
+
return g;
|
3491 |
+
}, d.prototype.drawGoal = function(a, b) {
|
3492 |
+
return this.raphael.path("M" + this.left + "," + this.transY(a) + "H" + this.right).attr("stroke", b).attr("stroke-width", this.options.goalStrokeWidth);
|
3493 |
+
}, d.prototype.drawEvent = function(a, b) {
|
3494 |
+
return this.raphael.path("M" + this.transX(a) + "," + this.bottom + "V" + this.top).attr("stroke", b).attr("stroke-width", this.options.eventStrokeWidth);
|
3495 |
+
}, d.prototype.drawYAxisLabel = function(a, b, c) {
|
3496 |
+
return this.raphael.text(a, b, c).attr("font-size", this.options.gridTextSize).attr("font-family", this.options.gridTextFamily).attr("font-weight", this.options.gridTextWeight).attr("fill", this.options.gridTextColor).attr("text-anchor", "end");
|
3497 |
+
}, d.prototype.drawGridLine = function(a) {
|
3498 |
+
return this.raphael.path(a).attr("stroke", this.options.gridLineColor).attr("stroke-width", this.options.gridStrokeWidth);
|
3499 |
+
}, d.prototype.startRange = function(a) {
|
3500 |
+
return this.hover.hide(), this.selectFrom = a, this.selectionRect.attr({
|
3501 |
+
x: a,
|
3502 |
+
width: 0
|
3503 |
+
}).show();
|
3504 |
+
}, d.prototype.endRange = function(a) {
|
3505 |
+
var b, c;
|
3506 |
+
return this.selectFrom ? (c = Math.min(this.selectFrom, a), b = Math.max(this.selectFrom, a),
|
3507 |
+
this.options.rangeSelect.call(this.el, {
|
3508 |
+
start: this.data[this.hitTest(c)].x,
|
3509 |
+
end: this.data[this.hitTest(b)].x
|
3510 |
+
}), this.selectFrom = null) : void 0;
|
3511 |
+
}, d.prototype.resizeHandler = function() {
|
3512 |
+
return this.timeoutId = null, this.raphael.setSize(this.el.width(), this.el.height()),
|
3513 |
+
this.redraw();
|
3514 |
+
}, d;
|
3515 |
+
}(b.EventEmitter), b.parseDate = function(a) {
|
3516 |
+
var b, c, d, e, f, g, h, i, j, k, l;
|
3517 |
+
return "number" == typeof a ? a : (c = a.match(/^(\d+) Q(\d)$/), e = a.match(/^(\d+)-(\d+)$/),
|
3518 |
+
f = a.match(/^(\d+)-(\d+)-(\d+)$/), h = a.match(/^(\d+) W(\d+)$/), i = a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),
|
3519 |
+
j = a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),
|
3520 |
+
c ? new Date(parseInt(c[1], 10), 3 * parseInt(c[2], 10) - 1, 1).getTime() : e ? new Date(parseInt(e[1], 10), parseInt(e[2], 10) - 1, 1).getTime() : f ? new Date(parseInt(f[1], 10), parseInt(f[2], 10) - 1, parseInt(f[3], 10)).getTime() : h ? (k = new Date(parseInt(h[1], 10), 0, 1),
|
3521 |
+
4 !== k.getDay() && k.setMonth(0, 1 + (4 - k.getDay() + 7) % 7), k.getTime() + 6048e5 * parseInt(h[2], 10)) : i ? i[6] ? (g = 0,
|
3522 |
+
"Z" !== i[6] && (g = 60 * parseInt(i[8], 10) + parseInt(i[9], 10), "+" === i[7] && (g = 0 - g)),
|
3523 |
+
Date.UTC(parseInt(i[1], 10), parseInt(i[2], 10) - 1, parseInt(i[3], 10), parseInt(i[4], 10), parseInt(i[5], 10) + g)) : new Date(parseInt(i[1], 10), parseInt(i[2], 10) - 1, parseInt(i[3], 10), parseInt(i[4], 10), parseInt(i[5], 10)).getTime() : j ? (l = parseFloat(j[6]),
|
3524 |
+
b = Math.floor(l), d = Math.round(1e3 * (l - b)), j[8] ? (g = 0, "Z" !== j[8] && (g = 60 * parseInt(j[10], 10) + parseInt(j[11], 10),
|
3525 |
+
"+" === j[9] && (g = 0 - g)), Date.UTC(parseInt(j[1], 10), parseInt(j[2], 10) - 1, parseInt(j[3], 10), parseInt(j[4], 10), parseInt(j[5], 10) + g, b, d)) : new Date(parseInt(j[1], 10), parseInt(j[2], 10) - 1, parseInt(j[3], 10), parseInt(j[4], 10), parseInt(j[5], 10), b, d).getTime()) : new Date(parseInt(a, 10), 0, 1).getTime());
|
3526 |
+
}, b.Hover = function() {
|
3527 |
+
function c(c) {
|
3528 |
+
null == c && (c = {}), this.options = a.extend({}, b.Hover.defaults, c), this.el = a("<div class='" + this.options["class"] + "'></div>"),
|
3529 |
+
this.el.hide(), this.options.parent.append(this.el);
|
3530 |
+
}
|
3531 |
+
return c.defaults = {
|
3532 |
+
"class": "morris-hover morris-default-style"
|
3533 |
+
}, c.prototype.update = function(a, b, c) {
|
3534 |
+
return a ? (this.html(a), this.show(), this.moveTo(b, c)) : this.hide();
|
3535 |
+
}, c.prototype.html = function(a) {
|
3536 |
+
return this.el.html(a);
|
3537 |
+
}, c.prototype.moveTo = function(a, b) {
|
3538 |
+
var c, d, e, f, g, h;
|
3539 |
+
return g = this.options.parent.innerWidth(), f = this.options.parent.innerHeight(),
|
3540 |
+
d = this.el.outerWidth(), c = this.el.outerHeight(), e = Math.min(Math.max(0, a - d / 2), g - d),
|
3541 |
+
null != b ? (h = b - c - 10, 0 > h && (h = b + 10, h + c > f && (h = f / 2 - c / 2))) : h = f / 2 - c / 2,
|
3542 |
+
this.el.css({
|
3543 |
+
left: e + "px",
|
3544 |
+
top: parseInt(h) + "px"
|
3545 |
+
});
|
3546 |
+
}, c.prototype.show = function() {
|
3547 |
+
return this.el.show();
|
3548 |
+
}, c.prototype.hide = function() {
|
3549 |
+
return this.el.hide();
|
3550 |
+
}, c;
|
3551 |
+
}(), b.Line = function(a) {
|
3552 |
+
function c(a) {
|
3553 |
+
return this.hilight = f(this.hilight, this), this.onHoverOut = f(this.onHoverOut, this),
|
3554 |
+
this.onHoverMove = f(this.onHoverMove, this), this.onGridClick = f(this.onGridClick, this),
|
3555 |
+
this instanceof b.Line ? (c.__super__.constructor.call(this, a), void 0) : new b.Line(a);
|
3556 |
+
}
|
3557 |
+
return h(c, a), c.prototype.init = function() {
|
3558 |
+
return "always" !== this.options.hideHover ? (this.hover = new b.Hover({
|
3559 |
+
parent: this.el
|
3560 |
+
}), this.on("hovermove", this.onHoverMove), this.on("hoverout", this.onHoverOut),
|
3561 |
+
this.on("gridclick", this.onGridClick)) : void 0;
|
3562 |
+
}, c.prototype.defaults = {
|
3563 |
+
lineWidth: 3,
|
3564 |
+
pointSize: 4,
|
3565 |
+
lineColors: [ "#0b62a4", "#7A92A3", "#4da74d", "#afd8f8", "#edc240", "#cb4b4b", "#9440ed" ],
|
3566 |
+
pointStrokeWidths: [ 1 ],
|
3567 |
+
pointStrokeColors: [ "#ffffff" ],
|
3568 |
+
pointFillColors: [],
|
3569 |
+
smooth: !0,
|
3570 |
+
xLabels: "auto",
|
3571 |
+
xLabelFormat: null,
|
3572 |
+
xLabelMargin: 24,
|
3573 |
+
hideHover: !1
|
3574 |
+
}, c.prototype.calc = function() {
|
3575 |
+
return this.calcPoints(), this.generatePaths();
|
3576 |
+
}, c.prototype.calcPoints = function() {
|
3577 |
+
var a, b, c, d, e, f;
|
3578 |
+
for (e = this.data, f = [], c = 0, d = e.length; d > c; c++) a = e[c], a._x = this.transX(a.x),
|
3579 |
+
a._y = function() {
|
3580 |
+
var c, d, e, f;
|
3581 |
+
for (e = a.y, f = [], c = 0, d = e.length; d > c; c++) b = e[c], null != b ? f.push(this.transY(b)) : f.push(b);
|
3582 |
+
return f;
|
3583 |
+
}.call(this), f.push(a._ymax = Math.min.apply(Math, [ this.bottom ].concat(function() {
|
3584 |
+
var c, d, e, f;
|
3585 |
+
for (e = a._y, f = [], c = 0, d = e.length; d > c; c++) b = e[c], null != b && f.push(b);
|
3586 |
+
return f;
|
3587 |
+
}())));
|
3588 |
+
return f;
|
3589 |
+
}, c.prototype.hitTest = function(a) {
|
3590 |
+
var b, c, d, e, f;
|
3591 |
+
if (0 === this.data.length) return null;
|
3592 |
+
for (f = this.data.slice(1), b = d = 0, e = f.length; e > d && (c = f[b], !(a < (c._x + this.data[b]._x) / 2)); b = ++d) ;
|
3593 |
+
return b;
|
3594 |
+
}, c.prototype.onGridClick = function(a, b) {
|
3595 |
+
var c;
|
3596 |
+
return c = this.hitTest(a), this.fire("click", c, this.data[c].src, a, b);
|
3597 |
+
}, c.prototype.onHoverMove = function(a) {
|
3598 |
+
var b;
|
3599 |
+
return b = this.hitTest(a), this.displayHoverForRow(b);
|
3600 |
+
}, c.prototype.onHoverOut = function() {
|
3601 |
+
return this.options.hideHover !== !1 ? this.displayHoverForRow(null) : void 0;
|
3602 |
+
}, c.prototype.displayHoverForRow = function(a) {
|
3603 |
+
var b;
|
3604 |
+
return null != a ? ((b = this.hover).update.apply(b, this.hoverContentForRow(a)),
|
3605 |
+
this.hilight(a)) : (this.hover.hide(), this.hilight());
|
3606 |
+
}, c.prototype.hoverContentForRow = function(a) {
|
3607 |
+
var b, c, d, e, f, g, h;
|
3608 |
+
for (d = this.data[a], b = "<div class='morris-hover-row-label'>" + d.label + "</div>",
|
3609 |
+
h = d.y, c = f = 0, g = h.length; g > f; c = ++f) e = h[c], b += "<div class='morris-hover-point' style='color: " + this.colorFor(d, c, "label") + "'>\n " + this.options.labels[c] + ":\n " + this.yLabelFormat(e) + "\n</div>";
|
3610 |
+
return "function" == typeof this.options.hoverCallback && (b = this.options.hoverCallback(a, this.options, b, d.src)),
|
3611 |
+
[ b, d._x, d._ymax ];
|
3612 |
+
}, c.prototype.generatePaths = function() {
|
3613 |
+
var a, c, d, e;
|
3614 |
+
return this.paths = function() {
|
3615 |
+
var f, g, h, j;
|
3616 |
+
for (j = [], c = f = 0, g = this.options.ykeys.length; g >= 0 ? g > f : f > g; c = g >= 0 ? ++f : --f) e = "boolean" == typeof this.options.smooth ? this.options.smooth : (h = this.options.ykeys[c],
|
3617 |
+
i.call(this.options.smooth, h) >= 0), a = function() {
|
3618 |
+
var a, b, e, f;
|
3619 |
+
for (e = this.data, f = [], a = 0, b = e.length; b > a; a++) d = e[a], void 0 !== d._y[c] && f.push({
|
3620 |
+
x: d._x,
|
3621 |
+
y: d._y[c]
|
3622 |
+
});
|
3623 |
+
return f;
|
3624 |
+
}.call(this), a.length > 1 ? j.push(b.Line.createPath(a, e, this.bottom)) : j.push(null);
|
3625 |
+
return j;
|
3626 |
+
}.call(this);
|
3627 |
+
}, c.prototype.draw = function() {
|
3628 |
+
var a;
|
3629 |
+
return ((a = this.options.axes) === !0 || "both" === a || "x" === a) && this.drawXAxis(),
|
3630 |
+
this.drawSeries(), this.options.hideHover === !1 ? this.displayHoverForRow(this.data.length - 1) : void 0;
|
3631 |
+
}, c.prototype.drawXAxis = function() {
|
3632 |
+
var a, c, d, e, f, g, h, i, j, k, l = this;
|
3633 |
+
for (h = this.bottom + this.options.padding / 2, f = null, e = null, a = function(a, b) {
|
3634 |
+
var c, d, g, i, j;
|
3635 |
+
return c = l.drawXAxisLabel(l.transX(b), h, a), j = c.getBBox(), c.transform("r" + -l.options.xLabelAngle),
|
3636 |
+
d = c.getBBox(), c.transform("t0," + d.height / 2 + "..."), 0 !== l.options.xLabelAngle && (i = -.5 * j.width * Math.cos(l.options.xLabelAngle * Math.PI / 180),
|
3637 |
+
c.transform("t" + i + ",0...")), d = c.getBBox(), (null == f || f >= d.x + d.width || null != e && e >= d.x) && d.x >= 0 && d.x + d.width < l.el.width() ? (0 !== l.options.xLabelAngle && (g = 1.25 * l.options.gridTextSize / Math.sin(l.options.xLabelAngle * Math.PI / 180),
|
3638 |
+
e = d.x - g), f = d.x - l.options.xLabelMargin) : c.remove();
|
3639 |
+
}, d = this.options.parseTime ? 1 === this.data.length && "auto" === this.options.xLabels ? [ [ this.data[0].label, this.data[0].x ] ] : b.labelSeries(this.xmin, this.xmax, this.width, this.options.xLabels, this.options.xLabelFormat) : function() {
|
3640 |
+
var a, b, c, d;
|
3641 |
+
for (c = this.data, d = [], a = 0, b = c.length; b > a; a++) g = c[a], d.push([ g.label, g.x ]);
|
3642 |
+
return d;
|
3643 |
+
}.call(this), d.reverse(), k = [], i = 0, j = d.length; j > i; i++) c = d[i], k.push(a(c[0], c[1]));
|
3644 |
+
return k;
|
3645 |
+
}, c.prototype.drawSeries = function() {
|
3646 |
+
var a, b, c, d, e, f;
|
3647 |
+
for (this.seriesPoints = [], a = b = d = this.options.ykeys.length - 1; 0 >= d ? 0 >= b : b >= 0; a = 0 >= d ? ++b : --b) this._drawLineFor(a);
|
3648 |
+
for (f = [], a = c = e = this.options.ykeys.length - 1; 0 >= e ? 0 >= c : c >= 0; a = 0 >= e ? ++c : --c) f.push(this._drawPointFor(a));
|
3649 |
+
return f;
|
3650 |
+
}, c.prototype._drawPointFor = function(a) {
|
3651 |
+
var b, c, d, e, f, g;
|
3652 |
+
for (this.seriesPoints[a] = [], f = this.data, g = [], d = 0, e = f.length; e > d; d++) c = f[d],
|
3653 |
+
b = null, null != c._y[a] && (b = this.drawLinePoint(c._x, c._y[a], this.colorFor(c, a, "point"), a)),
|
3654 |
+
g.push(this.seriesPoints[a].push(b));
|
3655 |
+
return g;
|
3656 |
+
}, c.prototype._drawLineFor = function(a) {
|
3657 |
+
var b;
|
3658 |
+
return b = this.paths[a], null !== b ? this.drawLinePath(b, this.colorFor(null, a, "line"), a) : void 0;
|
3659 |
+
}, c.createPath = function(a, c, d) {
|
3660 |
+
var e, f, g, h, i, j, k, l, m, n, o, p, q, r;
|
3661 |
+
for (k = "", c && (g = b.Line.gradients(a)), l = {
|
3662 |
+
y: null
|
3663 |
+
}, h = q = 0, r = a.length; r > q; h = ++q) e = a[h], null != e.y && (null != l.y ? c ? (f = g[h],
|
3664 |
+
j = g[h - 1], i = (e.x - l.x) / 4, m = l.x + i, o = Math.min(d, l.y + i * j), n = e.x - i,
|
3665 |
+
p = Math.min(d, e.y - i * f), k += "C" + m + "," + o + "," + n + "," + p + "," + e.x + "," + e.y) : k += "L" + e.x + "," + e.y : c && null == g[h] || (k += "M" + e.x + "," + e.y)),
|
3666 |
+
l = e;
|
3667 |
+
return k;
|
3668 |
+
}, c.gradients = function(a) {
|
3669 |
+
var b, c, d, e, f, g, h, i;
|
3670 |
+
for (c = function(a, b) {
|
3671 |
+
return (a.y - b.y) / (a.x - b.x);
|
3672 |
+
}, i = [], d = g = 0, h = a.length; h > g; d = ++g) b = a[d], null != b.y ? (e = a[d + 1] || {
|
3673 |
+
y: null
|
3674 |
+
}, f = a[d - 1] || {
|
3675 |
+
y: null
|
3676 |
+
}, null != f.y && null != e.y ? i.push(c(f, e)) : null != f.y ? i.push(c(f, b)) : null != e.y ? i.push(c(b, e)) : i.push(null)) : i.push(null);
|
3677 |
+
return i;
|
3678 |
+
}, c.prototype.hilight = function(a) {
|
3679 |
+
var b, c, d, e, f;
|
3680 |
+
if (null !== this.prevHilight && this.prevHilight !== a) for (b = c = 0, e = this.seriesPoints.length - 1; e >= 0 ? e >= c : c >= e; b = e >= 0 ? ++c : --c) this.seriesPoints[b][this.prevHilight] && this.seriesPoints[b][this.prevHilight].animate(this.pointShrinkSeries(b));
|
3681 |
+
if (null !== a && this.prevHilight !== a) for (b = d = 0, f = this.seriesPoints.length - 1; f >= 0 ? f >= d : d >= f; b = f >= 0 ? ++d : --d) this.seriesPoints[b][a] && this.seriesPoints[b][a].animate(this.pointGrowSeries(b));
|
3682 |
+
return this.prevHilight = a;
|
3683 |
+
}, c.prototype.colorFor = function(a, b, c) {
|
3684 |
+
return "function" == typeof this.options.lineColors ? this.options.lineColors.call(this, a, b, c) : "point" === c ? this.options.pointFillColors[b % this.options.pointFillColors.length] || this.options.lineColors[b % this.options.lineColors.length] : this.options.lineColors[b % this.options.lineColors.length];
|
3685 |
+
}, c.prototype.drawXAxisLabel = function(a, b, c) {
|
3686 |
+
return this.raphael.text(a, b, c).attr("font-size", this.options.gridTextSize).attr("font-family", this.options.gridTextFamily).attr("font-weight", this.options.gridTextWeight).attr("fill", this.options.gridTextColor);
|
3687 |
+
}, c.prototype.drawLinePath = function(a, b, c) {
|
3688 |
+
return this.raphael.path(a).attr("stroke", b).attr("stroke-width", this.lineWidthForSeries(c));
|
3689 |
+
}, c.prototype.drawLinePoint = function(a, b, c, d) {
|
3690 |
+
return this.raphael.circle(a, b, this.pointSizeForSeries(d)).attr("fill", c).attr("stroke-width", this.pointStrokeWidthForSeries(d)).attr("stroke", this.pointStrokeColorForSeries(d));
|
3691 |
+
}, c.prototype.pointStrokeWidthForSeries = function(a) {
|
3692 |
+
return this.options.pointStrokeWidths[a % this.options.pointStrokeWidths.length];
|
3693 |
+
}, c.prototype.pointStrokeColorForSeries = function(a) {
|
3694 |
+
return this.options.pointStrokeColors[a % this.options.pointStrokeColors.length];
|
3695 |
+
}, c.prototype.lineWidthForSeries = function(a) {
|
3696 |
+
return this.options.lineWidth instanceof Array ? this.options.lineWidth[a % this.options.lineWidth.length] : this.options.lineWidth;
|
3697 |
+
}, c.prototype.pointSizeForSeries = function(a) {
|
3698 |
+
return this.options.pointSize instanceof Array ? this.options.pointSize[a % this.options.pointSize.length] : this.options.pointSize;
|
3699 |
+
}, c.prototype.pointGrowSeries = function(a) {
|
3700 |
+
return Raphael.animation({
|
3701 |
+
r: this.pointSizeForSeries(a) + 3
|
3702 |
+
}, 25, "linear");
|
3703 |
+
}, c.prototype.pointShrinkSeries = function(a) {
|
3704 |
+
return Raphael.animation({
|
3705 |
+
r: this.pointSizeForSeries(a)
|
3706 |
+
}, 25, "linear");
|
3707 |
+
}, c;
|
3708 |
+
}(b.Grid), b.labelSeries = function(c, d, e, f, g) {
|
3709 |
+
var h, i, j, k, l, m, n, o, p, q, r;
|
3710 |
+
if (j = 200 * (d - c) / e, i = new Date(c), n = b.LABEL_SPECS[f], void 0 === n) for (r = b.AUTO_LABEL_ORDER,
|
3711 |
+
p = 0, q = r.length; q > p; p++) if (k = r[p], m = b.LABEL_SPECS[k], j >= m.span) {
|
3712 |
+
n = m;
|
3713 |
+
break;
|
3714 |
+
}
|
3715 |
+
for (void 0 === n && (n = b.LABEL_SPECS.second), g && (n = a.extend({}, n, {
|
3716 |
+
fmt: g
|
3717 |
+
})), h = n.start(i), l = []; (o = h.getTime()) <= d; ) o >= c && l.push([ n.fmt(h), o ]),
|
3718 |
+
n.incr(h);
|
3719 |
+
return l;
|
3720 |
+
}, c = function(a) {
|
3721 |
+
return {
|
3722 |
+
span: 60 * a * 1e3,
|
3723 |
+
start: function(a) {
|
3724 |
+
return new Date(a.getFullYear(), a.getMonth(), a.getDate(), a.getHours());
|
3725 |
+
},
|
3726 |
+
fmt: function(a) {
|
3727 |
+
return "" + b.pad2(a.getHours()) + ":" + b.pad2(a.getMinutes());
|
3728 |
+
},
|
3729 |
+
incr: function(b) {
|
3730 |
+
return b.setUTCMinutes(b.getUTCMinutes() + a);
|
3731 |
+
}
|
3732 |
+
};
|
3733 |
+
}, d = function(a) {
|
3734 |
+
return {
|
3735 |
+
span: 1e3 * a,
|
3736 |
+
start: function(a) {
|
3737 |
+
return new Date(a.getFullYear(), a.getMonth(), a.getDate(), a.getHours(), a.getMinutes());
|
3738 |
+
},
|
3739 |
+
fmt: function(a) {
|
3740 |
+
return "" + b.pad2(a.getHours()) + ":" + b.pad2(a.getMinutes()) + ":" + b.pad2(a.getSeconds());
|
3741 |
+
},
|
3742 |
+
incr: function(b) {
|
3743 |
+
return b.setUTCSeconds(b.getUTCSeconds() + a);
|
3744 |
+
}
|
3745 |
+
};
|
3746 |
+
}, b.LABEL_SPECS = {
|
3747 |
+
decade: {
|
3748 |
+
span: 1728e8,
|
3749 |
+
start: function(a) {
|
3750 |
+
return new Date(a.getFullYear() - a.getFullYear() % 10, 0, 1);
|
3751 |
+
},
|
3752 |
+
fmt: function(a) {
|
3753 |
+
return "" + a.getFullYear();
|
3754 |
+
},
|
3755 |
+
incr: function(a) {
|
3756 |
+
return a.setFullYear(a.getFullYear() + 10);
|
3757 |
+
}
|
3758 |
+
},
|
3759 |
+
year: {
|
3760 |
+
span: 1728e7,
|
3761 |
+
start: function(a) {
|
3762 |
+
return new Date(a.getFullYear(), 0, 1);
|
3763 |
+
},
|
3764 |
+
fmt: function(a) {
|
3765 |
+
return "" + a.getFullYear();
|
3766 |
+
},
|
3767 |
+
incr: function(a) {
|
3768 |
+
return a.setFullYear(a.getFullYear() + 1);
|
3769 |
+
}
|
3770 |
+
},
|
3771 |
+
month: {
|
3772 |
+
span: 24192e5,
|
3773 |
+
start: function(a) {
|
3774 |
+
return new Date(a.getFullYear(), a.getMonth(), 1);
|
3775 |
+
},
|
3776 |
+
fmt: function(a) {
|
3777 |
+
return "" + a.getFullYear() + "-" + b.pad2(a.getMonth() + 1);
|
3778 |
+
},
|
3779 |
+
incr: function(a) {
|
3780 |
+
return a.setMonth(a.getMonth() + 1);
|
3781 |
+
}
|
3782 |
+
},
|
3783 |
+
week: {
|
3784 |
+
span: 6048e5,
|
3785 |
+
start: function(a) {
|
3786 |
+
return new Date(a.getFullYear(), a.getMonth(), a.getDate());
|
3787 |
+
},
|
3788 |
+
fmt: function(a) {
|
3789 |
+
return "" + a.getFullYear() + "-" + b.pad2(a.getMonth() + 1) + "-" + b.pad2(a.getDate());
|
3790 |
+
},
|
3791 |
+
incr: function(a) {
|
3792 |
+
return a.setDate(a.getDate() + 7);
|
3793 |
+
}
|
3794 |
+
},
|
3795 |
+
day: {
|
3796 |
+
span: 864e5,
|
3797 |
+
start: function(a) {
|
3798 |
+
return new Date(a.getFullYear(), a.getMonth(), a.getDate());
|
3799 |
+
},
|
3800 |
+
fmt: function(a) {
|
3801 |
+
return "" + a.getFullYear() + "-" + b.pad2(a.getMonth() + 1) + "-" + b.pad2(a.getDate());
|
3802 |
+
},
|
3803 |
+
incr: function(a) {
|
3804 |
+
return a.setDate(a.getDate() + 1);
|
3805 |
+
}
|
3806 |
+
},
|
3807 |
+
hour: c(60),
|
3808 |
+
"30min": c(30),
|
3809 |
+
"15min": c(15),
|
3810 |
+
"10min": c(10),
|
3811 |
+
"5min": c(5),
|
3812 |
+
minute: c(1),
|
3813 |
+
"30sec": d(30),
|
3814 |
+
"15sec": d(15),
|
3815 |
+
"10sec": d(10),
|
3816 |
+
"5sec": d(5),
|
3817 |
+
second: d(1)
|
3818 |
+
}, b.AUTO_LABEL_ORDER = [ "decade", "year", "month", "week", "day", "hour", "30min", "15min", "10min", "5min", "minute", "30sec", "15sec", "10sec", "5sec", "second" ],
|
3819 |
+
b.Area = function(c) {
|
3820 |
+
function d(c) {
|
3821 |
+
var f;
|
3822 |
+
return this instanceof b.Area ? (f = a.extend({}, e, c), this.cumulative = !f.behaveLikeLine,
|
3823 |
+
"auto" === f.fillOpacity && (f.fillOpacity = f.behaveLikeLine ? .8 : 1), d.__super__.constructor.call(this, f),
|
3824 |
+
void 0) : new b.Area(c);
|
3825 |
+
}
|
3826 |
+
var e;
|
3827 |
+
return h(d, c), e = {
|
3828 |
+
fillOpacity: "auto",
|
3829 |
+
behaveLikeLine: !1
|
3830 |
+
}, d.prototype.calcPoints = function() {
|
3831 |
+
var a, b, c, d, e, f, g;
|
3832 |
+
for (f = this.data, g = [], d = 0, e = f.length; e > d; d++) a = f[d], a._x = this.transX(a.x),
|
3833 |
+
b = 0, a._y = function() {
|
3834 |
+
var d, e, f, g;
|
3835 |
+
for (f = a.y, g = [], d = 0, e = f.length; e > d; d++) c = f[d], this.options.behaveLikeLine ? g.push(this.transY(c)) : (b += c || 0,
|
3836 |
+
g.push(this.transY(b)));
|
3837 |
+
return g;
|
3838 |
+
}.call(this), g.push(a._ymax = Math.max.apply(Math, a._y));
|
3839 |
+
return g;
|
3840 |
+
}, d.prototype.drawSeries = function() {
|
3841 |
+
var a, b, c, d, e, f, g, h;
|
3842 |
+
for (this.seriesPoints = [], b = this.options.behaveLikeLine ? function() {
|
3843 |
+
f = [];
|
3844 |
+
for (var a = 0, b = this.options.ykeys.length - 1; b >= 0 ? b >= a : a >= b; b >= 0 ? a++ : a--) f.push(a);
|
3845 |
+
return f;
|
3846 |
+
}.apply(this) : function() {
|
3847 |
+
g = [];
|
3848 |
+
for (var a = e = this.options.ykeys.length - 1; 0 >= e ? 0 >= a : a >= 0; 0 >= e ? a++ : a--) g.push(a);
|
3849 |
+
return g;
|
3850 |
+
}.apply(this), h = [], c = 0, d = b.length; d > c; c++) a = b[c], this._drawFillFor(a),
|
3851 |
+
this._drawLineFor(a), h.push(this._drawPointFor(a));
|
3852 |
+
return h;
|
3853 |
+
}, d.prototype._drawFillFor = function(a) {
|
3854 |
+
var b;
|
3855 |
+
return b = this.paths[a], null !== b ? (b += "L" + this.transX(this.xmax) + "," + this.bottom + "L" + this.transX(this.xmin) + "," + this.bottom + "Z",
|
3856 |
+
this.drawFilledPath(b, this.fillForSeries(a))) : void 0;
|
3857 |
+
}, d.prototype.fillForSeries = function(a) {
|
3858 |
+
var b;
|
3859 |
+
return b = Raphael.rgb2hsl(this.colorFor(this.data[a], a, "line")), Raphael.hsl(b.h, this.options.behaveLikeLine ? .9 * b.s : .75 * b.s, Math.min(.98, this.options.behaveLikeLine ? 1.2 * b.l : 1.25 * b.l));
|
3860 |
+
}, d.prototype.drawFilledPath = function(a, b) {
|
3861 |
+
return this.raphael.path(a).attr("fill", b).attr("fill-opacity", this.options.fillOpacity).attr("stroke", "none");
|
3862 |
+
}, d;
|
3863 |
+
}(b.Line), b.Bar = function(c) {
|
3864 |
+
function d(c) {
|
3865 |
+
return this.onHoverOut = f(this.onHoverOut, this), this.onHoverMove = f(this.onHoverMove, this),
|
3866 |
+
this.onGridClick = f(this.onGridClick, this), this instanceof b.Bar ? (d.__super__.constructor.call(this, a.extend({}, c, {
|
3867 |
+
parseTime: !1
|
3868 |
+
})), void 0) : new b.Bar(c);
|
3869 |
+
}
|
3870 |
+
return h(d, c), d.prototype.init = function() {
|
3871 |
+
return this.cumulative = this.options.stacked, "always" !== this.options.hideHover ? (this.hover = new b.Hover({
|
3872 |
+
parent: this.el
|
3873 |
+
}), this.on("hovermove", this.onHoverMove), this.on("hoverout", this.onHoverOut),
|
3874 |
+
this.on("gridclick", this.onGridClick)) : void 0;
|
3875 |
+
}, d.prototype.defaults = {
|
3876 |
+
barSizeRatio: .75,
|
3877 |
+
barGap: 3,
|
3878 |
+
barColors: [ "#0b62a4", "#7a92a3", "#4da74d", "#afd8f8", "#edc240", "#cb4b4b", "#9440ed" ],
|
3879 |
+
barOpacity: 1,
|
3880 |
+
barRadius: [ 0, 0, 0, 0 ],
|
3881 |
+
xLabelMargin: 50
|
3882 |
+
}, d.prototype.calc = function() {
|
3883 |
+
var a;
|
3884 |
+
return this.calcBars(), this.options.hideHover === !1 ? (a = this.hover).update.apply(a, this.hoverContentForRow(this.data.length - 1)) : void 0;
|
3885 |
+
}, d.prototype.calcBars = function() {
|
3886 |
+
var a, b, c, d, e, f, g;
|
3887 |
+
for (f = this.data, g = [], a = d = 0, e = f.length; e > d; a = ++d) b = f[a], b._x = this.left + this.width * (a + .5) / this.data.length,
|
3888 |
+
g.push(b._y = function() {
|
3889 |
+
var a, d, e, f;
|
3890 |
+
for (e = b.y, f = [], a = 0, d = e.length; d > a; a++) c = e[a], null != c ? f.push(this.transY(c)) : f.push(null);
|
3891 |
+
return f;
|
3892 |
+
}.call(this));
|
3893 |
+
return g;
|
3894 |
+
}, d.prototype.draw = function() {
|
3895 |
+
var a;
|
3896 |
+
return ((a = this.options.axes) === !0 || "both" === a || "x" === a) && this.drawXAxis(),
|
3897 |
+
this.drawSeries();
|
3898 |
+
}, d.prototype.drawXAxis = function() {
|
3899 |
+
var a, b, c, d, e, f, g, h, i, j, k, l, m;
|
3900 |
+
for (j = this.bottom + (this.options.xAxisLabelTopPadding || this.options.padding / 2),
|
3901 |
+
g = null, f = null, m = [], a = k = 0, l = this.data.length; l >= 0 ? l > k : k > l; a = l >= 0 ? ++k : --k) h = this.data[this.data.length - 1 - a],
|
3902 |
+
b = this.drawXAxisLabel(h._x, j, h.label), i = b.getBBox(), b.transform("r" + -this.options.xLabelAngle),
|
3903 |
+
c = b.getBBox(), b.transform("t0," + c.height / 2 + "..."), 0 !== this.options.xLabelAngle && (e = -.5 * i.width * Math.cos(this.options.xLabelAngle * Math.PI / 180),
|
3904 |
+
b.transform("t" + e + ",0...")), (null == g || g >= c.x + c.width || null != f && f >= c.x) && c.x >= 0 && c.x + c.width < this.el.width() ? (0 !== this.options.xLabelAngle && (d = 1.25 * this.options.gridTextSize / Math.sin(this.options.xLabelAngle * Math.PI / 180),
|
3905 |
+
f = c.x - d), m.push(g = c.x - this.options.xLabelMargin)) : m.push(b.remove());
|
3906 |
+
return m;
|
3907 |
+
}, d.prototype.drawSeries = function() {
|
3908 |
+
var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o;
|
3909 |
+
return c = this.width / this.options.data.length, h = this.options.stacked ? 1 : this.options.ykeys.length,
|
3910 |
+
a = (c * this.options.barSizeRatio - this.options.barGap * (h - 1)) / h, this.options.barSize && (a = Math.min(a, this.options.barSize)),
|
3911 |
+
l = c - a * h - this.options.barGap * (h - 1), g = l / 2, o = this.ymin <= 0 && this.ymax >= 0 ? this.transY(0) : null,
|
3912 |
+
this.bars = function() {
|
3913 |
+
var h, l, p, q;
|
3914 |
+
for (p = this.data, q = [], d = h = 0, l = p.length; l > h; d = ++h) i = p[d], e = 0,
|
3915 |
+
q.push(function() {
|
3916 |
+
var h, l, p, q;
|
3917 |
+
for (p = i._y, q = [], j = h = 0, l = p.length; l > h; j = ++h) n = p[j], null !== n ? (o ? (m = Math.min(n, o),
|
3918 |
+
b = Math.max(n, o)) : (m = n, b = this.bottom), f = this.left + d * c + g, this.options.stacked || (f += j * (a + this.options.barGap)),
|
3919 |
+
k = b - m, this.options.verticalGridCondition && this.options.verticalGridCondition(i.x) && this.drawBar(this.left + d * c, this.top, c, Math.abs(this.top - this.bottom), this.options.verticalGridColor, this.options.verticalGridOpacity, this.options.barRadius),
|
3920 |
+
this.options.stacked && (m -= e), this.drawBar(f, m, a, k, this.colorFor(i, j, "bar"), this.options.barOpacity, this.options.barRadius),
|
3921 |
+
q.push(e += k)) : q.push(null);
|
3922 |
+
return q;
|
3923 |
+
}.call(this));
|
3924 |
+
return q;
|
3925 |
+
}.call(this);
|
3926 |
+
}, d.prototype.colorFor = function(a, b, c) {
|
3927 |
+
var d, e;
|
3928 |
+
return "function" == typeof this.options.barColors ? (d = {
|
3929 |
+
x: a.x,
|
3930 |
+
y: a.y[b],
|
3931 |
+
label: a.label
|
3932 |
+
}, e = {
|
3933 |
+
index: b,
|
3934 |
+
key: this.options.ykeys[b],
|
3935 |
+
label: this.options.labels[b]
|
3936 |
+
}, this.options.barColors.call(this, d, e, c)) : this.options.barColors[b % this.options.barColors.length];
|
3937 |
+
}, d.prototype.hitTest = function(a) {
|
3938 |
+
return 0 === this.data.length ? null : (a = Math.max(Math.min(a, this.right), this.left),
|
3939 |
+
Math.min(this.data.length - 1, Math.floor((a - this.left) / (this.width / this.data.length))));
|
3940 |
+
}, d.prototype.onGridClick = function(a, b) {
|
3941 |
+
var c;
|
3942 |
+
return c = this.hitTest(a), this.fire("click", c, this.data[c].src, a, b);
|
3943 |
+
}, d.prototype.onHoverMove = function(a) {
|
3944 |
+
var b, c;
|
3945 |
+
return b = this.hitTest(a), (c = this.hover).update.apply(c, this.hoverContentForRow(b));
|
3946 |
+
}, d.prototype.onHoverOut = function() {
|
3947 |
+
return this.options.hideHover !== !1 ? this.hover.hide() : void 0;
|
3948 |
+
}, d.prototype.hoverContentForRow = function(a) {
|
3949 |
+
var b, c, d, e, f, g, h, i;
|
3950 |
+
for (d = this.data[a], b = "<div class='morris-hover-row-label'>" + d.label + "</div>",
|
3951 |
+
i = d.y, c = g = 0, h = i.length; h > g; c = ++g) f = i[c], b += "<div class='morris-hover-point' style='color: " + this.colorFor(d, c, "label") + "'>\n " + this.options.labels[c] + ":\n " + this.yLabelFormat(f) + "\n</div>";
|
3952 |
+
return "function" == typeof this.options.hoverCallback && (b = this.options.hoverCallback(a, this.options, b, d.src)),
|
3953 |
+
e = this.left + (a + .5) * this.width / this.data.length, [ b, e ];
|
3954 |
+
}, d.prototype.drawXAxisLabel = function(a, b, c) {
|
3955 |
+
var d;
|
3956 |
+
return d = this.raphael.text(a, b, c).attr("font-size", this.options.gridTextSize).attr("font-family", this.options.gridTextFamily).attr("font-weight", this.options.gridTextWeight).attr("fill", this.options.gridTextColor);
|
3957 |
+
}, d.prototype.drawBar = function(a, b, c, d, e, f, g) {
|
3958 |
+
var h, i;
|
3959 |
+
return h = Math.max.apply(Math, g), i = 0 === h || h > d ? this.raphael.rect(a, b, c, d) : this.raphael.path(this.roundedRect(a, b, c, d, g)),
|
3960 |
+
i.attr("fill", e).attr("fill-opacity", f).attr("stroke", "none");
|
3961 |
+
}, d.prototype.roundedRect = function(a, b, c, d, e) {
|
3962 |
+
return null == e && (e = [ 0, 0, 0, 0 ]), [ "M", a, e[0] + b, "Q", a, b, a + e[0], b, "L", a + c - e[1], b, "Q", a + c, b, a + c, b + e[1], "L", a + c, b + d - e[2], "Q", a + c, b + d, a + c - e[2], b + d, "L", a + e[3], b + d, "Q", a, b + d, a, b + d - e[3], "Z" ];
|
3963 |
+
}, d;
|
3964 |
+
}(b.Grid), b.Donut = function(c) {
|
3965 |
+
function d(c) {
|
3966 |
+
this.resizeHandler = f(this.resizeHandler, this), this.select = f(this.select, this),
|
3967 |
+
this.click = f(this.click, this);
|
3968 |
+
var d = this;
|
3969 |
+
if (!(this instanceof b.Donut)) return new b.Donut(c);
|
3970 |
+
if (this.options = a.extend({}, this.defaults, c), this.el = "string" == typeof c.element ? a(document.getElementById(c.element)) : a(c.element),
|
3971 |
+
null === this.el || 0 === this.el.length) throw new Error("Graph placeholder not found.");
|
3972 |
+
void 0 !== c.data && 0 !== c.data.length && (this.raphael = new Raphael(this.el[0]),
|
3973 |
+
this.options.resize && a(window).bind("resize", function() {
|
3974 |
+
return null != d.timeoutId && window.clearTimeout(d.timeoutId), d.timeoutId = window.setTimeout(d.resizeHandler, 100);
|
3975 |
+
}), this.setData(c.data));
|
3976 |
+
}
|
3977 |
+
return h(d, c), d.prototype.defaults = {
|
3978 |
+
colors: [ "#0B62A4", "#3980B5", "#679DC6", "#95BBD7", "#B0CCE1", "#095791", "#095085", "#083E67", "#052C48", "#042135" ],
|
3979 |
+
backgroundColor: "#FFFFFF",
|
3980 |
+
labelColor: "#000000",
|
3981 |
+
formatter: b.commas,
|
3982 |
+
resize: !1
|
3983 |
+
}, d.prototype.redraw = function() {
|
3984 |
+
var a, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x;
|
3985 |
+
for (this.raphael.clear(), c = this.el.width() / 2, d = this.el.height() / 2, n = (Math.min(c, d) - 10) / 3,
|
3986 |
+
l = 0, u = this.values, o = 0, r = u.length; r > o; o++) m = u[o], l += m;
|
3987 |
+
for (i = 5 / (2 * n), a = 1.9999 * Math.PI - i * this.data.length, g = 0, f = 0,
|
3988 |
+
this.segments = [], v = this.values, e = p = 0, s = v.length; s > p; e = ++p) m = v[e],
|
3989 |
+
j = g + i + a * (m / l), k = new b.DonutSegment(c, d, 2 * n, n, g, j, this.data[e].color || this.options.colors[f % this.options.colors.length], this.options.backgroundColor, f, this.raphael),
|
3990 |
+
k.render(), this.segments.push(k), k.on("hover", this.select), k.on("click", this.click),
|
3991 |
+
g = j, f += 1;
|
3992 |
+
for (this.text1 = this.drawEmptyDonutLabel(c, d - 10, this.options.labelColor, 15, 800),
|
3993 |
+
this.text2 = this.drawEmptyDonutLabel(c, d + 10, this.options.labelColor, 14), h = Math.max.apply(Math, this.values),
|
3994 |
+
f = 0, w = this.values, x = [], q = 0, t = w.length; t > q; q++) {
|
3995 |
+
if (m = w[q], m === h) {
|
3996 |
+
this.select(f);
|
3997 |
+
break;
|
3998 |
+
}
|
3999 |
+
x.push(f += 1);
|
4000 |
+
}
|
4001 |
+
return x;
|
4002 |
+
}, d.prototype.setData = function(a) {
|
4003 |
+
var b;
|
4004 |
+
return this.data = a, this.values = function() {
|
4005 |
+
var a, c, d, e;
|
4006 |
+
for (d = this.data, e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(parseFloat(b.value));
|
4007 |
+
return e;
|
4008 |
+
}.call(this), this.redraw();
|
4009 |
+
}, d.prototype.click = function(a) {
|
4010 |
+
return this.fire("click", a, this.data[a]);
|
4011 |
+
}, d.prototype.select = function(a) {
|
4012 |
+
var b, c, d, e, f, g;
|
4013 |
+
for (g = this.segments, e = 0, f = g.length; f > e; e++) c = g[e], c.deselect();
|
4014 |
+
return d = this.segments[a], d.select(), b = this.data[a], this.setLabels(b.label, this.options.formatter(b.value, b));
|
4015 |
+
}, d.prototype.setLabels = function(a, b) {
|
4016 |
+
var c, d, e, f, g, h, i, j;
|
4017 |
+
return c = 2 * (Math.min(this.el.width() / 2, this.el.height() / 2) - 10) / 3, f = 1.8 * c,
|
4018 |
+
e = c / 2, d = c / 3, this.text1.attr({
|
4019 |
+
text: a,
|
4020 |
+
transform: ""
|
4021 |
+
}), g = this.text1.getBBox(), h = Math.min(f / g.width, e / g.height), this.text1.attr({
|
4022 |
+
transform: "S" + h + "," + h + "," + (g.x + g.width / 2) + "," + (g.y + g.height)
|
4023 |
+
}), this.text2.attr({
|
4024 |
+
text: b,
|
4025 |
+
transform: ""
|
4026 |
+
}), i = this.text2.getBBox(), j = Math.min(f / i.width, d / i.height), this.text2.attr({
|
4027 |
+
transform: "S" + j + "," + j + "," + (i.x + i.width / 2) + "," + i.y
|
4028 |
+
});
|
4029 |
+
}, d.prototype.drawEmptyDonutLabel = function(a, b, c, d, e) {
|
4030 |
+
var f;
|
4031 |
+
return f = this.raphael.text(a, b, "").attr("font-size", d).attr("fill", c), null != e && f.attr("font-weight", e),
|
4032 |
+
f;
|
4033 |
+
}, d.prototype.resizeHandler = function() {
|
4034 |
+
return this.timeoutId = null, this.raphael.setSize(this.el.width(), this.el.height()),
|
4035 |
+
this.redraw();
|
4036 |
+
}, d;
|
4037 |
+
}(b.EventEmitter), b.DonutSegment = function(a) {
|
4038 |
+
function b(a, b, c, d, e, g, h, i, j, k) {
|
4039 |
+
this.cx = a, this.cy = b, this.inner = c, this.outer = d, this.color = h, this.backgroundColor = i,
|
4040 |
+
this.index = j, this.raphael = k, this.deselect = f(this.deselect, this), this.select = f(this.select, this),
|
4041 |
+
this.sin_p0 = Math.sin(e), this.cos_p0 = Math.cos(e), this.sin_p1 = Math.sin(g),
|
4042 |
+
this.cos_p1 = Math.cos(g), this.is_long = g - e > Math.PI ? 1 : 0, this.path = this.calcSegment(this.inner + 3, this.inner + this.outer - 5),
|
4043 |
+
this.selectedPath = this.calcSegment(this.inner + 3, this.inner + this.outer), this.hilight = this.calcArc(this.inner);
|
4044 |
+
}
|
4045 |
+
return h(b, a), b.prototype.calcArcPoints = function(a) {
|
4046 |
+
return [ this.cx + a * this.sin_p0, this.cy + a * this.cos_p0, this.cx + a * this.sin_p1, this.cy + a * this.cos_p1 ];
|
4047 |
+
}, b.prototype.calcSegment = function(a, b) {
|
4048 |
+
var c, d, e, f, g, h, i, j, k, l;
|
4049 |
+
return k = this.calcArcPoints(a), c = k[0], e = k[1], d = k[2], f = k[3], l = this.calcArcPoints(b),
|
4050 |
+
g = l[0], i = l[1], h = l[2], j = l[3], "M" + c + "," + e + ("A" + a + "," + a + ",0," + this.is_long + ",0," + d + "," + f) + ("L" + h + "," + j) + ("A" + b + "," + b + ",0," + this.is_long + ",1," + g + "," + i) + "Z";
|
4051 |
+
}, b.prototype.calcArc = function(a) {
|
4052 |
+
var b, c, d, e, f;
|
4053 |
+
return f = this.calcArcPoints(a), b = f[0], d = f[1], c = f[2], e = f[3], "M" + b + "," + d + ("A" + a + "," + a + ",0," + this.is_long + ",0," + c + "," + e);
|
4054 |
+
}, b.prototype.render = function() {
|
4055 |
+
var a = this;
|
4056 |
+
return this.arc = this.drawDonutArc(this.hilight, this.color), this.seg = this.drawDonutSegment(this.path, this.color, this.backgroundColor, function() {
|
4057 |
+
return a.fire("hover", a.index);
|
4058 |
+
}, function() {
|
4059 |
+
return a.fire("click", a.index);
|
4060 |
+
});
|
4061 |
+
}, b.prototype.drawDonutArc = function(a, b) {
|
4062 |
+
return this.raphael.path(a).attr({
|
4063 |
+
stroke: b,
|
4064 |
+
"stroke-width": 2,
|
4065 |
+
opacity: 0
|
4066 |
+
});
|
4067 |
+
}, b.prototype.drawDonutSegment = function(a, b, c, d, e) {
|
4068 |
+
return this.raphael.path(a).attr({
|
4069 |
+
fill: b,
|
4070 |
+
stroke: c,
|
4071 |
+
"stroke-width": 3
|
4072 |
+
}).hover(d).click(e);
|
4073 |
+
}, b.prototype.select = function() {
|
4074 |
+
return this.selected ? void 0 : (this.seg.animate({
|
4075 |
+
path: this.selectedPath
|
4076 |
+
}, 150, "<>"), this.arc.animate({
|
4077 |
+
opacity: 1
|
4078 |
+
}, 150, "<>"), this.selected = !0);
|
4079 |
+
}, b.prototype.deselect = function() {
|
4080 |
+
return this.selected ? (this.seg.animate({
|
4081 |
+
path: this.path
|
4082 |
+
}, 150, "<>"), this.arc.animate({
|
4083 |
+
opacity: 0
|
4084 |
+
}, 150, "<>"), this.selected = !1) : void 0;
|
4085 |
+
}, b;
|
4086 |
+
}(b.EventEmitter);
|
4087 |
+
}).call(this);
|
4088 |
+
|
4089 |
+
!function($) {
|
4090 |
+
var apiParams = {
|
4091 |
+
set: {
|
4092 |
+
colors: 1,
|
4093 |
+
values: 1,
|
4094 |
+
backgroundColor: 1,
|
4095 |
+
scaleColors: 1,
|
4096 |
+
normalizeFunction: 1,
|
4097 |
+
focus: 1
|
4098 |
+
},
|
4099 |
+
get: {
|
4100 |
+
selectedRegions: 1,
|
4101 |
+
selectedMarkers: 1,
|
4102 |
+
mapObject: 1,
|
4103 |
+
regionName: 1
|
4104 |
+
}
|
4105 |
+
};
|
4106 |
+
$.fn.vectorMap = function(options) {
|
4107 |
+
var map, methodName, map = this.children(".jvectormap-container").data("mapObject");
|
4108 |
+
if ("addMap" === options) jvm.Map.maps[arguments[1]] = arguments[2]; else {
|
4109 |
+
if (("set" === options || "get" === options) && apiParams[options][arguments[1]]) return methodName = arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1),
|
4110 |
+
map[options + methodName].apply(map, Array.prototype.slice.call(arguments, 2));
|
4111 |
+
options = options || {}, options.container = this, map = new jvm.Map(options);
|
4112 |
+
}
|
4113 |
+
return this;
|
4114 |
+
};
|
4115 |
+
}(jQuery), function(factory) {
|
4116 |
+
"function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory : factory(jQuery);
|
4117 |
+
}(function($) {
|
4118 |
+
function handler(event) {
|
4119 |
+
var orgEvent = event || window.event, args = slice.call(arguments, 1), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0;
|
4120 |
+
if (event = $.event.fix(orgEvent), event.type = "mousewheel", "detail" in orgEvent && (deltaY = -1 * orgEvent.detail),
|
4121 |
+
"wheelDelta" in orgEvent && (deltaY = orgEvent.wheelDelta), "wheelDeltaY" in orgEvent && (deltaY = orgEvent.wheelDeltaY),
|
4122 |
+
"wheelDeltaX" in orgEvent && (deltaX = -1 * orgEvent.wheelDeltaX), "axis" in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS && (deltaX = -1 * deltaY,
|
4123 |
+
deltaY = 0), delta = 0 === deltaY ? deltaX : deltaY, "deltaY" in orgEvent && (deltaY = -1 * orgEvent.deltaY,
|
4124 |
+
delta = deltaY), "deltaX" in orgEvent && (deltaX = orgEvent.deltaX, 0 === deltaY && (delta = -1 * deltaX)),
|
4125 |
+
0 !== deltaY || 0 !== deltaX) {
|
4126 |
+
if (1 === orgEvent.deltaMode) {
|
4127 |
+
var lineHeight = $.data(this, "mousewheel-line-height");
|
4128 |
+
delta *= lineHeight, deltaY *= lineHeight, deltaX *= lineHeight;
|
4129 |
+
} else if (2 === orgEvent.deltaMode) {
|
4130 |
+
var pageHeight = $.data(this, "mousewheel-page-height");
|
4131 |
+
delta *= pageHeight, deltaY *= pageHeight, deltaX *= pageHeight;
|
4132 |
+
}
|
4133 |
+
return absDelta = Math.max(Math.abs(deltaY), Math.abs(deltaX)), (!lowestDelta || lowestDelta > absDelta) && (lowestDelta = absDelta,
|
4134 |
+
shouldAdjustOldDeltas(orgEvent, absDelta) && (lowestDelta /= 40)), shouldAdjustOldDeltas(orgEvent, absDelta) && (delta /= 40,
|
4135 |
+
deltaX /= 40, deltaY /= 40), delta = Math[delta >= 1 ? "floor" : "ceil"](delta / lowestDelta),
|
4136 |
+
deltaX = Math[deltaX >= 1 ? "floor" : "ceil"](deltaX / lowestDelta), deltaY = Math[deltaY >= 1 ? "floor" : "ceil"](deltaY / lowestDelta),
|
4137 |
+
event.deltaX = deltaX, event.deltaY = deltaY, event.deltaFactor = lowestDelta, event.deltaMode = 0,
|
4138 |
+
args.unshift(event, delta, deltaX, deltaY), nullLowestDeltaTimeout && clearTimeout(nullLowestDeltaTimeout),
|
4139 |
+
nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200), ($.event.dispatch || $.event.handle).apply(this, args);
|
4140 |
+
}
|
4141 |
+
}
|
4142 |
+
function nullLowestDelta() {
|
4143 |
+
lowestDelta = null;
|
4144 |
+
}
|
4145 |
+
function shouldAdjustOldDeltas(orgEvent, absDelta) {
|
4146 |
+
return special.settings.adjustOldDeltas && "mousewheel" === orgEvent.type && absDelta % 120 === 0;
|
4147 |
+
}
|
4148 |
+
var nullLowestDeltaTimeout, lowestDelta, toFix = [ "wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll" ], toBind = "onwheel" in document || document.documentMode >= 9 ? [ "wheel" ] : [ "mousewheel", "DomMouseScroll", "MozMousePixelScroll" ], slice = Array.prototype.slice;
|
4149 |
+
if ($.event.fixHooks) for (var i = toFix.length; i; ) $.event.fixHooks[toFix[--i]] = $.event.mouseHooks;
|
4150 |
+
var special = $.event.special.mousewheel = {
|
4151 |
+
version: "3.1.9",
|
4152 |
+
setup: function() {
|
4153 |
+
if (this.addEventListener) for (var i = toBind.length; i; ) this.addEventListener(toBind[--i], handler, !1); else this.onmousewheel = handler;
|
4154 |
+
$.data(this, "mousewheel-line-height", special.getLineHeight(this)), $.data(this, "mousewheel-page-height", special.getPageHeight(this));
|
4155 |
+
},
|
4156 |
+
teardown: function() {
|
4157 |
+
if (this.removeEventListener) for (var i = toBind.length; i; ) this.removeEventListener(toBind[--i], handler, !1); else this.onmousewheel = null;
|
4158 |
+
},
|
4159 |
+
getLineHeight: function(elem) {
|
4160 |
+
return parseInt($(elem)["offsetParent" in $.fn ? "offsetParent" : "parent"]().css("fontSize"), 10);
|
4161 |
+
},
|
4162 |
+
getPageHeight: function(elem) {
|
4163 |
+
return $(elem).height();
|
4164 |
+
},
|
4165 |
+
settings: {
|
4166 |
+
adjustOldDeltas: !0
|
4167 |
+
}
|
4168 |
+
};
|
4169 |
+
$.fn.extend({
|
4170 |
+
mousewheel: function(fn) {
|
4171 |
+
return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
|
4172 |
+
},
|
4173 |
+
unmousewheel: function(fn) {
|
4174 |
+
return this.unbind("mousewheel", fn);
|
4175 |
+
}
|
4176 |
+
});
|
4177 |
+
});
|
4178 |
+
|
4179 |
+
var jvm = {
|
4180 |
+
inherits: function(child, parent) {
|
4181 |
+
function temp() {}
|
4182 |
+
temp.prototype = parent.prototype, child.prototype = new temp(), child.prototype.constructor = child,
|
4183 |
+
child.parentClass = parent;
|
4184 |
+
},
|
4185 |
+
mixin: function(target, source) {
|
4186 |
+
var prop;
|
4187 |
+
for (prop in source.prototype) source.prototype.hasOwnProperty(prop) && (target.prototype[prop] = source.prototype[prop]);
|
4188 |
+
},
|
4189 |
+
min: function(values) {
|
4190 |
+
var i, min = Number.MAX_VALUE;
|
4191 |
+
if (values instanceof Array) for (i = 0; i < values.length; i++) values[i] < min && (min = values[i]); else for (i in values) values[i] < min && (min = values[i]);
|
4192 |
+
return min;
|
4193 |
+
},
|
4194 |
+
max: function(values) {
|
4195 |
+
var i, max = Number.MIN_VALUE;
|
4196 |
+
if (values instanceof Array) for (i = 0; i < values.length; i++) values[i] > max && (max = values[i]); else for (i in values) values[i] > max && (max = values[i]);
|
4197 |
+
return max;
|
4198 |
+
},
|
4199 |
+
keys: function(object) {
|
4200 |
+
var key, keys = [];
|
4201 |
+
for (key in object) keys.push(key);
|
4202 |
+
return keys;
|
4203 |
+
},
|
4204 |
+
values: function(object) {
|
4205 |
+
var key, i, values = [];
|
4206 |
+
for (i = 0; i < arguments.length; i++) {
|
4207 |
+
object = arguments[i];
|
4208 |
+
for (key in object) values.push(object[key]);
|
4209 |
+
}
|
4210 |
+
return values;
|
4211 |
+
},
|
4212 |
+
whenImageLoaded: function(url) {
|
4213 |
+
var deferred = new jvm.$.Deferred(), img = jvm.$("<img/>");
|
4214 |
+
return img.error(function() {
|
4215 |
+
deferred.reject();
|
4216 |
+
}).load(function() {
|
4217 |
+
deferred.resolve(img);
|
4218 |
+
}), img.attr("src", url), deferred;
|
4219 |
+
},
|
4220 |
+
isImageUrl: function(s) {
|
4221 |
+
return /\.\w{3,4}$/.test(s);
|
4222 |
+
}
|
4223 |
+
};
|
4224 |
+
|
4225 |
+
jvm.$ = jQuery, Array.prototype.indexOf || (Array.prototype.indexOf = function(searchElement, fromIndex) {
|
4226 |
+
var k;
|
4227 |
+
if (null == this) throw new TypeError('"this" is null or not defined');
|
4228 |
+
var O = Object(this), len = O.length >>> 0;
|
4229 |
+
if (0 === len) return -1;
|
4230 |
+
var n = +fromIndex || 0;
|
4231 |
+
if (1 / 0 === Math.abs(n) && (n = 0), n >= len) return -1;
|
4232 |
+
for (k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); len > k; ) {
|
4233 |
+
if (k in O && O[k] === searchElement) return k;
|
4234 |
+
k++;
|
4235 |
+
}
|
4236 |
+
return -1;
|
4237 |
+
}), jvm.AbstractElement = function(name, config) {
|
4238 |
+
this.node = this.createElement(name), this.name = name, this.properties = {}, config && this.set(config);
|
4239 |
+
}, jvm.AbstractElement.prototype.set = function(property, value) {
|
4240 |
+
var key;
|
4241 |
+
if ("object" == typeof property) for (key in property) this.properties[key] = property[key],
|
4242 |
+
this.applyAttr(key, property[key]); else this.properties[property] = value, this.applyAttr(property, value);
|
4243 |
+
}, jvm.AbstractElement.prototype.get = function(property) {
|
4244 |
+
return this.properties[property];
|
4245 |
+
}, jvm.AbstractElement.prototype.applyAttr = function(property, value) {
|
4246 |
+
this.node.setAttribute(property, value);
|
4247 |
+
}, jvm.AbstractElement.prototype.remove = function() {
|
4248 |
+
jvm.$(this.node).remove();
|
4249 |
+
}, jvm.AbstractCanvasElement = function(container, width, height) {
|
4250 |
+
this.container = container, this.setSize(width, height), this.rootElement = new jvm[this.classPrefix + "GroupElement"](),
|
4251 |
+
this.node.appendChild(this.rootElement.node), this.container.appendChild(this.node);
|
4252 |
+
}, jvm.AbstractCanvasElement.prototype.add = function(element, group) {
|
4253 |
+
group = group || this.rootElement, group.add(element), element.canvas = this;
|
4254 |
+
}, jvm.AbstractCanvasElement.prototype.addPath = function(config, style, group) {
|
4255 |
+
var el = new jvm[this.classPrefix + "PathElement"](config, style);
|
4256 |
+
return this.add(el, group), el;
|
4257 |
+
}, jvm.AbstractCanvasElement.prototype.addCircle = function(config, style, group) {
|
4258 |
+
var el = new jvm[this.classPrefix + "CircleElement"](config, style);
|
4259 |
+
return this.add(el, group), el;
|
4260 |
+
}, jvm.AbstractCanvasElement.prototype.addImage = function(config, style, group) {
|
4261 |
+
var el = new jvm[this.classPrefix + "ImageElement"](config, style);
|
4262 |
+
return this.add(el, group), el;
|
4263 |
+
}, jvm.AbstractCanvasElement.prototype.addText = function(config, style, group) {
|
4264 |
+
var el = new jvm[this.classPrefix + "TextElement"](config, style);
|
4265 |
+
return this.add(el, group), el;
|
4266 |
+
}, jvm.AbstractCanvasElement.prototype.addGroup = function(parentGroup) {
|
4267 |
+
var el = new jvm[this.classPrefix + "GroupElement"]();
|
4268 |
+
return parentGroup ? parentGroup.node.appendChild(el.node) : this.node.appendChild(el.node),
|
4269 |
+
el.canvas = this, el;
|
4270 |
+
}, jvm.AbstractShapeElement = function(name, config, style) {
|
4271 |
+
this.style = style || {}, this.style.current = this.style.current || {}, this.isHovered = !1,
|
4272 |
+
this.isSelected = !1, this.updateStyle();
|
4273 |
+
}, jvm.AbstractShapeElement.prototype.setStyle = function(property, value) {
|
4274 |
+
var styles = {};
|
4275 |
+
"object" == typeof property ? styles = property : styles[property] = value, jvm.$.extend(this.style.current, styles),
|
4276 |
+
this.updateStyle();
|
4277 |
+
}, jvm.AbstractShapeElement.prototype.updateStyle = function() {
|
4278 |
+
var attrs = {};
|
4279 |
+
jvm.AbstractShapeElement.mergeStyles(attrs, this.style.initial), jvm.AbstractShapeElement.mergeStyles(attrs, this.style.current),
|
4280 |
+
this.isHovered && jvm.AbstractShapeElement.mergeStyles(attrs, this.style.hover),
|
4281 |
+
this.isSelected && (jvm.AbstractShapeElement.mergeStyles(attrs, this.style.selected),
|
4282 |
+
this.isHovered && jvm.AbstractShapeElement.mergeStyles(attrs, this.style.selectedHover)),
|
4283 |
+
this.set(attrs);
|
4284 |
+
}, jvm.AbstractShapeElement.mergeStyles = function(styles, newStyles) {
|
4285 |
+
var key;
|
4286 |
+
newStyles = newStyles || {};
|
4287 |
+
for (key in newStyles) null === newStyles[key] ? delete styles[key] : styles[key] = newStyles[key];
|
4288 |
+
}, jvm.SVGElement = function() {
|
4289 |
+
jvm.SVGElement.parentClass.apply(this, arguments);
|
4290 |
+
}, jvm.inherits(jvm.SVGElement, jvm.AbstractElement), jvm.SVGElement.svgns = "http://www.w3.org/2000/svg",
|
4291 |
+
jvm.SVGElement.prototype.createElement = function(tagName) {
|
4292 |
+
return document.createElementNS(jvm.SVGElement.svgns, tagName);
|
4293 |
+
}, jvm.SVGElement.prototype.addClass = function(className) {
|
4294 |
+
this.node.setAttribute("class", className);
|
4295 |
+
}, jvm.SVGElement.prototype.getElementCtr = function(ctr) {
|
4296 |
+
return jvm["SVG" + ctr];
|
4297 |
+
}, jvm.SVGElement.prototype.getBBox = function() {
|
4298 |
+
return this.node.getBBox();
|
4299 |
+
}, jvm.SVGGroupElement = function() {
|
4300 |
+
jvm.SVGGroupElement.parentClass.call(this, "g");
|
4301 |
+
}, jvm.inherits(jvm.SVGGroupElement, jvm.SVGElement), jvm.SVGGroupElement.prototype.add = function(element) {
|
4302 |
+
this.node.appendChild(element.node);
|
4303 |
+
}, jvm.SVGCanvasElement = function() {
|
4304 |
+
this.classPrefix = "SVG", jvm.SVGCanvasElement.parentClass.call(this, "svg"), this.defsElement = new jvm.SVGElement("defs"),
|
4305 |
+
this.node.appendChild(this.defsElement.node), jvm.AbstractCanvasElement.apply(this, arguments);
|
4306 |
+
}, jvm.inherits(jvm.SVGCanvasElement, jvm.SVGElement), jvm.mixin(jvm.SVGCanvasElement, jvm.AbstractCanvasElement),
|
4307 |
+
jvm.SVGCanvasElement.prototype.setSize = function(width, height) {
|
4308 |
+
this.width = width, this.height = height, this.node.setAttribute("width", width),
|
4309 |
+
this.node.setAttribute("height", height);
|
4310 |
+
}, jvm.SVGCanvasElement.prototype.applyTransformParams = function(scale, transX, transY) {
|
4311 |
+
this.scale = scale, this.transX = transX, this.transY = transY, this.rootElement.node.setAttribute("transform", "scale(" + scale + ") translate(" + transX + ", " + transY + ")");
|
4312 |
+
}, jvm.SVGShapeElement = function(name, config) {
|
4313 |
+
jvm.SVGShapeElement.parentClass.call(this, name, config), jvm.AbstractShapeElement.apply(this, arguments);
|
4314 |
+
}, jvm.inherits(jvm.SVGShapeElement, jvm.SVGElement), jvm.mixin(jvm.SVGShapeElement, jvm.AbstractShapeElement),
|
4315 |
+
jvm.SVGShapeElement.prototype.applyAttr = function(attr, value) {
|
4316 |
+
var patternEl, imageEl, that = this;
|
4317 |
+
"fill" === attr && jvm.isImageUrl(value) ? jvm.SVGShapeElement.images[value] ? this.applyAttr("fill", "url(#image" + jvm.SVGShapeElement.images[value] + ")") : jvm.whenImageLoaded(value).then(function(img) {
|
4318 |
+
imageEl = new jvm.SVGElement("image"), imageEl.node.setAttributeNS("http://www.w3.org/1999/xlink", "href", value),
|
4319 |
+
imageEl.applyAttr("x", "0"), imageEl.applyAttr("y", "0"), imageEl.applyAttr("width", img[0].width),
|
4320 |
+
imageEl.applyAttr("height", img[0].height), patternEl = new jvm.SVGElement("pattern"),
|
4321 |
+
patternEl.applyAttr("id", "image" + jvm.SVGShapeElement.imageCounter), patternEl.applyAttr("x", 0),
|
4322 |
+
patternEl.applyAttr("y", 0), patternEl.applyAttr("width", img[0].width / 2), patternEl.applyAttr("height", img[0].height / 2),
|
4323 |
+
patternEl.applyAttr("viewBox", "0 0 " + img[0].width + " " + img[0].height), patternEl.applyAttr("patternUnits", "userSpaceOnUse"),
|
4324 |
+
patternEl.node.appendChild(imageEl.node), that.canvas.defsElement.node.appendChild(patternEl.node),
|
4325 |
+
jvm.SVGShapeElement.images[value] = jvm.SVGShapeElement.imageCounter++, that.applyAttr("fill", "url(#image" + jvm.SVGShapeElement.images[value] + ")");
|
4326 |
+
}) : jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);
|
4327 |
+
}, jvm.SVGShapeElement.imageCounter = 1, jvm.SVGShapeElement.images = {}, jvm.SVGPathElement = function(config, style) {
|
4328 |
+
jvm.SVGPathElement.parentClass.call(this, "path", config, style), this.node.setAttribute("fill-rule", "evenodd");
|
4329 |
+
}, jvm.inherits(jvm.SVGPathElement, jvm.SVGShapeElement), jvm.SVGCircleElement = function(config, style) {
|
4330 |
+
jvm.SVGCircleElement.parentClass.call(this, "circle", config, style);
|
4331 |
+
}, jvm.inherits(jvm.SVGCircleElement, jvm.SVGShapeElement), jvm.SVGImageElement = function(config, style) {
|
4332 |
+
jvm.SVGImageElement.parentClass.call(this, "image", config, style);
|
4333 |
+
}, jvm.inherits(jvm.SVGImageElement, jvm.SVGShapeElement), jvm.SVGImageElement.prototype.applyAttr = function(attr, value) {
|
4334 |
+
var that = this;
|
4335 |
+
"image" == attr ? jvm.SVGImageElement.images[value] || jvm.whenImageLoaded(value).then(function(img) {
|
4336 |
+
that.node.setAttributeNS("http://www.w3.org/1999/xlink", "href", value), that.width = img[0].width,
|
4337 |
+
that.height = img[0].height, that.applyAttr("width", that.width), that.applyAttr("height", that.height),
|
4338 |
+
jvm.SVGImageElement.images[value] = jvm.SVGImageElement.imageCounter++, that.applyAttr("x", that.cx - that.width / 2),
|
4339 |
+
that.applyAttr("y", that.cy - that.height / 2), jvm.$(that.node).trigger("imageloaded", [ img ]);
|
4340 |
+
}) : "cx" == attr ? (this.cx = value, this.width && this.applyAttr("x", value - this.width / 2)) : "cy" == attr ? (this.cy = value,
|
4341 |
+
this.height && this.applyAttr("y", value - this.height / 2)) : jvm.SVGImageElement.parentClass.prototype.applyAttr.apply(this, arguments);
|
4342 |
+
}, jvm.SVGImageElement.imageCounter = 1, jvm.SVGImageElement.images = {}, jvm.SVGTextElement = function(config, style) {
|
4343 |
+
jvm.SVGTextElement.parentClass.call(this, "text", config, style);
|
4344 |
+
}, jvm.inherits(jvm.SVGTextElement, jvm.SVGShapeElement), jvm.SVGTextElement.prototype.applyAttr = function(attr, value) {
|
4345 |
+
"text" === attr ? this.node.textContent = value : jvm.SVGTextElement.parentClass.prototype.applyAttr.apply(this, arguments);
|
4346 |
+
}, jvm.VMLElement = function() {
|
4347 |
+
jvm.VMLElement.VMLInitialized || jvm.VMLElement.initializeVML(), jvm.VMLElement.parentClass.apply(this, arguments);
|
4348 |
+
}, jvm.inherits(jvm.VMLElement, jvm.AbstractElement), jvm.VMLElement.VMLInitialized = !1,
|
4349 |
+
jvm.VMLElement.initializeVML = function() {
|
4350 |
+
try {
|
4351 |
+
document.namespaces.rvml || document.namespaces.add("rvml", "urn:schemas-microsoft-com:vml"),
|
4352 |
+
jvm.VMLElement.prototype.createElement = function(tagName) {
|
4353 |
+
return document.createElement("<rvml:" + tagName + ' class="rvml">');
|
4354 |
+
};
|
4355 |
+
} catch (e) {
|
4356 |
+
jvm.VMLElement.prototype.createElement = function(tagName) {
|
4357 |
+
return document.createElement("<" + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
|
4358 |
+
};
|
4359 |
+
}
|
4360 |
+
document.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)"), jvm.VMLElement.VMLInitialized = !0;
|
4361 |
+
}, jvm.VMLElement.prototype.getElementCtr = function(ctr) {
|
4362 |
+
return jvm["VML" + ctr];
|
4363 |
+
}, jvm.VMLElement.prototype.addClass = function(className) {
|
4364 |
+
jvm.$(this.node).addClass(className);
|
4365 |
+
}, jvm.VMLElement.prototype.applyAttr = function(attr, value) {
|
4366 |
+
this.node[attr] = value;
|
4367 |
+
}, jvm.VMLElement.prototype.getBBox = function() {
|
4368 |
+
var node = jvm.$(this.node);
|
4369 |
+
return {
|
4370 |
+
x: node.position().left / this.canvas.scale,
|
4371 |
+
y: node.position().top / this.canvas.scale,
|
4372 |
+
width: node.width() / this.canvas.scale,
|
4373 |
+
height: node.height() / this.canvas.scale
|
4374 |
+
};
|
4375 |
+
}, jvm.VMLGroupElement = function() {
|
4376 |
+
jvm.VMLGroupElement.parentClass.call(this, "group"), this.node.style.left = "0px",
|
4377 |
+
this.node.style.top = "0px", this.node.coordorigin = "0 0";
|
4378 |
+
}, jvm.inherits(jvm.VMLGroupElement, jvm.VMLElement), jvm.VMLGroupElement.prototype.add = function(element) {
|
4379 |
+
this.node.appendChild(element.node);
|
4380 |
+
}, jvm.VMLCanvasElement = function() {
|
4381 |
+
this.classPrefix = "VML", jvm.VMLCanvasElement.parentClass.call(this, "group"),
|
4382 |
+
jvm.AbstractCanvasElement.apply(this, arguments), this.node.style.position = "absolute";
|
4383 |
+
}, jvm.inherits(jvm.VMLCanvasElement, jvm.VMLElement), jvm.mixin(jvm.VMLCanvasElement, jvm.AbstractCanvasElement),
|
4384 |
+
jvm.VMLCanvasElement.prototype.setSize = function(width, height) {
|
4385 |
+
var paths, groups, i, l;
|
4386 |
+
if (this.width = width, this.height = height, this.node.style.width = width + "px",
|
4387 |
+
this.node.style.height = height + "px", this.node.coordsize = width + " " + height,
|
4388 |
+
this.node.coordorigin = "0 0", this.rootElement) {
|
4389 |
+
for (paths = this.rootElement.node.getElementsByTagName("shape"), i = 0, l = paths.length; l > i; i++) paths[i].coordsize = width + " " + height,
|
4390 |
+
paths[i].style.width = width + "px", paths[i].style.height = height + "px";
|
4391 |
+
for (groups = this.node.getElementsByTagName("group"), i = 0, l = groups.length; l > i; i++) groups[i].coordsize = width + " " + height,
|
4392 |
+
groups[i].style.width = width + "px", groups[i].style.height = height + "px";
|
4393 |
+
}
|
4394 |
+
}, jvm.VMLCanvasElement.prototype.applyTransformParams = function(scale, transX, transY) {
|
4395 |
+
this.scale = scale, this.transX = transX, this.transY = transY, this.rootElement.node.coordorigin = this.width - transX - this.width / 100 + "," + (this.height - transY - this.height / 100),
|
4396 |
+
this.rootElement.node.coordsize = this.width / scale + "," + this.height / scale;
|
4397 |
+
}, jvm.VMLShapeElement = function(name, config) {
|
4398 |
+
jvm.VMLShapeElement.parentClass.call(this, name, config), this.fillElement = new jvm.VMLElement("fill"),
|
4399 |
+
this.strokeElement = new jvm.VMLElement("stroke"), this.node.appendChild(this.fillElement.node),
|
4400 |
+
this.node.appendChild(this.strokeElement.node), this.node.stroked = !1, jvm.AbstractShapeElement.apply(this, arguments);
|
4401 |
+
}, jvm.inherits(jvm.VMLShapeElement, jvm.VMLElement), jvm.mixin(jvm.VMLShapeElement, jvm.AbstractShapeElement),
|
4402 |
+
jvm.VMLShapeElement.prototype.applyAttr = function(attr, value) {
|
4403 |
+
switch (attr) {
|
4404 |
+
case "fill":
|
4405 |
+
this.node.fillcolor = value;
|
4406 |
+
break;
|
4407 |
+
|
4408 |
+
case "fill-opacity":
|
4409 |
+
this.fillElement.node.opacity = Math.round(100 * value) + "%";
|
4410 |
+
break;
|
4411 |
+
|
4412 |
+
case "stroke":
|
4413 |
+
this.node.stroked = "none" === value ? !1 : !0, this.node.strokecolor = value;
|
4414 |
+
break;
|
4415 |
+
|
4416 |
+
case "stroke-opacity":
|
4417 |
+
this.strokeElement.node.opacity = Math.round(100 * value) + "%";
|
4418 |
+
break;
|
4419 |
+
|
4420 |
+
case "stroke-width":
|
4421 |
+
this.node.stroked = 0 === parseInt(value, 10) ? !1 : !0, this.node.strokeweight = value;
|
4422 |
+
break;
|
4423 |
+
|
4424 |
+
case "d":
|
4425 |
+
this.node.path = jvm.VMLPathElement.pathSvgToVml(value);
|
4426 |
+
break;
|
4427 |
+
|
4428 |
+
default:
|
4429 |
+
jvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);
|
4430 |
+
}
|
4431 |
+
}, jvm.VMLPathElement = function(config, style) {
|
4432 |
+
var scale = new jvm.VMLElement("skew");
|
4433 |
+
jvm.VMLPathElement.parentClass.call(this, "shape", config, style), this.node.coordorigin = "0 0",
|
4434 |
+
scale.node.on = !0, scale.node.matrix = "0.01,0,0,0.01,0,0", scale.node.offset = "0,0",
|
4435 |
+
this.node.appendChild(scale.node);
|
4436 |
+
}, jvm.inherits(jvm.VMLPathElement, jvm.VMLShapeElement), jvm.VMLPathElement.prototype.applyAttr = function(attr, value) {
|
4437 |
+
"d" === attr ? this.node.path = jvm.VMLPathElement.pathSvgToVml(value) : jvm.VMLShapeElement.prototype.applyAttr.call(this, attr, value);
|
4438 |
+
}, jvm.VMLPathElement.pathSvgToVml = function(path) {
|
4439 |
+
var ctrlx, ctrly, cx = 0, cy = 0;
|
4440 |
+
return path = path.replace(/(-?\d+)e(-?\d+)/g, "0"), path.replace(/([MmLlHhVvCcSs])\s*((?:-?\d*(?:\.\d+)?\s*,?\s*)+)/g, function(segment, letter, coords) {
|
4441 |
+
coords = coords.replace(/(\d)-/g, "$1,-").replace(/^\s+/g, "").replace(/\s+$/g, "").replace(/\s+/g, ",").split(","),
|
4442 |
+
coords[0] || coords.shift();
|
4443 |
+
for (var i = 0, l = coords.length; l > i; i++) coords[i] = Math.round(100 * coords[i]);
|
4444 |
+
switch (letter) {
|
4445 |
+
case "m":
|
4446 |
+
return cx += coords[0], cy += coords[1], "t" + coords.join(",");
|
4447 |
+
|
4448 |
+
case "M":
|
4449 |
+
return cx = coords[0], cy = coords[1], "m" + coords.join(",");
|
4450 |
+
|
4451 |
+
case "l":
|
4452 |
+
return cx += coords[0], cy += coords[1], "r" + coords.join(",");
|
4453 |
+
|
4454 |
+
case "L":
|
4455 |
+
return cx = coords[0], cy = coords[1], "l" + coords.join(",");
|
4456 |
+
|
4457 |
+
case "h":
|
4458 |
+
return cx += coords[0], "r" + coords[0] + ",0";
|
4459 |
+
|
4460 |
+
case "H":
|
4461 |
+
return cx = coords[0], "l" + cx + "," + cy;
|
4462 |
+
|
4463 |
+
case "v":
|
4464 |
+
return cy += coords[0], "r0," + coords[0];
|
4465 |
+
|
4466 |
+
case "V":
|
4467 |
+
return cy = coords[0], "l" + cx + "," + cy;
|
4468 |
+
|
4469 |
+
case "c":
|
4470 |
+
return ctrlx = cx + coords[coords.length - 4], ctrly = cy + coords[coords.length - 3],
|
4471 |
+
cx += coords[coords.length - 2], cy += coords[coords.length - 1], "v" + coords.join(",");
|
4472 |
+
|
4473 |
+
case "C":
|
4474 |
+
return ctrlx = coords[coords.length - 4], ctrly = coords[coords.length - 3], cx = coords[coords.length - 2],
|
4475 |
+
cy = coords[coords.length - 1], "c" + coords.join(",");
|
4476 |
+
|
4477 |
+
case "s":
|
4478 |
+
return coords.unshift(cy - ctrly), coords.unshift(cx - ctrlx), ctrlx = cx + coords[coords.length - 4],
|
4479 |
+
ctrly = cy + coords[coords.length - 3], cx += coords[coords.length - 2], cy += coords[coords.length - 1],
|
4480 |
+
"v" + coords.join(",");
|
4481 |
+
|
4482 |
+
case "S":
|
4483 |
+
return coords.unshift(cy + cy - ctrly), coords.unshift(cx + cx - ctrlx), ctrlx = coords[coords.length - 4],
|
4484 |
+
ctrly = coords[coords.length - 3], cx = coords[coords.length - 2], cy = coords[coords.length - 1],
|
4485 |
+
"c" + coords.join(",");
|
4486 |
+
}
|
4487 |
+
return "";
|
4488 |
+
}).replace(/z/g, "e");
|
4489 |
+
}, jvm.VMLCircleElement = function(config, style) {
|
4490 |
+
jvm.VMLCircleElement.parentClass.call(this, "oval", config, style);
|
4491 |
+
}, jvm.inherits(jvm.VMLCircleElement, jvm.VMLShapeElement), jvm.VMLCircleElement.prototype.applyAttr = function(attr, value) {
|
4492 |
+
switch (attr) {
|
4493 |
+
case "r":
|
4494 |
+
this.node.style.width = 2 * value + "px", this.node.style.height = 2 * value + "px",
|
4495 |
+
this.applyAttr("cx", this.get("cx") || 0), this.applyAttr("cy", this.get("cy") || 0);
|
4496 |
+
break;
|
4497 |
+
|
4498 |
+
case "cx":
|
4499 |
+
if (!value) return;
|
4500 |
+
this.node.style.left = value - (this.get("r") || 0) + "px";
|
4501 |
+
break;
|
4502 |
+
|
4503 |
+
case "cy":
|
4504 |
+
if (!value) return;
|
4505 |
+
this.node.style.top = value - (this.get("r") || 0) + "px";
|
4506 |
+
break;
|
4507 |
+
|
4508 |
+
default:
|
4509 |
+
jvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this, attr, value);
|
4510 |
+
}
|
4511 |
+
}, jvm.VectorCanvas = function(container, width, height) {
|
4512 |
+
return this.mode = window.SVGAngle ? "svg" : "vml", this.impl = "svg" == this.mode ? new jvm.SVGCanvasElement(container, width, height) : new jvm.VMLCanvasElement(container, width, height),
|
4513 |
+
this.impl.mode = this.mode, this.impl;
|
4514 |
+
}, jvm.SimpleScale = function(scale) {
|
4515 |
+
this.scale = scale;
|
4516 |
+
}, jvm.SimpleScale.prototype.getValue = function(value) {
|
4517 |
+
return value;
|
4518 |
+
}, jvm.OrdinalScale = function(scale) {
|
4519 |
+
this.scale = scale;
|
4520 |
+
}, jvm.OrdinalScale.prototype.getValue = function(value) {
|
4521 |
+
return this.scale[value];
|
4522 |
+
}, jvm.OrdinalScale.prototype.getTicks = function() {
|
4523 |
+
var key, ticks = [];
|
4524 |
+
for (key in this.scale) ticks.push({
|
4525 |
+
label: key,
|
4526 |
+
value: this.scale[key]
|
4527 |
+
});
|
4528 |
+
return ticks;
|
4529 |
+
}, jvm.NumericScale = function(scale, normalizeFunction, minValue, maxValue) {
|
4530 |
+
this.scale = [], normalizeFunction = normalizeFunction || "linear", scale && this.setScale(scale),
|
4531 |
+
normalizeFunction && this.setNormalizeFunction(normalizeFunction), "undefined" != typeof minValue && this.setMin(minValue),
|
4532 |
+
"undefined" != typeof maxValue && this.setMin(maxValue);
|
4533 |
+
}, jvm.NumericScale.prototype = {
|
4534 |
+
setMin: function(min) {
|
4535 |
+
this.clearMinValue = min, this.minValue = "function" == typeof this.normalize ? this.normalize(min) : min;
|
4536 |
+
},
|
4537 |
+
setMax: function(max) {
|
4538 |
+
this.clearMaxValue = max, this.maxValue = "function" == typeof this.normalize ? this.normalize(max) : max;
|
4539 |
+
},
|
4540 |
+
setScale: function(scale) {
|
4541 |
+
var i;
|
4542 |
+
for (this.scale = [], i = 0; i < scale.length; i++) this.scale[i] = [ scale[i] ];
|
4543 |
+
},
|
4544 |
+
setNormalizeFunction: function(f) {
|
4545 |
+
"polynomial" === f ? this.normalize = function(value) {
|
4546 |
+
return Math.pow(value, .2);
|
4547 |
+
} : "linear" === f ? delete this.normalize : this.normalize = f, this.setMin(this.clearMinValue),
|
4548 |
+
this.setMax(this.clearMaxValue);
|
4549 |
+
},
|
4550 |
+
getValue: function(value) {
|
4551 |
+
var l, c, lengthes = [], fullLength = 0, i = 0;
|
4552 |
+
for ("function" == typeof this.normalize && (value = this.normalize(value)), i = 0; i < this.scale.length - 1; i++) l = this.vectorLength(this.vectorSubtract(this.scale[i + 1], this.scale[i])),
|
4553 |
+
lengthes.push(l), fullLength += l;
|
4554 |
+
for (c = (this.maxValue - this.minValue) / fullLength, i = 0; i < lengthes.length; i++) lengthes[i] *= c;
|
4555 |
+
for (i = 0, value -= this.minValue; value - lengthes[i] >= 0; ) value -= lengthes[i],
|
4556 |
+
i++;
|
4557 |
+
return value = this.vectorToNum(i == this.scale.length - 1 ? this.scale[i] : this.vectorAdd(this.scale[i], this.vectorMult(this.vectorSubtract(this.scale[i + 1], this.scale[i]), value / lengthes[i])));
|
4558 |
+
},
|
4559 |
+
vectorToNum: function(vector) {
|
4560 |
+
var i, num = 0;
|
4561 |
+
for (i = 0; i < vector.length; i++) num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);
|
4562 |
+
return num;
|
4563 |
+
},
|
4564 |
+
vectorSubtract: function(vector1, vector2) {
|
4565 |
+
var i, vector = [];
|
4566 |
+
for (i = 0; i < vector1.length; i++) vector[i] = vector1[i] - vector2[i];
|
4567 |
+
return vector;
|
4568 |
+
},
|
4569 |
+
vectorAdd: function(vector1, vector2) {
|
4570 |
+
var i, vector = [];
|
4571 |
+
for (i = 0; i < vector1.length; i++) vector[i] = vector1[i] + vector2[i];
|
4572 |
+
return vector;
|
4573 |
+
},
|
4574 |
+
vectorMult: function(vector, num) {
|
4575 |
+
var i, result = [];
|
4576 |
+
for (i = 0; i < vector.length; i++) result[i] = vector[i] * num;
|
4577 |
+
return result;
|
4578 |
+
},
|
4579 |
+
vectorLength: function(vector) {
|
4580 |
+
var i, result = 0;
|
4581 |
+
for (i = 0; i < vector.length; i++) result += vector[i] * vector[i];
|
4582 |
+
return Math.sqrt(result);
|
4583 |
+
},
|
4584 |
+
getTicks: function() {
|
4585 |
+
var tick, v, m = 5, extent = [ this.clearMinValue, this.clearMaxValue ], span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step, ticks = [];
|
4586 |
+
for (.15 >= err ? step *= 10 : .35 >= err ? step *= 5 : .75 >= err && (step *= 2),
|
4587 |
+
extent[0] = Math.floor(extent[0] / step) * step, extent[1] = Math.ceil(extent[1] / step) * step,
|
4588 |
+
tick = extent[0]; tick <= extent[1]; ) v = tick == extent[0] ? this.clearMinValue : tick == extent[1] ? this.clearMaxValue : tick,
|
4589 |
+
ticks.push({
|
4590 |
+
label: tick,
|
4591 |
+
value: this.getValue(v)
|
4592 |
+
}), tick += step;
|
4593 |
+
return ticks;
|
4594 |
+
}
|
4595 |
+
}, jvm.ColorScale = function() {
|
4596 |
+
jvm.ColorScale.parentClass.apply(this, arguments);
|
4597 |
+
}, jvm.inherits(jvm.ColorScale, jvm.NumericScale), jvm.ColorScale.prototype.setScale = function(scale) {
|
4598 |
+
var i;
|
4599 |
+
for (i = 0; i < scale.length; i++) this.scale[i] = jvm.ColorScale.rgbToArray(scale[i]);
|
4600 |
+
}, jvm.ColorScale.prototype.getValue = function(value) {
|
4601 |
+
return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this, value));
|
4602 |
+
}, jvm.ColorScale.arrayToRgb = function(ar) {
|
4603 |
+
var d, i, rgb = "#";
|
4604 |
+
for (i = 0; i < ar.length; i++) d = ar[i].toString(16), rgb += 1 == d.length ? "0" + d : d;
|
4605 |
+
return rgb;
|
4606 |
+
}, jvm.ColorScale.numToRgb = function(num) {
|
4607 |
+
for (num = num.toString(16); num.length < 6; ) num = "0" + num;
|
4608 |
+
return "#" + num;
|
4609 |
+
}, jvm.ColorScale.rgbToArray = function(rgb) {
|
4610 |
+
return rgb = rgb.substr(1), [ parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16) ];
|
4611 |
+
}, jvm.Legend = function(params) {
|
4612 |
+
this.params = params || {}, this.map = this.params.map, this.series = this.params.series,
|
4613 |
+
this.body = jvm.$("<div/>"), this.body.addClass("jvectormap-legend"), this.params.cssClass && this.body.addClass(this.params.cssClass),
|
4614 |
+
params.vertical ? this.map.legendCntVertical.append(this.body) : this.map.legendCntHorizontal.append(this.body),
|
4615 |
+
this.render();
|
4616 |
+
}, jvm.Legend.prototype.render = function() {
|
4617 |
+
var i, tick, sample, label, ticks = this.series.scale.getTicks(), inner = jvm.$("<div/>").addClass("jvectormap-legend-inner");
|
4618 |
+
for (this.body.html(""), this.params.title && this.body.append(jvm.$("<div/>").addClass("jvectormap-legend-title").html(this.params.title)),
|
4619 |
+
this.body.append(inner), i = 0; i < ticks.length; i++) {
|
4620 |
+
switch (tick = jvm.$("<div/>").addClass("jvectormap-legend-tick"), sample = jvm.$("<div/>").addClass("jvectormap-legend-tick-sample"),
|
4621 |
+
this.series.params.attribute) {
|
4622 |
+
case "fill":
|
4623 |
+
jvm.isImageUrl(ticks[i].value) ? sample.css("background", "url(" + ticks[i].value + ")") : sample.css("background", ticks[i].value);
|
4624 |
+
break;
|
4625 |
+
|
4626 |
+
case "stroke":
|
4627 |
+
sample.css("background", ticks[i].value);
|
4628 |
+
break;
|
4629 |
+
|
4630 |
+
case "image":
|
4631 |
+
sample.css("background", "url(" + ticks[i].value + ") no-repeat center center");
|
4632 |
+
break;
|
4633 |
+
|
4634 |
+
case "r":
|
4635 |
+
jvm.$("<div/>").css({
|
4636 |
+
"border-radius": ticks[i].value,
|
4637 |
+
border: this.map.params.markerStyle.initial["stroke-width"] + "px " + this.map.params.markerStyle.initial.stroke + " solid",
|
4638 |
+
width: 2 * ticks[i].value + "px",
|
4639 |
+
height: 2 * ticks[i].value + "px",
|
4640 |
+
background: this.map.params.markerStyle.initial.fill
|
4641 |
+
}).appendTo(sample);
|
4642 |
+
}
|
4643 |
+
tick.append(sample), label = ticks[i].label, this.params.labelRender && (label = this.params.labelRender(label)),
|
4644 |
+
tick.append(jvm.$("<div>" + label + " </div>").addClass("jvectormap-legend-tick-text")),
|
4645 |
+
inner.append(tick);
|
4646 |
+
}
|
4647 |
+
inner.append(jvm.$("<div/>").css("clear", "both"));
|
4648 |
+
}, jvm.DataSeries = function(params, elements, map) {
|
4649 |
+
var scaleConstructor;
|
4650 |
+
params = params || {}, params.attribute = params.attribute || "fill", this.elements = elements,
|
4651 |
+
this.params = params, this.map = map, params.attributes && this.setAttributes(params.attributes),
|
4652 |
+
jvm.$.isArray(params.scale) ? (scaleConstructor = "fill" === params.attribute || "stroke" === params.attribute ? jvm.ColorScale : jvm.NumericScale,
|
4653 |
+
this.scale = new scaleConstructor(params.scale, params.normalizeFunction, params.min, params.max)) : this.scale = params.scale ? new jvm.OrdinalScale(params.scale) : new jvm.SimpleScale(params.scale),
|
4654 |
+
this.values = params.values || {}, this.setValues(this.values), this.params.legend && (this.legend = new jvm.Legend($.extend({
|
4655 |
+
map: this.map,
|
4656 |
+
series: this
|
4657 |
+
}, this.params.legend)));
|
4658 |
+
}, jvm.DataSeries.prototype = {
|
4659 |
+
setAttributes: function(key, attr) {
|
4660 |
+
var code, attrs = key;
|
4661 |
+
if ("string" == typeof key) this.elements[key] && this.elements[key].setStyle(this.params.attribute, attr); else for (code in attrs) this.elements[code] && this.elements[code].element.setStyle(this.params.attribute, attrs[code]);
|
4662 |
+
},
|
4663 |
+
setValues: function(values) {
|
4664 |
+
var val, cc, max = -Number.MAX_VALUE, min = Number.MAX_VALUE, attrs = {};
|
4665 |
+
if (this.scale instanceof jvm.OrdinalScale || this.scale instanceof jvm.SimpleScale) for (cc in values) attrs[cc] = values[cc] ? this.scale.getValue(values[cc]) : this.elements[cc].element.style.initial[this.params.attribute]; else {
|
4666 |
+
if ("undefined" == typeof this.params.min || "undefined" == typeof this.params.max) for (cc in values) val = parseFloat(values[cc]),
|
4667 |
+
val > max && (max = val), min > val && (min = val);
|
4668 |
+
"undefined" == typeof this.params.min ? (this.scale.setMin(min), this.params.min = min) : this.scale.setMin(this.params.min),
|
4669 |
+
"undefined" == typeof this.params.max ? (this.scale.setMax(max), this.params.max = max) : this.scale.setMax(this.params.max);
|
4670 |
+
for (cc in values) "indexOf" != cc && (val = parseFloat(values[cc]), attrs[cc] = isNaN(val) ? this.elements[cc].element.style.initial[this.params.attribute] : this.scale.getValue(val));
|
4671 |
+
}
|
4672 |
+
this.setAttributes(attrs), jvm.$.extend(this.values, values);
|
4673 |
+
},
|
4674 |
+
clear: function() {
|
4675 |
+
var key, attrs = {};
|
4676 |
+
for (key in this.values) this.elements[key] && (attrs[key] = this.elements[key].element.shape.style.initial[this.params.attribute]);
|
4677 |
+
this.setAttributes(attrs), this.values = {};
|
4678 |
+
},
|
4679 |
+
setScale: function(scale) {
|
4680 |
+
this.scale.setScale(scale), this.values && this.setValues(this.values);
|
4681 |
+
},
|
4682 |
+
setNormalizeFunction: function(f) {
|
4683 |
+
this.scale.setNormalizeFunction(f), this.values && this.setValues(this.values);
|
4684 |
+
}
|
4685 |
+
}, jvm.Proj = {
|
4686 |
+
degRad: 180 / Math.PI,
|
4687 |
+
radDeg: Math.PI / 180,
|
4688 |
+
radius: 6381372,
|
4689 |
+
sgn: function(n) {
|
4690 |
+
return n > 0 ? 1 : 0 > n ? -1 : n;
|
4691 |
+
},
|
4692 |
+
mill: function(lat, lng, c) {
|
4693 |
+
return {
|
4694 |
+
x: this.radius * (lng - c) * this.radDeg,
|
4695 |
+
y: -this.radius * Math.log(Math.tan((45 + .4 * lat) * this.radDeg)) / .8
|
4696 |
+
};
|
4697 |
+
},
|
4698 |
+
mill_inv: function(x, y, c) {
|
4699 |
+
return {
|
4700 |
+
lat: (2.5 * Math.atan(Math.exp(.8 * y / this.radius)) - 5 * Math.PI / 8) * this.degRad,
|
4701 |
+
lng: (c * this.radDeg + x / this.radius) * this.degRad
|
4702 |
+
};
|
4703 |
+
},
|
4704 |
+
merc: function(lat, lng, c) {
|
4705 |
+
return {
|
4706 |
+
x: this.radius * (lng - c) * this.radDeg,
|
4707 |
+
y: -this.radius * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))
|
4708 |
+
};
|
4709 |
+
},
|
4710 |
+
merc_inv: function(x, y, c) {
|
4711 |
+
return {
|
4712 |
+
lat: (2 * Math.atan(Math.exp(y / this.radius)) - Math.PI / 2) * this.degRad,
|
4713 |
+
lng: (c * this.radDeg + x / this.radius) * this.degRad
|
4714 |
+
};
|
4715 |
+
},
|
4716 |
+
aea: function(lat, lng, c) {
|
4717 |
+
var fi0 = 0, lambda0 = c * this.radDeg, fi1 = 29.5 * this.radDeg, fi2 = 45.5 * this.radDeg, fi = lat * this.radDeg, lambda = lng * this.radDeg, n = (Math.sin(fi1) + Math.sin(fi2)) / 2, C = Math.cos(fi1) * Math.cos(fi1) + 2 * n * Math.sin(fi1), theta = n * (lambda - lambda0), ro = Math.sqrt(C - 2 * n * Math.sin(fi)) / n, ro0 = Math.sqrt(C - 2 * n * Math.sin(fi0)) / n;
|
4718 |
+
return {
|
4719 |
+
x: ro * Math.sin(theta) * this.radius,
|
4720 |
+
y: -(ro0 - ro * Math.cos(theta)) * this.radius
|
4721 |
+
};
|
4722 |
+
},
|
4723 |
+
aea_inv: function(xCoord, yCoord, c) {
|
4724 |
+
var x = xCoord / this.radius, y = yCoord / this.radius, fi0 = 0, lambda0 = c * this.radDeg, fi1 = 29.5 * this.radDeg, fi2 = 45.5 * this.radDeg, n = (Math.sin(fi1) + Math.sin(fi2)) / 2, C = Math.cos(fi1) * Math.cos(fi1) + 2 * n * Math.sin(fi1), ro0 = Math.sqrt(C - 2 * n * Math.sin(fi0)) / n, ro = Math.sqrt(x * x + (ro0 - y) * (ro0 - y)), theta = Math.atan(x / (ro0 - y));
|
4725 |
+
return {
|
4726 |
+
lat: Math.asin((C - ro * ro * n * n) / (2 * n)) * this.degRad,
|
4727 |
+
lng: (lambda0 + theta / n) * this.degRad
|
4728 |
+
};
|
4729 |
+
},
|
4730 |
+
lcc: function(lat, lng, c) {
|
4731 |
+
var fi0 = 0, lambda0 = c * this.radDeg, lambda = lng * this.radDeg, fi1 = 33 * this.radDeg, fi2 = 45 * this.radDeg, fi = lat * this.radDeg, n = Math.log(Math.cos(fi1) * (1 / Math.cos(fi2))) / Math.log(Math.tan(Math.PI / 4 + fi2 / 2) * (1 / Math.tan(Math.PI / 4 + fi1 / 2))), F = Math.cos(fi1) * Math.pow(Math.tan(Math.PI / 4 + fi1 / 2), n) / n, ro = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi / 2), n), ro0 = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi0 / 2), n);
|
4732 |
+
return {
|
4733 |
+
x: ro * Math.sin(n * (lambda - lambda0)) * this.radius,
|
4734 |
+
y: -(ro0 - ro * Math.cos(n * (lambda - lambda0))) * this.radius
|
4735 |
+
};
|
4736 |
+
},
|
4737 |
+
lcc_inv: function(xCoord, yCoord, c) {
|
4738 |
+
var x = xCoord / this.radius, y = yCoord / this.radius, fi0 = 0, lambda0 = c * this.radDeg, fi1 = 33 * this.radDeg, fi2 = 45 * this.radDeg, n = Math.log(Math.cos(fi1) * (1 / Math.cos(fi2))) / Math.log(Math.tan(Math.PI / 4 + fi2 / 2) * (1 / Math.tan(Math.PI / 4 + fi1 / 2))), F = Math.cos(fi1) * Math.pow(Math.tan(Math.PI / 4 + fi1 / 2), n) / n, ro0 = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi0 / 2), n), ro = this.sgn(n) * Math.sqrt(x * x + (ro0 - y) * (ro0 - y)), theta = Math.atan(x / (ro0 - y));
|
4739 |
+
return {
|
4740 |
+
lat: (2 * Math.atan(Math.pow(F / ro, 1 / n)) - Math.PI / 2) * this.degRad,
|
4741 |
+
lng: (lambda0 + theta / n) * this.degRad
|
4742 |
+
};
|
4743 |
+
}
|
4744 |
+
}, jvm.MapObject = function() {}, jvm.MapObject.prototype.getLabelText = function(key) {
|
4745 |
+
var text;
|
4746 |
+
return text = this.config.label ? "function" == typeof this.config.label.render ? this.config.label.render(key) : key : null;
|
4747 |
+
}, jvm.MapObject.prototype.getLabelOffsets = function(key) {
|
4748 |
+
var offsets;
|
4749 |
+
return this.config.label && ("function" == typeof this.config.label.offsets ? offsets = this.config.label.offsets(key) : "object" == typeof this.config.label.offsets && (offsets = this.config.label.offsets[key])),
|
4750 |
+
offsets || [ 0, 0 ];
|
4751 |
+
}, jvm.MapObject.prototype.setHovered = function(isHovered) {
|
4752 |
+
this.isHovered !== isHovered && (this.isHovered = isHovered, this.shape.isHovered = isHovered,
|
4753 |
+
this.shape.updateStyle(), this.label && (this.label.isHovered = isHovered, this.label.updateStyle()));
|
4754 |
+
}, jvm.MapObject.prototype.setSelected = function(isSelected) {
|
4755 |
+
this.isSelected !== isSelected && (this.isSelected = isSelected, this.shape.isSelected = isSelected,
|
4756 |
+
this.shape.updateStyle(), this.label && (this.label.isSelected = isSelected, this.label.updateStyle()),
|
4757 |
+
jvm.$(this.shape).trigger("selected", [ isSelected ]));
|
4758 |
+
}, jvm.MapObject.prototype.setStyle = function() {
|
4759 |
+
this.shape.setStyle.apply(this.shape, arguments);
|
4760 |
+
}, jvm.MapObject.prototype.remove = function() {
|
4761 |
+
this.shape.remove(), this.label && this.label.remove();
|
4762 |
+
}, jvm.Region = function(config) {
|
4763 |
+
var bbox, text, offsets;
|
4764 |
+
this.config = config, this.map = this.config.map, this.shape = config.canvas.addPath({
|
4765 |
+
d: config.path,
|
4766 |
+
"data-code": config.code
|
4767 |
+
}, config.style, config.canvas.rootElement), this.shape.addClass("jvectormap-region jvectormap-element"),
|
4768 |
+
bbox = this.shape.getBBox(), text = this.getLabelText(config.code), this.config.label && text && (offsets = this.getLabelOffsets(config.code),
|
4769 |
+
this.labelX = bbox.x + bbox.width / 2 + offsets[0], this.labelY = bbox.y + bbox.height / 2 + offsets[1],
|
4770 |
+
this.label = config.canvas.addText({
|
4771 |
+
text: text,
|
4772 |
+
"text-anchor": "middle",
|
4773 |
+
"alignment-baseline": "central",
|
4774 |
+
x: this.labelX,
|
4775 |
+
y: this.labelY,
|
4776 |
+
"data-code": config.code
|
4777 |
+
}, config.labelStyle, config.labelsGroup), this.label.addClass("jvectormap-region jvectormap-element"));
|
4778 |
+
}, jvm.inherits(jvm.Region, jvm.MapObject), jvm.Region.prototype.updateLabelPosition = function() {
|
4779 |
+
this.label && this.label.set({
|
4780 |
+
x: this.labelX * this.map.scale + this.map.transX * this.map.scale,
|
4781 |
+
y: this.labelY * this.map.scale + this.map.transY * this.map.scale
|
4782 |
+
});
|
4783 |
+
}, jvm.Marker = function(config) {
|
4784 |
+
var text, offsets;
|
4785 |
+
this.config = config, this.map = this.config.map, this.isImage = !!this.config.style.initial.image,
|
4786 |
+
this.createShape(), text = this.getLabelText(config.index), this.config.label && text && (offsets = this.getLabelOffsets(config.code),
|
4787 |
+
this.labelX = (config.cx + offsets[0]) / this.map.scale - this.map.transX, this.labelY = (config.cy + offsets[1]) / this.map.scale - this.map.transY,
|
4788 |
+
console.log(this.labelX, this.labelY), this.label = config.canvas.addText({
|
4789 |
+
text: text,
|
4790 |
+
"data-index": config.index,
|
4791 |
+
dy: "0.6ex",
|
4792 |
+
x: this.labelX,
|
4793 |
+
y: this.labelY
|
4794 |
+
}, config.labelStyle, config.labelsGroup), this.label.addClass("jvectormap-marker jvectormap-element"));
|
4795 |
+
}, jvm.inherits(jvm.Marker, jvm.MapObject), jvm.Marker.prototype.createShape = function() {
|
4796 |
+
var that = this;
|
4797 |
+
this.shape && this.shape.remove(), this.shape = this.config.canvas[this.isImage ? "addImage" : "addCircle"]({
|
4798 |
+
"data-index": this.config.index,
|
4799 |
+
cx: this.config.cx,
|
4800 |
+
cy: this.config.cy
|
4801 |
+
}, this.config.style, this.config.group), this.shape.addClass("jvectormap-marker jvectormap-element"),
|
4802 |
+
this.isImage && jvm.$(this.shape.node).on("imageloaded", function() {
|
4803 |
+
that.updateLabelPosition();
|
4804 |
+
});
|
4805 |
+
}, jvm.Marker.prototype.updateLabelPosition = function() {
|
4806 |
+
this.label && this.label.set({
|
4807 |
+
x: this.labelX * this.map.scale + this.map.transX * this.map.scale + 5 + (this.isImage ? (this.shape.width || 0) / 2 : this.shape.properties.r),
|
4808 |
+
y: this.labelY * this.map.scale + this.map.transY * this.map.scale
|
4809 |
+
});
|
4810 |
+
}, jvm.Marker.prototype.setStyle = function(property) {
|
4811 |
+
var isImage;
|
4812 |
+
jvm.Marker.parentClass.prototype.setStyle.apply(this, arguments), "r" === property && this.updateLabelPosition(),
|
4813 |
+
isImage = !!this.shape.get("image"), isImage != this.isImage && (this.isImage = isImage,
|
4814 |
+
this.config.style = jvm.$.extend(!0, {}, this.shape.style), this.createShape());
|
4815 |
+
}, jvm.Map = function(params) {
|
4816 |
+
var e, map = this;
|
4817 |
+
if (this.params = jvm.$.extend(!0, {}, jvm.Map.defaultParams, params), !jvm.Map.maps[this.params.map]) throw new Error("Attempt to use map which was not loaded: " + this.params.map);
|
4818 |
+
this.mapData = jvm.Map.maps[this.params.map], this.markers = {}, this.regions = {},
|
4819 |
+
this.regionsColors = {}, this.regionsData = {}, this.container = jvm.$("<div>").addClass("jvectormap-container"),
|
4820 |
+
this.params.container && this.params.container.append(this.container), this.container.data("mapObject", this),
|
4821 |
+
this.defaultWidth = this.mapData.width, this.defaultHeight = this.mapData.height,
|
4822 |
+
this.setBackgroundColor(this.params.backgroundColor), this.onResize = function() {
|
4823 |
+
map.updateSize();
|
4824 |
+
}, jvm.$(window).resize(this.onResize);
|
4825 |
+
for (e in jvm.Map.apiEvents) this.params[e] && this.container.bind(jvm.Map.apiEvents[e] + ".jvectormap", this.params[e]);
|
4826 |
+
this.canvas = new jvm.VectorCanvas(this.container[0], this.width, this.height),
|
4827 |
+
("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch) && this.params.bindTouchEvents && this.bindContainerTouchEvents(),
|
4828 |
+
this.bindContainerEvents(), this.bindElementEvents(), this.createTip(), this.params.zoomButtons && this.bindZoomButtons(),
|
4829 |
+
this.createRegions(), this.createMarkers(this.params.markers || {}), this.updateSize(),
|
4830 |
+
this.params.focusOn && ("string" == typeof this.params.focusOn ? this.params.focusOn = {
|
4831 |
+
region: this.params.focusOn
|
4832 |
+
} : jvm.$.isArray(this.params.focusOn) && (this.params.focusOn = {
|
4833 |
+
regions: this.params.focusOn
|
4834 |
+
}), this.setFocus(this.params.focusOn)), this.params.selectedRegions && this.setSelectedRegions(this.params.selectedRegions),
|
4835 |
+
this.params.selectedMarkers && this.setSelectedMarkers(this.params.selectedMarkers),
|
4836 |
+
this.legendCntHorizontal = jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-h"),
|
4837 |
+
this.legendCntVertical = jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-v"),
|
4838 |
+
this.container.append(this.legendCntHorizontal), this.container.append(this.legendCntVertical),
|
4839 |
+
this.params.series && this.createSeries();
|
4840 |
+
}, jvm.Map.prototype = {
|
4841 |
+
transX: 0,
|
4842 |
+
transY: 0,
|
4843 |
+
scale: 1,
|
4844 |
+
baseTransX: 0,
|
4845 |
+
baseTransY: 0,
|
4846 |
+
baseScale: 1,
|
4847 |
+
width: 0,
|
4848 |
+
height: 0,
|
4849 |
+
setBackgroundColor: function(backgroundColor) {
|
4850 |
+
this.container.css("background-color", backgroundColor);
|
4851 |
+
},
|
4852 |
+
resize: function() {
|
4853 |
+
var curBaseScale = this.baseScale;
|
4854 |
+
this.width / this.height > this.defaultWidth / this.defaultHeight ? (this.baseScale = this.height / this.defaultHeight,
|
4855 |
+
this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale)) : (this.baseScale = this.width / this.defaultWidth,
|
4856 |
+
this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale)),
|
4857 |
+
this.scale *= this.baseScale / curBaseScale, this.transX *= this.baseScale / curBaseScale,
|
4858 |
+
this.transY *= this.baseScale / curBaseScale;
|
4859 |
+
},
|
4860 |
+
updateSize: function() {
|
4861 |
+
this.width = this.container.width(), this.height = this.container.height(), this.resize(),
|
4862 |
+
this.canvas.setSize(this.width, this.height), this.applyTransform();
|
4863 |
+
},
|
4864 |
+
reset: function() {
|
4865 |
+
var key, i;
|
4866 |
+
for (key in this.series) for (i = 0; i < this.series[key].length; i++) this.series[key][i].clear();
|
4867 |
+
this.scale = this.baseScale, this.transX = this.baseTransX, this.transY = this.baseTransY,
|
4868 |
+
this.applyTransform();
|
4869 |
+
},
|
4870 |
+
applyTransform: function() {
|
4871 |
+
var maxTransX, maxTransY, minTransX, minTransY;
|
4872 |
+
this.defaultWidth * this.scale <= this.width ? (maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale),
|
4873 |
+
minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale)) : (maxTransX = 0,
|
4874 |
+
minTransX = (this.width - this.defaultWidth * this.scale) / this.scale), this.defaultHeight * this.scale <= this.height ? (maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale),
|
4875 |
+
minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale)) : (maxTransY = 0,
|
4876 |
+
minTransY = (this.height - this.defaultHeight * this.scale) / this.scale), this.transY > maxTransY ? this.transY = maxTransY : this.transY < minTransY && (this.transY = minTransY),
|
4877 |
+
this.transX > maxTransX ? this.transX = maxTransX : this.transX < minTransX && (this.transX = minTransX),
|
4878 |
+
this.canvas.applyTransformParams(this.scale, this.transX, this.transY), this.markers && this.repositionMarkers(),
|
4879 |
+
this.repositionLabels(), this.container.trigger("viewportChange", [ this.scale / this.baseScale, this.transX, this.transY ]);
|
4880 |
+
},
|
4881 |
+
bindContainerEvents: function() {
|
4882 |
+
var oldPageX, oldPageY, mouseDown = !1, map = this;
|
4883 |
+
this.params.panOnDrag && (this.container.mousemove(function(e) {
|
4884 |
+
return mouseDown && (map.transX -= (oldPageX - e.pageX) / map.scale, map.transY -= (oldPageY - e.pageY) / map.scale,
|
4885 |
+
map.applyTransform(), oldPageX = e.pageX, oldPageY = e.pageY), !1;
|
4886 |
+
}).mousedown(function(e) {
|
4887 |
+
return mouseDown = !0, oldPageX = e.pageX, oldPageY = e.pageY, !1;
|
4888 |
+
}), this.onContainerMouseUp = function() {
|
4889 |
+
mouseDown = !1;
|
4890 |
+
}, jvm.$("body").mouseup(this.onContainerMouseUp)), this.params.zoomOnScroll && this.container.mousewheel(function(event) {
|
4891 |
+
var offset = jvm.$(map.container).offset(), centerX = event.pageX - offset.left, centerY = event.pageY - offset.top, zoomStep = Math.pow(1.003, event.deltaY);
|
4892 |
+
map.tip.hide(), map.setScale(map.scale * zoomStep, centerX, centerY), event.preventDefault();
|
4893 |
+
});
|
4894 |
+
},
|
4895 |
+
bindContainerTouchEvents: function() {
|
4896 |
+
var touchStartScale, touchStartDistance, touchX, touchY, centerTouchX, centerTouchY, lastTouchesLength, map = this, handleTouchEvent = function(e) {
|
4897 |
+
var offset, scale, transXOld, transYOld, touches = e.originalEvent.touches;
|
4898 |
+
"touchstart" == e.type && (lastTouchesLength = 0), 1 == touches.length ? (1 == lastTouchesLength && (transXOld = map.transX,
|
4899 |
+
transYOld = map.transY, map.transX -= (touchX - touches[0].pageX) / map.scale, map.transY -= (touchY - touches[0].pageY) / map.scale,
|
4900 |
+
map.applyTransform(), map.tip.hide(), (transXOld != map.transX || transYOld != map.transY) && e.preventDefault()),
|
4901 |
+
touchX = touches[0].pageX, touchY = touches[0].pageY) : 2 == touches.length && (2 == lastTouchesLength ? (scale = Math.sqrt(Math.pow(touches[0].pageX - touches[1].pageX, 2) + Math.pow(touches[0].pageY - touches[1].pageY, 2)) / touchStartDistance,
|
4902 |
+
map.setScale(touchStartScale * scale, centerTouchX, centerTouchY), map.tip.hide(),
|
4903 |
+
e.preventDefault()) : (offset = jvm.$(map.container).offset(), centerTouchX = touches[0].pageX > touches[1].pageX ? touches[1].pageX + (touches[0].pageX - touches[1].pageX) / 2 : touches[0].pageX + (touches[1].pageX - touches[0].pageX) / 2,
|
4904 |
+
centerTouchY = touches[0].pageY > touches[1].pageY ? touches[1].pageY + (touches[0].pageY - touches[1].pageY) / 2 : touches[0].pageY + (touches[1].pageY - touches[0].pageY) / 2,
|
4905 |
+
centerTouchX -= offset.left, centerTouchY -= offset.top, touchStartScale = map.scale,
|
4906 |
+
touchStartDistance = Math.sqrt(Math.pow(touches[0].pageX - touches[1].pageX, 2) + Math.pow(touches[0].pageY - touches[1].pageY, 2)))),
|
4907 |
+
lastTouchesLength = touches.length;
|
4908 |
+
};
|
4909 |
+
jvm.$(this.container).bind("touchstart", handleTouchEvent), jvm.$(this.container).bind("touchmove", handleTouchEvent);
|
4910 |
+
},
|
4911 |
+
bindElementEvents: function() {
|
4912 |
+
var mouseMoved, map = this;
|
4913 |
+
this.container.mousemove(function() {
|
4914 |
+
mouseMoved = !0;
|
4915 |
+
}), this.container.delegate("[class~='jvectormap-element']", "mouseover mouseout", function(e) {
|
4916 |
+
var baseVal = jvm.$(this).attr("class").baseVal || jvm.$(this).attr("class"), type = -1 === baseVal.indexOf("jvectormap-region") ? "marker" : "region", code = jvm.$(this).attr("region" == type ? "data-code" : "data-index"), element = "region" == type ? map.regions[code].element : map.markers[code].element, tipText = "region" == type ? map.mapData.paths[code].name : map.markers[code].config.name || "", tipShowEvent = jvm.$.Event(type + "TipShow.jvectormap"), overEvent = jvm.$.Event(type + "Over.jvectormap");
|
4917 |
+
"mouseover" == e.type ? (map.container.trigger(overEvent, [ code ]), overEvent.isDefaultPrevented() || element.setHovered(!0),
|
4918 |
+
map.tip.text(tipText), map.container.trigger(tipShowEvent, [ map.tip, code ]), tipShowEvent.isDefaultPrevented() || (map.tip.show(),
|
4919 |
+
map.tipWidth = map.tip.width(), map.tipHeight = map.tip.height())) : (element.setHovered(!1),
|
4920 |
+
map.tip.hide(), map.container.trigger(type + "Out.jvectormap", [ code ]));
|
4921 |
+
}), this.container.delegate("[class~='jvectormap-element']", "mousedown", function() {
|
4922 |
+
mouseMoved = !1;
|
4923 |
+
}), this.container.delegate("[class~='jvectormap-element']", "mouseup", function() {
|
4924 |
+
var baseVal = jvm.$(this).attr("class").baseVal ? jvm.$(this).attr("class").baseVal : jvm.$(this).attr("class"), type = -1 === baseVal.indexOf("jvectormap-region") ? "marker" : "region", code = jvm.$(this).attr("region" == type ? "data-code" : "data-index"), clickEvent = jvm.$.Event(type + "Click.jvectormap"), element = "region" == type ? map.regions[code].element : map.markers[code].element;
|
4925 |
+
mouseMoved || (map.container.trigger(clickEvent, [ code ]), ("region" === type && map.params.regionsSelectable || "marker" === type && map.params.markersSelectable) && (clickEvent.isDefaultPrevented() || (map.params[type + "sSelectableOne"] && map.clearSelected(type + "s"),
|
4926 |
+
element.setSelected(!element.isSelected))));
|
4927 |
+
});
|
4928 |
+
},
|
4929 |
+
bindZoomButtons: function() {
|
4930 |
+
var map = this;
|
4931 |
+
jvm.$("<div/>").addClass("jvectormap-zoomin").text("+").appendTo(this.container),
|
4932 |
+
jvm.$("<div/>").addClass("jvectormap-zoomout").html("−").appendTo(this.container),
|
4933 |
+
this.container.find(".jvectormap-zoomin").click(function() {
|
4934 |
+
map.setScale(map.scale * map.params.zoomStep, map.width / 2, map.height / 2, !1, map.params.zoomAnimate);
|
4935 |
+
}), this.container.find(".jvectormap-zoomout").click(function() {
|
4936 |
+
map.setScale(map.scale / map.params.zoomStep, map.width / 2, map.height / 2, !1, map.params.zoomAnimate);
|
4937 |
+
});
|
4938 |
+
},
|
4939 |
+
createTip: function() {
|
4940 |
+
var map = this;
|
4941 |
+
this.tip = jvm.$("<div/>").addClass("jvectormap-tip").appendTo(jvm.$("body")), this.container.mousemove(function(e) {
|
4942 |
+
var left = e.pageX - 15 - map.tipWidth, top = e.pageY - 15 - map.tipHeight;
|
4943 |
+
5 > left && (left = e.pageX + 15), 5 > top && (top = e.pageY + 15), map.tip.is(":visible") && map.tip.css({
|
4944 |
+
left: left,
|
4945 |
+
top: top
|
4946 |
+
});
|
4947 |
+
});
|
4948 |
+
},
|
4949 |
+
setScale: function(scale, anchorX, anchorY, isCentered, animate) {
|
4950 |
+
var interval, scaleStart, scaleDiff, transXStart, transXDiff, transYStart, transYDiff, transX, transY, viewportChangeEvent = jvm.$.Event("zoom.jvectormap"), that = this, i = 0, count = Math.abs(Math.round(60 * (scale - this.scale) / Math.max(scale, this.scale))), deferred = new jvm.$.Deferred();
|
4951 |
+
return scale > this.params.zoomMax * this.baseScale ? scale = this.params.zoomMax * this.baseScale : scale < this.params.zoomMin * this.baseScale && (scale = this.params.zoomMin * this.baseScale),
|
4952 |
+
"undefined" != typeof anchorX && "undefined" != typeof anchorY && (zoomStep = scale / this.scale,
|
4953 |
+
isCentered ? (transX = anchorX + this.defaultWidth * (this.width / (this.defaultWidth * scale)) / 2,
|
4954 |
+
transY = anchorY + this.defaultHeight * (this.height / (this.defaultHeight * scale)) / 2) : (transX = this.transX - (zoomStep - 1) / scale * anchorX,
|
4955 |
+
transY = this.transY - (zoomStep - 1) / scale * anchorY)), animate && count > 0 ? (scaleStart = this.scale,
|
4956 |
+
scaleDiff = (scale - scaleStart) / count, transXStart = this.transX * this.scale,
|
4957 |
+
transYStart = this.transY * this.scale, transXDiff = (transX * scale - transXStart) / count,
|
4958 |
+
transYDiff = (transY * scale - transYStart) / count, interval = setInterval(function() {
|
4959 |
+
i += 1, that.scale = scaleStart + scaleDiff * i, that.transX = (transXStart + transXDiff * i) / that.scale,
|
4960 |
+
that.transY = (transYStart + transYDiff * i) / that.scale, that.applyTransform(),
|
4961 |
+
i == count && (clearInterval(interval), that.container.trigger(viewportChangeEvent, [ scale / that.baseScale ]),
|
4962 |
+
deferred.resolve());
|
4963 |
+
}, 10)) : (this.transX = transX, this.transY = transY, this.scale = scale, this.applyTransform(),
|
4964 |
+
this.container.trigger(viewportChangeEvent, [ scale / this.baseScale ]), deferred.resolve()),
|
4965 |
+
deferred;
|
4966 |
+
},
|
4967 |
+
setFocus: function(config) {
|
4968 |
+
var bbox, itemBbox, newBbox, codes, i, point;
|
4969 |
+
if (config = config || {}, config.region ? codes = [ config.region ] : config.regions && (codes = config.regions),
|
4970 |
+
codes) {
|
4971 |
+
for (i = 0; i < codes.length; i++) this.regions[codes[i]] && (itemBbox = this.regions[codes[i]].element.shape.getBBox(),
|
4972 |
+
itemBbox && ("undefined" == typeof bbox ? bbox = itemBbox : (newBbox = {
|
4973 |
+
x: Math.min(bbox.x, itemBbox.x),
|
4974 |
+
y: Math.min(bbox.y, itemBbox.y),
|
4975 |
+
width: Math.max(bbox.x + bbox.width, itemBbox.x + itemBbox.width) - Math.min(bbox.x, itemBbox.x),
|
4976 |
+
height: Math.max(bbox.y + bbox.height, itemBbox.y + itemBbox.height) - Math.min(bbox.y, itemBbox.y)
|
4977 |
+
}, bbox = newBbox)));
|
4978 |
+
return this.setScale(Math.min(this.width / bbox.width, this.height / bbox.height), -(bbox.x + bbox.width / 2), -(bbox.y + bbox.height / 2), !0, config.animate);
|
4979 |
+
}
|
4980 |
+
return config.lat && config.lng ? (point = this.latLngToPoint(config.lat, config.lng),
|
4981 |
+
config.x = this.transX - point.x / this.scale, config.y = this.transY - point.y / this.scale,
|
4982 |
+
console.log(config.x, config.y)) : config.x && config.y && (config.x *= -this.defaultWidth,
|
4983 |
+
config.y *= -this.defaultHeight), this.setScale(config.scale * this.baseScale, config.x, config.y, !0, config.animate);
|
4984 |
+
},
|
4985 |
+
getSelected: function(type) {
|
4986 |
+
var key, selected = [];
|
4987 |
+
for (key in this[type]) this[type][key].element.isSelected && selected.push(key);
|
4988 |
+
return selected;
|
4989 |
+
},
|
4990 |
+
getSelectedRegions: function() {
|
4991 |
+
return this.getSelected("regions");
|
4992 |
+
},
|
4993 |
+
getSelectedMarkers: function() {
|
4994 |
+
return this.getSelected("markers");
|
4995 |
+
},
|
4996 |
+
setSelected: function(type, keys) {
|
4997 |
+
var i;
|
4998 |
+
if ("object" != typeof keys && (keys = [ keys ]), jvm.$.isArray(keys)) for (i = 0; i < keys.length; i++) this[type][keys[i]].element.setSelected(!0); else for (i in keys) this[type][i].element.setSelected(!!keys[i]);
|
4999 |
+
},
|
5000 |
+
setSelectedRegions: function(keys) {
|
5001 |
+
this.setSelected("regions", keys);
|
5002 |
+
},
|
5003 |
+
setSelectedMarkers: function(keys) {
|
5004 |
+
this.setSelected("markers", keys);
|
5005 |
+
},
|
5006 |
+
clearSelected: function(type) {
|
5007 |
+
var i, select = {}, selected = this.getSelected(type);
|
5008 |
+
for (i = 0; i < selected.length; i++) select[selected[i]] = !1;
|
5009 |
+
this.setSelected(type, select);
|
5010 |
+
},
|
5011 |
+
clearSelectedRegions: function() {
|
5012 |
+
this.clearSelected("regions");
|
5013 |
+
},
|
5014 |
+
clearSelectedMarkers: function() {
|
5015 |
+
this.clearSelected("markers");
|
5016 |
+
},
|
5017 |
+
getMapObject: function() {
|
5018 |
+
return this;
|
5019 |
+
},
|
5020 |
+
getRegionName: function(code) {
|
5021 |
+
return this.mapData.paths[code].name;
|
5022 |
+
},
|
5023 |
+
createRegions: function() {
|
5024 |
+
var key, region, map = this;
|
5025 |
+
this.regionLabelsGroup = this.regionLabelsGroup || this.canvas.addGroup();
|
5026 |
+
for (key in this.mapData.paths) region = new jvm.Region({
|
5027 |
+
map: this,
|
5028 |
+
path: this.mapData.paths[key].path,
|
5029 |
+
code: key,
|
5030 |
+
style: jvm.$.extend(!0, {}, this.params.regionStyle),
|
5031 |
+
labelStyle: jvm.$.extend(!0, {}, this.params.regionLabelStyle),
|
5032 |
+
canvas: this.canvas,
|
5033 |
+
labelsGroup: this.regionLabelsGroup,
|
5034 |
+
label: "vml" != this.canvas.mode ? this.params.labels && this.params.labels.regions : null
|
5035 |
+
}), jvm.$(region.shape).bind("selected", function(e, isSelected) {
|
5036 |
+
map.container.trigger("regionSelected.jvectormap", [ jvm.$(this.node).attr("data-code"), isSelected, map.getSelectedRegions() ]);
|
5037 |
+
}), this.regions[key] = {
|
5038 |
+
element: region,
|
5039 |
+
config: this.mapData.paths[key]
|
5040 |
+
};
|
5041 |
+
},
|
5042 |
+
createMarkers: function(markers) {
|
5043 |
+
var i, marker, point, markerConfig, markersArray, map = this;
|
5044 |
+
if (this.markersGroup = this.markersGroup || this.canvas.addGroup(), this.markerLabelsGroup = this.markerLabelsGroup || this.canvas.addGroup(),
|
5045 |
+
jvm.$.isArray(markers)) for (markersArray = markers.slice(), markers = {}, i = 0; i < markersArray.length; i++) markers[i] = markersArray[i];
|
5046 |
+
for (i in markers) markerConfig = markers[i] instanceof Array ? {
|
5047 |
+
latLng: markers[i]
|
5048 |
+
} : markers[i], point = this.getMarkerPosition(markerConfig), point !== !1 && (marker = new jvm.Marker({
|
5049 |
+
map: this,
|
5050 |
+
style: jvm.$.extend(!0, {}, this.params.markerStyle, {
|
5051 |
+
initial: markerConfig.style || {}
|
5052 |
+
}),
|
5053 |
+
labelStyle: jvm.$.extend(!0, {}, this.params.markerLabelStyle),
|
5054 |
+
index: i,
|
5055 |
+
cx: point.x,
|
5056 |
+
cy: point.y,
|
5057 |
+
group: this.markersGroup,
|
5058 |
+
canvas: this.canvas,
|
5059 |
+
labelsGroup: this.markerLabelsGroup,
|
5060 |
+
label: "vml" != this.canvas.mode ? this.params.labels && this.params.labels.markers : null
|
5061 |
+
}), jvm.$(marker.shape).bind("selected", function(e, isSelected) {
|
5062 |
+
map.container.trigger("markerSelected.jvectormap", [ jvm.$(this.node).attr("data-index"), isSelected, map.getSelectedMarkers() ]);
|
5063 |
+
}), this.markers[i] && this.removeMarkers([ i ]), this.markers[i] = {
|
5064 |
+
element: marker,
|
5065 |
+
config: markerConfig
|
5066 |
+
});
|
5067 |
+
},
|
5068 |
+
repositionMarkers: function() {
|
5069 |
+
var i, point;
|
5070 |
+
for (i in this.markers) point = this.getMarkerPosition(this.markers[i].config),
|
5071 |
+
point !== !1 && this.markers[i].element.setStyle({
|
5072 |
+
cx: point.x,
|
5073 |
+
cy: point.y
|
5074 |
+
});
|
5075 |
+
},
|
5076 |
+
repositionLabels: function() {
|
5077 |
+
var key;
|
5078 |
+
for (key in this.regions) this.regions[key].element.updateLabelPosition();
|
5079 |
+
for (key in this.markers) this.markers[key].element.updateLabelPosition();
|
5080 |
+
},
|
5081 |
+
getMarkerPosition: function(markerConfig) {
|
5082 |
+
return jvm.Map.maps[this.params.map].projection ? this.latLngToPoint.apply(this, markerConfig.latLng || [ 0, 0 ]) : {
|
5083 |
+
x: markerConfig.coords[0] * this.scale + this.transX * this.scale,
|
5084 |
+
y: markerConfig.coords[1] * this.scale + this.transY * this.scale
|
5085 |
+
};
|
5086 |
+
},
|
5087 |
+
addMarker: function(key, marker, seriesData) {
|
5088 |
+
var values, i, markers = {}, data = [], seriesData = seriesData || [];
|
5089 |
+
for (markers[key] = marker, i = 0; i < seriesData.length; i++) values = {}, values[key] = seriesData[i],
|
5090 |
+
data.push(values);
|
5091 |
+
this.addMarkers(markers, data);
|
5092 |
+
},
|
5093 |
+
addMarkers: function(markers, seriesData) {
|
5094 |
+
var i;
|
5095 |
+
for (seriesData = seriesData || [], this.createMarkers(markers), i = 0; i < seriesData.length; i++) this.series.markers[i].setValues(seriesData[i] || {});
|
5096 |
+
},
|
5097 |
+
removeMarkers: function(markers) {
|
5098 |
+
var i;
|
5099 |
+
for (i = 0; i < markers.length; i++) this.markers[markers[i]].element.remove(),
|
5100 |
+
delete this.markers[markers[i]];
|
5101 |
+
},
|
5102 |
+
removeAllMarkers: function() {
|
5103 |
+
var i, markers = [];
|
5104 |
+
for (i in this.markers) markers.push(i);
|
5105 |
+
this.removeMarkers(markers);
|
5106 |
+
},
|
5107 |
+
latLngToPoint: function(lat, lng) {
|
5108 |
+
var point, inset, bbox, proj = jvm.Map.maps[this.params.map].projection, centralMeridian = proj.centralMeridian;
|
5109 |
+
return -180 + centralMeridian > lng && (lng += 360), point = jvm.Proj[proj.type](lat, lng, centralMeridian),
|
5110 |
+
inset = this.getInsetForPoint(point.x, point.y), inset ? (bbox = inset.bbox, point.x = (point.x - bbox[0].x) / (bbox[1].x - bbox[0].x) * inset.width * this.scale,
|
5111 |
+
point.y = (point.y - bbox[0].y) / (bbox[1].y - bbox[0].y) * inset.height * this.scale,
|
5112 |
+
{
|
5113 |
+
x: point.x + this.transX * this.scale + inset.left * this.scale,
|
5114 |
+
y: point.y + this.transY * this.scale + inset.top * this.scale
|
5115 |
+
}) : !1;
|
5116 |
+
},
|
5117 |
+
pointToLatLng: function(x, y) {
|
5118 |
+
var i, inset, bbox, nx, ny, proj = jvm.Map.maps[this.params.map].projection, centralMeridian = proj.centralMeridian, insets = jvm.Map.maps[this.params.map].insets;
|
5119 |
+
for (i = 0; i < insets.length; i++) if (inset = insets[i], bbox = inset.bbox, nx = x - (this.transX * this.scale + inset.left * this.scale),
|
5120 |
+
ny = y - (this.transY * this.scale + inset.top * this.scale), nx = nx / (inset.width * this.scale) * (bbox[1].x - bbox[0].x) + bbox[0].x,
|
5121 |
+
ny = ny / (inset.height * this.scale) * (bbox[1].y - bbox[0].y) + bbox[0].y, nx > bbox[0].x && nx < bbox[1].x && ny > bbox[0].y && ny < bbox[1].y) return jvm.Proj[proj.type + "_inv"](nx, -ny, centralMeridian);
|
5122 |
+
return !1;
|
5123 |
+
},
|
5124 |
+
getInsetForPoint: function(x, y) {
|
5125 |
+
var i, bbox, insets = jvm.Map.maps[this.params.map].insets;
|
5126 |
+
for (i = 0; i < insets.length; i++) if (bbox = insets[i].bbox, x > bbox[0].x && x < bbox[1].x && y > bbox[0].y && y < bbox[1].y) return insets[i];
|
5127 |
+
},
|
5128 |
+
createSeries: function() {
|
5129 |
+
var i, key;
|
5130 |
+
this.series = {
|
5131 |
+
markers: [],
|
5132 |
+
regions: []
|
5133 |
+
};
|
5134 |
+
for (key in this.params.series) for (i = 0; i < this.params.series[key].length; i++) this.series[key][i] = new jvm.DataSeries(this.params.series[key][i], this[key], this);
|
5135 |
+
},
|
5136 |
+
remove: function() {
|
5137 |
+
this.tip.remove(), this.container.remove(), jvm.$(window).unbind("resize", this.onResize),
|
5138 |
+
jvm.$("body").unbind("mouseup", this.onContainerMouseUp);
|
5139 |
+
}
|
5140 |
+
}, jvm.Map.maps = {}, jvm.Map.defaultParams = {
|
5141 |
+
map: "world_mill_en",
|
5142 |
+
backgroundColor: "#505050",
|
5143 |
+
zoomButtons: !0,
|
5144 |
+
zoomOnScroll: !0,
|
5145 |
+
panOnDrag: !0,
|
5146 |
+
zoomMax: 8,
|
5147 |
+
zoomMin: 1,
|
5148 |
+
zoomStep: 1.6,
|
5149 |
+
zoomAnimate: !0,
|
5150 |
+
regionsSelectable: !1,
|
5151 |
+
markersSelectable: !1,
|
5152 |
+
bindTouchEvents: !0,
|
5153 |
+
regionStyle: {
|
5154 |
+
initial: {
|
5155 |
+
fill: "white",
|
5156 |
+
"fill-opacity": 1,
|
5157 |
+
stroke: "none",
|
5158 |
+
"stroke-width": 0,
|
5159 |
+
"stroke-opacity": 1
|
5160 |
+
},
|
5161 |
+
hover: {
|
5162 |
+
"fill-opacity": .8,
|
5163 |
+
cursor: "pointer"
|
5164 |
+
},
|
5165 |
+
selected: {
|
5166 |
+
fill: "yellow"
|
5167 |
+
},
|
5168 |
+
selectedHover: {}
|
5169 |
+
},
|
5170 |
+
regionLabelStyle: {
|
5171 |
+
initial: {
|
5172 |
+
"font-family": "Verdana",
|
5173 |
+
"font-size": "12",
|
5174 |
+
"font-weight": "bold",
|
5175 |
+
cursor: "default",
|
5176 |
+
fill: "black"
|
5177 |
+
},
|
5178 |
+
hover: {
|
5179 |
+
cursor: "pointer"
|
5180 |
+
}
|
5181 |
+
},
|
5182 |
+
markerStyle: {
|
5183 |
+
initial: {
|
5184 |
+
fill: "grey",
|
5185 |
+
stroke: "#505050",
|
5186 |
+
"fill-opacity": 1,
|
5187 |
+
"stroke-width": 1,
|
5188 |
+
"stroke-opacity": 1,
|
5189 |
+
r: 5
|
5190 |
+
},
|
5191 |
+
hover: {
|
5192 |
+
stroke: "black",
|
5193 |
+
"stroke-width": 2,
|
5194 |
+
cursor: "pointer"
|
5195 |
+
},
|
5196 |
+
selected: {
|
5197 |
+
fill: "blue"
|
5198 |
+
},
|
5199 |
+
selectedHover: {}
|
5200 |
+
},
|
5201 |
+
markerLabelStyle: {
|
5202 |
+
initial: {
|
5203 |
+
"font-family": "Verdana",
|
5204 |
+
"font-size": "12",
|
5205 |
+
"font-weight": "bold",
|
5206 |
+
cursor: "default",
|
5207 |
+
fill: "black"
|
5208 |
+
},
|
5209 |
+
hover: {
|
5210 |
+
cursor: "pointer"
|
5211 |
+
}
|
5212 |
+
}
|
5213 |
+
}, jvm.Map.apiEvents = {
|
5214 |
+
onRegionTipShow: "regionTipShow",
|
5215 |
+
onRegionOver: "regionOver",
|
5216 |
+
onRegionOut: "regionOut",
|
5217 |
+
onRegionClick: "regionClick",
|
5218 |
+
onRegionSelected: "regionSelected",
|
5219 |
+
onMarkerTipShow: "markerTipShow",
|
5220 |
+
onMarkerOver: "markerOver",
|
5221 |
+
onMarkerOut: "markerOut",
|
5222 |
+
onMarkerClick: "markerClick",
|
5223 |
+
onMarkerSelected: "markerSelected",
|
5224 |
+
onViewportChange: "viewportChange"
|
5225 |
+
};
|
5226 |
+
|
5227 |
+
jQuery.fn.vectorMap("addMap", "world_mill_en", {
|
5228 |
+
insets: [ {
|
5229 |
+
width: 900,
|
5230 |
+
top: 0,
|
5231 |
+
height: 440.70631074413296,
|
5232 |
+
bbox: [ {
|
5233 |
+
y: -12671671.123330014,
|
5234 |
+
x: -20004297.151525836
|
5235 |
+
}, {
|
5236 |
+
y: 6930392.025135122,
|
5237 |
+
x: 20026572.39474939
|
5238 |
+
} ],
|
5239 |
+
left: 0
|
5240 |
+
} ],
|
5241 |
+
paths: {
|
5242 |
+
BD: {
|
5243 |
+
path: "M651.84,230.21l-0.6,-2.0l-1.36,-1.71l-2.31,-0.11l-0.41,0.48l0.2,0.94l-0.53,0.99l-0.72,-0.36l-0.68,0.35l-1.2,-0.36l-0.37,-2.0l-0.81,-1.86l0.39,-1.46l-0.22,-0.47l-1.14,-0.53l0.29,-0.5l1.48,-0.94l0.03,-0.65l-1.55,-1.22l0.55,-1.14l1.61,0.94l1.04,0.15l0.18,1.54l0.34,0.35l5.64,0.63l-0.84,1.64l-1.22,0.34l-0.77,1.51l0.07,0.47l1.37,1.37l0.67,-0.19l0.42,-1.39l1.21,3.84l-0.03,1.21l-0.33,-0.15l-0.4,0.28Z",
|
5244 |
+
name: "Bangladesh"
|
5245 |
+
},
|
5246 |
+
BE: {
|
5247 |
+
path: "M429.29,144.05l1.91,0.24l2.1,-0.63l2.63,1.99l-0.21,1.66l-0.69,0.4l-0.18,1.2l-1.66,-1.13l-1.39,0.15l-2.73,-2.7l-1.17,-0.18l-0.16,-0.52l1.54,-0.5Z",
|
5248 |
+
name: "Belgium"
|
5249 |
+
},
|
5250 |
+
BF: {
|
5251 |
+
path: "M421.42,247.64l-0.11,0.95l0.34,1.16l1.4,1.71l0.07,1.1l0.32,0.37l2.55,0.51l-0.04,1.28l-0.38,0.53l-1.07,0.21l-0.72,1.18l-0.63,0.21l-3.22,-0.25l-0.94,0.39l-5.4,-0.05l-0.39,0.38l0.16,2.73l-1.23,-0.43l-1.17,0.1l-0.89,0.57l-2.27,-1.72l-0.13,-1.11l0.61,-0.96l0.02,-0.93l1.87,-1.98l0.44,-1.81l0.43,-0.39l1.28,0.26l1.05,-0.52l0.47,-0.73l1.84,-1.09l0.55,-0.83l2.2,-1.0l1.15,-0.3l0.72,0.45l1.13,-0.01Z",
|
5252 |
+
name: "Burkina Faso"
|
5253 |
+
},
|
5254 |
+
BG: {
|
5255 |
+
path: "M491.65,168.18l-0.86,0.88l-0.91,2.17l0.48,1.34l-1.6,-0.24l-2.55,0.95l-0.28,1.51l-1.8,0.22l-2.0,-1.0l-1.92,0.79l-1.42,-0.07l-0.15,-1.63l-1.05,-0.97l0.0,-0.8l1.2,-1.57l0.01,-0.56l-1.14,-1.23l-0.05,-0.94l0.88,0.97l0.88,-0.2l1.91,0.47l3.68,0.16l1.42,-0.81l2.72,-0.66l2.55,1.24Z",
|
5256 |
+
name: "Bulgaria"
|
5257 |
+
},
|
5258 |
+
BA: {
|
5259 |
+
path: "M463.49,163.65l2.1,0.5l1.72,-0.03l1.52,0.68l-0.36,0.78l0.08,0.45l1.04,1.02l-0.25,0.98l-1.81,1.15l-0.38,1.38l-1.67,-0.87l-0.89,-1.2l-2.11,-1.83l-1.63,-2.22l0.23,-0.57l0.48,0.38l0.55,-0.06l0.43,-0.51l0.94,-0.06Z",
|
5260 |
+
name: "Bosnia and Herz."
|
5261 |
+
},
|
5262 |
+
BN: {
|
5263 |
+
path: "M707.48,273.58l0.68,-0.65l1.41,-0.91l-0.15,1.63l-0.81,-0.05l-0.61,0.58l-0.53,-0.6Z",
|
5264 |
+
name: "Brunei"
|
5265 |
+
},
|
5266 |
+
BO: {
|
5267 |
+
path: "M263.83,340.69l-3.09,-0.23l-0.38,0.23l-0.7,1.52l-1.31,-1.53l-3.28,-0.64l-2.37,2.4l-1.31,0.26l-0.88,-3.26l-1.3,-2.86l0.74,-2.37l-0.13,-0.43l-1.2,-1.01l-0.37,-1.89l-1.08,-1.55l1.45,-2.56l-0.96,-2.33l0.47,-1.06l-0.34,-0.73l0.91,-1.32l0.16,-3.84l0.5,-1.18l-1.81,-3.41l2.46,0.07l0.8,-0.85l3.4,-1.91l2.66,-0.35l-0.19,1.38l0.3,1.07l-0.05,1.97l2.72,2.27l2.88,0.49l0.89,0.86l1.79,0.58l0.98,0.7l1.71,0.05l1.17,0.61l0.6,2.7l-0.7,0.54l0.96,2.99l0.37,0.28l4.3,0.1l-0.25,1.2l0.27,1.02l1.43,0.9l0.5,1.35l-0.41,1.86l-0.65,1.08l0.12,1.35l-2.69,-1.65l-2.4,-0.03l-4.36,0.76l-1.49,2.5l-0.11,1.52l-0.75,2.37Z",
|
5268 |
+
name: "Bolivia"
|
5269 |
+
},
|
5270 |
+
JP: {
|
5271 |
+
path: "M781.12,166.87l1.81,0.68l1.62,-0.97l0.39,2.42l-3.35,0.75l-2.23,2.88l-3.63,-1.9l-0.56,0.2l-1.26,3.05l-2.16,0.03l-0.29,-2.51l1.08,-2.03l2.45,-0.16l0.37,-0.33l1.25,-5.94l2.47,2.71l2.03,1.12ZM773.56,187.34l-0.91,2.22l0.37,1.52l-1.14,1.75l-3.02,1.26l-4.58,0.27l-3.34,3.01l-1.25,-0.8l-0.09,-1.9l-0.46,-0.38l-4.35,0.62l-3.0,1.32l-2.85,0.05l-0.37,0.27l0.13,0.44l2.32,1.89l-1.54,4.34l-1.26,0.9l-0.79,-0.7l0.56,-2.27l-0.21,-0.45l-1.47,-0.75l-0.74,-1.4l2.12,-0.84l1.26,-1.7l2.45,-1.42l1.83,-1.91l4.78,-0.81l2.6,0.57l0.44,-0.21l2.39,-4.66l1.29,1.06l0.5,0.01l5.1,-4.02l1.69,-3.73l-0.38,-3.4l0.9,-1.61l2.14,-0.44l1.23,3.72l-0.07,2.18l-2.23,2.84l-0.04,3.16ZM757.78,196.26l0.19,0.56l-1.01,1.21l-1.16,-0.68l-1.28,0.65l-0.69,1.45l-1.02,-0.5l0.01,-0.93l1.14,-1.38l1.57,0.14l0.85,-0.98l1.4,0.46Z",
|
5272 |
+
name: "Japan"
|
5273 |
+
},
|
5274 |
+
BI: {
|
5275 |
+
path: "M495.45,295.49l-1.08,-2.99l1.14,-0.11l0.64,-1.19l0.76,0.09l0.65,1.83l-2.1,2.36Z",
|
5276 |
+
name: "Burundi"
|
5277 |
+
},
|
5278 |
+
BJ: {
|
5279 |
+
path: "M429.57,255.75l-0.05,0.8l0.5,1.34l-0.42,0.86l0.17,0.79l-1.81,2.12l-0.57,1.76l-0.08,5.42l-1.41,0.2l-0.48,-1.36l0.11,-5.71l-0.52,-0.7l-0.2,-1.35l-1.48,-1.48l0.21,-0.9l0.89,-0.43l0.42,-0.92l1.27,-0.36l1.22,-1.34l0.61,-0.0l1.62,1.24Z",
|
5280 |
+
name: "Benin"
|
5281 |
+
},
|
5282 |
+
BT: {
|
5283 |
+
path: "M650.32,213.86l0.84,0.71l-0.12,1.1l-3.76,-0.11l-1.57,0.4l-1.93,-0.87l1.48,-1.96l1.13,-0.57l1.63,0.57l1.33,0.08l0.99,0.65Z",
|
5284 |
+
name: "Bhutan"
|
5285 |
+
},
|
5286 |
+
JM: {
|
5287 |
+
path: "M228.38,239.28l-0.8,0.4l-2.26,-1.06l0.84,-0.23l2.14,0.3l1.17,0.56l-1.08,0.03Z",
|
5288 |
+
name: "Jamaica"
|
5289 |
+
},
|
5290 |
+
BW: {
|
5291 |
+
path: "M483.92,330.07l2.27,4.01l2.83,2.86l0.96,0.31l0.78,2.43l2.13,0.61l1.02,0.76l-3.0,1.64l-2.32,2.02l-1.54,2.69l-1.52,0.45l-0.64,1.94l-1.34,0.52l-1.85,-0.12l-1.21,-0.74l-1.35,-0.3l-1.22,0.62l-0.75,1.37l-2.31,1.9l-1.4,0.21l-0.35,-0.59l0.16,-1.75l-1.48,-2.54l-0.62,-0.43l-0.0,-7.1l2.08,-0.08l0.39,-0.4l0.07,-8.9l5.19,-0.93l0.8,0.89l0.51,0.07l1.5,-0.95l2.21,-0.49Z",
|
5292 |
+
name: "Botswana"
|
5293 |
+
},
|
5294 |
+
BR: {
|
5295 |
+
path: "M259.98,275.05l3.24,0.7l0.65,-0.53l4.55,-1.32l1.08,-1.06l-0.02,-0.63l0.55,-0.05l0.28,0.28l-0.26,0.87l0.22,0.48l0.73,0.32l0.4,0.81l-0.62,0.86l-0.4,2.13l0.82,2.56l1.69,1.43l1.43,0.2l3.17,-1.68l3.18,0.3l0.65,-0.75l-0.27,-0.92l1.9,-0.09l2.39,0.99l1.06,-0.61l0.84,0.78l1.2,-0.18l1.18,-1.06l0.84,-1.94l1.36,-2.11l0.37,-0.05l1.89,5.45l1.33,0.59l0.05,1.28l-1.77,1.94l0.02,0.56l1.02,0.87l4.07,0.36l0.08,2.16l0.66,0.29l1.74,-1.5l6.97,2.32l1.02,1.22l-0.35,1.18l0.49,0.5l2.81,-0.74l4.77,1.3l3.75,-0.08l3.57,2.0l3.29,2.86l1.93,0.72l2.12,0.12l0.71,0.62l1.21,4.51l-0.95,3.98l-4.72,5.06l-1.64,2.92l-1.72,2.05l-0.8,0.3l-0.72,2.03l0.18,4.75l-0.94,5.53l-0.81,1.13l-0.43,3.36l-2.55,3.5l-0.4,2.51l-1.86,1.04l-0.67,1.53l-2.54,0.01l-3.94,1.01l-1.83,1.2l-2.87,0.82l-3.03,2.19l-2.2,2.83l-0.36,2.0l0.4,1.58l-0.44,2.6l-0.51,1.2l-1.77,1.54l-2.75,4.78l-3.83,3.42l-1.24,2.74l-1.18,1.15l-0.36,-0.83l0.95,-1.14l0.01,-0.5l-1.52,-1.97l-4.56,-3.32l-1.03,-0.0l-2.38,-2.02l-0.81,-0.0l5.34,-5.45l3.77,-2.58l0.22,-2.46l-1.35,-1.81l-0.91,0.07l0.58,-2.33l0.01,-1.54l-1.11,-0.83l-1.75,0.3l-0.44,-3.11l-0.52,-0.95l-1.88,-0.88l-1.24,0.47l-2.17,-0.41l0.15,-3.21l-0.62,-1.34l0.66,-0.73l-0.22,-1.34l0.66,-1.13l0.44,-2.04l-0.61,-1.83l-1.4,-0.86l-0.2,-0.75l0.34,-1.39l-0.38,-0.5l-4.52,-0.1l-0.72,-2.22l0.59,-0.42l-0.03,-1.1l-0.5,-0.87l-0.32,-1.7l-1.45,-0.76l-1.63,-0.02l-1.05,-0.72l-1.6,-0.48l-1.13,-0.99l-2.69,-0.4l-2.47,-2.06l0.13,-4.35l-0.45,-0.45l-3.46,0.5l-3.44,1.94l-0.6,0.74l-2.9,-0.17l-1.47,0.42l-0.72,-0.18l0.15,-3.52l-0.63,-0.34l-1.94,1.41l-1.87,-0.06l-0.83,-1.18l-1.37,-0.26l0.21,-1.01l-1.35,-1.49l-0.88,-1.91l0.56,-0.6l-0.0,-0.81l1.29,-0.62l0.22,-0.43l-0.22,-1.19l0.61,-0.91l0.15,-0.99l2.65,-1.58l1.99,-0.47l0.42,-0.36l2.06,0.11l0.42,-0.33l1.19,-8.0l-0.41,-1.56l-1.1,-1.0l0.01,-1.33l1.91,-0.42l0.08,-0.96l-0.33,-0.43l-1.14,-0.2l-0.02,-0.83l4.47,0.05l0.82,-0.67l0.82,1.81l0.8,0.07l1.15,1.1l2.26,-0.05l0.71,-0.83l2.78,-0.96l0.48,-1.13l1.6,-0.64l0.24,-0.47l-0.48,-0.82l-1.83,-0.19l-0.36,-3.22Z",
|
5296 |
+
name: "Brazil"
|
5297 |
+
},
|
5298 |
+
BS: {
|
5299 |
+
path: "M226.4,223.87l-0.48,-1.15l-0.84,-0.75l0.36,-1.11l0.95,1.95l0.01,1.06ZM225.56,216.43l-1.87,0.29l-0.04,-0.22l0.74,-0.14l1.17,0.06Z",
|
5300 |
+
name: "Bahamas"
|
5301 |
+
},
|
5302 |
+
BY: {
|
5303 |
+
path: "M493.84,128.32l0.29,0.7l0.49,0.23l1.19,-0.38l2.09,0.72l0.19,1.26l-0.45,1.24l1.57,2.26l0.89,0.59l0.17,0.81l1.58,0.56l0.4,0.5l-0.53,0.41l-1.87,-0.11l-0.73,0.38l-0.13,0.52l1.04,2.74l-1.91,0.26l-0.89,0.99l-0.11,1.18l-2.73,-0.04l-0.53,-0.62l-0.52,-0.08l-0.75,0.46l-0.91,-0.42l-1.92,-0.07l-2.75,-0.79l-2.6,-0.28l-2.0,0.07l-1.5,0.92l-0.67,0.07l-0.08,-1.22l-0.59,-1.19l1.36,-0.88l0.01,-1.35l-0.7,-1.41l-0.07,-1.0l2.16,-0.02l2.72,-1.3l0.75,-2.04l1.91,-1.04l0.2,-0.41l-0.19,-1.25l3.8,-1.78l2.3,0.77Z",
|
5304 |
+
name: "Belarus"
|
5305 |
+
},
|
5306 |
+
BZ: {
|
5307 |
+
path: "M198.03,244.38l0.1,-4.49l0.69,-0.06l0.74,-1.3l0.34,0.28l-0.4,1.3l0.17,0.58l-0.34,2.25l-1.3,1.42Z",
|
5308 |
+
name: "Belize"
|
5309 |
+
},
|
5310 |
+
RU: {
|
5311 |
+
path: "M491.55,115.25l2.55,-1.85l-0.01,-0.65l-2.2,-1.5l7.32,-6.76l1.03,-2.11l-0.13,-0.49l-3.46,-2.52l0.86,-2.7l-2.11,-2.81l1.56,-3.67l-2.77,-4.52l2.15,-2.99l-0.08,-0.55l-3.65,-2.73l0.3,-2.54l1.81,-0.37l4.26,-1.77l2.42,-1.45l4.06,2.61l6.79,1.04l9.34,4.85l1.78,1.88l0.14,2.46l-2.55,2.02l-3.9,1.06l-11.07,-3.14l-2.06,0.53l-0.13,0.7l3.94,2.94l0.31,5.86l0.26,0.36l5.14,2.24l0.58,-0.29l0.32,-1.94l-1.35,-1.78l1.13,-1.09l6.13,2.42l2.11,-0.98l0.18,-0.56l-1.51,-2.67l5.41,-3.76l2.07,0.22l2.26,1.41l0.57,-0.16l1.46,-2.87l-0.05,-0.44l-1.92,-2.32l1.12,-2.32l-1.32,-2.27l5.87,1.16l1.04,1.75l-2.59,0.43l-0.33,0.4l0.02,2.36l2.46,1.83l3.87,-0.91l0.86,-2.8l13.69,-5.65l0.99,0.11l-1.92,2.06l0.23,0.67l3.11,0.45l2.0,-1.48l4.56,-0.12l3.64,-1.73l2.65,2.44l0.56,-0.01l2.85,-2.88l-0.01,-0.57l-2.35,-2.29l0.9,-1.01l7.14,1.3l3.41,1.36l9.05,4.97l0.51,-0.11l1.67,-2.27l-0.05,-0.53l-2.43,-2.21l-0.06,-0.78l-0.34,-0.36l-2.52,-0.36l0.64,-1.93l-1.32,-3.46l-0.06,-1.21l4.48,-4.06l1.69,-4.29l1.6,-0.81l6.23,1.18l0.44,2.21l-2.29,3.64l0.06,0.5l1.47,1.39l0.76,3.0l-0.56,6.03l2.69,2.82l-0.96,2.57l-4.86,5.95l0.23,0.64l2.86,0.61l0.42,-0.17l0.93,-1.4l2.64,-1.03l0.87,-2.24l2.09,-1.96l0.07,-0.5l-1.36,-2.28l1.09,-2.69l-0.32,-0.55l-2.47,-0.33l-0.5,-2.06l1.94,-4.38l-0.06,-0.42l-2.96,-3.4l4.12,-2.88l0.16,-0.4l-0.51,-2.93l0.54,-0.05l1.13,2.25l-0.96,4.35l0.27,0.47l2.68,0.84l0.5,-0.51l-1.02,-2.99l3.79,-1.66l5.01,-0.24l4.53,2.61l0.48,-0.06l0.07,-0.48l-2.18,-3.82l-0.23,-4.67l3.98,-0.9l5.97,0.21l5.49,-0.64l0.27,-0.65l-1.83,-2.31l2.56,-2.9l2.87,-0.17l4.8,-2.47l6.54,-0.67l1.03,-1.42l6.25,-0.45l2.32,1.11l5.53,-2.7l4.5,0.08l0.39,-0.28l0.66,-2.15l2.26,-2.12l5.69,-2.11l3.21,1.29l-2.46,0.94l-0.25,0.42l0.34,0.35l5.41,0.77l0.61,2.33l0.58,0.25l2.2,-1.22l7.13,0.07l5.51,2.47l1.79,1.72l-0.53,2.24l-9.16,4.15l-1.97,1.52l0.16,0.71l6.77,1.91l2.16,-0.78l1.13,2.74l0.67,0.11l1.01,-1.15l3.81,-0.73l7.7,0.77l0.54,1.99l0.36,0.29l10.47,0.71l0.43,-0.38l0.13,-3.23l4.87,0.78l3.95,-0.02l3.83,2.4l1.03,2.71l-1.35,1.79l0.02,0.5l3.15,3.64l4.07,1.96l0.53,-0.18l2.23,-4.47l3.95,1.93l4.16,-1.21l4.73,1.39l2.05,-1.26l3.94,0.62l0.43,-0.55l-1.68,-4.02l2.89,-1.8l22.31,3.03l2.16,2.75l6.55,3.51l10.29,-0.81l4.82,0.73l1.85,1.66l-0.29,3.08l0.25,0.41l3.08,1.26l3.56,-0.88l4.35,-0.11l4.8,0.87l4.57,-0.47l4.23,3.79l0.43,0.07l3.1,-1.4l0.16,-0.6l-1.88,-2.62l0.85,-1.52l7.71,1.21l5.22,-0.26l7.09,2.09l9.59,5.22l6.35,4.11l-0.2,2.38l1.88,1.41l0.6,-0.42l-0.48,-2.53l6.15,0.57l4.4,3.51l-1.97,1.43l-4.0,0.41l-0.36,0.39l-0.06,3.79l-0.74,0.62l-2.07,-0.11l-1.91,-1.39l-3.14,-1.11l-0.78,-1.85l-2.72,-0.68l-2.63,0.49l-1.04,-1.1l0.46,-1.31l-0.5,-0.51l-3.0,0.98l-0.22,0.58l0.99,1.7l-1.21,1.48l-3.04,1.68l-3.12,-0.28l-0.4,0.23l0.09,0.46l2.2,2.09l1.46,3.2l1.15,1.1l0.24,1.33l-0.42,0.67l-4.63,-0.77l-6.96,2.9l-2.19,0.44l-7.6,5.06l-0.84,1.45l-3.61,-2.37l-6.24,2.82l-0.94,-1.15l-0.53,-0.08l-2.28,1.52l-3.2,-0.49l-0.44,0.27l-0.78,2.37l-3.05,3.78l0.09,1.47l0.29,0.36l2.54,0.72l-0.29,4.53l-1.97,0.11l-0.35,0.26l-1.07,2.94l0.8,1.45l-3.91,1.58l-1.05,3.95l-3.48,0.77l-0.3,0.3l-0.72,3.29l-3.09,2.65l-0.7,-1.74l-2.44,-12.44l1.16,-4.71l2.04,-2.06l0.22,-1.64l3.8,-0.86l4.46,-4.61l4.28,-3.81l4.48,-3.01l2.17,-5.63l-0.42,-0.54l-3.04,0.33l-1.77,3.31l-5.86,3.86l-1.86,-4.25l-0.45,-0.23l-6.46,1.3l-6.47,6.44l-0.01,0.55l1.58,1.74l-8.24,1.17l0.15,-2.2l-0.34,-0.42l-3.89,-0.56l-3.25,1.81l-7.62,-0.62l-8.45,1.19l-17.71,15.41l0.22,0.7l3.74,0.41l1.36,2.17l2.43,0.76l1.88,-1.68l2.4,0.2l3.4,3.54l0.08,2.6l-1.95,3.42l-0.21,3.9l-1.1,5.06l-3.71,4.54l-0.87,2.21l-8.29,8.89l-3.19,1.7l-1.32,0.03l-1.45,-1.36l-0.49,-0.04l-2.27,1.5l0.41,-3.65l-0.59,-2.47l1.75,-0.89l2.91,0.53l0.42,-0.2l1.68,-3.03l0.87,-3.46l0.97,-1.18l1.32,-2.88l-0.45,-0.56l-4.14,0.95l-2.19,1.25l-3.41,-0.0l-1.06,-2.93l-2.97,-2.3l-4.28,-1.06l-1.75,-5.07l-2.66,-5.01l-2.29,-1.29l-3.75,-1.01l-3.44,0.08l-3.18,0.62l-2.24,1.77l0.05,0.66l1.18,0.69l0.02,1.43l-1.33,1.05l-2.26,3.51l-0.04,1.43l-3.16,1.84l-2.82,-1.16l-3.01,0.23l-1.35,-1.07l-1.5,-0.35l-3.9,2.31l-3.22,0.52l-2.27,0.79l-3.05,-0.51l-2.21,0.03l-1.48,-1.6l-2.6,-1.63l-2.63,-0.43l-5.46,1.01l-3.23,-1.25l-0.72,-2.57l-5.2,-1.24l-2.75,-1.36l-0.5,0.12l-2.59,3.45l0.84,2.1l-2.06,1.93l-3.41,-0.77l-2.42,-0.12l-1.83,-1.54l-2.53,-0.05l-2.42,-0.98l-3.86,1.57l-4.72,2.78l-3.3,0.75l-1.55,-1.92l-3.0,0.41l-1.11,-1.33l-1.62,-0.59l-1.31,-1.94l-1.38,-0.6l-3.7,0.79l-3.31,-1.83l-0.51,0.11l-0.99,1.29l-5.29,-8.05l-2.96,-2.48l0.65,-0.77l0.01,-0.51l-0.5,-0.11l-6.2,3.21l-1.84,0.15l0.15,-1.39l-0.26,-0.42l-3.22,-1.17l-2.46,0.7l-0.69,-3.16l-0.32,-0.31l-4.5,-0.75l-2.47,1.47l-6.19,1.27l-1.29,0.86l-9.51,1.3l-1.15,1.17l-0.03,0.53l1.47,1.9l-1.89,0.69l-0.22,0.56l0.31,0.6l-2.11,1.44l0.03,0.68l3.75,2.12l-0.39,0.98l-3.23,-0.13l-0.86,0.86l-3.09,-1.59l-3.97,0.07l-2.66,1.35l-8.32,-3.56l-4.07,0.06l-5.39,3.68l-0.39,2.0l-2.03,-1.5l-0.59,0.13l-2.0,3.59l0.57,0.93l-1.28,2.16l0.06,0.48l2.13,2.17l1.95,0.04l1.37,1.82l-0.23,1.46l0.25,0.43l0.83,0.33l-0.8,1.31l-2.49,0.62l-2.49,3.2l0.0,0.49l2.17,2.78l-0.15,2.18l2.5,3.24l-1.58,1.59l-0.7,-0.13l-1.63,-1.72l-2.29,-0.84l-0.94,-1.31l-2.34,-0.63l-1.48,0.4l-0.43,-0.47l-3.51,-1.48l-5.76,-1.01l-0.45,0.19l-2.89,-2.34l-2.9,-1.2l-1.53,-1.29l1.29,-0.43l2.08,-2.61l-0.05,-0.55l-0.89,-0.79l3.05,-1.06l0.27,-0.42l-0.07,-0.69l-0.49,-0.35l-1.73,0.39l0.04,-0.68l1.04,-0.72l2.66,-0.48l0.4,-1.32l-0.5,-1.6l0.92,-1.54l0.03,-1.17l-0.29,-0.37l-3.69,-1.06l-1.41,0.02l-1.42,-1.41l-2.19,0.38l-2.77,-1.01l-0.03,-0.59l-0.89,-1.43l-2.0,-0.32l-0.11,-0.54l0.49,-0.53l0.01,-0.53l-1.6,-1.9l-3.58,0.02l-0.88,0.73l-0.46,-0.07l-1.0,-2.79l2.22,-0.02l0.97,-0.74l0.07,-0.57l-0.9,-1.04l-1.35,-0.48l-0.11,-0.7l-0.95,-0.58l-1.38,-1.99l0.46,-0.98l-0.51,-1.96l-2.45,-0.84l-1.21,0.3l-0.46,-0.76l-2.46,-0.83l-0.72,-1.87l-0.21,-1.69l-0.99,-0.85l0.85,-1.17l-0.7,-3.21l1.66,-1.97l-0.16,-0.79ZM749.2,170.72l-0.6,0.4l-0.13,0.16l-0.01,-0.51l0.74,-0.05ZM874.85,67.94l-5.63,0.48l-0.26,-0.84l3.15,-1.89l1.94,0.01l3.19,1.16l-2.39,1.09ZM797.39,48.49l-2.0,1.36l-3.8,-0.42l-4.25,-1.8l0.35,-0.97l9.69,1.83ZM783.67,46.12l-1.63,3.09l-8.98,-0.13l-4.09,1.14l-4.54,-2.97l1.16,-3.01l3.05,-0.89l6.5,0.22l8.54,2.56ZM778.2,134.98l-0.56,-0.9l0.27,-0.12l0.29,1.01ZM778.34,135.48l0.94,3.53l-0.05,3.38l1.05,3.39l2.18,5.0l-2.89,-0.83l-0.49,0.26l-1.54,4.65l2.42,3.5l-0.04,1.13l-1.24,-1.24l-0.61,0.06l-1.09,1.61l-0.28,-1.61l0.27,-3.1l-0.28,-3.4l0.58,-2.47l0.11,-4.39l-1.46,-3.36l0.21,-4.32l2.15,-1.46l0.07,-0.34ZM771.95,56.61l1.76,-1.42l2.89,-0.42l3.28,1.71l0.14,0.6l-3.27,0.03l-4.81,-0.5ZM683.76,31.09l-13.01,1.93l4.03,-6.35l1.82,-0.56l1.73,0.34l5.99,2.98l-0.56,1.66ZM670.85,27.93l-5.08,0.64l-6.86,-1.57l-3.99,-2.05l-2.1,-4.16l-2.6,-0.87l5.72,-3.5l5.2,-1.28l4.69,2.85l5.59,5.4l-0.56,4.53ZM564.15,68.94l-0.64,0.17l-7.85,-0.57l-0.86,-2.04l-4.28,-1.17l-0.28,-1.94l2.27,-0.89l0.25,-0.39l-0.08,-2.38l4.81,-3.97l-0.15,-0.7l-1.47,-0.38l5.3,-3.81l0.15,-0.44l-0.58,-1.94l5.28,-2.51l8.21,-3.27l8.28,-0.96l4.35,-1.94l4.6,-0.64l1.36,1.61l-1.34,1.28l-16.43,4.94l-7.97,4.88l-7.74,9.63l0.66,4.14l4.16,3.27ZM548.81,18.48l-5.5,1.18l-0.58,1.02l-2.59,0.84l-2.13,-1.07l1.12,-1.42l-0.3,-0.65l-2.33,-0.07l1.68,-0.36l3.47,-0.06l0.42,1.29l0.66,0.16l1.38,-1.34l2.15,-0.88l2.94,1.01l-0.39,0.36ZM477.37,133.15l-4.08,0.05l-2.56,-0.32l0.33,-0.87l3.17,-1.03l3.24,0.96l-0.09,1.23Z",
|
5312 |
+
name: "Russia"
|
5313 |
+
},
|
5314 |
+
RW: {
|
5315 |
+
path: "M497.0,288.25l0.71,1.01l-0.11,1.09l-1.63,0.03l-1.04,1.39l-0.83,-0.11l0.51,-1.2l0.08,-1.34l0.42,-0.41l0.7,0.14l1.19,-0.61Z",
|
5316 |
+
name: "Rwanda"
|
5317 |
+
},
|
5318 |
+
RS: {
|
5319 |
+
path: "M469.4,163.99l0.42,-0.5l-0.01,-0.52l-1.15,-1.63l1.43,-0.62l1.33,0.12l1.17,1.06l0.46,1.13l1.34,0.64l0.35,1.35l1.46,0.9l0.76,-0.29l0.2,0.69l-0.48,0.78l0.22,1.12l1.05,1.22l-0.77,0.8l-0.37,1.52l-1.21,0.08l0.24,-0.64l-0.39,-0.54l-2.08,-1.64l-0.9,0.05l-0.48,0.94l-2.12,-1.37l0.53,-1.6l-1.11,-1.37l0.51,-1.1l-0.41,-0.57Z",
|
5320 |
+
name: "Serbia"
|
5321 |
+
},
|
5322 |
+
LT: {
|
5323 |
+
path: "M486.93,129.3l0.17,1.12l-1.81,0.98l-0.72,2.02l-2.47,1.18l-2.1,-0.02l-0.73,-1.05l-1.06,-0.3l-0.09,-1.87l-3.56,-1.13l-0.43,-2.36l2.48,-0.94l4.12,0.22l2.25,-0.31l0.52,0.69l1.24,0.21l2.19,1.56Z",
|
5324 |
+
name: "Lithuania"
|
5325 |
+
},
|
5326 |
+
LU: {
|
5327 |
+
path: "M436.08,149.45l-0.48,-0.07l0.3,-1.28l0.27,0.4l-0.09,0.96Z",
|
5328 |
+
name: "Luxembourg"
|
5329 |
+
},
|
5330 |
+
LR: {
|
5331 |
+
path: "M399.36,265.97l0.18,1.54l-0.48,0.99l0.08,0.47l2.47,1.8l-0.33,2.8l-2.65,-1.13l-5.78,-4.61l0.58,-1.32l2.1,-2.33l0.86,-0.22l0.77,1.14l-0.14,0.85l0.59,0.87l1.0,0.14l0.76,-0.99Z",
|
5332 |
+
name: "Liberia"
|
5333 |
+
},
|
5334 |
+
RO: {
|
5335 |
+
path: "M487.53,154.23l0.6,0.24l2.87,3.98l-0.17,2.69l0.45,1.42l1.32,0.81l1.35,-0.42l0.76,0.36l0.02,0.31l-0.83,0.45l-0.59,-0.22l-0.54,0.3l-0.62,3.3l-1.0,-0.22l-2.07,-1.13l-2.95,0.71l-1.25,0.76l-3.51,-0.15l-1.89,-0.47l-0.87,0.16l-0.82,-1.3l0.29,-0.26l-0.06,-0.64l-1.09,-0.34l-0.56,0.5l-1.05,-0.64l-0.39,-1.39l-1.36,-0.65l-0.35,-1.0l-0.83,-0.75l1.54,-0.54l2.66,-4.21l2.4,-1.24l2.96,0.34l1.48,0.73l0.79,-0.45l1.78,-0.3l0.75,-0.74l0.79,0.0Z",
|
5336 |
+
name: "Romania"
|
5337 |
+
},
|
5338 |
+
GW: {
|
5339 |
+
path: "M386.23,253.6l-0.29,0.84l0.15,0.6l-2.21,0.59l-0.86,0.96l-1.04,-0.83l-1.09,-0.23l-0.54,-1.06l-0.66,-0.49l2.41,-0.48l4.13,0.1Z",
|
5340 |
+
name: "Guinea-Bissau"
|
5341 |
+
},
|
5342 |
+
GT: {
|
5343 |
+
path: "M195.08,249.77l-2.48,-0.37l-1.03,-0.45l-1.14,-0.89l0.3,-0.99l-0.24,-0.68l0.96,-1.66l2.98,-0.01l0.4,-0.37l-0.19,-1.28l-1.67,-1.4l0.51,-0.4l0.0,-1.05l3.85,0.02l-0.21,4.53l0.4,0.43l1.46,0.38l-1.48,0.98l-0.35,0.7l0.12,0.57l-2.2,1.96Z",
|
5344 |
+
name: "Guatemala"
|
5345 |
+
},
|
5346 |
+
GR: {
|
5347 |
+
path: "M487.07,174.59l-0.59,1.43l-0.37,0.21l-2.84,-0.35l-3.03,0.77l-0.18,0.68l1.28,1.23l-0.61,0.23l-1.14,0.0l-1.2,-1.39l-0.63,0.03l-0.53,1.01l0.56,1.76l1.03,1.19l-0.56,0.38l-0.05,0.62l2.52,2.12l0.02,0.87l-1.78,-0.59l-0.48,0.56l0.5,1.0l-1.07,0.2l-0.3,0.53l0.75,2.01l-0.98,0.02l-1.84,-1.12l-1.37,-4.2l-2.21,-2.95l-0.11,-0.56l1.04,-1.28l0.2,-0.95l0.85,-0.66l0.03,-0.46l1.32,-0.21l1.01,-0.64l1.22,0.05l0.65,-0.56l2.26,-0.0l1.82,-0.75l1.85,1.0l2.28,-0.28l0.35,-0.39l0.01,-0.77l0.34,0.22ZM480.49,192.16l0.58,0.4l-0.68,-0.12l0.11,-0.28ZM482.52,192.82l2.51,0.06l0.24,0.32l-1.99,0.13l-0.77,-0.51Z",
|
5348 |
+
name: "Greece"
|
5349 |
+
},
|
5350 |
+
GQ: {
|
5351 |
+
path: "M448.79,279.62l0.02,2.22l-4.09,0.0l0.69,-2.27l3.38,0.05Z",
|
5352 |
+
name: "Eq. Guinea"
|
5353 |
+
},
|
5354 |
+
GY: {
|
5355 |
+
path: "M277.42,270.07l-0.32,1.83l-1.32,0.57l-0.23,0.46l-0.28,2.0l1.11,1.82l0.83,0.19l0.32,1.25l1.13,1.62l-1.21,-0.19l-1.08,0.71l-1.77,0.5l-0.44,0.46l-0.86,-0.09l-1.32,-1.01l-0.77,-2.27l0.36,-1.9l0.68,-1.23l-0.57,-1.17l-0.74,-0.43l0.12,-1.16l-0.9,-0.69l-1.1,0.09l-1.31,-1.48l0.53,-0.72l-0.04,-0.84l1.99,-0.86l0.05,-0.59l-0.71,-0.78l0.14,-0.57l1.66,-1.24l1.36,0.77l1.41,1.49l0.06,1.15l0.37,0.38l0.8,0.05l2.06,1.86Z",
|
5356 |
+
name: "Guyana"
|
5357 |
+
},
|
5358 |
+
GE: {
|
5359 |
+
path: "M521.71,168.93l5.29,0.89l4.07,2.01l1.41,-0.44l2.07,0.56l0.68,1.1l1.07,0.55l-0.12,0.59l0.98,1.29l-1.01,-0.13l-1.81,-0.83l-0.94,0.47l-3.23,0.43l-2.29,-1.39l-2.33,0.05l0.21,-0.97l-0.76,-2.26l-1.45,-1.12l-1.43,-0.39l-0.41,-0.42Z",
|
5360 |
+
name: "Georgia"
|
5361 |
+
},
|
5362 |
+
GB: {
|
5363 |
+
path: "M412.61,118.72l-2.19,3.22l-0.0,0.45l5.13,-0.3l-0.53,2.37l-2.2,3.12l0.29,0.63l2.37,0.21l2.33,4.3l1.76,0.69l2.2,5.12l2.94,0.77l-0.23,1.62l-1.15,0.88l-0.1,0.52l0.82,1.42l-1.86,1.43l-3.3,-0.02l-4.12,0.87l-1.04,-0.58l-0.47,0.06l-1.51,1.41l-2.12,-0.34l-1.86,1.18l-0.6,-0.29l3.19,-3.0l2.16,-0.69l0.28,-0.41l-0.34,-0.36l-3.73,-0.53l-0.4,-0.76l2.2,-0.87l0.17,-0.61l-1.26,-1.67l0.36,-1.7l3.38,0.28l0.43,-0.33l0.37,-1.99l-1.79,-2.49l-3.11,-0.72l-0.38,-0.59l0.79,-1.35l-0.04,-0.46l-0.82,-0.97l-0.61,0.01l-0.68,0.84l-0.1,-2.34l-1.23,-1.88l0.85,-3.47l1.77,-2.68l1.85,0.26l2.17,-0.22ZM406.26,132.86l-1.01,1.77l-1.57,-0.59l-1.16,0.01l0.37,-1.54l-0.39,-1.39l1.45,-0.1l2.3,1.84Z",
|
5364 |
+
name: "United Kingdom"
|
5365 |
+
},
|
5366 |
+
GA: {
|
5367 |
+
path: "M453.24,279.52l-0.08,0.98l0.7,1.29l2.36,0.24l-0.98,2.63l1.18,1.79l0.25,1.78l-0.29,1.52l-0.6,0.93l-1.84,-0.09l-1.23,-1.11l-0.66,0.23l-0.15,0.84l-1.42,0.26l-1.02,0.7l-0.11,0.52l0.77,1.35l-1.34,0.97l-3.94,-4.3l-1.44,-2.45l0.06,-0.6l0.54,-0.81l1.05,-3.46l4.17,-0.07l0.4,-0.4l-0.02,-2.66l2.39,0.21l1.25,-0.27Z",
|
5368 |
+
name: "Gabon"
|
5369 |
+
},
|
5370 |
+
GN: {
|
5371 |
+
path: "M391.8,254.11l0.47,0.8l1.11,-0.32l0.98,0.7l1.07,0.2l2.26,-1.22l0.64,0.44l1.13,1.56l-0.48,1.4l0.8,0.3l-0.08,0.48l0.46,0.68l-0.35,1.36l1.05,2.61l-1.0,0.69l0.03,1.41l-0.72,-0.06l-1.08,1.0l-0.24,-0.27l0.07,-1.11l-1.05,-1.54l-1.79,0.21l-0.35,-2.01l-1.6,-2.18l-2.0,-0.0l-1.31,0.54l-1.95,2.18l-1.86,-2.19l-1.2,-0.78l-0.3,-1.11l-0.8,-0.85l0.65,-0.72l0.81,-0.03l1.64,-0.8l0.23,-1.87l2.67,0.64l0.89,-0.3l1.21,0.15Z",
|
5372 |
+
name: "Guinea"
|
5373 |
+
},
|
5374 |
+
GM: {
|
5375 |
+
path: "M379.31,251.39l0.1,-0.35l2.43,-0.07l0.74,-0.61l0.51,-0.03l0.77,0.49l-1.03,-0.3l-1.87,0.9l-1.65,-0.04ZM384.03,250.91l0.91,0.05l0.75,-0.24l-0.59,0.31l-1.08,-0.13Z",
|
5376 |
+
name: "Gambia"
|
5377 |
+
},
|
5378 |
+
GL: {
|
5379 |
+
path: "M353.02,1.2l14.69,4.67l-3.68,1.89l-22.97,0.86l-0.36,0.27l0.12,0.43l1.55,1.18l8.79,-0.66l7.48,2.07l4.86,-1.77l1.66,1.73l-2.53,3.19l-0.01,0.48l0.46,0.15l6.35,-2.2l12.06,-2.31l7.24,1.13l1.09,1.99l-9.79,4.01l-1.44,1.32l-7.87,0.98l-0.35,0.41l0.38,0.38l5.07,0.24l-2.53,3.58l-2.07,3.81l0.08,6.05l2.57,3.11l-3.22,0.2l-4.12,1.66l-0.05,0.72l4.45,2.65l0.51,3.75l-2.3,0.4l-0.25,0.64l2.79,3.69l-4.82,0.31l-0.36,0.29l0.16,0.44l2.62,1.8l-0.59,1.22l-3.3,0.7l-3.45,0.01l-0.29,0.68l3.03,3.12l0.02,1.34l-4.4,-1.73l-1.72,1.35l0.15,0.66l3.31,1.15l3.13,2.71l0.81,3.16l-3.85,0.75l-4.89,-4.26l-0.47,-0.03l-0.17,0.44l0.79,2.86l-2.71,2.21l-0.13,0.44l0.37,0.27l8.73,0.34l-12.32,6.64l-7.24,1.48l-2.94,0.08l-2.69,1.75l-3.43,4.41l-5.24,2.84l-1.73,0.18l-7.12,2.1l-2.15,2.52l-0.13,2.99l-1.19,2.45l-4.01,3.09l-0.14,0.44l0.97,2.9l-2.28,6.48l-3.1,0.2l-3.83,-3.07l-4.86,-0.02l-2.25,-1.93l-1.7,-3.79l-4.3,-4.84l-1.21,-2.49l-0.44,-3.8l-3.32,-3.63l0.84,-2.86l-1.56,-1.7l2.28,-4.6l3.83,-1.74l1.03,-1.96l0.52,-3.47l-0.59,-0.41l-4.17,2.21l-2.07,0.58l-2.72,-1.28l-0.15,-2.71l0.85,-2.09l2.01,-0.06l5.06,1.2l0.46,-0.23l-0.14,-0.49l-6.54,-4.47l-2.67,0.55l-1.58,-0.86l2.56,-4.01l-0.03,-0.48l-1.5,-1.74l-4.98,-8.5l-3.13,-1.96l0.03,-1.88l-0.24,-0.37l-6.85,-3.02l-5.36,-0.38l-12.7,0.58l-2.78,-1.57l-3.66,-2.77l5.73,-1.45l5.0,-0.28l0.38,-0.38l-0.35,-0.41l-10.67,-1.38l-5.3,-2.06l0.25,-1.54l18.41,-5.26l1.22,-2.27l-0.25,-0.55l-6.14,-1.86l1.68,-1.77l8.55,-4.03l3.59,-0.63l0.3,-0.54l-0.88,-2.27l5.47,-1.47l7.65,-0.95l7.55,-0.05l3.04,1.85l6.48,-3.27l5.81,2.22l3.56,0.5l5.16,1.94l0.5,-0.21l-0.17,-0.52l-5.71,-3.13l0.28,-2.13l8.12,-3.6l8.7,0.28l3.35,-2.34l8.71,-0.6l19.93,0.8Z",
|
5380 |
+
name: "Greenland"
|
5381 |
+
},
|
5382 |
+
KW: {
|
5383 |
+
path: "M540.81,207.91l0.37,0.86l-0.17,0.76l0.6,1.53l-0.95,0.04l-0.82,-1.28l-1.57,-0.18l1.31,-1.88l1.22,0.17Z",
|
5384 |
+
name: "Kuwait"
|
5385 |
+
},
|
5386 |
+
GH: {
|
5387 |
+
path: "M420.53,257.51l-0.01,0.72l0.96,1.2l0.24,3.73l0.59,0.95l-0.51,2.1l0.19,1.41l1.02,2.21l-6.97,2.84l-1.8,-0.57l0.04,-0.89l-1.02,-2.04l0.61,-2.65l1.07,-2.32l-0.96,-6.47l5.01,0.07l0.94,-0.39l0.61,0.11Z",
|
5388 |
+
name: "Ghana"
|
5389 |
+
},
|
5390 |
+
OM: {
|
5391 |
+
path: "M568.09,230.93l-0.91,1.67l-1.22,0.04l-0.6,0.76l-0.41,1.51l0.27,1.58l-1.16,0.05l-1.56,0.97l-0.76,1.74l-1.62,0.05l-0.98,0.65l-0.17,1.15l-0.89,0.52l-1.49,-0.18l-2.4,0.94l-2.47,-5.4l7.35,-2.71l1.67,-5.23l-1.12,-2.09l0.05,-0.83l0.67,-1.0l0.07,-1.05l0.9,-0.42l-0.05,-2.07l0.7,-0.01l1.0,1.62l1.51,1.08l3.3,0.84l1.73,2.29l0.81,0.37l-1.23,2.35l-0.99,0.79Z",
|
5392 |
+
name: "Oman"
|
5393 |
+
},
|
5394 |
+
_1: {
|
5395 |
+
path: "M531.15,258.94l1.51,0.12l5.13,-0.95l5.3,-1.48l-0.01,4.4l-2.67,3.39l-1.85,0.01l-8.04,-2.94l-2.55,-3.17l1.12,-1.71l2.04,2.34Z",
|
5396 |
+
name: "Somaliland"
|
5397 |
+
},
|
5398 |
+
_0: {
|
5399 |
+
path: "M472.77,172.64l-1.08,-1.29l0.96,-0.77l0.29,-0.83l1.98,1.64l-0.36,0.67l-1.79,0.58Z",
|
5400 |
+
name: "Kosovo"
|
5401 |
+
},
|
5402 |
+
JO: {
|
5403 |
+
path: "M518.64,201.38l-5.14,1.56l-0.19,0.65l2.16,2.39l-0.89,1.14l-1.71,0.34l-1.71,1.8l-2.34,-0.37l1.21,-4.32l0.56,-4.07l2.8,0.94l4.46,-2.71l0.79,2.66Z",
|
5404 |
+
name: "Jordan"
|
5405 |
+
},
|
5406 |
+
HR: {
|
5407 |
+
path: "M455.59,162.84l1.09,0.07l-0.82,0.94l-0.27,-1.01ZM456.96,162.92l0.62,-0.41l1.73,0.45l0.42,-0.4l-0.01,-0.59l0.86,-0.52l0.2,-1.05l1.63,-0.68l2.57,1.68l2.07,0.6l0.87,-0.31l1.05,1.57l-0.52,0.63l-1.05,-0.56l-1.68,0.04l-2.1,-0.5l-1.29,0.06l-0.57,0.49l-0.59,-0.47l-0.62,0.16l-0.46,1.7l1.79,2.42l2.79,2.75l-1.18,-0.87l-2.21,-0.87l-1.67,-1.78l0.13,-0.63l-1.05,-1.19l-0.32,-1.27l-1.42,-0.43Z",
|
5408 |
+
name: "Croatia"
|
5409 |
+
},
|
5410 |
+
HT: {
|
5411 |
+
path: "M237.05,238.38l-1.16,0.43l-0.91,-0.55l0.05,-0.2l2.02,0.31ZM237.53,238.43l1.06,0.12l-0.05,0.01l-1.01,-0.12ZM239.25,238.45l0.79,-0.51l0.06,-0.62l-1.02,-1.0l0.02,-0.82l-0.3,-0.4l-0.93,-0.32l3.16,0.45l0.02,1.84l-0.48,0.34l-0.08,0.58l0.54,0.72l-1.78,-0.26Z",
|
5412 |
+
name: "Haiti"
|
5413 |
+
},
|
5414 |
+
HU: {
|
5415 |
+
path: "M462.08,157.89l0.65,-1.59l-0.09,-0.44l0.64,-0.0l0.39,-0.34l0.1,-0.69l1.75,0.87l2.32,-0.37l0.43,-0.66l3.49,-0.78l0.69,-0.78l0.57,-0.14l2.57,0.93l0.67,-0.23l1.03,0.65l0.08,0.37l-1.42,0.71l-2.59,4.14l-1.8,0.53l-1.68,-0.1l-2.74,1.23l-1.85,-0.54l-2.54,-1.66l-0.66,-1.1Z",
|
5416 |
+
name: "Hungary"
|
5417 |
+
},
|
5418 |
+
HN: {
|
5419 |
+
path: "M199.6,249.52l-1.7,-1.21l0.06,-0.94l3.04,-2.14l2.37,0.28l1.27,-0.09l1.1,-0.52l1.3,0.28l1.14,-0.25l1.38,0.37l2.23,1.37l-2.36,0.93l-1.23,-0.39l-0.88,1.3l-1.28,0.99l-0.98,-0.22l-0.42,0.52l-0.96,0.05l-0.36,0.41l0.04,0.88l-0.52,0.6l-0.3,0.04l-0.3,-0.55l-0.66,-0.31l0.11,-0.67l-0.48,-0.65l-0.87,-0.26l-0.73,0.2Z",
|
5420 |
+
name: "Honduras"
|
5421 |
+
},
|
5422 |
+
PR: {
|
5423 |
+
path: "M256.17,238.73l-0.26,0.27l-2.83,0.05l-0.07,-0.55l1.95,-0.1l1.22,0.33Z",
|
5424 |
+
name: "Puerto Rico"
|
5425 |
+
},
|
5426 |
+
PS: {
|
5427 |
+
path: "M509.21,203.07l0.1,-0.06l-0.02,0.03l-0.09,0.03ZM509.36,202.91l-0.02,-0.63l-0.33,-0.16l0.31,-1.09l0.24,0.1l-0.2,1.78Z",
|
5428 |
+
name: "Palestine"
|
5429 |
+
},
|
5430 |
+
PT: {
|
5431 |
+
path: "M401.84,187.38l-0.64,0.47l-1.13,-0.35l-0.91,0.17l0.28,-1.78l-0.24,-1.78l-1.25,-0.56l-0.45,-0.84l0.17,-1.66l1.01,-1.18l0.69,-2.92l-0.04,-1.39l-0.59,-1.9l1.3,-0.85l0.84,1.35l3.1,-0.3l0.46,0.99l-1.05,0.94l-0.03,2.16l-0.41,0.57l-0.08,1.1l-0.79,0.18l-0.26,0.59l0.91,1.6l-0.63,1.75l0.76,1.09l-1.1,1.52l0.07,1.05Z",
|
5432 |
+
name: "Portugal"
|
5433 |
+
},
|
5434 |
+
PY: {
|
5435 |
+
path: "M274.9,336.12l0.74,1.52l-0.16,3.45l0.32,0.41l2.64,0.5l1.11,-0.47l1.4,0.59l0.36,0.6l0.53,3.42l1.27,0.4l0.98,-0.38l0.51,0.27l-0.0,1.18l-1.21,5.32l-2.09,1.9l-1.8,0.4l-4.71,-0.98l2.2,-3.63l-0.32,-1.5l-2.78,-1.28l-3.03,-1.94l-2.07,-0.44l-4.34,-4.06l0.91,-2.9l0.08,-1.42l1.07,-2.04l4.13,-0.72l2.18,0.03l2.05,1.17l0.03,0.59Z",
|
5436 |
+
name: "Paraguay"
|
5437 |
+
},
|
5438 |
+
PA: {
|
5439 |
+
path: "M213.8,263.68l0.26,-1.52l-0.36,-0.26l-0.01,-0.49l0.44,-0.1l0.93,1.4l1.26,0.03l0.77,0.49l1.38,-0.23l2.51,-1.11l0.86,-0.72l3.45,0.85l1.4,1.18l0.41,1.74l-0.21,0.34l-0.53,-0.12l-0.47,0.29l-0.16,0.6l-0.68,-1.28l0.45,-0.49l-0.19,-0.66l-0.47,-0.13l-0.54,-0.84l-1.5,-0.75l-1.1,0.16l-0.75,0.99l-1.62,0.84l-0.18,0.96l0.85,0.97l-0.58,0.45l-0.69,0.08l-0.34,-1.18l-1.27,0.03l-0.71,-1.05l-2.59,-0.46Z",
|
5440 |
+
name: "Panama"
|
5441 |
+
},
|
5442 |
+
PG: {
|
5443 |
+
path: "M808.58,298.86l2.54,2.56l-0.13,0.26l-0.33,0.12l-0.87,-0.78l-1.22,-2.16ZM801.41,293.04l0.5,0.29l0.26,0.27l-0.49,-0.35l-0.27,-0.21ZM803.17,294.58l0.59,0.5l0.08,1.06l-0.29,-0.91l-0.38,-0.65ZM796.68,298.41l0.52,0.75l1.43,-0.19l2.27,-1.81l-0.01,-1.43l1.12,0.16l-0.04,1.1l-0.7,1.28l-1.12,0.18l-0.62,0.79l-2.46,1.11l-1.17,-0.0l-3.08,-1.25l3.41,0.0l0.45,-0.68ZM789.15,303.55l2.31,1.8l1.59,2.61l1.34,0.13l-0.06,0.66l0.31,0.43l1.06,0.24l0.06,0.65l2.25,1.05l-1.22,0.13l-0.72,-0.63l-4.56,-0.65l-3.22,-2.87l-1.49,-2.34l-3.27,-1.1l-2.38,0.72l-1.59,0.86l-0.2,0.42l0.27,1.55l-1.55,0.68l-1.36,-0.4l-2.21,-0.09l-0.08,-15.41l8.39,2.93l2.95,2.4l0.6,1.64l4.02,1.49l0.31,0.68l-1.76,0.21l-0.33,0.52l0.55,1.68Z",
|
5444 |
+
name: "Papua New Guinea"
|
5445 |
+
},
|
5446 |
+
PE: {
|
5447 |
+
path: "M244.96,295.21l-1.26,-0.07l-0.57,0.42l-1.93,0.45l-2.98,1.75l-0.36,1.36l-0.58,0.8l0.12,1.37l-1.24,0.59l-0.22,1.22l-0.62,0.84l1.04,2.27l1.28,1.44l-0.41,0.84l0.32,0.57l1.48,0.13l1.16,1.37l2.21,0.07l1.63,-1.08l-0.13,3.02l0.3,0.4l1.14,0.29l1.31,-0.34l1.9,3.59l-0.48,0.85l-0.17,3.85l-0.94,1.59l0.35,0.75l-0.47,1.07l0.98,1.97l-2.1,3.82l-0.98,0.5l-2.17,-1.28l-0.39,-1.16l-4.95,-2.58l-4.46,-2.79l-1.84,-1.51l-0.91,-1.84l0.3,-0.96l-2.11,-3.33l-4.82,-9.68l-1.04,-1.2l-0.87,-1.94l-3.4,-2.48l0.58,-1.18l-1.13,-2.23l0.66,-1.49l1.45,-1.15l-0.6,0.98l0.07,0.92l0.47,0.36l1.74,0.03l0.97,1.17l0.54,0.07l1.42,-1.03l0.6,-1.84l1.42,-2.02l3.04,-1.04l2.73,-2.62l0.86,-1.74l-0.1,-1.87l1.44,1.02l0.9,1.25l1.06,0.59l1.7,2.73l1.86,0.31l1.45,-0.61l0.96,0.39l1.36,-0.19l1.45,0.89l-1.4,2.21l0.31,0.61l0.59,0.05l0.47,0.5Z",
|
5448 |
+
name: "Peru"
|
5449 |
+
},
|
5450 |
+
PK: {
|
5451 |
+
path: "M615.09,192.34l-1.83,1.81l-2.6,0.39l-3.73,-0.68l-1.58,1.33l-0.09,0.42l1.77,4.39l1.7,1.23l-1.69,1.27l-0.12,2.14l-2.33,2.64l-1.6,2.8l-2.46,2.67l-3.03,-0.07l-2.76,2.83l0.05,0.6l1.5,1.11l0.26,1.9l1.44,1.5l0.37,1.68l-5.01,-0.01l-1.78,1.7l-1.42,-0.52l-0.76,-1.87l-2.27,-2.15l-11.61,0.86l0.71,-2.34l3.43,-1.32l0.25,-0.44l-0.21,-1.24l-1.2,-0.65l-0.28,-2.46l-2.29,-1.14l-1.28,-1.94l2.82,0.94l2.62,-0.38l1.42,0.33l0.76,-0.56l1.71,0.19l3.25,-1.14l0.27,-0.36l0.08,-2.19l1.18,-1.32l1.68,0.0l0.58,-0.82l1.6,-0.3l1.19,0.16l0.98,-0.78l0.02,-1.88l0.93,-1.47l1.48,-0.66l0.19,-0.55l-0.66,-1.25l2.04,-0.11l0.69,-1.01l-0.02,-1.16l1.11,-1.06l-0.17,-1.78l-0.49,-1.03l1.15,-0.98l5.42,-0.91l2.6,-0.82l1.6,1.16l0.97,2.34l3.45,0.97Z",
|
5452 |
+
name: "Pakistan"
|
5453 |
+
},
|
5454 |
+
PH: {
|
5455 |
+
path: "M737.01,263.84l0.39,2.97l-0.44,1.18l-0.55,-1.53l-0.67,-0.14l-1.17,1.28l0.65,2.09l-0.42,0.69l-2.48,-1.23l-0.57,-1.49l0.65,-1.03l-0.1,-0.54l-1.59,-1.19l-0.56,0.08l-0.65,0.87l-1.23,0.0l-1.58,0.97l0.83,-1.8l2.56,-1.42l0.65,0.84l0.45,0.13l1.9,-0.69l0.56,-1.11l1.5,-0.06l0.38,-0.43l-0.09,-1.19l1.21,0.71l0.36,2.02ZM733.59,256.58l0.05,0.75l0.08,0.26l-0.8,-0.42l-0.18,-0.71l0.85,0.12ZM734.08,256.1l-0.12,-1.12l-1.0,-1.27l1.36,0.03l0.53,0.73l0.51,2.04l-1.27,-0.4ZM733.76,257.68l0.38,0.98l-0.32,0.15l-0.07,-1.13ZM724.65,238.43l1.46,0.7l0.72,-0.31l-0.32,1.17l0.79,1.71l-0.57,1.84l-1.53,1.04l-0.39,2.25l0.56,2.04l1.63,0.57l1.16,-0.27l2.71,1.23l-0.19,1.08l0.76,0.84l-0.08,0.36l-1.4,-0.9l-0.88,-1.27l-0.66,0.0l-0.38,0.55l-1.6,-1.31l-2.15,0.36l-0.87,-0.39l0.07,-0.61l0.66,-0.55l-0.01,-0.62l-0.75,-0.59l-0.72,0.44l-0.74,-0.87l-0.39,-2.49l0.32,0.27l0.66,-0.28l0.26,-3.97l0.7,-2.02l1.14,0.0ZM731.03,258.87l-0.88,0.85l-1.19,1.94l-1.05,-1.19l0.93,-1.1l0.32,-1.47l0.52,-0.06l-0.27,1.15l0.22,0.45l0.49,-0.12l1.0,-1.32l-0.08,0.85ZM726.83,255.78l0.83,0.38l1.17,-0.0l-0.02,0.48l-2.0,1.4l0.03,-2.26ZM724.81,252.09l-0.38,1.27l-1.42,-1.95l1.2,0.05l0.6,0.63ZM716.55,261.82l1.1,-0.95l0.03,-0.03l-0.28,0.36l-0.85,0.61ZM719.22,259.06l0.04,-0.06l0.8,-1.53l0.16,0.75l-1.0,0.84Z",
|
5456 |
+
name: "Philippines"
|
5457 |
+
},
|
5458 |
+
PL: {
|
5459 |
+
path: "M468.44,149.42l-1.11,-1.54l-1.86,-0.33l-0.48,-1.05l-1.72,-0.37l-0.65,0.69l-0.72,-0.36l0.11,-0.61l-0.33,-0.46l-1.75,-0.27l-1.04,-0.93l-0.94,-1.94l0.16,-1.22l-0.62,-1.8l-0.78,-1.07l0.57,-1.04l-0.48,-1.43l1.41,-0.83l6.91,-2.71l2.14,0.5l0.52,0.91l5.51,0.44l4.55,-0.05l1.07,0.31l0.48,0.84l0.15,1.58l0.65,1.2l-0.01,0.99l-1.27,0.58l-0.19,0.54l0.73,1.48l0.08,1.55l1.2,2.76l-0.17,0.58l-1.23,0.44l-2.27,2.72l0.18,0.95l-1.97,-1.03l-1.98,0.4l-1.36,-0.28l-1.24,0.58l-1.07,-0.97l-1.16,0.24Z",
|
5460 |
+
name: "Poland"
|
5461 |
+
},
|
5462 |
+
"-99": {
|
5463 |
+
path: "M504.91,192.87l0.34,0.01l0.27,-0.07l-0.29,0.26l-0.31,-0.2Z",
|
5464 |
+
name: "N. Cyprus"
|
5465 |
+
},
|
5466 |
+
ZM: {
|
5467 |
+
path: "M481.47,313.3l0.39,0.31l2.52,0.14l0.99,1.17l2.01,0.35l1.4,-0.64l0.69,1.17l1.78,0.33l1.84,2.35l2.23,0.18l0.4,-0.43l-0.21,-2.74l-0.62,-0.3l-0.48,0.32l-1.98,-1.17l0.72,-5.29l-0.51,-1.18l0.57,-1.3l3.68,-0.62l0.26,0.63l1.21,0.63l0.9,-0.22l2.16,0.67l1.33,0.71l1.07,1.02l0.56,1.87l-0.88,2.7l0.43,2.09l-0.73,0.87l-0.76,2.37l0.59,0.68l-6.6,1.83l-0.29,0.44l0.19,1.45l-1.68,0.35l-1.43,1.02l-0.38,0.87l-0.87,0.26l-3.48,3.69l-4.16,-0.53l-1.52,-1.0l-1.77,-0.13l-1.83,0.52l-3.04,-3.4l0.11,-7.59l4.82,0.03l0.39,-0.49l-0.18,-0.76l0.33,-0.83l-0.4,-1.36l0.24,-1.05Z",
|
5468 |
+
name: "Zambia"
|
5469 |
+
},
|
5470 |
+
EH: {
|
5471 |
+
path: "M384.42,230.28l0.25,-0.79l1.06,-1.29l0.8,-3.51l3.38,-2.78l0.7,-1.81l0.06,4.84l-1.98,0.2l-0.94,1.59l0.39,3.56l-3.7,-0.01ZM392.01,218.1l0.7,-1.8l1.77,-0.24l2.09,0.34l0.95,-0.62l1.28,-0.07l-0.0,2.51l-6.79,-0.12Z",
|
5472 |
+
name: "W. Sahara"
|
5473 |
+
},
|
5474 |
+
EE: {
|
5475 |
+
path: "M485.71,115.04l2.64,0.6l2.56,0.11l-1.6,1.91l0.61,3.54l-0.81,0.87l-1.78,-0.01l-3.22,-1.76l-1.8,0.45l0.21,-1.53l-0.58,-0.41l-0.69,0.34l-1.26,-1.03l-0.17,-1.63l2.83,-0.92l3.05,-0.52Z",
|
5476 |
+
name: "Estonia"
|
5477 |
+
},
|
5478 |
+
EG: {
|
5479 |
+
path: "M492.06,205.03l1.46,0.42l2.95,-1.64l2.04,-0.21l1.53,0.3l0.59,1.19l0.69,0.04l0.41,-0.64l1.81,0.58l1.95,0.16l1.04,-0.51l1.42,4.08l-2.03,4.54l-1.66,-1.77l-1.76,-3.85l-0.64,-0.12l-0.36,0.67l1.04,2.88l3.44,6.95l1.78,3.04l2.03,2.65l-0.36,0.53l0.23,2.01l2.7,2.19l-28.41,0.0l0.0,-18.96l-0.73,-2.2l0.59,-1.56l-0.32,-1.26l0.68,-0.99l3.06,-0.04l4.82,1.52Z",
|
5480 |
+
name: "Egypt"
|
5481 |
+
},
|
5482 |
+
ZA: {
|
5483 |
+
path: "M467.14,373.21l-0.13,-1.96l-0.68,-1.56l0.7,-0.68l-0.13,-2.33l-4.56,-8.19l0.77,-0.86l0.6,0.45l0.69,1.31l2.83,0.72l1.5,-0.26l2.24,-1.39l0.19,-9.55l1.35,2.3l-0.21,1.5l0.61,1.2l0.4,0.19l1.79,-0.27l2.6,-2.07l0.69,-1.32l0.96,-0.48l2.19,1.04l2.04,0.13l1.77,-0.65l0.85,-2.12l1.38,-0.33l1.59,-2.76l2.15,-1.89l3.41,-1.87l2.0,0.45l1.02,-0.28l0.99,0.2l1.75,5.29l-0.38,3.25l-0.81,-0.23l-1.0,0.46l-0.87,1.68l-0.05,1.16l1.97,1.84l1.47,-0.29l0.69,-1.18l1.09,0.01l-0.76,3.69l-0.58,1.09l-2.2,1.79l-3.17,4.76l-2.8,2.83l-3.57,2.88l-2.53,1.05l-1.22,0.14l-0.51,0.7l-1.18,-0.32l-1.39,0.5l-2.59,-0.52l-1.61,0.33l-1.18,-0.11l-2.55,1.1l-2.1,0.44l-1.6,1.07l-0.85,0.05l-0.93,-0.89l-0.93,-0.15l-0.97,-1.13l-0.25,0.05ZM491.45,364.19l0.62,-0.93l1.48,-0.59l1.18,-2.19l-0.07,-0.49l-1.99,-1.69l-1.66,0.56l-1.43,1.14l-1.34,1.73l0.02,0.51l1.88,2.11l1.31,-0.16Z",
|
5484 |
+
name: "South Africa"
|
5485 |
+
},
|
5486 |
+
EC: {
|
5487 |
+
path: "M231.86,285.53l0.29,1.59l-0.69,1.45l-2.61,2.51l-3.13,1.11l-1.53,2.18l-0.49,1.68l-1.0,0.73l-1.02,-1.11l-1.78,-0.16l0.67,-1.15l-0.24,-0.86l1.25,-2.13l-0.54,-1.09l-0.67,-0.08l-0.72,0.87l-0.87,-0.64l0.35,-0.69l-0.36,-1.96l0.81,-0.51l0.45,-1.51l0.92,-1.57l-0.07,-0.97l2.65,-1.33l2.75,1.35l0.77,1.05l2.12,0.35l0.76,-0.32l1.96,1.21Z",
|
5488 |
+
name: "Ecuador"
|
5489 |
+
},
|
5490 |
+
AL: {
|
5491 |
+
path: "M470.32,171.8l0.74,0.03l0.92,0.89l-0.17,1.95l0.36,1.28l1.01,0.82l-1.82,2.83l-0.19,-0.61l-1.25,-0.89l-0.18,-1.2l0.53,-2.82l-0.54,-1.47l0.6,-0.83Z",
|
5492 |
+
name: "Albania"
|
5493 |
+
},
|
5494 |
+
AO: {
|
5495 |
+
path: "M461.55,300.03l1.26,3.15l1.94,2.36l2.47,-0.53l1.25,0.32l0.44,-0.18l0.93,-1.92l1.31,-0.08l0.41,-0.44l0.47,-0.0l-0.1,0.41l0.39,0.49l2.65,-0.02l0.03,1.19l0.48,1.01l-0.34,1.52l0.18,1.55l0.83,1.04l-0.13,2.85l0.54,0.39l3.96,-0.41l-0.1,1.79l0.39,1.05l-0.24,1.43l-4.7,-0.03l-0.4,0.39l-0.12,8.13l2.92,3.49l-3.83,0.88l-5.89,-0.36l-1.88,-1.24l-10.47,0.22l-1.3,-1.01l-1.85,-0.16l-2.4,0.77l-0.15,-1.06l0.33,-2.16l1.0,-3.45l1.35,-3.2l2.24,-2.8l0.33,-2.06l-0.13,-1.53l-0.8,-1.08l-1.21,-2.87l0.87,-1.62l-1.27,-4.12l-1.17,-1.53l2.47,-0.63l7.03,0.03ZM451.71,298.87l-0.47,-1.25l1.25,-1.11l0.32,0.3l-0.99,1.03l-0.12,1.03Z",
|
5496 |
+
name: "Angola"
|
5497 |
+
},
|
5498 |
+
KZ: {
|
5499 |
+
path: "M552.8,172.89l0.46,-1.27l-0.48,-1.05l-2.96,-1.19l-1.06,-2.58l-1.37,-0.87l-0.03,-0.3l1.95,0.23l0.45,-0.38l0.08,-1.96l1.75,-0.41l2.1,0.45l0.48,-0.33l0.45,-3.04l-0.45,-2.09l-0.41,-0.31l-2.42,0.15l-2.36,-0.73l-2.87,1.37l-2.17,0.61l-0.85,-0.34l0.13,-1.61l-1.6,-2.12l-2.02,-0.08l-1.78,-1.82l1.29,-2.18l-0.57,-0.95l1.62,-2.91l2.21,1.63l0.63,-0.27l0.29,-2.22l4.92,-3.43l3.71,-0.08l8.4,3.6l2.92,-1.36l3.77,-0.06l3.11,1.66l0.51,-0.11l0.6,-0.81l3.31,0.13l0.39,-0.25l0.63,-1.57l-0.17,-0.5l-3.5,-1.98l1.87,-1.27l-0.13,-1.03l1.98,-0.72l0.18,-0.62l-1.59,-2.06l0.81,-0.82l9.23,-1.18l1.33,-0.88l6.18,-1.26l2.26,-1.42l4.08,0.68l0.73,3.33l0.51,0.3l2.48,-0.8l2.79,1.02l-0.17,1.56l0.43,0.44l2.55,-0.24l4.89,-2.53l0.03,0.32l3.15,2.61l5.56,8.47l0.65,0.02l1.12,-1.46l3.15,1.74l3.76,-0.78l1.15,0.49l1.14,1.8l1.84,0.76l0.99,1.29l3.35,-0.25l1.02,1.52l-1.6,1.81l-1.93,0.28l-0.34,0.38l-0.11,3.05l-1.13,1.16l-4.75,-1.0l-0.46,0.27l-1.76,5.47l-1.1,0.59l-4.91,1.23l-0.27,0.54l2.1,4.97l-1.37,0.63l-0.23,0.41l0.13,1.13l-0.88,-0.25l-1.42,-1.13l-7.89,-0.4l-0.92,0.31l-3.73,-1.22l-1.42,0.63l-0.53,1.66l-3.72,-0.94l-1.85,0.43l-0.76,1.4l-4.65,2.62l-1.13,2.08l-0.44,0.01l-0.92,-1.4l-2.87,-0.09l-0.45,-2.14l-0.38,-0.32l-0.8,-0.01l0.0,-2.96l-3.0,-2.22l-7.31,0.58l-2.35,-2.68l-6.71,-3.69l-6.45,1.83l-0.29,0.39l0.1,10.85l-0.7,0.08l-1.62,-2.17l-1.83,-0.96l-3.11,0.59l-0.64,0.51Z",
|
5500 |
+
name: "Kazakhstan"
|
5501 |
+
},
|
5502 |
+
ET: {
|
5503 |
+
path: "M516.04,247.79l1.1,0.84l1.63,-0.45l0.68,0.47l1.63,0.03l2.01,0.94l1.73,1.66l1.64,2.07l-1.52,2.04l0.16,1.72l0.39,0.38l2.05,0.0l-0.36,1.03l2.86,3.58l8.32,3.08l1.31,0.02l-6.32,6.75l-3.1,0.11l-2.36,1.77l-1.47,0.04l-0.86,0.79l-1.38,-0.0l-1.32,-0.81l-2.29,1.05l-0.76,0.98l-3.29,-0.41l-3.07,-2.07l-1.8,-0.07l-0.62,-0.6l0.0,-1.24l-0.28,-0.38l-1.15,-0.37l-1.4,-2.59l-1.19,-0.68l-0.47,-1.0l-1.27,-1.23l-1.16,-0.22l0.43,-0.72l1.45,-0.28l0.41,-0.95l-0.03,-2.21l0.68,-2.44l1.05,-0.63l1.43,-3.06l1.57,-1.37l1.02,-2.51l0.35,-1.88l2.52,0.46l0.44,-0.24l0.58,-1.43Z",
|
5504 |
+
name: "Ethiopia"
|
5505 |
+
},
|
5506 |
+
ZW: {
|
5507 |
+
path: "M498.91,341.09l-1.11,-0.22l-0.92,0.28l-2.09,-0.44l-1.5,-1.11l-1.89,-0.43l-0.62,-1.4l-0.01,-0.84l-0.3,-0.38l-0.97,-0.25l-2.71,-2.74l-1.92,-3.32l3.83,0.45l3.73,-3.82l1.08,-0.44l0.26,-0.77l1.25,-0.9l1.41,-0.26l0.5,0.89l1.99,-0.05l1.72,1.17l1.11,0.17l1.05,0.66l0.01,2.99l-0.59,3.76l0.38,0.86l-0.23,1.23l-0.39,0.35l-0.63,1.81l-2.43,2.75Z",
|
5508 |
+
name: "Zimbabwe"
|
5509 |
+
},
|
5510 |
+
ES: {
|
5511 |
+
path: "M416.0,169.21l1.07,1.17l4.61,1.38l1.06,-0.57l2.6,1.26l2.71,-0.3l0.09,1.12l-2.14,1.8l-3.11,0.61l-0.31,0.31l-0.2,0.89l-1.54,1.69l-0.97,2.4l0.84,1.74l-1.32,1.27l-0.48,1.68l-1.88,0.65l-1.66,2.07l-5.36,-0.01l-1.79,1.08l-0.89,0.98l-0.88,-0.17l-0.79,-0.82l-0.68,-1.59l-2.37,-0.63l-0.11,-0.5l1.21,-1.82l-0.77,-1.13l0.61,-1.68l-0.76,-1.62l0.87,-0.49l0.09,-1.25l0.42,-0.6l0.03,-2.11l0.99,-0.69l0.13,-0.5l-1.03,-1.73l-1.46,-0.11l-0.61,0.38l-1.06,0.0l-0.52,-1.23l-0.53,-0.21l-1.32,0.67l-0.01,-1.49l-0.75,-0.96l3.03,-1.88l2.99,0.53l3.32,-0.02l2.63,0.51l6.01,-0.06Z",
|
5512 |
+
name: "Spain"
|
5513 |
+
},
|
5514 |
+
ER: {
|
5515 |
+
path: "M520.38,246.23l3.42,2.43l3.5,3.77l0.84,0.54l-0.95,-0.01l-3.51,-3.89l-2.33,-1.15l-1.73,-0.07l-0.91,-0.51l-1.26,0.51l-1.34,-1.02l-0.61,0.17l-0.66,1.61l-2.35,-0.43l-0.17,-0.67l1.29,-5.29l0.61,-0.61l1.95,-0.53l0.87,-1.01l1.17,2.41l0.68,2.33l1.49,1.43Z",
|
5516 |
+
name: "Eritrea"
|
5517 |
+
},
|
5518 |
+
ME: {
|
5519 |
+
path: "M468.91,172.53l-1.22,-1.02l0.47,-1.81l0.89,-0.72l2.26,1.51l-0.5,0.57l-0.75,-0.27l-1.14,1.73Z",
|
5520 |
+
name: "Montenegro"
|
5521 |
+
},
|
5522 |
+
MD: {
|
5523 |
+
path: "M488.41,153.73l1.4,-0.27l1.72,0.93l1.07,0.15l0.85,0.65l-0.14,0.84l0.96,0.85l1.12,2.47l-1.15,-0.07l-0.66,-0.41l-0.52,0.25l-0.09,0.86l-1.08,1.89l-0.27,-0.86l0.25,-1.34l-0.16,-1.6l-3.29,-4.34Z",
|
5524 |
+
name: "Moldova"
|
5525 |
+
},
|
5526 |
+
MG: {
|
5527 |
+
path: "M545.91,319.14l0.4,3.03l0.62,1.21l-0.21,1.02l-0.57,-0.8l-0.69,-0.01l-0.47,0.76l0.41,2.12l-0.18,0.87l-0.73,0.78l-0.15,2.14l-4.71,15.2l-1.06,2.88l-3.92,1.64l-3.12,-1.49l-0.6,-1.21l-0.19,-2.4l-0.86,-2.05l-0.21,-1.77l0.38,-1.62l1.21,-0.75l0.01,-0.76l1.19,-2.04l0.23,-1.66l-1.06,-2.99l-0.19,-2.21l0.81,-1.33l0.32,-1.46l4.63,-1.22l3.44,-3.0l0.85,-1.4l-0.08,-0.7l0.78,-0.04l1.38,-1.77l0.13,-1.64l0.45,-0.61l1.16,1.69l0.59,1.6Z",
|
5528 |
+
name: "Madagascar"
|
5529 |
+
},
|
5530 |
+
MA: {
|
5531 |
+
path: "M378.78,230.02l0.06,-0.59l0.92,-0.73l0.82,-1.37l-0.09,-1.04l0.79,-1.7l1.31,-1.58l0.96,-0.59l0.66,-1.55l0.09,-1.47l0.81,-1.48l1.72,-1.07l1.55,-2.69l1.16,-0.96l2.44,-0.39l1.94,-1.82l1.31,-0.78l2.09,-2.28l-0.51,-3.65l1.24,-3.7l1.5,-1.75l4.46,-2.57l2.37,-4.47l1.44,0.01l1.68,1.21l2.32,-0.19l3.47,0.65l0.8,1.54l0.16,1.71l0.86,2.96l0.56,0.59l-0.26,0.61l-3.05,0.44l-1.26,1.05l-1.33,0.22l-0.33,0.37l-0.09,1.78l-2.68,1.0l-1.07,1.42l-4.47,1.13l-4.04,2.01l-0.54,4.64l-1.15,0.06l-0.92,0.61l-1.96,-0.35l-2.42,0.54l-0.74,1.9l-0.86,0.4l-1.14,3.26l-3.53,3.01l-0.8,3.55l-0.96,1.1l-0.29,0.82l-4.95,0.18Z",
|
5532 |
+
name: "Morocco"
|
5533 |
+
},
|
5534 |
+
UZ: {
|
5535 |
+
path: "M598.64,172.75l-1.63,1.52l0.06,0.64l1.85,1.12l1.97,-0.64l2.21,1.17l-2.52,1.68l-2.59,-0.22l-0.18,-0.41l0.46,-1.23l-0.45,-0.53l-3.35,0.69l-2.1,3.51l-1.87,-0.12l-1.03,1.51l0.22,0.55l1.64,0.62l0.46,1.83l-1.19,2.49l-2.66,-0.53l0.05,-1.36l-0.26,-0.39l-3.3,-1.23l-2.56,-1.4l-4.4,-3.34l-1.34,-3.14l-1.08,-0.6l-2.58,0.13l-0.69,-0.44l-0.47,-2.52l-3.37,-1.6l-0.43,0.05l-2.07,1.72l-2.1,1.01l-0.21,0.47l0.28,1.01l-1.91,0.03l-0.09,-10.5l5.99,-1.7l6.19,3.54l2.71,2.84l7.05,-0.67l2.71,2.01l-0.17,2.81l0.39,0.42l0.9,0.02l0.44,2.14l0.38,0.32l2.94,0.09l0.95,1.42l1.28,-0.24l1.05,-2.04l4.43,-2.5Z",
|
5536 |
+
name: "Uzbekistan"
|
5537 |
+
},
|
5538 |
+
MM: {
|
5539 |
+
path: "M673.9,230.21l-1.97,1.57l-0.57,0.96l-1.4,0.6l-1.36,1.05l-1.99,0.36l-1.08,2.66l-0.91,0.4l-0.19,0.55l1.21,2.27l2.52,3.43l-0.79,1.91l-0.74,0.41l-0.17,0.52l0.65,1.37l1.61,1.95l0.25,2.58l0.9,2.13l-1.92,3.57l0.68,-2.25l-0.81,-1.74l0.19,-2.65l-1.05,-1.53l-1.24,-6.17l-1.12,-2.26l-0.6,-0.13l-4.34,3.02l-2.39,-0.65l0.77,-2.84l-0.52,-2.61l-1.91,-2.96l0.25,-0.75l-0.29,-0.51l-1.33,-0.3l-1.61,-1.93l-0.1,-1.3l0.82,-0.24l0.04,-1.64l1.02,-0.52l0.21,-0.45l-0.23,-0.95l0.54,-0.96l0.08,-2.22l1.46,0.45l0.47,-0.2l1.12,-2.19l0.16,-1.35l1.33,-2.16l-0.0,-1.52l2.89,-1.66l1.63,0.44l0.5,-0.44l-0.17,-1.4l0.64,-0.36l0.08,-1.04l0.77,-0.11l0.71,1.35l1.06,0.69l-0.03,3.86l-2.38,2.37l-0.3,3.15l0.46,0.43l2.28,-0.38l0.51,2.08l1.47,0.67l-0.6,1.8l0.19,0.48l2.97,1.48l1.64,-0.55l0.02,0.32Z",
|
5540 |
+
name: "Myanmar"
|
5541 |
+
},
|
5542 |
+
ML: {
|
5543 |
+
path: "M392.61,254.08l-0.19,-2.37l-0.99,-0.87l-0.44,-1.3l-0.09,-1.28l0.81,-0.58l0.35,-1.24l2.37,0.65l1.31,-0.47l0.86,0.15l0.66,-0.56l9.83,-0.04l0.38,-0.28l0.56,-1.8l-0.44,-0.65l-2.35,-21.95l3.27,-0.04l16.7,11.38l0.74,1.31l2.5,1.09l0.02,1.38l0.44,0.39l2.34,-0.21l0.01,5.38l-1.28,1.61l-0.26,1.49l-5.31,0.57l-1.07,0.92l-2.9,0.1l-0.86,-0.48l-1.38,0.36l-2.4,1.08l-0.6,0.87l-1.85,1.09l-0.43,0.7l-0.79,0.39l-1.44,-0.21l-0.81,0.84l-0.34,1.64l-1.91,2.02l-0.06,1.03l-0.67,1.22l0.13,1.16l-0.97,0.39l-0.23,-0.64l-0.52,-0.24l-1.35,0.4l-0.34,0.55l-2.69,-0.28l-0.37,-0.35l-0.02,-0.9l-0.65,-0.35l0.45,-0.64l-0.03,-0.53l-2.12,-2.44l-0.76,-0.01l-2.0,1.16l-0.78,-0.15l-0.8,-0.67l-1.21,0.23Z",
|
5544 |
+
name: "Mali"
|
5545 |
+
},
|
5546 |
+
MN: {
|
5547 |
+
path: "M676.61,146.48l3.81,1.68l5.67,-1.0l2.37,0.41l2.34,1.5l1.79,1.75l2.29,-0.03l3.12,0.52l2.47,-0.81l3.41,-0.59l3.53,-2.21l1.25,0.29l1.53,1.13l2.27,-0.21l-2.66,5.01l0.64,1.68l0.47,0.21l1.32,-0.38l2.38,0.48l2.02,-1.11l1.76,0.89l2.06,2.02l-0.13,0.53l-1.72,-0.29l-3.77,0.46l-1.88,0.99l-1.76,1.99l-3.71,1.17l-2.45,1.6l-3.83,-0.87l-0.41,0.17l-1.31,1.99l1.04,2.24l-1.52,0.9l-1.74,1.57l-2.79,1.02l-3.78,0.13l-4.05,1.05l-2.77,1.52l-1.16,-0.85l-2.94,0.0l-3.62,-1.79l-2.58,-0.49l-3.4,0.41l-5.12,-0.67l-2.63,0.06l-1.31,-1.6l-1.4,-3.0l-1.48,-0.33l-3.13,-1.94l-6.16,-0.93l-0.71,-1.06l0.86,-3.82l-1.93,-2.71l-3.5,-1.18l-1.95,-1.58l-0.5,-1.72l2.34,-0.52l4.75,-2.8l3.62,-1.47l2.18,0.97l2.46,0.05l1.81,1.53l2.46,0.12l3.95,0.71l2.43,-2.28l0.08,-0.48l-0.9,-1.72l2.24,-2.98l2.62,1.27l4.94,1.17l0.43,2.24Z",
|
5548 |
+
name: "Mongolia"
|
5549 |
+
},
|
5550 |
+
MK: {
|
5551 |
+
path: "M472.8,173.98l0.49,-0.71l3.57,-0.71l1.0,0.77l0.13,1.45l-0.65,0.53l-1.15,-0.05l-1.12,0.67l-1.39,0.22l-0.79,-0.55l-0.29,-1.03l0.19,-0.6Z",
|
5552 |
+
name: "Macedonia"
|
5553 |
+
},
|
5554 |
+
MW: {
|
5555 |
+
path: "M505.5,309.31l0.85,1.95l0.15,2.86l-0.69,1.65l0.71,1.8l0.06,1.28l0.49,0.64l0.07,1.06l0.4,0.55l0.8,-0.23l0.55,0.61l0.69,-0.21l0.34,0.6l0.19,2.94l-1.04,0.62l-0.54,1.25l-1.11,-1.08l-0.16,-1.56l0.51,-1.31l-0.32,-1.3l-0.99,-0.65l-0.82,0.12l-2.36,-1.64l0.63,-1.96l0.82,-1.18l-0.46,-2.01l0.9,-2.86l-0.94,-2.51l0.96,0.18l0.29,0.4Z",
|
5556 |
+
name: "Malawi"
|
5557 |
+
},
|
5558 |
+
MR: {
|
5559 |
+
path: "M407.36,220.66l-2.58,0.03l-0.39,0.44l2.42,22.56l0.36,0.43l-0.39,1.24l-9.75,0.04l-0.56,0.53l-0.91,-0.11l-1.27,0.45l-1.61,-0.66l-0.97,0.03l-0.36,0.29l-0.38,1.35l-0.42,0.23l-2.93,-3.4l-2.96,-1.52l-1.62,-0.03l-1.27,0.54l-1.12,-0.2l-0.65,0.4l-0.08,-0.49l0.68,-1.29l0.31,-2.43l-0.57,-3.91l0.23,-1.21l-0.69,-1.5l-1.15,-1.02l0.25,-0.39l9.58,0.02l0.4,-0.45l-0.46,-3.68l0.47,-1.04l2.12,-0.21l0.36,-0.4l-0.08,-6.4l7.81,0.13l0.41,-0.4l0.01,-3.31l7.76,5.35Z",
|
5560 |
+
name: "Mauritania"
|
5561 |
+
},
|
5562 |
+
UG: {
|
5563 |
+
path: "M498.55,276.32l0.7,-0.46l1.65,0.5l1.96,-0.57l1.7,0.01l1.45,-0.98l0.91,1.33l1.33,3.95l-2.57,4.03l-1.46,-0.4l-2.54,0.91l-1.37,1.61l-0.01,0.81l-2.42,-0.01l-2.26,1.01l-0.17,-1.59l0.58,-1.04l0.14,-1.94l1.37,-2.28l1.78,-1.58l-0.17,-0.65l-0.72,-0.24l0.13,-2.43Z",
|
5564 |
+
name: "Uganda"
|
5565 |
+
},
|
5566 |
+
MY: {
|
5567 |
+
path: "M717.47,273.46l-1.39,0.65l-2.12,-0.41l-2.88,-0.0l-0.38,0.28l-0.84,2.75l-0.99,0.96l-1.21,3.29l-1.73,0.45l-2.45,-0.68l-1.39,0.31l-1.33,1.15l-1.59,-0.14l-1.41,0.44l-1.44,-1.19l-0.18,-0.73l1.34,0.53l1.93,-0.47l0.75,-2.22l4.02,-1.03l2.75,-3.21l0.82,0.94l0.64,-0.05l0.4,-0.65l0.96,0.06l0.42,-0.36l0.24,-2.68l1.81,-1.64l1.21,-1.86l0.63,-0.01l1.07,1.05l0.34,1.28l3.44,1.35l-0.06,0.35l-1.37,0.1l-0.35,0.54l0.32,0.88ZM673.68,269.59l0.17,1.09l0.47,0.33l1.65,-0.3l0.87,-0.94l1.61,1.52l0.98,1.56l-0.12,2.81l0.41,2.29l0.95,0.9l0.88,2.44l-1.27,0.12l-5.1,-3.67l-0.34,-1.29l-1.37,-1.59l-0.33,-1.97l-0.88,-1.4l0.25,-1.68l-0.46,-1.05l1.63,0.84Z",
|
5568 |
+
name: "Malaysia"
|
5569 |
+
},
|
5570 |
+
MX: {
|
5571 |
+
path: "M133.12,200.41l0.2,0.47l9.63,3.33l6.96,-0.02l0.4,-0.4l0.0,-0.74l3.77,0.0l3.55,2.93l1.39,2.83l1.52,1.04l2.08,0.82l0.47,-0.14l1.46,-2.0l1.73,-0.04l1.59,0.98l2.05,3.35l1.47,1.56l1.26,3.14l2.18,1.02l2.26,0.58l-1.18,3.72l-0.42,5.04l1.79,4.89l1.62,1.89l0.61,1.52l1.2,1.42l2.55,0.66l1.37,1.1l7.54,-1.89l1.86,-1.3l1.14,-4.3l4.1,-1.21l3.57,-0.11l0.32,0.3l-0.06,0.94l-1.26,1.45l-0.67,1.71l0.38,0.7l-0.72,2.27l-0.49,-0.3l-1.0,0.08l-1.0,1.39l-0.47,-0.11l-0.53,0.47l-4.26,-0.02l-0.4,0.4l-0.0,1.06l-1.1,0.26l0.1,0.44l1.82,1.44l0.56,0.91l-3.19,0.21l-1.21,2.09l0.24,0.72l-0.2,0.44l-2.24,-2.18l-1.45,-0.93l-2.22,-0.69l-1.52,0.22l-3.07,1.16l-10.55,-3.85l-2.86,-1.96l-3.78,-0.92l-1.08,-1.19l-2.62,-1.43l-1.18,-1.54l-0.38,-0.81l0.66,-0.63l-0.18,-0.53l0.52,-0.76l0.01,-0.91l-2.0,-3.82l-2.21,-2.63l-2.53,-2.09l-1.19,-1.62l-2.2,-1.17l-0.3,-0.43l0.34,-1.48l-0.21,-0.45l-1.23,-0.6l-1.36,-1.2l-0.59,-1.78l-1.54,-0.47l-2.44,-2.55l-0.16,-0.9l-1.33,-2.03l-0.84,-1.99l-0.16,-1.33l-1.81,-1.1l-0.97,0.05l-1.31,-0.7l-0.57,0.22l-0.4,1.12l0.72,3.77l3.51,3.89l0.28,0.78l0.53,0.26l0.41,1.43l1.33,1.73l1.58,1.41l0.8,2.39l1.43,2.41l0.13,1.32l0.37,0.36l1.04,0.08l1.67,2.28l-0.85,0.76l-0.66,-1.51l-1.68,-1.54l-2.91,-1.87l0.06,-1.82l-0.54,-1.68l-2.91,-2.03l-0.55,0.09l-1.95,-1.1l-0.88,-0.94l0.68,-0.08l0.93,-1.01l0.08,-1.78l-1.93,-1.94l-1.46,-0.77l-3.75,-7.56l4.88,-0.42Z",
|
5572 |
+
name: "Mexico"
|
5573 |
+
},
|
5574 |
+
VU: {
|
5575 |
+
path: "M839.04,322.8l0.22,1.14l-0.44,0.03l-0.2,-1.45l0.42,0.27Z",
|
5576 |
+
name: "Vanuatu"
|
5577 |
+
},
|
5578 |
+
FR: {
|
5579 |
+
path: "M444.48,172.62l-0.64,1.78l-0.58,-0.31l-0.49,-1.72l0.4,-0.89l1.0,-0.72l0.3,1.85ZM429.64,147.1l1.78,1.58l1.46,-0.13l2.1,1.42l1.35,0.27l1.23,0.83l3.04,0.5l-1.03,1.85l-0.3,2.12l-0.41,0.32l-0.95,-0.24l-0.5,0.43l0.06,0.61l-1.81,1.92l-0.04,1.42l0.55,0.38l0.88,-0.36l0.61,0.97l-0.03,1.0l0.57,0.91l-0.75,1.09l0.65,2.39l1.27,0.57l-0.18,0.82l-2.01,1.53l-4.77,-0.8l-3.82,1.0l-0.53,1.85l-2.49,0.34l-2.71,-1.31l-1.16,0.57l-4.31,-1.29l-0.72,-0.86l1.19,-1.78l0.39,-6.45l-2.58,-3.3l-1.9,-1.66l-3.72,-1.23l-0.19,-1.72l2.81,-0.61l4.12,0.81l0.47,-0.48l-0.6,-2.77l1.94,0.95l5.83,-2.54l0.92,-2.74l1.6,-0.49l0.24,0.78l1.36,0.33l1.05,1.19ZM289.01,278.39l-0.81,0.8l-0.78,0.12l-0.5,-0.66l-0.56,-0.1l-0.91,0.6l-0.46,-0.22l1.09,-2.96l-0.96,-1.77l-0.17,-1.49l1.07,-1.77l2.32,0.75l2.51,2.01l0.3,0.74l-2.14,3.96Z",
|
5580 |
+
name: "France"
|
5581 |
+
},
|
5582 |
+
FI: {
|
5583 |
+
path: "M492.17,76.39l-0.23,3.5l3.52,2.63l-2.08,2.88l-0.02,0.44l2.8,4.56l-1.59,3.31l2.16,3.24l-0.94,2.39l0.14,0.47l3.44,2.51l-0.77,1.62l-7.52,6.95l-4.5,0.31l-4.38,1.37l-3.8,0.74l-1.44,-1.96l-2.17,-1.11l0.5,-3.66l-1.16,-3.33l1.09,-2.08l2.21,-2.42l5.67,-4.32l1.64,-0.83l0.21,-0.42l-0.46,-2.02l-3.38,-1.89l-0.75,-1.43l-0.22,-6.74l-6.79,-4.8l0.8,-0.62l2.54,2.12l3.46,-0.12l3.0,0.96l2.51,-2.11l1.17,-3.08l3.55,-1.38l2.76,1.53l-0.95,2.79Z",
|
5584 |
+
name: "Finland"
|
5585 |
+
},
|
5586 |
+
FJ: {
|
5587 |
+
path: "M871.53,326.34l-2.8,1.05l-0.08,-0.23l2.97,-1.21l-0.1,0.39ZM867.58,329.25l0.43,0.37l-0.27,0.88l-1.24,0.28l-1.04,-0.24l-0.14,-0.66l0.63,-0.58l0.92,0.26l0.7,-0.31Z",
|
5588 |
+
name: "Fiji"
|
5589 |
+
},
|
5590 |
+
FK: {
|
5591 |
+
path: "M274.36,425.85l1.44,1.08l-0.47,0.73l-3.0,0.89l-0.96,-1.0l-0.52,-0.05l-1.83,1.29l-0.73,-0.88l2.46,-1.64l1.93,0.76l1.67,-1.19Z",
|
5592 |
+
name: "Falkland Is."
|
5593 |
+
},
|
5594 |
+
NI: {
|
5595 |
+
path: "M202.33,252.67l0.81,-0.18l1.03,-1.02l-0.04,-0.88l0.68,-0.0l0.63,-0.54l0.97,0.22l1.53,-1.26l0.58,-0.99l1.17,0.34l2.41,-0.94l0.13,1.32l-0.81,1.94l0.1,2.74l-0.36,0.37l-0.11,1.75l-0.47,0.81l0.18,1.14l-1.73,-0.85l-0.71,0.27l-1.47,-0.6l-0.52,0.16l-4.01,-3.81Z",
|
5596 |
+
name: "Nicaragua"
|
5597 |
+
},
|
5598 |
+
NL: {
|
5599 |
+
path: "M430.31,143.39l0.6,-0.5l2.13,-4.8l3.2,-1.33l1.74,0.08l0.33,0.8l-0.59,2.92l-0.5,0.99l-1.26,0.0l-0.4,0.45l0.33,2.7l-2.2,-1.78l-2.62,0.58l-0.75,-0.11Z",
|
5600 |
+
name: "Netherlands"
|
5601 |
+
},
|
5602 |
+
NO: {
|
5603 |
+
path: "M491.44,67.41l6.8,2.89l-2.29,0.86l-0.15,0.65l2.33,2.38l-4.98,1.79l0.84,-2.45l-0.18,-0.48l-3.55,-1.8l-3.89,1.52l-1.42,3.38l-2.12,1.72l-2.64,-1.0l-3.11,0.21l-2.66,-2.22l-0.5,-0.01l-1.41,1.1l-1.44,0.17l-0.35,0.35l-0.32,2.47l-4.32,-0.64l-0.44,0.29l-0.58,2.11l-2.45,0.2l-4.15,7.68l-3.88,5.76l0.78,1.62l-0.64,1.16l-2.24,-0.06l-0.38,0.24l-1.66,3.89l0.15,5.17l1.57,2.04l-0.78,4.16l-2.02,2.48l-0.85,1.63l-1.3,-1.75l-0.58,-0.07l-4.87,4.19l-3.1,0.79l-3.16,-1.7l-0.85,-3.77l-0.77,-8.55l2.14,-2.31l6.55,-3.27l5.02,-4.17l10.63,-13.84l10.98,-8.7l5.35,-1.91l4.34,0.12l3.69,-3.64l4.49,0.19l4.37,-0.89ZM484.55,20.04l4.26,1.75l-3.1,2.55l-7.1,0.65l-7.08,-0.9l-0.37,-1.31l-0.37,-0.29l-3.44,-0.1l-2.08,-2.0l6.87,-1.44l3.9,1.31l2.39,-1.64l6.13,1.4ZM481.69,33.93l-4.45,1.74l-3.54,-0.99l1.12,-0.9l0.05,-0.58l-1.06,-1.22l4.22,-0.89l1.09,1.97l2.57,0.87ZM466.44,24.04l7.43,3.77l-5.41,1.86l-1.58,4.08l-2.26,1.2l-1.12,4.11l-2.61,0.18l-4.79,-2.86l1.84,-1.54l-0.1,-0.68l-3.69,-1.53l-4.77,-4.51l-1.73,-3.89l6.11,-1.82l1.54,1.92l3.57,-0.08l1.2,-1.96l3.32,-0.18l3.05,1.92Z",
|
5604 |
+
name: "Norway"
|
5605 |
+
},
|
5606 |
+
NA: {
|
5607 |
+
path: "M474.26,330.66l-0.97,0.04l-0.38,0.4l-0.07,8.9l-2.09,0.08l-0.39,0.4l-0.0,17.42l-1.98,1.23l-1.17,0.17l-2.44,-0.66l-0.48,-1.13l-0.99,-0.74l-0.54,0.05l-0.9,1.01l-1.53,-1.68l-0.93,-1.88l-1.99,-8.56l-0.06,-3.12l-0.33,-1.52l-2.3,-3.34l-1.91,-4.83l-1.96,-2.43l-0.12,-1.57l2.33,-0.79l1.43,0.07l1.81,1.13l10.23,-0.25l1.84,1.23l5.87,0.35ZM474.66,330.64l6.51,-1.6l1.9,0.39l-1.69,0.4l-1.31,0.83l-1.12,-0.94l-4.29,0.92Z",
|
5608 |
+
name: "Namibia"
|
5609 |
+
},
|
5610 |
+
NC: {
|
5611 |
+
path: "M838.78,341.24l-0.33,0.22l-2.9,-1.75l-3.26,-3.37l1.65,0.83l4.85,4.07Z",
|
5612 |
+
name: "New Caledonia"
|
5613 |
+
},
|
5614 |
+
NE: {
|
5615 |
+
path: "M454.75,226.53l1.33,1.37l0.48,0.07l1.27,-0.7l0.53,3.52l0.94,0.83l0.17,0.92l0.81,0.69l-0.44,0.95l-0.96,5.26l-0.13,3.22l-3.04,2.31l-1.22,3.57l1.02,1.24l-0.0,1.46l0.39,0.4l1.13,0.04l-0.9,1.25l-1.47,-2.42l-0.86,-0.29l-2.09,1.37l-1.74,-0.67l-1.45,-0.17l-0.85,0.35l-1.36,-0.07l-1.64,1.09l-1.06,0.05l-2.94,-1.28l-1.44,0.59l-1.01,-0.03l-0.97,-0.94l-2.7,-0.98l-2.69,0.3l-0.87,0.64l-0.47,1.6l-0.75,1.16l-0.12,1.53l-1.57,-1.1l-1.31,0.24l0.03,-0.81l-0.32,-0.41l-2.59,-0.52l-0.15,-1.16l-1.35,-1.6l-0.29,-1.0l0.13,-0.84l1.29,-0.08l1.08,-0.92l3.31,-0.22l2.22,-0.41l0.32,-0.34l0.2,-1.47l1.39,-1.88l-0.01,-5.66l3.36,-1.12l7.24,-5.12l8.42,-4.92l3.69,1.06Z",
|
5616 |
+
name: "Niger"
|
5617 |
+
},
|
5618 |
+
NG: {
|
5619 |
+
path: "M456.32,253.89l0.64,0.65l-0.28,1.04l-2.11,2.01l-2.03,5.18l-1.37,1.16l-1.15,3.18l-1.33,0.66l-1.46,-0.97l-1.21,0.16l-1.38,1.36l-0.91,0.24l-1.79,4.06l-2.33,0.81l-1.11,-0.07l-0.86,0.5l-1.71,-0.05l-1.19,-1.39l-0.89,-1.89l-1.77,-1.66l-3.95,-0.08l0.07,-5.21l0.42,-1.43l1.95,-2.3l-0.14,-0.91l0.43,-1.18l-0.53,-1.41l0.25,-2.92l0.72,-1.07l0.32,-1.34l0.46,-0.39l2.47,-0.28l2.34,0.89l1.15,1.02l1.28,0.04l1.22,-0.58l3.03,1.27l1.49,-0.14l1.36,-1.0l1.33,0.07l0.82,-0.35l3.45,0.8l1.82,-1.32l1.84,2.67l0.66,0.16Z",
|
5620 |
+
name: "Nigeria"
|
5621 |
+
},
|
5622 |
+
NZ: {
|
5623 |
+
path: "M857.8,379.65l1.86,3.12l0.44,0.18l0.3,-0.38l0.03,-1.23l0.38,0.27l0.57,2.31l2.02,0.94l1.81,0.27l1.57,-1.06l0.7,0.18l-1.15,3.59l-1.98,0.11l-0.74,1.2l0.2,1.11l-2.42,3.98l-1.49,0.92l-1.04,-0.85l1.21,-2.05l-0.81,-2.01l-2.63,-1.25l0.04,-0.57l1.82,-1.19l0.43,-2.34l-0.16,-2.03l-0.95,-1.82l-0.06,-0.72l-3.11,-3.64l-0.79,-1.52l1.56,1.45l1.76,0.66l0.65,2.34ZM853.83,393.59l0.57,1.24l0.59,0.16l1.42,-0.97l0.46,0.79l0.0,1.03l-2.47,3.48l-1.26,1.2l-0.06,0.5l0.55,0.87l-1.41,0.07l-2.33,1.38l-2.03,5.02l-3.02,2.16l-2.06,-0.06l-1.71,-1.04l-2.47,-0.2l-0.27,-0.73l1.22,-2.1l3.05,-2.94l1.62,-0.59l4.02,-2.82l1.57,-1.67l1.07,-2.16l0.88,-0.7l0.48,-1.75l1.24,-0.97l0.35,0.79Z",
|
5624 |
+
name: "New Zealand"
|
5625 |
+
},
|
5626 |
+
NP: {
|
5627 |
+
path: "M641.14,213.62l0.01,3.19l-1.74,0.04l-4.8,-0.86l-1.58,-1.39l-3.37,-0.34l-7.65,-3.7l0.8,-2.09l2.33,-1.7l1.77,0.75l2.49,1.76l1.38,0.41l0.99,1.35l1.9,0.52l1.99,1.17l5.49,0.9Z",
|
5628 |
+
name: "Nepal"
|
5629 |
+
},
|
5630 |
+
CI: {
|
5631 |
+
path: "M407.4,259.27l0.86,0.42l0.56,0.9l1.13,0.53l1.19,-0.61l0.97,-0.08l1.42,0.54l0.6,3.24l-1.03,2.08l-0.65,2.84l1.06,2.33l-0.06,0.53l-2.54,-0.47l-1.66,0.03l-3.06,0.46l-4.11,1.6l0.32,-3.06l-1.18,-1.31l-1.32,-0.66l0.42,-0.85l-0.2,-1.4l0.5,-0.67l0.01,-1.59l0.84,-0.32l0.26,-0.5l-1.15,-3.01l0.12,-0.5l0.51,-0.25l0.66,0.31l1.93,0.02l0.67,-0.71l0.71,-0.14l0.25,0.69l0.57,0.22l1.4,-0.61Z",
|
5632 |
+
name: "Côte d'Ivoire"
|
5633 |
+
},
|
5634 |
+
CH: {
|
5635 |
+
path: "M444.62,156.35l-0.29,0.87l0.18,0.53l1.13,0.58l1.0,0.1l-0.1,0.65l-0.79,0.38l-1.72,-0.37l-0.45,0.23l-0.45,1.04l-0.75,0.06l-0.84,-0.4l-1.32,1.0l-0.96,0.12l-0.88,-0.55l-0.81,-1.3l-0.49,-0.16l-0.63,0.26l0.02,-0.65l1.71,-1.66l0.1,-0.56l0.93,0.08l0.58,-0.46l1.99,0.02l0.66,-0.61l2.19,0.79Z",
|
5636 |
+
name: "Switzerland"
|
5637 |
+
},
|
5638 |
+
CO: {
|
5639 |
+
path: "M242.07,254.93l-1.7,0.59l-0.59,1.18l-1.7,1.69l-0.38,1.93l-0.67,1.43l0.31,0.57l1.03,0.13l0.25,0.9l0.57,0.64l-0.04,2.34l1.64,1.42l3.16,-0.24l1.26,0.28l1.67,2.06l0.41,0.13l4.09,-0.39l0.45,0.22l-0.92,1.95l-0.2,1.8l0.52,1.83l0.75,1.05l-1.12,1.1l0.07,0.63l0.84,0.51l0.74,1.29l-0.39,-0.45l-0.59,-0.01l-0.71,0.74l-4.71,-0.05l-0.4,0.41l0.03,1.57l0.33,0.39l1.11,0.2l-1.68,0.4l-0.29,0.38l-0.01,1.82l1.16,1.14l0.34,1.25l-1.05,7.05l-1.04,-0.87l1.26,-1.99l-0.13,-0.56l-2.18,-1.23l-1.38,0.2l-1.14,-0.38l-1.27,0.61l-1.55,-0.26l-1.38,-2.46l-1.23,-0.75l-0.85,-1.2l-1.67,-1.19l-0.86,0.13l-2.11,-1.32l-1.01,0.31l-1.8,-0.29l-0.52,-0.91l-3.09,-1.68l0.77,-0.52l-0.1,-1.12l0.41,-0.64l1.34,-0.32l2.0,-2.88l-0.11,-0.57l-0.66,-0.43l0.39,-1.38l-0.52,-2.1l0.49,-0.83l-0.4,-2.13l-0.97,-1.35l0.17,-0.66l0.86,-0.08l0.47,-0.75l-0.46,-1.63l1.41,-0.07l1.8,-1.69l0.93,-0.24l0.3,-0.38l0.45,-2.76l1.22,-1.0l1.44,-0.04l0.45,-0.5l1.91,0.12l2.93,-1.84l1.15,-1.14l0.91,0.46l-0.25,0.45Z",
|
5640 |
+
name: "Colombia"
|
5641 |
+
},
|
5642 |
+
CN: {
|
5643 |
+
path: "M740.23,148.97l4.57,1.3l2.8,2.17l0.98,2.9l0.38,0.27l3.8,0.0l2.32,-1.28l3.29,-0.75l-0.96,2.09l-1.02,1.28l-0.85,3.4l-1.52,2.73l-2.76,-0.5l-2.4,1.13l-0.21,0.45l0.64,2.57l-0.32,3.2l-0.94,0.06l-0.37,0.89l-0.91,-1.01l-0.64,0.07l-0.92,1.57l-3.73,1.25l-0.26,0.48l0.26,1.06l-1.5,-0.08l-1.09,-0.86l-0.56,0.06l-1.67,2.06l-2.7,1.56l-2.03,1.88l-3.4,0.83l-1.93,1.4l-1.15,0.34l0.33,-0.7l-0.41,-0.89l1.79,-1.79l0.02,-0.54l-1.32,-1.56l-0.48,-0.1l-2.24,1.09l-2.83,2.06l-1.51,1.83l-2.28,0.13l-1.55,1.49l-0.04,0.5l1.32,1.97l2.0,0.58l0.31,1.35l1.98,0.84l3.0,-1.96l2.0,1.02l1.49,0.11l0.22,0.83l-3.37,0.86l-1.12,1.48l-2.5,1.52l-1.29,1.99l0.14,0.56l2.57,1.48l0.97,2.7l3.17,4.63l-0.03,1.66l-1.35,0.65l-0.2,0.51l0.6,1.47l1.4,0.91l-0.89,3.82l-1.43,0.38l-3.85,6.44l-2.27,3.11l-6.78,4.57l-2.73,0.29l-1.45,1.04l-0.62,-0.61l-0.55,-0.01l-1.36,1.25l-3.39,1.27l-2.61,0.4l-1.1,2.79l-0.81,0.09l-0.49,-1.42l0.5,-0.85l-0.25,-0.59l-3.36,-0.84l-1.3,0.4l-2.31,-0.62l-0.94,-0.84l0.33,-1.28l-0.3,-0.49l-2.19,-0.46l-1.13,-0.93l-0.47,-0.02l-2.06,1.36l-4.29,0.28l-2.76,1.05l-0.28,0.43l0.32,2.53l-0.59,-0.03l-0.19,-1.34l-0.55,-0.34l-1.68,0.7l-2.46,-1.23l0.62,-1.87l-0.26,-0.51l-1.37,-0.44l-0.54,-2.22l-0.45,-0.3l-2.13,0.35l0.24,-2.48l2.39,-2.4l0.03,-4.31l-1.19,-0.92l-0.78,-1.49l-0.41,-0.21l-1.41,0.19l-1.98,-0.3l0.46,-1.07l-1.17,-1.7l-0.55,-0.11l-1.63,1.05l-2.25,-0.57l-2.89,1.73l-2.25,1.98l-1.75,0.29l-1.17,-0.71l-3.31,-0.65l-1.48,0.79l-1.04,1.27l-0.12,-1.17l-0.54,-0.34l-1.44,0.54l-5.55,-0.86l-1.98,-1.16l-1.89,-0.54l-0.99,-1.35l-1.34,-0.37l-2.55,-1.79l-2.01,-0.84l-1.21,0.56l-5.57,-3.45l-0.53,-2.31l1.19,0.25l0.48,-0.37l0.08,-1.42l-0.98,-1.56l0.15,-2.44l-2.69,-3.32l-4.12,-1.23l-0.67,-2.0l-1.92,-1.48l-0.38,-0.7l-0.51,-3.01l-1.52,-0.66l-0.7,0.13l-0.48,-2.05l0.55,-0.51l-0.09,-0.82l2.03,-1.19l1.6,-0.54l2.56,0.38l0.42,-0.22l0.85,-1.7l3.0,-0.33l1.1,-1.26l4.05,-1.77l0.39,-0.91l-0.17,-1.44l1.45,-0.67l0.2,-0.52l-2.07,-4.9l4.51,-1.12l1.37,-0.73l1.89,-5.51l4.98,0.86l1.51,-1.7l0.11,-2.87l1.99,-0.38l1.83,-2.06l0.49,-0.13l0.68,2.08l2.23,1.77l3.44,1.16l1.55,2.29l-0.92,3.49l0.96,1.67l6.54,1.13l2.95,1.87l1.47,0.35l1.06,2.62l1.53,1.91l3.05,0.08l5.14,0.67l3.37,-0.41l2.36,0.43l3.65,1.8l3.06,0.04l1.45,0.88l2.87,-1.59l3.95,-1.02l3.83,-0.14l3.06,-1.14l1.77,-1.6l1.72,-1.01l0.17,-0.49l-1.1,-2.05l1.02,-1.54l4.02,0.8l2.45,-1.61l3.76,-1.19l1.96,-2.13l1.63,-0.83l3.51,-0.4l1.92,0.34l0.46,-0.3l0.17,-1.5l-2.27,-2.22l-2.11,-1.09l-2.18,1.11l-2.32,-0.47l-1.29,0.32l-0.4,-0.82l2.73,-5.16l3.02,1.06l3.53,-2.06l0.18,-1.68l2.16,-3.35l1.49,-1.35l-0.03,-1.85l-1.07,-0.85l1.54,-1.26l2.98,-0.59l3.23,-0.09l3.64,0.99l2.04,1.16l3.29,6.71l0.92,3.19ZM696.92,237.31l-1.87,1.08l-1.63,-0.64l-0.06,-1.79l1.03,-0.98l2.58,-0.69l1.16,0.05l0.3,0.54l-0.98,1.06l-0.53,1.37Z",
|
5644 |
+
name: "China"
|
5645 |
+
},
|
5646 |
+
CM: {
|
5647 |
+
path: "M457.92,257.49l1.05,1.91l-1.4,0.16l-1.05,-0.23l-0.45,0.22l-0.54,1.19l0.08,0.45l1.48,1.47l1.05,0.45l1.01,2.46l-1.52,2.99l-0.68,0.68l-0.13,3.69l2.38,3.84l1.09,0.8l0.24,2.48l-3.67,-1.14l-11.27,-0.13l0.23,-1.79l-0.98,-1.66l-1.19,-0.54l-0.44,-0.97l-0.6,-0.42l1.71,-4.27l0.75,-0.13l1.38,-1.36l0.65,-0.03l1.71,0.99l1.93,-1.12l1.14,-3.18l1.38,-1.17l2.0,-5.14l2.17,-2.13l0.3,-1.64l-0.86,-0.88l0.03,-0.33l0.94,1.28l0.07,3.22Z",
|
5648 |
+
name: "Cameroon"
|
5649 |
+
},
|
5650 |
+
CL: {
|
5651 |
+
path: "M246.5,429.18l-3.14,1.83l-0.57,3.16l-0.64,0.05l-2.68,-1.06l-2.82,-2.33l-3.04,-1.89l-0.69,-1.85l0.63,-2.14l-1.21,-2.11l-0.31,-5.37l1.01,-2.91l2.57,-2.38l-0.18,-0.68l-3.16,-0.77l2.05,-2.47l0.77,-4.65l2.32,0.9l0.54,-0.29l1.31,-6.31l-0.22,-0.44l-1.68,-0.8l-0.56,0.28l-0.7,3.36l-0.81,-0.22l1.56,-9.41l1.15,-2.24l-0.71,-2.82l-0.18,-2.84l1.01,-0.33l3.26,-9.14l1.07,-4.22l-0.56,-4.21l0.74,-2.34l-0.29,-3.27l1.46,-3.34l2.04,-16.59l-0.66,-7.76l1.03,-0.53l0.54,-0.9l0.79,1.14l0.32,1.78l1.25,1.16l-0.69,2.55l1.33,2.9l0.97,3.59l0.46,0.29l1.5,-0.3l0.11,0.23l-0.76,2.44l-2.57,1.23l-0.23,0.37l0.08,4.33l-0.46,0.77l0.56,1.21l-1.58,1.51l-1.68,2.62l-0.89,2.47l0.2,2.7l-1.48,2.73l1.12,5.09l0.64,0.61l-0.01,2.29l-1.38,2.68l0.01,2.4l-1.89,2.04l0.02,2.75l0.69,2.57l-1.43,1.13l-1.26,5.68l0.39,3.51l-0.97,0.89l0.58,3.5l1.02,1.14l-0.65,1.02l0.15,0.57l1.0,0.53l0.16,0.69l-1.03,0.85l0.26,1.75l-0.89,4.03l-1.31,2.66l0.24,1.75l-0.71,1.83l-1.99,1.7l0.3,3.67l0.88,1.19l1.58,0.01l0.01,2.21l1.04,1.95l5.98,0.63ZM248.69,430.79l0.0,7.33l0.4,0.4l3.52,0.05l-0.44,0.75l-1.94,0.98l-2.49,-0.37l-1.88,-1.06l-2.55,-0.49l-5.59,-3.71l-2.38,-2.63l4.1,2.48l3.32,1.23l0.45,-0.12l1.29,-1.57l0.83,-2.32l2.05,-1.24l1.31,0.29Z",
|
5652 |
+
name: "Chile"
|
5653 |
+
},
|
5654 |
+
CA: {
|
5655 |
+
path: "M280.06,145.6l-1.67,2.88l0.07,0.49l0.5,0.04l1.46,-0.98l1.0,0.42l-0.56,0.72l0.17,0.62l2.22,0.89l1.35,-0.71l1.95,0.78l-0.66,2.01l0.5,0.51l1.32,-0.42l0.98,3.17l-0.91,2.41l-0.8,0.08l-1.23,-0.45l0.47,-2.25l-0.89,-0.83l-0.48,0.06l-2.78,2.63l-0.34,-0.02l1.02,-0.85l-0.14,-0.69l-2.4,-0.77l-7.4,0.08l-0.17,-0.41l1.3,-0.94l0.02,-0.64l-0.73,-0.58l1.85,-1.74l2.57,-5.16l1.47,-1.79l1.99,-1.05l0.46,0.06l-1.53,2.45ZM68.32,74.16l4.13,0.95l4.02,2.14l2.61,0.4l2.47,-1.89l2.88,-1.31l3.85,0.48l3.71,-1.94l3.82,-1.04l1.56,1.68l0.49,0.08l1.87,-1.04l0.65,-1.98l1.24,0.35l4.16,3.94l0.54,0.01l2.75,-2.49l0.26,2.59l0.49,0.35l3.08,-0.73l1.04,-1.27l2.73,0.23l3.83,1.86l5.86,1.61l3.47,0.75l2.44,-0.26l2.73,1.78l-2.98,1.81l-0.19,0.41l0.31,0.32l4.53,0.92l6.87,-0.5l2.0,-0.69l2.49,2.39l0.53,0.02l2.72,-2.16l-0.02,-0.64l-2.16,-1.54l1.15,-1.06l4.83,-0.61l1.84,0.95l2.48,2.31l3.01,-0.23l4.55,1.92l3.85,-0.67l3.61,0.1l0.41,-0.44l-0.25,-2.36l1.79,-0.61l3.49,1.32l-0.01,3.77l0.31,0.39l0.45,-0.22l1.48,-3.16l1.74,0.1l0.41,-0.3l1.13,-4.37l-2.78,-3.11l-2.8,-1.74l0.19,-4.64l2.71,-3.07l2.98,0.67l2.41,1.95l3.19,4.8l-1.99,1.97l0.21,0.68l4.33,0.84l-0.01,4.15l0.25,0.37l0.44,-0.09l3.07,-3.15l2.54,2.39l-0.61,3.33l2.42,2.88l0.61,0.0l2.61,-3.08l1.88,-3.82l0.17,-4.58l6.72,0.94l3.13,2.04l0.13,1.82l-1.76,2.19l-0.01,0.49l1.66,2.16l-0.26,1.71l-4.68,2.8l-3.28,0.61l-2.47,-1.2l-0.55,0.23l-0.73,2.04l-2.38,3.43l-0.74,1.77l-2.74,2.57l-3.44,0.25l-2.21,1.78l-0.28,2.53l-2.82,0.55l-3.12,3.22l-2.72,4.31l-1.03,3.17l-0.14,4.31l0.33,0.41l3.44,0.57l2.24,5.95l0.45,0.23l3.4,-0.69l4.52,1.51l2.43,1.31l1.91,1.73l3.1,0.96l2.62,1.46l6.6,0.54l-0.35,2.74l0.81,3.53l1.81,3.78l3.83,3.3l0.45,0.04l2.1,-1.28l1.37,-3.69l-1.31,-5.38l-1.45,-1.58l3.57,-1.47l2.84,-2.46l1.52,-2.8l-0.25,-2.55l-1.7,-3.07l-2.85,-2.61l2.8,-3.95l-1.08,-3.37l-0.79,-5.67l1.36,-0.7l6.76,1.41l2.12,-0.96l5.12,3.36l1.05,1.61l4.08,0.26l-0.06,2.87l0.83,4.7l0.3,0.32l2.16,0.54l1.73,2.06l0.5,0.09l3.63,-2.03l2.52,-4.19l1.26,-1.32l7.6,11.72l-0.92,2.04l0.16,0.51l3.3,1.97l2.22,1.98l4.1,0.98l1.43,0.99l0.95,2.79l2.1,0.68l0.84,1.08l0.17,3.45l-3.37,2.26l-4.22,1.24l-3.06,2.63l-4.06,0.51l-5.35,-0.69l-6.39,0.2l-2.3,2.41l-3.26,1.51l-6.47,7.15l-0.06,0.48l0.44,0.19l2.13,-0.52l4.17,-4.24l5.12,-2.62l3.52,-0.3l1.69,1.21l-2.12,2.21l0.81,3.47l1.02,2.61l3.47,1.6l4.14,-0.45l2.15,-2.8l0.26,1.48l1.14,0.8l-2.56,1.69l-5.5,1.82l-2.54,1.27l-2.74,2.15l-1.4,-0.16l-0.07,-2.01l4.14,-2.44l0.18,-0.45l-0.39,-0.29l-6.63,0.45l-1.39,-1.49l-0.14,-4.43l-1.11,-0.91l-1.82,0.39l-0.66,-0.66l-0.6,0.03l-1.91,2.39l-0.82,2.52l-0.8,1.27l-1.67,0.56l-0.46,0.76l-8.31,0.07l-1.21,0.62l-2.35,1.97l-0.71,-0.14l-1.37,0.96l-1.12,-0.48l-4.74,1.26l-0.9,1.17l0.21,0.62l1.73,0.3l-1.81,0.31l-1.85,0.81l-2.11,-0.13l-2.95,1.78l-0.69,-0.09l1.39,-2.1l1.73,-1.21l0.1,-2.29l1.16,-1.99l0.49,0.53l2.03,0.42l1.2,-1.16l0.02,-0.47l-2.66,-3.51l-2.28,-0.61l-5.64,-0.71l-0.4,-0.57l-0.79,0.13l0.2,-0.41l-0.22,-0.55l-0.68,-0.26l0.19,-1.26l-0.78,-0.73l0.31,-0.64l-0.29,-0.57l-2.6,-0.44l-0.75,-1.63l-0.94,-0.66l-4.31,-0.65l-1.13,1.19l-1.48,0.59l-0.85,1.06l-2.83,-0.76l-2.09,0.39l-2.39,-0.97l-4.24,-0.7l-0.57,-0.4l-0.41,-1.63l-0.4,-0.3l-0.85,0.02l-0.39,0.4l-0.01,0.85l-69.13,-0.01l-6.51,-4.52l-4.5,-1.38l-1.26,-2.66l0.33,-1.93l-0.23,-0.43l-3.01,-1.35l-0.55,-2.77l-2.89,-2.38l-0.04,-1.45l1.39,-1.83l-0.28,-2.55l-4.16,-2.2l-4.07,-6.6l-4.02,-3.22l-1.3,-1.88l-0.5,-0.13l-2.51,1.21l-2.23,1.87l-3.85,-3.88l-2.44,-1.04l-2.22,-0.13l0.03,-37.49ZM260.37,148.65l3.04,0.76l2.26,1.2l-3.78,-0.95l-1.53,-1.01ZM249.4,3.81l6.68,0.49l5.32,0.79l4.26,1.57l-0.07,1.1l-5.85,2.53l-6.02,1.21l-2.39,1.39l-0.18,0.45l0.39,0.29l4.01,-0.02l-4.65,2.82l-4.2,1.74l-4.19,4.59l-5.03,0.92l-1.67,1.15l-7.47,0.59l-0.37,0.37l0.32,0.42l2.41,0.49l-0.81,0.47l-0.12,0.59l1.83,2.41l-2.02,1.59l-3.81,1.51l-1.32,2.16l-3.38,1.53l-0.22,0.48l0.35,1.19l0.4,0.29l3.88,-0.18l0.03,0.61l-6.33,2.95l-6.41,-1.4l-7.43,0.79l-3.72,-0.62l-4.4,-0.25l-0.23,-1.83l4.29,-1.11l0.28,-0.51l-1.1,-3.45l1.0,-0.25l6.58,2.28l0.47,-0.16l-0.05,-0.49l-3.41,-3.45l-3.58,-0.98l1.48,-1.55l4.34,-1.29l0.97,-2.19l-0.16,-0.48l-3.42,-2.13l-0.81,-2.26l6.2,0.22l2.24,0.58l3.91,-2.1l0.2,-0.43l-0.35,-0.32l-5.64,-0.67l-8.73,0.36l-4.26,-1.9l-2.12,-2.4l-2.78,-1.66l-0.41,-1.52l3.31,-1.03l2.93,-0.2l4.91,-0.99l3.7,-2.27l2.87,0.3l2.62,1.67l0.56,-0.14l1.82,-3.2l3.13,-0.94l4.44,-0.69l7.53,-0.26l1.48,0.67l7.19,-1.06l10.8,0.79ZM203.85,57.54l0.01,0.42l1.97,2.97l0.68,-0.02l2.24,-3.72l5.95,-1.86l4.01,4.64l-0.35,2.91l0.5,0.43l4.95,-1.36l2.32,-1.8l5.31,2.28l3.27,2.11l0.3,1.84l0.48,0.33l4.42,-0.99l2.64,2.87l5.97,1.77l2.06,1.72l2.11,3.71l-4.19,1.86l-0.01,0.73l5.9,2.83l3.94,0.94l3.78,3.95l3.46,0.25l-0.63,2.37l-4.11,4.47l-2.76,-1.56l-3.9,-3.94l-3.59,0.41l-0.33,0.34l-0.19,2.72l2.63,2.38l3.42,1.89l0.94,0.97l1.55,3.75l-0.7,2.29l-2.74,-0.92l-6.25,-3.15l-0.51,0.13l0.05,0.52l6.07,5.69l0.18,0.59l-6.09,-1.39l-5.31,-2.24l-2.63,-1.66l0.6,-0.77l-0.12,-0.6l-7.39,-4.01l-0.59,0.37l0.03,0.79l-6.73,0.6l-1.69,-1.1l1.36,-2.46l4.51,-0.07l5.15,-0.52l0.31,-0.6l-0.74,-1.3l0.78,-1.84l3.21,-4.05l-0.67,-2.35l-1.11,-1.6l-3.84,-2.1l-4.35,-1.28l0.91,-0.63l0.06,-0.61l-2.65,-2.75l-2.34,-0.36l-1.89,-1.46l-0.53,0.03l-1.24,1.23l-4.36,0.55l-9.04,-0.99l-9.26,-1.98l-1.6,-1.22l2.22,-1.77l0.13,-0.44l-0.38,-0.27l-3.22,-0.02l-0.72,-4.25l1.83,-4.04l2.42,-1.85l5.5,-1.1l-1.39,2.35ZM261.19,159.33l2.07,0.61l1.44,-0.04l-1.15,0.63l-2.94,-1.23l-0.4,-0.68l0.36,-0.37l0.61,1.07ZM230.83,84.39l-2.37,0.18l-0.49,-1.63l0.93,-2.09l1.94,-0.51l1.62,0.99l0.02,1.52l-1.66,1.54ZM229.43,58.25l0.11,0.65l-4.87,-0.21l-2.72,0.62l-3.1,-2.57l0.08,-1.26l0.86,-0.23l5.57,0.51l4.08,2.5ZM222.0,105.02l-0.72,1.49l-0.63,-0.19l-0.48,-0.84l0.81,-0.99l0.65,0.05l0.37,0.46ZM183.74,38.32l2.9,1.7l4.79,-0.01l1.84,1.46l-0.49,1.68l0.23,0.48l2.82,1.14l1.76,1.26l7.01,0.65l4.1,-1.1l5.03,-0.43l3.93,0.35l2.48,1.77l0.46,1.7l-1.3,1.1l-3.56,1.01l-3.23,-0.59l-7.17,0.76l-5.09,0.09l-3.99,-0.6l-6.42,-1.54l-0.79,-2.51l-0.3,-2.49l-2.64,-2.5l-5.32,-0.72l-2.52,-1.4l0.68,-1.57l4.78,0.31ZM207.38,91.35l0.4,1.56l0.56,0.26l1.06,-0.52l1.32,0.96l5.42,2.57l0.2,1.68l0.46,0.35l1.68,-0.28l1.15,0.85l-1.55,0.87l-3.61,-0.88l-1.32,-1.69l-0.57,-0.06l-2.45,2.1l-3.12,1.79l-0.7,-1.87l-0.42,-0.26l-2.16,0.24l1.39,-1.39l0.32,-3.14l0.76,-3.35l1.18,0.22ZM215.49,102.6l-2.67,1.95l-1.4,-0.07l-0.3,-0.58l1.53,-1.48l2.84,0.18ZM202.7,24.12l2.53,1.59l-2.87,1.4l-4.53,4.05l-4.25,0.38l-5.03,-0.68l-2.45,-2.04l0.03,-1.62l1.82,-1.37l0.14,-0.45l-0.38,-0.27l-4.45,0.04l-2.59,-1.76l-1.41,-2.29l1.57,-2.32l1.62,-1.66l2.44,-0.39l0.25,-0.65l-0.6,-0.74l4.86,-0.25l3.24,3.11l8.16,2.3l1.9,3.61ZM187.47,59.2l-2.76,3.49l-2.38,-0.15l-1.44,-3.84l0.04,-2.2l1.19,-1.88l2.3,-1.23l5.07,0.17l4.11,1.02l-3.24,3.72l-2.88,0.89ZM186.07,48.79l-1.08,1.53l-3.34,-0.34l-2.56,-1.1l1.03,-1.75l3.25,-1.23l1.95,1.58l0.75,1.3ZM185.71,35.32l-5.3,-0.2l-0.32,-0.71l4.31,0.07l1.3,0.84ZM180.68,32.48l-3.34,1.0l-1.79,-1.1l-0.98,-1.87l-0.15,-1.73l4.1,0.53l2.67,1.7l-0.51,1.47ZM180.9,76.31l-1.1,1.08l-3.13,-1.23l-2.12,0.43l-2.71,-1.57l1.72,-1.09l1.55,-1.72l3.81,1.9l1.98,2.2ZM169.74,54.87l2.96,0.97l4.17,-0.57l0.41,0.88l-2.14,2.11l0.09,0.64l3.55,1.92l-0.4,3.72l-3.79,1.65l-2.17,-0.35l-1.72,-1.74l-6.02,-3.5l0.03,-0.85l4.68,0.54l0.4,-0.21l-0.05,-0.45l-2.48,-2.81l2.46,-1.95ZM174.45,40.74l1.37,1.73l0.07,2.44l-1.05,3.45l-3.79,0.47l-2.32,-0.69l0.05,-2.64l-0.44,-0.41l-3.68,0.35l-0.12,-3.1l2.45,0.1l3.67,-1.73l3.41,0.29l0.37,-0.26ZM170.05,31.55l0.67,1.56l-3.33,-0.49l-4.22,-1.77l-4.35,-0.16l1.4,-0.94l-0.06,-0.7l-2.81,-1.23l-0.12,-1.39l4.39,0.68l6.62,1.98l1.81,2.47ZM134.5,58.13l-1.02,1.82l0.45,0.58l5.4,-1.39l3.33,2.29l0.49,-0.03l2.6,-2.23l1.94,1.32l2.0,4.5l0.7,0.06l1.3,-2.29l-1.63,-4.46l1.69,-0.54l2.31,0.71l2.65,1.81l2.49,7.92l8.48,4.27l-0.19,1.35l-3.79,0.33l-0.26,0.67l1.4,1.49l-0.58,1.1l-4.23,-0.64l-4.43,-1.19l-3.0,0.28l-4.66,1.47l-10.52,1.04l-1.43,-2.02l-3.42,-1.2l-2.21,0.43l-2.51,-2.86l4.84,-1.05l3.6,0.19l3.27,-0.78l0.31,-0.39l-0.31,-0.39l-4.84,-1.06l-8.79,0.27l-0.85,-1.07l5.26,-1.66l0.27,-0.45l-0.4,-0.34l-3.8,0.06l-3.81,-1.06l1.81,-3.01l1.66,-1.79l6.48,-2.81l1.97,0.71ZM158.7,56.61l-1.7,2.44l-3.2,-2.75l0.37,-0.3l3.11,-0.18l1.42,0.79ZM149.61,42.73l1.01,1.89l0.5,0.18l2.14,-0.82l2.23,0.19l0.36,2.04l-1.33,2.09l-8.28,0.76l-6.35,2.15l-3.41,0.1l-0.19,-0.96l4.9,-2.08l0.23,-0.46l-0.41,-0.31l-11.25,0.59l-2.89,-0.74l3.04,-4.44l2.14,-1.32l6.81,1.69l4.58,3.06l4.37,0.39l0.36,-0.63l-3.36,-4.6l1.85,-1.53l2.18,0.51l0.77,2.26ZM144.76,34.41l-4.36,1.44l-3.0,-1.4l1.46,-1.24l3.47,-0.52l2.96,0.71l-0.52,1.01ZM145.13,29.83l-1.9,0.66l-3.67,-0.0l2.27,-1.61l3.3,0.95ZM118.92,65.79l-6.03,2.02l-1.33,-1.9l-5.38,-2.28l2.59,-5.05l2.16,-3.14l-0.02,-0.48l-1.97,-2.41l7.64,-0.7l3.6,1.02l6.3,0.27l4.42,2.95l-2.53,0.98l-6.24,3.43l-3.1,3.28l-0.11,2.01ZM129.54,35.53l-0.28,3.37l-1.72,1.62l-2.33,0.28l-4.61,2.19l-3.86,0.76l-2.64,-0.87l3.72,-3.4l5.01,-3.34l3.72,0.07l3.0,-0.67ZM111.09,152.69l-0.67,0.24l-3.85,-1.37l-0.83,-1.17l-2.12,-1.07l-0.66,-1.02l-2.4,-0.55l-0.74,-1.71l6.02,1.45l2.0,2.55l2.52,1.39l0.73,1.27ZM87.8,134.64l0.89,0.29l1.86,-0.21l-0.65,3.34l1.69,2.33l-1.31,-1.33l-0.99,-1.62l-1.17,-0.98l-0.33,-1.82Z",
|
5656 |
+
name: "Canada"
|
5657 |
+
},
|
5658 |
+
CG: {
|
5659 |
+
path: "M466.72,276.48l-0.1,1.03l-1.25,2.97l-0.19,3.62l-0.46,1.78l-0.23,0.63l-1.61,1.19l-1.21,1.39l-1.09,2.43l0.04,2.09l-3.25,3.24l-0.5,-0.24l-0.5,-0.83l-1.36,-0.02l-0.98,0.89l-1.68,-0.99l-1.54,1.24l-1.52,-1.96l1.57,-1.14l0.11,-0.52l-0.77,-1.35l2.1,-0.66l0.39,-0.73l1.05,0.82l2.21,0.11l1.12,-1.37l0.37,-1.81l-0.27,-2.09l-1.13,-1.5l1.0,-2.69l-0.13,-0.45l-0.92,-0.58l-1.6,0.17l-0.51,-0.94l0.1,-0.61l2.75,0.09l3.97,1.24l0.51,-0.33l0.17,-1.28l1.24,-2.21l1.28,-1.14l2.76,0.49Z",
|
5660 |
+
name: "Congo"
|
5661 |
+
},
|
5662 |
+
CF: {
|
5663 |
+
path: "M461.16,278.2l-0.26,-1.19l-1.09,-0.77l-0.84,-1.17l-0.29,-1.0l-1.04,-1.15l0.08,-3.43l0.58,-0.49l1.16,-2.35l1.85,-0.17l0.61,-0.62l0.97,0.58l3.15,-0.96l2.48,-1.92l0.02,-0.96l2.81,0.02l2.36,-1.17l1.93,-2.85l1.16,-0.93l1.11,-0.3l0.27,0.86l1.34,1.47l-0.39,2.01l0.3,1.01l4.01,2.75l0.17,0.93l2.63,2.31l0.6,1.44l2.08,1.4l-3.84,-0.21l-1.94,0.88l-1.23,-0.49l-2.67,1.2l-1.29,-0.18l-0.51,0.36l-0.6,1.22l-3.35,-0.65l-1.57,-0.91l-2.42,-0.83l-1.45,0.91l-0.97,1.27l-0.26,1.56l-3.22,-0.43l-1.49,1.33l-0.94,1.62Z",
|
5664 |
+
name: "Central African Rep."
|
5665 |
+
},
|
5666 |
+
CD: {
|
5667 |
+
path: "M487.01,272.38l2.34,-0.14l1.35,1.84l1.34,0.45l0.86,-0.39l1.21,0.12l1.07,-0.41l0.54,0.89l2.04,1.54l-0.14,2.72l0.7,0.54l-1.38,1.13l-1.53,2.54l-0.17,2.05l-0.59,1.08l-0.02,1.72l-0.72,0.84l-0.66,3.01l0.63,1.32l-0.44,4.26l0.64,1.47l-0.37,1.22l0.86,1.8l1.53,1.41l0.3,1.26l0.44,0.5l-4.08,0.75l-0.92,1.81l0.51,1.34l-0.74,5.43l0.17,0.38l2.45,1.46l0.54,-0.1l0.12,1.62l-1.28,-0.01l-1.85,-2.35l-1.94,-0.45l-0.48,-1.13l-0.55,-0.2l-1.41,0.74l-1.71,-0.3l-1.01,-1.18l-2.49,-0.19l-0.44,-0.77l-1.98,-0.21l-2.88,0.36l0.11,-2.41l-0.85,-1.13l-0.16,-1.36l0.32,-1.73l-0.46,-0.89l-0.04,-1.49l-0.4,-0.39l-2.53,0.02l0.1,-0.41l-0.39,-0.49l-1.28,0.01l-0.43,0.45l-1.62,0.32l-0.83,1.79l-1.09,-0.28l-2.4,0.52l-1.37,-1.91l-1.3,-3.3l-0.38,-0.27l-7.39,-0.03l-2.46,0.42l0.5,-0.45l0.37,-1.47l0.66,-0.38l0.92,0.08l0.73,-0.82l0.87,0.02l0.31,0.68l1.4,0.36l3.59,-3.63l0.01,-2.23l1.02,-2.29l2.69,-2.39l0.43,-0.99l0.49,-1.96l0.17,-3.51l1.25,-2.95l0.36,-3.14l0.86,-1.13l1.1,-0.66l3.57,1.73l3.65,0.73l0.46,-0.21l0.8,-1.46l1.24,0.19l2.61,-1.17l0.81,0.44l1.04,-0.03l0.59,-0.66l0.7,-0.16l1.81,0.25Z",
|
5668 |
+
name: "Dem. Rep. Congo"
|
5669 |
+
},
|
5670 |
+
CZ: {
|
5671 |
+
path: "M458.46,144.88l1.22,1.01l1.47,0.23l0.13,0.93l1.36,0.68l0.54,-0.2l0.24,-0.55l1.15,0.25l0.53,1.09l1.68,0.18l0.6,0.84l-1.04,0.73l-0.96,1.28l-1.6,0.17l-0.55,0.56l-1.04,-0.46l-1.05,0.15l-2.12,-0.96l-1.05,0.34l-1.2,1.12l-1.56,-0.87l-2.57,-2.1l-0.53,-1.88l4.7,-2.52l0.71,0.26l0.9,-0.28Z",
|
5672 |
+
name: "Czech Rep."
|
5673 |
+
},
|
5674 |
+
CY: {
|
5675 |
+
path: "M504.36,193.47l0.43,0.28l-1.28,0.57l-0.92,-0.28l-0.24,-0.46l2.01,-0.13Z",
|
5676 |
+
name: "Cyprus"
|
5677 |
+
},
|
5678 |
+
CR: {
|
5679 |
+
path: "M211.34,258.05l0.48,0.99l1.6,1.6l-0.54,0.45l0.29,1.42l-0.25,1.19l-1.09,-0.59l-0.05,-1.25l-2.46,-1.42l-0.28,-0.77l-0.66,-0.45l-0.45,-0.0l-0.11,1.04l-1.32,-0.95l0.31,-1.3l-0.36,-0.6l0.31,-0.27l1.42,0.58l1.29,-0.14l0.56,0.56l0.74,0.17l0.55,-0.27Z",
|
5680 |
+
name: "Costa Rica"
|
5681 |
+
},
|
5682 |
+
CU: {
|
5683 |
+
path: "M221.21,227.25l1.27,1.02l2.19,-0.28l4.43,3.33l2.08,0.43l-0.1,0.38l0.36,0.5l1.75,0.1l1.48,0.84l-3.11,0.51l-4.15,-0.03l0.77,-0.67l-0.04,-0.64l-1.2,-0.74l-1.49,-0.16l-0.7,-0.61l-0.56,-1.4l-0.4,-0.25l-1.34,0.1l-2.2,-0.66l-0.88,-0.58l-3.18,-0.4l-0.27,-0.16l0.58,-0.74l-0.36,-0.29l-2.72,-0.05l-1.7,1.29l-0.91,0.03l-0.61,0.69l-1.01,0.22l1.11,-1.29l1.01,-0.52l3.69,-1.01l3.98,0.21l2.21,0.84Z",
|
5684 |
+
name: "Cuba"
|
5685 |
+
},
|
5686 |
+
SZ: {
|
5687 |
+
path: "M500.35,351.36l0.5,2.04l-0.38,0.89l-1.05,0.21l-1.23,-1.2l-0.02,-0.64l0.83,-1.57l1.34,0.27Z",
|
5688 |
+
name: "Swaziland"
|
5689 |
+
},
|
5690 |
+
SY: {
|
5691 |
+
path: "M511.0,199.79l0.05,-1.33l0.54,-1.36l1.28,-0.99l0.13,-0.45l-0.41,-1.11l-1.14,-0.36l-0.19,-1.74l0.52,-1.0l1.29,-1.21l0.2,-1.18l0.59,0.23l2.62,-0.76l1.36,0.52l2.06,-0.01l2.95,-1.08l3.25,-0.26l-0.67,0.94l-1.28,0.66l-0.21,0.4l0.23,2.01l-0.88,3.19l-10.15,5.73l-2.15,-0.85Z",
|
5692 |
+
name: "Syria"
|
5693 |
+
},
|
5694 |
+
KG: {
|
5695 |
+
path: "M621.35,172.32l-3.87,1.69l-0.96,1.18l-3.04,0.34l-1.13,1.86l-2.36,-0.35l-1.99,0.63l-2.39,1.4l0.06,0.95l-0.4,0.37l-4.52,0.43l-3.02,-0.93l-2.37,0.17l0.11,-0.79l2.32,0.42l1.13,-0.88l1.99,0.2l3.21,-2.14l-0.03,-0.69l-2.97,-1.57l-1.94,0.65l-1.22,-0.74l1.71,-1.58l-0.12,-0.67l-0.36,-0.15l0.32,-0.77l1.36,-0.35l4.02,1.02l0.49,-0.3l0.35,-1.59l1.09,-0.48l3.42,1.22l1.11,-0.31l7.64,0.39l1.16,1.0l1.23,0.39Z",
|
5696 |
+
name: "Kyrgyzstan"
|
5697 |
+
},
|
5698 |
+
KE: {
|
5699 |
+
path: "M506.26,284.69l1.87,-2.56l0.93,-2.15l-1.38,-4.08l-1.06,-1.6l2.82,-2.75l0.79,0.26l0.12,1.41l0.86,0.83l1.9,0.11l3.28,2.13l3.57,0.44l1.05,-1.12l1.96,-0.9l0.82,0.68l1.16,0.09l-1.78,2.45l0.03,9.12l1.3,1.94l-1.37,0.78l-0.67,1.03l-1.08,0.46l-0.34,1.67l-0.81,1.07l-0.45,1.55l-0.68,0.56l-3.2,-2.23l-0.35,-1.58l-8.86,-4.98l0.14,-1.6l-0.57,-1.04Z",
|
5700 |
+
name: "Kenya"
|
5701 |
+
},
|
5702 |
+
SS: {
|
5703 |
+
path: "M481.71,263.34l1.07,-0.72l1.2,-3.18l1.36,-0.26l1.61,1.99l0.87,0.34l1.1,-0.41l1.5,0.07l0.57,0.53l2.49,0.0l0.44,-0.63l1.07,-0.4l0.45,-0.84l0.59,-0.33l1.9,1.33l1.6,-0.2l2.83,-3.33l-0.32,-2.21l1.59,-0.52l-0.24,1.6l0.3,1.83l1.35,1.18l0.2,1.87l0.35,0.41l0.02,1.53l-0.23,0.47l-1.42,0.25l-0.85,1.44l0.3,0.6l1.4,0.16l1.11,1.08l0.59,1.13l1.03,0.53l1.28,2.36l-4.41,3.98l-1.74,0.01l-1.89,0.55l-1.47,-0.52l-1.15,0.57l-2.96,-2.62l-1.3,0.49l-1.06,-0.15l-0.79,0.39l-0.82,-0.22l-1.8,-2.7l-1.91,-1.1l-0.66,-1.5l-2.62,-2.32l-0.18,-0.94l-2.37,-1.6Z",
|
5704 |
+
name: "S. Sudan"
|
5705 |
+
},
|
5706 |
+
SR: {
|
5707 |
+
path: "M283.12,270.19l2.1,0.53l-1.08,1.95l0.2,1.72l0.93,1.49l-0.59,2.03l-0.43,0.71l-1.12,-0.42l-1.32,0.22l-0.93,-0.2l-0.46,0.26l-0.25,0.73l0.33,0.7l-0.89,-0.13l-1.39,-1.97l-0.31,-1.34l-0.97,-0.31l-0.89,-1.47l0.35,-1.61l1.45,-0.82l0.33,-1.87l2.61,0.44l0.57,-0.47l1.75,-0.16Z",
|
5708 |
+
name: "Suriname"
|
5709 |
+
},
|
5710 |
+
KH: {
|
5711 |
+
path: "M689.52,249.39l0.49,1.45l-0.28,2.74l-4.0,1.86l-0.16,0.6l0.68,0.95l-2.06,0.17l-2.05,0.97l-1.82,-0.32l-2.12,-3.7l-0.55,-2.85l1.4,-1.85l3.02,-0.45l2.23,0.35l2.01,0.98l0.51,-0.14l0.95,-1.48l1.74,0.74Z",
|
5712 |
+
name: "Cambodia"
|
5713 |
+
},
|
5714 |
+
SV: {
|
5715 |
+
path: "M195.8,250.13l1.4,-1.19l2.24,1.45l0.98,-0.27l0.44,0.2l-0.27,1.05l-1.14,-0.03l-3.64,-1.21Z",
|
5716 |
+
name: "El Salvador"
|
5717 |
+
},
|
5718 |
+
SK: {
|
5719 |
+
path: "M476.82,151.17l-1.14,1.9l-2.73,-0.92l-0.82,0.2l-0.74,0.8l-3.46,0.73l-0.47,0.69l-1.76,0.33l-1.88,-1.0l-0.18,-0.81l0.38,-0.75l1.87,-0.32l1.74,-1.89l0.83,0.16l0.79,-0.34l1.51,1.04l1.34,-0.63l1.25,0.3l1.65,-0.42l1.81,0.95Z",
|
5720 |
+
name: "Slovakia"
|
5721 |
+
},
|
5722 |
+
KR: {
|
5723 |
+
path: "M737.51,185.84l0.98,-0.1l0.87,-1.17l2.69,-0.32l0.33,-0.29l1.76,2.79l0.58,1.76l0.02,3.12l-0.8,1.32l-2.21,0.55l-1.93,1.13l-1.8,0.19l-0.2,-1.1l0.43,-2.28l-0.95,-2.56l1.43,-0.37l0.23,-0.62l-1.43,-2.06Z",
|
5724 |
+
name: "Korea"
|
5725 |
+
},
|
5726 |
+
SI: {
|
5727 |
+
path: "M456.18,162.07l-0.51,-1.32l0.18,-1.05l1.69,0.2l1.42,-0.71l2.09,-0.07l0.62,-0.51l0.21,0.47l-1.61,0.67l-0.44,1.34l-0.66,0.24l-0.26,0.82l-1.22,-0.49l-0.84,0.46l-0.69,-0.04Z",
|
5728 |
+
name: "Slovenia"
|
5729 |
+
},
|
5730 |
+
KP: {
|
5731 |
+
path: "M736.77,185.16l-0.92,-0.42l-0.88,0.62l-1.21,-0.88l0.96,-1.15l0.59,-2.59l-0.46,-0.74l-2.09,-0.77l1.64,-1.52l2.72,-1.58l1.58,-1.91l1.11,0.78l2.17,0.11l0.41,-0.5l-0.3,-1.22l3.52,-1.18l0.94,-1.4l0.98,1.08l-2.19,2.18l0.01,2.14l-1.06,0.54l-1.41,1.4l-1.7,0.52l-1.25,1.09l-0.14,1.98l0.94,0.45l1.15,1.04l-0.13,0.26l-2.6,0.29l-1.13,1.29l-1.22,0.08Z",
|
5732 |
+
name: "Dem. Rep. Korea"
|
5733 |
+
},
|
5734 |
+
SO: {
|
5735 |
+
path: "M525.13,288.48l-1.13,-1.57l-0.03,-8.86l2.66,-3.38l1.67,-0.13l2.13,-1.69l3.41,-0.23l7.08,-7.55l2.91,-3.69l0.08,-4.82l2.98,-0.67l1.24,-0.86l0.45,-0.0l-0.2,3.0l-1.21,3.62l-2.73,5.97l-2.13,3.65l-5.03,6.16l-8.56,6.4l-2.78,3.08l-0.8,1.56Z",
|
5736 |
+
name: "Somalia"
|
5737 |
+
},
|
5738 |
+
SN: {
|
5739 |
+
path: "M390.09,248.21l0.12,1.55l0.49,1.46l0.96,0.82l0.05,1.28l-1.26,-0.19l-0.75,0.33l-1.84,-0.61l-5.84,-0.13l-2.54,0.51l-0.22,-1.03l1.77,0.04l2.01,-0.91l1.03,0.48l1.09,0.04l1.29,-0.62l0.14,-0.58l-0.51,-0.74l-1.81,0.25l-1.13,-0.63l-0.79,0.04l-0.72,0.61l-2.31,0.06l-0.92,-1.77l-0.81,-0.64l0.64,-0.35l2.46,-3.74l1.04,0.19l1.38,-0.56l1.19,-0.02l2.72,1.37l3.03,3.48Z",
|
5740 |
+
name: "Senegal"
|
5741 |
+
},
|
5742 |
+
SL: {
|
5743 |
+
path: "M394.46,264.11l-1.73,1.98l-0.58,1.33l-2.07,-1.06l-1.22,-1.26l-0.65,-2.39l1.16,-0.96l0.67,-1.17l1.21,-0.52l1.66,0.0l1.03,1.64l0.52,2.41Z",
|
5744 |
+
name: "Sierra Leone"
|
5745 |
+
},
|
5746 |
+
SB: {
|
5747 |
+
path: "M826.69,311.6l-0.61,0.09l-0.2,-0.33l0.37,0.15l0.44,0.09ZM824.18,307.38l-0.26,-0.3l-0.31,-0.91l0.03,0.0l0.54,1.21ZM823.04,309.33l-1.66,-0.22l-0.2,-0.52l1.16,0.28l0.69,0.46ZM819.28,304.68l1.14,0.65l0.02,0.03l-0.81,-0.44l-0.35,-0.23Z",
|
5748 |
+
name: "Solomon Is."
|
5749 |
+
},
|
5750 |
+
SA: {
|
5751 |
+
path: "M537.53,210.34l2.0,0.24l0.9,1.32l1.49,-0.06l0.87,2.08l1.29,0.76l0.51,0.99l1.56,1.03l-0.1,1.9l0.32,0.9l1.58,2.47l0.76,0.53l0.7,-0.04l1.68,4.23l7.53,1.33l0.51,-0.29l0.77,1.25l-1.55,4.87l-7.29,2.52l-7.3,1.03l-2.34,1.17l-1.88,2.74l-0.76,0.28l-0.82,-0.78l-0.91,0.12l-2.88,-0.51l-3.51,0.25l-0.86,-0.56l-0.57,0.15l-0.66,1.27l0.16,1.11l-0.43,0.32l-0.93,-1.4l-0.33,-1.16l-1.23,-0.88l-1.27,-2.06l-0.78,-2.22l-1.73,-1.79l-1.14,-0.48l-1.54,-2.31l-0.21,-3.41l-1.44,-2.93l-1.27,-1.16l-1.33,-0.57l-1.31,-3.37l-0.77,-0.67l-0.97,-1.97l-2.8,-4.03l-1.06,-0.17l0.37,-1.96l0.2,-0.72l2.74,0.3l1.08,-0.84l0.6,-0.94l1.74,-0.35l0.65,-1.03l0.71,-0.4l0.1,-0.62l-2.06,-2.28l4.39,-1.22l0.48,-0.37l2.77,0.69l3.66,1.9l7.03,5.5l4.87,0.3Z",
|
5752 |
+
name: "Saudi Arabia"
|
5753 |
+
},
|
5754 |
+
SE: {
|
5755 |
+
path: "M480.22,89.3l-4.03,1.17l-2.43,2.86l0.26,2.57l-8.77,6.64l-1.78,5.79l1.78,2.68l2.22,1.96l-2.07,3.77l-2.72,1.13l-0.95,6.04l-1.29,3.01l-2.74,-0.31l-0.4,0.22l-1.31,2.59l-2.34,0.13l-0.75,-3.09l-2.08,-4.03l-1.83,-4.96l1.0,-1.93l2.14,-2.7l0.83,-4.45l-1.6,-2.17l-0.15,-4.94l1.48,-3.39l2.58,-0.15l0.87,-1.59l-0.78,-1.57l3.76,-5.59l4.04,-7.48l2.17,0.01l0.39,-0.29l0.57,-2.07l4.37,0.64l0.46,-0.34l0.33,-2.56l1.1,-0.13l6.94,4.87l0.06,6.32l0.66,1.36Z",
|
5756 |
+
name: "Sweden"
|
5757 |
+
},
|
5758 |
+
SD: {
|
5759 |
+
path: "M505.98,259.4l-0.34,-0.77l-1.17,-0.9l-0.26,-1.61l0.29,-1.81l-0.34,-0.46l-1.16,-0.17l-0.54,0.59l-1.23,0.11l-0.28,0.65l0.53,0.65l0.17,1.22l-2.44,3.0l-0.96,0.19l-2.39,-1.4l-0.95,0.52l-0.38,0.78l-1.11,0.41l-0.29,0.5l-1.94,0.0l-0.54,-0.52l-1.81,-0.09l-0.95,0.4l-2.45,-2.35l-2.07,0.54l-0.73,1.26l-0.6,2.1l-1.25,0.58l-0.75,-0.62l0.27,-2.65l-1.48,-1.78l-0.22,-1.48l-0.92,-0.96l-0.02,-1.29l-0.57,-1.16l-0.68,-0.16l0.69,-1.29l-0.18,-1.14l0.65,-0.62l0.03,-0.55l-0.36,-0.41l1.55,-2.97l1.91,0.16l0.43,-0.4l-0.1,-10.94l2.49,-0.01l0.4,-0.4l-0.0,-4.82l29.02,0.0l0.64,2.04l-0.49,0.66l0.36,2.69l0.93,3.16l2.12,1.55l-0.89,1.04l-1.72,0.39l-0.98,0.9l-1.43,5.65l0.24,1.15l-0.38,2.06l-0.96,2.38l-1.53,1.31l-1.32,2.91l-1.22,0.86l-0.37,1.34Z",
|
5760 |
+
name: "Sudan"
|
5761 |
+
},
|
5762 |
+
DO: {
|
5763 |
+
path: "M241.8,239.2l0.05,-0.65l-0.46,-0.73l0.42,-0.44l0.19,-1.0l-0.09,-1.53l1.66,0.01l1.99,0.63l0.33,0.67l1.28,0.19l0.33,0.76l1.0,0.08l0.8,0.62l-0.45,0.51l-1.13,-0.47l-1.88,-0.01l-1.27,0.59l-0.75,-0.55l-1.01,0.54l-0.79,1.4l-0.23,-0.61Z",
|
5764 |
+
name: "Dominican Rep."
|
5765 |
+
},
|
5766 |
+
DJ: {
|
5767 |
+
path: "M528.43,256.18l-0.45,0.66l-0.58,-0.25l-1.51,0.13l-0.18,-1.01l1.45,-1.95l0.83,0.17l0.77,-0.44l0.2,1.0l-1.2,0.51l-0.06,0.7l0.73,0.47Z",
|
5768 |
+
name: "Djibouti"
|
5769 |
+
},
|
5770 |
+
DK: {
|
5771 |
+
path: "M452.28,129.07l-1.19,2.24l-2.13,-1.6l-0.23,-0.95l2.98,-0.95l0.57,1.26ZM447.74,126.31l-0.26,0.57l-0.88,-0.07l-1.8,2.53l0.48,1.69l-1.09,0.36l-1.61,-0.39l-0.89,-1.69l-0.07,-3.43l0.96,-1.73l2.02,-0.2l1.09,-1.07l1.33,-0.67l-0.05,1.06l-0.73,1.41l0.3,1.0l1.2,0.64Z",
|
5772 |
+
name: "Denmark"
|
5773 |
+
},
|
5774 |
+
DE: {
|
5775 |
+
path: "M453.14,155.55l-0.55,-0.36l-1.2,-0.1l-1.87,0.57l-2.13,-0.13l-0.56,0.63l-0.86,-0.6l-0.96,0.09l-2.57,-0.93l-0.85,0.67l-1.47,-0.02l0.24,-1.75l1.23,-2.14l-0.28,-0.59l-3.52,-0.58l-0.92,-0.66l0.12,-1.2l-0.48,-0.88l0.27,-2.17l-0.37,-3.03l1.41,-0.22l0.63,-1.26l0.66,-3.19l-0.41,-1.18l0.26,-0.39l1.66,-0.15l0.33,0.54l0.62,0.07l1.7,-1.69l-0.54,-3.02l1.37,0.33l1.31,-0.37l0.31,1.18l2.25,0.71l-0.02,0.92l0.5,0.4l2.55,-0.65l1.34,-0.87l2.57,1.24l1.06,0.98l0.48,1.44l-0.57,0.74l-0.0,0.48l0.87,1.15l0.57,1.64l-0.14,1.29l0.82,1.7l-1.5,-0.07l-0.56,0.57l-4.47,2.15l-0.22,0.54l0.68,2.26l2.58,2.16l-0.66,1.11l-0.79,0.36l-0.23,0.43l0.32,1.87Z",
|
5776 |
+
name: "Germany"
|
5777 |
+
},
|
5778 |
+
YE: {
|
5779 |
+
path: "M528.27,246.72l0.26,-0.42l-0.22,-1.01l0.19,-1.5l0.92,-0.69l-0.07,-1.35l0.39,-0.75l1.01,0.47l3.34,-0.27l3.76,0.41l0.95,0.81l1.36,-0.58l1.74,-2.62l2.18,-1.09l6.86,-0.94l2.48,5.41l-1.64,0.76l-0.56,1.9l-6.23,2.16l-2.29,1.8l-1.93,0.05l-1.41,1.02l-4.24,0.74l-1.72,1.49l-3.28,0.19l-0.52,-1.18l0.02,-1.51l-1.34,-3.29Z",
|
5780 |
+
name: "Yemen"
|
5781 |
+
},
|
5782 |
+
AT: {
|
5783 |
+
path: "M462.89,152.8l0.04,2.25l-1.07,0.0l-0.33,0.63l0.36,0.51l-1.04,2.13l-2.02,0.07l-1.33,0.7l-5.29,-0.99l-0.47,-0.93l-0.44,-0.21l-2.47,0.55l-0.42,0.51l-3.18,-0.81l0.43,-0.91l1.12,0.78l0.6,-0.17l0.25,-0.58l1.93,0.12l1.86,-0.56l1.0,0.08l0.68,0.57l0.62,-0.15l0.26,-0.77l-0.3,-1.78l0.8,-0.44l0.68,-1.15l1.52,0.85l0.47,-0.06l1.34,-1.25l0.64,-0.17l1.81,0.92l1.28,-0.11l0.7,0.37Z",
|
5784 |
+
name: "Austria"
|
5785 |
+
},
|
5786 |
+
DZ: {
|
5787 |
+
path: "M441.46,188.44l-0.32,1.07l0.39,2.64l-0.54,2.16l-1.58,1.82l0.37,2.39l1.91,1.55l0.18,0.8l1.42,1.03l1.84,7.23l0.12,1.16l-0.57,5.0l0.2,1.51l-0.87,0.99l-0.02,0.51l1.41,1.86l0.14,1.2l0.89,1.48l0.5,0.16l0.98,-0.41l1.73,1.08l0.82,1.23l-8.22,4.81l-7.23,5.11l-3.43,1.13l-2.3,0.21l-0.28,-1.59l-2.56,-1.09l-0.67,-1.25l-26.12,-17.86l0.01,-3.47l3.77,-1.88l2.44,-0.41l2.12,-0.75l1.08,-1.42l2.81,-1.05l0.35,-2.08l1.33,-0.29l1.04,-0.94l3.47,-0.69l0.46,-1.08l-0.1,-0.45l-0.58,-0.52l-0.82,-2.81l-0.19,-1.83l-0.78,-1.49l2.03,-1.31l2.63,-0.48l1.7,-1.22l2.31,-0.84l8.24,-0.73l1.49,0.38l2.28,-1.1l2.46,-0.02l0.92,0.6l1.35,-0.05Z",
|
5788 |
+
name: "Algeria"
|
5789 |
+
},
|
5790 |
+
US: {
|
5791 |
+
path: "M892.72,99.2l1.31,0.53l1.41,-0.37l1.89,0.98l1.89,0.42l-1.32,0.58l-2.9,-1.53l-2.08,0.22l-0.26,-0.15l0.07,-0.67ZM183.22,150.47l0.37,1.47l1.12,0.85l4.23,0.7l2.39,0.98l2.17,-0.38l1.85,0.5l-1.55,0.65l-3.49,2.61l-0.16,0.77l0.5,0.39l2.33,-0.61l1.77,1.02l5.15,-2.4l-0.31,0.65l0.25,0.56l1.36,0.38l1.71,1.16l4.7,-0.88l0.67,0.85l1.31,0.21l0.58,0.58l-1.34,0.17l-2.18,-0.32l-3.6,0.89l-2.71,3.25l0.35,0.9l0.59,-0.0l0.55,-0.6l-1.36,4.65l0.29,3.09l0.67,1.58l0.61,0.45l1.77,-0.44l1.6,-1.96l0.14,-2.21l-0.82,-1.96l0.11,-1.13l1.19,-2.37l0.44,-0.33l0.48,0.75l0.4,-0.29l0.4,-1.37l0.6,-0.47l0.24,-0.8l1.69,0.49l1.65,1.08l-0.03,2.37l-1.27,1.13l-0.0,1.13l0.87,0.36l1.66,-1.29l0.5,0.17l0.5,2.6l-2.49,3.75l0.17,0.61l1.54,0.62l1.48,0.17l1.92,-0.44l4.72,-2.15l2.16,-1.8l-0.05,-1.24l0.75,-0.22l3.92,0.36l2.12,-1.05l0.21,-0.4l-0.28,-1.48l3.27,-2.4l8.32,-0.02l0.56,-0.82l1.9,-0.77l0.93,-1.51l0.74,-2.37l1.58,-1.98l0.92,0.62l1.47,-0.47l0.8,0.66l-0.0,4.09l1.96,2.6l-2.34,1.31l-5.37,2.09l-1.83,2.72l0.02,1.79l0.83,1.59l0.54,0.23l-6.19,0.94l-2.2,0.89l-0.23,0.48l0.45,0.29l2.99,-0.46l-2.19,0.56l-1.13,0.0l-0.15,-0.32l-0.48,0.08l-0.76,0.82l0.22,0.67l0.32,0.06l-0.41,1.62l-1.27,1.58l-1.48,-1.07l-0.49,-0.04l-0.16,0.46l0.52,1.58l0.61,0.59l0.03,0.79l-0.95,1.38l-1.21,-1.22l-0.27,-2.27l-0.35,-0.35l-0.42,0.25l-0.48,1.27l0.33,1.41l-0.97,-0.27l-0.48,0.24l0.18,0.5l1.52,0.83l0.1,2.52l0.79,0.51l0.52,3.42l-1.42,1.88l-2.47,0.8l-1.71,1.66l-1.31,0.25l-1.27,1.03l-0.43,0.99l-2.69,1.78l-2.64,3.03l-0.45,2.12l0.45,2.08l0.85,2.38l1.09,1.9l0.04,1.2l1.16,3.06l-0.18,2.69l-0.55,1.43l-0.47,0.21l-0.89,-0.23l-0.49,-1.18l-0.87,-0.56l-2.75,-5.16l0.48,-1.68l-0.72,-1.78l-2.01,-2.38l-1.12,-0.53l-2.72,1.18l-1.47,-1.35l-1.57,-0.68l-2.99,0.31l-2.17,-0.3l-2.0,0.19l-1.15,0.46l-0.19,0.58l0.39,0.63l0.14,1.34l-0.84,-0.2l-0.84,0.46l-1.58,-0.07l-2.08,-1.44l-2.09,0.33l-1.91,-0.62l-3.73,0.84l-2.39,2.07l-2.54,1.22l-1.45,1.41l-0.61,1.38l0.34,3.71l-0.29,0.02l-3.5,-1.33l-1.25,-3.11l-1.44,-1.5l-2.24,-3.56l-1.76,-1.09l-2.27,-0.01l-1.71,2.07l-1.76,-0.69l-1.16,-0.74l-1.52,-2.98l-3.93,-3.16l-4.34,-0.0l-0.4,0.4l-0.0,0.74l-6.5,0.02l-9.02,-3.14l-0.34,-0.71l-5.7,0.49l-0.43,-1.29l-1.62,-1.61l-1.14,-0.38l-0.55,-0.88l-1.28,-0.13l-1.01,-0.77l-2.22,-0.27l-0.43,-0.3l-0.36,-1.58l-2.4,-2.83l-2.01,-3.85l-0.06,-0.9l-2.92,-3.26l-0.33,-2.29l-1.3,-1.66l0.52,-2.37l-0.09,-2.57l-0.78,-2.3l0.95,-2.82l0.61,-5.68l-0.47,-4.27l-1.46,-4.08l3.19,0.79l1.26,2.83l0.69,0.08l0.69,-1.14l-1.1,-4.79l68.76,-0.0l0.4,-0.4l0.14,-0.86ZM32.44,67.52l1.73,1.97l0.55,0.05l0.99,-0.79l3.65,0.24l-0.09,0.62l0.32,0.45l3.83,0.77l2.61,-0.43l5.19,1.4l4.84,0.43l1.89,0.57l3.42,-0.7l6.14,1.87l-0.03,38.06l0.38,0.4l2.39,0.11l2.31,0.98l3.9,3.99l0.55,0.04l2.4,-2.03l2.16,-1.04l1.2,1.71l3.95,3.14l4.09,6.63l4.2,2.29l0.06,1.83l-1.02,1.23l-1.16,-1.08l-2.04,-1.03l-0.67,-2.89l-3.28,-3.03l-1.65,-3.57l-6.35,-0.32l-2.82,-1.01l-5.26,-3.85l-6.77,-2.04l-3.53,0.3l-4.81,-1.69l-3.25,-1.63l-2.78,0.8l-0.28,0.46l0.44,2.21l-3.91,0.96l-2.26,1.27l-2.3,0.65l-0.27,-1.65l1.05,-3.42l2.49,-1.09l0.16,-0.6l-0.69,-0.96l-0.55,-0.1l-3.19,2.12l-1.78,2.56l-3.55,2.61l-0.04,0.61l1.56,1.52l-2.07,2.29l-5.11,2.57l-0.77,1.66l-3.76,1.77l-0.92,1.73l-2.69,1.38l-1.81,-0.22l-6.95,3.32l-3.97,0.91l4.85,-2.5l2.59,-1.86l3.26,-0.52l1.19,-1.4l3.42,-2.1l2.59,-2.27l0.42,-2.68l1.23,-2.1l-0.04,-0.46l-0.45,-0.11l-2.68,1.03l-0.63,-0.49l-0.53,0.03l-1.05,1.04l-1.36,-1.54l-0.66,0.08l-0.32,0.62l-0.58,-1.14l-0.56,-0.16l-2.41,1.42l-1.07,-0.0l-0.17,-1.75l0.3,-1.71l-1.61,-1.33l-3.41,0.59l-1.96,-1.63l-1.57,-0.84l-0.15,-2.21l-1.7,-1.43l0.82,-1.88l1.99,-2.12l0.88,-1.92l1.71,-0.24l2.04,0.51l1.87,-1.77l1.91,0.25l1.91,-1.23l0.17,-0.43l-0.47,-1.82l-1.07,-0.7l1.39,-1.17l0.12,-0.45l-0.39,-0.26l-1.65,0.07l-2.66,0.88l-0.75,0.78l-1.92,-0.8l-3.46,0.44l-3.44,-0.91l-1.06,-1.61l-2.65,-1.99l2.91,-1.43l5.5,-2.0l1.52,0.0l-0.26,1.62l0.41,0.46l5.29,-0.16l0.3,-0.65l-2.03,-2.59l-3.14,-1.68l-1.79,-2.12l-2.4,-1.83l-3.09,-1.24l1.04,-1.69l4.23,-0.14l3.36,-2.07l0.73,-2.27l2.39,-1.99l2.42,-0.52l4.65,-1.97l2.46,0.23l3.71,-2.35l3.5,0.89ZM37.6,123.41l-2.25,1.23l-0.95,-0.69l-0.29,-1.24l3.21,-1.63l1.42,0.21l0.67,0.7l-1.8,1.42ZM31.06,234.03l0.98,0.47l0.74,0.87l-1.77,1.07l-0.44,-1.53l0.49,-0.89ZM29.34,232.07l0.18,0.05l0.08,0.05l-0.16,0.03l-0.11,-0.14ZM25.16,230.17l0.05,-0.03l0.18,0.22l-0.13,-0.01l-0.1,-0.18ZM5.89,113.26l-1.08,0.41l-2.21,-1.12l1.53,-0.4l1.62,0.28l0.14,0.83Z",
|
5792 |
+
name: "United States"
|
5793 |
+
},
|
5794 |
+
LV: {
|
5795 |
+
path: "M489.16,122.85l0.96,0.66l0.22,1.65l0.68,1.76l-3.65,1.7l-2.23,-1.58l-1.29,-0.26l-0.68,-0.77l-2.42,0.34l-4.16,-0.23l-2.47,0.9l0.06,-1.98l1.13,-2.06l1.95,-1.02l2.12,2.58l2.01,-0.07l0.38,-0.33l0.44,-2.52l1.76,-0.53l3.06,1.7l2.15,0.07Z",
|
5796 |
+
name: "Latvia"
|
5797 |
+
},
|
5798 |
+
UY: {
|
5799 |
+
path: "M286.85,372.74l-0.92,1.5l-2.59,1.44l-1.69,-0.52l-1.42,0.26l-2.39,-1.19l-1.52,0.08l-1.27,-1.3l0.16,-1.5l0.56,-0.79l-0.02,-2.73l1.21,-4.74l1.19,-0.21l2.37,2.0l1.08,0.03l4.36,3.17l1.22,1.6l-0.96,1.5l0.61,1.4Z",
|
5800 |
+
name: "Uruguay"
|
5801 |
+
},
|
5802 |
+
LB: {
|
5803 |
+
path: "M510.37,198.01l-0.88,0.51l1.82,-3.54l0.62,0.08l0.22,0.61l-1.13,0.88l-0.65,1.47Z",
|
5804 |
+
name: "Lebanon"
|
5805 |
+
},
|
5806 |
+
LA: {
|
5807 |
+
path: "M689.54,248.53l-1.76,-0.74l-0.49,0.15l-0.94,1.46l-1.32,-0.64l0.62,-0.98l0.11,-2.17l-2.04,-2.42l-0.25,-2.65l-1.9,-2.1l-2.15,-0.31l-0.78,0.91l-1.12,0.06l-1.05,-0.4l-2.06,1.2l-0.04,-1.59l0.61,-2.68l-0.36,-0.49l-1.35,-0.1l-0.11,-1.23l-0.96,-0.88l1.96,-1.89l0.39,0.36l1.33,0.07l0.42,-0.45l-0.34,-2.66l0.7,-0.21l1.28,1.81l1.11,2.35l0.36,0.23l2.82,0.02l0.71,1.67l-1.39,0.65l-0.72,0.93l0.13,0.6l2.91,1.51l3.6,5.25l1.88,1.78l0.56,1.62l-0.35,1.96Z",
|
5808 |
+
name: "Lao PDR"
|
5809 |
+
},
|
5810 |
+
TW: {
|
5811 |
+
path: "M724.01,226.68l-0.74,1.48l-0.9,-1.52l-0.25,-1.74l1.38,-2.44l1.73,-1.74l0.64,0.44l-1.85,5.52Z",
|
5812 |
+
name: "Taiwan"
|
5813 |
+
},
|
5814 |
+
TT: {
|
5815 |
+
path: "M266.64,259.32l0.28,-1.16l1.13,-0.22l-0.06,1.2l-1.35,0.18Z",
|
5816 |
+
name: "Trinidad and Tobago"
|
5817 |
+
},
|
5818 |
+
TR: {
|
5819 |
+
path: "M513.21,175.47l3.64,1.17l3.05,-0.44l2.1,0.26l3.11,-1.56l2.46,-0.13l2.19,1.33l0.33,0.82l-0.22,1.33l0.25,0.44l2.28,1.13l-1.17,0.57l-0.21,0.45l0.75,3.2l-0.41,1.16l1.13,1.92l-0.55,0.22l-0.9,-0.67l-2.91,-0.37l-1.24,0.46l-4.23,0.41l-2.81,1.05l-1.91,0.01l-1.52,-0.53l-2.58,0.75l-0.66,-0.45l-0.62,0.3l-0.12,1.45l-0.89,0.84l-0.47,-0.67l0.79,-1.3l-0.41,-0.2l-1.43,0.23l-2.0,-0.63l-2.02,1.65l-3.51,0.3l-2.13,-1.53l-2.7,-0.1l-0.86,1.24l-1.38,0.27l-2.29,-1.44l-2.71,-0.01l-1.37,-2.65l-1.68,-1.52l1.07,-1.99l-0.09,-0.49l-1.27,-1.12l2.37,-2.41l3.7,-0.11l1.28,-2.24l4.49,0.37l3.21,-1.97l2.81,-0.82l3.99,-0.06l4.29,2.07ZM488.79,176.72l-1.72,1.31l-0.5,-0.88l1.37,-2.57l-0.7,-0.85l1.7,-0.63l1.8,0.34l0.46,1.17l1.76,0.78l-2.87,0.32l-1.3,1.01Z",
|
5820 |
+
name: "Turkey"
|
5821 |
+
},
|
5822 |
+
LK: {
|
5823 |
+
path: "M624.16,268.99l-1.82,0.48l-0.99,-1.67l-0.42,-3.46l0.95,-3.43l1.21,0.98l2.26,4.19l-0.34,2.33l-0.85,0.58Z",
|
5824 |
+
name: "Sri Lanka"
|
5825 |
+
},
|
5826 |
+
TN: {
|
5827 |
+
path: "M448.1,188.24l-1.0,1.27l-0.02,1.32l0.84,0.88l-0.28,2.09l-1.53,1.32l-0.12,0.42l0.48,1.54l1.42,0.32l0.53,1.11l0.9,0.52l-0.11,1.67l-3.54,2.64l-0.1,2.38l-0.58,0.3l-0.96,-4.45l-1.54,-1.25l-0.16,-0.78l-1.92,-1.56l-0.18,-1.76l1.51,-1.62l0.59,-2.34l-0.38,-2.78l0.42,-1.21l2.45,-1.05l1.29,0.26l-0.06,1.11l0.58,0.38l1.47,-0.73Z",
|
5828 |
+
name: "Tunisia"
|
5829 |
+
},
|
5830 |
+
TL: {
|
5831 |
+
path: "M734.55,307.93l-0.1,-0.97l4.5,-0.86l-2.82,1.28l-1.59,0.55Z",
|
5832 |
+
name: "Timor-Leste"
|
5833 |
+
},
|
5834 |
+
TM: {
|
5835 |
+
path: "M553.03,173.76l-0.04,0.34l-0.09,-0.22l0.13,-0.12ZM555.87,172.66l0.45,-0.1l1.48,0.74l2.06,2.43l4.07,-0.18l0.38,-0.51l-0.32,-1.19l1.92,-0.94l1.91,-1.59l2.94,1.39l0.43,2.47l1.19,0.67l2.58,-0.13l0.62,0.4l1.32,3.12l4.54,3.44l2.67,1.45l3.06,1.14l-0.04,1.05l-1.33,-0.75l-0.59,0.19l-0.32,0.84l-2.2,0.81l-0.46,2.13l-1.21,0.74l-1.91,0.42l-0.73,1.33l-1.56,0.31l-2.22,-0.94l-0.2,-2.17l-0.38,-0.36l-1.73,-0.09l-2.76,-2.46l-2.14,-0.4l-2.84,-1.48l-1.78,-0.27l-1.24,0.53l-1.57,-0.08l-2.0,1.69l-1.7,0.43l-0.36,-1.58l0.36,-2.98l-0.22,-0.4l-1.65,-0.84l0.54,-1.69l-0.34,-0.52l-1.22,-0.13l0.36,-1.64l2.22,0.59l2.2,-0.95l0.12,-0.65l-1.77,-1.74l-0.66,-1.57Z",
|
5836 |
+
name: "Turkmenistan"
|
5837 |
+
},
|
5838 |
+
TJ: {
|
5839 |
+
path: "M597.75,178.82l-2.54,-0.44l-0.47,0.34l-0.24,1.7l0.43,0.45l2.64,-0.22l3.18,0.95l4.39,-0.41l0.56,2.37l0.52,0.29l0.67,-0.24l1.11,0.49l0.21,2.13l-3.76,-0.21l-1.8,1.32l-1.76,0.74l-0.61,-0.58l0.21,-2.23l-0.64,-0.49l-0.07,-0.93l-1.36,-0.66l-0.45,0.07l-1.08,1.01l-0.55,1.48l-1.31,-0.05l-0.95,1.16l-0.9,-0.35l-1.86,0.74l1.26,-2.83l-0.54,-2.17l-1.67,-0.82l0.33,-0.66l2.18,-0.04l1.19,-1.63l0.76,-1.79l2.43,-0.5l-0.26,1.0l0.73,1.05Z",
|
5840 |
+
name: "Tajikistan"
|
5841 |
+
},
|
5842 |
+
LS: {
|
5843 |
+
path: "M491.06,363.48l-0.49,0.15l-1.49,-1.67l1.1,-1.43l2.19,-1.44l1.51,1.27l-0.98,1.82l-1.23,0.38l-0.62,0.93Z",
|
5844 |
+
name: "Lesotho"
|
5845 |
+
},
|
5846 |
+
TH: {
|
5847 |
+
path: "M670.27,255.86l-1.41,3.87l0.15,2.0l0.38,0.36l1.38,0.07l0.9,2.04l0.55,2.34l1.4,1.44l1.61,0.38l0.96,0.97l-0.5,0.64l-1.1,0.2l-0.34,-1.18l-2.04,-1.1l-0.63,0.23l-0.63,-0.62l-0.48,-1.3l-2.56,-2.63l-0.73,0.41l0.95,-3.89l2.16,-4.22ZM670.67,254.77l-0.92,-2.18l-0.26,-2.61l-2.14,-3.06l0.71,-0.49l0.89,-2.59l-3.61,-5.45l0.87,-0.51l1.05,-2.58l1.74,-0.18l2.6,-1.59l0.76,0.56l0.13,1.39l0.37,0.36l1.23,0.09l-0.51,2.28l0.05,2.42l0.6,0.34l2.43,-1.42l0.77,0.39l1.47,-0.07l0.71,-0.88l1.48,0.14l1.71,1.88l0.25,2.65l1.92,2.11l-0.1,1.89l-0.61,0.86l-2.22,-0.33l-3.5,0.64l-1.6,2.12l0.36,2.58l-1.51,-0.79l-1.84,-0.01l0.28,-1.52l-0.4,-0.47l-2.21,0.01l-0.4,0.37l-0.19,2.74l-0.34,0.93Z",
|
5848 |
+
name: "Thailand"
|
5849 |
+
},
|
5850 |
+
TF: {
|
5851 |
+
path: "M596.68,420.38l-3.2,0.18l-0.05,-1.26l0.39,-1.41l1.3,0.78l2.08,0.35l-0.52,1.36Z",
|
5852 |
+
name: "Fr. S. Antarctic Lands"
|
5853 |
+
},
|
5854 |
+
TG: {
|
5855 |
+
path: "M422.7,257.63l-0.09,1.23l1.53,1.52l0.08,1.09l0.5,0.65l-0.11,5.62l0.49,1.47l-1.31,0.35l-1.02,-2.13l-0.18,-1.12l0.53,-2.19l-0.63,-1.16l-0.22,-3.68l-1.01,-1.4l0.07,-0.28l1.37,0.03Z",
|
5856 |
+
name: "Togo"
|
5857 |
+
},
|
5858 |
+
TD: {
|
5859 |
+
path: "M480.25,235.49l0.12,9.57l-2.1,0.05l-1.14,1.89l-0.69,1.63l0.34,0.73l-0.66,0.91l0.24,0.89l-0.86,1.95l0.45,0.5l0.6,-0.1l0.34,0.64l0.03,1.38l0.9,1.04l-1.45,0.43l-1.27,1.03l-1.83,2.76l-2.16,1.07l-2.31,-0.15l-0.86,0.25l-0.26,0.49l0.17,0.61l-2.11,1.68l-2.85,0.87l-1.09,-0.57l-0.73,0.66l-1.12,0.1l-1.1,-3.12l-1.25,-0.64l-1.22,-1.22l0.29,-0.64l3.01,0.04l0.35,-0.6l-1.3,-2.2l-0.08,-3.31l-0.97,-1.66l0.22,-1.04l-0.38,-0.48l-1.22,-0.04l0.0,-1.25l-0.98,-1.07l0.96,-3.01l3.25,-2.65l0.13,-3.33l0.95,-5.18l0.52,-1.07l-0.1,-0.48l-0.91,-0.78l-0.2,-0.96l-0.8,-0.58l-0.55,-3.65l2.1,-1.2l19.57,9.83Z",
|
5860 |
+
name: "Chad"
|
5861 |
+
},
|
5862 |
+
LY: {
|
5863 |
+
path: "M483.48,203.15l-0.75,1.1l0.29,1.39l-0.6,1.83l0.73,2.14l0.0,24.12l-2.48,0.01l-0.41,0.85l-19.41,-9.76l-4.41,2.28l-1.37,-1.33l-3.82,-1.1l-1.14,-1.65l-1.98,-1.23l-1.22,0.32l-0.66,-1.11l-0.17,-1.26l-1.28,-1.69l0.87,-1.19l-0.07,-4.34l0.43,-2.27l-0.86,-3.45l1.13,-0.76l0.22,-1.16l-0.2,-1.03l3.48,-2.61l0.29,-1.94l2.45,0.8l1.18,-0.21l1.98,0.44l3.15,1.18l1.37,2.54l5.72,1.67l2.64,1.35l1.61,-0.72l1.29,-1.34l-0.44,-2.34l0.66,-1.13l1.67,-1.21l1.57,-0.35l3.14,0.53l1.08,1.28l3.99,0.78l0.36,0.54Z",
|
5864 |
+
name: "Libya"
|
5865 |
+
},
|
5866 |
+
AE: {
|
5867 |
+
path: "M550.76,223.97l1.88,-0.4l3.84,0.02l4.78,-4.75l0.19,0.36l0.26,1.58l-0.81,0.01l-0.39,0.35l-0.08,2.04l-0.81,0.63l-0.01,0.96l-0.66,0.99l-0.39,1.41l-7.08,-1.25l-0.7,-1.96Z",
|
5868 |
+
name: "United Arab Emirates"
|
5869 |
+
},
|
5870 |
+
VE: {
|
5871 |
+
path: "M240.68,256.69l0.53,0.75l-0.02,1.06l-1.07,1.78l0.95,2.0l0.42,0.22l1.4,-0.44l0.56,-1.83l-0.77,-1.17l-0.1,-1.47l2.82,-0.93l0.26,-0.49l-0.28,-0.96l0.3,-0.28l0.66,1.31l1.96,0.26l1.4,1.22l0.08,0.68l0.39,0.35l4.81,-0.22l1.49,1.11l1.92,0.31l1.67,-0.84l0.22,-0.6l3.44,-0.14l-0.17,0.55l0.86,1.19l2.19,0.35l1.67,1.1l0.37,1.86l0.41,0.32l1.55,0.17l-1.66,1.35l-0.22,0.92l0.65,0.97l-1.67,0.54l-0.3,0.4l0.04,0.99l-0.56,0.57l-0.01,0.55l1.85,2.27l-0.66,0.69l-4.47,1.29l-0.72,0.54l-3.69,-0.9l-0.71,0.27l-0.02,0.7l0.91,0.53l-0.08,1.54l0.35,1.58l0.35,0.31l1.66,0.17l-1.3,0.52l-0.48,1.13l-2.68,0.91l-0.6,0.77l-1.57,0.13l-1.17,-1.13l-0.8,-2.52l-1.25,-1.26l1.02,-1.23l-1.29,-2.95l0.18,-1.62l1.0,-2.21l-0.2,-0.49l-1.14,-0.46l-4.02,0.36l-1.82,-2.1l-1.57,-0.33l-2.99,0.22l-1.06,-0.97l0.25,-1.23l-0.2,-1.01l-0.59,-0.69l-0.29,-1.06l-1.08,-0.39l0.78,-2.79l1.9,-2.11Z",
|
5872 |
+
name: "Venezuela"
|
5873 |
+
},
|
5874 |
+
AF: {
|
5875 |
+
path: "M600.7,188.88l-1.57,1.3l-0.1,0.48l0.8,2.31l-1.09,1.04l-0.03,1.27l-0.48,0.71l-2.16,-0.08l-0.37,0.59l0.78,1.48l-1.38,0.69l-1.06,1.69l0.06,1.7l-0.65,0.52l-0.91,-0.21l-1.91,0.36l-0.48,0.77l-1.88,0.13l-1.4,1.56l-0.18,2.32l-2.91,1.02l-1.65,-0.23l-0.71,0.55l-1.41,-0.3l-2.41,0.39l-3.52,-1.17l1.96,-2.35l-0.21,-1.78l-0.3,-0.34l-1.63,-0.4l-0.19,-1.58l-0.75,-2.03l0.95,-1.36l-0.19,-0.6l-0.73,-0.28l1.47,-4.8l2.14,0.9l2.12,-0.36l0.74,-1.34l1.77,-0.39l1.54,-0.92l0.63,-2.31l1.87,-0.5l0.49,-0.81l0.94,0.56l2.13,0.11l2.55,0.92l1.95,-0.83l0.65,0.43l0.56,-0.13l0.69,-1.12l1.57,-0.08l0.72,-1.66l0.79,-0.74l0.8,0.39l-0.17,0.56l0.71,0.58l-0.08,2.39l1.11,0.95ZM601.37,188.71l1.73,-0.71l1.43,-1.18l4.03,0.35l-2.23,0.74l-4.95,0.8Z",
|
5876 |
+
name: "Afghanistan"
|
5877 |
+
},
|
5878 |
+
IQ: {
|
5879 |
+
path: "M530.82,187.47l0.79,0.66l1.26,-0.28l1.46,3.08l1.63,0.94l0.14,1.23l-1.22,1.05l-0.53,2.52l1.73,2.67l3.12,1.62l1.15,1.88l-0.38,1.85l0.39,0.48l0.41,-0.0l0.02,1.07l0.76,0.94l-2.47,-0.1l-1.71,2.44l-4.31,-0.2l-7.02,-5.48l-3.73,-1.94l-2.88,-0.73l-0.85,-2.87l5.45,-3.02l0.95,-3.43l-0.19,-1.96l1.27,-0.7l1.22,-1.7l0.87,-0.36l2.69,0.34Z",
|
5880 |
+
name: "Iraq"
|
5881 |
+
},
|
5882 |
+
IS: {
|
5883 |
+
path: "M384.14,88.06l-0.37,2.61l2.54,2.51l-2.9,2.75l-9.19,3.4l-9.25,-1.66l1.7,-1.22l-0.1,-0.7l-4.05,-1.47l2.96,-0.53l0.33,-0.43l-0.11,-1.2l-0.33,-0.36l-4.67,-0.85l1.28,-2.04l3.45,-0.56l3.77,2.72l0.44,0.02l3.64,-2.16l3.3,1.08l3.98,-2.16l3.58,0.26Z",
|
5884 |
+
name: "Iceland"
|
5885 |
+
},
|
5886 |
+
IR: {
|
5887 |
+
path: "M533.43,187.16l-1.27,-2.15l0.42,-0.98l-0.71,-3.04l1.03,-0.5l0.33,0.83l1.26,1.35l2.05,0.51l1.11,-0.16l2.89,-2.11l0.62,-0.14l0.39,0.46l-0.72,1.2l0.06,0.49l1.56,1.53l0.65,0.04l0.67,1.81l2.56,0.83l1.87,1.48l3.69,0.49l3.91,-0.76l0.47,-0.73l2.17,-0.6l1.66,-1.54l1.51,0.08l1.18,-0.53l1.59,0.24l2.83,1.48l1.88,0.3l2.77,2.47l1.77,0.18l0.18,1.99l-1.68,5.49l0.24,0.5l0.61,0.23l-0.82,1.48l0.8,2.18l0.19,1.71l0.3,0.34l1.63,0.4l0.15,1.32l-2.15,2.35l-0.01,0.53l2.21,3.03l2.34,1.24l0.06,2.14l1.24,0.72l0.11,0.69l-3.31,1.27l-1.08,3.03l-9.68,-1.68l-0.99,-3.05l-1.43,-0.73l-2.17,0.46l-2.47,1.26l-2.83,-0.82l-2.46,-2.02l-2.41,-0.8l-3.42,-6.06l-0.48,-0.2l-1.18,0.39l-1.44,-0.82l-0.5,0.08l-0.65,0.74l-0.97,-1.01l-0.02,-1.31l-0.71,-0.39l0.26,-1.81l-1.29,-2.11l-3.13,-1.63l-1.58,-2.43l0.5,-1.9l1.31,-1.26l-0.19,-1.66l-1.74,-1.1l-1.57,-3.3Z",
|
5888 |
+
name: "Iran"
|
5889 |
+
},
|
5890 |
+
AM: {
|
5891 |
+
path: "M536.99,182.33l-0.28,0.03l-1.23,-2.13l-0.93,0.01l-0.62,-0.66l-0.69,-0.07l-0.96,-0.81l-1.56,-0.62l0.19,-1.12l-0.26,-0.79l2.72,-0.36l1.09,1.01l-0.17,0.92l1.02,0.78l-0.47,0.62l0.08,0.56l2.04,1.23l0.04,1.4Z",
|
5892 |
+
name: "Armenia"
|
5893 |
+
},
|
5894 |
+
IT: {
|
5895 |
+
path: "M451.59,158.63l3.48,0.94l-0.21,1.17l0.3,0.83l-1.49,-0.24l-2.04,1.1l-0.21,0.39l0.13,1.45l-0.25,1.12l0.82,1.57l2.39,1.63l1.31,2.54l2.79,2.43l2.05,0.08l0.21,0.23l-0.39,0.33l0.09,0.67l4.05,1.97l2.17,1.76l-0.16,0.36l-1.17,-1.08l-2.18,-0.49l-0.44,0.2l-1.05,1.91l0.14,0.54l1.57,0.95l-0.19,0.98l-1.06,0.33l-1.25,2.34l-0.37,0.08l0.0,-0.33l1.0,-2.45l-1.73,-3.17l-1.12,-0.51l-0.88,-1.33l-1.51,-0.51l-1.27,-1.25l-1.75,-0.18l-4.12,-3.21l-1.62,-1.65l-1.03,-3.19l-3.53,-1.36l-1.3,0.51l-1.69,1.41l0.16,-0.72l-0.28,-0.47l-1.14,-0.33l-0.53,-1.96l0.72,-0.78l0.04,-0.48l-0.65,-1.17l0.8,0.39l1.4,-0.23l1.11,-0.84l0.52,0.35l1.19,-0.1l0.75,-1.2l1.53,0.33l1.36,-0.56l0.35,-1.14l1.08,0.32l0.68,-0.64l1.98,-0.44l0.42,0.82ZM459.19,184.75l-0.65,1.65l0.32,1.05l-0.31,0.89l-1.5,-0.85l-4.5,-1.67l0.19,-0.82l2.67,0.23l3.78,-0.48ZM443.93,176.05l1.18,1.66l-0.3,3.32l-1.06,-0.01l-0.77,0.73l-0.53,-0.44l-0.1,-3.37l-0.39,-1.22l1.04,0.01l0.92,-0.68Z",
|
5896 |
+
name: "Italy"
|
5897 |
+
},
|
5898 |
+
VN: {
|
5899 |
+
path: "M690.56,230.25l-2.7,1.82l-2.09,2.46l-0.63,1.95l4.31,6.45l2.32,1.65l1.43,1.94l1.11,4.59l-0.32,4.24l-1.93,1.54l-2.84,1.61l-2.11,2.15l-2.73,2.06l-0.59,-1.05l0.63,-1.53l-0.13,-0.47l-1.34,-1.04l1.51,-0.71l2.55,-0.18l0.3,-0.63l-0.82,-1.14l4.0,-2.07l0.31,-3.05l-0.57,-1.77l0.42,-2.66l-0.73,-1.97l-1.86,-1.76l-3.63,-5.29l-2.72,-1.46l0.36,-0.47l1.5,-0.64l0.21,-0.52l-0.97,-2.27l-0.37,-0.24l-2.83,-0.02l-2.24,-3.9l0.83,-0.4l4.39,-0.29l2.06,-1.31l1.15,0.89l1.88,0.4l-0.17,1.51l1.35,1.16l1.67,0.45Z",
|
5900 |
+
name: "Vietnam"
|
5901 |
+
},
|
5902 |
+
AR: {
|
5903 |
+
path: "M249.29,428.93l-2.33,-0.52l-5.83,-0.43l-0.89,-1.66l0.05,-2.37l-0.45,-0.4l-1.43,0.18l-0.67,-0.91l-0.2,-3.13l1.88,-1.47l0.79,-2.04l-0.25,-1.7l1.3,-2.68l0.91,-4.15l-0.22,-1.69l0.85,-0.45l0.2,-0.44l-0.27,-1.16l-0.98,-0.68l0.59,-0.92l-0.05,-0.5l-1.04,-1.07l-0.52,-3.1l0.97,-0.86l-0.42,-3.58l1.2,-5.43l1.38,-0.98l0.16,-0.43l-0.75,-2.79l-0.01,-2.43l1.78,-1.75l0.06,-2.57l1.43,-2.85l0.01,-2.58l-0.69,-0.74l-1.09,-4.52l1.47,-2.7l-0.18,-2.79l0.85,-2.35l1.59,-2.46l1.73,-1.64l0.05,-0.52l-0.6,-0.84l0.44,-0.85l-0.07,-4.19l2.7,-1.44l0.86,-2.75l-0.21,-0.71l1.76,-2.01l2.9,0.57l1.38,1.78l0.68,-0.08l0.87,-1.87l2.39,0.09l4.95,4.77l2.17,0.49l3.0,1.92l2.47,1.0l0.25,0.82l-2.37,3.93l0.23,0.59l5.39,1.16l2.12,-0.44l2.45,-2.16l0.5,-2.38l0.76,-0.31l0.98,1.2l-0.04,1.8l-3.67,2.51l-2.85,2.66l-3.43,3.88l-1.3,5.07l0.01,2.72l-0.54,0.73l-0.36,3.28l3.14,2.64l-0.16,2.11l1.4,1.11l-0.1,1.09l-2.29,3.52l-3.55,1.49l-4.92,0.6l-2.71,-0.29l-0.43,0.51l0.5,1.65l-0.49,2.1l0.38,1.42l-1.19,0.83l-2.36,0.38l-2.3,-1.04l-1.38,0.83l0.41,3.64l1.69,0.91l1.4,-0.71l0.36,0.76l-2.04,0.86l-2.01,1.89l-0.97,4.63l-2.34,0.1l-2.09,1.78l-0.61,2.75l2.46,2.31l2.17,0.63l-0.7,2.32l-2.83,1.73l-1.73,3.86l-2.17,1.22l-1.16,1.67l0.75,3.76l1.04,1.28ZM256.71,438.88l-2.0,0.15l-1.4,-1.22l-3.82,-0.1l-0.0,-5.83l1.6,3.05l3.26,2.07l3.08,0.78l-0.71,1.1Z",
|
5904 |
+
name: "Argentina"
|
5905 |
+
},
|
5906 |
+
AU: {
|
5907 |
+
path: "M705.8,353.26l0.26,0.04l0.17,-0.47l-0.48,-1.42l0.92,1.11l0.45,0.15l0.27,-0.39l-0.1,-1.56l-1.98,-3.63l1.09,-3.31l-0.24,-1.57l0.34,-0.62l0.38,1.06l0.43,-0.19l0.99,-1.7l1.91,-0.83l1.29,-1.15l1.81,-0.91l0.96,-0.17l0.92,0.26l1.92,-0.95l1.47,-0.28l1.03,-0.8l1.43,0.04l2.78,-0.84l1.36,-1.15l0.71,-1.45l1.41,-1.26l0.3,-2.58l1.27,-1.59l0.78,1.65l0.54,0.19l1.07,-0.51l0.15,-0.6l-0.73,-1.0l0.45,-0.71l0.78,0.39l0.58,-0.3l0.28,-1.82l1.87,-2.14l1.12,-0.39l0.28,-0.58l0.62,0.17l0.53,-0.73l1.87,-0.57l1.65,1.05l1.35,1.48l3.39,0.38l0.43,-0.54l-0.46,-1.23l1.05,-1.79l1.04,-0.61l0.14,-0.55l-0.25,-0.41l0.88,-1.17l1.31,-0.77l1.3,0.27l2.1,-0.48l0.31,-0.4l-0.05,-1.3l-0.92,-0.77l1.48,0.56l1.41,1.07l2.11,0.65l0.81,-0.2l1.4,0.7l1.69,-0.66l0.8,0.19l0.64,-0.33l0.71,0.77l-1.33,1.94l-0.71,0.07l-0.35,0.51l0.24,0.86l-1.52,2.35l0.12,1.05l2.15,1.65l1.97,0.85l3.04,2.36l1.97,0.65l0.55,0.88l2.72,0.85l1.84,-1.1l2.07,-5.97l-0.42,-3.59l0.3,-1.73l0.47,-0.87l-0.31,-0.68l1.09,-3.28l0.46,-0.47l0.4,0.71l0.16,1.51l0.65,0.52l0.16,1.04l0.85,1.21l0.12,2.38l0.9,2.0l0.57,0.18l1.3,-0.78l1.69,1.7l-0.2,1.08l0.53,2.2l0.39,1.3l0.68,0.48l0.6,1.95l-0.19,1.48l0.81,1.76l6.01,3.69l-0.11,0.76l1.38,1.58l0.95,2.77l0.58,0.22l0.72,-0.41l0.8,0.9l0.61,0.01l0.46,2.41l4.81,4.71l0.66,2.02l-0.07,3.31l1.14,2.2l-0.13,2.24l-1.1,3.68l0.03,1.64l-0.47,1.89l-1.05,2.4l-1.9,1.47l-1.72,3.51l-2.38,6.09l-0.24,2.82l-1.14,0.8l-2.85,0.15l-2.31,1.19l-2.51,2.25l-3.09,-1.57l0.3,-1.15l-0.54,-0.47l-1.5,0.63l-2.01,1.94l-7.12,-2.18l-1.48,-1.63l-1.14,-3.74l-1.45,-1.26l-1.81,-0.26l0.56,-1.18l-0.61,-2.1l-0.72,-0.1l-1.14,1.82l-0.9,0.21l0.63,-0.82l0.36,-1.55l0.92,-1.31l-0.13,-2.34l-0.7,-0.22l-2.0,2.34l-1.51,0.93l-0.94,2.01l-1.35,-0.81l-0.02,-1.52l-1.57,-2.04l-1.09,-0.88l0.24,-0.33l-0.14,-0.59l-3.21,-1.69l-1.83,-0.12l-2.54,-1.35l-4.58,0.28l-6.02,1.9l-2.53,-0.13l-2.62,1.41l-2.13,0.63l-1.49,2.6l-3.49,0.31l-2.29,-0.5l-3.48,0.43l-1.6,1.47l-0.81,-0.04l-2.37,1.63l-3.26,-0.1l-3.72,-2.21l0.04,-1.05l1.19,-0.46l0.49,-0.89l0.21,-2.97l-0.28,-1.64l-1.34,-2.86l-0.38,-1.47l0.05,-1.72l-0.95,-1.7l-0.18,-0.97l-1.01,-0.99l-0.29,-1.98l-1.13,-1.75ZM784.92,393.44l2.65,1.02l3.23,-0.96l1.09,0.14l0.15,3.06l-0.85,1.13l-0.17,1.63l-0.87,-0.24l-1.57,1.91l-1.68,-0.18l-1.4,-2.36l-0.37,-2.04l-1.39,-2.51l0.04,-0.8l1.15,0.18Z",
|
5908 |
+
name: "Australia"
|
5909 |
+
},
|
5910 |
+
IL: {
|
5911 |
+
path: "M507.76,203.05l0.4,-0.78l0.18,0.4l-0.33,1.03l0.52,0.44l0.68,-0.22l-0.86,3.6l-1.16,-3.32l0.59,-0.74l-0.03,-0.41ZM508.73,200.34l0.37,-1.02l0.64,0.0l0.52,-0.51l-0.49,1.53l-0.56,-0.24l-0.48,0.23Z",
|
5912 |
+
name: "Israel"
|
5913 |
+
},
|
5914 |
+
IN: {
|
5915 |
+
path: "M623.34,207.03l-1.24,1.04l-0.97,2.55l0.22,0.51l8.04,3.87l3.42,0.37l1.57,1.38l4.92,0.88l2.18,-0.04l0.38,-0.3l0.29,-1.24l-0.32,-1.64l0.14,-0.87l0.82,-0.31l0.45,2.48l2.28,1.02l1.77,-0.38l4.14,0.1l0.38,-0.36l0.18,-1.66l-0.5,-0.65l1.37,-0.29l2.25,-1.99l2.7,-1.62l1.93,0.62l1.8,-0.98l0.79,1.14l-0.68,0.91l0.26,0.63l2.42,0.36l0.09,0.47l-0.83,0.75l0.13,1.07l-1.52,-0.29l-3.24,1.86l-0.13,1.78l-1.32,2.14l-0.18,1.39l-0.93,1.82l-1.64,-0.5l-0.52,0.37l-0.09,2.63l-0.56,1.11l0.19,0.81l-0.53,0.27l-1.18,-3.73l-1.08,-0.27l-0.38,0.31l-0.24,1.0l-0.66,-0.66l0.54,-1.06l1.22,-0.34l1.15,-2.25l-0.24,-0.56l-1.57,-0.47l-4.34,-0.28l-0.18,-1.56l-0.35,-0.35l-1.11,-0.12l-1.91,-1.12l-0.56,0.17l-0.88,1.82l0.11,0.49l1.36,1.07l-1.09,0.69l-0.69,1.11l0.18,0.56l1.24,0.57l-0.32,1.54l0.85,1.94l0.36,2.01l-0.22,0.59l-4.58,0.52l-0.33,0.42l0.13,1.8l-1.17,1.36l-3.65,1.81l-2.79,3.03l-4.32,3.28l-0.18,1.27l-4.65,1.79l-0.77,2.16l0.64,5.3l-1.06,2.49l-0.01,3.94l-1.24,0.28l-1.14,1.93l0.39,0.84l-1.68,0.53l-1.04,1.83l-0.65,0.47l-2.06,-2.05l-2.1,-6.02l-2.2,-3.64l-1.05,-4.75l-2.29,-3.57l-1.76,-8.2l0.01,-3.11l-0.49,-2.53l-0.55,-0.29l-3.53,1.52l-1.53,-0.27l-2.86,-2.77l0.85,-0.67l0.08,-0.55l-0.74,-1.03l-2.67,-2.06l1.24,-1.32l5.34,0.01l0.39,-0.49l-0.5,-2.29l-1.42,-1.46l-0.27,-1.93l-1.43,-1.2l2.31,-2.37l3.05,0.06l2.62,-2.85l1.6,-2.81l2.4,-2.73l0.07,-2.04l1.97,-1.48l-0.02,-0.65l-1.93,-1.31l-0.82,-1.78l-0.8,-2.21l0.9,-0.89l3.59,0.65l2.92,-0.42l2.33,-2.19l2.31,2.85l-0.24,2.13l0.99,1.59l-0.05,0.82l-1.34,-0.28l-0.47,0.48l0.7,3.06l2.62,1.99l2.99,1.65Z",
|
5916 |
+
name: "India"
|
5917 |
+
},
|
5918 |
+
TZ: {
|
5919 |
+
path: "M495.56,296.42l2.8,-3.12l-0.02,-0.81l-0.64,-1.3l0.68,-0.52l0.14,-1.47l-0.76,-1.25l0.31,-0.11l2.26,0.03l-0.51,2.76l0.76,1.3l0.5,0.12l1.05,-0.53l1.19,-0.12l0.61,0.24l1.43,-0.62l0.1,-0.67l-0.71,-0.62l1.57,-1.7l8.65,4.86l0.32,1.53l3.34,2.33l-1.05,2.8l0.13,1.61l1.63,1.12l-0.6,1.76l-0.01,2.33l1.89,4.03l0.57,0.43l-1.46,1.08l-2.61,0.94l-1.43,-0.04l-1.06,0.77l-2.29,0.36l-2.87,-0.68l-0.83,0.07l-0.63,-0.75l-0.31,-2.78l-1.32,-1.35l-3.25,-0.77l-3.96,-1.58l-1.18,-2.41l-0.32,-1.75l-1.76,-1.49l0.42,-1.05l-0.44,-0.89l0.08,-0.96l-0.46,-0.58l0.06,-0.56Z",
|
5920 |
+
name: "Tanzania"
|
5921 |
+
},
|
5922 |
+
AZ: {
|
5923 |
+
path: "M539.29,175.73l1.33,0.32l1.94,-1.8l2.3,3.34l1.43,0.43l-1.26,0.15l-0.35,0.32l-0.8,3.14l-0.99,0.96l0.05,1.11l-1.26,-1.13l0.7,-1.18l-0.04,-0.47l-0.74,-0.86l-1.48,0.15l-2.34,1.71l-0.03,-1.27l-2.03,-1.35l0.47,-0.62l-0.08,-0.56l-1.03,-0.79l0.29,-0.43l-0.14,-0.58l-1.13,-0.86l1.89,0.68l1.69,0.06l0.37,-0.87l-0.81,-1.37l0.42,0.06l1.63,1.72ZM533.78,180.57l0.61,0.46l0.69,-0.0l0.59,1.15l-0.68,-0.15l-1.21,-1.45Z",
|
5924 |
+
name: "Azerbaijan"
|
5925 |
+
},
|
5926 |
+
IE: {
|
5927 |
+
path: "M405.08,135.42l0.35,2.06l-1.75,2.78l-4.22,1.88l-2.84,-0.4l1.73,-3.0l-1.18,-3.53l4.6,-3.74l0.32,1.15l-0.49,1.74l0.4,0.51l1.47,-0.04l1.6,0.6Z",
|
5928 |
+
name: "Ireland"
|
5929 |
+
},
|
5930 |
+
ID: {
|
5931 |
+
path: "M756.47,287.89l0.69,4.01l2.79,1.78l0.51,-0.1l2.04,-2.59l2.71,-1.43l2.05,-0.0l3.9,1.73l2.46,0.45l0.08,15.12l-1.75,-1.54l-2.54,-0.51l-0.88,0.71l-2.32,0.06l0.69,-1.33l1.45,-0.64l0.23,-0.46l-0.65,-2.74l-1.24,-2.21l-5.04,-2.29l-2.09,-0.23l-3.68,-2.27l-0.55,0.13l-0.65,1.07l-0.52,0.12l-0.55,-1.89l-1.21,-0.78l1.84,-0.62l1.72,0.05l0.39,-0.52l-0.21,-0.66l-0.38,-0.28l-3.45,-0.0l-1.13,-1.48l-2.1,-0.43l-0.52,-0.6l2.69,-0.48l1.28,-0.78l3.66,0.94l0.3,0.71ZM757.91,300.34l-0.62,0.82l-0.1,-0.8l0.59,-1.12l0.13,1.1ZM747.38,292.98l0.34,0.72l-1.22,-0.57l-4.68,-0.1l0.27,-0.62l2.78,-0.09l2.52,0.67ZM741.05,285.25l-0.67,-2.88l0.64,-2.01l0.41,0.86l1.21,0.18l0.16,0.7l-0.1,1.68l-0.84,-0.16l-0.46,0.3l-0.34,1.34ZM739.05,293.5l-0.5,0.44l-1.34,-0.36l-0.17,-0.37l1.73,-0.08l0.27,0.36ZM721.45,284.51l-0.19,1.97l2.24,2.23l0.54,0.02l1.27,-1.07l2.75,-0.5l-0.9,1.21l-2.11,0.93l-0.16,0.6l2.22,3.01l-0.3,1.07l1.36,1.74l-2.26,0.85l-0.28,-0.31l0.12,-1.19l-1.64,-1.34l0.17,-2.23l-0.56,-0.39l-1.67,0.76l-0.23,0.39l0.3,6.17l-1.1,0.25l-0.69,-0.47l0.64,-2.21l-0.39,-2.42l-0.39,-0.34l-0.8,-0.01l-0.58,-1.29l0.98,-1.6l0.35,-1.96l1.32,-3.87ZM728.59,296.27l0.38,0.49l-0.02,1.28l-0.88,0.49l-0.53,-0.47l1.04,-1.79ZM729.04,286.98l0.27,-0.05l-0.02,0.13l-0.24,-0.08ZM721.68,284.05l0.16,-0.32l1.89,-1.65l1.83,0.68l3.16,0.35l2.94,-0.1l2.39,-1.66l-1.73,2.13l-1.66,0.43l-2.41,-0.48l-4.17,0.13l-2.39,0.51ZM730.55,310.47l1.11,-1.93l2.03,-0.82l0.08,0.62l-1.45,1.67l-1.77,0.46ZM728.12,305.88l-0.1,0.38l-3.46,0.66l-2.91,-0.27l-0.0,-0.25l1.54,-0.41l1.66,0.73l1.67,-0.19l1.61,-0.65ZM722.9,310.24l-0.64,0.03l-2.26,-1.2l1.11,-0.24l1.78,1.41ZM716.26,305.77l0.88,0.51l1.28,-0.17l0.2,0.35l-4.65,0.73l0.39,-0.67l1.15,-0.02l0.75,-0.73ZM711.66,293.84l-0.38,-0.16l-2.54,1.01l-1.12,-1.44l-1.69,-0.13l-1.16,-0.75l-3.04,0.77l-1.1,-1.15l-3.31,-0.11l-0.35,-3.05l-1.35,-0.95l-1.11,-1.98l-0.33,-2.06l0.27,-2.14l0.9,-1.01l0.37,1.15l2.09,1.49l1.53,-0.48l1.82,0.08l1.38,-1.19l1.0,-0.18l2.28,0.67l2.26,-0.53l1.52,-3.64l1.01,-0.99l0.78,-2.57l4.1,0.3l-1.11,1.77l0.02,0.46l1.7,2.2l-0.23,1.39l2.07,1.71l-2.33,0.42l-0.88,1.9l0.1,2.05l-2.4,1.9l-0.06,2.45l-0.7,2.79ZM692.58,302.03l0.35,0.26l4.8,0.25l0.78,-0.97l4.17,1.09l1.13,1.68l3.69,0.45l2.13,1.04l-1.8,0.6l-2.77,-0.99l-4.8,-0.12l-5.24,-1.41l-1.84,-0.25l-1.11,0.3l-4.26,-0.97l-0.7,-1.14l-1.59,-0.13l1.18,-1.65l2.74,0.13l2.87,1.13l0.26,0.68ZM685.53,299.17l-2.22,0.04l-2.06,-2.03l-3.15,-2.01l-2.93,-3.51l-3.11,-5.33l-2.2,-2.12l-1.64,-4.06l-2.32,-1.69l-1.27,-2.07l-1.96,-1.5l-2.51,-2.65l-0.11,-0.66l4.81,0.53l2.15,2.38l3.31,2.74l2.35,2.66l2.7,0.17l1.95,1.59l1.54,2.17l1.59,0.95l-0.84,1.71l0.15,0.52l1.44,0.87l0.79,0.1l0.4,1.58l0.87,1.4l1.96,0.39l1.0,1.31l-0.6,3.01l-0.09,3.5Z",
|
5932 |
+
name: "Indonesia"
|
5933 |
+
},
|
5934 |
+
UA: {
|
5935 |
+
path: "M492.5,162.44l1.28,-2.49l1.82,0.19l0.66,-0.23l0.09,-0.71l-0.25,-0.75l-0.79,-0.72l-0.33,-1.21l-0.86,-0.62l-0.02,-1.19l-1.13,-0.86l-1.15,-0.19l-2.04,-1.0l-1.66,0.32l-0.66,0.47l-0.92,-0.0l-0.84,0.78l-2.48,0.7l-1.18,-0.71l-3.07,-0.36l-0.89,0.43l-0.24,-0.55l-1.11,-0.7l0.35,-0.93l1.26,-1.02l-0.54,-1.23l2.04,-2.43l1.4,-0.62l0.25,-1.19l-1.04,-2.39l0.83,-0.13l1.28,-0.84l1.8,-0.07l2.47,0.26l2.86,0.81l1.88,0.06l0.86,0.44l1.04,-0.41l0.77,0.66l2.18,-0.15l0.92,0.3l0.52,-0.34l0.15,-1.53l0.56,-0.54l2.85,-0.05l0.84,-0.72l3.04,-0.18l1.23,1.46l-0.48,0.77l0.21,1.03l0.36,0.32l1.8,0.14l0.93,2.08l3.18,1.15l1.94,-0.45l1.67,1.49l1.4,-0.03l3.35,0.96l0.02,0.54l-0.96,1.59l0.47,1.97l-0.26,0.7l-2.36,0.28l-1.29,0.89l-0.23,1.38l-1.83,0.27l-1.58,0.97l-2.41,0.21l-2.16,1.17l-0.21,0.38l0.34,2.26l1.23,0.75l2.13,-0.08l-0.14,0.31l-2.65,0.53l-3.23,1.69l-0.87,-0.39l0.42,-1.1l-0.25,-0.52l-2.21,-0.73l2.35,-1.06l0.12,-0.65l-0.93,-0.82l-3.62,-0.74l-0.13,-0.89l-0.46,-0.34l-2.61,0.59l-0.91,1.69l-1.71,2.04l-0.86,-0.4l-1.62,0.27Z",
|
5936 |
+
name: "Ukraine"
|
5937 |
+
},
|
5938 |
+
QA: {
|
5939 |
+
path: "M549.33,221.64l-0.76,-0.23l-0.14,-1.64l0.84,-1.29l0.47,0.52l0.04,1.34l-0.45,1.3Z",
|
5940 |
+
name: "Qatar"
|
5941 |
+
},
|
5942 |
+
MZ: {
|
5943 |
+
path: "M508.58,318.75l-0.34,-2.57l0.51,-2.05l3.55,0.63l2.5,-0.38l1.02,-0.76l1.49,0.01l2.74,-0.98l1.66,-1.2l0.5,9.24l0.41,1.23l-0.68,1.67l-0.93,1.71l-1.5,1.5l-5.16,2.28l-2.78,2.73l-1.02,0.53l-1.71,1.8l-0.98,0.57l-0.35,2.41l1.16,1.94l0.49,2.17l0.43,0.31l-0.06,2.06l-0.39,1.17l0.5,0.72l-0.25,0.73l-0.92,0.83l-5.12,2.39l-1.22,1.36l0.21,1.13l0.58,0.39l-0.11,0.72l-1.22,-0.01l-0.73,-2.97l0.42,-3.09l-1.78,-5.37l2.49,-2.81l0.69,-1.89l0.44,-0.43l0.28,-1.53l-0.39,-0.93l0.59,-3.65l-0.01,-3.26l-1.49,-1.16l-1.2,-0.22l-1.74,-1.17l-1.92,0.01l-0.29,-2.08l7.06,-1.96l1.28,1.09l0.89,-0.1l0.67,0.44l0.1,0.73l-0.51,1.29l0.19,1.81l1.75,1.83l0.65,-0.13l0.71,-1.65l1.17,-0.86l-0.26,-3.47l-1.05,-1.85l-1.04,-0.94Z",
|
5944 |
+
name: "Mozambique"
|
5945 |
+
}
|
5946 |
+
},
|
5947 |
+
height: 440.70631074413296,
|
5948 |
+
projection: {
|
5949 |
+
type: "mill",
|
5950 |
+
centralMeridian: 11.5
|
5951 |
+
},
|
5952 |
+
width: 900
|
5953 |
+
});
|
js/zero-spam-admin.js
CHANGED
@@ -1 +1,105 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function($) {
|
2 |
+
$("[data-ip-location]").click(function() {
|
3 |
+
var ip = $(this).data("ip-location"), element = $("[data-ip-location='" + ip + "']");
|
4 |
+
jQuery.post(ajaxurl, {
|
5 |
+
action: "get_location",
|
6 |
+
security: zero_spam_admin.nonce,
|
7 |
+
ip: ip
|
8 |
+
}, function(data) {
|
9 |
+
var obj = $.parseJSON(data), html = "";
|
10 |
+
if (obj) {
|
11 |
+
if (obj.country_name) {
|
12 |
+
html += obj.country_code;
|
13 |
+
}
|
14 |
+
if (obj.region_name) {
|
15 |
+
if (html.length) {
|
16 |
+
html += ", ";
|
17 |
+
}
|
18 |
+
html += obj.region_name;
|
19 |
+
}
|
20 |
+
if (obj.city) {
|
21 |
+
if (html.length) {
|
22 |
+
html += ", ";
|
23 |
+
}
|
24 |
+
html += obj.city;
|
25 |
+
}
|
26 |
+
if (obj.country_code) {
|
27 |
+
html = '<span class="country-flag country-flags-' + obj.country_code.toLowerCase() + '"></span> ' + html;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
if (!html.length) html = '<i class="fa fa-exclamation-triangle"></i>';
|
31 |
+
element.html(html);
|
32 |
+
});
|
33 |
+
});
|
34 |
+
$(".zero-spam__block-ip, .zero-spam__trash").click(function(e) {
|
35 |
+
e.preventDefault();
|
36 |
+
closeForms();
|
37 |
+
var row = $(this).closest("tr"), form_row = $("<tr class='zero-spam__row-highlight'>"), btn = $(this), btn_cell = btn.parent(), ip = btn.data("ip"), action = "";
|
38 |
+
row.addClass("zero-spam__loading");
|
39 |
+
if (btn.hasClass("zero-spam__trash")) {
|
40 |
+
action = "trash_ip_block";
|
41 |
+
} else {
|
42 |
+
action = "block_ip_form";
|
43 |
+
}
|
44 |
+
$.post(ajaxurl, {
|
45 |
+
action: action,
|
46 |
+
security: zero_spam_admin.nonce,
|
47 |
+
ip: ip
|
48 |
+
}, function(data) {
|
49 |
+
row.removeClass("zero-spam__loading");
|
50 |
+
if (btn.hasClass("zero-spam__trash")) {
|
51 |
+
action = "trash_ip_block";
|
52 |
+
row.fadeOut(function() {
|
53 |
+
row.remove();
|
54 |
+
if ($(".zero-spam__table tbody tr").length === 0) {
|
55 |
+
$("#zerospam-id-container").after("No blocked IPs found.");
|
56 |
+
$("#zerospam-id-container").remove();
|
57 |
+
}
|
58 |
+
});
|
59 |
+
} else {
|
60 |
+
action = "block_ip_form";
|
61 |
+
row.addClass("zero-spam__loaded");
|
62 |
+
form_row.append("<td colspan='10'>" + data + "</td>");
|
63 |
+
row.before(form_row);
|
64 |
+
}
|
65 |
+
});
|
66 |
+
});
|
67 |
+
});
|
68 |
+
|
69 |
+
function closeForms() {
|
70 |
+
jQuery(".zero-spam__row-highlight").remove();
|
71 |
+
jQuery("tr").removeClass("zero-spam__loading");
|
72 |
+
jQuery("tr").removeClass("zero-spam__loaded");
|
73 |
+
}
|
74 |
+
|
75 |
+
function clearLog() {
|
76 |
+
if (true === confirm("This will PERMANENTLY delete all data in the spammer log. This action cannot be undone. Are you sure you want to continue?")) {
|
77 |
+
jQuery.post(ajaxurl, {
|
78 |
+
action: "reset_log",
|
79 |
+
security: zero_spam_admin.nonce
|
80 |
+
}, function() {
|
81 |
+
location.reload();
|
82 |
+
});
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
function updateRow(ip) {
|
87 |
+
if (ip) {
|
88 |
+
jQuery.post(ajaxurl, {
|
89 |
+
action: "get_blocked_ip",
|
90 |
+
security: zero_spam_admin.nonce,
|
91 |
+
ip: ip
|
92 |
+
}, function(data) {
|
93 |
+
var d = jQuery.parseJSON(data), row = jQuery("tr[data-ip='" + d.ip + "']"), label;
|
94 |
+
if (true === d.is_blocked) {
|
95 |
+
label = '<span class="zero-spam__label zero-spam__bg--primary">Blocked</span>';
|
96 |
+
} else {
|
97 |
+
label = '<span class="zero-spam__label zero-spam__bg--trinary">Unblocked</span>';
|
98 |
+
}
|
99 |
+
jQuery(".zero-spam__reason", row).text(d.reason);
|
100 |
+
jQuery(".zero-spam__start-date", row).text(d.start_date_txt);
|
101 |
+
jQuery(".zero-spam__end-date", row).text(d.end_date_txt);
|
102 |
+
jQuery(".zero-spam__status", row).html(label);
|
103 |
+
});
|
104 |
+
}
|
105 |
+
}
|
js/zerospam.js
CHANGED
@@ -1 +1,24 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function($) {
|
2 |
+
"use strict";
|
3 |
+
$(function() {
|
4 |
+
var forms = "#commentform";
|
5 |
+
forms += ", #contactform";
|
6 |
+
forms += ", #registerform";
|
7 |
+
forms += ", #buddypress #signup_form";
|
8 |
+
forms += ", .zerospam";
|
9 |
+
forms += ", .ninja-forms-form";
|
10 |
+
forms += ", .wpforms-form";
|
11 |
+
if (typeof zerospam.key != "undefined") {
|
12 |
+
$(forms).on("submit", function() {
|
13 |
+
$("<input>").attr("type", "hidden").attr("name", "zerospam_key").attr("value", zerospam.key).appendTo(forms);
|
14 |
+
return true;
|
15 |
+
});
|
16 |
+
$(document).on("gform_post_render", function() {
|
17 |
+
$("<input>").attr("type", "hidden").attr("name", "zerospam_key").attr("value", zerospam.key).appendTo(".gform_wrapper form ");
|
18 |
+
});
|
19 |
+
$(".wpcf7-submit").click(function() {
|
20 |
+
$("<input>").attr("type", "hidden").attr("name", "zerospam_key").attr("value", zerospam.key).appendTo(".wpcf7-form");
|
21 |
+
});
|
22 |
+
}
|
23 |
+
});
|
24 |
+
})(jQuery);
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== WordPress Zero Spam ===
|
2 |
-
Contributors: bmarshall511, afragen, tangrufus, leewillis77, macbookandrew, jaredatch
|
3 |
Donate link: https://www.gittip.com/bmarshall511/
|
4 |
Tags: comments, spam, antispam, anti-spam, comment spam, spambot, spammer, spam free, spam blocker, registration spam
|
5 |
Requires at least: 3.0.0
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -124,6 +124,16 @@ Yes! Install [Sunny](https://wphuman.com/go/sunny/) and follow this [guide](http
|
|
124 |
|
125 |
== Changelog ==
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
= 2.1.0 =
|
128 |
* Added support for WPForms (https://github.com/bmarshall511/wordpress-zero-spam/issues/129)
|
129 |
|
@@ -221,3 +231,4 @@ Yes! Install [Sunny](https://wphuman.com/go/sunny/) and follow this [guide](http
|
|
221 |
* [Lee Willis](https://github.com/leewillis77)
|
222 |
* [Andrew Minion](https://github.com/macbookandrew)
|
223 |
* [Jared Atchison](https://github.com/jaredatch)
|
|
1 |
=== WordPress Zero Spam ===
|
2 |
+
Contributors: bmarshall511, afragen, tangrufus, leewillis77, macbookandrew, jaredatch, karpstrucking, thiagolcks
|
3 |
Donate link: https://www.gittip.com/bmarshall511/
|
4 |
Tags: comments, spam, antispam, anti-spam, comment spam, spambot, spammer, spam free, spam blocker, registration spam
|
5 |
Requires at least: 3.0.0
|
6 |
+
Tested up to: 4.6.1
|
7 |
+
Stable tag: 2.2.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
124 |
|
125 |
== Changelog ==
|
126 |
|
127 |
+
= 2.0.0 =
|
128 |
+
# Fixed security issue, thanks @thiagolcks (https://github.com/bmarshall511/wordpress-zero-spam/pull/138)
|
129 |
+
|
130 |
+
= 2.1.2 =
|
131 |
+
* Fixed issue with Gravity Forms not working, thanks @karpstrucking & @jaredatch (https://github.com/bmarshall511/wordpress-zero-spam/issues/132)
|
132 |
+
* Updated the repo link on the admin page (https://github.com/bmarshall511/wordpress-zero-spam/issues/124)
|
133 |
+
|
134 |
+
= 2.1.1 =
|
135 |
+
* Minor updates
|
136 |
+
|
137 |
= 2.1.0 =
|
138 |
* Added support for WPForms (https://github.com/bmarshall511/wordpress-zero-spam/issues/129)
|
139 |
|
231 |
* [Lee Willis](https://github.com/leewillis77)
|
232 |
* [Andrew Minion](https://github.com/macbookandrew)
|
233 |
* [Jared Atchison](https://github.com/jaredatch)
|
234 |
+
* [Lucas Karpiuk](https://github.com/karpstrucking)
|
src/ZeroSpam/Admin.php
CHANGED
@@ -516,9 +516,12 @@ class ZeroSpam_Admin extends ZeroSpam_Plugin {
|
|
516 |
* @return void | boolean
|
517 |
*/
|
518 |
public function load_zerospam_settings() {
|
519 |
-
|
520 |
-
|
521 |
-
|
|
|
|
|
|
|
522 |
|
523 |
wp_enqueue_style( 'zerospam-admin', plugins_url( 'css/style.css', ZEROSPAM_PLUGIN ) );
|
524 |
wp_enqueue_script( 'zerospam-charts', plugins_url( 'js/charts.js', ZEROSPAM_PLUGIN ), array( 'jquery' ) );
|
@@ -560,11 +563,10 @@ class ZeroSpam_Admin extends ZeroSpam_Plugin {
|
|
560 |
);
|
561 |
$spam = zerospam_get_spam( $args );
|
562 |
$spam = zerospam_parse_spam_ary( $spam );
|
563 |
-
$all_spam =
|
564 |
-
$all_spam = zerospam_parse_spam_ary( $all_spam );
|
565 |
|
566 |
-
if (
|
567 |
-
$starting_date = end( $all_spam['raw'] )->date;
|
568 |
$num_days = zerospam_num_days( $starting_date );
|
569 |
$per_day = $num_days ? number_format( ( count( $all_spam['raw'] ) / $num_days ), 2 ) : 0;
|
570 |
}
|
@@ -615,4 +617,4 @@ class ZeroSpam_Admin extends ZeroSpam_Plugin {
|
|
615 |
}
|
616 |
echo '</h2>';
|
617 |
}
|
618 |
-
}
|
516 |
* @return void | boolean
|
517 |
*/
|
518 |
public function load_zerospam_settings() {
|
519 |
+
// We don't need to check $pagenow `cause we called this with load-$hook_suffix
|
520 |
+
// if ( ! function_exists('get_current_screen') ||
|
521 |
+
// ! get_current_screen() ||
|
522 |
+
// ! in_array(get_current_screen()->base, array('settings_page_zerospam', 'settings_page_zerospam-network')) ) {
|
523 |
+
// return false;
|
524 |
+
// }
|
525 |
|
526 |
wp_enqueue_style( 'zerospam-admin', plugins_url( 'css/style.css', ZEROSPAM_PLUGIN ) );
|
527 |
wp_enqueue_script( 'zerospam-charts', plugins_url( 'js/charts.js', ZEROSPAM_PLUGIN ), array( 'jquery' ) );
|
563 |
);
|
564 |
$spam = zerospam_get_spam( $args );
|
565 |
$spam = zerospam_parse_spam_ary( $spam );
|
566 |
+
$all_spam = zerospam_all_spam_ary();
|
|
|
567 |
|
568 |
+
if ( $all_spam['raw'] ) {
|
569 |
+
$starting_date = $all_spam['date_start'];// end( $all_spam['raw'] )->date;
|
570 |
$num_days = zerospam_num_days( $starting_date );
|
571 |
$per_day = $num_days ? number_format( ( count( $all_spam['raw'] ) / $num_days ), 2 ) : 0;
|
572 |
}
|
617 |
}
|
618 |
echo '</h2>';
|
619 |
}
|
620 |
+
}
|
src/ZeroSpam/Ajax.php
CHANGED
@@ -207,7 +207,9 @@ class ZeroSpam_Ajax extends ZeroSpam_Plugin {
|
|
207 |
global $wpdb;
|
208 |
check_ajax_referer( 'zero-spam', 'security' );
|
209 |
|
210 |
-
$spam = zerospam_get_spam();
|
|
|
|
|
211 |
$return = array(
|
212 |
'by_country' => array(),
|
213 |
'by_lat_long' => array()
|
@@ -250,4 +252,4 @@ class ZeroSpam_Ajax extends ZeroSpam_Plugin {
|
|
250 |
|
251 |
die();
|
252 |
}
|
253 |
-
}
|
207 |
global $wpdb;
|
208 |
check_ajax_referer( 'zero-spam', 'security' );
|
209 |
|
210 |
+
// $spam = zerospam_get_spam();
|
211 |
+
$spam = zerospam_all_spam_ary();
|
212 |
+
$spam = $spam['by_spam_count'];
|
213 |
$return = array(
|
214 |
'by_country' => array(),
|
215 |
'by_lat_long' => array()
|
252 |
|
253 |
die();
|
254 |
}
|
255 |
+
}
|
src/helpers.php
CHANGED
@@ -46,7 +46,8 @@ function zerospam_get_ip() {
|
|
46 |
$ipaddress = getenv('HTTP_FORWARDED');
|
47 |
} else if ( getenv('REMOTE_ADDR') ) {
|
48 |
$ipaddress = getenv('REMOTE_ADDR');
|
49 |
-
}
|
|
|
50 |
$ipaddress = 'UNKNOWN';
|
51 |
}
|
52 |
|
@@ -135,7 +136,7 @@ function zerospam_is_blocked( $ip ) {
|
|
135 |
function zerospam_get_blocked_ip( $ip ) {
|
136 |
global $wpdb;
|
137 |
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
138 |
-
$query = $wpdb->get_row( "SELECT * FROM $table_name WHERE ip =
|
139 |
|
140 |
if ( null == $query ) {
|
141 |
return false;
|
@@ -354,6 +355,99 @@ function zerospam_parse_spam_ary( $ary ) {
|
|
354 |
return $return;
|
355 |
}
|
356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
function zerospam_num_days( $date ) {
|
358 |
$datediff = time() - strtotime( $date );
|
359 |
|
@@ -488,7 +582,7 @@ function zerospam_plugin_check( $plugin ) {
|
|
488 |
case 'wpf':
|
489 |
if ( is_plugin_active( 'wpforms/wpforms.php' ) || is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
|
490 |
$result = true;
|
491 |
-
}
|
492 |
break;
|
493 |
}
|
494 |
|
@@ -573,4 +667,4 @@ function zerospam_get_blocked_ip_count() {
|
|
573 |
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
574 |
$query = $wpdb->get_row( 'SELECT COUNT(*) AS count FROM ' . $table_name );
|
575 |
return $query->count;
|
576 |
-
}
|
46 |
$ipaddress = getenv('HTTP_FORWARDED');
|
47 |
} else if ( getenv('REMOTE_ADDR') ) {
|
48 |
$ipaddress = getenv('REMOTE_ADDR');
|
49 |
+
}
|
50 |
+
if ( false === WP_Http::is_ip_address( $ipaddress ) ) {
|
51 |
$ipaddress = 'UNKNOWN';
|
52 |
}
|
53 |
|
136 |
function zerospam_get_blocked_ip( $ip ) {
|
137 |
global $wpdb;
|
138 |
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
139 |
+
$query = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE ip = %s", $ip ) );
|
140 |
|
141 |
if ( null == $query ) {
|
142 |
return false;
|
355 |
return $return;
|
356 |
}
|
357 |
|
358 |
+
function zerospam_all_spam_ary() {
|
359 |
+
global $wpdb;
|
360 |
+
$return = array(
|
361 |
+
'by_date' => array(),
|
362 |
+
'by_spam_count' => array(),
|
363 |
+
'raw' => 0,
|
364 |
+
'comment_spam' => 0,
|
365 |
+
'registration_spam' => 0,
|
366 |
+
'cf7_spam' => 0,
|
367 |
+
'gf_spam' => 0,
|
368 |
+
'bp_registration_spam' => 0,
|
369 |
+
'nf_spam' => 0,
|
370 |
+
'unique_spammers' => array(),
|
371 |
+
'by_day' => array(
|
372 |
+
'Sun' => 0,
|
373 |
+
'Mon' => 0,
|
374 |
+
'Tue' => 0,
|
375 |
+
'Wed' => 0,
|
376 |
+
'Thu' => 0,
|
377 |
+
'Fri' => 0,
|
378 |
+
'Sat' => 0
|
379 |
+
),
|
380 |
+
);
|
381 |
+
|
382 |
+
$table_name = $wpdb->prefix . 'zerospam_log';
|
383 |
+
|
384 |
+
// Count all
|
385 |
+
if ( $r = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS zerospam_id FROM $table_name WHERE 1=1 LIMIT 10") ) {
|
386 |
+
// SELECT COUNT(*) counts, MIN(date) date_start FROM $table_name WHERE 1=1
|
387 |
+
$return['raw'] = $wpdb->get_var("SELECT FOUND_ROWS()");// array_fill(0, $count_all, 0);// JUST USE $count_all next time...
|
388 |
+
$return['date_start'] = $wpdb->get_var("SELECT date FROM $table_name WHERE zerospam_id = (SELECT MIN(zerospam_id) FROM $table_name)");
|
389 |
+
} else {
|
390 |
+
// there's no spammer logs...
|
391 |
+
return $return;
|
392 |
+
}
|
393 |
+
|
394 |
+
$type_map = array(1 => 'registration_spam', 2 => 'comment_spam', 3 => 'cf7_spam', 4 => 'gf_spam', 5 => 'bp_registration_spam', 'nf' => 'nf_spam' );
|
395 |
+
|
396 |
+
// By Weekday
|
397 |
+
$query = $wpdb->prepare("SELECT DATE_FORMAT(date, '%%a') as day, COUNT(*) counts FROM $table_name WHERE 1=1 GROUP BY day");
|
398 |
+
if ( $by_day = $wpdb->get_results($query) ) {
|
399 |
+
foreach ( $by_day as $r ) {
|
400 |
+
$return['by_day'][$r->day] = $r->counts;
|
401 |
+
}
|
402 |
+
}
|
403 |
+
// By IP
|
404 |
+
$query = $wpdb->prepare("SELECT ip, COUNT(*) counts FROM $table_name WHERE 1=1 GROUP BY ip ORDER BY counts DESC LIMIT 10");
|
405 |
+
if ( $by_count = $wpdb->get_results($query) ) {
|
406 |
+
foreach ( $by_count as $r ) {
|
407 |
+
$return['by_spam_count'][$r->ip] = $r->counts;
|
408 |
+
}
|
409 |
+
}
|
410 |
+
|
411 |
+
// COUNTS
|
412 |
+
$query = $wpdb->prepare("SELECT type, COUNT(*) counts FROM $table_name WHERE 1=1 GROUP BY type");
|
413 |
+
if ( $type_counts = $wpdb->get_results($query) ) {
|
414 |
+
foreach( $type_counts as $r ) {
|
415 |
+
$type = isset($type_map[$r->type]) ? $type_map[$r->type] : $r->type;
|
416 |
+
$return[$type] = $r->counts;
|
417 |
+
}
|
418 |
+
}
|
419 |
+
|
420 |
+
// Unique Spammers
|
421 |
+
if ( $unique_spammers = $wpdb->get_var("SELECT COUNT(DISTICT ip) FROM $table_name") ) {
|
422 |
+
$return['unique_spammers'] = $unique_spammers;
|
423 |
+
}
|
424 |
+
|
425 |
+
// By date: LIMIT 100 days for graph
|
426 |
+
$query = $wpdb->prepare("SELECT type, LEFT(date, 10) day, COUNT(*) counts FROM $table_name WHERE 1=1 GROUP BY day, type ORDER BY date DESC LIMIT 100");
|
427 |
+
if ( $by_date = $wpdb->get_results($query) ) {
|
428 |
+
|
429 |
+
foreach( $by_date as $r ) {
|
430 |
+
if ( !isset($type_map[$r->type]) )
|
431 |
+
continue;
|
432 |
+
|
433 |
+
if ( !isset($return['by_date'][$r->day]) ) {
|
434 |
+
$return['by_date'][$r->day] = array(
|
435 |
+
'data' => array(),
|
436 |
+
'comment_spam' => 0,
|
437 |
+
'registration_spam' => 0,
|
438 |
+
'cf7_spam' => 0,
|
439 |
+
'gf_spam' => 0,
|
440 |
+
'bp_registration_spam' => 0,
|
441 |
+
'nf_spam' => 0
|
442 |
+
);
|
443 |
+
}
|
444 |
+
$return['by_date'][$r->day][$type_map[$r->type]] = $r->counts;
|
445 |
+
}
|
446 |
+
}
|
447 |
+
|
448 |
+
return $return;
|
449 |
+
}
|
450 |
+
|
451 |
function zerospam_num_days( $date ) {
|
452 |
$datediff = time() - strtotime( $date );
|
453 |
|
582 |
case 'wpf':
|
583 |
if ( is_plugin_active( 'wpforms/wpforms.php' ) || is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
|
584 |
$result = true;
|
585 |
+
}
|
586 |
break;
|
587 |
}
|
588 |
|
667 |
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
668 |
$query = $wpdb->get_row( 'SELECT COUNT(*) AS count FROM ' . $table_name );
|
669 |
return $query->count;
|
670 |
+
}
|
zero-spam.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WordPress Zero Spam
|
4 |
* Plugin URI: https://benmarshall.me/wordpress-zero-spam
|
5 |
* Description: Tired of all the useless and bloated WordPress spam plugins? The WordPress Zero Spam plugin makes blocking spam a cinch. <strong>Just install, activate and say goodbye to spam.</strong> Based on work by <a href="http://davidwalsh.name/wordpress-comment-spam" target="_blank">David Walsh</a>.
|
6 |
-
* Version: 2.
|
7 |
* Author: Ben Marshall
|
8 |
* Author URI: https://benmarshall.me
|
9 |
* License: GPL2
|
3 |
* Plugin Name: WordPress Zero Spam
|
4 |
* Plugin URI: https://benmarshall.me/wordpress-zero-spam
|
5 |
* Description: Tired of all the useless and bloated WordPress spam plugins? The WordPress Zero Spam plugin makes blocking spam a cinch. <strong>Just install, activate and say goodbye to spam.</strong> Based on work by <a href="http://davidwalsh.name/wordpress-comment-spam" target="_blank">David Walsh</a>.
|
6 |
+
* Version: 2.2.0
|
7 |
* Author: Ben Marshall
|
8 |
* Author URI: https://benmarshall.me
|
9 |
* License: GPL2
|