diff --git a/README.md b/README.md index 761c92e..8bc5b54 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,8 @@ advanced: request_buffer: 8192 # 超时时间 timeout: 30 + # 是否跳过签名检测 + skip_sign: false file: # 文件检查模式,可选值为 exists(检查文件是否存在,不推荐)、 # size(检查文件大小)和 hash(检查文件哈希值) @@ -136,7 +138,9 @@ file: cache: # 缓存大小(Bytes) buffer: 536870912 + # 检查过时文件时间,单位为秒 check: 360 + # 文件存在时间,单位为秒 time: 1800 cluster: # 是否不使用 BMCLAPI 分发的证书, 同 CLUSTER_BYOC @@ -155,7 +159,7 @@ cluster: retry: -1 # OpenBMCLAPI 的 CLUSTER_SECRET secret: '' - skip_sign: false + # 超时设置 timeout: # 发送启用数据包超时时间 enable: 120 @@ -167,6 +171,7 @@ dashboard: download: # 最高下载线程 threads: 64 +# 存储设置 storages: bmclapi: # 你的存储名字 # 存储路径 diff --git a/bmclapi_dashboard/index.html b/bmclapi_dashboard/index.html index 1ffcdfc..1f331f7 100644 --- a/bmclapi_dashboard/index.html +++ b/bmclapi_dashboard/index.html @@ -13,5 +13,6 @@ + \ No newline at end of file diff --git a/bmclapi_dashboard/static/js/index.min.js b/bmclapi_dashboard/static/js/index.min.js index 786bbfe..a7fccc3 100644 --- a/bmclapi_dashboard/static/js/index.min.js +++ b/bmclapi_dashboard/static/js/index.min.js @@ -45,7 +45,16 @@ class Style { "hover-color": "#0A8A87", "shadow": "rgba(145, 158, 171, 0.2)", "title-color": "rgba(0, 0, 0, 0.5)", - "value-color": "rgba(0, 0, 0, 0.7)" + "value-color": "rgba(0, 0, 0, 0.7)", + "button-color": "rgba(0, 0, 0, 0.7)", + "echarts-main-line-color": "#0FC6C2", + "echarts-main-color": "#0FC6C2", + "echarts-dark-color": "#4260f0", + "echarts-none-color": "#eefbfb", + "echarts-area-color": "#F7F8FA", + "echarts-border-color": "#CCC", + "echarts-emphasis-color": "#ADD8E6", + "border-color": "rgb(227, 232, 239)" }, dark: { "color": "#FFFFFF", @@ -57,7 +66,16 @@ class Style { "selection-background": "#232323", "shadow": "none", "title-color": "rgba(255, 255, 255, 0.5);", - "value-color": "rgb(255, 255, 255);" + "value-color": "rgb(255, 255, 255);", + "button-color": "rgba(255, 255, 255, 0.7)", + "echarts-main-line-color": "#0FC6C2", + "echarts-main-color": "#FF8859", + "echarts-dark-color": "#4260f0", + "echarts-none-color": "#F4D1B4", + "echarts-area-color": "#494949", + "echarts-border-color": "#CCC", + "echarts-emphasis-color": "#ADD8E6", + "border-color": "rgb(57, 57, 57);" } }; this.documentStyle = document.createElement("style"); @@ -72,6 +90,80 @@ class Style { "display: flex", "flex-wrap: wrap" ], + ".flex-space-between": "justify-content: space-between;", + ".flex-aligns-center": "align-items: center", + ".app-swtich-container": [ + `overflow: hidden; + display: flex; + padding: 5px; + border: 1px solid transparent; + min-height: 36px; + height: 36px; + border-radius: 4px; + width: auto; + flex-shrink: 0;` + ], + ".app-switch-button": [ + `display: inline-flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + box-sizing: border-box; + -webkit-tap-highlight-color: transparent; + background-color: transparent; + outline: 0px; + border: 0px; + margin: 0px; + border-radius: 5px; + cursor: pointer; + user-select: none; + vertical-align: middle; + appearance: none; + text-decoration: none; + font-family: inherit; + font-weight: 500; + line-height: 1.25; + text-transform: uppercase; + max-width: 360px; + position: relative; + flex-shrink: 0; + overflow: hidden; + white-space: normal; + text-align: center; + flex-direction: column; + color: var(--button-color); + padding: 4px 12px; + min-height: 0px; + min-width: 0px; + font-size: 12px; + transition: background-color 0.3s ease, color 0.3s ease;` + ], + ".app-switch-button.selected": [ + `background-color: var(--main-color)`, + "color: var(--dark-color)" + ], + ".app-rank-container": [ + "padding-top: 16px;" + ], + ".app-rank-text": [ + "display: flex", + "justify-content: space-between;" + ], + ".app-rank-progressbar": [ + `margin-top: 8px; + display: -webkit-box; + background-color: var(--border-color); + border-radius: 2px; + height: 4px;` + ], + ".app-rank-progressbar-value": [ + `width: 100%; + background-color: var(--main-color); + border-radius: 2px; + height: 4px;`, + "transition: width 0.3s ease" + ] }) } @@ -387,6 +479,9 @@ class Application { box-shadow: var(--shawdow) 0px 4px 10px; margin: 16px;` ], + ".main-container .panel.nopadding": [ + "padding: 0;" + ], ".main-container .panel .title": [ `display: flex; margin: 0px 0px 6px; @@ -430,15 +525,16 @@ class Application { this.$Style.applyTheme("light") } document.cookie = `theme=${this.$theme.containsClass("bxs-sun") ? "1" : "0"}; path=/` - }), + }) + this.menuButton = this.createElement("i").class("bx bx-menu").style("font-size: 32px").event("click", () => { + this.$side.toggle("hidden") + setTimeout(() => { + window.dispatchEvent(new Event("resize")) + }, 500) + }) this.$header = this.createElement("header").append( this.createElement("div").class("content").append( - this.createElement("i").class("bx bx-menu").style("font-size: 32px").event("click", () => { - this.$side.toggle("hidden") - setTimeout(() => { - window.dispatchEvent(new Event("resize")) - }, 500) - }), + this.menuButton, this.$theme, this.createElement("h3").append( this.createElement("a").setAttribute("href", $github).setText(document.title) @@ -458,6 +554,7 @@ class Application { this.$Style.setStyles(this.$styles) this.$Menu = new Menu(this, this.$side); this.$flexes = [] + if (window.outerWidth <= window.outerHeight * 1.75) this.menuButton.valueOf().click() window.addEventListener("resize", () => { for (const flex of this.$flexes) { flex.update(false) @@ -479,8 +576,11 @@ class Application { flex.update(false) } } - createFlex() { - return new ElementFlex() + createFlex(noUpdateOther = false) { + return new ElementFlex("div", false, noUpdateOther) + } + createEcharts() { + return new TemplateEchart() } createElement(tag) { return new Element(tag); @@ -690,7 +790,7 @@ class Menu { for (const key in this.$menus) { const object = this.$menus[key] const div = app.createElement("div").class("menu") - div.append(app.createElement("div").setHTML(object.icon || ""), app.createElement("span").setText(key)).event("click", () => { + div.append(app.createElement("div").setHTML(object.icon || ""), app.createElement("span").setI18N("menu." + key)).event("click", () => { let page = key if (object.children.length != 0) { page += "/" + object.children[0].key @@ -708,7 +808,7 @@ class Menu { const subIndex = {} for (const subObject of object.children) { const subdiv = app.createElement("div").class("submenu") - subdiv.append(app.createElement("div").class("cycle").append(app.createElement("span")), app.createElement("div").class("text").append(app.createElement("span").setText(subObject.key))).event("click", () => { + subdiv.append(app.createElement("div").class("cycle").append(app.createElement("span")), app.createElement("div").class("text").append(app.createElement("span").setI18N("menu." + key + "." + subObject.key))).event("click", () => { let page = key + "/" + subObject.key this.$Router.route("/" + page) this.$Router.handler() @@ -1345,7 +1445,7 @@ class SocketData { } } class ElementFlex extends Element { - constructor(tag = "div", isElement = false) { + constructor(tag = "div", isElement = false, noUpdateOther = false) { super(tag, isElement) app.addFlex(this) this.class("app-flex") @@ -1360,7 +1460,7 @@ class ElementFlex extends Element { this._resizes = [] this._disable = false this._customWidths = [] - this.update() + this.update(!noUpdateOther) } disable() { this._disable = true @@ -1408,7 +1508,12 @@ class ElementFlex extends Element { return this } update(main = true) { - if (this._disable) return this + if (this._disable) { + for (const func of this._resizes) { + func() + } + return this + } const get_margin = (child) => { const child_style = window.getComputedStyle(child.valueOf()); const margin = (parseInt(child_style.marginRight, 10) + parseInt(child_style.marginLeft, 10)); @@ -1425,7 +1530,7 @@ class ElementFlex extends Element { if (newwidth > minwidth) for (let i = 0; i < Math.min(this._customWidths.length, children.length); i++) { const child = children[i]; - child.valueOf().style = this._childStyle + //child.valueOf().style = this._childStyle child.setStyle("boxSizing", "border-box") child.setStyle("width", (width * (this._customWidths[i] / childpercents) - get_margin(child)) + "px") percentWidth += width * (this._customWidths[i] / childpercents) - get_margin(child) @@ -1433,7 +1538,7 @@ class ElementFlex extends Element { const width_avg = Math.max(0, Math.floor((widths - percentWidth) / (this._child - (percentWidth != 0 ? this._customWidths.length : 0)))) for (let i = Math.min((percentWidth != 0 ? this._customWidths.length : 0), children.length); i < children.length; i++) { const child = children[i]; - child.valueOf().style = this._childStyle + //child.valueOf().style = this._childStyle child.setStyle("boxSizing", "border-box") child.setStyle("width", (newwidth <= minwidth ? width : width_avg - get_margin(child)) + "px") } @@ -1481,6 +1586,122 @@ class ElementFlex extends Element { return this; } } +class ElementSwitch extends Element { + constructor(...buttons) { + super("div") + this.buttons = buttons + this.instancedbuttons = [] + this.selected = null + this.class("app-swtich-container") + this.handlers = [] + for (const bi in this.buttons) { + this.instancedbuttons.push((new Element("button")).class("app-switch-button").setI18N(this.buttons[bi]).event("click", (event) => { + this.click(this.instancedbuttons[bi], bi) + })) + } + this.append(...this.instancedbuttons) + this.click(this.instancedbuttons[0]) + } + click(target, index) { + if (index == this.selected) return + this.selected = index + this.instancedbuttons.forEach(e => e.removeClass("selected")) + target.class("selected") + this.handlers.forEach(e => e(index)) + } + select(index) { + this.click(this.instancedbuttons[index], index) + return this + } + event(name, func) { + if (name == "click") { + this.handlers.push(func) + } else { + super.event(name, func) + } + return this + } +} +class ElementRank extends Element { + constructor(option) { + super("div") + this.class("app-rank") + this.data = null + this.config = { + count: null, + rows: false, + formatter: null, + } + this.setOption(option) + } + setOption(option) { + this.config = { + ...option + } + this.update() + return this + } + setData(data) { + this.data = data + this.update() + return this + } + update() { + this.clear() + var data = [] + var isArrayType = true; + var isObjectType = true; + var total = 0; + if (this.data) { + this.data.forEach(e => { + if (Array.isArray(e)) { + isObjectType = false; + } else if (typeof e === 'object' && e !== null) { + isArrayType = false; + } else { + throw new Error("数据类型不符,数组中只能包含数组或对象"); + } + if (!isArrayType && !isObjectType) { + throw new Error("数据类型不符,数组中不能同时包含数组和对象"); + } + if (isArrayType) { + data.push({ + name: '', + value: e, + }); + total = Math.max(e, total); + } else { + data.push(e); + total = Math.max(e.value, total); + } + }); + } + if (this.config.count && data.length > this.config.count) { + data = data.slice(0, this.config.count); + } else if (this.config.count && data.length < this.config.count) { + while (data.length < this.config.count) { + data.push({ + name: '-', + value: 0 + }); + } + } + data.sort((a, b) => b.value - a.value) + for (const val of data) { + const div = app.createElement("div").class("app-rank-container") + const progress = app.createElement("div").class("app-rank-progressbar").append( + app.createElement("div").class("app-rank-progressbar-value").style(`width: ${total == 0 ? 0 : (val.value / total) * 100.0}%`) + ) + const text = app.createElement("div").class("app-rank-text").append( + app.createElement("p").class("normal").setText(val.name), + app.createElement("p").class("normal").setText(val.value) + ) + div.append(text, progress) + this.append(div) + } + return this + } +} class Console extends Element { constructor() { super("div") @@ -1503,7 +1724,7 @@ class Console extends Element { log(timestamp, ...msg) { var messages = [] var first = true; - for (msg of [`[${formatDate(timestamp)}]`, ...msg]) { + for (msg of [`[${formatTime(timestamp)}]`, ...msg]) { if (first) first = false; else messages.push(app.createElement("span").setText(" ")) var span = app.createElement("span") @@ -1604,7 +1825,26 @@ $I18N.addLangs("zh_cn", { "dashboard.cache.bytes": "缓存击中量", "dashboard.geo": "地理位置", "dashboard.distincts": "独立 IP", - "dashboard.peer": "峰值 %peer%" + "dashboard.peer": "峰值 %peer%", + "dashboard.basic": "基础统计", + "dashboard.pro": "高级统计", + "dashboard.geo.world": "世界", + "dashboard.geo.china": "中国", + "menu.dashboard": "数据统计", + "menu.config": "配置", + "menu.config.storage": "存储设置", + "tqdm": "%value%/%total%, %item%/s", + "storage.webdav": "正在获取WebDav文件中", + "cluster.want_enable": "正在启用", + "cluster.enabled.trusted": "正常工作", + "cluster.enabled": "正常工作(节点信任度过低)", + "files.checking": "正在检查文件中", + "files.downloading": "下载文件中", + "files.delete_old": "删除旧文件中", + "files.copying": "复制文件中", + "cluster.got.cert": "成功获取证书", + "cluster.get.cert": "获取证书中", + "files.fetching": "获取文件中" }) const $Country = [{code:"AF",name:"阿富汗",name_en:"Afghanistan"},{code:"AX",name:"奥兰",name_en:"Åland Islands"},{code:"AL",name:"阿尔巴尼亚",name_en:"Albania"},{code:"DZ",name:"阿尔及利亚",name_en:"Algeria"},{code:"AS",name:"美属萨摩亚",name_en:"American Samoa"},{code:"AD",name:"安道尔",name_en:"Andorra"},{code:"AO",name:"安哥拉",name_en:"Angola"},{code:"AI",name:"安圭拉",name_en:"Anguilla"},{code:"AQ",name:"南极洲",name_en:"Antarctica"},{code:"AG",name:"安提瓜和巴布达",name_en:"Antigua and Barbuda"},{code:"AR",name:"阿根廷",name_en:"Argentina"},{code:"AM",name:"亚美尼亚",name_en:"Armenia"},{code:"AW",name:"阿鲁巴",name_en:"Aruba"},{code:"AU",name:"澳大利亚",name_en:"Australia"},{code:"AT",name:"奥地利",name_en:"Austria"},{code:"AZ",name:"阿塞拜疆",name_en:"Azerbaijan"},{code:"BS",name:"巴哈马",name_en:"Bahamas"},{code:"BH",name:"巴林",name_en:"Bahrain"},{code:"BD",name:"孟加拉国",name_en:"Bangladesh"},{code:"BB",name:"巴巴多斯",name_en:"Barbados"},{code:"BY",name:"白俄罗斯",name_en:"Belarus"},{code:"BE",name:"比利时",name_en:"Belgium"},{code:"BZ",name:"伯利兹",name_en:"Belize"},{code:"BJ",name:"贝宁",name_en:"Benin"},{code:"BM",name:"百慕大",name_en:"Bermuda"},{code:"BT",name:"不丹",name_en:"Bhutan"},{code:"BO",name:"玻利维亚",name_en:"Bolivia (Plurinational State of)"},{code:"BQ",name:"荷兰加勒比区",name_en:"Bonaire,Sint Eustatius and Saba"},{code:"BA",name:"波黑",name_en:"Bosnia and Herzegovina"},{code:"BW",name:"博茨瓦纳",name_en:"Botswana"},{code:"BV",name:"布韦岛",name_en:"Bouvet Island"},{code:"BR",name:"巴西",name_en:"Brazil"},{code:"IO",name:"英属印度洋领地",name_en:"British Indian Ocean Territory"},{code:"BN",name:"文莱",name_en:"Brunei Darussalam"},{code:"BG",name:"保加利亚",name_en:"Bulgaria"},{code:"BF",name:"布基纳法索",name_en:"Burkina Faso"},{code:"BI",name:"布隆迪",name_en:"Burundi"},{code:"CV",name:"佛得角",name_en:"Cabo Verde"},{code:"KH",name:"柬埔寨",name_en:"Cambodia"},{code:"CM",name:"喀麦隆",name_en:"Cameroon"},{code:"CA",name:"加拿大",name_en:"Canada"},{code:"KY",name:"开曼群岛",name_en:"Cayman Islands"},{code:"CF",name:"中非",name_en:"Central African Republic"},{code:"TD",name:"乍得",name_en:"Chad"},{code:"CL",name:"智利",name_en:"Chile"},{code:"CN",name:"中国",name_en:"China"},{code:"CX",name:"圣诞岛",name_en:"Christmas Island"},{code:"CC",name:"科科斯(基林)群岛",name_en:"Cocos (Keeling) Islands"},{code:"CO",name:"哥伦比亚",name_en:"Colombia"},{code:"KM",name:"科摩罗",name_en:"Comoros"},{code:"CG",name:"刚果共和国",name_en:"Congo"},{code:"CD",name:"刚果民主共和国",name_en:"Congo (Democratic Republic of the)"},{code:"CK",name:"库克群岛",name_en:"Cook Islands"},{code:"CR",name:"哥斯达黎加",name_en:"Costa Rica"},{code:"CI",name:"科特迪瓦",name_en:"Côte d'Ivoire"},{code:"HR",name:"克罗地亚",name_en:"Croatia"},{code:"CU",name:"古巴",name_en:"Cuba"},{code:"CW",name:"库拉索",name_en:"Curacao !Curaçao"},{code:"CY",name:"塞浦路斯",name_en:"Cyprus"},{code:"CZ",name:"捷克",name_en:"Czechia"},{code:"DK",name:"丹麦",name_en:"Denmark"},{code:"DJ",name:"吉布提",name_en:"Djibouti"},{code:"DM",name:"多米尼克",name_en:"Dominica"},{code:"DO",name:"多米尼加",name_en:"Dominican Republic"},{code:"EC",name:"厄瓜多尔",name_en:"Ecuador"},{code:"EG",name:"埃及",name_en:"Egypt"},{code:"SV",name:"萨尔瓦多",name_en:"El Salvador"},{code:"GQ",name:"赤道几内亚",name_en:"Equatorial Guinea"},{code:"ER",name:"厄立特里亚",name_en:"Eritrea"},{code:"EE",name:"爱沙尼亚",name_en:"Estonia"},{code:"SZ",name:"斯威士兰",name_en:"Eswatini"},{code:"ET",name:"埃塞俄比亚",name_en:"Ethiopia"},{code:"FK",name:"福克兰群岛",name_en:"Falkland Islands (Malvinas)"},{code:"FO",name:"法罗群岛",name_en:"Faroe Islands"},{code:"FJ",name:"斐济",name_en:"Fiji"},{code:"FI",name:"芬兰",name_en:"Finland"},{code:"FR",name:"法国",name_en:"France"},{code:"GF",name:"法属圭亚那",name_en:"French Guiana"},{code:"PF",name:"法属波利尼西亚",name_en:"French Polynesia"},{code:"TF",name:"法属南部和南极领地",name_en:"French Southern Territories"},{code:"GA",name:"加蓬",name_en:"Gabon"},{code:"GM",name:"冈比亚",name_en:"Gambia"},{code:"GE",name:"格鲁吉亚",name_en:"Georgia"},{code:"DE",name:"德国",name_en:"Germany"},{code:"GH",name:"加纳",name_en:"Ghana"},{code:"GI",name:"直布罗陀",name_en:"Gibraltar"},{code:"GR",name:"希腊",name_en:"Greece"},{code:"GL",name:"格陵兰",name_en:"Greenland"},{code:"GD",name:"格林纳达",name_en:"Grenada"},{code:"GP",name:"瓜德罗普",name_en:"Guadeloupe"},{code:"GU",name:"关岛",name_en:"Guam"},{code:"GT",name:"危地马拉",name_en:"Guatemala"},{code:"GG",name:"根西",name_en:"Guernsey"},{code:"GN",name:"几内亚",name_en:"Guinea"},{code:"GW",name:"几内亚比绍",name_en:"Guinea-Bissau"},{code:"GY",name:"圭亚那",name_en:"Guyana"},{code:"HT",name:"海地",name_en:"Haiti"},{code:"HM",name:"赫德岛和麦克唐纳群岛",name_en:"Heard Island and McDonald Islands"},{code:"VA",name:"梵蒂冈",name_en:"Holy See"},{code:"HN",name:"洪都拉斯",name_en:"Honduras"},{code:"HU",name:"匈牙利",name_en:"Hungary"},{code:"IS",name:"冰岛",name_en:"Iceland"},{code:"IN",name:"印度",name_en:"India"},{code:"ID",name:"印尼",name_en:"Indonesia"},{code:"IR",name:"伊朗",name_en:"Iran (Islamic Republic of)"},{code:"IQ",name:"伊拉克",name_en:"Iraq"},{code:"IE",name:"爱尔兰",name_en:"Ireland"},{code:"IM",name:"马恩岛",name_en:"Isle of Man"},{code:"IL",name:"以色列",name_en:"Israel"},{code:"IT",name:"意大利",name_en:"Italy"},{code:"JM",name:"牙买加",name_en:"Jamaica"},{code:"JP",name:"日本",name_en:"Japan"},{code:"JE",name:"泽西",name_en:"Jersey"},{code:"JO",name:"约旦",name_en:"Jordan"},{code:"KZ",name:"哈萨克斯坦",name_en:"Kazakhstan"},{code:"KE",name:"肯尼亚",name_en:"Kenya"},{code:"KI",name:"基里巴斯",name_en:"Kiribati"},{code:"KP",name:"朝鲜",name_en:"Korea (Democratic People's Republic of)"},{code:"KR",name:"韩国",name_en:"Korea (Republic of)"},{code:"XK",name:"科索沃",name_en:"Kosovo"},{code:"KW",name:"科威特",name_en:"Kuwait"},{code:"KG",name:"吉尔吉斯斯坦",name_en:"Kyrgyzstan"},{code:"LA",name:"老挝",name_en:"Lao People's Democratic Republic"},{code:"LV",name:"拉脱维亚",name_en:"Latvia"},{code:"LB",name:"黎巴嫩",name_en:"Lebanon"},{code:"LS",name:"莱索托",name_en:"Lesotho"},{code:"LR",name:"利比里亚",name_en:"Liberia"},{code:"LY",name:"利比亚",name_en:"Libya"},{code:"LI",name:"列支敦士登",name_en:"Liechtenstein"},{code:"LT",name:"立陶宛",name_en:"Lithuania"},{code:"LU",name:"卢森堡",name_en:"Luxembourg"},{code:"MG",name:"马达加斯加",name_en:"Madagascar"},{code:"MW",name:"马拉维",name_en:"Malawi"},{code:"MY",name:"马来西亚",name_en:"Malaysia"},{code:"MV",name:"马尔代夫",name_en:"Maldives"},{code:"ML",name:"马里",name_en:"Mali"},{code:"MT",name:"马耳他",name_en:"Malta"},{code:"MH",name:"马绍尔群岛",name_en:"Marshall Islands"},{code:"MQ",name:"马提尼克",name_en:"Martinique"},{code:"MR",name:"毛里塔尼亚",name_en:"Mauritania"},{code:"MU",name:"毛里求斯",name_en:"Mauritius"},{code:"YT",name:"马约特",name_en:"Mayotte"},{code:"MX",name:"墨西哥",name_en:"Mexico"},{code:"FM",name:"密克罗尼西亚联邦",name_en:"Micronesia (Federated States of)"},{code:"MD",name:"摩尔多瓦",name_en:"Moldova (Republic of)"},{code:"MC",name:"摩纳哥",name_en:"Monaco"},{code:"MN",name:"蒙古",name_en:"Mongolia"},{code:"ME",name:"黑山",name_en:"Montenegro"},{code:"MS",name:"蒙特塞拉特",name_en:"Montserrat"},{code:"MA",name:"摩洛哥",name_en:"Morocco"},{code:"MZ",name:"莫桑比克",name_en:"Mozambique"},{code:"MM",name:"缅甸",name_en:"Myanmar"},{code:"NA",name:"纳米比亚",name_en:"Namibia"},{code:"NR",name:"瑙鲁",name_en:"Nauru"},{code:"NP",name:"尼泊尔",name_en:"Nepal"},{code:"NL",name:"荷兰",name_en:"Netherlands"},{code:"NC",name:"新喀里多尼亚",name_en:"New Caledonia"},{code:"NZ",name:"新西兰",name_en:"New Zealand"},{code:"NI",name:"尼加拉瓜",name_en:"Nicaragua"},{code:"NE",name:"尼日尔",name_en:"Niger"},{code:"NG",name:"尼日利亚",name_en:"Nigeria"},{code:"NU",name:"纽埃",name_en:"Niue"},{code:"NF",name:"诺福克岛",name_en:"Norfolk Island"},{code:"MK",name:"北马其顿",name_en:"North Macedonia"},{code:"MP",name:"北马里亚纳群岛",name_en:"Northern Mariana Islands"},{code:"NO",name:"挪威",name_en:"Norway"},{code:"OM",name:"阿曼",name_en:"Oman"},{code:"PK",name:"巴基斯坦",name_en:"Pakistan"},{code:"PW",name:"帕劳",name_en:"Palau"},{code:"PS",name:"巴勒斯坦",name_en:"Palestine,State of"},{code:"PA",name:"巴拿马",name_en:"Panama"},{code:"PG",name:"巴布亚新几内亚",name_en:"Papua New Guinea"},{code:"PY",name:"巴拉圭",name_en:"Paraguay"},{code:"PE",name:"秘鲁",name_en:"Peru"},{code:"PH",name:"菲律宾",name_en:"Philippines"},{code:"PN",name:"皮特凯恩群岛",name_en:"Pitcairn"},{code:"PL",name:"波兰",name_en:"Poland"},{code:"PT",name:"葡萄牙",name_en:"Portugal"},{code:"PR",name:"波多黎各",name_en:"Puerto Rico"},{code:"QA",name:"卡塔尔",name_en:"Qatar"},{code:"RE",name:"留尼汪",name_en:"Réunion"},{code:"RO",name:"罗马尼亚",name_en:"Romania"},{code:"RU",name:"俄罗斯",name_en:"Russian Federation"},{code:"RW",name:"卢旺达",name_en:"Rwanda"},{code:"BL",name:"圣巴泰勒米",name_en:"Saint Barthélemy"},{code:"SH",name:"圣赫勒拿、阿森松和特里斯坦-达库尼亚",name_en:"Saint Helena,Ascension and Tristan da Cunha"},{code:"KN",name:"圣基茨和尼维斯",name_en:"Saint Kitts and Nevis"},{code:"LC",name:"圣卢西亚",name_en:"Saint Lucia"},{code:"MF",name:"法属圣马丁",name_en:"Saint Martin (French part)"},{code:"PM",name:"圣皮埃尔和密克隆",name_en:"Saint Pierre and Miquelon"},{code:"VC",name:"圣文森特和格林纳丁斯",name_en:"Saint Vincent and the Grenadines"},{code:"WS",name:"萨摩亚",name_en:"Samoa"},{code:"SM",name:"圣马力诺",name_en:"San Marino"},{code:"ST",name:"圣多美和普林西比",name_en:"Sao Tome and Principe"},{code:"SA",name:"沙特阿拉伯",name_en:"Saudi Arabia"},{code:"SN",name:"塞内加尔",name_en:"Senegal"},{code:"RS",name:"塞尔维亚",name_en:"Serbia"},{code:"SC",name:"塞舌尔",name_en:"Seychelles"},{code:"SL",name:"塞拉利昂",name_en:"Sierra Leone"},{code:"SG",name:"新加坡",name_en:"Singapore"},{code:"SX",name:"荷属圣马丁",name_en:"Sint Maarten (Dutch part)"},{code:"SK",name:"斯洛伐克",name_en:"Slovakia"},{code:"SI",name:"斯洛文尼亚",name_en:"Slovenia"},{code:"SB",name:"所罗门群岛",name_en:"Solomon Islands"},{code:"SO",name:"索马里",name_en:"Somalia"},{code:"ZA",name:"南非",name_en:"South Africa"},{code:"GS",name:"南乔治亚和南桑威奇群岛",name_en:"South Georgia and the South Sandwich Islands"},{code:"SS",name:"南苏丹",name_en:"South Sudan"},{code:"ES",name:"西班牙",name_en:"Spain"},{code:"LK",name:"斯里兰卡",name_en:"Sri Lanka"},{code:"SD",name:"苏丹",name_en:"Sudan"},{code:"SR",name:"苏里南",name_en:"Suriname"},{code:"SJ",name:"斯瓦尔巴和扬马延",name_en:"Svalbard and Jan Mayen"},{code:"SE",name:"瑞典",name_en:"Sweden"},{code:"CH",name:"瑞士",name_en:"Switzerland"},{code:"SY",name:"叙利亚",name_en:"Syrian Arab Republic"},{code:"TJ",name:"塔吉克斯坦",name_en:"Tajikistan"},{code:"TZ",name:"坦桑尼亚",name_en:"Tanzania,United Republic of"},{code:"TH",name:"泰国",name_en:"Thailand"},{code:"TL",name:"东帝汶",name_en:"Timor-Leste"},{code:"TG",name:"多哥",name_en:"Togo"},{code:"TK",name:"托克劳",name_en:"Tokelau"},{code:"TO",name:"汤加",name_en:"Tonga"},{code:"TT",name:"特立尼达和多巴哥",name_en:"Trinidad and Tobago"},{code:"TN",name:"突尼斯",name_en:"Tunisia"},{code:"TR",name:"土耳其",name_en:"Turkey"},{code:"TM",name:"土库曼斯坦",name_en:"Turkmenistan"},{code:"TC",name:"特克斯和凯科斯群岛",name_en:"Turks and Caicos Islands"},{code:"TV",name:"图瓦卢",name_en:"Tuvalu"},{code:"UG",name:"乌干达",name_en:"Uganda"},{code:"UA",name:"乌克兰",name_en:"Ukraine"},{code:"AE",name:"阿联酋",name_en:"United Arab Emirates"},{code:"GB",name:"英国",name_en:"United Kingdom of Great Britain and Northern Ireland"},{code:"US",name:"美国",name_en:"United States of America"},{code:"UM",name:"美国本土外小岛屿",name_en:"United States Minor Outlying Islands"},{code:"UY",name:"乌拉圭",name_en:"Uruguay"},{code:"UZ",name:"乌兹别克斯坦",name_en:"Uzbekistan"},{code:"VU",name:"瓦努阿图",name_en:"Vanuatu"},{code:"VE",name:"委内瑞拉",name_en:"Venezuela (Bolivarian Republic of)"},{code:"VN",name:"越南",name_en:"Viet Nam"},{code:"VG",name:"英属维尔京群岛",name_en:"Virgin Islands (British)"},{code:"VI",name:"美属维尔京群岛",name_en:"Virgin Islands (U.S.)"},{code:"WF",name:"瓦利斯和富图纳",name_en:"Wallis and Futuna"},{code:"EH",name:"西撒哈拉",name_en:"Western Sahara"},{code:"YE",name:"也门",name_en:"Yemen"},{code:"ZM",name:"赞比亚",name_en:"Zambia"},{code:"ZW",name:"津巴布韦",name_en:"Zimbabwe"}] const formatTime = (timestamp) => { @@ -1613,7 +1853,7 @@ const formatTime = (timestamp) => { } const formatDate = (timestamp) => { timestamp = timestamp instanceof Date ? timestamp : new Date(timestamp); - return `${timestamp.getFullYear().toString().padStart(4, '0')}-${(timestamp.getMonth() + 1).toString().padStart(2, '0')}-${timestamp.getDate().toString().padStart(2, '0')} ${timestamp.getHours().toString().padStart(2, '0')}:${timestamp.getMinutes().toString().padStart(2, '0')}:${timestamp.getSeconds().toString().padStart(2, '0')}` + return `${timestamp.getFullYear().toString().padStart(4, '0')}-${(timestamp.getMonth() + 1).toString().padStart(2, '0')}-${timestamp.getDate().toString().padStart(2, '0')}` } const clamp = (min, cur, max) => { return Math.max(min, Math.min(cur, max)); @@ -1624,6 +1864,17 @@ const getCookie = (name) => { if (parts.length === 2) return parts.pop().split(';').shift(); return null; } +const fillDates = (dates) => { + const latestDateStr = Object.keys(dates).reduce((latest, current) => + new Date(current + " 00:00:00") > new Date(latest + " 00:00:00") ? current : latest) + const latestDate = (new Date(latestDateStr + " 00:00:00")).valueOf(); + const filledDates = {}; + + for (let i = Object.keys(filledDates).length; i < 30; i++) { + filledDates[formatDate(new Date(latestDate + (i - 31) * 86400000))] = 0 + } + return {...filledDates, ...dates }; +} $github = (() => { for (child of document.head.children) { if (child.getAttribute("github")) return "//github.com/" + child.getAttribute("github") @@ -1642,7 +1893,7 @@ app.$Menu.add("dashboard", new class { this._unit_number = ["", "k", "M", "G", "T", "P", "E"] } async init() { - this.switch = (new ElementSwitch("BASIC", "PRO")).event("click", (index) => { + this.switch = (new ElementSwitch("dashboard.basic", "dashboard.pro")).event("click", (index) => { this.page[2].clear() this.clear() $progress.set(33) @@ -1667,7 +1918,7 @@ app.$Menu.add("dashboard", new class { this._e_memory = app.createEcharts().style("min-height: 162px;") this._e_connection = app.createEcharts().style("min-height: 162px;") this.geo_type = "world" - this.switch_geo = (new ElementSwitch("世界", "中国")).style("border: 1px solid var(--border-color);").event("click", (index) => { + this.switch_geo = (new ElementSwitch("dashboard.geo.world", "dashboard.geo.china")).style("border: 1px solid var(--border-color);").event("click", (index) => { if (index == 0) this.geo_type = "world" else this.geo_type = "china" this.drawGEO() @@ -1696,11 +1947,27 @@ app.$Menu.add("dashboard", new class { ), app.createElement("div").append( app.createElement("p").class("title").setI18N("dashboard.status"), - app.createElement("p").class("value").setText("-") + app.createElement("p").append( + app.createElement("span").class("value").setText("-"), + app.createElement("span").append( + app.createElement("span").class("value").setText(" | "), + app.createElement("span").class("value").setText(""), + app.createElement("span").class("value").setText(" "), + app.createElement("span").setText("") + ), + ) ) ).minWidth(896).child(2) ), - app.createFlex().minWidth(1148).childWidths(60, 40).append( + app.createElement("div").class("panel nopadding").style("margin-bottom: 0").append( + app.createElement("div").class("flex-space-between").append( + this.switch + ) + ), + app.createElement("div") + ] + this.basic = [ + app.createFlex(true).minWidth(1148).childWidths(60, 40).append( app.createElement("div").append( app.createElement("div").class("panel").append( app.createFlex().child(4).append( @@ -1751,7 +2018,7 @@ app.$Menu.add("dashboard", new class { this._be_qps ) ), - app.createFlex().child(2).append( + app.createFlex(true).child(2).append( app.createElement("div").class("panel").append( app.createElement("p").class("title").setI18N("dashboard.download.hourly"), this._e_hourly.hits @@ -1768,15 +2035,14 @@ app.$Menu.add("dashboard", new class { app.createElement("p").class("title").setI18N("dashboard.bytes.daily"), this._e_daily.bytes ) - ).child(2).minWidth(896).addResize(() => { + ).minWidth(1148).addResize(() => { for (var e of [this._e_hourly, this._e_daily]) { for (var o of Object.values(e)) { o.resize() } } - this._e_qps.resize() + this._be_qps.resize() }) - ] this.pro = [ app.createFlex(true).minWidth(1280).childWidths(70, 30).append( @@ -1863,7 +2129,6 @@ app.$Menu.add("dashboard", new class { var option = { tooltip: { trigger: 'axis', - formatter: e => '
' + e[0].name + '
QPSAvg: ' + (e[0].data / 5) + " total: " + e[0].data + '
', }, stateAnimation: { duration: 300, @@ -1916,37 +2181,15 @@ app.$Menu.add("dashboard", new class { }, } ] - }) - window.addEventListener("themeChange", () => { - this.drawDashboard() - this.drawQPS() - }) - await $MainSocket.send("uptime").then((data) => { - this.uptime = data - }) - await $MainSocket.send("status").then((data) => { - this.status = data - }) - await $MainSocket.send("qps").then((data) => { - this.qps = data - this.drawQPS() - }) - await $MainSocket.send("dashboard").then((data) => { - this.dashboard = data - this.drawDashboard() - }) - window.addEventListener("mainsocket_status", (data) => { - this.status = data.detail - this.setStatus() - }) - window.addEventListener("mainsocket_disconnect", (data) => { - this.uptime = null - }) - window.addEventListener("mainsocket_connect", (data) => { - $MainSocket.send("uptime").then((data) => { - this.uptime = data - }) - }) + } + this._be_qps.setOption(option) + this._pe_qps.setOption(option) + this.uptimeTimer = app.runTaskRepeat(() => { + this.page[0].getChildren()[0].getChildren()[0].getChildren()[1].setText(this._format_time(this.uptime, true)) + }, 0, 1000) + } + initBasic() { + this.initGlobals() this._e_options = { tooltip: { trigger: 'axis' @@ -1974,12 +2217,9 @@ app.$Menu.add("dashboard", new class { o.setOption(this._e_options) } } - this.setDisplay() this.setStatus(); this.qpsTimer?.block() this.systemTimer?.block() - this.dashboardTimer?.block() - this.uptimeTimer?.block() this.qpsTimer = app.runTaskRepeat(() => { $MainSocket.send("qps").then((data) => { this.qps = data @@ -2142,9 +2382,6 @@ app.$Menu.add("dashboard", new class { } return `
${params[0].name}
${template}
` } - setDisplay() { - //this.page[0].getChildren()[0].getChildren()[0].getChildren()[1].setText(this._format_time(this.uptime, true)) - } _hourly() { return Array.from({length: 24}, (_, i) => $I18N.t("unit.hourly", {hour: i})) } @@ -2245,15 +2482,17 @@ app.$Menu.add("dashboard", new class { { let io, cache; { - io = Array.from({ length: 30 }, (_, __) => 0); - cache = Array.from({ length: 30 }, (_, __) => 0); + io = {} + cache = {} for (const val of daily_data) { io[val._day] = val.hits cache[val._day] = val.cache_hits } + io = fillDates(io) + cache = fillDates(cache) this._e_daily.hits.setOption({ xAxis: { - data: this._daily() + data: Object.keys(io) }, legend: { data: [$I18N.t("dashboard.io.hits"), $I18N.t("dashboard.cache.hits")], @@ -2262,7 +2501,7 @@ app.$Menu.add("dashboard", new class { } }, yAxis: { - max: Math.max(10, ...io, ...cache), + max: Math.max(10, ...Object.values(io), ...Object.values(cache)), }, series: [{ name: $I18N.t("dashboard.io.hits"), @@ -2278,15 +2517,17 @@ app.$Menu.add("dashboard", new class { }) - io = Array.from({ length: 30 }, (_, __) => 0); - cache = Array.from({ length: 30 }, (_, __) => 0); + io = {} + cache = {} for (const val of daily_data) { io[val._day] = val.bytes cache[val._day] = val.cache_bytes } + io = fillDates(io) + cache = fillDates(cache) this._e_daily.bytes.setOption({ xAxis: { - data: this._daily() + data: Object.keys(io) }, legend: { data: [$I18N.t("dashboard.io.bytes"), $I18N.t("dashboard.cache.bytes")], @@ -2295,7 +2536,7 @@ app.$Menu.add("dashboard", new class { } }, yAxis: { - max: Math.max(10, ...io, ...cache), + max: Math.max(10, ...Object.values(io), ...Object.values(cache)), axisLabel: { formatter: (value) => { return this._format_bytes(value) @@ -2357,16 +2598,18 @@ app.$Menu.add("dashboard", new class { value: e.value } }) - var name = $Country.filter(c => c.code == "CN")[0] || { - code: '', - name: '', - name_en: '' + if (cn_data != 0) { + var name = $Country.filter(c => c.code == "CN")[0] || { + code: '', + name: '', + name_en: '' + } + data.push({ + name: name.name_en, + display_name: name.name, + value: cn_data + }) } - data.push({ - name: name.name_en, - display_name: name.name, - value: cn_data - }) } else { data = this.global_stats.addresses.filter(e => e.country == "CN").map(e => { return { @@ -2420,12 +2663,12 @@ app.$Menu.add("dashboard", new class { var hits, bytes; hits = this.dashboard.hourly.reduce((sum, i) => sum + i.hits + i.cache_hits, 0) bytes = this.dashboard.hourly.reduce((sum, i) => sum + i.bytes + i.cache_bytes, 0) - this.page[1].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[1].setText(this._format_number_unit(hits)) - this.page[1].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[1].getChildren()[1].setText(this._format_bytes(bytes)) + this.basic[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[1].setText(this._format_number_unit(hits)) + this.basic[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[1].getChildren()[1].setText(this._format_bytes(bytes)) hits = this.dashboard.days.reduce((sum, i) => sum + i.hits + i.cache_hits, 0) bytes = this.dashboard.days.reduce((sum, i) => sum + i.bytes + i.cache_bytes, 0) - this.page[1].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[2].getChildren()[1].setText(this._format_number_unit(hits)) - this.page[1].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[3].getChildren()[1].setText(this._format_bytes(bytes)) + this.basic[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[2].getChildren()[1].setText(this._format_number_unit(hits)) + this.basic[0].getChildren()[0].getChildren()[0].getChildren()[0].getChildren()[3].getChildren()[1].setText(this._format_bytes(bytes)) this.basic[0].getChildren()[0].getChildren()[1].getChildren()[0].getChildren()[0].getChildren()[1].setText(this._format_number_unit(this.system.connections)) this.basic[0].getChildren()[0].getChildren()[1].getChildren()[0].getChildren()[1].getChildren()[1].setText(this._format_bytes(this.system.memory)) @@ -2450,7 +2693,17 @@ app.$Menu.add("dashboard", new class { this.pro[0].getChildren()[1].getChildren()[0].getChildren()[0].getChildren()[1].t18n({ peer: Math.max(...Object.values(visits)) }) } setStatus() { - this.page[0].getChildren()[0].getChildren()[1].getChildren()[1].setText(this.status.progress ? this.status.progress.desc : this.status.key) + this.page[0].getChildren()[0].getChildren()[1].getChildren()[1].getChildren()[0].setI18N(this.status.key) + this.page[0].getChildren()[0].getChildren()[1].getChildren()[1].getChildren()[1].style(`display: ${this.status.progress ? 'inline' : 'none'}`) + if (this.status.progress) { + var value_formatter = this.status.progress.desc == "files.downloading" ? (n) => this._format_bytes(n) : (n) => n + this.page[0].getChildren()[0].getChildren()[1].getChildren()[1].getChildren()[1].getChildren()[1].setI18N(this.status.progress.desc) + this.page[0].getChildren()[0].getChildren()[1].getChildren()[1].getChildren()[1].getChildren()[3].setI18N("tqdm", { + value: value_formatter(this.status.progress.value), + total: value_formatter(this.status.progress.total), + item: value_formatter(this.status.progress.speed), + }) + } } _format_time(n, sub = false) { if (n == null) return "-" @@ -2468,46 +2721,17 @@ app.$Menu.add("dashboard", new class { resize() { } disconnect() { + this.qpsTimer?.block() + this.systemTimer?.block() + this.dashboardTimer?.block() this.uptimeTimer?.block() - } -}) -app.$Menu.add("config.storage", new class { - constructor() { - - } - connect() { - return new Promise((resolve, reject) => { - - }) - } - disconnect() { - - } -}) -app.$Menu.add("config.storage", new class { - constructor() { - - } - connect() { - return new Promise((resolve, reject) => { - - }) - } - disconnect() { - - } -}) -app.$Menu.add("config.storage", new class { - constructor() { - - } - connect() { - return new Promise((resolve, reject) => { - - }) - } - disconnect() { - + this.globalTimer?.block() + for (var e of [this._e_hourly, this._e_daily]) { + for (var o of Object.values(e)) { + o.clear() + } + } + this._e_qps.clear() } }) app.$Menu.add("config.storage", new class { diff --git a/bmclapi_dashboard/static/js/map.min.js b/bmclapi_dashboard/static/js/map.min.js new file mode 100644 index 0000000..d3b6ac4 --- /dev/null +++ b/bmclapi_dashboard/static/js/map.min.js @@ -0,0 +1 @@ +echarts.registerMap('china', {"type":"FeatureCollection","features":[{"type":"Feature","id":"710000","properties":{"id":"710000","cp":[121.509062,24.044332],"name":"台湾","childNum":6},"geometry":{"type":"MultiPolygon","coordinates":[["@@°Ü¯Û"],["@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"],["@@\\p|WoYG¿¥I†j@¢"],["@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I"],["@@ÆEE—„kWqë @œ"],["@@fced"],["@@„¯ɜÄèaì¯ØǓIġĽ"],["@@çûĖ롖hòř "]],"encodeOffsets":[[[122886,24033]],[[123335,22980]],[[122375,24193]],[[122518,24117]],[[124427,22618]],[[124862,26043]],[[126259,26318]],[[127671,26683]]]}},{"type":"Feature","id":"130000","properties":{"id":"130000","cp":[114.502461,38.045474],"name":"河北","childNum":3},"geometry":{"type":"MultiPolygon","coordinates":[["@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e"],["@@U`Ts¿m‚"],["@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧˏfŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgƊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|ǰ…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃ͚¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@c̬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®Vйd^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qáµ§š™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚"]],"encodeOffsets":[[[119712,40641]],[[121616,39981]],[[116462,37237]]]}},{"type":"Feature","id":"140000","properties":{"id":"140000","cp":[111.849248,36.857014],"name":"山西","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz"],"encodeOffsets":[[116874,41716]]}},{"type":"Feature","id":"150000","properties":{"id":"150000","cp":[111.670801,41.818311],"name":"内蒙古","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–Rë¥_ŽsgÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉv¦wĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot×¶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ÈˆÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µsKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚǏĞGȖƴƀj`ĢçĶāàŃºē̃ĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTĞªŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFǜƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ġu¦öČ^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ"]],"encodeOffsets":[[[129102,52189]]]}},{"type":"Feature","id":"210000","properties":{"id":"210000","cp":[123.429096,41.796767],"name":"辽宁","childNum":16},"geometry":{"type":"MultiPolygon","coordinates":[["@@L–Ž@@s™a"],["@@MnNm"],["@@d‚c"],["@@eÀ‚C@b‚“‰"],["@@f‡…Xwkbr–Ä`qg"],["@@^jtW‘Q"],["@@~ Y]c"],["@@G`ĔN^_¿Z‚ÃM"],["@@iX¶B‹Y"],["@@„YƒZ"],["@@L_{Epf"],["@@^WqCT\\"],["@@\\[“‹§t|”¤_"],["@@m`n_"],["@@Ïxnj{q_×^Giip"],["@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA"]],"encodeOffsets":[[[123686,41445]],[[126019,40435]],[[124393,40128]],[[126117,39963]],[[125322,40140]],[[126686,40700]],[[126041,40374]],[[125584,40168]],[[125453,40165]],[[125362,40214]],[[125280,40291]],[[125774,39997]],[[125976,40496]],[[125822,39993]],[[125509,40217]],[[122731,40949]]]}},{"type":"Feature","id":"220000","properties":{"id":"220000","cp":[125.3245,43.886841],"name":"吉林","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG"],"encodeOffsets":[[130196,42528]]}},{"type":"Feature","id":"230000","properties":{"id":"230000","cp":[128.642464,46.756967],"name":"黑龙江","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tޏĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîά|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]"]],"encodeOffsets":[[[134456,44547]]]}},{"type":"Feature","id":"320000","properties":{"id":"320000","cp":[119.767413,33.041544],"name":"江苏","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@ƹhågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ"],"encodeOffsets":[[121740,32276]]}},{"type":"Feature","id":"330000","properties":{"id":"330000","cp":[120.153576,29.287459],"name":"浙江","childNum":45},"geometry":{"type":"MultiPolygon","coordinates":[["@@E^dQ]K"],["@@jX^j‡"],["@@sfŠbU‡"],["@@qP\\xz[ck"],["@@‘Rƒ¢‚FX}°[s_"],["@@Cbœ\\—}"],["@@e|v\\la{u"],["@@v~u}"],["@@QxÂF¯}"],["@@¹nŒvÞs¯o"],["@@rSkUEj"],["@@bi­ZŒP"],["@@p[}INf"],["@@À¿€"],["@@¹dnbŒ…"],["@@rSŸBnR"],["@@g~h}"],["@@FlEk"],["@@OdPc"],["@@v[u\\"],["@@FjâL~wyoo~›sµL–\\"],["@@¬e¹aNˆ"],["@@\\nÔ¡q]L³ë\\ÿ®ŒQ֎"],["@@ÊA­©[¬"],["@@KxŒv­"],["@@@hlIk]"],["@@pW{o||j"],["@@Md|_mC"],["@@¢…X£ÏylD¼XˆtH"],["@@hlÜ[LykAvyfw^Ež›¤"],["@@fp¤Mus“R"],["@@®_ma~•LÁ¬šZ"],["@@iM„xZ"],["@@ZcYd"],["@@Z~dOSo|A¿qZv"],["@@@`”EN¡v"],["@@|–TY{"],["@@@n@m"],["@@XWkCT\\"],["@@ºwšZRkĕWO¢"],["@@™X®±Grƪ\\ÔáXq{‹"],["@@ůTG°ĄLHm°UC‹"],["@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВj碷ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈÚœĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst"],["@@o\\V’zRZ}y"],["@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™"]],"encodeOffsets":[[[125592,31553]],[[125785,31436]],[[125729,31431]],[[125513,31380]],[[125223,30438]],[[125115,30114]],[[124815,29155]],[[124419,28746]],[[124095,28635]],[[124005,28609]],[[125000,30713]],[[125111,30698]],[[125078,30682]],[[125150,30684]],[[124014,28103]],[[125008,31331]],[[125411,31468]],[[125329,31479]],[[125626,30916]],[[125417,30956]],[[125254,30976]],[[125199,30997]],[[125095,31058]],[[125083,30915]],[[124885,31015]],[[125218,30798]],[[124867,30838]],[[124755,30788]],[[124802,30809]],[[125267,30657]],[[125218,30578]],[[125200,30562]],[[124968,30474]],[[125167,30396]],[[124955,29879]],[[124714,29781]],[[124762,29462]],[[124325,28754]],[[123990,28459]],[[125366,31477]],[[125115,30363]],[[125369,31139]],[[122495,31878]],[[125329,30690]],[[125192,30787]]]}},{"type":"Feature","id":"340000","properties":{"id":"340000","cp":[117.283042,31.26119],"name":"安徽","childNum":3},"geometry":{"type":"MultiPolygon","coordinates":[["@@^iuLX^"],["@@‚e©Ehl"],["@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜÆ¶ĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆßŽF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴ˶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´"]],"encodeOffsets":[[[121722,32278]],[[119475,30423]],[[119168,35472]]]}},{"type":"Feature","id":"350000","properties":{"id":"350000","cp":[118.306239,26.075302],"name":"福建","childNum":18},"geometry":{"type":"MultiPolygon","coordinates":[["@@“zht´‡]"],["@@aj^~ĆG—©O"],["@@ed¨„C}}i"],["@@@vˆPGsQ"],["@@‰sBz‚ddW]Q"],["@@SލQ“{"],["@@NŽVucW"],["@@qptBAq"],["@@‰’¸[mu"],["@@Q\\pD]_"],["@@jSwUadpF"],["@@eXª~ƒ•"],["@@AjvFso"],["@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°"],["@@IjJi"],["@@wJI€ˆxš«¼AoNe{M­"],["@@K‰±¡Óˆ”ČäeZ"],["@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_"]],"encodeOffsets":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[122887,26845]],[[122808,26762]],[[122568,25912]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[123388,27005]],[[122450,26243]],[[122578,25962]],[[121255,25103]],[[120987,24903]],[[122339,25802]],[[121042,25093]],[[122439,26024]]]}},{"type":"Feature","id":"360000","properties":{"id":"360000","cp":[115.592151,27.676493],"name":"江西","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@ĢĨƐgÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗ⼋mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²"],"encodeOffsets":[[116689,26234]]}},{"type":"Feature","id":"370000","properties":{"id":"370000","cp":[118.000923,36.275807],"name":"山东","childNum":13},"geometry":{"type":"MultiPolygon","coordinates":[["@@Xjd]{K"],["@@itbFHy"],["@@HlGk"],["@@T‚ŒGŸy"],["@@K¬˜•‹U"],["@@WdXc"],["@@PtOs"],["@@•LnXhc"],["@@ppVƒu]Or"],["@@cdzAUa"],["@@udRhnCI‡"],["@@ˆoIƒpR„"],["@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞÆ„LĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌǜbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐ˹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~ݏY’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuٌg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ"]],"encodeOffsets":[[[123806,39303]],[[123821,39266]],[[123742,39256]],[[123702,39203]],[[123649,39066]],[[123847,38933]],[[123580,38839]],[[123894,37288]],[[123043,36624]],[[123344,38676]],[[123522,38857]],[[123628,38858]],[[118260,36742]]]}},{"type":"Feature","id":"410000","properties":{"id":"410000","cp":[113.665412,33.757975],"name":"河南","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m"],"encodeOffsets":[[118256,37017]]}},{"type":"Feature","id":"420000","properties":{"id":"420000","cp":[113.298572,30.684355],"name":"湖北","childNum":3},"geometry":{"type":"MultiPolygon","coordinates":[["@@AB‚"],["@@lskt"],["@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙæŠšŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYЧHK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆ̶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤"]],"encodeOffsets":[[[113712,34000]],[[115612,30507]],[[113649,34054]]]}},{"type":"Feature","id":"430000","properties":{"id":"430000","cp":[111.782279,28.09409],"name":"湖南","childNum":3},"geometry":{"type":"MultiPolygon","coordinates":[["@@—n„FTs"],["@@ßÅÆá‰½ÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–̾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M"],["@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJβSÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUоÅ‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPᜣEXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎۃƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ"]],"encodeOffsets":[[[115640,30489]],[[112543,27312]],[[116690,26230]]]}},{"type":"Feature","id":"440000","properties":{"id":"440000","cp":[113.280637,23.125178],"name":"广东","childNum":24},"geometry":{"type":"MultiPolygon","coordinates":[["@@QdˆAua"],["@@ƒlxDLo"],["@@sbhNLo"],["@@Ă āŸ"],["@@WltO[["],["@@Krœ]S"],["@@e„„I]y"],["@@I|„Mym"],["@@ƒÛ³LSŒž¼Y"],["@@nvºB–ëui©`¾"],["@@zdšÛ›Jw®"],["@@†°…¯"],["@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o"],["@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh"],["@@‹¶Ý’Ì‚vmĞh­ı‡Q"],["@@HœŠdSjĒ¢D}war…“u«ZqadYM"],["@@elŒ\\LqqU"],["@@~rMo\\"],["@@f„^ƒC"],["@@øPªoj÷ÍÝħXČx”°Q¨ıXNv"],["@@gÇƳˆŽˆ”oˆŠˆ[~tly"],["@@E–ÆC¿‘"],["@@OŽP"],["@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéƌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i"]],"encodeOffsets":[[[117381,22988]],[[116552,22934]],[[116790,22617]],[[116973,22545]],[[116444,22536]],[[116931,22515]],[[116496,22490]],[[116453,22449]],[[113301,21439]],[[118726,21604]],[[118709,21486]],[[113210,20816]],[[115482,22082]],[[113171,21585]],[[113199,21590]],[[115232,22102]],[[115739,22373]],[[115134,22184]],[[113056,21175]],[[119573,21271]],[[119957,24020]],[[115859,22356]],[[116561,22649]],[[116285,22746]]]}},{"type":"Feature","id":"450000","properties":{"id":"450000","cp":[108.320004,22.82402],"name":"广西","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@H– TQ§•A"],["@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloޤ™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆÌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FϼĹ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•E쉕E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢Jî¶²"]],"encodeOffsets":[[[111707,21520]],[[107619,25527]]]}},{"type":"Feature","id":"460000","properties":{"id":"460000","cp":[109.83119,19.031971],"name":"海南","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ "],"encodeOffsets":[[112750,20508]]}},{"type":"Feature","id":"510000","properties":{"id":"510000","cp":[104.065735,30.659462],"name":"四川","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@LqKr"],["@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iǰÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZްIä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºT£ڿœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`Šz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›"]],"encodeOffsets":[[[108815,30935]],[[110617,31811]]]}},{"type":"Feature","id":"520000","properties":{"id":"520000","cp":[106.713478,26.578343],"name":"贵州","childNum":3},"geometry":{"type":"MultiPolygon","coordinates":[["@@†G\\†lY£‘in"],["@@q‚|ˆ‚mc¯tχVSÎ"],["@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒh޶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KгŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}ޱžGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝÆ€‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½"]],"encodeOffsets":[[[112158,27383]],[[112105,27474]],[[112095,27476]]]}},{"type":"Feature","id":"530000","properties":{"id":"530000","cp":[101.512251,24.740609],"name":"云南","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèÆ¶StǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyސ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSᝑ³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\μģUsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`"],"encodeOffsets":[[104636,22969]]}},{"type":"Feature","id":"540000","properties":{"id":"540000","cp":[89.132212,30.860361],"name":"西藏","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@hžľxŽŖ‰xƒÒVކºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|٘¦Avަw`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdЉªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀݦ¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVе‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£à貋ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæÅ„hnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„ǰ¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûŠìÖT¬¸^}Ìsòd´_އKgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxжF”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©"],"encodeOffsets":[[90849,37210]]}},{"type":"Feature","id":"610000","properties":{"id":"610000","cp":[108.948024,34.263161],"name":"陕西","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OϹS|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cϰÂ[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~ЦUbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj"],"encodeOffsets":[[110234,38774]]}},{"type":"Feature","id":"620000","properties":{"id":"620000","cp":[103.823557,36.058039],"name":"甘肃","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@VuUv"],["@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBаaZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aйcčecÇN•ĊãÁ\\蝗dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]A챝‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮްƝ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK"]],"encodeOffsets":[[[108619,36299]],[[108589,36341]]]}},{"type":"Feature","id":"630000","properties":{"id":"630000","cp":[96.778916,35.623178],"name":"青海","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@InJm"],["@@CƒÆ½OŃĦsΰ~dz¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNΌĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoᣟÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Ó祖•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSò뚣˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbЏ•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňb̰ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌζƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg"]],"encodeOffsets":[[[105308,37219]],[[95370,40081]]]}},{"type":"Feature","id":"640000","properties":{"id":"640000","cp":[106.278179,37.26637],"name":"宁夏","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßR͌X¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀ˾iİbjÕ"],["@@mfwěwMrŢªv@G‰"]],"encodeOffsets":[[[109366,40242]],[[108600,36303]]]}},{"type":"Feature","id":"650000","properties":{"id":"650000","cp":[85.617733,40.792818],"name":"新疆","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@QØĔ²X¨”~ǘBºjʐߨvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZ̓èH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYw獃{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~Ꝛf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆÂšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’ہƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FއRěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ"],"encodeOffsets":[[88824,50096]]}},{"type":"Feature","id":"110000","properties":{"id":"110000","cp":[116.405285,39.904989],"name":"北京","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`й­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwڍUd®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘Ѩj¯ŠX\\¯œMK‘pA³[H…īu}}"],"encodeOffsets":[[120023,41045]]}},{"type":"Feature","id":"120000","properties":{"id":"120000","cp":[117.190182,39.125596],"name":"天津","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~"],"encodeOffsets":[[120237,41215]]}},{"type":"Feature","id":"310000","properties":{"id":"310000","cp":[121.472644,31.231706],"name":"上海","childNum":6},"geometry":{"type":"MultiPolygon","coordinates":[["@@ɧư¬EpƸÁxc‡"],["@@©„ªƒ"],["@@”MA‹‘š"],["@@Qp݁E§ÉC¾"],["@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó"],["@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį"]],"encodeOffsets":[[[124702,32062]],[[124547,32200]],[[124808,31991]],[[124726,32110]],[[124903,32376]],[[124438,32149]]]}},{"type":"Feature","id":"500000","properties":{"id":"500000","cp":[107.304962,29.533155],"name":"重庆","childNum":2},"geometry":{"type":"MultiPolygon","coordinates":[["@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØÍ™²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBЦzG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN"],["@@ifjN@s"]],"encodeOffsets":[[[109628,30765]],[[111725,31320]]]}},{"type":"Feature","id":"810000","properties":{"id":"810000","cp":[114.173355,22.320048],"name":"香港","childNum":5},"geometry":{"type":"MultiPolygon","coordinates":[["@@AlBk"],["@@mŽn"],["@@EpFo"],["@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKްä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc"],["@@rMUw‡AS®€e"]],"encodeOffsets":[[[117111,23002]],[[117072,22876]],[[117045,22887]],[[116975,23082]],[[116882,22747]]]}},{"type":"Feature","id":"820000","properties":{"id":"820000","cp":[113.54909,22.198951],"name":"澳门","childNum":1},"geometry":{"type":"Polygon","coordinates":["@@kÊd°å§s"],"encodeOffsets":[[116279,22639]]}}],"UTF8Encoding":true});echarts.registerMap('world', {"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"geometry":{"type":"Polygon","coordinates":["@@࠿@ᠳ࡚с̶ʩт˷˔ƹͮɠͲ˖рԜ׷҄̕ҴNܾͰؼ÷۸ήԪ‡Үƴ̮¿ঞɪֶϤϲŹƛе²֭ĝDZƊĠǔōϭñėށ؅ਓɁȥԯ঻ƻԓࣗඩअ৯۝ڻो֑য়ߝล໥ϓ؇UļāļƫȖɩ̌]ᶼ̈́͘ɮ͜ɪ͚€®ĞĚ۪ƼɦːϪǰ;Ąߞᢌᣮ"],"encodeOffsets":[[49130,8189]]},"properties":{"name":"Somalia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ƛ¬Ð@ĞÆÒªDZ"],"encodeOffsets":[[9810,48188]]},"properties":{"name":"Liechtenstein","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@⌗†øĒ୬ͪࣆيʊˆ҄ؔ^˶ȇɪÈצϲ֌ĐФ؜ְദ׼ҢڴήࡔլİtʍԾ΃ʤ›՘IJʢË΢ǒŎɽĠPĀmǶVǢgΤ̑Įவňȵ’Ǒ¼ýĈå²yĞÇÞ³œëąÍĥʹ೵]Ɂ³Ɨ{‘ΡʼnƑcăZÉSÍƫH˃ǨǓѭLJƣġǥÕȿÕǃñÿśıƇħěŽđұĿЍU“ƉÝå‹Sĵ^čfʉdʇǍ·ƒণ֣oۋ@Ĺ"],"encodeOffsets":[[-8891,28445]]},"properties":{"name":"Morocco","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@⌘…@ķœ@@@Ŕ@@̷@̩@ǕBȍ@ȋ@ƍ@ĩ᫫@@ɋ@΃@ɭ@ŕ@қ@΃Oх̉űƽw½gΉɩķƯtįQJ–dz˜՟TšRšPėRŏᇷCฝCċα`ý§¨Ƙ࢘Ӕ׎ŰшΞ׎LJĹèƤ࠴݂Ģָ͌܌۴КͲޞŚƀ","@@i˷@@j˸"],"encodeOffsets":[[-13351,28480],[-8984,28120]]},"properties":{"name":"W. Sahara","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@A@ƟwđĵȏÒʁč«Ǔƅ@ã̌Ο˘SǴʒÊÆ`Å_֡˰ϟʊkˆIŠDZʪĠɁ˔˶àϷˈȘѬ˻W²ɤ˲ÚͩǀºĬȋːÈĆѠŎNJĘȘoø`Ȓg¤_€cº·¶ÙȈėÒ÷´›fFfV\\T^Qhɿ՘ɳ†kĝƱƨ÷YißMµGuOD‡Ǝ‰Ĩãɰ™İŸÈßĜhŴĬŬ~Ũ±â›Z‰ƒ]ãNÇk¹ėnjƽɣȭkƒěHãƺ˝Ǵ謭’¡İÃƩǝÿďȫ•Ẹ̀Q‘ßço}ß]ĕUΥ@Ʌ±@@"],"encodeOffsets":[[22080,43262]]},"properties":{"name":"Serbia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@хǑޟ˜ܯőࡡԧ¡á͘з¤̧սշŊƉ™ˏͭąٝ°̺׿ٓɥɓӱŒз·ʫɫƚν@ӧʟƆƋʇğԻzЛϭĭ޿ॕʳכ]ʛŷѿĘࣻõЍĺٵȀ͋ĠШъȒȢȌȜxèFƆ·ǴăĆˁȡ|ɍ‚ƒZ{ƒZØaŤDĠŽƲDèij̎őͨaŦ̰̚˽êóļ@͒ƂDzȸZíĊ•´ubSv\\vÀT˜„ΠŠhňǞjΔö’´ƌ„’FgÈèTɶǓЀ«Ȁǫ͊î̲džzĺîĢƘ؜Ɣ˒Ř˞Lj°òŠńƲъ„ÖŖ¾ŚšǶRɄJǮˊרȋ¦HʲpȮ‹ńċľsĺ¤ÚR|¼[þJ¬wNwNÌÛļûĢmnjÂpp^ªô¤ʂĸ®T¸S–Z^‚b\\~VvL¤QȂƓR¦„¼¶^ê}ĞlôÒÈŒ”ǐ`Ɛ™ǢbÀèHϱĸ^ŽǠŶˌ̆ѨīÞŗ­Ƀ”aÎJĊtÄB~oűځĈʁŔů࠰˨ȦȨˈŢƠ®ĈRľsª_ÂW\\—a÷ËvkĄOΘĈŠ˜²˜ʹkҋČѼ­§MÕryŠWJ·oğ}ƽáHiĸã|u^Q"],"encodeOffsets":[[76331,37911]]},"properties":{"name":"Afghanistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ÂR̮cҮƠ͎Åǖ@ǔˆ|ɔDªĞƶHNJšŖ̈ƄĺTNJ|ʖ€ĞGR_¿ƽA½n½¦ƒʬGɼEҾi°oČ଩ýٵ͔ӑĠճēśnʕ¬ÓŠIàþÖÚ~ɈqɘM͚IJ̴™ŐŢdܓ×މoěG±ðƁIĵY൑@ȗ@@ڟ@ˑ@ˑBౝǶ֡া࡙ࢳǑ೟Ƶҧƀ਩¼ҹͺሹTᅍeғ̴ʟÌՋȭǃN‘OėFǗ–ģµƇoŒ͆ƖËܼɠˌ҆ლζ֌θɌƴȞǀЊ¢ݐс޴˫ߚ̢̤hˊүஒґۤݴɦƌOՎNዲQĮ…ĘÇƈǕžϡÐŻĚƉÆ˕Ԃۻ"],["@@̆Ƅ„_øęÞËr___ğ™ı•ͅ˭DeÌ·‹ӏɫ‰θƅːОΖ"]],"encodeOffsets":[[[18002,-8293]],[[12802,-4697]]]},"properties":{"name":"Angola","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@Π˗ä̋ÝԍȄ́ɊßQÙÚŷűŻȉ̍ǝ©¡aq›uwW@yÐğBƧůÙPь‹XkAűˬѽ̨ŚAĹɐȨࠐDŮȡæ½ʮ̾ϦŒŷɴÒ"],"encodeOffsets":[[20546,43569]]},"properties":{"name":"Albania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ł•^ĊĤ³"],["@@ɨ÷ϫƯħƾƊ¡sƜƖ"]],"encodeOffsets":[[[20135,61632]],[[20470,61800]]]},"properties":{"name":"Aland","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@Ɵ½íIir[ò\\¢Ö ÈOŢ~y@esQm"],"encodeOffsets":[[1747,43524]]},"properties":{"name":"Andorra","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ʙOǘøĂç"],["@@š‚ȆĶãŷ"],["@@ø֟˗ȫÁǸǣï…ԿƖw´ŷѡĹÂĹ˧څ[˥ççᒣʾ߳४oǪǘÚȱɴ‘ѼƸॺí̆ĐȾĚ̌҂ৎࠠŞɦò_m̙ź‘"]],"encodeOffsets":[[[55223,24758]],[[54613,24841]],[[57650,26267]]]},"properties":{"name":"United Arab Emirates","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ؠQۓƫĵÜǪĢ"],["@@nᇜ͠έLJvµǥˠ›Ÿɏ׶УࢸНࢴŧʕȣ࢑įԭņ౳¦"],["@@ȴǛߖȡפϿବӗɒ˳͉ӡȧɇ“˽ͫЛoÁŒıξ”บɿɮȜǴGƌùÚD涐ÌE悶̆ž rºʒàǞȔɌͦžʮbΰƠ¥ʐĒɜũȈԵƛ۩ЧʩхŃɫˇԽ˳ŽƩǟXࢣ਍ʉƽƯɃƅ曡•ě½õijģ“ă¾ɣÙßdƕqùşȅiߜ‘l•gĝ‡ëĿēk©z¿HÃiÉZǜÁEÕáųeû¤ͩɅŷĻҩžѻőēȰ͗آ˯͆˿Ʒ̛fʳɔɧ˜¥ÞщܿਟՍ̍൱ͷઃŻأ€УƊϋȰʼnŁMĒå¯̩ŽÍīʩžБůǻӃǿ֋¥਻ΤɛŧŬਅϘŷƒƋŴcˎ’ňƗ¢θĖƒƙZ΍Εƻϟ̲ЛŹ³ýתǭѫȁ΋͏Yש͏͍R̅ҧšكʗցڛþؖ͟ӁٺóɖɁÛʗΉǁʔ@ľĩൿࡕǿʛş֡γƻ·̒LƷˋÉ͎KƨůԹ˻˃ѹƄ†ƒеίăрýѬ֯ౡ̊࿩fЩϘÊܞƛØգŋ̉Ԩ«֊þŴ˜\\Đʊ͐ƢÌ̮ȒĠvɌǃȞƠ͒ψʔ‡̶ȬưƧЮȴǨī̀ͮȺȹ̒ϏÚmŎڬRĐǠ«Ĵԛ¶ŞϢȋӨżĢͩȺŽب̜ǤƉͬiߪȊʼğǤƄž»͖Ʋ„Ś֖Ҙˤʷ۾qޚŘˎմϲUҐŝɶƌČ˺܆ǚ܂߆ɝèÀˊ˻ڨĠł˥͚ÆΞǰłƀ֌ǒFĦƶīĆÉيǘȄƞׄМЪˠ٪Ɉ\\ɰƖɭцƪˈƫ؞Ǫˠƫ̂ʾ̘ݨ̞̈ࢂƽưǢʾɼʚ̆Ē–¼”ʆİxzžEÜ}™ǘşöãîSƖ`Ѷ_͘ijèţžħ‚čÔƧ¢Çd‚–NJʒѾ°š࣠€Ǽʗî·ƚ÷ƄƣΔӍ׶Ћ"]],"encodeOffsets":[[[-66098,-56029]],[[-70300,-56170]],[[-62550,-24224]]]},"properties":{"name":"Argentina","childNum":3}},{"geometry":{"type":"Polygon","coordinates":["@@́{ř̮ǯŔfƖ˟§ʭôķƶɛ½Г˲Իðą̘ŸȦʁ͚՚Ú؞Þdž€ǀťıÑѢȓǫƣÜşєʣßǫʳ¡Ժ͏ɼīŷȀƭƹúʇ"],"encodeOffsets":[[47607,39841]]},"properties":{"name":"Armenia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@āɆœƃë"],"encodeOffsets":[[-174823,-14695]]},"properties":{"name":"American Samoa","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@īƨǜMïƙ"],["@@΂ŜªūȩÃŚÕٸǔȢťƙțȃúͽñȐŵɖ¨ĻƣࠅƦƇƥƫJÌ҈ħĊȜͼŒǗëȃŐy"],["@@ƥÈè þħ"]],"encodeOffsets":[[[70946,-50236]],[[70846,-50288]],[[53079,-47554]]]},"properties":{"name":"Fr. S. Antarctic Lands","childNum":3}},{"geometry":{"type":"Polygon","coordinates":["@@ťowîÐÒĎŏ"],"encodeOffsets":[[-63197,17446]]},"properties":{"name":"Antigua and Barb.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŸēǡÎƮŸÔı"],["@@Ȫb࢈ͥ;ðŀùŢƨϸQƖƂɂyĄþȺÙńଡŇȶʏԑlԟƇñĈ§ĐŸþȏêķǁŻȲ­ΧȻºæijǡ˱˙Ĕщ£ƞǴ¼˫p͕̮ʏאɨɗ¢ŚƹǪą¥FƪЅՊĵΆÔʸ˚ĩ"],["@@£ÝÏÒĴL"],["@@‹éŠżBÑ"],["@@ÞƯ͑êʴĆ"],["@@ʠȓbƿǩõ˵͢ȞĨ"],["@@÷Dzƌ˖Š̻dzƋ"],["@@’Çȏ|ƾŒ"],["@@˪ZǎŁϟȅƩȩüϡ¥ǷŤĈŢגƀɀyXı"],["@@ĥɩRʨĔ}"],["@@ǿɪcɂȤѫ"],["@@čǘ¾̞ǂǀédžĨðþ˫ɭֿ"],["@@þCȷǡȸĨ"],["@@ŅÁĮƶXij"],["@@ĕP–ŊÀř"],["@@jɇǗȞƮj"],["@@„ľàēģi"],["@@̉ƙŒɲʚÔĢĵǃµ"],["@@ųÈÈĮìƵ"],["@@ÕgIżàœ"],["@@ěWÌŖĽ"],["@@ƪdũʉǤģ³ğҷèö̆Țǂ¸Ņ"],["@@īPþŸnƇ"],["@@ƃ×ʤǮşŕ"],["@@Ŭřҿ|żň›ƴŢŠƒ˽"],["@@ͼ–ȶŨɪȹӳЩρʸŅΨȠƹ"],["@@Ñ»ɆΪƳ̭"],["@@ğɠĂÌ^˫"],["@@Í̉ʖ˱ƺڭʟǪԝǤĩјȚƦɕ՞ϙŜ௳ˠЉƂƒǶ؇ÿՙʪɽ¦ΣٌΓɼ^˘͡ࡢѧŀLJŻZĥѪқȾϟɀܥĴ¨ŶƇȰŔŦϸͧxƦĔ…ƞ࢑ʼ˙֬˵ʤЋ˜ǣǔͱɔȗÒ͑ưů¡ਗϬ࢝”εӯཝñܹ͓ԡõͥ˫ȩzá̏ťѩ֯W̃ſáĜq̡ЁÉћԟۏɗාϝȯകƍࡧؕ՝ÁĴƕŊ®Çʱȭɾȉ‰ŧȢͥŌŪŢÇŴƷL˩əȯƈǎGǪɆȓLjеȥɨÕृԡࣩκؗĬŋįƛr΍ʌԷưԗնÔӪŅʔٓڔǬ¶ĤóMȢٕɡ˳|˞ӶkɖͳԀͭࠉڷąŌ˘̈́DĒلςӨã͈ŠĚǫѠNȳ̷̉ǡλڵͳҏՋàˑƩĴŧÝѳ̖ĀĊȞÿȗԸˣ˪ĉʢƵŜʳtŅƼÕȘńdNƶӋ˺ϟpϣȒҗ§࣏ј̣ĝഁ±༱ԕ୷ƒঃӭџŏإݵଗÙ÷İտ¢ಧů͹ͥұģٓэҭģࣃĢѽNJΟ̴ұƞ_ج̬Ŀ˘ϔ`఼Է॔ȃ஖ׇࣀř؞۽঒ڽ„ƎȎБŸ‹ĒĂbƘϩԴ´ĪɘșVʣŊĬŚʵĊÓŀĖAπڟஔÔӈɤϜŽшĥɶ˸َϬfջȢŢ˨Ѥغ˨Ұϰא̈́טÉښ̄ҪĨ̒ɢМ—ஊκ˸ʆи۾ј̬ǕӀĪΎϬ̊ɀ̎Ӿ࣫~ЬȨ÷˜Ǟ͑άŔØeNJĺ€ŊǃƼİɌĻІ]̯ĔXƔƈhÔȲŧďĻǶ¸ɞĺEŌȈ̶ƗTŔƍEÏŲǘƀˊīƫ;ͶȚ¢Ȑއ—ȧƄ¼ÐůŌļ„ѤŊsØƉŨŨƖšǰǤIƖńœҰʍ؈֯ġԱðĖĊÕáɊʹɦМğƂɵ¬ʐ̮ɥFʐDznȳƴþøˍƒ˦Όň΂ΠɪĿƂ„ǀȚɨǾ”JǺȶŃLdžΘʦŬǫՂGDŽĂƂğČƈǞXçöš͖ǗƂͷbȿƢŜĸǎʼnƬô̌ʁɺĈȊʡ؀ŁќȅˀÌʦǫǂwעͪǽ͑ʮdÖȗƮWÌňáŎnjȆɶɱƬc¨ęΉι¶ǿŏȅƕò̯ƓxՋҥە¤ƑلЗðƓΎīäǫǾ`ל̕ҔС٠ƱȨίڌ̽ЎàˎǮϰߜˬ஀đӲÒˊĹ̘ƢҎˆˈǢɃȼVŠƴ̀úßǨजʎȪۓ©ŁȐȭþץʴŏ"],["@@ëµ¹ĸȤÞĥ"]],"encodeOffsets":[[[150893,-44438]],[[148525,-41765]],[[151795,-41487]],[[148260,-41478]],[[151887,-41274]],[[151553,-40711]],[[147383,-41078]],[[148803,-39414]],[[140899,-36596]],[[157224,-28094]],[[115900,-26678]],[[156752,-26368]],[[154775,-24054]],[[118217,-21286]],[[152621,-20778]],[[149789,-18668]],[[142807,-17525]],[[142857,-16970]],[[140384,-16156]],[[127588,-15771]],[[128204,-14929]],[[139996,-14135]],[[139508,-14156]],[[139611,-11880]],[[133591,-11959]],[[133754,-11649]],[[139877,-11651]],[[135776,-11574]],[[146616,-12241]],[[145690,-10961]]]},"properties":{"name":"Australia","childNum":30}},{"geometry":{"type":"Polygon","coordinates":["@@ñDZʀ͋ãʣթƒɊśȝŕV̡ͥťŕƻࣃÑ˿ǥ܋ĶǭˆśFƵ^׃Čù~·¶½ÚĩČo¦ˆ˜Š„I\\wPͥąȻXā]ǁMġ‘Ñݍ½iÇOĉLÍfϬğPčBuTD†‘ÆÅjǹőҫǦ«ǶĈǒď´ȌªúoŎŸÀvqL±Ŕ{cíƼòˆ¨ˆŔšSƨLêoŌGƚŃ२ȐdxMÀZR¸_ð@Ŝcnj_î}t_aDuvkΉø}žDd~bÒLÚſʲƘNjǼϤǐĜ|òÀ¦ƞXN`TŲAŲNZ†JłXhȠƑբE͂ͰࠬȱФ–ΆǓ"],"encodeOffsets":[[17360,49766]]},"properties":{"name":"Austria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Փň֍ը£¬ɜ¾ĸƵʮóˠ¨eƕǰœŚ̭"],["@@ݒ࢙ˎǻ΀áƸȋϓŒ̯ĻȏӯŽɑǓˋŷĔƃʝ\\͹ɵqԃόʞƒǁȆǾƄ˛ʈ౉ٷùʈƺ‚ǿƮĬŸɻԹ͐ʴ¢àǬѓʤÛŠǬƤѡȔIJÒƿŦǺŐÂvڲɟ̂ěĔXüҊðT”­´ˁƐķǎȸDŽˎßӌѽЈéڂը"]],"encodeOffsets":[[[47222,39811]],[[49739,42849]]]},"properties":{"name":"Azerbaijan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@guûƿcy¤«£ŇR§è—öcʕÐO€ōiƃ͇͟ϟչȕů˃LLJԮZپǭ˪ôľʎdzʶ^ƜàÀ̈́ǀÝʔĔŨñ"],"encodeOffsets":[[31287,-2457]]},"properties":{"name":"Burundi","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ʦq̈ʣȋ˥w†…Aá\\ğí£Í}©™•ž͋ʁw՝ɸ£̪ɯljͫVtɴСºÿƞ˓°Ɠȼ̇{ȟ̆ۚɾèōЂ˘ƮڰêƸDžӨŁđͅ"],"encodeOffsets":[[5831,51994]]},"properties":{"name":"Belgium","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@“ÁÁŏEĕŶǽbm…l“’ʻàƋ¿ǃĿQ›ͻɷȍɽ׏ɧ‡Ó֩aл„ɍ€Ù†ÃAƒck_wL˝‡óVŃjån»k¥cÇ{ȍ࣫ŹžàȹזĀJqႬǷʾ±ՔӇ͞ŚԜѴϠҮyΆДo˚τƌڒׁ"],"encodeOffsets":[[3682,11977]]},"properties":{"name":"Benin","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@­ΏȀɃ ɯǂɥӪ̃DZNC˕ӠͿҒÈĸȡŹƁˈ΋΅Гҭzѳϟ΃ҽƊȗ¨˟ȩΑê຋WíͿļƇVֽ^óºĽV«ko¥ƒ¥D·Øs†ŸÜ“Ü­†­€ÃĆ¿žÇYʕ–ǫM͟ŕïÅćÕDķÚĉSą˜ґӂɗ̄ԮȬ˪ϞӶȼɪɘ©ˮɈĸď˚ƬǀǠĄΜǿȎĈ®͆ʢUÞʬʌɸЊ¹Şʎޤ̨ʐȒѲXϠŭ"],"encodeOffsets":[[223,15270]]},"properties":{"name":"Burkina Faso","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@÷r¢dž–Ƿ"],["@@‰ç\\ƪnā"],["@@ęψΒÒ́"],["@@ũšŠĐȟ"],["@@əqƒɚƫѐĀzɮ͇ùͩ"],["@@|JeƊÊAɪ̻ɖnńĊæŶɫD͍oȉZ¬WɆÕв«ாDΚȍéāőžo[Aġğɷ­ijǽǗij|̓ŧǃͱǖӻÞŌİǩÈWŎÖFȠˆÖŰŦQĀ@ô¦LÆ[ǞLòχzˁĒǍx¥Î՗\\ÏPVЇŽƉʧŒŵūŨуɣ͐ljনÇ«ˉӴɛȱɩ›ʑή©ӆ£ƛʉ†˔ǃſѝƲ͓͝ҁƇ¶Ŝɨɉő‰þÈ̎ơЛȱǻïђḍūNjɓŶ™͸ʼn̜iǰ¥ǔàŬǡÌuȦ¿¶ËľŐˠ\\Ê\\ĮNœUšå¨ťjƉĜĥNátÉįÞLŒ`¤ĖǜLú„AºäìȐİ@̚ˆ\\Êõ˜ïƂɡž̗ɲ‘~šȸƶƜĚĦ­Đ‡XfæŰƒȏɐ"]],"encodeOffsets":[[[94157,22025]],[[94079,22357]],[[93339,22708]],[[93755,22920]],[[92957,22620]],[[91076,26876]]]},"properties":{"name":"Bangladesh","childNum":6}},{"geometry":{"type":"Polygon","coordinates":["@@ĵ̓˧Nǡǭ‘νͻɿѼнҏmƱŐ¥\\ȝ…—é‡ɧuÇˍÏŵsySyFyĵxÿckkgÞŵXñg¥Í…ţśfɏŧ‡ŋiБĦƫòwr§î}FγyoµkQ́ÕċAđZ½SōGëÁȫ^ôͺƕɈЯːà^p~àèR’Qnół~ǴˬŦƪǞįđ¢«®dzĎƹ˞Gä„ĜlŽ‚šĄÀŠŠ˸ƩƇʼn¨ħᓞƏ؀˲ܸƈ˶ŭϬ˴Ƿ̨}"],"encodeOffsets":[[29272,44793]]},"properties":{"name":"Bulgaria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ÛĝƄHɜĬXl̛"],"encodeOffsets":[[51822,26505]]},"properties":{"name":"Bahrain","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@řǵѡGBņƂôʎ‰ƪƄ€ĵ"],["@@ʚďΏ¬Ķ¤"],["@@Ï{̶̀¡ǀĖ`\\lj̵˙"],["@@ǽWņɀĭ"],["@@͏ɬþĒƻʹЎٱ"],["@@̻źxÌ̄ȅ"],["@@ĹĉrŖĈ‹"],["@@ćïŞ¬®áWͯǓ\\ȓϾ˼|"],["@@Ǐ»Ăńˋ΢ΚЩ"],["@@Ƿ`ʊvѕ"],["@@CȳʣƧďǦȃ¨ËêNJv€ҌȤęȚ̓"],["@@ʰſǾLJ—ЭųƚĚJ¬ʠǫnjɁĴƇIÐŚ¾Ý"],["@@ӐۑDžȯDŽǀěǜǺĖÍ"],["@@ƩĸƀŎPͼɫʈη¶Έ@Ͼ̽xǑŇý·˱"]],"encodeOffsets":[[[-74779,21702]],[[-74794,22968]],[[-75987,22747]],[[-75834,23269]],[[-76636,23444]],[[-77480,24013]],[[-76215,24646]],[[-79521,24832]],[[-77115,24781]],[[-79203,25615]],[[-79609,25301]],[[-78488,26100]],[[-80376,27371]],[[-79079,26526]]]},"properties":{"name":"Bahamas","childNum":14}},{"geometry":{"type":"Polygon","coordinates":["@@˼Xȗѫϸˇ˵ßɂ˓ʩğ{D©OS«^­To_ðƛSáM™®ëNď¿Ù«§ǟœ_›™nLJäŕġå٥˲ç”ÆÌ̓τࠉ֮Ṷ̌ͬȶªΎȬVɞƱȦǨ͚¼ݨǗ܌@ƤǍƞ["],"encodeOffsets":[[19464,45947]]},"properties":{"name":"Bosnia and Herz.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ŘñࣸįkŻº¹Î“ŰÊ®fº@ät¶Œ²ZĘQLjR͢ƭʀąKơãÇUoHy±æïh¥@‹ůŕs­[¯PmƼóڟ~oÝőĢĪƉĖăȌíƎ¯†sX}Wŗãy›ÈeƞJǬ_ɀŅɈˇ»OÇaĝ•˝ƭʕ^ƳĂɁI{Uo½ß›™Œw¶³øÑüÁ~jȏOȃpw¤m”•ÊāJqǃNȑEҝȥGŕÿ÷µóåëĿ§ýzÔ»TÃj©ƵåʏǢۃăȳȶ“C¡u‡w§Sßkıě“L•d£ðÉh֡~ƅĩSĂͥrubŅŜËRķMƯbࠥŸண±çýŹġůÕwKñŽÓ\\íHýĭQM¢ѮБȸجОαজØiƦMϨŽž}æwʬòŮIlpŠĶšvƪWÆlʺʂàšwl¥{‘Ú‡NJ’¿Ħïd¹BSjjž¬êÄڒzNvSņŘǜĘxň`è”Úĸ”^ʺQ ØņÌ_jáZƻXrX|¦Ü¢ĊpÜFœϬƎѲӒ̂"],"encodeOffsets":[[28824,57491]]},"properties":{"name":"Belarus","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ÝŝĔɜuĽ"],["@@˵CÒྪzƀ˞KʄИȒv­ħȀOœĿƽԭÌÿğݑӥد"]],"encodeOffsets":[[[-89961,17841]],[[-91027,16272]]]},"properties":{"name":"Belize","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ŏgǎнõ"],"encodeOffsets":[[-66283,33069]]},"properties":{"name":"Bermuda","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ĭއҀޕU฿̇ѥޗAх̽গljȤࣟ¯™ʑѽ•ljc¡ÈÓƨČĪçŤ͗Ĵѵ`ƕ_íTõäǗŠšÛ|Hwy…į“ė•»̅đɻʙǡʽƕƒǽ‹ǷZí´Cˢʯ݀Uˌ̣ͰØɰɗƜ[˾ǖŰDÄgžįĮEhļƊĦńMpkx̭ʐġŀUž¡ƀÅ̾«Ŝ¨Āǁî}nǕξ@B@œUÒĽŠl¢ԔҸWƔDŽŚ̽DŽǡѐȾͼǝɰ^ƘЪՂǟФĂڬʚ͆ݥನ̌G͌±ƜďɾĀ˜ˆä|ƀXĨiʲʘۺЬরǀĈι]ę綕³S·Ħ͕VōÇȅǢх͸ʹؚ̨͋˼ǝɼVʬ˟ծƋnçŴƑÐÁî±ǶBÄaĂ^ʌz¬RӐʥŒՇČ֛ŇIƳI¬›ŴƥŚƋŠΟhȗXŗ൚¹”DÖf¢r~AIǥĵƅO§fǭ–ƛlŹ¢¡̜șðgÔjš»RĉIJɵÚƥúûßÅŵϟµƳÆʼnΏיɪȡu‘Õi»]ÕăÅ["],"encodeOffsets":[[-59555,-20648]]},"properties":{"name":"Bolivia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@˛XȦņƦÑ̯"],["@@åĦłĴ›ș"],["@@LJMŲƘ–Ɖ"],["@@ȗ}İĊĨË"],["@@×§™àĬœFÓ"],["@@ÚǼÊĥţĕ"],["@@ĉćĮːcȇ"],["@@ř¯–ĘĄ§"],["@@ėeɐ̮ŒξʖĞĀĿī̗ҳ΋"],["@@јÆ؊őυࣽǣĽőĐ½ƽɭôçǛǻßɕòχëɅҢ€ĨŸpŏtñƞŴՒͮƀԶĥ"],["@@ɯǑģĐǐƨDŽå"],["@@͕f˜ƬŌçÑĩ"],["@@ƯʓΟÈÈǂ҈Š"],["@@cūƯ¾ɂҌ’˧ÿĵ"],["@@ĝ…iƂȈĺÿȵ"],["@@Ɓy…ǾŰ\\˜ǟ"],["@@ŁIJǡÀ¿Nwʫ̃şݭĘ˝ŒõXŷOƅI½øŻŌŸʰ˕Άƥ†N¶œ„ƢHLżĢ˜`¢’¶ʲɪňĠfà‚ǜH¤nȒȦ–Gðn҂vQ°ÍÌgФtϴċ´^†~PøLÀŸ²µÀ­âÁnP’–––ptzvĖdffHȐĩ̄ˆ”¢¸VĈ¢ØOšRĜvJV¥–§¦ŸżQr犁œArY–iˆ¡èʬñ̦ȠܪťːˊɌպ֦݈Ęɀ˞ǽь࿫Ɍʯтƛ¸йͩ˝ϯԧѷʵוઁȻJλǃ׼…ࢬհǤەʌɇͺƸɾā;ǎ˓ޥƮŸȸӴȂòʀ˼ȺŁĨŎıôfȾˮ΂ҶÌŜąjŞ࿄ؕṇ̌Ɇɂ̘ɣµÅņ®ĨʳǿdzĀĝȒǤ®Ǔś‘ÍƗőՋʈɔǬЊļmñ˅ɔȎВæÚłόõ׀˝̼žͬƛࡌĸєÇనܗΪн΢́˚ķńǗӬƹ࢔ƂķҸ๱Aߑэ੓ΡЅŃ`LƉљՕ̵ƿΑͭơ˭EŶˣ܇ˣЭ͏̿ʏ˾ƉƕôįÑȩǏǽ·ȉĎu¹ίĚ\\įԽƮ৫˓ૃ¤ѳйңŏ્ǽƛͧ۟ͥ˯Ƒ˧ýɣ гףʻɱɩ¿̭ޓiǑȰÍɡ֥ğٚʢ¢ǃĊ٫ŧ‰ŵĔÉً˛śǝяNݩχषڣºŏɯȻbĚǻŽÕƝɋؒĻʔėɝȹöù—ȳŇ÷ǎީÇ݉ƭпЅʝЋЭҭࣁԹۧऱܙoʆ͐²΄ʢĢ̞ƴrdžɄǘwɺŔYdƼϯīɯˬŠˣĿ͗ÛÞŭαϹɹȅуÈʁѱࠃ׿ԕwJÅzË®@РhÀ|’ô¸îêĄĚö쁴ύɸƇ̄ƃĖʥĈ̶̯ϕǦ±‡ç†͑ͺtqMo…]ƒţģŃßU«B[ôhż΅͞Υ˺ʍ‹ÿŝ˳n³Öœ¢ƆĚưɄʊƾࢤ਎ǠWƪԾ˴ɬˈцńШʪƜ۪ȇԶɛŪʏđƟ¦JŤŚǴŒĊžۆ‹Ƭ¨ÀtfǕŪƻơ̈ƉĉoħgûZã\\£wð@Ö_ƹºi áކŇƆMĐăĒţxǕ@±bűƠ«`˝ƹ঱ŸZʼĦڨíʶÁ‚oNJm¦ƒ|ƒ¬ƒ’[²kÖÆ\\ÖĄ¼^Öjv’ƙŮďôΒך]ń©F¶ƴŶϠàÆùüÙƦıɶQĊ™¼ÓiïhǷŴţæ¡¢kź•ƜeǮP¨ĶƆJǦ}B¡qÕe“C൙ºWŘgȘ‰ΠřƌųƦ«œʼTċ֜őՈӏʦ«Qʋyā]ɹ`í²ÏÂųƒmèխƌȿNJ«ŖɹU˽ǞؙŽ̧͌ͷʺǡц²̔ĥ͖T¸–´èŜ^Ěćκযƿ۹ЫʱʗħjſWã{˛˅ɽÿƛĐ͋²ȝPĭGăEƑlķFė«ŻÃÏa©E¥R·„éà¿}ƒ˜୞¶ƶÇs{]ͻ˹׃ȉŗۻ]ǕвۣĊĴŪĶŪGńąĢŏƐĉÆ·Ʀ‹jŵĦƵЄXþŸ|¯^Õ쩚‡ti|jjp|KńǸš|vŘ‡ŒˆȖԸτĉ̲vΠĄƶʢþњ²zŐxú¶ŜĞĮĬÌΊȴܸżĞĶÈ´à^džQłd¾™v«à¯Ģ^ڟ¤L‚vLÆfˆɺ಄ɨఈȟּν̶b׾ӨŶˎÑƅ͢ґRHղචXãŀÀŢɐȧ҈̲ʀ΍ŒѥǦŽѼϥʌf͈ǖƄşƒŽêF̴ΖݲΠǒͶӜȌ˜Ɍցúƥ࣮ϕΦijɜDzŕ͒[ƞǓָ^К̍ŨΦʪŜɐ·˨ĊҔːɸfͰΐËǸ‘x{TøhNJƒ¨nÖUČgŶſƃңϘƱ"]],"encodeOffsets":[[[-49649,-28433]],[[-49750,-27035]],[[-46346,-24462]],[[-45188,-23697]],[[-39837,-13796]],[[-39673,-13411]],[[-45567,-3010]],[[-45960,-1349]],[[-53076,-1468]],[[-50819,-234]],[[-51868,-134]],[[-50630,-115]],[[-50931,275]],[[-51636,143]],[[-51356,403]],[[-51506,1986]],[[-61132,4458]]]},"properties":{"name":"Brazil","childNum":17}},{"geometry":{"type":"Polygon","coordinates":["@@ıj‡ǜȂųÇÑ"],"encodeOffsets":[[-60921,13396]]},"properties":{"name":"Barbados","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ĩ@ŴҟƷŒãє"],["@@ɽƳĀ˙ƽ̗ӷҰ̢ÌӒ̤€Ĺ"]],"encodeOffsets":[[[117788,5018]],[[117788,5018]]]},"properties":{"name":"Brunei","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ǝŰīĞGČh’Q®í×«ÛyÉSŸLi‚ŒÅL»q‘§gſCƝ§ŻJ½º{@ŝÝҟcͥIJş—éýƯ}ƭmŻdoºɇÎƹě¤ƵĆijǶl˜ĸâTf´Ű҄Ԅ² ĮªĆ|ÊÌæŽêb̰É^w{Ĺh[ľSźPîMʲď´HŰĆ P†]¼•ɲĉSƍ"],"encodeOffsets":[[93832,28427]]},"properties":{"name":"Bhutan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@_ƧגࠁȖԋࡔҿĒͅͰqSһ̂Ыࡘȱbȃǎ½àߦ‰ȡgĭÅÉĭęïՇdzͭΏ›“ֵέȿ֍ǽŽƓƽ¯ɡµĉĵ›ͥޑʯÿݏ\\řĠȉNÙtщʺȫFɩƙɿ֥£Ý“ɇƛŁLJã±ȇ×§ą—…ߣOĉĚŸ۞̧٦ϙ̶EᙶࡄŽIᵦሶˎ͌ϯզξʌ{͆Ț̌z"],"encodeOffsets":[[25865,-18220]]},"properties":{"name":"Botswana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ڊअoЛŻȍÎʣԠųŨ̽ҾŻ̈ˡgɁĈʼn࣪ڕ­ƯǦ͗Պ̃ɒԩ˥úȿřટɀϭ́صvݷˣҫ¼ωӵ༩˞˧̰ΛɔʱŽγȣЋқ`ܱŕŨˁĻ֙ǀ݋Ƴţ֣ʇҽĵ՜޹ޘÃϪ˩ˊƗ֬®ӮƻƤʶȮϾުɰˊВaΞƨƖƶȪ˃ܪζޒ¾ҜԢȇƲÐĒୖǂβɺވݒô̔؈̮̔Ý"],"encodeOffsets":[[23409,11182]]},"properties":{"name":"Central African Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ˣ\\͠¤»¿"],["@@œ­Ăƪ’Ļ"],["@@ĵÌƚR£Ý"],["@@ƍWʈĸĹğ"],["@@ͥyɰĶǰŦùȡ"],["@@ȬǍɽ˒¢ɸǼɭWκ̖Ôī̤‰nǽۥ̍ԡcƓŤ”ϢҎՂϲǨÜɡƋϻԡ˙"],["@@ŊĀҪŝघAуǿKȍЫøń´ƉĎàüȡſΫÐįƘ̑xsƦɃ”ͨΞÿʉɶʵ"],["@@ŢqȡuìLjѺDzѥ̑"],["@@ĉƒǔȪĉǥ"],["@@ॴΠͰӮࢨҔ܈Ǥذɶࢢ޺ਞֆႺӲૼkԶˋʡɦųēɣއͷ֕Ƙٹƕ̂іųȰȫԘƪʢĹǫ̙ͿɣЦ‘§ȧ˺ӧՂÙì·ȋï̔ƍࡄį¥ýɤuѸȸƮDZʆ€ŤħÌŏƯ×ΰÙቱկʡ’Kǟ͝ƒďƁÇĊı‰Tǹ৥ۇɋ˜űȠȧfÉˤ˚Φɹŏ²Î൤ۨˀ˃–ǎ؎ŮోSҸИƕ{ųŠūʷगΑȍĀêĎ΍ˑε{ɃĒȯHÇΰ̳ľIଘέɜכœħǸljŒٝىʏګӋՓϳhǃʃᥫE›A"],["@@zùƓ‚ڏ"],["@@țûÝâʺZ"],["@@ĦéʯÇPĮƺ„"],["@@ʡĦZĴǂLĆȥ"],["@@ਫŌோ֌̔°੮ȣ࢖Οĸŧė›"],["@@įˈȒNjġĻ"],["@@෺˕նڋۮʱоաĚôâɓɗó˿Âৡ̀ɪɢŒƺĩǕҿã˵ƄƺĀʵÀbźӫImnj΂è͟ ͇ȌǯÜɒċïıĤͫ‰•ˊΚ‘jƮӻíʍȸάĮ؄ȃ"],["@@Ŀůϓ¹Șʛ޳ࡵ÷ͥդтdƥֆ˜ՙ̧ɪ¨ǽǿײŽ€įĪŖĻέ܎ϔ°ǓЬĦ˴ĵžƱӳ̓ʸpħĕɔ§΃ɗࣲȬĝțЉǍ’ijʥËȚIȍȓLjś̌͞ΖĬʭԍȌ”ƌǺňȁϯݥǩÀɡáOю΋ʳƏ”˘ҺŝˈǟĔʝϥ\\Ŧ͏ƋϫЕЇŋŲάŦרшӧGǫǏҩŒɖøRȐޓɇಿƔٽƇǡƔ¤ɒ߈Ѷ۱Š˚ǂÃądž©ˀФΎąĝøĴŸǯzmņǔƀȌ«œǰвڰɈĠijìɚˀ̔˒րȤˮćrĜǪ•"],["@@ȋŸİèĜȟ"],["@@ɓ¸̼Üħœ"],["@@ÑʞNJôķ͑"],["@@વʬNJŖײhͺϩ"],["@@Ĵɯ˳—ѢƫœĻ˦ƍ»ĥƪWßřߍՊlǺͷŚژ¸"],["@@–ΝƙȕÉЊŹõɵʔŤ˄Ͷƕäơ"],["@@ſrðǂÐdz"],["@@֛̈́ÈòюǏdžLJÿÝ"],["@@ůĩˍ¢ɌǔDzŋ"],["@@̒yŘṯ̌ʭ̈„¬̌ϼĚʑۧ͝ĵͳĸ˔xΛƜȟˤ€˒ͤ"],["@@jŸŰcƙœ"],["@@̤Ɍœǯȏ›"],["@@áäВƮͯɑ"],["@@ȩ͋M˞ˁ˳ɧÉȄ˒ϋȣѼծß̟ɞΜ˰˫"],["@@Ěř̽ŎɤL"],["@@ûÓÆƒvý"],["@@Njã¦ƺŦĕ"],["@@‡Íʝàĉłΰœ"],["@@őØɾɮɦřΑǫ"],["@@ŗWΪĐʑ÷"],["@@ԋʆդZ—ʟ"],["@@Œū˳ƒǢe"],["@@ɒƏ‹ȅЯγϗȊJʔ˪ʆ͎f"],["@@̞oYıΡHÞŚ"],["@@έ¤ϡɶٸŝĘƻ"],["@@sȋҕ˝ϕNjֵ£DZʚ҆Ϛୂ¦"],["@@̀ȣ·ijӿʸֈ "],["@@ֿǎȚĀИƭqğ"],["@@ΘǔΖȫႆӗ̾γǯǑࢸØѶ˟سʧ૧ȶõȄ۱Ǽૡۭٓǃ́Ӧ୏īȂˈְȢĹήʦ߾Ѩ͔͈ƟÁȣːȽ"],["@@Οƴ­ɒͤſêʅ"],["@@аåĉëډŠʍ̠ԶƓ¼ƙ"],["@@ʌMśşůŮ"],["@@DžNϤłɝŏ"],["@@§ëǛĤĒȢŲə"],["@@ߝœŏȨ৴ÇòǧǷS"],["@@ʟĎÉɜɐǤɾĹƣϓ"],["@@ԈűĻ׵ӟƧএƒ̡κƮɘѼ˨ޜš"],["@@LJÒȆö}Ƈ"],["@@ѕźϘD¾Ž"],["@@ѥƪĦƌʮ‘Ēʣ"],["@@ϱĄʜŦɾÓħƕ"],["@@͇“~ɖ̊ȁ"],["@@Ǜk˜ŚƄĭ"],["@@Ǣވ˲ϑλγė"],["@@ŋƕƉİʖ¦"],["@@͑ŊLjƔѨ×˝ȅ"],["@@šƮˀĩƝÃ"],["@@ÜǏʗÛǴñǩdɈ̦"],["@@ʳÜˀÆKš"],["@@UěڷĿێȜ"],["@@ĹſгFÎĿۇư̶Ğ࠲S"],["@@फ़ʣҤϑОÓ࣏॑̕Ô܉ʤ͏Ǜň̋ÍȫƐƠࡀǠùȨъĭƅ˺ΈÄ̎ǿ"],["@@̖įٟîΊ‚"],["@@­Gȟ{ͻǕΗʭ̯ȍՑԩٵ@ܥFɗMĿ“˝įöœr­MƟ’õœ‰ÆÓɏƇࣗ͏ٽıЕŧϻǵϷǵɁ@ϝʨ‚ɲӄ̘̾܌ªĆ̅ౚÇɜ̱ƞ֡ʤļƬūĺ̥ũΘˉGȋœǭ̚ǍäӧȬࡩΔ҇Dz҉ǴՓȰࣝʳૻŔȷÀ˿ŕԱȴ˽sÇ@ïƄ˯ŐΟ¼ijWˣùŧæ٥ŖûĸùŜµɌNžʧÆMͅȣBܑ@Ω@ܑ@੻@⿿@、@、@ᅍ@Χ@Ω@੻@ີ@Šćž@čąƓʂ̌Ŝͭ¯ö˰˽ʃлǦŠŐƨűȠĂʕ²¤΂ĵ’ʷʟēсȼɱͰǔϢǗ̝ΕaÁŶďƵϟ€̓øҚİԡsŞƄŭzJLjĩšΧ¡յʄʐϨؒĄիHˣȕƳǐ°Ѥ̜ƒǐѺ˫ЕͬȰʚÉúŸǃ؍̧ʻсɋ̶ːƆĈȒ˧ƵȀҢʽíƇˆұȐùƔˈƞ§ų̃śΈEǢţɻǪϽÒõNJȜĤΫaʣΡʱƕ٫ЈʖΆΖĆϩ£̃Ȭܴ࢔ȟĈɅх†ݦëƄ˅\\ÁĞƟ„ەʘ̑„“ǞȧĔĆɳł¸Æ¢®ÍÞšŌěþϛϘɯɲɫɾ֟̆ģøÁÎʅdžɡöěʒˇƒ˭]ԳĽšĿǁiĥʵȟCˁğŵ«ƉíçZÓʼ؋͔ҧˮˇŚ¢ö¶Ĝ@ÂŽGχUʟũЕĮÕåȥ”ȩ”@Ӭ@݄@௰@݄@௰@݄@௰@݂@݄໒ŕྞҧग़çܨǕ֯ʒ̨¬˭îȀǘͲEŶƈֺT¢ǢѼƥʛɉࡖƴȼǐј|íâ˚ƒࡸǞЄȄ؄‰ɨĐxǏহ̃गį݉ˡԍ̣ɾćǕöْZšȚ޲̒϶Ñɘøþȭܒі਀ȸɑƓĔċǜ¨চђУƄưžٞɷࠎف؎Nj̒ÜƹǖӶ̨ȇŒμľŰ͑ʂÝǵ˙ںrцΞߦLजŽ۔ɽណϻঘÛƹŘڪƒےǏր̅ōō֙F̥řʳȕʨëᕊŗ౜ĞޔǞόɓӾ•ƼɥȨƨՀ˻EƉчEਤ׋ϛ˺]ȴӌđک߀ƈǾାƐ֤͢שÛųƅࡕuĩƁӵgͩŦ;˂ᅰʸДùʸΑ،ƷƔƕ࡚ªॺ͇٠—ૼŪઘĥђæȁɠপϥȼȨҁļϡ¯ϩφζΤÎŋŘўwθȭҠ²ʕɭلǰͯةȒȧΜµō̦{EţࡇŽՔιȽː՘ZŢˀͣЎdžʄ׺¦ઞҢ͹͎dzǹ҇fѢːƝdžՔĔŇLJǺɊاşǎǁÓॣȎӯ΂ɈʨʎOŨ̹©ʓƖĒβ͔ƤмÝƂžϹæग़ΈΪǽҾmڢЗ·஖ٍ֣´LJŋ҈Åމ̵ӜJʹţ׮ĪȧijࡲÍЏǃ́fِͻāͿ̴ǽަ࠼ࢴ˹ΆӍáąϡ’„˳ߢٯڤʰޘ৾ٴÖȩÒȶȖѳƄĵԨ᝜ŻȔ÷̩ęώíêƉ܌¿ӣʫӜƒČljՏǗՙWˤʩǮ¤Š˧ִ̩ơΫ࿃ו्Ԑʵ²ɣĹ͂xўɃ̖ϿΥà˭ëࠍ̢क›pƋؐȯళٻѣT๻ӲşÉಋâ͖ı¶øࢺśߚε࿒ųࣟ࡝ױDž͏ĸÎũПÀǏŲȗƼƹʿn\\ʏցğছȰ̙‡ଝ̠ŘɿʒqĝĜਆɍʷŗԼŤܺɉɬ͇ؿɓދ`ΦȑԫǷǑȨƳ֫ǒʦűΫʁȻRɨƥԍʇԅ݃ɃęwਗƙǗ֞̑ΙǬτߎUظ୿ུ̫ͭˮ࿘Ϳܾ͑ӾϑྡྷЗ˺LJŭɧʰǦॴ|౤ȹƤɉǣӋʄΩųڋ׊ԇȓǫ̤g݆ҋŪɻ΃ɛ̼ƶ̾qٌѩ͝ΤͲϊʢƑŚəƠʠɁɸ҆Фʝ̙ͨࡂĖ̄ȷĆĂÐӅф࿀Զঞބà׊ʅ٠̤̅ଝ֎يז†ʞ̈́ćŕĚǐ˲ʝÈŐ¶ȓʀƬĬʋĈǜƚӻT֖ئэɶĥϚٖʒಲɍxŗϖŐ׬Ǒ[Ą߈ɘࡤ̉íʅɢèɼùƾŵƩý̎ĐȒÓǹƩδɿ०÷ʊDZЪƸĊNj̕΁ð̩࠙¥ޞěªӝ˴ƿηĭ£ŕŔ̷Ǐ̬ÑѦǐӖjˈƉŸɑŅˑַɕՄŰͤθŐǃƧſʶɠàΏĞȈ܈ɸ̠ʨ̢̡“͞˔Ǡ˴ЎźʎĐÁžξç̳ŶsȦ;KťŘ̖΢ˊ¿äą̉ƅРª¶˓ƜæʲʻǏōƜēȤ²ľřұş؈\\ƒǙȚVƪǥ֍˽˞ŚԬNǽɯϗƻٴŜƲƳ̆»SʥѷĻӘ˱ơզȥˡुĶٔɳǝđў¿ʍʼn̊]Âƙů©̢Ň̄ÚƴǷȄ¶ÉœǼƙΥΝܞȾÎĥɂiͱ̥Ӡ͖ɘ¥Ǿʽ͎ÃμĐҶʅʛǣءƃǕƭৃǷ˓ȧȿ¶ʜƕȕȃඬײ׺Ĩ͍płĨٴÅʀ̷͛ƯNJţЬɪ͂tоʙƘɑIӍѫĉӠÏ}ġȟ~ˈɋ੿ֱಅƋୁࠓ໵dzǍňڝÌṽ÷Ϗǽαթއŵୣ࠻૿Ɏॸʃú×ȁ̝ׯԋҿ˿ԣğएБзЅһȣɷ|˺ƻ؟˻"],["@@ʻºȘNJäɃ"],["@@ߎ¸ʈʢҐŠఞɭԿ̛Ȃ±ం̤ϣ̆ոq੆εӊ۝̀ćюɦ޳੊ǬǘಠŹࣈ΁ࡼৱŇљ޲εюĹzŪ଼̓ĪţѨq¼αуƜƏŵ҅ŮΏŅqƕ܁þΔƟÑɣ֤ɬʹWDŽυࢍǙඩ¤҅¢ðƊਿĨ͛ȶٿοޥÉछɑᵽƳЩ̀Ý̚ྣôݩŢֵՊᔔɐ࿢ñࡌìᄿ͎ምĕഅ˜֩ɒIŬ៺ϬᕏďʑÚОNJ۹UͻĬ˜ȆؚɸɣƐ̈ǦᰶتδÙžȏЃБ"],["@@൏ҼʶǺઞÒؘǃ…ɡ֕͡"],["@@ੂVࣤƓࡰտ൹®ఝŝсÎ̥ͰӿĠÓ͘ાÇ"],["@@ߐŢҤAɬĻľԒ՝ÈӓʐӸȸࢎǁҷɜȀÌ׽œʷʨ͚ȚࡌƁ৕ʺࢎ̎Ք‘ªƆຆżҒăैܩߝϩ԰ŜˁҗزʨʢȋžɸĪۦƥOȕ΢ƋɷȄƎɀসơ߽ʖؘɊႤŹո̃ܵёࡨ͐׌ķęŗݛŏш…ʝϧђΰ֤ļ̯͑ТƸ҂ʯćɊ͂Š੖ƋΌƫɟȝϋU׍ɛݞǺ̺ÑҜŒź³õɓे̣ԪÎŹ̻ϘϠࡾɞ௢ȡŎŇ෍ρ੾Ɗȗȋɞֺ͂אʁŤʭڣਗɏئÆ੶įѪůRť෗ÂՑőՀØӪę§ʁ஻ÖञŻɬƭ৒ÇʑōĠɓǎÂÈā€ƨΚÐșϓтȦàů̘žĞʗ]ǢвŸĉȳ͐¬ڎɱƃǿׇFܨïȶĨҨţ։΋تńӪ™ɌŠ٪̛ƥŋԃîҬɩ͕ÁԅĈhƯҖLJՏgȰƵɵNjѓdʑǐŽŧȗ¡˂™u͗ȱʩةȴÜȔʇʅ܅ծߦҬҷȩۑåƚǪ΁Óޡж÷ďȗšèɓփƂךεƕĕБˆՍʆʏ¥Ҁķ~ǩːąÏǫ̰àϞǟǿÿ՜ѿÀƼΞɹɴƐ֐ɉɉŃϤÉśő̯SΊɟЮ@ĵĥ͚ǫɇϯѷѦļсͬ˹ЫV®ʳफИIĭƻŠȫȨ—Ǐ৏֐ƞʽ٫ʬΕk٨ѿϸá»ë๎ڧť˅ᎋ̦ӷƚЀՋIӅŮʯüƈIJ͵¯թ̎ԤƐޅŮĮƒ˗ÍߥӚƸƸ՝IŻŹÅƸ˥ŒȁƼȧÅȌɥࡩx©ōࣵŻݻĺʇŞ¥τؠɐ†Ɍ఼ȍ͕̈́ĂƖχʐՎ[ࡺȂӲeܫֶ୐ҼȶʬӌȊࣃऒ҉LA˖ʝ^ņŷɽMԻɢƪȦ༳̅zʼԔlʲƴۉɎȚnjё÷̇ÀȚŞ؛ÐƵͦёSڃ̀˵ǟҖƅwɝԿ÷ᅗĶؘ̌եDzؓėܙƠ׫ŸೕŲ̇ÙҕĞÙːேǿߍȼ֡ӊഢįפÈᖑϜ³ߘঀ࠮ࠢː๨ńࡈŇࢭ΃տӵςۙ৐ҝೇ˻"],["@@܀ǵదƀрÁƚƃԽƏ̒ī९ϑڈòѐͳҊêŬƃ̗ȕǀЩ߿ǡԉ„šDŽľΉϵśһîଷ٠ԩƐџCࠟϘъ˂޲̙ڎªöǢɤÏ΃ʔײ`ғŪѯëՑDzҠĨϢųχ˼ࠈHUŴ"],["@@ס³ϋêขǶӓȫ"],["@@ߔǁഄiȸŃร࣑ჿHφõǺȹЛͣࠃ_ӿܸھ޼νǾƊƈຬĴ"],["@@ѾîôƵӖȖࡼY၊ԧÂƯᱝىҩ͍֕÷σקܑĭɷ²ଃ̍ދӪએʞңLႢຐݯӤᧈǔ࿈ʿơĵ"],["@@ͧ_ˬĮ¼č"],["@@ҙÞ˺°Ǡō"],["@@٣ĤҔʂנȱЏų"],["@@}̟߱ჃͪըΌࣜƾࠂǩ̮ͧ"],["@@۱ŋÉŌԬŨʐŧ"],["@@̽ƴ̨ÆVȹ"],["@@ЧµӟĄ๘к׏҇"],["@@ӛéՊʬ­ȁ"],["@@ȀÛӑƅء_ɰżߋ^ƺĔωVĝŔ഼ŀтʕ"],["@@ࠆőɓđ࢟Yȑɮіºªé"],["@@ǃץМóÒɅˇôȍùǢʏ̷ÖÙƗᄩsȽƲ˴¸Ӈƈ౤ʖ᭣ƹǭðոɴঠÝχ¢ϩȦ̀ŒӛĪׄĀದсȹnjӒzܻĆξÎ܏DzࡠĞޤƕưȔࡔȑ"],["@@͗t଀ňߧŻ"],["@@ӎ½ʡDžڰðʬDZȤ̂࢜ßĨˁӕҗࢽƋ૑h̙IJᶿկॷŠաɚఐɔ঒šӠȦᔱƿšdž͖ƂңdŷǍ̃ŠÀǁӋģͥŜ˅ūعǠࣵ¾ʶȐল„޺Ƽઃýاº̤ńຼľඡ¾ϤȦலmࢗĈۖȒڰ̶ȵूI൪չᄘMDƂާȘ͒Ǻ۟ȌৼϊՌ×Ʀֱ"],["@@ۣȒΜĒφą}ȝ"],["@@ੱ¨ߌĎ˦ŵ"],["@@ࣆţʯ˓ҐƢෆ¼ٚƻܻ‘ᅌŻĹĥ၁€ᅊΥ̱ȗؖģɬǤόūІÂdžùʂŐલȇkŒ႔ʒאË࣪æ໨ǝۀ̳ܻȍ࠘įҗë͹Îîˋඩģڝ´ډ̺SˇݥÝՕĊÓ÷ʷḙ̂ďᔫIģ˴ࡱɵ࠳¶˝ǤɇƗΑL۷ԜǢӪݿѐᆵ÷ٟȈ͜ĈਕżД¸̙ƦކĀಮŹ"],["@@ٹȍѨǕω‹ʲDžࢫƯȟȿّľĦͲމʕʏ͛пǞ°ˡ͗śзƒσ̜̫Ǘ્ƒ¹ǰʻw͒ȀߪĎᐄܐሺ†ǑłѺè߮ƹ"],["@@ͧ±ٟİs˄রŷLȉ"],["@@ց’ۏҶϖG࢜ͯ_Ǐ"],["@@ᆸ«ȯɯᏋdǩǼ׮ü"],["@@ַ€ÏŸ੊§džāׇ"],["@@ϣƒ׉ǎղƌм˕"],["@@۰y਱ȫ״ѝȧᆣƉڕƔ§̾ᙎǘ"],["@@˦˭ඹÐ̇ģԩúࣻḚ́ƚနɤࢾë"],["@@ઐšΏƑͪűႱɧ֗ʆ״¾कƤʃϖߚRবɁ"],["@@܎νܺǘӚɷ׌fۚȣό؏झqڣ̤ಃ°Ľĺ৹ġۇüūǚ૶YϙĄղĐہœ„ǪرƳŰȀڏLlǮńæ࿰O"],["@@ŹɍथƤHǐݴ€̤ť"],["@@ਰґஂé͈˿ւ¯˙ʴ܌ȹɱߐǡˋˁߪ°ˤſ̠ŐԘ˝ྑʹևʣΡˎ¶ϫّ¢åͯ৷Ξјϓ٫ƘˉƫรƎйŮࠚèୱÆ̱ŤЌtߣźೊ̔਺ø౫ÞणƅƩĤ࠱ĥҹȦ੖Ǭ૳Ù܋ɌƷȂᅄó͒Ŭॣ¹ࠩư܂ª̔ͅှƉೱɼ҆ǰ෎¨޷Ș়`ॲdz"],["@@ᣈ÷႟ɯᦜŪˆĒЖĻܨ†̧ͨ٬Ð࣪ßȉɏᛏχᇃŁჁ˕ᾆǘ♩टঋƀϔʱຓġద}ۍ˥ࢣÉ࿧ưޠıĢɃᅡ÷୩ĈઞɭऺSƇǍ῅טŏൂÄ๨ɋ͡ǥ಍ƒਈƷ֟ˉᅫÃÃΩՍƩ༩w࣯ǰ̜Ƴً¡ʨýቒOѦʫ׆îʲȇʩƹᑝͭƥʠرrڿȔʠɍ൷[˵Ȉ§ˋܭ«િɾȏǩ֣ÒŕŚOǗݯhċ̰¥̏ۗ¬ʼn̒ऐɸ೰æܳɂ˯̊੘âখͷ܌čࡤ®ࡖκĬŤহϫ౓vɏ̲޴ɦͤgֿÂņʎڭΗՍyʢɘ࠱ǻ՛¦شԈະŜผţ౪ǦׁÓဇþzĺڶÅᜁږßΎᙲ{ႊҗ৲ã̐ÂݕpဏՊㄾҖ༓ò໦ДℹٳགྷÝ֌ǎᇏȵ໩̑Ĉ߶ɖጎȊᐯħಣ̫֣L঍ɠᗄĂಊɂያǥጉ¡˗ŞتàϷàნǔݍ྿ƅԂȖఃÃ̗ĨᳮΌ࢜ř͢þ೨Ë೑Ȣ฀Țቜ̹ĆƜᣒͫ᠛Қ٢ľλĠੈ³ŭǨቘċ୿Ȝᒌ_ഞ̣όØಷͲᗮJ์ʕڃƸՊƪۢh࢘ǗŧƲप„Кĉ"]],"encodeOffsets":[[[-61222,44995]],[[-68364,45755]],[[-62424,46582]],[[-75463,46680]],[[-75332,46561]],[[-62571,47048]],[[-65342,47584]],[[-63400,48420]],[[-55528,48580]],[[-76501,46084]],[[-129118,50539]],[[-55863,50779]],[[-55391,50939]],[[-129680,50797]],[[-63284,50273]],[[-128188,51300]],[[-130250,51856]],[[-56789,52774]],[[-130994,52710]],[[-81289,53199]],[[-131449,53659]],[[-82669,54014]],[[-134915,54473]],[[-131637,54211]],[[-132267,54393]],[[-132964,54444]],[[-133361,55254]],[[-135839,55427]],[[-134069,55787]],[[-133709,56085]],[[-81897,57557]],[[-80830,57617]],[[-63225,58936]],[[-81629,58896]],[[-70819,60458]],[[-65952,61816]],[[-69871,61687]],[[-80416,62187]],[[-66388,62839]],[[-66591,63365]],[[-81454,63910]],[[-66379,64061]],[[-72025,64050]],[[-83968,64466]],[[-79745,64994]],[[-78517,64916]],[[-86957,66828]],[[-86706,67149]],[[-85735,67376]],[[-110686,68614]],[[-64185,68666]],[[-110489,69020]],[[-75388,69411]],[[-88673,69362]],[[-77492,69963]],[[-80878,69830]],[[-107049,70048]],[[-76678,69990]],[[-104290,70233]],[[-102622,70459]],[[-102394,70670]],[[-81111,70498]],[[-92364,71086]],[[-78843,70804]],[[-103599,71063]],[[-97805,71244]],[[-69544,71210]],[[-79901,71389]],[[-81337,71463]],[[-99778,71315]],[[-88998,71796]],[[-76501,46084]],[[-99105,74688]],[[-117270,74336]],[[-107815,74670]],[[-81446,75423]],[[-88667,72716]],[[-102401,75721]],[[-100628,75642]],[[-95406,75941]],[[-122609,75892]],[[-99692,76315]],[[-97594,76294]],[[-106618,76838]],[[-95787,76829]],[[-98384,77323]],[[-96795,77568]],[[-121168,77394]],[[-80960,77749]],[[-104680,77840]],[[-106519,78422]],[[-100045,78302]],[[-103655,78418]],[[-110891,77883]],[[-91879,78344]],[[-116286,78586]],[[-96558,78759]],[[-118324,79220]],[[-91989,79123]],[[-107067,78994]],[[-97776,79660]],[[-104134,79562]],[[-116564,79621]],[[-113109,79978]],[[-112451,80539]],[[-98513,80417]],[[-105908,81220]],[[-101162,81901]],[[-94090,83081]],[[-71156,85010]]]},"properties":{"name":"Canada","childNum":110}},{"geometry":{"type":"Polygon","coordinates":["@@ÅÑ@ĝ«ÏƜŽBAҬǥǺŒÆi’ÅC…ŸʼnOςĩȟзK¥]u­mÁN‡ŠwzµfĿ¡S‘Tďľ¯Ląků§¹B§TďƨyAā^čɵíǡťǕȍǦή̡ƚóǘӓǿųíõȫ֑ēǕÕp‡lÉü³†ĿĪ[ɀƯlűMě‰ñ½‡ŝħãI‡RAÂÆp¼–„ʌɾǂhÞxĮƘ²–nl€ŐĘŌĔvˆnj@bč°ÌºƘŠǨ³ɮƆ۴HĘxX^G\\]NčMVSt‚˜ŘœߜɃĐ³ćǑ@A"],"encodeOffsets":[[9757,48405]]},"properties":{"name":"Switzerland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ɫªƎŞĞLJ"],["@@ɓśŽĬә™șȬࢲFƔƧ"],["@@ڪĉό¸ŽǑˤċȠ͙ۋNJoǬʫÎƓŅƬƥȗ€ӋʠĄɞƴ‹"],["@@ƾċ͚¸ĶǣƫÁ߱ʎϐl"],["@@̲áķɗˣŤЍÏɗɈǶƌԚŭ"],["@@”ąʹSɶǿǟǑϱĻĚɘɳ‚“ƑʼnXēɎѿƸͰŖѰÓ"],["@@ؚŭѦʅγ ʥǮ͹`ω˪˞ƣ"],["@@mᇛ۩IȥŬٱą૫ƶąĈņĂ؄SʂĮĆƃ͞—ҩΘIȐ˰ɎŸ̟ȿeĀŋ̮ȱάÖШɁǬŴߋʢƍȄºƔآʲɿè׉—ħʖˀŤȿdžϐËѬˮȸƳ͆úƆÛ"],["@@ʊ˭ƃˁƁPɅМʂƄ"],["@@½ijΩCȯȑŖ̆ΖÒƬÍ"],["@@ğë_ʄʾ{ƽƛ"],["@@ͥŸĺ˦Ϛćƭƽ"],["@@ʃ˕Ɂ‰źĨăȊАn"],["@@ıܝƙIįʈƀʪȣĝėˍН¼ȲʢƉŔ͌öĽĺɖǀ®Ȓ̌…Ð͋"],["@@şƪâЬƲÜȜԑ̏ş"],["@@̙…ʏР\\ƖʬŖˢم"],["@@űÖˮ”ƻĩ"],["@@ŷÅȋĂ͈ЬCѧ"],["@@ƽƜĂĜüɷ"],["@@ȯãƙð¡ŐȦʴβƣǫɫ"],["@@ɣǑɲԕʍűԏהĮƦͼìĒȾʔőķ"],["@@ŧāƿ¦˨œ"],["@@˻Wɭł̎ாђčĖʟ¡ɯˋij̔̏ˁȅoƿ"],["@@ƻ_ĦðÖÏ"],["@@ŻšĒĢÑ"],["@@ƾƯ̇ࢁݧ̝ʽ̗Ƭ́ǩ˟Ƭ؝Ʃˇɮхɯƕɇ[˟٩ЛЩƝ׃ǗȃÊىĬąĥƵǑEſ֋ǯŁÅΝ˦͙ğŁ˼ڧ¿ˉɞç߅ǙÛ˹܅ƋċŞɵVҏճϱŗˍrޙʸ۽җˣř֕Ʊƒ¼͕ƃŽĠǣȉʻjߩƊ̛ͫǣاͪȹŻġȌӧŝϡԜµ¬ijďǟګQnōϐÙȺ̑ͭȹĬ̿ȳǧƨЭȫƯˆ̵χʓƟ͑DŽȝuɋȑğḘ̈͏ơďʉ˛[ýų¬։̊ԧդŌƜ×ÉܝЪϗ࿪eౢ̉ڟŶ͉ɑথʯǙࡓʩĕ݃ɂȧʂЄĮ¦ʑϐ¨ɄϞǘ¾ȈƉ ݝ̱ɫ˟хǼ˘Кɲ©˰ƐԚœ׷ìDZĕɱø·ҍѭȤͼŊİȂĵŕ˻¿έ Ɂ҆βŇŴƀΤãϸǪȌȿęƹżňďʸŔƶɫLj΁Ĵӌ̃ޗȭȟȶύĬɢÀS̐ܿǠɻ͎΄h÷LjŎĠɺŃȐˣ˪ĵŶϐ˕˫ǩ˺Ȣq֭ˈʞȂ̀i̫ǰ„ưϢKɏƲƆ΄ʉЕũČtڲ˨ĶϷVġϸৌūǿŸę˴ȋɯʉ‘ΫɢĸŔʔģĞö̉ƈ˘ȼŽͦşlµıгŨnȔҳƽĢȡɵȔڂҞţʈކĜˆɪƒüՕǏԟ̻ƉΨÂöʴŦˆvɑȫϱĔƒɆ֖śΚϸŒ˨ęѕǸèɔԾȴ¸ŞbƄԏɤ”ɪžŠÔȘáʶˊʆ÷̶ØƐŢGşɄ޶Ȁǁñ΂˗Ôϴɔ˜Ŵȋlj·ƨʏɟ͏Nġ€ĤƊƿÄŽͰʜॾɖƤƺӆʙ׸²ЀǓ˼A̜¼Ÿ͖nĊДѾޮ‰ƤͲЪȆ޲˴њßҶʒμɋႀʢɨǀìвǟ؊DzɈȄܞƈȎɼ੒ÇҞɤԤŅѺƴ࣠Ǜʼ~ǖȚǪɄరįՎࡨɕଢаŜľǺ¥ʌƖ®ĊÞÚÈǖν~mǂí§ÿ¬śÆ̽¢ſVŽĢĿȦǟ֛²“lwPoħŃĻƉFgİĭhCÃǕů\\˽ɘƛ×ɯ̤ͯVˋʰܿDˡʦÍǾŒƖ„"]],"encodeOffsets":[[[-68903,-57115]],[[-68689,-56477]],[[-71375,-56237]],[[-72695,-56184]],[[-73103,-55329]],[[-74673,-54765]],[[-76170,-54192]],[[-70277,-53916]],[[-76618,-52869]],[[-76348,-52507]],[[-77109,-51896]],[[-76856,-51503]],[[-76909,-50008]],[[-76263,-50327]],[[-77322,-49933]],[[-76356,-49758]],[[-76914,-48985]],[[-76096,-46788]],[[-75399,-45897]],[[-74737,-45854]],[[-75504,-45460]],[[-75582,-44879]],[[-75543,-44386]],[[-80695,-34453]],[[-111902,-27791]],[[-68807,-23369]]]},"properties":{"name":"Chile","childNum":26}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŀ˯̻̩ǃҙ͓ʥҡȕۉˊ‰٦ԤϨċNðĪބƠΖßÂƌȦū"],["@@ŘScĭȉ†Ėü"],["@@ijaļòGÏ"],["@@QƜægÓų"],["@@ý§\\Ěâ±"],["@@ĵolǦĮ¡cœ"],["@@ĵoØŢžı"],["@@ɭ¦¯ŊˆÙXĕ"],["@@˽´ʷɌնʿ"],["@@ɽǬKŮ˽ĚǙҧ͑…̿݅͟§ȴ͉şȁ߿ŦȍȦDZ™هۏऋϏѷϣɋƍϣ’ڻɽܝҡʯ¥wśУŏ³ǂӖǂ«ĤLjƔҗAQƆɀĂ@ǦʆĘЊӺυζėŅү°׏֛ࣳГΏӏ֯īɍƈƥ‰Ƚ˳·ȑǬˁȼŇަşŲ˻ŗ̳ˮNjЈbҪϾ¯´аżݠ̻ΖÌԢŁȃ˭Öķƭĩ΃ń݇̇ȱjîǁƹ}ÕʃȵÛÅƤŧsõëdžőܗַɛϝˆčࣈЋԔ੏c̕ШȣÀǿϞ͝VħƻRˡŬ͇VϟȤПƛְ¢ÔƏܼпǾͷϭŅԅι̹„ɉūʦ¾ŜƛՀƞΜ˙ͼĝӛ͕κĸoЃǙĸȗÁNJȫśiĺåƿǭŔ̉˳ÏŁĖƿʑǯuîijȵʻjƗˡ˅ljΧǡ»·ȢħįĹ²ʘϙΗɻ˗ÈNJơʌ°á΋êǙω¸ĘǽʷmËɽɫÿhǵӍLåũƏOǶȓΫ΅ƋHĉɃÝłǩŕƟÌ¥ǍșĉÎÛƇĉËȝǿˆͱƯDZªšőʫĈ˻ǙǝŜćȏʍXɁyͩ̌BɠčsǃDžȈˉG̳ͳų»ŐœʥũŒȅƗȏǜ¯ȣ̣Ğ˹ʓӯ¡ϙʟſľɍͥDzě«ƓǖŹƕȉϱÎðìʱЀfǸɀ̌ȳšķƔkŹͩĥŸƒˣ’ƭɪħHnɫƫ¼ßŕɱ¥dzŬ΃͉ˆʵ°ħѮȖɸȧŊə§ŋĦʯ¡Ӊ΢Ήǫƫ˃˅ıȓĆǛɓˑȮŅNjƓƴ́˓ѕʬ×ƛȭ»©£‡ʇRçĒkJQ‰qs³uß©©—mDzΩN£HƟqʓÞđaO±¡oMƋìɕ¥…\\ovY®RěÆlεž¹ǀЋʃϧRǧɸoɨ؋Ĉ˄۬õĠүĺθŽɾƄǼԻUխǙŦˌƩɚªʄżĂè͎dž”Őɺdž`˔ɸûǬĸĮ®ԆóڌǕìŻęȣՖϳ˦½MęſÙċ…‹gʼn–ėʛȅë»٫˼ϧÜԽ̳࢓ƇϫɝʱҍӁ¢׍”r”KºÄ’MlVžzʬ܍دî‘RćgğHůΌǠTƎɻĎ÷°ŸOůą³GʱĐíNŹOĽTg\\|ĺ]xцįrĻRéaåÉËą{ĭ©±Ÿӷس· ÉÊaüæȶhЛŜȏðŵçŵ•ői_B¿Ƚ`ȧÑ˧Nűbķøï’û€ûn¤yrÛP»c‹Ĺĝ‡ã€ġÀåþ·]ůÍq“d¾åŪåîå¶ɣCǕb÷p…´„ĤŽôAjVµNǵ³·NӉ̐­ŀ¡ĶuÂá„ïv̑ăΫή޹ϜƫɚǁŠdzrȋ¥Ƌȳß­LJǔĥ®ֵɺbĬʃǤɓÜɵĊɿ˶̧áXȐ½dž‚ȲȗȚ‘îƔy®̈Žb·ƒšɄŞqш—¨‚Ķm®ƏĶëîå͆³ǢȲǸ…ľÑŽҍǺƗ˺éǂƒ̂ȱ`̑gŷ‚ǡšǯ¾ĥ¢bą¨ËšWĪ£Qĭ“œuÕA}fÝżƃȾ˪mÜeÂýņ˜ĕ ÿdħ…‰Z¡Ū}~ʕÖėe¹_ǓêûB·]]R{vķäGjƾâĢ~¶pXIz‰Öq¨NȒźȋǺçܠ҅ǘɃĵȋÊėȺĠĪǕɖ|ƘIªLj’ìøPzĜ—¤GŒjzz¦°Ď¬Ä۶ʈ{Ȇ°~VŜ™ĚHŊvɾنCĺˍǎE͘ņ¼áގìºĈņœîdäjŒ¢ŽĬƐì–â`ԂŸŚ€Ą€ŢIƖtȈǦbøäžʦŤҨȈЈĮØĆÎhʴdfVXb‹ŊMҜ˰ŜůƜͪIJα޼ń԰ԡƚǀļ൐˾Ɇǁ˒¸Ɍÿøʤʟƞ׸೺ࠤǹմDĴšטȞƠdžŋ֊ȊЂڦŦɒѪўŠĀQȞȸ˜ªE¸ƋŇijô÷ǒ±‚yãŷˤéĔËĔg¦ÇRćĚ¥ƀËâYŊñδvèqǼƫ®Eâj¢–ÎQÚōô™ĺsdkĂųÒȁŬƹÔąìeÐ}”ÑÚœ×БŠÿ¤ÓJÍ˷ѕǺˡƢl҆ş۶ÉžDǬrؔù৒ӿ՚Õqȧǚïˬ֫ѴұېÎቚȅѠĠĒMζ­ӖÅͺYê]æo˂ʅƸ·ΘÅмï՜ɉʊžʶ¤nj€@ǿ̦]ĸ£ÌjÆ¢æØİ„ҮȈݸʜ୶ƆѠոlĔdߨˌԜӊܸ˶®ŔѽҬиגŔdäeʤIôŸĈÿĠ…˾ÕɄeǨ{âaÆdȌŐŸ ¨z˶ȚŠǀƮ|Ʋ“ȲXѦÌѢʀ˜´W¦_”̌͸ʞĊЌup|AžŠĎ\\„‚`ĞDǎÏˤŰðXŸĄ[ƨWÌTØSĸÌĨsǢąƜqŤZŬmðD”l͜~ƼƽʖՉшÁ€ř’ĵ‚ÍÄĻĸ͔ؗHΕ˯Å^ǹŞı~§bşbĝIśsœJ½`ïCſËåßăqɿǀûɌβŬÀVĈIĠ|ĺܦਸ৆ʻӠ˦ڸȈðDzƵńݺ৐ֶжÿЄӳÈvżݢкᔺɘৢ΋ɚÎӘƉ׊ֱӪ੗͐ͣ~̛Ɇş‘΁Ϙȝע€̤ȍθ^הй̜AɑɄɕÑ˓Ȕʹ౞LȚȜξƄ˘Qۚɶ̺ĵċȗƾʵӭ΍ʱࢯΧգȿġÓ̩ƫč࣫ʠͽ˽Ϸŝɰ٭D׋ǁЏէƥĒLJ"],["@@ƅ€ǦüŸĻ"],["@@ɂzDȵ˥ÎàŮ"],[],["@@těřlĦð"],["@@Ɨ׏ԛژƇδºцބ୊ҬȰ˰ʧѿຩ͝ҩ"]],"encodeOffsets":[[[113551,20472]],[[113035,21600]],[[115348,22160]],[[115498,22121]],[[121020,25085]],[[122697,26068]],[[124162,28761]],[[125232,30683]],[[124788,32249]],[[133660,43557]],[[116734,22744]],[[116752,23053]],[],[[121250,25111]],[[123913,23164]]]},"properties":{"name":"China","childNum":15}},{"geometry":{"type":"Polygon","coordinates":["@@ҒӁƗĊTĸÙÖCŶŖ͠ŖǬNʖ•ÈZÀÄą®°…òŷt…¸×¨C¤„lpT£gå“ʱ´i”ˤſĀӻ‹ÕoOwfY‰¯qķ÷ƛБɣףȔࢍǤģŽƗ»ɻ̑¦ŶŭȉٯưЧ×ӒKܥû͏Ôí¹ʲi܏ij്և{ȆÙƼՒ¯ʔƳÈÿXÑĴŽmցîÿ¨ʱ„ʧƠɜΰëЮkdžàW̓v„øƞUĚĮǰúýXێ†ZżN¢ʄnŊUîû˜@oɤșŦZnjŠŒľÂk†‘ŒáŒnȐȭäcВƐDŽˢɞɶñ̲ǓÈǘɐNp˜mĶLÆT´nnƞăȜƂºˋC}£ùFcĺ¹èMńĦX¢ª†ŴšŚNƤŁĶL"],"encodeOffsets":[[-5388,10568]]},"properties":{"name":"Côte d'Ivoire","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ɯˉϽީʵȭƼƣ­ӭƘ֫˪ˉÄϩ޺ޗĶ՛ĽӿˉȨ۵Ĉ˗ƾઇ‹ÕĂඉžǯEgōț@ʱ@ڻ@ġžƒ|K„IlsNlȢńҐɵϬĀðĽWïƾƸ°ċĦ¤úǣT·ťΥƚçϴɏİIŽĭ²ƨЌʂܸатʒ˼”p®hƐIJĖÚr‹dŸjkô]ĶBNJƼ̊ʉàáÖȫ gìZƒêŲƎzNJàÀǢƒāž–ÖǨȴǼ׌ƞˀƮ|ΘŊŴrÌÎΖ®ļɨŚÒЈŨŔĸθƐɦNJɢöÒ܄ðHºh̜ȌºքčŮȷ¸óøķՎƲAǼ±͖ѧȠց©ؙĒϷŦʕ͈̋உwɡʍ̘Чڄիθ٧Íɛ"],"encodeOffsets":[[15852,7705]]},"properties":{"name":"Cameroon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@͔ϵͼʛȢuʦƴмħȴȂǪsѤԕ˂ūàǯƞ@æőÌçŷ̯üǍį͡ϔƻÜȍહ਍Qˏǻͳşణ͉˧ÅЋɉǣdȡĶíǮ˩YٽLjԭBŸß˵CÁfëǚѡªŵZÓU«ėǃU¹vŭ†š¦ãĴȇöÙƎģŨĥĚĹĎƓĀɍ̂؝༓ʕyʥϿσǠϡ”ܷɗࡡČȵӦҋΠÍndžʌÔiઁȃDŽ̑űƿ|ʅόƭöśˌ۵ʔΑծ˭͕ڡÚ֩ɢ»ΊމǣWʌͱɒÅģÉ̳œ͙ijɗPɇrÙ}ýÕߏ‰J«ÔmʖĔŜğմ͓Ӓþٴċବ¯pҽjɻFʫH¥„m¾B¾ÀƾQ^ĝJʕlj{ĹU̇Ɓ™ŕGljĝƵC©{ɓǓ‡Ǖ@͍ÆүƟ̫dÁQԁۼÅ˖ęƊÏżϢƇǖėÈĭ†ዱRՍMƋPؙŧȩȰɬƒծ¨ˆÒ’nfȞȮIJ”Ġœ``^„¤CɺȝȶĮ¶ɢȊ}ΖƼüųëŕœȷʠ¥ંबȒآCܒ˚˴˶Ԫܼ֪ˎᓀΚފĴҮ_ܲЌҜδȤʲΜɓ˨̯༪˝ϊӶҬ»ݸˤضuϮ̂ઠȿɀŚ˦ù"],"encodeOffsets":[[28061,5232]]},"properties":{"name":"Dem. Rep. Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ijҭΙމˍᒿܻ֩˵ԩ˙˳Dܑȑءઁफʟ¦›ȸìŖûŴΕƻȉ~µɡȵĭɹȞ£D]ƒq`ÝÊ÷Ĝƒ`̅ƃНΕȫςխղĖȎɨƞƴƋnjb°̆ǿޜǎȇŬÊдϬÏ͐ê]ʹƄĒǠėǖ͋ЊçɦɎź˝ĚsǦ؋ŘȆ˞øૈԩ̶øҶ̾ɪĚɸȽЀˣ¢Փƛ™Ғĸ̼ઈŒ˘ƽ۶ćˊȧľԀʈҾŤ֤݌ƴ֚ƿ˂ļŖŧ"],"encodeOffsets":[[19057,3562]]},"properties":{"name":"Congo","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@՛ǏʑЁχ̣Ư˿ŗם̟ԃʶÆɘųŌЙɴ˹çٙɞŹǜ˳݆͢ĔԜŗמۣߤ„ԨŐ̈́ğPȿ̍և}ٙnjե̎ϕҡԹȬ@΄͹ˬকǥ‹ѦɿΎ̱҇ɏȨ¿šäĿඟWGձҒQƆ͡ˍÒӧŵa׽ξ̵Ƞֻɧఇɹಃe‡ǛƼÕƘµŽ“~ͩ‚՜़Ëfㄥ°ɿŒÓZµÂǫľ­X·gñgéÉǙkƋĢNjÒ¥[Žû©ȟ×؇N£°Ƒ¾•ϔʥŚƗώǕªÃÒ¹xÉÎрÅx‹–§Þéɪ¡À£¢“’½¼Ù†ÁŒs®iœ˱Ųū³Яǒг̌ȉǟݵƄÑȰȡǜГŌ֭ЦƓƘȞȎǺÙ]ӪƦń̌tɆǨئ৔ƽi]ƒãħ§ʬĥ‡ƘƼÈ˘ñԐƉǴʈȲȁͮĎͰҁպŜЂȊŏ˾΀ʁѶĔƈѮӋÓįŚ•^͊ůɚզΒɀ͚̈́î“ɼŢЎƛ¿ɚϾԐоќħƻőĬćɐҲۤsࢎԀŞʦΞȚϞíŀʏƵƹ"],"encodeOffsets":[[-73031,12147]]},"properties":{"name":"Colombia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@нǏtĆƂ»"],["@@|ɳʇƼɌø"],["@@ȧŲÔ̈́Ā…ÔЯ"]],"encodeOffsets":[[[44840,-12602]],[[45544,-12371]],[[44509,-12186]]]},"properties":{"name":"Comoros","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŏk±ŪƖlƍ"],["@@yƾú±¿ŋ"],["@@»ûǛœ—̰ʰˏ"],["@@ȌÉcŁȽD–Lj"],["@@°§ǭxãęÙłʼH"],["@@ý–¢ŠœƵ"],["@@ǥ^Ƃø¤ĕ"],["@@śU{žʬî°åǃů"]],"encodeOffsets":[[[-24891,15213]],[[-23738,15501]],[[-24006,15369]],[[-23467,16627]],[[-24665,17022]],[[-23437,17059]],[[-25484,17222]],[[-25773,17354]]]},"properties":{"name":"Cape Verde","childNum":8}},{"geometry":{"type":"Polygon","coordinates":["@@ʜԑӌթǸýIecgµƒƁð—i_¹{}‰W]i@͛¸GĊŖZ‡ǃƧ¾ėVũa‰ƓĭŰɡȳʂȢʵIJƮʧɃ’DžƚĶDŽĻ̄܁Θő˦ѩ˾Aœ̎ʉDžǿȧǬʹüȍ͞ƶϞȫźƎƐƈń֦ȳɴĎ׸ʻǦ¨ÒŎ"],"encodeOffsets":[[-85649,11180]]},"properties":{"name":"Costa Rica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ͭŋȋŸǰAğǘúŶɸ«Ÿˋ"],["@@ȽŘʈ…‰đ"],["@@ƋؖĆĶƝ"],["@@ӚKİďж¢ʈƅҜ³ҚЕӸ“ࢤӍŞQïĎðc̔ȑȅĨŇźĘȚɑ२ȁńĭŅɽۼÁ̴ɡ̄û\\Ľ߳ɡ‡ĚśīܱĆಳœԤҬŁȤݗIJ̽ʖȥҎՉMܻʌɉɂҥ¥űǎċƃӃĔȓƤ̰ĠŅƨݱbաϹѫ«ʼnȑЅƕBż͕ÕҼǾ…ʮˆʎڎʨஜǐ"]],"encodeOffsets":[[[-84543,22090]],[[-79533,22479]],[[-79748,22659]],[[-83801,23719]]]},"properties":{"name":"Cuba","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@ȳèƍȨ΂ˏ"],"encodeOffsets":[[-70401,12350]]},"properties":{"name":"Curaçao","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ɚ™ʡuˆÐ"],["@@çSƎ°å›"]],"encodeOffsets":[[[-83322,19814]],[[-81739,20186]]]},"properties":{"name":"Cayman Is.","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ѹÃýƌϵÙǧìƖRÀǮ֔‰ߖʶԩ̳Àȑ"],"encodeOffsets":[[34821,35907]]},"properties":{"name":"N. Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@Ǩë϶ÚþƋѺĞÛ̍eׇͳҹƆōȌ_ňΊö"],"encodeOffsets":[[33498,36016]]},"properties":{"name":"Cyprus","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@òFòrVņ࡜ͷɲšŚçǫųήˑ̎Ŕğdž҈ơʌ¬ÙDžȺŧźÂ҆ſɪ̱֟ɇÙlj˝ƩԻŸƵȯ΅ǔУ•ࠫȲ́ͯաFȟƒ›¤í¼řêęG‘nП̒ȡìʓ˚ĺŚ΍θŠ@m´™žÁzrȴǀϼĈƒhী͜£ŜȎ™^ˆ‰zGS·šoÆc˜F€rXb"],"encodeOffsets":[[15165,52080]]},"properties":{"name":"Czech Rep.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ɭ‘ćȼ̶ǩ"],["@@CďѣœŬ̸˒řªƩ"],["@@ʂŵŹǝܨſʀÂIǕǓęĚáМ§װȊϸʤϠ³ΚɧɶXŢʥͦϐƣĮɭCÉCc•ýÙáŻÿU¯ŀăɖŗĘį¥ć_Ñh–‰ÄyÔƗųȽŘǣyé^iƲ»~yx˷ñēŗIYWaq—EÅd™pT¸yH‡Š]ȍš¤śি͛ƑgϻćȳƿyqÂ±š‘n‰@SQ@…ǤōǾɑĹřʔ˙ȢëР̑’mĚHŚé£WgIŁY…ʣK]SYM¥Ɲñ¿ě{ϣǏnjǻ±ƗƀÉKÙaÑc}Cõ~ϊulCv`bs‚í~Џ¤YQN¿cw॥ȏ½JñÔo~DhŋHépƧK—T‰ő‡©ƻñdîœ|A~Itur¿‚ō ùpȋ©ߛɄŗ›—TsŽUĎN^MH[W[åWqa۳GBӄѦۈֹƮ׷R͡ʖŤ̄ʁİǸy¼NðȌ˦̇ʤ°żDžŀɮİÌʬȿ̒ܐƒÛĨʾʦʋìź˔„ƒՎĻǐǰǠ؊TČȉŘmôƊƌDZļИӲeӠʩЅʰ͡Ě[ʞɿþ˜Ĩɿξ࣎ß"],["@@ŦɦÓŽɀOˑė"]],"encodeOffsets":[[[14539,55214]],[[14039,55688]],[[9974,56142]],[[8508,56102]]]},"properties":{"name":"Germany","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@˕п̩æٓčKצӰپ~z”v|OȌŏ–¸Ŭ’®dAĺ”ĤžȤ˻xɳثѿıX¾ÙϬüǠõ"],"encodeOffsets":[[44284,11776]]},"properties":{"name":"Djibouti","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ÿké΀ƴęIɹ"],"encodeOffsets":[[-62752,15615]]},"properties":{"name":"Dominica","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@͆ívŅʷ§ΟŨpƘʬ£"],["@@α§žŲɴĉ"],["@@ɉhsƎɾƵ"],["@@ĥĎˢʰǻͽ"],["@@͹äæǎ̰ŵ›Ļ"],["@@ŠЏ˽íϡĬŅ̐چĂ"],["@@ĩ‘¢ľÈë"],["@@̓ˋǖƯ˕ĉ‘̻ǁ•ǩΐ̯dʵѢ̀€ʰǢNJɑ ɪ̒Ŵ̠¯Sɻ"],["@@ƭTʨ¼ĹÏ"],["@@࣍à¯ўНƴ€ࡎѐģǼȪƮ¸Ŋû¶ʼɗHȃʓʭ»ƹǀˮɒۄÂѼ΀ծƀ˝भզƫơǛι{ŕ̇ɻkĶçεɣäȑǽȏɺÑPţ"]],"encodeOffsets":[[[11635,56210]],[[12851,56285]],[[10303,56204]],[[10992,56065]],[[15450,56343]],[[10901,56945]],[[12970,56931]],[[12871,57124]],[[11318,58627]],[[9974,56142]]]},"properties":{"name":"Denmark","childNum":10,"cp":[10.2768332,56.1773879]}},{"geometry":{"type":"Polygon","coordinates":["@@ċøˆǜǜk~ĤŊ״ÆٖɳȦ„Ǽ̹юw̻Åcõ߂dz̄ʗ̇ͫȻNJ˷‚зH׫ȏƑĴ͏ÁΉՙljŜŗɠHƐxÊsÐġÚÉĄ»ð\\XĶHļĴbÐM¬ÕŌƈǬ"],"encodeOffsets":[[-73366,19657]]},"properties":{"name":"Dominican Rep.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@Ţŵ׳CɃšē†ăçij‡ėȵؙչj̥˾ҝȢįȄїװЃĮϛÂȻʜ१ǫĩж޿ĢୡƗϣŖי͡ʟ™ɡҬ؟ɊحŠėʒÆےȥϰڝ␣ᕧ൩୧ഝ˯ܹſȣĮŖʶĿτ௏Ѻ×ƪϏɚiʆ᣽ၮ᜿༸ἡኒ@̸@Ȳpیত֤¸„ʈǎʊcĎeĶ]ŒTÞæ”ƊЎVҲŀžĒĨĜDzʤDŽòɀÖǦÖƤĢѮLjǧǔG˄ÎƬÊTĄYƒd΢Ŋ|’´Ƙʂ೶^ĦʺªźÝ´ĝȱzćæ»þ‘ǒŇȶĭஶ˯Ȃ¹¸yØҞâ਺֮͆{̢ˤֆʀഺƂ͊ƸڲĤࠖ@ҌȻৈπφƓʾ¤…ľצȣ֔ærēͥ˃"],"encodeOffsets":[[8405,37396]]},"properties":{"name":"Algeria","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@šm¤ȰŦîƠ³ȇȻ"],["@@ā”–à¬ij"],["@@Džn˒ǖŋȃ"],["@@ǩĄVĂɚĆÜƣšħ"],["@@ƹb‰Ɔƾ|†ǣ"],["@@ʙÂòĢǨƣ"],["@@ЈٷęǁȍáʍpÛŖ̀ʪȽɬ¹ɞƗtȢļøč"],["@@ç”üÈSě"],["@@˻_K‡Ò•УÈƇƒƳṬĉ]vw`YųӍѥԏӷί঳Ι͉ЫĕÚʫ܏ˁƧđ¥e³X¡I±_i…½—kġ‚åB¿|Ëô³ØĄ]Ō½»žÕYïQ¡~ı²čÀـ·]ăė÷Ÿ“D¯€SŠœ¸úńčF‡’Iža¦jº¬€ŒuŠ´ŠrŒf¥ˢåǂ̤ȘȞӢĥіéЗĕQpǠɹ̑խπƠˬţܚ̊ȘĊɚƢ‡ǗɄμѲ•ՈূΠ’Ⱦ֮ХДŋȢǛÒȯݶƃȊǠд̋аǑ"]],"encodeOffsets":[[[-82054,-3044]],[[-92594,-1372]],[[-91564,-932]],[[-92502,-790]],[[-93620,-471]],[[-92747,-342]],[[-93462,26]],[[-80803,1283]],[[-77091,-109]]]},"properties":{"name":"Ecuador","childNum":9}},{"geometry":{"type":"Polygon","coordinates":["@@քนƕǥ˱੉ƯɃϭʄљѪֳ஀ǥ˿Ҏࣅղ֕DʓʦΟĢ҉ਠᆣӸҋȱc‰šnj۩҂ˉբՍ⮿AªŸï°ŝǙƗOᢱBᢳ@@᳾@ᴀɵࡦɐВĝրʢːȚšіĜଖȱʖƑࠎƋҴȁܞͬʖ€ƢǘѺĠ̡ųςžæŠψŧ̬êȺǙȳŢķDž˦ǗưĜÅþ͘ȋࣂ¾ҀNJ¢ĩ"],"encodeOffsets":[[35068,31958]]},"properties":{"name":"Egypt","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ɐĭΣ„wêļgŋÌbŨƺNj"],["@@„ąħ´ä’"],["@@ijňԉˎ׃Ę˫µ¿Ē½ ¥@y•ƷĕʵµÕHǭȆǿò·Ö¹–ÁťĥɁ¹œßƣqIZȿʠțƳdz˜ŏOŗ£eCʎkNJoǠkNJŞȖ̈޺sˠúƨEÈhż\\ŽªDĞgȮj– ¶ưŒˆȢŔЄł\\‚nj¶žv†¤ĚǀƴΦޛɞএФڟà̄˺ϥࠆͥКՙӲͩż̿ľRɰ̙Ƣ³~üêنĭģĹ“cB‘«·ūÁ—ȋŐ{P“u}yõĔÃüùĠƵĤûŦāƄͷˆΣО"]],"encodeOffsets":[[[41105,16073]],[[41039,16469]],[[41922,14319]]]},"properties":{"name":"Eritrea","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ąƏƧĬɮ¤"],["@@‰˯ɯwĉǰłƆʂM"],["@@ŝĄÈðżýåõ"],["@@ëȓȩŧȻ˨ڂȤǯǏ"],["@@ŕħƅœɔĬȔЬŬ€ÑПɥë"],["@@ƓɞÒðǞĵěȗ"],["@@ť—ŠŨ̢Ȋ]ȗȧā"],["@@ǁA~ĆƄă"],["@@ȅ]ŀƪǺ’ºçƭĵ"],["@@ˈý͛ͫɭìċƂǛÃʼnĀڐͰ[Ư"],["@@ΩĮ[Ė̼}ÊDž"],["@@͒Ɨ¥ƿƈ¤׶ʩ৾ğÆžؚȽ[¡†ģîJƠ¾żÌĖÕমàŠХȱƩޟЕࢥȍˋȩƪčʛěޡँĺϧ΀ʭ؇ωʙҟĀśԙÏˁƣЃԡ቉·ʵDZйéǃʍɝğΑƌ˿ϘƖɶƭçϽϔҕċҤФϮůMȥɶ̄ԊҍԘΘjŤĮâȊŗŪȈƨı֔׺ѮˣŠÛɨѹɍŭؽkħ˚ѕǑġƐǒƚĿXðłçȔȃĘǢʵƮ´ǔްɞOŠɄĬтœϊƻ৸ú૖ȕޘĔҺŭƜêҎŃҘä"]],"encodeOffsets":[[[-18317,28478]],[[-15770,28823]],[[-17597,28695]],[[-16726,29062]],[[-14537,28846]],[[-18262,29178]],[[-14045,29606]],[[1633,39601]],[[1480,39853]],[[3221,40746]],[[4397,40799]],[[-1837,44450]]]},"properties":{"name":"Spain","childNum":12,"cp":[-2.9366964,40.3438963]}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@צƝӿȁ̝[̿ʉLjȊʱĜgȢيľ"],["@@ȟĠȊUVĉ"],["@@͋ŗōƤ̕äӾŦɖą\\Ə"],["@@Ŝğ׻ӱÌӇɶ̍ȣÑţŏ¡ś͕æηßȟÐ՛ˎ͗öƋ®շŽă•‘JǦОΏó̅ĂɑʢƠňȽŐÀɴӶĄʠƲࣂ¤ÆIJ௺ǁࢌ„"]],"encodeOffsets":[[[23161,60029]],[[23904,59956]],[[23474,60239]],[[28685,60912]]]},"properties":{"name":"Estonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@ÖGʶ¶ƸĖz–¦@¾ŸÀđˬ¶ׄėԊˍĴŇΤН͸˅ĂƃüťƶģúğÄûöēӯٽLץٔĎ̪åɟͱƺͭ˸˓ʪст̵ᠴ࡙ࡀ@ᢋᣭߝͽăϩǯɥˏ۩ƻĝę­ūBɋ_ğcŵCǙĨɋǺޡΟ©ąŏƩƍķݗŦſJȏ\\ś~޳ԘȽƂݑ´ɑ˸MŤnžl¨±ǀΙj½ @žHˆʅ̬ɯڬիӆƉʄݻ͠ʂҌ֢NĴĐJޔȞؖ„ϾȒȆǘőƈIJƲߞҸڴϤŒͰాfDؤŐPǴ—ȜƴɀʟYrJÞƤ¼ŔĤɂÄŦº•¸ÕȀñǮȅ"],"encodeOffsets":[[39354,14775]]},"properties":{"name":"Ethiopia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ȬɯřʃĸĈì"],["@@ų¥ÙŠȎù"],["@@ǖ™ƋƛłŒ‰"],["@@ɫªͦZĹÃ"],["@@ҩı̞Áʩ̏ǶʣֆŅզͥޟٵࢌও͗ďĝ́ȀēȇƩЀǟ˓ЈȱSƭљʉৄѵ̒˕̅ͻహ޹ལࡓਖ਼ĽˆDzljǙΟ¦äŏɷ×ďÈ৯ʿࠛ‡ωƛƬǦʋǀƋŷʋyĺ̐९ǺƜ࠶̋ͰĥـюʦėƒٲĘǴ˴ࣈؘٖͤ߬¸ºԴ֡LjŸǂЇ­ϣϔʎҸ̇ˌþʚɻŒƺдڇΎܙźିѠόJ@ƢѸºۊҭގÑѾƂࣴdzڴͬ˘מϠȊԐQԶƄ୨ͥLjǕХʝĶŽ"]],"encodeOffsets":[[[22708,61820]],[[21966,61983]],[[21727,64760]],[[25445,66551]],[[29662,70679]]]},"properties":{"name":"Finland","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ѻŭ͂ǀź‘"],["@@ăÒ¬ò˜ƃ"],["@@ʾɽÜέױƷՑƾµǶȬ˘˂Ŷϲb"],["@@đAĒƮ@ƫ"],["@@s@²@ê@ŞĈĩȥ"],["@@ϋĊĞyÑ"],["@@λϿHġ̦ȔCȍё½ǻĀǏƿʧÛǫǂðƔȆSغ͎ϔĆ@_"]],"encodeOffsets":[[[182772,-19429]],[[183654,-18536]],[[182559,-17788]],[[184320,-17370]],[[-184294,-17331]],[[-184247,-16898]],[[184320,-16556]]]},"properties":{"name":"Fiji","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŤQÑŷǓĜł®"],["@@ݲĒĴÉչҕ˙cęŹ˩¡ɳŌ؈ʈ˿º˲Ö˕ʀʂĕ"],["@@ƍĬǤw•ó"],["@@Τ¯éƅȦùZƂʄ„ƘőŷÅƚ«ݡʥ~ƍҗæņŽɯm¯ĥɅƤàǬјȬ‹njȸȆ"]],"encodeOffsets":[[[-62483,-53028]],[[-61733,-52697]],[[-61554,-52629]],[[-60262,-52500]]]},"properties":{"name":"Falkland Is.","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ιÆʼnǺàż̎EƬș•Ǜ"],["@@ġænȲŌċ—ȋ"],["@@֥݇ɋչˏˉܩŦ̥ȟʫò率¢•jqZXRŠN„B¦ÖìœŪɄ¼ĖtƨƒŨ`”ŀƤ®ĄsƲˇΦŇڂҼ޶ࡪ˿ԞН…ƝĖüƌũ²̫ƦʄƦӗ"],["@@ȥw¬ŔǝȸʊýĎɕ"],["@@ãJ¼Ĥhĭ"],["@@ƛ°Xʘǐë‹ɛ"],["@@ǍC¨ɺʤȿŽu"],["@@Ð֧̩س͇ǠäĦɟȘâƐœɚȾɀмʦʮİDZ"],["@@‡ñƥȞǮū"],["@@†ƒÞ_zY~mªQÀRž~¾\\Ǝ͢ʕ׸QֺƭѥۇAӃɭƅǧ´Ɨ‰É¹Č¯@akiw‡ŋēŏėk•mƗ±cƣʹǩWijkƗŁÅBÁˆQäJĨžˆŞò¾ĜŠŲNưk\\ȿŀĩ´…¦·dƒȗƹ̘̟ÉšϋƟ̜ȫýЯΚǓˌvŧͭޡӋϡŁ׫ž̅Ǽ̇ÑکDŽյ̵ǧɷƆПভßĕÖË€ŻžHĎš€ÇP՟ؙȾÅŽ৽Ġ׵ʪƇ£¦ǀ͑ƘʺƀȪ࠸ƚŊÛØýćƒܮ҂ҁȯϾͽȸƐvĩӐ՟Ǣɭʜ’ȒƫŀƚĤʈµțĂѹBÜƆ˽˜cĤ౱ǔ̯Ǽ̌ŌȹĴˮ\\Бº—ôȚƚદȆҐʯȸĤϊÅĈĪѼ™ǃŸcͮɭКԈGĶʕࠌûӤŸʋº¶ǎࢸʞ̆ɈäՐܒDzȠ̅̈|ƔȻ˔¯ĀƝТ¹sɳͬUɰNJ¤̩՞ɷʂx"]],"encodeOffsets":[[[57137,-21851]],[[46265,-13288]],[[-52892,4159]],[[-62286,14843]],[[-62700,16272]],[[-63067,16392]],[[-62799,16620]],[[9708,43833]],[[-1206,47006]],[[5929,50728]]]},"properties":{"name":"France","childNum":10,"cp":[2.8719426,46.8222422]}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ÐýəzNJÄ"],["@@qœƹvĬƗϓˬҔµ"],["@@ś«SŴŰć"]],"encodeOffsets":[[[-7359,63631]],[[-6790,63722]],[[-6559,63753]]]},"properties":{"name":"Faeroe Is.","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ōY£ŦƈLjŗ"],["@@ÛåĴƤ—ý"]],"encodeOffsets":[[[162115,6978]],[[141459,9729]]]},"properties":{"name":"Micronesia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ķ̻šґՔƜˤ¡ȾϿęɷ̽ɩ÷ҵԪ̵÷ેȅ˝ŒŗǥŗętŹ˞ɥɍЉèǕ͌ǟĘƃđ^ͳ͏éϫÐÉгȈū›ǍȀš¯̅NjaƳƌɧƝĕȍڃݺԿҞ˸éοƸ˙϶ƸPǽÐȓѠʂ˕ƶÞǥ’¨džţµśì̥רȴć̌˴¸׎ĨƷˠīǤŴϣĐȅɌƞĦĺówϤž^’zzJ²Iz£`wĒமEѼG՜hŎǰFඊÖā"],"encodeOffsets":[[13613,2214]]},"properties":{"name":"Gabon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ƻďʽàɀĜȺë"],["@@Ů_˗ƟǍɄɆ€IJă"],["@@γ{̛̈ˉɯʁVїɪ̪ƲſĔ̢Î˨˘زŰτăˌ˝ƉƩʞnĦƍǛ¤Äɵ΋ȅǗŒ"],["@@ȏ‚\\ȔǴɕ"],["@@ÖȡȿófƔǣÙ|Ģˬĺ"],["@@ďà̆Ȏȵʭ"],["@@҇§ƤǔŭĸƸ†˼Žaū"],["@@ƉɠŦSdɋ"],["@@TLJϴ½ɵǧïƀʍBρȪϤȘƊƕ"],["@@pű˩Ìʺæ"],["@@̗ɩňÓҵɫčÄȐĠȓɒ̠N§ĦҐǜś"],["@@đǍٷ̣ěƮƒɷȭؚŌૢKʘȓڽދ׽ǕΦ†ǰŧֿȍΩÊجťϘÚϞĽЮ˧Τܯ८ӯķă˒΍͕ņ͝Y̮ӄ̙îƧʻɇȠąɼƄиOԐǥøʅŽ̝̋ů™ƗνÕŜƃϻęࠬđaƱοɋ։ų࣭UՋŎèÛƵÕћmIĹߵĨͽëɳͣѝź҃đ͟ɃчX஺ड़ࢪ`נҊܡ̍ԇǜ˿mŦúʛæџĩɡĪ]ǬߺˠȦɜķ̾ӧğΒ˴ۺǒˤã‚Ɩˆį˅ǠȀԺˍMͻ˶ĘʲάưћI΁ƕܡÆÿſķÒŝȌиѠǏ̺ʌÆɓĦšĜΫɭŦʾ˛ǝũԙƥ¯ȐϾėɆΠנϷȏЗƦ͸Ŭŋ¦ʦˤțŪǴƘƍĺŘǴϜ@ɍǂÚƚˤpQʰӬ­তŘǦ]³ĵ"],["@@ɜĻҍÄlƆɆč"],["@@ɌýȹӇRɴ̻ňʐ¦ǓƌǪĬ²Ó"]],"encodeOffsets":[[[-1091,51907]],[[-4297,54602]],[[-6367,55387]],[[-5227,56780]],[[-6275,57273]],[[-6113,57155]],[[-5916,57697]],[[-7423,58487]],[[-6292,58886]],[[-7378,59068]],[[-6347,59765]],[[-3184,59920]],[[-3130,60447]],[[-1339,61991]]]},"properties":{"name":"United Kingdom","childNum":14,"cp":[-2.5830348,54.4598409]}},{"geometry":{"type":"Polygon","coordinates":["@@˂Ə®³S“‰ïûÑēẂĜڱɠÁuǹŏsYƑe؝Ýէuȑ˜«ŽWz~nmhûžųĪít…Òƒ^ÓNÙMaOoWčijғ²ďÁ™Rß~ĿvÇhLjǂ¾ɞɱׄշͺ̽êПɰžÆ¼Ìӂgʚīޙɲ“ǵͳর¥ȚßR•ö»Ѐŧĉƈ½`eEs›U“lmÆmŎI zĊlȐòƨœɠōâŊjTÔuň‰öeƶũȂLŤ‹loýȫH}ӘǷǾĉȷǃĸǍ"],"encodeOffsets":[[47417,42504]]},"properties":{"name":"Georgia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@àāă̇ϼ͍ĭիà“ğşʘËҡĭû˂ͻƽڷŔljĝхǰͯϚ̧ȥɻׅ«ቕ࠵थ˜ʢļɼƘǣĤȓࢎɤפƜВĸø°rZŠeŽPxÖp‚ŒÿӼ£ƀ“̳j”ʲTŊU¬¹ľ]ôU־Ļƈî΀ຌXΒéˠȪȘ§"],"encodeOffsets":[[-70,11383]]},"properties":{"name":"Ghana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ħǥǔƷ̺džȊʳκ˂ѪƵͬȎ‹Ǭ̐¿ȎЕGȽ΢ʳɣ̛ˢeÐщɔƏbƅƏǃdБȮãmȏ⋐‹n…ĽÁ‰‹YNjȚťpɣŅüʼnVʃmO¡Wݐ…܍þWŽùĭǯVě÷ƛuƒǕœ³™ơŊȗΧȑ̃ǘĀʎůդɛLjʁěéøï§GÛV…]đij½ŇLs\\ˆÆƪʌī̸ģng\\Ex¾ŜJzÙĄʏͶőŜq¬Ëf՗GșįʉnʼnNjǕ˥ǝġijNjǷiť̸ɉĬBͤʼn“ȍɈ͍ĜƵʪbǼëßĉȰģŒóƑۀPƚª°äƒˬºÜŒvàFŸœŀÖÀ~ŤOƚZȄÒDȊM¦ßœŏľ¾Ìń`òǺ¹ĬHæլ“lťŊ˜҂ljࡔÄ"],"encodeOffsets":[[-11662,12703]]},"properties":{"name":"Guinea","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@½ɸžŒɌǣࠤǖשiǻĕǭȴࢬAèŠˎîמʷή’ŴŕΛƟݻːŕƇѷÑiƗۃEĩ÷"],"encodeOffsets":[[-17165,13378]]},"properties":{"name":"Gambia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ËovŒ–ġ"],["@@ŰƜê¡ř"],["@@ķX¸ĸÀŏ"],["@@©ĻĩİƔL"],["@@Ń_½ËǰƙN¥CȉȃÑʽI¿}ĿÕŷ›ßE‹u·ÛƓ˫­á›«§Ò’ŌƗģLŀƩ¾ŽƮĽ^΀ǀƁöƵÓõĠ†Ĵ͜łܧƵlŶǽiǃŒêƼljɱŴ°TŖaĖhƦÚĈ^ʰgɞ¬͈DŽ܆GʆA˰AGåºīñǹ"]],"encodeOffsets":[[[-16277,11349]],[[-16501,11325]],[[-16283,11741]],[[-16370,12168]],[[-14090,12557]]]},"properties":{"name":"Guinea-Bissau","childNum":5}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Fѻ஭đŽ_xy¤±JyI‘y›]Pnõ¼ĽrΞڎwŠlȤtMT¯†{Ġڼ@ʲ@Ȝ@H՛"],["@@Ƥ@Šŋȯ͹ȓ”UƼɬʶ"]],"encodeOffsets":[[[11605,1566]],[[8946,3849]]]},"properties":{"name":"Eq. Guinea","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@˄ºµċȶŕୂW¾ȍѺNJŻʝଫíûžȵÒܷĆmɸĒiÄŢĬĵ"],["@@ėŐŸȈŸ̗"],["@@ť€’ƎĔǍ"],["@@ŅzBǶѠɚŧ̳ȳŕ"],["@@ĥ…ŽĬØå"],["@@DžČúú«"],["@@ɠƠŘ}ͷš"],["@@īA˒Ĩǥĥ"],["@@ċ]ŤŎŅ"],["@@ơ…ňΚã"],["@@õāŢƎłjȕ"],["@@ĉN¸à’í"],["@@÷ÐŴe»©"],["@@´Ęɞˑŧ"],["@@ċ¯ƇŎɔÝ"],["@@É£úžoę"],["@@ȘďǭÃɛâȲò"],["@@Ęąƥ™ǗdžÔØǒĽ"],["@@{ÇəɦɎ³ˆũ"],["@@ŰʿȥŠÓńĉ­Ǯʜ¦û"],["@@ǝtČĠũȄ˄ƒÇ˓"],["@@ŏuŞɘMȡ"],["@@ői¯LjǂƝ"],["@@ĠũԒƏŰέˀą©ť˗ŚƟɮ͝¬̞͍ͯÎ͚ƊƂÕ"],["@@ƺɿęviď̡ĜƒİǙđȓĖ˒Ƥȶ™"],["@@NjzȧʲɾNãėȚȡ"],["@@åƥěðƿ•GŮ͊a"],["@@ɑ‚ĞŪŴƫ"],["@@޷ɤʽŗˇøͧȉˍpĔˡ̄ùŌƯίǰƻ{ȪǷiűʁɒȧ’ǜ˷ؗЎtLjʗă‹ϫآܣơ×Nƀȫ¤‡ŕƲŏлƛֺǥβʹʄݶœIϳѥ̜ϷſϠρ˟ęνǬμँϋ̆ʏˋ̇ҬĿÁɅʹ̀ĆʴүъɼʰɊkƔŸ࡬̡˲Ɣٗʲďç̕²бùšƒwħDžV˿Ь˾lNŒͽL΋ʔġȀûĄćÌlBŒWҋÚOƨŰA’ÏĞ@zxXœvr‚¢bǞªȊ̎ŲżÙŸRÚԤfªxŸ°ǶƲdžxʺ‘Ģlĸޏź̺SìÂŐH¼TĒYČB͂ÖlRp¶ˤEЀ~EɌǑȂRŞ£IJÓ֠ÌŦÌ†h¦Uò·ƶllĀdĶwɖī˜ǗʙƍBʅʗȑ"]],"encodeOffsets":[[[24425,36389]],[[27829,36317]],[[23608,37059]],[[28512,36792]],[[26095,37267]],[[27096,37464]],[[27597,37609]],[[26480,37674]],[[27669,37847]],[[25886,37959]],[[26159,37855]],[[25113,38017]],[[26013,38318]],[[26655,38431]],[[25863,38503]],[[24941,38479]],[[27469,38719]],[[21390,38713]],[[25592,38666]],[[21108,39305]],[[26721,39136]],[[21184,39536]],[[25267,39741]],[[23978,39894]],[[27045,40274]],[[20560,40380]],[[26049,40943]],[[25369,41590]],[[26664,41705]]]},"properties":{"name":"Greece","childNum":29}},{"geometry":{"type":"Polygon","coordinates":["@@@ƢЎĝǯ"],"encodeOffsets":[[-63196,12301]]},"properties":{"name":"Grenada","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĩķ΁ĈӪƼ½Ƌ"],["@@ǧàLjĦ`Dž"],["@@ǁwŗǨȴNJΒÛ˫ʝ"],["@@ּřŪǝත̉ԕŮѲ¾ƓÚँƢŎȤϸOяLjϬƸࣚģӆɕ"],["@@ύ`ZĈδħ"],["@@~ɥۇǗ͗ČறÇΘΪ࠸ڬƘ͘Ĺ"],["@@Οò̼Ɯ¤ɍ"],["@@ҥȑխž৔Ô"],["@@Ԟ̷੹‡ƻˊܘö"],["@@х͚Ǡɰʦ։"],["@@ۓĘࢴ‹ȟË"],["@@ࢣėЏŎॾǠјušǟ"],["@@བྷɞѩʸܼˆచǯ¬ͭ"],["@@ↂʭ㇓Ƨ‘ď㞆ƨպʁ᝚ȱಇʹ㏱ƍʵę̀ī෢Ġᗆ¡ܘʧৄʾ๠´ĜϽབྷەᰦܦᆦȯ૮͈཈Œຶōࡈȍෑ̳૛ā§ȕቍǃۖūҩƧ೧áଝî؃ȷ঄۩ᅡѧԅߙܰǠ଺ljpŹ׍ľѧÑϘȿ޴ūܜŒÉЙဏŤॅțӏĚΣ÷ؚŋ͞ʩ୒«ԂϱcӝߩŒএʓӫĆҎŽ׬Ģľρώ˶ζ@זέçəݙAͫũ઩ĜX˒͇ɛƾʽ๤ţš̗໳ȉݕňޥ̮ѧƋۿɀؖ˹੩ɏ৩ƶؔƿࡩġǶÏኔˠަ\\ᄄЭɍڣ๳͈ҽҐၷ˓༂ƾƎˍϽȡϜøᗨ׉ѩ̣ÀœIJƸҠžȖߝܣÁ«ͮɇΡ՗\\եǘӹӖ૕̊ঢ়°gÿਫ਼«Čʟࠍțද–΀ćßǑࡃɇᏚfœęࠟțƪŏ̚Ǯ఼Ŷ༦ǵ୐[Cûعŏ_ĝۇ±łůҳEBūݥƭĆāԗɳڇǵᙡͅԳ\\ϗijͷ¸Ġő̱³ଉ͂Ǝϑ࠯̩࢕ࠅࠫͻ֭džȦʧؽʹŭƪśǻͭæ̅Ƿқo֨֞݅æͼĽ̛͙͉ĘˈʡခŽԄǹ̟ǕˇýۥªIJțʼ ЊλԋɏڣÜҦƫΎVÊͿȋLJɯg˷ϝϥPˣŜҒȣɱȡࢃaڐŵƙΓDzʝЍŝȨċ̵܍˝ȱ݅Ò׬ǡúˣǓŏՓĈʠƕȽ—ǭ`¨Ā̅Eǂ̐͛ɍ١ƼXƜͤîȀǨԽȁ֓ƞăƊɬψࡇ͵ળ¡ΊȔԭN•ƶгṷ́ˀûʦҪDŽڛåÐȠٟȬjȾъ˔ԅȇ࣡ېß̪ઌǪȏK¦Ė७ǭĻĐʮɒތȖМȷĥɎͩÀϋκȪ͹нƙ‡Ŋ֕ґ˱޾ɹƤޘ͔ѸÀՋ«۟ɗǭňοHþ͐ʉÒᆖ۪ົ֯х¿Ķє͊Ƭն°ࢳ˜υǰðʄॎ˦ႬȅҵƔǞĨڝÍӣĊଢ଼ʋӪք଺ų˖¸ȸʮࠧǕহǛ˂κĈࠚƣ֬ŰŚŒχ݃͜ڌ–ٻڈڰ࿳œ٥Ȳ࠭Ĵѡɺ̬ĶନÍྰ͕Ǭ¬օƞÈɞѣƂيQ̛İോ¾ĬɸऺǶඛýʜȔэҲɳ™ϘϿҕlj´Ǘ؍ùݽƼɺҶЎȶحƩ¯ĸ˺®ʳČ֪IJǀʨ˭Ťǹç͉Ú͊ˌۅȚɠǜ̶͗ࡋGѲĀUǮϲĈኻۜˈźɡƶᖟЀᄓǎҩœϵČࢿƽыĞӷċѷØˊȣఉø૭˨଴ɄಷîiɈޙƗѹǨɺŬཔj۾Ƹุĉʩʹ࠹Ɓ޷àؕœহȜΞŢঁyಝ͌̄ʎےŢᖂȞԮƲᒪŖࢄ۞ԨĊᖏmǧʶᒈԬژ¶׌Ɨŀˢ௾íӾ؆ಾ|ᖖѫᕭզ◴݆̂ƿĬѕ֚҄ᅈΩ଒p୧ϸݲö⪴׉ЮӴૉ͈ᶰÇюÎ♣ĠǤي፾ȸ෬ƍߌȚᇚ˫ӽ̺ࡶń㹪Ê"]],"encodeOffsets":[[[-47377,62241]],[[-37920,67105]],[[-52237,71222]],[[-53996,71624]],[[-52915,72556]],[[-26042,72624]],[[-54820,72746]],[[-56337,74539]],[[-18432,77218]],[[-19028,77868]],[[-73387,79182]],[[-18035,81742]],[[-45941,84054]],[[-30671,85571]]]},"properties":{"name":"Greenland","childNum":14}},{"geometry":{"type":"Polygon","coordinates":["@@˶DʔŁRƾ̮ȅ—…ÿáˍɉɷǩƳãáǧºǑQ¿īÝÛĩǯsvůс˳ŸƕїNJ٩¼ܛҲÜΘ^Žœtr ĥȺĖƦŀǪȄ̮ʬBϢ@ɶ@ƴ@ÚDYøTĊ‚ø@’­¤ĕz·–@°sȧÞɟƆη͚ǶAǠCHӂໞAÑྩ"],"encodeOffsets":[[-91374,16270]]},"properties":{"name":"Guatemala","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ýƚȐƾƛǗʻ"],"encodeOffsets":[[148216,13578]]},"properties":{"name":"Guam","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ĽdzĠŝķƧ͋{ǥƛÒŷǩӇ΂ש̀aĘѱвۇȆāУsËh¯ÎuRǗ§ā¯óœ›¡£mǛG߁ğg©Ņʱʑµ_¡ġ—KŻơG›ƒµ…M΅Ʀʯ˖ŋ CĄÓ‚_vB̼œöĕ˞Šݮʬ̄Mx¿ÀıǢłϗƲƄҤŵƀċhÿ·ĽWlj„÷gՓפ]‚ôĢà䯜€’oƞB¾}ÈmÚ¶ĚάÖ̮Ƞ~øG–g`ĵbµm»X¥²í˘ǤɸИȬ–Ğt~Į´d¶ƻȲۈЋׄ֩~̟ljխɒϮδÅϊϡˀŹ„Չ"],"encodeOffsets":[[-58567,5682]]},"properties":{"name":"Guyana","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ȯŸǵǪӰŗʼnq"],"encodeOffsets":[[75477,-54412]]},"properties":{"name":"Heard I. and McDonald Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ݷȱĝxǷŲĽµ×ƛűɩѳϟgMƒOǓĸ³îʓɽ]țhĽWsaW¡PÁ„ȓhÿeyÁIå[›—ùǹ¥_ɹYŵ̾˙ž‚ĺÈʖazϤ÷Jĉ_ƇĞʡŗ…F]¨MºO^ԝ͢ȯœLjLjRÀ¹ǒâǨƴäɸǪˎɊĀ☆ĆyɎƮ౤ąΞƞ¥ÐфĽєøΐƿʤjиΕǩĪřw`ûƘMƖƣɚDůŬɶŇâƉĉ̥ɍ`Ĺĉč"],"encodeOffsets":[[-85642,15234]]},"properties":{"name":"Honduras","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŘËͳøɜk"],["@@Ҍá˱mǙĐ"],["@@٦˱æŃ׋̪ٹǾԺı"],["@@ʛ`•ĎϊÓė™"],["@@Æ×ƕĤЋ"],["@@ƧȬhɞƀщ"],["@@̟ĒĶŪȪȻ"],["@@ÇąȌˏ¹īͪƿ˱Ù±ɣƝ\\ƣǎ܋@ݧǘ͙»ȥǧɝƲȫU©΍̮ȵǔͫࠊ֭̈́σÅËֵϢёŶ΃oڥոÁì̊`Ы˦ŁВʯǼȥ’ϝп˿ը̤­Ю®¶pŢŶpK¶áŦÿƊlƀ£ŌSĈvYˆ‡OŽÐäÝÖ̀ňpĺQÄͼI€b‚кǮǸŸĚUöq®]ƮËļÝτ˽иǥҨ‹ƨ˜€bĎĂȬr"]],"encodeOffsets":[[[18031,43796]],[[17051,44029]],[[18092,43927]],[[17189,44310]],[[15741,45030]],[[14836,45732]],[[15166,46057]],[[19360,47035]]]},"properties":{"name":"Croatia","childNum":8}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@cÏɋêǗƎЈƧ"],["@@ƇǫÖŋN«aÏĻijĵG[W¼ïÊăĢÙtÏșíâýÊĩ˜ۇÝёČ̥½řůӽ΄úƦƆŽூȑΎŞ|ĎϵͬĜ̴؟ʀȂƊӦdΖſ͖¡²ll}žǛ‡ǛČ÷"]],"encodeOffsets":[[[-74551,19229]],[[-73366,19657]]]},"properties":{"name":"Haiti","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ĺDˢɯƾqĜƍ݃χ݅ਇ̣‰ūħė„ȑƒqd£`ȑh÷_ȗpljėًſčāaƧ—ҧŒзǦσ˾ĽÞƫÌ­^ț̜DžL̢ŦUͦȞŖɉŜժ„äʤԬȣ߲dÊǴ۬Ȉ˚Û͐ŰƀȚ߲tˆǵ̪Ê"],"encodeOffsets":[[22663,49568]]},"properties":{"name":"Hungary","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĹVhŘѴʌ ƧЁɑ"],["@@ƭ†ʚĠīť"],["@@ùŽŐľ•Ƌ"],["@@ٮө¢ãœƙɑóʙĂҙΨџÊŃǀ˲ŶլÈÐÕ"],["@@՟՗֯ǕţÞĤLjŃĤĶ̒˞ɰȸñƌȨВȺ^ġDzV£ŭŝoĜʣ"],["@@Ұ䞤č"],["@@õ•ĺŜŤwƧÍ"],["@@áJ¾ʴĢ÷ýȅ"],["@@ʗ“NJƈĴƒeï"],["@@ŃǧÔÅ̅u͏ŀȂ˜_ʶ˺Ȝˊōßɷ"],["@@ŝǝǿêʾȶ Ł"],["@@̹ʙ˕ŠȸǪí–͔úŲé"],["@@˧âȞŖĊǷ"],["@@ÅƺƤˆĝȁ"],["@@Ќæŭفõ¦ȜŪ–"],["@@ʞÑăíǟÆFú"],["@@्ʋȣìïďʗeСŐ՟±ďƈÈɺآƮۮ˱Ѭĺ̚ơѸ˘ÎèƉŠƄäøȇȉʃ"],["@@ñȶɒƀ˃ǁ"],["@@̴ŒĐőǴİǠ̷͑Éòć̓mċƴǃƓेɑɭþ Њˢƒ͸·ȪʇƎaɠŖΛɀ¹NJ̦xŀǏ"],["@@ɎɃҹω÷ɶωǎũDzЄiǺĸʚõ"],["@@ĿïĕȦǢatœ"],["@@ˡʃγÄȯĉƪ˒Ȩ—ͬŔLjă"],["@@£ĢĖc±ý"],["@@ȩŋիfδېǶńЌ¤Ȁʱϟӟ"],["@@DZDrˀъӔþëûÏg̟ʣ̻"],["@@șîƠZºć"],["@@ş¤ĈƘĩ"],["@@őFOĈŢč"],["@@׽ijͳŶŢƢǚhނNĊñȕŧ"],["@@Ɓfjüʲßƙ"],["@@ŋtŜúOĭ"],["@@ǵ΁ț`b̦ôXãɦΠɁ"],["@@ʘǩ֐Ï̈щ฼Ɓ΄ѰŚWǬɁ̠ҠȵϞƒĠʛŪé@ȻȀėРÇӖú˶ƅmԥǒ̫ૣОӗĹঙĔݹƀ૙ώғŒʏʼn҅ÖՏɄۡĔĈ˓ŀ߉þĬƞĨįƞˀŎZè˸ǦǞـƷȆǎ˞ē"],["@@“ƓSׄ¨ѯ"],["@@ŏPĔÞ|í"],["@@ٽ§ʲƪȳ"],["@@ӵɯʉɬŮ®”ƪřŀŖIȖʈƨɻ"],["@@åïʘ֜eɏNj˛"],["@@ɍƀɖ™Gĥ"],["@@™ă‘ĆìA"],["@@ȟƴĘƺņñBɻ"],["@@åıɿÊĨɀwʬ˪۸˅ūǡ€ŋ"],["@@`ɫşØé͝ǸǍǿÕſɟƕP·ƦưɺòӼȆȚĘƏ"],["@@¨­ʧǂɀœ"],["@@ƕĩęǔȲ‚~ī"],["@@Ɲ«ºļĤÏ"],["@@ʡą«ÒͺƸ«ƃ"],["@@‰Ɵ½ĈĈØ"],["@@ȳŝJҦǦǦ„ԭ"],["@@̮ʭFȯҙDžЅȀƃƸ‚ˆٮf"],["@@ťÔƘAqÑ"],["@@ՀĽdžšʒσ¯ʋ߯Ҁ˧C›ĿԕȀ̅ǵ͑ʔȗ˵qɲ˒̚ږŒƸĕʺŮɪã"],["@@’ũɕ˼KǜɌǹ{Ƴ"],["@@ŷȕǓŠȱϧʐĒ̖ƞŠ͆ƕÚŏéƗ"],["@@ǁáwʜǺǹ"],["@@ȣð‡Țɬˉ"],["@@lj̀ºĐŐЏ"],["@@ʶƒܑįûĆ՘®"],["@@ÆɽƛÛѕƲԬƨ"],["@@ȀMłƑݫŅóŬôǘҪ"],["@@சǧ֑āهʪ"],["@@ī•ƒĀŰ©"],["@@ːڛϠğǧˑ²Ʃ֙ȺdzզշŜ˜Ͼł¢ĬǡhǔDŽzŖƏ"],["@@ĩpžƮÌǝ"],["@@ӹÉƕŜɄɎь˟"],["@@tǽǔŸĦč‡ġȥVďƭmʾɕʃážĆɀʰV"],["@@ȹąZʖɤ­ƒš"],["@@ēD…Ŕƚ¯ç"],["@@˯ƘȍΌØȒɎbˬ֣ēų"],["@@ǿ¼ğʞ̠–ͯ"],["@@є×М̱ǯĵȽŠƙ̘č¹əȘ"],["@@ťh¬ŢúƉ"],["@@Ɖ–ŴÎVģ"],["@@băȏoǮĴ"],["@@@NjDᲗħͥĨƓBᇳࠉޢĪɮƳƫҥóŗǨ̝ɋǖմ˹˰ΰ¼˥°ȵǚɜàΧўţͨàĘƥŠŞŎɃ…uȴٿѨ։ń՛ʎڅäѡ̺xľưbԵOijŲơkʝ˴ƎΦş¡ɷœŸįХŷƍ˫JƇ̔ĬŸıɎٽьɔĞдğϺ̐ђƽ®ƤŶºħĈŊLj߫Ɲս~ʅɄýβ՗ƖʡǐɒÈʺҠŸӸ̈ϴ½ԬʷфeŚđ‘Żǀ̣Ź̝öӳɞѯpɀŨžØͫŢršʧ̪ƅȢp̺̌Ҁ؈ִƘČâ¡ƺֶ̞သܫ۪ćŀƉȎE"],["@@ĮōȑljėǐǼň"],["@@ĬűÝšɴǗij×řİƉ‘LƎƗŤrƒŌÑĤô"],["@@ʼnqNȮƐK“ǯ"],["@@ɳSôŌǀķ"],["@@϶ũÀş˫Ï͏ɲɶɏůċ½ŮśÏˁƂłŘϚÌ"],["@@űAİʲĕȎȆɍíɯ"],["@@ȐęҷĀĄǨȤǍ"],["@@ũP¢ŴĈƃ"],["@@ҋĢ`Țиȕtĥ"],["@@ĝpľší"],["@@ϷƶpĘɲùƖǓ"],["@@Ĭ]×ƧőèþĞ"],["@@ÞƕñǽŗȀƿ‡ĢƔȊˆ"],["@@ŭðo˒ƾƍ_ȳ"],["@@ϚЭģ·ŗ‚ãȦǕĨ˛ДɶĪł×"],["@@PŇЍɸϾů"],["@@ϱѳ֣ƑЧlɥƖဝ©ιð͗ɓƭϵ¦̟ƬˁɶƝŴˣК~ΪіͦĕʼƨԠD¹Ć˼ôǪß°Ň³ȏЋĔշջ͡řǩǝʝb޾ࡻĜʗūΛπϵƄhr˝ŷªԗǙÝʕϗÖďƮŌШ؍Ӓƌ̔CΔơĘȍkͣʁƨُaއšѹŶϏГ\\ȟĭƇêǓʠȠڔ|ШſѬЇqŃŞë֪ʸȨȖҬYѬǘфǠȎŐƱĹٰŦň³ǖĖǦ̚Ѷ˨įɠͰǶÚ˔ëǀƧ܄¥ͶơȔĆܪûԒ͌ΎψƐ\\ļƷ́э"],["@@Vʏǿ³ùʐʤ´"],["@@Ű_ðǮnjĬ¾ȲϺƠ^ϻ͹ȕţ̎Ʒʐ˫ޕɌăƣúҟϔէ͇ǀ̕϶bѼƝ˖ÐȦƯʖǠנ;̘ṷ̋ľŋ@̵̝ˉäƓ"],["@@ȏŢƸa˜Ŀ"],["@@ƃcÝɚ͒ʦòĻÅȿƛƟ"],["@@սʞùƜƮÂѬ̽žŽ"],["@@čiČĨBý"],["@@ËǘŨïÛħ"],["@@CËéĮî¡"],["@@ġŶŐqmŃ"],["@@ūt•ɬǂʟ"],["@@ōƽ¥óƒȢb"],["@@ǹ^ŦĘȭƢȸȠŨșÝʝ"],["@@ğāʾ͗؃ÇʒǑLțɒʼn•œň•·½άяɷʓ৐࢛ϙƗ˵¼ʅȌ¬ǭȁƅȇг·ҹĊϓկϝƣƮ\\ʃБϧŰ@xśřǻɂƅ‰ǯDZ•\\̋ƏƒúLJʧϿਖ਼ӗƗژãėďŒ@Ǯ죯èͅƩāɔɡ§ʹ˂¿ɇdzœƃá˅äΩș‡жŅƘٝƳčÚÎòǑĥŇŊˉÙƇ߸ŗŜpӴǏɜѹǢĨƚɁȺŖΠʿ˚yҴ–ȆƢĴķ[ÆɌʬΪɂĘùōĬɿܐمԄǂתɨŎĜʞʒĶϼPÂŏԮǕɾǖԠdˌѺ™ɪͤɮĉĤŒɖňŌǪRȌ঄ƴžռnӰƒЊƕ"],["@@ĥŒĠǀûðˆǢƐɏĕɍ"],["@@ࢰoלړ¸ˑ஦އږ࠳̪ȭ¹ʜǾ^βӃҘɁ̶ԋբɛqƍϧǗڐʢ˪ȍĪȭ̝ȩoƛĖēÏġʂʻ՞ŷžٿˢɯǍуːȌΨSծ؍Ǜяòǿĉˣ²܅śڷͱɦɣǑωȎœ̻éW٧ۚઙެ·Ҭңδ׃ޚ…˄ҟज՛ܺѕʴӁౚݧдġЦǗňΟԌѱȮܭ܄̹ԺlʀͶšш˃̠Å"]],"encodeOffsets":[[[125900,-11171]],[[124809,-10844]],[[126379,-10549]],[[122893,-9599]],[[128070,-9740]],[[118385,-8980]],[[125929,-8750]],[[122332,-8950]],[[126278,-8555]],[[119441,-8820]],[[127270,-8529]],[[126900,-8471]],[[142229,-8589]],[[120378,-8568]],[[127566,-8336]],[[130892,-8293]],[[125730,-8818]],[[134003,-8518]],[[121081,-8517]],[[118219,-8350]],[[132955,-8145]],[[129845,-7851]],[[130478,-7806]],[[141861,-8472]],[[134478,-8191]],[[135150,-7374]],[[131759,-7355]],[[123674,-7289]],[[116577,-7275]],[[118147,-7138]],[[107779,-6799]],[[137766,-6596]],[[109951,-6151]],[[123421,-6449]],[[115425,-5950]],[[135995,-5991]],[[137981,-5843]],[[136117,-6043]],[[104825,-5610]],[[126594,-5398]],[[124972,-5568]],[[125589,-5395]],[[126137,-4660]],[[136777,-4347]],[[126201,-4211]],[[131649,-3671]],[[131355,-3762]],[[119219,-3547]],[[119095,-3960]],[[129906,-3161]],[[109452,-3077]],[[132869,-2934]],[[102836,-3259]],[[110805,-3069]],[[102609,-2806]],[[102240,-2399]],[[129081,-2510]],[[129049,-1832]],[[133482,-1731]],[[127969,-1746]],[[138726,-1630]],[[111568,-1658]],[[108591,-1709]],[[126564,-1745]],[[131229,-1700]],[[126170,-1199]],[[112344,-1209]],[[138205,-1142]],[[101544,-1820]],[[134146,-1347]],[[138633,-667]],[[130356,-799]],[[133762,-541]],[[124790,-416]],[[144357,-2672]],[[106982,-342]],[[130629,-326]],[[130304,-507]],[[106227,-356]],[[133953,-4]],[[100823,-543]],[[107294,-180]],[[105764,555]],[[105501,765]],[[105907,1074]],[[105643,892]],[[106522,1209]],[[107096,1246]],[[104886,1014]],[[99822,1501]],[[104952,1495]],[[127887,1020]],[[104150,2129]],[[130799,869]],[[99671,2126]],[[131537,2102]],[[98779,2417]],[[111501,2976]],[[108299,2932]],[[108837,3233]],[[120483,3360]],[[128674,3519]],[[120714,4287]],[[110916,3779]],[[120397,4271]],[[129861,4131]],[[98809,5355]]]},"properties":{"name":"Indonesia","childNum":107}},{"geometry":{"type":"Polygon","coordinates":["@@̽ĥ̤ˬZȅ"],"encodeOffsets":[[-4517,55486]]},"properties":{"name":"Isle of Man","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ʬ@ĤмӼþʜόώeլԟ͚ƺ̃͠đUz­ŽƓ’íȘșKąuū¾DžWǫ̑âʀ˵ɶĉɔÛʄǣaīֶɹĦ­rә`·O¹yiŕĿœāŭƛíƃ½ůBėoĻÁϏqėƒĽh‘ƀěĈ³Ā¯¼Mb€n|Î_Ө˃ָϿšP¢r˜^¤YډƨĝƐíƬ`¢[„ÛpßҲůä’^†ÀjĖQǐ»èeɚĪŜÁɂãň¥€£\\Aĥ€¥юɳĐsɴČâWªŸŽš´‰Ǵœ׎ǵ˄ĶɬǏłÂμ\\Ŭ¯€Zzˆ´ƀ¦ŜGèŸĸįƄS¢ƎԬFĀ‘xAÀ‚`ŒjŶ–ŶèȐï±СbûÊɸŸSeķák—Ĵǵʒũƺ„ɈÏp¹ĐI¬YƮnư~êþИͦıҠdŞÞ|@À¹źIƞ¨ĐP°K¨hֶ“Ӡ£ʨҎϬɢࢎƈՎ̰Ϧ×٢˿áƷfÙǞɵC¡ůdſƎԙ‡ࠩԵšƕRʃ’ċjiF{şɫ˗ʽĩȱŴįǭϯĭƍëŷǿϙ͡ŔȗeŁÜ޳aŸũ£Ŀˋê̝ùųęǥ¯]±léĂçv·ĵ±ƒ[ÐÍ՘w¦đǎy˂ñφǝIÅ\\¥K@óRÿƷǻEȟǕ½įǪÝŋǕӼDŽͲ̈́ŨĴ{Ǿǘ®ĴĠɸBĢp\\ŒêĂΙȎ஽Cб¬ɅÖ«XY€pȊC͎ŵɬĉåmŃɕ‚ɩ̼ÉBfƉ{IɏžƑȐůžeåˆW®ďęĥƵƛ™ȷ’}̘ɱɢðƁö—[É̙‡į@ëȏ¹ãƒBùŽKĕǛ]£M‹²ÝÈÃâsĦMƊěŦiæ§V™M›[ĭ[Éō˟ÊĽÀµvȥƢ›€oy˿jǯŊ̛m˳ßBĐʅNjúħƇGΞĉĮµϱś›ƃŦ…ŕǑÒŜϐɇȢǾɅ˯ͧԻƵȷƭĥɓŐͿȋ͗̽ʳŋ †őףȏßHPLjɋŋÉƋɖ€֝с֕۩ำ৑č҉йȗЏPʳӡ˧Ř̓ƹȫ՗łԃÉɟǎؑųȔÿěɾȳħ̵֟כƓ֧Ět¦šUܽѯÇׅ̿äț͢şγÜҷƏȓǵŏэҕʱϝȦљӲȓҤçЎŐ͙êEĥ͖ųƐЅੴٹৠӁྰεӤů˔Ō@Ƈƨ¼òŷ¤ǡ̄ԍᓶĆіřƫĔRȂƦkǗîĵϾȐۼãϐDžɈĤČķSоʐӍ­ƂɴƭH€ƸɌÖՁŒļåċȥɡƢāšǓȩ̿ࠫΕʱDӻ̔ঁ৒æŬȎŵݴʌˀѢųű֥Ʊέöԁ˼ȉ͎̠ɾҕɉÍɔİÒĊnĜbĈAŚCHʨXxh^lNhIz›ˆDŒvìgÈ\\ÌcĬAǬPĬEȸěʘĺLjÌɎÀfQ¯p«äƒ´O¨PŽbææ–h°C¾B~ÙŢL vˆž†wÎÏŔÕƞȍ̢EȲáÁiµGƷtƑǠ¤π…ǜէɌĈ̶ˠʦżȄĂż¤ž¨ƆúîCŠïÀƗĚ¹ÜJʼİ̞Ž˞þfî¸ŊƲƚƐ̎¦°ҾɸВݾάƆÞÌ ¼Qº•ÐbêĢîˤ̼”@ŊÈļÚO†]šýÖbÚºǢY¸ÑDŽ`ª|®æÒĔ¸˨ŠÊ`ĬˆâŜWN"]],"encodeOffsets":[[[77130,33061]]]},"properties":{"name":"India","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@¿µáƠĆŏAƨžƁ"],"encodeOffsets":[[74232,-7554]]},"properties":{"name":"Br. Indian Ocean Ter.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ˋÄɨt¤÷"],["@@Ňŭˎ࡛λӧŜĉӅñÙøࣽΣ̏¼űϵŽޣġDzǨԃãѬɰدÙδ˖ЗZ„ÒӮšőźɰŦ܊ŎǧÜƹĵحÅϜɆƔɲ̴Ģӫ~ӝƦsŖͬ²Ƴļ˖à@Ø˯_¸Țȣ¼ŠĒౖaßĘЬʚՋ’͘ǪĒɎԜĢRʇ̌ͨ̈Ņɍũ˧˗̡Íƀē̩ƱјɩʂUˊɰ̜̇δ|"]],"encodeOffsets":[[[-10186,55208]],[[-6367,55387]]]},"properties":{"name":"Ireland","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ȝȃեĝϜȂIŖѮHû}"],["@@͂|ొٸ˜ʇǽƃǂȅʝƑԄϋɶrüқǰʑ߬Nj͸ͣӰɫ࣒ķೠʸŮ@ȣÝʔ‡±ѴڈńǚʶКɰݠ|ƚƚنƒƈȱނʵҰdТơźɏԞʑɺ˙ٺLþϝ¹ǵČğTȻhÇEƒ‘³Ƌõ‘iΓŇǝ‰gĥã¿S[uTuvańŽȷYƁDZ@͑ôĻ˾é̙̯bťŒͧĴ̍CçƱCğHǻ|Ƒ„YɎȢ{˄Ăą¸dzEƅwçȋțȑȡЧщLjǏİķب࠷ܺ́j͵}҇ΐY|Q¼‰œ±HwÁŸRǕQ]±wcƟܙƥÓőĩXʃţ»{ƛuŷamÍ©McT·ĝqʡyë¯MĵÿؽƲŹżġĿߍƜ΅ÃȽŘ௳Ȧʣࡒʵ˞ԡ`ଝՙїLjҕ|࡛ԈǹʘϏǪχʻɤǻԂǏŨRNJǙìsɰЗтćɸѡƛѷʰǒŜȅ†é͕̻ƃ˔™†ēȼ˅ưIѲ˥Z@ͰØǚÜnjīŢĻŸáÀƵʰ™fƏOҩ̰ljĄálƻNgfYª@¸¼ôJ²ŁƼԻҲŪȴéɊ”ĤŘO”ȌȲȘĶªü lΗŀşǞÈŲŦŽæ„Vzė¢͡BΏnjķ˺…”©V•D¹¾ʍ֞|ŰȃŨbɴ͇ǔȨΪŵªuϚȽҔ̮œǖ̆Ȗı֎էՔŇ"]],"encodeOffsets":[[[57537,27568]],[[47222,39811]]]},"properties":{"name":"Iran","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ŗP“ģêɉũȳԼұłƻI±»ó@·Z©heɞyNJăҪ̯ƎPœeƶʯâ¿ļŷĬšÛNj×Ǚ@ͯ˦YJѱˆƯǺ˕ûqċfdzìƅ{Gy˭ĪзąȯϳŗDžÙóƋƍƧ൝Ŋ߉վ෗ਚഃۀğž˻²˗¢ҷèŮĴ›Ĝǥɣ࣊ᇴࢴǪ˸ƆܸµزĶŌ̺êӐјĆhưĸĘĦ†TĀ‹ÌSž˜ӪşƊGƪúĐW”gŠƒbŸMųäך‚Ü¢ǢIJÂE¾O†oʎ֝º½–CªU†“ĸ˹ΐNj͢AĘ¡U{åťÇűŠǝ˜ĿkÍûŸķ©ȯȗ“ȋ"],"encodeOffsets":[[46733,35404]]},"properties":{"name":"Iraq","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ߔźѫɋΜėŇɋκpåDZʴÈҤĻƿƏǦˍϏʙ˹H÷ɃϝƣݽťڵʻধŷŋƫקŇಙŲʝŌäIJȥÉуǨఽį¥ɌLjû˔¢،˸ӷÅĒǜ̢Ĥџỵ̈ɚଏ³ǧŀਦƶݬDĦŞؕR֒ɂࢷŐ࠹ơӛİȒø͢ÛȡȨАćˤÐҟČʶ€ɅŘ̀NeƂθǗ̠ššƃƤ”GƊуŤϴ®ՍÔƠúѦBࡨͻ‚ʅʅeѼϧ˚̶̌ÅȺѼ׾˧ĚʶҌĞעϙŽΤ͠]̚ƭͮȨ˄Ý̔бɂʔÜɜQϊʉ"],"encodeOffsets":[[-15916,67818]]},"properties":{"name":"Iceland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ǷÿGkcȋÉNå¤a–çjģlŅ×¯Ĺ¯ƫ†ȹWŸqsPclMÐlØkÜÉɅŭÏȟӐĤБྣÍßփบĒìDÐƨƎ£¸NPǎʮβীʬOϨ̚œЛŁǷ"],"encodeOffsets":[[36647,33521]]},"properties":{"name":"Israel","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Бٗǒ͹Ƶ̯ԣĢ̝ʲȥEء͆ѽĬǣȎʤ̨ƚů͜Ƃкǯ૤Ơ͊ŚàÏ"],["@@µċ¯ŮĦ¡"],["@@ã•Īľ…ç"],["@@Ƣ͏ƋșåएыÔ÷ɳˉ‹ȗɼňՒŝàẦɿ̠†ɘ̈Áր΂͚ȫbœ"],["@@rŧʍzɜĮ"],["@@ǰ‡Fgeq˙½¥M}PmlYúLÂǁƘģģýûƸΟ@޵˙¡ǡʢɯɳȷŮлঘշϒݍѾϏՆʻ࠸ɛ͑ႮܛьηįͱɟĬdz˾Ͽ¼ǹƌɃ™ͿׯӾ̯º͍ҵǕÑ͡Чϻ˩EߥȜӢˌŪ\\ƴѣࢤدȾEȘƳǘΧÍĶŊΓêʻΤթPϩȎ࠱یзĒvŪϫʹNj€˝࠘டЌٕҝљğŨͮˋuΙǔþа̛ȬόƠÊŢ̗̠ȘƺˆkÖoǖ‚֒ĔöȬŴîÈÀԔôǗ̢ƙP_£ÃƨƕÐ`ư̾ĎɶĂ]zBĐƧ¨SºAۨĆl°KĒĽS¢Teŀy¶‰xMˆnÂv®¦^¸LȠÏi¸W´PΠŊvSĎAĠOЫÎeĊKÈP€j¾ÐÞĢ’ǂNĂ^ȼWͦĆxOJ[‰ƒ‡—p¥Īċ¾Ù¸µú}ׄċƶ]ŜEǮ‡gµ—[׃ƍćlė"]],"encodeOffsets":[[[15951,39138]],[[8683,40006]],[[8485,42025]],[[9864,41864]],[[10645,43887]],[[13744,47322]]]},"properties":{"name":"Italy","childNum":6}},{"geometry":{"type":"Polygon","coordinates":["@@ފʱŞȧ˃¡˟ĞùĿƧ€íƑƁIJͿšɵʞʛĪļƈ˾ØԦÃ"],"encodeOffsets":[[-79115,18901]]},"properties":{"name":"Jamaica","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ǻ¯`øǜ‡"],"encodeOffsets":[[-2067,50413]]},"properties":{"name":"Jersey","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ůį…YӱŭɛÇԱŽɹÍɍÃ࡬࠯į³NjāgcacãƗ¿őka׵Ň©…ĥƑīƟNjŝǵŻऱŸnǞВྤĸْiƂdȌHlǸĀӬ̇ϒÏ࿦ࢲɤࣉǦžœěŭij"],"encodeOffsets":[[40085,32896]]},"properties":{"name":"Jordan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ǩŽúĆƐ«Ÿç"],["@@Ɓƙ©öǾŶQÑ"],["@@ƥS^ŜƈŇ"],["@@͡ǭÁʑų·ɊԌDŽuƂǸHȕ"],["@@ĉNPƜúƩ"],["@@ïåǝĺѴɤȥʷ"],["@@ƩDµļĠÞŪÛiŁ"],["@@õ DŽ͔čγ"],["@@ŝȂ®ãý"],["@@Ĺ\\¤ɺƄh‚Ǜįġ"],["@@ȔōǛŸwƮ"],["@@áĤĦƲÔŝėŷ"],["@@ķŸǘƺßř"],["@@ķQ˜IJàğ"],["@@Ѯ@ƅˡ̠g£ŗżȡ˻Ε˕ࢻɡ‚xƱ΋ȭø׈ķXĉŽ‚͓͙Ĩ­İٖxŴőƘN˒ϐѼţŒ¦Ʀʹ̄ģÓ¤ɇŶD\\ŵʉÎʉǙ¸żŭˮˀǫΉ͔|ĜȠkeĬҐǔĴǚȚĀȦ³Ȇɥ"],["@@Ʈȣ“¶Ô"],["@@ÿlzƨƉ"],["@@ɼ{ĐͿ̣dzǏ̡ȉǜ˛À̅ŵʷѣơ÷ƋTÊŠǷ\\çќ͉÷Ԣ̌ʖ;ɐƋ͜ìlȐ̄ĖΆû"],["@@č»ÍĄƜ‡"],["@@ĝïƁü˲ɀÑɋ"],["@@ıbƸˈÅ˩"],["@@ōqĪö Úŗ"],["@@ijPrȾɈȦ¥ȫĸSȗȳ"],["@@Ȑ‚sֳ̰γưܥÛˋ̇̕á̟̝ÅūǃࢅΫݑʦыΓǷđˡѕɡc͎ɪʐəÔƹȽtɓǛŲȋiƍρȽȁ‡̘ЦƹČѽѹթÌЙçǴdžʽ¾ûďtʬý^ɫ̹̈ȳuġѱū΍ԫȃÙȱÈ˙Ϣwʀˆˢ֧Ůб§ɹƿۛȋС±˿àƕУͽǶۓÛ{ʊĬŌ̌j೎ईࢶGৌȬŸȅ̔mȈĔNJƊẘՊՀŪՠЖŞΡͻİɽȖëɤǖڲɢӆՂДɊςڂɚزÏȘɅÆɨ˸ó˴̜ȼÂ̜ʄOĸ̫ǀĢƶ·ł˖ύÇDĪŔɄʖŏ"],["@@¥ĴńˆÝŻ"],["@@ų†¤ĀĐŅ"],["@@Á¿ǒĐŏ"],["@@ݠǁռͲȕ֑ǚ̡аìމ͕ߝijґϳljΗ୕ӠύΝǣɵǴȓHŻɟۘЧŵÉ˷àɱʟʥí÷ŤĦ˰ɭ̬rʮӔ̼‘̊ظĻȤČ͘ৠƫ֢ìȶɪĞߒ۵߆ҭ"]],"encodeOffsets":[[[126862,24863]],[[127277,25105]],[[128455,25337]],[[131337,27293]],[[132095,28387]],[[132560,28886]],[[133758,30990]],[[134103,31127]],[[133511,33202]],[[133205,33004]],[[131754,33571]],[[132175,33629]],[[132600,34021]],[[132911,34559]],[[134323,34410]],[[135441,34760]],[[132383,34943]],[[137583,35079]],[[137577,35312]],[[138172,35112]],[[132491,35179]],[[136572,37073]],[[141665,38730]],[[144619,42366]],[[142829,43091]],[[144687,46203]],[[144459,46421]],[[147277,45176]]]},"properties":{"name":"Japan","childNum":28}},{"geometry":{"type":"Polygon","coordinates":["@@ķȤ›øÍŖøĤ£Dz»Ǣ™ŸƒłEŶRÚ^́Njɉŋĵ½"],"encodeOffsets":[[78898,35953]]},"properties":{"name":"Siachen Glacier","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ǁèĪŨÑŏŪÿ"],["@@ѝ‰ɑѩڥťȉЁŌ։ƟDžחȝijŢճCࠣǺ׷೹ʠƝ÷ʣɋĀˑ·Ʌǂ൏˽ƿĻԢƙŃԯβ޻ͩıŰƛ˯śNқśĨűĢ㚽vȍƴĀbᅛǔ˹™řUӝTûR§GěđՓØ۳˰˕ĝˣʼnęʥyğÒƹåVă¢ƒŒΫ´ďÞǭ’ɣâџÄȷ¯û`Ɠ£̧ͥ®ûທەӍңWɇɿ„ȳźÆȂƩƘਏcǯۆЩVúࠢʟħʳζӹͼϳƍਡÞ৻ŗࠛݸᏟঊᓡһBᶡҗsӣ֚؝̶ࣃƿҿ̯ĒࠖוĠʁʐˏ`LʶЃװнŐáŖƂƌ॒ý҅͠΀ξຈuΩȮ̤ԴÅ֐ӱŔ́Ƌ߭ʀકѝҏÛīƳׅɦbŶͶdڕ޸ֻĄǃÁȑаͻư–ͤˢ̂ȕǼòˤҒ֊ɶjՊѩΤÐőֺזȪƦȚؼǦҠτ̶çƲƟ݀Ƞ̐ȑ٤@ڪχΒщòЎ࢚έڲξѨžβƧͮǞѨwѲ̳ӎ×ÐŅʐöȸɦ̮ƝѤbϔƒƔ϶ࣹ˜ιʂ߸ͺȃ˶ɰʠ࢈„ΡȈϯº~ƄʲÞұĊɄͮזÓᒂπՄ™͜ʄᖮ̔¨Ƹ٪Ȕ৤ȏҲŤϖץý͗ފMƴĶɖ͑ƨNJԜƩМîͿ˭ĎɓϞƠвōČƆ٦ȺǼǐ୴̒ƵʟȝNÂŇୀهᅂᐳπƞrȦʌĢͤđ±ȇˈWàǻࡸWɤƒԄĐӴȁ͆҉֖ƫȲϏߖĭдɸ£ǵגБ"]],"encodeOffsets":[[[51389,45932]],[[89419,50264]]]},"properties":{"name":"Kazakhstan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@Κi²ƿk§mŽNţɒ˷ݒ³ȾƁڒяŢćŜ}Ȑ[ƀIݘťƎĸŐƪªĆޢΠɌǹǚħŶDĠdɌ`ŬAɩ͙ɭ͛̓͗^ᶻɪ̋ƬȕĂĻVĹɟȿ̓áPȷɇɧΟůęҿɉ˛̵ݵɥǷഩ৐ŠϞḭ႘’নǾδɀɚÒƦˈǞƬЌBŤYǚå̘nÀϩָ“ǎO°˜njGœ›”Ł”ďäj´­hſ˦ǜǘǠǜɔɊȨȠǦǞƸƲ¶Ņ"],"encodeOffsets":[[36174,5494]]},"properties":{"name":"Kenya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@·ƭ鬿¨•”ɛןŪȓ²\\Ú[zƒl֝ǫʡNJৡ¿«ʪ†úz¨¸kȋšTIÒE~мƴՐȓ͢ɾ˂‚͜œςʌɐWZŴǞ©ѺʬЉ”ʛƤÍGåsuXKþa°£\\ÁmÿnãPiĮÅLJ^³t‰ôwO‡}Hŕ»¹AáˆWǥ_Yʁ|ȿÔŃƨҫƞ֨ϬƦ ǒîHpgjç˜āˆ³ec­ų̈ͦƔ¤ü_ȸ°Ͷ½ĪEɤãǬĒÝά³„‹Ą¡æUÑƺzĠĚʦˤŊ˖Ğ۴˯Ք×ĜǍHüQӞSŘV˼šᅜǓÜġþ»Ôµ¼ÁвÏŲġŜħŒʼnWaeUʳcÍg׹࡯˵Ǘčč•ãa÷ȇǥƕsšJăřԁ á_ë•īƏ¡i‹cã›íćŅë¹Ý»â͗ŅǍFĹˎ…DɽŭʼnuęGśšÃÅ|ċΙLJƙ›Ɓcÿ«Ã¯ďy£iyH‹˜£‚ěOy…›¥›ěuë[ƉXéc§}YϿr","@@ćXÍ`]@LgÐÓ¬Gø‹|","@@nƀů€³ÎeF›ÁìăAaå¬SüC¨R"],"encodeOffsets":[[74384,40332],[72361,40812],[72916,40850]]},"properties":{"name":"Kyrgyzstan","childNum":3}},{"geometry":{"type":"Polygon","coordinates":["@@ұȲʃđŸĮƴȆǃɎƭȍǛOwҠƩ˂]ÉǓ͐f˲ɋȴƍݞǮt̨ҪʒǐೢĄʜǛ¬®˜²\\TFwl¹Ž·ĖùƴžǪÏüĝÖ«ƌE¶ņyàûŖsä|\\Ƃ`t`†ô˜SòWü¼°Â|{„™ˆuȍԫž«ŠiĀ^rC°ÂŒ†‚S BƸƨô‹†PĖŢƿӟɰׁʼn΁€֓ħĕƱšљ˙ʉ}]ɗͣÒŽĻJ˹ʰɍFȱʻÎćł̋ùęɧÈBǭǑƕΣĻ"],"encodeOffsets":[[106933,10662]]},"properties":{"name":"Cambodia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ƔĭͷƌŤ¯ÒĊÝâͳiĥ"],["@@ÄŃőÞΦ"]],"encodeOffsets":[[[-161118,1901]],[[-163163,4018]]]},"properties":{"name":"Kiribati","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ƉöƠŰӂ°yƣҝı"],["@@ģÖȆĎġƣ"],["@@ƑŘÒ ĀƷ"],["@@UćƳv“ŞȞË"],["@@ÿ½ƁňƮŤÔǭ"],["@@IōýfWǘĠï"],["@@࢚ೃ]ࡍƚCŹҫ˽̿ӅkÉȗ΁Ŷ˓ÉBȝʽĐÚǓŻƋŵêÖǬ̋ˇţÖȇǕɣ̠ɖrÌńơAŇˤ˔ΖĿÜɞȌdzʜ«ѸʳCiä˜Ȣʢ·òĽĘĪȗɊĥӴϦфߖr˰ˆ"]],"encodeOffsets":[[[129359,34021]],[[129264,35196]],[[129201,35565]],[[131140,35642]],[[131831,35634]],[[129558,38643]],[[131456,39551]]]},"properties":{"name":"Korea","childNum":7}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@āYĉǀĔưƎǑÕƃ"],["@@٫SȧϨݵĚƌƎÚôŘdžȰϴиĆĠiȎÿvŭŚəƣšȹȉˢ͢ڿ"]],"encodeOffsets":[[[49434,30336]],[[49606,29228]]]},"properties":{"name":"Kuwait","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ϤЋâȓÞD‚€xödRŒŁĉΑ‚ÁȄʻĚ©Ɇ»ƠéϺȾżýȠƣ§û­sљ‘™rcĖU収J‘`ÁlgŲE”ƒ’ñAÃħĩYÉ·çŽŕ•OʉØǓMEe{ŽçXå‡¿ă¯‰sI‡੊ջA…µĵxù̀Ɂ¼ÝÎÿĒȷˆ˓ɚǕÄÕþšÜ£pÝP±ZƛĢƃꑪŽ”ˆfU–ıŽ™ϸʹGû}Ɵéo‰ĪƷ¸·Ȏƙ¶å€¯gřх½ÙÝrÃj™U­Jĥ­“§ď…OóŒƷƧŸAT…­ÁqDÿ]‰j¬Ó¬Çއvƒš{|ɵđ…ós_Ɓ_{[tãþŕxßµŅƋFÕ¬ûĞǩÐƳĕú¸mºCx¼lĊ¤ä°®¸l¼tɆpöYĠ—ð@ňŀȚpĈDÒe˜ȉŊNƄÙ¦Ƴ²ďÊȓʲËƴMȤ`NJ´ȊÛƊʽȦėİŃƢŭȒĉǧoęlƍÆšŠķJß]‹‡E…€…auÁg§‹µë‘ğȳé÷­•‘JygK™`eĀŽÿhę¾ǡƂŸNǓñóӇ³f™óŧĻËQQšÿȷȁ¿eǑĔȢҺMŦñĶEˆȪ҈õ̎pƆQ¾חJīǠĺΠǝǪċŸßÿsXPºN²°ǼÆŠÜÆèzƂB¶ˆIhËJwŽ^ÐƔɒ͆Ǽ¸Č¶kĩœÅQÃZ­pu†[ƌ ĊFƌëpN²¢bPÝĒrʔGƠM¤DZژnªªªŔŠr€RlIæđƸ¨ÈuŠƒ"],"encodeOffsets":[[104579,22917]]},"properties":{"name":"Lao PDR","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ϧ̙ʫPҐ঒ˠ͌΄z¯ƃƦÉäǯʳʝòï͇ñ¤ƕƓŹ"],"encodeOffsets":[[36730,34235]]},"properties":{"name":"Lebanon","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@àūìЭɛίʨƟʲƒĀ§òǑÒijĀWƴǰʓƻՑV˿|ȅ׵Ȫܻ϶१ࡰ࡝ԢǹȀȪ˜͞ʲȘȄÞʾ®°ƂÀÜʠ¨Hð€ê÷ʂĜɜLJŰգÿʍ̄ǗȒžȘΨƢʼn"],"encodeOffsets":[[-8690,7740]]},"properties":{"name":"Liberia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ʡˏĞտɏБɶࡥ@᳿@᳽Aေ࠽M@нủཤ↏Ⴒࡉϕٛ̓؟Ҽౙ˴ϯڞۑȦʑÅşĘɉخҫؠšɢ͢ʠŕךƘϤġୢе߀ǬĪ͂ƄŒŽņżƀǠďֲƈȆǜ¨ŐnjǾŶƮüƎìDŽöŮÌ~ºCªãİ@ŞLĬP̌ǼŸÁƀsϼȟЊµѾĨཤѯѼ߷ᅀн۶їϢűӸȈͰЌƻܖǐʹо̦ࡠ̚Ҩeݺʥ`ʋƲı۾ǡؾsɮˡ"],"encodeOffsets":[[25755,32415]]},"properties":{"name":"Libya","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@³ĕķŰƒȒZɫ"],"encodeOffsets":[[-62356,14154]]},"properties":{"name":"Saint Lucia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@|ÙſŊń¯"],["@@ɪaϬίѠܣŪצʃϞܟY͙ȋЍލϑϧ~ƟŦȣ֪ũ଒ŠĦ†ɵŪ݌ƜʾY̰˼ą͏ƚÁƎ"]],"encodeOffsets":[[[81792,9268]],[[81902,10049]]]},"properties":{"name":"Sri Lanka","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ɉkɛ̓Ñęʭ€͝˒ƛ˴ŗˆȦĚψӢȊÈŀĀŰàȪðĤl–Z֨ёîȕ‹Ĺ±Ŀŵő™ǿϛǧ"],"encodeOffsets":[[29335,-30849]]},"properties":{"name":"Lesotho","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@µPǸˤƁ˳"],["@@و~’m¦™xʁßɹÅkƩX™u‰ĵkoϙçåx~Ս×jǠë¶ñ’ĥ”éd›JwšfépÏLµïŖHЊʸɏǀгJ۱ǚDdžƧ̞OǮO ɦIJ˶ńβüڔUþ_Ú³ÜN܊ަđڂŒƖǓԀăްοC›qÛ¡ĉ¥ÛW{ŽqƼWâY`iƥţʹR“]Ùķç“Ň_ėwŗǛTŅMu‘yÃÙ«éiTiŪeÀĥlj‘"]],"encodeOffsets":[[[21461,56606]],[[26187,55440]]]},"properties":{"name":"Lithuania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ţ̃ƍž½[}¿Q©R}nyZÝ`…„YЃɼš–|¨¦ÐĠîĨYjNEMïz»È·ÊyǸõ"],"encodeOffsets":[[6643,50994]]},"properties":{"name":"Luxembourg","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ӑ́ѱ‚ϫƍޯπӿĄƕǔځőʵÆԯŒÛ‰ÝMƕÔړV̓åÝU˵Ńɥırوքغۚź؞Փ̢ıؠɼ¹Զ’IĄ–ոžƌ­͘õ՜ˍȠÏθàȄÏŞYŤCÎÿɐħ‚oTO«LJ̋Ɩl–[šĥĬşĄ¯P‡¸ĻnÑT±­į"],"encodeOffsets":[[28824,57491]]},"properties":{"name":"Latvia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@řŰƒ࢖Ɨ˲ϩ̦Տۄ̥Ęl†Ǩþ®_˞@˒Ěڔ˫êFמƵTЋːǓĮ˟ŮåƄ¯ÆĕOċUïǨī±Ǔc“S͇ĔŹZå÷gFGł]f‘FƿË…F¿\\ÕÀĥ…£qÝĉÑġ•Sí½·ėµÏÏNŭǁg›]«ƒ"],"encodeOffsets":[[28890,46542]]},"properties":{"name":"Moldova","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĥƷǘ͠ñǧ"],["@@ʼnkkŀIJÀ„Ɠ"],["@@Ͱ՝ʢඇȼչɱәǁƄŃ̂ȓÃƦ߷Ó˟ˉΧzփīο஭₵́గ͋ލϗ̥Ӎãճ˩ʫOছӚ̫אª٪ϧ६tϜǰӜʤƪԖ੎šдǭ̔KˬNjϞ»ݬϊׄ°Тζ˜˄ȊĴïɌšĐƮϪÜȰƽËǰŦǚϼʚƂǷMʆɔ͒Ħ¬\\ʝʞ̺dž‡LJʬȈΆĥź¶ŨĊÈǺĻҔϞļάŏ̲Ū‚ɲ̠˨̑"]],"encodeOffsets":[[[51135,-17308]],[[49503,-13684]],[[50728,-12730]]]},"properties":{"name":"Madagascar","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ōAɼìŭé"],["@@ƾǸöƩɳ"],["@@ĕ¥ŘŘñ"],["@@zĥƉdžŐß"],["@@ȩȴŘи‡ύŚʝ"],["@@Ŀƻ–Ǥêg"],["@@Ƶ†ĴɞÂʣ"],["@@Ûȣȡàú̚ŜŒèȡ"],["@@˹Ɋùɠ͖ɩžȿ"],["@@ѫ೑ƥཉâͻϖҕÿʓtʚ̵Ϯӊહؘ܇Ɣѵјҍţ^ʚŇÿÞҎÉ͒ƽ˶̇ނɜ֘ŽόǨϼ”¼ƿ͊ÓɒƘËɶÿUזϲž͆ǜǼŜࣀ҄ɠଔʜϬ†َƁÀČƱxˬfǰƝªɩŻ̩еұi̳ȷȋ˜éȄ|ȟșFÿż|ɕۻĵƟƣɂr˄ɛ̯ȑuʃЗ˝LyſໝBGӁǟDǵBθ͙ɠƅ¨ÝtÇ@¯¸•Ėy®£@‘÷SĉZ÷ÙCƳ@ɵ@ϡ@ʫAȃ̭ĿǩĕƥĦȹqŸ›s]ÛΗඳ౐ϩȚ©·ΦǧևƶØĪǟyËŎƋšȆË˭࣡Пԁ„̓ƸӍ¶ٟ˴ȯȖޭƺঁКْ࣏ٿĔدɚЃцࡵИҗ֖ƿΆΆnjÇƦƹ²ɲʼz̸ȇņǽ̴H˶ūʨ॥ੈۣӺȨĥ^ňρłˣϼȖ]թˈùżȭ³ŤɆʻšǁŔ‘ʲȎɮê«ƅʀǧƪɫOǃ̈́ηźǷʾÀˎӻĔ࢑ࢪݫൎXѺӝƖŕDzǁÒǛĹڅͦŦɇýЫ˨॓ڜջɌχʚŅĦʉȈóŘԉͼʩϼ܃ƎćăʤȎƟɺޗԖޟxѵʖȭÂȪʀƑ̆љɌƳÙˏѕɟ̙װ૏ߜij[ɩʢF؜ʵբե̴œ̦ĭޞÍȱȶԓɄāǴϡʰ—Ěϼ·ɨöCąȜčõȴě^Ǿаݛިإͼ͙ࢢȟƔ‹Ȝˡ̦¹ƜĐĮȑŬɽҊ፺ƴġǧẘষᛠJFϚ๠WʢˉচگЌ߿ͦʓߊ͙ɶǾɸҊ̄ĴۢāּԁϪܕڔٻ¤Э̊ԡผәȖø"]],"encodeOffsets":[[[-93884,19126]],[[-89026,20791]],[[-109058,22130]],[[-113220,25604]],[[-114746,25135]],[[-113766,26646]],[[-117934,28744]],[[-114895,29702]],[[-115871,29750]],[[-99477,26585]]]},"properties":{"name":"Mexico","childNum":10}},{"geometry":{"type":"Polygon","coordinates":["@@аˏƖɇó͹ōI·Źķġkʹ’DžwǵƱŷ¯©wԣeɉàȃ̂ÞԎƆ@¬ǔʂĎȐÑĒĶƠxB@Ɇ²ѼV"],"encodeOffsets":[[22881,43330]]},"properties":{"name":"Macedonia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@Nᅫħ՛ɹտ˕ǿ_ŃύÒ·ïෛÍ̑ʑؗÏϟŮѱWʏȑޣ̧ŝʍЉºʋɷÝʫʡV­ͅȍćΛȀǟăƫƿĐ˙ɇķª˭ɩɗӵȻŽϝȫ˩ƒԭ\\řMų™©…W¡ŃĥéNķºEd¤úD~¹ˌțƁçtõÐmoS±KÅnĵo—ɏMÇǗ̱ǔɵòˡɝaƆɓƐÏъˡfɤ̜ΡʴHȾȍЖ̏ÀŒǫͫȍѩƶιˁȉʴ̹DžǓƸĨǦAҌȵάǑ­ȇˊĀȰ·˦ǫɄ«̎ƨÁpjºɘԶìòƤŀ WюЋɄɬي£жîAĮl¢Ú°`ŵ–oẀKŸڊűƆijńyȬyȾyȾyȼíظǙฮ̵᨜íظ³к{ȾuȒʴ@ˠ@ˌBی@ᝀ༷᣾ၭjʅϐəØƩௐѹŀσŕʵȤĭܺƀ"],"encodeOffsets":[[4330,19603]]},"properties":{"name":"Mali","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ʼníƀǸĿ"],"encodeOffsets":[[14916,36714]]},"properties":{"name":"Malta","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ñƤƤğı"],["@@¾dzDžŬňÈ"],["@@sǥÿz·ȌƬŸ"],["@@¥ưŦŅÿ©"],["@@ÁģÁÊńš"],["@@žĽũřC˼Đã"],["@@KƏ™ɤ¦ē"],["@@ÑHĀĢmĩ"],["@@ÅćoŪǴDzĽɓ"],["@@⬾ǘ„Ƀ"],["@@ǟƸɎC­Ƴ"],["@@Țʼn™ąũKĥƚÐÂ"],["@@lřčǒâ·"],["@@ZăĝɐĄƋ"],["@@·ċͅǻõljŸi}]ÏxÌIJgµ‡ƁAçyÛÅÅş¯ǻM±ijÀ£ŠÃRƛĉɗŒxdzΉ§ƃ˛қë̙¼ǕʏÑܹ̹ÏɒȑØб؜ۑȆթƦò¬ÅÏƝȍŋ‡ֵ̭ƏVȑ̲ԭӊե[ֻʀЛǮ٣Υ֧εύ¯ЃŝŽćբǮʼÈԖŔňȫf¼ФąjàĒđۂ̿ی§˧ÆUϖDžЮĠ@ǧǦďࡢŁŨŢҤ̍ƧӔ̉ʲ¶̵ťˏ˫ǣȯɚŖ˕ҽɳ̽ϑó„ž˺ƛɫȟO¥̬șɹ–ԜɗΗǽß̬ಬΙ঎ÚRƧŸqͨĭ͙ȉńdz˾˨ŋƤǞ͗ˮĄŘϩƂĵDZŅǼÆʬȧǙÀƎŽȈYɣͱиŧфŶŬʨőƊUЈOŽĪź‚B¦wnjďĚǦúŴé̞ŀˌŪ¤b ޴łÛȘf͢œȀϚìŸĮƎǮϰųİĪȲ˘ʾpŤàؐ°E|kjČQʄŢƖࠪԶԚˆƀƍŰcD¢ǝɶeÚâƸò¾ʚȆ“ĖjŎ„ŠÚČĚƀ¾Nϴ˥ȤՕżĚǖëôڋ­ԅķĭüǫ˓ɷDž_ŏɹDž“ç͍Żā©ʃƪəťˋծǚԼVƃǻžɽ€ηҰĹöğ˃۫،ćpɧǨɷϨQЌʄºƿ"]],"encodeOffsets":[[[100539,10172]],[[100567,11216]],[[100920,12027]],[[100881,12191]],[[100420,12688]],[[100776,12901]],[[100675,13414]],[[97081,16199]],[[96745,16329]],[[99917,16644]],[[95940,19133]],[[95964,20028]],[[95736,20370]],[[95243,20403]],[[103567,22086]]]},"properties":{"name":"Myanmar","childNum":15}},{"geometry":{"type":"Polygon","coordinates":["@@Ϡʉ֢˯ʑÉTdzɳÑőŸ̽ϥ¾ʭݿ׈ĠæáŖmLjb|z^Ŕ`CƬĚÚ¬ĐÀìMš­¢NTÄąŞV~p`®Sª]„TªP|Crë"],"encodeOffsets":[[19680,44493]]},"properties":{"name":"Montenegro","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ܷ˵ԛӉߧˋēcշkџ€୵ƅݷʛҭȇįƒå×Å¡ËiНÂ@ȀNjʵ£ʉ՛ɊлðΗÆƷ¸ˁʆåpé^͹ZӕÆε®đNџğ቙ȆۏÍѳҲ˫֬ǙðrȨՙÖ৑ԀؓúǫqŽCɁvţ„ϏP҅Šơkǹˢ˸іIÎ£Ô‰ĀØВÙŔ“ÒÏ~ëfǿʀÑȂßþa¶clĹtóšÙŎÍR¡•ái­FǻƬçrγuÛ¢­áZſÌę¦QĈ¥ÈēhēÌˣêäŸȓìõøŊĴ³äRŠUžĸD¬n”„òŠÞǐφ†ǖ‹‚âŠXžroŽUĐzÐ~n”‚Ÿ_â¤ĖØdSƼΆdžԐňºŒž ɘĠDzŒÈV’NØC‚®̜ƠʦCôRƎƎÒ»ǚī°I¶x’ÌÞVîWƌƣ॰¡Ĕ˫ɔǕ¼H˜`Dz@ƴĝΊoҘòȾć֞eȈŵŶVȖƜΐĒȺʎ|ȚœˆÇˆ£”ǡ˸ɸоҌˊɆˈࡺ̥ĨeǐMȪGÊY܂ɕDŽ^ɀʔ˚H«c›Tĝ˜µjȃĐģyŏࡠ͓ˢ¿ø`ânɶmરːۮƛŴ\\ǦVŘ_ȖĭČġĒ­ø—ĪEʆGʈ‡¤ʙψɏĬ¯üeԼXǼÚu֞ċȔ¦ʀÝIJp̈́ŚŎªþ[մèΒĞǠsĞbĞœŠ¢ŒÜÔĖżÞńÊņÆ؊ɢϐ‘ɖăɬǃø‹Ä_ƆSňKàtŌžǪºèCŔǚµŎąܥ਷{ĹJğUćū¿ĩ±üɋʀƿĄræàƀÌðD¾_ŔIŜtĞJŠa¨aIJ}ǺŝÆ]Ζ˰ؘGΓļķÎÃĶŘ‘ÄՊчƾʕƻij›“kïCūnţYƛrǡĆħt­[ɯ×TËSƧXă\\ŷïWˣůǍÐĝC_[ƒ‰čBo{Ћvʝĉ̋ͷ`“X¥—³ѡɿѥËȱWƱ”ƭ{şƿɃŷñáǟÙȋŏÅcҍÄ˽Öğ†ćĀó ʣJãfœcзבѾҫ­œ"],"encodeOffsets":[[114564,44729]]},"properties":{"name":"Mongolia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@èЦÏō"],"encodeOffsets":[[149250,15497]]},"properties":{"name":"N. Mariana Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@MˎÃȨfɜĥ¼Ž఺ƽӌɇΈɏࣤŢĒࡂࡄÛƊŜАр֦ǷԄÔʈųƎʘӦĭఐÒƞࡏʄס;ڡz•̒Əո᠂ࠒκүبŤŌơˆחʛҁʂЩ;χƮśŸƯº£ÞGÒZdlSʐ§ƚ©ÆU\\ÚƺĮǸȬˆĠ| ŽŠČĐࣈuzgNJƁǦǛɞħŢŅƌȝɈͷǤÇȆEĜƹߎȼЌ®ĐƖZŐEȈHȤQðkºFÊhżŊłCƞéþÑ`½Ī‰֤ŞͦťƚˆƸĂǐʊӒijиȸۢɊƠüЌ̚ŰǓĿēĢÅǍуň֟›ЧĀţť̇ŎCvख़ĶûÍ˗ňİÎʟȏͭ„ũ֕ߵNjÍ®šٓҋ߃ɧݳйʱɇ҇ٵş¨wţ͍ōݿۍʣĤĚĵ§յɸ˩ʊ܁¢طʵÖ˶Öŏž׷ǣۭƞu©ȭлӭၽ۷̷ћɒɛĘƺkƙ™ӟEe҃YŹzñK"],"encodeOffsets":[[32884,-27483]]},"properties":{"name":"Mozambique","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ÃćĐŒƀ}Ƈ"],["@@ŷډṿL³Ʀ‡S“™k£Bĭгíً¤ɃɫэЌʯǙËƱ™ȽűDž¹oiʭŦ˛Ȱ̵φʯЦ̅ĨĥqγζׅĆٷljЃ ǝ˝ěmƯƒá@ϖÔ˄ζઌƵबʧ̞ǬŴŝȠيȁΦljeɇϞş¥ȝ_þČβพD६BϪBȖ@Ȗ@Ŷ@QŐOĘQŢSޗՠ·˚ĸưŖöƀĔĴà¾hƾx̌ŲNц@΄@Ҝ@Ŗ@ɮ@΄@Ɍ൞@޴@̼@ƾ@Ǡ@@Ī@Ǝ@ȌAȎ@ǖ@̪ἢኑۋ@ˋA˟@ʳ@ǔก̶ᨛǚอîطzȻzȽ´ЩĴŃŲƅ"]],"encodeOffsets":[[[-16766,20180]],[[-5488,16674]]]},"properties":{"name":"Mauritania","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ӓ~Ė–Á"],"encodeOffsets":[[-63640,17143]]},"properties":{"name":"Montserrat","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@˩¶ĈȲȮǎŔȇşɭ"],"encodeOffsets":[[59035,-20976]]},"properties":{"name":"Mauritius","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ŏFƕY“YÍȻЋƺߍFěÈȅ͸ǣȞɇņƋĨšǜɝƂǥžȃďࣇ‰ċŸğ{ȫ‡ĭǷÙƹV[ªÅ¨ƙTʏckÑYÝH¹¤ ưƭŜͽψʁЪʜ҂‡טŋƢاţЧՄƕËƷːŃĊʠ̬PѰҌ̔Ɵ’óǐªΠÑɰˆ\\Ĥȸñʲ̴ʤĝƌ_’QĮǻǔtì\\üďĒďžŷeÙǸࠀəĚƦ˚ȣȾёĈҩ¹ʍƔɕĮ« Ínī"],"encodeOffsets":[[35799,-11856]]},"properties":{"name":"Malawi","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ßnnˤ²̑"],["@@ûˆ²ĖŠŝ"],["@@ȡa¸þƪÛ"],["@@ćW°ƺþµ¥ī"],["@@ÐęƥăćžǞ "],["@@ȪÏǎʹӀϡˌҷpྕ̼̑΀ܛ‚˭ŕrŏǰTƙʟIǷĵĻǼՉʺளࡼJ̲ӭ״ä´Ʊ̎ɫഢȋϪŤȮìŏΆ÷ĴǷưEÑЅŎőϊɪĺŇǐ ȒΖ"],["@@ЉƖӯ„ջmƳŽȋঃǩQŇŋ‹ɕĊģͣɭšɩˋѹԟcɽǕԭǖÁŐϻOʑĵěʝɧōשԃǁ܏نīʀúŎȢɛР›ܾ˕ǍƌȪӨ¹ȪȢDÌ̤ఎΚ޾ࣨŞ̊Ӹүƾ̘ÿ˚ɾƴäѓƸ‹ųҠȠ„ưƈœːƺDŽŘÏŘæܺନĎų¿ȃ˺̨Đ{ÄəˆƑìƋ¥̉ţįфƚĦDžƱَå͊ČȰǵՆƯ˜ĕŸůʳŗշ…ÙƇ̈́˛[ĻґŇʽþĹơ"],["@@½«aŨǚüFŋĿ«"]],"encodeOffsets":[[[114063,2474]],[[106723,2798]],[[120714,4287]],[[102696,5422]],[[102245,6621]],[[104552,6393]],[[120397,4271]],[[119954,7341]]]},"properties":{"name":"Malaysia","childNum":8}},{"geometry":{"type":"Polygon","coordinates":["@@ݨƈϪ‹ɦ§Ɏȋ̋yͅșʋ|եν͋ϰስˍJᵥࡃFᙵ@ᲃ@šυĻȏƃÉƙë‹܍¬ܧǂċǒVȜƝŘōĐĻµ·…ù›mŋµŇ‡ŝ폛ؓնͅӤǝ݆Ɵdžʼnઆ˯ۨๆࡗಂʁؚ׭੐ֵި•ɀRфƈnĤ¸ǘ•ĘE’PDŽMՌȬʠËҔ̱ᅌfሼSҺ͹ਨ»Ҫſೠƶࢴǒ"],"encodeOffsets":[[23942,-18064]]},"properties":{"name":"Namibia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@č_@ĈĎç"],["@@ņ]eƝŹsŷȼƤ²ný"],["@@˟Ǝ‘ÚƂĴőêȰYĒΫ"],["@@Ȟ‰ٌХЄл੾ەxțǑ­ʱĶಓ߼ُںğ˶Ťĕ"]],"encodeOffsets":[[[171566,-23166]],[[172044,-21944]],[[171419,-21668]],[[168144,-20731]]]},"properties":{"name":"New Caledonia","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@ǠఉΦӋgȅ͂͗ȓωɕᠵङঃޛଵ¶ȷĎίƭEēϝȅǻĹLJȝ౉ɺЛ“ȷ¥›UӍϫΏVϛðʛŸ̡Țŝ€ƕ^ؙ˱ɅĜщҨīJ̃Đ̅ĜÛ[­mĵáӝqѡɳǙֵʧȵ©۫ڑׂσƋp˙ˇΌźƂķȢґÇӟ΀D˖DzMө̄ǁɦŸɰǿɄ®ΐؘÐ̒ʒොθðώÑ`ń˖ȀɺրĨ՜Mᅬഞ˰൪୨␤ᕨౚ˳ؠһٜ̈́"],"encodeOffsets":[[15339,23549]]},"properties":{"name":"Niger","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ƇoòŎÖĝ"],["@@Ɇěؚ˲Ɩ]Şվ͑ϜïΐUӎϬœVȸ¦М”ొɹLjȞٮ̀ƮF˜ϑŎƯĄϹtƓô÷ȸ·Ďŭ¹փ̛ȋ¹gïGك÷ÑljɡƏɥķηŧœÑЇɧř­ĻÍΕqËʼnųȻÓýƧßŗǻ׋ǧȳ•ÕĂŽǡƑÝ¿{ljͭɑ¡hÕȬßẩʊljƻĵAó^ilc oŒėÙƏı­g“o¯ġÅıƛħЯсʁܷǙˑɿƶº̋ձƒħŊȷěǩƚàǝșĻŽˬþ̏ȑƒ­ŖsœʓPļćŻǟ¼͏ʸŝʤÃƸþrę”CŤƴŘƍÓƽŎɎàŇĄǷÇɃ͔ί˔ࠗâɢƞʋÕāŅՇw|ȎdÈl¦k¼kæUńˆôK˞`xdlB„çݨÔ֪ɨˆɾאɸȎœͼŀRÀDŽßƌ‘ʼk”±´ŵǾFĖÂՔÄÎÆc٤ʨȶǚֶѢɴӞrĶâ®nÜ\\ڶǵъҧ"]],"encodeOffsets":[[[7476,4525]],[[6968,13423]]]},"properties":{"name":"Nigeria","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@Ñōǥ§׷ʼɳč֥ȴƇŃྦྷེîàƊĹò¶ɺZ¦`úǺœ˜æ\\ÂJfz«˔OÂX¢tbľXȜgž^ĀŊòĂ¾˜¤Z´íǔķ„PhNLdE²¤¨ЊˢŲɪǖȒǸűĞwݸȲĊĎĸ€ɐ_w‰qÁijÃöÍÛĪÝĤ΃ȋ˿Ż֩²ރĭ¢†ɈƉDZØБñˆ½Ǖľ‰¬Ƶǹ˻Ȏ͏"],"encodeOffsets":[[-85649,11180]]},"properties":{"name":"Nicaragua","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ũVĪ̀į"],"encodeOffsets":[[-173878,-19541]]},"properties":{"name":"Niue","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@£ħīɪƐƁ"],["@@˗ƭЁŽçŎ݂R"],["@@łù́¼ɀ~"],["@@Ʃ‡ƪŮ@ĥ"],["@@ٷżʜ²ѾĿɧŀƮ\\ȣǚҊоʊՎʖhЄʸѾŚو†͎ƃƑՍ˓ƒŽŹʌëʽʥÜħ܏Ƒɀ̑ËʫɭįdžĿ¯ŻʥrĒ͆ӧłƷdžگé"],["@@ŕLͤžɍ©"]],"encodeOffsets":[[[-69842,12437]],[[4328,52620]],[[4044,52982]],[[5004,54345]],[[4328,52620]],[[5454,54668]]]},"properties":{"name":"Netherlands","childNum":6,"cp":[5.0752777,52.358465]}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Hıōɒņş"],["@@ƅCÀĤĆğ"],["@@ʣÜɨ¶|ő"],["@@ƷhВİlč˅‰"],["@@ЭJʀĞǮħ"],["@@ů­ȴɂăǓ"],["@@ȌŸܱȇÒƒӔĖ"],["@@^˛ۉ Ր˲Ɯµ"],["@@ӌˆdžȱҙȗ෽DZॾΦÐάӆɒʍح"],["@@тù­ʵϳAͽƷɭ¶Ljʔ̠hŤǸ"],["@@Dž{ÎŜĸğ"],["@@˃Yzńʘ`Mʼn"],["@@̒¡ɯǗҥȭջiȀǮ˚\\Ϫϴļƫ"],["@@Ȫŝ΁DŽƘ¥"],["@@ϥɡǿƌԘƠÎÉ"],["@@ʩIÀƼȪƱ"],["@@ԥɱЁu̩Ţ௒Ɔ"],["@@QȵֱĈýǟחœΟɵĵžЦʞLJǖ୧ͦԵƃԏRϟȉ˗םڳͫࣳǴѽƁލÒۉҮѷ¹@ơϋIы_ȚƟͅбඕǘ͗ӷӻŜғǫտϿɶ̷ࠗӅ¼Ʒ߅ƩÁۣ۟؁άįÂʓƱƅٍ¼ΉÙԯ͹ƧʯʮࡋŭӃ،̳ƣʕ΋µʚҩđ˿گѝİʫŽ̧ƟaéńҭŮȩӤΓى˱§ʇżČšఫۛঋķŃńʋ­ÎƔߟɖŵϜҚĕɞŊɝ£ǭŬÀǜ϶ȼਯ͓ÌͶȘŲʦ«ώƂУœԴЬȌPŸǩЀ̠۽ƓࡍקºϘОˆ͹èůȬіȰͻıŅÈě͸๨ĔɖǃDŜӄĴɑøĆŔɧɧӕľǻŽ޳́ðĕȶ˰¬·ȌDƘࣰù׸è௵ÈĽȊ٠ɎƦÉк¸Ħ¼ҳ»ǼǠદŸĩĞюĊ઻¥ǦǬՌƚѼOѮȵϹˆВƲɱƀǺĒҺOhőҔƒ˘ȝتЇƎժƲǏĀʂĖųžͣŅjŵ݉ɏЧǎ࠾ײߪ˜ĠÎ˱¹njȆ֜Ǡ̊ã΂ȬлŽʃĂҰԼ̀°ȽŦੂǔޓÇþΈؼźʵĦϨǴ઴êࠉÌѪʮՎȏĈƢϋæ²Ǝϗď±ŪˮƐЦqʱĶ׊ƈʮ̇ĝμଌĠ࢏ĚೲԾƄ˂րœʧžӪɎѲ†åָ̛ѪɩԥζǮɆkįͤҔqɨľҖƭԳͰߺ€̨Ģ֚͟sȊࣼдƁŀͨƦԜƃцT؋سലۦÛѽͼĐǎȜ̦¼ʽȚ̌Ũڜĭгʟ̾SáΛ՜Ԭހǻ˞²݈έֱű௫ڠīLjȽʞUŲŨdžŝψ¾"],["@@Ңūҩ‡ɣÖɬĞ"],["@@ߞ˴Aŕߛǝ"],["@@̝ļ˔HŠŃ"],["@@μeɌ̉ॸß˭ƃຈȡጇЩŌʊํÿ،϶஥Ұ୊İ"],["@@ܮͅ࠵ȘӁτ׊ʕ"],["@@ղMີ«ԺĬҊ±"],["@@ࢢęƓΏؔȀʀ˽৺ǥ׼¨ٺ̭෱ŋ᠏ၽይվ̵ɰטbȎƐᄨĞijĎᛗŃ·ɎՄmఐ˒ਂ˜үŒˬƈଫDžƒʢ̱ş˝ú§ʳѷť߯ƒ຅״ߪ‰ȩ̒щb̷ŻЃ͠Èɺ̄åҬĔӮěOĒஎœîũਇũٺJגȗӂϢเۓѷצΰ̰Ҕţ"],["@@࢙UᅮĠओĉ"],["@@ୢǙƊ̒ҶÔĚʋশƤᓂǛ˴Ʌವч෋ǫ࢙ŒƲ၉[؛üϡĐठƂႷXЁƚԎĜ߃Ěபṳ͞঒ȓ"]],"encodeOffsets":[[[5208,61755]],[[5078,62551]],[[8298,64858]],[[8675,65196]],[[11501,66423]],[[13284,69504]],[[14206,69904]],[[15573,70598]],[[16139,70207]],[[17924,71267]],[[30676,71472]],[[21278,71772]],[[19718,71749]],[[20242,71902]],[[24183,72243]],[[24595,72261]],[[24004,72516]],[[31611,71459]],[[26201,72850]],[[-9168,72540]],[[19681,76177]],[[22127,80482]],[[11521,80498]],[[29745,80806]],[[17190,81825]],[[33307,82042]],[[21400,82176]]]},"properties":{"name":"Norway","childNum":27}},{"geometry":{"type":"Polygon","coordinates":["@@R¡IJƃžķJç¥ś³ſy‡Yקmɫǐ˃ĵ׍Ƕdz›µŠõǂáVɵĉčtэɲ¨BĦ[ž¤Ň¦ɁäśÂəĩçfǏ¼ĕR¿i]…ã‘ҳŰmރޡ\\ƫ_ƏîƧĞي£Z—]¡q™OֹЀӥ˄Í`m{a»Nÿ°ĉ´ŽĜg’„ľžĘrÂÐpļCĘÀŰîƄŮƜɪȂzjº‚¸Pǰşà®ƌȴȌ¦Ǵqǂ‰ƪə޼ϛάί̒ĆðuâƒvÁ¢ĵ®Ŀӊ̏¸MǶ´¶M‚UBióƒģ†³øoǖaɤDæµæíæũ‚½”cÎr^۸€æýĢ¿äЈŒĺ¼dÜOzq€£Ƹ­ð‘ĸ÷Ųa˨MȨÒȾ_Łأ"],"encodeOffsets":[[90096,27786]]},"properties":{"name":"Nepal","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@§ÓėØƀC"],["@@lë̓ŒDzɨƔiǝ"],["@@ďÑǔŗ׿ǁɼ̐cǨƠJDŽƕ"],["@@šijʼn¸ð¼"],["@@ǡŁuĘĝoƶȫƳûĩäØƺʗzʂĚ͜o"],["@@őµƸǪ¥ų"],["@@ۦ̖ů̇ǜɺʬsɛȇ˨Śʧ˙\\ȭǘÏࢽਡԇʝĤéǩğƖjĨƩɢ±OǕӁ€mĮƷşɕƔŨǍ߃̱āկūBĪŅ΍էÚƽ̙Ï؛ԡ́Í߭`NjȲ̅GʫǼƝý՗šƺȬɡëÌŸȍÙIŐѠĴǥÈnjĪɍWRÚƪ¼¥ĆʊċØĶǡƖȞ”ÃĴǺŖ²ŋfǀʪƨĺÍ©ƐԎЂ؆İSŘ֐Ȭ΀̼ƀeýØʸ`óêŢ¢ÎËȢʾ–ƕ`DŽʈȢƢ֔ϲɌLjӺтΰʮAǯqyĽʆƱńα"],["@@Ǔ¾˜ŞżǛ"],["@@ƮútđՌǑƁƬ®ɔҏƹW΀їãҁӞŷðdzƂJç؎ʾɑ˰އঔ̉آςѸŗɥܟʕƝÉѣ͕Ɣϑůř˩ƞıɣПܟࢱ֡ͭŧnjʅM_ǜȗÇѸ֘ü˨ĉƦūƎࣙϊƝdžæưҮƪǘƬǢݜńü˽צŰįǐŌŭŠʱDʋϘǴğQ̦ĿÜ]ïǻńĹǶFğȾʹĥաۊǶȊȿƳ¿¶ǓȦØDŽСҼ˴vãęʲͱ"]],"encodeOffsets":[[[173239,-53757]],[[170211,-51979]],[[172181,-47986]],[[170987,-46264]],[[-180405,-44790]],[[178089,-41844]],[[177271,-42269]],[[179757,-37149]],[[177428,-35773]]]},"properties":{"name":"New Zealand","childNum":9}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@åO@ńȲ˾ÈƏȓʡ"],["@@ɄёОЩ൲ϵրܙͦŵmʏέ؅Ѝ͕ΟץɝdˆƦÙSʵ́ŭӇĈ։ࠣɛωٟݻŧȉɏhɝǯʁ࠷ƒϩȵѱĥछጊᠾ࠾֐၌ϣמ\\˦˨چÁĺѢĺ³Ÿƕx†ՀǤðÂǷ˘Ȭ"],["@@Ź’n̚ñ`˨ʎĩי"]],"encodeOffsets":[[[60132,20704]],[[57742,25579]],[[57650,26267]]]},"properties":{"name":"Oman","childNum":3}},{"geometry":{"type":"Polygon","coordinates":["@@MΥ٫֕ۖߕÄ޽ںՓe˂ȕDƳ¦“Ȟ_šd€[iű˜ĩljǖJ̆Ʒáśī‡É_˧şĕ·ãÑ{­_©ÒǃZ·¹ǡaÙüÕ`™N…ĻÙŇǓ@ˣ̻ġíaé–ÏR¹Ÿ»ÝËΫƅГݽһɷ§¯ƍ̍Ʊƙ·ʼneí˟ý̛ʻįÛIęº¿Ƙȍôƅù§¥āŻŹȅ˟ʣć̵ըɋ†Ǜ£οƐǟ¼iľI´HÄjàHȱȎ̡ÖƟÐőv͛…u‡KŸÚšA}½¯D•gååa§O³Pã„o¬R°e‚ɏ¿DžËʗĹõNç¬Ù¢īDǫMīBËdÇ[ëh‹u‡C¡¦kMg_WuGʧȡFěaĉmıÑ£ēɋŲLJų̟̂řӨϿĖG̬̿͂ljĝ˰£ළřıĻԋȀх¥Ãţྥqjbzêrʤ€ĜSºNdΪbnvŸ|Ɯ‚¼ʄŤĪWÔŒܚƦdƠ²xR^Qǖ Gx›²»Š{RΏZ~҈iͶܹ̂ا࠸ıĸDžǐ͌ğٶǿЎĹࣼöҀėʜŸל^ॖʴĮ߀МϮԼyʈĠƅƌӨʠξ@ɬƙΈʬ‹иɔӲٔɦ̹؀ٞ¯ͮÚːʼnƊվո£̨͗и¢âࡢԨ۸Ŋ"],"encodeOffsets":[[74844,37750]]},"properties":{"name":"Pakistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ƚĸ’Ŝê|łʏ"],["@@¿ƌÞr]ƽ"],["@@ēƇʂѵ˽ͿȉŐśЁѩۨŒ~Ūʜ͎Ʌ˵̨ĽċƧĞUųĕɰӓ̴ΝwƯijŇDZƙ׫͍Bŗϔӛսɱȟ¨ƍԼǡɱȣĄȉΔγ¶ÛĮϋVƽÙ[ƧůɢƔĮbŠUŪ½ĘˆÄżĤ¯ØĉÆ·H@͜^jŠX|~`º˜lƂïäЭŊā€ǿŶc³ƇƖąʢnĩƶҐ̟ѢĚװ˔Ҧ͜శ̥תӝ"]],"encodeOffsets":[[[-83561,7509]],[[-80791,8473]],[[-79231,8867]]]},"properties":{"name":"Panama","childNum":3}},{"geometry":{"type":"Polygon","coordinates":["@@Էσ‡ȕˆ‹ŽŗȳÏLŃo{iij{ˆsª™Öë°] {WýƶЃŶħŒgR‡I«°ñĊÅŐƏĆġHŃĵũijũۤĉǖбۼ^ȊŘØ„ͼ˺|^Èty©m­Mݗଢ଼ž„À~ê߸…¦OªFÐbżÄʬĸEƒkĄFݦಧʙͅāګǠУЩՁ]ƗǞɯȽͻǢя̾ǃǃřXƓԓҷk¡ľşVÑ@›@AÙÉĉÛƕ­¦ʋĽǹЯśޙ֎Ǐ͚޹Ӱ੕юୁڒίњͳɠω٪ݺˆδԝ࡮ˏʐÉͬ΍͂đϜϙغӛఈԫڀԯࣈ७ײmƴȞ†¤Ǧϡߺ¬̆پۜƮĞæǁ¦ˡ‹e‰q‰³őv«i¹b¥Jˆ‘ĎEùћ·T‰°”Cø ĄĘ¸^ÚĎ¿IJ±¢}ðRÖZ¼¾^ŋžă²×ÎóÀ{æÁ˜l޾j†²^Môf´ž¤ƨĔŽ˂ʬܐĖÙ͊Ь঴ΚӸΰѦԐŴӎZŽƄwS̤ƑƴÇƈϤіLˆʊgǞü˰űl›t­Â‹Ú…¾»”‘¤¡¢¿êɩ¨ÝŒ•NJ·ÊͺwÄÑǖ©Ƙύʦř–ϓƒ½¤¯؈MȠتŽÄ¼Ä¾¨\\njÑƌġǚlêÊòh¸hɚŕ¶ÁÔYʀő¦¯äƒÌe՛ऻǤíšEÄh–€’J”}¶ÖƗŴģ¨×KŁu£KÙ ġ]ß°u¬½šŁcDžRß]ƥƩܷŻΉȳą‹ĭīśĝùµŏw±yýљƵʡŸăuÍĊ̱"],"encodeOffsets":[[-74892,-6621]]},"properties":{"name":"Peru","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@έƽ̀ɚîÛ"],["@@ɂŕĭÏΗêʄļ"],["@@őYŃȼȎÞɠśȗƣ"],["@@ōýbĦĬg"],["@@©Û·ôržêfFƻ"],["@@ËoKľØč"],["@@šUWĀźé"],["@@éœķöǢž"],["@@ƾ™Ĥ˙Ƒ̙Ȑģþɿo̵ŔŽXίͧ͝Eҗ̩ࡰŕÏʷӕǪȋâУˑ͉ĩЄʯǍ׷̜œƠýӶȆ͸ғΠơSďͳʛʘɅƝ©NJƧ”Љہƫf‘Țˎض֘DzŜɸ͒ɨΒɩ¥͑ͰƲǨ̶˜‹ŚΆɮēÌƄʐWwخ҈λ"],["@@ÉÔèȄĊɑħ…"],["@@Ѕǁƽrijnj̚ˌƌrȮŏdȩ"],["@@ǏǢƠ˒pѳ"],["@@Ļ}¸ƺƀÏûë"],["@@ģ¡AƶƐŐ©ɣ"],["@@ŗIŅɖʯƎƋ˸ÒŜ͔ŀΖƔ͐ɰĜɈ϶ţͿޓWɑƞ˩ǃǫ"],["@@`Ѥո઴ƒܽʯɫˣ֭"],["@@¸ŏáBjŎ"],["@@ýÓŎ̄༾๜èиȺ˺u̡ƈϟˉơƫɡ·ŧ̅ևऽۇ"],["@@űč´Ŏþ"],["@@̘|ĆƉ[ΧɊБŁıŻƬ˭ȷŖLԨĽƲǻīԦȴlj"],["@@ĿMĻưŴlĈǍ"],["@@˼g´ŻɜÏȽˇʟƒƓۇ͇Ų৖ƿǰĨ”Ͼɽ"],["@@ÿYëɚƦ‰Fǵ"],["@@ņ¬òǩʯGĿʖǸŏ"],["@@șŪƲŒ¨Ƶ"],["@@äǥǺʼn™ԇè̙ƌǁхĄǕǒįǼÞǨң͚ŵΖߐ•"],["@@˘ˑJǵӑ϶ˇʓâքЖʝ"],["@@ãȽùȎàɢŦ°§ʡ"],["@@HñƁʸźȅ"],["@@ðŷ·΀˘ɇ"],["@@мŸːʧdбū˳Ɓå˃ʖɫքʿȲÀĖʮ"],["@@ǚÝġɑƥľîDz"],["@@ƭčŗŎƾΐNJǧÁȧ"],["@@č̋ÿ͐ǎƒ"],["@@شˏnj‚ĞƆIJyħڙ̰ґ͑߃ґɃXɛǷ́ʮӳËŽŜ΍ϐȧÜÈóŶάƜʴʼnƘοǐðnȎиȋSīɍÛɨ̓ƒƃ̜ÙéϿƵļÒȐՙņŭͮӋϺŃkǘЭÉǛȉ˞ԉΖɵăƁNjȽ~ɉǤǟãi͒ʲʰfŸ̛ȤJͯű{ǁ˸Ɨ¶ʹ୼¶ÒˢɻǬÀU౺ȰܶтĜ"],["@@ă«IJƘmī"],["@@TùſîŬL"]],"encodeOffsets":[[[123137,5383]],[[124068,6222]],[[125024,6583]],[[125888,7587]],[[119890,8073]],[[120172,8412]],[[127803,9363]],[[126667,9460]],[[129031,9545]],[[129085,10001]],[[127585,10023]],[[128707,10153]],[[122795,10738]],[[125594,10725]],[[126087,9282]],[[126332,9677]],[[126728,11555]],[[120127,8643]],[[122739,11802]],[[127565,11616]],[[127600,11769]],[[125437,11894]],[[122920,11985]],[[122983,12460]],[[125599,12605]],[[128246,12829]],[[126686,12583]],[[125025,12652]],[[126746,12753]],[[126241,13162]],[[123602,13803]],[[124841,13866]],[[127339,13960]],[[124963,15366]],[[124008,19063]],[[124848,19349]],[[124438,19827]]]},"properties":{"name":"Philippines","childNum":37}},{"geometry":{"type":"Polygon","coordinates":["@@áŦŔƾ±ˣ"],"encodeOffsets":[[137826,7560]]},"properties":{"name":"Palau","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ȍġǧ™ɡĨénj˨ŷ"],["@@ƅÁćÞɎ["],["@@]ßĉ’ĨŽ"],["@@ǺÂÅȧɫĒƷ͐ʰʻ"],["@@ɔÑĘȿϩ˜ÔöÑƨü\\"],["@@ȡŎĊžĤµtȕ"],["@@˒ġ^ŝϝǘĮ¨"],["@@dÑijʀĦĘU˅"],["@@ɝĪɔoJù"],["@@ȵǘ\\Ŕɖij{Ƿ"],["@@ȧƧ̿ŢšΎϋ̈́}Ф̬Ƨ̼ѱ̘ȡŔʳ"],["@@ƝŀłĮœȭ"],["@@ę˔üĆĂǡãǷ"],["@@ŕ¸Ħņpƽ"],["@@ǜìʐҝЙ̯ɅƆʁÇďǯę̍Zʉً̯˿ۏwɩDzʃٗϔĂǔުĥЈ¼ŌÜņμä·ćȧĢǷ׼ÞΪФ̂Þßֶ˔ă"],["@@qó𳥬€ù"],["@@AᇴħƔĨͦCᲘ@njྴׯԖġҶ̽ΊiԠѯȺ‰ζοkӣ໒ջȢɏ˜̇؏·ƑħȤҙ޾؍ĶϙǢşŐ̙ԬhÄϹؼDžȿıĨǧࠌȇ͹Ñǜǯ˝ŗʫÞəȌအʄكִ­ˢ˩Ğԇܾࢷɲġƞ̓Ä̯DžЧʠʌНĝí˅zĄǙࣷķƩżşyɦƣ˖r˂ŇɠʍUǗ؁̭ΕƄअ©ƁĒ"],["@@ÕÛŷǒÑш͛Ҧ৳وˑøäƔ২֭ࠠܕĬȷƕͻ"],["@@ɫBǡƾɠøǞïPLJ"],["@@̶ĉșĻևuĠȠΌ\\"],["@@ȁèˆIJƺǙ"]],"encodeOffsets":[[[157221,-11751]],[[157984,-11634]],[[154521,-10818]],[[154707,-10260]],[[154142,-9570]],[[153954,-9721]],[[156295,-9174]],[[154734,-8943]],[[147033,-8685]],[[151579,-5966]],[[159701,-6847]],[[150709,-5562]],[[158359,-5563]],[[149524,-4839]],[[155562,-4399]],[[156335,-3208]],[[144360,-9337]],[[156637,-4870]],[[154048,-2725]],[[150598,-2007]],[[153360,-1590]]]},"properties":{"name":"Papua New Guinea","childNum":21}},{"geometry":{"type":"Polygon","coordinates":["@@βছثНВȷ¡ѭºǩδοċÁĀɹıķɕ֥ГˣʗµÉX¯ºʼnX·uĽŢ÷ʷQÅRϟņ͋ǞҹNǯēыÐʱǡʧpdƘ˧ȎʗǕˇĤɩ̲҅ƀŹÁȹŨÚdžʋ«҇ƢĠDž̍œέ˒ǬŴřèɱ™࡛͸UŅñqñEJZĔ؞òy˸{zƱ¼]jzêŗǤŴȾÓƘÃz•Šgž`Ò¦ĈėİɕŘĿĄV°żĀÚâ–þDdDÊŽϒ˘ùsƸ̅ņဌ˸̾ɜ๜ʆμŻ˕¼ʹ̿٤øԖ࿮»ӂS†N¶ÐKêoŽex™œIêcĦ“ò‘ìµ€ǟ"],"encodeOffsets":[[24049,55235]]},"properties":{"name":"Poland","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ū€ɸGŋw"],["@@тÁPś̍ɥ਍jÉ̶ĘŔࡼ¯"]],"encodeOffsets":[[[-66995,18541]],[[-67716,18888]]]},"properties":{"name":"Puerto Rico","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ƈȝϛijЕЃ¡ܗ̯ŋۣԃߋ̉ơӗ͢ĻӴϯ˯˅ߕqϥуɝĆɅŕ̇ȲΉɕŸIJ˓ôǾŴџ¢̈́άФň͕ĴȮО£ȨӯȚŗťɵ͞ѸϤऌϐوېDzšȎȥࠀťŠȂȳ݆͊῭͒͠†ǚҨ˾ęLŭɾǫ"],"encodeOffsets":[[133660,43557]]},"properties":{"name":"Dem. Rep. Korea","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@мġ˙ăǩˈĐ"],["@@ϼGQÕҙAģŌǔ«"],["@@è‘͝GÿĢͶÇ"],["@@ǛÖŨ’´ħ"],["@@ʻļɒpªū"],["@@ũYlĒľ÷"],["@@έƣٙĮͳõƸͰÉࡠǴmŋĀΏÏ‹ǬȖøȖ˨́˯ȃ›ĻĎĘҒҌٸŸ՘ÏߒōÆĢƪіǒĨ˙ؾlɎŮѺÜɧˤş׹ѭIJ֓ȇƧŘũáȉţĭΗiҎԗ̃ԉȦɵŰNУϭŽң"]],"encodeOffsets":[[[-17603,33658]],[[-26264,38750]],[[-28822,39376]],[[-29328,39450]],[[-27725,39571]],[[-31884,40353]],[[-7583,38072]]]},"properties":{"name":"Portugal","childNum":7,"cp":[-8.7440694,39.9251454]}},{"geometry":{"type":"Polygon","coordinates":["@@lÕ\\±„‘„«‚{p¥pljîʵĥڧYʻলŷ˞ƺ¬_˜ïĚñ²_ǖ@ŤwĄđNđňƃâޅjŸº¹`ė@Õx羅ä[üYĨhĊp̜ƊƼõÎÍňۏɑŽۅ‹ĉřdzIţaߝʭɋͥǝȓʑßq¹ŸË…µFåËåµÙCƋúdzHɭțนɾν‘‹IJpÂͬМ”˾ȨɈ͊Ӣɑ˴ଫӘףЀߕȢȳǜ׵ЌΓӎƃƤƙöíºB|sx̾ঘBцѦޘเ̈ޖVވѿj̅"],"encodeOffsets":[[-59555,-20648]]},"properties":{"name":"Paraguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@đëƒì]~ɼɘ —D_ƫȝ"],["@@ÐȠɆŮÛÊ×lÏkkNOdŠÔ…Ⱥ°Ƭ°ĺņØĤkêi`•æ£ÊKjƃķّӏģ"]],"encodeOffsets":[[[35173,32044]],[[35718,32121]]]},"properties":{"name":"Palestine","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŨŸIĿƅŊȥE³ƞɌ–¶Ɨ"],["@@°£Ə¢ĠB"],["@@ǒŸʳóĢŔ"],["@@ËÈրIć"],["@@ŧemŎƴG]ğ"]],"encodeOffsets":[[[-152905,-18114]],[[-146883,-17018]],[[-142360,-9927]],[[-143437,-9652]],[[-143434,-9124]]]},"properties":{"name":"Fr. Polynesia","childNum":5}},{"geometry":{"type":"Polygon","coordinates":["@@÷iíkÏ@³RlÓì©Ģ€¼XŽýіȾӨɒƠʀȿ·ͅľЅƱ͓Ƈ½"],"encodeOffsets":[[52499,25198]]},"properties":{"name":"Qatar","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ĘēŒ¯˲©MÎĦiˢĨƲbƐ£ŚġůΕёï Ǿǡ³ʱধ̧~˳Ǹϫ‚˵ŮܷƇ׿˱ᓝƐ§ĨƈŊ˗ƈaVNjƾºĘÆlæM„^YŠáœŧ²ū}ųīěgƷŀɯšħäƍŠCˆvP¶HàNZjƧøĞƲ…l՗ɴgʀ]R[SeUeE³œÑøȇĘįŒrȒ„ĘƒŬĨ̤Š݆ਈ݄ψƮºìæÂEǤāȄLߚÃʹǧТƾȌlȂˆɈtÖҔ¤zúŘvƪ~̦ėՐۃϪ̥Ƙ˱Ƒ࢕Śů"],"encodeOffsets":[[28890,46542]]},"properties":{"name":"Romania","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ýÎɚbƛï"],["@@̢µջ˯˝ɑ}ƱāǦظՄ"],["@@ֻ˝ɋ[ٓӕ̊Ϟ՜̶ƂŎķɤjШȒtŭȧ›"],["@@ȭ£ѠήӺƾܫӇ"],["@@ɻËӆ˂ʉȵ"],["@@ǗcǶ̒]˭"],["@@ѱɕݬqǢϲĒΖ̸ƧЁ"],["@@ȥØǬŊĤeéƻ"],["@@ӂறƙ݉ŦϛѢଋݮൣ֑ԠˇÀՃħѿृa˫ֈߋɦ•Ă͡ů˧űѾףŢсڃȷ҄Ǫׄ×ϔǾΨ˅ئɴیÛࢾŠӼПќ½ҌǐѪҞˌƀ͒¡ưϖ̷͔ΪĨ"],["@@Ļƣ˹~϶Ŧ"],["@@ɠ·С̵ɑǮȕé̂΀̨ĕ"],["@@۲ǙдIɐƿşʷGÏðŕԇFࡹ‚ಉÊ̶ϲҞÖ͊ʖ¶O̥ʟʹánj‚ ˢ"],["@@IũݥԎѲdyū͸˛"],["@@ĵˆǒĚÛš"],["@@ƏÿʒьھǦ˜˯ࠗʁ"],["@@‹ǣȿƤʌ€"],["@@̳ÀűƾӘ±±Nj"],["@@ަƻƲǩԄŔƅɔÖӝȒ܆ɫ¿Ïሴҝ{ˑ̺äŸóÙ؍ΠïĠNjʺňhȱʔǤϩǔŪʼϵŮܶ°ѮÛƓĩÄĩÈź֢“ХĦ৲ŏઊӵāāʬž¶ĿϺu­ŧ׫ŏŁȳىǂˆʣڧ_݃ƼҨȍÛƯ̑w͂—ÔƁܹșʆuċƋоǷ˱AƏĨµǕ˅©ɀͷƥ۹̒ۗîϫǬȩϮ߳ŤεġޣOѵҌNJeȂ͚˹Ƿɳǂƹdz̗lęʃπ͑կϙ@ȶ@ȶ@ȴ@ȶ@ȶ@ȴ@ȶ@ȴ@ȶ@ȶ@ȴ@ȶ@ȶ@ȴ@ȶBȶǜ™"],["@@՛˛׹įЅÀij϶ѴȎ͊b࢒˙"],["@@͓ъ΢Ȟا"],["@@ܑìНȤвĬࡢőƣʩ"],["@@UǫګIœŪҥvεΦѺŤ୸ѳ"],["@@ʐűƛȹٯˈռä"],["@@ƫɼ૆δ@қख़Ɠ"],["@@ȻëխĚن¸Ťå"],["@@ذģԢʣཡȹӫÖ@Ҝ़"],["@@ٗt݆˄Ԯů؛LJ"],["@@ܱňҀȲ˲̹"],["@@ЕĐdŒٚŸʧǁ"],["@@Ͽ™ŷâԸ‡"],["@@ठěʵͧ׿ɍėԩং۟ঞͅЕŝٕŨĪƕڿŀ࣯W৽njʌǶТŽطǸDDŽఉ¯ΩƢÒ΢֜¸ΆǨɊ˨˱ļڒŀıɢಬǢѠá"],["@@Ցµ›˒ߎž־˷ߝá"],["@@঄˝Ğ˳༕ä޹Š݃ąતіऎ~"],["@@ؙh˨¼Ͳã"],["@@ԍßǹˆ܂Lyȱ"],["@@ԕʱ੻ɐ͂VǤƼબů"],["@@ͲDĿŷ֙Àͨô"],["@@ǍƟ˕”¶ƎϠÂNă"],["@@൘˜ƄƩሜãƩDZࢣƟધxᅭͰ͐͜ɐǯ"],["@@йiȺϦЂȩȁǑ"],["@@٤Ǖ֜юসɯࡢ@ඤ˩૷У܋ÔχȄǴ͂ՑkğʣޮΡջűСƞกŧӱİӧʵࡍŠ१Ѻ˼niͶπTūǒծƆײèै̱"],["@@țſࠩþÎØॸU"],["@@®ƝҿƪђK"],["@@فWࡐŒɍĹ"],["@@㎅ޡ࣡ʵȌđ۝ʛιêǗǧыZêɫ܍dzUȵϋÎȖƯӟʕ҅Í஡ƀקđҋΒ݊njזϮڞÞүŌޔˤׁƖȎÎ҈ăɰɆٚSϜ˒ۖNJ୮Ȯ֎qɔǮ๨›రŢᧂՐ۬ÝϦȏ঩Ё"],["@@࡟O੒ƾȱƭ"],["@@̹ŽЊìďĹ"],["@@ƇȞđLjըƦǂАC׌ɯٮϸŞ;˾࣬ʟƬĎÔ̪ɀĢΨդʲࢰӮΎƽʶČȘ̹Ķۙɵ˗RνƃșțౝKȓʺÒ˔ɃɖBɒ̛€דкη]̣ȎסϗȞ’΂ɅŠ}̜͏ͤө੘׉ֲӗƊəÍৡΌᔹɗݡйuŻӴÇĀЃֵеݹ৏ƶŃïDZڷȇӟ˥৅ʼōĆǙ¶ő€éDǩ·ŋŸÝsʼnLƅTÃ`÷ŒɫDŽɕĄϏ”؉ɣŅÅŃÉŻÝÓĕ‹Ûş¡ĝ›ĝaǟtΑĝճçý\\ō©̓řıoɿÞęGŝ֝ČÙvǻŽԻWùfĭ°χɐ£ʚʇˆʅHĩF÷˜đ®ċĢȕĮŗ`ǥUų[ۭƜયˏϏ_ŗvÙnį\\࡟͔zŐďĤiȄ—¶SĞdœG¬™ŏ|ƃȿžǃ]܁ɖÉZȩHǏNħfǝĮۛȸɅˇҋˉɷнńʼnÞǭ¤“ȇÚWºo{șȷʍէɭŵUȇŸ֝dȽĈҗñΉpƳĞijJýI—_»G¥ÄǭŒēˬ९¢ƋƤëXÝU“˵w¯J¡ŒŷàѼ¹[ēű͙M̛Ɵ­×D‘MÇUDZ‹ƷûßcŸ¹‹ԍŇ·DžTƻ×cĕá£ŷ`“mÁÏ}ďyVqp‚‰WáǕŒυ…µÏgĿñ‰“ƒ«mķC©Fȷ—ċÿRבВ¤ǶгɷߕĮȱϐ֕ƬͅҊӳȂԃďɣƑࡷXßǼˇX²ȈͣĒʋġqȥοƝᅁᐴିوÁňȞMƶʠ୳̑ǻǏ٥ȹċƅбŎϝƟčɔ΀ˮЛíԛƪƧljɕ͒ƳĵމNþ͘ϕצұţৣȐ٩ȓ§Ʒᖭ̓͛ʃՃšᒁοוÔɃͭҲĉʱÝ}ƃϰ¹΢ȇࢇƒɯʟȄ˵߷͹κʁࣺ˛ƓϵϓƑѣa̭ƞȷɥʏõÏņӍØѱ̴ѧxͭǝαƨѧڱν࢙ήñЍΑъکψ٣@̏ȒܿȟƱƠ̵èҟσػǥƥșוȩŒֹΣÏՉѪɵiґ։ñˣȖǻˡ́•ͣͼƯȒЯDŽÂּăږ޷͵caŵ׆ɥҡɁžǃȱŽܓ̍ƛĄÈųƭʿե׵ԌͳžҡƺˢƷ܋ठ৅ځէЇêӋѾˍàǽĊӗǺG|þȬkpţŒȁKƵŪõfҊÓviSáʼnáþ¡tř\\Ʃ›ȏñĉkŸyōJÅnknV”žœYšƅ¾ÅŠϿŨõ¼Q–șàয¦ĵ´đ¶ɱ”ššş¾Ź®Ӂh»ËųWॿۆ҉Ōˣɼ̗GʓɸӝƮ˂ŜȃèŪ²̈ŽθʅǀːξæžÆĥĔƈʺIӡˈŭȖؠx½ŲܖʘćƎƟFăą́sǮĤҡƛżѦҀȶ݈‚Ʈ͎ĹɰDž¤ŮǼǰ\\ˉƾ΢Ȳy˚ʥIԗʆɍևȒDZōԽЮګǝхǘѳ‘ɻ֦Ȼƈ܋ªýΤɶĐ֍ӄથʿɍ̟¨IrÉӖ¡nqxPȄiȐ}ûÂ÷Òµ´‹xĚĺpž|Vζ÷ʖ]˞ƮĞ–Èb¼Pɇˈȿņǩ`ƟIÇfÒŀXÆW~…tƍ°ȋîĕĄĩƊġäĴE^}př ƻôOn\\°t®ŰŖ@Œg¦åðÁ²GzVpäÈLƢɿĆ͡ƮLJQėR±Yµ‹ãsħeůÉ͔¹ºlżࣷİŗò®İS²mÒ·ļOˆǯǐUê|—\\ƕkLǰP¬SžpɏĨwà“`ıH¢ŜŤŐȤÒɵ̎Ëӈ׼ӲśĠžʢɶõƸƀΰiǘƞࠎ٦ìϛȦշEΧƸʼnʪ׹şཤࡔ఺޺̆ͼ̑˖ৃѶњʊTƮЇȲ€˔ϿǠȈƪǿĔĞ͂͘Đࢋঔޠٶեͦօņǵʤʪ̝̐ÂҪIJΠɶטŔþǠֲćRȶ֬ñϚĨYŦ࡮șýĵإÔǚǏԺQiđЎ¼ˁ̟ҘȮᆤı༼пט˯ड़ʅɊ[]þӒˍӰıͤчƛ͏࣯ѵௗșᥟ˞ׁǸ˻»Ď઩njȁȰࢇÚ๖׿ʛħلĕӢɯîƷ̵̹Ոߥ٢ĕӀ˩ࣞǃѶŖĀŤĝȔ٧öҹ˼÷ǂ̈Ȟᝂԃʦǎ͘PիӒfȼආѴؠͬ࡮ĕΜƑģŃʪfɖő˚ްիˈΠ࠾ܷΜ׸ĿༀËڤՋঋûՃ˿ֈȑ˖ʛԜù঎ƨȀԞ߬ĆáǸͶsᛶ֘͸ƽ˚Ŏͅľ௪͚ׄE׍íŒЇ֝Ɨ৺x͖ýҴ̮Հæ࣪āࢠ˰ݒĮ˂ɣɫʛՄûƜ̖ӾnώɐٙԖبɌ᪂ʿפʋᄚ̽଴ҹ٦՘ԇbҋњ͋ĖҹĠƗŝ͚঺šĊυeÁɚൊԐ૾તłą๚zાȇȧ֭ץү۲гŅဵ࡞УϝʧÓΏਁٓЙƤɹۃƏ˽êʸŦ΁¹ͿƆևaǡ‘Ʋǭ४ȣࡦdҸħ;ðĄȔୀκʂΚ׎̐ͅռǂ˦౺Ȍ̐DټёÃׅԈǫॴh૫ƌÜςˤÎ˿զ൳˨ӣHԗůࠓ¬ɑֈ٠ٴ੍ܮӮʹૐʦǣ֖̮”ӶҳϽ˳¸ԯആǵֈ’ؚȥԸHŢÌзQ̿ɮ๻ʊͳ̞۶ĺހǑϤĮǻŞѯikĶوƼ৔F૸ʓݲ̻आ¢Ўăމ΃ƅ֋¶ǝծҸƊ̧̽̇ͰĽMƸ֌ɨӭҶ͒Ӥ˫džұ¨ҩ˸੡Ȉ^ϰΕʂƆ˴┰Ÿ්Ɣऍϗݔ˥ا̌঴ƄϚǒ࠿ζӍÔͨŒфĽ˨Ž௃ʀΊƞϚő͞ĆΨȠѹ°ÊĐ֒‘ᑜϲ὞˒হE̴DŽዎŽк±ΟǃܖĨWĩᆒ̐ञǵȕȗʼŎsǦࡧ̂ႌšيï֛IJ¾θശѤ୼Ȇႜ˷༙ʍᘪÉШĝࡡΏસTϮǺ᧮§מǧŵċ֪FŠˣ԰ǖʔ̟ʘ|ʏ̑फɘцɑʌ’ОƉڧλᣭ׋}ŷഡЍޭÕӻʑЫm࢛ѿӄº٨ʬ੮†೤˄Ѳ_࡚ɒউZҰɰڜßÚĪΚq˓»ƢşظijհŒ”Ǽǒ£͒ɟɓǁˬħ̧џҌǑϗƠ֞Ғ́ƆໞǔᲄƑΏÕuǽૐɣᑔĉаvřĸҞÕϲȨōЊࢨîࢴʭրĎʢǵЖǴ׬Åଢ̳уǽΘmȞƕۧƛܨćňɫЍñ्̖ŽŁ࣐ҫʤƊɀƩԯÛޚҙٴȑȂÐɞǻ࡜мԲֶ࢈Я࡜ŸܚȈҀT༌УăĀЂĊͩ¸ˆDzҞ„ΰƹٲ ɕ̩ͦÈۢȪࡗw‡ƔϮƔఔúɫʰ੆ƛ⇈ɻcû௫‚ԙĻŀÇᒌĒ׽̍ĮNJЅöCʇ׉]ŀȗݒĦৄѨሪƍѠɥ߿čãĕൎƝхʙܶżԬÿєɛˣ‘غů↨ɒଐ­ૄȽվЗɷσ঴ɝŀяɲĭϡϋ׮̮{ЌՈȜࢊĒᴴǷࢊȔϒϥࡐljʤʙެ’ϪȂ΍ҎϘ˜КᚔʅƊļᐜ©ᬐՕؐɳ@ᾕకϵ٫Īܱ̪ҏ…ג¡ƼřŻÙࡏƤ౗ɵ౎ȄʜǗǭĵઊƬLˋɈŝ̜ïƺŪŸē̎ӿʓ½ʬǯ¤ŪԄͥŇśʾˑϙ̭ໟɺ ƶ˅IŖǹᕩإݟěЯʹɱÀ¨ƁїŧEėງՃɍЁ̱ĐًѼࣷmއƕߡҧŗļǺь੣͗ŋɉέǾΉƍlð͡š͇ȷûЕ्ܕƱ̷β̟ɚȚӔƃϑεXЛŌŷˬ‡âϣʍǁǧlDZƔΈʒ̯ťȕϋƝ̡ӽ͎سЙȣ܏tו̑șͽƴջρĞ۹ˡɯľŘƅĭЫ͛ӕ੍ڭċ‹ȏΊſैɇ̚ЫှÅОάଆܮԄņƨŭ˂ԸhǺȄԞU޼є՘Ԟྀࡲ˄˄ൢϚſĠϞˌǛİͺۦ͠ƬԢąǬÖ࠽ɐࣱŹˁևȪLJƟŇȕŒϳ—ൃރӽīǦ͚ӵÍѦ߀ٍƥ̧ǮळƧԍž͓Ľ଱࠱صʱ֫җťʯےáDŽɓםvϓşˇŲ˫UҗʍлĖțĵٕ‡ǣǨड़Šދ˴ܩÇƸ¾ࡳǶӝŝŞţ΁œ­ƅȄIȥġЁƀرūࠏǂЧʉеȲጥ™ԣʼnຑ޽˿Щ຅܉ࠃۛᎯ৑IǯԀůߒŒßۇξd]̢ѴĐ˝ƷжŹӥͳה¶Ӟ̘”şˍʛǜZȾ˪—ή֎ė͚ìֱּ࠘ʭljɷ˻ÔΔȹĻͻ̒ɏıɏηʧ΋ۍĔ׽ƋƝ°˅࣓̅೫௻Ƚћշ؋ಗૣɣīر܇षӟ܍ɁϙƮͽPJβωǿÔǨٽ֧ϗ~ŀőŭȃ"],["@@ǵÕࣇè੾Q"],["@@ЅΙ୚˂նɥ׎½ƖˍӑƇ࿏ŵ೽Hෟǹჸା֊ÿźƪЖƭ"],["@@ૺű߃O͵Ƃ"],["@@ળŴŭǐᓘŁवȁ"],["@@ોŒ܂ĨЊų"],["@@٧|ՀŒŨƍ"],["@@mͯߎʖ௸ɳ͉ϟ՝}ݚ˧ౣƣᝋʼѕک̌७ĀྔԐʜÇ፤ņ"],["@@зì˞ÒƚŽ"],["@@ûɻথ`ǴɈࢮT"],["@@ফzіDŽ࠼œ˥é"],["@@Խ†ɏ˰ᆲųܛqχǏ"],["@@ԓFÆňҎō"],["@@ࡈ¡ȨơࠓŎೃˋƟļࣃ”ᒌȲ"],["@@ûǽࡱǕٯÜՅÁµ͖ᓚd"],["@@நȩᝣ˫ƖLJਭåƀƂݷ±̅İ੄ȔৈYƂʲࢄĘ"],["@@ޭ‰ĴŰࣀUɅď"],["@@ࢿ¤ୈˎŹ"],["@@ๆįञȱීŃ৷ĢԻŐ֤ȴ"],["@@ʶǭէÇࣙɄ۶ĐӖÝ"],["@@ٿźᇮ̀ՔɟჁș"],["@@˿Ý૓Ěඔ{"],["@@૾ʿ܁ȑɰəᵥɛᅋ̌ศζ֛UIJüᏘͰՠTؐǣ"],["@@وŅף§õǕႭfȿļጀȢ"],["@@ಛÐഔP·ß"],["@@ƉĦॆvĂāࢽ™"]],"encodeOffsets":[[[150236,44794]],[[149717,45566]],[[152166,46406]],[[153281,46738]],[[155651,48023]],[[158526,50496]],[[159664,51510]],[[160159,51874]],[[146188,55700]],[[140471,56423]],[[141252,56415]],[[21746,56591]],[[170650,56156]],[[154205,60436]],[[167563,60010]],[[36676,66747]],[[71702,68099]],[[-184113,70595]],[[51472,70847]],[[165343,70555]],[[173262,71251]],[[61902,71614]],[[54174,73078]],[[183155,72527]],[[141271,73224]],[[-183169,73295]],[[79496,74027]],[[81410,74468]],[[76453,74623]],[[123148,74844]],[[56648,75068]],[[72371,74850]],[[145598,75670]],[[85555,75850]],[[144395,75776]],[[116109,76187]],[[88733,76781]],[[84145,77230]],[[150319,77180]],[[139212,77220]],[[143410,77649]],[[98850,78109]],[[115178,78460]],[[152730,78500]],[[69392,78068]],[[98597,78876]],[[91663,79042]],[[133824,43318]],[[110281,80007]],[[105354,81157]],[[78079,81563]],[[94908,81598]],[[52644,81863]],[[61122,81875]],[[100019,82083]],[[51254,81997]],[[58449,82280]],[[54806,82110]],[[59348,82047]],[[55722,82405]],[[48581,82795]],[[63660,82775]],[[51485,82870]],[[81948,82789]],[[62609,82894]],[[56033,83063]],[[60030,82987]],[[64895,82637]],[[93765,83089]],[[98844,83022]],[[59198,83504]],[[65179,83568]],[[59695,83677]]]},"properties":{"name":"Russia","childNum":73}},{"geometry":{"type":"Polygon","coordinates":["@@ƒaM¡ŽÝľƅà{ª½¨ĕÂӣkĹuÕǃ¡PµSÁo‘EŧòʓēƿÞ¿̓ƛßʵ]ʍǴóĽĵîcȢɊǤÆЌ͊˨Ⱦ¬Ėœΰͪ¬X¶E’A"],"encodeOffsets":[[31243,-1092]]},"properties":{"name":"Rwanda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ÔôĈț̙ǪºȊńʋ"],["@@ݶęȨϧ٬T̮իWƟφș¿¯Ȗɍضѥš`Ǧ̵·ǩĽVѶࡱĞϏÿâãľǍŽk´QÐ@îløjЗÖNďȗɒ­pǩߴ३ᒤʽèèϤם֏။ᠽ࠽ុΑܵΥӽשř˱ʣƑƕNȻʾ৉Œ͙ŀਙđлLjȑƁu֛̫ˉыࣂҙϚѧژЃ֭ࣞі̑ľϝӬƵ˰®Ǭƅ̦ØװԇऴқЊ́Ě̥ѺîŠį˦࿿ᘲϩĄćŘ઎लŷǶżnjŞĮƠĤƒª†׶ňlbÀŒäƘbdhdnjĂİ´сѐ̽̈ūŘɎÄɺÎԲžɜÈӲنZŰİȊƒ˰£˖¡˼±ĠഄڿෘਙߊսൠʼnƦ‚"]],"encodeOffsets":[[[42996,17117]],[[47649,29795]]]},"properties":{"name":"Saudi Arabia","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@²·˦БAÍęÄSĹªܣɺધड़ۃƿƳs›WwW…u…µmi[ЃŃȡő‹‡µƯ•ŸƋIá_ĝh©C[gŻFÇùƧt˟̇޹ŝȕlljpǟ¬ЗͯఽϣőҷڳƱߝƇıǗŒȑȅƒϽȝؕǥœü̘³ˎٵӄ³ܢłԤБL^ǵ֑EɢʝèԷ৏ઑЁËكҠͯdzōʝбƥŕɥڛFƙɰڳXΑʼnةּ½ȦիÝŧ‰ɿѥɇݙ͓ȅԟŴÍʤżȎpМډआÀΨ˥ȠUΈĝàĵӾΣdđĦ͸ҐĹЂζ̦Ɓ͜ʐƠɘτD̸ƞƜܮfRṴ@о࠾NBဲᢴ@ᢲAƘPŞǚð¯©ŷ⯀B"],"encodeOffsets":[[37757,22525]]},"properties":{"name":"Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@Iޓijď֡Mʁҋݼ͟ƊʃլӅɰګʆ̫ƷƱǥǝȧȟɓɉǟǛǛǗȟȡơơá³Яŀ֋ƣǗƽ˳ʂɁĿͩĞˁʛåŒƝ@ßǰˁŬѣԖǩtȳȁлĨʥƳȡvͻʜ͓϶ɑԪՉ̄ǥ͘®ưࣩږćŊhɂ̇ˢҽżŧ͔̾ȆɈݚʀѦŨŠլÞ¾ȥتֻΒŊڴWƚɯڜEŖɦвƦŎʞͰǴلҟЂÌ৐઒çԸɡʞ֒F]ǶВKŁԣ´ܡٶӃ´ˍû̗Ǧ›"],"encodeOffsets":[[34896,9689]]},"properties":{"name":"S. Sudan","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@¬̍ǬɃ¸˥ÿȯȈˉǒ®ȶΫBҋࡓÃҁNJʼn—kŦի”˯BʅB܅HƵùǑĉɝ«ʯhć]ƥÙĕgŕb¯S£ƞˊìŽĘũʼngДĪøۄFjƘѸÒŖƈݼˏΜƠųŖέ‘םʸˍíçşࢫBǣˊŲŖƣ‰̓ՖƫöĉÝùĔ͜Ɩʮ̺ɮφˆĔ„ânưĜǞ˞ЄŸٸNJ׆ąδεĦr̆ħʰХ̶υ˜ȯņã"],"encodeOffsets":[[-12575,15165]]},"properties":{"name":"Senegal","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ˍKƘĸŶī"],"encodeOffsets":[[106465,1364]]},"properties":{"name":"Singapore","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@Ͳ•´ŻːVѺїʋēڧѸصƠZŀͯ†ސµ"],"encodeOffsets":[[-37993,-55363]]},"properties":{"name":"S. Geo. and S. Sandw. Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ùMÚĊ`û"],"encodeOffsets":[[-5828,-16381]]},"properties":{"name":"Saint Helena","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@őaϧːӺʭ"],["@@ȕÿĥÈȜļĠă"],["@@͞Çɦ̳ӱĘȽŶ§ǢljˆVĺΈƵ"],["@@NŧŧôˢƸɭ"],["@@ȂƇ͔X϶χƛÅ܅ƒDžʘ\\ƆŀŽ"],["@@ȪŧʫºÂî"],["@@ŷ¤þèĊ‹ÿ"],["@@ƛ«yƞǐ|Fŭ"],["@@ƩŰƖŨTʗ"],["@@ȼʡ«ƿǶƋǬձԃծµΤĽƖƆ¸"],["@@ŔɝßėșƔ}ƨɋÁíÐɰʢɮɵ"],["@@dzĀÆŬƌÕ]ƕ"],["@@ƩǺ¦ŒȼűķǙ"],["@@޻дУиɶ¹הΥΌʡŠǩ"],["@@ƋP¾ĮĎĽ"],["@@ā˷ĐկּӠɇƌɥʚƛ"]],"encodeOffsets":[[[164431,-12081]],[[170121,-11015]],[[165597,-10636]],[[165425,-9856]],[[163585,-9495]],[[164013,-9211]],[[163010,-9342]],[[161903,-8892]],[[161167,-8922]],[[164608,-8513]],[[161550,-8439]],[[160944,-8302]],[[160449,-8113]],[[163717,-8739]],[[159580,-7267]],[[161267,-7506]]]},"properties":{"name":"Solomon Is.","childNum":16}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ΧŔ˲Èǝ[ū"],["@@ÚăIy½śFwh[ĤmĬ̷Ʃʋ‡Åt[†R¤UžG¾žĒĴ†^ÞUE{ţ›ĻǯįÝʽȗȃ͝ʱȩ˛ࠓЖL̰ǽ‹ŹĒė˜ljÎĽǺǀKLjǤʍ«qɢَȝƘǸjĴnjǠĢǔ˦ŊnjʊmȚİ՘HÌer«Œśʐ͵"]],"encodeOffsets":[[[-12826,7615]],[[-11016,9611]]]},"properties":{"name":"Sierra Leone","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@Ȱ›Ԟ͡P]N¹^§†E’rŐÊŀœƈĝĊ`øIУbyÇʕű˹ىĐƤćક͂ʓƪ Ɩт˴uŰǰt"],"encodeOffsets":[[-91507,14762]]},"properties":{"name":"El Salvador","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@įehɼĈɕ"],"encodeOffsets":[[-57617,47963]]},"properties":{"name":"St. Pierre and Miquelon","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŝ¯©ƊȀƬÀƉ÷Ļ"],["@@ýˆìĄRŋ"]],"encodeOffsets":[[[6820,124]],[[7602,1606]]]},"properties":{"name":"São Tomé and Principe","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@tƱ­ăĿƣ_“„ŧcijO³»ĕũɃőıƒA‰MWQ›B‰‚qèŻR¥ •¨U¤uGś—Q×Pć¡·U“¡̃‡ȏΉmuĕsy•o••Q‘Äm®á¶¿ ±K¿O÷ù›ϳČȅĂбۈėѲ˿b΁תǪӈÑŸǦƜ͌|ĸƨğŞľǴȌώؠě˴ƻWnjɘþۄFټƱuʱͱ֓ňځˈΥ"],"encodeOffsets":[[-55331,3717]]},"properties":{"name":"Suriname","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@]“œƃÿƿŷįWƍ̩É˅Ƕ߱sſș͏ů˙Ü۫ȇÉdz߱cԫȤɿ͌òDzƶȰԼ ˞ƪÚNJ֠Ɉˈģʘǖ˨ȍcƗʨoʲǢьÏǰĔҺM͌ǝϠŅÆQ"],"encodeOffsets":[[23080,50251]]},"properties":{"name":"Slovakia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@õręVǷŷйǭaJàĿoĹ̿ŇÞÕÏãPˆZ‡ćuŋTſ¤ƉkťĀ·âmLiy“ãíµqЭ«ʧöɢÜYòƗĤÁǂùKkZOnN~¾¦ÌšfrEhǯˆkĘƎĈ؄–\\j¶܌ĵ̀ǦࣄÒŖƼdžKȜ̛"],"encodeOffsets":[[16913,47616]]},"properties":{"name":"Slovenia","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ćŸe˚Ԧٶзࢯ"],["@@əŇĀʷٗБŞƎűЊͶɰ̨îƨã"],["@@ϵ¤Įǒeƥ‘"],["@@ࢭÍכłūɝׁǃ˜ūǕ´Ǝljλˇٍ͎̃ԃᅿ׃ʙƳŴčʗęɛĈŌʋǟćΣLȈɳɑ̭úƵɥ’ÇůĸܿΆƑʜ®ݮӁİɥࡋͯԄˆɱʇવϣٛc׬ťɫ·@޷ʫړѭӭ࢛ŒwŇ̑±ƽŧłʯƗŋઋ^ô˲хҖˤuŧƪǜXtƒϱʐࠅ৲eȆƵzďԶ¤øNJ•êŃƠbž̨įʬڰўḔʙҪΌ¶Ƥʖ؋̴Ůӄʭࡌƨʰ԰ͺΊÚَ»ƲƆÁʔΫİۤ؂Â۠߆ƪ»Ƹ࠘ӆɵ̸րЀҔǬӼś͘ӸඖǗ͆вșƠь`ୀџܚŹڈ΍ƹгɼ‹ýʙ̈ˋʍҷϤϓ"]],"encodeOffsets":[[[16926,57642]],[[19535,59224]],[[19617,59313]],[[24736,67385]]]},"properties":{"name":"Sweden","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@Ħ»eɛÄȧNˍóz}MwţkdzZŏǹGɯ^Ǐ´ǯłĿǔ¯ļÛNYlR̎ʈζĴŚņô Z„GьȇvX"],"encodeOffsets":[[32715,-26580]]},"properties":{"name":"Swaziland","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@DýƅƪÔ¦îő"],"encodeOffsets":[[56874,-4805]]},"properties":{"name":"Seychelles","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ӏї̹éĵŋ¶رƅܷǩ˷ᇳࢳ࿥ࢱϑÐӫ̈łǸ›МƔź£Ɩ͈òñðʴʞãǰƥʰƄ΃yÕڔśŶÚɸ®ÊØMƈßvDnjƜzƘɖÀJ|ēǎR¤¨ǐ€Ü~rIJSƒ…˜±æ¥̶SôˆǒÆƾ¨ʈĜӘǫŠDǜ]ȾBŨlƺŠˤòׄɮ঴¸Ƣ¤ĜêˆRœ_jIœŸžķ"],"encodeOffsets":[[43376,38000]]},"properties":{"name":"Syria","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ǂ·LJ…Fþ"],"encodeOffsets":[[-74068,22376]]},"properties":{"name":"Turks and Caicos Is.","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@QṳܭeƝƛC̷ɗσʏƟƂ͛ε̥ĺЁͷҏĒĥΤcĶӽĞßV·˦ȟ¿Χ̭Þ؇̓ó̓އݑαɹ୕ǁÏđȈƱқԡޑ½ܩεȩ˄ƕƵΝƧБbÎɜη٨ڃլ̗Шɢʎஊx͇̌ťʖđϸªؚȟւ͕Ѩǻ²ƱBōư˛ϒčΰµȸޜଶच঄ɖᠶȔΐ͘hȆΥӌǟఊࡊϖ←ႱỨལ"],"encodeOffsets":[[24556,19965]]},"properties":{"name":"Chad","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@řԛӈ͝²ՓǸʽrႫÿIȺוŽßλŃϙ̨ǯͰĞцœNJƾڸˁͼĮüŒҢʗÄĠŠß”Įլϻ͎Ą̈ßĂҾƉ΄"],"encodeOffsets":[[923,11258]]},"properties":{"name":"Togo","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĥŁt͠ĨåuƷ"],["@@ĝƑmŜŌv"],["@@ĿOqƞŲƍ"],["@@O¹tWƬŠǞǩĹΟĬǟזIT½oƅö̍ȩ҇F‡òĵNťȡҹ •Ų½ÀfȸȂŢĀRRļÌôŨš€´eԈòôȔ MǢƁĚ½ĀgÄōš_hL̸Ǥ’Ġ¶ì¨ŒÂhbv†F†Œˆà^ĸIމƎÅĚk¨pĊđŮȑńơĘįʾȥÜƉ³ȉ_ljNȣÎƳȒʱĐÉƴ±Ú¥MƃȊʼnf—CÏoćĿț@ҘïZğoõsɅk»­·ã¯ĉ£»k[S—±«­ʛǜೡăʑǏ̧ҩǭsƎݝɌȳe˱ǔ͏˷и­ÿףҀ޿\\Äٺ̟Ŗ̯éȵȭČǕŁ̗rѧە།öࢯӦpżחŞƉ†äĮȫɠ࢓ę®·ɖąTwȊăƧɚΉԂ˝ЖJԔԻȑΕǏŸĹňωɩōŒÒІƯFijǸ΅øëŐţȭΡκrȖƕĨšŘȧbăȸƻČuƜəƠíǒĽôƃƓĭ¢ÁҖϰ஠°ЄζώΦ֨ǭ٤ɿМ\\ּӉզ̱ԮUȒ̮ƐˆֶȎŌÐƞ«Æƥñȅժ؛ے×вɑȒ̺ÐÒܺǖʐ̚»ҜìƄ˜Ί¨wǴɘ‹ƜĊÄQ¤‰Ĵ¿"]],"encodeOffsets":[[[100771,8092]],[[102473,9817]],[[104886,12277]],[[102526,20805]]]},"properties":{"name":"Thailand","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĕÃÏÔMh^@Î_ĈW"],["@@̟ɝՏȔлƳF}ånj·ly§…ù¬ʩৢÀʢlj֞Ǭ„k\\yW‹CȔ± ũɜؖ“À§ê«ΈƮЀqłZЎ¨~êdƊWJ©{ƗǖɕğĩĘȹȌÉɄĶ҆ǗèܟȌǹȑŹ_T›šċÒьʻr÷E±—‰—ΗćăPuløÌbž[˜ÁX©`ĽtćQƟ­˅šȧȧ࠯˧œŰćʂŲڂ}pÃAćsÏI“b®ɄÝŘѧĬˋ̅ǟŵ]²ķGč¿ç͏œnƏšǏ_ő“ÑÇkó~ĝ]黵¥ƒQí¨ȁƔ£RuK}Ua[]•Y·T­Sʁķó£]©oo£RŧÓġnĻüÙАÔ`ȰҊ،əɘœϢοʟŘʑîÌȾʘƀشíƨʪȖÎÁŤƖ’˻Þը~Ë̴Ŵǚ̚ġׂ͆̌ʿ͉˳ʀƷʲŽ"]],"encodeOffsets":[[[72361,40812]],[[72662,41205]]]},"properties":{"name":"Tajikistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@¥GקȌǭˉɃIǵQř™ŕ½ƒÕƯщ‹Ń¯ñ˝LJˑŗ؛ƓƗĥțÝ‰Ĺ¹ƛā͉íǿǬϿ¬ɵǔçSSȼċĠºǶýϞٹKɹ˚ԝʒŹɐСƢүcށʶƇȲم„ƙƙݟ{ЙɯǙʵڇѝചƏɔ̱ŎƯÛầ̰½ŋĸ^Ȯнà¢ǵșɾÏ̂Ǯ՞ǜǵЄKɈƛѐšµŢ̬ŽfǖԝϖʓԊ՝oǍıŽɝˆѕ̙ӤӀ̰ࣄǀ؞̵Ӥ֙Ҙt࢔·ĎòŻю˜ɢѰÈǸʢϐǁ˓ˢ˚†ĦĮٞϣՌĥ—ȧɒƛĿ™\\̟̬ƭڎɈò΀ƵӤय઀ۅҞƷબا̞LՔɏãǛ]ƽAşXġ"],"encodeOffsets":[[68119,38245]]},"properties":{"name":"Turkmenistan","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@΄ŶƋȧȷò"],["@@ěʤŞp¤ŮDZU]ĢɌʜǠÔਨĮ̆Ŧˤĝ͋ʓ౏һ˷ȣ"],["@@ÇƟӌŜŔ"]],"encodeOffsets":[[[127014,-9565]],[[128070,-9740]],[[128662,-8335]]]},"properties":{"name":"Timor-Leste","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ê’ßőǥƀǜ¿"],["@@īAĎÚ^×"]],"encodeOffsets":[[[-179365,-21677]],[[-178128,-19086]]]},"properties":{"name":"Tonga","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ݥÅ΀ǘlˮơĬ؞ĺĭƝl҇"],"encodeOffsets":[[-62476,10378]]},"properties":{"name":"Trinidad and Tobago","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ȡbpŴɮÅ»ď"],["@@ŻÑŎŜnÉ"],["@@ƇȅĐ֯ſǟŅŽ‹́ƃʛ२ÁȼĭϜׯЄȃјȡİ˽Ҟiؚ̦պ€ȶˆĘèĴÛϜ€״šŶͦ˄qĔतͺŴOƣœĴ˒£ĆΣĴ¥բ˺ÔǕձחĪʍΎɅĮͥίҿӓͯÍȉɌ˟΄TƥȢĦʤˉ¯¹ʪÉCu‡DžOËKɇäıD©}¹ŭËǃõƍëƭû¯¹ƍûŏNjǛ§"]],"encodeOffsets":[[[11221,34532]],[[11549,35588]],[[10522,32446]]]},"properties":{"name":"Tunisia","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ʩ@ɀĐªď"],["@@N£ʂ͙ŷȥĆ̗ԼïД˱¤«ȕIJṶ̈̄̅›ȾғvϙŶ©ȧΩ͈ǓaɳȄŧ{ů…p½PÁFǡıÛ¡™‰J™ÎNŴa ‰„“hďXƩùƇHӫŠŽ—Ƌ …SėĥƯķągĸ› iL›^‡Qěéơ£঳·ɉõιƷˣñƹ‰ŧkȽAǛ^şCӗǬʇěƽ§ǑÅó‡ğHŝRķE㦙²Ƒ†ıT}qÛ§ǏQ£Ċȉɕ¿yƗũÅ¡ĕuCƇà×Nçͦ͆̊ŝɄտ˯׃ȰࡑՓݳūΕŰ̗֛̐ɠשÄǕԃٍħϹƘɇ֑͠ĆʇƫÆİՋҪĴȦǔࠕ©ŒŲȠŒϻдƀÊRɈ߉ʢŴ̪ȞʱЂĮȥ~ťȒɂƬǗؐżƟƪǼɎډçWĐäΞҴΈҠ²džŕɆRͬĭĎŤ€Ĭowĵ࢜jȁŦƞĆݠŊءƬ†ʄᄚħǠDz܊Έࣚʎ଴½ɌĚۇŗƦƋɖāв¢̖΁̺öʎƯ૆ɓ࢜ƶ۶ũیʦ˦ƌĄĀLjà}šQĒÂҒ±ĎĴpXbPÚNÔM„]†ÑîsŴĩüng}mXy¬Ȓ—"],["@@ҐnƸΑܠ˗čȅڅÔ֡ěȭʉУǃӍΟ¨ȪҐʾֽ_ÉĮʘȒAʆʚƎ—ǘɕĬîŶtŽÐ~¨Šdɨvꈘ‚ƶd¨b¨[ưŏ"]],"encodeOffsets":[[[26594,41100]],[[44476,42144]],[[28135,42954]]]},"properties":{"name":"Turkey","childNum":3}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ĝ”ʮʌǏ˟"],["@@ÜdzûÇʣʀńϚǀϝ"],["@@īҍđÚvψLjl"],["@@Ḯ႗‰ϝപ৏ΕୃÎɗ֠׉ɏгCɧŢsZǕŗεŮнDŽȿìڵبϵЋ̙ƟûۡɉзȷӑĴǏʉƷāƙ‡ͥŦ֡ŝīŠ_¾ýÒƝêŁDŻʼnÉgũfȡRȉGmĬŸÎĭ¬ƓɖºʎćҪȽђ˙Ȥęƥ߿ɚƏîہɦqĦhËjŧMįĔěŶć ɱIĝ¼ÛÞ½öğʀ˃զÿɎčƔęĺŧĦƍĤõÚijȈ¥ä…ŢuŮVºĘDŽV¬YÔ©ŶǙѢeìDÂà˶A ˆKȔŰϠպ͈͠jƄ}ŎÑPė–õd¹rmfQ¨¤ň£¬dzüǀhv’FÂp¸T OȄvÖlĺWĊÞKͼ§Ė©¾ß|ĽƆÞN¢„bTHŸXΚÊZ^GlG౶@ಀ@"]],"encodeOffsets":[[[40665,-8168]],[[40445,-6322]],[[40822,-5023]],[[34717,-1026]]]},"properties":{"name":"Tanzania","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@‘BµF«WίͩĕŔȽ«ŠతǼʹRː઺਎ÛȎϓƼİ͢ûǎŸ̰Ëè˂ʜͪĝɂŀ˴ʁǘƾ֌ƤаĿâ´ƢƢȠȢƀ˥®gk³Ēãł“œ“H›—NjP¯”ǍϪַm¿æ̗ZǙAţƫЋˇǝÑƥȿəǽγ‘ধ౿@౷@iF]JÉY͙ÕeáNSG"],"encodeOffsets":[[31243,-1092]]},"properties":{"name":"Uganda","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ś£ӯǝĮцƛ"],["@@֝aؽ̡ȡ¤؛śڿѥɠƤ¥Ɗ͉ɁƢЩκ͓״Řͼ¹Ƴ˟ѭ¹ͯþ͓ʝԯåһ˫ϫƔĖҜ࢟ʲঀҘÏŲƏȑİ؍ûթǖƪŰϟľڲáǼŠ҃vʇӐĨҿ˹^€ĦƇůԙÛӝֻӹŧÞϱřĢƏ¤Ʊaˡħĥj]ol˱ªő°ėĔ¬„œ^DŽh^°mþÐÐʶ¾¸TîĢ–ĊÒrކ¤¿Ħ[ÖEÀ€†ǀ̒E^eHŁhEȠÞ͈ē”Tǔd²žǧĬVðPČq¸“žʱŖĭˠˏǔSЌםƶéEړˬˏę˟@­`ǧýk…Ʃ}ɻȥɇsȁ‡ȋkСƽͳǨߙÄȁKǥĂÁFəŝěƌƽrˡɰķCVƎŸİĀǀŔƄ^”ʸRšø³̰¶Êˤʘ֦Дɖ‚IJĸHðćNJČÂγπ§ǸþĮîGÖ[ðxLŰÖźĢèþத²ࠨŷƮaĸNÌQżŽͦqTāƆĪ֢}Êg¤ï–c”KIJĜàl¨Tˆx¢v”DȴȵۄĄʐǡƶæiªSē¼yĨþìŀôæú¶ŔĀȦHņ°ȒFDŽM̠§ˀɎદŽ֎ӃɵďþΣ܌©ȼƇɼ֥Ѵ’цǗڬǞԾЭDzŎֈȑɎ€ԘʅʦJz˙Ρȱˊƽǯ[ŭǻdž£ĺɯƭ͍݇ѿȵŻѥ"]],"encodeOffsets":[[[32781,47313]],[[39132,48222]]]},"properties":{"name":"Ukraine","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@½ɤ”ĄĴĤ¾öJ̌´Õ˴mxfÈĸʎŒΦ˹Ά͝gŻ\\óŌTȸDzrNžs͒͹腲ˆϖǥ̵̰Ϫǝƈ̃А˫õëăęíéó·{‘g¿@ПƊñ£‰«Ï¿Ɨǩț—ŋ͏ʑ؝ə٫ƂӛĿޝϖօqӏӄŠؘʀʎŸŘƒdžĂàŴH֛ÂYÈjÊGÄyÀlªŀĔˆìŸdžjàŠȄrücƖÚà"],"encodeOffsets":[[-59198,-31599]]},"properties":{"name":"Uruguay","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ʥ¸ƕ֮ȔɞWɘՐɿͨЁٷљ"],["@@Ľ_ÝžƜO€ō"],["@@ǬhʎǍΙŷÑǒǽŮĦðĊđ"],["@@т»ŭĉα´ÞĒ"],["@@ƐűЋXƍɢʼĮƎȵ"],["@@ȣmƱŎǮƴȒGiʋ"],["@@ýMǨ¤ĩ•"],["@@Ǖƿ˖ͤĿǣ"],["@@ș֊`͂Ǻࢋ"],["@@b×ɡժɀӑ"],["@@dzĠŌ€èş"],["@@ǫU͊ČƝõ"],["@@ıkƂʏë"],["@@¨ÕůJĽŮȆá"],["@@ǩĄưZzĝ"],["@@˪©ɓ»ÕĦ"],["@@ũeź¶„Ьˏãǫ"],["@@įŵŦǼuÅ"],["@@ÏÃ֬Şઓ΁ۑÓŖǮʲņߖÔ̐Ɗȣƕ"],["@@ɉlLjĢÂō"],["@@ˍcǶĊĘå"],["@@ĕmĪƺSƋ"],["@@ȋĦƌĦĽ"],["@@ĭ‹pŌþÿ"],["@@DŽȝ̝ʪĨƆð÷ŻÅľÓ"],["@@úśüķ٦ŕŨåˤúĴXΠ»˰ŏðƃÈ@˾tԲȳ̀ŖǠN˜ÍૼœࣞʴՔȯҊdz҈DZࡪΓӨȫǎãǮ̙Ȍ›ˊHŪΗ̦‚ŬĹĻƫ֢ʣ̲ƝÈɛ̆ౙ©ą̗܋Ӄ̽ɱϞʧɂ@ϸǶϼǶЖŨپIJࣘ͐ɐƈÅԛŠ‘öę̢Ɯ¼Ƃ´ŀ”ɘNܦEٶ@ՒԪ̰ȎΘʮͼǖȠ|ĊJᥬFDŽʄϴgӌՔʐڬٞيNJ‹ĨǷלŔήɛJଗ̴ĽÈίȰGŚ˻ǡŷկĉǽljāIJʣJçȽɻæ¦Țϵӫʛ÷‰ðÇđ{ĨŽȅƁêǵõҭבăȳǺǝηʕʶđˀЅΦÎȩɞŎYŌį|ʅשţ™ưϽȋhɌĹÃijĪŏΓ୵ÿࢿ҅Ĭʮĉǎ˜˭˱͕ʖŇěԣ^Ǣؕ࠭Ƈ©¶ǐՃ̂Đʦ̊ǎ˝ŷƽDžǐҡʮ˅ĉƽŰƑݩੱ“ȸˆҲLJdO͠ljçǵƀBƐȺtǑŐŅ£ƢŦƉČǎŊčĠêļɸ¼ŅˆŌĎïØˋə­æ÷ƭųšŦţŋ½ƐבʃȲR×˞ϙѵʬmćģŸș‹ǞКȕʏYȻȐJڂϵãǽůNԱОҾзȴć–Ƿř|«ĥʭȚЊϟį»ȗȘԳĜӠſƺɵШ`Ϻࣿ΍۸ƹƢ̣˟ƔCŏ횚×˧čƥǶPɫրZ[ɻȖɨĂį]Ǒͱʗˇ˜óŖƏďʡĆѶɏɟɻʓƐĂʼnȘëʎ¤Ă­ßýܙȫĭņ„ǡ̷ȯƫ́sȖ¹ɏͣLλNj̑Еƈ¥ɧѻ̇ŅnOţΟƕɫXƈ÷ėœȇƈĞțΙ˱ ùNjȽìMǥƭþõŹÃ×ͭɢࡑ؎વ½ǵň̷ŹɶF̄ñƫJȞűƮǿזೕÛࠋ̝ԓՁûsƠǐơĔɁ϶̍ŶȱюŊǔǯœvΆȕĥǕǰɯτʸ̨ɧĎÄƽōÉčŘLj࢔ࢗ࢐̋ƬɟÕƁ޻ȑāò@ÚĊëİ˓ȸÔƒŵĵחȜ˦NőòߍŹǺüWŜơġǗǏ›xČƣŇ͑…Ǻ¼ȃ͸Ľ˝٧¤ΓÏɣƯҋǠǥùåřȦģπŦÖ±ųğƸēȘŤ ȏ̯ǙפΕŝƻãÄşčÇǴ׹̀ĘǛƅșƕdž̹ƏҏƂŞ|ćȸɟQ͇ʀȯŗ¨ęƩ‰ޏȆյ­]Ɋ£ʓܳʯȞƐɃAŠǞɿŸŔ˧͕Ϳ߯ЍȊŦοLJĪȀɁɉĭćäÅȏˉ§`é̄ĝ̝ůŤƕų˻ˡňÚƛǪ¥ÍɩĴЙʐѱȕ÷ปӚ̉Ԣ£ЮړټϩܖֻԂۡẴijɷ҉ɵǽ߉͚ͥʔЋࠀঙڰʡˊ๟XEϙᛟIẗসĢǨ፹Ƴ˵٘ԧΪˣlăɰՙĂϱʴܿ¬ƏĞ[ҘǕò—Ǻ͑ɂӿռÐѪӳ̚ĕˮ®Ɍ̀ˏ˃МÒ ڐ¤ܱöŅˋΉȔÇÇúǪڗװōܲѱԂʈࣶϽଔ݈͠Ȃཔ»դ٨ÅȵİԛRz˚Ċơ´ȒȉǠɨĎɥÔwåȥעʉˆ¡΀ؠDZࡄāǐÂĺɋĹţ—°ˉ΁ǼlŧOfâѠφţʳĈˍDžÙ»IJǗǓ˜ÿɖ¡ΎƈȐɳŰĞŒɕƠƢ’aƐ£ĞĽb‰¸ÇŞ୎@෤@Ϊ@Ψ@ܒ@੼@。@。@ @੼@ܒ@Ϊ@ܒ@ȤAN͆ʨÅM¶ɋ"],["@@Á¹ÁĜń¡"],["@@ƯnÔüƳŜѲÛȡƩ"],["@@ѭ_ҼȔdz"],["@@Šŋёōɚ͎Ęij"],["@@ȉØļ¨ĎĿ"],["@@ƑjΚǚɇȃ"],["@@Ѿ³ڿƁÚτZ"],["@@ŽBŲĬƀ·ųµ"],["@@ԱYࠪǎŇĎɢĔļ«Ùțҳč"],["@@ˏœ̼ú«ŕ"],["@@ԾƉсċυƼˊÚ"],["@@िћͲͪʺ´þǼϮPŗƍ"],["@@ȲĈŢÅ˃ǧdž«зȃޯŷըȐĶƠǨ«ÊÊ̩ČÌň̪Ķė"],["@@ǹa}ĬǎŒǚęů{"],["@@VŰŤóŹ»"],["@@ŕìƜ¬…ŗ"],["@@ĆƑʞūɱÈ௹ˇÁǂ΄ʤ֠Ť˦Ë"],["@@đāÔƚ~×"],["@@TLJəŚvȨȐƹ"],["@@̕ǥ°ǚʈŴ^ŧ"],["@@ȴCóǩ؉Զ˨ùȢˍ"],["@@[ßƣØǀH"],["@@ŎÆÆǏʵ‘Òɔ÷"],["@@́ɱñȒδ "],["@@ƟRŦĂzē"],["@@ǫʁɓǞ˃ȱëɂȆΒ̘ľɬȑfȩ"],["@@̨gĚȕоǏΦΏ˵ĨĵķǶTǰɑȘ_õеࢭԪƈÌÙnjիǐςŖʼnĬ̷ÑDzƴ‡nj"],["@@ɉĀŐĦɮ•ųƏ"],["@@iƓŻ[̹ŲɾΜˀɇŕ"],["@@ħ²ǰ‚ćó"],["@@ʀ“ƃ£Ļø"],["@@Ǜ”ĘȒɲǿƭ¥"],["@@ɂǍǯѯȫ§Ę͊ʏ͎ȘĀźñ"],["@@̶ՌɅÙ³ʙǬƞ˫˛™еҶԦK"],["@@̯ÓöŐ̈́ĉy"],["@@̌Տ½уʣʬĈƈϓŤŌǤɉȈ̛ȫUɬ̾ɈДƷ"],["@@ЀD­ĹɢŃǑĹѹšɘŹԁijϫƣøû͓ƵȠDzϙźăȇ˫ѴҶǤά̃ŹҶ̔ōɪÄ´ƪʼÙ¡Õ"],["@@İɅɢŐ͢ğ_Ǖ̱¡̠›¢ȱՏƼŅȷǿvփѴȺȺƬķ¦Č̪ "],["@@φcΖџЁΔ͌׉ԕʹ|τνܼȲNj"],["@@ϊ¥āōǗ֓įʏzˣƙϟĀ;ǮǢeÍŚΦ³"],["@@ų´Ȭà÷œ"],["@@DZüΔńǡǿ"],["@@ȿWNJĊ¶ñ"],["@@ŌӲΐƊs׹ѧ"],["@@;ÍŚͳҳűࠫȴʟǖԌV̢ƒ˺B"],["@@ʖѡřëŔʸ”"],["@@ŇɭēĸȜŶ"],["@@іƃͻ|ΉȪʰġ"],["@@ή¯آĂضʳ۴¿›ćԓ•ʽǷţƔࡻ˔ڃÿī̐ʄ¿"],["@@@݁@௯@݃@௯@݃@௯@݃@ӫȪ“Ȧ“ÖæЖĭʠŪψVžH@Áµě¡õˈřҨ˭،͓ÔʻèYƊîŶ¬˂ĠȠDĦʶǂj™ŀԴľˮ^ˈƑĜʑɢõʆDžÂÍĤ÷֠̅ɬɽɰɱϜϗĜýŢŋÎÝ¡­·ÅƴŀkՓąȨÔǝ̒ƒۖʗƠƒÂĝˆ[ìƃǙޥ̣ɋɱŽǓ̌ʤƈ͇դĂņفDZǗ˻ơÄ©ż̨΀ʘ ˱ˆʙƮգՖաĮƵЂ҂ÛΙɢ˺œ̩ ƍãʷȒżϒ˧ʇӉȄӳߺśǻΌߧЙƔ˛WũΠǼÜDžqŏƦÛʃٙɨÏƉϐÃŊLJɒ_Ɛűҟǫ޽˴ࠃӬ੏̤ɔƞBɌȎ˽ÆǬȞ`ϋƪࠧʩࠩNJ@Ǹɗŭੳń৛åŔ׹ƺǮˬҵʏճĈȊƢݩàƮèȷðƀ˄ºങȇĩàɈɂӹƅCǥDZwʦŵ͑ƻѪîž÷ϻзۯTŅĜǟ˯ĭŲñƳǡ ljǽ΅G˝ˁȽ¨үģDZÜÆĸРŊ̔Ɍ͹Ĺ͹ŎϨв’ϖޒʨମŭࠓʜԶˢҗȃՕl࠙ˑߓ׷П~̬ʡҩŽIJŏҹ¿ѳЭٔǑgǣ܍ϙ–ŧٕť٩ϕփǩNj̋ງӗřĻɶįȓőñĺǕǓ؝ƩŗƹģǺؓʭݏƓ½ŢȰ~˅ÚҳЕʿñȳǎ™ȿDž•ɉĢWůǡÝ´ʂ̺Ø৬װМĪˈwęęǞŏĆĮΒÅȻǜȦʶ୒ӌȲó^ȶ˸ɒЌȖ͒kȟƢð̺ΖŤʛº‡ƘҤ˄ƔͰ˩ɍࢣɛʿȤàŲ̂m˻ĦɋƇŋœj҃Ƌ‰؁ьȿùωȚݑɃĩʼnڅsΞŴäˆ˱ŠŸϊӽאϬΌ؇ΩĪɻटǁϳĄݑԔ˝”Ҥ̎Фķ­ƭ̼ƤɨƧʸƖСĆː¤ƍÈȵĕवÌȸƮΉ¶LĘʕơʡȞfǜʵT_Ė̠œɧĜϺÈāȘњ̼ξpƚǴǟïMʜΒĦqƺϺ‚˜ĹķğȞøǼ¹֔Ȃ˶ɚʸÛܾĘ˒ɖǫζхƶҸŨÜƪɱƜՇğࢡχͫɸºȓӍƒ੟œএň˳ŪÆǖљȘ٬ňਹŘֹȢහФ٦Yũǀ૆ɨ۔[ɋBŝ̡˴ō๘“ДȪΞýïŪڝÞՃͦƴŤ٪ЧଠŇNJх¶҅ıϫŰŘːຽèӿшᖉن΀ÆƞϮঔEনżဤજljƛࣞŤ݊ʌɂʿ¨Ȁάx׍ĢʹŶ̮üÂʼnૼĤ௄Ң@ĭݠƝӉljƤïڴɎࠆʡ߲Ōذ§ɐÑƓǃՊ»Ƨĝᖨ¤ೂʃཐµՀŵဖĞіéદ͉;E@݃"]],"encodeOffsets":[[[-159315,19469]],[[-160613,21272]],[[-160242,21435]],[[-160986,21725]],[[-161586,21972]],[[-163197,22459]],[[-82989,25311]],[[-82311,25746]],[[-99502,26788]],[[-82111,27934]],[[-93996,30209]],[[-86945,30355]],[[-91365,30807]],[[-121188,34187]],[[-122924,34733]],[[-122759,34898]],[[-77357,36086]],[[-75912,40634]],[[-74250,41970]],[[-71657,42256]],[[-72202,42370]],[[-72951,42488]],[[-69823,45397]],[[-125331,48533]],[[-125514,49313]],[[-97078,50179]],[[-180517,53036]],[[-182148,52890]],[[-181399,52958]],[[-180831,53112]],[[184042,53152]],[[181674,53128]],[[-177718,53388]],[[-176603,53527]],[[-178869,53284]],[[177893,53617]],[[176960,54286]],[[-171995,54626]],[[-170614,55195]],[[-169821,55369]],[[-169534,55436]],[[-166193,56164]],[[-167399,56301]],[[-163343,56476]],[[-134491,56402]],[[-163709,56452]],[[-136050,56212]],[[-164177,56666]],[[-164541,56643]],[[-136504,56877]],[[-159299,57161]],[[-134122,56821]],[[-136771,57692]],[[-135966,57598]],[[-135283,57456]],[[-157909,57872]],[[-173829,57995]],[[-135932,57883]],[[-137205,58210]],[[-136567,58372]],[[-156679,58496]],[[-138209,58728]],[[-156567,59212]],[[-138987,59643]],[[-137912,59558]],[[-156074,59761]],[[-156145,59889]],[[-164781,59983]],[[-151574,61507]],[[-151281,61249]],[[-170122,61833]],[[-149907,61901]],[[-151202,61902]],[[-176888,61909]],[[-175578,65168]],[[-144386,70425]]]},"properties":{"name":"United States","childNum":76}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@§QûD«T‚æBb로ÂfE´ÍŰmſ"],["@@‚d´fÇè—hiGo࢟ӹҬƝńƧɀÓǂ@Ā{`ZZǦƺt¸ƤŠó´sˆ]ÆđjĭäOĀmÂn¤[b¯LývWŴ|ʜƣЊ“ѹʫǝªYųɏXρʋ͛Ŕˁ_ʱɿƸ͊˴̋ˀׁ̙ͅĢųǙÌ̳է}˼Ýƕ‘ÂţȕÍƧʩسîʗſËȽʒí ŗπɛϡɚɗ҉؋_ȯÓMx«xýI÷œÙQĹ£ĽtŃČȭŒʱoWĢBŠ^ƾäǜՓɐ̝KફبҝƸ੿ۆӣरͿƶɇñڍ‚̫Ʈ[̠ŀšɑƜ˜ȨՋĦٝϤĥĭ˙…˔ˡϏǂǷʡѯDzɡżэčñ࢓¸AᶢᓢҼᏠউࠜݷৼŘਢÝϴƎӺͻʴεʠĨùࠡЪUǰۅਐdƪƗÅȁȴŹʀƒXɈӎҤຘۖ"]],"encodeOffsets":[[[72916,40850]],[[72650,43263]]]},"properties":{"name":"Uzbekistan","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ÿŊň҇Ǜ"],"encodeOffsets":[[-62642,13474]]},"properties":{"name":"St. Vin. and Gren.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Ñäźļ®ķŕç"],["@@ķǦĈíÅ"],["@@ËȳСĂDŽĖƺíưŊ"],["@@|S’wÌǷͯΏɷeғˏ˧ĉɏ¸ʩśŧΥЙַ̎]Ɲǔ͑\\DZŖĴɛϖΥƦ࣭ւù—ɋӛȋǑ͵ݱΟ̳ΕéE„žƃŠ͇ǕʋeѻϦ˫খ΃ͺȫ@ҢԺ̍ϖNjզ~ٚ̎ֈOɀ̓ĠԧŏߣƒםۤԛŘ͡ē݅žǛ˴ɝźèٚɳ˺ŋКɗŴʵÅ̠ԄŘמừψ̤ʒЂ՜ǐ՗ʕĸ͉njƩõeŘ˱ѥۻв٣͆Ħƀǀ„̜ω۞tδਤ΄ŖŮʖWǖ́¡ÿɘìDzǖä̼וڮ¡ήɫĒЅƀǑཤŞͪ̿؈ƿɼz֌̠Ϧžџ§þ᎚ĘсǍ҃]Ȓȯ¯ȝdžŨȖΗČČÊ»CƂâG˺˿}ƶƬäڞ҃ȗǥȋү̷E˄ƽцƴՒrŴÉƼȱcµĭ³s}•ĝЗȫǣɷĤǷu𦱼W¶nÖC ]h_H•}÷—³˕ƫΫÕµęnÙ~ÇA½pƝ‘Å›ßãóġ^ǬțǶȥDzȡ"]],"encodeOffsets":[[[-62461,9081]],[[-62280,9358]],[[-65381,11399]],[[-62199,5327]]]},"properties":{"name":"Venezuela","childNum":4}},{"geometry":{"type":"Polygon","coordinates":["@@Ƽ™ʷ£ļþ"],"encodeOffsets":[[-66320,18222]]},"properties":{"name":"U.S. Virgin Is.","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@̥ƙ˼Ǹj"],["@@ĹmŸŊ}ě"],["@@ǗĽÔƨń©"],["@@ҿȉ±ȕǃęЙªÐɟǟǩnœӵϟ̥ࠇɢϵԢұgȑĝx௴ணǒRڔߟМ౫ӝŸ˗j̗ğŶĭėðɉĉrOׅƅŏ«ɋݡσÿƩث˓ɉɚ·ɕȃŖķÏŖi`űʗF˒ƳDžɍϫ̦άэãſչψˠͿTǓ֗ʭ͕ϵ́łŲݲvڮȪ͞ʁǨśȥȮΤļǒƖAǮɨÇúĚ̌ŽĈŁʼÍEȲʯɎI˺žļͤÑ^ɘʊ~њ˚Ʋ™ĨĖ֔Ŋ΂ɯׂǀӠIĨV®išqÄÚކ¾šÒhưµæĕØķĂ·¸ĩƸpŠƠê€~HüϹʺ‹š•IJeV“‡©é’ġƄYƜO²oÞțɜɛǖ˃˔ēȸϹÜ˿Ʉwú¶ĶD†੉ռHˆŠtĄ°ˆÀWæêfz€FǔNʊזPžŖ¶è\\ÊĨĪBđò“„űFkh_ÂI’žĹĕVqb’œÒš®t¨üȟƤŻþÿ‚ϹȽƟêɅ¼ęªȁʼƒÂĊΒĕ®{ÔcQwõÝCáȔϣЌ¤ˆ¼ªƜȮĘіʫ̂˔ƔƳņnj˒ȭǜɔȔąˆIJƬ˄ΊǬӊΡʰ¢Ōĥɚ¨ȨʼnȕɷĨѭʶ¯͊˅΄žǴū"]],"encodeOffsets":[[[106562,10641]],[[110102,21429]],[[110186,21727]],[[110564,22025]]]},"properties":{"name":"Vietnam","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ŧéʼnŮ~ŌȴǏ"],["@@̇Ì|ȒņZdžʷ"],["@@ŞŹ»đ̭ôĪƄƢT"],["@@ɟsƖʾš"],["@@̯ĜȠŮŐɉ"],["@@Τ̓͗ėčʹǓØ¢ǐŖÞƯ"],["@@ȥ_ˠƚùŹ"],["@@Ä˥ɠȆŀэęř˯§ŃȎÁٜƬƹ"],["@@Ż…gĈĄ²àij"],["@@ąIJöâPǓ"]],"encodeOffsets":[[[173560,-20009]],[[173399,-19394]],[[172489,-17963]],[[172490,-17181]],[[172336,-16728]],[[171431,-16482]],[[171942,-15806]],[[170748,-15182]],[[171607,-14603]],[[171509,-14240]]]},"properties":{"name":"Vanuatu","childNum":10}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ϧœœŨϊmŲƕ"],["@@ƀȁ¡ijʻZȱɲϐª"]],"encodeOffsets":[[[-175569,-14383]],[[-176469,-13788]]]},"properties":{"name":"Samoa","childNum":2}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@Τv˘ġ͍lj·•͹ǶȀƶȔß"],["@@ÇĖþ½"],["@@ÿŒÌºtą"],["@@ُ̕Ź˱˜ʧݧίဇӳֳӳ֭Cӧ͗ԳǑोŃԳѭΝBԥǫ̷Řūɋӌ¨ΨNjˌŹެãǎǕČŢĀçˠĺ̈́‘˸̬ˊv֜ȒƂмLJਚĒ͚Ŀ৊‹ȼʽƖMʤƒŚ˲ӾתܶΦូΒजጉ"]],"encodeOffsets":[[[55054,12941]],[[43783,14034]],[[43815,14307]],[[54360,17048]]]},"properties":{"name":"Yemen","childNum":4}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@ɡŠǘÐÊę"],["@@ƾӋÃ౑ӯǶŅóijřʇεH̹ÜM°ĻŀǓǰŁǐ³ɰ]ǺHYŐlǴxŤ~NôyòLźyΤVĠD̏଍ȽΟߙٍ଩࿋౫ફହݫկȧԻnșʣӑ¾ƩǏșIݭƴίõ׵Òʷ·ϧʭੑùё˓؇ƞ‚ĺțŤɡ[áʀɃuȧğƄæІӧݞĪĴƆ“ǜȴīٚܧઢͭ࢔ǭͨʕ͢ʶƒ‚¶nŌ€œ†ü¶¶ļŎďƞŗöέܨǁ܎«ìŒÊƚȐƄφļ@Ţ@ᲄϜ̵̦٥ŷ۝ĊęߤP˜†¨ĆȈØä²łLjɈƜޔ¦žɾ֦ɪƚȬEъʹÚsȊMŚğݐ[ʰĀͦޒĶœČ€ɠ¶°€͒˼ɀ֎ֶޜ”ͮΐՊǴĘðÊĮİÆȠhZBʈ Ȭʎěɨ‹ɂ€̦Uļ‹ú³ɐࣣɈ·","@@Ɯ˳͞ˑʮÒĚɜ̈́ɊlϜǨšȀŶŒ²ŀŒĺíȖ֧ђ•YģkȩïůßĿÿȉÇχӡȥęŘ˅"]],"encodeOffsets":[[[38766,-48070]],[[32563,-24465],[27847,-30659]]]},"properties":{"name":"South Africa","childNum":2}},{"geometry":{"type":"Polygon","coordinates":["@@ĐŽĐđ[ûuëǾǓRį`ĞƋ̳ʣòʱģȷ‡[Mįàſ©ΟôǏƠ‘ҋ̓Oѯʟ̫ńĉƸˏƖÌ®Ó᠁ࠑƐշޅ­ӗʓŷҙ̩۟މࢿȭéϑĦ˳“إƪɍȌɥ¨ϩŒݧƇঽ࡚ǵ֢A౞@˒@˒@ڠȘ@൒@ĶZåDŽH²pĜØފcܔͲɑXʋފǤ¼Ή֪ɡڢÙˮ͖Βխ۶ʓŜˋƮõʆϋǀ{̒ŲȄǃjંʋÓmDžΟÎӥҌċȶɘࡢ“ܸǟϢЀτzʦ༔ʖâLJ¾õÜÝĞ»ɰJĊŸð¹lûİēȶƒFÝl‡ۂɥƎíÜǷŸf"],"encodeOffsets":[[33944,-9834]]},"properties":{"name":"Zambia","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ǵḀ̄TɁ}ɩŒʍĜȩŽʇŸYA¥ŠßàǍ¾aȄࡗȲ́ЬTҼͯrđ͆ࡓӀȕԌבࠂ`ƨئƩ˴”ϒĥȮêފࣀ̪۠ŸҚӘʔކ®–̑ڢyעͽࡐʃÑƝĮఏʗӥŴƍÓʇǸԃп֥śЏÜƉࡁࡃšđ"],"encodeOffsets":[[32039,-22939]]},"properties":{"name":"Zimbabwe","childNum":1}},{"geometry":{"type":"Polygon","coordinates":["@@ڽը¿ުەߖ٬֖NΦxHޠ—цǒŴ\\ǔéº`Ęfú[ǜ¹~}¢ũŠYĨ†ĀcĖŸÌ›œ£¢áfÁnÛ½˩ƄÇÞŻ~eÖBŒvİ”¤RXĩ̙Ą§’až÷Îŕœ÷ĸȣ¡ıǽûsmQ}«»ď§řjʅõōDđ³Û«ŷ³அɘŅ™ĭ“āuƕɳ`«Ī¢§NÙéžõʠ{ɩɥƤǵšɇ"],"encodeOffsets":[[75785,34052]]},"properties":{"name":"?","childNum":1}},{"geometry":{"type":"MultiPolygon","coordinates":[["@@͙̄͟ƹիԠύfʛϋӻýģлʫ@˭ƪǕIđŠmɜ\\™cȝ`¥”CƴˁȖƈʊƣǶɪɦʟ|öÜêOž¡¨ĩŽ_¬ƖɴĂxĮ’ņšஆɗŸ´Ü¬Ĕ´ŌCʆöŚiШ®¼P~tnǾü~Ðd¢̀NJŰÜŀÄǬȲ_„́êǁƘ˹Ҏǹҍ†ĽȱǷ´ǡæͅìíƐĵn­ĵ˜§rчɃŝƑŢa¸ȵw"]],"encodeOffsets":[[[80376,33312]]]},"properties":{"name":"?","childNum":1}}],"UTF8Encoding":true}); \ No newline at end of file diff --git a/bmclapi_dashboard/static/js/ttb.min.js b/bmclapi_dashboard/static/js/ttb.min.js deleted file mode 100644 index 72520b4..0000000 --- a/bmclapi_dashboard/static/js/ttb.min.js +++ /dev/null @@ -1,1004 +0,0 @@ -class TTB { - constructor() { - this.VERSION = "0.0.1" - this.defaultStyles = { - ".ttb-flex": [ - "display: flex", - "flex-wrap: wrap" - ], - ".ttb-modal": [ - "position: fixed", - "display: flex", - "flex-wrap: nowrap", - "align-items: center", - "justify-content: center", - "background: rgba(0, 0, 0, 0.2)", - "top: 0", - "left: 0", - "width: 100vw", - "height: 100vh", - "z-index: 999999", - "opacity: 0", - "transition: opacity 200ms linear 0s", - ], - ".ttb-modal.show": [ - "opacity: 1" - ], - ".ttb-notification": [ - "display: flex", - "flex-wrap: nowrap", - "flex-direction: column;", - "justify-content: center;", - "align-items: flex-start;", - "transform: translate(100%, -100%)", - "height: 0", - "min-height: 0", - "padding: 0px", - "margin-bottom: 0px", - "min-width: 256px", - "min-height: 64px", - "box-sizing: border-sizing", - "border: 1px solid rgba(0, 0, 0, 0.1);", - "border-radius: 4px", - "transition: transform 200ms linear 0s, height 200ms linear 0s, min-height 200ms linear 0s, margin-bottom 200ms linear 0s, padding 200ms linear 0s", - ], - ".ttb-notification:hover": "cursor: pointer", - ".ttb-notification.show": [ - "transform: translate(0%, 0%)", - "min-height: 64px", - "height: 64px", - "padding: 16px", - "margin-bottom: 16px", - ], - ".ttb-notifications": [ - "position: fixed", - "top: 0", - "left: calc(100vw - 256px)", - "z-index: 10000000" - ], - ".ttb-table .ttb-table-header": [ - "background-color: rgb(247, 248, 250);", - "width: 100%", - "height: 24px" - ], - ".ttb-table th": [ - "font-family: inherit;", - "font-weight: 500;", - "display: table-cell;", - "vertical-align: inherit;", - "border-bottom: 1px solid rgb(243, 244, 245);", - "text-align: left;", - "padding: 0px 16px 0px 0px;", - "position: sticky;", - "top: 0px;", - "z-index: 2;", - "background: rgb(244, 246, 248);", - "line-height: 1.5;", - "border-top-color: rgb(243, 244, 245);", - "border-right-color: rgb(243, 244, 245);", - "border-left-color: rgb(243, 244, 245);", - "color: rgba(0, 0, 0, 0.7);", - "font-size: 12px;", - "height: 24px;", - ], - ".ttb-table td": [ - "font-family: inherit;", - "font-weight: 400;", - "display: table-cell;", - "vertical-align: inherit;", - "border-bottom: 1px solid rgb(243, 244, 245);", - "text-align: left;", - "padding: 24px 16px 24px 0px;", - "color: rgb(0, 0, 0);", - "background: rgb(255, 255, 255);", - "line-height: 1.5;", - "font-size: 14px;", - "border-top-color: rgb(243, 244, 245);", - "border-right-color: rgb(243, 244, 245);", - "border-left-color: rgb(243, 244, 245);", - ], - ".ttb-table th:first-child, .ttb-table td:first-child": [ - "padding: 0px 24px 0px 24px" - ], - ".ttb-table th, .ttb-table td": [ - "padding-right: 8px" - ], - ".ttb-table-title": [ - "border-top: 1px solid rgb(243, 244, 245);", - "background: rgb(255, 255, 255);", - "padding: 24px" - ], - ".ttb-table": [ - "width: 100%", - ] - } - this.websockets = [] - this.documentStyle = document.createElement("style"); - this.styles = [] - this.set_styles(this.defaultStyles) - document.head.append(this.documentStyle) - window.addEventListener('beforeunload', () => { - this.websockets.forEach(e => e.object.close()) - }); - this._flexes = [] - this._modal = new TTBModal() - this._notifications = new TTBNotificationManager() - this._response_handlers = {} - this._i18n_managers = {} - this._curLanaguage = "zh_cn" - g_TTB = this - } - addLangauge(lang) { - if (!(lang in this._i18n_managers)) this._i18n_managers[lang] = new TTBI18N() - return this._i18n_managers[lang] - } - getI18n(key, params) { - if (!(this._curLanaguage in this._i18n_managers)) return key - return this._i18n_managers[this._curLanaguage].getValue(key, params) - } - init() { - this._notifications.init() - } - getModal() { - return this._modal - } - addFlex(flex) { - this._flexes.push(flex) - } - resizeFlex(cur) { - for (const flex of this._flexes) { - if (cur.base == flex.base) continue - flex.update(false) - } - } - createFlex() { - return new TTBElementFlex() - } - createTable() { - return new TTBTable() - } - createElement(tag) { - return new TTBElement(tag) - } - _getResponseHandler(name, handlers) { - return name in handlers ? handlers[name] : this._response_handlers[name] - } - setResponseHandler(handlers) { - this._response_handlers = handlers - } - request(parametars = {}) { - const method = parametars.method || "GET"; - const url = parametars.path || "/"; - const headers = parametars.headers || {}; - const async = parametars.async !== false; - const username = parametars.username || null; - const password = parametars.password || null; - const responseType = parametars.responseType || "text"; - const responseHandler = (...args) => this._getResponseHandler(...args) - let xhr = new XMLHttpRequest(); - xhr.open(method, url, async, username, password); - for (const key in headers) xhr.setRequestHeader(key, headers[key]); - xhr.responseType = responseType; - xhr = (parametars.xhr && parametars.xhr(xhr)) || xhr - return new Promise((resolve, reject) => { - var func - xhr.onload = () => { - if (xhr.status >= 200 && xhr.status < 300) { - func = responseHandler("success", parametars) - func && func(xhr); - resolve(xhr.response); - } else { - func = responseHandler("error", parametars) - func && func(xhr); - reject(xhr); - } - }; - xhr.onerror = () => { - func = responseHandler("error", parametars) - func && func(xhr); - reject(new Error('Network Error')); - }; - xhr.send(parametars.data || null); - }); - } - websocket(url, parameters = {}) { - return new WebSocketClient(url, parameters) - } - set_styles = (table) => { - for (const key in table) this.set_style(key, table[key]) - } - set_style = (tag, code) => { - if (Array.isArray(code)) code = code.join(";") - const styleRule = `${tag} { ${code} }`; - if (this.styles.includes(styleRule)) return; - const textNode = document.createTextNode(styleRule); - const styleSheet = this.documentStyle.sheet; - if (styleSheet) { - try { - styleSheet.insertRule(styleRule, styleSheet.cssRules.length); - } catch (e) { - this.documentStyle.appendChild(textNode); - } - } else { - this.documentStyle.appendChild(textNode); - } - this.styles.push(styleRule); - } - calculateBytes(data) { - let bytes; - if (typeof data === "string") bytes = (new TextEncoder()).encode(data).byteLength - else if (data instanceof ArrayBuffer || data instanceof DataView || data instanceof Uint8Array) bytes = data.byteLength; - else if (data instanceof Blob) bytes = data.size - else if (data instanceof BytesBuffer) bytes = data.len() - else bytes = (new TextEncoder()).encode(String(data)).byteLength - return bytes; - } - sum(...arr) { - let total = 0; - for (const value of arr) { - total += value; - } - return total; - } - avg(...arr) { - return arr.length == 0 ? 0 : this.sum(...arr) / arr.length - } - isDOM(value) { return value instanceof HTMLElement || - Object.prototype.toString.call(value) === '[object HTMLUnknownElement]' || - (value && typeof value === 'object' && value.nodeType === 1 && typeof value.nodeName === 'string'); - } - collectionSingleList(...arr) { - var array = [] - for (const data of arr) { - if (Array.isArray(data)) array.push(...this.collectionSingleList(...data)) - else array.push(data) - } - return array - } - getURLParams() {return window.location.hash.indexOf("#") !== -1 ? window.location.hash.slice(1) : ""} - getURLKey() { - var key = this.getURLParams() - return (key.startsWith("/") ? key.slice(1) : key).slice(0, key.indexOf("?") !== -1 ? key.indexOf("?") : key.length) - } - getURLKeyParams() { - var key = this.getURLParams() - key = key.startsWith("/") ? key.slice(1) : key - if (key.indexOf("?") !== -1) { - var params = {}; - var queries = (key.slice(key.indexOf("?"))).substring(1).split("&"); - for (var i = 0; i < queries.length; i++) { - var pair = queries[i].split('='); - if (pair[0]) params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ''); - } - return params; - } - return {} - } - getURLSearch(search = null) { - var key = search != null ? search : window.location.search; - if (key.indexOf("?") !== -1) { - var params = {}; - var queries = (key.slice(key.indexOf("?"))).substring(1).split("&"); - - for (var i = 0; i < queries.length; i++) { - var pair = queries[i].split('='); - if (pair[0]) params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ''); - } - return params; - } - } - setURLSearch(params) { - var content = '?' - for (k in params) { - v = params[k] - if (!v) continue - content += encodeURIComponent(k) + "=" + encodeURIComponent(v) + "&" - } - return content.slice(0, content.length - 1) - } - getTimestamp(date) { - return (date || new Date()).valueOf() - } - getTime(date) { - return this.getTimestamp(date) / 1000.0 - } - clamp(min, cur, max) { - return Math.max(min, Math.min(cur, max)); - } - runTaskLater(handler, delay, ...args) { - return new Task(handler, delay, null, ...args) - } - runTaskRepeat(handler, delay, interval, ...args) { - return new Task(handler, delay, interval, ...args) - } - createNotication(type, background, title, content) { - return this._notifications.show(new TTBNotification(type, background, title, content)) - } - randomUUID() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - const r = Math.random() * 16 | 0 - const v = c === 'x' ? r : (r & 0x3 | 0x8) - return v.toString(16) - }) - } - random(a, b) { - let _ = Math.max(a, b) - let __ = Math.min(a, b) - return Math.random() * (_ + __ - 1) + __ - } - randint(a, b) { - return Math.floor(this.random(a, b)) - } -} -class TTBI18N { - constructor() { - this._tables = {} - } - add(key, value) { - this._tables[key] = value - return this - } - remove(key) { - delete this._tables[key] - return this - } - getValue(key, params) { - var value = this._tables[key] || key - for (const k in params) { - value = value.replaceAll(`%${k}%`, params[k]) - } - return value - } - addAll(values) { - for (const key in values) { - this.add(key, values[key]) - } - return this - } -} -class TTBElement { - constructor(tag, isElement = false) { - this.base = isElement ? tag : document.createElement(tag) - this._resize_handler = [] - this._i18n = null - this._childrens = [] - window.addEventListener("resize", (...event) => this._resize(...event)) - window.addEventListener("i18n", (...event) => this.refreshI18n()) - } - setHTML(content) { - this.base.innerHTML = content; - return this - } - setText(content) { - this.base.innerText = content; - return this - } - refreshI18n() { - if (!this._i18n) return this - this.setText(g_TTB.getI18n(this._i18n.key, this._i18n.params)) - return this - } - i18n(key, params) { - this._i18n = { key, params } - this.refreshI18n() - return this - } - i18nParams(params) { - if (!this._i18n) return - this._i18n = {key: this._i18n.key, params} - this.refreshI18n() - return this - } - setValue(content) { - this.base.value = content - return this - } - title(content) { - return this.setText(content) - } - html(content) { - return this.setHTML(content) - } - append(...elements) { - for (const element of elements) { - if (element instanceof TTBElement) { - this._childrens.push(element) - this.base.append(element.valueOf()) - } else { - this._childrens.push(new TTBElement(g_TTB.isDOM(element) ? element : (new DOMParser()).parseFromString(element, 'text/html'), true)) - } - } - return this - } - id(name) { - this.base.id = name - return this - } - class(...classes) { - for (const clazz of classes) { - for (const cls of clazz.split(" ")) this.base.classList.add(cls) - } - return this - } - toggle(clazz) { - this.base.classList.toggle(clazz) - return this; - } - style(style) { - this.base.style = style - return this; - } - _resize(...event) { - for (const func of this._resize_handler) { - try { - func(...event) - } catch (e) { - console.log(e, func) - } - } - } - setStyle(key, value) { - this.base.style[key] = value - return this; - } - valueOf() { - return this.base - } - containsClass(...classes) { - for (const clazz of classes) { - for (const cls of clazz.split(" ")) if (this.base.classList.contains(cls)) return true - } - return false - } - setAttribute(key, value) { - this.base.setAttribute(key, value) - return this - } - isDOM(value) { return value instanceof HTMLElement || - Object.prototype.toString.call(value) === '[object HTMLUnknownElement]' || - (value && typeof value === 'object' && value.nodeType === 1 && typeof value.nodeName === 'string'); - }; - clear() { - while (this.base.firstChild != null) this.base.removeChild(this.base.firstChild) - return this - } - event(name, func) { - if (name == "resize") { - this._resize_handler.push(func) - return this - } - this.base.addEventListener(name, func) - return this - } - getChildrens() { - return this._childrens - } -} -class TTBElementFlex extends TTBElement { - constructor(tag = "div", isElement = false) { - super(tag, isElement) - g_TTB.addFlex(this) - this.class("ttb-flex") - this._minwidth = null - this._minheight = null - this._maxwidth = null - this._maxheight = null - this._updateTimer = null - this._child = 1 - this._childStyle = '' - this._tag = null - this._resizes = [] - this._disable = false - this.update() - } - disable() { - this._disable = true - return this - } - addResize(func) { - this._resizes.push(func) - return this - } - append(...elements) { - super.append(...elements.map(e => this.isDOM(e) || e instanceof TTBElement ? e : (new TTBElement("div")).setHTML(e))) - return this - } - tag(tag) { - this._tag = tag - return this - } - min_width(width) { - this.minwidth = width - return this - } - max_width(width) { - this.maxwidth = width - return this - } - min_height(height) { - this.minheight = height - return this - } - max_height(height) { - this.maxheight = height - return this - } - height(height) { - this.setStyle("height", height) - return this - } - width(width) { - this.setStyle("width", width) - return this - } - style(key, value) { - g_TTB.set_style(".ttb-flex." + key + "_" + value, `${key}: ${value}`) - this.class(key + "_" + value) - return this - } - update(main = true) { - if (this._disable) return this - const width = (super.valueOf().offsetWidth - 1) - let minwidth = this._calcValueWithDisplay(this._minwidth || 0, width) - let maxwidth = this._calcValueWithDisplay(this._maxwidth, width) - let newwidth = Number.parseInt(g_TTB.clamp(minwidth, width, maxwidth) / 2) * 2 - const width_avg = Math.max(0, Math.floor((newwidth - 1) / this._child)) - for (const child of this.getChildrens()) { - const child_style = window.getComputedStyle(child.valueOf()) - const margin = (parseInt(child_style.marginRight, 10) + parseInt(child_style.marginLeft, 10)) - child.valueOf().style = this._childStyle - child.setStyle("boxSizing", "border-box") - child.setStyle("width", (newwidth <= minwidth ? width : (width_avg - (Number.isNaN(margin) ? 0 : margin))) + "px") - } - for (const func of this._resizes) { - func() - } - if (!main) return this - g_TTB.resizeFlex(main) - return this - } - _calcValueWithDisplay(value, display) { - if (value == -1 || value == null) return display - if (typeof value === 'string' && value.includes('%')) { - return Math.floor(display * (parseFloat(value.replace('%', '')) / 100)); - } else { - return value; - } - } - childStyle(value) { - this._childStyle = value - return this - } - minWidth(value) { - this._minwidth = value - return this - } - minHeight(value) { - this._minheight = value - return this - } - maxWidth(value) { - this._maxwidth = value - return this - } - maxHeight(value) { - this._maxheight = value - return this - } - child(value) { - this._child = Math.max(1, Number.parseInt(value.toString())) - return this - } -} -class TTBModal extends TTBElement { - constructor() { - super("div") - this._thenClose = () => {} - this.class("ttb-modal") - this.event("click", (event) => { - if (event.target == this.valueOf() && this._thenClose) { - this._thenClose(event) - } - }) - this._close = true - this._task = null - } - thenClose(handler) { - this._thenClose = handler - return this - } - open(...body) { - this._task?.block() - this.append(...body) - document.body.appendChild(this.valueOf()) - document.body.style.overflow = "hidden" - this._close = false - this._task = g_TTB.runTaskLater(() => this.class("show"), 50) - return this - } - close() { - if (this._close) return this - this.base.classList.remove("show") - this._task?.block() - this._task = g_TTB.runTaskLater(() => this._real_close(), 200) - return this; - } - _real_close() { - while (this.valueOf().firstChild != null) this.valueOf().removeChild(this.valueOf().firstChild) - document.body.style.overflow = "" - document.body.removeChild(this.valueOf()) - window.dispatchEvent(new Event("resize")) - } -} -class TTBTable extends TTBElement { - constructor(tag = "div", isElement = false) { - super(tag, isElement) - this._table = (new TTBElement("table")).class("ttb-table") - this._elementTitle = (new TTBElement("div")).class("ttb-table-title").style("display: none") - this._elementHeader = (new TTBElement("thead")).class("ttb-table-header").append( - new TTBElement("tr") - ) - this._elementBody = (new TTBElement("tbody")).class("ttb-table-body").append( - ) - this._headers = null - this._data = null - this._table.append(this._elementHeader, this._elementBody) - this.append(this._elementTitle, this._table) - } - header(header) { - this._headers = header - this._elementHeader.getChildrens()[0].clear() - if (Array.isArray(header)) { - for (let text of header) this._elementHeader.getChildrens()[0].append((new TTBElement("th")).setHTML(text)) - } else if (typeof header == "object") { - for (let text of Object.values(header)) this._elementHeader.getChildrens()[0].append((new TTBElement("th")).setHTML(text)) - } else { - this._elementHeader.getChildrens()[0].append((new TTBElement("th")).setHTML(header)) - } - return this - } - setData(...data) { - const length = this._elementHeader.getChildrens()[0].getChildrens().length - this._data = data - this._elementBody.clear() - for (const val of data) { - let element = (new TTBElement("tr")) - for (let i = 0; i < length; i++) element.append(new TTBElement("td")) - if (Array.isArray(val)) { - for (let i = 0; i < length; i++) element.getChildrens()[i].setHTML(val[i]) - } else if (typeof val == "object") { - const keys = Object.keys(this._headers) - for (const key in keys) if (keys[key] in val) element.getChildrens()[key].setHTML(val[keys[key]]) - } else { - element.append((new TTBElement("td")).setHTML(val)) - } - this._elementBody.append(element) - } - return this - } - clearTitle() { - this._elementTitle.clear() - return this - } - appendTitle(...element) { - this._elementTitle.append(...element) - this._elementTitle.style("display: block;") - return this - } -} -class TTBNotification extends TTBElement { - constructor(type, background, title, content) { - super("div") - this._type = type - this._title = title - this._content = content - this.class("ttb-notification") - this.setStyle("background-color", background || (type == "warn" ? (type == "error" ? "#FF3D71" : "#FFAA00") : "#FFFFFF")) - this.append(title || '', content || '') - this.id(g_TTB.randomUUID()) - } -} -class TTBNotificationManager extends TTBElement { - constructor() { - super("div") - this.class("ttb-notifications") - this._tasks = {} - } - init() { - document.body.appendChild(this.valueOf()) - } - show(element) { - if (element.valueOf().id in this._tasks) clearTimeout(this._tasks[element.valueOf().id]) - this.valueOf().prepend(element.valueOf()) - this._tasks[element.valueOf().id] = setTimeout(() => { - element.class("show") - this._tasks[element.valueOf().id] = setTimeout(() => { - element.base.classList.remove("show") - this._tasks[element.valueOf().id] = setTimeout(() => - this.remove(element) - , 200) - }, 5000) - }, 50) - element.event("click", () => { - clearTimeout(this._tasks[element.valueOf().id]) - element.base.classList.remove("show") - this._tasks[element.valueOf().id] = setTimeout(() => - this.remove(element) - , 200) - }) - return element - } - remove(element) { - clearTimeout(this._tasks[element.valueOf().id]) - this.base.removeChild(element.valueOf()) - delete this._tasks[element.valueOf().id] - } -} -class Task { - constructor(func, delay, interval = null, ...args) { - this.func = func - this.args = args - this.delay = delay - this.interval = interval - this._task = setTimeout(() => this._run(), delay) - } - _run() { - try { - this.func(...this.args) - } catch (error) { - console.error(...error) - } - if (this.interval != null) { - this._task = setTimeout(() => this._run(), this.interval) - } - } - block() { - if (this._task != null) clearTimeout(this._task) - this._task = null - } -} -class WebSocketClient { - constructor(url, handlers = {}) { - this.url = url; - this.ws = null; - this.reconnectInterval = 1000; // 重连间隔为1秒 - this.retryMessage = !(handlers.retryMessage || true) - this.messageQueue = []; // 用于缓存消息的队列 - this.handlers = handlers; // 处理函数的对象 - this.stats = { - sent: { count: 0, length: 0 }, - received: { count: 0, length: 0 } - }; - this.connect() - this.reconnectTask = null; - } - - close() { - this.ws.close(); - } - - connect() { - this.ws = new WebSocket(this.url); - - // 当连接打开时,发送所有缓存的消息,并调用处理函数 - this.ws.onopen = () => { - if (this.reconnectTask !== null) { - clearInterval(this.reconnectTask) - this.reconnectTask = null - } - while (this.messageQueue.length > 0) { - let message = this.messageQueue.shift(); - this.send(message) - } - if (this.handlers.onopen) { - this.handlers.onopen(); - } - }; - - // 当接收到消息时,调用处理函数 - this.ws.onmessage = (event) => { - this.stats.received.count++; - this.stats.received.length += event.data.length; - if (this.handlers.onmessage) { - this.handlers.onmessage(event); - } - }; - - // 当连接关闭时,尝试重新连接,并调用处理函数 - this.ws.onclose = () => { - this.ws = null - if (this.handlers.onclose) { - this.handlers.onclose(); - } - this.reconnectTask = setTimeout(() => this.connect(), this.reconnectInterval) - }; - } - - send(data) { - if (this.ws && this.ws.readyState === WebSocket.OPEN) { - this.stats.sent.count++; - this.stats.sent.length += g_TTB.calculateBytes(data); - this.ws.send(data instanceof BytesBuffer ? data.toBytes() : data); - } else { - if (!this.ws || this.ws.readyState === WebSocket.CLOSED) { - this.connect(); - } - if (this.retryMessage) - this.messageQueue.push(data); - } - } - - getStats() { - return this.stats; - } -} -class MinecraftUtils { - static getVarInt(data) { - let r = []; - while (true) { - if ((data & 0xFFFFFF80) === 0) { - r.push(data); - break; - } - r.push(data & 0x7F | 0x80); - data >>= 7; - } - return r; - } - static getVarIntLength(data) { - return this.getVarInt(data).length; - } -} -class BytesBuffer { - constructor(...data) { - this.buffer = [] - this.cur = 0 - this.write(...data) - } - write(...values) { - for (const value of values) { - if (value instanceof BytesBuffer) { - this.buffer.push(...value.buffer) - } else if (Number.isInteger(value)) { - this.buffer.push(value < 0 ? value + 256 : value) - } else if (Array.isArray(value) && value.filter(v => Number.isInteger(v)).length == value.length) { - value.forEach(v => this.write(v)) - } else if (value instanceof Uint8Array) { - for (let i = 0; i < value.byteLength; i++) { - this.write(value[i]) - } - } else if (value instanceof ArrayBuffer) { - this.write(new Uint8Array(value)) - } else if (!value === undefined) { - console.log(typeof value, "buf", value) - } - } - } - read(length = 1) { - let data = [] - for (let i = 0; i < length; i++) data.push(...this.buffer.slice(this.cur + i, this.cur + i + 1)) - this.cur += length - return data; - } - tell() { - return this.cur - } - readBytes(length) { - return this.read(length); - } - sizeof() { - return this.buffer.length; - } - len() { - return this.buffer.length; - } - toBytes() { - return new Uint8Array(this.buffer) - } - copy() { - let buf = [] - this.buffer.forEach(v => buf.push(v)) - return buf - } -} -class DataOutputStream extends BytesBuffer { - constructor(data) { - super() - this.write(data) - } - writeInteger(value) { - this.write((value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, (value >> 0) & 0xFF); - } - writeBoolean(value) { - this.write(value ? 1 : 0) - } - writeFloat(value) { - const bytes = new Uint8Array((new Float32Array([value])).buffer); - for (let i = 0; i < 4; i++) { - this.write(bytes[i]); - } - } - writeDouble(value) { - const bytes = new Uint8Array((new Float64Array([value])).buffer); - for (let i = 0; i < 8; i++) { - this.write(bytes[i]); - } - } - writeVarInt(value) { - this.write(MinecraftUtils.getVarInt(value)); - return this; - } - writeString(data, encoding = 'utf-8') { - this.writeVarInt(data.length); - this.write(new TextEncoder(encoding).encode(data)); - return this; - } - writeLong(data) { - data = data - (data > Math.pow(2, 63) - 1 ? Math.pow(2, 64) : data); - this.write((data >> 56) & 0xFF, (data >> 48) & 0xFF, (data >> 40) & 0xFF, (data >> 32) & 0xFF, (data >> 24) & 0xFF, (data >> 16) & 0xFF, (data >> 8) & 0xFF, (data >> 0) & 0xFF); - return this; - } - writeUUID(uuid) { - this.writeLong(uuid.int >> 64); - this.writeLong(uuid.int & ((1 << 64) - 1)); - return this; - } -} -class DataInputStream extends BytesBuffer { - readInteger() { - let value = this.read(4) - return ((value[0] << 24) + (value[1] << 16) + (value[2] << 8) + (value[3] << 0)) - } - readBoolean() { - return Boolean(this.read(1)[0]); - } - readShort() { - value = this.read(2); - if (value[0] | value[1] < 0) - throw EOFError() - return ((value[0] << 8) + (value[1] << 0)) - } - readLong() { - let value = this.read(8) - value = ( - (value[0] << 56) + - ((value[1] & 255) << 48) + - ((value[2] & 255) << 40) + - ((value[3] & 255) << 32) + - ((value[4] & 255) << 24) + - ((value[5] & 255) << 16) + - ((value[6] & 255) << 8) + - ((value[7] & 255) << 0)) - return value < BigInt(Math.pow(2, 63) - 1) ? value : value - BigInt(Math.pow(2, 64)); - } - readDouble() { - return (new DataView(new Uint8Array(this.readBytes(4)))).getFloat64() - } - readFloat() { - return (new DataView(new Uint8Array(this.readBytes(4)))).getFloat32() - } - readVarInt() { - let i = 0; - let j = 0; - let k; - while (true) { - k = this.read(1)[0]; - i |= (k & 0x7F) << j * 7; - j += 1; - if ((k & 0x80) !== 128) break; - } - return i >= 2 ** 31 - 1 ? i - 2 ** 31 * 2 : i; - } - readString(maximum = null, encoding = 'utf-8') { - return new TextDecoder(encoding).decode(new Uint8Array(this.read(maximum == null ? this.readVarInt() : maximum))); - } - readBytes(length) { - return this.read(length); - } - readUUID() { - let m = this.readLong(); - let l = this.readLong(); - return new UUID(m.toBytes().concat(l.toBytes())); - } -} -g_TTB = null; \ No newline at end of file diff --git a/core/api.py b/core/api.py index 382291b..7b44dc7 100644 --- a/core/api.py +++ b/core/api.py @@ -11,6 +11,7 @@ from core import web from core.config import Config +from core.const import CACHE_BUFFER_COMPRESSION_MIN_LENGTH class FileCheckType(Enum): @@ -50,6 +51,7 @@ class File: data: Optional[io.BytesIO] = None cache: bool = False headers: Optional["web.Header"] = None + compressed: bool = False def is_url(self): if not isinstance(self.path, str): @@ -62,12 +64,22 @@ def get_path(self) -> str | Path: def get_data(self): if not self.data: return io.BytesIO() + if not self.compressed: + return self.data return io.BytesIO(zstd.decompress(self.data.getbuffer())) def set_data(self, data: io.BytesIO | memoryview | bytes): if not isinstance(data, io.BytesIO): data = io.BytesIO(data) - self.data = io.BytesIO(zstd.compress(data.getbuffer())) + data_length = len(data.getbuffer()) + if data_length >= CACHE_BUFFER_COMPRESSION_MIN_LENGTH: + compressed_data = zstd.compress(data.getbuffer()) + if data_length > len(compressed_data): + self.compressed = True + self.data = io.BytesIO(compressed_data) + return + self.compressed = False + self.data = data @dataclass diff --git a/core/cluster.py b/core/cluster.py index 17bf708..2e12b3e 100644 --- a/core/cluster.py +++ b/core/cluster.py @@ -80,7 +80,7 @@ async def fetchToken(self): self.fetchToken, delay=float(content["ttl"]) / 1000.0 - 600 ) self.token_expires = content["ttl"] / 1000.0 - 600 + time.time() - tll = utils.format_time(content["ttl"] / 1000.0) + tll = utils.format_stime(content["ttl"] / 1000.0) logger.tsuccess("cluster.success.token.fetched", tll=tll) except aiohttp.ClientError as e: @@ -183,14 +183,14 @@ async def _download_temporarily_file(self, hash: str): "User-Agent": USER_AGENT } ) as session: - logger.debug(f"正在下载 {hash}") + logger.tdebug("cluster.debug.download_temp.downloading", hash=hash) content: io.BytesIO = io.BytesIO() async with session.get(f"/openbmclapi/download/{hash}") as resp: while data := await resp.content.read(IO_BUFFER): if not data: break content.write(data) - logger.debug(f"下载完成 {hash}") + logger.tdebug("cluster.debug.download_temp.downloaded", hash=hash) await self._mount_file(BMCLAPIFile( path = f"/download/{hash}", hash = hash, @@ -217,13 +217,15 @@ async def _download(self, pbar: tqdm, session: aiohttp.ClientSession): hash.update(data) if file.hash != hash.hexdigest(): raise EOFError - await self._mount_file(file, content) + r = await self._mount_file(file, content) + if r[0] == -1: + raise EOFError except: pbar.update(-size) await self.queues.put(file) await session.close() - async def _mount_file(self, file: BMCLAPIFile, buf: io.BytesIO): + async def _mount_file(self, file: BMCLAPIFile, buf: io.BytesIO) -> tuple[int, io.BytesIO]: for storage in storages.get_storages(): result = -1 try: @@ -240,7 +242,7 @@ async def _mount_file(self, file: BMCLAPIFile, buf: io.BytesIO): file=file_size, target=target_size, ) - return buf + return buf, result async def download(self, miss: list[BMCLAPIFile]): if not storages.available: @@ -1009,6 +1011,8 @@ async def _(err, ack): await self.emit("request-cert", callback=_) await dashboard.set_status("cluster.get.cert") async def enable(self): + if not ENABLE or self._retry >= RECONNECT_RETRY or not storages.available_width: + logger.twarn("cluster.warn.cluster.disabled") if self.want_enable or self.enabled: logger.tdebug("cluster.debug.cluster.enable_again") return @@ -1070,7 +1074,7 @@ async def _timeout(): }, callback=_ ) - timeoutTimer = Timer.delay(_timeout, delay=120) + timeoutTimer = Timer.delay(_timeout, delay=ENABLE_TIMEOUT) async def keepalive(self): def _clear(): if self.keepalive_timer is not None: diff --git a/core/config.py b/core/config.py index d1fb623..c5dfea9 100644 --- a/core/config.py +++ b/core/config.py @@ -10,9 +10,10 @@ "cluster.public_port": 8800, "cluster.public_host": "", "cluster.byoc": False, - "cluster.timeout.enable": 60, + "cluster.enable": True, + "cluster.timeout.enable": 120, "cluster.timeout.keepalive": 300, - "cluster.reconnect.delay": 5, + "cluster.reconnect.delay": 60, "cluster.reconnect.retry": -1, "cache.buffer": 536870912, "cache.time": 1800, @@ -55,11 +56,12 @@ def load(self): def get(self, key: str, def_: Any = None) -> Any: value = os.environ.get(key, None) or self._get_value(self.cfg, key.split(".")) - if (value == None or value == "") and def_ is None: + if (value is None or value == "") and def_ is None: print(f"[Config] {key} is not set, does it exist?") - value = defaults[key] if key in defaults else def_ if def_ else False - if value != False: - self.set(key, value) + if key in defaults: + value = defaults.get(key, None) + if value is not None: + self.set(key, value) return value if value else defaults.get(key, def_) def set(self, key: str, value: Any): diff --git a/core/const.py b/core/const.py index 9ee49c7..ae75c3f 100644 --- a/core/const.py +++ b/core/const.py @@ -16,6 +16,7 @@ f.close() else: VERSION = "Unknown" +CACHE_BUFFER_COMPRESSION_MIN_LENGTH: int = 64 DEBUG: bool = Config.get("advanced.debug") ROOT = os.getcwd() API_VERSION = "1.10.3" @@ -29,14 +30,15 @@ PUBLIC_HOST: str = Config.get("cluster.public_host") PUBLIC_PORT: int = Config.get("cluster.public_port") PORT: int = Config.get("web.port") -RECONNECT_DELAY: bool = Config.get("cluster.reconnect.delay") +RECONNECT_DELAY: bool = max(60, Config.get("cluster.reconnect.delay")) RECONNECT_RETRY: bool = Config.get("cluster.reconnect.retry") +ENABLE: bool = Config.get("cluster.enable") ENABLE_TIMEOUT: bool = Config.get("cluster.timeout.enable") KEEPALIVE_TIMEOUT: bool = Config.get("cluster.timeout.keepalive") CACHE_BUFFER: int = Config.get("cache.buffer") # bytes CACHE_TIME: int = Config.get("cache.time") CHECK_CACHE: int = Config.get("cache.check") -SIGN_SKIP: bool = Config.get("cluster.skip_sign") +SIGN_SKIP: bool = Config.get("advanced.skip_sign") DASHBOARD_USERNAME: str = Config.get("dashboard.username") DASHBOARD_PASSWORD: str = Config.get("dashboard.password") TIMEOUT: int = Config.get("advanced.timeout") @@ -127,3 +129,11 @@ class StorageParse: name, storage["type"], storage["path"], storage.get("width", 0), storage ) ) + + +# xdb 默认参数 +XDB_HeaderInfoLength = 256 +XDB_VectorIndexRows = 256 +XDB_VectorIndexCols = 256 +XDB_VectorIndexSize = 8 +XDB_SegmentIndexSize = 14 diff --git a/core/dashboard.py b/core/dashboard.py index d20a24b..c99a14e 100644 --- a/core/dashboard.py +++ b/core/dashboard.py @@ -105,11 +105,6 @@ def serialize(data: Any): return buf -def _format_time(k: float): - local = time.localtime(k) - return f"{local.tm_hour:02d}:{local.tm_min:02d}:{local.tm_sec:02d}" - - async def process(type: str, data: Any): if type == "uptime": return float(os.getenv("STARTUP") or 0) @@ -126,7 +121,7 @@ async def process(type: str, data: Any): resp_data[_] = 0 for __ in range(5): resp_data[_] += raw_data.get(__ + _, 0) - return {_format_time(k): v for k, v in resp_data.items()} + return {utils.format_time(k): v for k, v in resp_data.items()} if type == "status": resp: dict = { "key": last_status, @@ -178,14 +173,9 @@ async def process(type: str, data: Any): ) return data if type == "global_stats": - return { - "ip": { - - }, - "ua": { - - } - } + return stats.daily_global() + if type == "system_details": + return system.get_loads_detail() async def get_cache_stats() -> StatsCache: stat = StatsCache() @@ -204,6 +194,8 @@ async def set_status_by_tqdm(text: str, pbar: tqdm): if task_tqdm: task_tqdm.block() cur_tqdm.show.block() + cur_tqdm.speed = 0 + cur_tqdm.last_value = 0 task_tqdm = Timer.repeat(_calc_tqdm_speed, delay=0, interval=0.5) cur_tqdm.show = Timer.repeat(_set_status, kwargs={ "blocked": True @@ -217,6 +209,7 @@ async def _calc_tqdm_speed(): task_tqdm.block() cur_tqdm.show.block() cur_tqdm.object = None + await _set_status(blocked=True) return cur_tqdm.speed = (cur_tqdm.object.n - cur_tqdm.last_value) / 0.5 cur_tqdm.last_value = cur_tqdm.object.n diff --git a/core/exceptions.py b/core/exceptions.py index b2e9962..9b50e6e 100644 --- a/core/exceptions.py +++ b/core/exceptions.py @@ -1,18 +1,18 @@ class ClusterIdNotSet(Exception): - pass + ... class ClusterSecretNotSet(Exception): - pass + ... class WebSocketError(Exception): - pass + ... class ServerWebSocketError(WebSocketError): - pass + ... class ServerWebSocketUnknownDataError(ServerWebSocketError): - pass \ No newline at end of file + ... \ No newline at end of file diff --git a/core/location.py b/core/location.py index df6079c..f0162de 100644 --- a/core/location.py +++ b/core/location.py @@ -4,6 +4,7 @@ import socket import struct +from core import logger from core.const import ( XDB_HeaderInfoLength as HeaderInfoLength, XDB_VectorIndexRows as VectorIndexRows, diff --git a/core/stats.py b/core/stats.py index eb42451..eb72763 100644 --- a/core/stats.py +++ b/core/stats.py @@ -5,47 +5,51 @@ from pathlib import Path import sqlite3 import time -from typing import Any +import traceback +from typing import Any, Optional import pyzstd as zstd +from tqdm import tqdm from core.utils import ( DataInputStream, DataOutputStream, FileDataInputStream, + format_date, + get_timestamp_from_day_today, get_timestamp_from_day_tohour, get_timestamp_from_hour_tohour, ) from core.api import File -from core import timer as Timer - +from core import logger, timer as Timer, unit +import core.location as location class UserAgent(Enum): - PCL2 = "PCL2" - PCL = "PCL" - HMCL = "HMCL" - POJAV = "PojavLauncher" - FCL = "FCL" - BAKAXL = "BakaXL" - GOT = "got" - BADLION = "Badlion Client" - TECHNIC = "TechnicLauncher" - TLAUNCHER = "TLauncher" - MULTIMC = "MultiMC" - LUNAR = "Lunar Client" - MAGNET = "Magnet" - ATLAUNCHER = "ATLauncher" - CURSEFORGE = "CurseForge" - DALVIK = "Dalvik" - WARDEN = "bmclapi-warden" OPENBMCLAPI_CLUSTER = "openbmclapi-cluster" - PYTHON = "python-openbmclapi" - OTHER = "Other" + PYTHON = "python-openbmclapi" + TECHNIC = "TechnicLauncher" + WARDEN = "bmclapi-warden" + BADLION = "Badlion Client" + POJAV = "PojavLauncher" + LUNAR = "Lunar Client" + ATLAUNCHER = "ATLauncher" + CURSEFORGE = "CurseForge" + TLAUNCHER = "TLauncher" + MULTIMC = "MultiMC" + MAGNET = "Magnet" + DALVIK = "Dalvik" + BAKAXL = "BakaXL" + OTHER = "Other" + HMCL = "HMCL" + PCL2 = "PCL2" + PCL = "PCL" + FCL = "FCL" + GOT = "got" @staticmethod def parse_ua(user_gent: str) -> list['UserAgent']: data = [] - for ua in user_gent.split(" "): - ua = ua.split("/")[0] + for ua in user_gent.split(" ") or (user_gent,): + ua = (ua.split("/") or (ua, ))[0].strip().lower() for UA in UserAgent: - if UA.value == ua.lower(): + if UA.value.lower() == ua: data.append(UA) return data or [UserAgent.OTHER] @staticmethod @@ -77,19 +81,21 @@ def get_binary(self): for ua, c in cache_ua.items(): buf.writeString(ua.value) buf.writeVarInt(c) - return zstd.compress(buf.io.getbuffer()) + return zstd.compress(buf.io.getvalue()) @staticmethod def from_binary(data: bytes): input = DataInputStream(zstd.decompress(data)) - cache_ip: defaultdict['UserAgent', int] = defaultdict(int) - cache_ua: defaultdict[str, int] = defaultdict(int) ip_length = input.readVarInt() ua_length = input.readVarInt() - for _ in range(ip_length): - cache_ip[input.readString()] = input.readVarInt() - for _ in range(ua_length): - cache_ua[UserAgent.get_ua(input.readString())] = input.readVarInt() - return GlobalStats(cache_ip, cache_ua) + cache_ip = {input.readString(): input.readVarInt() for _ in range(ip_length)} + cache_ua = {UserAgent.get_ua(input.readString()): input.readVarInt() for _ in range(ua_length)} + return GlobalStats(GlobalStats.convert_dict_to_defaultdict(cache_ua, int), GlobalStats.convert_dict_to_defaultdict(cache_ip, int)) + @staticmethod + def convert_dict_to_defaultdict(origin: dict, type: type): + data = defaultdict(type) + for k, v in origin.items(): + data[k] = v + return data def reset(self): self.useragent.clear() self.ip.clear() @@ -171,6 +177,12 @@ class SyncStorage: sync_bytes: int object: StorageStats +@dataclass +class GEOInfo: + country: str = "" + province: str = "" + value: int = 0 + storages: dict[str, StorageStats] = {} cache: Path = Path("./cache") @@ -178,42 +190,13 @@ class SyncStorage: last_storages: dict[str, int] = {} last_ip: dict[str, int] = {} last_ua: int = 0 -last_hour: int = 0 +last_hour: Optional[int] = None +last_day: Optional[int] = None db: sqlite3.Connection = sqlite3.Connection("./cache/stats.db", check_same_thread=False) -db.execute( - """ -CREATE TABLE IF NOT EXISTS access ( - hour unsigned bigint NOT NULL, - storage TEXT NOT NULL, - hit unsigned bigint NOT NULL DEFAULT 0, - bytes unsigned bigint NOT NULL DEFAULT 0, - cache_hit unsigned bigint NOT NULL DEFAULT 0, - cache_bytes unsigned bigint NOT NULL DEFAULT 0, - last_hit unsigned bigint NOT NULL DEFAULT 0, - last_bytes unsigned bigint NOT NULL DEFAULT 0, - failed unsigned bigint NOT NULL DEFAULT 0 -);""" -) -db.execute( - """ -CREATE TABLE IF NOT EXISTS g_access_ip ( - hour unsigned bigint NOT NULL, - ip TEXT NOT NULL, - hit unsigned bigint not null default 0 -);""" -) -db.execute( - """ -CREATE TABLE IF NOT EXISTS g_access_ua ( - hour unsigned bigint NOT NULL -);""" -) - -db.commit() def read_storage(): - global storages, last_hour + global storages, last_hour, globalStats, last_day if ( not Path("./cache/storage.bin").exists() or Path("./cache/storage.bin").stat().st_size == 0 @@ -222,6 +205,7 @@ def read_storage(): with open("./cache/storage.bin", "rb") as r: f = FileDataInputStream(r) last_hour = f.readVarInt() + last_day = (last_hour - last_hour % 24) // 24 - 1 for _ in range(f.readVarInt()): storage = StorageStats(f.readString()) ( @@ -245,14 +229,15 @@ def read_storage(): storages[storage.get_name()] = storage try: blength = f.readVarInt() - bdata = f.read(bdata) + bdata = f.read(blength) except: + logger.error(traceback.format_exc()) return - GlobalStats.from_binary(bdata) + globalStats = GlobalStats.from_binary(bdata) def write_storage(): - global storages, globalStats + global storages, globalStats, last_hour f = DataOutputStream() f.writeVarInt(last_hour) f.writeVarInt(len(storages)) @@ -296,10 +281,11 @@ def get_storage(name): return storages[name] -def _write_database(): - global last_storages, last_hour, globalStats, last_ip, last_ua +def _write_database(first: bool = False): + global last_storages, last_hour, globalStats, last_ip, last_ua, last_day cmds: list[tuple[str, tuple[Any, ...]]] = [] - hour = get_hour(0) + hour = last_hour or get_hour(0) + day = last_day or get_day(0) for storage in storages.values(): if (hour not in last_storages or hour != last_storages[storage.get_name()]) and not exists( "select storage from access where storage = ? and hour = ?", @@ -329,68 +315,75 @@ def _write_database(): ), ) ) - for ip, c in globalStats.ip.items(): - if (ip not in last_ip or hour != last_ip[ip]) and not exists( - "select ip from g_access_ip where ip = ? and hour = ?", - ip, - hour, - ): + ips = globalStats.ip.copy() + cache_sql_ip = {} + for cip in queryAllData("select ip, hit from g_access_ip where day = ?", day): + cache_sql_ip[cip[0]] = cip[1] + for ip, c in ips.items(): + if (ip not in last_ip or day != last_ip[ip]) and ip not in cache_sql_ip: cmds.append( ( - "insert into g_access_ip(ip, hour) values (?, ?)", - (ip, hour), + "insert into g_access_ip(ip, day) values (?, ?)", + (ip, day), ) ) - last_ip[ip] = hour + last_ip[ip] = day + if ip in cache_sql_ip and cache_sql_ip[ip] == c: + continue cmds.append( ( - "update g_access_ip set hit = ? where ip = ? and hour = ?", + "update g_access_ip set hit = ? where ip = ? and day = ?", ( c, ip, - hour + day ) ) ) - if last_ua != hour and not exists( - "select hour from g_access_ua where hour = ?", - hour, - ): - cmds.append( - ( - "insert into g_access_ua(hour) values (?)", - (hour,), - ) - ) - last_ua = hour - for ua, c in globalStats.useragent.items(): + if last_ua != day and not exists( + "select day from g_access_ua where day = ?", + day, + ): cmds.append( ( - f"update g_access_ua set `{ua.value}` = ? where hour = ?", - ( - c, - hour - ) + "insert into g_access_ua(day) values (?)", + (day,), ) ) - + last_ua = day + g_ua = ','.join((f"`{ua.value}` = ?" for ua in UserAgent)) + cmds.append( + ( + f"update g_access_ua set {g_ua} where day = ?", + ( + *( + globalStats.useragent.get(ua, 0) for ua in UserAgent + ), + day + ) + ) + ) executemany(*cmds) - if last_hour and last_hour != hour: + cur_day = get_day(0) + cur_hour = get_hour(0) + if cur_hour != hour: for storage in storages.values(): storage.reset() + if cur_day != day: globalStats.reset() -<<<<<<< HEAD - last_hour = hour -======= - last_day = get_day(0) - last_hour = get_hour(0) ->>>>>>> dev/dashboard + last_day = cur_day + last_hour = cur_hour + def get_hour(hour: int) -> int: return int(get_timestamp_from_hour_tohour(hour)) +def get_day(day: int) -> int: + return int(get_timestamp_from_day_today(day)) + + def execute(cmd: str, *params) -> None: global db db.execute(cmd, params) @@ -508,7 +501,7 @@ def daily(): "select storage, hour, hit, bytes, cache_hit, cache_bytes, last_hit, last_bytes, failed from access where hour >= ?", t, ): - hour = (r[1] - t) // 24 + hour = r[1] // 24 if hour not in days: days[hour] = StorageStats("Total") days[hour]._hits += r[2] @@ -521,7 +514,7 @@ def daily(): for day in sorted(days.keys()): data.append( { - "_day": int(day), + "_day": format_date(day * 86400), "hits": days[day]._hits, "bytes": days[day]._bytes, "cache_hits": days[day]._cache_hits, @@ -534,13 +527,6 @@ def daily(): return data -<<<<<<< HEAD -for ua in UserAgent: - addColumns("g_access_ua", f"`{ua.value}`", " unsigned bigint NOT NULL DEFAULT 0") - -read_storage() -_write_database() -======= def daily_global(): t = get_timestamp_from_day_today(30) g_ua = ','.join((f"`{ua.value}`" for ua in UserAgent)) @@ -576,10 +562,21 @@ def daily_global(): day: len(ip) for day, ip in ip.items() } } ->>>>>>> dev/dashboard def init(): + start = time.monotonic() + logger.tinfo("stats.info.initializing") + db.execute("CREATE TABLE IF NOT EXISTS access (hour unsigned bigint NOT NULL, storage TEXT NOT NULL, hit unsigned bigint NOT NULL DEFAULT 0, bytes unsigned bigint NOT NULL DEFAULT 0, cache_hit unsigned bigint NOT NULL DEFAULT 0, cache_bytes unsigned bigint NOT NULL DEFAULT 0, last_hit unsigned bigint NOT NULL DEFAULT 0, last_bytes unsigned bigint NOT NULL DEFAULT 0, failed unsigned bigint NOT NULL DEFAULT 0);") + db.execute("CREATE TABLE IF NOT EXISTS g_access_ip (day unsigned bigint NOT NULL, ip TEXT NOT NULL, hit unsigned bigint not null default 0);") + db.execute("CREATE TABLE IF NOT EXISTS g_access_ua (day unsigned bigint NOT NULL);") + + db.commit() + for ua in UserAgent: + addColumns("g_access_ua", f"`{ua.value}`", " unsigned bigint NOT NULL DEFAULT 0") + read_storage() + _write_database(True) + logger.tsuccess("stats.info.initialization", time = f"{(time.monotonic() - start):.2f}") Timer.delay(write_database, delay=time.time() % 1) diff --git a/core/system.py b/core/system.py index 16e5512..fb06f18 100644 --- a/core/system.py +++ b/core/system.py @@ -1,27 +1,52 @@ import os +import time import psutil from core import timer as Timer +from core.utils import get_uptime process: psutil.Process = psutil.Process(os.getpid()) -cpus: list[float] = [] +cpus: dict[float, float] = {} +memories: dict[float, int] = {} +connections: dict[float, list['psutil.pconn']] = {} +length: int = 0 +last_curs: list[float] = [] -def _cpu(): - global cpus +def _run(): + global cpus, memories, connections, length, last_curs while int(os.environ["ASYNCIO_STARTUP"]): - for _ in range(max(len(cpus) - 600, 0)): - cpus.pop(0) - cpus.append(process.cpu_percent(1)) + for _ in range(max(length - 5, 0)): + cur = last_curs.pop(0) + cpus.pop(cur) + memories.pop(cur) + connections.pop(cur) + length -= 1 + cur = get_uptime() + cpus[cur] = process.cpu_percent(1) + memories[cur] = process.memory_full_info().uss + connections[cur] = process.connections() + length += 1 + last_curs.append(cur) def get_cpus(): global cpus if not cpus: return 0 - return sum(cpus) / len(cpus) + arr = cpus.copy().values() + return sum(arr) / len(arr) + +def get_loads_detail(): + global cpus, memories, connections + offset: float = float(os.getenv("STARTUP") or 0) + return { + "cpu": {t + offset: v for t, v in cpus.items()}, + "memory": {t + offset: v for t, v in memories.items()}, + "connections": {t + offset: len(v) for t, v in connections.items()} + } def get_used_memory() -> int: info = process.memory_full_info() @@ -33,4 +58,4 @@ def get_connections() -> int: def init(): - Timer.delay(_cpu) + Timer.delay(_run) diff --git a/core/utils.py b/core/utils.py index d3aebf5..55824aa 100644 --- a/core/utils.py +++ b/core/utils.py @@ -5,6 +5,7 @@ import hashlib import inspect import io +import os import re import time from typing import ( @@ -363,6 +364,10 @@ def get_timestamp_from_hour_tohour(hour: int): t = int(time.time()) return (t - (t - time.timezone) % 3600 - 3600 * hour) / 3600 +def get_timestamp_from_day_today(day: int): + t = int(time.time()) + return (t - (t - time.timezone) % 86400 - 86400 * day) / 86400 + def calc_bytes(v): unit = bytes_unit[0] @@ -413,7 +418,7 @@ def updateDict(dict: dict, new: dict): return org -def format_time(n): +def format_stime(n): if not n: return "--:--:--" n = int(n) @@ -423,6 +428,23 @@ def format_time(n): return f"{hour:02d}:{minutes:02d}:{second:02d}" +def format_time(k: float): + local = time.localtime(k) + return f"{local.tm_hour:02d}:{local.tm_min:02d}:{local.tm_sec:02d}" + + +def format_date(k: float): + local = time.localtime(k) + return f"{local.tm_year:04d}-{local.tm_mon:02d}-{local.tm_mday:02d}" + + +def get_env_monotonic(): + return float(os.environ.get("MONOTONIC")) + +def get_uptime(): + return time.monotonic() - get_env_monotonic() + + def base36_encode(number): num_str = "0123456789abcdefghijklmnopqrstuvwxyz" if number == 0: diff --git a/i18n/zh_cn.json b/i18n/zh_cn.json index e3f0ca6..0590049 100644 --- a/i18n/zh_cn.json +++ b/i18n/zh_cn.json @@ -1,4 +1,6 @@ { + "stats.info.initializing": "正在初始化 [统计] 模块中...", + "stats.info.initialization": "初始化 [统计] 模块成功,耗时:$time 秒。", "cert.error.failed": "无法加载证书:$failure。", "cert.success.loaded_cert": "成功从本地文件中加载证书!", "web.info.serving_router": "正在 $router 上服务路由。", @@ -15,6 +17,8 @@ "cluster.info.get_files.modified_time": "文件最后修改时间:$time。", "cluster.error.mount_files.failed_to_copy": "在尝试下载文件时出错:无法复制文件:$hash ($file) => $hash ($target)。", "cluster.tqdm.desc.download": "下载文件中", + "cluster.debug.download_temp.downloading": "正在下载文件:$hash。", + "cluster.debug.download_temp.downloaded": "成功下载文件:$hash。", "cluster.info.download.finished": "成功下载所有文件。", "cluster.info.check_files.check_type": "当前文件检查模式:$type。", "cluster.warn.check_files.skipped": "当前并无可用文件,已跳过文件检查。", diff --git a/main.py b/main.py index d3ce7d0..e4db4c5 100644 --- a/main.py +++ b/main.py @@ -16,6 +16,9 @@ os.environ["ASYNCIO_STARTUP"] = str( 0 ) +os.environ["MONOTONIC"] = str( + time.monotonic() +) if __name__ == "__main__": if sys.version_info <= (3, 9):