Version Description
Download this release
Release Info
Developer | bmarshall511 |
Plugin | WordPress Zero Spam |
Version | 3.0.5 |
Comparing to | |
See all releases |
Code changes from version 3.0.3 to 3.0.5
- inc/helpers.php +14 -7
- js/charts.js +1 -1
- js/zero-spam-admin.js +46 -31
- js/zerospam.js +1 -0
- readme.txt +8 -1
- tpl/admin-sidebar.php +36 -11
- tpl/spammer-logs.php +43 -38
- trunk/css/style.css +0 -4
- trunk/fonts/FontAwesome.otf +0 -0
- trunk/fonts/fontawesome-webfont.eot +0 -0
- trunk/fonts/fontawesome-webfont.svg +0 -520
- trunk/fonts/fontawesome-webfont.ttf +0 -0
- trunk/fonts/fontawesome-webfont.woff +0 -0
- trunk/fonts/index.php +0 -1
- trunk/img/country-flags-sed4ce568d7.png +0 -0
- trunk/inc/helpers.php +0 -765
- trunk/inc/index.php +0 -1
- trunk/index.php +0 -1
- trunk/js/charts.js +0 -5953
- trunk/js/zero-spam-admin.js +0 -120
- trunk/js/zerospam.js +0 -24
- trunk/lib/ZeroSpam/Access.php +0 -37
- trunk/lib/ZeroSpam/Admin.php +0 -628
- trunk/lib/ZeroSpam/Ajax.php +0 -258
- trunk/lib/ZeroSpam/BuddyPress.php +0 -30
- trunk/lib/ZeroSpam/Comments.php +0 -68
- trunk/lib/ZeroSpam/ContactForm7.php +0 -30
- trunk/lib/ZeroSpam/GravityForms.php +0 -21
- trunk/lib/ZeroSpam/Install.php +0 -204
- trunk/lib/ZeroSpam/NinjaForms.php +0 -33
- trunk/lib/ZeroSpam/Plugin.php +0 -141
- trunk/lib/ZeroSpam/Registration.php +0 -31
- trunk/lib/ZeroSpam/Scripts.php +0 -57
- trunk/lib/ZeroSpam/WPForms.php +0 -24
- trunk/readme.txt +0 -257
- trunk/tpl/admin-sidebar.php +0 -65
- trunk/tpl/block-ip-form.php +0 -132
- trunk/tpl/general-settings.php +0 -23
- trunk/tpl/index.php +0 -1
- trunk/tpl/ip-block.php +0 -75
- trunk/tpl/spammer-logs.php +0 -534
- trunk/uninstall.php +0 -91
- trunk/zero-spam.php +0 -122
- zero-spam.php +1 -1
inc/helpers.php
CHANGED
@@ -401,7 +401,14 @@ function zerospam_all_spam_ary() {
|
|
401 |
return $return;
|
402 |
}
|
403 |
|
404 |
-
$type_map = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
|
406 |
// Get spammers by weekday.
|
407 |
$by_weekday_ary = $wpdb->get_results( "SELECT DATE_FORMAT(date, '%a') as day, COUNT(*) num FROM $table_name GROUP BY day", ARRAY_A );
|
@@ -614,17 +621,17 @@ function zerospam_reset_log() {
|
|
614 |
function zerospam_get_ip_info( $ip ) {
|
615 |
global $wpdb;
|
616 |
|
|
|
|
|
|
|
|
|
|
|
617 |
// Check DB
|
618 |
$table_name = $wpdb->prefix . 'zerospam_ip_data';
|
619 |
$data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE ip = %s", $ip ) );
|
620 |
|
621 |
// Retrieve from API
|
622 |
-
if ( !
|
623 |
-
// Ignore local hosts.
|
624 |
-
if ( $ip == '127.0.0.1' || $ip == '::1' ) {
|
625 |
-
return false;
|
626 |
-
}
|
627 |
-
|
628 |
// @ used to suppress API usage block warning.
|
629 |
$json = @file_get_contents( 'http://freegeoip.net/json/' . $ip );
|
630 |
|
401 |
return $return;
|
402 |
}
|
403 |
|
404 |
+
$type_map = array(
|
405 |
+
1 => 'registration_spam',
|
406 |
+
2 => 'comment_spam',
|
407 |
+
3 => 'cf7_spam',
|
408 |
+
4 => 'gf_spam',
|
409 |
+
5 => 'bp_registration_spam',
|
410 |
+
'nf' => 'nf_spam',
|
411 |
+
'Undefined Form' => 'undefined_form' );
|
412 |
|
413 |
// Get spammers by weekday.
|
414 |
$by_weekday_ary = $wpdb->get_results( "SELECT DATE_FORMAT(date, '%a') as day, COUNT(*) num FROM $table_name GROUP BY day", ARRAY_A );
|
621 |
function zerospam_get_ip_info( $ip ) {
|
622 |
global $wpdb;
|
623 |
|
624 |
+
// Ignore local hosts.
|
625 |
+
if ( $ip == '127.0.0.1' || $ip == '::1' ) {
|
626 |
+
return false;
|
627 |
+
}
|
628 |
+
|
629 |
// Check DB
|
630 |
$table_name = $wpdb->prefix . 'zerospam_ip_data';
|
631 |
$data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE ip = %s", $ip ) );
|
632 |
|
633 |
// Retrieve from API
|
634 |
+
if ( ! $data ) {
|
|
|
|
|
|
|
|
|
|
|
635 |
// @ used to suppress API usage block warning.
|
636 |
$json = @file_get_contents( 'http://freegeoip.net/json/' . $ip );
|
637 |
|
js/charts.js
CHANGED
@@ -3529,7 +3529,7 @@
|
|
3529 |
this.el.hide(), this.options.parent.append(this.el);
|
3530 |
}
|
3531 |
return c.defaults = {
|
3532 |
-
|
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) {
|
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) {
|
js/zero-spam-admin.js
CHANGED
@@ -1,36 +1,51 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
-
html
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
33 |
});
|
|
|
|
|
|
|
34 |
$(".zero-spam__block-ip, .zero-spam__trash").click(function(e) {
|
35 |
e.preventDefault();
|
36 |
closeForms();
|
1 |
+
(function($) {
|
2 |
+
"use strict";
|
3 |
+
var ZeroSpam = {
|
4 |
+
initIpLookup: function() {
|
5 |
+
$("[data-ip-location]").click(function(e) {
|
6 |
+
e.preventDefault();
|
7 |
+
var ele = $(this), ip = $(this).data("ip-location");
|
8 |
+
$.post(ajaxurl, {
|
9 |
+
action: "get_location",
|
10 |
+
security: zero_spam_admin.nonce,
|
11 |
+
ip: ip
|
12 |
+
}, function(data) {
|
13 |
+
var obj = $.parseJSON(data), html = "";
|
14 |
+
if (obj) {
|
15 |
+
if (obj.country_name) {
|
16 |
+
html += obj.country_code;
|
17 |
+
}
|
18 |
+
if (obj.region_name) {
|
19 |
+
if (html.length) {
|
20 |
+
html += ", ";
|
21 |
+
}
|
22 |
+
html += obj.region_name;
|
23 |
+
}
|
24 |
+
if (obj.city) {
|
25 |
+
if (html.length) {
|
26 |
+
html += ", ";
|
27 |
+
}
|
28 |
+
html += obj.city;
|
29 |
+
}
|
30 |
+
if (obj.country_code) {
|
31 |
+
html = '<span class="country-flag country-flags-' + obj.country_code.toLowerCase() + '"></span> ' + html;
|
32 |
+
}
|
33 |
}
|
34 |
+
if (!html.length) html = '<i class="fa fa-exclamation-triangle"></i>';
|
35 |
+
ele.html(html);
|
36 |
+
});
|
37 |
+
});
|
38 |
+
},
|
39 |
+
init: function() {
|
40 |
+
this.initIpLookup();
|
41 |
+
}
|
42 |
+
};
|
43 |
+
$(function() {
|
44 |
+
ZeroSpam.init();
|
45 |
});
|
46 |
+
})(jQuery);
|
47 |
+
|
48 |
+
jQuery(document).ready(function($) {
|
49 |
$(".zero-spam__block-ip, .zero-spam__trash").click(function(e) {
|
50 |
e.preventDefault();
|
51 |
closeForms();
|
js/zerospam.js
CHANGED
@@ -8,6 +8,7 @@
|
|
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);
|
8 |
forms += ", .zerospam";
|
9 |
forms += ", .ninja-forms-form";
|
10 |
forms += ", .wpforms-form";
|
11 |
+
forms += ", #gform_2";
|
12 |
if (typeof zerospam.key != "undefined") {
|
13 |
$(forms).on("submit", function() {
|
14 |
$("<input>").attr("type", "hidden").attr("name", "zerospam_key").attr("value", zerospam.key).appendTo(forms);
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ 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: 3.0.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -124,6 +124,13 @@ Yes! Install [Sunny](https://wphuman.com/go/sunny/) and follow this [guide](http
|
|
124 |
|
125 |
== Changelog ==
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
= v3.0.3 (November 23, 2016) =
|
128 |
* [bug] Fixed issue with settings not getting saved (https://wordpress.org/support/topic/can-unselect-default-options/).
|
129 |
* [bug] Fixed PHP notice on Spammer Log page.
|
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: 3.0.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
124 |
|
125 |
== Changelog ==
|
126 |
|
127 |
+
= v3.0.5 (December 23, 2016) =
|
128 |
+
* [bug] Gravity Forms submission fix.
|
129 |
+
|
130 |
+
= v3.0.4 (November 24, 2016) =
|
131 |
+
* [bug] Fixed IP location lookup issue.
|
132 |
+
* [improvement] Updated the Grunt development tasks.
|
133 |
+
|
134 |
= v3.0.3 (November 23, 2016) =
|
135 |
* [bug] Fixed issue with settings not getting saved (https://wordpress.org/support/topic/can-unselect-default-options/).
|
136 |
* [bug] Fixed PHP notice on Spammer Log page.
|
tpl/admin-sidebar.php
CHANGED
@@ -1,9 +1,11 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Admin
|
4 |
*
|
5 |
-
*
|
6 |
*
|
|
|
|
|
7 |
* @since 1.5.0
|
8 |
*/
|
9 |
|
@@ -20,21 +22,44 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
20 |
<i class="fa fa-star"></i>
|
21 |
<i class="fa fa-star"></i>
|
22 |
<i class="fa fa-star"></i></a> |
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
<p>
|
27 |
-
<a href="https://www.gittip.com/bmarshall511/" class="zero-spam__button" target="_blank"><?php
|
28 |
-
<a href="https://wordpress.org/support/view/plugin-reviews/zero-spam" class="zero-spam__button" target="_blank"><?php
|
29 |
</p>
|
30 |
</div>
|
31 |
</div>
|
32 |
|
33 |
<div class="zero-spam__widget">
|
34 |
<div class="zero-spam__inner">
|
35 |
-
<h3><?php
|
36 |
-
|
37 |
-
<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>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Admin sidebar template
|
4 |
*
|
5 |
+
* Outputs the admin sidebar HTML.
|
6 |
*
|
7 |
+
* @package WordPress Zero Spam
|
8 |
+
* @subpackage ZeroSpam_Plugin
|
9 |
* @since 1.5.0
|
10 |
*/
|
11 |
|
22 |
<i class="fa fa-star"></i>
|
23 |
<i class="fa fa-star"></i>
|
24 |
<i class="fa fa-star"></i></a> |
|
25 |
+
|
26 |
+
<?php
|
27 |
+
echo sprintf(
|
28 |
+
wp_kses( __( '<b>Version:</b> %s | <b>Author</b> %s', 'zerospam' ), array( 'b' => array() ) ),
|
29 |
+
$plugin['Version'],
|
30 |
+
$plugin['Author']
|
31 |
+
);
|
32 |
+
?>
|
33 |
+
<p><?php echo wp_kses(
|
34 |
+
__( $plugin['Description'], 'zerospam' ),
|
35 |
+
array( 'a' => array( 'href' => array() ) )
|
36 |
+
); ?></p>
|
37 |
+
<p><?php
|
38 |
+
echo sprintf(
|
39 |
+
wp_kses(
|
40 |
+
__( '<small>If you have suggestions for a new add-on, feel free to email me at <a href="%s">me@benmarshall.me</a>. Want regular updates? Follow me on <a href="%s" target="_blank">Twitter</a> or <a href="%s" target="_blank">visit my blog</a>.</small>', 'zero-spam' ),
|
41 |
+
array(
|
42 |
+
'a' => array(
|
43 |
+
'href' => array()
|
44 |
+
),
|
45 |
+
'small' => array()
|
46 |
+
)
|
47 |
+
),
|
48 |
+
esc_url( 'mailto:me@benmarshall.me' ),
|
49 |
+
esc_url( 'https://twitter.com/bmarshall0511' ),
|
50 |
+
esc_url( 'https://benmarshall.me/' ) );
|
51 |
+
?></p>
|
52 |
<p>
|
53 |
+
<a href="https://www.gittip.com/bmarshall511/" class="zero-spam__button" target="_blank"><?php _e( 'Show Support — Donate!', 'zerospam' ); ?></a>
|
54 |
+
<a href="https://wordpress.org/support/view/plugin-reviews/zero-spam" class="zero-spam__button" target="_blank"><?php _e( 'Spread the Love — Rate!', 'zerospam' ); ?></a>
|
55 |
</p>
|
56 |
</div>
|
57 |
</div>
|
58 |
|
59 |
<div class="zero-spam__widget">
|
60 |
<div class="zero-spam__inner">
|
61 |
+
<h3><?php _e( 'Are you a WordPress developer?', 'zerospam' ); ?></h3>
|
62 |
+
<p><?php _e( 'Help grow this plugin, integrate into your own or add new features by contributing.', 'zerospam' ); ?></p>
|
63 |
+
<p><a href="https://github.com/bmarshall511/wordpress-zero-spam" target="_blank" class="button button-large button-primary"><?php _e( 'Fork it on GitHub!', 'zerospam' ); ?></a></p>
|
|
|
64 |
</div>
|
65 |
</div>
|
tpl/spammer-logs.php
CHANGED
@@ -1,9 +1,11 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Spammer Log
|
4 |
*
|
5 |
-
*
|
6 |
*
|
|
|
|
|
7 |
* @since 1.5.0
|
8 |
*/
|
9 |
|
@@ -13,7 +15,6 @@
|
|
13 |
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
14 |
?>
|
15 |
<div class="zero-spam__row">
|
16 |
-
|
17 |
<div class="zero-spam__cell">
|
18 |
<div class="zero-spam__widget zero-spam__bg--primary">
|
19 |
<div class="zero-spam__inner">
|
@@ -143,52 +144,53 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
143 |
<div class="zero-spam__cell">
|
144 |
<div id="map" class="zero-spam__map"></div>
|
145 |
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
action: 'get_ip_spam',
|
150 |
-
security: '<?php echo $ajax_nonce; ?>',
|
151 |
-
}, function( data ) {
|
152 |
-
if ( data ) {
|
153 |
-
var obj = jQuery.parseJSON( data ),
|
154 |
-
country_count = {},
|
155 |
-
cnt = 0;
|
156 |
-
|
157 |
-
if ( obj.by_country ) {
|
158 |
-
jQuery( ".zero-spam__overlay" ).fadeOut();
|
159 |
|
160 |
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
|
168 |
-
|
169 |
map: 'world_mill_en',
|
170 |
backgroundColor: '#1b1e24',
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
|
180 |
-
|
181 |
|
182 |
-
|
183 |
-
|
|
|
|
|
|
|
184 |
} else {
|
185 |
-
|
186 |
}
|
187 |
-
}
|
188 |
-
jQuery( ".zero-spam__inner", jQuery( ".zero-spam__overlay" ) ).html( "<i class='fa fa-exclamation-triangle'></i><h4>IP API Usage Limit Reached</h4><p>You've reached you're daily limit to the IP API to gather location information. Please check back in one hour.</p>" );
|
189 |
-
}
|
190 |
});
|
191 |
-
});
|
192 |
</script>
|
193 |
</div>
|
194 |
</div>
|
@@ -381,6 +383,9 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
381 |
case 'comment_spam': ?>
|
382 |
'<?php echo __( 'Spam Comments', 'zerospam' ); ?>',
|
383 |
<?php break;
|
|
|
|
|
|
|
384 |
case 'registration_spam': ?>
|
385 |
'<?php echo __( 'Spam Registrations', 'zerospam' ); ?>',
|
386 |
<?php break;
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Spammer Log page template
|
4 |
*
|
5 |
+
* Outputs the Spammer Log admin page HTML.
|
6 |
*
|
7 |
+
* @package WordPress Zero Spam
|
8 |
+
* @subpackage ZeroSpam_Plugin
|
9 |
* @since 1.5.0
|
10 |
*/
|
11 |
|
15 |
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
?>
|
17 |
<div class="zero-spam__row">
|
|
|
18 |
<div class="zero-spam__cell">
|
19 |
<div class="zero-spam__widget zero-spam__bg--primary">
|
20 |
<div class="zero-spam__inner">
|
144 |
<div class="zero-spam__cell">
|
145 |
<div id="map" class="zero-spam__map"></div>
|
146 |
<script>
|
147 |
+
( function( $ ) {
|
148 |
+
$( function() {
|
149 |
+
$.post( ajaxurl, {
|
150 |
+
action: 'get_ip_spam',
|
151 |
+
security: '<?php echo $ajax_nonce; ?>',
|
152 |
+
}, function( data ) {console.log(data);
|
153 |
+
if ( data ) {
|
154 |
+
var obj = jQuery.parseJSON( data ),
|
155 |
+
country_count = {},
|
156 |
+
cnt = 0;
|
157 |
|
158 |
+
if ( obj.by_country ) {
|
159 |
+
$( ".zero-spam__overlay" ).fadeOut();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
|
162 |
+
$.each( obj.by_country, function( abbr, c ) {
|
163 |
+
cnt++;
|
164 |
+
if ( cnt > 6 ) return false;
|
165 |
+
$( "#zerospam-country-spam" ).append( "<tr><td><b>" + c.name + "</b></td><td class='zero-spam__text-right'>" + c.count + "</td></tr>" );
|
166 |
+
country_count[abbr] = String(c.count);
|
167 |
+
});
|
168 |
|
169 |
+
$( '#map' ).vectorMap({
|
170 |
map: 'world_mill_en',
|
171 |
backgroundColor: '#1b1e24',
|
172 |
+
series: {
|
173 |
+
regions: [{
|
174 |
+
scale: ['#ffe6ea', '#ff183a'],
|
175 |
+
normalizeFunction: 'linear',
|
176 |
+
attribute: 'fill',
|
177 |
+
values: country_count
|
178 |
+
}]
|
179 |
+
}
|
180 |
|
181 |
+
});
|
182 |
|
183 |
+
var map = $( '#map' ).vectorMap('get', 'mapObject');
|
184 |
+
map.series.regions[0].setValues( country_count );
|
185 |
+
} else {
|
186 |
+
$( ".zero-spam__inner", $( ".zero-spam__overlay" ) ).html( "<i class='fa fa-thumbs-up'></i><h4>No spammers yet!</h4>" );
|
187 |
+
}
|
188 |
} else {
|
189 |
+
$( ".zero-spam__inner", $( ".zero-spam__overlay" ) ).html( "<i class='fa fa-exclamation-triangle'></i><h4>IP API Usage Limit Reached</h4><p>You've reached you're daily limit to the IP API to gather location information. Please check back in one hour.</p>" );
|
190 |
}
|
191 |
+
});
|
|
|
|
|
192 |
});
|
193 |
+
})( jQuery );
|
194 |
</script>
|
195 |
</div>
|
196 |
</div>
|
383 |
case 'comment_spam': ?>
|
384 |
'<?php echo __( 'Spam Comments', 'zerospam' ); ?>',
|
385 |
<?php break;
|
386 |
+
case 'undefined_form': ?>
|
387 |
+
'<?php echo __( 'Undefined Form', 'zerospam' ); ?>',
|
388 |
+
<?php break;
|
389 |
case 'registration_spam': ?>
|
390 |
'<?php echo __( 'Spam Registrations', 'zerospam' ); ?>',
|
391 |
<?php break;
|
trunk/css/style.css
DELETED
@@ -1,4 +0,0 @@
|
|
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}
|
|
|
|
|
|
|
|
trunk/fonts/FontAwesome.otf
DELETED
Binary file
|
trunk/fonts/fontawesome-webfont.eot
DELETED
Binary file
|
trunk/fonts/fontawesome-webfont.svg
DELETED
@@ -1,520 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata></metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="fontawesomeregular" horiz-adv-x="1536" >
|
7 |
-
<font-face units-per-em="1792" ascent="1536" descent="-256" />
|
8 |
-
<missing-glyph horiz-adv-x="448" />
|
9 |
-
<glyph unicode=" " horiz-adv-x="448" />
|
10 |
-
<glyph unicode="	" horiz-adv-x="448" />
|
11 |
-
<glyph unicode=" " horiz-adv-x="448" />
|
12 |
-
<glyph unicode="¨" horiz-adv-x="1792" />
|
13 |
-
<glyph unicode="©" horiz-adv-x="1792" />
|
14 |
-
<glyph unicode="®" horiz-adv-x="1792" />
|
15 |
-
<glyph unicode="´" horiz-adv-x="1792" />
|
16 |
-
<glyph unicode="Æ" horiz-adv-x="1792" />
|
17 |
-
<glyph unicode="Ø" horiz-adv-x="1792" />
|
18 |
-
<glyph unicode=" " horiz-adv-x="768" />
|
19 |
-
<glyph unicode=" " horiz-adv-x="1537" />
|
20 |
-
<glyph unicode=" " horiz-adv-x="768" />
|
21 |
-
<glyph unicode=" " horiz-adv-x="1537" />
|
22 |
-
<glyph unicode=" " horiz-adv-x="512" />
|
23 |
-
<glyph unicode=" " horiz-adv-x="384" />
|
24 |
-
<glyph unicode=" " horiz-adv-x="256" />
|
25 |
-
<glyph unicode=" " horiz-adv-x="256" />
|
26 |
-
<glyph unicode=" " horiz-adv-x="192" />
|
27 |
-
<glyph unicode=" " horiz-adv-x="307" />
|
28 |
-
<glyph unicode=" " horiz-adv-x="85" />
|
29 |
-
<glyph unicode=" " horiz-adv-x="307" />
|
30 |
-
<glyph unicode=" " horiz-adv-x="384" />
|
31 |
-
<glyph unicode="™" horiz-adv-x="1792" />
|
32 |
-
<glyph unicode="∞" horiz-adv-x="1792" />
|
33 |
-
<glyph unicode="≠" horiz-adv-x="1792" />
|
34 |
-
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
35 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
|
36 |
-
<glyph unicode="" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
|
37 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
|
38 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
|
39 |
-
<glyph unicode="" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
|
40 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
|
41 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
|
42 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
|
43 |
-
<glyph unicode="" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
|
44 |
-
<glyph unicode="" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
|
45 |
-
<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
|
46 |
-
<glyph unicode="" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
|
47 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
|
48 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
|
49 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
|
50 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
|
51 |
-
<glyph unicode="" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
|
52 |
-
<glyph unicode="" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
|
53 |
-
<glyph unicode="" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
|
54 |
-
<glyph unicode="" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
|
55 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
|
56 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
|
57 |
-
<glyph unicode="" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
58 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
|
59 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
|
60 |
-
<glyph unicode="" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
61 |
-
<glyph unicode="" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
62 |
-
<glyph unicode="" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
|
63 |
-
<glyph unicode="" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
64 |
-
<glyph unicode="" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
|
65 |
-
<glyph unicode="" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
|
66 |
-
<glyph unicode="" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
|
67 |
-
<glyph unicode="" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
|
68 |
-
<glyph unicode="" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
|
69 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
|
70 |
-
<glyph unicode="" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
|
71 |
-
<glyph unicode="" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
|
72 |
-
<glyph unicode="" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
|
73 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
|
74 |
-
<glyph unicode="" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
|
75 |
-
<glyph unicode="" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
|
76 |
-
<glyph unicode="" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
|
77 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
|
78 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
|
79 |
-
<glyph unicode="" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
|
80 |
-
<glyph unicode="" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
|
81 |
-
<glyph unicode="" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
|
82 |
-
<glyph unicode="" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
|
83 |
-
<glyph unicode="" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
|
84 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
|
85 |
-
<glyph unicode="" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
|
86 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
|
87 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
|
88 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
|
89 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
|
90 |
-
<glyph unicode="" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
|
91 |
-
<glyph unicode="" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
|
92 |
-
<glyph unicode="" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
|
93 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
|
94 |
-
<glyph unicode="" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
|
95 |
-
<glyph unicode="" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
|
96 |
-
<glyph unicode="" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
|
97 |
-
<glyph unicode="" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
98 |
-
<glyph unicode="" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
|
99 |
-
<glyph unicode="" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
|
100 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
|
101 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
|
102 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
|
103 |
-
<glyph unicode="" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
|
104 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
|
105 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
|
106 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
|
107 |
-
<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
|
108 |
-
<glyph unicode="" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
|
109 |
-
<glyph unicode="" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
|
110 |
-
<glyph unicode="" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
|
111 |
-
<glyph unicode="" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
|
112 |
-
<glyph unicode="" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
|
113 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
|
114 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
|
115 |
-
<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
116 |
-
<glyph unicode="" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
|
117 |
-
<glyph unicode="" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
118 |
-
<glyph unicode="" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
119 |
-
<glyph unicode="" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
120 |
-
<glyph unicode="" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
121 |
-
<glyph unicode="" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
|
122 |
-
<glyph unicode="" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
123 |
-
<glyph unicode="" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
124 |
-
<glyph unicode="" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
|
125 |
-
<glyph unicode="" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
|
126 |
-
<glyph unicode="" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
|
127 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
|
128 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
|
129 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
|
130 |
-
<glyph unicode="" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
|
131 |
-
<glyph unicode="" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
|
132 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
|
133 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
|
134 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
|
135 |
-
<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
|
136 |
-
<glyph unicode="" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
|
137 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
|
138 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
|
139 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
|
140 |
-
<glyph unicode="" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
|
141 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
|
142 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
|
143 |
-
<glyph unicode="" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
|
144 |
-
<glyph unicode="" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
|
145 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
|
146 |
-
<glyph unicode="" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
|
147 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
|
148 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
|
149 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
|
150 |
-
<glyph unicode="" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5 t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
|
151 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
|
152 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
|
153 |
-
<glyph unicode="" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
|
154 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
|
155 |
-
<glyph unicode="" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
|
156 |
-
<glyph unicode="" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
157 |
-
<glyph unicode="" d="M1536 160q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5v-960z" />
|
158 |
-
<glyph unicode="" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
|
159 |
-
<glyph unicode="" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
|
160 |
-
<glyph unicode="" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
|
161 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
|
162 |
-
<glyph unicode="" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
|
163 |
-
<glyph unicode="" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
|
164 |
-
<glyph unicode="" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
|
165 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
|
166 |
-
<glyph unicode="" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
|
167 |
-
<glyph unicode="" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
168 |
-
<glyph unicode="" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
|
169 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
|
170 |
-
<glyph unicode="" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
|
171 |
-
<glyph unicode="" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
|
172 |
-
<glyph unicode="" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
173 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
|
174 |
-
<glyph unicode="" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
|
175 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
|
176 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
|
177 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
|
178 |
-
<glyph unicode="" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
179 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
|
180 |
-
<glyph unicode="" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
|
181 |
-
<glyph unicode="" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
182 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
|
183 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
|
184 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
|
185 |
-
<glyph unicode="" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
|
186 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
|
187 |
-
<glyph unicode="" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
|
188 |
-
<glyph unicode="" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
|
189 |
-
<glyph unicode="" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
|
190 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
|
191 |
-
<glyph unicode="" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
|
192 |
-
<glyph unicode="" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
|
193 |
-
<glyph unicode="" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
194 |
-
<glyph unicode="" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
195 |
-
<glyph unicode="" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
196 |
-
<glyph unicode="" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
197 |
-
<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
|
198 |
-
<glyph unicode="" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
|
199 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
|
200 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
|
201 |
-
<glyph unicode="" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
|
202 |
-
<glyph unicode="" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
|
203 |
-
<glyph unicode="" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
|
204 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
|
205 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
|
206 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
|
207 |
-
<glyph unicode="" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
|
208 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
|
209 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
|
210 |
-
<glyph unicode="" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
|
211 |
-
<glyph unicode="" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
212 |
-
<glyph unicode="" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
|
213 |
-
<glyph unicode="" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
|
214 |
-
<glyph unicode="" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
|
215 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
|
216 |
-
<glyph unicode="" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
|
217 |
-
<glyph unicode="" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
|
218 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
|
219 |
-
<glyph unicode="" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
|
220 |
-
<glyph unicode="" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
221 |
-
<glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
|
222 |
-
<glyph unicode="" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
223 |
-
<glyph unicode="" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
|
224 |
-
<glyph unicode="" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
|
225 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
|
226 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
|
227 |
-
<glyph unicode="" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
|
228 |
-
<glyph unicode="" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
|
229 |
-
<glyph unicode="" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
|
230 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
|
231 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
|
232 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
|
233 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
|
234 |
-
<glyph unicode="" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
|
235 |
-
<glyph unicode="" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
|
236 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
|
237 |
-
<glyph unicode="" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
|
238 |
-
<glyph unicode="" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
|
239 |
-
<glyph unicode="" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
|
240 |
-
<glyph unicode="" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
|
241 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
|
242 |
-
<glyph unicode="" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
|
243 |
-
<glyph unicode="" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
|
244 |
-
<glyph unicode="" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
|
245 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
|
246 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
|
247 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
|
248 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
|
249 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
|
250 |
-
<glyph unicode="" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
|
251 |
-
<glyph unicode="" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
|
252 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
|
253 |
-
<glyph unicode="" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
|
254 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
|
255 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
|
256 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
|
257 |
-
<glyph unicode="" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
|
258 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
|
259 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
|
260 |
-
<glyph unicode="" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
|
261 |
-
<glyph unicode="" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
262 |
-
<glyph unicode="" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
263 |
-
<glyph unicode="" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
|
264 |
-
<glyph unicode="" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
|
265 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
|
266 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
|
267 |
-
<glyph unicode="" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
|
268 |
-
<glyph unicode="" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
|
269 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
|
270 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
|
271 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
|
272 |
-
<glyph unicode="" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
|
273 |
-
<glyph unicode="" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
|
274 |
-
<glyph unicode="" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
|
275 |
-
<glyph unicode="" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
|
276 |
-
<glyph unicode="" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
|
277 |
-
<glyph unicode="" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
|
278 |
-
<glyph unicode="" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5zM992 1280q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1536 640q0 -40 -28 -68t-68 -28t-68 28t-28 68t28 68t68 28t68 -28t28 -68zM1328 1088q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z" />
|
279 |
-
<glyph unicode="" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
280 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
|
281 |
-
<glyph unicode="" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
|
282 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
|
283 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
|
284 |
-
<glyph unicode="" horiz-adv-x="1792" />
|
285 |
-
<glyph unicode="" horiz-adv-x="1792" />
|
286 |
-
<glyph unicode="" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
287 |
-
<glyph unicode="" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
288 |
-
<glyph unicode="" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
289 |
-
<glyph unicode="" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
|
290 |
-
<glyph unicode="" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
|
291 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
|
292 |
-
<glyph unicode="" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
|
293 |
-
<glyph unicode="" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
|
294 |
-
<glyph unicode="" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
|
295 |
-
<glyph unicode="" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
|
296 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
|
297 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
|
298 |
-
<glyph unicode="" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
|
299 |
-
<glyph unicode="" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
|
300 |
-
<glyph unicode="" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
|
301 |
-
<glyph unicode="" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
|
302 |
-
<glyph unicode="" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
|
303 |
-
<glyph unicode="" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
|
304 |
-
<glyph unicode="" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
|
305 |
-
<glyph unicode="" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
|
306 |
-
<glyph unicode="" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
|
307 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
|
308 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
|
309 |
-
<glyph unicode="" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
|
310 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
|
311 |
-
<glyph unicode="" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
|
312 |
-
<glyph unicode="" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
|
313 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
|
314 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
|
315 |
-
<glyph unicode="" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
316 |
-
<glyph unicode="" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
317 |
-
<glyph unicode="" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
318 |
-
<glyph unicode="" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
319 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
|
320 |
-
<glyph unicode="" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
|
321 |
-
<glyph unicode="" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
|
322 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
|
323 |
-
<glyph unicode="" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
324 |
-
<glyph unicode="" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
|
325 |
-
<glyph unicode="" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
|
326 |
-
<glyph unicode="" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
327 |
-
<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
|
328 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
|
329 |
-
<glyph unicode="" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
|
330 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
|
331 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
|
332 |
-
<glyph unicode="" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
|
333 |
-
<glyph unicode="" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
334 |
-
<glyph unicode="" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
335 |
-
<glyph unicode="" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
336 |
-
<glyph unicode="" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
337 |
-
<glyph unicode="" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
338 |
-
<glyph unicode="" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
339 |
-
<glyph unicode="" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
340 |
-
<glyph unicode="" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
341 |
-
<glyph unicode="" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
|
342 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
|
343 |
-
<glyph unicode="" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
|
344 |
-
<glyph unicode="" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
|
345 |
-
<glyph unicode="" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
|
346 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
|
347 |
-
<glyph unicode="" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
|
348 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
|
349 |
-
<glyph unicode="" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
|
350 |
-
<glyph unicode="" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
|
351 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
|
352 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
|
353 |
-
<glyph unicode="" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
|
354 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
|
355 |
-
<glyph unicode="" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
|
356 |
-
<glyph unicode="" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
|
357 |
-
<glyph unicode="" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
|
358 |
-
<glyph unicode="" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
|
359 |
-
<glyph unicode="" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
360 |
-
<glyph unicode="" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
|
361 |
-
<glyph unicode="" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
|
362 |
-
<glyph unicode="" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
363 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
|
364 |
-
<glyph unicode="" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
|
365 |
-
<glyph unicode="" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
|
366 |
-
<glyph unicode="" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
|
367 |
-
<glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
|
368 |
-
<glyph unicode="" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
369 |
-
<glyph unicode="" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
|
370 |
-
<glyph unicode="" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
371 |
-
<glyph unicode="" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
|
372 |
-
<glyph unicode="" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
373 |
-
<glyph unicode="" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
|
374 |
-
<glyph unicode="" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
|
375 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
|
376 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
|
377 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
|
378 |
-
<glyph unicode="" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
|
379 |
-
<glyph unicode="" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
|
380 |
-
<glyph unicode="" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
|
381 |
-
<glyph unicode="" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
382 |
-
<glyph unicode="" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
|
383 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
|
384 |
-
<glyph unicode="" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
|
385 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
|
386 |
-
<glyph unicode="" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
|
387 |
-
<glyph unicode="" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
388 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
|
389 |
-
<glyph unicode="" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
|
390 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
|
391 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
|
392 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
|
393 |
-
<glyph unicode="" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
|
394 |
-
<glyph unicode="" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
|
395 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
|
396 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
|
397 |
-
<glyph unicode="" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
398 |
-
<glyph unicode="" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
399 |
-
<glyph unicode="" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
400 |
-
<glyph unicode="" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
401 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
|
402 |
-
<glyph unicode="" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
403 |
-
<glyph unicode="" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
|
404 |
-
<glyph unicode="" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
|
405 |
-
<glyph unicode="" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
|
406 |
-
<glyph unicode="" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
|
407 |
-
<glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
|
408 |
-
<glyph unicode="" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
|
409 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
|
410 |
-
<glyph unicode="" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
|
411 |
-
<glyph unicode="" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
|
412 |
-
<glyph unicode="" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
|
413 |
-
<glyph unicode="" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
|
414 |
-
<glyph unicode="" horiz-adv-x="1984" d="M831 572q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98zM1292 711q56 0 96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41zM1984 722q0 -62 -31 -114t-83 -82q5 -33 5 -61 q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5 l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58q94 0 160 -66t66 -160zM1664 1459q-45 0 -77 -32t-32 -77t32 -77t77 -32t77 32t32 77t-32 77t-77 32z M77 722q0 -67 51 -111q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM1567 105q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5t59.5 -194 t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5zM1850 605q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28q131 -105 178 -238zM1258 237q11 11 27 11t27 -11t11 -27.5t-11 -27.5q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5 t11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77z" />
|
415 |
-
<glyph unicode="" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48 q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43q-51 0 -87 -36.5t-36 -87.5q0 -37 19.5 -67.5t52.5 -45.5 q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54zM971 702q37 0 63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64t26 63t63 26z" />
|
416 |
-
<glyph unicode="" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
|
417 |
-
<glyph unicode="" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
|
418 |
-
<glyph unicode="" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
|
419 |
-
<glyph unicode="" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
|
420 |
-
<glyph unicode="" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
421 |
-
<glyph unicode="" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
|
422 |
-
<glyph unicode="" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
|
423 |
-
<glyph unicode="" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
|
424 |
-
<glyph unicode="" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
|
425 |
-
<glyph unicode="" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
|
426 |
-
<glyph unicode="" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
|
427 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
|
428 |
-
<glyph unicode="" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
|
429 |
-
<glyph unicode="" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
|
430 |
-
<glyph unicode="" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
|
431 |
-
<glyph unicode="" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
|
432 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
|
433 |
-
<glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
|
434 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
|
435 |
-
<glyph unicode="" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
|
436 |
-
<glyph unicode="" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
|
437 |
-
<glyph unicode="" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
|
438 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
|
439 |
-
<glyph unicode="" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
|
440 |
-
<glyph unicode="" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
441 |
-
<glyph unicode="" d="M1397 1408q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5v1258q0 58 40.5 98.5t98.5 40.5h1258zM1465 11v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48 zM694 749l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16zM1397 1287q7 0 12.5 -5.5 t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137v560q0 7 5.5 12.5t12.5 5.5h1258zM286 387q-14 -3 -26 4.5t-14 21.5q-24 203 166 305l129 -270z" />
|
442 |
-
<glyph unicode="" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
|
443 |
-
<glyph unicode="" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
|
444 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
|
445 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
|
446 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
|
447 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
|
448 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
|
449 |
-
<glyph unicode="" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
|
450 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
|
451 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
|
452 |
-
<glyph unicode="" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
|
453 |
-
<glyph unicode="" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
|
454 |
-
<glyph unicode="" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
|
455 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
|
456 |
-
<glyph unicode="" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
|
457 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
|
458 |
-
<glyph unicode="" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
|
459 |
-
<glyph unicode="" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
|
460 |
-
<glyph unicode="" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
461 |
-
<glyph unicode="" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
|
462 |
-
<glyph unicode="" d="M825 547l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150l323 -589v-435h134v436zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
463 |
-
<glyph unicode="" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
|
464 |
-
<glyph unicode="" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
|
465 |
-
<glyph unicode="" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
|
466 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
|
467 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
|
468 |
-
<glyph unicode="" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
|
469 |
-
<glyph unicode="" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
470 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
|
471 |
-
<glyph unicode="" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
|
472 |
-
<glyph unicode="" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
|
473 |
-
<glyph unicode="" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
|
474 |
-
<glyph unicode="" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
475 |
-
<glyph unicode="" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
|
476 |
-
<glyph unicode="" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
|
477 |
-
<glyph unicode="" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
|
478 |
-
<glyph unicode="" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
|
479 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
|
480 |
-
<glyph unicode="" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
|
481 |
-
<glyph unicode="" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
|
482 |
-
<glyph unicode="" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
|
483 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
|
484 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
|
485 |
-
<glyph unicode="" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
|
486 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1112 1090q0 159 -237 159h-70q-32 0 -59.5 -21.5t-34.5 -52.5l-63 -276q-2 -5 -2 -16q0 -24 17 -39.5t41 -15.5h53q69 0 128.5 13t112.5 41t83.5 81.5t30.5 126.5zM1716 938q0 -265 -220 -428q-219 -161 -612 -161h-61q-32 0 -59 -21.5t-34 -52.5l-73 -316 q-8 -36 -40.5 -61.5t-69.5 -25.5h-213q-31 0 -53 20t-22 51q0 10 13 65h151q34 0 64 23.5t38 56.5l73 316q8 33 37.5 57t63.5 24h61q390 0 607 160t217 421q0 129 -51 207q183 -92 183 -335zM1533 1123q0 -264 -221 -428q-218 -161 -612 -161h-60q-32 0 -59.5 -22t-34.5 -53 l-73 -315q-8 -36 -40 -61.5t-69 -25.5h-214q-31 0 -52.5 19.5t-21.5 51.5q0 8 2 20l300 1301q8 36 40.5 61.5t69.5 25.5h444q68 0 125 -4t120.5 -15t113.5 -30t96.5 -50.5t77.5 -74t49.5 -103.5t18.5 -136z" />
|
487 |
-
<glyph unicode="" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" />
|
488 |
-
<glyph unicode="" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
|
489 |
-
<glyph unicode="" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
|
490 |
-
<glyph unicode="" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
|
491 |
-
<glyph unicode="" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
|
492 |
-
<glyph unicode="" horiz-adv-x="2304" d="M322 689h-15q-19 0 -19 18q0 28 19 85q5 15 15 19.5t28 4.5q77 0 77 -49q0 -41 -30.5 -59.5t-74.5 -18.5zM664 528q-47 0 -47 29q0 62 123 62l3 -3q-5 -88 -79 -88zM1438 687h-15q-19 0 -19 19q0 28 19 85q5 15 14.5 19t28.5 4q77 0 77 -49q0 -41 -30.5 -59.5 t-74.5 -18.5zM1780 527q-47 0 -47 30q0 62 123 62l3 -3q-5 -89 -79 -89zM373 894h-128q-8 0 -14.5 -4t-8.5 -7.5t-7 -12.5q-3 -7 -45 -190t-42 -192q0 -7 5.5 -12.5t13.5 -5.5h62q25 0 32.5 34.5l15 69t32.5 34.5q47 0 87.5 7.5t80.5 24.5t63.5 52.5t23.5 84.5 q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM719 798q-38 0 -74 -6q-2 0 -8.5 -1t-9 -1.5l-7.5 -1.5t-7.5 -2t-6.5 -3t-6.5 -4t-5 -5t-4.5 -7t-4 -9q-9 -29 -9 -39t9 -10q5 0 21.5 5t19.5 6q30 8 58 8q74 0 74 -36q0 -11 -10 -14q-8 -2 -18 -3t-21.5 -1.5t-17.5 -1.5 q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5q0 -38 26 -59.5t64 -21.5q24 0 45.5 6.5t33 13t38.5 23.5q-3 -7 -3 -15t5.5 -13.5t12.5 -5.5h56q1 1 7 3.5t7.5 3.5t5 3.5t5 5.5t2.5 8l45 194q4 13 4 30q0 81 -145 81zM1247 793h-74q-22 0 -39 -23q-5 -7 -29.5 -51 t-46.5 -81.5t-26 -38.5l-5 4q0 77 -27 166q-1 5 -3.5 8.5t-6 6.5t-6.5 5t-8.5 3t-8.5 1.5t-9.5 1t-9 0.5h-10h-8.5q-38 0 -38 -21l1 -5q5 -53 25 -151t25 -143q2 -16 2 -24q0 -19 -30.5 -61.5t-30.5 -58.5q0 -13 40 -13q61 0 76 25l245 415q10 20 10 26q0 9 -8 9zM1489 892 h-129q-18 0 -29 -23q-6 -13 -46.5 -191.5t-40.5 -190.5q0 -20 43 -20h7.5h9h9t9.5 1t8.5 2t8.5 3t6.5 4.5t5.5 6t3 8.5l21 91q2 10 10.5 17t19.5 7q47 0 87.5 7t80.5 24.5t63.5 52.5t23.5 84q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM1835 798q-26 0 -74 -6 q-38 -6 -48 -16q-7 -8 -11 -19q-8 -24 -8 -39q0 -10 8 -10q1 0 41 12q30 8 58 8q74 0 74 -36q0 -12 -10 -14q-4 -1 -57 -7q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5t26 -58.5t64 -21.5q24 0 45 6t34 13t38 24q-3 -15 -3 -16q0 -5 2 -8.5t6.5 -5.5t8 -3.5 t10.5 -2t9.5 -0.5h9.5h8q42 0 48 25l45 194q3 15 3 31q0 81 -145 81zM2157 889h-55q-25 0 -33 -40q-10 -44 -36.5 -167t-42.5 -190v-5q0 -16 16 -18h1h57q10 0 18.5 6.5t10.5 16.5l83 374h-1l1 5q0 7 -5.5 12.5t-13.5 5.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048 q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
|
493 |
-
<glyph unicode="" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
|
494 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
|
495 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
|
496 |
-
<glyph unicode="" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
|
497 |
-
<glyph unicode="" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
|
498 |
-
<glyph unicode="" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
|
499 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
|
500 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
|
501 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
|
502 |
-
<glyph unicode="" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
|
503 |
-
<glyph unicode="" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
|
504 |
-
<glyph unicode="" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
|
505 |
-
<glyph unicode="" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
|
506 |
-
<glyph unicode="" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
|
507 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
|
508 |
-
<glyph unicode="" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
|
509 |
-
<glyph unicode="" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
|
510 |
-
<glyph unicode="" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
|
511 |
-
<glyph unicode="" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
|
512 |
-
<glyph unicode="" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
|
513 |
-
<glyph unicode="" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
|
514 |
-
<glyph unicode="" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
|
515 |
-
<glyph unicode="" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
|
516 |
-
<glyph unicode="" horiz-adv-x="1792" />
|
517 |
-
<glyph unicode="" horiz-adv-x="1792" />
|
518 |
-
<glyph unicode="" horiz-adv-x="1792" />
|
519 |
-
</font>
|
520 |
-
</defs></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/fonts/fontawesome-webfont.ttf
DELETED
Binary file
|
trunk/fonts/fontawesome-webfont.woff
DELETED
Binary file
|
trunk/fonts/index.php
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?php // Silence is golden
|
|
trunk/img/country-flags-sed4ce568d7.png
DELETED
Binary file
|
trunk/inc/helpers.php
DELETED
@@ -1,765 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Zero Spam Helpers
|
4 |
-
*
|
5 |
-
* Contains all of Zero Spam helper functions. Can be used within other themes
|
6 |
-
* & plugins.
|
7 |
-
*
|
8 |
-
* @package WordPress Zero Spam
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
|
17 |
-
function zerospam_settings() {
|
18 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ) {
|
19 |
-
// Network plugin settings.
|
20 |
-
return (array) get_site_option( 'zerospam_general_settings' );
|
21 |
-
}
|
22 |
-
|
23 |
-
// Site plugin settings.
|
24 |
-
return (array) get_option( 'zerospam_general_settings' );
|
25 |
-
}
|
26 |
-
|
27 |
-
function zerospam_get_key() {
|
28 |
-
if ( ! $key = get_option( 'zerospam_key' ) ) {
|
29 |
-
$key = wp_generate_password( 64 );
|
30 |
-
update_option( 'zerospam_key', $key );
|
31 |
-
}
|
32 |
-
|
33 |
-
return $key;
|
34 |
-
}
|
35 |
-
|
36 |
-
function zerospam_is_valid() {
|
37 |
-
if ( ! empty( $_POST['zerospam_key'] ) && $_POST['zerospam_key'] == zerospam_get_key() ) {
|
38 |
-
return true;
|
39 |
-
}
|
40 |
-
|
41 |
-
return false;
|
42 |
-
}
|
43 |
-
|
44 |
-
function zerospam_get_ip() {
|
45 |
-
$ipaddress = '';
|
46 |
-
|
47 |
-
if ( getenv('HTTP_CLIENT_IP') ) {
|
48 |
-
$ipaddress = getenv('HTTP_CLIENT_IP');
|
49 |
-
} else if ( getenv('HTTP_X_FORWARDED_FOR') ) {
|
50 |
-
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
|
51 |
-
} else if ( getenv('HTTP_X_FORWARDED') ) {
|
52 |
-
$ipaddress = getenv('HTTP_X_FORWARDED');
|
53 |
-
} else if ( getenv('HTTP_FORWARDED_FOR') ) {
|
54 |
-
$ipaddress = getenv('HTTP_FORWARDED_FOR');
|
55 |
-
} else if ( getenv('HTTP_FORWARDED') ) {
|
56 |
-
$ipaddress = getenv('HTTP_FORWARDED');
|
57 |
-
} else if ( getenv('REMOTE_ADDR') ) {
|
58 |
-
$ipaddress = getenv('REMOTE_ADDR');
|
59 |
-
}
|
60 |
-
if ( false === WP_Http::is_ip_address( $ipaddress ) ) {
|
61 |
-
$ipaddress = 'UNKNOWN';
|
62 |
-
}
|
63 |
-
|
64 |
-
return $ipaddress;
|
65 |
-
}
|
66 |
-
|
67 |
-
function zerospam_log_spam( $key, $url = false ) {
|
68 |
-
global $wpdb;
|
69 |
-
|
70 |
-
$settings = zerospam_settings();
|
71 |
-
$ip = zerospam_get_ip();
|
72 |
-
$url = ( $url ) ? $url : zerospam_get_url();
|
73 |
-
$table_name = $wpdb->prefix . 'zerospam_log';
|
74 |
-
|
75 |
-
switch( $key ) {
|
76 |
-
case 'registration':
|
77 |
-
$key = 1;
|
78 |
-
break;
|
79 |
-
case 'comment':
|
80 |
-
$key = 2;
|
81 |
-
break;
|
82 |
-
case 'cf7':
|
83 |
-
$key = 3;
|
84 |
-
break;
|
85 |
-
case 'gf':
|
86 |
-
$key = 4;
|
87 |
-
break;
|
88 |
-
case 'buddypress-registration':
|
89 |
-
$key = 5;
|
90 |
-
break;
|
91 |
-
case 'nf':
|
92 |
-
$key = 6;
|
93 |
-
break;
|
94 |
-
case 'wpf':
|
95 |
-
$key = 7;
|
96 |
-
break;
|
97 |
-
}
|
98 |
-
|
99 |
-
$wpdb->insert( $table_name, array(
|
100 |
-
'type' => $key,
|
101 |
-
'ip' => $ip,
|
102 |
-
'page' => $url,
|
103 |
-
),
|
104 |
-
array(
|
105 |
-
'%s',
|
106 |
-
'%s',
|
107 |
-
'%s',
|
108 |
-
)
|
109 |
-
);
|
110 |
-
|
111 |
-
if ( ! empty( $settings['auto_block'] ) && $settings['auto_block'] ) {
|
112 |
-
zerospam_block_ip( array(
|
113 |
-
'ip' => $ip,
|
114 |
-
'type' => 'permanent',
|
115 |
-
'reason' => __( 'Auto block triggered on ', 'zerospam' ) . date( 'r' ) . '.'
|
116 |
-
));
|
117 |
-
}
|
118 |
-
}
|
119 |
-
|
120 |
-
function zerospam_is_blocked( $ip ) {
|
121 |
-
global $wpdb;
|
122 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
123 |
-
$check = zerospam_get_blocked_ip( $ip );
|
124 |
-
$current = current_time( 'timestamp' );
|
125 |
-
|
126 |
-
if ( empty( $check ) ) {
|
127 |
-
return false;
|
128 |
-
}
|
129 |
-
|
130 |
-
// Check block type
|
131 |
-
if (
|
132 |
-
'temporary' == $check->type &&
|
133 |
-
$current >= strtotime( $check->start_date ) &&
|
134 |
-
$current <= strtotime( $check->end_date )
|
135 |
-
) {
|
136 |
-
return true;
|
137 |
-
}
|
138 |
-
|
139 |
-
if ( 'permanent' == $check->type ) {
|
140 |
-
return true;
|
141 |
-
}
|
142 |
-
|
143 |
-
return false;
|
144 |
-
}
|
145 |
-
|
146 |
-
function zerospam_get_blocked_ip( $ip ) {
|
147 |
-
global $wpdb;
|
148 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
149 |
-
$query = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE ip = %s", $ip ) );
|
150 |
-
|
151 |
-
if ( null == $query ) {
|
152 |
-
return false;
|
153 |
-
}
|
154 |
-
|
155 |
-
return $query;
|
156 |
-
}
|
157 |
-
|
158 |
-
function zerospam_block_ip( $args ) {
|
159 |
-
global $wpdb;
|
160 |
-
|
161 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
162 |
-
$ip = isset( $args['ip'] ) ? $args['ip'] : false;
|
163 |
-
$type = isset( $args['type'] ) ? $args['type'] : 'temporary';
|
164 |
-
|
165 |
-
if ( $ip ) {
|
166 |
-
// Check is IP has already been blocked.
|
167 |
-
if ( zerospam_is_blocked( $ip ) ) {
|
168 |
-
|
169 |
-
// Update existing record.
|
170 |
-
$wpdb->update(
|
171 |
-
$table_name,
|
172 |
-
array(
|
173 |
-
'type' => $type,
|
174 |
-
'start_date' => isset( $args['start_date'] ) ? $args['start_date'] : null,
|
175 |
-
'end_date' => isset( $args['end_date'] ) ? $args['end_date'] : null,
|
176 |
-
'reason' => $args['reason'],
|
177 |
-
),
|
178 |
-
array( 'ip' => $ip ),
|
179 |
-
array(
|
180 |
-
'%s',
|
181 |
-
'%s',
|
182 |
-
'%s',
|
183 |
-
'%s',
|
184 |
-
),
|
185 |
-
array( '%s' )
|
186 |
-
);
|
187 |
-
} else {
|
188 |
-
|
189 |
-
// Insert new record.
|
190 |
-
$insert = array(
|
191 |
-
'ip' => $ip,
|
192 |
-
'type' => $type,
|
193 |
-
);
|
194 |
-
|
195 |
-
if ( 'temporary' == $type ) {
|
196 |
-
$insert['start_date'] = $args['start_date'];
|
197 |
-
$insert['end_date'] = $args['end_date'];
|
198 |
-
}
|
199 |
-
|
200 |
-
if ( isset( $args['reason'] ) && $args['reason'] ) {
|
201 |
-
$insert['reason'] = $args['reason'];
|
202 |
-
}
|
203 |
-
|
204 |
-
$wpdb->insert(
|
205 |
-
$table_name,
|
206 |
-
$insert,
|
207 |
-
array(
|
208 |
-
'%s',
|
209 |
-
'%s',
|
210 |
-
'%s',
|
211 |
-
'%s',
|
212 |
-
'%s',
|
213 |
-
)
|
214 |
-
);
|
215 |
-
}
|
216 |
-
}
|
217 |
-
}
|
218 |
-
|
219 |
-
function zerospam_get_url() {
|
220 |
-
$pageURL = 'http';
|
221 |
-
|
222 |
-
if ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ) {
|
223 |
-
$pageURL .= 's';
|
224 |
-
}
|
225 |
-
|
226 |
-
$pageURL .= '://';
|
227 |
-
|
228 |
-
if ( '80' != $_SERVER['SERVER_PORT'] ) {
|
229 |
-
$pageURL .= $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];
|
230 |
-
} else {
|
231 |
-
$pageURL .= $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
|
232 |
-
}
|
233 |
-
|
234 |
-
return $pageURL;
|
235 |
-
}
|
236 |
-
|
237 |
-
function zerospam_get_spam( $args = array() ) {
|
238 |
-
global $wpdb;
|
239 |
-
|
240 |
-
$table_name = $wpdb->prefix . 'zerospam_log';
|
241 |
-
|
242 |
-
$order_by = isset( $args['order_by'] ) ? ' ORDER BY ' . $args['order_by'] : ' ORDER BY date DESC';
|
243 |
-
|
244 |
-
$offset = isset( $args['offset'] ) ? $args['offset'] : false;
|
245 |
-
$limit = isset( $args['limit'] ) ? $args['limit'] : false;
|
246 |
-
if ( $offset && $limit ) {
|
247 |
-
$limit = ' LIMIT ' . $offset . ', ' . $limit;
|
248 |
-
} elseif( $limit ) {
|
249 |
-
$limit = ' LIMIT ' . $limit;
|
250 |
-
}
|
251 |
-
|
252 |
-
$query = 'SELECT * FROM ' . $table_name . $order_by . $limit;
|
253 |
-
$results = $wpdb->get_results( $query );
|
254 |
-
|
255 |
-
return $results;
|
256 |
-
}
|
257 |
-
|
258 |
-
function zerospam_parse_spam_ary( $ary ) {
|
259 |
-
$return = array(
|
260 |
-
'by_date' => array(),
|
261 |
-
'by_spam_count' => array(),
|
262 |
-
'raw' => $ary,
|
263 |
-
'comment_spam' => 0,
|
264 |
-
'registration_spam' => 0,
|
265 |
-
'cf7_spam' => 0,
|
266 |
-
'gf_spam' => 0,
|
267 |
-
'bp_registration_spam' => 0,
|
268 |
-
'nf_spam' => 0,
|
269 |
-
'wpf_spam' => 0,
|
270 |
-
'unique_spammers' => array(),
|
271 |
-
'by_day' => array(
|
272 |
-
'Sun' => 0,
|
273 |
-
'Mon' => 0,
|
274 |
-
'Tue' => 0,
|
275 |
-
'Wed' => 0,
|
276 |
-
'Thu' => 0,
|
277 |
-
'Fri' => 0,
|
278 |
-
'Sat' => 0
|
279 |
-
),
|
280 |
-
);
|
281 |
-
|
282 |
-
foreach ( $ary as $key => $obj ) {
|
283 |
-
// By day
|
284 |
-
$return['by_day'][ date( 'D', strtotime( $obj->date ) ) ]++;
|
285 |
-
|
286 |
-
// By date
|
287 |
-
if ( ! isset( $return['by_date'][ substr( $obj->date, 0, 10 ) ] ) ) {
|
288 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ] = array(
|
289 |
-
'data' => array(),
|
290 |
-
'comment_spam' => 0,
|
291 |
-
'registration_spam' => 0,
|
292 |
-
'cf7_spam' => 0,
|
293 |
-
'gf_spam' => 0,
|
294 |
-
'bp_registration_spam' => 0,
|
295 |
-
'nf_spam' => 0,
|
296 |
-
'wpf_spam' => 0,
|
297 |
-
);
|
298 |
-
}
|
299 |
-
|
300 |
-
// By date
|
301 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['data'][] = array(
|
302 |
-
'zerospam_id' => $obj->zerospam_id,
|
303 |
-
'type' => $obj->type,
|
304 |
-
'ip' => $obj->ip,
|
305 |
-
'date' => $obj->date,
|
306 |
-
);
|
307 |
-
|
308 |
-
// By spam count
|
309 |
-
if ( ! isset( $return['by_spam_count'][ $obj->ip ] ) ) {
|
310 |
-
$return['by_spam_count'][ $obj->ip ] = 0;
|
311 |
-
}
|
312 |
-
$return['by_spam_count'][ $obj->ip ]++;
|
313 |
-
|
314 |
-
// Spam type
|
315 |
-
if ( 1 == $obj->type) {
|
316 |
-
|
317 |
-
// Registration spam.
|
318 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['registration_spam']++;
|
319 |
-
$return['registration_spam']++;
|
320 |
-
} elseif ( 2 == $obj->type ) {
|
321 |
-
|
322 |
-
// Comment spam.
|
323 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['comment_spam']++;
|
324 |
-
$return['comment_spam']++;
|
325 |
-
} elseif ( 3 == $obj->type ) {
|
326 |
-
|
327 |
-
// Contact Form 7 spam.
|
328 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['cf7_spam']++;
|
329 |
-
$return['cf7_spam']++;
|
330 |
-
} elseif ( 4 == $obj->type ) {
|
331 |
-
|
332 |
-
// Gravity Form spam.
|
333 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['gf_spam']++;
|
334 |
-
$return['gf_spam']++;
|
335 |
-
} elseif ( 5 == $obj->type ) {
|
336 |
-
|
337 |
-
// BuddyPress spam.
|
338 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['bp_registration_spam']++;
|
339 |
-
$return['bp_registration_spam']++;
|
340 |
-
} elseif ( 6 == $obj->type ) {
|
341 |
-
|
342 |
-
// Ninja Form spam.
|
343 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['nf_spam']++;
|
344 |
-
$return['nf_spam']++;
|
345 |
-
} elseif ( 7 == $obj->type ) {
|
346 |
-
|
347 |
-
// WPForms spam.
|
348 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ]['wpf_spam']++;
|
349 |
-
$return['wpf_spam']++;
|
350 |
-
} else {
|
351 |
-
if ( empty( $return['by_date'][ substr( $obj->date, 0, 10 ) ][$obj->type] ) ) $return['by_date'][ substr( $obj->date, 0, 10 ) ][$obj->type] = 0;
|
352 |
-
$return['by_date'][ substr( $obj->date, 0, 10 ) ][$obj->type]++;
|
353 |
-
|
354 |
-
if ( empty( $return[$obj->type] ) ) $return[$obj->type] = 0;
|
355 |
-
$return[$obj->type]++;
|
356 |
-
}
|
357 |
-
|
358 |
-
// Unique spammers
|
359 |
-
if ( ! in_array( $obj->ip, $return['unique_spammers'] ) ) {
|
360 |
-
$return['unique_spammers'][] = $obj->ip;
|
361 |
-
}
|
362 |
-
|
363 |
-
}
|
364 |
-
|
365 |
-
return $return;
|
366 |
-
}
|
367 |
-
|
368 |
-
function zerospam_all_spam_ary() {
|
369 |
-
global $wpdb;
|
370 |
-
$return = array(
|
371 |
-
'by_date' => array(),
|
372 |
-
'by_spam_count' => array(),
|
373 |
-
'raw' => 0,
|
374 |
-
'comment_spam' => 0,
|
375 |
-
'registration_spam' => 0,
|
376 |
-
'cf7_spam' => 0,
|
377 |
-
'gf_spam' => 0,
|
378 |
-
'bp_registration_spam' => 0,
|
379 |
-
'nf_spam' => 0,
|
380 |
-
'unique_spammers' => array(),
|
381 |
-
'by_day' => array(
|
382 |
-
'Sun' => 0,
|
383 |
-
'Mon' => 0,
|
384 |
-
'Tue' => 0,
|
385 |
-
'Wed' => 0,
|
386 |
-
'Thu' => 0,
|
387 |
-
'Fri' => 0,
|
388 |
-
'Sat' => 0
|
389 |
-
),
|
390 |
-
);
|
391 |
-
|
392 |
-
$table_name = $wpdb->prefix . 'zerospam_log';
|
393 |
-
|
394 |
-
// Count all
|
395 |
-
if ( $r = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS zerospam_id FROM $table_name WHERE 1=1 LIMIT 10") ) {
|
396 |
-
// SELECT COUNT(*) counts, MIN(date) date_start FROM $table_name WHERE 1=1
|
397 |
-
$return['raw'] = $wpdb->get_var("SELECT FOUND_ROWS()");// array_fill(0, $count_all, 0);// JUST USE $count_all next time...
|
398 |
-
$return['date_start'] = $wpdb->get_var("SELECT date FROM $table_name WHERE zerospam_id = (SELECT MIN(zerospam_id) FROM $table_name)");
|
399 |
-
} else {
|
400 |
-
// there's no spammer logs...
|
401 |
-
return $return;
|
402 |
-
}
|
403 |
-
|
404 |
-
$type_map = array(
|
405 |
-
1 => 'registration_spam',
|
406 |
-
2 => 'comment_spam',
|
407 |
-
3 => 'cf7_spam',
|
408 |
-
4 => 'gf_spam',
|
409 |
-
5 => 'bp_registration_spam',
|
410 |
-
'nf' => 'nf_spam',
|
411 |
-
'Undefined Form' => 'undefined_form' );
|
412 |
-
|
413 |
-
// Get spammers by weekday.
|
414 |
-
$by_weekday_ary = $wpdb->get_results( "SELECT DATE_FORMAT(date, '%a') as day, COUNT(*) num FROM $table_name GROUP BY day", ARRAY_A );
|
415 |
-
if ( $by_weekday_ary )
|
416 |
-
{
|
417 |
-
foreach ( $by_weekday_ary as $key => $ary )
|
418 |
-
{
|
419 |
-
$return['by_day'][ $ary['day'] ] = $ary['num'];
|
420 |
-
}
|
421 |
-
}
|
422 |
-
|
423 |
-
// By IP.
|
424 |
-
// @TODO - Need to make the limit dynamic.
|
425 |
-
$by_ip_ary = $wpdb->get_results( "SELECT ip, COUNT(*) num FROM $table_name GROUP BY ip ORDER BY num DESC LIMIT 100", ARRAY_A );
|
426 |
-
if ( $by_ip_ary )
|
427 |
-
{
|
428 |
-
foreach ( $by_ip_ary as $key => $ary ) {
|
429 |
-
$return['by_spam_count'][ $ary['ip'] ] = $ary['num'];
|
430 |
-
}
|
431 |
-
}
|
432 |
-
|
433 |
-
// By type.
|
434 |
-
$by_type = $wpdb->get_results( "SELECT type, COUNT(*) num FROM $table_name GROUP BY type", ARRAY_A );
|
435 |
-
if ( $by_type )
|
436 |
-
{
|
437 |
-
foreach( $by_type as $key => $ary )
|
438 |
-
{
|
439 |
-
$type = ! empty( $type_map[ $ary['type'] ] ) ? $type_map[ $ary['type'] ] : $ary['type'];
|
440 |
-
$return[ $type ] = $ary['num'];
|
441 |
-
}
|
442 |
-
}
|
443 |
-
|
444 |
-
// Unique Spammers
|
445 |
-
if ( $unique_spammers = $wpdb->get_var( "SELECT COUNT(DISTINCT ip) FROM $table_name" ) )
|
446 |
-
{
|
447 |
-
$return['unique_spammers'] = $unique_spammers;
|
448 |
-
}
|
449 |
-
|
450 |
-
// By date: LIMIT 100 days for graph
|
451 |
-
// @TODO - Need to make the limit dynamic.
|
452 |
-
$by_date = $wpdb->get_results( "SELECT type, LEFT(date, 10) day, COUNT(*) num FROM $table_name GROUP BY day, type ORDER BY date DESC LIMIT 100", ARRAY_A );
|
453 |
-
if ( $by_date )
|
454 |
-
{
|
455 |
-
foreach( $by_date as $key => $ary )
|
456 |
-
{
|
457 |
-
if ( ! empty( $return['by_date'][ $ary['day'] ] ) )
|
458 |
-
{
|
459 |
-
$return['by_date'][ $ary['day'] ] = array(
|
460 |
-
'data' => array(),
|
461 |
-
'comment_spam' => 0,
|
462 |
-
'registration_spam' => 0,
|
463 |
-
'cf7_spam' => 0,
|
464 |
-
'gf_spam' => 0,
|
465 |
-
'bp_registration_spam' => 0,
|
466 |
-
'nf_spam' => 0
|
467 |
-
);
|
468 |
-
}
|
469 |
-
$return['by_date'][ $ary['day'] ][ $type_map[ $ary['type'] ] ] = $ary['num'];
|
470 |
-
}
|
471 |
-
}
|
472 |
-
|
473 |
-
return $return;
|
474 |
-
}
|
475 |
-
|
476 |
-
function zerospam_num_days( $date ) {
|
477 |
-
$datediff = time() - strtotime( $date );
|
478 |
-
|
479 |
-
return floor( $datediff / ( DAY_IN_SECONDS ) );
|
480 |
-
}
|
481 |
-
|
482 |
-
function zerospam_get_blocked_ips( $args = array() ) {
|
483 |
-
global $wpdb;
|
484 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
485 |
-
|
486 |
-
$order_by = isset( $args['order_by'] ) ? ' ORDER BY ' . $args['order_by'] : ' ORDER BY zerospam_ip_id DESC';
|
487 |
-
|
488 |
-
$offset = isset( $args['offset'] ) ? $args['offset'] : false;
|
489 |
-
$limit = isset( $args['limit'] ) ? $args['limit'] : false;
|
490 |
-
if ( $offset && $limit ) {
|
491 |
-
$limit = ' LIMIT ' . $offset . ', ' . $limit;
|
492 |
-
} elseif ( $limit ) {
|
493 |
-
$limit = ' LIMIT ' . $limit;
|
494 |
-
}
|
495 |
-
|
496 |
-
$query = 'SELECT * FROM ' . $table_name . $order_by . $limit;
|
497 |
-
$results = $wpdb->get_results( $query );
|
498 |
-
|
499 |
-
if ( null == $results ) {
|
500 |
-
return false;
|
501 |
-
}
|
502 |
-
|
503 |
-
return $results;
|
504 |
-
}
|
505 |
-
|
506 |
-
function zerospam_get_percent( $num1, $num2 ) {
|
507 |
-
return number_format( ( $num1 / $num2 ) * 100, 2 );
|
508 |
-
}
|
509 |
-
|
510 |
-
function zerospam_pager( $limit = 10, $total_num, $page, $tab ) {
|
511 |
-
$max_pages = 11;
|
512 |
-
$num_pages = ceil( $total_num / $limit );
|
513 |
-
$cnt = 0;
|
514 |
-
|
515 |
-
$start = 1;
|
516 |
-
if ( $page > 5 ) {
|
517 |
-
$start = ( $page - 4 );
|
518 |
-
}
|
519 |
-
|
520 |
-
$pre_html = '';
|
521 |
-
if ( 1 != $page ) {
|
522 |
-
if ( 2 != $page ) {
|
523 |
-
$pre_html = '<li><a href="' . zerospam_admin_url() . '?page=zerospam&tab=' . $tab . '&p=1"><i class="fa fa-angle-double-left"></i></a>';
|
524 |
-
}
|
525 |
-
$pre_html .= '<li><a href="' . zerospam_admin_url() . '?page=zerospam&tab=' . $tab . '&p=' . ( $page - 1 ) . '"><i class="fa fa-angle-left"></i></a>';
|
526 |
-
}
|
527 |
-
|
528 |
-
echo '<ul class="zero-spam__pager">';
|
529 |
-
if ( isset( $pre_html ) ) {
|
530 |
-
echo $pre_html;
|
531 |
-
}
|
532 |
-
for ( $i = $start; $i <= $num_pages; $i ++ ) {
|
533 |
-
$cnt ++;
|
534 |
-
if ( $cnt >= $max_pages ) {
|
535 |
-
break;
|
536 |
-
}
|
537 |
-
|
538 |
-
if ( $num_pages != $page ) {
|
539 |
-
$post_html = '<li><a href="' . zerospam_admin_url() . '?page=zerospam&tab=' . $tab . '&p=' . ( $page + 1 ) . '"><i class="fa fa-angle-right"></i></a>';
|
540 |
-
if ( ( $page + 1 ) != $num_pages ) {
|
541 |
-
$post_html .= '<li><a href="' . zerospam_admin_url() . '?page=zerospam&tab=' . $tab . '&p=1"><i class="fa fa-angle-double-right"></i></a>';
|
542 |
-
}
|
543 |
-
}
|
544 |
-
|
545 |
-
$class = '';
|
546 |
-
if ( $page == $i ) {
|
547 |
-
$class = ' class="zero-spam__page-selected"';
|
548 |
-
}
|
549 |
-
echo '<li><a href="' . zerospam_admin_url() . '?page=zerospam&tab=' . $tab . '&p=' . $i . '"' . $class . '>' . $i . '</a>';
|
550 |
-
}
|
551 |
-
|
552 |
-
if( isset( $post_html ) ) {
|
553 |
-
echo $post_html;
|
554 |
-
}
|
555 |
-
echo '</ul>';
|
556 |
-
|
557 |
-
?>
|
558 |
-
<div class="zero-spam__page-info">
|
559 |
-
<?php echo __( 'Page ', 'zerospam' ) . number_format( $page, 0 ) . ' of ' . number_format( $num_pages, 0 ); ?>
|
560 |
-
(<?php echo number_format( $total_num, 0 ) . __( ' total records found', 'zerospam' ); ?>)
|
561 |
-
</div>
|
562 |
-
<?php
|
563 |
-
}
|
564 |
-
|
565 |
-
function zerospam_get_spam_count() {
|
566 |
-
global $wpdb;
|
567 |
-
$table_name = $wpdb->prefix . 'zerospam_log';
|
568 |
-
$query = $wpdb->get_row( 'SELECT COUNT(*) AS count FROM ' . $table_name );
|
569 |
-
return $query->count;
|
570 |
-
}
|
571 |
-
|
572 |
-
function zerospam_plugin_check( $plugin ) {
|
573 |
-
$result = false;
|
574 |
-
switch ( $plugin ) {
|
575 |
-
case 'cf7':
|
576 |
-
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
|
577 |
-
$result = true;
|
578 |
-
}
|
579 |
-
break;
|
580 |
-
case 'gf':
|
581 |
-
if ( is_plugin_active( 'gravityforms/gravityforms.php' ) ) {
|
582 |
-
$result = true;
|
583 |
-
}
|
584 |
-
break;
|
585 |
-
case 'bp':
|
586 |
-
if ( function_exists( 'bp_is_active' ) ) {
|
587 |
-
$result = true;
|
588 |
-
}
|
589 |
-
break;
|
590 |
-
case 'nf':
|
591 |
-
if ( is_plugin_active( 'ninja-forms/ninja-forms.php' ) ) {
|
592 |
-
$result = true;
|
593 |
-
}
|
594 |
-
break;
|
595 |
-
case 'wpf':
|
596 |
-
if ( is_plugin_active( 'wpforms/wpforms.php' ) || is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
|
597 |
-
$result = true;
|
598 |
-
}
|
599 |
-
break;
|
600 |
-
}
|
601 |
-
|
602 |
-
return $result;
|
603 |
-
}
|
604 |
-
|
605 |
-
function zerospam_delete_blocked_ip( $ip ) {
|
606 |
-
global $wpdb;
|
607 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
608 |
-
$query = $wpdb->delete( $table_name, array( 'ip' => $ip ), array( '%s' ) );
|
609 |
-
|
610 |
-
return $query;
|
611 |
-
}
|
612 |
-
|
613 |
-
function zerospam_reset_log() {
|
614 |
-
global $wpdb;
|
615 |
-
$table_name = $wpdb->prefix . 'zerospam_log';
|
616 |
-
$query = $wpdb->query( 'TRUNCATE ' . $table_name );
|
617 |
-
|
618 |
-
return $query;
|
619 |
-
}
|
620 |
-
|
621 |
-
function zerospam_get_ip_info( $ip ) {
|
622 |
-
global $wpdb;
|
623 |
-
|
624 |
-
// Ignore local hosts.
|
625 |
-
if ( $ip == '127.0.0.1' || $ip == '::1' ) {
|
626 |
-
return false;
|
627 |
-
}
|
628 |
-
|
629 |
-
// Check DB
|
630 |
-
$table_name = $wpdb->prefix . 'zerospam_ip_data';
|
631 |
-
$data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_name WHERE ip = %s", $ip ) );
|
632 |
-
|
633 |
-
// Retrieve from API
|
634 |
-
if ( ! $data ) {
|
635 |
-
// @ used to suppress API usage block warning.
|
636 |
-
$json = @file_get_contents( 'http://freegeoip.net/json/' . $ip );
|
637 |
-
|
638 |
-
$data = json_decode( $json );
|
639 |
-
|
640 |
-
if ( $data ) {
|
641 |
-
$wpdb->insert( $table_name, array(
|
642 |
-
'ip' => $ip,
|
643 |
-
'country_code' => $data->country_code,
|
644 |
-
'country_name' => $data->country_name,
|
645 |
-
'region_code' => $data->region_code,
|
646 |
-
'region_name' => $data->region_name,
|
647 |
-
'city' => $data->city,
|
648 |
-
'zipcode' => $data->zipcode,
|
649 |
-
'latitude' => $data->latitude,
|
650 |
-
'longitude' => $data->longitude,
|
651 |
-
'metro_code' => $data->metro_code,
|
652 |
-
'area_code' => $data->area_code
|
653 |
-
),
|
654 |
-
array(
|
655 |
-
'%s',
|
656 |
-
'%s',
|
657 |
-
'%s',
|
658 |
-
'%s',
|
659 |
-
'%s',
|
660 |
-
'%s',
|
661 |
-
'%s',
|
662 |
-
'%d',
|
663 |
-
'%d',
|
664 |
-
'%d',
|
665 |
-
'%d'
|
666 |
-
)
|
667 |
-
);
|
668 |
-
}
|
669 |
-
}
|
670 |
-
|
671 |
-
if ( FALSE != $data ) {
|
672 |
-
return $data;
|
673 |
-
}
|
674 |
-
|
675 |
-
return false;
|
676 |
-
}
|
677 |
-
|
678 |
-
/**
|
679 |
-
* WordPress admin URL.
|
680 |
-
*
|
681 |
-
* Returns the admin URL based off of whether it's a network enabled.
|
682 |
-
*
|
683 |
-
* @since 1.0.0
|
684 |
-
*
|
685 |
-
* @see is_plugin_active_for_network
|
686 |
-
* @see network_admin_url
|
687 |
-
* @see home_url
|
688 |
-
* @see admin_url
|
689 |
-
* @global string ZEROSPAM_PLUGIN The plugin root directory.
|
690 |
-
*
|
691 |
-
* @return string The plugin settings page URL.
|
692 |
-
*/
|
693 |
-
if ( ! function_exists( 'zerospam_admin_url' ) )
|
694 |
-
{
|
695 |
-
function zerospam_admin_url()
|
696 |
-
{
|
697 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) )
|
698 |
-
{
|
699 |
-
// Network enabled.
|
700 |
-
$settings_url = network_admin_url( 'settings.php' );
|
701 |
-
}
|
702 |
-
else
|
703 |
-
{
|
704 |
-
// No network.
|
705 |
-
$settings_url = admin_url( 'options-general.php' );
|
706 |
-
}
|
707 |
-
|
708 |
-
return $settings_url;
|
709 |
-
}
|
710 |
-
}
|
711 |
-
|
712 |
-
/**
|
713 |
-
* Blocked IP count.
|
714 |
-
*
|
715 |
-
* Returns the number of blocked IPs.
|
716 |
-
*
|
717 |
-
* @since 1.0.0
|
718 |
-
*
|
719 |
-
* @see wpdb::get_row
|
720 |
-
* @global object $wpdb Contains a set of functions used to interact with a database.
|
721 |
-
*
|
722 |
-
* @return int The number of blocked IPs.
|
723 |
-
*/
|
724 |
-
if ( ! function_exists( 'zerospam_get_blocked_ip_count' ) )
|
725 |
-
{
|
726 |
-
function zerospam_get_blocked_ip_count()
|
727 |
-
{
|
728 |
-
global $wpdb;
|
729 |
-
|
730 |
-
$table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
731 |
-
$query = $wpdb->get_row( 'SELECT COUNT(*) AS count FROM ' . $table_name );
|
732 |
-
return $query->count;
|
733 |
-
}
|
734 |
-
}
|
735 |
-
|
736 |
-
/**
|
737 |
-
* ZeroSpam library autoloader.
|
738 |
-
*
|
739 |
-
* The autoloads all available Zero Spam libraries.
|
740 |
-
*
|
741 |
-
* @since 1.0.0
|
742 |
-
*
|
743 |
-
* @param string $class_name The name of the ZeroSpam library.
|
744 |
-
* @return boolean TRUE if library successfully included, FALSE if not.
|
745 |
-
*/
|
746 |
-
if ( ! function_exists( 'zerospam_autoloader' ) )
|
747 |
-
{
|
748 |
-
function zerospam_autoloader( $class_name )
|
749 |
-
{
|
750 |
-
if ( false !== strpos( $class_name, 'ZeroSpam' ) )
|
751 |
-
{
|
752 |
-
$classes_dir = ZEROSPAM_ROOT . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR;
|
753 |
-
$class_file = str_replace( '_', DIRECTORY_SEPARATOR, $class_name ) . '.php';
|
754 |
-
|
755 |
-
/**
|
756 |
-
* Include the plugin library.
|
757 |
-
*/
|
758 |
-
require_once $classes_dir . $class_file;
|
759 |
-
|
760 |
-
return true;
|
761 |
-
}
|
762 |
-
|
763 |
-
return false;
|
764 |
-
}
|
765 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/inc/index.php
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?php // Silence is golden
|
|
trunk/index.php
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?php // Silence is golden
|
|
trunk/js/charts.js
DELETED
@@ -1,5953 +0,0 @@
|
|
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 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/js/zero-spam-admin.js
DELETED
@@ -1,120 +0,0 @@
|
|
1 |
-
(function($) {
|
2 |
-
"use strict";
|
3 |
-
var ZeroSpam = {
|
4 |
-
initIpLookup: function() {
|
5 |
-
$("[data-ip-location]").click(function(e) {
|
6 |
-
e.preventDefault();
|
7 |
-
var ele = $(this), ip = $(this).data("ip-location");
|
8 |
-
$.post(ajaxurl, {
|
9 |
-
action: "get_location",
|
10 |
-
security: zero_spam_admin.nonce,
|
11 |
-
ip: ip
|
12 |
-
}, function(data) {
|
13 |
-
var obj = $.parseJSON(data), html = "";
|
14 |
-
if (obj) {
|
15 |
-
if (obj.country_name) {
|
16 |
-
html += obj.country_code;
|
17 |
-
}
|
18 |
-
if (obj.region_name) {
|
19 |
-
if (html.length) {
|
20 |
-
html += ", ";
|
21 |
-
}
|
22 |
-
html += obj.region_name;
|
23 |
-
}
|
24 |
-
if (obj.city) {
|
25 |
-
if (html.length) {
|
26 |
-
html += ", ";
|
27 |
-
}
|
28 |
-
html += obj.city;
|
29 |
-
}
|
30 |
-
if (obj.country_code) {
|
31 |
-
html = '<span class="country-flag country-flags-' + obj.country_code.toLowerCase() + '"></span> ' + html;
|
32 |
-
}
|
33 |
-
}
|
34 |
-
if (!html.length) html = '<i class="fa fa-exclamation-triangle"></i>';
|
35 |
-
ele.html(html);
|
36 |
-
});
|
37 |
-
});
|
38 |
-
},
|
39 |
-
init: function() {
|
40 |
-
this.initIpLookup();
|
41 |
-
}
|
42 |
-
};
|
43 |
-
$(function() {
|
44 |
-
ZeroSpam.init();
|
45 |
-
});
|
46 |
-
})(jQuery);
|
47 |
-
|
48 |
-
jQuery(document).ready(function($) {
|
49 |
-
$(".zero-spam__block-ip, .zero-spam__trash").click(function(e) {
|
50 |
-
e.preventDefault();
|
51 |
-
closeForms();
|
52 |
-
var row = $(this).closest("tr"), form_row = $("<tr class='zero-spam__row-highlight'>"), btn = $(this), btn_cell = btn.parent(), ip = btn.data("ip"), action = "";
|
53 |
-
row.addClass("zero-spam__loading");
|
54 |
-
if (btn.hasClass("zero-spam__trash")) {
|
55 |
-
action = "trash_ip_block";
|
56 |
-
} else {
|
57 |
-
action = "block_ip_form";
|
58 |
-
}
|
59 |
-
$.post(ajaxurl, {
|
60 |
-
action: action,
|
61 |
-
security: zero_spam_admin.nonce,
|
62 |
-
ip: ip
|
63 |
-
}, function(data) {
|
64 |
-
row.removeClass("zero-spam__loading");
|
65 |
-
if (btn.hasClass("zero-spam__trash")) {
|
66 |
-
action = "trash_ip_block";
|
67 |
-
row.fadeOut(function() {
|
68 |
-
row.remove();
|
69 |
-
if ($(".zero-spam__table tbody tr").length === 0) {
|
70 |
-
$("#zerospam-id-container").after("No blocked IPs found.");
|
71 |
-
$("#zerospam-id-container").remove();
|
72 |
-
}
|
73 |
-
});
|
74 |
-
} else {
|
75 |
-
action = "block_ip_form";
|
76 |
-
row.addClass("zero-spam__loaded");
|
77 |
-
form_row.append("<td colspan='10'>" + data + "</td>");
|
78 |
-
row.before(form_row);
|
79 |
-
}
|
80 |
-
});
|
81 |
-
});
|
82 |
-
});
|
83 |
-
|
84 |
-
function closeForms() {
|
85 |
-
jQuery(".zero-spam__row-highlight").remove();
|
86 |
-
jQuery("tr").removeClass("zero-spam__loading");
|
87 |
-
jQuery("tr").removeClass("zero-spam__loaded");
|
88 |
-
}
|
89 |
-
|
90 |
-
function clearLog() {
|
91 |
-
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?")) {
|
92 |
-
jQuery.post(ajaxurl, {
|
93 |
-
action: "reset_log",
|
94 |
-
security: zero_spam_admin.nonce
|
95 |
-
}, function() {
|
96 |
-
location.reload();
|
97 |
-
});
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
function updateRow(ip) {
|
102 |
-
if (ip) {
|
103 |
-
jQuery.post(ajaxurl, {
|
104 |
-
action: "get_blocked_ip",
|
105 |
-
security: zero_spam_admin.nonce,
|
106 |
-
ip: ip
|
107 |
-
}, function(data) {
|
108 |
-
var d = jQuery.parseJSON(data), row = jQuery("tr[data-ip='" + d.ip + "']"), label;
|
109 |
-
if (true === d.is_blocked) {
|
110 |
-
label = '<span class="zero-spam__label zero-spam__bg--primary">Blocked</span>';
|
111 |
-
} else {
|
112 |
-
label = '<span class="zero-spam__label zero-spam__bg--trinary">Unblocked</span>';
|
113 |
-
}
|
114 |
-
jQuery(".zero-spam__reason", row).text(d.reason);
|
115 |
-
jQuery(".zero-spam__start-date", row).text(d.start_date_txt);
|
116 |
-
jQuery(".zero-spam__end-date", row).text(d.end_date_txt);
|
117 |
-
jQuery(".zero-spam__status", row).html(label);
|
118 |
-
});
|
119 |
-
}
|
120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/js/zerospam.js
DELETED
@@ -1,24 +0,0 @@
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Access.php
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_Access extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
|
5 |
-
|
6 |
-
if ( ! empty ( $this->settings['wp_generator'] ) && $this->settings['wp_generator'] ) {
|
7 |
-
remove_action( 'wp_head', 'wp_generator' );
|
8 |
-
}
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Uses plugins_loaded.
|
13 |
-
*
|
14 |
-
* This hook is called once any activated plugins have been loaded. Is
|
15 |
-
* generally used for immediate filter setup, or plugin overrides.
|
16 |
-
*
|
17 |
-
* @since 2.0.0
|
18 |
-
*
|
19 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/plugins_loaded
|
20 |
-
*/
|
21 |
-
public function plugins_loaded() {
|
22 |
-
// Check if user IP has been blocked.
|
23 |
-
$this->ip_check();
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Checks if the current IP is blocked.
|
28 |
-
*
|
29 |
-
* @since 2.0.0
|
30 |
-
*/
|
31 |
-
public function ip_check() {
|
32 |
-
if ( ! is_user_logged_in() && zerospam_is_blocked( zerospam_get_ip() ) ) {
|
33 |
-
do_action( 'zero_spam_ip_blocked' );
|
34 |
-
die( __( $this->settings['blocked_ip_msg'], 'zerospam' ) );
|
35 |
-
}
|
36 |
-
}
|
37 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Admin.php
DELETED
@@ -1,628 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_Admin extends ZeroSpam_Plugin {
|
3 |
-
public $tabs = array();
|
4 |
-
|
5 |
-
public function run() {
|
6 |
-
// Merge and update new changes
|
7 |
-
if ( isset( $_POST['zerospam_general_settings'] ) )
|
8 |
-
{
|
9 |
-
$saved_settings = array();
|
10 |
-
foreach ( $this->default_settings as $key => $val ) {
|
11 |
-
if ( ! empty( $_POST['zerospam_general_settings'][ $key ] ) )
|
12 |
-
{
|
13 |
-
$saved_settings[ $key ] = $_POST['zerospam_general_settings'][ $key ];
|
14 |
-
} else {
|
15 |
-
$saved_settings[ $key ] = 0;
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ) {
|
20 |
-
update_site_option( 'zerospam_general_settings', $saved_settings );
|
21 |
-
} else {
|
22 |
-
update_option( 'zerospam_general_settings', $saved_settings );
|
23 |
-
}
|
24 |
-
$this->load_settings();
|
25 |
-
}
|
26 |
-
|
27 |
-
$this->tabs['zerospam_general_settings'] = 'General Settings';
|
28 |
-
$this->tabs['zerospam_ip_block'] = 'Blocked IPs';
|
29 |
-
|
30 |
-
if ( ! empty( $this->settings['log_spammers'] ) && $this->settings['log_spammers'] ) {
|
31 |
-
$this->tabs['zerospam_spammer_logs'] = 'Spammer Log';
|
32 |
-
}
|
33 |
-
|
34 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ) {
|
35 |
-
add_action( 'network_admin_menu', array( $this, 'admin_menu' ) );
|
36 |
-
add_action( 'network_admin_edit_zerospam', array( $this, 'update_network_setting' ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
add_action( 'admin_init', array( $this, 'admin_init' ) );
|
40 |
-
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
41 |
-
|
42 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Add admin scripts.
|
47 |
-
*
|
48 |
-
* Adds the CSS & JS for the WordPress Zero Spam settings page.
|
49 |
-
*
|
50 |
-
* @since 2.0.0
|
51 |
-
*
|
52 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts
|
53 |
-
*
|
54 |
-
* @param string $hook Used to target a specific admin page.
|
55 |
-
* @return void
|
56 |
-
*/
|
57 |
-
public function admin_enqueue_scripts( $hook ) {
|
58 |
-
if ( 'settings_page_zerospam' != $hook ) {
|
59 |
-
return;
|
60 |
-
}
|
61 |
-
|
62 |
-
// Create nonce for AJAX requests.
|
63 |
-
$ajax_nonce = wp_create_nonce( 'zero-spam' );
|
64 |
-
|
65 |
-
// Register the WordPress Zero Spam admin script.
|
66 |
-
wp_register_script(
|
67 |
-
'zero-spam-admin', plugin_dir_url( ZEROSPAM_PLUGIN ) .
|
68 |
-
'js/zero-spam-admin.js'
|
69 |
-
);
|
70 |
-
|
71 |
-
// Localize the script with the plugin data.
|
72 |
-
$zero_spam_array = array( 'nonce' => $ajax_nonce );
|
73 |
-
wp_localize_script( 'zero-spam-admin', 'zero_spam_admin', $zero_spam_array );
|
74 |
-
|
75 |
-
// Enqueue the script.
|
76 |
-
wp_enqueue_script( 'zero-spam-admin' );
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Uses admin_init.
|
81 |
-
*
|
82 |
-
* Triggered before any other hook when a user accesses the admin area.
|
83 |
-
*
|
84 |
-
* @since 2.0.0
|
85 |
-
*
|
86 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init
|
87 |
-
*/
|
88 |
-
public function admin_init() {
|
89 |
-
register_setting( 'zerospam_general_settings', 'zerospam_general_settings' );
|
90 |
-
|
91 |
-
add_settings_section( 'section_general', __( 'General Settings', 'zerospam' ), false, 'zerospam_general_settings' );
|
92 |
-
add_settings_section( 'section_messages', __( 'Messages', 'zerospam' ), false, 'zerospam_general_settings' );
|
93 |
-
|
94 |
-
add_settings_field( 'wp_generator', __( 'WP Generator Meta Tag', 'zerospam' ), array( $this, 'field_wp_generator' ), 'zerospam_general_settings', 'section_general' );
|
95 |
-
add_settings_field( 'log_spammers', __( 'Log Spammers', 'zerospam' ), array( $this, 'field_log_spammers' ), 'zerospam_general_settings', 'section_general' );
|
96 |
-
|
97 |
-
if ( ! empty( $this->settings['log_spammers'] ) && $this->settings['log_spammers'] ) {
|
98 |
-
// IP location API support.
|
99 |
-
add_settings_field( 'ip_location_support', __( 'IP Location Support', 'zerospam' ), array( $this, 'field_ip_location_support' ), 'zerospam_general_settings', 'section_general' );
|
100 |
-
|
101 |
-
// Auto IP block support.
|
102 |
-
add_settings_field( 'auto_block', __( 'Auto IP Block', 'zerospam' ), array( $this, 'field_auto_block' ), 'zerospam_general_settings', 'section_general' );
|
103 |
-
}
|
104 |
-
|
105 |
-
add_settings_field( 'blocked_ip_msg', __( 'Blocked IP Message', 'zerospam' ), array( $this, 'field_blocked_ip_msg' ), 'zerospam_general_settings', 'section_messages' );
|
106 |
-
|
107 |
-
add_settings_field( 'comment_support', __( 'Comment Support', 'zerospam' ), array( $this, 'field_comment_support' ), 'zerospam_general_settings', 'section_general' );
|
108 |
-
|
109 |
-
// Comment support.
|
110 |
-
if ( ! empty( $this->settings['comment_support'] ) && $this->settings['comment_support'] ) {
|
111 |
-
add_settings_field( 'spammer_msg_comment', __( 'Spam Comment Message', 'zerospam' ), array( $this, 'field_spammer_msg_comment' ), 'zerospam_general_settings', 'section_messages' );
|
112 |
-
}
|
113 |
-
|
114 |
-
// Registration support.
|
115 |
-
add_settings_field( 'registration_support', __( 'Registration Support', 'zerospam' ), array( $this, 'field_registration_support' ), 'zerospam_general_settings', 'section_general' );
|
116 |
-
if ( ! empty( $this->settings['registration_support'] ) && $this->settings['registration_support'] ) {
|
117 |
-
add_settings_field( 'spammer_msg_registration', __( 'Spam Registration Message', 'zerospam' ), array( $this, 'field_spammer_msg_registration' ), 'zerospam_general_settings', 'section_messages' );
|
118 |
-
}
|
119 |
-
|
120 |
-
// Contact Form 7 support.
|
121 |
-
if ( zerospam_plugin_check( 'cf7' ) ) {
|
122 |
-
add_settings_field( 'cf7_support', __( 'Contact Form 7 Support', 'zerospam' ), array( $this, 'field_cf7_support' ), 'zerospam_general_settings', 'section_general' );
|
123 |
-
|
124 |
-
if ( ! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support'] ) {
|
125 |
-
add_settings_field( 'spammer_msg_contact_form_7', __( 'Contact Form 7 Spam Message', 'zerospam' ), array( $this, 'field_spammer_msg_contact_form_7' ), 'zerospam_general_settings', 'section_messages' );
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
// Gravity Forms support.
|
130 |
-
if ( zerospam_plugin_check( 'gf' ) ) {
|
131 |
-
add_settings_field( 'gf_support', __( 'Gravity Forms Support', 'zerospam' ), array( $this, 'field_gf_support' ), 'zerospam_general_settings', 'section_general' );
|
132 |
-
|
133 |
-
if ( ! empty( $this->settings['gf_support'] ) && $this->settings['gf_support'] ) {
|
134 |
-
add_settings_field( 'spammer_msg_gf', __( 'Gravity Forms Spam Message', 'zerospam' ), array( $this, 'field_spammer_msg_gf' ), 'zerospam_general_settings', 'section_messages' );
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
-
// BuddyPress support.
|
139 |
-
if ( zerospam_plugin_check( 'bp' ) ) {
|
140 |
-
add_settings_field( 'bp_support', __( 'BuddyPress Support', 'zerospam' ), array( $this, 'field_bp_support' ), 'zerospam_general_settings', 'section_general' );
|
141 |
-
|
142 |
-
if ( ! empty( $this->settings['bp_support'] ) && $this->settings['bp_support'] ) {
|
143 |
-
add_settings_field( 'spammer_msg_bp', __( 'BuddyPress Spam Message', 'zerospam' ), array( $this, 'field_spammer_msg_bp' ), 'zerospam_general_settings', 'section_messages' );
|
144 |
-
}
|
145 |
-
}
|
146 |
-
|
147 |
-
// Ninja Forms support.
|
148 |
-
if ( zerospam_plugin_check( 'nf' ) ) {
|
149 |
-
add_settings_field( 'nf_support', __( 'Ninja Forms Support', 'zerospam' ), array( $this, 'field_nf_support' ), 'zerospam_general_settings', 'section_general' );
|
150 |
-
|
151 |
-
if ( ! empty( $this->settings['nf_support'] ) && $this->settings['nf_support'] ) {
|
152 |
-
add_settings_field( 'spammer_msg_nf', __( 'Ninja Forms Spam Message', 'zerospam' ), array( $this, 'field_spammer_msg_nf' ), 'zerospam_general_settings', 'section_messages' );
|
153 |
-
}
|
154 |
-
}
|
155 |
-
|
156 |
-
// WPForms support.
|
157 |
-
if ( zerospam_plugin_check( 'wpf' ) ) {
|
158 |
-
add_settings_field( 'wpf_support', __( 'WPForms Support', 'zerospam' ), array( $this, 'field_wpf_support' ), 'zerospam_general_settings', 'section_general' );
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
/**
|
163 |
-
* WPForms support option.
|
164 |
-
*
|
165 |
-
* Field callback, renders a checkbox input, note the name and value.
|
166 |
-
*
|
167 |
-
* @since 2.0.3
|
168 |
-
*/
|
169 |
-
public function field_wpf_support() {
|
170 |
-
?>
|
171 |
-
<label for="wpf_support">
|
172 |
-
<input type="checkbox" id="wpf_support" name="zerospam_general_settings[wpf_support]" value="1" <?php if( isset( $this->settings['wpf_support'] ) ) : checked( $this->settings['wpf_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
173 |
-
</label>
|
174 |
-
<?php
|
175 |
-
}
|
176 |
-
|
177 |
-
/**
|
178 |
-
* Spam Ninja Forms message option.
|
179 |
-
*
|
180 |
-
* Field callback, renders a text input, note the name and value.
|
181 |
-
*
|
182 |
-
* @since 2.0.0
|
183 |
-
*/
|
184 |
-
public function field_spammer_msg_nf() {
|
185 |
-
?>
|
186 |
-
<label for="spammer_msg_nf">
|
187 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_nf]" value="<?php echo esc_attr( $this->settings['spammer_msg_nf'] ); ?>">
|
188 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam Ninja Form entry has been submitted.', 'zerospam' ); ?></p>
|
189 |
-
</label>
|
190 |
-
<?php
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* Ninja Forms support option.
|
195 |
-
*
|
196 |
-
* Field callback, renders a checkbox input, note the name and value.
|
197 |
-
*
|
198 |
-
* @since 2.0.0
|
199 |
-
*/
|
200 |
-
public function field_nf_support() {
|
201 |
-
?>
|
202 |
-
<label for="nf_support">
|
203 |
-
<input type="checkbox" id="nf_support" name="zerospam_general_settings[nf_support]" value="1" <?php if( isset( $this->settings['nf_support'] ) ) : checked( $this->settings['nf_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
204 |
-
</label>
|
205 |
-
<?php
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* BuddyPress spam message option.
|
210 |
-
*
|
211 |
-
* Field callback, renders a text input, note the name and value.
|
212 |
-
*
|
213 |
-
* @since 2.0.0
|
214 |
-
*/
|
215 |
-
public function field_spammer_msg_bp() {
|
216 |
-
?>
|
217 |
-
<label for="spammer_msg_bp">
|
218 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_bp]" value="<?php echo esc_attr( $this->settings['spammer_msg_bp'] ); ?>">
|
219 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam BuddyPress registration has been detected (HTML allowed).', 'zerospam' ); ?></p>
|
220 |
-
</label>
|
221 |
-
<?php
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* BuddyPress support option.
|
226 |
-
*
|
227 |
-
* Field callback, renders a checkbox input, note the name and value.
|
228 |
-
*
|
229 |
-
* @since 2.0.0
|
230 |
-
*/
|
231 |
-
public function field_bp_support() {
|
232 |
-
?>
|
233 |
-
<label for="bp_support">
|
234 |
-
<input type="checkbox" id="bp_support" name="zerospam_general_settings[bp_support]" value="1" <?php if( isset( $this->settings['bp_support'] ) ) : checked( $this->settings['bp_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
235 |
-
</label>
|
236 |
-
<?php
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* Gravity Forms message option.
|
241 |
-
*
|
242 |
-
* Field callback, renders a text input, note the name and value.
|
243 |
-
*
|
244 |
-
* @since 2.0.3
|
245 |
-
*/
|
246 |
-
public function field_spammer_msg_gf() {
|
247 |
-
?>
|
248 |
-
<label for="spammer_msg_gf">
|
249 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_gf]" value="<?php echo esc_attr( $this->settings['spammer_msg_gf'] ); ?>">
|
250 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam Gravity Forms entry has been submitted.', 'zerospam' ); ?></p>
|
251 |
-
</label>
|
252 |
-
<?php
|
253 |
-
}
|
254 |
-
|
255 |
-
/**
|
256 |
-
* Gravity Forms support option.
|
257 |
-
*
|
258 |
-
* Field callback, renders a checkbox input, note the name and value.
|
259 |
-
*
|
260 |
-
* @since 2.0.0
|
261 |
-
*/
|
262 |
-
public function field_gf_support() {
|
263 |
-
?>
|
264 |
-
<label for="gf_support">
|
265 |
-
<input type="checkbox" id="gf_support" name="zerospam_general_settings[gf_support]" value="1" <?php if( isset( $this->settings['gf_support'] ) ) : checked( $this->settings['gf_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
266 |
-
</label>
|
267 |
-
<?php
|
268 |
-
}
|
269 |
-
|
270 |
-
/**
|
271 |
-
* Contact Form 7 spam message option.
|
272 |
-
*
|
273 |
-
* Field callback, renders a text input, note the name and value.
|
274 |
-
*
|
275 |
-
* @since 2.0.0
|
276 |
-
*/
|
277 |
-
public function field_spammer_msg_contact_form_7() {
|
278 |
-
?>
|
279 |
-
<label for="spammer_msg_contact_form_7">
|
280 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_contact_form_7]" value="<?php echo esc_attr( $this->settings['spammer_msg_contact_form_7'] ); ?>">
|
281 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam registration has been detected (HTML allowed).', 'zerospam' ); ?></p>
|
282 |
-
</label>
|
283 |
-
<?php
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* Contact Form 7 support option.
|
288 |
-
*
|
289 |
-
* Field callback, renders a checkbox input, note the name and value.
|
290 |
-
*
|
291 |
-
* @since 2.0.0
|
292 |
-
*/
|
293 |
-
public function field_cf7_support() {
|
294 |
-
?>
|
295 |
-
<label for="cf7_support">
|
296 |
-
<input type="checkbox" id="cf7_support" name="zerospam_general_settings[cf7_support]" value="1" <?php if( isset( $this->settings['cf7_support'] ) ) : checked( $this->settings['cf7_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
297 |
-
</label>
|
298 |
-
<?php
|
299 |
-
}
|
300 |
-
|
301 |
-
/**
|
302 |
-
* Spam registration message option.
|
303 |
-
*
|
304 |
-
* Field callback, renders a text input, note the name and value.
|
305 |
-
*
|
306 |
-
* @since 2.0.0
|
307 |
-
*/
|
308 |
-
public function field_spammer_msg_registration() {
|
309 |
-
?>
|
310 |
-
<label for="spammer_msg_registration">
|
311 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_registration]" value="<?php echo esc_attr( $this->settings['spammer_msg_registration'] ); ?>">
|
312 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam registration has been detected (HTML allowed).', 'zerospam' ); ?></p>
|
313 |
-
</label>
|
314 |
-
<?php
|
315 |
-
}
|
316 |
-
|
317 |
-
/**
|
318 |
-
* Registration support option.
|
319 |
-
*
|
320 |
-
* Field callback, renders a checkbox input, note the name and value.
|
321 |
-
*
|
322 |
-
* @since 2.0.0
|
323 |
-
*/
|
324 |
-
public function field_registration_support() {
|
325 |
-
?>
|
326 |
-
<label for="registration_support">
|
327 |
-
<input type="checkbox" id="registration_support" name="zerospam_general_settings[registration_support]" value="1" <?php if( isset( $this->settings['registration_support'] ) ) : checked( $this->settings['registration_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
328 |
-
</label>
|
329 |
-
<?php
|
330 |
-
}
|
331 |
-
|
332 |
-
/**
|
333 |
-
* Spam comment message option.
|
334 |
-
*
|
335 |
-
* Field callback, renders a text input, note the name and value.
|
336 |
-
*
|
337 |
-
* @since 2.0.0
|
338 |
-
*/
|
339 |
-
public function field_spammer_msg_comment() {
|
340 |
-
?>
|
341 |
-
<label for="spammer_msg_comment">
|
342 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[spammer_msg_comment]" value="<?php echo esc_attr( $this->settings['spammer_msg_comment'] ); ?>">
|
343 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a spam comment has been detected.', 'zerospam' ); ?></p>
|
344 |
-
</label>
|
345 |
-
<?php
|
346 |
-
}
|
347 |
-
|
348 |
-
/**
|
349 |
-
* Comment support option.
|
350 |
-
*
|
351 |
-
* Field callback, renders a checkbox input, note the name and value.
|
352 |
-
*
|
353 |
-
* @since 2.0.0
|
354 |
-
*/
|
355 |
-
public function field_comment_support() {
|
356 |
-
?>
|
357 |
-
<label for="comment_support">
|
358 |
-
<input type="checkbox" id="comment_support" name="zerospam_general_settings[comment_support]" value="1" <?php if( isset( $this->settings['comment_support'] ) ) : checked( $this->settings['comment_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
359 |
-
</label>
|
360 |
-
<?php
|
361 |
-
}
|
362 |
-
|
363 |
-
/**
|
364 |
-
* Blocked IP message option.
|
365 |
-
*
|
366 |
-
* Field callback, renders a text input, note the name and value.
|
367 |
-
*
|
368 |
-
* @since 2.0.0
|
369 |
-
*/
|
370 |
-
public function field_blocked_ip_msg() {
|
371 |
-
?>
|
372 |
-
<label for="blocked_ip_msg">
|
373 |
-
<input type="text" class="regular-text" name="zerospam_general_settings[blocked_ip_msg]" value="<?php echo esc_attr( $this->settings['blocked_ip_msg'] ); ?>">
|
374 |
-
<p class="description"><?php echo __( 'Enter a short message to display when a blocked IP visits the site.', 'zerospam' ); ?></p>
|
375 |
-
</label>
|
376 |
-
<?php
|
377 |
-
}
|
378 |
-
|
379 |
-
/**
|
380 |
-
* Auto block option.
|
381 |
-
*
|
382 |
-
* Field callback, renders checkbox input, note the name and value.
|
383 |
-
*
|
384 |
-
* @since 2.0.0
|
385 |
-
*
|
386 |
-
* @return string HTML output for auto block tag.
|
387 |
-
*/
|
388 |
-
public function field_auto_block() {
|
389 |
-
?>
|
390 |
-
<label for="auto_block">
|
391 |
-
<input type="checkbox" id="auto_block" name="zerospam_general_settings[auto_block]" value="1" <?php if ( isset( $this->settings['auto_block']) ): checked( $this->settings['auto_block'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
392 |
-
</label>
|
393 |
-
|
394 |
-
<p class="description"><?php echo __( 'With auto IP block enabled, users who are identified as spam will automatically be blocked from the site.', 'zerospam' ); ?></p>
|
395 |
-
<?php
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
* IP location API field.
|
400 |
-
*
|
401 |
-
* Field callback, renders a checkbox input, note the name and value.
|
402 |
-
*
|
403 |
-
* @since 2.0.0
|
404 |
-
*/
|
405 |
-
public function field_ip_location_support() {
|
406 |
-
?>
|
407 |
-
<label for="ip_location_support">
|
408 |
-
<input type="checkbox" id="gf_support" name="zerospam_general_settings[ip_location_support]" value="1" <?php if( isset( $this->settings['ip_location_support'] ) ) : checked( $this->settings['ip_location_support'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
409 |
-
<p class="description">
|
410 |
-
<?php echo __( 'IP location data provided by', 'zerospam' ); ?> <a href="http://freegeoip.net/" target="_blank">freegeoip.net</a>. <?php echo __( 'API usage is limited to 10,000 queries per hour.', 'zerospam' ); ?><br>
|
411 |
-
<?php echo __( 'Disable this option if you experience slow load times on the', 'zerospam' ); ?> <a href="<?php echo zerospam_admin_url() . '?page=zerospam&tab=zerospam_spammer_logs'; ?>"><?php echo __( 'Spammer Log', 'zerospam' ); ?></a> <?php echo __( 'page', 'zerospam' ); ?>.
|
412 |
-
</p>
|
413 |
-
</label>
|
414 |
-
<?php
|
415 |
-
}
|
416 |
-
|
417 |
-
/**
|
418 |
-
* WP generator meta tag option.
|
419 |
-
*
|
420 |
-
* Field callback, renders radio inputs, note the name and value.
|
421 |
-
*
|
422 |
-
* @since 2.0.0
|
423 |
-
*/
|
424 |
-
public function field_wp_generator() {
|
425 |
-
?>
|
426 |
-
<label for="wp_generator_remove">
|
427 |
-
<input type="checkbox" id="wp_generator_remove" name="zerospam_general_settings[wp_generator]" value="1" <?php if ( isset( $this->settings['wp_generator']) ): checked( $this->settings['wp_generator'] ); endif; ?> /> <?php echo __( 'Hide', 'zerospam' ); ?>
|
428 |
-
</label>
|
429 |
-
|
430 |
-
<p class="description"><?php echo __( 'It can be considered a security risk to make your WordPress version visible and public you should hide it.', 'zerospam' ); ?></p>
|
431 |
-
<?php
|
432 |
-
}
|
433 |
-
|
434 |
-
/**
|
435 |
-
* Log spammers option.
|
436 |
-
*
|
437 |
-
* Field callback, renders radio inputs, note the name and value.
|
438 |
-
*
|
439 |
-
* @since 2.0.0
|
440 |
-
*/
|
441 |
-
public function field_log_spammers() {
|
442 |
-
?>
|
443 |
-
<label for="log_spammers">
|
444 |
-
<input type="checkbox" id="log_spammers" name="zerospam_general_settings[log_spammers]" value="1" <?php if( isset( $this->settings['log_spammers'] ) ) : checked( $this->settings['log_spammers'] ); endif; ?> /> <?php echo __( 'Enabled', 'zerospam' ); ?>
|
445 |
-
</label>
|
446 |
-
<?php
|
447 |
-
}
|
448 |
-
|
449 |
-
/**
|
450 |
-
* Update network settings.
|
451 |
-
*
|
452 |
-
* Used when plugin is network activated to save settings.
|
453 |
-
*
|
454 |
-
* @since 2.0.0
|
455 |
-
*
|
456 |
-
* @link http://wordpress.stackexchange.com/questions/64968/settings-api-in-multisite-missing-update-message
|
457 |
-
* @link http://benohead.com/wordpress-network-wide-plugin-settings/
|
458 |
-
*/
|
459 |
-
public function update_network_setting() {
|
460 |
-
update_site_option( 'zerospam_general_settings', $_POST['zerospam_general_settings'] );
|
461 |
-
wp_redirect( add_query_arg(
|
462 |
-
array(
|
463 |
-
'page' => 'zerospam',
|
464 |
-
'updated' => 'true',
|
465 |
-
),
|
466 |
-
network_admin_url( 'settings.php' )
|
467 |
-
) );
|
468 |
-
exit;
|
469 |
-
}
|
470 |
-
|
471 |
-
/**
|
472 |
-
* Uses admin_menu.
|
473 |
-
*
|
474 |
-
* Used to add extra submenus and menu options to the admin panel's menu
|
475 |
-
* structure.
|
476 |
-
*
|
477 |
-
* @since 2.0.0
|
478 |
-
*
|
479 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu
|
480 |
-
*
|
481 |
-
* @return void
|
482 |
-
*/
|
483 |
-
public function admin_menu() {
|
484 |
-
|
485 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ) {
|
486 |
-
$hook_suffix = add_submenu_page(
|
487 |
-
'settings.php',
|
488 |
-
__( 'Zero Spam Settings', 'zerospam' ),
|
489 |
-
__( 'Zero Spam', 'zerospam' ),
|
490 |
-
'manage_network',
|
491 |
-
'zerospam',
|
492 |
-
array( $this, 'settings_page' )
|
493 |
-
);
|
494 |
-
} else {
|
495 |
-
// Register plugin settings page.
|
496 |
-
$hook_suffix = add_options_page(
|
497 |
-
__( 'Zero Spam Settings', 'zerospam' ),
|
498 |
-
__( 'Zero Spam', 'zerospam' ),
|
499 |
-
'manage_options',
|
500 |
-
'zerospam',
|
501 |
-
array( $this, 'settings_page' )
|
502 |
-
);
|
503 |
-
}
|
504 |
-
|
505 |
-
// Load WordPress Zero Spam settings from the database.
|
506 |
-
add_action( "load-{$hook_suffix}", array( $this, 'load_zerospam_settings' ) );
|
507 |
-
}
|
508 |
-
|
509 |
-
/**
|
510 |
-
* Admin Scripts
|
511 |
-
*
|
512 |
-
* Adds CSS and JS files to the admin pages.
|
513 |
-
*
|
514 |
-
* @since 2.0.0
|
515 |
-
*
|
516 |
-
* @return void | boolean
|
517 |
-
*/
|
518 |
-
public function load_zerospam_settings() {
|
519 |
-
wp_enqueue_style( 'zerospam-admin', plugins_url( 'css/style.css', ZEROSPAM_PLUGIN ) );
|
520 |
-
wp_enqueue_script( 'zerospam-charts', plugins_url( 'js/charts.js', ZEROSPAM_PLUGIN ), array( 'jquery' ) );
|
521 |
-
}
|
522 |
-
|
523 |
-
/**
|
524 |
-
* Plugin options page.
|
525 |
-
*
|
526 |
-
* Rendering goes here, checks for active tab and replaces key with the related
|
527 |
-
* settings key. Uses the _options_tabs method to render the tabs.
|
528 |
-
*
|
529 |
-
* @since 2.0.0
|
530 |
-
*/
|
531 |
-
public function settings_page() {
|
532 |
-
$plugin = get_plugin_data( ZEROSPAM_PLUGIN );
|
533 |
-
$tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'zerospam_general_settings';
|
534 |
-
$page = isset( $_GET['p'] ) ? $_GET['p'] : 1;
|
535 |
-
$action = is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ? 'edit.php?action=zerospam' : 'options.php';
|
536 |
-
?>
|
537 |
-
<div class="wrap">
|
538 |
-
<h2><?php echo __( 'WordPress Zero Spam', 'zerospam' ); ?></h2>
|
539 |
-
<?php $this->option_tabs(); ?>
|
540 |
-
<div class="zerospam__row">
|
541 |
-
<div class="zerospam__right">
|
542 |
-
<?php
|
543 |
-
/**
|
544 |
-
* Include the admin sidebar.
|
545 |
-
*/
|
546 |
-
require_once( ZEROSPAM_ROOT . 'tpl' . DIRECTORY_SEPARATOR . 'admin-sidebar.php' );
|
547 |
-
?>
|
548 |
-
</div>
|
549 |
-
<div class="zerospam__left">
|
550 |
-
<?php
|
551 |
-
if (
|
552 |
-
'zerospam_spammer_logs' == $tab &&
|
553 |
-
'1' == $this->settings['log_spammers']
|
554 |
-
) {
|
555 |
-
$ajax_nonce = wp_create_nonce( 'zero-spam' );
|
556 |
-
|
557 |
-
$limit = 10;
|
558 |
-
$args = array(
|
559 |
-
'limit' => $limit,
|
560 |
-
'offset' => ($page - 1) * $limit
|
561 |
-
);
|
562 |
-
$spam = zerospam_get_spam( $args );
|
563 |
-
$spam = zerospam_parse_spam_ary( $spam );
|
564 |
-
$all_spam = zerospam_all_spam_ary();
|
565 |
-
|
566 |
-
if ( $all_spam['raw'] ) {
|
567 |
-
$starting_date = $all_spam['date_start'];// 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 |
-
}
|
571 |
-
|
572 |
-
if (
|
573 |
-
isset( $this->settings['ip_location_support'] ) &&
|
574 |
-
'1' == $this->settings['ip_location_support']
|
575 |
-
) {
|
576 |
-
$ip_location_support = true;
|
577 |
-
} else {
|
578 |
-
$ip_location_support = false;
|
579 |
-
}
|
580 |
-
|
581 |
-
/**
|
582 |
-
* Include the Spammer Logs page.
|
583 |
-
*/
|
584 |
-
require_once( ZEROSPAM_ROOT . 'tpl' . DIRECTORY_SEPARATOR . 'spammer-logs.php' );
|
585 |
-
} elseif ( $tab == 'zerospam_ip_block' ) {
|
586 |
-
$limit = 10;
|
587 |
-
$args = array(
|
588 |
-
'limit' => $limit,
|
589 |
-
'offset' => ($page - 1) * $limit
|
590 |
-
);
|
591 |
-
$ips = zerospam_get_blocked_ips( $args );
|
592 |
-
|
593 |
-
/**
|
594 |
-
* Include the Blocked IPs page.
|
595 |
-
*/
|
596 |
-
require_once( ZEROSPAM_ROOT . 'tpl' . DIRECTORY_SEPARATOR . 'ip-block.php' );
|
597 |
-
} else {
|
598 |
-
|
599 |
-
/**
|
600 |
-
* General settings page template.
|
601 |
-
*/
|
602 |
-
require_once( ZEROSPAM_ROOT . 'tpl' . DIRECTORY_SEPARATOR . 'general-settings.php' );
|
603 |
-
} ?>
|
604 |
-
</div>
|
605 |
-
|
606 |
-
</div>
|
607 |
-
</div>
|
608 |
-
<?php
|
609 |
-
}
|
610 |
-
|
611 |
-
/**
|
612 |
-
* Renders setting tabs.
|
613 |
-
*
|
614 |
-
* Walks through the object's tabs array and prints them one by one.
|
615 |
-
* Provides the heading for the settings_page method.
|
616 |
-
*
|
617 |
-
* @since 2.0.0
|
618 |
-
*/
|
619 |
-
public function option_tabs() {
|
620 |
-
$current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'zerospam_general_settings';
|
621 |
-
echo '<h2 class="nav-tab-wrapper">';
|
622 |
-
foreach ( $this->tabs as $key => $name ) {
|
623 |
-
$active = $current_tab == $key ? 'nav-tab-active' : '';
|
624 |
-
echo '<a class="nav-tab ' . $active . '" href="?page=zerospam&tab=' . $key . '">' . $name . '</a>';
|
625 |
-
}
|
626 |
-
echo '</h2>';
|
627 |
-
}
|
628 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Ajax.php
DELETED
@@ -1,258 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_Ajax extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
// Block an IP.
|
5 |
-
add_action( 'wp_ajax_block_ip', array( $this, 'wp_ajax_block_ip' ) );
|
6 |
-
|
7 |
-
// Get the Block IP form.
|
8 |
-
add_action( 'wp_ajax_block_ip_form', array( $this, 'wp_ajax_block_ip_form' ) );
|
9 |
-
|
10 |
-
// Get a blocked IP's record.
|
11 |
-
add_action( 'wp_ajax_get_blocked_ip', array( $this, 'wp_ajax_get_blocked_ip' ) );
|
12 |
-
|
13 |
-
// Delete a blocked IP.
|
14 |
-
add_action( 'wp_ajax_trash_ip_block', array( $this, 'wp_ajax_trash_ip_block' ) );
|
15 |
-
|
16 |
-
// Reset the spammer log.
|
17 |
-
add_action( 'wp_ajax_reset_log', array( $this, 'wp_ajax_reset_log' ) );
|
18 |
-
|
19 |
-
// Get the location of an IP.
|
20 |
-
add_action( 'wp_ajax_get_location', array( $this, 'wp_ajax_get_location' ) );
|
21 |
-
|
22 |
-
// Get spam by IP.
|
23 |
-
add_action( 'wp_ajax_get_ip_spam', array( $this, 'wp_ajax_get_ip_spam' ) );
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Uses wp_ajax_(action).
|
28 |
-
*
|
29 |
-
* AJAX function to block a user's IP address.
|
30 |
-
*
|
31 |
-
* @since 2.0.0
|
32 |
-
*
|
33 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
34 |
-
*/
|
35 |
-
public function wp_ajax_block_ip() {
|
36 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
37 |
-
|
38 |
-
if ( ! $_POST['zerospam-type'] == 'temporary' ) {
|
39 |
-
$start_date = false;
|
40 |
-
$end_date = false;
|
41 |
-
} else {
|
42 |
-
$start_date = date( 'Y-m-d G:i:s', strtotime(
|
43 |
-
$_POST['zerospam-startdate-year'] . '-' .
|
44 |
-
$_POST['zerospam-startdate-month'] . '-' .
|
45 |
-
$_POST['zerospam-startdate-day']
|
46 |
-
));
|
47 |
-
|
48 |
-
$end_date = date( 'Y-m-d G:i:s', strtotime(
|
49 |
-
$_POST['zerospam-enddate-year'] . '-' .
|
50 |
-
$_POST['zerospam-enddate-month'] . '-' .
|
51 |
-
$_POST['zerospam-enddate-day']
|
52 |
-
));
|
53 |
-
}
|
54 |
-
|
55 |
-
$reason = isset( $_POST['zerospam-reason'] ) ? $_POST['zerospam-reason'] : NULL;
|
56 |
-
|
57 |
-
// Add/update the blocked IP.
|
58 |
-
zerospam_block_ip( array(
|
59 |
-
'ip' => $_POST['zerospam-ip'],
|
60 |
-
'type' => $_POST['zerospam-type'],
|
61 |
-
'start_date' => $start_date,
|
62 |
-
'end_date' => $end_date,
|
63 |
-
'reason' => $reason,
|
64 |
-
));
|
65 |
-
|
66 |
-
die();
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Uses wp_ajax_(action).
|
71 |
-
*
|
72 |
-
* Renders the block IP form.
|
73 |
-
*
|
74 |
-
* @since 2.0.0
|
75 |
-
*
|
76 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
77 |
-
*/
|
78 |
-
public function wp_ajax_block_ip_form() {
|
79 |
-
global $wpdb;
|
80 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
81 |
-
|
82 |
-
$ajax_nonce = wp_create_nonce( 'zero-spam' );
|
83 |
-
|
84 |
-
$date = new DateTime();
|
85 |
-
$end_date = $date->modify('+1 day');
|
86 |
-
|
87 |
-
$start_date_year = date( 'Y' );
|
88 |
-
$start_date_month = date( 'n' );
|
89 |
-
$start_date_day = date( 'd' );
|
90 |
-
|
91 |
-
$end_date_year = $end_date->format( 'Y' );
|
92 |
-
$end_date_month = $end_date->format( 'n' );
|
93 |
-
$end_date_day = $end_date->format( 'd' );
|
94 |
-
|
95 |
-
if ( isset( $_REQUEST['ip'] ) ) {
|
96 |
-
$ip = $_REQUEST['ip'];
|
97 |
-
$data = zerospam_get_blocked_ip( $_REQUEST['ip'] );
|
98 |
-
|
99 |
-
if ( $data ) {
|
100 |
-
if ( $data->start_date ) {
|
101 |
-
list( $start_date_year, $start_date_month, $start_date_day ) = explode( '-', $data->start_date );
|
102 |
-
}
|
103 |
-
if ( $data->end_date ) {
|
104 |
-
list( $end_date_year, $end_date_month, $end_date_day ) = explode( '-', $data->end_date );
|
105 |
-
}
|
106 |
-
}
|
107 |
-
}
|
108 |
-
|
109 |
-
/**
|
110 |
-
* Include the block IP form.
|
111 |
-
*/
|
112 |
-
require_once( ZEROSPAM_ROOT . 'tpl' . DIRECTORY_SEPARATOR . 'block-ip-form.php' );
|
113 |
-
|
114 |
-
die();
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Uses wp_ajax_(action).
|
119 |
-
*
|
120 |
-
* Get the blocked IP data.
|
121 |
-
*
|
122 |
-
* @since 2.0.0
|
123 |
-
*
|
124 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
125 |
-
*/
|
126 |
-
public function wp_ajax_get_blocked_ip() {
|
127 |
-
global $wpdb;
|
128 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
129 |
-
|
130 |
-
$ajax_nonce = wp_create_nonce( 'zero-spam' );
|
131 |
-
$ip = $_REQUEST['ip'];
|
132 |
-
$data = zerospam_get_blocked_ip( $ip );
|
133 |
-
|
134 |
-
if ( $data ) {
|
135 |
-
$data->is_blocked = zerospam_is_blocked( $ip );
|
136 |
-
$data->start_date_txt = date( 'l, F j, Y', strtotime( $data->start_date ) );
|
137 |
-
$data->end_date_txt = date( 'l, F j, Y', strtotime( $data->end_date ) );
|
138 |
-
|
139 |
-
echo json_encode( (array) $data );
|
140 |
-
}
|
141 |
-
|
142 |
-
die();
|
143 |
-
}
|
144 |
-
|
145 |
-
/**
|
146 |
-
* Uses wp_ajax_(action).
|
147 |
-
*
|
148 |
-
* Deletes a IP block.
|
149 |
-
*
|
150 |
-
* @since 2.0.0
|
151 |
-
*
|
152 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
153 |
-
*/
|
154 |
-
public function wp_ajax_trash_ip_block() {
|
155 |
-
global $wpdb;
|
156 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
157 |
-
|
158 |
-
$ip = $_REQUEST['ip'];
|
159 |
-
zerospam_delete_blocked_ip( $ip );
|
160 |
-
|
161 |
-
die();
|
162 |
-
}
|
163 |
-
|
164 |
-
/**
|
165 |
-
* Uses wp_ajax_(action).
|
166 |
-
*
|
167 |
-
* Resets the spammer log.
|
168 |
-
*
|
169 |
-
* @since 2.0.0
|
170 |
-
*
|
171 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
172 |
-
*/
|
173 |
-
public function wp_ajax_reset_log() {
|
174 |
-
global $wpdb;
|
175 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
176 |
-
|
177 |
-
zerospam_reset_log();
|
178 |
-
die();
|
179 |
-
}
|
180 |
-
|
181 |
-
/**
|
182 |
-
* Uses wp_ajax_(action).
|
183 |
-
*
|
184 |
-
* Get location data from IP.
|
185 |
-
*
|
186 |
-
* @since 2.0.0
|
187 |
-
*
|
188 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
189 |
-
*/
|
190 |
-
public function wp_ajax_get_location() {
|
191 |
-
global $wpdb;
|
192 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
193 |
-
|
194 |
-
$ip = $_REQUEST['ip'];
|
195 |
-
echo json_encode( zerospam_get_ip_info( $ip ) );
|
196 |
-
|
197 |
-
die();
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Uses wp_ajax_(action).
|
202 |
-
*
|
203 |
-
* Get's spam by IP.
|
204 |
-
*
|
205 |
-
* @since 2.0.0
|
206 |
-
*
|
207 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
|
208 |
-
*/
|
209 |
-
public function wp_ajax_get_ip_spam() {
|
210 |
-
global $wpdb;
|
211 |
-
check_ajax_referer( 'zero-spam', 'security' );
|
212 |
-
|
213 |
-
// $spam = zerospam_get_spam();
|
214 |
-
$spam = zerospam_all_spam_ary();
|
215 |
-
$spam = $spam['by_spam_count'];
|
216 |
-
$return = array(
|
217 |
-
'by_country' => array(),
|
218 |
-
'by_lat_long' => array()
|
219 |
-
);
|
220 |
-
|
221 |
-
// API usage limit protection.
|
222 |
-
$limit = 10;
|
223 |
-
$cnt = 0;
|
224 |
-
foreach ( $spam as $key => $obj ) {
|
225 |
-
$cnt++;
|
226 |
-
if ( $cnt > 10 ) {
|
227 |
-
break;
|
228 |
-
}
|
229 |
-
$loc = zerospam_get_ip_info( $obj->ip );
|
230 |
-
|
231 |
-
if ( $loc ) {
|
232 |
-
if ( ! isset( $return['by_country'][ $loc->country_code ] ) ) {
|
233 |
-
$return['by_country'][ $loc->country_code ] = array(
|
234 |
-
'count' => 0,
|
235 |
-
'name' => $loc->country_name
|
236 |
-
);
|
237 |
-
}
|
238 |
-
$return['by_country'][ $loc->country_code ]['count']++;
|
239 |
-
|
240 |
-
if ( ! isset( $return['by_lat_long'][ $obj->ip ] ) ) {
|
241 |
-
$return['by_lat_long'][ $obj->ip ] = array(
|
242 |
-
'latLng' => array( $loc->latitude, $loc->longitude ),
|
243 |
-
'name' => $loc->country_name,
|
244 |
-
'count' => 1
|
245 |
-
);
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
sleep(1);
|
250 |
-
}
|
251 |
-
|
252 |
-
arsort( $return['by_country'] );
|
253 |
-
|
254 |
-
echo json_encode( $return );
|
255 |
-
|
256 |
-
die();
|
257 |
-
}
|
258 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/BuddyPress.php
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_BuddyPress extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_action( 'bp_signup_validate', array( $this, 'bp_signup_validate' ) );
|
5 |
-
}
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Preprocess comment fields.
|
9 |
-
*
|
10 |
-
* An action hook that is applied to the comment data prior to any other processing of the
|
11 |
-
* comment's information when saving a comment data to the database.
|
12 |
-
*
|
13 |
-
* @since 2.0.0
|
14 |
-
*
|
15 |
-
* @link http://etivite.com/api-hooks/buddypress/trigger/do_action/bp_signup_validate/
|
16 |
-
*/
|
17 |
-
public function bp_signup_validate() {
|
18 |
-
global $bp;
|
19 |
-
|
20 |
-
if ( ! zerospam_is_valid() ) {
|
21 |
-
do_action( 'zero_spam_found_spam_buddypress_registration' );
|
22 |
-
|
23 |
-
if ( isset( $this->settings['log_spammers'] ) && ( '1' == $this->settings['log_spammers'] ) ) {
|
24 |
-
zerospam_log_spam( 'buddypress-registration' );
|
25 |
-
}
|
26 |
-
|
27 |
-
die( __( $this->settings['buddypress_msg_registration'], 'zerospam' ) );
|
28 |
-
}
|
29 |
-
}
|
30 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Comments.php
DELETED
@@ -1,68 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ZeroSpam_Comments library
|
4 |
-
*
|
5 |
-
* Processes comments for spam.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Comments
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Processes comments.
|
19 |
-
*
|
20 |
-
* This library process user comments and checks for spam.
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
*/
|
24 |
-
class ZeroSpam_Comments extends ZeroSpam_Plugin
|
25 |
-
{
|
26 |
-
/**
|
27 |
-
* Runs the library.
|
28 |
-
*
|
29 |
-
* Initializes & runs the ZeroSpam_Comments library.
|
30 |
-
*
|
31 |
-
* @since 1.0.0
|
32 |
-
*
|
33 |
-
* @see add_action
|
34 |
-
*/
|
35 |
-
public function run()
|
36 |
-
{
|
37 |
-
add_action( 'preprocess_comment', array( $this, 'preprocess_comment' ) );
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Preprocess comment fields.
|
42 |
-
*
|
43 |
-
* An action hook that is applied to the comment data prior to any other processing of the
|
44 |
-
* comment's information when saving a comment data to the database.
|
45 |
-
*
|
46 |
-
* @since 2.0.0
|
47 |
-
*
|
48 |
-
* @link http://codex.wordpress.org/Plugin_API/Filter_Reference/preprocess_comment
|
49 |
-
*/
|
50 |
-
public function preprocess_comment( $commentdata )
|
51 |
-
{
|
52 |
-
if (
|
53 |
-
( is_user_logged_in() && current_user_can( 'moderate_comments' ) ) ||
|
54 |
-
( zerospam_is_valid() )
|
55 |
-
) {
|
56 |
-
// Allow moderaters to post comments.
|
57 |
-
return $commentdata;
|
58 |
-
}
|
59 |
-
|
60 |
-
do_action( 'zero_spam_found_spam_comment', $commentdata );
|
61 |
-
|
62 |
-
if ( ! empty( $this->settings['log_spammers'] ) && $this->settings['log_spammers'] ) {
|
63 |
-
zerospam_log_spam( 'comment' );
|
64 |
-
}
|
65 |
-
|
66 |
-
die( __( $this->settings['spammer_msg_comment'], 'zerospam' ) );
|
67 |
-
}
|
68 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/ContactForm7.php
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_ContactForm7 extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_action( 'wpcf7_validate', array( $this, 'wpcf7_validate' ) );
|
5 |
-
}
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Validate Contact Form 7 form submissions.
|
9 |
-
*
|
10 |
-
* Validates the Contact Form 7 (https://wordpress.org/plugins/contact-form-7/)
|
11 |
-
* form submission, and flags the form submission as invalid if the zero-spam
|
12 |
-
* post data isn't present.
|
13 |
-
*
|
14 |
-
* @since 2.0.0
|
15 |
-
*
|
16 |
-
*/
|
17 |
-
public function wpcf7_validate( $result ) {
|
18 |
-
if ( ! zerospam_is_valid() ) {
|
19 |
-
do_action( 'zero_spam_found_spam_cf7_form_submission' );
|
20 |
-
|
21 |
-
// Temp. fix for the following issue: http://contactform7.com/2015/01/06/contact-form-7-41-beta/
|
22 |
-
echo __( $this->settings['spammer_msg_contact_form_7'], 'zerospam' );
|
23 |
-
|
24 |
-
zerospam_log_spam( 'cf7' );
|
25 |
-
die();
|
26 |
-
}
|
27 |
-
|
28 |
-
return $result;
|
29 |
-
}
|
30 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/GravityForms.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_GravityForms extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_action( 'gform_pre_submission', array( $this, 'gform_pre_submission' ) );
|
5 |
-
}
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Validate Gravity Form submissions.
|
9 |
-
*
|
10 |
-
* @since 2.0.0
|
11 |
-
*
|
12 |
-
* @link https://www.gravityhelp.com/documentation/article/gform_pre_submission/
|
13 |
-
*/
|
14 |
-
public function gform_pre_submission( $form ) {
|
15 |
-
if ( ! zerospam_is_valid() ) {
|
16 |
-
do_action( 'zero_spam_found_spam_gf_form_submission' );
|
17 |
-
zerospam_log_spam( 'gf' );
|
18 |
-
die( __( $this->settings['spammer_msg_gf'], 'zerospam' ) );
|
19 |
-
}
|
20 |
-
}
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Install.php
DELETED
@@ -1,204 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ZeroSpam_Install library
|
4 |
-
*
|
5 |
-
* Runs when the plugin is activated.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Install
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Installs the Zero Spam plugin.
|
19 |
-
*
|
20 |
-
* This library creates all of the required tables and sets the initial
|
21 |
-
* settings.
|
22 |
-
*
|
23 |
-
* @since 1.0.0
|
24 |
-
*
|
25 |
-
* @see ZeroSpam_Plugin
|
26 |
-
*/
|
27 |
-
class ZeroSpam_Install extends ZeroSpam_Plugin
|
28 |
-
{
|
29 |
-
const DB_VERSION = '2.0';
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Runs the library.
|
33 |
-
*
|
34 |
-
* Initializes & runs the ZeroSpam_Install library.
|
35 |
-
*
|
36 |
-
* @since 1.0.0
|
37 |
-
*
|
38 |
-
* @see register_activation_hook
|
39 |
-
* @see add_action
|
40 |
-
* @global string ZEROSPAM_PLUGIN The plugin root directory.
|
41 |
-
*/
|
42 |
-
public function run()
|
43 |
-
{
|
44 |
-
|
45 |
-
// Called when the plugin is activated.
|
46 |
-
register_activation_hook( ZEROSPAM_PLUGIN, array( $this, 'activate' ) );
|
47 |
-
|
48 |
-
// This hook is called once any activated plugins have been loaded.
|
49 |
-
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Sets the plugin's default options.
|
54 |
-
*
|
55 |
-
* When the plugin is activated, this is ran to set/update the plugin default
|
56 |
-
* options.
|
57 |
-
*
|
58 |
-
* @since 1.0.0
|
59 |
-
*
|
60 |
-
* @see is_plugin_active_for_network
|
61 |
-
* @see plugin_basename
|
62 |
-
* @see update_site_option
|
63 |
-
* @see update_option
|
64 |
-
* @global string ZEROSPAM_PLUGIN The plugin root directory.
|
65 |
-
*/
|
66 |
-
private function activate()
|
67 |
-
{
|
68 |
-
// Install the DB tables.
|
69 |
-
$this->install();
|
70 |
-
|
71 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) )
|
72 |
-
{
|
73 |
-
|
74 |
-
// Set the network's site default settings.
|
75 |
-
update_site_option( 'zerospam_general_settings', $this->default_settings );
|
76 |
-
}
|
77 |
-
else
|
78 |
-
{
|
79 |
-
|
80 |
-
// Set the site default settings.
|
81 |
-
update_option( 'zerospam_general_settings', $this->default_settings );
|
82 |
-
}
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Installs plugin tables.
|
87 |
-
*
|
88 |
-
* Installs all of the required plugin tables.
|
89 |
-
*
|
90 |
-
* @since 2.0.0
|
91 |
-
* @access private
|
92 |
-
*
|
93 |
-
* @see wpdb::get_row
|
94 |
-
* @see dbDelta
|
95 |
-
* @see update_option
|
96 |
-
* @global string ZEROSPAM_PLUGIN The plugin root directory.
|
97 |
-
*/
|
98 |
-
private function install()
|
99 |
-
{
|
100 |
-
global $wpdb;
|
101 |
-
|
102 |
-
// Define the plugin table names.
|
103 |
-
$log_table_name = $wpdb->prefix . 'zerospam_log';
|
104 |
-
$ip_table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
105 |
-
$ip_data_table_name = $wpdb->prefix . 'zerospam_ip_data';
|
106 |
-
|
107 |
-
// Get the plugin database version.
|
108 |
-
$current_version = get_option( 'zerospam_db_version' );
|
109 |
-
|
110 |
-
// If no version available, first time install.
|
111 |
-
if ( empty( $current_version ) )
|
112 |
-
{
|
113 |
-
/*
|
114 |
-
* We'll set the default character set and collation for this table.
|
115 |
-
* If we don't do this, some characters could end up being converted
|
116 |
-
* to just ?'s when saved in our table.
|
117 |
-
*/
|
118 |
-
$charset_collate = $wpdb->get_charset_collate();
|
119 |
-
|
120 |
-
// Prepare the DB queries.
|
121 |
-
$sql = false;
|
122 |
-
|
123 |
-
// Check for the log table. If not available, create it.
|
124 |
-
if ( $wpdb->get_var( 'SHOW TABLES LIKE \'' . $log_table_name . '\'') != $log_table_name )
|
125 |
-
{
|
126 |
-
$sql = "CREATE TABLE $log_table_name (
|
127 |
-
zerospam_id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
|
128 |
-
type varchar(255) NOT NULL DEFAULT 'Undefined Form',
|
129 |
-
ip varchar(15) NOT NULL,
|
130 |
-
date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
131 |
-
page varchar(255) DEFAULT NULL,
|
132 |
-
PRIMARY KEY (zerospam_id),
|
133 |
-
KEY type (type)
|
134 |
-
) $charset_collate;";
|
135 |
-
}
|
136 |
-
|
137 |
-
// Check for the IP table. . If not available, create it.
|
138 |
-
if ( $wpdb->get_var( 'SHOW TABLES LIKE \'' . $ip_table_name . '\'' ) != $ip_table_name )
|
139 |
-
{
|
140 |
-
$sql .= "CREATE TABLE $ip_table_name (
|
141 |
-
zerospam_ip_id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
|
142 |
-
ip varchar(15) NOT NULL,
|
143 |
-
type enum('permanent','temporary') NOT NULL DEFAULT 'temporary',
|
144 |
-
start_date datetime DEFAULT NULL,
|
145 |
-
end_date datetime DEFAULT NULL,
|
146 |
-
reason varchar(255) DEFAULT NULL,
|
147 |
-
PRIMARY KEY (zerospam_ip_id),
|
148 |
-
UNIQUE KEY ip (ip)
|
149 |
-
) $charset_collate;";
|
150 |
-
}
|
151 |
-
|
152 |
-
// Run the query is set.
|
153 |
-
if ( $sql )
|
154 |
-
{
|
155 |
-
/**
|
156 |
-
* Rather than executing an SQL query directly, we'll use the dbDelta
|
157 |
-
* function in wp-admin/includes/upgrade.php.
|
158 |
-
*/
|
159 |
-
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
160 |
-
dbDelta( $sql );
|
161 |
-
}
|
162 |
-
|
163 |
-
// Set the plugin DB version.
|
164 |
-
update_option( 'zerospam_db_version', self::DB_VERSION );
|
165 |
-
}
|
166 |
-
|
167 |
-
// Check for available DB updates.
|
168 |
-
elseif ( $current_version != self::DB_VERSION )
|
169 |
-
{
|
170 |
-
// 2.0 Updates.
|
171 |
-
if ( version_compare( '2.0', $current_version ) ) {
|
172 |
-
$wpdb->query( "ALTER TABLE `$log_table_name` CHANGE `type` `type` VARCHAR(255) NOT NULL DEFAULT 'Undefined Form';" );
|
173 |
-
}
|
174 |
-
|
175 |
-
// Set the updated plugin DB version.
|
176 |
-
update_option( 'zerospam_db_version', self::DB_VERSION );
|
177 |
-
}
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* Checks for outdated DB tables.
|
182 |
-
*
|
183 |
-
* This hook is called once any activated plugins have been loaded. Is
|
184 |
-
* generally used for immediate filter setup, or plugin overrides.
|
185 |
-
*
|
186 |
-
* @since 2.0.0
|
187 |
-
* @access private
|
188 |
-
*
|
189 |
-
* @see get_option
|
190 |
-
* @see dbDelta
|
191 |
-
* @see update_option
|
192 |
-
* @see ZeroSpam_Install::install
|
193 |
-
* @global string ZEROSPAM_PLUGIN The plugin root directory.
|
194 |
-
*/
|
195 |
-
public function plugins_loaded()
|
196 |
-
{
|
197 |
-
if ( get_option( 'zerospam_db_version' ) != self::DB_VERSION )
|
198 |
-
{
|
199 |
-
|
200 |
-
// If version outdated, upgrade.
|
201 |
-
$this->install();
|
202 |
-
}
|
203 |
-
}
|
204 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/NinjaForms.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_NinjaForms extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_action( 'init', array( $this, 'init' ) );
|
5 |
-
}
|
6 |
-
|
7 |
-
public function init() {
|
8 |
-
add_action( 'ninja_forms_process', array( $this, 'ninja_forms_process' ) );
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Validate Ninja Forms submissions.
|
13 |
-
*
|
14 |
-
* Validates the Ninja Forms (https://wordpress.org/plugins/ninja-forms/)
|
15 |
-
* form submission, and flags the form submission as invalid if the zero-spam
|
16 |
-
* post data isn't present.
|
17 |
-
*
|
18 |
-
* @link http://docs.ninjaforms.com/article/105-ninjaformsprocess
|
19 |
-
* @since 2.0.0
|
20 |
-
*
|
21 |
-
*/
|
22 |
-
public function ninja_forms_process() {
|
23 |
-
if ( ! zerospam_is_valid() ) {
|
24 |
-
do_action( 'zero_spam_found_spam_nf_form_submission' );
|
25 |
-
|
26 |
-
if ( ! empty( $this->settings['log_spammers'] ) && $this->settings['log_spammers'] ) {
|
27 |
-
zerospam_log_spam( 'nf' );
|
28 |
-
}
|
29 |
-
|
30 |
-
die( __( $this->settings['spammer_msg_nf'], 'zerospam' ) );
|
31 |
-
}
|
32 |
-
}
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Plugin.php
DELETED
@@ -1,141 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ZeroSpam_Plugin library
|
4 |
-
*
|
5 |
-
* Sets up the plugin and initializes all ZeroSpam libraries.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Plugin
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Initializes the Zero Spam plugin.
|
19 |
-
*
|
20 |
-
* This library creates defines the default settings & initializes all
|
21 |
-
* available plugin libraries.
|
22 |
-
*
|
23 |
-
* @since 1.0.0
|
24 |
-
*/
|
25 |
-
class ZeroSpam_Plugin implements ArrayAccess
|
26 |
-
{
|
27 |
-
protected $contents;
|
28 |
-
public $settings = array();
|
29 |
-
|
30 |
-
public $default_settings = array(
|
31 |
-
'spammer_msg_comment' => 'There was a problem processing your comment.',
|
32 |
-
'spammer_msg_registration' => '<strong>ERROR</strong>: There was a problem processing your registration.',
|
33 |
-
'spammer_msg_contact_form_7' => 'There was a problem processing your comment.',
|
34 |
-
'spammer_msg_gf' => 'There was a problem processing your submission.',
|
35 |
-
'spammer_msg_bp' => 'There was a problem processing your registration.',
|
36 |
-
'spammer_msg_nf' => 'There was a problem processing your submission.',
|
37 |
-
'blocked_ip_msg' => 'Access denied.',
|
38 |
-
'wp_generator' => 1,
|
39 |
-
'log_spammers' => 1,
|
40 |
-
'ip_location_support' => 1,
|
41 |
-
'registration_support' => 1,
|
42 |
-
'cf7_support' => 1,
|
43 |
-
'gf_support' => 1,
|
44 |
-
'nf_support' => 1,
|
45 |
-
'wpf_support' => 1,
|
46 |
-
'comment_support' => 1,
|
47 |
-
);
|
48 |
-
|
49 |
-
public function __construct() {
|
50 |
-
$this->contents = array();
|
51 |
-
|
52 |
-
$this->load_settings();
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* Runs the library.
|
57 |
-
*
|
58 |
-
* Initializes & runs the ZeroSpam_Plugin library.
|
59 |
-
*
|
60 |
-
* @since 1.0.0
|
61 |
-
*
|
62 |
-
* @see register_activation_hook
|
63 |
-
* @see add_action
|
64 |
-
*/
|
65 |
-
public function run() {
|
66 |
-
foreach( $this->contents as $key => $content ){ // Loop on contents
|
67 |
-
if( is_callable($content) ){
|
68 |
-
$content = $this[$key];
|
69 |
-
}
|
70 |
-
if( is_object( $content ) ){
|
71 |
-
$reflection = new ReflectionClass( $content );
|
72 |
-
if( $reflection->hasMethod( 'run' ) ){
|
73 |
-
$content->run(); // Call run method on object
|
74 |
-
}
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
|
79 |
-
|
80 |
-
if ( is_plugin_active_for_network( plugin_basename( ZEROSPAM_PLUGIN ) ) ) {
|
81 |
-
add_filter( 'network_admin_plugin_action_links_' . plugin_basename( ZEROSPAM_PLUGIN ), array( $this, 'plugin_action_links' ) );
|
82 |
-
} else {
|
83 |
-
add_filter( 'plugin_action_links_' . plugin_basename( ZEROSPAM_PLUGIN ), array( $this, 'plugin_action_links' ) );
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Add setting link to plugin.
|
89 |
-
*
|
90 |
-
* Applied to the list of links to display on the plugins page (beside the activate/deactivate links).
|
91 |
-
*
|
92 |
-
* @since 2.0.0
|
93 |
-
*
|
94 |
-
* @link http://codex.wordpress.org/Plugin_API/Filter_Reference/plugin_action_links_(plugin_file_name)
|
95 |
-
*/
|
96 |
-
public function plugin_action_links( $links ) {
|
97 |
-
$link = array( '<a href="' . zerospam_admin_url() . '?page=zerospam">' . __( 'Settings', 'zerospam' ) . '</a>' );
|
98 |
-
|
99 |
-
return array_merge( $links, $link );
|
100 |
-
}
|
101 |
-
|
102 |
-
public function load_settings() {
|
103 |
-
$this->settings = zerospam_settings();
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Plugin meta links.
|
108 |
-
*
|
109 |
-
* Adds links to the plugins meta.
|
110 |
-
*
|
111 |
-
* @since 2.0.0
|
112 |
-
*
|
113 |
-
* @link http://codex.wordpress.org/Plugin_API/Filter_Reference/preprocess_comment
|
114 |
-
*/
|
115 |
-
public function plugin_row_meta( $links, $file ) {
|
116 |
-
if ( false !== strpos( $file, 'zero-spam.php' ) ) {
|
117 |
-
$links = array_merge( $links, array( '<a href="https://benmarshall.me/wordpress-zero-spam-plugin/">Documentation</a>' ) );
|
118 |
-
$links = array_merge( $links, array( 'Want to see continued improvements? <a href="https://www.gittip.com/bmarshall511/" target="_blank"><b>Donate!</b></a>' ) );
|
119 |
-
}
|
120 |
-
return $links;
|
121 |
-
}
|
122 |
-
|
123 |
-
public function offsetSet( $offset, $value ) {
|
124 |
-
$this->contents[$offset] = $value;
|
125 |
-
}
|
126 |
-
|
127 |
-
public function offsetExists($offset) {
|
128 |
-
return isset( $this->contents[$offset] );
|
129 |
-
}
|
130 |
-
|
131 |
-
public function offsetUnset($offset) {
|
132 |
-
unset( $this->contents[$offset] );
|
133 |
-
}
|
134 |
-
|
135 |
-
public function offsetGet($offset) {
|
136 |
-
if( is_callable($this->contents[$offset]) ){
|
137 |
-
return call_user_func( $this->contents[$offset], $this );
|
138 |
-
}
|
139 |
-
return isset( $this->contents[$offset] ) ? $this->contents[$offset] : null;
|
140 |
-
}
|
141 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Registration.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_Registration extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_filter( 'registration_errors', array( $this, 'preprocess_registration' ), 10, 3 );
|
5 |
-
}
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Pre-process registration fields.
|
9 |
-
*
|
10 |
-
* Used to create custom validation rules on user registration. This fires
|
11 |
-
* when the form is submitted but before user information is saved to the
|
12 |
-
* database.
|
13 |
-
*
|
14 |
-
* @since 2.0.0
|
15 |
-
*
|
16 |
-
* @link http://codex.wordpress.org/Plugin_API/Action_Reference/register_post
|
17 |
-
*/
|
18 |
-
public function preprocess_registration( $errors, $sanitized_user_login, $user_email ) {
|
19 |
-
if ( ! isset( $_POST['zerospam_key'] ) || ( $_POST['zerospam_key'] != zerospam_get_key() ) ) {
|
20 |
-
do_action( 'zero_spam_found_spam_registration', $errors, $sanitized_user_login, $user_email );
|
21 |
-
|
22 |
-
if ( isset( $this->settings['log_spammers'] ) && ( '1' == $this->settings['log_spammers'] ) ) {
|
23 |
-
zerospam_log_spam( 'registration' );
|
24 |
-
}
|
25 |
-
|
26 |
-
$errors->add( 'spam_error', __( $this->settings['spammer_msg_registration'], 'zerospam' ) );
|
27 |
-
}
|
28 |
-
|
29 |
-
return $errors;
|
30 |
-
}
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/Scripts.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* ZeroSpam_Comments library
|
4 |
-
*
|
5 |
-
* Processes comments for spam.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Comments
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
|
17 |
-
/**
|
18 |
-
* CSS & JS scripts.
|
19 |
-
*
|
20 |
-
* Registers plugin CSS & JS scripts.
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
*/
|
24 |
-
class ZeroSpam_Scripts
|
25 |
-
{
|
26 |
-
/**
|
27 |
-
* Runs the library.
|
28 |
-
*
|
29 |
-
* Initializes & runs the ZeroSpam_Scripts library.
|
30 |
-
*
|
31 |
-
* @since 1.0.0
|
32 |
-
*
|
33 |
-
* @see add_action
|
34 |
-
*/
|
35 |
-
public function run()
|
36 |
-
{
|
37 |
-
add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ) );
|
38 |
-
add_action( 'login_footer', array( $this, 'wp_enqueue_scripts' ) );
|
39 |
-
}
|
40 |
-
|
41 |
-
public function wp_enqueue_scripts() {
|
42 |
-
$this->register_scripts();
|
43 |
-
|
44 |
-
$this->enqueue_scripts();
|
45 |
-
}
|
46 |
-
|
47 |
-
public function register_scripts() {
|
48 |
-
$plugin = get_plugin_data( ZEROSPAM_PLUGIN );
|
49 |
-
|
50 |
-
wp_register_script( 'zerospam', plugins_url( '/js/zerospam.js' , ZEROSPAM_PLUGIN ), array( 'jquery' ), $plugin['Version'], true );
|
51 |
-
}
|
52 |
-
|
53 |
-
public function enqueue_scripts() {
|
54 |
-
wp_localize_script( 'zerospam', 'zerospam', array( 'key' => zerospam_get_key() ) );
|
55 |
-
wp_enqueue_script( 'zerospam' );
|
56 |
-
}
|
57 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/lib/ZeroSpam/WPForms.php
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class ZeroSpam_WPForms extends ZeroSpam_Plugin {
|
3 |
-
public function run() {
|
4 |
-
add_filter( 'wpforms_process_honeypot', array( $this, 'wpforms_process_honeypot' ), 10, 4 );
|
5 |
-
}
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Validate WPForms submissions.
|
9 |
-
*
|
10 |
-
* @since 2.0.3
|
11 |
-
* @param boolean|string $honeypot String triggers honeypot and prevents submission
|
12 |
-
* @param array $fields Form entry fields, raw and not formatted
|
13 |
-
* @param array $entry Form entry $_POST
|
14 |
-
* @param array $form_data Form data
|
15 |
-
*/
|
16 |
-
public function wpforms_process_honeypot( $honeypot, $fields, $entry, $form_data ) {
|
17 |
-
if ( ! zerospam_is_valid() ) {
|
18 |
-
do_action( 'zero_spam_found_spam_wpf_form_submission' );
|
19 |
-
zerospam_log_spam( 'wpf' );
|
20 |
-
return __( 'WordPress Zero Spam honeypot triggered.', 'zerospam' );
|
21 |
-
}
|
22 |
-
return $honeypot;
|
23 |
-
}
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/readme.txt
DELETED
@@ -1,257 +0,0 @@
|
|
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: 3.0.4
|
8 |
-
License: GPLv2 or later
|
9 |
-
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
-
|
11 |
-
Zero Spam makes blocking spam comments a cinch. Install, activate and enjoy a spam-free site. Even supports third-party plugins!
|
12 |
-
|
13 |
-
== Description ==
|
14 |
-
|
15 |
-
**Why should your users prove that they're humans by filling out captchas? Let bots prove they're not bots with the <a href="http://www.benmarshall.me/wordpress-zero-spam-plugin/" target="_blank">WordPress Zero Spam plugin</a>.**
|
16 |
-
|
17 |
-
WordPress Zero Spam blocks registration spam and spam in comments automatically without any additional config or setup. Just install, activate, and enjoy a spam-free site.
|
18 |
-
|
19 |
-
Zero Spam was initially built based on the work by <a href="http://davidwalsh.name/wordpress-comment-spam" target="_blank">David Walsh</a>.
|
20 |
-
|
21 |
-
Major features in WordPress Zero Spam include:
|
22 |
-
|
23 |
-
* **No captcha**, spam isn't a users' problem
|
24 |
-
* **No moderation queues**, spam isn't a administrators' problem
|
25 |
-
* **Blocks 99.9% of spam registrations & comments**
|
26 |
-
* **Supports caching plugins** to help provide great performance
|
27 |
-
* **Blocks spammy IPs** from ever seeing your site
|
28 |
-
* **Extend the plugin** with action hooks
|
29 |
-
* **Theme & plugin integration** for any form on your site
|
30 |
-
* **Optional logging**, so you can see who's trying to spam
|
31 |
-
* **Advanced settings** for complete control
|
32 |
-
|
33 |
-
= Supported Plugins =
|
34 |
-
|
35 |
-
* Contact Form 7
|
36 |
-
* Gravity Form
|
37 |
-
* Ninja Forms
|
38 |
-
* BuddyPress
|
39 |
-
* WPForms
|
40 |
-
|
41 |
-
<em>**Note:** This plugin does not work with Jetpack Comments. For more information, see https://wordpress.org/support/topic/incompatible-with-jetpack-comments.</em>
|
42 |
-
|
43 |
-
**Languages:** English
|
44 |
-
|
45 |
-
If you have suggestions for a new add-on, feel free to email me at me@benmarshall.me. Want regular updates? <a href="https://twitter.com/bmarshall0511">Follow me on Twitter</a> or <a href="http://www.benmarshall.me" target="_blank">visit my blog</a>.
|
46 |
-
|
47 |
-
== Installation ==
|
48 |
-
|
49 |
-
= Plugin Installation =
|
50 |
-
|
51 |
-
1. Upload the `zero-spam` folder to the `/wp-content/plugins/` directory
|
52 |
-
2. Activate the plugin through the 'Plugins' menu in WordPress
|
53 |
-
|
54 |
-
= Theme Integration =
|
55 |
-
|
56 |
-
You can integrate WordPress Zero Spam with any theme or plugin. Just add the class `zerospam` to a `form` element and the following at the beginning of your validation function:
|
57 |
-
|
58 |
-
<?php
|
59 |
-
if ( zerospam_is_valid() ) {
|
60 |
-
// Valid form submission.
|
61 |
-
} else {
|
62 |
-
// Invalid form submission.
|
63 |
-
zerospam_log_spam( 'My Custom Form', 'http://www.myurl.com/custom-form' );
|
64 |
-
}
|
65 |
-
|
66 |
-
For more information and a full list of helpers you can use if your theme or plugin, see the `helpers.php` file.
|
67 |
-
|
68 |
-
== Frequently Asked Questions ==
|
69 |
-
|
70 |
-
= Is JavaScript required for this plugin to work? =
|
71 |
-
|
72 |
-
Yes, that's what does the magic and keeps spam bots out.
|
73 |
-
|
74 |
-
= I keep getting 'There was a problem processing your comment.' =
|
75 |
-
|
76 |
-
Be sure JavaScript is enabled and there are no JS errors.
|
77 |
-
|
78 |
-
= Can I extend the plugin with action hooks? =
|
79 |
-
|
80 |
-
Yes, see below:
|
81 |
-
|
82 |
-
* `zero_spam_found_spam_registration` - Runs after a spam registration is detected
|
83 |
-
* `zero_spam_found_spam_comment` - Runs after a spam comment is detected
|
84 |
-
* `zero_spam_found_spam_cf7_form_submission` - Runs after a spam Contact Form 7 form submission is detected
|
85 |
-
* `zero_spam_found_spam_gf_form_submission` - Runs after a spam Gravity Form submission is detected
|
86 |
-
* `zero_spam_ip_blocked` - Runs after a blocked IP attempts to visit the site
|
87 |
-
* `zero_spam_found_spam_buddypress_registration` - Runs when a BuddyPress spam registration is detected
|
88 |
-
* `zero_spam_found_spam_nf_form_submission` - Runs when a spam Ninja Forms submission is detected
|
89 |
-
* `zero_spam_found_spam_wpf_form_submission` - Runs when a spam WPForms submission is detected
|
90 |
-
|
91 |
-
= Does this plugin support Contact Form 7 forms? =
|
92 |
-
|
93 |
-
Yes! Thanks to @leewillis77.
|
94 |
-
|
95 |
-
= Does this plugin support Gravity Forms forms? =
|
96 |
-
|
97 |
-
Yes! Thanks to @shazahm1.
|
98 |
-
|
99 |
-
= Does this plugin support BuddyPress? =
|
100 |
-
|
101 |
-
Yes!
|
102 |
-
|
103 |
-
= Does this plugin support NinjaForms? =
|
104 |
-
|
105 |
-
Yes!
|
106 |
-
|
107 |
-
= Does this plugin support WPForms? =
|
108 |
-
|
109 |
-
Yes! Thanks to @jaredatch.
|
110 |
-
|
111 |
-
= Does this plugin work with caching plugins like W3 Total Cache? =
|
112 |
-
|
113 |
-
Yes! Thanks to @shazahm1.
|
114 |
-
|
115 |
-
= Does this plugin work with multisite? =
|
116 |
-
|
117 |
-
Yes! Thanks to @afragen. When using with multisite the plugin may be network activated or used individual sub sites.
|
118 |
-
|
119 |
-
= Can I blacklist spammy IPs to CloudFlare? =
|
120 |
-
|
121 |
-
Yes! Install [Sunny](https://wphuman.com/go/sunny/) and follow this [guide](https://wphuman.com/blocking-spam-zero-spam/).
|
122 |
-
|
123 |
-
== Screenshots ==
|
124 |
-
|
125 |
-
== Changelog ==
|
126 |
-
|
127 |
-
= v3.0.4 (November 24, 2016) =
|
128 |
-
* [bug] Fixed IP location lookup issue.
|
129 |
-
* [improvement] Updated the Grunt development tasks.
|
130 |
-
|
131 |
-
= v3.0.3 (November 23, 2016) =
|
132 |
-
* [bug] Fixed issue with settings not getting saved (https://wordpress.org/support/topic/can-unselect-default-options/).
|
133 |
-
* [bug] Fixed PHP notice on Spammer Log page.
|
134 |
-
* [bug] Removed outdated CloudFlare instructions.
|
135 |
-
* [improvement] Made the JS file version dynamic.
|
136 |
-
|
137 |
-
= 3.0.2 =
|
138 |
-
* Fixed fatal error.
|
139 |
-
|
140 |
-
= 3.0.1 =
|
141 |
-
* Added the default options when the plugin is activated.
|
142 |
-
|
143 |
-
= 3.0.0 =
|
144 |
-
* Lots of updates & fixes! Improved code documentation to help promote contributions.
|
145 |
-
|
146 |
-
= 2.2.1 =
|
147 |
-
* Fixed uninstall issue, thanks @thiagolcks (https://github.com/bmarshall511/wordpress-zero-spam/pull/139)
|
148 |
-
|
149 |
-
= 2.2.0 =
|
150 |
-
* Fixed security issue, thanks @thiagolcks (https://github.com/bmarshall511/wordpress-zero-spam/pull/138)
|
151 |
-
|
152 |
-
= 2.1.2 =
|
153 |
-
* Fixed issue with Gravity Forms not working, thanks @karpstrucking & @jaredatch (https://github.com/bmarshall511/wordpress-zero-spam/issues/132)
|
154 |
-
* Updated the repo link on the admin page (https://github.com/bmarshall511/wordpress-zero-spam/issues/124)
|
155 |
-
|
156 |
-
= 2.1.1 =
|
157 |
-
* Minor updates
|
158 |
-
|
159 |
-
= 2.1.0 =
|
160 |
-
* Added support for WPForms (https://github.com/bmarshall511/wordpress-zero-spam/issues/129)
|
161 |
-
|
162 |
-
= 2.0.2 =
|
163 |
-
* Added the 'contactform' id to fix issue with valid comments not getting through (https://wordpress.org/support/topic/false-positives-6)
|
164 |
-
* Updated readme file
|
165 |
-
|
166 |
-
= 2.0.1 =
|
167 |
-
* Updates to the readme file
|
168 |
-
* Fixed Contact Form issue forcing users to submit twice (https://github.com/bmarshall511/wordpress-zero-spam/issues/118)
|
169 |
-
|
170 |
-
= 2.0.0 =
|
171 |
-
* Added CloudFlare instructions (https://github.com/bmarshall511/wordpress-zero-spam/pull/107)
|
172 |
-
* Added ability to integrate with any theme or plugin (https://github.com/bmarshall511/wordpress-zero-spam/issues/116)
|
173 |
-
* Added support for Ninja Forms (https://github.com/bmarshall511/wordpress-zero-spam/issues/114)
|
174 |
-
* Complete rewrite of plugin code & structure
|
175 |
-
* Added plugin icon
|
176 |
-
|
177 |
-
= 1.6.0 =
|
178 |
-
* Made minor modification on how spam comments are detected. Tested & verified working as expected.
|
179 |
-
* Changed how Gravity Forms spam is detected. Needs to be tested & verified.
|
180 |
-
|
181 |
-
= 1.5.4 =
|
182 |
-
* Fixed issue with CF7 validation in the latest version - 4.1 (https://wordpress.org/support/topic/contact-form-7-version-41-no-longer-prevents-spam-using-wp-zero-spam?replies=4)
|
183 |
-
|
184 |
-
= 1.5.3 =
|
185 |
-
* Fixed Gravity Form issues (https://github.com/bmarshall511/wordpress-zero-spam/issues/101)
|
186 |
-
|
187 |
-
= 1.5.2 =
|
188 |
-
* Added IP location service (https://github.com/bmarshall511/wordpress-zero-spam/issues/84)
|
189 |
-
* Improved pagination (https://github.com/bmarshall511/wordpress-zero-spam/issues/91)
|
190 |
-
* Made date/times match site's WP time, not servers (https://github.com/bmarshall511/wordpress-zero-spam/issues/89)
|
191 |
-
* Removed the banner image to boost performance (https://github.com/bmarshall511/wordpress-zero-spam/issues/86)
|
192 |
-
* Enhancements to the admin JS to boost performance
|
193 |
-
* Works with Multisite as network activated or per sub site (https://github.com/bmarshall511/wordpress-zero-spam/issues/85)
|
194 |
-
* Added BuddyPress support (https://github.com/bmarshall511/wordpress-zero-spam/issues/61)
|
195 |
-
|
196 |
-
= 1.5.1 =
|
197 |
-
* Added missing code documentation and fixed typos (https://github.com/bmarshall511/wordpress-zero-spam/issues/64)
|
198 |
-
* Fixed issue with settings not getting initially saved when the plugin is activated. (https://github.com/bmarshall511/wordpress-zero-spam/issues/69)
|
199 |
-
* Added ability to auto block spam IPs (https://github.com/bmarshall511/wordpress-zero-spam/issues/71)
|
200 |
-
* Added paging to spammer log and blocked IPs (https://github.com/bmarshall511/wordpress-zero-spam/issues/60)
|
201 |
-
* Added additional stats and graphs (https://github.com/bmarshall511/wordpress-zero-spam/issues/75)
|
202 |
-
* Fixed issue with comment moderators not being able to reply to comments (https://github.com/bmarshall511/wordpress-zero-spam/issues/74)
|
203 |
-
* Fix issue with DB errors when first activating plugin (https://github.com/bmarshall511/wordpress-zero-spam/issues/80)
|
204 |
-
|
205 |
-
= 1.5.0 =
|
206 |
-
* Switched to using a nonce to validate form submissions that support WordPress Zero Spam
|
207 |
-
* Added Zero Spam plugin settings page for advanced control
|
208 |
-
* Fix for for non-logged in users (https://github.com/bmarshall511/wordpress-zero-spam/pull/27, thanks @afragen)
|
209 |
-
* Added blank index.php files to prevent directory browsing (https://github.com/bmarshall511/wordpress-zero-spam/pull/24, thanks @TangRufus)
|
210 |
-
* Added uninstall.php (https://github.com/bmarshall511/wordpress-zero-spam/pull/23, thanks @TangRufus)
|
211 |
-
* Addded support for GitHub Updater plugin (https://github.com/bmarshall511/wordpress-zero-spam/pull/21, thanks @afragen)
|
212 |
-
* Added support for Contact Form 7 form submissions (https://github.com/bmarshall511/wordpress-zero-spam/pull/26, thanks @leewillis77)
|
213 |
-
* Added ability to log spam detections
|
214 |
-
* Fix for warnings cause by default settings not being set before actions run (https://github.com/bmarshall511/wordpress-zero-spam/pull/31, thanks @leewillis77)
|
215 |
-
* Installed Compass (http://compass-style.org/)
|
216 |
-
* Added support for Gravity Forms
|
217 |
-
* Fixed potential issue with sites that use caching plugins
|
218 |
-
* Fixed minor typos (thnaks @macbookandrew)
|
219 |
-
|
220 |
-
= 1.4.0 =
|
221 |
-
* Added `zero_spam_found_spam_comment` and `zero_spam_found_spam_registration` action hooks (thanks @tangrufus)
|
222 |
-
* Minor updates to the readme file
|
223 |
-
|
224 |
-
= 1.3.1 - 1.3.3 =
|
225 |
-
* Minor fixes to WP SVN repo
|
226 |
-
|
227 |
-
= 1.3.0 =
|
228 |
-
* Removed Grunt creation of the trunk directory
|
229 |
-
* Added spam detection script to registration form
|
230 |
-
|
231 |
-
= 1.2.1 =
|
232 |
-
* Fixed some typos in the readme.txt file
|
233 |
-
|
234 |
-
= 1.2.0 =
|
235 |
-
* Removed testing for core function testing
|
236 |
-
* Fix for adding comments from admin (thanks @afragen)
|
237 |
-
* Removed unneeded WP svn trunk and tags folders from the git repo (thanks @afragen)
|
238 |
-
|
239 |
-
= 1.1.0 =
|
240 |
-
* Updated theme documentation.
|
241 |
-
* WordPress generator meta tag removed to help hide WordPress sites from spambots.
|
242 |
-
|
243 |
-
= 1.0.0 =
|
244 |
-
* Initial release.
|
245 |
-
|
246 |
-
== Credits ==
|
247 |
-
* Thanks to [David Walsh](http://davidwalsh.name) [@davidwalshblog](https://twitter.com/davidwalshblog) for the inspiration behind this plugin.
|
248 |
-
|
249 |
-
== Contributors ==
|
250 |
-
* [Ben Marshall](https://github.com/bmarshall511)
|
251 |
-
* [Thiago Locks](https://github.com/thiagolcks)
|
252 |
-
* [Andy Fragen](https://github.com/afragen)
|
253 |
-
* [Tang Rufus](https://github.com/TangRufus)
|
254 |
-
* [Lee Willis](https://github.com/leewillis77)
|
255 |
-
* [Andrew Minion](https://github.com/macbookandrew)
|
256 |
-
* [Jared Atchison](https://github.com/jaredatch)
|
257 |
-
* [Lucas Karpiuk](https://github.com/karpstrucking)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/tpl/admin-sidebar.php
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Admin sidebar template
|
4 |
-
*
|
5 |
-
* Outputs the admin sidebar HTML.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Plugin
|
9 |
-
* @since 1.5.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
?>
|
17 |
-
<div class="zero-spam__widget">
|
18 |
-
<div class="zero-spam__inner">
|
19 |
-
<h2><a href="<?php echo esc_url( $plugin['PluginURI'] ); ?>" target="_blank"><?php echo __( $plugin['Name'], 'zerospam' ); ?></a></h2>
|
20 |
-
<p class="zero-spam__description"><b><?php echo __( 'Rate', 'zerospam' ); ?>:</b> <a href="https://wordpress.org/support/view/plugin-reviews/zero-spam" target="_blank"><i class="fa fa-star"></i>
|
21 |
-
<i class="fa fa-star"></i>
|
22 |
-
<i class="fa fa-star"></i>
|
23 |
-
<i class="fa fa-star"></i>
|
24 |
-
<i class="fa fa-star"></i></a> |
|
25 |
-
|
26 |
-
<?php
|
27 |
-
echo sprintf(
|
28 |
-
wp_kses( __( '<b>Version:</b> %s | <b>Author</b> %s', 'zerospam' ), array( 'b' => array() ) ),
|
29 |
-
$plugin['Version'],
|
30 |
-
$plugin['Author']
|
31 |
-
);
|
32 |
-
?>
|
33 |
-
<p><?php echo wp_kses(
|
34 |
-
__( $plugin['Description'], 'zerospam' ),
|
35 |
-
array( 'a' => array( 'href' => array() ) )
|
36 |
-
); ?></p>
|
37 |
-
<p><?php
|
38 |
-
echo sprintf(
|
39 |
-
wp_kses(
|
40 |
-
__( '<small>If you have suggestions for a new add-on, feel free to email me at <a href="%s">me@benmarshall.me</a>. Want regular updates? Follow me on <a href="%s" target="_blank">Twitter</a> or <a href="%s" target="_blank">visit my blog</a>.</small>', 'zero-spam' ),
|
41 |
-
array(
|
42 |
-
'a' => array(
|
43 |
-
'href' => array()
|
44 |
-
),
|
45 |
-
'small' => array()
|
46 |
-
)
|
47 |
-
),
|
48 |
-
esc_url( 'mailto:me@benmarshall.me' ),
|
49 |
-
esc_url( 'https://twitter.com/bmarshall0511' ),
|
50 |
-
esc_url( 'https://benmarshall.me/' ) );
|
51 |
-
?></p>
|
52 |
-
<p>
|
53 |
-
<a href="https://www.gittip.com/bmarshall511/" class="zero-spam__button" target="_blank"><?php _e( 'Show Support — Donate!', 'zerospam' ); ?></a>
|
54 |
-
<a href="https://wordpress.org/support/view/plugin-reviews/zero-spam" class="zero-spam__button" target="_blank"><?php _e( 'Spread the Love — Rate!', 'zerospam' ); ?></a>
|
55 |
-
</p>
|
56 |
-
</div>
|
57 |
-
</div>
|
58 |
-
|
59 |
-
<div class="zero-spam__widget">
|
60 |
-
<div class="zero-spam__inner">
|
61 |
-
<h3><?php _e( 'Are you a WordPress developer?', 'zerospam' ); ?></h3>
|
62 |
-
<p><?php _e( 'Help grow this plugin, integrate into your own or add new features by contributing.', 'zerospam' ); ?></p>
|
63 |
-
<p><a href="https://github.com/bmarshall511/wordpress-zero-spam" target="_blank" class="button button-large button-primary"><?php _e( 'Fork it on GitHub!', 'zerospam' ); ?></a></p>
|
64 |
-
</div>
|
65 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/tpl/block-ip-form.php
DELETED
@@ -1,132 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Block IP form template.
|
4 |
-
*
|
5 |
-
* @since 1.5.0
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
10 |
-
*/
|
11 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
12 |
-
?>
|
13 |
-
<h2><?php echo __( 'Configure Block for', 'zerospam' ); ?> <?php echo $ip; ?></h2>
|
14 |
-
<form method="post" action="options.php" id="zero-spam__block-ip-form">
|
15 |
-
<table class="form-table">
|
16 |
-
<tr>
|
17 |
-
<th><label for="zerospam-ip">IP:</th>
|
18 |
-
<td><input type="text" name="zerospam-ip" id="zerospam-ip" value="<?php echo esc_attr( $ip ); ?>" readonly="readonly" class="regular-text"></td>
|
19 |
-
</tr>
|
20 |
-
<tr>
|
21 |
-
<th><label for="zerospam-type"><?php echo __( 'Type', 'zerospam' ); ?>:</th>
|
22 |
-
<td>
|
23 |
-
<select name="zerospam-type" id="zerospam-type">
|
24 |
-
<option value="temporary"<?php if( isset( $data->type ) && 'temporary' == $data->type ): ?> selected="selected"<?php endif; ?>><?php echo __( 'Temporary', 'zerospam' ); ?></option>
|
25 |
-
<option value="permanent"<?php if( isset( $data->type ) && 'permanent' == $data->type ): ?> selected="selected"<?php endif; ?>><?php echo __( 'Permanent', 'zerospam' ); ?></option>
|
26 |
-
</select>
|
27 |
-
</td>
|
28 |
-
</tr>
|
29 |
-
<tr class="zero-spam__period"<?php if( isset( $data->type ) && 'permanent' == $data->type ): ?> style="display: none;"<?php endif; ?>>
|
30 |
-
<th><label for="zerospam-startdate"><?php echo __( 'Start Date', 'zerospam' ); ?>:</th>
|
31 |
-
<td>
|
32 |
-
<select name="zerospam-startdate-month" id="zerospam-startdate">
|
33 |
-
<option value="1"<?php if( isset( $start_date_month ) && '1' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'January', 'zerospam' ); ?></option>
|
34 |
-
<option value="2"<?php if( isset( $start_date_month ) && '2' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'February', 'zerospam' ); ?></option>
|
35 |
-
<option value="3"<?php if( isset( $start_date_month ) && '3' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'March', 'zerospam' ); ?></option>
|
36 |
-
<option value="4"<?php if( isset( $start_date_month ) && '4' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'April', 'zerospam' ); ?></option>
|
37 |
-
<option value="5"<?php if( isset( $start_date_month ) && '5' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'May', 'zerospam' ); ?></option>
|
38 |
-
<option value="6"<?php if( isset( $start_date_month ) && '6' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'June', 'zerospam' ); ?></option>
|
39 |
-
<option value="7"<?php if( isset( $start_date_month ) && '7' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'July', 'zerospam' ); ?></option>
|
40 |
-
<option value="8"<?php if( isset( $start_date_month ) && '8' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'August', 'zerospam' ); ?></option>
|
41 |
-
<option value="9"<?php if( isset( $start_date_month ) && '9' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'September', 'zerospam' ); ?></option>
|
42 |
-
<option value="10"<?php if( isset( $start_date_month ) && '10' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'October', 'zerospam' ); ?></option>
|
43 |
-
<option value="11"<?php if( isset( $start_date_month ) && '11' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'November', 'zerospam' ); ?></option>
|
44 |
-
<option value="12"<?php if( isset( $start_date_month ) && '12' == $start_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'December', 'zerospam' ); ?></option>
|
45 |
-
</select>
|
46 |
-
|
47 |
-
<select name="zerospam-startdate-day">
|
48 |
-
<?php for ($i = 1; $i <= 31; $i++): ?>
|
49 |
-
<option value="<?php echo $i; ?>"<?php if( isset( $start_date_day ) && $i == $start_date_day ): ?> selected="selected"<?php endif; ?>><?php echo $i; ?></option>
|
50 |
-
<?php endfor; ?>
|
51 |
-
</select>
|
52 |
-
|
53 |
-
<select name="zerospam-startdate-year">
|
54 |
-
<?php for ( $i = date( 'Y' ); $i <= ( date( 'Y' ) + 50 ); $i++ ): ?>
|
55 |
-
<option value="<?php echo $i; ?>"<?php if( isset( $start_date_year ) && $i == $start_date_year ): ?> selected="selected"<?php endif; ?>><?php echo $i; ?></option>
|
56 |
-
<?php endfor; ?>
|
57 |
-
</select>
|
58 |
-
</td>
|
59 |
-
</tr>
|
60 |
-
<tr class="zero-spam__period"<?php if( isset( $data->type ) && 'permanent' == $data->type ): ?> style="display: none;"<?php endif; ?>>
|
61 |
-
<th><label for="zerospam-enddate"><?php echo __( 'End Date', 'zerospam' ); ?>:</th>
|
62 |
-
<td>
|
63 |
-
<select name="zerospam-enddate-month" id="zerospam-enddate">
|
64 |
-
<option value="1"<?php if( isset( $end_date_month ) && '1' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'January', 'zerospam' ); ?></option>
|
65 |
-
<option value="2"<?php if( isset( $end_date_month ) && '2' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'February', 'zerospam' ); ?></option>
|
66 |
-
<option value="3"<?php if( isset( $end_date_month ) && '3' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'March', 'zerospam' ); ?></option>
|
67 |
-
<option value="4"<?php if( isset( $end_date_month ) && '4' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'April', 'zerospam' ); ?></option>
|
68 |
-
<option value="5"<?php if( isset( $end_date_month ) && '5' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'May', 'zerospam' ); ?></option>
|
69 |
-
<option value="6"<?php if( isset( $end_date_month ) && '6' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'June', 'zerospam' ); ?></option>
|
70 |
-
<option value="7"<?php if( isset( $end_date_month ) && '7' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'July', 'zerospam' ); ?></option>
|
71 |
-
<option value="8"<?php if( isset( $end_date_month ) && '8' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'August', 'zerospam' ); ?></option>
|
72 |
-
<option value="9"<?php if( isset( $end_date_month ) && '9' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'September', 'zerospam' ); ?></option>
|
73 |
-
<option value="10"<?php if( isset( $end_date_month ) && '10' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'October', 'zerospam' ); ?></option>
|
74 |
-
<option value="11"<?php if( isset( $end_date_month ) && '11' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'November', 'zerospam' ); ?></option>
|
75 |
-
<option value="12"<?php if( isset( $end_date_month ) && '12' == $end_date_month ): ?> selected="selected"<?php endif; ?>><?php echo __( 'December', 'zerospam' ); ?></option>
|
76 |
-
</select>
|
77 |
-
<select name="zerospam-enddate-day">
|
78 |
-
<?php for ($i = 1; $i <= 31; $i++): ?>
|
79 |
-
<option value="<?php echo $i; ?>"<?php if( isset( $end_date_day ) && $i == $end_date_day ): ?> selected="selected"<?php endif; ?>><?php echo $i; ?></option>
|
80 |
-
<?php endfor; ?>
|
81 |
-
</select>
|
82 |
-
|
83 |
-
<select name="zerospam-enddate-year">
|
84 |
-
<?php for ( $i = date( 'Y' ); $i <= ( date( 'Y' ) + 50 ); $i++ ): ?>
|
85 |
-
<option value="<?php echo $i; ?>"<?php if( isset( $end_date_year ) && $i == $end_date_year ): ?> selected="selected"<?php endif; ?>><?php echo $i; ?></option>
|
86 |
-
<?php endfor; ?>
|
87 |
-
</select>
|
88 |
-
</td>
|
89 |
-
</tr>
|
90 |
-
<tr>
|
91 |
-
<th><label for="zerospam-reason"><?php echo __( 'Reason', 'zerospam' ); ?>:</th>
|
92 |
-
<td><input type="text" name="zerospam-reason" id="zerospam-reason" class="large-text" value="<?php if( isset( $data->reason ) ): echo esc_attr( $data->reason ); endif; ?>"></td>
|
93 |
-
</tr>
|
94 |
-
</table>
|
95 |
-
<p class="submit">
|
96 |
-
<input type="submit" value="<?php echo __( 'Save Changes', 'zerospam' ); ?>" class="button button-primary button-large">
|
97 |
-
<? if ( $ip ): ?><a href="javascript: closeForms();" class="button button-large"><?php echo __( 'Close', 'zerospam' ); ?></a><?php endif; ?>
|
98 |
-
</p>
|
99 |
-
</form>
|
100 |
-
<script>
|
101 |
-
jQuery( document ).ready( function( $ ) {
|
102 |
-
$( "#zero-spam__block-ip-form" ).submit( function( e ) {
|
103 |
-
e.preventDefault();
|
104 |
-
|
105 |
-
var form = $( this );
|
106 |
-
|
107 |
-
$( "input[type='submit']", form ).attr( "disabled", true );
|
108 |
-
$( ".zero-spam__msg" ).remove();
|
109 |
-
|
110 |
-
var data = $( "#zero-spam__block-ip-form" ).serialize();
|
111 |
-
data += '&security=<?php echo $ajax_nonce; ?>';
|
112 |
-
data += '&action=block_ip';
|
113 |
-
|
114 |
-
$.post( ajaxurl, data, function( d ) {
|
115 |
-
$( "input[type='submit']", form ).attr( "disabled", false );
|
116 |
-
|
117 |
-
form.prepend( "<div class='zero-spam__msg'>This IP address has been updated.</div>" );
|
118 |
-
|
119 |
-
<? if ( $ip ): ?>updateRow( '<?php echo $ip; ?>' );<?php endif; ?>
|
120 |
-
});
|
121 |
-
});
|
122 |
-
|
123 |
-
$( "#zerospam-type" ).change( function() {
|
124 |
-
var val = $( this ).val();
|
125 |
-
if ( "permanent" == val ) {
|
126 |
-
$( ".zero-spam__period" ).hide();
|
127 |
-
} else {
|
128 |
-
$( ".zero-spam__period" ).show();
|
129 |
-
}
|
130 |
-
});
|
131 |
-
});
|
132 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/tpl/general-settings.php
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* General settings page template.
|
4 |
-
*
|
5 |
-
* @since 1.5.0
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
10 |
-
*/
|
11 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
12 |
-
?>
|
13 |
-
<div class="zero-spam__row">
|
14 |
-
<div class="zero-spam__widget">
|
15 |
-
<div class="zero-spam__inner">
|
16 |
-
<form method="post" action="<?php echo $action; ?>">
|
17 |
-
<?php settings_fields( $tab ); ?>
|
18 |
-
<?php do_settings_sections( $tab ); ?>
|
19 |
-
<?php submit_button(); ?>
|
20 |
-
</form>
|
21 |
-
</div>
|
22 |
-
</div>
|
23 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/tpl/index.php
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?php // Silence is golden
|
|
trunk/tpl/ip-block.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<div class="zero-spam__row">
|
2 |
-
<div class="zero-spam__widget">
|
3 |
-
<div class="zero-spam__inner">
|
4 |
-
<?php if ( is_array( $ips ) && count( $ips ) > 0 ): ?>
|
5 |
-
<div id="zerospam-id-container">
|
6 |
-
<h3><?php echo __( 'Blocked IPs', 'zerospam' ); ?></h3>
|
7 |
-
<table class="zero-spam__table" id="zerospam--ip-block-table">
|
8 |
-
<thead>
|
9 |
-
<tr>
|
10 |
-
<th><?php echo __( 'IP', 'zerospam' ); ?></th>
|
11 |
-
<th><?php echo __( 'Status', 'zerospam' ); ?></th>
|
12 |
-
<th><?php echo __( 'Start Date', 'zerospam' ); ?></th>
|
13 |
-
<th><?php echo __( 'End Date', 'zerospam' ); ?></th>
|
14 |
-
<th><?php echo __( 'Reason', 'zerospam' ); ?></th>
|
15 |
-
<th> </th>
|
16 |
-
</tr>
|
17 |
-
</thead>
|
18 |
-
<tbody>
|
19 |
-
<?php foreach ( $ips as $key => $data ): ?>
|
20 |
-
<tr data-ip="<?php echo esc_attr( $data->ip ); ?>" id="row-<?php echo esc_attr( $data->zerospam_ip_id ); ?>">
|
21 |
-
<td class="zero-spam__ip"><a href="http://ip-lookup.net/index.php?ip=<?php echo esc_attr( $data->ip ); ?>" target="_blank">
|
22 |
-
<?php echo $data->ip; ?> <i class="fa fa-external-link-square"></i></a></td>
|
23 |
-
<td class="zero-spam__status">
|
24 |
-
<?php if ( zerospam_is_blocked( $data->ip ) ): ?>
|
25 |
-
<span class="zero-spam__label zero-spam__bg--primary"><?php echo __( 'Blocked', 'zerospam' ); ?></span>
|
26 |
-
<?php else: ?>
|
27 |
-
<span class="zero-spam__label zero-spam__bg--trinary"><?php echo __( 'Unblocked', 'zerospam' ); ?></span>
|
28 |
-
<?php endif; ?>
|
29 |
-
</td>
|
30 |
-
<td class="zero-spam__start-date">
|
31 |
-
<?php
|
32 |
-
if ( $data->start_date ):
|
33 |
-
echo date_i18n(
|
34 |
-
'l, F jS, Y g:ia',
|
35 |
-
strtotime( $data->start_date )
|
36 |
-
);
|
37 |
-
else:
|
38 |
-
echo '—';
|
39 |
-
endif;
|
40 |
-
?>
|
41 |
-
</td>
|
42 |
-
<td class="zero-spam__end-date">
|
43 |
-
<?php
|
44 |
-
if ( $data->start_date ):
|
45 |
-
echo date_i18n(
|
46 |
-
'l, F jS, Y g:ia',
|
47 |
-
strtotime( $data->end_date )
|
48 |
-
);
|
49 |
-
else:
|
50 |
-
echo '—';
|
51 |
-
endif;
|
52 |
-
?>
|
53 |
-
</td>
|
54 |
-
<td class="zero-spam__reason"><?php echo esc_html( $data->reason ); ?></td>
|
55 |
-
<td class="zero-spam__text-center">
|
56 |
-
<i class="fa fa-circle-o-notch fa-spin"></i>
|
57 |
-
<i class="fa fa-edit"></i>
|
58 |
-
<a href="#" class="button button-small zero-spam__block-ip" data-ip="<?php echo esc_attr( $data->ip ); ?>">
|
59 |
-
<i class="fa fa-gear"></i>
|
60 |
-
</a>
|
61 |
-
|
62 |
-
<a href="#" class="button button-small zero-spam__trash" data-ip="<?php echo esc_attr( $data->ip ); ?>"><i class="fa fa-trash"></i></a>
|
63 |
-
</td>
|
64 |
-
</tr>
|
65 |
-
<?php endforeach; ?>
|
66 |
-
</tbody>
|
67 |
-
</table>
|
68 |
-
<?php zerospam_pager( $limit, zerospam_get_blocked_ip_count(), $page, $tab ); ?>
|
69 |
-
</div>
|
70 |
-
<?php else: ?>
|
71 |
-
<?php echo __( 'No blocked IPs found.', 'zerospam' ); ?>
|
72 |
-
<?php endif; ?>
|
73 |
-
</div>
|
74 |
-
</div>
|
75 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/tpl/spammer-logs.php
DELETED
@@ -1,534 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Spammer Log page template
|
4 |
-
*
|
5 |
-
* Outputs the Spammer Log admin page HTML.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @subpackage ZeroSpam_Plugin
|
9 |
-
* @since 1.5.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
14 |
-
*/
|
15 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
16 |
-
?>
|
17 |
-
<div class="zero-spam__row">
|
18 |
-
<div class="zero-spam__cell">
|
19 |
-
<div class="zero-spam__widget zero-spam__bg--primary">
|
20 |
-
<div class="zero-spam__inner">
|
21 |
-
<h3><?php echo __( 'Summary', 'zerospam' ); ?></h3>
|
22 |
-
<div class="zero-spam__row">
|
23 |
-
<?php if ( isset( $num_days ) ): ?>
|
24 |
-
<div class="zero-spam__stat">
|
25 |
-
<?php echo __( 'Protected', 'zerospam' ); ?>
|
26 |
-
<b><?php echo number_format( $num_days, 0 ); ?> <?php echo __( 'days', 'zerospam' ); ?></b>
|
27 |
-
</div>
|
28 |
-
<?php endif; ?>
|
29 |
-
<div class="zero-spam__stat">
|
30 |
-
<?php echo __( 'Total Spam', 'zerospam' ); ?>
|
31 |
-
<b><?php echo number_format( $all_spam['raw'], 0 ); ?></b>
|
32 |
-
</div>
|
33 |
-
<?php if ( isset( $per_day ) ): ?>
|
34 |
-
<div class="zero-spam__stat">
|
35 |
-
<?php echo __( 'Per day', 'zerospam' ); ?>
|
36 |
-
<b><?php echo number_format( $per_day, 0 ); ?></b>
|
37 |
-
</div>
|
38 |
-
<?php endif; ?>
|
39 |
-
<?php if ( count( $all_spam['unique_spammers'] ) ): ?>
|
40 |
-
<div class="zero-spam__stat">
|
41 |
-
<?php echo __( 'Unique Spammers', 'zerospam' ); ?>
|
42 |
-
<b><?php echo number_format( $all_spam['unique_spammers'], 0 ); ?></b>
|
43 |
-
</div>
|
44 |
-
<?php endif; ?>
|
45 |
-
</div>
|
46 |
-
</div>
|
47 |
-
</div>
|
48 |
-
</div>
|
49 |
-
|
50 |
-
<div class="zero-spam__cell">
|
51 |
-
<div class="zero-spam__widget zero-spam__bg--secondary">
|
52 |
-
<div class="zero-spam__inner">
|
53 |
-
<h3><?php echo __( 'Stats', 'zerospam' ); ?></h3>
|
54 |
-
<div class="zero-spam__row">
|
55 |
-
<div class="zero-spam__stat">
|
56 |
-
<?php echo __( 'Comments', 'zerospam' ); ?>
|
57 |
-
<b><?php echo number_format( $all_spam['comment_spam'], 0 ); ?></b>
|
58 |
-
</div>
|
59 |
-
<div class="zero-spam__stat">
|
60 |
-
<?php echo __( 'Registrations', 'zerospam' ); ?>
|
61 |
-
<b><?php echo number_format( $all_spam['registration_spam'], 0 ); ?></b>
|
62 |
-
</div>
|
63 |
-
|
64 |
-
<?php if (
|
65 |
-
zerospam_plugin_check( 'cf7' ) &&
|
66 |
-
! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support']
|
67 |
-
): ?>
|
68 |
-
<div class="zero-spam__stat">
|
69 |
-
<?php echo __( 'Contact Form 7', 'zerospam' ); ?>
|
70 |
-
<b><?php echo number_format( $all_spam['cf7_spam'], 0 ); ?></b>
|
71 |
-
</div>
|
72 |
-
<?php endif; ?>
|
73 |
-
|
74 |
-
<?php if (
|
75 |
-
zerospam_plugin_check( 'gf' ) &&
|
76 |
-
! empty( $this->settings['gf_support'] ) && $this->settings['gf_support']
|
77 |
-
): ?>
|
78 |
-
<div class="zero-spam__stat">
|
79 |
-
<?php echo __( 'Gravity Forms', 'zerospam' ); ?>
|
80 |
-
<b><?php echo number_format( $all_spam['gf_spam'], 0 ); ?></b>
|
81 |
-
</div>
|
82 |
-
<?php endif; ?>
|
83 |
-
|
84 |
-
<?php if (
|
85 |
-
zerospam_plugin_check( 'bp' ) &&
|
86 |
-
! empty( $this->settings['bp_support'] ) && $this->settings['bp_support']
|
87 |
-
): ?>
|
88 |
-
<div class="zero-spam__stat">
|
89 |
-
<?php echo __( 'BP Registrations', 'zerospam' ); ?>
|
90 |
-
<b><?php echo number_format( $all_spam['bp_registration_spam'], 0 ); ?></b>
|
91 |
-
</div>
|
92 |
-
<?php endif; ?>
|
93 |
-
|
94 |
-
<?php if (
|
95 |
-
zerospam_plugin_check( 'nf' ) &&
|
96 |
-
! empty( $this->settings['nf_support'] ) && $this->settings['nf_support']
|
97 |
-
): ?>
|
98 |
-
<div class="zero-spam__stat">
|
99 |
-
<?php echo __( 'Ninja Forms', 'zerospam' ); ?>
|
100 |
-
<b><?php echo number_format( $all_spam['nf_spam'], 0 ); ?></b>
|
101 |
-
</div>
|
102 |
-
<?php endif; ?>
|
103 |
-
|
104 |
-
<?php if (
|
105 |
-
zerospam_plugin_check( 'wpf' ) &&
|
106 |
-
! empty( $this->settings['wpf'] ) && $this->settings['wpf_support']
|
107 |
-
): ?>
|
108 |
-
<div class="zero-spam__stat">
|
109 |
-
<?php echo __( 'WPForms', 'zerospam' ); ?>
|
110 |
-
<b><?php echo number_format( $all_spam['wpf_spam'], 0 ); ?></b>
|
111 |
-
</div>
|
112 |
-
<?php endif; ?>
|
113 |
-
</div>
|
114 |
-
</div>
|
115 |
-
</div>
|
116 |
-
</div>
|
117 |
-
</div>
|
118 |
-
|
119 |
-
<?php if ( $ip_location_support ): ?>
|
120 |
-
<div class="zero-spam__widget">
|
121 |
-
<div class="zero-spam__overlay">
|
122 |
-
<div class="zero-spam__inner">
|
123 |
-
<i class="fa fa-circle-o-notch fa-spin"></i>
|
124 |
-
<h4><?php echo __( 'Crunching numbers...', 'zerospam' ); ?></h4>
|
125 |
-
<p><?php echo __( 'This could take a minute or two, please be patient.' ); ?></p>
|
126 |
-
</div>
|
127 |
-
</div>
|
128 |
-
<div class="zero-spam__row">
|
129 |
-
<div class="zero-spam__cell">
|
130 |
-
<div class="zero-spam__inner">
|
131 |
-
<h3><?php echo __( 'Most Spam By Country', 'zerospam' ); ?></h3>
|
132 |
-
<table class="zero-spam__table">
|
133 |
-
<thead>
|
134 |
-
<tr>
|
135 |
-
<th><?php echo __( 'Country', 'zerospam' ); ?></th>
|
136 |
-
<th class="zero-spam__text-right"><?php echo __( 'Count', 'zerospam' ); ?></th>
|
137 |
-
</tr>
|
138 |
-
</thead>
|
139 |
-
<tbody id="zerospam-country-spam">
|
140 |
-
</tbody>
|
141 |
-
</table>
|
142 |
-
</div>
|
143 |
-
</div>
|
144 |
-
<div class="zero-spam__cell">
|
145 |
-
<div id="map" class="zero-spam__map"></div>
|
146 |
-
<script>
|
147 |
-
( function( $ ) {
|
148 |
-
$( function() {
|
149 |
-
$.post( ajaxurl, {
|
150 |
-
action: 'get_ip_spam',
|
151 |
-
security: '<?php echo $ajax_nonce; ?>',
|
152 |
-
}, function( data ) {console.log(data);
|
153 |
-
if ( data ) {
|
154 |
-
var obj = jQuery.parseJSON( data ),
|
155 |
-
country_count = {},
|
156 |
-
cnt = 0;
|
157 |
-
|
158 |
-
if ( obj.by_country ) {
|
159 |
-
$( ".zero-spam__overlay" ).fadeOut();
|
160 |
-
|
161 |
-
|
162 |
-
$.each( obj.by_country, function( abbr, c ) {
|
163 |
-
cnt++;
|
164 |
-
if ( cnt > 6 ) return false;
|
165 |
-
$( "#zerospam-country-spam" ).append( "<tr><td><b>" + c.name + "</b></td><td class='zero-spam__text-right'>" + c.count + "</td></tr>" );
|
166 |
-
country_count[abbr] = String(c.count);
|
167 |
-
});
|
168 |
-
|
169 |
-
$( '#map' ).vectorMap({
|
170 |
-
map: 'world_mill_en',
|
171 |
-
backgroundColor: '#1b1e24',
|
172 |
-
series: {
|
173 |
-
regions: [{
|
174 |
-
scale: ['#ffe6ea', '#ff183a'],
|
175 |
-
normalizeFunction: 'linear',
|
176 |
-
attribute: 'fill',
|
177 |
-
values: country_count
|
178 |
-
}]
|
179 |
-
}
|
180 |
-
|
181 |
-
});
|
182 |
-
|
183 |
-
var map = $( '#map' ).vectorMap('get', 'mapObject');
|
184 |
-
map.series.regions[0].setValues( country_count );
|
185 |
-
} else {
|
186 |
-
$( ".zero-spam__inner", $( ".zero-spam__overlay" ) ).html( "<i class='fa fa-thumbs-up'></i><h4>No spammers yet!</h4>" );
|
187 |
-
}
|
188 |
-
} else {
|
189 |
-
$( ".zero-spam__inner", $( ".zero-spam__overlay" ) ).html( "<i class='fa fa-exclamation-triangle'></i><h4>IP API Usage Limit Reached</h4><p>You've reached you're daily limit to the IP API to gather location information. Please check back in one hour.</p>" );
|
190 |
-
}
|
191 |
-
});
|
192 |
-
});
|
193 |
-
})( jQuery );
|
194 |
-
</script>
|
195 |
-
</div>
|
196 |
-
</div>
|
197 |
-
</div>
|
198 |
-
<?php endif; ?>
|
199 |
-
|
200 |
-
<?php if ( $all_spam['raw'] ): ?>
|
201 |
-
<div class="zero-spam__row">
|
202 |
-
<div class="zero-spam__cell">
|
203 |
-
<div class="zero-spam__widget">
|
204 |
-
<div class="zero-spam__inner">
|
205 |
-
<div class="zero-spam__row">
|
206 |
-
<div class="zero-spam__cell">
|
207 |
-
<h3><?php echo __( 'Percentage of Spam by Day', 'zerospam' ); ?></h3>
|
208 |
-
<table class="zero-spam__table">
|
209 |
-
<thead>
|
210 |
-
<tr>
|
211 |
-
<th><?php echo __( 'Day', 'zerospam' ); ?></th>
|
212 |
-
<th class="zero-spam__text-right"><?php echo __( 'Count', 'zerospam' ); ?></th>
|
213 |
-
</tr>
|
214 |
-
</thead>
|
215 |
-
<tbody>
|
216 |
-
<?php foreach( $all_spam['by_day'] as $day => $count ): ?>
|
217 |
-
<tr>
|
218 |
-
<td><b><?php echo $day; ?></b></td>
|
219 |
-
<td class="zero-spam__text-right"><?php echo number_format( $count, 0 ); ?></td>
|
220 |
-
</tr>
|
221 |
-
<?php endforeach; ?>
|
222 |
-
</tbody>
|
223 |
-
</table>
|
224 |
-
</div>
|
225 |
-
<div class="zero-spam__cell">
|
226 |
-
<div id="donut"></div>
|
227 |
-
<script>
|
228 |
-
jQuery(function() {
|
229 |
-
Morris.Donut({
|
230 |
-
element: 'donut',
|
231 |
-
data: [
|
232 |
-
<?php foreach( $all_spam['by_day'] as $day => $count ): ?>
|
233 |
-
{value: <?php echo zerospam_get_percent( $count, $all_spam['raw'] ); ?>, label: '<?php echo $day; ?>', formatted: '<?php echo zerospam_get_percent( $count, $all_spam['raw'] ); ?>%'},
|
234 |
-
<?php endforeach; ?>
|
235 |
-
],
|
236 |
-
formatter: function (x, data) { return data.formatted; }
|
237 |
-
});
|
238 |
-
});
|
239 |
-
</script>
|
240 |
-
</div>
|
241 |
-
</div>
|
242 |
-
</div>
|
243 |
-
</div>
|
244 |
-
</div>
|
245 |
-
<div class="zero-spam__cell">
|
246 |
-
<div class="zero-spam__widget">
|
247 |
-
<div class="zero-spam__inner">
|
248 |
-
<h3><?php echo __( 'Most Frequent Spammers', 'zerospam' ); ?></h3>
|
249 |
-
<table class="zero-spam__table">
|
250 |
-
<thead>
|
251 |
-
<tr>
|
252 |
-
<th width="100"><?php echo __( 'IP', 'zerospam' ); ?></th>
|
253 |
-
<?php if ( $ip_location_support ): ?><th><?php echo __( 'Location', 'zerospam' ); ?></th><?php endif; ?>
|
254 |
-
<th class="zero-spam__text-right">#</th>
|
255 |
-
<th><?php echo __( 'Status', 'zerospam' ); ?></th>
|
256 |
-
<th> </th>
|
257 |
-
</tr>
|
258 |
-
</thead>
|
259 |
-
<tbody>
|
260 |
-
<?php
|
261 |
-
arsort( $all_spam['by_spam_count'] );
|
262 |
-
$cnt = 0;
|
263 |
-
|
264 |
-
foreach( $all_spam['by_spam_count'] as $ip => $count ):
|
265 |
-
$cnt++; if ( $cnt > 6) break;
|
266 |
-
?>
|
267 |
-
<tr data-ip="<?php echo $ip; ?>">
|
268 |
-
<td><a href="http://ip-lookup.net/index.php?ip=<?php echo $ip; ?>" target="_blank">
|
269 |
-
<?php echo $ip; ?> <i class="fa fa-external-link-square"></i></a></td>
|
270 |
-
<?php if ( $ip_location_support ): ?>
|
271 |
-
<td>
|
272 |
-
<div data-ip-location="<?php echo $ip; ?>"><i class="fa fa-search"></i></div>
|
273 |
-
</td>
|
274 |
-
<?php endif; ?>
|
275 |
-
<td class="zero-spam__text-right"><?php echo number_format( $count, 0 ); ?></td>
|
276 |
-
<td class="zero-spam__status">
|
277 |
-
<?php if( zerospam_is_blocked( $ip ) ): ?>
|
278 |
-
<span class="zero-spam__label zero-spam__bg--primary"><?php echo __( 'Blocked', 'zerospam' ); ?></span>
|
279 |
-
<?php else: ?>
|
280 |
-
<span class="zero-spam__label zero-spam__bg--trinary"><?php echo __( 'Unblocked', 'zerospam' ); ?></span>
|
281 |
-
<?php endif; ?>
|
282 |
-
</td>
|
283 |
-
<td class="zero-spam__text-center">
|
284 |
-
<i class="fa fa-circle-o-notch fa-spin"></i>
|
285 |
-
<i class="fa fa-edit"></i>
|
286 |
-
<a href="#" class="button button-small zero-spam__block-ip"
|
287 |
-
data-ip="<?php echo $ip; ?>"><i class="fa fa-gear"></i></a>
|
288 |
-
</td>
|
289 |
-
</tr>
|
290 |
-
<?php endforeach; ?>
|
291 |
-
</tbody>
|
292 |
-
</table>
|
293 |
-
</div>
|
294 |
-
</div>
|
295 |
-
</div>
|
296 |
-
</div>
|
297 |
-
<?php endif; ?>
|
298 |
-
|
299 |
-
<div class="zero-spam__widget">
|
300 |
-
<div class="zero-spam__inner">
|
301 |
-
<?php if ( count( $all_spam['by_date'] ) ): ?>
|
302 |
-
<a href="javascript: clearLog();" class="zero-spam__fright button"><?php echo __( 'Reset Log', 'zerospam' ); ?></a>
|
303 |
-
<h3><?php echo __( 'All Time', 'zerospam' ); ?></h3>
|
304 |
-
<div id="graph"></div>
|
305 |
-
<script>
|
306 |
-
jQuery(function() {
|
307 |
-
// Use Morris.Area instead of Morris.Line
|
308 |
-
Morris.Area({
|
309 |
-
element: 'graph',
|
310 |
-
behaveLikeLine: true,
|
311 |
-
data: [
|
312 |
-
<?php foreach( $all_spam['by_date'] as $date => $ary ): ?>
|
313 |
-
{
|
314 |
-
'date': '<?php echo $date; ?>',
|
315 |
-
<?php foreach ( $ary as $key => $val ):
|
316 |
-
switch ( $key ):
|
317 |
-
case 'comment_spam': ?>
|
318 |
-
'spam_comments' : <?php echo $val; ?>,
|
319 |
-
<?php break;
|
320 |
-
case 'registration_spam': ?>
|
321 |
-
'spam_registrations' : <?php echo $val; ?>,
|
322 |
-
<?php break;
|
323 |
-
case 'cf7_spam':
|
324 |
-
if ( zerospam_plugin_check( 'cf7' ) && ! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support'] ): ?>
|
325 |
-
'spam_cf7' : <?php echo $val; ?>,
|
326 |
-
<?php endif; break;
|
327 |
-
case 'gf_spam':
|
328 |
-
if ( zerospam_plugin_check( 'gf' ) && ! empty( $this->settings['gf_support'] ) && $this->settings['gf_support'] ): ?>
|
329 |
-
'spam_gf' : <?php echo $val; ?>,
|
330 |
-
<?php endif; break;
|
331 |
-
case 'bp_registration_spam':
|
332 |
-
if ( zerospam_plugin_check( 'bp' ) && ! empty( $this->settings['bp_support'] ) && $this->settings['bp_support'] ): ?>
|
333 |
-
'bp_registrations' : <?php echo $val; ?>,
|
334 |
-
<?php endif; break;
|
335 |
-
case 'nf_spam':
|
336 |
-
if ( zerospam_plugin_check( 'nf' ) && ! empty( $this->settings['nf_support'] ) && $this->settings['nf_support'] ): ?>
|
337 |
-
'nf_spam' : <?php echo $val; ?>,
|
338 |
-
<?php endif; break;
|
339 |
-
case 'wpf_spam':
|
340 |
-
if ( zerospam_plugin_check( 'wpf' ) && ! empty( $this->settings['wpf_support'] ) && $this->settings['wpf_support'] ): ?>
|
341 |
-
'wpf_spam' : <?php echo $val; ?>,
|
342 |
-
<?php endif; break;
|
343 |
-
default: if ( $key != 'data' ): ?>
|
344 |
-
'<?php echo $key; ?>': <?php echo $val; ?>,
|
345 |
-
<?php endif; endswitch;
|
346 |
-
endforeach; ?>
|
347 |
-
},
|
348 |
-
<?php endforeach; ?>
|
349 |
-
],
|
350 |
-
xkey: 'date',
|
351 |
-
ykeys: [
|
352 |
-
<?php foreach ( $ary as $key => $val ):
|
353 |
-
switch ( $key ):
|
354 |
-
case 'comment_spam': ?>
|
355 |
-
'spam_comments',
|
356 |
-
<?php break;
|
357 |
-
case 'registration_spam': ?>
|
358 |
-
'spam_registrations',
|
359 |
-
<?php break;
|
360 |
-
case 'cf7_spam': if ( zerospam_plugin_check( 'cf7' ) && ! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support'] ): ?>
|
361 |
-
'spam_cf7',
|
362 |
-
<?php endif; break;
|
363 |
-
case 'gf_spam': if ( zerospam_plugin_check( 'gf' ) && ! empty( $this->settings['gf_support'] ) && $this->settings['gf_support'] ): ?>
|
364 |
-
'spam_gf',
|
365 |
-
<?php endif; break;
|
366 |
-
case 'bp_registration_spam': if ( zerospam_plugin_check( 'bp' ) && ! empty( $this->settings['bp_support'] ) && $this->settings['bp_support'] ): ?>
|
367 |
-
'bp_registrations',
|
368 |
-
<?php endif; break;
|
369 |
-
case 'nf_spam': if ( zerospam_plugin_check( 'nf' ) && ! empty( $this->settings['nf_support'] ) && $this->settings['nf_support'] ): ?>
|
370 |
-
'nf_spam',
|
371 |
-
<?php endif; break;
|
372 |
-
case 'wpf_spam': if ( zerospam_plugin_check( 'wpf' ) && ! empty( $this->settings['wpf_support'] ) && $this->settings['wpf_support'] ): ?>
|
373 |
-
'wpf_spam',
|
374 |
-
<?php endif; break;
|
375 |
-
default: if ( $key != 'data' ): ?>
|
376 |
-
'<?php echo $key; ?>',
|
377 |
-
<?php endif; endswitch;
|
378 |
-
endforeach; ?>
|
379 |
-
],
|
380 |
-
labels: [
|
381 |
-
<?php foreach ( $ary as $key => $val ):
|
382 |
-
switch ( $key ):
|
383 |
-
case 'comment_spam': ?>
|
384 |
-
'<?php echo __( 'Spam Comments', 'zerospam' ); ?>',
|
385 |
-
<?php break;
|
386 |
-
case 'undefined_form': ?>
|
387 |
-
'<?php echo __( 'Undefined Form', 'zerospam' ); ?>',
|
388 |
-
<?php break;
|
389 |
-
case 'registration_spam': ?>
|
390 |
-
'<?php echo __( 'Spam Registrations', 'zerospam' ); ?>',
|
391 |
-
<?php break;
|
392 |
-
case 'cf7_spam': if ( zerospam_plugin_check( 'cf7' ) && ! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support'] ): ?>
|
393 |
-
'<?php echo __( 'Contact Form 7', 'zerospam' ); ?>',
|
394 |
-
<?php endif; break;
|
395 |
-
case 'gf_spam': if ( zerospam_plugin_check( 'gf' ) && ! empty( $this->settings['gf_support'] ) && $this->settings['gf_support'] ): ?>
|
396 |
-
'<?php echo __( 'Gravity Forms', 'zerospam' ); ?>',
|
397 |
-
<?php endif; break;
|
398 |
-
case 'bp_registration_spam': if ( zerospam_plugin_check( 'bp' ) && ! empty( $this->settings['bp_support'] ) && $this->settings['bp_support'] ): ?>
|
399 |
-
'<?php echo __( 'BuddyPress', 'zerospam' ); ?>',
|
400 |
-
<?php endif; break;
|
401 |
-
case 'nf_spam': if ( zerospam_plugin_check( 'nf' ) && ! empty( $this->settings['nf_support'] ) && $this->settings['nf_support'] ): ?>
|
402 |
-
'<?php echo __( 'Ninja Forms', 'zerospam' ); ?>',
|
403 |
-
<?php endif; break;
|
404 |
-
case 'wpf_spam': if ( zerospam_plugin_check( 'wpf' ) && ! empty( $this->settings['wpf_support'] ) && $this->settings['wpf_support'] ): ?>
|
405 |
-
'<?php echo __( 'WPForms', 'zerospam' ); ?>',
|
406 |
-
<?php endif; break;
|
407 |
-
default: if ( $key != 'data' ): ?>
|
408 |
-
'<?php echo $key; ?>',
|
409 |
-
<?php endif; endswitch;
|
410 |
-
endforeach; ?>
|
411 |
-
],
|
412 |
-
xLabels: 'day',
|
413 |
-
lineColors: [
|
414 |
-
<?php foreach ( $ary as $key => $val ):
|
415 |
-
switch ( $key ):
|
416 |
-
case 'comment_spam': ?>
|
417 |
-
'#00639e',
|
418 |
-
<?php break;
|
419 |
-
case 'registration_spam': ?>
|
420 |
-
'#ff183a',
|
421 |
-
<?php break;
|
422 |
-
case 'cf7_spam': if ( zerospam_plugin_check( 'cf7' ) && ! empty( $this->settings['cf7_support'] ) && $this->settings['cf7_support'] ): ?>
|
423 |
-
'#fddb5a',
|
424 |
-
<?php endif; break;
|
425 |
-
case 'gf_spam': if ( zerospam_plugin_check( 'gf' ) && ! empty( $this->settings['gf_support'] ) && $this->settings['gf_support'] ): ?>
|
426 |
-
'#222d3a'
|
427 |
-
<?php endif; break;
|
428 |
-
case 'bp_registration_spam': if ( zerospam_plugin_check( 'bp' ) && ! empty( $this->settings['bp_support'] ) && $this->settings['bp_support'] ): ?>
|
429 |
-
'#a0d5f4'
|
430 |
-
<?php endif; break;
|
431 |
-
case 'nf_spam': if ( zerospam_plugin_check( 'nf' ) && ! empty( $this->settings['nf_support'] ) && $this->settings['nf_support'] ): ?>
|
432 |
-
'#ef4748',
|
433 |
-
<?php endif; break;
|
434 |
-
case 'wpf_spam': if ( zerospam_plugin_check( 'wpf' ) && ! empty( $this->settings['wpf_support'] ) && $this->settings['wpf_support'] ): ?>
|
435 |
-
'#e27730',
|
436 |
-
<?php endif; break;
|
437 |
-
default: if ( $key != 'data' ): ?>
|
438 |
-
'#c2c2c2',
|
439 |
-
<?php endif; endswitch;
|
440 |
-
endforeach; ?>
|
441 |
-
]
|
442 |
-
});
|
443 |
-
});
|
444 |
-
</script>
|
445 |
-
<table class="zero-spam__table">
|
446 |
-
<thead>
|
447 |
-
<tr>
|
448 |
-
<th><?php echo __( 'Date', 'zerospam' ); ?></th>
|
449 |
-
<th width="90"><?php echo __( 'Type', 'zerospam' ); ?></th>
|
450 |
-
<?php if ( $ip_location_support ): ?><th><?php echo __( 'Location', 'zerospam' ); ?></th><?php endif; ?>
|
451 |
-
<th width="106"><?php echo __( 'IP', 'zerospam' ); ?></th>
|
452 |
-
<th><?php echo __( 'Page', 'zerospam' ); ?></th>
|
453 |
-
<th><?php echo __( 'Status', 'zerospam' ); ?></th>
|
454 |
-
<th> </th>
|
455 |
-
</tr>
|
456 |
-
</thead>
|
457 |
-
<tbody>
|
458 |
-
<?php
|
459 |
-
foreach ( $spam['raw'] as $key => $obj ):
|
460 |
-
switch ( $obj->type ) {
|
461 |
-
case 1:
|
462 |
-
$type = '<span class="zero-spam__label zero-spam__bg--primary">' . __( 'Registration', 'zerospam' ) . '</span>';
|
463 |
-
break;
|
464 |
-
case 2:
|
465 |
-
$type = '<span class="zero-spam__label zero-spam__bg--secondary">' . __( 'Comment', 'zerospam' ) . '</span>';
|
466 |
-
break;
|
467 |
-
case 3:
|
468 |
-
$type = '<span class="zero-spam__label zero-spam__bg--trinary">' . __( 'Contact Form 7', 'zerospam' ) . '</span>';
|
469 |
-
break;
|
470 |
-
case 4:
|
471 |
-
$type = '<span class="zero-spam__label zero-spam__bg--gf">' . __( 'Gravity Forms', 'zerospam' ) . '</span>';
|
472 |
-
break;
|
473 |
-
case 5:
|
474 |
-
$type = '<span class="zero-spam__label zero-spam__bg--bpr">' . __( 'BP Registration', 'zerospam' ) . '</span>';
|
475 |
-
break;
|
476 |
-
case 6:
|
477 |
-
$type = '<span class="zero-spam__label zero-spam__bg--nf">' . __( 'Ninja Forms', 'zerospam' ) . '</span>';
|
478 |
-
break;
|
479 |
-
case 7:
|
480 |
-
$type = '<span class="zero-spam__label zero-spam__bg--wpf">' . __( 'WPForms', 'zerospam' ) . '</span>';
|
481 |
-
break;
|
482 |
-
default:
|
483 |
-
$type = '<span class="zero-spam__label zero-spam__bg--misc">' . __( $obj->type, 'zerospam' ) . '</span>';
|
484 |
-
}
|
485 |
-
?>
|
486 |
-
<tr data-ip="<?php echo $obj->ip; ?>" id="row-<?php echo $obj->zerospam_id; ?>">
|
487 |
-
<td>
|
488 |
-
<?php
|
489 |
-
echo date_i18n(
|
490 |
-
'l, F jS, Y g:ia',
|
491 |
-
strtotime( $obj->date )
|
492 |
-
);
|
493 |
-
?>
|
494 |
-
</td>
|
495 |
-
<td><?php echo isset( $type ) ? $type : '—'; ?></td>
|
496 |
-
<?php if ( $ip_location_support ): ?>
|
497 |
-
<td>
|
498 |
-
<div data-ip-location="<?php echo $obj->ip; ?>"><i class="fa fa-search"></i></div>
|
499 |
-
</td>
|
500 |
-
<?php endif; ?>
|
501 |
-
<td>
|
502 |
-
<a href="http://ip-lookup.net/index.php?ip=<?php echo $obj->ip; ?>" target="_blank">
|
503 |
-
<?php echo $obj->ip; ?> <i class="fa fa-external-link-square"></i></a>
|
504 |
-
</td>
|
505 |
-
<td>
|
506 |
-
<?php if ( isset( $obj->page ) ): ?>
|
507 |
-
<a href="<?php echo esc_url( $obj->page ); ?>" target="_blank"><?php echo $obj->page; ?> <i class="fa fa-external-link-square"></i></a>
|
508 |
-
<?php else: ?>
|
509 |
-
<?php echo __( 'Unknown', 'zerospam' ); ?>
|
510 |
-
<?php endif; ?>
|
511 |
-
</td>
|
512 |
-
<td class="zero-spam__status">
|
513 |
-
<?php if( zerospam_is_blocked( $obj->ip ) ): ?>
|
514 |
-
<span class="zero-spam__label zero-spam__bg--primary"><?php echo __( 'Blocked', 'zerospam' ); ?></span>
|
515 |
-
<?php else: ?>
|
516 |
-
<span class="zero-spam__label zero-spam__bg--trinary"><?php echo __( 'Unblocked', 'zerospam' ); ?></span>
|
517 |
-
<?php endif; ?>
|
518 |
-
</td>
|
519 |
-
<td class="zero-spam__text-center">
|
520 |
-
<i class="fa fa-circle-o-notch fa-spin"></i>
|
521 |
-
<i class="fa fa-edit"></i>
|
522 |
-
<a href="#" class="button button-small zero-spam__block-ip"
|
523 |
-
data-ip="<?php echo $obj->ip; ?>"><i class="fa fa-gear"></i></a>
|
524 |
-
</td>
|
525 |
-
</tr>
|
526 |
-
<?php endforeach; ?>
|
527 |
-
</tbody>
|
528 |
-
</table>
|
529 |
-
<?php zerospam_pager( $limit, zerospam_get_spam_count(), $page, $tab ); ?>
|
530 |
-
<?php else: ?>
|
531 |
-
<?php echo __( 'No spammers detected yet!', 'zerospam'); ?>
|
532 |
-
<?php endif; ?>
|
533 |
-
</div>
|
534 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/uninstall.php
DELETED
@@ -1,91 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Uninstall
|
4 |
-
*
|
5 |
-
* Contains all plugin uninstall functionality.
|
6 |
-
*
|
7 |
-
* @package WordPress Zero Spam
|
8 |
-
* @since 1.0.0
|
9 |
-
*/
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Fired when the plugin is uninstalled.
|
13 |
-
*
|
14 |
-
* When populating this file, consider the following flow
|
15 |
-
* of control:
|
16 |
-
*
|
17 |
-
* - This method should be static
|
18 |
-
* - Check if the $_REQUEST content actually is the plugin name
|
19 |
-
* - Run an admin referrer check to make sure it goes through authentication
|
20 |
-
* - Verify the output of $_GET makes sense
|
21 |
-
* - Repeat with other user roles. Best directly by using the links/query string parameters.
|
22 |
-
* - Repeat things for multisite. Once for a single site in the network, once sitewide.
|
23 |
-
*
|
24 |
-
* This file may be updated more in future version of the Boilerplate; however, this is the
|
25 |
-
* general skeleton and outline for how the file should work.
|
26 |
-
*
|
27 |
-
* For more information, see the following discussion:
|
28 |
-
* https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
|
29 |
-
*
|
30 |
-
* @since 1.5.0
|
31 |
-
*/
|
32 |
-
|
33 |
-
// If this file is called directly, abort.
|
34 |
-
if ( ! defined( 'WPINC' ) ) {
|
35 |
-
exit;
|
36 |
-
}
|
37 |
-
|
38 |
-
// If uninstall not called from WordPress, then exit.
|
39 |
-
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
40 |
-
exit;
|
41 |
-
}
|
42 |
-
|
43 |
-
// Important: Check if the file is the one
|
44 |
-
// that was registered during the uninstall hook.
|
45 |
-
if ( basename(__DIR__) . '/zero-spam.php' !== WP_UNINSTALL_PLUGIN ) {
|
46 |
-
exit;
|
47 |
-
}
|
48 |
-
|
49 |
-
// Check if the $_REQUEST content actually is the plugin name
|
50 |
-
if ( isset( $_REQUEST['checked'] ) && ! in_array( basename(__DIR__) . '/zero-spam.php', $_REQUEST['checked'] ) ) {
|
51 |
-
exit;
|
52 |
-
}
|
53 |
-
|
54 |
-
if ( ! in_array( $_REQUEST['action'], array( 'delete-plugin', 'delete-selected' ) ) ) {
|
55 |
-
exit;
|
56 |
-
}
|
57 |
-
|
58 |
-
// Check user roles.
|
59 |
-
if ( ! current_user_can( 'activate_plugins' ) ) {
|
60 |
-
exit;
|
61 |
-
}
|
62 |
-
|
63 |
-
// Run an admin referrer check to make sure it goes through authentication
|
64 |
-
if ( defined('DOING_AJAX') && DOING_AJAX ) {
|
65 |
-
check_ajax_referer( 'updates' );
|
66 |
-
} else {
|
67 |
-
check_admin_referer( 'bulk-plugins' );
|
68 |
-
}
|
69 |
-
|
70 |
-
// Safe to carry on
|
71 |
-
if ( false != get_option( 'zerospam_general_settings' ) || '' == get_option( 'zerospam_general_settings' ) ) {
|
72 |
-
delete_site_option( 'zerospam_general_settings' );
|
73 |
-
delete_option( 'zerospam_general_settings' );
|
74 |
-
}
|
75 |
-
|
76 |
-
if ( false != get_option( 'zerospam_key' ) || '' == get_option( 'zerospam_key' ) ) {
|
77 |
-
delete_option( 'zerospam_key' );
|
78 |
-
}
|
79 |
-
|
80 |
-
if ( false != get_option( 'zerospam_db_version' ) || '' == get_option( 'zerospam_db_version' ) ) {
|
81 |
-
delete_option( 'zerospam_db_version' );
|
82 |
-
}
|
83 |
-
|
84 |
-
// Delete database tables
|
85 |
-
global $wpdb;
|
86 |
-
$log_table_name = $wpdb->prefix . 'zerospam_log';
|
87 |
-
$ip_table_name = $wpdb->prefix . 'zerospam_blocked_ips';
|
88 |
-
$ip_data = $wpdb->prefix . 'zerospam_ip_data';
|
89 |
-
$wpdb->query( "DROP TABLE IF EXISTS $log_table_name" );
|
90 |
-
$wpdb->query( "DROP TABLE IF EXISTS $ip_table_name" );
|
91 |
-
$wpdb->query( "DROP TABLE IF EXISTS $ip_data" );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunk/zero-spam.php
DELETED
@@ -1,122 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
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: 3.0.4
|
7 |
-
* Author: Ben Marshall
|
8 |
-
* Author URI: https://benmarshall.me
|
9 |
-
* License: GPL2
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* Copyright 2015 - 2016 Ben Marshall (email : me@benmarshall.me)
|
13 |
-
|
14 |
-
This program is free software; you can redistribute it and/or modify
|
15 |
-
it under the terms of the GNU General Public License, version 2, as
|
16 |
-
published by the Free Software Foundation.
|
17 |
-
|
18 |
-
This program is distributed in the hope that it will be useful,
|
19 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21 |
-
GNU General Public License for more details.
|
22 |
-
|
23 |
-
You should have received a copy of the GNU General Public License
|
24 |
-
along with this program; if not, write to the Free Software
|
25 |
-
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
26 |
-
*/
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Security Note: Blocks direct access to the plugin PHP files.
|
30 |
-
*/
|
31 |
-
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
32 |
-
|
33 |
-
// Define constants.
|
34 |
-
if( ! defined( 'ZEROSPAM_ROOT ' ) )
|
35 |
-
{
|
36 |
-
define( 'ZEROSPAM_ROOT', plugin_dir_path( __FILE__ ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
if( ! defined( 'ZEROSPAM_PLUGIN ' ) )
|
40 |
-
{
|
41 |
-
define( 'ZEROSPAM_PLUGIN', __FILE__ );
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Include the plugin helpers.
|
46 |
-
*/
|
47 |
-
require_once( ZEROSPAM_ROOT . 'inc' . DIRECTORY_SEPARATOR . 'helpers.php' );
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Used to detect installed plugins.
|
51 |
-
*/
|
52 |
-
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
53 |
-
|
54 |
-
spl_autoload_register( 'zerospam_autoloader' );
|
55 |
-
|
56 |
-
// Load the plugin libraries.
|
57 |
-
$plugin = new ZeroSpam_Plugin();
|
58 |
-
$plugin['install'] = new ZeroSpam_Install();
|
59 |
-
$plugin['access'] = new ZeroSpam_Access();
|
60 |
-
$plugin['scripts'] = new ZeroSpam_Scripts();
|
61 |
-
$plugin['admin'] = new ZeroSpam_Admin();
|
62 |
-
$plugin['ajax'] = new ZeroSpam_Ajax();
|
63 |
-
|
64 |
-
// Registration support.
|
65 |
-
if ( ! empty( $plugin->settings['registration_support'] ) && $plugin->settings['registration_support'] )
|
66 |
-
{
|
67 |
-
$plugin['registration'] = new ZeroSpam_Registration();
|
68 |
-
}
|
69 |
-
|
70 |
-
// Comments support.
|
71 |
-
|
72 |
-
if ( ! empty( $plugin->settings['comment_support'] ) && $plugin->settings['comment_support'] ) {
|
73 |
-
$plugin['comments'] = new ZeroSpam_Comments();
|
74 |
-
}
|
75 |
-
|
76 |
-
// Contact Form 7 support.
|
77 |
-
if (
|
78 |
-
zerospam_plugin_check( 'cf7' ) &&
|
79 |
-
! empty( $plugin->settings['cf7_support'] ) && $plugin->settings['cf7_support']
|
80 |
-
)
|
81 |
-
{
|
82 |
-
$plugin['cf7'] = new ZeroSpam_ContactForm7();
|
83 |
-
}
|
84 |
-
|
85 |
-
// BuddyPress support.
|
86 |
-
if (
|
87 |
-
zerospam_plugin_check( 'bp' ) &&
|
88 |
-
! empty( $plugin->settings['bp_support'] ) && $plugin->settings['bp_support']
|
89 |
-
)
|
90 |
-
{
|
91 |
-
$plugin['bp'] = new ZeroSpam_BuddyPress();
|
92 |
-
}
|
93 |
-
|
94 |
-
// Ninja Forms support.
|
95 |
-
if (
|
96 |
-
zerospam_plugin_check( 'nf' ) &&
|
97 |
-
! empty( $plugin->settings['nf_support'] ) && $plugin->settings['nf_support']
|
98 |
-
)
|
99 |
-
{
|
100 |
-
$plugin['nf'] = new ZeroSpam_NinjaForms();
|
101 |
-
}
|
102 |
-
|
103 |
-
// Gravity Forms support.
|
104 |
-
if (
|
105 |
-
zerospam_plugin_check( 'gf' ) &&
|
106 |
-
! empty( $plugin->settings['gf_support'] ) && $plugin->settings['gf_support']
|
107 |
-
)
|
108 |
-
{
|
109 |
-
$plugin['gf'] = new ZeroSpam_GravityForms();
|
110 |
-
}
|
111 |
-
|
112 |
-
// WPForms support.
|
113 |
-
if (
|
114 |
-
zerospam_plugin_check( 'wpf' ) &&
|
115 |
-
! empty( $plugin->settings['wpf_support'] ) && $plugin->settings['wpf_support']
|
116 |
-
)
|
117 |
-
{
|
118 |
-
$plugin['wpf'] = new ZeroSpam_WPForms();
|
119 |
-
}
|
120 |
-
|
121 |
-
// Initialize the plugin.
|
122 |
-
$plugin->run();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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: 3.0.
|
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: 3.0.5
|
7 |
* Author: Ben Marshall
|
8 |
* Author URI: https://benmarshall.me
|
9 |
* License: GPL2
|