aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Galenson <jgalenson@google.com>2021-04-12 23:44:34 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-04-12 23:44:34 +0000
commit2472ddd0b3eb8228bb9c58bb3d896175386f3b6a (patch)
treef5309a0441cebfeb180fa9e396526b41dc0ed911
parent2d70d85570558950619b5c50d1fed0c84e1dd1dc (diff)
parenteecbedf4bd5479cfae7af7e1038ce8c8580c5840 (diff)
downloadplotters-2472ddd0b3eb8228bb9c58bb3d896175386f3b6a.tar.gz
Upgrade rust/crates/plotters to 0.3.0 am: e2d8e8d5a5 am: 844ca977cb am: 69d7d070b7 am: eecbedf4bdandroid-mainline-12.0.0_r99android-mainline-12.0.0_r98android-mainline-12.0.0_r97android-mainline-12.0.0_r96android-mainline-12.0.0_r95android-mainline-12.0.0_r94android-mainline-12.0.0_r93android-mainline-12.0.0_r92android-mainline-12.0.0_r91android-mainline-12.0.0_r90android-mainline-12.0.0_r9android-mainline-12.0.0_r89android-mainline-12.0.0_r88android-mainline-12.0.0_r87android-mainline-12.0.0_r86android-mainline-12.0.0_r85android-mainline-12.0.0_r84android-mainline-12.0.0_r83android-mainline-12.0.0_r82android-mainline-12.0.0_r81android-mainline-12.0.0_r80android-mainline-12.0.0_r8android-mainline-12.0.0_r79android-mainline-12.0.0_r78android-mainline-12.0.0_r77android-mainline-12.0.0_r76android-mainline-12.0.0_r75android-mainline-12.0.0_r74android-mainline-12.0.0_r73android-mainline-12.0.0_r72android-mainline-12.0.0_r71android-mainline-12.0.0_r70android-mainline-12.0.0_r7android-mainline-12.0.0_r69android-mainline-12.0.0_r68android-mainline-12.0.0_r67android-mainline-12.0.0_r66android-mainline-12.0.0_r65android-mainline-12.0.0_r64android-mainline-12.0.0_r63android-mainline-12.0.0_r62android-mainline-12.0.0_r61android-mainline-12.0.0_r60android-mainline-12.0.0_r6android-mainline-12.0.0_r59android-mainline-12.0.0_r58android-mainline-12.0.0_r57android-mainline-12.0.0_r56android-mainline-12.0.0_r53android-mainline-12.0.0_r52android-mainline-12.0.0_r51android-mainline-12.0.0_r50android-mainline-12.0.0_r5android-mainline-12.0.0_r49android-mainline-12.0.0_r48android-mainline-12.0.0_r47android-mainline-12.0.0_r46android-mainline-12.0.0_r45android-mainline-12.0.0_r44android-mainline-12.0.0_r43android-mainline-12.0.0_r42android-mainline-12.0.0_r41android-mainline-12.0.0_r40android-mainline-12.0.0_r39android-mainline-12.0.0_r38android-mainline-12.0.0_r37android-mainline-12.0.0_r35android-mainline-12.0.0_r34android-mainline-12.0.0_r33android-mainline-12.0.0_r32android-mainline-12.0.0_r31android-mainline-12.0.0_r30android-mainline-12.0.0_r3android-mainline-12.0.0_r29android-mainline-12.0.0_r28android-mainline-12.0.0_r27android-mainline-12.0.0_r26android-mainline-12.0.0_r25android-mainline-12.0.0_r24android-mainline-12.0.0_r23android-mainline-12.0.0_r22android-mainline-12.0.0_r21android-mainline-12.0.0_r20android-mainline-12.0.0_r2android-mainline-12.0.0_r19android-mainline-12.0.0_r18android-mainline-12.0.0_r17android-mainline-12.0.0_r16android-mainline-12.0.0_r15android-mainline-12.0.0_r14android-mainline-12.0.0_r13android-mainline-12.0.0_r126android-mainline-12.0.0_r125android-mainline-12.0.0_r124android-mainline-12.0.0_r123android-mainline-12.0.0_r122android-mainline-12.0.0_r121android-mainline-12.0.0_r120android-mainline-12.0.0_r12android-mainline-12.0.0_r119android-mainline-12.0.0_r118android-mainline-12.0.0_r117android-mainline-12.0.0_r116android-mainline-12.0.0_r115android-mainline-12.0.0_r114android-mainline-12.0.0_r113android-mainline-12.0.0_r110android-mainline-12.0.0_r11android-mainline-12.0.0_r109android-mainline-12.0.0_r108android-mainline-12.0.0_r107android-mainline-12.0.0_r106android-mainline-12.0.0_r105android-mainline-12.0.0_r104android-mainline-12.0.0_r103android-mainline-12.0.0_r102android-mainline-12.0.0_r101android-mainline-12.0.0_r100android-mainline-12.0.0_r10android-mainline-12.0.0_r1aml_wif_311811030aml_tz3_311312010aml_tet_311811050aml_sdk_311710000aml_pco_311011000aml_mpr_311911090aml_doc_310851020android12-mainline-wifi-releaseandroid12-mainline-tethering-releaseandroid12-mainline-statsd-releaseandroid12-mainline-sdkext-releaseandroid12-mainline-resolv-releaseandroid12-mainline-permission-releaseandroid12-mainline-neuralnetworks-releaseandroid12-mainline-networkstack-releaseandroid12-mainline-mediaprovider-releaseandroid12-mainline-media-swcodec-releaseandroid12-mainline-media-releaseandroid12-mainline-ipsec-releaseandroid12-mainline-extservices-releaseandroid12-mainline-documentsui-releaseandroid12-mainline-conscrypt-releaseandroid12-mainline-cellbroadcast-releaseandroid12-mainline-captiveportallogin-releaseandroid12-mainline-art-releaseandroid12-mainline-adbd-release
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/plotters/+/1662803 Change-Id: Iae39c1755554d0aa827550a1ad73b8bda03ca855
-rw-r--r--.cargo_vcs_info.json2
-rw-r--r--Android.bp9
-rw-r--r--CHANGELOG.md32
-rw-r--r--Cargo.toml57
-rw-r--r--Cargo.toml.orig82
-rw-r--r--METADATA10
-rw-r--r--README.md21
-rw-r--r--RELEASE-NOTES.md82
-rw-r--r--benches/benches/parallel.rs2
-rw-r--r--benches/benches/rasterizer.rs7
-rw-r--r--examples/3d-plot.rs47
-rw-r--r--examples/animation.rs7
-rw-r--r--examples/area-chart.rs6
-rw-r--r--examples/blit-bitmap.rs6
-rw-r--r--examples/boxplot.rs49
-rw-r--r--examples/chart.rs40
-rw-r--r--examples/console.rs34
-rw-r--r--examples/errorbar.rs6
-rw-r--r--examples/histogram.rs9
-rw-r--r--examples/mandelbrot.rs6
-rw-r--r--examples/matshow.rs6
-rw-r--r--examples/nested_coord.rs43
-rw-r--r--examples/normal-dist.rs22
-rw-r--r--examples/normal-dist2.rs17
-rw-r--r--examples/relative_size.rs6
-rw-r--r--examples/sierpinski.rs4
-rw-r--r--examples/slc-temp.rs10
-rw-r--r--examples/snowflake.rs6
-rw-r--r--examples/stock.rs8
-rw-r--r--examples/two-scales.rs6
-rw-r--r--plotters-doc-data/.gitignore1
-rw-r--r--plotters-doc-data/3d-plot.svg3614
-rw-r--r--plotters-doc-data/README.md6
-rw-r--r--plotters-doc-data/blit-bitmap.pngbin16368 -> 423066 bytes
-rw-r--r--plotters-doc-data/boxplot.svg120
-rw-r--r--plotters-doc-data/cat.pngbin0 -> 880641 bytes
-rw-r--r--plotters-doc-data/console-2.pngbin0 -> 44014 bytes
-rw-r--r--plotters-doc-data/console.pngbin0 -> 41389 bytes
-rw-r--r--plotters-doc-data/evcxr-jupyter-integration.html22132
-rw-r--r--plotters-doc-data/evcxr-jupyter-integration.ipynb9354
-rw-r--r--plotters-doc-data/evcxr_animation.gifbin0 -> 537744 bytes
-rw-r--r--plotters-doc-data/histogram.pngbin16391 -> 17172 bytes
-rw-r--r--plotters-doc-data/nested_coord.pngbin0 -> 20360 bytes
-rw-r--r--plotters-doc-data/normal-dist.pngbin76806 -> 76901 bytes
-rw-r--r--plotters-doc-data/normal-dist2.pngbin41320 -> 37187 bytes
-rw-r--r--plotters-doc-data/plotters-piston.gifbin0 -> 125421 bytes
-rw-r--r--plotters-doc-data/sample.pngbin68038 -> 67663 bytes
-rw-r--r--plotters-doc-data/style.css0
-rw-r--r--src/chart/axes3d.rs191
-rw-r--r--src/chart/builder.rs106
-rw-r--r--src/chart/context.rs696
-rw-r--r--src/chart/dual_coord.rs94
-rw-r--r--src/chart/mesh.rs115
-rw-r--r--src/chart/mod.rs11
-rw-r--r--src/chart/series.rs65
-rw-r--r--src/chart/state.rs112
-rw-r--r--src/coord/category.rs209
-rw-r--r--src/coord/mod.rs129
-rw-r--r--src/coord/ranged.rs397
-rw-r--r--src/coord/ranged1d/combinators/ckps.rs266
-rw-r--r--src/coord/ranged1d/combinators/group_by.rs120
-rw-r--r--src/coord/ranged1d/combinators/linspace.rs432
-rw-r--r--src/coord/ranged1d/combinators/logarithmic.rs (renamed from src/coord/logarithmic.rs)28
-rw-r--r--src/coord/ranged1d/combinators/mod.rs17
-rw-r--r--src/coord/ranged1d/combinators/nested.rs204
-rw-r--r--src/coord/ranged1d/combinators/partial_axis.rs113
-rw-r--r--src/coord/ranged1d/discrete.rs270
-rw-r--r--src/coord/ranged1d/mod.rs234
-rw-r--r--src/coord/ranged1d/types/datetime.rs (renamed from src/coord/datetime.rs)445
-rw-r--r--src/coord/ranged1d/types/mod.rs15
-rw-r--r--src/coord/ranged1d/types/numeric.rs (renamed from src/coord/numeric.rs)220
-rw-r--r--src/coord/ranged1d/types/slice.rs100
-rw-r--r--src/coord/ranged2d/cartesian.rs152
-rw-r--r--src/coord/ranged2d/mod.rs1
-rw-r--r--src/coord/ranged3d/cartesian3d.rs105
-rw-r--r--src/coord/ranged3d/mod.rs5
-rw-r--r--src/coord/ranged3d/projection.rs198
-rw-r--r--src/coord/translate.rs32
-rw-r--r--src/data/float.rs131
-rw-r--r--src/drawing/area.rs82
-rw-r--r--src/drawing/backend.rs284
-rw-r--r--src/drawing/backend_impl/bitmap.rs1607
-rw-r--r--src/drawing/backend_impl/cairo.rs567
-rw-r--r--src/drawing/backend_impl/canvas.rs530
-rw-r--r--src/drawing/backend_impl/mocked.rs43
-rw-r--r--src/drawing/backend_impl/mod.rs32
-rw-r--r--src/drawing/backend_impl/piston.rs206
-rw-r--r--src/drawing/backend_impl/svg.rs832
-rw-r--r--src/drawing/mod.rs29
-rw-r--r--src/drawing/rasterizer/circle.rs67
-rw-r--r--src/drawing/rasterizer/line.rs126
-rw-r--r--src/drawing/rasterizer/mod.rs24
-rw-r--r--src/drawing/rasterizer/path.rs115
-rw-r--r--src/drawing/rasterizer/polygon.rs245
-rw-r--r--src/drawing/rasterizer/rect.rs60
-rw-r--r--src/element/basic_shapes.rs16
-rw-r--r--src/element/boxplot.rs12
-rw-r--r--src/element/candlestick.rs4
-rw-r--r--src/element/composable.rs8
-rw-r--r--src/element/dynelem.rs4
-rw-r--r--src/element/errorbar.rs10
-rw-r--r--src/element/image.rs17
-rw-r--r--src/element/mod.rs51
-rw-r--r--src/element/points.rs6
-rw-r--r--src/element/text.rs6
-rw-r--r--src/evcxr.rs3
-rw-r--r--src/lib.rs59
-rw-r--r--src/series/area_series.rs2
-rw-r--r--src/series/histogram.rs129
-rw-r--r--src/series/line_series.rs4
-rw-r--r--src/series/mod.rs4
-rw-r--r--src/series/surface.rs82
-rw-r--r--src/style/color.rs91
-rw-r--r--src/style/colors.rs33
-rw-r--r--src/style/font/font_desc.rs113
-rw-r--r--src/style/mod.rs5
-rw-r--r--src/style/palette_ext.rs136
-rw-r--r--src/style/shape.rs10
-rw-r--r--src/style/size.rs8
-rw-r--r--src/style/text.rs145
120 files changed, 39948 insertions, 6941 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 116e0de..e06c665 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
{
"git": {
- "sha1": "42dc17dea6d73974b906a8523658db5d6ef11761"
+ "sha1": "757bbc8771714fe34d99ae21f92a1c3525bf21d3"
}
}
diff --git a/Android.bp b/Android.bp
index beb8cf0..f887a19 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,4 @@
-// This file is generated by cargo2android.py --run --device --dependencies --features=svg,area_series,line_series.
+// This file is generated by cargo2android.py --run --device --dependencies --features=svg_backend,area_series,line_series.
// Do not modify this file as changes will be overridden on upgrade.
package {
@@ -27,13 +27,18 @@ rust_library {
features: [
"area_series",
"line_series",
- "svg",
+ "plotters-svg",
+ "svg_backend",
],
rustlibs: [
"libnum_traits",
+ "libplotters_backend",
+ "libplotters_svg",
],
}
// dependent_library ["feature_list"]
// autocfg-1.0.1
// num-traits-0.2.14 "default,std"
+// plotters-backend-0.3.0
+// plotters-svg-0.3.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fc77c2..8a31650 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,37 @@
# Changelog
+## Plotters 0.3.0 (2020-09-03)
+This is the next major release of Plotters, see [release notes](./RELEASE-NOTES.md) for more detials.
+
+### Added
+
+- The plotters backend API crate is introduced which allows third-party backend.
+- Allow slice used as a coordinate if the item type implements `PartialOrd`.
+- Linspace coordinate type, which allows define a discrete coordinate on continous value types (such as f32, DateTime, etc) with a step specification
+- Nested coordinate type, now we support define pair of category and nested values as nested coordinate.
+- Introduce backend crates: plotters-bitmap, plotters-svg, plotters-cairo, plotters-canvas, plotters-console
+- 3D Plotting features
+
+### Fixed
+
+- Adjust Canvas backend size with DPR (Thanks to Marius-Mueller)
+
+### Improvement
+
+- Enhanced key point algorithms: New key point hint trait are used for key point algorithms && many improvment on key point algorithms for different types
+- Renamed `MeshStyle::line\_style\_1\ and `MeshStyle::line\_style\_2` to `bold\_line\_style` and `light\_line\_style`
+- Reorganize the "plotters::coord" namespace
+- Improved discrete coordinate trait
+- Split backend code into isolated crates and can be maintained indepdendenly
+- Category coordinate is now replaced by slice coordinate
+- Removing the requirement for `Debug` trait for chart coordinate, allows ranged coordinate define its own formatting function.
+
+### Removed
+
+- The `Path` name alias for `PathElement`
+- Most code `plotters::drawing::backend\_impl::\* ` (expect `MockedBackend` for testing purpose) is removed due to crate split.
+- Piston backend due to the Piston project seems not actively developing
+
## Plotters 0.2.15 (2020-05-26)
### Fixed
diff --git a/Cargo.toml b/Cargo.toml
index 68fedf5..dca2f3a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,17 +13,16 @@
[package]
edition = "2018"
name = "plotters"
-version = "0.2.15"
+version = "0.3.0"
authors = ["Hao Hou <haohou302@gmail.com>"]
exclude = ["doc-template/*"]
description = "A Rust drawing library focus on data plotting for both WASM and native applications"
+homepage = "https://plotters-rs.github.io/"
readme = "README.md"
keywords = ["WebAssembly", "Visualization", "Plotting", "Drawing"]
categories = ["visualization", "wasm"]
license = "MIT"
repository = "https://github.com/38/plotters"
-[profile.bench]
-debug = true
[[bench]]
name = "benchmark"
@@ -33,24 +32,29 @@ harness = false
version = "0.4.11"
optional = true
-[dependencies.gif]
-version = "0.10.3"
-optional = true
-
[dependencies.num-traits]
version = "0.2.11"
-[dependencies.palette]
-version = "0.5.0"
-features = ["std"]
+[dependencies.plotters-backend]
+version = "^0.3.*"
+
+[dependencies.plotters-bitmap]
+version = "^0.3.*"
+optional = true
+default_features = false
+
+[dependencies.plotters-svg]
+version = "^0.3.*"
optional = true
-default-features = false
[dev-dependencies.criterion]
version = "0.3.2"
[dev-dependencies.itertools]
version = "0.9.0"
+[dev-dependencies.plotters-bitmap]
+version = "^0.3.*"
+
[dev-dependencies.rand]
version = "0.7.3"
@@ -64,31 +68,25 @@ version = "0.2.0"
version = "1.3.0"
[features]
+all_elements = ["errorbar", "candlestick", "boxplot", "histogram"]
+all_series = ["area_series", "line_series", "point_series", "surface_series"]
area_series = []
-bitmap = ["ttf"]
+bitmap_backend = ["plotters-bitmap", "ttf"]
+bitmap_encoder = ["plotters-bitmap/image_encoder"]
+bitmap_gif = ["plotters-bitmap/gif_backend"]
boxplot = []
-cairo = ["cairo-rs", "ttf"]
candlestick = []
datetime = ["chrono"]
-debug = []
-default = ["image_encoder", "svg", "chrono", "palette_ext", "gif_backend", "deprecated_items", "bitmap", "ttf", "errorbar", "candlestick", "boxplot", "histogram", "area_series", "line_series", "point_series"]
+default = ["bitmap_backend", "bitmap_encoder", "bitmap_gif", "svg_backend", "chrono", "ttf", "image", "deprecated_items", "all_series", "all_elements"]
deprecated_items = []
errorbar = []
-evcxr = ["svg"]
-gif_backend = ["gif", "bitmap"]
+evcxr = ["svg_backend"]
histogram = []
-image_encoder = ["image", "bitmap"]
line_series = []
-palette_ext = ["palette"]
-piston = ["piston_window", "ttf"]
point_series = []
-svg = []
+surface_series = []
+svg_backend = ["plotters-svg"]
ttf = ["font-kit", "rusttype", "lazy_static"]
-[target."cfg(not(target_arch = \"wasm32\"))".dependencies.cairo-rs]
-version = "0.8.1"
-features = ["ps"]
-optional = true
-
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.font-kit]
version = "0.7.0"
optional = true
@@ -103,16 +101,9 @@ default-features = false
version = "1.4.0"
optional = true
-[target."cfg(not(target_arch = \"wasm32\"))".dependencies.piston_window]
-version = "0.108.0"
-optional = true
-
[target."cfg(not(target_arch = \"wasm32\"))".dependencies.rusttype]
version = "0.8.2"
optional = true
-[target."cfg(target_arch = \"wasm32\")".dependencies.js-sys]
-version = "0.3.39"
-
[target."cfg(target_arch = \"wasm32\")".dependencies.wasm-bindgen]
version = "0.2.62"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 395c8f9..6d2ebd3 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,11 +1,12 @@
[package]
name = "plotters"
-version = "0.2.15"
+version = "0.3.0"
authors = ["Hao Hou <haohou302@gmail.com>"]
edition = "2018"
license = "MIT"
description = "A Rust drawing library focus on data plotting for both WASM and native applications"
repository = "https://github.com/38/plotters"
+homepage = "https://plotters-rs.github.io/"
keywords = ["WebAssembly", "Visualization", "Plotting", "Drawing"]
categories = ["visualization", "wasm"]
readme = "README.md"
@@ -14,19 +15,18 @@ exclude = ["doc-template/*"]
[dependencies]
num-traits = "0.2.11"
chrono = { version = "0.4.11", optional = true }
-gif = { version = "0.10.3", optional = true }
+plotters-backend = "^0.3.*"
+plotters-svg = {version = "^0.3.*", optional = true}
-[dependencies.palette]
-version = "0.5.0"
-default-features = false
+[dependencies.plotters-bitmap]
+version = "^0.3.*"
optional = true
-features = ["std"]
+default_features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rusttype = { version = "0.8.2", optional = true }
lazy_static = { version = "1.4.0", optional = true }
font-kit = { version = "0.7.0", optional = true }
-piston_window = { version = "0.108.0", optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.image]
version = "0.23.4"
@@ -34,43 +34,59 @@ optional = true
default-features = false
features = ["jpeg", "png", "bmp"]
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cairo-rs]
-version = "0.8.1"
-optional = true
-features = ["ps"]
-
-[target.'cfg(target_arch = "wasm32")'.dependencies]
-js-sys= "0.3.39"
-wasm-bindgen = "0.2.62"
+[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
+version = "0.2.62"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.39"
-features = ['Document', 'DomRect', 'Element', 'HtmlElement', 'Node', 'Window', 'HtmlCanvasElement', 'CanvasRenderingContext2d']
+features = [
+ "Document",
+ "DomRect",
+ "Element",
+ "HtmlElement",
+ "Node",
+ "Window",
+ "HtmlCanvasElement",
+ "CanvasRenderingContext2d",
+]
[features]
-default = ["image_encoder", "svg", "chrono", "palette_ext", "gif_backend",
- "deprecated_items", "bitmap", "ttf", "errorbar", "candlestick",
- "boxplot", "histogram", "area_series", "line_series", "point_series"]
-ttf = ["font-kit", "rusttype", "lazy_static"]
-image_encoder = ["image", "bitmap"]
-palette_ext = ["palette"]
-gif_backend = ["gif", "bitmap"]
-datetime = ["chrono"]
-svg = []
-evcxr = ["svg"]
-piston = ["piston_window", "ttf"]
-cairo = ["cairo-rs", "ttf"]
-bitmap = ["ttf"]
-deprecated_items = [] # Keep some of the deprecated items for backward compatibility
-debug = [] # Enable debugging code
+default = [
+ "bitmap_backend", "bitmap_encoder", "bitmap_gif",
+ "svg_backend",
+ "chrono",
+ "ttf",
+ "image",
+ "deprecated_items", "all_series", "all_elements"
+]
+all_series = ["area_series", "line_series", "point_series", "surface_series"]
+all_elements = ["errorbar", "candlestick", "boxplot", "histogram"]
+
+# Tier 1 Backends
+bitmap_backend = ["plotters-bitmap", "ttf"]
+bitmap_encoder = ["plotters-bitmap/image_encoder"]
+bitmap_gif = ["plotters-bitmap/gif_backend"]
+svg_backend = ["plotters-svg"]
+
+# Elements
errorbar = []
candlestick = []
boxplot = []
+
+# Series
histogram = []
area_series = []
line_series = []
point_series = []
+surface_series = []
+# Font implemnetation
+ttf = ["font-kit", "rusttype", "lazy_static"]
+
+# Misc
+datetime = ["chrono"]
+evcxr = ["svg_backend"]
+deprecated_items = [] # Keep some of the deprecated items for backward compatibility
[dev-dependencies]
rand = "0.7.3"
@@ -79,6 +95,7 @@ rand_distr = "0.2.2"
criterion = "0.3.2"
rayon = "1.3.0"
rand_xorshift = "0.2.0"
+plotters-bitmap = "^0.3.*"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3.12"
@@ -87,6 +104,3 @@ wasm-bindgen-test = "0.3.12"
name = "benchmark"
harness = false
path = "benches/main.rs"
-
-[profile.bench]
-debug = true
diff --git a/METADATA b/METADATA
index 878b4df..6c17b7f 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/plotters/plotters-0.2.15.crate"
+ value: "https://static.crates.io/crates/plotters/plotters-0.3.0.crate"
}
- version: "0.2.15"
+ version: "0.3.0"
license_type: NOTICE
last_upgrade_date {
- year: 2020
- month: 12
- day: 21
+ year: 2021
+ month: 4
+ day: 5
}
}
diff --git a/README.md b/README.md
index 3836960..cc04880 100644
--- a/README.md
+++ b/README.md
@@ -117,6 +117,10 @@ To view the source code for each example, please click on the example image.
<img src="https://plotters-rs.github.io/plotters-doc-data/boxplot.svg" class="galleryItem" width=200px></img>
</a>
+<a href="https://github.com/38/plotters/blob/master/examples/3d-plot.rs">
+ <img src="https://plotters-rs.github.io/plotters-doc-data/3d-plot.svg" class="galleryItem" width=200px></img>
+</a>
+
## Table of Contents
* [Gallery](#gallery)
@@ -143,7 +147,7 @@ To view the source code for each example, please click on the example image.
To use Plotters, you can simply add Plotters into your `Cargo.toml`
```toml
[dependencies]
-plotters = "^0.2.15"
+plotters = "^0.3.0"
```
And the following code draws a quadratic function. `src/main.rs`,
@@ -363,13 +367,14 @@ For example, we can have an element which includes a dot and its coordinate.
```rust
use plotters::prelude::*;
+use plotters::coord::types::RangedCoordf32;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let root = BitMapBackend::new("plotters-doc-data/4.png", (640, 480)).into_drawing_area();
root.fill(&RGBColor(240, 200, 200))?;
- let root = root.apply_coord_spec(RangedCoord::<RangedCoordf32, RangedCoordf32>::new(
+ let root = root.apply_coord_spec(Cartesian2d::<RangedCoordf32, RangedCoordf32>::new(
0f32..1f32,
0f32..1f32,
(0..640, 0..480),
@@ -415,7 +420,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.x_label_area_size(20)
.y_label_area_size(40)
// Finally attach a coordinate on the drawing area and make a chart context
- .build_ranged(0f32..10f32, 0f32..10f32)?;
+ .build_cartesian_2d(0f32..10f32, 0f32..10f32)?;
// Then we can draw a mesh
chart
@@ -486,15 +491,13 @@ By doing so, you can minimize the number of dependencies down to only `itertools
The following list is a complete list of features that can be opt in and out.
-- Drawing backends related features
+- Tier 1 drawing backends
| Name | Description | Additional Dependency |Default?|
|---------|--------------|--------|------------|
-| image\_encoder | Allow `BitMapBackend` save the result to bitmap files | image, rusttype, font-kit | Yes |
-| svg | Enable `SVGBackend` Support | None | Yes |
-| gif\_backend| Opt-in GIF animation Rendering support for `BitMapBackend`, implies `bitmap` enabled | gif | Yes |
-| piston | Enable `PistonWindowBackend` | piston\_window, rusttype, font-kit | No |
-| cairo | Enable `CairoBackend` | cairo-rs, rusttype, font-kit | No |
+| bitmap\_encoder | Allow `BitMapBackend` save the result to bitmap files | image, rusttype, font-kit | Yes |
+| svg\_backend | Enable `SVGBackend` Support | None | Yes |
+| bitmap\_gif| Opt-in GIF animation Rendering support for `BitMapBackend`, implies `bitmap` enabled | gif | Yes |
- Font manipulation features
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
new file mode 100644
index 0000000..91713c8
--- /dev/null
+++ b/RELEASE-NOTES.md
@@ -0,0 +1,82 @@
+# Plotters Release Notes
+
+This documents contains the release notes for every major release since v0.3.
+
+## Plotters v0.3
+
+Plotters v0.3 is shipped with multiple major improvements.
+
+## Plug-and-play backend importing
+
+### Introduction
+
+Previously, Plotters implements all supported backend in the core crate. As the project is becoming bigger and bigger and
+more and more backend is supported, those backend implementation cause a huge mantainance burden.
+
+For example, when `cairo-rs` crate is updated, plotters should release a new version with updated `cairo-rs` dependency for
+our cairo backend. However, most of the users doesn't actually use this backend and pushing new version for updating cairo backend
+seems to be annoying for most of the people. As more and more backend is added, the depdendency is out of control.
+
+### Details
+
+To address this, we are now move all backend implementation code out of the plotters crate. To use a specific backend, you need to
+explicitly add backend crate to your dependency. For example, to use bitmap backend for v0.2.x, we can do this
+
+```rust
+use plotters::prelude::*;
+fn main() {
+ let backend = BitMapBackend::new(...)
+}
+```
+
+After this update, you should do the following code instead:
+
+```rust
+use plotters::prelude::*;
+use plotter_bitmap::BitMapBackend; // <= This extra import is used to plug the backend to Plotters
+
+fn main() {
+ let backend = BitMapBackend::new(...)
+}
+
+```
+
+### Backward compatibility
+
+Plotters 0.3 has introduced concept of tier 1 backends, which is the most supported.
+All tier 1 backends could be imported automatically with the core crate (But can be opt-out as well).
+Currently we have two tier 1 backends: `plotters-bitmap` and `plotters-svg`.
+These are used by most of the people.
+
+To ease the upgrade for tier 1 backends, we still keep feature options in the core crate that can opt in those crates. And this is enabled by default.
+
+Thus, if plotters is imported with default feature set, there would require no change. If the default feature set is opt out, then the following change
+should be make with your `Crates.toml`:
+
+```toml
+plotters = {version = "0.3", default_features = false, features = ["bitmap_backend", "svg_backend"]} # Instead of using feature "bitmap" and "svg"
+```
+
+For non tier 1 backends, manmually import is required (Please note tier on backends can be imported in same way). For example:
+
+```toml
+plotters = {version = "0.3", default_features = false} # Instead of having features = ["cairo"] at this point
+plotters-cairo = "0.3" # We should import the cairo backend in this way.
+```
+
+And in your code, instead of import `plotters::prelude::CairoBackend`, you should import `plotters_cairo::CairoBackend`
+
+## Enhanced Coordinate System Abstraction
+
+### Details
+
+Plotters 0.3 ships with tons of improvement made in the coordinate abstraction and support much more kinds of coordinate.
+
+* `chrono::NaiveDate` and `chrono::NaiveDateTime` are now supported
+* Better abstraction of discrete coordinates
+* Linspace coordinate, which can be used converting a continous coorindate into a discrete buckets
+* Nested coordinate
+* Slices can now be used as cooradnite specification, which allows people define an axis of category.
+* 3D Coordinate is now supported
+
+## Fix bugs and improve testing
diff --git a/benches/benches/parallel.rs b/benches/benches/parallel.rs
index 7bd37d0..dab711c 100644
--- a/benches/benches/parallel.rs
+++ b/benches/benches/parallel.rs
@@ -9,7 +9,7 @@ const SIZES: &'static [u32] = &[100, 400, 800, 1000, 2000];
fn draw_plot(root: &DrawingArea<BitMapBackend, Shift>, pow: f64) {
let mut chart = ChartBuilder::on(root)
.caption(format!("y = x^{}", pow), ("Arial", 30))
- .build_ranged(-1.0..1.0, -1.0..1.0)
+ .build_cartesian_2d(-1.0..1.0, -1.0..1.0)
.unwrap();
chart.configure_mesh().draw().unwrap();
diff --git a/benches/benches/rasterizer.rs b/benches/benches/rasterizer.rs
index 405acb1..736cd02 100644
--- a/benches/benches/rasterizer.rs
+++ b/benches/benches/rasterizer.rs
@@ -1,6 +1,7 @@
use criterion::{criterion_group, Criterion};
-use plotters::drawing::bitmap_pixel::BGRXPixel;
use plotters::prelude::*;
+use plotters_backend::BackendStyle;
+use plotters_bitmap::bitmap_pixel::BGRXPixel;
const W: u32 = 1000;
const H: u32 = 1000;
@@ -14,7 +15,7 @@ fn draw_pixel(c: &mut Criterion) {
let mut root = BitMapBackend::with_buffer(&mut buffer, (W, H));
for x in 0..W / 10 {
for y in 0..H / 10 {
- root.draw_pixel((x as i32, y as i32), &RGBColor(255, 0, 234).to_rgba())
+ root.draw_pixel((x as i32, y as i32), RGBColor(255, 0, 234).color())
.unwrap();
}
}
@@ -28,7 +29,7 @@ fn draw_pixel(c: &mut Criterion) {
BitMapBackend::<BGRXPixel>::with_buffer_and_format(&mut buffer, (W, H)).unwrap();
for x in 0..W / 10 {
for y in 0..H / 10 {
- root.draw_pixel((x as i32, y as i32), &RGBColor(255, 0, 234).to_rgba())
+ root.draw_pixel((x as i32, y as i32), RGBColor(255, 0, 234).color())
.unwrap();
}
}
diff --git a/examples/3d-plot.rs b/examples/3d-plot.rs
new file mode 100644
index 0000000..7d27e1f
--- /dev/null
+++ b/examples/3d-plot.rs
@@ -0,0 +1,47 @@
+use plotters::prelude::*;
+fn main() -> Result<(), Box<dyn std::error::Error>> {
+ let area = SVGBackend::new("plotters-doc-data/3d-plot.svg", (1024, 760)).into_drawing_area();
+
+ area.fill(&WHITE)?;
+
+ let x_axis = (-3.0..3.0).step(0.1);
+ let z_axis = (-3.0..3.0).step(0.1);
+
+ let mut chart = ChartBuilder::on(&area)
+ .caption(format!("3D Plot Test"), ("sans", 20))
+ .build_cartesian_3d(x_axis.clone(), -3.0..3.0, z_axis.clone())?;
+
+ chart.with_projection(|mut pb| {
+ pb.yaw = 0.5;
+ pb.scale = 0.9;
+ pb.into_matrix()
+ });
+
+ chart.configure_axes().draw()?;
+
+ chart
+ .draw_series(SurfaceSeries::<f64, _, f64>::new(
+ x_axis.values(),
+ z_axis.values(),
+ |&x, &z| (x * x + z * z).cos(),
+ &BLUE.mix(0.2),
+ ))?
+ .label("Surface")
+ .legend(|(x, y)| Rectangle::new([(x + 5, y - 5), (x + 15, y + 5)], BLUE.mix(0.5).filled()));
+
+ chart
+ .draw_series(LineSeries::new(
+ (-100..100)
+ .map(|y| y as f64 / 40.0)
+ .map(|y| ((y * 10.0).sin(), y, (y * 10.0).cos())),
+ &BLACK,
+ ))?
+ .label("Line")
+ .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &BLACK));
+
+ chart
+ .configure_series_labels()
+ .border_style(&BLACK)
+ .draw()?;
+ Ok(())
+}
diff --git a/examples/animation.rs b/examples/animation.rs
index 7f20bca..431e4ea 100644
--- a/examples/animation.rs
+++ b/examples/animation.rs
@@ -29,7 +29,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
format!("Koch's Snowflake (n_iter = {})", i),
("sans-serif", 50),
)
- .build_ranged(-2.0..2.0, -1.5..1.5)?;
+ .build_cartesian_2d(-2.0..2.0, -1.5..1.5)?;
let mut snowflake_vertices = {
let mut current: Vec<(f64, f64)> = vec![
@@ -56,3 +56,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/area-chart.rs b/examples/area-chart.rs
index 707cc5a..f02e5ce 100644
--- a/examples/area-chart.rs
+++ b/examples/area-chart.rs
@@ -26,7 +26,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.set_label_area_size(LabelAreaPosition::Left, 60)
.set_label_area_size(LabelAreaPosition::Bottom, 60)
.caption("Area Chart Demo", ("sans-serif", 40))
- .build_ranged(0..(data.len() - 1), 0.0..1500.0)?;
+ .build_cartesian_2d(0..(data.len() - 1), 0.0..1500.0)?;
chart
.configure_mesh()
@@ -45,3 +45,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/blit-bitmap.rs b/examples/blit-bitmap.rs
index 1e0e47e..efc6590 100644
--- a/examples/blit-bitmap.rs
+++ b/examples/blit-bitmap.rs
@@ -15,7 +15,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.margin(5)
.set_label_area_size(LabelAreaPosition::Left, 40)
.set_label_area_size(LabelAreaPosition::Bottom, 40)
- .build_ranged(0.0..1.0, 0.0..1.0)?;
+ .build_cartesian_2d(0.0..1.0, 0.0..1.0)?;
chart.configure_mesh().disable_mesh().draw()?;
@@ -31,3 +31,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
chart.draw_series(std::iter::once(elem))?;
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/boxplot.rs b/examples/boxplot.rs
index 47f3b1a..e67041e 100644
--- a/examples/boxplot.rs
+++ b/examples/boxplot.rs
@@ -42,15 +42,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.map(|(k, v)| (k.0.clone(), k.1.clone(), Quartiles::new(&v)))
.collect();
- let category = Category::new(
- "Host",
- dataset
- .iter()
- .unique_by(|x| x.0.clone())
- .sorted_by(|a, b| b.2.median().partial_cmp(&a.2.median()).unwrap())
- .map(|x| x.0.clone())
- .collect(),
- );
+ let host_list: Vec<_> = dataset
+ .iter()
+ .unique_by(|x| x.0.clone())
+ .sorted_by(|a, b| b.2.median().partial_cmp(&a.2.median()).unwrap())
+ .map(|x| x.0.clone())
+ .collect();
let mut colors = (0..).map(Palette99::pick);
let mut offsets = (-12..).step_by(24);
@@ -73,23 +70,23 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.x_label_area_size(40)
.y_label_area_size(80)
.caption("Ping Boxplot", ("sans-serif", 20).into_font())
- .build_ranged(
+ .build_cartesian_2d(
values_range.start - 1.0..values_range.end + 1.0,
- category.range(),
+ host_list[..].into_segmented(),
)?;
chart
.configure_mesh()
.x_desc("Ping, ms")
- .y_desc(category.name())
- .y_labels(category.len())
- .line_style_2(&WHITE)
+ .y_desc("Host")
+ .y_labels(host_list.len())
+ .light_line_style(&WHITE)
.draw()?;
for (label, (values, style, offset)) in &series {
chart
.draw_series(values.iter().map(|x| {
- Boxplot::new_horizontal(category.get(&x.0).unwrap(), &x.1)
+ Boxplot::new_horizontal(SegmentValue::CenterOf(&x.0), &x.1)
.width(20)
.whisker_width(0.5)
.style(style)
@@ -113,7 +110,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
6.0, 7.0, 15.9, 36.9, 39.0, 40.0, 41.0, 42.0, 43.0, 47.0, 49.0,
]);
let quartiles_b = Quartiles::new(&[16.0, 17.0, 50.0, 60.0, 40.2, 41.3, 42.7, 43.3, 47.0]);
- let category_ab = Category::new("", vec!["a", "b"]);
+
+ let ab_axis = ["a", "b"];
+
let values_range = fitting_range(
quartiles_a
.values()
@@ -124,24 +123,24 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.x_label_area_size(40)
.y_label_area_size(40)
.caption("Vertical Boxplot", ("sans-serif", 20).into_font())
- .build_ranged(
- category_ab.clone(),
+ .build_cartesian_2d(
+ ab_axis[..].into_segmented(),
values_range.start - 10.0..values_range.end + 10.0,
)?;
- chart.configure_mesh().line_style_2(&WHITE).draw()?;
+ chart.configure_mesh().light_line_style(&WHITE).draw()?;
chart.draw_series(vec![
- Boxplot::new_vertical(category_ab.get(&"a").unwrap(), &quartiles_a),
- Boxplot::new_vertical(category_ab.get(&"b").unwrap(), &quartiles_b),
+ Boxplot::new_vertical(SegmentValue::CenterOf(&"a"), &quartiles_a),
+ Boxplot::new_vertical(SegmentValue::CenterOf(&"b"), &quartiles_b),
])?;
let mut chart = ChartBuilder::on(&right)
.x_label_area_size(40)
.y_label_area_size(40)
.caption("Horizontal Boxplot", ("sans-serif", 20).into_font())
- .build_ranged(-30f32..90f32, 0..3)?;
+ .build_cartesian_2d(-30f32..90f32, 0..3)?;
- chart.configure_mesh().line_style_2(&WHITE).draw()?;
+ chart.configure_mesh().light_line_style(&WHITE).draw()?;
chart.draw_series(vec![
Boxplot::new_horizontal(1, &quartiles_a),
Boxplot::new_horizontal(2, &Quartiles::new(&[30])),
@@ -220,3 +219,7 @@ fn get_data() -> String {
",
)
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/chart.rs b/examples/chart.rs
index 15fb23d..0502a5e 100644
--- a/examples/chart.rs
+++ b/examples/chart.rs
@@ -10,11 +10,13 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let (upper, lower) = root_area.split_vertically(512);
+ let x_axis = (-3.4f32..3.4).step(0.1);
+
let mut cc = ChartBuilder::on(&upper)
.margin(5)
.set_all_label_area_size(50)
.caption("Sine and Cosine", ("sans-serif", 40).into_font())
- .build_ranged(-3.4f32..3.4f32, -1.2f32..1.2f32)?;
+ .build_cartesian_2d(-3.4f32..3.4, -1.2f32..1.2f32)?;
cc.configure_mesh()
.x_labels(20)
@@ -24,20 +26,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.y_label_formatter(&|v| format!("{:.1}", v))
.draw()?;
- cc.draw_series(LineSeries::new(
- (0..12).map(|x| ((x - 6) as f32 / 2.0, ((x - 6) as f32 / 2.0).sin())),
- &RED,
- ))?
- .label("Sine")
- .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &RED));
+ cc.draw_series(LineSeries::new(x_axis.values().map(|x| (x, x.sin())), &RED))?
+ .label("Sine")
+ .legend(|(x, y)| PathElement::new(vec![(x, y), (x + 20, y)], &RED));
cc.draw_series(LineSeries::new(
- (0..6800).map(|x| {
- (
- (x - 3400) as f32 / 1000.0,
- ((x - 3400) as f32 / 1000.0).cos(),
- )
- }),
+ x_axis.values().map(|x| (x, x.cos())),
&BLUE,
))?
.label("Cosine")
@@ -48,14 +42,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
/*
// It's possible to use a existing pointing element
cc.draw_series(PointSeries::<_, _, Circle<_>>::new(
- (0..6).map(|x| ((x - 3) as f32 / 1.0, ((x - 3) as f32 / 1.0).sin())),
+ (-3.0f32..2.1f32).step(1.0).values().map(|x| (x, x.sin())),
5,
Into::<ShapeStyle>::into(&RGBColor(255,0,0)).filled(),
))?;*/
// Otherwise you can use a function to construct your pointing element yourself
cc.draw_series(PointSeries::of_element(
- (0..6).map(|x| ((x - 3) as f32 / 1.0, ((x - 3) as f32 / 1.0).sin())),
+ (-3.0f32..2.1f32).step(1.0).values().map(|x| (x, x.sin())),
5,
ShapeStyle::from(&RED).filled(),
&|coord, size, style| {
@@ -80,19 +74,21 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
format!("y = x^{}", 1 + 2 * idx),
("sans-serif", 40).into_font(),
)
- .build_ranged(-1f32..1f32, -1f32..1f32)?;
+ .build_cartesian_2d(-1f32..1f32, -1f32..1f32)?;
cc.configure_mesh().x_labels(5).y_labels(3).draw()?;
cc.draw_series(LineSeries::new(
- (-100..100).map(|x| {
- (
- x as f32 / 100.0,
- (x as f32 / 100.0).powf(idx as f32 * 2.0 + 1.0),
- )
- }),
+ (-1f32..1f32)
+ .step(0.01)
+ .values()
+ .map(|x| (x, x.powf(idx as f32 * 2.0 + 1.0))),
&BLUE,
))?;
}
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/console.rs b/examples/console.rs
index 663b3ef..6d21ab9 100644
--- a/examples/console.rs
+++ b/examples/console.rs
@@ -1,10 +1,8 @@
-use plotters::drawing::{
- backend::{BackendStyle, DrawingErrorKind},
- DrawingBackend,
-};
use plotters::prelude::*;
use plotters::style::text_anchor::{HPos, VPos};
-use plotters::style::RGBAColor;
+use plotters_backend::{
+ BackendColor, BackendStyle, BackendTextStyle, DrawingBackend, DrawingErrorKind,
+};
use std::error::Error;
#[derive(Copy, Clone)]
@@ -80,9 +78,9 @@ impl DrawingBackend for TextDrawingBackend {
fn draw_pixel(
&mut self,
pos: (i32, i32),
- color: &RGBAColor,
+ color: BackendColor,
) -> Result<(), DrawingErrorKind<std::io::Error>> {
- if color.alpha() > 0.3 {
+ if color.alpha > 0.3 {
self.0[(pos.1 * 100 + pos.0) as usize].update(PixelState::Pixel);
}
Ok(())
@@ -114,31 +112,31 @@ impl DrawingBackend for TextDrawingBackend {
return Ok(());
}
- plotters::drawing::rasterizer::draw_line(self, from, to, style)
+ plotters_backend::rasterizer::draw_line(self, from, to, style)
}
- fn estimate_text_size<'a>(
+ fn estimate_text_size<S: BackendTextStyle>(
&self,
text: &str,
- _font: &FontDesc<'a>,
+ _: &S,
) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>> {
Ok((text.len() as u32, 1))
}
- fn draw_text(
+ fn draw_text<S: BackendTextStyle>(
&mut self,
text: &str,
- style: &TextStyle,
+ style: &S,
pos: (i32, i32),
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let (width, height) = self.estimate_text_size(text, &style.font)?;
+ let (width, height) = self.estimate_text_size(text, style)?;
let (width, height) = (width as i32, height as i32);
- let dx = match style.pos.h_pos {
+ let dx = match style.anchor().h_pos {
HPos::Left => 0,
HPos::Right => -width,
HPos::Center => -width / 2,
};
- let dy = match style.pos.v_pos {
+ let dy = match style.anchor().v_pos {
VPos::Top => 0,
VPos::Center => -height / 2,
VPos::Bottom => -height,
@@ -162,7 +160,7 @@ where
.caption("Sine and Cosine", ("sans-serif", (10).percent_height()))
.set_label_area_size(LabelAreaPosition::Left, (5i32).percent_width())
.set_label_area_size(LabelAreaPosition::Bottom, (10i32).percent_height())
- .build_ranged(-std::f64::consts::PI..std::f64::consts::PI, -1.2..1.2)?;
+ .build_cartesian_2d(-std::f64::consts::PI..std::f64::consts::PI, -1.2..1.2)?;
chart
.configure_mesh()
@@ -193,3 +191,7 @@ fn main() -> Result<(), Box<dyn Error>> {
draw_chart(b)?;
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/errorbar.rs b/examples/errorbar.rs
index 4ef46d2..7f11dd9 100644
--- a/examples/errorbar.rs
+++ b/examples/errorbar.rs
@@ -22,7 +22,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.margin(10)
.set_label_area_size(LabelAreaPosition::Left, 40)
.set_label_area_size(LabelAreaPosition::Bottom, 40)
- .build_ranged(-10f64..10f64, -10f64..10f64)?;
+ .build_cartesian_2d(-10f64..10f64, -10f64..10f64)?;
chart.configure_mesh().draw()?;
@@ -88,3 +88,7 @@ fn down_sample(data: &[(f64, f64)]) -> Vec<(f64, f64, f64, f64)> {
.collect();
down_sampled
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/histogram.rs b/examples/histogram.rs
index c33363f..6cb5934 100644
--- a/examples/histogram.rs
+++ b/examples/histogram.rs
@@ -10,13 +10,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.y_label_area_size(40)
.margin(5)
.caption("Histogram Test", ("sans-serif", 50.0).into_font())
- .build_ranged(0u32..10u32, 0u32..10u32)?;
+ .build_cartesian_2d((0u32..10u32).into_segmented(), 0u32..10u32)?;
chart
.configure_mesh()
.disable_x_mesh()
- .line_style_1(&WHITE.mix(0.3))
- .x_label_offset(30)
+ .bold_line_style(&WHITE.mix(0.3))
.y_desc("Count")
.x_desc("Bucket")
.axis_desc_style(("sans-serif", 15).into_font())
@@ -34,3 +33,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/mandelbrot.rs b/examples/mandelbrot.rs
index 81fa688..5af585e 100644
--- a/examples/mandelbrot.rs
+++ b/examples/mandelbrot.rs
@@ -11,7 +11,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.margin(20)
.x_label_area_size(10)
.y_label_area_size(10)
- .build_ranged(-2.1f64..0.6f64, -1.2f64..1.2f64)?;
+ .build_cartesian_2d(-2.1f64..0.6f64, -1.2f64..1.2f64)?;
chart
.configure_mesh()
@@ -61,3 +61,7 @@ fn mandelbrot_set(
return (c.0, c.1, cnt);
});
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/matshow.rs b/examples/matshow.rs
index 186fcba..8cc03ea 100644
--- a/examples/matshow.rs
+++ b/examples/matshow.rs
@@ -10,7 +10,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.margin(5)
.top_x_label_area_size(40)
.y_label_area_size(40)
- .build_ranged(0i32..15i32, 15i32..0i32)?;
+ .build_cartesian_2d(0i32..15i32, 15i32..0i32)?;
chart
.configure_mesh()
@@ -50,3 +50,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/nested_coord.rs b/examples/nested_coord.rs
new file mode 100644
index 0000000..9dbdc8e
--- /dev/null
+++ b/examples/nested_coord.rs
@@ -0,0 +1,43 @@
+use plotters::prelude::*;
+fn main() -> Result<(), Box<dyn std::error::Error>> {
+ let root =
+ BitMapBackend::new("plotters-doc-data/nested_coord.png", (640, 480)).into_drawing_area();
+
+ root.fill(&WHITE)?;
+
+ let mut chart = ChartBuilder::on(&root)
+ .x_label_area_size(35)
+ .y_label_area_size(40)
+ .margin(5)
+ .caption("Nested Coord", ("sans-serif", 50.0).into_font())
+ .build_cartesian_2d(
+ ["Linear", "Quadratic"].nested_coord(|_| 0.0..10.0),
+ 0.0..10.0,
+ )?;
+
+ chart
+ .configure_mesh()
+ .disable_mesh()
+ .axis_desc_style(("sans-serif", 15).into_font())
+ .draw()?;
+
+ chart.draw_series(LineSeries::new(
+ (0..10)
+ .map(|x| x as f64 / 1.0)
+ .map(|x| ((&"Linear", x).into(), x)),
+ &RED,
+ ))?;
+
+ chart.draw_series(LineSeries::new(
+ (0..10)
+ .map(|x| x as f64 / 1.0)
+ .map(|x| ((&"Quadratic", x).into(), x * x / 10.0)),
+ &RED,
+ ))?;
+
+ Ok(())
+}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/normal-dist.rs b/examples/normal-dist.rs
index 65cf0e3..20d048a 100644
--- a/examples/normal-dist.rs
+++ b/examples/normal-dist.rs
@@ -25,14 +25,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut x_hist_ctx = ChartBuilder::on(&areas[0])
.y_label_area_size(40)
- .build_ranged(0u32..100u32, 0f64..0.5f64)?;
+ .build_cartesian_2d((0.0..1.0).step(0.01).use_round().into_segmented(), 0..250)?;
let mut y_hist_ctx = ChartBuilder::on(&areas[3])
.x_label_area_size(40)
- .build_ranged(0f64..0.5f64, 0..100u32)?;
+ .build_cartesian_2d(0..250, (0.0..1.0).step(0.01).use_round())?;
let mut scatter_ctx = ChartBuilder::on(&areas[2])
.x_label_area_size(40)
.y_label_area_size(40)
- .build_ranged(0f64..1f64, 0f64..1f64)?;
+ .build_cartesian_2d(0f64..1f64, 0f64..1f64)?;
scatter_ctx
.configure_mesh()
.disable_x_mesh()
@@ -46,21 +46,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let x_hist = Histogram::vertical(&x_hist_ctx)
.style(GREEN.filled())
.margin(0)
- .data(
- random_points
- .iter()
- .map(|(x, _)| ((x * 100.0) as u32, 0.002)),
- );
+ .data(random_points.iter().map(|(x, _)| (*x, 1)));
let y_hist = Histogram::horizontal(&y_hist_ctx)
.style(GREEN.filled())
.margin(0)
- .data(
- random_points
- .iter()
- .map(|(_, y)| ((y * 100.0) as u32, 0.002)),
- );
+ .data(random_points.iter().map(|(_, y)| (*y, 1)));
x_hist_ctx.draw_series(x_hist)?;
y_hist_ctx.draw_series(y_hist)?;
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/normal-dist2.rs b/examples/normal-dist2.rs
index 6155ea6..d03e98c 100644
--- a/examples/normal-dist2.rs
+++ b/examples/normal-dist2.rs
@@ -27,8 +27,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.set_label_area_size(LabelAreaPosition::Left, 60)
.set_label_area_size(LabelAreaPosition::Bottom, 60)
.set_label_area_size(LabelAreaPosition::Right, 60)
- .build_ranged(-4f64..4f64, 0f64..0.1)?
- .set_secondary_coord((-40i32..40i32).into_centric(), 0u32..500u32);
+ .build_cartesian_2d(-4f64..4f64, 0f64..0.1)?
+ .set_secondary_coord(
+ (-4f64..4f64).step(0.1).use_round().into_segmented(),
+ 0u32..500u32,
+ );
chart
.configure_mesh()
@@ -43,11 +46,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let actual = Histogram::vertical(chart.borrow_secondary())
.style(GREEN.filled())
.margin(3)
- .data(
- random_points
- .iter()
- .map(|x| ((x * 10.0).round() as i32, 1u32)),
- );
+ .data(random_points.iter().map(|x| (*x, 1)));
chart
.draw_secondary_series(actual)?
@@ -74,3 +73,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/relative_size.rs b/examples/relative_size.rs
index a915d8a..b0c70fa 100644
--- a/examples/relative_size.rs
+++ b/examples/relative_size.rs
@@ -10,7 +10,7 @@ fn draw_chart<B: DrawingBackend>(root: &DrawingArea<B, Shift>) -> DrawResult<(),
.x_label_area_size((10).percent_height())
.y_label_area_size((10).percent_width())
.margin(5)
- .build_ranged(-5.0..5.0, -1.0..1.0)?;
+ .build_cartesian_2d(-5.0..5.0, -1.0..1.0)?;
chart
.configure_mesh()
@@ -47,3 +47,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/sierpinski.rs b/examples/sierpinski.rs
index 9e68589..ab4b2c8 100644
--- a/examples/sierpinski.rs
+++ b/examples/sierpinski.rs
@@ -31,3 +31,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
sierpinski_carpet(5, &root)
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/slc-temp.rs b/examples/slc-temp.rs
index 7a1b509..c38f169 100644
--- a/examples/slc-temp.rs
+++ b/examples/slc-temp.rs
@@ -1,7 +1,6 @@
-use plotters::coord::IntoMonthly;
use plotters::prelude::*;
-use chrono::{Datelike, TimeZone, Utc};
+use chrono::{TimeZone, Utc};
use std::error::Error;
@@ -20,7 +19,7 @@ fn main() -> Result<(), Box<dyn Error>> {
.set_label_area_size(LabelAreaPosition::Left, 60)
.set_label_area_size(LabelAreaPosition::Right, 60)
.set_label_area_size(LabelAreaPosition::Bottom, 40)
- .build_ranged(
+ .build_cartesian_2d(
(Utc.ymd(2010, 1, 1)..Utc.ymd(2018, 12, 1)).monthly(),
14.0..104.0,
)?
@@ -34,7 +33,6 @@ fn main() -> Result<(), Box<dyn Error>> {
.disable_x_mesh()
.disable_y_mesh()
.x_labels(30)
- .x_label_formatter(&|d| format!("{}-{}", d.year(), d.month()))
.y_desc("Average Temp (F)")
.draw()?;
chart
@@ -165,3 +163,7 @@ const DATA: [(i32, u32, f64); 12 * 9] = [
(2018, 11, 39.7),
(2018, 12, 33.6),
];
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/snowflake.rs b/examples/snowflake.rs
index ccefb8e..d188422 100644
--- a/examples/snowflake.rs
+++ b/examples/snowflake.rs
@@ -25,7 +25,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut chart = ChartBuilder::on(&root)
.caption("Koch's Snowflake", ("sans-serif", 50))
- .build_ranged(-2.0..2.0, -1.5..1.5)?;
+ .build_cartesian_2d(-2.0..2.0, -1.5..1.5)?;
let mut snowflake_vertices = {
let mut current: Vec<(f64, f64)> = vec![
@@ -48,3 +48,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/stock.rs b/examples/stock.rs
index 5c5c2b5..e34043a 100644
--- a/examples/stock.rs
+++ b/examples/stock.rs
@@ -21,9 +21,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.x_label_area_size(40)
.y_label_area_size(40)
.caption("MSFT Stock Price", ("sans-serif", 50.0).into_font())
- .build_ranged(from_date..to_date, 110f32..135f32)?;
+ .build_cartesian_2d(from_date..to_date, 110f32..135f32)?;
- chart.configure_mesh().line_style_2(&WHITE).draw()?;
+ chart.configure_mesh().light_line_style(&WHITE).draw()?;
chart.draw_series(
data.iter()
@@ -67,3 +67,7 @@ fn get_data() -> Vec<(&'static str, f32, f32, f32, f32)> {
("2019-03-14", 114.5400, 115.2000, 114.3300, 114.5900),
];
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/examples/two-scales.rs b/examples/two-scales.rs
index 33939e6..46f8976 100644
--- a/examples/two-scales.rs
+++ b/examples/two-scales.rs
@@ -11,7 +11,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.right_y_label_area_size(40)
.margin(5)
.caption("Dual Y-Axis Example", ("sans-serif", 50.0).into_font())
- .build_ranged(0f32..10f32, LogRange(0.1f32..1e10f32))?
+ .build_cartesian_2d(0f32..10f32, LogRange(0.1f32..1e10f32))?
.set_secondary_coord(0f32..10f32, -1.0f32..1.0f32);
chart
@@ -50,3 +50,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
+#[test]
+fn entry_point() {
+ main().unwrap()
+}
diff --git a/plotters-doc-data/.gitignore b/plotters-doc-data/.gitignore
new file mode 100644
index 0000000..87620ac
--- /dev/null
+++ b/plotters-doc-data/.gitignore
@@ -0,0 +1 @@
+.ipynb_checkpoints/
diff --git a/plotters-doc-data/3d-plot.svg b/plotters-doc-data/3d-plot.svg
new file mode 100644
index 0000000..473eaf3
--- /dev/null
+++ b/plotters-doc-data/3d-plot.svg
@@ -0,0 +1,3614 @@
+<svg width="1024" height="760" viewBox="0 0 1024 760" xmlns="http://www.w3.org/2000/svg">
+<rect x="0" y="0" width="1023" height="759" opacity="1" fill="#FFFFFF" stroke="none"/>
+<text x="512" y="5" dy="0.76em" text-anchor="middle" font-family="sans" font-size="16.129032258064516" opacity="1" fill="#000000">
+3D Plot Test
+</text>
+<polygon opacity="0.1" fill="#000000" points="406,599 406,76 152,146 152,669 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 406,76 152,146 152,669 406,599 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,512 152,582 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,425 152,494 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,338 152,407 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,251 152,320 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,163 152,233 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,76 152,146 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 406,76 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="364,611 364,88 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="322,623 322,99 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="279,634 279,111 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="237,646 237,122 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="195,657 195,134 "/>
+<polygon opacity="0.1" fill="#000000" points="406,599 152,669 617,707 871,637 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 152,669 617,707 871,637 406,599 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 152,669 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="484,606 230,675 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="561,612 307,682 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="638,618 385,688 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="716,625 462,694 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="793,631 539,700 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 871,637 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="364,611 828,649 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="322,623 786,661 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="279,634 744,672 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="237,646 701,684 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="195,657 659,695 "/>
+<polygon opacity="0.1" fill="#000000" points="406,599 871,637 871,114 406,76 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 871,637 871,114 406,76 406,599 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,599 406,76 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="484,606 484,83 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="561,612 561,89 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="638,618 638,95 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="716,625 716,101 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="793,631 793,108 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,512 871,550 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,425 871,463 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,338 871,376 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,251 871,289 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,163 871,201 "/>
+<polyline fill="none" opacity="0.2" stroke="#000000" stroke-width="1" points="406,76 871,114 "/>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,669 617,707 "/>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,669 152,674 "/>
+<text x="152" y="679" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-3.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="230,675 230,680 "/>
+<text x="230" y="685" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-2.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="307,682 307,687 "/>
+<text x="307" y="692" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="385,688 385,693 "/>
+<text x="385" y="698" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+0.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="462,694 462,699 "/>
+<text x="462" y="704" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="539,700 539,705 "/>
+<text x="539" y="710" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+2.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,669 152,146 "/>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,582 147,582 "/>
+<text x="142" y="582" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-2.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,494 147,494 "/>
+<text x="142" y="494" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,407 147,407 "/>
+<text x="142" y="407" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+0.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,320 147,320 "/>
+<text x="142" y="320" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,233 147,233 "/>
+<text x="142" y="233" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+2.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="152,146 147,146 "/>
+<text x="142" y="146" dy="0.5ex" text-anchor="end" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+3.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="871,637 617,707 "/>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="871,637 871,642 "/>
+<text x="871" y="647" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-3.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="828,649 828,654 "/>
+<text x="828" y="659" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-2.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="786,661 786,666 "/>
+<text x="786" y="671" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+-1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="744,672 744,677 "/>
+<text x="744" y="682" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+0.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="701,684 701,689 "/>
+<text x="701" y="694" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+1.0
+</text>
+<polyline fill="none" opacity="0.8" stroke="#000000" stroke-width="1" points="659,695 659,700 "/>
+<text x="659" y="705" dy="0.76em" text-anchor="middle" font-family="sans-serf" font-size="9.67741935483871" opacity="1" fill="#000000">
+2.0
+</text>
+<polygon opacity="0.2" fill="#0000FF" points="406,281 402,328 409,379 413,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,328 398,377 405,415 409,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,377 394,414 401,429 405,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,414 389,430 396,419 401,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,430 385,422 392,388 396,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,422 381,396 388,349 392,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,396 377,359 384,310 388,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,359 372,322 380,281 384,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,322 368,290 375,265 380,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,290 364,271 371,265 375,265 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,271 360,264 367,277 371,265 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,264 356,270 363,300 367,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,270 351,285 358,328 363,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,285 347,308 354,357 358,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,308 343,334 350,385 354,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,334 339,360 346,408 350,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,360 335,384 342,427 346,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="335,384 330,405 337,439 342,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="330,405 326,422 333,447 337,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="326,422 322,435 329,449 333,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="322,435 318,443 325,448 329,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="318,443 313,449 320,446 325,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,449 309,452 316,441 320,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="309,452 305,453 312,436 316,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="305,453 300,453 308,431 312,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="300,453 297,452 304,426 308,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="297,452 292,452 299,422 304,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="292,452 288,451 295,421 299,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="288,451 284,451 291,419 295,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="284,451 279,453 286,419 291,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="279,453 275,454 283,421 286,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="275,454 271,456 278,425 283,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="271,456 267,459 274,429 278,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="267,459 262,462 270,436 274,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="262,462 258,465 265,442 270,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="258,465 254,467 261,449 265,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="254,467 250,468 257,457 261,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="250,468 246,467 253,464 257,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="246,467 241,464 248,469 253,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="241,464 237,458 244,472 248,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="237,458 233,447 240,472 244,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="233,447 229,433 236,467 240,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="229,433 224,414 232,457 236,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="224,414 220,392 227,441 232,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="220,392 216,369 223,420 227,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="216,369 212,345 219,394 223,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="212,345 208,325 215,367 219,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="208,325 203,311 210,341 215,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="203,311 199,308 206,321 210,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="199,308 195,317 202,311 206,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="195,317 191,339 198,314 202,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="191,339 187,373 194,332 198,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="187,373 182,412 189,363 194,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="182,412 178,452 185,404 189,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="178,452 174,480 181,446 185,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="174,480 170,490 177,479 181,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="170,490 165,477 172,491 177,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="165,477 161,442 168,480 172,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="161,442 157,395 164,446 168,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,328 409,379 417,415 421,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,379 405,415 413,429 417,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,415 401,429 409,416 413,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,429 396,419 404,383 409,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,419 392,388 400,341 404,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,388 388,349 396,301 400,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,349 384,310 392,274 396,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,310 380,281 387,262 392,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,281 375,265 383,267 387,262 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,265 371,265 379,286 383,267 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,265 367,277 375,313 379,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,277 363,300 371,346 375,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="363,300 358,328 366,377 371,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,328 354,357 362,404 366,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,357 350,385 358,426 362,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,385 346,408 354,439 358,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,408 342,427 350,446 354,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,427 337,439 345,446 350,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,439 333,447 341,443 345,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,447 329,449 337,435 341,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,449 325,448 333,426 337,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,448 320,446 328,416 333,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,446 316,441 324,406 328,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,441 312,436 320,397 324,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,436 308,431 315,388 320,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,431 304,426 312,382 315,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,426 299,422 307,377 312,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,422 295,421 303,374 307,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="295,421 291,419 299,373 303,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="291,419 286,419 294,373 299,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="286,419 283,421 290,375 294,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="283,421 278,425 286,379 290,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="278,425 274,429 282,384 286,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="274,429 270,436 277,392 282,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="270,436 265,442 273,400 277,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="265,442 261,449 269,411 273,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="261,449 257,457 265,422 269,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="257,457 253,464 261,435 265,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="253,464 248,469 256,447 261,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="248,469 244,472 252,458 256,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="244,472 240,472 248,468 252,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="240,472 236,467 244,474 248,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="236,467 232,457 239,476 244,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="232,457 227,441 235,472 239,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="227,441 223,420 231,461 235,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="223,420 219,394 227,441 231,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="219,394 215,367 223,416 227,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="215,367 210,341 218,387 223,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="210,341 206,321 214,357 218,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="206,321 202,311 210,332 214,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="202,311 198,314 206,315 210,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="198,314 194,332 202,313 206,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="194,332 189,363 197,327 202,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="189,363 185,404 193,357 197,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="185,404 181,446 189,399 193,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="181,446 177,479 185,443 189,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="177,479 172,491 180,479 185,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="172,491 168,480 176,493 180,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="168,480 164,446 172,482 176,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,376 417,415 425,428 429,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,415 413,429 421,416 425,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,429 409,416 417,381 421,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,416 404,383 412,337 417,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,383 400,341 408,297 412,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,341 396,301 404,270 408,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,301 392,274 400,261 404,270 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,274 387,262 395,271 400,261 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,262 383,267 391,294 395,271 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,267 379,286 387,326 391,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,286 375,313 383,361 387,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,313 371,346 379,393 383,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,346 366,377 374,419 379,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,377 362,404 370,436 374,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,404 358,426 366,444 370,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,426 354,439 362,444 366,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,439 350,446 357,439 362,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,446 345,446 353,428 357,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="345,446 341,443 349,414 353,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,443 337,435 344,400 349,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,435 333,426 341,385 344,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,426 328,416 336,372 341,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,416 324,406 332,360 336,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="324,406 320,397 328,351 332,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,397 315,388 323,342 328,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="315,388 312,382 319,336 323,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,382 307,377 315,332 319,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,377 303,374 311,328 315,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="303,374 299,373 307,328 311,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,373 294,373 302,328 307,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="294,373 290,375 298,330 302,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,375 286,379 294,333 298,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="286,379 282,384 290,339 294,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="282,384 277,392 285,345 290,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="277,392 273,400 281,353 285,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="273,400 269,411 277,364 281,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="269,411 265,422 273,376 277,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="265,422 261,435 269,391 273,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="261,435 256,447 264,406 269,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="256,447 252,458 260,423 264,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="252,458 248,468 256,440 260,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="248,468 244,474 252,456 256,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="244,474 239,476 247,469 252,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="239,476 235,472 243,477 247,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="235,472 231,461 239,479 243,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="231,461 227,441 235,473 239,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="227,441 223,416 231,458 235,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="223,416 218,387 226,434 231,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="218,387 214,357 222,405 226,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="214,357 210,332 218,373 222,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="210,332 206,315 214,343 218,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="206,315 202,313 209,321 214,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="202,313 197,327 205,315 209,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="197,327 193,357 201,326 205,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="193,357 189,399 196,354 201,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="189,399 185,443 193,397 196,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="185,443 180,479 188,443 193,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="180,479 176,493 184,481 188,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="176,493 172,482 180,495 184,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,413 425,428 433,417 437,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,428 421,416 429,382 433,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,416 417,381 424,337 429,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,381 412,337 420,295 424,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,337 408,297 416,268 420,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,297 404,270 412,261 416,268 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,270 400,261 408,273 412,261 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,261 395,271 403,301 408,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,271 391,294 399,336 403,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,294 387,326 395,372 399,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,326 383,361 391,405 395,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,361 379,393 386,428 391,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,393 374,419 382,441 386,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,419 370,436 378,444 382,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,436 366,444 374,438 378,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,444 362,444 370,426 374,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,444 357,439 365,410 370,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,439 353,428 361,391 365,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="353,428 349,414 357,373 361,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="349,414 344,400 352,355 357,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="344,400 341,385 348,341 352,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,385 336,372 344,328 348,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="336,372 332,360 340,318 344,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="332,360 328,351 336,310 340,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,351 323,342 331,304 336,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="323,342 319,336 327,301 331,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="319,336 315,332 323,299 327,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="315,332 311,328 319,297 323,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="311,328 307,328 314,297 319,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,328 302,328 310,298 314,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="302,328 298,330 306,300 310,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="298,330 294,333 302,302 306,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="294,333 290,339 298,306 302,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,339 285,345 293,310 298,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="285,345 281,353 289,316 293,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="281,353 277,364 285,324 289,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="277,364 273,376 281,334 285,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="273,376 269,391 276,347 281,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="269,391 264,406 272,361 276,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="264,406 260,423 268,379 272,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="260,423 256,440 264,398 268,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="256,440 252,456 260,419 264,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="252,456 247,469 255,440 260,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="247,469 243,477 251,458 255,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="243,477 239,479 247,472 251,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="239,479 235,473 243,481 247,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="235,473 231,458 238,480 243,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="231,458 226,434 234,470 238,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="226,434 222,405 230,449 234,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="222,405 218,373 226,419 230,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="218,373 214,343 222,384 226,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="214,343 209,321 217,351 222,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="209,321 205,315 213,326 217,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="205,315 201,326 209,316 213,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="201,326 196,354 204,326 209,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="196,354 193,397 200,355 204,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="193,397 188,443 196,399 200,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="188,443 184,481 192,447 196,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="184,481 180,495 188,484 192,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,428 433,417 441,386 445,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,417 429,382 437,340 441,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,382 424,337 432,295 437,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,337 420,295 428,267 432,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,295 416,268 424,260 428,267 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,268 412,261 420,274 424,260 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,261 408,273 416,305 420,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,273 403,301 411,342 416,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,301 399,336 407,381 411,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,336 395,372 403,412 407,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,372 391,405 399,433 403,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,405 386,428 394,442 399,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,428 382,441 390,441 394,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,441 378,444 386,429 390,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="378,444 374,438 381,411 386,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,438 370,426 378,391 381,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,426 365,410 373,369 378,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,410 361,391 369,348 373,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="361,391 357,373 365,330 369,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,373 352,355 360,315 365,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="352,355 348,341 356,304 360,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,341 344,328 352,295 356,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="344,328 340,318 348,290 352,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="340,318 336,310 343,287 348,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="336,310 331,304 339,285 343,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="331,304 327,301 335,285 339,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="327,301 323,299 331,286 335,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="323,299 319,297 327,287 331,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="319,297 314,297 322,288 327,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="314,297 310,298 318,289 322,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="310,298 306,300 314,290 318,289 "/>
+<polygon opacity="0.2" fill="#0000FF" points="306,300 302,302 310,292 314,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="302,302 298,306 305,293 310,292 "/>
+<polygon opacity="0.2" fill="#0000FF" points="298,306 293,310 301,294 305,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="293,310 289,316 297,297 301,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="289,316 285,324 293,301 297,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="285,324 281,334 289,306 293,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="281,334 276,347 284,314 289,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="276,347 272,361 280,325 284,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="272,361 268,379 276,338 280,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="268,379 264,398 272,355 276,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="264,398 260,419 268,376 272,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="260,419 255,440 263,399 268,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="255,440 251,458 259,423 263,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="251,458 247,472 255,446 259,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="247,472 243,481 251,466 255,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="243,481 238,480 246,480 251,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="238,480 234,470 242,484 246,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="234,470 230,449 238,477 242,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="230,449 226,419 233,458 238,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="226,419 222,384 230,429 233,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="222,384 217,351 225,393 230,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="217,351 213,326 221,358 225,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="213,326 209,316 217,330 221,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="209,316 204,326 212,318 217,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="204,326 200,355 208,327 212,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="200,355 196,399 204,358 208,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="196,399 192,447 200,404 204,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="192,447 188,484 195,453 200,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="445,419 441,386 448,346 452,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,386 437,340 444,299 448,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,340 432,295 439,268 444,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,295 428,267 435,260 439,268 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,267 424,260 431,274 435,260 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,260 420,274 427,305 431,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,274 416,305 423,345 427,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,305 411,342 418,385 423,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,342 407,381 414,417 418,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,381 403,412 410,436 414,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,412 399,433 406,441 410,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,433 394,442 401,435 406,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,442 390,441 397,420 401,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,441 386,429 393,398 397,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,429 381,411 389,373 393,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,411 378,391 385,348 389,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="378,391 373,369 380,327 385,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="373,369 369,348 376,310 380,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="369,348 365,330 372,297 376,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,330 360,315 367,287 372,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,315 356,304 364,283 367,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,304 352,295 359,281 364,283 "/>
+<polygon opacity="0.2" fill="#0000FF" points="352,295 348,290 355,282 359,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,290 343,287 351,284 355,282 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,287 339,285 346,287 351,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,285 335,285 342,291 346,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="335,285 331,286 338,294 342,291 "/>
+<polygon opacity="0.2" fill="#0000FF" points="331,286 327,287 334,297 338,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="327,287 322,288 329,299 334,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="322,288 318,289 325,302 329,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="318,289 314,290 321,302 325,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="314,290 310,292 317,302 321,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="310,292 305,293 313,301 317,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="305,293 301,294 308,300 313,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="301,294 297,297 304,298 308,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="297,297 293,301 300,298 304,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="293,301 289,306 296,298 300,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="289,306 284,314 291,299 296,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="284,314 280,325 287,304 291,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="280,325 276,338 283,310 287,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="276,338 272,355 279,322 283,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="272,355 268,376 275,338 279,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="268,376 263,399 270,357 275,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="263,399 259,423 266,381 270,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="259,423 255,446 262,408 266,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="255,446 251,466 258,435 262,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="251,466 246,480 253,459 258,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="246,480 242,484 249,477 253,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="242,484 238,477 245,485 249,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="238,477 233,458 241,482 245,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="233,458 230,429 237,465 241,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="230,429 225,393 232,435 237,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="225,393 221,358 228,398 232,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="221,358 217,330 224,360 228,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="217,330 212,318 219,331 224,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="212,318 208,327 216,320 219,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="208,327 204,358 211,331 216,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="204,358 200,404 207,364 211,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="200,404 195,453 203,413 207,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,393 448,346 456,307 460,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,346 444,299 452,271 456,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,299 439,268 447,259 452,271 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,268 435,260 443,271 447,259 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,260 431,274 439,304 443,271 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,274 427,305 435,345 439,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,305 423,345 431,386 435,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,345 418,385 426,418 431,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,385 414,417 422,437 426,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,417 410,436 418,441 422,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,436 406,441 414,430 418,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,441 401,435 409,411 414,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,435 397,420 405,386 409,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,420 393,398 401,358 405,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,398 389,373 396,333 401,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,373 385,348 393,312 396,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,348 380,327 388,295 393,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,327 376,310 384,285 388,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,310 372,297 380,280 384,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,297 367,287 375,279 380,280 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,287 364,283 371,281 375,279 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,283 359,281 367,287 371,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,281 355,282 363,293 367,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,282 351,284 358,300 363,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,284 346,287 354,307 358,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,287 342,291 350,314 354,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,291 338,294 346,320 350,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="338,294 334,297 342,325 346,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="334,297 329,299 337,328 342,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,299 325,302 333,330 337,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,302 321,302 329,330 333,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="321,302 317,302 325,329 329,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="317,302 313,301 320,327 325,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,301 308,300 316,324 320,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,300 304,298 312,319 316,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,298 300,298 308,313 312,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="300,298 296,298 304,309 308,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="296,298 291,299 299,305 304,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="291,299 287,304 295,302 299,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="287,304 283,310 291,302 295,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="283,310 279,322 287,305 291,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="279,322 275,338 283,312 287,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="275,338 270,357 278,325 283,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="270,357 266,381 274,344 278,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="266,381 262,408 270,368 274,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="262,408 258,435 266,395 270,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="258,435 253,459 261,425 266,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="253,459 249,477 257,453 261,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="249,477 245,485 253,475 257,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="245,485 241,482 248,487 253,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="241,482 237,465 245,486 248,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="237,465 232,435 240,469 245,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="232,435 228,398 236,439 240,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="228,398 224,360 232,400 236,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="224,360 219,331 227,361 232,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="219,331 216,320 223,331 227,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="216,320 211,331 219,322 223,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="211,331 207,364 215,336 219,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="207,364 203,413 210,374 215,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,356 456,307 464,277 468,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,307 452,271 460,259 464,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,271 447,259 455,268 460,259 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,259 443,271 451,299 455,268 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,271 439,304 447,341 451,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,304 435,345 443,384 447,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,345 431,386 438,418 443,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,386 426,418 434,437 438,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,418 422,437 430,440 434,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,437 418,441 425,427 430,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,441 414,430 422,405 425,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,430 409,411 417,376 422,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,411 405,386 413,347 417,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,386 401,358 409,322 413,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,358 396,333 404,301 409,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,333 393,312 400,286 404,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,312 388,295 396,278 400,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,295 384,285 392,276 396,278 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,285 380,280 387,280 392,276 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,280 375,279 383,288 387,280 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,279 371,281 379,297 383,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,281 367,287 375,308 379,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,287 363,293 371,320 375,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="363,293 358,300 366,331 371,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,300 354,307 362,340 366,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,307 350,314 358,349 362,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,314 346,320 354,355 358,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,320 342,325 350,361 354,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,325 337,328 345,365 350,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,328 333,330 341,367 345,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,330 329,330 337,367 341,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,330 325,329 333,366 337,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,329 320,327 328,362 333,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,327 316,324 324,358 328,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,324 312,319 320,351 324,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,319 308,313 316,344 320,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,313 304,309 312,336 316,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,309 299,305 307,326 312,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,305 295,302 303,318 307,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="295,302 291,302 299,311 303,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="291,302 287,305 295,306 299,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="287,305 283,312 290,304 295,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="283,312 278,325 286,308 290,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="278,325 274,344 282,318 286,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="274,344 270,368 277,335 282,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="270,368 266,395 274,359 277,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="266,395 261,425 269,386 274,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="261,425 257,453 265,418 269,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="257,453 253,475 261,449 265,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="253,475 248,487 256,474 261,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="248,487 245,486 252,488 256,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="245,486 240,469 248,487 252,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="240,469 236,439 244,471 248,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="236,439 232,400 239,439 244,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="232,400 227,361 235,398 239,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="227,361 223,331 231,359 235,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="223,331 219,322 227,330 231,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="219,322 215,336 223,324 227,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="215,336 210,374 218,344 223,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,318 464,277 472,261 476,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,277 460,259 467,263 472,261 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,259 455,268 463,291 467,263 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,268 451,299 459,333 463,291 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,299 447,341 455,379 459,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,341 443,384 451,415 455,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,384 438,418 446,436 451,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,418 434,437 442,439 446,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,437 430,440 438,426 442,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="430,440 425,427 433,401 438,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,427 422,405 429,371 433,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,405 417,376 425,340 429,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,376 413,347 421,313 425,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,347 409,322 417,293 421,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,322 404,301 412,280 417,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,301 400,286 408,276 412,280 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,286 396,278 404,278 408,276 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,278 392,276 400,286 404,278 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,276 387,280 395,297 400,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,280 383,288 391,311 395,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,288 379,297 387,326 391,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,297 375,308 383,340 387,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,308 371,320 379,354 383,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,320 366,331 374,367 379,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,331 362,340 370,378 374,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,340 358,349 366,386 370,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,349 354,355 362,393 366,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,355 350,361 357,399 362,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,361 345,365 353,403 357,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="345,365 341,367 349,405 353,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,367 337,367 345,405 349,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,367 333,366 341,404 345,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,366 328,362 336,400 341,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,362 324,358 332,395 336,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="324,358 320,351 328,389 332,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,351 316,344 324,381 328,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,344 312,336 319,370 324,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,336 307,326 315,359 319,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,326 303,318 311,347 315,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="303,318 299,311 307,335 311,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,311 295,306 303,322 307,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="295,306 290,304 298,314 303,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,304 286,308 294,308 298,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="286,308 282,318 290,308 294,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="282,318 277,335 285,315 290,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="277,335 274,359 281,330 285,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="274,359 269,386 277,352 281,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="269,386 265,418 273,382 277,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="265,418 261,449 269,415 273,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="261,449 256,474 264,448 269,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="256,474 252,488 260,474 264,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="252,488 248,487 256,490 260,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="248,487 244,471 252,489 256,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="244,471 239,439 247,471 252,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="239,439 235,398 243,437 247,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="235,398 231,359 239,393 243,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="231,359 227,330 235,353 239,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="227,330 223,324 231,328 235,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="223,324 218,344 226,328 231,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,286 472,261 480,260 484,266 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,261 467,263 475,281 480,260 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,263 463,291 471,323 475,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,291 459,333 467,369 471,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,333 455,379 462,410 467,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,379 451,415 459,434 462,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,415 446,436 454,439 459,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,436 442,439 450,426 454,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,439 438,426 446,401 450,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,426 433,401 441,369 446,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,401 429,371 437,336 441,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,371 425,340 433,308 437,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,340 421,313 429,288 433,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,313 417,293 424,277 429,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,293 412,280 420,275 424,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,280 408,276 416,281 420,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,276 404,278 412,292 416,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,278 400,286 408,307 412,292 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,286 395,297 403,325 408,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,297 391,311 399,343 403,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,311 387,326 395,360 399,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,326 383,340 391,377 395,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,340 379,354 386,390 391,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,354 374,367 382,402 386,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,367 370,378 378,412 382,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,378 366,386 374,420 378,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,386 362,393 370,427 374,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,393 357,399 365,432 370,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,399 353,403 361,435 365,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="353,403 349,405 357,437 361,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="349,405 345,405 353,437 357,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="345,405 341,404 348,436 353,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,404 336,400 344,434 348,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="336,400 332,395 340,430 344,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="332,395 328,389 336,424 340,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,389 324,381 332,416 336,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="324,381 319,370 327,406 332,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="319,370 315,359 323,395 327,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="315,359 311,347 319,381 323,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="311,347 307,335 314,366 319,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,335 303,322 311,351 314,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="303,322 298,314 306,335 311,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="298,314 294,308 302,322 306,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="294,308 290,308 298,313 302,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,308 285,315 293,310 298,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="285,315 281,330 289,314 293,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="281,330 277,352 285,327 289,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="277,352 273,382 281,350 285,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="273,382 269,415 276,380 281,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="269,415 264,448 272,415 276,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="264,448 260,474 268,449 272,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="260,474 256,490 264,477 268,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="256,490 252,489 260,493 264,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="252,489 247,471 255,489 260,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="247,471 243,437 251,467 255,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="243,437 239,393 247,429 251,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="239,393 235,353 243,385 247,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="235,353 231,328 238,346 243,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="231,328 226,328 234,327 238,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,266 480,260 487,272 491,258 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,260 475,281 482,309 487,272 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,281 471,323 478,357 482,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,323 467,369 474,401 478,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,369 462,410 470,430 474,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,410 459,434 466,439 470,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,434 454,439 461,428 466,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="454,439 450,426 457,404 461,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,426 446,401 453,370 457,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,401 441,369 448,336 453,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,369 437,336 444,306 448,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,336 433,308 440,286 444,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,308 429,288 436,275 440,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,288 424,277 432,275 436,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,277 420,275 427,283 432,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,275 416,281 423,297 427,283 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,281 412,292 419,316 423,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,292 408,307 415,337 419,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,307 403,325 410,358 415,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,325 399,343 406,378 410,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,343 395,360 402,395 406,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,360 391,377 398,409 402,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,377 386,390 394,422 398,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,390 382,402 389,432 394,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,402 378,412 385,440 389,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="378,412 374,420 381,446 385,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,420 370,427 377,451 381,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,427 365,432 372,454 377,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,432 361,435 368,456 372,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="361,435 357,437 364,458 368,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,437 353,437 360,458 364,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="353,437 348,436 356,458 360,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,436 344,434 351,458 356,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="344,434 340,430 347,455 351,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="340,430 336,424 343,451 347,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="336,424 332,416 339,446 343,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="332,416 327,406 334,438 339,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="327,406 323,395 330,428 334,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="323,395 319,381 326,416 330,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="319,381 314,366 322,401 326,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="314,366 311,351 318,383 322,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="311,351 306,335 313,365 318,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="306,335 302,322 309,346 313,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="302,322 298,313 305,330 309,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="298,313 293,310 300,318 305,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="293,310 289,314 296,312 300,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="289,314 285,327 292,314 296,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="285,327 281,350 288,327 292,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="281,350 276,380 284,350 288,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="276,380 272,415 279,382 284,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="272,415 268,449 275,419 279,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="268,449 264,477 271,455 275,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="264,477 260,493 267,482 271,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="260,493 255,489 262,494 267,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="255,489 251,467 258,488 262,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="251,467 247,429 254,461 258,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="247,429 243,385 250,420 254,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="243,385 238,346 246,374 250,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="238,346 234,327 241,339 246,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,258 487,272 495,294 499,264 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,272 482,309 490,341 495,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,309 478,357 486,388 490,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,357 474,401 482,424 486,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,401 470,430 477,438 482,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,430 466,439 474,432 477,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,439 461,428 469,409 474,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,428 457,404 465,374 469,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,404 453,370 461,339 465,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,370 448,336 456,307 461,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,336 444,306 452,285 456,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,306 440,286 448,274 452,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,286 436,275 444,275 448,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,275 432,275 439,285 444,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,275 427,283 435,302 439,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,283 423,297 431,324 435,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,297 419,316 427,346 431,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,316 415,337 423,370 427,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,337 410,358 418,390 423,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,358 406,378 414,409 418,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,378 402,395 410,424 414,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,395 398,409 406,436 410,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,409 394,422 401,445 406,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,422 389,432 397,451 401,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,432 385,440 393,457 397,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,440 381,446 389,460 393,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,446 377,451 385,463 389,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,451 372,454 380,465 385,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,454 368,456 376,466 380,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,456 364,458 372,467 376,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,458 360,458 368,468 372,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,458 356,458 364,470 368,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,458 351,458 359,470 364,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,458 347,455 355,469 359,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,455 343,451 351,469 355,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,451 339,446 347,465 351,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,446 334,438 342,461 347,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="334,438 330,428 338,454 342,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="330,428 326,416 334,445 338,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="326,416 322,401 329,432 334,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="322,401 318,383 326,416 329,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="318,383 313,365 321,397 326,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,365 309,346 317,376 321,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="309,346 305,330 313,356 317,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="305,330 300,318 308,337 313,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="300,318 296,312 304,322 308,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="296,312 292,314 300,314 304,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="292,314 288,327 296,315 300,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="288,327 284,350 291,329 296,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="284,350 279,382 287,353 291,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="279,382 275,419 283,387 287,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="275,419 271,455 279,425 283,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="271,455 267,482 275,462 279,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="267,482 262,494 270,488 275,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="262,494 258,488 266,496 270,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="258,488 254,461 262,484 266,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="254,461 250,420 258,450 262,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="250,420 246,374 253,405 258,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="246,374 241,339 249,361 253,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,264 495,294 503,321 506,278 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,294 490,341 498,371 503,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,341 486,388 494,414 498,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,388 482,424 490,436 494,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,424 477,438 485,436 490,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,438 474,432 481,416 485,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,432 469,409 477,383 481,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,409 465,374 473,345 477,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,374 461,339 468,311 473,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,339 456,307 464,286 468,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,307 452,285 460,274 464,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,285 448,274 456,274 460,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,274 444,275 452,285 456,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,275 439,285 447,304 452,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,285 435,302 443,328 447,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,302 431,324 439,353 443,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,324 427,346 435,377 439,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,346 423,370 431,400 435,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,370 418,390 426,419 431,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,390 414,409 422,433 426,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,409 410,424 418,445 422,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,424 406,436 414,452 418,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,436 401,445 409,458 414,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,445 397,451 405,461 409,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,451 393,457 401,462 405,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,457 389,460 397,463 401,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,460 385,463 393,464 397,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,463 380,465 388,464 393,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,465 376,466 384,465 388,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,466 372,467 380,465 384,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,467 368,468 376,467 380,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,468 364,470 371,468 376,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,470 359,470 367,470 371,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,470 355,469 363,473 367,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,469 351,469 358,474 363,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,469 347,465 355,475 358,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,465 342,461 350,474 355,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,461 338,454 346,471 350,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="338,454 334,445 342,466 346,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="334,445 329,432 337,456 342,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,432 326,416 333,444 337,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="326,416 321,397 329,427 333,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="321,397 317,376 325,407 329,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="317,376 313,356 320,385 325,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,356 308,337 316,362 320,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,337 304,322 312,341 316,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,322 300,314 308,325 312,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="300,314 296,315 304,316 308,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="296,315 291,329 299,318 304,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="291,329 287,353 295,333 299,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="287,353 283,387 291,360 295,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="283,387 279,425 287,395 291,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="279,425 275,462 283,436 287,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="275,462 270,488 278,472 283,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="270,488 266,496 274,494 278,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="266,496 262,484 270,496 274,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="262,484 258,450 266,476 270,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="258,450 253,405 261,436 266,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="253,405 249,361 257,388 261,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,278 503,321 510,350 514,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,321 498,371 506,398 510,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,371 494,414 502,430 506,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,414 490,436 498,438 502,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,436 485,436 493,425 498,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,436 481,416 489,394 493,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,416 477,383 485,355 489,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,383 473,345 481,319 485,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="473,345 468,311 476,290 481,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,311 464,286 472,275 476,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,286 460,274 468,273 472,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,274 456,274 464,284 468,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,274 452,285 460,304 464,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,285 447,304 455,329 460,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,304 443,328 451,356 455,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,328 439,353 447,382 451,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,353 435,377 443,405 447,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,377 431,400 438,425 443,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,400 426,419 434,440 438,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,419 422,433 430,450 434,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,433 418,445 426,456 430,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,445 414,452 422,459 426,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,452 409,458 417,460 422,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,458 405,461 413,460 417,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,461 401,462 409,458 413,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,462 397,463 405,457 409,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,463 393,464 400,455 405,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,464 388,464 396,454 400,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,464 384,465 392,454 396,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,465 380,465 387,454 392,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,465 376,467 384,456 387,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,467 371,468 379,458 384,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,468 367,470 375,462 379,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,470 363,473 371,466 375,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="363,473 358,474 366,470 371,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,474 355,475 362,474 366,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,475 350,474 358,477 362,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,474 346,471 354,478 358,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,471 342,466 350,477 354,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,466 337,456 345,473 350,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,456 333,444 341,465 345,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,444 329,427 337,453 341,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,427 325,407 333,436 337,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,407 320,385 328,414 333,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,385 316,362 324,391 328,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,362 312,341 320,366 324,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,341 308,325 316,343 320,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,325 304,316 312,326 316,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,316 299,318 307,317 312,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,318 295,333 303,321 307,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="295,333 291,360 299,339 303,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="291,360 287,395 295,369 299,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="287,395 283,436 290,408 295,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="283,436 278,472 286,449 290,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="278,472 274,494 282,482 286,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="274,494 270,496 278,499 282,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="270,496 266,476 274,493 278,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="266,476 261,436 269,463 274,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="261,436 257,388 265,418 269,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,300 510,350 518,378 522,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,350 506,398 514,419 518,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,398 502,430 510,438 514,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="502,430 498,438 505,432 510,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,438 493,425 501,406 505,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,425 489,394 497,368 501,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,394 485,355 493,329 497,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,355 481,319 489,297 493,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,319 476,290 484,277 489,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,290 472,275 480,273 484,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,275 468,273 476,281 480,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,273 464,284 472,301 476,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,284 460,304 467,327 472,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,304 455,329 463,355 467,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,329 451,356 459,383 463,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,356 447,382 455,408 459,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,382 443,405 451,428 455,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,405 438,425 446,443 451,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,425 434,440 442,453 446,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,440 430,450 438,458 442,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="430,450 426,456 434,459 438,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,456 422,459 429,457 434,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,459 417,460 425,455 429,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,460 413,460 421,451 425,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,460 409,458 417,447 421,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,458 405,457 413,442 417,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,457 400,455 408,440 413,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,455 396,454 404,438 408,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,454 392,454 400,437 404,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,454 387,454 395,437 400,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,454 384,456 392,439 395,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,456 379,458 387,442 392,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,458 375,462 383,447 387,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,462 371,466 379,452 383,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,466 366,470 374,458 379,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,470 362,474 370,465 374,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,474 358,477 366,471 370,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,477 354,478 362,476 366,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,478 350,477 357,480 362,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,477 345,473 353,481 357,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="345,473 341,465 349,478 353,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,465 337,453 345,471 349,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,453 333,436 341,458 345,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,436 328,414 336,441 341,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,414 324,391 332,418 336,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="324,391 320,366 328,392 332,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,366 316,343 324,366 328,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,343 312,326 319,342 324,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,326 307,317 315,325 319,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,317 303,321 311,319 315,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="303,321 299,339 307,325 311,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="299,339 295,369 303,348 307,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="295,369 290,408 298,382 303,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,408 286,449 294,424 298,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="286,449 282,482 290,463 294,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="282,482 278,499 286,492 290,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="278,499 274,493 281,500 286,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="274,493 269,463 277,484 281,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="269,463 265,418 273,445 277,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,326 518,378 525,401 529,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,378 514,419 521,432 525,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,419 510,438 517,438 521,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,438 505,432 513,419 517,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,432 501,406 508,385 513,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,406 497,368 504,343 508,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="497,368 493,329 500,307 504,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,329 489,297 496,281 500,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,297 484,277 491,272 496,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,277 480,273 487,278 491,272 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,273 476,281 483,295 487,278 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,281 472,301 479,322 483,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,301 467,327 475,351 479,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,327 463,355 470,381 475,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,355 459,383 466,408 470,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,383 455,408 462,429 466,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,408 451,428 458,444 462,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,428 446,443 453,453 458,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,443 442,453 449,457 453,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,453 438,458 445,457 449,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,458 434,459 441,454 445,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,459 429,457 437,448 441,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,457 425,455 432,442 437,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,455 421,451 428,435 432,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,451 417,447 424,429 428,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,447 413,442 420,424 424,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,442 408,440 415,420 420,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,440 404,438 411,417 415,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,438 400,437 407,416 411,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,437 395,437 403,416 407,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,437 392,439 399,418 403,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,439 387,442 394,421 399,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,442 383,447 390,427 394,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,447 379,452 386,433 390,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,452 374,458 381,441 386,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,458 370,465 377,449 381,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,465 366,471 373,458 377,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,471 362,476 369,467 373,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,476 357,480 365,475 369,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,480 353,481 360,480 365,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="353,481 349,478 356,482 360,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="349,478 345,471 352,481 356,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="345,471 341,458 348,474 352,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,458 336,441 343,461 348,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="336,441 332,418 339,443 343,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="332,418 328,392 335,418 339,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,392 324,366 331,391 335,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="324,366 319,342 327,363 331,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="319,342 315,325 322,339 327,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="315,325 311,319 318,324 322,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="311,319 307,325 314,320 318,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="307,325 303,348 310,332 314,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="303,348 298,382 305,360 310,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="298,382 294,424 301,399 305,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="294,424 290,463 297,443 301,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="290,463 286,492 293,479 297,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="286,492 281,500 289,500 293,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="281,500 277,484 284,497 289,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="277,484 273,445 280,468 284,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,351 525,401 533,418 537,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,401 521,432 529,438 533,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,432 517,438 525,431 529,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,438 513,419 520,403 525,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,419 508,385 516,362 520,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,385 504,343 512,322 516,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,343 500,307 508,290 512,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,307 496,281 504,273 508,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,281 491,272 499,274 504,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,272 487,278 495,288 499,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,278 483,295 491,313 495,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,295 479,322 487,344 491,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,322 475,351 482,375 487,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,351 470,381 478,404 482,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,381 466,408 474,427 478,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,408 462,429 470,443 474,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,429 458,444 466,454 470,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,444 453,453 461,457 466,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,453 449,457 457,456 461,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,457 445,457 453,451 457,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="445,457 441,454 449,443 453,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,454 437,448 444,434 449,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,448 432,442 440,426 444,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,442 428,435 436,417 440,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,435 424,429 432,409 436,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,429 420,424 428,403 432,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,424 415,420 423,398 428,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,420 411,417 419,395 423,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,417 407,416 415,394 419,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,416 403,416 410,394 415,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,416 399,418 407,396 410,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,418 394,421 402,400 407,396 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,421 390,427 398,405 402,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,427 386,433 394,413 398,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,433 381,441 389,421 394,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,441 377,449 385,431 389,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,449 373,458 381,442 385,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="373,458 369,467 377,453 381,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="369,467 365,475 372,464 377,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,475 360,480 368,474 372,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,480 356,482 364,481 368,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,482 352,481 360,484 364,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="352,481 348,474 356,484 360,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,474 343,461 351,476 356,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,461 339,443 347,462 351,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,443 335,418 343,441 347,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="335,418 331,391 339,414 343,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="331,391 327,363 334,385 339,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="327,363 322,339 330,357 334,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="322,339 318,324 326,334 330,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="318,324 314,320 322,322 326,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="314,320 310,332 318,324 322,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="310,332 305,360 313,343 318,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="305,360 301,399 309,377 313,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="301,399 297,443 305,420 309,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="297,443 293,479 301,463 305,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="293,479 289,500 296,494 301,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="289,500 284,497 292,503 296,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="284,497 280,468 288,485 292,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,375 533,418 541,430 545,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,418 529,438 537,438 541,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,438 525,431 533,420 537,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,431 520,403 528,384 533,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,403 516,362 524,342 528,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,362 512,322 520,304 524,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,322 508,290 516,279 520,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,290 504,273 512,271 516,279 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,273 499,274 507,281 512,271 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,274 495,288 503,303 507,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,288 491,313 499,333 503,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,313 487,344 495,367 499,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,344 482,375 490,397 495,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,375 478,404 486,423 490,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,404 474,427 482,441 486,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,427 470,443 478,452 482,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,443 466,454 474,456 478,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,454 461,457 469,455 474,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,457 457,456 465,449 469,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,456 453,451 461,439 465,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,451 449,443 457,429 461,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,443 444,434 452,417 457,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,434 440,426 448,407 452,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,426 436,417 444,397 448,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,417 432,409 439,389 444,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,409 428,403 436,382 439,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,403 423,398 431,378 436,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,398 419,395 427,374 431,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,395 415,394 423,373 427,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,394 410,394 418,373 423,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,394 407,396 414,375 418,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,396 402,400 410,379 414,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,400 398,405 406,385 410,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,405 394,413 401,391 406,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,413 389,421 397,400 401,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,421 385,431 393,411 397,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,431 381,442 389,423 393,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,442 377,453 385,436 389,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,453 372,464 380,449 385,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,464 368,474 376,462 380,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,474 364,481 372,474 376,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,481 360,484 368,482 372,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,484 356,484 364,486 368,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,484 351,476 359,485 364,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,476 347,462 355,476 359,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,462 343,441 351,460 355,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,441 339,414 347,436 351,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,414 334,385 342,408 347,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="334,385 330,357 338,377 342,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="330,357 326,334 334,349 338,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="326,334 322,322 330,330 334,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="322,322 318,324 326,322 330,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="318,324 313,343 321,332 326,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,343 309,377 317,359 321,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="309,377 305,420 313,399 317,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="305,420 301,463 309,444 313,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="301,463 296,494 304,483 309,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="296,494 292,503 300,503 304,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="292,503 288,485 296,498 300,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,395 541,430 549,437 553,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,430 537,438 545,434 549,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,438 533,420 541,406 545,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,420 528,384 536,365 541,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,384 524,342 532,323 536,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,342 520,304 528,290 532,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,304 516,279 524,273 528,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,279 512,271 519,275 524,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,271 507,281 515,292 519,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,281 503,303 511,320 515,292 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,303 499,333 507,354 511,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,333 495,367 503,387 507,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,367 490,397 498,416 503,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,397 486,423 494,437 498,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,423 482,441 490,451 494,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,441 478,452 486,455 490,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,452 474,456 481,455 486,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,456 469,455 477,448 481,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,455 465,449 473,438 477,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,449 461,439 468,425 473,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,439 457,429 465,412 468,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,429 452,417 460,400 465,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,417 448,407 456,388 460,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,407 444,397 452,378 456,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,397 439,389 447,370 452,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,389 436,382 443,363 447,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,382 431,378 439,358 443,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,378 427,374 435,355 439,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,374 423,373 431,354 435,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,373 418,373 426,354 431,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,373 414,375 422,356 426,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,375 410,379 418,360 422,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,379 406,385 414,365 418,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,385 401,391 409,372 414,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,391 397,400 405,381 409,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,400 393,411 401,391 405,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,411 389,423 397,404 401,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,423 385,436 393,419 397,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,436 380,449 388,433 393,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,449 376,462 384,449 388,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,462 372,474 380,463 384,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,474 368,482 376,476 380,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,482 364,486 371,485 376,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,486 359,485 367,488 371,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,485 355,476 363,486 367,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,476 351,460 359,474 363,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,460 347,436 355,455 359,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,436 342,408 350,428 355,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,408 338,377 346,398 350,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="338,377 334,349 342,367 346,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="334,349 330,330 338,340 342,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="330,330 326,322 333,325 338,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="326,322 321,332 329,327 333,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="321,332 317,359 325,346 329,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="317,359 313,399 320,381 325,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="313,399 309,444 317,425 320,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="309,444 304,483 312,468 317,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="304,483 300,503 308,499 312,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="300,503 296,498 304,504 308,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,412 549,437 557,439 561,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,437 545,434 553,426 557,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,434 541,406 548,391 553,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,406 536,365 544,347 548,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,365 532,323 540,307 544,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,323 528,290 536,280 540,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,290 524,273 532,272 536,280 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,273 519,275 527,281 532,272 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,275 515,292 523,306 527,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,292 511,320 519,338 523,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="511,320 507,354 515,373 519,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,354 503,387 510,404 515,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,387 498,416 506,430 510,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,416 494,437 502,447 506,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,437 490,451 498,455 502,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,451 486,455 494,455 498,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,455 481,455 489,449 494,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,455 477,448 485,438 489,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,448 473,438 481,425 485,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="473,438 468,425 476,410 481,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,425 465,412 472,396 476,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,412 460,400 468,382 472,396 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,400 456,388 464,371 468,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,388 452,378 460,360 464,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,378 447,370 455,353 460,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,370 443,363 451,346 455,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,363 439,358 447,342 451,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,358 435,355 443,339 447,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,355 431,354 438,338 443,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,354 426,354 434,339 438,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,354 422,356 430,340 434,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,356 418,360 426,344 430,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,360 414,365 422,349 426,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,365 409,372 417,355 422,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,372 405,381 413,364 417,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,381 401,391 409,374 413,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,391 397,404 405,387 409,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,404 393,419 400,401 405,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,419 388,433 396,417 400,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,433 384,449 392,433 396,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,449 380,463 388,450 392,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,463 376,476 384,466 388,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,476 371,485 379,479 384,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,485 367,488 375,488 379,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,488 363,486 371,490 375,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="363,486 359,474 367,484 371,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,474 355,455 362,469 367,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,455 350,428 358,446 362,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,428 346,398 354,417 358,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,398 342,367 350,384 354,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="342,367 338,340 346,354 350,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="338,340 333,325 341,332 346,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,325 329,327 337,325 341,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="329,327 325,346 333,335 337,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,346 320,381 328,365 333,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,381 317,425 325,407 328,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="317,425 312,468 320,454 325,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="312,468 308,499 316,490 320,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="308,499 304,504 312,506 316,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,424 557,439 564,438 568,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,439 553,426 560,416 564,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,426 548,391 556,376 560,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,391 544,347 551,332 556,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,347 540,307 547,295 551,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,307 536,280 543,275 547,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,280 532,272 539,274 543,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,272 527,281 534,290 539,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,281 523,306 530,320 534,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,306 519,338 526,355 530,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,338 515,373 522,389 526,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,373 510,404 518,419 522,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,404 506,430 513,441 518,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,430 502,447 509,453 513,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="502,447 498,455 505,456 509,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,455 494,455 501,451 505,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,455 489,449 496,441 501,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,449 485,438 492,427 496,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,438 481,425 488,411 492,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,425 476,410 483,396 488,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,410 472,396 480,380 483,396 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,396 468,382 475,367 480,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,382 464,371 471,354 475,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,371 460,360 467,345 471,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,360 455,353 462,338 467,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,353 451,346 458,332 462,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,346 447,342 454,329 458,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,342 443,339 450,326 454,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,339 438,338 446,326 450,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,338 434,339 441,326 446,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,339 430,340 437,328 441,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="430,340 426,344 433,331 437,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,344 422,349 429,336 433,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,349 417,355 424,341 429,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,355 413,364 420,350 424,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,364 409,374 416,359 420,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,374 405,387 412,371 416,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,387 400,401 408,385 412,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,401 396,417 403,401 408,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="396,417 392,433 399,419 403,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="392,433 388,450 395,437 399,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,450 384,466 391,455 395,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,466 379,479 386,471 391,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,479 375,488 382,484 386,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="375,488 371,490 378,490 382,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,490 367,484 374,490 378,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,484 362,469 370,480 374,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,469 358,446 365,461 370,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="358,446 354,417 361,434 365,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="354,417 350,384 357,401 361,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="350,384 346,354 353,368 357,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="346,354 341,332 348,341 353,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="341,332 337,325 344,327 348,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="337,325 333,335 340,331 344,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="333,335 328,365 335,353 340,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="328,365 325,407 332,392 335,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="325,407 320,454 327,438 332,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="320,454 316,490 323,481 327,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="316,490 312,506 319,505 323,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,432 564,438 572,435 576,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,438 560,416 568,406 572,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,416 556,376 563,362 568,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,376 551,332 559,319 563,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,332 547,295 555,286 559,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,295 543,275 551,272 555,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,275 539,274 547,279 551,272 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,274 534,290 542,300 547,279 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,290 530,320 538,334 542,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,320 526,355 534,370 538,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="526,355 522,389 530,403 534,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,389 518,419 525,430 530,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,419 513,441 521,448 525,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,441 509,453 517,455 521,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,453 505,456 513,454 517,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,456 501,451 509,445 513,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,451 496,441 504,432 509,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,441 492,427 500,415 504,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,427 488,411 496,399 500,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,411 483,396 491,381 496,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,396 480,380 488,366 491,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,380 475,367 483,352 488,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,367 471,354 479,342 483,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,354 467,345 475,333 479,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,345 462,338 470,326 475,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,338 458,332 466,321 470,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,332 454,329 462,318 466,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="454,329 450,326 458,316 462,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,326 446,326 453,316 458,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,326 441,326 449,317 453,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,326 437,328 445,318 449,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,328 433,331 441,321 445,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,331 429,336 437,325 441,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,336 424,341 432,330 437,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,341 420,350 428,338 432,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,350 416,359 424,347 428,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,359 412,371 420,358 424,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,371 408,385 415,371 420,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,385 403,401 411,387 415,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,401 399,419 407,404 411,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,419 395,437 403,424 407,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,437 391,455 399,443 403,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,455 386,471 394,462 399,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,471 382,484 390,477 394,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,484 378,490 386,488 390,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="378,490 374,490 382,492 386,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,490 370,480 377,487 382,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,480 365,461 373,472 377,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,461 361,434 369,448 373,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="361,434 357,401 365,417 369,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="357,401 353,368 361,382 365,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="353,368 348,341 356,351 361,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,341 344,327 352,332 356,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="344,327 340,331 348,328 352,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="340,331 335,353 343,344 348,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="335,353 332,392 340,379 343,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="332,392 327,438 335,425 340,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="327,438 323,481 331,470 335,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="323,481 319,505 327,502 331,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,437 572,435 580,429 584,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,435 568,406 576,395 580,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,406 563,362 571,350 576,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,362 559,319 567,308 571,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,319 555,286 563,281 567,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,286 551,272 559,273 563,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,272 547,279 555,285 559,273 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,279 542,300 550,312 555,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,300 538,334 546,347 550,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,334 534,370 542,383 546,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,370 530,403 538,416 542,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,403 525,430 533,439 538,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,430 521,448 529,453 533,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,448 517,455 525,456 529,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,455 513,454 520,451 525,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,454 509,445 517,438 520,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,445 504,432 512,423 517,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,432 500,415 508,404 512,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,415 496,399 504,386 508,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,399 491,381 499,369 504,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,381 488,366 495,353 499,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,366 483,352 491,341 495,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,352 479,342 487,331 491,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,342 475,333 482,323 487,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,333 470,326 478,317 482,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,326 466,321 474,313 478,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,321 462,318 470,311 474,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,318 458,316 466,310 470,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,316 453,316 461,309 466,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,316 449,317 457,311 461,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,317 445,318 453,312 457,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="445,318 441,321 449,315 453,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,321 437,325 444,318 449,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,325 432,330 440,322 444,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,330 428,338 436,329 440,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,338 424,347 432,337 436,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,347 420,358 428,347 432,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,358 415,371 423,360 428,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,371 411,387 419,374 423,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,387 407,404 415,392 419,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,404 403,424 411,411 415,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,424 399,443 407,432 411,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,443 394,462 402,453 407,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,462 390,477 398,471 402,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,477 386,488 394,485 398,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,488 382,492 390,493 394,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,492 377,487 385,492 390,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,487 373,472 381,481 385,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="373,472 369,448 377,460 381,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="369,448 365,417 372,430 377,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="365,417 361,382 369,395 372,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="361,382 356,351 364,363 369,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,351 352,332 360,338 364,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="352,332 348,328 356,328 360,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="348,328 343,344 351,339 356,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,344 340,379 347,368 351,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="340,379 335,425 343,412 347,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="335,425 331,470 339,459 343,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="331,470 327,502 334,496 339,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,440 580,429 588,423 592,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,429 576,395 584,385 588,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,395 571,350 579,340 584,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,350 567,308 575,300 579,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,308 563,281 571,277 575,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,281 559,273 567,274 571,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,273 555,285 562,291 567,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,285 550,312 558,322 562,291 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,312 546,347 554,359 558,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,347 542,383 549,395 554,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,383 538,416 546,425 549,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,416 533,439 541,445 546,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,439 529,453 537,455 541,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,453 525,456 533,455 537,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,456 520,451 528,446 533,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,451 517,438 524,431 528,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,438 512,423 520,414 524,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,423 508,404 516,394 520,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,404 504,386 512,375 516,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,386 499,369 507,358 512,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,369 495,353 503,343 507,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,353 491,341 499,332 503,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,341 487,331 495,323 499,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,331 482,323 490,316 495,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,323 478,317 486,311 490,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,317 474,313 482,307 486,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,313 470,311 478,306 482,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,311 466,310 474,305 478,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,310 461,309 469,306 474,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,309 457,311 465,307 469,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,311 453,312 461,308 465,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,312 449,315 457,310 461,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,315 444,318 452,313 457,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,318 440,322 448,317 452,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,322 436,329 444,322 448,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,329 432,337 440,330 444,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,337 428,347 436,339 440,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,347 423,360 431,351 436,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,360 419,374 427,364 431,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,374 415,392 423,381 427,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,392 411,411 419,400 423,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,411 407,432 414,422 419,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,432 402,453 410,444 414,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,453 398,471 406,463 410,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,471 394,485 401,481 406,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,485 390,493 398,492 401,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,493 385,492 393,494 398,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,492 381,481 389,487 393,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="381,481 377,460 385,469 389,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,460 372,430 380,441 385,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,430 369,395 376,407 380,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="369,395 364,363 372,373 376,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,363 360,338 368,344 372,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="360,338 356,328 364,330 368,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="356,328 351,339 359,335 364,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,339 347,368 355,360 359,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,368 343,412 351,402 355,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="343,412 339,459 347,450 351,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="339,459 334,496 342,491 347,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,440 588,423 596,418 600,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,423 584,385 591,376 596,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,385 579,340 587,330 591,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,340 575,300 583,293 587,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,300 571,277 579,275 583,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,277 567,274 575,277 579,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,274 562,291 570,298 575,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,291 558,322 566,331 570,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,322 554,359 562,369 566,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="554,359 549,395 557,404 562,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,395 546,425 553,432 557,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,425 541,445 549,450 553,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,445 537,455 545,456 549,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,455 533,455 541,453 545,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,455 528,446 536,441 541,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,446 524,431 532,425 536,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,431 520,414 528,405 532,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,414 516,394 524,385 528,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,394 512,375 519,367 524,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,375 507,358 515,350 519,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,358 503,343 511,336 515,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,343 499,332 507,325 511,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,332 495,323 503,316 507,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,323 490,316 498,310 503,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,316 486,311 494,306 498,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,311 482,307 490,304 494,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,307 478,306 486,303 490,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,306 474,305 481,303 486,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,305 469,306 477,304 481,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,306 465,307 473,305 477,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,307 461,308 469,306 473,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,308 457,310 465,308 469,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,310 452,313 460,310 465,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,313 448,317 456,314 460,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,317 444,322 452,318 456,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,322 440,330 448,324 452,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,330 436,339 443,332 448,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,339 431,351 439,343 443,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,351 427,364 435,357 439,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,364 423,381 431,373 435,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,381 419,400 427,392 431,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,400 414,422 422,413 427,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,422 410,444 418,435 422,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,444 406,463 414,457 418,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,463 401,481 409,476 414,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,481 398,492 405,490 409,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,492 393,494 401,495 405,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,494 389,487 397,492 401,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="389,487 385,469 393,476 397,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,469 380,441 388,451 393,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,441 376,407 384,418 388,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,407 372,373 380,382 384,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="372,373 368,344 376,351 380,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="368,344 364,330 371,332 376,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="364,330 359,335 367,333 371,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,335 355,360 363,353 367,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,360 351,402 359,393 363,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="351,402 347,450 355,441 359,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="347,450 342,491 350,485 355,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,440 596,418 603,413 607,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,418 591,376 599,370 603,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,376 587,330 594,324 599,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,330 583,293 590,289 594,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,293 579,275 586,274 590,289 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,275 575,277 582,280 586,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,277 570,298 577,304 582,280 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,298 566,331 573,339 577,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,331 562,369 569,377 573,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,369 557,404 564,412 569,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,404 553,432 561,438 564,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,432 549,450 556,453 561,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,450 545,456 552,456 556,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,456 541,453 548,450 552,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,453 536,441 543,437 548,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,441 532,425 539,419 543,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,425 528,405 535,399 539,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,405 524,385 531,378 535,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,385 519,367 527,359 531,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,367 515,350 522,343 527,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,350 511,336 518,329 522,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="511,336 507,325 514,319 518,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,325 503,316 510,311 514,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,316 498,310 505,306 510,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,310 494,306 501,304 505,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,306 490,304 497,301 501,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,304 486,303 493,302 497,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,303 481,303 489,301 493,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,303 477,304 484,302 489,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,304 473,305 480,303 484,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="473,305 469,306 476,305 480,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,306 465,308 472,306 476,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,308 460,310 467,309 472,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,310 456,314 463,311 467,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,314 452,318 459,316 463,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,318 448,324 455,320 459,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,324 443,332 451,328 455,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,332 439,343 446,338 451,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,343 435,357 442,350 446,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="435,357 431,373 438,366 442,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,373 427,392 434,385 438,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,392 422,413 429,405 434,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,413 418,435 425,429 429,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="418,435 414,457 421,451 425,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,457 409,476 416,471 421,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,476 405,490 413,487 416,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,490 401,495 408,496 413,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="401,495 397,492 404,494 408,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="397,492 393,476 400,482 404,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,476 388,451 395,458 400,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="388,451 384,418 391,426 395,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="384,418 380,382 387,390 391,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="380,382 376,351 383,358 387,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="376,351 371,332 379,336 383,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="371,332 367,333 374,332 379,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="367,333 363,353 370,349 374,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="363,353 359,393 366,386 370,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="359,393 355,441 362,435 366,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="355,441 350,485 357,480 362,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,439 603,413 611,408 615,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,413 599,370 606,364 611,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,370 594,324 602,319 606,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,324 590,289 598,286 602,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,289 586,274 594,274 598,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,274 582,280 590,283 594,274 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,280 577,304 585,309 590,283 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,304 573,339 581,345 585,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,339 569,377 577,384 581,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="569,377 564,412 572,418 577,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,412 561,438 568,442 572,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,438 556,453 564,455 568,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,453 552,456 560,456 564,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,456 548,450 556,448 560,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,450 543,437 551,434 556,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,437 539,419 547,414 551,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,419 535,399 543,393 547,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,399 531,378 539,373 543,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,378 527,359 534,354 539,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,359 522,343 530,338 534,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,343 518,329 526,326 530,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,329 514,319 522,315 526,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,319 510,311 518,309 522,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,311 505,306 513,304 518,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,306 501,304 509,302 513,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,304 497,301 505,301 509,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="497,301 493,302 501,301 505,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,302 489,301 496,301 501,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,301 484,302 492,302 496,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,302 480,303 488,303 492,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,303 476,305 484,304 488,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,305 472,306 480,305 484,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,306 467,309 475,308 480,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,309 463,311 471,311 475,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,311 459,316 467,313 471,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,316 455,320 463,318 467,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,320 451,328 458,326 463,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,328 446,338 454,334 458,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,338 442,350 450,347 454,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,350 438,366 446,361 450,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,366 434,385 442,379 446,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,385 429,405 437,401 442,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,405 425,429 433,423 437,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,429 421,451 429,447 433,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,451 416,471 424,468 429,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,471 413,487 420,485 424,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,487 408,496 416,495 420,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,496 404,494 412,497 416,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="404,494 400,482 408,486 412,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,482 395,458 403,464 408,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,458 391,426 399,432 403,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,426 387,390 395,396 399,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="387,390 383,358 391,363 395,396 "/>
+<polygon opacity="0.2" fill="#0000FF" points="383,358 379,336 386,339 391,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="379,336 374,332 382,332 386,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,332 370,349 378,347 382,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,349 366,386 374,382 378,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="366,386 362,435 370,429 374,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="362,435 357,480 365,476 370,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,438 611,408 619,406 623,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,408 606,364 614,360 619,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,364 602,319 610,315 614,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,319 598,286 606,284 610,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,286 594,274 601,275 606,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,274 590,283 598,286 601,275 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,283 585,309 593,314 598,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,309 581,345 589,350 593,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,345 577,384 585,389 589,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,384 572,418 580,422 585,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,418 568,442 576,445 580,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,442 564,455 572,457 576,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,455 560,456 568,456 572,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,456 556,448 563,446 568,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,448 551,434 559,431 563,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,434 547,414 555,410 559,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,414 543,393 551,389 555,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,393 539,373 547,369 551,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,373 534,354 542,351 547,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,354 530,338 538,335 542,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,338 526,326 534,323 538,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="526,326 522,315 530,313 534,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,315 518,309 525,307 530,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,309 513,304 521,303 525,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,304 509,302 517,302 521,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,302 505,301 513,300 517,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,301 501,301 509,300 513,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,301 496,301 504,302 509,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,301 492,302 500,303 504,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,302 488,303 496,304 500,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,303 484,304 492,305 496,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,304 480,305 488,306 492,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,305 475,308 483,307 488,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,308 471,311 479,309 483,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,311 467,313 475,313 479,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,313 463,318 471,317 475,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,318 458,326 466,323 471,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,326 454,334 462,332 466,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="454,334 450,347 458,344 462,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,347 446,361 453,358 458,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,361 442,379 450,376 453,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,379 437,401 445,397 450,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,401 433,423 441,419 445,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,423 429,447 437,443 441,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,447 424,468 432,465 437,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,468 420,485 428,483 432,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,485 416,495 424,495 428,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,495 412,497 420,498 424,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="412,497 408,486 415,489 420,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,486 403,464 411,469 415,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,464 399,432 407,438 411,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,432 395,396 403,401 407,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="395,396 391,363 399,367 403,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="391,363 386,339 394,341 399,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,339 382,332 390,333 394,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,332 378,347 386,345 390,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="378,347 374,382 382,378 386,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="374,382 370,429 377,425 382,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="370,429 365,476 373,474 377,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,436 619,406 627,404 630,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,406 614,360 622,358 627,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,360 610,315 618,314 622,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,315 606,284 614,284 618,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,284 601,275 609,276 614,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,275 598,286 605,287 609,276 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,286 593,314 601,316 605,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="593,314 589,350 597,354 601,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,350 585,389 592,392 597,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,389 580,422 588,425 592,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,422 576,445 584,446 588,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,445 572,457 580,457 584,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,457 568,456 576,457 580,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,456 563,446 571,446 576,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,446 559,431 567,430 571,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,431 555,410 563,409 567,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,410 551,389 559,387 563,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,389 547,369 555,367 559,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,369 542,351 550,349 555,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,351 538,335 546,333 550,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,335 534,323 542,322 546,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,323 530,313 538,312 542,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,313 525,307 533,306 538,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,307 521,303 529,303 533,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,303 517,302 525,301 529,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,302 513,300 521,301 525,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,300 509,300 517,301 521,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,300 504,302 512,302 517,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,302 500,303 508,303 512,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,303 496,304 504,305 508,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,304 492,305 500,306 504,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,305 488,306 495,307 500,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,306 483,307 491,308 495,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,307 479,309 487,310 491,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,309 475,313 482,313 487,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,313 471,317 479,317 482,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,317 466,323 474,322 479,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,323 462,332 470,331 474,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,332 458,344 466,343 470,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,344 453,358 461,356 466,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,358 450,376 457,374 461,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,376 445,397 453,395 457,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="445,397 441,419 449,417 453,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,419 437,443 444,442 449,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,443 432,465 440,464 444,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,465 428,483 436,483 440,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,483 424,495 432,496 436,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,495 420,498 428,499 432,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,498 415,489 423,490 428,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,489 411,469 419,471 423,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,469 407,438 415,441 419,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,438 403,401 411,405 415,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="403,401 399,367 407,369 411,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="399,367 394,341 402,343 407,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,341 390,333 398,333 402,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,333 386,345 394,344 398,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="386,345 382,378 390,377 394,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="382,378 377,425 385,423 390,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="377,425 373,474 381,472 385,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,436 627,404 634,404 638,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,404 622,358 630,358 634,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,358 618,314 626,314 630,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,314 614,284 622,284 626,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,284 609,276 617,276 622,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,276 605,287 613,289 617,276 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,287 601,316 609,318 613,289 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,316 597,354 605,355 609,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="597,354 592,392 600,394 605,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,392 588,425 596,426 600,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,425 584,446 592,448 596,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,446 580,457 588,458 592,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,457 576,457 584,456 588,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,457 571,446 579,446 584,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,446 567,430 575,429 579,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,430 563,409 571,409 575,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,409 559,387 567,387 571,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,387 555,367 562,367 567,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,367 550,349 558,348 562,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,349 546,333 554,334 558,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,333 542,322 550,321 554,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,322 538,312 546,313 550,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,312 533,306 541,307 546,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,306 529,303 537,304 541,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,303 525,301 533,302 537,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,301 521,301 529,301 533,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,301 517,301 524,302 529,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,301 512,302 520,303 524,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,302 508,303 516,304 520,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,303 504,305 512,304 516,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,305 500,306 508,306 512,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,306 495,307 503,307 508,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,307 491,308 499,309 503,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,308 487,310 495,311 499,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,310 482,313 490,314 495,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,313 479,317 486,317 490,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,317 474,322 482,323 486,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,322 470,331 478,331 482,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,331 466,343 474,342 478,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,343 461,356 469,357 474,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,356 457,374 465,374 469,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,374 453,395 461,395 465,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,395 449,417 457,417 461,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,417 444,442 452,441 457,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,442 440,464 448,464 452,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,464 436,483 444,483 448,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,483 432,496 440,496 444,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,496 428,499 436,499 440,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,499 423,490 431,492 436,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,490 419,471 427,472 431,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,471 415,441 423,442 427,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="415,441 411,405 419,406 423,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="411,405 407,369 414,371 419,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="407,369 402,343 410,344 414,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,343 398,333 406,334 410,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,333 394,344 402,344 406,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="394,344 390,377 398,376 402,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="390,377 385,423 393,423 398,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="385,423 381,472 389,471 393,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,437 634,404 642,406 645,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,404 630,358 637,360 642,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,358 626,314 633,315 637,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="626,314 622,284 629,285 633,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,284 617,276 624,277 629,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,276 613,289 620,289 624,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,289 609,318 616,317 620,289 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,318 605,355 612,355 616,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,355 600,394 607,394 612,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,394 596,426 603,426 607,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,426 592,448 599,447 603,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,448 588,458 595,458 599,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,458 584,456 591,458 595,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,456 579,446 586,447 591,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,446 575,429 582,431 586,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,429 571,409 578,410 582,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,409 567,387 574,389 578,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,387 562,367 570,368 574,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,367 558,348 565,350 570,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,348 554,334 561,334 565,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="554,334 550,321 557,323 561,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,321 546,313 553,313 557,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,313 541,307 548,307 553,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,307 537,304 544,304 548,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,304 533,302 540,303 544,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,302 529,301 536,302 540,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,301 524,302 532,302 536,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,302 520,303 527,303 532,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,303 516,304 523,305 527,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,304 512,304 519,306 523,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,304 508,306 515,307 519,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,306 503,307 510,308 515,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,307 499,309 506,309 510,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,309 495,311 502,311 506,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,311 490,314 497,314 502,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,314 486,317 494,318 497,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,317 482,323 489,324 494,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,323 478,331 485,332 489,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,331 474,342 481,344 485,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,342 469,357 476,357 481,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,357 465,374 472,375 476,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,374 461,395 468,396 472,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="461,395 457,417 464,419 468,396 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,417 452,441 459,443 464,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,441 448,464 455,465 459,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,464 444,483 451,484 455,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,483 440,496 447,497 451,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="440,496 436,499 443,500 447,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,499 431,492 438,491 443,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="431,492 427,472 434,472 438,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="427,472 423,442 430,442 434,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="423,442 419,406 426,406 430,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="419,406 414,371 422,371 426,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="414,371 410,344 417,344 422,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="410,344 406,334 413,335 417,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="406,334 402,344 409,346 413,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="402,344 398,376 405,378 409,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="398,376 393,423 400,424 405,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="393,423 389,471 396,473 400,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,437 642,406 649,409 653,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,406 637,360 645,363 649,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,360 633,315 641,318 645,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,315 629,285 637,287 641,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,285 624,277 632,277 637,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,277 620,289 628,288 632,277 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,289 616,317 624,316 628,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,317 612,355 620,353 624,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,355 607,394 615,392 620,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,394 603,426 611,425 615,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,426 599,447 607,447 611,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,447 595,458 603,459 607,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,458 591,458 599,458 603,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,458 586,447 594,449 599,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,447 582,431 590,433 594,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,431 578,410 586,413 590,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,410 574,389 582,392 586,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,389 570,368 577,372 582,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,368 565,350 573,353 577,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,350 561,334 569,338 573,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,334 557,323 565,325 569,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,323 553,313 561,316 565,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,313 548,307 556,310 561,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,307 544,304 552,306 556,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,304 540,303 548,304 552,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,303 536,302 544,303 548,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,302 532,302 539,303 544,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,302 527,303 535,304 539,303 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,303 523,305 531,305 535,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,305 519,306 527,306 531,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,306 515,307 523,307 527,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,307 510,308 518,309 523,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,308 506,309 514,310 518,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,309 502,311 510,312 514,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="502,311 497,314 505,316 510,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="497,314 494,318 501,319 505,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,318 489,324 497,326 501,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,324 485,332 493,334 497,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,332 481,344 489,346 493,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,344 476,357 484,361 489,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,357 472,375 480,379 484,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,375 468,396 476,399 480,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,396 464,419 472,422 476,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,419 459,443 467,445 472,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,443 455,465 463,468 467,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,465 451,484 459,486 463,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,484 447,497 455,498 459,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,497 443,500 451,501 455,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,500 438,491 446,491 451,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,491 434,472 442,471 446,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,472 430,442 438,440 442,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="430,442 426,406 434,404 438,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="426,406 422,371 429,369 434,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="422,371 417,344 425,344 429,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,344 413,335 421,335 425,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,335 409,346 417,347 421,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="409,346 405,378 413,380 417,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="405,378 400,424 408,428 413,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="400,424 396,473 404,476 408,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,439 649,409 657,412 661,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,409 645,363 653,368 657,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,363 641,318 649,323 653,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,318 637,287 644,290 649,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,287 632,277 640,278 644,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,277 628,288 636,287 640,278 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,288 624,316 632,313 636,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,316 620,353 628,349 632,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,353 615,392 623,388 628,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,392 611,425 619,422 623,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,425 607,447 615,446 619,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,447 603,459 611,459 615,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,459 599,458 606,460 611,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,458 594,449 602,452 606,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,449 590,433 598,437 602,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,433 586,413 594,418 598,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,413 582,392 590,397 594,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,392 577,372 585,377 590,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,372 573,353 581,357 585,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,353 569,338 577,342 581,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="569,338 565,325 573,329 577,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,325 561,316 568,319 573,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,316 556,310 564,313 568,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,310 552,306 560,308 564,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,306 548,304 556,306 560,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,304 544,303 552,305 556,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,303 539,303 547,304 552,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,303 535,304 543,305 547,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,304 531,305 539,306 543,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,305 527,306 534,307 539,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,306 523,307 531,308 534,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,307 518,309 526,309 531,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,309 514,310 522,311 526,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,310 510,312 518,314 522,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,312 505,316 513,317 518,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,316 501,319 509,322 513,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,319 497,326 505,329 509,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="497,326 493,334 501,338 505,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,334 489,346 496,350 501,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,346 484,361 492,365 496,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,361 480,379 488,383 492,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,379 476,399 484,405 488,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,399 472,422 480,427 484,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,422 467,445 475,450 480,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,445 463,468 471,472 475,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,468 459,486 467,489 471,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,486 455,498 463,499 467,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,498 451,501 458,500 463,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,501 446,491 454,490 458,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,491 442,471 450,468 454,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,471 438,440 446,436 450,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="438,440 434,404 442,400 446,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="434,404 429,369 437,367 442,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,369 425,344 433,343 437,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,344 421,335 429,336 433,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="421,335 417,347 425,350 429,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="417,347 413,380 420,385 425,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="413,380 408,428 416,433 420,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="408,428 404,476 412,479 416,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,441 657,412 665,418 669,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,412 653,368 661,375 665,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,368 649,323 657,329 661,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,323 644,290 652,295 657,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,290 640,278 648,279 652,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,278 636,287 644,285 648,279 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,287 632,313 640,309 644,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,313 628,349 636,344 640,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,349 623,388 631,382 636,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,388 619,422 627,417 631,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,422 615,446 623,443 627,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,446 611,459 619,458 623,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,459 606,460 614,462 619,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,460 602,452 610,456 614,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,452 598,437 606,442 610,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,437 594,418 602,424 606,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,418 590,397 598,404 602,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,397 585,377 593,383 598,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,377 581,357 589,364 593,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,357 577,342 585,348 589,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,342 573,329 581,335 585,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,329 568,319 576,324 581,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,319 564,313 572,316 576,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,313 560,308 568,311 572,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,308 556,306 563,309 568,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,306 552,305 560,307 563,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,305 547,304 555,307 560,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,304 543,305 551,306 555,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,305 539,306 547,307 551,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,306 534,307 542,309 547,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,307 531,308 538,310 542,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,308 526,309 534,311 538,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="526,309 522,311 530,314 534,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,311 518,314 525,316 530,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,314 513,317 521,321 525,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,317 509,322 517,325 521,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,322 505,329 513,333 517,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,329 501,338 509,343 513,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,338 496,350 504,355 509,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,350 492,365 500,371 504,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,365 488,383 496,390 500,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,383 484,405 492,410 496,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,405 480,427 488,434 492,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,427 475,450 483,456 488,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,450 471,472 479,476 483,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,472 467,489 475,493 479,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,489 463,499 471,501 475,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,499 458,500 466,499 471,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,500 454,490 462,487 466,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="454,490 450,468 458,463 462,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,468 446,436 454,431 458,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="446,436 442,400 450,395 454,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="442,400 437,367 445,363 450,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,367 433,343 441,341 445,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,343 429,336 437,337 441,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="429,336 425,350 433,355 437,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="425,350 420,385 428,391 433,355 "/>
+<polygon opacity="0.2" fill="#0000FF" points="420,385 416,433 424,440 428,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="416,433 412,479 420,485 424,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="669,444 665,418 673,424 677,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="665,418 661,375 669,383 673,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,375 657,329 665,337 669,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,329 652,295 660,300 665,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,295 648,279 656,281 660,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,279 644,285 652,283 656,281 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,285 640,309 648,304 652,283 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,309 636,344 643,337 648,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,344 631,382 639,376 643,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,382 627,417 635,411 639,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,417 623,443 631,438 635,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,443 619,458 627,457 631,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,458 614,462 622,462 627,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,462 610,456 618,459 622,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,456 606,442 614,448 618,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,442 602,424 610,431 614,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,424 598,404 605,412 610,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,404 593,383 601,391 605,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="593,383 589,364 597,373 601,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,364 585,348 592,356 597,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,348 581,335 589,342 592,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,335 576,324 584,331 589,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,324 572,316 580,322 584,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,316 568,311 576,317 580,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,311 563,309 571,312 576,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,309 560,307 567,311 571,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,307 555,307 563,309 567,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,307 551,306 559,310 563,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,306 547,307 555,310 559,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,307 542,309 550,311 555,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,309 538,310 546,312 550,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,310 534,311 542,314 546,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,311 530,314 538,316 542,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,314 525,316 533,320 538,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,316 521,321 529,324 533,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,321 517,325 525,330 529,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,325 513,333 521,339 525,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,333 509,343 517,350 521,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,343 504,355 512,363 517,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,355 500,371 508,380 512,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,371 496,390 504,398 508,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,390 492,410 500,419 504,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,410 488,434 495,442 500,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,434 483,456 491,463 495,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,456 479,476 487,482 491,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,476 475,493 483,496 487,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,493 471,501 479,501 483,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,501 466,499 474,498 479,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,499 462,487 470,482 474,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,487 458,463 466,457 470,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="458,463 454,431 462,424 466,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="454,431 450,395 457,388 462,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="450,395 445,363 453,357 457,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="445,363 441,341 449,339 453,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,341 437,337 444,339 449,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="437,337 433,355 441,360 444,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="433,355 428,391 436,399 441,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="428,391 424,440 432,447 436,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="424,440 420,485 428,491 432,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,446 673,424 680,431 684,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,424 669,383 676,393 680,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="669,383 665,337 672,347 676,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="665,337 660,300 667,307 672,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="660,300 656,281 663,284 667,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,281 652,283 659,282 663,284 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,283 648,304 655,298 659,282 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,304 643,337 651,330 655,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,337 639,376 646,366 651,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,376 635,411 642,402 646,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,411 631,438 638,433 642,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,438 627,457 634,453 638,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,457 622,462 629,463 634,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,462 618,459 625,462 629,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,459 614,448 621,454 625,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,448 610,431 617,439 621,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,431 605,412 613,421 617,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,412 601,391 608,402 613,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,391 597,373 604,382 608,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="597,373 592,356 600,366 604,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,356 589,342 596,351 600,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,342 584,331 591,340 596,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,331 580,322 587,330 591,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,322 576,317 583,323 587,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,317 571,312 578,318 583,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,312 567,311 575,315 578,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,311 563,309 570,313 575,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,309 559,310 566,313 570,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,310 555,310 562,313 566,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,310 550,311 557,314 562,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,311 546,312 553,315 557,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,312 542,314 549,317 553,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,314 538,316 545,320 549,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,316 533,320 540,324 545,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,320 529,324 536,330 540,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,324 525,330 532,337 536,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,330 521,339 528,346 532,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,339 517,350 524,358 528,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,350 512,363 519,372 524,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="512,363 508,380 515,389 519,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,380 504,398 511,408 515,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,398 500,419 507,430 511,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,419 495,442 503,451 507,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,442 491,463 498,471 503,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="491,463 487,482 494,488 498,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="487,482 483,496 490,499 494,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,496 479,501 486,502 490,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,501 474,498 481,494 486,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="474,498 470,482 477,477 481,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="470,482 466,457 473,449 477,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="466,457 462,424 469,415 473,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="462,424 457,388 465,381 469,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="457,388 453,357 460,351 465,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="453,357 449,339 456,338 460,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="449,339 444,339 452,342 456,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="444,339 441,360 448,367 452,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="441,360 436,399 443,409 448,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="436,399 432,447 439,458 443,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="432,447 428,491 435,498 439,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,448 680,431 688,438 692,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,431 676,393 684,403 688,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,393 672,347 680,358 684,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,347 667,307 675,317 680,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,307 663,284 671,290 675,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,284 659,282 667,282 671,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,282 655,298 663,294 667,282 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,298 651,330 658,321 663,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,330 646,366 654,356 658,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,366 642,402 650,392 654,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,402 638,433 646,425 650,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,433 634,453 642,448 646,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,453 629,463 637,462 642,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,463 625,462 633,465 637,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,462 621,454 629,460 633,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,454 617,439 625,447 629,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,439 613,421 620,432 625,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,421 608,402 616,413 620,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,402 604,382 612,395 616,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,382 600,366 607,378 612,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,366 596,351 604,362 607,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,351 591,340 599,350 604,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,340 587,330 595,340 599,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,330 583,323 591,332 595,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,323 578,318 586,326 591,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,318 575,315 582,322 586,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,315 570,313 578,320 582,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,313 566,313 574,319 578,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,313 562,313 570,318 574,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,313 557,314 565,319 570,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,314 553,315 561,320 565,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,315 549,317 557,323 561,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,317 545,320 553,327 557,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,320 540,324 548,331 553,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,324 536,330 544,338 548,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,330 532,337 540,346 544,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,337 528,346 536,356 540,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,346 524,358 532,369 536,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,358 519,372 527,383 532,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,372 515,389 523,401 527,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,389 511,408 519,420 523,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="511,408 507,430 515,441 519,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,430 503,451 510,462 515,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,451 498,471 506,480 510,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,471 494,488 502,494 506,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,488 490,499 498,502 502,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,499 486,502 494,501 498,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,502 481,494 489,490 494,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,494 477,477 485,469 489,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,477 473,449 481,439 485,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="473,449 469,415 477,404 481,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="469,415 465,381 472,371 477,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="465,381 460,351 468,347 472,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="460,351 456,338 464,337 468,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,338 452,342 459,347 464,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="452,342 448,367 456,377 459,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="448,367 443,409 451,421 456,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="443,409 439,458 447,468 451,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="439,458 435,498 443,505 447,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,448 688,438 696,445 700,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="688,438 684,403 692,416 696,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,403 680,358 687,372 692,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,358 675,317 683,329 687,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="675,317 671,290 679,296 683,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,290 667,282 675,282 679,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,282 663,294 671,289 675,282 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,294 658,321 666,311 671,289 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,321 654,356 662,344 666,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="654,356 650,392 658,381 662,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="650,392 646,425 654,414 658,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,425 642,448 649,441 654,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,448 637,462 645,458 649,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,462 633,465 641,465 645,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,465 629,460 637,464 641,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,460 625,447 633,455 637,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,447 620,432 628,442 633,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,432 616,413 624,425 628,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,413 612,395 620,409 624,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,395 607,378 615,391 620,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,378 604,362 612,376 615,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,362 599,350 607,362 612,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,350 595,340 603,352 607,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,340 591,332 599,343 603,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,332 586,326 594,336 599,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,326 582,322 590,331 594,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,322 578,320 586,328 590,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,320 574,319 582,327 586,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,319 570,318 577,326 582,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,318 565,319 573,327 577,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,319 561,320 569,328 573,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,320 557,323 565,331 569,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,323 553,327 561,335 565,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,327 548,331 556,341 561,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,331 544,338 552,348 556,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,338 540,346 548,357 552,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,346 536,356 544,368 548,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,356 532,369 539,381 544,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,369 527,383 535,397 539,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,383 523,401 531,414 535,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,401 519,420 527,434 531,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,420 515,441 523,453 527,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,441 510,462 518,472 523,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,462 506,480 514,487 518,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,480 502,494 510,498 514,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="502,494 498,502 506,502 510,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,502 494,501 501,497 506,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,501 489,490 497,482 501,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,490 485,469 493,458 497,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,469 481,439 489,427 493,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="481,439 477,404 485,392 489,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="477,404 472,371 480,361 485,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,371 468,347 476,342 480,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="468,347 464,337 472,338 476,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,337 459,347 467,354 472,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,347 456,377 464,389 467,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="456,377 451,421 459,435 464,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="451,421 447,468 455,480 459,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="447,468 443,505 451,512 455,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,447 696,445 704,449 708,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="696,445 692,416 700,428 704,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,416 687,372 695,387 700,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,372 683,329 691,343 695,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="683,329 679,296 687,307 691,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="679,296 675,282 683,287 687,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="675,282 671,289 679,285 683,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,289 666,311 674,301 679,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,311 662,344 670,331 674,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,344 658,381 666,366 670,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,381 654,414 662,401 666,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="654,414 649,441 657,431 662,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,441 645,458 653,452 657,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,458 641,465 649,464 653,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,465 637,464 644,467 649,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,464 633,455 641,463 644,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,455 628,442 636,452 641,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,442 624,425 632,438 636,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,425 620,409 628,423 632,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,409 615,391 623,407 628,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,391 612,376 619,391 623,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,376 607,362 615,378 619,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,362 603,352 611,366 615,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,352 599,343 606,356 611,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,343 594,336 602,350 606,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,336 590,331 598,344 602,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,331 586,328 594,340 598,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,328 582,327 590,338 594,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,327 577,326 585,337 590,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,326 573,327 581,338 585,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,327 569,328 577,340 581,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="569,328 565,331 573,342 577,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,331 561,335 568,347 573,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,335 556,341 564,353 568,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,341 552,348 560,361 564,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,348 548,357 556,370 560,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,357 544,368 552,382 556,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,368 539,381 547,397 552,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,381 535,397 543,412 547,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,397 531,414 539,430 543,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,414 527,434 535,448 539,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,434 523,453 531,466 535,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,453 518,472 526,482 531,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,472 514,487 522,495 526,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,487 510,498 518,502 522,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,498 506,502 514,501 518,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,502 501,497 509,492 514,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,497 497,482 505,472 509,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="497,482 493,458 501,445 505,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,458 489,427 496,412 501,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="489,427 485,392 493,380 496,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="485,392 480,361 488,352 493,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,361 476,342 484,338 488,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="476,342 472,338 480,342 484,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="472,338 467,354 475,365 480,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,354 464,389 471,403 475,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="464,389 459,435 467,450 471,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="459,435 455,480 463,493 467,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="455,480 451,512 458,516 463,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,443 704,449 712,451 716,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="704,449 700,428 708,438 712,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,428 695,387 703,404 708,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,387 691,343 699,360 703,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,343 687,307 695,320 699,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,307 683,287 691,293 695,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="683,287 679,285 686,285 691,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="679,285 674,301 682,294 686,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="674,301 670,331 678,318 682,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,331 666,366 673,351 678,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,366 662,401 670,386 673,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,401 657,431 665,417 670,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,431 653,452 661,442 665,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,452 649,464 657,459 661,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,464 644,467 652,468 657,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,467 641,463 648,468 652,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,463 636,452 644,462 648,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,452 632,438 640,451 644,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,438 628,423 636,438 640,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,423 623,407 631,423 636,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,407 619,391 627,409 631,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,391 615,378 623,395 627,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,378 611,366 619,383 623,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,366 606,356 614,373 619,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,356 602,350 610,365 614,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,350 598,344 606,358 610,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,344 594,340 602,354 606,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,340 590,338 598,352 602,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,338 585,337 593,350 598,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,337 581,338 589,352 593,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,338 577,340 585,353 589,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,340 573,342 581,356 585,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,342 568,347 576,361 581,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,347 564,353 572,368 576,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,353 560,361 568,377 572,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,361 556,370 564,387 568,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,370 552,382 560,400 564,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,382 547,397 555,413 560,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,397 543,412 551,430 555,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,412 539,430 547,446 551,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,430 535,448 543,463 547,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,448 531,466 538,478 543,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,466 526,482 534,492 538,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="526,482 522,495 530,500 534,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,495 518,502 525,502 530,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,502 514,501 522,496 525,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,501 509,492 517,481 522,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,492 505,472 513,459 517,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="505,472 501,445 509,430 513,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,445 496,412 504,397 509,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,412 493,380 500,367 504,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="493,380 488,352 496,345 500,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,352 484,338 492,338 496,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="484,338 480,342 488,348 492,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="480,342 475,365 483,378 488,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,365 471,403 479,420 483,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,403 467,450 475,466 479,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="467,450 463,493 471,503 475,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="463,493 458,516 466,519 471,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="716,437 712,451 719,451 723,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="712,451 708,438 715,448 719,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,438 703,404 710,420 715,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="703,404 699,360 706,379 710,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="699,360 695,320 702,337 706,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,320 691,293 698,304 702,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,293 686,285 694,287 698,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,285 682,294 689,288 694,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="682,294 678,318 685,306 689,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="678,318 673,351 681,334 685,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,351 670,386 677,367 681,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,386 665,417 672,401 677,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="665,417 661,442 668,429 672,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,442 657,459 664,451 668,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,459 652,468 659,465 664,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,468 648,468 656,469 659,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,468 644,462 651,469 656,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,462 640,451 647,462 651,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,451 636,438 643,452 647,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,438 631,423 638,439 643,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,423 627,409 634,426 638,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,409 623,395 630,414 634,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,395 619,383 626,402 630,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,383 614,373 621,391 626,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,373 610,365 617,384 621,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,365 606,358 613,377 617,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,358 602,354 609,372 613,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,354 598,352 605,369 609,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,352 593,350 600,368 605,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="593,350 589,352 596,368 600,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,352 585,353 592,370 596,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,353 581,356 588,374 592,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,356 576,361 583,379 588,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,361 572,368 579,386 583,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,368 568,377 575,395 579,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,377 564,387 571,405 575,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,387 560,400 567,418 571,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,400 555,413 562,433 567,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,413 551,430 558,447 562,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="551,430 547,446 554,462 558,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,446 543,463 550,477 554,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,463 538,478 546,490 550,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,478 534,492 541,499 546,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="534,492 530,500 537,502 541,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="530,500 525,502 533,499 537,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,502 522,496 529,488 533,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,496 517,481 524,469 529,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="517,481 513,459 520,442 524,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="513,459 509,430 516,411 520,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,430 504,397 511,381 516,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="504,397 500,367 508,354 511,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="500,367 496,345 503,339 508,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="496,345 492,338 499,340 503,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="492,338 488,348 495,359 499,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="488,348 483,378 490,394 495,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="483,378 479,420 486,439 490,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="479,420 475,466 482,482 486,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="475,466 471,503 478,513 482,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="471,503 466,519 473,518 478,513 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,426 719,451 727,445 731,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="719,451 715,448 723,453 727,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,448 710,420 718,435 723,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,420 706,379 714,399 718,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,379 702,337 710,357 714,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="702,337 698,304 706,319 710,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="698,304 694,287 701,294 706,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,287 689,288 697,286 701,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="689,288 685,306 693,296 697,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,306 681,334 688,318 693,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="681,334 677,367 685,348 688,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,367 672,401 680,382 685,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,401 668,429 676,412 680,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="668,429 664,451 672,438 676,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,451 659,465 667,456 672,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,465 656,469 663,467 667,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,469 651,469 659,471 663,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,469 647,462 655,470 659,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="647,462 643,452 651,464 655,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,452 638,439 646,454 651,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,439 634,426 642,444 646,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,426 630,414 638,432 642,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,414 626,402 634,422 638,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="626,402 621,391 629,413 634,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,391 617,384 625,404 629,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,384 613,377 621,397 625,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,377 609,372 617,393 621,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,372 605,369 613,390 617,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,369 600,368 608,388 613,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,368 596,368 604,388 608,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,368 592,370 600,390 604,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,370 588,374 596,394 600,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,374 583,379 591,400 596,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,379 579,386 587,406 591,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,386 575,395 583,416 587,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,395 571,405 579,426 583,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,405 567,418 575,438 579,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,418 562,433 570,451 575,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,433 558,447 566,465 570,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,447 554,462 562,477 566,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="554,462 550,477 558,489 562,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,477 546,490 553,497 558,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,490 541,499 549,501 553,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,499 537,502 545,500 549,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,502 533,499 540,491 545,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,499 529,488 537,475 540,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,488 524,469 532,452 537,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,469 520,442 528,423 532,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="520,442 516,411 524,393 528,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,411 511,381 519,364 524,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="511,381 508,354 515,345 519,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="508,354 503,339 511,337 515,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,339 499,340 507,347 511,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="499,340 495,359 503,374 507,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="495,359 490,394 498,415 503,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,394 486,439 494,459 498,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,439 482,482 490,498 494,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="482,482 478,513 486,518 490,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="478,513 473,518 481,513 486,518 "/>
+<polygon opacity="0.2" fill="#0000FF" points="731,411 727,445 735,435 739,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="727,445 723,453 730,454 735,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,453 718,435 726,448 730,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,435 714,399 722,419 726,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,399 710,357 718,379 722,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,357 706,319 714,338 718,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,319 701,294 709,306 714,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,294 697,286 705,290 709,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="697,286 693,296 701,290 705,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="693,296 688,318 696,304 701,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="688,318 685,348 692,330 696,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,348 680,382 688,360 692,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,382 676,412 684,392 688,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,412 672,438 680,420 684,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,438 667,456 675,444 680,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,456 663,467 671,460 675,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,467 659,471 667,470 671,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,471 655,470 663,473 667,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,470 651,464 658,472 663,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,464 646,454 654,467 658,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,454 642,444 650,459 654,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,444 638,432 646,451 650,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,432 634,422 642,442 646,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,422 629,413 637,434 642,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,413 625,404 633,426 637,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,404 621,397 629,420 633,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,397 617,393 625,415 629,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,393 613,390 620,412 625,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,390 608,388 616,410 620,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,388 604,388 612,410 616,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,388 600,390 608,412 612,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,390 596,394 604,416 608,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,394 591,400 599,422 604,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,400 587,406 595,429 599,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,406 583,416 591,438 595,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,416 579,426 587,447 591,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,426 575,438 582,458 587,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,438 570,451 578,469 582,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,451 566,465 574,480 578,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,465 562,477 570,490 574,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,477 558,489 566,498 570,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,489 553,497 561,501 566,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,497 549,501 557,500 561,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,501 545,500 553,492 557,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,500 540,491 548,478 553,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,491 537,475 544,457 548,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,475 532,452 540,431 544,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,452 528,423 536,402 540,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="528,423 524,393 532,374 536,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,393 519,364 527,351 532,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,364 515,345 523,338 527,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,345 511,337 519,341 523,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="511,337 507,347 515,360 519,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="507,347 503,374 510,394 515,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="503,374 498,415 506,437 510,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,415 494,459 502,480 506,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,459 490,498 498,510 502,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="490,498 486,518 494,519 498,510 "/>
+<polygon opacity="0.2" fill="#0000FF" points="486,518 481,513 489,502 494,519 "/>
+<polygon opacity="0.2" fill="#0000FF" points="739,392 735,435 743,418 747,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="735,435 730,454 738,450 743,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="730,454 726,448 734,455 738,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="726,448 722,419 730,437 734,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="722,419 718,379 725,403 730,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,379 714,338 722,361 725,403 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,338 709,306 717,325 722,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="709,306 705,290 713,299 717,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="705,290 701,290 709,290 713,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,290 696,304 704,295 709,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="696,304 692,330 700,312 704,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,330 688,360 696,339 700,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="688,360 684,392 692,369 696,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,392 680,420 687,399 692,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,420 675,444 683,426 687,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="675,444 671,460 679,446 683,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,460 667,470 675,462 679,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,470 663,473 671,471 675,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,473 658,472 666,475 671,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,472 654,467 662,475 666,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="654,467 650,459 658,472 662,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="650,459 646,451 654,466 658,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,451 642,442 649,460 654,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,442 637,434 645,453 649,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,434 633,426 641,447 645,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,426 629,420 637,442 641,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,420 625,415 633,438 637,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,415 620,412 628,434 633,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,412 616,410 624,434 628,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,410 612,410 620,434 624,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,410 608,412 616,436 620,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,412 604,416 612,439 616,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,416 599,422 607,445 612,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,422 595,429 603,451 607,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,429 591,438 599,459 603,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,438 587,447 595,467 599,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,447 582,458 590,476 595,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,458 578,469 586,484 590,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,469 574,480 582,493 586,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,480 570,490 577,498 582,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,490 566,498 574,500 577,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,498 561,501 569,499 574,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,501 557,500 565,492 569,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,500 553,492 561,479 565,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,492 548,478 556,460 561,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,478 544,457 552,436 556,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,457 540,431 548,408 552,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,431 536,402 544,381 548,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="536,402 532,374 539,356 544,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,374 527,351 535,342 539,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,351 523,338 531,338 535,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,338 519,341 527,350 531,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="519,341 515,360 523,378 527,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="515,360 510,394 518,417 523,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,394 506,437 514,460 518,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,437 502,480 510,497 514,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="502,480 498,510 506,518 510,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="498,510 494,519 501,515 506,518 "/>
+<polygon opacity="0.2" fill="#0000FF" points="494,519 489,502 497,485 501,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="747,369 743,418 751,397 754,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="743,418 738,450 746,438 751,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="738,450 734,455 742,457 746,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="734,455 730,437 738,451 742,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="730,437 725,403 733,425 738,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="725,403 722,361 729,387 733,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="722,361 717,325 725,348 729,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="717,325 713,299 721,316 725,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="713,299 709,290 716,296 721,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="709,290 704,295 712,292 716,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="704,295 700,312 708,300 712,292 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,312 696,339 704,320 708,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="696,339 692,369 700,346 704,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,369 687,399 695,374 700,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,399 683,426 691,402 695,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="683,426 679,446 687,427 691,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="679,446 675,462 683,447 687,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="675,462 671,471 679,462 683,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,471 666,475 674,472 679,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,475 662,475 670,477 674,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,475 658,472 666,478 670,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,472 654,466 662,476 666,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="654,466 649,460 657,474 662,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,460 645,453 653,470 657,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,453 641,447 649,465 653,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,447 637,442 645,461 649,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,442 633,438 641,459 645,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,438 628,434 636,456 641,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,434 624,434 632,456 636,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,434 620,434 628,456 632,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,434 616,436 624,458 628,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,436 612,439 619,461 624,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,439 607,445 615,466 619,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,445 603,451 611,471 615,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,451 599,459 606,477 611,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,459 595,467 603,483 606,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,467 590,476 598,490 603,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,476 586,484 594,495 598,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,484 582,493 590,499 594,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,493 577,498 585,500 590,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,498 574,500 581,497 585,500 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,500 569,499 577,490 581,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="569,499 565,492 573,477 577,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,492 561,479 568,460 573,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,479 556,460 564,437 568,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,460 552,436 560,411 564,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,436 548,408 556,385 560,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,408 544,381 552,361 556,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,381 539,356 547,344 552,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,356 535,342 543,338 547,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,342 531,338 539,344 543,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,338 527,350 535,367 539,344 "/>
+<polygon opacity="0.2" fill="#0000FF" points="527,350 523,378 531,401 535,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="523,378 518,417 526,443 531,401 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,417 514,460 522,482 526,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,460 510,497 518,511 522,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="510,497 506,518 514,519 518,511 "/>
+<polygon opacity="0.2" fill="#0000FF" points="506,518 501,515 509,503 514,519 "/>
+<polygon opacity="0.2" fill="#0000FF" points="501,515 497,485 505,464 509,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="754,345 751,397 758,371 762,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="751,397 746,438 753,418 758,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="746,438 742,457 749,450 753,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="742,457 738,451 745,459 749,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="738,451 733,425 740,445 745,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="733,425 729,387 737,414 740,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="729,387 725,348 732,375 737,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="725,348 721,316 728,339 732,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="721,316 716,296 724,311 728,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="716,296 712,292 719,295 724,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="712,292 708,300 715,293 719,295 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,300 704,320 711,304 715,293 "/>
+<polygon opacity="0.2" fill="#0000FF" points="704,320 700,346 707,324 711,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,346 695,374 702,349 707,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,374 691,402 698,376 702,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,402 687,427 694,402 698,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,427 683,447 690,426 694,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="683,447 679,462 686,445 690,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="679,462 674,472 681,460 686,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="674,472 670,477 677,470 681,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,477 666,478 673,476 677,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,478 662,476 669,479 673,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,476 657,474 664,481 669,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,474 653,470 660,480 664,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,470 649,465 656,479 660,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,465 645,461 652,477 656,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,461 641,459 648,475 652,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,459 636,456 643,474 648,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,456 632,456 639,474 643,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,456 628,456 635,475 639,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,456 624,458 631,476 635,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,458 619,461 627,479 631,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,461 615,466 622,482 627,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,466 611,471 618,486 622,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,471 606,477 614,490 618,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,477 603,483 610,494 614,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,483 598,490 605,497 610,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,490 594,495 601,498 605,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,495 590,499 597,497 601,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,499 585,500 592,493 597,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,500 581,497 589,485 592,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,497 577,490 584,473 589,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="577,490 573,477 580,456 584,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="573,477 568,460 576,435 580,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,460 564,437 571,411 576,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,437 560,411 567,386 571,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,411 556,385 563,363 567,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="556,385 552,361 559,346 563,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,361 547,344 554,337 559,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="547,344 543,338 550,341 554,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="543,338 539,344 546,359 550,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="539,344 535,367 542,390 546,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="535,367 531,401 538,428 542,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="531,401 526,443 533,469 538,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="526,443 522,482 529,503 533,469 "/>
+<polygon opacity="0.2" fill="#0000FF" points="522,482 518,511 525,519 529,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="518,511 514,519 521,513 525,519 "/>
+<polygon opacity="0.2" fill="#0000FF" points="514,519 509,503 516,483 521,513 "/>
+<polygon opacity="0.2" fill="#0000FF" points="509,503 505,464 512,438 516,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="762,321 758,371 766,343 769,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="758,371 753,418 761,393 766,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="753,418 749,450 757,435 761,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="749,450 745,459 753,458 757,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="745,459 740,445 748,458 753,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="740,445 737,414 744,438 748,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="737,414 732,375 740,404 744,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="732,375 728,339 736,366 740,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="728,339 724,311 731,333 736,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="724,311 719,295 727,308 731,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="719,295 715,293 723,296 727,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,293 711,304 719,296 723,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="711,304 707,324 715,307 719,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="707,324 702,349 710,326 715,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="702,349 698,376 706,349 710,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="698,376 694,402 702,374 706,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,402 690,426 698,399 702,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="690,426 686,445 694,421 698,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,445 681,460 689,440 694,421 "/>
+<polygon opacity="0.2" fill="#0000FF" points="681,460 677,470 685,455 689,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,470 673,476 681,466 685,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,476 669,479 677,474 681,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="669,479 664,481 672,479 677,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,481 660,480 668,482 672,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="660,480 656,479 664,484 668,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,479 652,477 660,485 664,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,477 648,475 656,485 660,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,475 643,474 651,485 656,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,474 639,474 647,486 651,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,474 635,475 643,487 647,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,475 631,476 639,489 643,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,476 627,479 634,490 639,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,479 622,482 630,492 634,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,482 618,486 626,494 630,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,486 614,490 621,495 626,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,490 610,494 618,496 621,495 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,494 605,497 613,496 618,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,497 601,498 609,492 613,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,498 597,497 605,487 609,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="597,497 592,493 600,478 605,487 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,493 589,485 596,466 600,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,485 584,473 592,449 596,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,473 580,456 588,429 592,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,456 576,435 583,407 588,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,435 571,411 579,384 583,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,411 567,386 575,363 579,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,386 563,363 571,346 575,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,363 559,346 567,338 571,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="559,346 554,337 562,340 567,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="554,337 550,341 558,354 562,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,341 546,359 554,381 558,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,359 542,390 550,417 554,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="542,390 538,428 546,457 550,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="538,428 533,469 541,493 546,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,469 529,503 537,516 541,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,503 525,519 533,518 537,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="525,519 521,513 529,497 533,518 "/>
+<polygon opacity="0.2" fill="#0000FF" points="521,513 516,483 524,458 529,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="516,483 512,438 520,410 524,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="769,300 766,343 773,317 777,286 "/>
+<polygon opacity="0.2" fill="#0000FF" points="766,343 761,393 769,363 773,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="761,393 757,435 765,411 769,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="757,435 753,458 761,447 765,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="753,458 748,458 756,461 761,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="748,458 744,438 752,455 756,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="744,438 740,404 748,431 752,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="740,404 736,366 744,397 748,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="736,366 731,333 739,362 744,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="731,333 727,308 735,330 739,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="727,308 723,296 731,308 735,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,296 719,296 727,297 731,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="719,296 715,307 723,298 727,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,307 710,326 718,308 723,298 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,326 706,349 714,325 718,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,349 702,374 710,347 714,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="702,374 698,399 706,369 710,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="698,399 694,421 701,392 706,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,421 689,440 697,413 701,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="689,440 685,455 693,431 697,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,455 681,466 689,447 693,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="681,466 677,474 685,458 689,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,474 672,479 680,468 685,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,479 668,482 676,474 680,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="668,482 664,484 672,480 676,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,484 660,485 668,483 672,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="660,485 656,485 663,486 668,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,485 651,485 659,488 663,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,485 647,486 655,489 659,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="647,486 643,487 651,490 655,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,487 639,489 647,491 651,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,489 634,490 642,492 647,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,490 630,492 638,493 642,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,492 626,494 634,492 638,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="626,494 621,495 629,491 634,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,495 618,496 625,488 629,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,496 613,496 621,484 625,488 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,496 609,492 617,477 621,484 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,492 605,487 613,468 617,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,487 600,478 608,454 613,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,478 596,466 604,439 608,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,466 592,449 600,420 604,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,449 588,429 596,399 600,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,429 583,407 591,379 596,399 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,407 579,384 587,360 591,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,384 575,363 583,345 587,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,363 571,346 579,337 583,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,346 567,338 575,338 579,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,338 562,340 570,352 575,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,340 558,354 566,376 570,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,354 554,381 562,410 566,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="554,381 550,417 558,448 562,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="550,417 546,457 553,485 558,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="546,457 541,493 549,511 553,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,493 537,516 545,519 549,511 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,516 533,518 541,507 545,519 "/>
+<polygon opacity="0.2" fill="#0000FF" points="533,518 529,497 537,473 541,507 "/>
+<polygon opacity="0.2" fill="#0000FF" points="529,497 524,458 532,428 537,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="524,458 520,410 528,384 532,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="777,286 773,317 781,296 785,282 "/>
+<polygon opacity="0.2" fill="#0000FF" points="773,317 769,363 777,333 781,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="769,363 765,411 773,381 777,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="765,411 761,447 768,425 773,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="761,447 756,461 764,454 768,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="756,461 752,455 760,463 764,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="752,455 748,431 756,452 760,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="748,431 744,397 752,428 756,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="744,397 739,362 747,394 752,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="739,362 735,330 743,360 747,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="735,330 731,308 739,330 743,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="731,308 727,297 735,310 739,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="727,297 723,298 730,299 735,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,298 718,308 726,299 730,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,308 714,325 722,307 726,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,325 710,347 718,321 722,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,347 706,369 714,340 718,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,369 701,392 709,361 714,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,392 697,413 705,382 709,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="697,413 693,431 701,402 705,382 "/>
+<polygon opacity="0.2" fill="#0000FF" points="693,431 689,447 697,419 701,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="689,447 685,458 692,433 697,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,458 680,468 688,446 692,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,468 676,474 684,456 688,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,474 672,480 680,464 684,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,480 668,483 676,470 680,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="668,483 663,486 671,475 676,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,486 659,488 667,478 671,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,488 655,489 663,480 667,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,489 651,490 658,482 663,480 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,490 647,491 655,482 658,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="647,491 642,492 650,482 655,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,492 638,493 646,482 650,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,493 634,492 642,479 646,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,492 629,491 637,475 642,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,491 625,488 633,470 637,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,488 621,484 629,462 633,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,484 617,477 625,452 629,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,477 613,468 620,440 625,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,468 608,454 616,425 620,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,454 604,439 612,407 616,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,439 600,420 608,389 612,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,420 596,399 604,370 608,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,399 591,379 599,354 604,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,379 587,360 595,342 599,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,360 583,345 591,336 595,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,345 579,337 587,339 591,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,337 575,338 582,351 587,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,338 570,352 578,374 582,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,352 566,376 574,406 578,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,376 562,410 570,443 574,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="562,410 558,448 566,479 570,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="558,448 553,485 561,506 566,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,485 549,511 557,518 561,506 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,511 545,519 553,512 557,518 "/>
+<polygon opacity="0.2" fill="#0000FF" points="545,519 541,507 549,485 553,512 "/>
+<polygon opacity="0.2" fill="#0000FF" points="541,507 537,473 544,444 549,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="537,473 532,428 540,398 544,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="532,428 528,384 536,363 540,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="785,282 781,296 789,285 793,291 "/>
+<polygon opacity="0.2" fill="#0000FF" points="781,296 777,333 785,307 789,285 "/>
+<polygon opacity="0.2" fill="#0000FF" points="777,333 773,381 781,348 785,307 "/>
+<polygon opacity="0.2" fill="#0000FF" points="773,381 768,425 776,395 781,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="768,425 764,454 772,435 776,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="764,454 760,463 768,459 772,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="760,463 756,452 764,465 768,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="756,452 752,428 760,452 764,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="752,428 747,394 755,426 760,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="747,394 743,360 751,394 755,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="743,360 739,330 747,362 751,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="739,330 735,310 743,333 747,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="735,310 730,299 738,313 743,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="730,299 726,299 734,302 738,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="726,299 722,307 730,300 734,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="722,307 718,321 726,306 730,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,321 714,340 722,317 726,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,340 709,361 717,332 722,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="709,361 705,382 713,350 717,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="705,382 701,402 709,369 713,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,402 697,419 705,386 709,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="697,419 692,433 700,402 705,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,433 688,446 696,416 700,402 "/>
+<polygon opacity="0.2" fill="#0000FF" points="688,446 684,456 692,427 696,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,456 680,464 687,438 692,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,464 676,470 684,446 687,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,470 671,475 679,452 684,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,475 667,478 675,457 679,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,478 663,480 671,460 675,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,480 658,482 666,462 671,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,482 655,482 662,462 666,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,482 650,482 658,462 662,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="650,482 646,482 654,459 658,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,482 642,479 649,455 654,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,479 637,475 645,449 649,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,475 633,470 641,441 645,449 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,470 629,462 637,432 641,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,462 625,452 633,420 637,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,452 620,440 628,407 633,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,440 616,425 624,392 628,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,425 612,407 620,376 624,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,407 608,389 616,360 620,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,389 604,370 612,347 616,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,370 599,354 607,338 612,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,354 595,342 603,335 607,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,342 591,336 599,339 603,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,336 587,339 595,353 599,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,339 582,351 590,375 595,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,351 578,374 586,406 590,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,374 574,406 582,441 586,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,406 570,443 578,475 582,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="570,443 566,479 574,502 578,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="566,479 561,506 569,518 574,502 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,506 557,518 565,515 569,518 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,518 553,512 561,493 565,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="553,512 549,485 557,455 561,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="549,485 544,444 552,410 557,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="544,444 540,398 548,372 552,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="540,398 536,363 544,352 548,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="793,291 789,285 796,287 800,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="789,285 785,307 792,290 796,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="785,307 781,348 788,317 792,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="781,348 776,395 783,359 788,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="776,395 772,435 779,405 783,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="772,435 768,459 775,442 779,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="768,459 764,465 771,463 775,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="764,465 760,452 767,466 771,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="760,452 755,426 762,452 767,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="755,426 751,394 758,428 762,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="751,394 747,362 754,398 758,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="747,362 743,333 750,367 754,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="743,333 738,313 745,340 750,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="738,313 734,302 741,319 745,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="734,302 730,300 737,306 741,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="730,300 726,306 733,302 737,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="726,306 722,317 729,304 733,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="722,317 717,332 724,312 729,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="717,332 713,350 720,323 724,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="713,350 709,369 716,338 720,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="709,369 705,386 712,352 716,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="705,386 700,402 708,367 712,352 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,402 696,416 703,381 708,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="696,416 692,427 699,393 703,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,427 687,438 695,404 699,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,438 684,446 691,412 695,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,446 679,452 686,420 691,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="679,452 675,457 682,425 686,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="675,457 671,460 678,429 682,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,460 666,462 673,431 678,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,462 662,462 670,432 673,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,462 658,462 665,430 670,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="658,462 654,459 661,427 665,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="654,459 649,455 657,422 661,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,455 645,449 652,416 657,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,449 641,441 648,407 652,416 "/>
+<polygon opacity="0.2" fill="#0000FF" points="641,441 637,432 644,397 648,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="637,432 633,420 640,385 644,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,420 628,407 635,373 640,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,407 624,392 631,361 635,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,392 620,376 627,349 631,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,376 616,360 623,340 627,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="616,360 612,347 619,334 623,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,347 607,338 614,335 619,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="607,338 603,335 610,341 614,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,335 599,339 606,356 610,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,339 595,353 602,379 606,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,353 590,375 597,409 602,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="590,375 586,406 593,442 597,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="586,406 582,441 589,474 593,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="582,441 578,475 585,501 589,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="578,475 574,502 581,516 585,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="574,502 569,518 576,516 581,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="569,518 565,515 572,497 576,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="565,515 561,493 568,463 572,497 "/>
+<polygon opacity="0.2" fill="#0000FF" points="561,493 557,455 564,420 568,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="557,455 552,410 560,380 564,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="552,410 548,372 555,354 560,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="548,372 544,352 551,355 555,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="800,312 796,287 804,305 808,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="796,287 792,290 800,287 804,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="792,290 788,317 796,296 800,287 "/>
+<polygon opacity="0.2" fill="#0000FF" points="788,317 783,359 791,326 796,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="783,359 779,405 787,368 791,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="779,405 775,442 783,411 787,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="775,442 771,463 779,445 783,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="771,463 767,466 775,464 779,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="767,466 762,452 770,467 775,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="762,452 758,428 766,455 770,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="758,428 754,398 762,433 766,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="754,398 750,367 758,404 762,433 "/>
+<polygon opacity="0.2" fill="#0000FF" points="750,367 745,340 753,375 758,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="745,340 741,319 749,349 753,375 "/>
+<polygon opacity="0.2" fill="#0000FF" points="741,319 737,306 745,328 749,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="737,306 733,302 741,313 745,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="733,302 729,304 737,306 741,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="729,304 724,312 732,304 737,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="724,312 720,323 728,308 732,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="720,323 716,338 724,315 728,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="716,338 712,352 720,325 724,315 "/>
+<polygon opacity="0.2" fill="#0000FF" points="712,352 708,367 715,336 720,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,367 703,381 711,347 715,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="703,381 699,393 707,358 711,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="699,393 695,404 702,368 707,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,404 691,412 699,377 702,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,412 686,420 694,383 699,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,420 682,425 690,389 694,383 "/>
+<polygon opacity="0.2" fill="#0000FF" points="682,425 678,429 686,393 690,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="678,429 673,431 681,395 686,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,431 670,432 677,395 681,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,432 665,430 673,393 677,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="665,430 661,427 669,390 673,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,427 657,422 664,386 669,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,422 652,416 660,379 664,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,416 648,407 656,372 660,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,407 644,397 652,364 656,372 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,397 640,385 648,354 652,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,385 635,373 643,345 648,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,373 631,361 639,339 643,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,361 627,349 635,333 639,339 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,349 623,340 631,332 635,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,340 619,334 627,336 631,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,334 614,335 622,346 627,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,335 610,341 618,363 622,346 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,341 606,356 614,386 618,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,356 602,379 610,414 614,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,379 597,409 605,446 610,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="597,409 593,442 601,477 605,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="593,442 589,474 597,501 601,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,474 585,501 593,516 597,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="585,501 581,516 589,515 593,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="581,516 576,516 584,499 589,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,516 572,497 580,467 584,499 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,497 568,463 576,426 580,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="568,463 564,420 572,386 576,426 "/>
+<polygon opacity="0.2" fill="#0000FF" points="564,420 560,380 567,358 572,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="560,380 555,354 563,351 567,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="555,354 551,355 559,372 563,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="808,346 804,305 812,336 816,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="804,305 800,287 808,301 812,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="800,287 796,296 804,288 808,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="796,296 791,326 799,300 804,288 "/>
+<polygon opacity="0.2" fill="#0000FF" points="791,326 787,368 795,333 799,300 "/>
+<polygon opacity="0.2" fill="#0000FF" points="787,368 783,411 791,374 795,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="783,411 779,445 787,415 791,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="779,445 775,464 782,447 787,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="775,464 770,467 778,466 782,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="770,467 766,455 774,470 778,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="766,455 762,433 770,460 774,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="762,433 758,404 766,440 770,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="758,404 753,375 761,415 766,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="753,375 749,349 757,387 761,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="749,349 745,328 753,362 757,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="745,328 741,313 749,341 753,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="741,313 737,306 744,324 749,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="737,306 732,304 740,314 744,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="732,304 728,308 736,309 740,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="728,308 724,315 731,308 736,309 "/>
+<polygon opacity="0.2" fill="#0000FF" points="724,315 720,325 728,310 731,308 "/>
+<polygon opacity="0.2" fill="#0000FF" points="720,325 715,336 723,316 728,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,336 711,347 719,322 723,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="711,347 707,358 715,329 719,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="707,358 702,368 710,336 715,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="702,368 699,377 706,343 710,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="699,377 694,383 702,349 706,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,383 690,389 698,354 702,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="690,389 686,393 694,357 698,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,393 681,395 689,359 694,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="681,395 677,395 685,359 689,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,395 673,393 681,358 685,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,393 669,390 677,356 681,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="669,390 664,386 672,353 677,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,386 660,379 668,348 672,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="660,379 656,372 664,343 668,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,372 652,364 660,338 664,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,364 648,354 656,334 660,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,354 643,345 651,331 656,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,345 639,339 647,331 651,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,339 635,333 643,334 647,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,333 631,332 639,342 643,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,332 627,336 634,354 639,342 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,336 622,346 630,373 634,354 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,346 618,363 626,397 630,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,363 614,386 622,424 626,397 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,386 610,414 618,454 622,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,414 605,446 613,482 618,454 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,446 601,477 609,504 613,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,477 597,501 605,516 609,504 "/>
+<polygon opacity="0.2" fill="#0000FF" points="597,501 593,516 601,515 605,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="593,516 589,515 596,498 601,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="589,515 584,499 592,468 596,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="584,499 580,467 588,429 592,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,467 576,426 583,390 588,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="576,426 572,386 580,360 583,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="572,386 567,358 575,351 580,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="567,358 563,351 571,365 575,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="563,351 559,372 567,403 571,365 "/>
+<polygon opacity="0.2" fill="#0000FF" points="816,385 812,336 820,377 824,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="812,336 808,301 816,330 820,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="808,301 804,288 811,299 816,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="804,288 799,300 807,290 811,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="799,300 795,333 803,304 807,290 "/>
+<polygon opacity="0.2" fill="#0000FF" points="795,333 791,374 799,335 803,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="791,374 787,415 795,376 799,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="787,415 782,447 790,415 795,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="782,447 778,466 786,447 790,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="778,466 774,470 782,466 786,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="774,470 770,460 778,472 782,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="770,460 766,440 773,466 778,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="766,440 761,415 769,450 773,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="761,415 757,387 765,428 769,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="757,387 753,362 761,404 765,428 "/>
+<polygon opacity="0.2" fill="#0000FF" points="753,362 749,341 757,379 761,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="749,341 744,324 752,358 757,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="744,324 740,314 748,340 752,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="740,314 736,309 744,327 748,340 "/>
+<polygon opacity="0.2" fill="#0000FF" points="736,309 731,308 739,318 744,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="731,308 728,310 736,313 739,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="728,310 723,316 731,311 736,313 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,316 719,322 727,312 731,311 "/>
+<polygon opacity="0.2" fill="#0000FF" points="719,322 715,329 723,314 727,312 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,329 710,336 718,317 723,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,336 706,343 714,321 718,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,343 702,349 710,325 714,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="702,349 698,354 706,328 710,325 "/>
+<polygon opacity="0.2" fill="#0000FF" points="698,354 694,357 701,330 706,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,357 689,359 697,332 701,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="689,359 685,359 693,332 697,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,359 681,358 689,332 693,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="681,358 677,356 685,332 689,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,356 672,353 680,330 685,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,353 668,348 676,329 680,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="668,348 664,343 672,328 676,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,343 660,338 668,328 672,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="660,338 656,334 663,330 668,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,334 651,331 659,334 663,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,331 647,331 655,341 659,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="647,331 643,334 651,353 655,341 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,334 639,342 647,368 651,353 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,342 634,354 642,388 647,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,354 630,373 638,411 642,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,373 626,397 634,438 638,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="626,397 622,424 630,465 634,438 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,424 618,454 625,489 630,465 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,454 613,482 621,508 625,489 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,482 609,504 617,516 621,508 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,504 605,516 613,513 617,516 "/>
+<polygon opacity="0.2" fill="#0000FF" points="605,516 601,515 609,496 613,513 "/>
+<polygon opacity="0.2" fill="#0000FF" points="601,515 596,498 604,466 609,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,498 592,468 600,429 604,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="592,468 588,429 596,391 600,429 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,429 583,390 591,362 596,391 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,390 580,360 588,350 591,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="580,360 575,351 583,361 588,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="575,351 571,365 579,394 583,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="571,365 567,403 575,444 579,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="824,424 820,377 828,417 832,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="820,377 816,330 824,371 828,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="816,330 811,299 819,327 824,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="811,299 807,290 815,299 819,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="807,290 803,304 811,292 815,299 "/>
+<polygon opacity="0.2" fill="#0000FF" points="803,304 799,335 807,306 811,292 "/>
+<polygon opacity="0.2" fill="#0000FF" points="799,335 795,376 803,336 807,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="795,376 790,415 798,374 803,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="790,415 786,447 794,412 798,374 "/>
+<polygon opacity="0.2" fill="#0000FF" points="786,447 782,466 790,444 794,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="782,466 778,472 786,464 790,444 "/>
+<polygon opacity="0.2" fill="#0000FF" points="778,472 773,466 781,474 786,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="773,466 769,450 777,472 781,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="769,450 765,428 773,461 777,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="765,428 761,404 768,442 773,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="761,404 757,379 765,422 768,442 "/>
+<polygon opacity="0.2" fill="#0000FF" points="757,379 752,358 760,400 765,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="752,358 748,340 756,380 760,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="748,340 744,327 752,362 756,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="744,327 739,318 747,347 752,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="739,318 736,313 743,335 747,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="736,313 731,311 739,327 743,335 "/>
+<polygon opacity="0.2" fill="#0000FF" points="731,311 727,312 735,322 739,327 "/>
+<polygon opacity="0.2" fill="#0000FF" points="727,312 723,314 730,318 735,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="723,314 718,317 726,317 730,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,317 714,321 722,316 726,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,321 710,325 718,317 722,316 "/>
+<polygon opacity="0.2" fill="#0000FF" points="710,325 706,328 714,319 718,317 "/>
+<polygon opacity="0.2" fill="#0000FF" points="706,328 701,330 709,320 714,319 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,330 697,332 705,321 709,320 "/>
+<polygon opacity="0.2" fill="#0000FF" points="697,332 693,332 701,322 705,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="693,332 689,332 697,323 701,322 "/>
+<polygon opacity="0.2" fill="#0000FF" points="689,332 685,332 692,324 697,323 "/>
+<polygon opacity="0.2" fill="#0000FF" points="685,332 680,330 688,326 692,324 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,330 676,329 684,329 688,326 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,329 672,328 680,332 684,329 "/>
+<polygon opacity="0.2" fill="#0000FF" points="672,328 668,328 676,338 680,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="668,328 663,330 671,345 676,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,330 659,334 667,356 671,345 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,334 655,341 663,370 667,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,341 651,353 659,387 663,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="651,353 647,368 655,408 659,387 "/>
+<polygon opacity="0.2" fill="#0000FF" points="647,368 642,388 650,430 655,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,388 638,411 646,455 650,430 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,411 634,438 642,477 646,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="634,438 630,465 638,498 642,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="630,465 625,489 633,511 638,498 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,489 621,508 629,515 633,511 "/>
+<polygon opacity="0.2" fill="#0000FF" points="621,508 617,516 625,508 629,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,516 613,513 620,490 625,508 "/>
+<polygon opacity="0.2" fill="#0000FF" points="613,513 609,496 617,461 620,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="609,496 604,466 612,425 617,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,466 600,429 608,389 612,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="600,429 596,391 604,361 608,389 "/>
+<polygon opacity="0.2" fill="#0000FF" points="596,391 591,362 599,350 604,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,362 588,350 595,359 599,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="588,350 583,361 591,390 595,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="583,361 579,394 587,436 591,390 "/>
+<polygon opacity="0.2" fill="#0000FF" points="579,394 575,444 582,484 587,436 "/>
+<polygon opacity="0.2" fill="#0000FF" points="832,451 828,417 835,450 839,460 "/>
+<polygon opacity="0.2" fill="#0000FF" points="828,417 824,371 831,415 835,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="824,371 819,327 826,369 831,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="819,327 815,299 822,328 826,369 "/>
+<polygon opacity="0.2" fill="#0000FF" points="815,299 811,292 818,301 822,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="811,292 807,306 814,294 818,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="807,306 803,336 810,306 814,294 "/>
+<polygon opacity="0.2" fill="#0000FF" points="803,336 798,374 805,333 810,306 "/>
+<polygon opacity="0.2" fill="#0000FF" points="798,374 794,412 801,368 805,333 "/>
+<polygon opacity="0.2" fill="#0000FF" points="794,412 790,444 797,405 801,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="790,444 786,464 793,437 797,405 "/>
+<polygon opacity="0.2" fill="#0000FF" points="786,464 781,474 788,461 793,437 "/>
+<polygon opacity="0.2" fill="#0000FF" points="781,474 777,472 784,474 788,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="777,472 773,461 780,477 784,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="773,461 768,442 776,471 780,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="768,442 765,422 772,458 776,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="765,422 760,400 767,443 772,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="760,400 756,380 763,424 767,443 "/>
+<polygon opacity="0.2" fill="#0000FF" points="756,380 752,362 759,406 763,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="752,362 747,347 754,388 759,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="747,347 743,335 751,373 754,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="743,335 739,327 746,361 751,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="739,327 735,322 742,351 746,361 "/>
+<polygon opacity="0.2" fill="#0000FF" points="735,322 730,318 738,343 742,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="730,318 726,317 733,337 738,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="726,317 722,316 729,334 733,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="722,316 718,317 725,331 729,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="718,317 714,319 721,330 725,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="714,319 709,320 716,330 721,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="709,320 705,321 712,330 716,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="705,321 701,322 708,332 712,330 "/>
+<polygon opacity="0.2" fill="#0000FF" points="701,322 697,323 704,334 708,332 "/>
+<polygon opacity="0.2" fill="#0000FF" points="697,323 692,324 700,338 704,334 "/>
+<polygon opacity="0.2" fill="#0000FF" points="692,324 688,326 695,343 700,338 "/>
+<polygon opacity="0.2" fill="#0000FF" points="688,326 684,329 691,349 695,343 "/>
+<polygon opacity="0.2" fill="#0000FF" points="684,329 680,332 687,357 691,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="680,332 676,338 683,367 687,357 "/>
+<polygon opacity="0.2" fill="#0000FF" points="676,338 671,345 678,380 683,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="671,345 667,356 674,394 678,380 "/>
+<polygon opacity="0.2" fill="#0000FF" points="667,356 663,370 670,411 674,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="663,370 659,387 666,431 670,411 "/>
+<polygon opacity="0.2" fill="#0000FF" points="659,387 655,408 662,452 666,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="655,408 650,430 657,473 662,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="650,430 646,455 653,491 657,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="646,455 642,477 649,505 653,491 "/>
+<polygon opacity="0.2" fill="#0000FF" points="642,477 638,498 645,514 649,505 "/>
+<polygon opacity="0.2" fill="#0000FF" points="638,498 633,511 640,513 645,514 "/>
+<polygon opacity="0.2" fill="#0000FF" points="633,511 629,515 636,503 640,513 "/>
+<polygon opacity="0.2" fill="#0000FF" points="629,515 625,508 632,481 636,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="625,508 620,490 628,451 632,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="620,490 617,461 624,417 628,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="617,461 612,425 619,384 624,417 "/>
+<polygon opacity="0.2" fill="#0000FF" points="612,425 608,389 615,359 619,384 "/>
+<polygon opacity="0.2" fill="#0000FF" points="608,389 604,361 611,349 615,359 "/>
+<polygon opacity="0.2" fill="#0000FF" points="604,361 599,350 606,358 611,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="599,350 595,359 603,388 606,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="595,359 591,390 598,432 603,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="591,390 587,436 594,479 598,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="587,436 582,484 590,517 594,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="839,460 835,450 843,462 847,447 "/>
+<polygon opacity="0.2" fill="#0000FF" points="835,450 831,415 839,450 843,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="831,415 826,369 834,415 839,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="826,369 822,328 830,371 834,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="822,328 818,301 826,331 830,371 "/>
+<polygon opacity="0.2" fill="#0000FF" points="818,301 814,294 822,304 826,331 "/>
+<polygon opacity="0.2" fill="#0000FF" points="814,294 810,306 818,296 822,304 "/>
+<polygon opacity="0.2" fill="#0000FF" points="810,306 805,333 813,305 818,296 "/>
+<polygon opacity="0.2" fill="#0000FF" points="805,333 801,368 809,328 813,305 "/>
+<polygon opacity="0.2" fill="#0000FF" points="801,368 797,405 805,360 809,328 "/>
+<polygon opacity="0.2" fill="#0000FF" points="797,405 793,437 801,395 805,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="793,437 788,461 796,427 801,395 "/>
+<polygon opacity="0.2" fill="#0000FF" points="788,461 784,474 792,453 796,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="784,474 780,477 788,470 792,453 "/>
+<polygon opacity="0.2" fill="#0000FF" points="780,477 776,471 783,478 788,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="776,471 772,458 780,479 783,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="772,458 767,443 775,473 780,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="767,443 763,424 771,462 775,473 "/>
+<polygon opacity="0.2" fill="#0000FF" points="763,424 759,406 767,448 771,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="759,406 754,388 762,434 767,448 "/>
+<polygon opacity="0.2" fill="#0000FF" points="754,388 751,373 758,419 762,434 "/>
+<polygon opacity="0.2" fill="#0000FF" points="751,373 746,361 754,406 758,419 "/>
+<polygon opacity="0.2" fill="#0000FF" points="746,361 742,351 750,394 754,406 "/>
+<polygon opacity="0.2" fill="#0000FF" points="742,351 738,343 745,385 750,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="738,343 733,337 741,376 745,385 "/>
+<polygon opacity="0.2" fill="#0000FF" points="733,337 729,334 737,370 741,376 "/>
+<polygon opacity="0.2" fill="#0000FF" points="729,334 725,331 733,366 737,370 "/>
+<polygon opacity="0.2" fill="#0000FF" points="725,331 721,330 729,363 733,366 "/>
+<polygon opacity="0.2" fill="#0000FF" points="721,330 716,330 724,362 729,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="716,330 712,330 720,362 724,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="712,330 708,332 716,364 720,362 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,332 704,334 712,367 716,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="704,334 700,338 708,373 712,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="700,338 695,343 703,379 708,373 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,343 691,349 699,388 703,379 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,349 687,357 695,398 699,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="687,357 683,367 691,410 695,398 "/>
+<polygon opacity="0.2" fill="#0000FF" points="683,367 678,380 686,425 691,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="678,380 674,394 682,440 686,425 "/>
+<polygon opacity="0.2" fill="#0000FF" points="674,394 670,411 678,457 682,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,411 666,431 674,474 678,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="666,431 662,452 670,490 674,474 "/>
+<polygon opacity="0.2" fill="#0000FF" points="662,452 657,473 665,503 670,490 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,473 653,491 661,511 665,503 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,491 649,505 657,513 661,511 "/>
+<polygon opacity="0.2" fill="#0000FF" points="649,505 645,514 653,507 657,513 "/>
+<polygon opacity="0.2" fill="#0000FF" points="645,514 640,513 648,492 653,507 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,513 636,503 644,468 648,492 "/>
+<polygon opacity="0.2" fill="#0000FF" points="636,503 632,481 640,439 644,468 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,481 628,451 635,407 640,439 "/>
+<polygon opacity="0.2" fill="#0000FF" points="628,451 624,417 632,377 635,407 "/>
+<polygon opacity="0.2" fill="#0000FF" points="624,417 619,384 627,356 632,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,384 615,359 623,349 627,356 "/>
+<polygon opacity="0.2" fill="#0000FF" points="615,359 611,349 619,360 623,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="611,349 606,358 614,388 619,360 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,358 603,388 610,431 614,388 "/>
+<polygon opacity="0.2" fill="#0000FF" points="603,388 598,432 606,477 610,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="598,432 594,479 602,515 606,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="594,479 590,517 597,529 602,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="847,447 843,462 851,450 855,412 "/>
+<polygon opacity="0.2" fill="#0000FF" points="843,462 839,450 847,464 851,450 "/>
+<polygon opacity="0.2" fill="#0000FF" points="839,450 834,415 842,452 847,464 "/>
+<polygon opacity="0.2" fill="#0000FF" points="834,415 830,371 838,418 842,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="830,371 826,331 834,377 838,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="826,331 822,304 830,337 834,377 "/>
+<polygon opacity="0.2" fill="#0000FF" points="822,304 818,296 825,310 830,337 "/>
+<polygon opacity="0.2" fill="#0000FF" points="818,296 813,305 821,297 825,310 "/>
+<polygon opacity="0.2" fill="#0000FF" points="813,305 809,328 817,302 821,297 "/>
+<polygon opacity="0.2" fill="#0000FF" points="809,328 805,360 812,321 817,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="805,360 801,395 809,349 812,321 "/>
+<polygon opacity="0.2" fill="#0000FF" points="801,395 796,427 804,381 809,349 "/>
+<polygon opacity="0.2" fill="#0000FF" points="796,427 792,453 800,413 804,381 "/>
+<polygon opacity="0.2" fill="#0000FF" points="792,453 788,470 796,440 800,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="788,470 783,478 791,461 796,440 "/>
+<polygon opacity="0.2" fill="#0000FF" points="783,478 780,479 787,475 791,461 "/>
+<polygon opacity="0.2" fill="#0000FF" points="780,479 775,473 783,481 787,475 "/>
+<polygon opacity="0.2" fill="#0000FF" points="775,473 771,462 779,482 783,481 "/>
+<polygon opacity="0.2" fill="#0000FF" points="771,462 767,448 775,478 779,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="767,448 762,434 770,471 775,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="762,434 758,419 766,462 770,471 "/>
+<polygon opacity="0.2" fill="#0000FF" points="758,419 754,406 762,451 766,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="754,406 750,394 758,441 762,451 "/>
+<polygon opacity="0.2" fill="#0000FF" points="750,394 745,385 753,432 758,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="745,385 741,376 749,424 753,432 "/>
+<polygon opacity="0.2" fill="#0000FF" points="741,376 737,370 745,418 749,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="737,370 733,366 741,413 745,418 "/>
+<polygon opacity="0.2" fill="#0000FF" points="733,366 729,363 737,409 741,413 "/>
+<polygon opacity="0.2" fill="#0000FF" points="729,363 724,362 732,408 737,409 "/>
+<polygon opacity="0.2" fill="#0000FF" points="724,362 720,362 728,408 732,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="720,362 716,364 724,410 728,408 "/>
+<polygon opacity="0.2" fill="#0000FF" points="716,364 712,367 720,414 724,410 "/>
+<polygon opacity="0.2" fill="#0000FF" points="712,367 708,373 715,420 720,414 "/>
+<polygon opacity="0.2" fill="#0000FF" points="708,373 703,379 711,427 715,420 "/>
+<polygon opacity="0.2" fill="#0000FF" points="703,379 699,388 707,435 711,427 "/>
+<polygon opacity="0.2" fill="#0000FF" points="699,388 695,398 703,446 707,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="695,398 691,410 699,457 703,446 "/>
+<polygon opacity="0.2" fill="#0000FF" points="691,410 686,425 694,470 699,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,425 682,440 690,483 694,470 "/>
+<polygon opacity="0.2" fill="#0000FF" points="682,440 678,457 686,494 690,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="678,457 674,474 682,504 686,494 "/>
+<polygon opacity="0.2" fill="#0000FF" points="674,474 670,490 677,509 682,504 "/>
+<polygon opacity="0.2" fill="#0000FF" points="670,490 665,503 673,511 677,509 "/>
+<polygon opacity="0.2" fill="#0000FF" points="665,503 661,511 669,507 673,511 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,511 657,513 664,496 669,507 "/>
+<polygon opacity="0.2" fill="#0000FF" points="657,513 653,507 661,477 664,496 "/>
+<polygon opacity="0.2" fill="#0000FF" points="653,507 648,492 656,452 661,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,492 644,468 652,423 656,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="644,468 640,439 648,393 652,423 "/>
+<polygon opacity="0.2" fill="#0000FF" points="640,439 635,407 643,367 648,393 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,407 632,377 639,351 643,367 "/>
+<polygon opacity="0.2" fill="#0000FF" points="632,377 627,356 635,348 639,351 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,356 623,349 631,363 635,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="623,349 619,360 627,392 631,363 "/>
+<polygon opacity="0.2" fill="#0000FF" points="619,360 614,388 622,435 627,392 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,388 610,431 618,478 622,435 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,431 606,477 614,514 618,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="606,477 602,515 610,529 614,514 "/>
+<polygon opacity="0.2" fill="#0000FF" points="602,515 597,529 605,517 610,529 "/>
+<polygon opacity="0.2" fill="#0000FF" points="855,412 851,450 859,415 863,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="851,450 847,464 854,452 859,415 "/>
+<polygon opacity="0.2" fill="#0000FF" points="847,464 842,452 850,466 854,452 "/>
+<polygon opacity="0.2" fill="#0000FF" points="842,452 838,418 846,455 850,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="838,418 834,377 842,424 846,455 "/>
+<polygon opacity="0.2" fill="#0000FF" points="834,377 830,337 838,386 842,424 "/>
+<polygon opacity="0.2" fill="#0000FF" points="830,337 825,310 833,347 838,386 "/>
+<polygon opacity="0.2" fill="#0000FF" points="825,310 821,297 829,318 833,347 "/>
+<polygon opacity="0.2" fill="#0000FF" points="821,297 817,302 825,302 829,318 "/>
+<polygon opacity="0.2" fill="#0000FF" points="817,302 812,321 820,301 825,302 "/>
+<polygon opacity="0.2" fill="#0000FF" points="812,321 809,349 816,314 820,301 "/>
+<polygon opacity="0.2" fill="#0000FF" points="809,349 804,381 812,336 816,314 "/>
+<polygon opacity="0.2" fill="#0000FF" points="804,381 800,413 808,364 812,336 "/>
+<polygon opacity="0.2" fill="#0000FF" points="800,413 796,440 804,394 808,364 "/>
+<polygon opacity="0.2" fill="#0000FF" points="796,440 791,461 799,422 804,394 "/>
+<polygon opacity="0.2" fill="#0000FF" points="791,461 787,475 795,445 799,422 "/>
+<polygon opacity="0.2" fill="#0000FF" points="787,475 783,481 791,463 795,445 "/>
+<polygon opacity="0.2" fill="#0000FF" points="783,481 779,482 787,476 791,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="779,482 775,478 782,483 787,476 "/>
+<polygon opacity="0.2" fill="#0000FF" points="775,478 770,471 778,485 782,483 "/>
+<polygon opacity="0.2" fill="#0000FF" points="770,471 766,462 774,485 778,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="766,462 762,451 770,482 774,485 "/>
+<polygon opacity="0.2" fill="#0000FF" points="762,451 758,441 766,477 770,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="758,441 753,432 761,472 766,477 "/>
+<polygon opacity="0.2" fill="#0000FF" points="753,432 749,424 757,467 761,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="749,424 745,418 753,463 757,467 "/>
+<polygon opacity="0.2" fill="#0000FF" points="745,418 741,413 749,459 753,463 "/>
+<polygon opacity="0.2" fill="#0000FF" points="741,413 737,409 744,457 749,459 "/>
+<polygon opacity="0.2" fill="#0000FF" points="737,409 732,408 740,456 744,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="732,408 728,408 736,456 740,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="728,408 724,410 732,458 736,456 "/>
+<polygon opacity="0.2" fill="#0000FF" points="724,410 720,414 728,462 732,458 "/>
+<polygon opacity="0.2" fill="#0000FF" points="720,414 715,420 723,466 728,462 "/>
+<polygon opacity="0.2" fill="#0000FF" points="715,420 711,427 719,472 723,466 "/>
+<polygon opacity="0.2" fill="#0000FF" points="711,427 707,435 715,479 719,472 "/>
+<polygon opacity="0.2" fill="#0000FF" points="707,435 703,446 711,486 715,479 "/>
+<polygon opacity="0.2" fill="#0000FF" points="703,446 699,457 706,493 711,486 "/>
+<polygon opacity="0.2" fill="#0000FF" points="699,457 694,470 702,501 706,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="694,470 690,483 698,506 702,501 "/>
+<polygon opacity="0.2" fill="#0000FF" points="690,483 686,494 694,509 698,506 "/>
+<polygon opacity="0.2" fill="#0000FF" points="686,494 682,504 690,509 694,509 "/>
+<polygon opacity="0.2" fill="#0000FF" points="682,504 677,509 685,504 690,509 "/>
+<polygon opacity="0.2" fill="#0000FF" points="677,509 673,511 681,493 685,504 "/>
+<polygon opacity="0.2" fill="#0000FF" points="673,511 669,507 677,478 681,493 "/>
+<polygon opacity="0.2" fill="#0000FF" points="669,507 664,496 672,457 677,478 "/>
+<polygon opacity="0.2" fill="#0000FF" points="664,496 661,477 668,431 672,457 "/>
+<polygon opacity="0.2" fill="#0000FF" points="661,477 656,452 664,404 668,431 "/>
+<polygon opacity="0.2" fill="#0000FF" points="656,452 652,423 660,378 664,404 "/>
+<polygon opacity="0.2" fill="#0000FF" points="652,423 648,393 656,358 660,378 "/>
+<polygon opacity="0.2" fill="#0000FF" points="648,393 643,367 651,348 656,358 "/>
+<polygon opacity="0.2" fill="#0000FF" points="643,367 639,351 647,350 651,348 "/>
+<polygon opacity="0.2" fill="#0000FF" points="639,351 635,348 643,368 647,350 "/>
+<polygon opacity="0.2" fill="#0000FF" points="635,348 631,363 639,400 643,368 "/>
+<polygon opacity="0.2" fill="#0000FF" points="631,363 627,392 634,441 639,400 "/>
+<polygon opacity="0.2" fill="#0000FF" points="627,392 622,435 630,482 634,441 "/>
+<polygon opacity="0.2" fill="#0000FF" points="622,435 618,478 626,515 630,482 "/>
+<polygon opacity="0.2" fill="#0000FF" points="618,478 614,514 622,528 626,515 "/>
+<polygon opacity="0.2" fill="#0000FF" points="614,514 610,529 618,517 622,528 "/>
+<polygon opacity="0.2" fill="#0000FF" points="610,529 605,517 613,482 618,517 "/>
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="479,622 501,621 522,619 544,615 563,612 580,607 591,602 598,597 599,592 595,586 586,581 572,577 554,572 534,569 512,566 490,565 470,563 452,563 438,563 428,564 424,565 425,566 431,568 442,568 458,568 477,567 498,566 520,564 542,561 561,557 577,553 589,549 597,543 599,538 596,532 587,527 574,522 557,518 536,514 515,512 493,509 472,509 454,509 439,508 428,510 424,510 424,512 430,512 440,513 456,513 474,513 495,512 517,510 539,507 558,503 575,499 589,494 597,489 600,483 597,478 589,472 576,468 559,464 539,460 518,457 496,455 475,454 456,453 441,454 430,454 425,455 424,457 429,457 438,458 453,458 472,458 492,457 514,455 536,452 556,449 573,444 587,440 596,435 599,429 598,424 591,418 578,414 562,409 543,406 521,402 499,401 477,400 458,399 443,399 432,399 425,401 424,401 428,403 437,403 451,404 469,403 490,402 511,401 533,398 554,395 572,390 586,386 595,380 599,375 598,370 591,365 580,360 564,355 545,352 524,348 501,346 480,344 461,344 445,344 433,345 426,345 423,347 426,348 436,348 449,349 466,348 487,348 509,346 531,344 551,340 569,336 584,332 594,327 599,322 599,316 593,311 582,305 567,301 547,297 526,294 505,291 484,290 463,290 446,289 434,290 426,290 423,292 426,292 434,294 447,294 464,294 484,294 506,292 527,289 548,286 567,282 583,277 593,273 598,267 599,262 594,256 583,251 569,247 550,243 529,240 507,237 486,236 466,234 448,234 435,234 427,236 423,237 425,238 433,239 445,239 462,239 481,238 503,237 525,234 546,232 565,227 580,223 592,219 598,213 599,208 595,202 585,197 571,192 553,189 532,185 511,182 489,181 469,180 451,180 437,180 427,181 424,181 425,183 432,184 443,184 "/>
+<rect x="930" y="370" width="89" height="44" opacity="1" fill="none" stroke="#000000"/>
+<text x="970" y="380" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+Surface
+</text>
+<text x="970" y="395" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+Line
+</text>
+<rect x="945" y="379" width="10" height="10" opacity="0.5" fill="#0000FF" stroke="none"/>
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="940,399 960,399 "/>
+</svg>
diff --git a/plotters-doc-data/README.md b/plotters-doc-data/README.md
new file mode 100644
index 0000000..b02ea6e
--- /dev/null
+++ b/plotters-doc-data/README.md
@@ -0,0 +1,6 @@
+# plotters-doc-data
+
+This is the repository for the additional documentation data used by Plotters.
+
+Check the main repository for detailed information [plotters](https://github.com/38/plotters)
+
diff --git a/plotters-doc-data/blit-bitmap.png b/plotters-doc-data/blit-bitmap.png
index f2de0d7..324c016 100644
--- a/plotters-doc-data/blit-bitmap.png
+++ b/plotters-doc-data/blit-bitmap.png
Binary files differ
diff --git a/plotters-doc-data/boxplot.svg b/plotters-doc-data/boxplot.svg
index 708dcea..ac2fd5b 100644
--- a/plotters-doc-data/boxplot.svg
+++ b/plotters-doc-data/boxplot.svg
@@ -65,8 +65,8 @@ Ping Boxplot
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="977" y1="476" x2="977" y2="32"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="992" y1="476" x2="992" y2="32"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="1007" y1="476" x2="1007" y2="32"/>
-<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="85" y1="328" x2="1019" y2="328"/>
-<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="85" y1="180" x2="1019" y2="180"/>
+<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="85" y1="365" x2="1019" y2="365"/>
+<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="85" y1="143" x2="1019" y2="143"/>
<text x="5" y="255" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000" transform="rotate(270, 5, 255)">
Host
</text>
@@ -79,17 +79,17 @@ Ping, ms
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="647" y1="476" x2="647" y2="32"/>
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="797" y1="476" x2="797" y2="32"/>
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="947" y1="476" x2="947" y2="32"/>
-<line opacity="0.2" stroke="#000000" stroke-width="1" x1="85" y1="328" x2="1019" y2="328"/>
-<line opacity="0.2" stroke="#000000" stroke-width="1" x1="85" y1="180" x2="1019" y2="180"/>
+<line opacity="0.2" stroke="#000000" stroke-width="1" x1="85" y1="365" x2="1019" y2="365"/>
+<line opacity="0.2" stroke="#000000" stroke-width="1" x1="85" y1="143" x2="1019" y2="143"/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="84,33 84,477 "/>
-<text x="75" y="328" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
- 8.8.8.8
+<text x="75" y="365" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+&quot; 8.8.8.8&quot;
</text>
-<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="79,328 84,328 "/>
-<text x="75" y="180" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
- 1.1.1.1
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="79,365 84,365 "/>
+<text x="75" y="143" dy="0.5ex" text-anchor="end" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+&quot; 1.1.1.1&quot;
</text>
-<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="79,180 84,180 "/>
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="79,143 84,143 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="85,477 1019,477 "/>
<text x="196" y="487" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
28.0
@@ -115,30 +115,30 @@ Ping, ms
38.0
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="947,477 947,482 "/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="181" y1="187" x2="181" y2="197"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="181" y1="192" x2="226" y2="192"/>
-<rect x="226" y="182" width="30" height="20" opacity="1" fill="none" stroke="#3CB44B"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="238" y1="182" x2="238" y2="202"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="256" y1="192" x2="301" y2="192"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="301" y1="187" x2="301" y2="197"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="160" y1="335" x2="160" y2="345"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="160" y1="340" x2="241" y2="340"/>
-<rect x="241" y="330" width="55" height="20" opacity="1" fill="none" stroke="#3CB44B"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="256" y1="330" x2="256" y2="350"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="296" y1="340" x2="377" y2="340"/>
-<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="377" y1="335" x2="377" y2="345"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="283" y1="163" x2="283" y2="173"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="283" y1="168" x2="530" y2="168"/>
-<rect x="530" y="158" width="166" height="20" opacity="1" fill="none" stroke="#E6194B"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="572" y1="158" x2="572" y2="178"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="696" y1="168" x2="943" y2="168"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="943" y1="163" x2="943" y2="173"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="415" y1="311" x2="415" y2="321"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="415" y1="316" x2="564" y2="316"/>
-<rect x="564" y="306" width="100" height="20" opacity="1" fill="none" stroke="#E6194B"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="590" y1="306" x2="590" y2="326"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="664" y1="316" x2="813" y2="316"/>
-<line opacity="1" stroke="#E6194B" stroke-width="1" x1="813" y1="311" x2="813" y2="321"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="181" y1="126" x2="181" y2="136"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="181" y1="131" x2="226" y2="131"/>
+<rect x="226" y="121" width="30" height="20" opacity="1" fill="none" stroke="#E6194B"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="238" y1="121" x2="238" y2="141"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="256" y1="131" x2="301" y2="131"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="301" y1="126" x2="301" y2="136"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="160" y1="348" x2="160" y2="358"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="160" y1="353" x2="241" y2="353"/>
+<rect x="241" y="343" width="55" height="20" opacity="1" fill="none" stroke="#E6194B"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="256" y1="343" x2="256" y2="363"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="296" y1="353" x2="377" y2="353"/>
+<line opacity="1" stroke="#E6194B" stroke-width="1" x1="377" y1="348" x2="377" y2="358"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="283" y1="150" x2="283" y2="160"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="283" y1="155" x2="530" y2="155"/>
+<rect x="530" y="145" width="166" height="20" opacity="1" fill="none" stroke="#3CB44B"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="572" y1="145" x2="572" y2="165"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="696" y1="155" x2="943" y2="155"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="943" y1="150" x2="943" y2="160"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="415" y1="372" x2="415" y2="382"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="415" y1="377" x2="564" y2="377"/>
+<rect x="564" y="367" width="100" height="20" opacity="1" fill="none" stroke="#3CB44B"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="590" y1="367" x2="590" y2="387"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="664" y1="377" x2="813" y2="377"/>
+<line opacity="1" stroke="#3CB44B" stroke-width="1" x1="813" y1="372" x2="813" y2="382"/>
<rect x="930" y="38" width="84" height="44" opacity="1" fill="#FFFFFF" stroke="none"/>
<rect x="930" y="38" width="84" height="44" opacity="0.5" fill="none" stroke="#000000"/>
<text x="962" y="48" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
@@ -147,13 +147,13 @@ wired
<text x="962" y="63" dy="0.76em" text-anchor="start" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
wireless
</text>
-<rect x="940" y="46" width="12" height="12" opacity="1" fill="#3CB44B" stroke="none"/>
-<rect x="940" y="61" width="12" height="12" opacity="1" fill="#E6194B" stroke="none"/>
+<rect x="940" y="46" width="12" height="12" opacity="1" fill="#E6194B" stroke="none"/>
+<rect x="940" y="61" width="12" height="12" opacity="1" fill="#3CB44B" stroke="none"/>
<text x="258" y="522" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="16.129032258064516" opacity="1" fill="#000000">
Vertical Boxplot
</text>
-<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="200" y1="722" x2="200" y2="544"/>
-<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="356" y1="722" x2="356" y2="544"/>
+<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="161" y1="722" x2="161" y2="544"/>
+<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="395" y1="722" x2="395" y2="544"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="720" x2="512" y2="720"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="718" x2="512" y2="718"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="716" x2="512" y2="716"/>
@@ -238,8 +238,8 @@ Vertical Boxplot
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="549" x2="512" y2="549"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="547" x2="512" y2="547"/>
<line opacity="1" stroke="#FFFFFF" stroke-width="1" x1="45" y1="545" x2="512" y2="545"/>
-<line opacity="0.2" stroke="#000000" stroke-width="1" x1="200" y1="722" x2="200" y2="544"/>
-<line opacity="0.2" stroke="#000000" stroke-width="1" x1="356" y1="722" x2="356" y2="544"/>
+<line opacity="0.2" stroke="#000000" stroke-width="1" x1="161" y1="722" x2="161" y2="544"/>
+<line opacity="0.2" stroke="#000000" stroke-width="1" x1="395" y1="722" x2="395" y2="544"/>
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="45" y1="705" x2="512" y2="705"/>
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="45" y1="684" x2="512" y2="684"/>
<line opacity="0.2" stroke="#000000" stroke-width="1" x1="45" y1="663" x2="512" y2="663"/>
@@ -282,26 +282,26 @@ Vertical Boxplot
</text>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="39,558 44,558 "/>
<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="45,723 512,723 "/>
-<text x="200" y="733" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
-a
-</text>
-<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="200,723 200,728 "/>
-<text x="356" y="733" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
-b
-</text>
-<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="356,723 356,728 "/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="195" y1="700" x2="205" y2="700"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="200" y1="700" x2="200" y2="649"/>
-<rect x="195" y="616" width="10" height="33" opacity="1" fill="none" stroke="#000000"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="195" y1="621" x2="205" y2="621"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="200" y1="616" x2="200" y2="565"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="195" y1="565" x2="205" y2="565"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="351" y1="642" x2="361" y2="642"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="356" y1="642" x2="356" y2="620"/>
-<rect x="351" y="606" width="10" height="14" opacity="1" fill="none" stroke="#000000"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="351" y1="615" x2="361" y2="615"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="356" y1="606" x2="356" y2="585"/>
-<line opacity="1" stroke="#000000" stroke-width="1" x1="351" y1="585" x2="361" y2="585"/>
+<text x="161" y="733" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+&quot;a&quot;
+</text>
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="161,723 161,728 "/>
+<text x="395" y="733" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="9.67741935483871" opacity="1" fill="#000000">
+&quot;b&quot;
+</text>
+<polyline fill="none" opacity="1" stroke="#000000" stroke-width="1" points="395,723 395,728 "/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="156" y1="700" x2="166" y2="700"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="161" y1="700" x2="161" y2="649"/>
+<rect x="156" y="616" width="10" height="33" opacity="1" fill="none" stroke="#000000"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="156" y1="621" x2="166" y2="621"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="161" y1="616" x2="161" y2="565"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="156" y1="565" x2="166" y2="565"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="390" y1="642" x2="400" y2="642"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="395" y1="642" x2="395" y2="620"/>
+<rect x="390" y="606" width="10" height="14" opacity="1" fill="none" stroke="#000000"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="390" y1="615" x2="400" y2="615"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="395" y1="606" x2="395" y2="585"/>
+<line opacity="1" stroke="#000000" stroke-width="1" x1="390" y1="585" x2="400" y2="585"/>
<text x="765" y="522" dy="0.76em" text-anchor="middle" font-family="sans-serif" font-size="16.129032258064516" opacity="1" fill="#000000">
Horizontal Boxplot
</text>
diff --git a/plotters-doc-data/cat.png b/plotters-doc-data/cat.png
new file mode 100644
index 0000000..1ca744f
--- /dev/null
+++ b/plotters-doc-data/cat.png
Binary files differ
diff --git a/plotters-doc-data/console-2.png b/plotters-doc-data/console-2.png
new file mode 100644
index 0000000..384c6c2
--- /dev/null
+++ b/plotters-doc-data/console-2.png
Binary files differ
diff --git a/plotters-doc-data/console.png b/plotters-doc-data/console.png
new file mode 100644
index 0000000..3b557d5
--- /dev/null
+++ b/plotters-doc-data/console.png
Binary files differ
diff --git a/plotters-doc-data/evcxr-jupyter-integration.html b/plotters-doc-data/evcxr-jupyter-integration.html
new file mode 100644
index 0000000..dd57f9f
--- /dev/null
+++ b/plotters-doc-data/evcxr-jupyter-integration.html
@@ -0,0 +1,22132 @@
+<!DOCTYPE html>
+<html>
+<head><meta charset="utf-8" />
+
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async src="https://www.googletagmanager.com/gtag/js?id=UA-116409935-1"></script>
+<script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+ gtag('config', 'UA-116409935-1');
+</script>
+
+<title>evcxr-jupyter-integration</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
+
+<style type="text/css">
+ /*!
+*
+* Twitter Bootstrap
+*
+*/
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background-color: transparent;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: bold;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ box-sizing: content-box;
+ height: 0;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+input {
+ line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: bold;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+th {
+ padding: 0;
+}
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
+ src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+}
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.glyphicon-asterisk:before {
+ content: "\002a";
+}
+.glyphicon-plus:before {
+ content: "\002b";
+}
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+ content: "\20ac";
+}
+.glyphicon-minus:before {
+ content: "\2212";
+}
+.glyphicon-cloud:before {
+ content: "\2601";
+}
+.glyphicon-envelope:before {
+ content: "\2709";
+}
+.glyphicon-pencil:before {
+ content: "\270f";
+}
+.glyphicon-glass:before {
+ content: "\e001";
+}
+.glyphicon-music:before {
+ content: "\e002";
+}
+.glyphicon-search:before {
+ content: "\e003";
+}
+.glyphicon-heart:before {
+ content: "\e005";
+}
+.glyphicon-star:before {
+ content: "\e006";
+}
+.glyphicon-star-empty:before {
+ content: "\e007";
+}
+.glyphicon-user:before {
+ content: "\e008";
+}
+.glyphicon-film:before {
+ content: "\e009";
+}
+.glyphicon-th-large:before {
+ content: "\e010";
+}
+.glyphicon-th:before {
+ content: "\e011";
+}
+.glyphicon-th-list:before {
+ content: "\e012";
+}
+.glyphicon-ok:before {
+ content: "\e013";
+}
+.glyphicon-remove:before {
+ content: "\e014";
+}
+.glyphicon-zoom-in:before {
+ content: "\e015";
+}
+.glyphicon-zoom-out:before {
+ content: "\e016";
+}
+.glyphicon-off:before {
+ content: "\e017";
+}
+.glyphicon-signal:before {
+ content: "\e018";
+}
+.glyphicon-cog:before {
+ content: "\e019";
+}
+.glyphicon-trash:before {
+ content: "\e020";
+}
+.glyphicon-home:before {
+ content: "\e021";
+}
+.glyphicon-file:before {
+ content: "\e022";
+}
+.glyphicon-time:before {
+ content: "\e023";
+}
+.glyphicon-road:before {
+ content: "\e024";
+}
+.glyphicon-download-alt:before {
+ content: "\e025";
+}
+.glyphicon-download:before {
+ content: "\e026";
+}
+.glyphicon-upload:before {
+ content: "\e027";
+}
+.glyphicon-inbox:before {
+ content: "\e028";
+}
+.glyphicon-play-circle:before {
+ content: "\e029";
+}
+.glyphicon-repeat:before {
+ content: "\e030";
+}
+.glyphicon-refresh:before {
+ content: "\e031";
+}
+.glyphicon-list-alt:before {
+ content: "\e032";
+}
+.glyphicon-lock:before {
+ content: "\e033";
+}
+.glyphicon-flag:before {
+ content: "\e034";
+}
+.glyphicon-headphones:before {
+ content: "\e035";
+}
+.glyphicon-volume-off:before {
+ content: "\e036";
+}
+.glyphicon-volume-down:before {
+ content: "\e037";
+}
+.glyphicon-volume-up:before {
+ content: "\e038";
+}
+.glyphicon-qrcode:before {
+ content: "\e039";
+}
+.glyphicon-barcode:before {
+ content: "\e040";
+}
+.glyphicon-tag:before {
+ content: "\e041";
+}
+.glyphicon-tags:before {
+ content: "\e042";
+}
+.glyphicon-book:before {
+ content: "\e043";
+}
+.glyphicon-bookmark:before {
+ content: "\e044";
+}
+.glyphicon-print:before {
+ content: "\e045";
+}
+.glyphicon-camera:before {
+ content: "\e046";
+}
+.glyphicon-font:before {
+ content: "\e047";
+}
+.glyphicon-bold:before {
+ content: "\e048";
+}
+.glyphicon-italic:before {
+ content: "\e049";
+}
+.glyphicon-text-height:before {
+ content: "\e050";
+}
+.glyphicon-text-width:before {
+ content: "\e051";
+}
+.glyphicon-align-left:before {
+ content: "\e052";
+}
+.glyphicon-align-center:before {
+ content: "\e053";
+}
+.glyphicon-align-right:before {
+ content: "\e054";
+}
+.glyphicon-align-justify:before {
+ content: "\e055";
+}
+.glyphicon-list:before {
+ content: "\e056";
+}
+.glyphicon-indent-left:before {
+ content: "\e057";
+}
+.glyphicon-indent-right:before {
+ content: "\e058";
+}
+.glyphicon-facetime-video:before {
+ content: "\e059";
+}
+.glyphicon-picture:before {
+ content: "\e060";
+}
+.glyphicon-map-marker:before {
+ content: "\e062";
+}
+.glyphicon-adjust:before {
+ content: "\e063";
+}
+.glyphicon-tint:before {
+ content: "\e064";
+}
+.glyphicon-edit:before {
+ content: "\e065";
+}
+.glyphicon-share:before {
+ content: "\e066";
+}
+.glyphicon-check:before {
+ content: "\e067";
+}
+.glyphicon-move:before {
+ content: "\e068";
+}
+.glyphicon-step-backward:before {
+ content: "\e069";
+}
+.glyphicon-fast-backward:before {
+ content: "\e070";
+}
+.glyphicon-backward:before {
+ content: "\e071";
+}
+.glyphicon-play:before {
+ content: "\e072";
+}
+.glyphicon-pause:before {
+ content: "\e073";
+}
+.glyphicon-stop:before {
+ content: "\e074";
+}
+.glyphicon-forward:before {
+ content: "\e075";
+}
+.glyphicon-fast-forward:before {
+ content: "\e076";
+}
+.glyphicon-step-forward:before {
+ content: "\e077";
+}
+.glyphicon-eject:before {
+ content: "\e078";
+}
+.glyphicon-chevron-left:before {
+ content: "\e079";
+}
+.glyphicon-chevron-right:before {
+ content: "\e080";
+}
+.glyphicon-plus-sign:before {
+ content: "\e081";
+}
+.glyphicon-minus-sign:before {
+ content: "\e082";
+}
+.glyphicon-remove-sign:before {
+ content: "\e083";
+}
+.glyphicon-ok-sign:before {
+ content: "\e084";
+}
+.glyphicon-question-sign:before {
+ content: "\e085";
+}
+.glyphicon-info-sign:before {
+ content: "\e086";
+}
+.glyphicon-screenshot:before {
+ content: "\e087";
+}
+.glyphicon-remove-circle:before {
+ content: "\e088";
+}
+.glyphicon-ok-circle:before {
+ content: "\e089";
+}
+.glyphicon-ban-circle:before {
+ content: "\e090";
+}
+.glyphicon-arrow-left:before {
+ content: "\e091";
+}
+.glyphicon-arrow-right:before {
+ content: "\e092";
+}
+.glyphicon-arrow-up:before {
+ content: "\e093";
+}
+.glyphicon-arrow-down:before {
+ content: "\e094";
+}
+.glyphicon-share-alt:before {
+ content: "\e095";
+}
+.glyphicon-resize-full:before {
+ content: "\e096";
+}
+.glyphicon-resize-small:before {
+ content: "\e097";
+}
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
+}
+.glyphicon-gift:before {
+ content: "\e102";
+}
+.glyphicon-leaf:before {
+ content: "\e103";
+}
+.glyphicon-fire:before {
+ content: "\e104";
+}
+.glyphicon-eye-open:before {
+ content: "\e105";
+}
+.glyphicon-eye-close:before {
+ content: "\e106";
+}
+.glyphicon-warning-sign:before {
+ content: "\e107";
+}
+.glyphicon-plane:before {
+ content: "\e108";
+}
+.glyphicon-calendar:before {
+ content: "\e109";
+}
+.glyphicon-random:before {
+ content: "\e110";
+}
+.glyphicon-comment:before {
+ content: "\e111";
+}
+.glyphicon-magnet:before {
+ content: "\e112";
+}
+.glyphicon-chevron-up:before {
+ content: "\e113";
+}
+.glyphicon-chevron-down:before {
+ content: "\e114";
+}
+.glyphicon-retweet:before {
+ content: "\e115";
+}
+.glyphicon-shopping-cart:before {
+ content: "\e116";
+}
+.glyphicon-folder-close:before {
+ content: "\e117";
+}
+.glyphicon-folder-open:before {
+ content: "\e118";
+}
+.glyphicon-resize-vertical:before {
+ content: "\e119";
+}
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
+}
+.glyphicon-hdd:before {
+ content: "\e121";
+}
+.glyphicon-bullhorn:before {
+ content: "\e122";
+}
+.glyphicon-bell:before {
+ content: "\e123";
+}
+.glyphicon-certificate:before {
+ content: "\e124";
+}
+.glyphicon-thumbs-up:before {
+ content: "\e125";
+}
+.glyphicon-thumbs-down:before {
+ content: "\e126";
+}
+.glyphicon-hand-right:before {
+ content: "\e127";
+}
+.glyphicon-hand-left:before {
+ content: "\e128";
+}
+.glyphicon-hand-up:before {
+ content: "\e129";
+}
+.glyphicon-hand-down:before {
+ content: "\e130";
+}
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
+}
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
+}
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
+}
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
+}
+.glyphicon-globe:before {
+ content: "\e135";
+}
+.glyphicon-wrench:before {
+ content: "\e136";
+}
+.glyphicon-tasks:before {
+ content: "\e137";
+}
+.glyphicon-filter:before {
+ content: "\e138";
+}
+.glyphicon-briefcase:before {
+ content: "\e139";
+}
+.glyphicon-fullscreen:before {
+ content: "\e140";
+}
+.glyphicon-dashboard:before {
+ content: "\e141";
+}
+.glyphicon-paperclip:before {
+ content: "\e142";
+}
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.glyphicon-link:before {
+ content: "\e144";
+}
+.glyphicon-phone:before {
+ content: "\e145";
+}
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+.glyphicon-usd:before {
+ content: "\e148";
+}
+.glyphicon-gbp:before {
+ content: "\e149";
+}
+.glyphicon-sort:before {
+ content: "\e150";
+}
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+}
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+}
+.glyphicon-sort-by-order:before {
+ content: "\e153";
+}
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+}
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
+}
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+}
+.glyphicon-unchecked:before {
+ content: "\e157";
+}
+.glyphicon-expand:before {
+ content: "\e158";
+}
+.glyphicon-collapse-down:before {
+ content: "\e159";
+}
+.glyphicon-collapse-up:before {
+ content: "\e160";
+}
+.glyphicon-log-in:before {
+ content: "\e161";
+}
+.glyphicon-flash:before {
+ content: "\e162";
+}
+.glyphicon-log-out:before {
+ content: "\e163";
+}
+.glyphicon-new-window:before {
+ content: "\e164";
+}
+.glyphicon-record:before {
+ content: "\e165";
+}
+.glyphicon-save:before {
+ content: "\e166";
+}
+.glyphicon-open:before {
+ content: "\e167";
+}
+.glyphicon-saved:before {
+ content: "\e168";
+}
+.glyphicon-import:before {
+ content: "\e169";
+}
+.glyphicon-export:before {
+ content: "\e170";
+}
+.glyphicon-send:before {
+ content: "\e171";
+}
+.glyphicon-floppy-disk:before {
+ content: "\e172";
+}
+.glyphicon-floppy-saved:before {
+ content: "\e173";
+}
+.glyphicon-floppy-remove:before {
+ content: "\e174";
+}
+.glyphicon-floppy-save:before {
+ content: "\e175";
+}
+.glyphicon-floppy-open:before {
+ content: "\e176";
+}
+.glyphicon-credit-card:before {
+ content: "\e177";
+}
+.glyphicon-transfer:before {
+ content: "\e178";
+}
+.glyphicon-cutlery:before {
+ content: "\e179";
+}
+.glyphicon-header:before {
+ content: "\e180";
+}
+.glyphicon-compressed:before {
+ content: "\e181";
+}
+.glyphicon-earphone:before {
+ content: "\e182";
+}
+.glyphicon-phone-alt:before {
+ content: "\e183";
+}
+.glyphicon-tower:before {
+ content: "\e184";
+}
+.glyphicon-stats:before {
+ content: "\e185";
+}
+.glyphicon-sd-video:before {
+ content: "\e186";
+}
+.glyphicon-hd-video:before {
+ content: "\e187";
+}
+.glyphicon-subtitles:before {
+ content: "\e188";
+}
+.glyphicon-sound-stereo:before {
+ content: "\e189";
+}
+.glyphicon-sound-dolby:before {
+ content: "\e190";
+}
+.glyphicon-sound-5-1:before {
+ content: "\e191";
+}
+.glyphicon-sound-6-1:before {
+ content: "\e192";
+}
+.glyphicon-sound-7-1:before {
+ content: "\e193";
+}
+.glyphicon-copyright-mark:before {
+ content: "\e194";
+}
+.glyphicon-registration-mark:before {
+ content: "\e195";
+}
+.glyphicon-cloud-download:before {
+ content: "\e197";
+}
+.glyphicon-cloud-upload:before {
+ content: "\e198";
+}
+.glyphicon-tree-conifer:before {
+ content: "\e199";
+}
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
+}
+.glyphicon-cd:before {
+ content: "\e201";
+}
+.glyphicon-save-file:before {
+ content: "\e202";
+}
+.glyphicon-open-file:before {
+ content: "\e203";
+}
+.glyphicon-level-up:before {
+ content: "\e204";
+}
+.glyphicon-copy:before {
+ content: "\e205";
+}
+.glyphicon-paste:before {
+ content: "\e206";
+}
+.glyphicon-alert:before {
+ content: "\e209";
+}
+.glyphicon-equalizer:before {
+ content: "\e210";
+}
+.glyphicon-king:before {
+ content: "\e211";
+}
+.glyphicon-queen:before {
+ content: "\e212";
+}
+.glyphicon-pawn:before {
+ content: "\e213";
+}
+.glyphicon-bishop:before {
+ content: "\e214";
+}
+.glyphicon-knight:before {
+ content: "\e215";
+}
+.glyphicon-baby-formula:before {
+ content: "\e216";
+}
+.glyphicon-tent:before {
+ content: "\26fa";
+}
+.glyphicon-blackboard:before {
+ content: "\e218";
+}
+.glyphicon-bed:before {
+ content: "\e219";
+}
+.glyphicon-apple:before {
+ content: "\f8ff";
+}
+.glyphicon-erase:before {
+ content: "\e221";
+}
+.glyphicon-hourglass:before {
+ content: "\231b";
+}
+.glyphicon-lamp:before {
+ content: "\e223";
+}
+.glyphicon-duplicate:before {
+ content: "\e224";
+}
+.glyphicon-piggy-bank:before {
+ content: "\e225";
+}
+.glyphicon-scissors:before {
+ content: "\e226";
+}
+.glyphicon-bitcoin:before {
+ content: "\e227";
+}
+.glyphicon-btc:before {
+ content: "\e227";
+}
+.glyphicon-xbt:before {
+ content: "\e227";
+}
+.glyphicon-yen:before {
+ content: "\00a5";
+}
+.glyphicon-jpy:before {
+ content: "\00a5";
+}
+.glyphicon-ruble:before {
+ content: "\20bd";
+}
+.glyphicon-rub:before {
+ content: "\20bd";
+}
+.glyphicon-scale:before {
+ content: "\e230";
+}
+.glyphicon-ice-lolly:before {
+ content: "\e231";
+}
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232";
+}
+.glyphicon-education:before {
+ content: "\e233";
+}
+.glyphicon-option-horizontal:before {
+ content: "\e234";
+}
+.glyphicon-option-vertical:before {
+ content: "\e235";
+}
+.glyphicon-menu-hamburger:before {
+ content: "\e236";
+}
+.glyphicon-modal-window:before {
+ content: "\e237";
+}
+.glyphicon-oil:before {
+ content: "\e238";
+}
+.glyphicon-grain:before {
+ content: "\e239";
+}
+.glyphicon-sunglasses:before {
+ content: "\e240";
+}
+.glyphicon-text-size:before {
+ content: "\e241";
+}
+.glyphicon-text-color:before {
+ content: "\e242";
+}
+.glyphicon-text-background:before {
+ content: "\e243";
+}
+.glyphicon-object-align-top:before {
+ content: "\e244";
+}
+.glyphicon-object-align-bottom:before {
+ content: "\e245";
+}
+.glyphicon-object-align-horizontal:before {
+ content: "\e246";
+}
+.glyphicon-object-align-left:before {
+ content: "\e247";
+}
+.glyphicon-object-align-vertical:before {
+ content: "\e248";
+}
+.glyphicon-object-align-right:before {
+ content: "\e249";
+}
+.glyphicon-triangle-right:before {
+ content: "\e250";
+}
+.glyphicon-triangle-left:before {
+ content: "\e251";
+}
+.glyphicon-triangle-bottom:before {
+ content: "\e252";
+}
+.glyphicon-triangle-top:before {
+ content: "\e253";
+}
+.glyphicon-console:before {
+ content: "\e254";
+}
+.glyphicon-superscript:before {
+ content: "\e255";
+}
+.glyphicon-subscript:before {
+ content: "\e256";
+}
+.glyphicon-menu-left:before {
+ content: "\e257";
+}
+.glyphicon-menu-right:before {
+ content: "\e258";
+}
+.glyphicon-menu-down:before {
+ content: "\e259";
+}
+.glyphicon-menu-up:before {
+ content: "\e260";
+}
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #000000;
+ background-color: #ffffff;
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a {
+ color: #337ab7;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: #23527c;
+ text-decoration: underline;
+}
+a:focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 3px;
+}
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 2px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 18px;
+ margin-bottom: 18px;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+[role="button"] {
+ cursor: pointer;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777777;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 18px;
+ margin-bottom: 9px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
+}
+h1,
+.h1 {
+ font-size: 33px;
+}
+h2,
+.h2 {
+ font-size: 27px;
+}
+h3,
+.h3 {
+ font-size: 23px;
+}
+h4,
+.h4 {
+ font-size: 17px;
+}
+h5,
+.h5 {
+ font-size: 13px;
+}
+h6,
+.h6 {
+ font-size: 12px;
+}
+p {
+ margin: 0 0 9px;
+}
+.lead {
+ margin-bottom: 18px;
+ font-size: 14px;
+ font-weight: 300;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .lead {
+ font-size: 19.5px;
+ }
+}
+small,
+.small {
+ font-size: 92%;
+}
+mark,
+.mark {
+ background-color: #fcf8e3;
+ padding: .2em;
+}
+.text-left {
+ text-align: left;
+}
+.text-right {
+ text-align: right;
+}
+.text-center {
+ text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-nowrap {
+ white-space: nowrap;
+}
+.text-lowercase {
+ text-transform: lowercase;
+}
+.text-uppercase {
+ text-transform: uppercase;
+}
+.text-capitalize {
+ text-transform: capitalize;
+}
+.text-muted {
+ color: #777777;
+}
+.text-primary {
+ color: #337ab7;
+}
+a.text-primary:hover,
+a.text-primary:focus {
+ color: #286090;
+}
+.text-success {
+ color: #3c763d;
+}
+a.text-success:hover,
+a.text-success:focus {
+ color: #2b542c;
+}
+.text-info {
+ color: #31708f;
+}
+a.text-info:hover,
+a.text-info:focus {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover,
+a.text-danger:focus {
+ color: #843534;
+}
+.bg-primary {
+ color: #fff;
+ background-color: #337ab7;
+}
+a.bg-primary:hover,
+a.bg-primary:focus {
+ background-color: #286090;
+}
+.bg-success {
+ background-color: #dff0d8;
+}
+a.bg-success:hover,
+a.bg-success:focus {
+ background-color: #c1e2b3;
+}
+.bg-info {
+ background-color: #d9edf7;
+}
+a.bg-info:hover,
+a.bg-info:focus {
+ background-color: #afd9ee;
+}
+.bg-warning {
+ background-color: #fcf8e3;
+}
+a.bg-warning:hover,
+a.bg-warning:focus {
+ background-color: #f7ecb5;
+}
+.bg-danger {
+ background-color: #f2dede;
+}
+a.bg-danger:hover,
+a.bg-danger:focus {
+ background-color: #e4b9b9;
+}
+.page-header {
+ padding-bottom: 8px;
+ margin: 36px 0 18px;
+ border-bottom: 1px solid #eeeeee;
+}
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 9px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
+}
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px;
+}
+.list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+dl {
+ margin-top: 0;
+ margin-bottom: 18px;
+}
+dt,
+dd {
+ line-height: 1.42857143;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: 0;
+}
+@media (min-width: 541px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777777;
+}
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+blockquote {
+ padding: 9px 18px;
+ margin: 0 0 18px;
+ font-size: inherit;
+ border-left: 5px solid #eeeeee;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777777;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
+}
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+ text-align: right;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: '';
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
+}
+address {
+ margin-bottom: 18px;
+ font-style: normal;
+ line-height: 1.42857143;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace;
+}
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 2px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #888888;
+ background-color: transparent;
+ border-radius: 1px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none;
+}
+pre {
+ display: block;
+ padding: 8.5px;
+ margin: 0 0 9px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333333;
+ background-color: #f5f5f5;
+ border: 1px solid #cccccc;
+ border-radius: 2px;
+}
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 0px;
+ padding-right: 0px;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 768px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 940px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1140px;
+ }
+}
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 0px;
+ padding-right: 0px;
+}
+.row {
+ margin-left: 0px;
+ margin-right: 0px;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 0px;
+ padding-right: 0px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
+}
+.col-xs-12 {
+ width: 100%;
+}
+.col-xs-11 {
+ width: 91.66666667%;
+}
+.col-xs-10 {
+ width: 83.33333333%;
+}
+.col-xs-9 {
+ width: 75%;
+}
+.col-xs-8 {
+ width: 66.66666667%;
+}
+.col-xs-7 {
+ width: 58.33333333%;
+}
+.col-xs-6 {
+ width: 50%;
+}
+.col-xs-5 {
+ width: 41.66666667%;
+}
+.col-xs-4 {
+ width: 33.33333333%;
+}
+.col-xs-3 {
+ width: 25%;
+}
+.col-xs-2 {
+ width: 16.66666667%;
+}
+.col-xs-1 {
+ width: 8.33333333%;
+}
+.col-xs-pull-12 {
+ right: 100%;
+}
+.col-xs-pull-11 {
+ right: 91.66666667%;
+}
+.col-xs-pull-10 {
+ right: 83.33333333%;
+}
+.col-xs-pull-9 {
+ right: 75%;
+}
+.col-xs-pull-8 {
+ right: 66.66666667%;
+}
+.col-xs-pull-7 {
+ right: 58.33333333%;
+}
+.col-xs-pull-6 {
+ right: 50%;
+}
+.col-xs-pull-5 {
+ right: 41.66666667%;
+}
+.col-xs-pull-4 {
+ right: 33.33333333%;
+}
+.col-xs-pull-3 {
+ right: 25%;
+}
+.col-xs-pull-2 {
+ right: 16.66666667%;
+}
+.col-xs-pull-1 {
+ right: 8.33333333%;
+}
+.col-xs-pull-0 {
+ right: auto;
+}
+.col-xs-push-12 {
+ left: 100%;
+}
+.col-xs-push-11 {
+ left: 91.66666667%;
+}
+.col-xs-push-10 {
+ left: 83.33333333%;
+}
+.col-xs-push-9 {
+ left: 75%;
+}
+.col-xs-push-8 {
+ left: 66.66666667%;
+}
+.col-xs-push-7 {
+ left: 58.33333333%;
+}
+.col-xs-push-6 {
+ left: 50%;
+}
+.col-xs-push-5 {
+ left: 41.66666667%;
+}
+.col-xs-push-4 {
+ left: 33.33333333%;
+}
+.col-xs-push-3 {
+ left: 25%;
+}
+.col-xs-push-2 {
+ left: 16.66666667%;
+}
+.col-xs-push-1 {
+ left: 8.33333333%;
+}
+.col-xs-push-0 {
+ left: auto;
+}
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0%;
+}
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0%;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0%;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0%;
+ }
+}
+table {
+ background-color: transparent;
+}
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777777;
+ text-align: left;
+}
+th {
+ text-align: left;
+}
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 18px;
+}
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #dddddd;
+}
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #dddddd;
+}
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+.table > tbody + tbody {
+ border-top: 2px solid #dddddd;
+}
+.table .table {
+ background-color: #ffffff;
+}
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+.table-bordered {
+ border: 1px solid #dddddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #dddddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9;
+}
+.table-hover > tbody > tr:hover {
+ background-color: #f5f5f5;
+}
+table col[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-column;
+}
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-cell;
+}
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%;
+}
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 13.5px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #dddddd;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0;
+}
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 18px;
+ font-size: 19.5px;
+ line-height: inherit;
+ color: #333333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+input[type="file"] {
+ display: block;
+}
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+select[multiple],
+select[size] {
+ height: auto;
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555555;
+}
+.form-control {
+ display: block;
+ width: 100%;
+ height: 32px;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555555;
+ background-color: #ffffff;
+ background-image: none;
+ border: 1px solid #cccccc;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.form-control::-moz-placeholder {
+ color: #999999;
+ opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+ color: #999999;
+}
+.form-control::-webkit-input-placeholder {
+ color: #999999;
+}
+.form-control::-ms-expand {
+ border: 0;
+ background-color: transparent;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ background-color: #eeeeee;
+ opacity: 1;
+}
+.form-control[disabled],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+}
+textarea.form-control {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: none;
+}
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
+ line-height: 32px;
+ }
+ input[type="date"].input-sm,
+ input[type="time"].input-sm,
+ input[type="datetime-local"].input-sm,
+ input[type="month"].input-sm,
+ .input-group-sm input[type="date"],
+ .input-group-sm input[type="time"],
+ .input-group-sm input[type="datetime-local"],
+ .input-group-sm input[type="month"] {
+ line-height: 30px;
+ }
+ input[type="date"].input-lg,
+ input[type="time"].input-lg,
+ input[type="datetime-local"].input-lg,
+ input[type="month"].input-lg,
+ .input-group-lg input[type="date"],
+ .input-group-lg input[type="time"],
+ .input-group-lg input[type="datetime-local"],
+ .input-group-lg input[type="month"] {
+ line-height: 45px;
+ }
+}
+.form-group {
+ margin-bottom: 15px;
+}
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.radio label,
+.checkbox label {
+ min-height: 18px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9;
+}
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"].disabled,
+input[type="checkbox"].disabled,
+fieldset[disabled] input[type="radio"],
+fieldset[disabled] input[type="checkbox"] {
+ cursor: not-allowed;
+}
+.radio-inline.disabled,
+.checkbox-inline.disabled,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+ cursor: not-allowed;
+}
+.form-control-static {
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+ min-height: 31px;
+}
+.form-control-static.input-lg,
+.form-control-static.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+}
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+}
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
+.form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+}
+.form-group-sm select.form-control {
+ height: 30px;
+ line-height: 30px;
+}
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto;
+}
+.form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 30px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+.input-lg {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+ border-radius: 3px;
+}
+select.input-lg {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.input-lg,
+select[multiple].input-lg {
+ height: auto;
+}
+.form-group-lg .form-control {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+ border-radius: 3px;
+}
+.form-group-lg select.form-control {
+ height: 45px;
+ line-height: 45px;
+}
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto;
+}
+.form-group-lg .form-control-static {
+ height: 45px;
+ min-height: 35px;
+ padding: 11px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+}
+.has-feedback {
+ position: relative;
+}
+.has-feedback .form-control {
+ padding-right: 40px;
+}
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 32px;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ pointer-events: none;
+}
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+ width: 45px;
+ height: 45px;
+ line-height: 45px;
+}
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #3c763d;
+}
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+}
+.has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8;
+}
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #8a6d3b;
+}
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+}
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #a94442;
+}
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+.has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede;
+}
+.has-error .form-control-feedback {
+ color: #a94442;
+}
+.has-feedback label ~ .form-control-feedback {
+ top: 23px;
+}
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
+}
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #404040;
+}
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 25px;
+}
+.form-horizontal .form-group {
+ margin-left: 0px;
+ margin-right: 0px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: 7px;
+ }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 0px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 11px;
+ font-size: 17px;
+ }
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ font-size: 12px;
+ }
+}
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: normal;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ border-radius: 2px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus,
+.btn.focus,
+.btn:active.focus,
+.btn.active.focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.btn:hover,
+.btn:focus,
+.btn.focus {
+ color: #333333;
+ text-decoration: none;
+}
+.btn:active,
+.btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+ cursor: not-allowed;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none;
+}
+.btn-default {
+ color: #333333;
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.btn-default:focus,
+.btn-default.focus {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+.btn-default:hover {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+ color: #333333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ background-image: none;
+}
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus {
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.btn-default .badge {
+ color: #ffffff;
+ background-color: #333333;
+}
+.btn-primary {
+ color: #ffffff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.btn-primary:focus,
+.btn-primary.focus {
+ color: #ffffff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.btn-primary:hover {
+ color: #ffffff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+ color: #ffffff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+ color: #ffffff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+ background-image: none;
+}
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.btn-primary .badge {
+ color: #337ab7;
+ background-color: #ffffff;
+}
+.btn-success {
+ color: #ffffff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success:focus,
+.btn-success.focus {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #255625;
+}
+.btn-success:hover {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+ color: #ffffff;
+ background-color: #398439;
+ border-color: #255625;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ background-image: none;
+}
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #ffffff;
+}
+.btn-info {
+ color: #ffffff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info:focus,
+.btn-info.focus {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #1b6d85;
+}
+.btn-info:hover {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+ color: #ffffff;
+ background-color: #269abc;
+ border-color: #1b6d85;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ background-image: none;
+}
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #ffffff;
+}
+.btn-warning {
+ color: #ffffff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning:focus,
+.btn-warning.focus {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #985f0d;
+}
+.btn-warning:hover {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+ color: #ffffff;
+ background-color: #d58512;
+ border-color: #985f0d;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #ffffff;
+}
+.btn-danger {
+ color: #ffffff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger:focus,
+.btn-danger.focus {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #761c19;
+}
+.btn-danger:hover {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+ color: #ffffff;
+ background-color: #ac2925;
+ border-color: #761c19;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #ffffff;
+}
+.btn-link {
+ color: #337ab7;
+ font-weight: normal;
+ border-radius: 0;
+}
+.btn-link,
+.btn-link:active,
+.btn-link.active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+ border-color: transparent;
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+ color: #777777;
+ text-decoration: none;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+ border-radius: 3px;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+}
+.btn-xs,
+.btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+}
+.btn-block {
+ display: block;
+ width: 100%;
+}
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+.fade.in {
+ opacity: 1;
+}
+.collapse {
+ display: none;
+}
+.collapse.in {
+ display: block;
+}
+tr.collapse.in {
+ display: table-row;
+}
+tbody.collapse.in {
+ display: table-row-group;
+}
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-property: height, visibility;
+ transition-property: height, visibility;
+ -webkit-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+}
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+.dropup,
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle:focus {
+ outline: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 13px;
+ text-align: left;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 2px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857143;
+ color: #333333;
+ white-space: nowrap;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #ffffff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #337ab7;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #777777;
+}
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed;
+}
+.open > .dropdown-menu {
+ display: block;
+}
+.open > a {
+ outline: 0;
+}
+.dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #777777;
+ white-space: nowrap;
+}
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+ content: "";
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+@media (min-width: 541px) {
+ .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.btn-toolbar {
+ margin-left: -5px;
+}
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group > .btn-group {
+ float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn .caret {
+ margin-left: 0;
+}
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 2px;
+ border-top-left-radius: 2px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+ border-bottom-right-radius: 2px;
+ border-bottom-left-radius: 2px;
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+.btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+}
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.input-group[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+.input-group .form-control:focus {
+ z-index: 3;
+}
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+ border-radius: 3px;
+}
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+}
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 13px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555555;
+ text-align: center;
+ background-color: #eeeeee;
+ border: 1px solid #cccccc;
+ border-radius: 2px;
+}
+.input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 1px;
+}
+.input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 17px;
+ border-radius: 3px;
+}
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.input-group-addon:first-child {
+ border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+.input-group-btn > .btn {
+ position: relative;
+}
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+ z-index: 2;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ z-index: 2;
+ margin-left: -1px;
+}
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+.nav > li {
+ position: relative;
+ display: block;
+}
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.nav > li.disabled > a {
+ color: #777777;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #777777;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #337ab7;
+}
+.nav .nav-divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.nav > li > a > img {
+ max-width: none;
+}
+.nav-tabs {
+ border-bottom: 1px solid #dddddd;
+}
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 2px 2px 0 0;
+}
+.nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555555;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+.nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 2px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #dddddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ border-radius: 2px 2px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #ffffff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+.nav-pills > li > a {
+ border-radius: 2px;
+}
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #ffffff;
+ background-color: #337ab7;
+}
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.nav-justified {
+ width: 100%;
+}
+.nav-justified > li {
+ float: none;
+}
+.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 2px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #dddddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ border-radius: 2px 2px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #ffffff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar {
+ position: relative;
+ min-height: 30px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+}
+@media (min-width: 541px) {
+ .navbar {
+ border-radius: 2px;
+ }
+}
+@media (min-width: 541px) {
+ .navbar-header {
+ float: left;
+ }
+}
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: 0px;
+ padding-left: 0px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch;
+}
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 541px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+}
+@media (max-device-width: 540px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: 0px;
+ margin-left: 0px;
+}
+@media (min-width: 541px) {
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+@media (min-width: 541px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+@media (min-width: 541px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+.navbar-brand {
+ float: left;
+ padding: 6px 0px;
+ font-size: 17px;
+ line-height: 18px;
+ height: 30px;
+}
+.navbar-brand:hover,
+.navbar-brand:focus {
+ text-decoration: none;
+}
+.navbar-brand > img {
+ display: block;
+}
+@media (min-width: 541px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: 0px;
+ }
+}
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 0px;
+ padding: 9px 10px;
+ margin-top: -2px;
+ margin-bottom: -2px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 2px;
+}
+.navbar-toggle:focus {
+ outline: 0;
+}
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 541px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+.navbar-nav {
+ margin: 3px 0px;
+}
+.navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 18px;
+}
+@media (max-width: 540px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 18px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 541px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 6px;
+ padding-bottom: 6px;
+ }
+}
+.navbar-form {
+ margin-left: 0px;
+ margin-right: 0px;
+ padding: 10px 0px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: -1px;
+ margin-bottom: -1px;
+}
+@media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control-static {
+ display: inline-block;
+ }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0;
+ }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 540px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
+}
+@media (min-width: 541px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+}
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-right-radius: 2px;
+ border-top-left-radius: 2px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.navbar-btn {
+ margin-top: -1px;
+ margin-bottom: -1px;
+}
+.navbar-btn.btn-sm {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+.navbar-btn.btn-xs {
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+.navbar-text {
+ margin-top: 6px;
+ margin-bottom: 6px;
+}
+@media (min-width: 541px) {
+ .navbar-text {
+ float: left;
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+}
+@media (min-width: 541px) {
+ .navbar-left {
+ float: left !important;
+ float: left;
+ }
+ .navbar-right {
+ float: right !important;
+ float: right;
+ margin-right: 0px;
+ }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0;
+ }
+}
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-brand {
+ color: #777777;
+}
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.navbar-default .navbar-text {
+ color: #777777;
+}
+.navbar-default .navbar-nav > li > a {
+ color: #777777;
+}
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #333333;
+ background-color: transparent;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #555555;
+ background-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+ color: #cccccc;
+ background-color: transparent;
+}
+.navbar-default .navbar-toggle {
+ border-color: #dddddd;
+}
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+ background-color: #dddddd;
+}
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888888;
+}
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555555;
+}
+@media (max-width: 540px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777777;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #cccccc;
+ background-color: transparent;
+ }
+}
+.navbar-default .navbar-link {
+ color: #777777;
+}
+.navbar-default .navbar-link:hover {
+ color: #333333;
+}
+.navbar-default .btn-link {
+ color: #777777;
+}
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+ color: #333333;
+}
+.navbar-default .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-default .btn-link:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #cccccc;
+}
+.navbar-inverse {
+ background-color: #222222;
+ border-color: #080808;
+}
+.navbar-inverse .navbar-brand {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+ color: #ffffff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-text {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+ color: #ffffff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+ color: #ffffff;
+ background-color: #080808;
+}
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444444;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-toggle {
+ border-color: #333333;
+}
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+ background-color: #333333;
+}
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #ffffff;
+}
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #080808;
+ color: #ffffff;
+}
+@media (max-width: 540px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #ffffff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #ffffff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444444;
+ background-color: transparent;
+ }
+}
+.navbar-inverse .navbar-link {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-link:hover {
+ color: #ffffff;
+}
+.navbar-inverse .btn-link {
+ color: #9d9d9d;
+}
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+ color: #ffffff;
+}
+.navbar-inverse .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444444;
+}
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 18px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 2px;
+}
+.breadcrumb > li {
+ display: inline-block;
+}
+.breadcrumb > li + li:before {
+ content: "/\00a0";
+ padding: 0 5px;
+ color: #5e5e5e;
+}
+.breadcrumb > .active {
+ color: #777777;
+}
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 18px 0;
+ border-radius: 2px;
+}
+.pagination > li {
+ display: inline;
+}
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857143;
+ text-decoration: none;
+ color: #337ab7;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ margin-left: -1px;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 2px;
+ border-top-left-radius: 2px;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-bottom-right-radius: 2px;
+ border-top-right-radius: 2px;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ z-index: 2;
+ color: #23527c;
+ background-color: #eeeeee;
+ border-color: #dddddd;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 3;
+ color: #ffffff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ cursor: default;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #777777;
+ background-color: #ffffff;
+ border-color: #dddddd;
+ cursor: not-allowed;
+}
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.3333333;
+}
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 1px;
+ border-top-left-radius: 1px;
+}
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 1px;
+ border-top-right-radius: 1px;
+}
+.pager {
+ padding-left: 0;
+ margin: 18px 0;
+ list-style: none;
+ text-align: center;
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 15px;
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #777777;
+ background-color: #ffffff;
+ cursor: not-allowed;
+}
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #ffffff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+}
+a.label:hover,
+a.label:focus {
+ color: #ffffff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.label:empty {
+ display: none;
+}
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+.label-default {
+ background-color: #777777;
+}
+.label-default[href]:hover,
+.label-default[href]:focus {
+ background-color: #5e5e5e;
+}
+.label-primary {
+ background-color: #337ab7;
+}
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+ background-color: #286090;
+}
+.label-success {
+ background-color: #5cb85c;
+}
+.label-success[href]:hover,
+.label-success[href]:focus {
+ background-color: #449d44;
+}
+.label-info {
+ background-color: #5bc0de;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.label-warning {
+ background-color: #f0ad4e;
+}
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.label-danger {
+ background-color: #d9534f;
+}
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ color: #ffffff;
+ line-height: 1;
+ vertical-align: middle;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #777777;
+ border-radius: 10px;
+}
+.badge:empty {
+ display: none;
+}
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+a.badge:hover,
+a.badge:focus {
+ color: #ffffff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #ffffff;
+}
+.list-group-item > .badge {
+ float: right;
+}
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.jumbotron {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eeeeee;
+}
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 20px;
+ font-weight: 200;
+}
+.jumbotron > hr {
+ border-top-color: #d5d5d5;
+}
+.container .jumbotron,
+.container-fluid .jumbotron {
+ border-radius: 3px;
+ padding-left: 0px;
+ padding-right: 0px;
+}
+.jumbotron .container {
+ max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 59px;
+ }
+}
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 18px;
+ line-height: 1.42857143;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 2px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out;
+}
+.thumbnail > img,
+.thumbnail a > img {
+ margin-left: auto;
+ margin-right: auto;
+}
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #337ab7;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: #000000;
+}
+.alert {
+ padding: 15px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+ border-radius: 2px;
+}
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.alert .alert-link {
+ font-weight: bold;
+}
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+.alert > p + p {
+ margin-top: 5px;
+}
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 35px;
+}
+.alert-dismissable .close,
+.alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d;
+}
+.alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.alert-success .alert-link {
+ color: #2b542c;
+}
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f;
+}
+.alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.alert-info .alert-link {
+ color: #245269;
+}
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b;
+}
+.alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+.alert-warning .alert-link {
+ color: #66512c;
+}
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442;
+}
+.alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+.alert-danger .alert-link {
+ color: #843534;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.progress {
+ overflow: hidden;
+ height: 18px;
+ margin-bottom: 18px;
+ background-color: #f5f5f5;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: 12px;
+ line-height: 18px;
+ color: #ffffff;
+ text-align: center;
+ background-color: #337ab7;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ -o-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 40px 40px;
+}
+.progress.active .progress-bar,
+.progress-bar.active {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-bar-success {
+ background-color: #5cb85c;
+}
+.progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-bar-info {
+ background-color: #5bc0de;
+}
+.progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.progress-bar-danger {
+ background-color: #d9534f;
+}
+.progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden;
+}
+.media-body {
+ width: 10000px;
+}
+.media-object {
+ display: block;
+}
+.media-object.img-thumbnail {
+ max-width: none;
+}
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
+}
+.media-left,
+.media > .pull-left {
+ padding-right: 10px;
+}
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+.media-middle {
+ vertical-align: middle;
+}
+.media-bottom {
+ vertical-align: bottom;
+}
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+}
+.list-group-item:first-child {
+ border-top-right-radius: 2px;
+ border-top-left-radius: 2px;
+}
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 2px;
+ border-bottom-left-radius: 2px;
+}
+a.list-group-item,
+button.list-group-item {
+ color: #555555;
+}
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+ color: #333333;
+}
+a.list-group-item:hover,
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
+ text-decoration: none;
+ color: #555555;
+ background-color: #f5f5f5;
+}
+button.list-group-item {
+ width: 100%;
+ text-align: left;
+}
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+ background-color: #eeeeee;
+ color: #777777;
+ cursor: not-allowed;
+}
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit;
+}
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+ color: #777777;
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ z-index: 2;
+ color: #ffffff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit;
+}
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef;
+}
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #3c763d;
+}
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-success:hover,
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+a.list-group-item-success.active,
+button.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #31708f;
+}
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-info:hover,
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+a.list-group-item-info.active,
+button.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #8a6d3b;
+}
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-warning:hover,
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+a.list-group-item-warning.active,
+button.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #a94442;
+}
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-danger:hover,
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+a.list-group-item-danger.active,
+button.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.panel {
+ margin-bottom: 18px;
+ background-color: #ffffff;
+ border: 1px solid transparent;
+ border-radius: 2px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.panel-body {
+ padding: 15px;
+}
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+}
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 15px;
+ color: inherit;
+}
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+ color: inherit;
+}
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #dddddd;
+ border-bottom-right-radius: 1px;
+ border-bottom-left-radius: 1px;
+}
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+ margin-bottom: 0;
+}
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+}
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 1px;
+ border-bottom-left-radius: 1px;
+}
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+ margin-bottom: 0;
+}
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 1px;
+ border-top-right-radius: 1px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 1px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 1px;
+}
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 1px;
+ border-bottom-left-radius: 1px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-left-radius: 1px;
+ border-bottom-right-radius: 1px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 1px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 1px;
+}
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+ border-top: 1px solid #dddddd;
+}
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+}
+.panel-group {
+ margin-bottom: 18px;
+}
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 2px;
+}
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #dddddd;
+}
+.panel-group .panel-footer {
+ border-top: 0;
+}
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #dddddd;
+}
+.panel-default {
+ border-color: #dddddd;
+}
+.panel-default > .panel-heading {
+ color: #333333;
+ background-color: #f5f5f5;
+ border-color: #dddddd;
+}
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #dddddd;
+}
+.panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333333;
+}
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #dddddd;
+}
+.panel-primary {
+ border-color: #337ab7;
+}
+.panel-primary > .panel-heading {
+ color: #ffffff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7;
+}
+.panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #ffffff;
+}
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7;
+}
+.panel-success {
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6;
+}
+.panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d;
+}
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.panel-info {
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1;
+}
+.panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f;
+}
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.panel-warning {
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc;
+}
+.panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b;
+}
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc;
+}
+.panel-danger {
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1;
+}
+.panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442;
+}
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1;
+}
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+}
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+}
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.well-lg {
+ padding: 24px;
+ border-radius: 3px;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: 1px;
+}
+.close {
+ float: right;
+ font-size: 19.5px;
+ font-weight: bold;
+ line-height: 1;
+ color: #000000;
+ text-shadow: 0 1px 0 #ffffff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+.close:hover,
+.close:focus {
+ color: #000000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
+.modal-open {
+ overflow: hidden;
+}
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+.modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+.modal-content {
+ position: relative;
+ background-color: #ffffff;
+ border: 1px solid #999999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 3px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0;
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+}
+.modal-header .close {
+ margin-top: -2px;
+}
+.modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+}
+.modal-body {
+ position: relative;
+ padding: 15px;
+}
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857143;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 12px;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+.tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+.tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+.tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #ffffff;
+ text-align: center;
+ background-color: #000000;
+ border-radius: 2px;
+}
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000000;
+}
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000000;
+}
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857143;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 13px;
+ background-color: #ffffff;
+ background-clip: padding-box;
+ border: 1px solid #cccccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 3px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+}
+.popover.top {
+ margin-top: -10px;
+}
+.popover.right {
+ margin-left: 10px;
+}
+.popover.bottom {
+ margin-top: 10px;
+}
+.popover.left {
+ margin-left: -10px;
+}
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 13px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 2px 2px 0 0;
+}
+.popover-content {
+ padding: 9px 14px;
+}
+.popover > .arrow,
+.popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover > .arrow {
+ border-width: 11px;
+}
+.popover > .arrow:after {
+ border-width: 10px;
+ content: "";
+}
+.popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+.popover.top > .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #ffffff;
+}
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.popover.right > .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #ffffff;
+}
+.popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+.popover.bottom > .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #ffffff;
+}
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.popover.left > .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #ffffff;
+ bottom: -10px;
+}
+.carousel {
+ position: relative;
+}
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+.carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ line-height: 1;
+}
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
+ -moz-transition: -moz-transform 0.6s ease-in-out;
+ -o-transition: -o-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ -moz-perspective: 1000px;
+ perspective: 1000px;
+ }
+ .carousel-inner > .item.next,
+ .carousel-inner > .item.active.right {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ left: 0;
+ }
+ .carousel-inner > .item.prev,
+ .carousel-inner > .item.active.left {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ left: 0;
+ }
+ .carousel-inner > .item.next.left,
+ .carousel-inner > .item.prev.right,
+ .carousel-inner > .item.active {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ left: 0;
+ }
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+.carousel-inner > .active {
+ left: 0;
+}
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.carousel-inner > .next {
+ left: 100%;
+}
+.carousel-inner > .prev {
+ left: -100%;
+}
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+.carousel-inner > .active.left {
+ left: -100%;
+}
+.carousel-inner > .active.right {
+ left: 100%;
+}
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #ffffff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ background-color: rgba(0, 0, 0, 0);
+}
+.carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.carousel-control:hover,
+.carousel-control:focus {
+ outline: 0;
+ color: #ffffff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ z-index: 5;
+ display: inline-block;
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ line-height: 1;
+ font-family: serif;
+}
+.carousel-control .icon-prev:before {
+ content: '\2039';
+}
+.carousel-control .icon-next:before {
+ content: '\203a';
+}
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+}
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #ffffff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+}
+.carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #ffffff;
+}
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #ffffff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -10px;
+ font-size: 30px;
+ }
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .icon-prev {
+ margin-left: -10px;
+ }
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-next {
+ margin-right: -10px;
+ }
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.dl-horizontal dd:before,
+.dl-horizontal dd:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-header:before,
+.modal-header:after,
+.modal-footer:before,
+.modal-footer:after,
+.item_buttons:before,
+.item_buttons:after {
+ content: " ";
+ display: table;
+}
+.clearfix:after,
+.dl-horizontal dd:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-header:after,
+.modal-footer:after,
+.item_buttons:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+}
+.affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none !important;
+}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table !important;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table !important;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table !important;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table !important;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print {
+ display: none !important;
+}
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table !important;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+.visible-print-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
+/*!
+*
+* Font Awesome
+*
+*/
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');
+ src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+.fa-2x {
+ font-size: 2em;
+}
+.fa-3x {
+ font-size: 3em;
+}
+.fa-4x {
+ font-size: 4em;
+}
+.fa-5x {
+ font-size: 5em;
+}
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+.fa-ul > li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+.fa-pull-left {
+ float: left;
+}
+.fa-pull-right {
+ float: right;
+}
+.fa.fa-pull-left {
+ margin-right: .3em;
+}
+.fa.fa-pull-right {
+ margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: .3em;
+}
+.fa.pull-right {
+ margin-left: .3em;
+}
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ filter: none;
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+.fa-slack:before {
+ content: "\f198";
+}
+.fa-envelope-square:before {
+ content: "\f199";
+}
+.fa-wordpress:before {
+ content: "\f19a";
+}
+.fa-openid:before {
+ content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+.fa-yahoo:before {
+ content: "\f19e";
+}
+.fa-google:before {
+ content: "\f1a0";
+}
+.fa-reddit:before {
+ content: "\f1a1";
+}
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+.fa-delicious:before {
+ content: "\f1a5";
+}
+.fa-digg:before {
+ content: "\f1a6";
+}
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+.fa-drupal:before {
+ content: "\f1a9";
+}
+.fa-joomla:before {
+ content: "\f1aa";
+}
+.fa-language:before {
+ content: "\f1ab";
+}
+.fa-fax:before {
+ content: "\f1ac";
+}
+.fa-building:before {
+ content: "\f1ad";
+}
+.fa-child:before {
+ content: "\f1ae";
+}
+.fa-paw:before {
+ content: "\f1b0";
+}
+.fa-spoon:before {
+ content: "\f1b1";
+}
+.fa-cube:before {
+ content: "\f1b2";
+}
+.fa-cubes:before {
+ content: "\f1b3";
+}
+.fa-behance:before {
+ content: "\f1b4";
+}
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+.fa-steam:before {
+ content: "\f1b6";
+}
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+.fa-recycle:before {
+ content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+.fa-tree:before {
+ content: "\f1bb";
+}
+.fa-spotify:before {
+ content: "\f1bc";
+}
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+.fa-database:before {
+ content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+.fa-vine:before {
+ content: "\f1ca";
+}
+.fa-codepen:before {
+ content: "\f1cb";
+}
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+.fa-git-square:before {
+ content: "\f1d2";
+}
+.fa-git:before {
+ content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+.fa-qq:before {
+ content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+.fa-history:before {
+ content: "\f1da";
+}
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+.fa-header:before {
+ content: "\f1dc";
+}
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+.fa-sliders:before {
+ content: "\f1de";
+}
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+.fa-bomb:before {
+ content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+.fa-tty:before {
+ content: "\f1e4";
+}
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+.fa-plug:before {
+ content: "\f1e6";
+}
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+.fa-twitch:before {
+ content: "\f1e8";
+}
+.fa-yelp:before {
+ content: "\f1e9";
+}
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+.fa-wifi:before {
+ content: "\f1eb";
+}
+.fa-calculator:before {
+ content: "\f1ec";
+}
+.fa-paypal:before {
+ content: "\f1ed";
+}
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+.fa-trash:before {
+ content: "\f1f8";
+}
+.fa-copyright:before {
+ content: "\f1f9";
+}
+.fa-at:before {
+ content: "\f1fa";
+}
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+.fa-pie-chart:before {
+ content: "\f200";
+}
+.fa-line-chart:before {
+ content: "\f201";
+}
+.fa-lastfm:before {
+ content: "\f202";
+}
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+.fa-toggle-off:before {
+ content: "\f204";
+}
+.fa-toggle-on:before {
+ content: "\f205";
+}
+.fa-bicycle:before {
+ content: "\f206";
+}
+.fa-bus:before {
+ content: "\f207";
+}
+.fa-ioxhost:before {
+ content: "\f208";
+}
+.fa-angellist:before {
+ content: "\f209";
+}
+.fa-cc:before {
+ content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+.fa-meanpath:before {
+ content: "\f20c";
+}
+.fa-buysellads:before {
+ content: "\f20d";
+}
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+.fa-dashcube:before {
+ content: "\f210";
+}
+.fa-forumbee:before {
+ content: "\f211";
+}
+.fa-leanpub:before {
+ content: "\f212";
+}
+.fa-sellsy:before {
+ content: "\f213";
+}
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+.fa-skyatlas:before {
+ content: "\f216";
+}
+.fa-cart-plus:before {
+ content: "\f217";
+}
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+.fa-diamond:before {
+ content: "\f219";
+}
+.fa-ship:before {
+ content: "\f21a";
+}
+.fa-user-secret:before {
+ content: "\f21b";
+}
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+.fa-street-view:before {
+ content: "\f21d";
+}
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+.fa-venus:before {
+ content: "\f221";
+}
+.fa-mars:before {
+ content: "\f222";
+}
+.fa-mercury:before {
+ content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+.fa-venus-double:before {
+ content: "\f226";
+}
+.fa-mars-double:before {
+ content: "\f227";
+}
+.fa-venus-mars:before {
+ content: "\f228";
+}
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+.fa-neuter:before {
+ content: "\f22c";
+}
+.fa-genderless:before {
+ content: "\f22d";
+}
+.fa-facebook-official:before {
+ content: "\f230";
+}
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+.fa-whatsapp:before {
+ content: "\f232";
+}
+.fa-server:before {
+ content: "\f233";
+}
+.fa-user-plus:before {
+ content: "\f234";
+}
+.fa-user-times:before {
+ content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+.fa-viacoin:before {
+ content: "\f237";
+}
+.fa-train:before {
+ content: "\f238";
+}
+.fa-subway:before {
+ content: "\f239";
+}
+.fa-medium:before {
+ content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+.fa-opencart:before {
+ content: "\f23d";
+}
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+.fa-i-cursor:before {
+ content: "\f246";
+}
+.fa-object-group:before {
+ content: "\f247";
+}
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+.fa-sticky-note:before {
+ content: "\f249";
+}
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+.fa-clone:before {
+ content: "\f24d";
+}
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+.fa-hourglass:before {
+ content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+.fa-trademark:before {
+ content: "\f25c";
+}
+.fa-registered:before {
+ content: "\f25d";
+}
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+.fa-gg:before {
+ content: "\f260";
+}
+.fa-gg-circle:before {
+ content: "\f261";
+}
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+.fa-get-pocket:before {
+ content: "\f265";
+}
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+.fa-safari:before {
+ content: "\f267";
+}
+.fa-chrome:before {
+ content: "\f268";
+}
+.fa-firefox:before {
+ content: "\f269";
+}
+.fa-opera:before {
+ content: "\f26a";
+}
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+.fa-contao:before {
+ content: "\f26d";
+}
+.fa-500px:before {
+ content: "\f26e";
+}
+.fa-amazon:before {
+ content: "\f270";
+}
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+.fa-industry:before {
+ content: "\f275";
+}
+.fa-map-pin:before {
+ content: "\f276";
+}
+.fa-map-signs:before {
+ content: "\f277";
+}
+.fa-map-o:before {
+ content: "\f278";
+}
+.fa-map:before {
+ content: "\f279";
+}
+.fa-commenting:before {
+ content: "\f27a";
+}
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+.fa-houzz:before {
+ content: "\f27c";
+}
+.fa-vimeo:before {
+ content: "\f27d";
+}
+.fa-black-tie:before {
+ content: "\f27e";
+}
+.fa-fonticons:before {
+ content: "\f280";
+}
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+.fa-edge:before {
+ content: "\f282";
+}
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+.fa-codiepie:before {
+ content: "\f284";
+}
+.fa-modx:before {
+ content: "\f285";
+}
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+.fa-usb:before {
+ content: "\f287";
+}
+.fa-product-hunt:before {
+ content: "\f288";
+}
+.fa-mixcloud:before {
+ content: "\f289";
+}
+.fa-scribd:before {
+ content: "\f28a";
+}
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+.fa-hashtag:before {
+ content: "\f292";
+}
+.fa-bluetooth:before {
+ content: "\f293";
+}
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+.fa-percent:before {
+ content: "\f295";
+}
+.fa-gitlab:before {
+ content: "\f296";
+}
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+.fa-wpforms:before {
+ content: "\f298";
+}
+.fa-envira:before {
+ content: "\f299";
+}
+.fa-universal-access:before {
+ content: "\f29a";
+}
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+.fa-blind:before {
+ content: "\f29d";
+}
+.fa-audio-description:before {
+ content: "\f29e";
+}
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+.fa-braille:before {
+ content: "\f2a1";
+}
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+.fa-glide:before {
+ content: "\f2a5";
+}
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+.fa-first-order:before {
+ content: "\f2b0";
+}
+.fa-yoast:before {
+ content: "\f2b1";
+}
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+.fa-linode:before {
+ content: "\f2b8";
+}
+.fa-address-book:before {
+ content: "\f2b9";
+}
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+.fa-user-o:before {
+ content: "\f2c0";
+}
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+.fa-quora:before {
+ content: "\f2c4";
+}
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+.fa-telegram:before {
+ content: "\f2c6";
+}
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+.fa-shower:before {
+ content: "\f2cc";
+}
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+.fa-podcast:before {
+ content: "\f2ce";
+}
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+.fa-grav:before {
+ content: "\f2d6";
+}
+.fa-etsy:before {
+ content: "\f2d7";
+}
+.fa-imdb:before {
+ content: "\f2d8";
+}
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+.fa-eercast:before {
+ content: "\f2da";
+}
+.fa-microchip:before {
+ content: "\f2db";
+}
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+.fa-meetup:before {
+ content: "\f2e0";
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+/*!
+*
+* IPython base
+*
+*/
+.modal.fade .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+code {
+ color: #000000;
+}
+pre {
+ font-size: inherit;
+ line-height: inherit;
+}
+label {
+ font-weight: normal;
+}
+/* Make the page background atleast 100% the height of the view port */
+/* Make the page itself atleast 70% the height of the view port */
+.border-box-sizing {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.corner-all {
+ border-radius: 2px;
+}
+.no-padding {
+ padding: 0px;
+}
+/* Flexible box model classes */
+/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
+/* This file is a compatability layer. It allows the usage of flexible box
+model layouts accross multiple browsers, including older browsers. The newest,
+universal implementation of the flexible box model is used when available (see
+`Modern browsers` comments below). Browsers that are known to implement this
+new spec completely include:
+
+ Firefox 28.0+
+ Chrome 29.0+
+ Internet Explorer 11+
+ Opera 17.0+
+
+Browsers not listed, including Safari, are supported via the styling under the
+`Old browsers` comments below.
+*/
+.hbox {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+}
+.hbox > * {
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+.vbox {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+}
+.vbox > * {
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+.hbox.reverse,
+.vbox.reverse,
+.reverse {
+ /* Old browsers */
+ -webkit-box-direction: reverse;
+ -moz-box-direction: reverse;
+ box-direction: reverse;
+ /* Modern browsers */
+ flex-direction: row-reverse;
+}
+.hbox.box-flex0,
+.vbox.box-flex0,
+.box-flex0 {
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ width: auto;
+}
+.hbox.box-flex1,
+.vbox.box-flex1,
+.box-flex1 {
+ /* Old browsers */
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ /* Modern browsers */
+ flex: 1;
+}
+.hbox.box-flex,
+.vbox.box-flex,
+.box-flex {
+ /* Old browsers */
+ /* Old browsers */
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ /* Modern browsers */
+ flex: 1;
+}
+.hbox.box-flex2,
+.vbox.box-flex2,
+.box-flex2 {
+ /* Old browsers */
+ -webkit-box-flex: 2;
+ -moz-box-flex: 2;
+ box-flex: 2;
+ /* Modern browsers */
+ flex: 2;
+}
+.box-group1 {
+ /* Deprecated */
+ -webkit-box-flex-group: 1;
+ -moz-box-flex-group: 1;
+ box-flex-group: 1;
+}
+.box-group2 {
+ /* Deprecated */
+ -webkit-box-flex-group: 2;
+ -moz-box-flex-group: 2;
+ box-flex-group: 2;
+}
+.hbox.start,
+.vbox.start,
+.start {
+ /* Old browsers */
+ -webkit-box-pack: start;
+ -moz-box-pack: start;
+ box-pack: start;
+ /* Modern browsers */
+ justify-content: flex-start;
+}
+.hbox.end,
+.vbox.end,
+.end {
+ /* Old browsers */
+ -webkit-box-pack: end;
+ -moz-box-pack: end;
+ box-pack: end;
+ /* Modern browsers */
+ justify-content: flex-end;
+}
+.hbox.center,
+.vbox.center,
+.center {
+ /* Old browsers */
+ -webkit-box-pack: center;
+ -moz-box-pack: center;
+ box-pack: center;
+ /* Modern browsers */
+ justify-content: center;
+}
+.hbox.baseline,
+.vbox.baseline,
+.baseline {
+ /* Old browsers */
+ -webkit-box-pack: baseline;
+ -moz-box-pack: baseline;
+ box-pack: baseline;
+ /* Modern browsers */
+ justify-content: baseline;
+}
+.hbox.stretch,
+.vbox.stretch,
+.stretch {
+ /* Old browsers */
+ -webkit-box-pack: stretch;
+ -moz-box-pack: stretch;
+ box-pack: stretch;
+ /* Modern browsers */
+ justify-content: stretch;
+}
+.hbox.align-start,
+.vbox.align-start,
+.align-start {
+ /* Old browsers */
+ -webkit-box-align: start;
+ -moz-box-align: start;
+ box-align: start;
+ /* Modern browsers */
+ align-items: flex-start;
+}
+.hbox.align-end,
+.vbox.align-end,
+.align-end {
+ /* Old browsers */
+ -webkit-box-align: end;
+ -moz-box-align: end;
+ box-align: end;
+ /* Modern browsers */
+ align-items: flex-end;
+}
+.hbox.align-center,
+.vbox.align-center,
+.align-center {
+ /* Old browsers */
+ -webkit-box-align: center;
+ -moz-box-align: center;
+ box-align: center;
+ /* Modern browsers */
+ align-items: center;
+}
+.hbox.align-baseline,
+.vbox.align-baseline,
+.align-baseline {
+ /* Old browsers */
+ -webkit-box-align: baseline;
+ -moz-box-align: baseline;
+ box-align: baseline;
+ /* Modern browsers */
+ align-items: baseline;
+}
+.hbox.align-stretch,
+.vbox.align-stretch,
+.align-stretch {
+ /* Old browsers */
+ -webkit-box-align: stretch;
+ -moz-box-align: stretch;
+ box-align: stretch;
+ /* Modern browsers */
+ align-items: stretch;
+}
+div.error {
+ margin: 2em;
+ text-align: center;
+}
+div.error > h1 {
+ font-size: 500%;
+ line-height: normal;
+}
+div.error > p {
+ font-size: 200%;
+ line-height: normal;
+}
+div.traceback-wrapper {
+ text-align: left;
+ max-width: 800px;
+ margin: auto;
+}
+/**
+ * Primary styles
+ *
+ * Author: Jupyter Development Team
+ */
+body {
+ background-color: #ffffff;
+ /* This makes sure that the body covers the entire window and needs to
+ be in a different element than the display: box in wrapper below */
+ position: absolute;
+ left: 0px;
+ right: 0px;
+ top: 0px;
+ bottom: 0px;
+ overflow: visible;
+}
+body > #header {
+ /* Initially hidden to prevent FLOUC */
+ display: none;
+ background-color: #ffffff;
+ /* Display over codemirror */
+ position: relative;
+ z-index: 100;
+}
+body > #header #header-container {
+ padding-bottom: 5px;
+ padding-top: 5px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+body > #header .header-bar {
+ width: 100%;
+ height: 1px;
+ background: #e7e7e7;
+ margin-bottom: -1px;
+}
+@media print {
+ body > #header {
+ display: none !important;
+ }
+}
+#header-spacer {
+ width: 100%;
+ visibility: hidden;
+}
+@media print {
+ #header-spacer {
+ display: none;
+ }
+}
+#ipython_notebook {
+ padding-left: 0px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+}
+@media (max-width: 991px) {
+ #ipython_notebook {
+ margin-left: 10px;
+ }
+}
+#noscript {
+ width: auto;
+ padding-top: 16px;
+ padding-bottom: 16px;
+ text-align: center;
+ font-size: 22px;
+ color: red;
+ font-weight: bold;
+}
+#ipython_notebook img {
+ height: 28px;
+}
+#site {
+ width: 100%;
+ display: none;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ overflow: auto;
+}
+@media print {
+ #site {
+ height: auto !important;
+ }
+}
+/* Smaller buttons */
+.ui-button .ui-button-text {
+ padding: 0.2em 0.8em;
+ font-size: 77%;
+}
+input.ui-button {
+ padding: 0.3em 0.9em;
+}
+span#login_widget {
+ float: right;
+}
+span#login_widget > .button,
+#logout {
+ color: #333333;
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+span#login_widget > .button:focus,
+#logout:focus,
+span#login_widget > .button.focus,
+#logout.focus {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+span#login_widget > .button:hover,
+#logout:hover {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+span#login_widget > .button:active,
+#logout:active,
+span#login_widget > .button.active,
+#logout.active,
+.open > .dropdown-togglespan#login_widget > .button,
+.open > .dropdown-toggle#logout {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+span#login_widget > .button:active:hover,
+#logout:active:hover,
+span#login_widget > .button.active:hover,
+#logout.active:hover,
+.open > .dropdown-togglespan#login_widget > .button:hover,
+.open > .dropdown-toggle#logout:hover,
+span#login_widget > .button:active:focus,
+#logout:active:focus,
+span#login_widget > .button.active:focus,
+#logout.active:focus,
+.open > .dropdown-togglespan#login_widget > .button:focus,
+.open > .dropdown-toggle#logout:focus,
+span#login_widget > .button:active.focus,
+#logout:active.focus,
+span#login_widget > .button.active.focus,
+#logout.active.focus,
+.open > .dropdown-togglespan#login_widget > .button.focus,
+.open > .dropdown-toggle#logout.focus {
+ color: #333333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+span#login_widget > .button:active,
+#logout:active,
+span#login_widget > .button.active,
+#logout.active,
+.open > .dropdown-togglespan#login_widget > .button,
+.open > .dropdown-toggle#logout {
+ background-image: none;
+}
+span#login_widget > .button.disabled:hover,
+#logout.disabled:hover,
+span#login_widget > .button[disabled]:hover,
+#logout[disabled]:hover,
+fieldset[disabled] span#login_widget > .button:hover,
+fieldset[disabled] #logout:hover,
+span#login_widget > .button.disabled:focus,
+#logout.disabled:focus,
+span#login_widget > .button[disabled]:focus,
+#logout[disabled]:focus,
+fieldset[disabled] span#login_widget > .button:focus,
+fieldset[disabled] #logout:focus,
+span#login_widget > .button.disabled.focus,
+#logout.disabled.focus,
+span#login_widget > .button[disabled].focus,
+#logout[disabled].focus,
+fieldset[disabled] span#login_widget > .button.focus,
+fieldset[disabled] #logout.focus {
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+span#login_widget > .button .badge,
+#logout .badge {
+ color: #ffffff;
+ background-color: #333333;
+}
+.nav-header {
+ text-transform: none;
+}
+#header > span {
+ margin-top: 10px;
+}
+.modal_stretch .modal-dialog {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ min-height: 80vh;
+}
+.modal_stretch .modal-dialog .modal-body {
+ max-height: calc(100vh - 200px);
+ overflow: auto;
+ flex: 1;
+}
+@media (min-width: 768px) {
+ .modal .modal-dialog {
+ width: 700px;
+ }
+}
+@media (min-width: 768px) {
+ select.form-control {
+ margin-left: 12px;
+ margin-right: 12px;
+ }
+}
+/*!
+*
+* IPython auth
+*
+*/
+.center-nav {
+ display: inline-block;
+ margin-bottom: -4px;
+}
+/*!
+*
+* IPython tree view
+*
+*/
+/* We need an invisible input field on top of the sentense*/
+/* "Drag file onto the list ..." */
+.alternate_upload {
+ background-color: none;
+ display: inline;
+}
+.alternate_upload.form {
+ padding: 0;
+ margin: 0;
+}
+.alternate_upload input.fileinput {
+ text-align: center;
+ vertical-align: middle;
+ display: inline;
+ opacity: 0;
+ z-index: 2;
+ width: 12ex;
+ margin-right: -12ex;
+}
+.alternate_upload .btn-upload {
+ height: 22px;
+}
+/**
+ * Primary styles
+ *
+ * Author: Jupyter Development Team
+ */
+ul#tabs {
+ margin-bottom: 4px;
+}
+ul#tabs a {
+ padding-top: 6px;
+ padding-bottom: 4px;
+}
+ul.breadcrumb a:focus,
+ul.breadcrumb a:hover {
+ text-decoration: none;
+}
+ul.breadcrumb i.icon-home {
+ font-size: 16px;
+ margin-right: 4px;
+}
+ul.breadcrumb span {
+ color: #5e5e5e;
+}
+.list_toolbar {
+ padding: 4px 0 4px 0;
+ vertical-align: middle;
+}
+.list_toolbar .tree-buttons {
+ padding-top: 1px;
+}
+.dynamic-buttons {
+ padding-top: 3px;
+ display: inline-block;
+}
+.list_toolbar [class*="span"] {
+ min-height: 24px;
+}
+.list_header {
+ font-weight: bold;
+ background-color: #eeeeee;
+}
+.list_placeholder {
+ font-weight: bold;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-left: 7px;
+ padding-right: 7px;
+}
+.list_container {
+ margin-top: 4px;
+ margin-bottom: 20px;
+ border: 1px solid #dddddd;
+ border-radius: 2px;
+}
+.list_container > div {
+ border-bottom: 1px solid #dddddd;
+}
+.list_container > div:hover .list-item {
+ background-color: red;
+}
+.list_container > div:last-child {
+ border: none;
+}
+.list_item:hover .list_item {
+ background-color: #dddddd;
+}
+.list_item a {
+ text-decoration: none;
+}
+.list_item:hover {
+ background-color: #fafafa;
+}
+.list_header > div,
+.list_item > div {
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-left: 7px;
+ padding-right: 7px;
+ line-height: 22px;
+}
+.list_header > div input,
+.list_item > div input {
+ margin-right: 7px;
+ margin-left: 14px;
+ vertical-align: baseline;
+ line-height: 22px;
+ position: relative;
+ top: -1px;
+}
+.list_header > div .item_link,
+.list_item > div .item_link {
+ margin-left: -1px;
+ vertical-align: baseline;
+ line-height: 22px;
+}
+.new-file input[type=checkbox] {
+ visibility: hidden;
+}
+.item_name {
+ line-height: 22px;
+ height: 24px;
+}
+.item_icon {
+ font-size: 14px;
+ color: #5e5e5e;
+ margin-right: 7px;
+ margin-left: 7px;
+ line-height: 22px;
+ vertical-align: baseline;
+}
+.item_buttons {
+ line-height: 1em;
+ margin-left: -5px;
+}
+.item_buttons .btn,
+.item_buttons .btn-group,
+.item_buttons .input-group {
+ float: left;
+}
+.item_buttons > .btn,
+.item_buttons > .btn-group,
+.item_buttons > .input-group {
+ margin-left: 5px;
+}
+.item_buttons .btn {
+ min-width: 13ex;
+}
+.item_buttons .running-indicator {
+ padding-top: 4px;
+ color: #5cb85c;
+}
+.item_buttons .kernel-name {
+ padding-top: 4px;
+ color: #5bc0de;
+ margin-right: 7px;
+ float: left;
+}
+.toolbar_info {
+ height: 24px;
+ line-height: 24px;
+}
+.list_item input:not([type=checkbox]) {
+ padding-top: 3px;
+ padding-bottom: 3px;
+ height: 22px;
+ line-height: 14px;
+ margin: 0px;
+}
+.highlight_text {
+ color: blue;
+}
+#project_name {
+ display: inline-block;
+ padding-left: 7px;
+ margin-left: -2px;
+}
+#project_name > .breadcrumb {
+ padding: 0px;
+ margin-bottom: 0px;
+ background-color: transparent;
+ font-weight: bold;
+}
+#tree-selector {
+ padding-right: 0px;
+}
+#button-select-all {
+ min-width: 50px;
+}
+#select-all {
+ margin-left: 7px;
+ margin-right: 2px;
+}
+.menu_icon {
+ margin-right: 2px;
+}
+.tab-content .row {
+ margin-left: 0px;
+ margin-right: 0px;
+}
+.folder_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f114";
+}
+.folder_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.folder_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.folder_icon:before.pull-left {
+ margin-right: .3em;
+}
+.folder_icon:before.pull-right {
+ margin-left: .3em;
+}
+.notebook_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f02d";
+ position: relative;
+ top: -1px;
+}
+.notebook_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.notebook_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.notebook_icon:before.pull-left {
+ margin-right: .3em;
+}
+.notebook_icon:before.pull-right {
+ margin-left: .3em;
+}
+.running_notebook_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f02d";
+ position: relative;
+ top: -1px;
+ color: #5cb85c;
+}
+.running_notebook_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.running_notebook_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.running_notebook_icon:before.pull-left {
+ margin-right: .3em;
+}
+.running_notebook_icon:before.pull-right {
+ margin-left: .3em;
+}
+.file_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f016";
+ position: relative;
+ top: -2px;
+}
+.file_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.file_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.file_icon:before.pull-left {
+ margin-right: .3em;
+}
+.file_icon:before.pull-right {
+ margin-left: .3em;
+}
+#notebook_toolbar .pull-right {
+ padding-top: 0px;
+ margin-right: -1px;
+}
+ul#new-menu {
+ left: auto;
+ right: 0;
+}
+.kernel-menu-icon {
+ padding-right: 12px;
+ width: 24px;
+ content: "\f096";
+}
+.kernel-menu-icon:before {
+ content: "\f096";
+}
+.kernel-menu-icon-current:before {
+ content: "\f00c";
+}
+#tab_content {
+ padding-top: 20px;
+}
+#running .panel-group .panel {
+ margin-top: 3px;
+ margin-bottom: 1em;
+}
+#running .panel-group .panel .panel-heading {
+ background-color: #eeeeee;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-left: 7px;
+ padding-right: 7px;
+ line-height: 22px;
+}
+#running .panel-group .panel .panel-heading a:focus,
+#running .panel-group .panel .panel-heading a:hover {
+ text-decoration: none;
+}
+#running .panel-group .panel .panel-body {
+ padding: 0px;
+}
+#running .panel-group .panel .panel-body .list_container {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ border: 0px;
+ border-radius: 0px;
+}
+#running .panel-group .panel .panel-body .list_container .list_item {
+ border-bottom: 1px solid #dddddd;
+}
+#running .panel-group .panel .panel-body .list_container .list_item:last-child {
+ border-bottom: 0px;
+}
+.delete-button {
+ display: none;
+}
+.duplicate-button {
+ display: none;
+}
+.rename-button {
+ display: none;
+}
+.shutdown-button {
+ display: none;
+}
+.dynamic-instructions {
+ display: inline-block;
+ padding-top: 4px;
+}
+/*!
+*
+* IPython text editor webapp
+*
+*/
+.selected-keymap i.fa {
+ padding: 0px 5px;
+}
+.selected-keymap i.fa:before {
+ content: "\f00c";
+}
+#mode-menu {
+ overflow: auto;
+ max-height: 20em;
+}
+.edit_app #header {
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+}
+.edit_app #menubar .navbar {
+ /* Use a negative 1 bottom margin, so the border overlaps the border of the
+ header */
+ margin-bottom: -1px;
+}
+.dirty-indicator {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ width: 20px;
+}
+.dirty-indicator.fa-pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator.fa-pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator.pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator.pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-dirty {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ width: 20px;
+}
+.dirty-indicator-dirty.fa-pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-dirty.fa-pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-dirty.pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-dirty.pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-clean {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ width: 20px;
+}
+.dirty-indicator-clean.fa-pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-clean.fa-pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-clean.pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-clean.pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-clean:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f00c";
+}
+.dirty-indicator-clean:before.fa-pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-clean:before.fa-pull-right {
+ margin-left: .3em;
+}
+.dirty-indicator-clean:before.pull-left {
+ margin-right: .3em;
+}
+.dirty-indicator-clean:before.pull-right {
+ margin-left: .3em;
+}
+#filename {
+ font-size: 16pt;
+ display: table;
+ padding: 0px 5px;
+}
+#current-mode {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#texteditor-backdrop {
+ padding-top: 20px;
+ padding-bottom: 20px;
+}
+@media not print {
+ #texteditor-backdrop {
+ background-color: #eeeeee;
+ }
+}
+@media print {
+ #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
+ #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
+ background-color: #ffffff;
+ }
+}
+@media not print {
+ #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
+ #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
+ background-color: #ffffff;
+ }
+}
+@media not print {
+ #texteditor-backdrop #texteditor-container {
+ padding: 0px;
+ background-color: #ffffff;
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ }
+}
+/*!
+*
+* IPython notebook
+*
+*/
+/* CSS font colors for translated ANSI colors. */
+.ansibold {
+ font-weight: bold;
+}
+/* use dark versions for foreground, to improve visibility */
+.ansiblack {
+ color: black;
+}
+.ansired {
+ color: darkred;
+}
+.ansigreen {
+ color: darkgreen;
+}
+.ansiyellow {
+ color: #c4a000;
+}
+.ansiblue {
+ color: darkblue;
+}
+.ansipurple {
+ color: darkviolet;
+}
+.ansicyan {
+ color: steelblue;
+}
+.ansigray {
+ color: gray;
+}
+/* and light for background, for the same reason */
+.ansibgblack {
+ background-color: black;
+}
+.ansibgred {
+ background-color: red;
+}
+.ansibggreen {
+ background-color: green;
+}
+.ansibgyellow {
+ background-color: yellow;
+}
+.ansibgblue {
+ background-color: blue;
+}
+.ansibgpurple {
+ background-color: magenta;
+}
+.ansibgcyan {
+ background-color: cyan;
+}
+.ansibggray {
+ background-color: gray;
+}
+div.cell {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ border-radius: 2px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ border-width: 1px;
+ border-style: solid;
+ border-color: transparent;
+ width: 100%;
+ padding: 5px;
+ /* This acts as a spacer between cells, that is outside the border */
+ margin: 0px;
+ outline: none;
+ border-left-width: 1px;
+ padding-left: 5px;
+ background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
+}
+div.cell.jupyter-soft-selected {
+ border-left-color: #90caf9;
+ border-left-color: #e3f2fd;
+ border-left-width: 1px;
+ padding-left: 5px;
+ border-right-color: #e3f2fd;
+ border-right-width: 1px;
+ background: #e3f2fd;
+}
+@media print {
+ div.cell.jupyter-soft-selected {
+ border-color: transparent;
+ }
+}
+div.cell.selected {
+ border-color: #ababab;
+ border-left-width: 0px;
+ padding-left: 6px;
+ background: linear-gradient(to right, #42a5f5 -40px, #42a5f5 5px, transparent 5px, transparent 100%);
+}
+@media print {
+ div.cell.selected {
+ border-color: transparent;
+ }
+}
+div.cell.selected.jupyter-soft-selected {
+ border-left-width: 0;
+ padding-left: 6px;
+ background: linear-gradient(to right, #42a5f5 -40px, #42a5f5 7px, #e3f2fd 7px, #e3f2fd 100%);
+}
+.edit_mode div.cell.selected {
+ border-color: #66bb6a;
+ border-left-width: 0px;
+ padding-left: 6px;
+ background: linear-gradient(to right, #66bb6a -40px, #66bb6a 5px, transparent 5px, transparent 100%);
+}
+@media print {
+ .edit_mode div.cell.selected {
+ border-color: transparent;
+ }
+}
+.prompt {
+ /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
+ min-width: 14ex;
+ /* This padding is tuned to match the padding on the CodeMirror editor. */
+ padding: 0.4em;
+ margin: 0px;
+ font-family: monospace;
+ text-align: right;
+ /* This has to match that of the the CodeMirror class line-height below */
+ line-height: 1.21429em;
+ /* Don't highlight prompt number selection */
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ /* Use default cursor */
+ cursor: default;
+}
+@media (max-width: 540px) {
+ .prompt {
+ text-align: left;
+ }
+}
+div.inner_cell {
+ min-width: 0;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ /* Old browsers */
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ /* Modern browsers */
+ flex: 1;
+}
+/* input_area and input_prompt must match in top border and margin for alignment */
+div.input_area {
+ border: 1px solid #cfcfcf;
+ border-radius: 2px;
+ background: #f7f7f7;
+ line-height: 1.21429em;
+}
+/* This is needed so that empty prompt areas can collapse to zero height when there
+ is no content in the output_subarea and the prompt. The main purpose of this is
+ to make sure that empty JavaScript output_subareas have no height. */
+div.prompt:empty {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+div.unrecognized_cell {
+ padding: 5px 5px 5px 0px;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+div.unrecognized_cell .inner_cell {
+ border-radius: 2px;
+ padding: 5px;
+ font-weight: bold;
+ color: red;
+ border: 1px solid #cfcfcf;
+ background: #eaeaea;
+}
+div.unrecognized_cell .inner_cell a {
+ color: inherit;
+ text-decoration: none;
+}
+div.unrecognized_cell .inner_cell a:hover {
+ color: inherit;
+ text-decoration: none;
+}
+@media (max-width: 540px) {
+ div.unrecognized_cell > div.prompt {
+ display: none;
+ }
+}
+div.code_cell {
+ /* avoid page breaking on code cells when printing */
+}
+@media print {
+ div.code_cell {
+ page-break-inside: avoid;
+ }
+}
+/* any special styling for code cells that are currently running goes here */
+div.input {
+ page-break-inside: avoid;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+@media (max-width: 540px) {
+ div.input {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ }
+}
+/* input_area and input_prompt must match in top border and margin for alignment */
+div.input_prompt {
+ color: #303f9f;
+ border-top: 1px solid transparent;
+}
+div.input_area > div.highlight {
+ margin: 0.4em;
+ border: none;
+ padding: 0px;
+ background-color: transparent;
+}
+div.input_area > div.highlight > pre {
+ margin: 0px;
+ border: none;
+ padding: 0px;
+ background-color: transparent;
+}
+/* The following gets added to the <head> if it is detected that the user has a
+ * monospace font with inconsistent normal/bold/italic height. See
+ * notebookmain.js. Such fonts will have keywords vertically offset with
+ * respect to the rest of the text. The user should select a better font.
+ * See: https://github.com/ipython/ipython/issues/1503
+ *
+ * .CodeMirror span {
+ * vertical-align: bottom;
+ * }
+ */
+.CodeMirror {
+ line-height: 1.21429em;
+ /* Changed from 1em to our global default */
+ font-size: 14px;
+ height: auto;
+ /* Changed to auto to autogrow */
+ background: none;
+ /* Changed from white to allow our bg to show through */
+}
+.CodeMirror-scroll {
+ /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
+ /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
+ overflow-y: hidden;
+ overflow-x: auto;
+}
+.CodeMirror-lines {
+ /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
+ /* we have set a different line-height and want this to scale with that. */
+ padding: 0.4em;
+}
+.CodeMirror-linenumber {
+ padding: 0 8px 0 4px;
+}
+.CodeMirror-gutters {
+ border-bottom-left-radius: 2px;
+ border-top-left-radius: 2px;
+}
+.CodeMirror pre {
+ /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
+ /* .CodeMirror-lines */
+ padding: 0;
+ border: 0;
+ border-radius: 0;
+}
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+Adapted from GitHub theme
+
+*/
+.highlight-base {
+ color: #000000;
+}
+.highlight-variable {
+ color: #000000;
+}
+.highlight-variable-2 {
+ color: #1a1a1a;
+}
+.highlight-variable-3 {
+ color: #333333;
+}
+.highlight-string {
+ color: #BA2121;
+}
+.highlight-comment {
+ color: #408080;
+ font-style: italic;
+}
+.highlight-number {
+ color: #080;
+}
+.highlight-atom {
+ color: #88F;
+}
+.highlight-keyword {
+ color: #008000;
+ font-weight: bold;
+}
+.highlight-builtin {
+ color: #008000;
+}
+.highlight-error {
+ color: #f00;
+}
+.highlight-operator {
+ color: #AA22FF;
+ font-weight: bold;
+}
+.highlight-meta {
+ color: #AA22FF;
+}
+/* previously not defined, copying from default codemirror */
+.highlight-def {
+ color: #00f;
+}
+.highlight-string-2 {
+ color: #f50;
+}
+.highlight-qualifier {
+ color: #555;
+}
+.highlight-bracket {
+ color: #997;
+}
+.highlight-tag {
+ color: #170;
+}
+.highlight-attribute {
+ color: #00c;
+}
+.highlight-header {
+ color: blue;
+}
+.highlight-quote {
+ color: #090;
+}
+.highlight-link {
+ color: #00c;
+}
+/* apply the same style to codemirror */
+.cm-s-ipython span.cm-keyword {
+ color: #008000;
+ font-weight: bold;
+}
+.cm-s-ipython span.cm-atom {
+ color: #88F;
+}
+.cm-s-ipython span.cm-number {
+ color: #080;
+}
+.cm-s-ipython span.cm-def {
+ color: #00f;
+}
+.cm-s-ipython span.cm-variable {
+ color: #000000;
+}
+.cm-s-ipython span.cm-operator {
+ color: #AA22FF;
+ font-weight: bold;
+}
+.cm-s-ipython span.cm-variable-2 {
+ color: #1a1a1a;
+}
+.cm-s-ipython span.cm-variable-3 {
+ color: #333333;
+}
+.cm-s-ipython span.cm-comment {
+ color: #408080;
+ font-style: italic;
+}
+.cm-s-ipython span.cm-string {
+ color: #BA2121;
+}
+.cm-s-ipython span.cm-string-2 {
+ color: #f50;
+}
+.cm-s-ipython span.cm-meta {
+ color: #AA22FF;
+}
+.cm-s-ipython span.cm-qualifier {
+ color: #555;
+}
+.cm-s-ipython span.cm-builtin {
+ color: #008000;
+}
+.cm-s-ipython span.cm-bracket {
+ color: #997;
+}
+.cm-s-ipython span.cm-tag {
+ color: #170;
+}
+.cm-s-ipython span.cm-attribute {
+ color: #00c;
+}
+.cm-s-ipython span.cm-header {
+ color: blue;
+}
+.cm-s-ipython span.cm-quote {
+ color: #090;
+}
+.cm-s-ipython span.cm-link {
+ color: #00c;
+}
+.cm-s-ipython span.cm-error {
+ color: #f00;
+}
+.cm-s-ipython span.cm-tab {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
+ background-position: right;
+ background-repeat: no-repeat;
+}
+div.output_wrapper {
+ /* this position must be relative to enable descendents to be absolute within it */
+ position: relative;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ z-index: 1;
+}
+/* class for the output area when it should be height-limited */
+div.output_scroll {
+ /* ideally, this would be max-height, but FF barfs all over that */
+ height: 24em;
+ /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
+ width: 100%;
+ overflow: auto;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
+ box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
+ display: block;
+}
+/* output div while it is collapsed */
+div.output_collapsed {
+ margin: 0px;
+ padding: 0px;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+div.out_prompt_overlay {
+ height: 100%;
+ padding: 0px 0.4em;
+ position: absolute;
+ border-radius: 2px;
+}
+div.out_prompt_overlay:hover {
+ /* use inner shadow to get border that is computed the same on WebKit/FF */
+ -webkit-box-shadow: inset 0 0 1px #000000;
+ box-shadow: inset 0 0 1px #000000;
+ background: rgba(240, 240, 240, 0.5);
+}
+div.output_prompt {
+ color: #d84315;
+}
+/* This class is the outer container of all output sections. */
+div.output_area {
+ padding: 0px;
+ page-break-inside: avoid;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+div.output_area .MathJax_Display {
+ text-align: left !important;
+}
+div.output_area .rendered_html table {
+ margin-left: 0;
+ margin-right: 0;
+}
+div.output_area .rendered_html img {
+ margin-left: 0;
+ margin-right: 0;
+}
+div.output_area img,
+div.output_area svg {
+ max-width: 100%;
+ height: auto;
+}
+div.output_area img.unconfined,
+div.output_area svg.unconfined {
+ max-width: none;
+}
+/* This is needed to protect the pre formating from global settings such
+ as that of bootstrap */
+.output {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+@media (max-width: 540px) {
+ div.output_area {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: vertical;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: vertical;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ }
+}
+div.output_area pre {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ vertical-align: baseline;
+ color: #000000;
+ background-color: transparent;
+ border-radius: 0;
+}
+/* This class is for the output subarea inside the output_area and after
+ the prompt div. */
+div.output_subarea {
+ overflow-x: auto;
+ padding: 0.4em;
+ /* Old browsers */
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ /* Modern browsers */
+ flex: 1;
+ max-width: calc(100% - 14ex);
+}
+div.output_scroll div.output_subarea {
+ overflow-x: visible;
+}
+/* The rest of the output_* classes are for special styling of the different
+ output types */
+/* all text output has this class: */
+div.output_text {
+ text-align: left;
+ color: #000000;
+ /* This has to match that of the the CodeMirror class line-height below */
+ line-height: 1.21429em;
+}
+/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
+div.output_stderr {
+ background: #fdd;
+ /* very light red background for stderr */
+}
+div.output_latex {
+ text-align: left;
+}
+/* Empty output_javascript divs should have no height */
+div.output_javascript:empty {
+ padding: 0;
+}
+.js-error {
+ color: darkred;
+}
+/* raw_input styles */
+div.raw_input_container {
+ line-height: 1.21429em;
+ padding-top: 5px;
+}
+pre.raw_input_prompt {
+ /* nothing needed here. */
+}
+input.raw_input {
+ font-family: monospace;
+ font-size: inherit;
+ color: inherit;
+ width: auto;
+ /* make sure input baseline aligns with prompt */
+ vertical-align: baseline;
+ /* padding + margin = 0.5em between prompt and cursor */
+ padding: 0em 0.25em;
+ margin: 0em 0.25em;
+}
+input.raw_input:focus {
+ box-shadow: none;
+}
+p.p-space {
+ margin-bottom: 10px;
+}
+div.output_unrecognized {
+ padding: 5px;
+ font-weight: bold;
+ color: red;
+}
+div.output_unrecognized a {
+ color: inherit;
+ text-decoration: none;
+}
+div.output_unrecognized a:hover {
+ color: inherit;
+ text-decoration: none;
+}
+.rendered_html {
+ color: #000000;
+ /* any extras will just be numbers: */
+}
+.rendered_html em {
+ font-style: italic;
+}
+.rendered_html strong {
+ font-weight: bold;
+}
+.rendered_html u {
+ text-decoration: underline;
+}
+.rendered_html :link {
+ text-decoration: underline;
+}
+.rendered_html :visited {
+ text-decoration: underline;
+}
+.rendered_html h1 {
+ font-size: 185.7%;
+ margin: 1.08em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+}
+.rendered_html h2 {
+ font-size: 157.1%;
+ margin: 1.27em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+}
+.rendered_html h3 {
+ font-size: 128.6%;
+ margin: 1.55em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+}
+.rendered_html h4 {
+ font-size: 100%;
+ margin: 2em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+}
+.rendered_html h5 {
+ font-size: 100%;
+ margin: 2em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+ font-style: italic;
+}
+.rendered_html h6 {
+ font-size: 100%;
+ margin: 2em 0 0 0;
+ font-weight: bold;
+ line-height: 1.0;
+ font-style: italic;
+}
+.rendered_html h1:first-child {
+ margin-top: 0.538em;
+}
+.rendered_html h2:first-child {
+ margin-top: 0.636em;
+}
+.rendered_html h3:first-child {
+ margin-top: 0.777em;
+}
+.rendered_html h4:first-child {
+ margin-top: 1em;
+}
+.rendered_html h5:first-child {
+ margin-top: 1em;
+}
+.rendered_html h6:first-child {
+ margin-top: 1em;
+}
+.rendered_html ul {
+ list-style: disc;
+ margin: 0em 2em;
+ padding-left: 0px;
+}
+.rendered_html ul ul {
+ list-style: square;
+ margin: 0em 2em;
+}
+.rendered_html ul ul ul {
+ list-style: circle;
+ margin: 0em 2em;
+}
+.rendered_html ol {
+ list-style: decimal;
+ margin: 0em 2em;
+ padding-left: 0px;
+}
+.rendered_html ol ol {
+ list-style: upper-alpha;
+ margin: 0em 2em;
+}
+.rendered_html ol ol ol {
+ list-style: lower-alpha;
+ margin: 0em 2em;
+}
+.rendered_html ol ol ol ol {
+ list-style: lower-roman;
+ margin: 0em 2em;
+}
+.rendered_html ol ol ol ol ol {
+ list-style: decimal;
+ margin: 0em 2em;
+}
+.rendered_html * + ul {
+ margin-top: 1em;
+}
+.rendered_html * + ol {
+ margin-top: 1em;
+}
+.rendered_html hr {
+ color: #000000;
+ background-color: #000000;
+}
+.rendered_html pre {
+ margin: 1em 2em;
+}
+.rendered_html pre,
+.rendered_html code {
+ border: 0;
+ background-color: #ffffff;
+ color: #000000;
+ font-size: 100%;
+ padding: 0px;
+}
+.rendered_html blockquote {
+ margin: 1em 2em;
+}
+.rendered_html table {
+ margin-left: auto;
+ margin-right: auto;
+ border: 1px solid #000000;
+ border-collapse: collapse;
+}
+.rendered_html tr,
+.rendered_html th,
+.rendered_html td {
+ border: 1px solid #000000;
+ border-collapse: collapse;
+ margin: 1em 2em;
+}
+.rendered_html td,
+.rendered_html th {
+ text-align: left;
+ vertical-align: middle;
+ padding: 4px;
+}
+.rendered_html th {
+ font-weight: bold;
+}
+.rendered_html * + table {
+ margin-top: 1em;
+}
+.rendered_html p {
+ text-align: left;
+}
+.rendered_html * + p {
+ margin-top: 1em;
+}
+.rendered_html img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.rendered_html * + img {
+ margin-top: 1em;
+}
+.rendered_html img,
+.rendered_html svg {
+ max-width: 100%;
+ height: auto;
+}
+.rendered_html img.unconfined,
+.rendered_html svg.unconfined {
+ max-width: none;
+}
+div.text_cell {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+}
+@media (max-width: 540px) {
+ div.text_cell > div.prompt {
+ display: none;
+ }
+}
+div.text_cell_render {
+ /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
+ outline: none;
+ resize: none;
+ width: inherit;
+ border-style: none;
+ padding: 0.5em 0.5em 0.5em 0.4em;
+ color: #000000;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+a.anchor-link:link {
+ text-decoration: none;
+ padding: 0px 20px;
+ visibility: hidden;
+}
+h1:hover .anchor-link,
+h2:hover .anchor-link,
+h3:hover .anchor-link,
+h4:hover .anchor-link,
+h5:hover .anchor-link,
+h6:hover .anchor-link {
+ visibility: visible;
+}
+.text_cell.rendered .input_area {
+ display: none;
+}
+.text_cell.rendered .rendered_html {
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+.text_cell.unrendered .text_cell_render {
+ display: none;
+}
+.cm-header-1,
+.cm-header-2,
+.cm-header-3,
+.cm-header-4,
+.cm-header-5,
+.cm-header-6 {
+ font-weight: bold;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+.cm-header-1 {
+ font-size: 185.7%;
+}
+.cm-header-2 {
+ font-size: 157.1%;
+}
+.cm-header-3 {
+ font-size: 128.6%;
+}
+.cm-header-4 {
+ font-size: 110%;
+}
+.cm-header-5 {
+ font-size: 100%;
+ font-style: italic;
+}
+.cm-header-6 {
+ font-size: 100%;
+ font-style: italic;
+}
+/*!
+*
+* IPython notebook webapp
+*
+*/
+@media (max-width: 767px) {
+ .notebook_app {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
+}
+#ipython-main-app {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ height: 100%;
+}
+div#notebook_panel {
+ margin: 0px;
+ padding: 0px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ height: 100%;
+}
+div#notebook {
+ font-size: 14px;
+ line-height: 20px;
+ overflow-y: hidden;
+ overflow-x: auto;
+ width: 100%;
+ /* This spaces the page away from the edge of the notebook area */
+ padding-top: 20px;
+ margin: 0px;
+ outline: none;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ min-height: 100%;
+}
+@media not print {
+ #notebook-container {
+ padding: 15px;
+ background-color: #ffffff;
+ min-height: 0;
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ }
+}
+@media print {
+ #notebook-container {
+ width: 100%;
+ }
+}
+div.ui-widget-content {
+ border: 1px solid #ababab;
+ outline: none;
+}
+pre.dialog {
+ background-color: #f7f7f7;
+ border: 1px solid #ddd;
+ border-radius: 2px;
+ padding: 0.4em;
+ padding-left: 2em;
+}
+p.dialog {
+ padding: 0.2em;
+}
+/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
+ to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
+ */
+pre,
+code,
+kbd,
+samp {
+ white-space: pre-wrap;
+}
+#fonttest {
+ font-family: monospace;
+}
+p {
+ margin-bottom: 0;
+}
+.end_space {
+ min-height: 100px;
+ transition: height .2s ease;
+}
+.notebook_app > #header {
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+}
+@media not print {
+ .notebook_app {
+ background-color: #eeeeee;
+ }
+}
+kbd {
+ border-style: solid;
+ border-width: 1px;
+ box-shadow: none;
+ margin: 2px;
+ padding-left: 2px;
+ padding-right: 2px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+}
+/* CSS for the cell toolbar */
+.celltoolbar {
+ border: thin solid #CFCFCF;
+ border-bottom: none;
+ background: #EEE;
+ border-radius: 2px 2px 0px 0px;
+ width: 100%;
+ height: 29px;
+ padding-right: 4px;
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ /* Old browsers */
+ -webkit-box-pack: end;
+ -moz-box-pack: end;
+ box-pack: end;
+ /* Modern browsers */
+ justify-content: flex-end;
+ display: -webkit-flex;
+}
+@media print {
+ .celltoolbar {
+ display: none;
+ }
+}
+.ctb_hideshow {
+ display: none;
+ vertical-align: bottom;
+}
+/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
+ Cell toolbars are only shown when the ctb_global_show class is also set.
+*/
+.ctb_global_show .ctb_show.ctb_hideshow {
+ display: block;
+}
+.ctb_global_show .ctb_show + .input_area,
+.ctb_global_show .ctb_show + div.text_cell_input,
+.ctb_global_show .ctb_show ~ div.text_cell_render {
+ border-top-right-radius: 0px;
+ border-top-left-radius: 0px;
+}
+.ctb_global_show .ctb_show ~ div.text_cell_render {
+ border: 1px solid #cfcfcf;
+}
+.celltoolbar {
+ font-size: 87%;
+ padding-top: 3px;
+}
+.celltoolbar select {
+ display: block;
+ width: 100%;
+ height: 32px;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555555;
+ background-color: #ffffff;
+ background-image: none;
+ border: 1px solid #cccccc;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 1px;
+ width: inherit;
+ font-size: inherit;
+ height: 22px;
+ padding: 0px;
+ display: inline-block;
+}
+.celltoolbar select:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.celltoolbar select::-moz-placeholder {
+ color: #999999;
+ opacity: 1;
+}
+.celltoolbar select:-ms-input-placeholder {
+ color: #999999;
+}
+.celltoolbar select::-webkit-input-placeholder {
+ color: #999999;
+}
+.celltoolbar select::-ms-expand {
+ border: 0;
+ background-color: transparent;
+}
+.celltoolbar select[disabled],
+.celltoolbar select[readonly],
+fieldset[disabled] .celltoolbar select {
+ background-color: #eeeeee;
+ opacity: 1;
+}
+.celltoolbar select[disabled],
+fieldset[disabled] .celltoolbar select {
+ cursor: not-allowed;
+}
+textarea.celltoolbar select {
+ height: auto;
+}
+select.celltoolbar select {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.celltoolbar select,
+select[multiple].celltoolbar select {
+ height: auto;
+}
+.celltoolbar label {
+ margin-left: 5px;
+ margin-right: 5px;
+}
+.completions {
+ position: absolute;
+ z-index: 110;
+ overflow: hidden;
+ border: 1px solid #ababab;
+ border-radius: 2px;
+ -webkit-box-shadow: 0px 6px 10px -1px #adadad;
+ box-shadow: 0px 6px 10px -1px #adadad;
+ line-height: 1;
+}
+.completions select {
+ background: white;
+ outline: none;
+ border: none;
+ padding: 0px;
+ margin: 0px;
+ overflow: auto;
+ font-family: monospace;
+ font-size: 110%;
+ color: #000000;
+ width: auto;
+}
+.completions select option.context {
+ color: #286090;
+}
+#kernel_logo_widget {
+ float: right !important;
+ float: right;
+}
+#kernel_logo_widget .current_kernel_logo {
+ display: none;
+ margin-top: -1px;
+ margin-bottom: -1px;
+ width: 32px;
+ height: 32px;
+}
+#menubar {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ margin-top: 1px;
+}
+#menubar .navbar {
+ border-top: 1px;
+ border-radius: 0px 0px 2px 2px;
+ margin-bottom: 0px;
+}
+#menubar .navbar-toggle {
+ float: left;
+ padding-top: 7px;
+ padding-bottom: 7px;
+ border: none;
+}
+#menubar .navbar-collapse {
+ clear: left;
+}
+.nav-wrapper {
+ border-bottom: 1px solid #e7e7e7;
+}
+i.menu-icon {
+ padding-top: 4px;
+}
+ul#help_menu li a {
+ overflow: hidden;
+ padding-right: 2.2em;
+}
+ul#help_menu li a i {
+ margin-right: -1.2em;
+}
+.dropdown-submenu {
+ position: relative;
+}
+.dropdown-submenu > .dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -6px;
+ margin-left: -1px;
+}
+.dropdown-submenu:hover > .dropdown-menu {
+ display: block;
+}
+.dropdown-submenu > a:after {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ display: block;
+ content: "\f0da";
+ float: right;
+ color: #333333;
+ margin-top: 2px;
+ margin-right: -10px;
+}
+.dropdown-submenu > a:after.fa-pull-left {
+ margin-right: .3em;
+}
+.dropdown-submenu > a:after.fa-pull-right {
+ margin-left: .3em;
+}
+.dropdown-submenu > a:after.pull-left {
+ margin-right: .3em;
+}
+.dropdown-submenu > a:after.pull-right {
+ margin-left: .3em;
+}
+.dropdown-submenu:hover > a:after {
+ color: #262626;
+}
+.dropdown-submenu.pull-left {
+ float: none;
+}
+.dropdown-submenu.pull-left > .dropdown-menu {
+ left: -100%;
+ margin-left: 10px;
+}
+#notification_area {
+ float: right !important;
+ float: right;
+ z-index: 10;
+}
+.indicator_area {
+ float: right !important;
+ float: right;
+ color: #777777;
+ margin-left: 5px;
+ margin-right: 5px;
+ width: 11px;
+ z-index: 10;
+ text-align: center;
+ width: auto;
+}
+#kernel_indicator {
+ float: right !important;
+ float: right;
+ color: #777777;
+ margin-left: 5px;
+ margin-right: 5px;
+ width: 11px;
+ z-index: 10;
+ text-align: center;
+ width: auto;
+ border-left: 1px solid;
+}
+#kernel_indicator .kernel_indicator_name {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#modal_indicator {
+ float: right !important;
+ float: right;
+ color: #777777;
+ margin-left: 5px;
+ margin-right: 5px;
+ width: 11px;
+ z-index: 10;
+ text-align: center;
+ width: auto;
+}
+#readonly-indicator {
+ float: right !important;
+ float: right;
+ color: #777777;
+ margin-left: 5px;
+ margin-right: 5px;
+ width: 11px;
+ z-index: 10;
+ text-align: center;
+ width: auto;
+ margin-top: 2px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ margin-right: 0px;
+ display: none;
+}
+.modal_indicator:before {
+ width: 1.28571429em;
+ text-align: center;
+}
+.edit_mode .modal_indicator:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f040";
+}
+.edit_mode .modal_indicator:before.fa-pull-left {
+ margin-right: .3em;
+}
+.edit_mode .modal_indicator:before.fa-pull-right {
+ margin-left: .3em;
+}
+.edit_mode .modal_indicator:before.pull-left {
+ margin-right: .3em;
+}
+.edit_mode .modal_indicator:before.pull-right {
+ margin-left: .3em;
+}
+.command_mode .modal_indicator:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: ' ';
+}
+.command_mode .modal_indicator:before.fa-pull-left {
+ margin-right: .3em;
+}
+.command_mode .modal_indicator:before.fa-pull-right {
+ margin-left: .3em;
+}
+.command_mode .modal_indicator:before.pull-left {
+ margin-right: .3em;
+}
+.command_mode .modal_indicator:before.pull-right {
+ margin-left: .3em;
+}
+.kernel_idle_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f10c";
+}
+.kernel_idle_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.kernel_idle_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.kernel_idle_icon:before.pull-left {
+ margin-right: .3em;
+}
+.kernel_idle_icon:before.pull-right {
+ margin-left: .3em;
+}
+.kernel_busy_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f111";
+}
+.kernel_busy_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.kernel_busy_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.kernel_busy_icon:before.pull-left {
+ margin-right: .3em;
+}
+.kernel_busy_icon:before.pull-right {
+ margin-left: .3em;
+}
+.kernel_dead_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f1e2";
+}
+.kernel_dead_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.kernel_dead_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.kernel_dead_icon:before.pull-left {
+ margin-right: .3em;
+}
+.kernel_dead_icon:before.pull-right {
+ margin-left: .3em;
+}
+.kernel_disconnected_icon:before {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f127";
+}
+.kernel_disconnected_icon:before.fa-pull-left {
+ margin-right: .3em;
+}
+.kernel_disconnected_icon:before.fa-pull-right {
+ margin-left: .3em;
+}
+.kernel_disconnected_icon:before.pull-left {
+ margin-right: .3em;
+}
+.kernel_disconnected_icon:before.pull-right {
+ margin-left: .3em;
+}
+.notification_widget {
+ color: #777777;
+ z-index: 10;
+ background: rgba(240, 240, 240, 0.5);
+ margin-right: 4px;
+ color: #333333;
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.notification_widget:focus,
+.notification_widget.focus {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+.notification_widget:hover {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.notification_widget:active,
+.notification_widget.active,
+.open > .dropdown-toggle.notification_widget {
+ color: #333333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.notification_widget:active:hover,
+.notification_widget.active:hover,
+.open > .dropdown-toggle.notification_widget:hover,
+.notification_widget:active:focus,
+.notification_widget.active:focus,
+.open > .dropdown-toggle.notification_widget:focus,
+.notification_widget:active.focus,
+.notification_widget.active.focus,
+.open > .dropdown-toggle.notification_widget.focus {
+ color: #333333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+.notification_widget:active,
+.notification_widget.active,
+.open > .dropdown-toggle.notification_widget {
+ background-image: none;
+}
+.notification_widget.disabled:hover,
+.notification_widget[disabled]:hover,
+fieldset[disabled] .notification_widget:hover,
+.notification_widget.disabled:focus,
+.notification_widget[disabled]:focus,
+fieldset[disabled] .notification_widget:focus,
+.notification_widget.disabled.focus,
+.notification_widget[disabled].focus,
+fieldset[disabled] .notification_widget.focus {
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.notification_widget .badge {
+ color: #ffffff;
+ background-color: #333333;
+}
+.notification_widget.warning {
+ color: #ffffff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.notification_widget.warning:focus,
+.notification_widget.warning.focus {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #985f0d;
+}
+.notification_widget.warning:hover {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.notification_widget.warning:active,
+.notification_widget.warning.active,
+.open > .dropdown-toggle.notification_widget.warning {
+ color: #ffffff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.notification_widget.warning:active:hover,
+.notification_widget.warning.active:hover,
+.open > .dropdown-toggle.notification_widget.warning:hover,
+.notification_widget.warning:active:focus,
+.notification_widget.warning.active:focus,
+.open > .dropdown-toggle.notification_widget.warning:focus,
+.notification_widget.warning:active.focus,
+.notification_widget.warning.active.focus,
+.open > .dropdown-toggle.notification_widget.warning.focus {
+ color: #ffffff;
+ background-color: #d58512;
+ border-color: #985f0d;
+}
+.notification_widget.warning:active,
+.notification_widget.warning.active,
+.open > .dropdown-toggle.notification_widget.warning {
+ background-image: none;
+}
+.notification_widget.warning.disabled:hover,
+.notification_widget.warning[disabled]:hover,
+fieldset[disabled] .notification_widget.warning:hover,
+.notification_widget.warning.disabled:focus,
+.notification_widget.warning[disabled]:focus,
+fieldset[disabled] .notification_widget.warning:focus,
+.notification_widget.warning.disabled.focus,
+.notification_widget.warning[disabled].focus,
+fieldset[disabled] .notification_widget.warning.focus {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.notification_widget.warning .badge {
+ color: #f0ad4e;
+ background-color: #ffffff;
+}
+.notification_widget.success {
+ color: #ffffff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.notification_widget.success:focus,
+.notification_widget.success.focus {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #255625;
+}
+.notification_widget.success:hover {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.notification_widget.success:active,
+.notification_widget.success.active,
+.open > .dropdown-toggle.notification_widget.success {
+ color: #ffffff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.notification_widget.success:active:hover,
+.notification_widget.success.active:hover,
+.open > .dropdown-toggle.notification_widget.success:hover,
+.notification_widget.success:active:focus,
+.notification_widget.success.active:focus,
+.open > .dropdown-toggle.notification_widget.success:focus,
+.notification_widget.success:active.focus,
+.notification_widget.success.active.focus,
+.open > .dropdown-toggle.notification_widget.success.focus {
+ color: #ffffff;
+ background-color: #398439;
+ border-color: #255625;
+}
+.notification_widget.success:active,
+.notification_widget.success.active,
+.open > .dropdown-toggle.notification_widget.success {
+ background-image: none;
+}
+.notification_widget.success.disabled:hover,
+.notification_widget.success[disabled]:hover,
+fieldset[disabled] .notification_widget.success:hover,
+.notification_widget.success.disabled:focus,
+.notification_widget.success[disabled]:focus,
+fieldset[disabled] .notification_widget.success:focus,
+.notification_widget.success.disabled.focus,
+.notification_widget.success[disabled].focus,
+fieldset[disabled] .notification_widget.success.focus {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.notification_widget.success .badge {
+ color: #5cb85c;
+ background-color: #ffffff;
+}
+.notification_widget.info {
+ color: #ffffff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.notification_widget.info:focus,
+.notification_widget.info.focus {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #1b6d85;
+}
+.notification_widget.info:hover {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.notification_widget.info:active,
+.notification_widget.info.active,
+.open > .dropdown-toggle.notification_widget.info {
+ color: #ffffff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.notification_widget.info:active:hover,
+.notification_widget.info.active:hover,
+.open > .dropdown-toggle.notification_widget.info:hover,
+.notification_widget.info:active:focus,
+.notification_widget.info.active:focus,
+.open > .dropdown-toggle.notification_widget.info:focus,
+.notification_widget.info:active.focus,
+.notification_widget.info.active.focus,
+.open > .dropdown-toggle.notification_widget.info.focus {
+ color: #ffffff;
+ background-color: #269abc;
+ border-color: #1b6d85;
+}
+.notification_widget.info:active,
+.notification_widget.info.active,
+.open > .dropdown-toggle.notification_widget.info {
+ background-image: none;
+}
+.notification_widget.info.disabled:hover,
+.notification_widget.info[disabled]:hover,
+fieldset[disabled] .notification_widget.info:hover,
+.notification_widget.info.disabled:focus,
+.notification_widget.info[disabled]:focus,
+fieldset[disabled] .notification_widget.info:focus,
+.notification_widget.info.disabled.focus,
+.notification_widget.info[disabled].focus,
+fieldset[disabled] .notification_widget.info.focus {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.notification_widget.info .badge {
+ color: #5bc0de;
+ background-color: #ffffff;
+}
+.notification_widget.danger {
+ color: #ffffff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.notification_widget.danger:focus,
+.notification_widget.danger.focus {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #761c19;
+}
+.notification_widget.danger:hover {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.notification_widget.danger:active,
+.notification_widget.danger.active,
+.open > .dropdown-toggle.notification_widget.danger {
+ color: #ffffff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.notification_widget.danger:active:hover,
+.notification_widget.danger.active:hover,
+.open > .dropdown-toggle.notification_widget.danger:hover,
+.notification_widget.danger:active:focus,
+.notification_widget.danger.active:focus,
+.open > .dropdown-toggle.notification_widget.danger:focus,
+.notification_widget.danger:active.focus,
+.notification_widget.danger.active.focus,
+.open > .dropdown-toggle.notification_widget.danger.focus {
+ color: #ffffff;
+ background-color: #ac2925;
+ border-color: #761c19;
+}
+.notification_widget.danger:active,
+.notification_widget.danger.active,
+.open > .dropdown-toggle.notification_widget.danger {
+ background-image: none;
+}
+.notification_widget.danger.disabled:hover,
+.notification_widget.danger[disabled]:hover,
+fieldset[disabled] .notification_widget.danger:hover,
+.notification_widget.danger.disabled:focus,
+.notification_widget.danger[disabled]:focus,
+fieldset[disabled] .notification_widget.danger:focus,
+.notification_widget.danger.disabled.focus,
+.notification_widget.danger[disabled].focus,
+fieldset[disabled] .notification_widget.danger.focus {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.notification_widget.danger .badge {
+ color: #d9534f;
+ background-color: #ffffff;
+}
+div#pager {
+ background-color: #ffffff;
+ font-size: 14px;
+ line-height: 20px;
+ overflow: hidden;
+ display: none;
+ position: fixed;
+ bottom: 0px;
+ width: 100%;
+ max-height: 50%;
+ padding-top: 8px;
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ /* Display over codemirror */
+ z-index: 100;
+ /* Hack which prevents jquery ui resizable from changing top. */
+ top: auto !important;
+}
+div#pager pre {
+ line-height: 1.21429em;
+ color: #000000;
+ background-color: #f7f7f7;
+ padding: 0.4em;
+}
+div#pager #pager-button-area {
+ position: absolute;
+ top: 8px;
+ right: 20px;
+}
+div#pager #pager-contents {
+ position: relative;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+}
+div#pager #pager-contents #pager-container {
+ position: relative;
+ padding: 15px 0px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+div#pager .ui-resizable-handle {
+ top: 0px;
+ height: 8px;
+ background: #f7f7f7;
+ border-top: 1px solid #cfcfcf;
+ border-bottom: 1px solid #cfcfcf;
+ /* This injects handle bars (a short, wide = symbol) for
+ the resize handle. */
+}
+div#pager .ui-resizable-handle::after {
+ content: '';
+ top: 2px;
+ left: 50%;
+ height: 3px;
+ width: 30px;
+ margin-left: -15px;
+ position: absolute;
+ border-top: 1px solid #cfcfcf;
+}
+.quickhelp {
+ /* Old browsers */
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: stretch;
+ display: -moz-box;
+ -moz-box-orient: horizontal;
+ -moz-box-align: stretch;
+ display: box;
+ box-orient: horizontal;
+ box-align: stretch;
+ /* Modern browsers */
+ display: flex;
+ flex-direction: row;
+ align-items: stretch;
+ /* Old browsers */
+ -webkit-box-flex: 0;
+ -moz-box-flex: 0;
+ box-flex: 0;
+ /* Modern browsers */
+ flex: none;
+ line-height: 1.8em;
+}
+.shortcut_key {
+ display: inline-block;
+ width: 21ex;
+ text-align: right;
+ font-family: monospace;
+}
+.shortcut_descr {
+ display: inline-block;
+ /* Old browsers */
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ box-flex: 1;
+ /* Modern browsers */
+ flex: 1;
+}
+span.save_widget {
+ margin-top: 6px;
+}
+span.save_widget span.filename {
+ height: 1em;
+ line-height: 1em;
+ padding: 3px;
+ margin-left: 16px;
+ border: none;
+ font-size: 146.5%;
+ border-radius: 2px;
+}
+span.save_widget span.filename:hover {
+ background-color: #e6e6e6;
+}
+span.checkpoint_status,
+span.autosave_status {
+ font-size: small;
+}
+@media (max-width: 767px) {
+ span.save_widget {
+ font-size: small;
+ }
+ span.checkpoint_status,
+ span.autosave_status {
+ display: none;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ span.checkpoint_status {
+ display: none;
+ }
+ span.autosave_status {
+ font-size: x-small;
+ }
+}
+.toolbar {
+ padding: 0px;
+ margin-left: -5px;
+ margin-top: 2px;
+ margin-bottom: 5px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.toolbar select,
+.toolbar label {
+ width: auto;
+ vertical-align: middle;
+ margin-right: 2px;
+ margin-bottom: 0px;
+ display: inline;
+ font-size: 92%;
+ margin-left: 0.3em;
+ margin-right: 0.3em;
+ padding: 0px;
+ padding-top: 3px;
+}
+.toolbar .btn {
+ padding: 2px 8px;
+}
+.toolbar .btn-group {
+ margin-top: 0px;
+ margin-left: 5px;
+}
+#maintoolbar {
+ margin-bottom: -3px;
+ margin-top: -8px;
+ border: 0px;
+ min-height: 27px;
+ margin-left: 0px;
+ padding-top: 11px;
+ padding-bottom: 3px;
+}
+#maintoolbar .navbar-text {
+ float: none;
+ vertical-align: middle;
+ text-align: right;
+ margin-left: 5px;
+ margin-right: 0px;
+ margin-top: 0px;
+}
+.select-xs {
+ height: 24px;
+}
+.pulse,
+.dropdown-menu > li > a.pulse,
+li.pulse > a.dropdown-toggle,
+li.pulse.open > a.dropdown-toggle {
+ background-color: #F37626;
+ color: white;
+}
+/**
+ * Primary styles
+ *
+ * Author: Jupyter Development Team
+ */
+/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
+ * of chance of beeing generated from the ../less/[samename].less file, you can
+ * try to get back the less file by reverting somme commit in history
+ **/
+/*
+ * We'll try to get something pretty, so we
+ * have some strange css to have the scroll bar on
+ * the left with fix button on the top right of the tooltip
+ */
+@-moz-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+@-moz-keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@-webkit-keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+/*properties of tooltip after "expand"*/
+.bigtooltip {
+ overflow: auto;
+ height: 200px;
+ -webkit-transition-property: height;
+ -webkit-transition-duration: 500ms;
+ -moz-transition-property: height;
+ -moz-transition-duration: 500ms;
+ transition-property: height;
+ transition-duration: 500ms;
+}
+/*properties of tooltip before "expand"*/
+.smalltooltip {
+ -webkit-transition-property: height;
+ -webkit-transition-duration: 500ms;
+ -moz-transition-property: height;
+ -moz-transition-duration: 500ms;
+ transition-property: height;
+ transition-duration: 500ms;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ height: 80px;
+}
+.tooltipbuttons {
+ position: absolute;
+ padding-right: 15px;
+ top: 0px;
+ right: 0px;
+}
+.tooltiptext {
+ /*avoid the button to overlap on some docstring*/
+ padding-right: 30px;
+}
+.ipython_tooltip {
+ max-width: 700px;
+ /*fade-in animation when inserted*/
+ -webkit-animation: fadeOut 400ms;
+ -moz-animation: fadeOut 400ms;
+ animation: fadeOut 400ms;
+ -webkit-animation: fadeIn 400ms;
+ -moz-animation: fadeIn 400ms;
+ animation: fadeIn 400ms;
+ vertical-align: middle;
+ background-color: #f7f7f7;
+ overflow: visible;
+ border: #ababab 1px solid;
+ outline: none;
+ padding: 3px;
+ margin: 0px;
+ padding-left: 7px;
+ font-family: monospace;
+ min-height: 50px;
+ -moz-box-shadow: 0px 6px 10px -1px #adadad;
+ -webkit-box-shadow: 0px 6px 10px -1px #adadad;
+ box-shadow: 0px 6px 10px -1px #adadad;
+ border-radius: 2px;
+ position: absolute;
+ z-index: 1000;
+}
+.ipython_tooltip a {
+ float: right;
+}
+.ipython_tooltip .tooltiptext pre {
+ border: 0;
+ border-radius: 0;
+ font-size: 100%;
+ background-color: #f7f7f7;
+}
+.pretooltiparrow {
+ left: 0px;
+ margin: 0px;
+ top: -16px;
+ width: 40px;
+ height: 16px;
+ overflow: hidden;
+ position: absolute;
+}
+.pretooltiparrow:before {
+ background-color: #f7f7f7;
+ border: 1px #ababab solid;
+ z-index: 11;
+ content: "";
+ position: absolute;
+ left: 15px;
+ top: 10px;
+ width: 25px;
+ height: 25px;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+}
+ul.typeahead-list i {
+ margin-left: -10px;
+ width: 18px;
+}
+ul.typeahead-list {
+ max-height: 80vh;
+ overflow: auto;
+}
+ul.typeahead-list > li > a {
+ /** Firefox bug **/
+ /* see https://github.com/jupyter/notebook/issues/559 */
+ white-space: normal;
+}
+.cmd-palette .modal-body {
+ padding: 7px;
+}
+.cmd-palette form {
+ background: white;
+}
+.cmd-palette input {
+ outline: none;
+}
+.no-shortcut {
+ display: none;
+}
+.command-shortcut:before {
+ content: "(command)";
+ padding-right: 3px;
+ color: #777777;
+}
+.edit-shortcut:before {
+ content: "(edit)";
+ padding-right: 3px;
+ color: #777777;
+}
+#find-and-replace #replace-preview .match,
+#find-and-replace #replace-preview .insert {
+ background-color: #BBDEFB;
+ border-color: #90CAF9;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 0px;
+}
+#find-and-replace #replace-preview .replace .match {
+ background-color: #FFCDD2;
+ border-color: #EF9A9A;
+ border-radius: 0px;
+}
+#find-and-replace #replace-preview .replace .insert {
+ background-color: #C8E6C9;
+ border-color: #A5D6A7;
+ border-radius: 0px;
+}
+#find-and-replace #replace-preview {
+ max-height: 60vh;
+ overflow: auto;
+}
+#find-and-replace #replace-preview pre {
+ padding: 5px 10px;
+}
+.terminal-app {
+ background: #eeeeee;
+}
+.terminal-app #header {
+ background: #ffffff;
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
+}
+.terminal-app .terminal {
+ float: left;
+ font-family: monospace;
+ color: white;
+ background: black;
+ padding: 0.4em;
+ border-radius: 2px;
+ -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
+ box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
+}
+.terminal-app .terminal,
+.terminal-app .terminal dummy-screen {
+ line-height: 1em;
+ font-size: 14px;
+}
+.terminal-app .terminal-cursor {
+ color: black;
+ background: white;
+}
+.terminal-app #terminado-container {
+ margin-top: 20px;
+}
+/*# sourceMappingURL=style.min.css.map */
+ </style>
+<style type="text/css">
+ .highlight .hll { background-color: #ffffcc }
+.highlight { background: #f8f8f8; }
+.highlight .c { color: #408080; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
+.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #B00040 } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #BA2121 } /* Literal.String */
+.highlight .na { color: #7D9029 } /* Name.Attribute */
+.highlight .nb { color: #008000 } /* Name.Builtin */
+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.highlight .no { color: #880000 } /* Name.Constant */
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #0000FF } /* Name.Function */
+.highlight .nl { color: #A0A000 } /* Name.Label */
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #19177C } /* Name.Variable */
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.highlight .sx { color: #008000 } /* Literal.String.Other */
+.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #0000FF } /* Name.Function.Magic */
+.highlight .vc { color: #19177C } /* Name.Variable.Class */
+.highlight .vg { color: #19177C } /* Name.Variable.Global */
+.highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.highlight .vm { color: #19177C } /* Name.Variable.Magic */
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
+ </style>
+<style type="text/css">
+
+/* Temporary definitions which will become obsolete with Notebook release 5.0 */
+.ansi-black-fg { color: #3E424D; }
+.ansi-black-bg { background-color: #3E424D; }
+.ansi-black-intense-fg { color: #282C36; }
+.ansi-black-intense-bg { background-color: #282C36; }
+.ansi-red-fg { color: #E75C58; }
+.ansi-red-bg { background-color: #E75C58; }
+.ansi-red-intense-fg { color: #B22B31; }
+.ansi-red-intense-bg { background-color: #B22B31; }
+.ansi-green-fg { color: #00A250; }
+.ansi-green-bg { background-color: #00A250; }
+.ansi-green-intense-fg { color: #007427; }
+.ansi-green-intense-bg { background-color: #007427; }
+.ansi-yellow-fg { color: #DDB62B; }
+.ansi-yellow-bg { background-color: #DDB62B; }
+.ansi-yellow-intense-fg { color: #B27D12; }
+.ansi-yellow-intense-bg { background-color: #B27D12; }
+.ansi-blue-fg { color: #208FFB; }
+.ansi-blue-bg { background-color: #208FFB; }
+.ansi-blue-intense-fg { color: #0065CA; }
+.ansi-blue-intense-bg { background-color: #0065CA; }
+.ansi-magenta-fg { color: #D160C4; }
+.ansi-magenta-bg { background-color: #D160C4; }
+.ansi-magenta-intense-fg { color: #A03196; }
+.ansi-magenta-intense-bg { background-color: #A03196; }
+.ansi-cyan-fg { color: #60C6C8; }
+.ansi-cyan-bg { background-color: #60C6C8; }
+.ansi-cyan-intense-fg { color: #258F8F; }
+.ansi-cyan-intense-bg { background-color: #258F8F; }
+.ansi-white-fg { color: #C5C1B4; }
+.ansi-white-bg { background-color: #C5C1B4; }
+.ansi-white-intense-fg { color: #A1A6B2; }
+.ansi-white-intense-bg { background-color: #A1A6B2; }
+
+.ansi-bold { font-weight: bold; }
+
+ </style>
+
+
+<style type="text/css">
+/* Overrides of notebook CSS for static HTML export */
+body {
+ overflow: visible;
+ padding: 8px;
+}
+
+div#notebook {
+ overflow: visible;
+ border-top: none;
+}@media print {
+ div.cell {
+ display: block;
+ page-break-inside: avoid;
+ }
+ div.output_wrapper {
+ display: block;
+ page-break-inside: avoid;
+ }
+ div.output {
+ display: block;
+ page-break-inside: avoid;
+ }
+}
+</style>
+
+<!-- Custom stylesheet, it must be in the same directory as the html file -->
+<link rel="stylesheet" href="custom.css">
+
+<!-- Loading mathjax macro -->
+<!-- Load mathjax -->
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
+ <!-- MathJax configuration -->
+ <script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ tex2jax: {
+ inlineMath: [ ['$','$'], ["\\(","\\)"] ],
+ displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
+ processEscapes: true,
+ processEnvironments: true
+ },
+ // Center justify equations in code and markdown cells. Elsewhere
+ // we use CSS to left justify single line equations in code cells.
+ displayAlign: 'center',
+ "HTML-CSS": {
+ styles: {'.MathJax_Display': {"margin": 0}},
+ linebreaks: { automatic: true }
+ }
+ });
+ </script>
+ <!-- End of mathjax configuration --></head>
+<body>
+ <div tabindex="-1" id="notebook" class="border-box-sizing">
+ <div class="container" id="notebook-container">
+
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h1 id="Plotters-Tutorial-with-Jupyter">Plotters Tutorial with Jupyter<a class="anchor-link" href="#Plotters-Tutorial-with-Jupyter">&#182;</a></h1>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>This is a interactive tutorial for <a href="https://github.com/38/plotters"><code>Plotters</code></a> drawing library. If you are looking at the static HTML version and want to try the interactive version. Please follow the steps:</p>
+<h4 id="For-Ubuntu/Debian-users">For Ubuntu/Debian users<a class="anchor-link" href="#For-Ubuntu/Debian-users">&#182;</a></h4><div class="highlight"><pre><span></span><span class="c1"># Install Jupyter notebook </span>
+sudo apt install libzmq3-dev jupyter-notebook
+cargo install evcxr_jupyter
+evcxr_jupyter --install
+<span class="c1"># Get the notebook</span>
+git clone https://github.com/38/plotters-doc-data
+<span class="nb">cd</span> plotteres-doc-data
+jupyter notebook
+</pre></div>
+<h4 id="For-OSX-users">For OSX users<a class="anchor-link" href="#For-OSX-users">&#182;</a></h4><div class="highlight"><pre><span></span><span class="c1"># Install Jupyter notebook </span>
+brew install zeromq pkg-config
+cargo install evcxr_jupyter
+evcxr_jupyter --install
+<span class="c1"># Get the notebook</span>
+git clone https://github.com/38/plotters-doc-data
+<span class="nb">cd</span> plotteres-doc-data
+jupyter notebook
+</pre></div>
+<p>You can also download the latest notebook from <a href="https://raw.githubusercontent.com/38/plotters-doc-data/master/evcxr-jupyter-integration.ipynb">https://raw.githubusercontent.com/38/plotters-doc-data/master/evcxr-jupyter-integration.ipynb</a>, thus you don't have to clone the entire data repo.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Get-Started">Get Started<a class="anchor-link" href="#Get-Started">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>In order to use <code>Plotters</code> in <code>jupyter-evcxr</code>, you need both Jupyter and evcxr installed.
+Check <a href="https://github.com/google/evcxr">https://github.com/google/evcxr</a> for the instructions.</p>
+<p>To use Plotters with <code>jupyter-evcxr</code>, you need to import it using the following code:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[2]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Because <code>evcxr</code> uses only SVG images, so we don't need other types of backend. So we should put</p>
+<p><code>default_features = false, features = ["evcxr"]</code></p>
+<p>Make the compilation faster. Since <code>evcxr</code> shares all the artifacts among cells, after the first time we have <code>plotters</code> compiled, it should be faster after.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h3 id="Plotters-evcxr-integration-overview">Plotters evcxr integration overview<a class="anchor-link" href="#Plotters-evcxr-integration-overview">&#182;</a></h3>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>To use plotters, the most convenient way is importing everything defined in the <code>prelude</code> module.
+It will import <code>evcxr_figure</code> function for <code>evcxr</code> integration.</p>
+<p><em>Note: Currently evcxr doesn't work with nightly rust, so please make sure you are using a stable rust</em></p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[3]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="c1">// Import all the plotters prelude functions</span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="c1">// To create a figure that can be displayed in Jupyter notebook, use evcxr_figure function.</span>
+<span class="c1">// The first param is the resolution of the figure.</span>
+<span class="c1">// The second param is the closure that performes the drawing.</span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">300</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// Do the drawings</span>
+<span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">fill</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Blue</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// Tell plotters that everything is ok</span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">})</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[3]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style=""><svg viewBox="0 0 300 10" xmlns="http://www.w3.org/2000/svg">
+<rect fill="#0000FF" height="10" opacity="1" stroke="none" width="300" x="0" y="0"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Hello-World">Hello World<a class="anchor-link" href="#Hello-World">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[4]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">320</span><span class="p">,</span><span class="mi">50</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">fill</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Green</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">draw</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Text</span>::<span class="n">new</span><span class="p">(</span><span class="s">&quot;Hello World from Plotters!&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">()))</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">})</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[4]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style=""><svg viewBox="0 0 320 50" xmlns="http://www.w3.org/2000/svg">
+<rect fill="#00FF00" height="50" opacity="1" stroke="none" width="320" x="0" y="0"/>
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="15" y="28">
+Hello World from Plotters!
+</text>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Sub--Drawing-Areas">Sub- Drawing Areas<a class="anchor-link" href="#Sub--Drawing-Areas">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>One of the very important features is, <code>Plotters</code> allows drawing multiple charts in a single figure. And this is done by having sub-drawing-areas. The root drawing area is able to be splitted into smaller drawing areas, and you can always do more fine-grained splits as well.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[5]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">coord</span>::<span class="n">Shift</span><span class="p">;</span><span class="w"></span>
+<span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">sierpinski_carpet</span><span class="p">(</span><span class="w"></span>
+<span class="w"> </span><span class="n">depth</span>: <span class="kt">u32</span><span class="p">,</span><span class="w"> </span>
+<span class="w"> </span><span class="n">drawing_area</span>: <span class="kp">&amp;</span><span class="nc">DrawingArea</span><span class="o">&lt;</span><span class="n">SVGBackend</span><span class="p">,</span><span class="w"> </span><span class="n">Shift</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>
+-&gt; <span class="nb">Result</span><span class="o">&lt;</span><span class="p">(),</span><span class="w"> </span><span class="nb">Box</span><span class="o">&lt;</span><span class="n">dyn</span><span class="w"> </span><span class="n">std</span>::<span class="n">error</span>::<span class="n">Error</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">depth</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">sub_areas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">drawing_area</span><span class="p">.</span><span class="n">split_evenly</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">));</span><span class="w"></span>
+<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">idx</span><span class="p">,</span><span class="w"> </span><span class="n">sub_area</span><span class="p">)</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">..).</span><span class="n">zip</span><span class="p">(</span><span class="n">sub_areas</span><span class="p">.</span><span class="n">iter</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">idx</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="n">sub_area</span><span class="p">.</span><span class="n">fill</span><span class="p">(</span><span class="o">&amp;</span><span class="n">White</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="n">sierpinski_carpet</span><span class="p">(</span><span class="n">depth</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">sub_area</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">4800</span><span class="p">,</span><span class="mi">4800</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">fill</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Black</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">sierpinski_carpet</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 200px&quot;</span><span class="p">)</span><span class="w"> </span><span class="cm">/* You can add CSS style to the result */</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[5]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 200px"><svg viewBox="0 0 4800 4800" xmlns="http://www.w3.org/2000/svg">
+<rect fill="#000000" height="4800" opacity="1" stroke="none" width="4800" x="0" y="0"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="710" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1025"/>
+<rect fill="#FFFFFF" height="533" opacity="1" stroke="none" width="533" x="533" y="533"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="177" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="710" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="178" x="1245" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1561"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="1778" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2393" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2372" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="2313" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2193" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2372" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2550" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="2845" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="1778" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1025"/>
+<rect fill="#FFFFFF" height="533" opacity="1" stroke="none" width="534" x="2134" y="533"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="2845" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="1778" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2372" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2393" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2193" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="178" x="2313" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2550" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2193" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2372" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2550" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="2845" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="1561"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="3913" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="21"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="21"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="79"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="60"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="79"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="138"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="138"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="315"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="177"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="198"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="198"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="256"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="237"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="256"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="315"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="373"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="373"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="434"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="413"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="434"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="492"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="492"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1025"/>
+<rect fill="#FFFFFF" height="533" opacity="1" stroke="none" width="534" x="3734" y="533"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="554"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="554"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="612"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="593"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="612"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="671"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="671"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="848"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="710"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="731"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="731"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="789"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="770"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="789"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="848"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="906"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="906"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="967"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="946"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="967"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1025"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="3378" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="178" x="3913" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1085"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1144"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="1125"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1144"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="1205"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="1205"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1383"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="4445" y="1245"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1264"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1264"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="1325"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="1304"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="1325"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1383"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1442"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1442"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="1503"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="1482"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="1503"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1561"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1561"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2093"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="710" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="2093"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2451"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="177" y="2313"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2629"/>
+<rect fill="#FFFFFF" height="534" opacity="1" stroke="none" width="533" x="533" y="2134"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2451"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="178" x="1245" y="2313"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2629"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3160"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="710" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3160"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3160"/>
+<rect fill="#FFFFFF" height="1600" opacity="1" stroke="none" width="1600" x="1601" y="1601"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2093"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="3913" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="2093"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="1622"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="1622"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1680"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="1661"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1680"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1739"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1739"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1916"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="1778"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="1799"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="1799"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1857"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="1838"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1857"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1916"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="1974"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="1974"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2035"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="2014"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2035"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2093"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2451"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="3378" y="2313"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2629"/>
+<rect fill="#FFFFFF" height="534" opacity="1" stroke="none" width="534" x="3734" y="2134"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2153"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2212"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="2193"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2212"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="2273"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2273"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2451"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="4445" y="2313"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2332"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2332"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2393"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="2372"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2393"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2451"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2510"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2510"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2571"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="2550"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2571"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2629"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2629"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3160"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="3913" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3160"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="2689"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2689"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2747"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="2728"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2747"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2806"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2806"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="2983"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="2845"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="2866"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="2866"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2924"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="2905"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2924"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="2983"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3041"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3041"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3102"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="3081"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3102"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3160"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3160"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="710" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="177" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4229"/>
+<rect fill="#FFFFFF" height="534" opacity="1" stroke="none" width="533" x="533" y="3734"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="178" x="1245" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4229"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="256" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="237" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="79" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="60" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="177" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="434" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="413" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="21" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="60" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="138" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="21" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="79" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="138" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="198" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="237" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="315" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="198" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="256" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="315" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="373" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="413" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="492" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="373" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="434" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="492" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="789" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="770" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="612" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="593" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="710" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="967" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="946" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="554" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="593" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="671" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="554" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="612" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="671" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="731" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="770" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="848" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="731" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="789" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="848" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="906" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="946" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1025" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="906" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="967" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1025" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1325" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1304" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1144" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1125" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="1245" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1503" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="1482" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1085" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1125" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1205" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1085" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1144" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1205" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1264" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1304" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1383" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1264" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1325" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1383" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1442" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="1482" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1561" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1442" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1503" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1561" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="1778" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2393" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2372" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="2313" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2193" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2372" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2550" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="2845" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="1778" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4229"/>
+<rect fill="#FFFFFF" height="534" opacity="1" stroke="none" width="534" x="2134" y="3734"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="2845" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4229"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1857" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1838" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1680" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="1661" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="1778" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2035" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2014" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1622" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1661" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1739" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1622" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1680" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1739" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="1799" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="1838" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1916" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="1799" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1857" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1916" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="1974" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2014" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2093" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="1974" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2035" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2093" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2393" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2372" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2212" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2193" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="2313" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2571" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="2550" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2153" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2193" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2273" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2153" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2212" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2273" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2332" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2372" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2451" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2332" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2393" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2451" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2510" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="2550" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2629" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2510" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2571" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2629" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2924" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2905" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2747" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="2728" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="2845" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3102" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3081" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2689" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2728" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2806" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2689" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2747" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2806" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="2866" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="2905" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="2983" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="2866" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2924" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="2983" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3041" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3081" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3160" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3041" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3102" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3160" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="3913" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="3693"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="3222"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3222"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3280"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="3261"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3280"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3339"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3339"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3516"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="3378"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="3399"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3399"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3457"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="3438"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3457"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3516"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3574"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3574"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3635"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="3614"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3635"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3693"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="3378" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4229"/>
+<rect fill="#FFFFFF" height="534" opacity="1" stroke="none" width="534" x="3734" y="3734"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3753"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3812"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="3793"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3812"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="3873"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3873"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4051"/>
+<rect fill="#FFFFFF" height="178" opacity="1" stroke="none" width="177" x="4445" y="3913"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="3932"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="3932"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="3993"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="3972"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="3993"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4051"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4110"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4110"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="4171"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="4150"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="4171"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4229"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4229"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3457" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3438" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3280" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3261" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="3378" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3635" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3614" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3222" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3261" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3339" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3222" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3280" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3339" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3399" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3438" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3516" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3399" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3457" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3516" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3574" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3614" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3693" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3574" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3635" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3693" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3993" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="3972" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3812" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="3793" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="178" x="3913" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4171" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4150" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3753" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="3793" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="3873" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3753" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3812" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3873" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="3932" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="3972" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4051" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="3932" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="3993" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4051" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4110" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4150" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4229" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4110" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4171" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4229" y="4760"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4524" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4505" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="4289"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="4289"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4347"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="4328"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4347"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4406"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4406"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4347" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="59" x="4328" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4583"/>
+<rect fill="#FFFFFF" height="177" opacity="1" stroke="none" width="177" x="4445" y="4445"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4702" y="4466"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="4466"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4524"/>
+<rect fill="#FFFFFF" height="59" opacity="1" stroke="none" width="60" x="4681" y="4505"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4524"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4583"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4289" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4328" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4406" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4289" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4347" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4406" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="20" x="4466" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="59" x="4505" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4583" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4466" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4524" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4583" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4641"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4641"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4641" y="4702"/>
+<rect fill="#FFFFFF" height="60" opacity="1" stroke="none" width="60" x="4681" y="4681"/>
+<rect fill="#FFFFFF" height="20" opacity="1" stroke="none" width="19" x="4760" y="4702"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4641" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="20" x="4702" y="4760"/>
+<rect fill="#FFFFFF" height="19" opacity="1" stroke="none" width="19" x="4760" y="4760"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Chart-Context">Chart Context<a class="anchor-link" href="#Chart-Context">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p><code>Plotters</code> is designed for drawing charts, plots, etc. This example demonstrate how to use <code>Plotters</code> chart specific APIs to draw a chart, including, labels, axis, meshes, etc. To draw a chart on the drawin area, you need to create a chart context and do some configuration.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[22]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">240</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Hello Plotters Chart Context!&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// Then we can draw a series on it!</span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">draw_series</span><span class="p">((</span><span class="mi">1</span><span class="p">..</span><span class="mi">10</span><span class="p">).</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="n">x</span><span class="o">|</span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">f32</span><span class="o">/</span><span class="mf">10.0</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">Circle</span>::<span class="n">new</span><span class="p">((</span><span class="n">x</span><span class="p">,</span><span class="n">x</span><span class="p">),</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">Red</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">}))</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width:60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[22]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width:60%"><svg viewBox="0 0 640 240" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="207" y="18">
+Hello Plotters Chart Context!
+</text>
+<circle cx="64" cy="218" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="128" cy="196" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="192" cy="175" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="256" cy="153" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="320" cy="132" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="384" cy="110" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="448" cy="88" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="512" cy="67" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+<circle cx="576" cy="45" fill="none" opacity="1" r="5" stroke="#FF0000"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Adding-Common-Chart-Components">Adding Common Chart Components<a class="anchor-link" href="#Adding-Common-Chart-Components">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>We can also make <code>Plotters</code> draws common components for us, such as, meshes, axis, legend. In this section, we demonstrate how to do that.</p>
+<p>The following code shows how we add mesh to the chart.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[23]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Chart Context with Mesh&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">().</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[23]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="222" y="18">
+Chart Context with Mesh
+</text>
+<line opacity="0.1" stroke="#000000" x1="6" x2="6" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="12" x2="12" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="19" x2="19" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="25" x2="25" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="32" x2="32" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="38" x2="38" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="44" x2="44" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="51" x2="51" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="57" x2="57" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="64" x2="64" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="70" x2="70" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="76" x2="76" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="83" x2="83" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="89" x2="89" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="96" x2="96" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="102" x2="102" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="108" x2="108" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="115" x2="115" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="121" x2="121" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="128" x2="128" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="134" x2="134" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="140" x2="140" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="147" x2="147" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="153" x2="153" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="160" x2="160" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="166" x2="166" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="172" x2="172" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="179" x2="179" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="185" x2="185" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="192" x2="192" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="198" x2="198" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="204" x2="204" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="211" x2="211" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="217" x2="217" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="224" x2="224" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="230" x2="230" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="236" x2="236" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="243" x2="243" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="249" x2="249" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="256" x2="256" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="262" x2="262" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="268" x2="268" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="275" x2="275" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="281" x2="281" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="288" x2="288" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="294" x2="294" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="300" x2="300" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="307" x2="307" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="313" x2="313" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="320" x2="320" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="326" x2="326" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="332" x2="332" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="339" x2="339" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="345" x2="345" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="352" x2="352" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="358" x2="358" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="364" x2="364" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="371" x2="371" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="377" x2="377" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="384" x2="384" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="390" x2="390" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="396" x2="396" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="403" x2="403" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="409" x2="409" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="416" x2="416" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="422" x2="422" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="428" x2="428" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="435" x2="435" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="441" x2="441" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="448" x2="448" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="454" x2="454" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="460" x2="460" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="467" x2="467" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="473" x2="473" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="480" x2="480" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="486" x2="486" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="492" x2="492" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="499" x2="499" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="505" x2="505" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="512" x2="512" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="518" x2="518" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="524" x2="524" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="531" x2="531" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="537" x2="537" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="544" x2="544" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="550" x2="550" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="556" x2="556" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="563" x2="563" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="569" x2="569" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="576" x2="576" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="582" x2="582" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="588" x2="588" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="595" x2="595" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="601" x2="601" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="608" x2="608" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="614" x2="614" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="620" x2="620" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="627" x2="627" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="633" x2="633" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="640" x2="640" y1="480" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="475" y2="475"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="470" y2="470"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="466" y2="466"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="461" y2="461"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="457" y2="457"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="452" y2="452"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="448" y2="448"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="443" y2="443"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="438" y2="438"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="434" y2="434"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="429" y2="429"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="425" y2="425"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="420" y2="420"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="416" y2="416"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="411" y2="411"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="407" y2="407"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="402" y2="402"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="397" y2="397"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="393" y2="393"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="388" y2="388"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="384" y2="384"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="379" y2="379"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="375" y2="375"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="370" y2="370"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="366" y2="366"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="361" y2="361"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="356" y2="356"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="352" y2="352"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="347" y2="347"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="343" y2="343"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="338" y2="338"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="334" y2="334"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="329" y2="329"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="324" y2="324"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="320" y2="320"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="315" y2="315"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="311" y2="311"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="306" y2="306"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="302" y2="302"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="297" y2="297"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="293" y2="293"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="288" y2="288"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="283" y2="283"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="279" y2="279"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="274" y2="274"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="270" y2="270"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="265" y2="265"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="261" y2="261"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="256" y2="256"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="252" y2="252"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="247" y2="247"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="242" y2="242"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="238" y2="238"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="233" y2="233"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="229" y2="229"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="224" y2="224"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="220" y2="220"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="215" y2="215"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="210" y2="210"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="206" y2="206"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="201" y2="201"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="197" y2="197"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="192" y2="192"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="188" y2="188"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="183" y2="183"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="179" y2="179"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="174" y2="174"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="169" y2="169"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="165" y2="165"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="160" y2="160"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="156" y2="156"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="151" y2="151"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="147" y2="147"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="142" y2="142"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="138" y2="138"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="133" y2="133"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="128" y2="128"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="124" y2="124"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="119" y2="119"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="115" y2="115"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="110" y2="110"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="106" y2="106"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="101" y2="101"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="96" y2="96"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="92" y2="92"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="87" y2="87"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="83" y2="83"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="78" y2="78"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="74" y2="74"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="69" y2="69"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="65" y2="65"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="60" y2="60"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="55" y2="55"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="51" y2="51"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="46" y2="46"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="42" y2="42"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="37" y2="37"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="33" y2="33"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="28" y2="28"/>
+<line opacity="0.1" stroke="#000000" x1="0" x2="640" y1="24" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="64" x2="64" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="128" x2="128" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="192" x2="192" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="256" x2="256" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="320" x2="320" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="384" x2="384" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="448" x2="448" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="512" x2="512" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="576" x2="576" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="640" x2="640" y1="480" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="434" y2="434"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="388" y2="388"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="343" y2="343"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="297" y2="297"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="252" y2="252"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="206" y2="206"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="160" y2="160"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="115" y2="115"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="69" y2="69"/>
+<line opacity="0.2" stroke="#000000" x1="0" x2="640" y1="24" y2="24"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Then we can add axis to the chart.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[24]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Chart Context with Mesh and Axis&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[24]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="185" y="18">
+Chart Context with Mesh and Axis
+</text>
+<line opacity="0.1" stroke="#000000" x1="46" x2="46" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="52" x2="52" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="58" x2="58" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="64" x2="64" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="70" x2="70" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="76" x2="76" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="82" x2="82" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="88" x2="88" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="94" x2="94" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="100" x2="100" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="106" x2="106" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="112" x2="112" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="118" x2="118" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="124" x2="124" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="130" x2="130" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="136" x2="136" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="142" x2="142" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="148" x2="148" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="154" x2="154" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="160" x2="160" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="166" x2="166" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="172" x2="172" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="178" x2="178" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="184" x2="184" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="190" x2="190" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="196" x2="196" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="202" x2="202" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="208" x2="208" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="214" x2="214" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="220" x2="220" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="226" x2="226" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="232" x2="232" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="238" x2="238" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="244" x2="244" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="250" x2="250" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="256" x2="256" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="262" x2="262" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="268" x2="268" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="274" x2="274" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="280" x2="280" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="286" x2="286" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="292" x2="292" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="298" x2="298" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="304" x2="304" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="310" x2="310" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="316" x2="316" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="322" x2="322" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="328" x2="328" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="334" x2="334" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="340" x2="340" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="346" x2="346" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="352" x2="352" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="358" x2="358" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="364" x2="364" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="370" x2="370" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="376" x2="376" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="382" x2="382" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="388" x2="388" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="394" x2="394" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="400" x2="400" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="406" x2="406" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="412" x2="412" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="418" x2="418" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="424" x2="424" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="430" x2="430" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="436" x2="436" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="442" x2="442" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="448" x2="448" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="454" x2="454" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="460" x2="460" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="466" x2="466" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="472" x2="472" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="478" x2="478" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="484" x2="484" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="490" x2="490" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="496" x2="496" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="502" x2="502" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="508" x2="508" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="514" x2="514" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="520" x2="520" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="526" x2="526" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="532" x2="532" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="538" x2="538" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="544" x2="544" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="550" x2="550" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="556" x2="556" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="562" x2="562" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="568" x2="568" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="574" x2="574" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="580" x2="580" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="586" x2="586" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="592" x2="592" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="598" x2="598" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="604" x2="604" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="610" x2="610" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="616" x2="616" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="622" x2="622" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="628" x2="628" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="634" x2="634" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="640" x2="640" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="435" y2="435"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="431" y2="431"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="427" y2="427"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="423" y2="423"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="419" y2="419"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="415" y2="415"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="410" y2="410"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="406" y2="406"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="402" y2="402"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="398" y2="398"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="394" y2="394"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="390" y2="390"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="385" y2="385"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="381" y2="381"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="377" y2="377"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="373" y2="373"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="369" y2="369"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="365" y2="365"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="360" y2="360"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="356" y2="356"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="352" y2="352"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="348" y2="348"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="344" y2="344"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="340" y2="340"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="336" y2="336"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="331" y2="331"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="327" y2="327"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="323" y2="323"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="319" y2="319"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="315" y2="315"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="311" y2="311"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="306" y2="306"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="302" y2="302"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="298" y2="298"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="294" y2="294"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="290" y2="290"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="286" y2="286"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="281" y2="281"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="277" y2="277"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="273" y2="273"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="269" y2="269"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="265" y2="265"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="261" y2="261"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="256" y2="256"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="252" y2="252"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="248" y2="248"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="244" y2="244"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="240" y2="240"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="236" y2="236"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="232" y2="232"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="227" y2="227"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="223" y2="223"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="219" y2="219"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="215" y2="215"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="211" y2="211"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="207" y2="207"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="202" y2="202"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="198" y2="198"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="194" y2="194"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="190" y2="190"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="186" y2="186"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="182" y2="182"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="177" y2="177"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="173" y2="173"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="169" y2="169"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="165" y2="165"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="161" y2="161"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="157" y2="157"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="152" y2="152"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="148" y2="148"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="144" y2="144"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="140" y2="140"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="136" y2="136"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="132" y2="132"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="128" y2="128"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="123" y2="123"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="119" y2="119"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="115" y2="115"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="111" y2="111"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="107" y2="107"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="103" y2="103"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="98" y2="98"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="94" y2="94"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="90" y2="90"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="86" y2="86"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="82" y2="82"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="78" y2="78"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="73" y2="73"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="69" y2="69"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="65" y2="65"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="61" y2="61"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="57" y2="57"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="53" y2="53"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="48" y2="48"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="44" y2="44"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="40" y2="40"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="36" y2="36"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="32" y2="32"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="28" y2="28"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="24" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="100" x2="100" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="160" x2="160" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="220" x2="220" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="280" x2="280" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="340" x2="340" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="400" x2="400" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="460" x2="460" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="520" x2="520" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="580" x2="580" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="640" x2="640" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="398" y2="398"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="356" y2="356"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="315" y2="315"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="273" y2="273"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="232" y2="232"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="190" y2="190"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="148" y2="148"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="107" y2="107"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="65" y2="65"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="24" y2="24"/>
+<polyline fill="none" opacity="1" points="40,440 640,440 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="100,440 100,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="93" y="458">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,440 160,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="153" y="458">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,440 220,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="213" y="458">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,440 280,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="273" y="458">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,440 340,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="333" y="458">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,440 400,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="393" y="458">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,440 460,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="453" y="458">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,440 520,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="513" y="458">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,440 580,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="573" y="458">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,24 40,440 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="402">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,398 40,398 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="360">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,356 40,356 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="319">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,315 40,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="277">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,273 40,273 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="236">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,232 40,232 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="194">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,190 40,190 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="152">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,148 40,148 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="111">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,107 40,107 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="69">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,65 40,65 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="28">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,24 40,24 " stroke="#000000"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>In addition to that, we can put label text to the axis.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[25]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Chart with Axis Label&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_desc</span><span class="p">(</span><span class="s">&quot;Here&#39;s the label for X&quot;</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_desc</span><span class="p">(</span><span class="s">&quot;Here&#39;s the label for Y&quot;</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[25]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="237" y="18">
+Chart with Axis Label
+</text>
+<line opacity="0.1" stroke="#000000" x1="46" x2="46" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="52" x2="52" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="58" x2="58" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="64" x2="64" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="70" x2="70" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="76" x2="76" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="82" x2="82" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="88" x2="88" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="94" x2="94" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="100" x2="100" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="106" x2="106" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="112" x2="112" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="118" x2="118" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="124" x2="124" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="130" x2="130" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="136" x2="136" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="142" x2="142" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="148" x2="148" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="154" x2="154" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="160" x2="160" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="166" x2="166" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="172" x2="172" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="178" x2="178" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="184" x2="184" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="190" x2="190" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="196" x2="196" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="202" x2="202" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="208" x2="208" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="214" x2="214" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="220" x2="220" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="226" x2="226" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="232" x2="232" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="238" x2="238" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="244" x2="244" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="250" x2="250" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="256" x2="256" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="262" x2="262" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="268" x2="268" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="274" x2="274" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="280" x2="280" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="286" x2="286" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="292" x2="292" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="298" x2="298" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="304" x2="304" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="310" x2="310" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="316" x2="316" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="322" x2="322" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="328" x2="328" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="334" x2="334" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="340" x2="340" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="346" x2="346" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="352" x2="352" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="358" x2="358" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="364" x2="364" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="370" x2="370" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="376" x2="376" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="382" x2="382" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="388" x2="388" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="394" x2="394" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="400" x2="400" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="406" x2="406" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="412" x2="412" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="418" x2="418" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="424" x2="424" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="430" x2="430" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="436" x2="436" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="442" x2="442" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="448" x2="448" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="454" x2="454" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="460" x2="460" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="466" x2="466" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="472" x2="472" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="478" x2="478" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="484" x2="484" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="490" x2="490" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="496" x2="496" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="502" x2="502" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="508" x2="508" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="514" x2="514" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="520" x2="520" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="526" x2="526" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="532" x2="532" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="538" x2="538" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="544" x2="544" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="550" x2="550" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="556" x2="556" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="562" x2="562" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="568" x2="568" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="574" x2="574" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="580" x2="580" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="586" x2="586" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="592" x2="592" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="598" x2="598" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="604" x2="604" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="610" x2="610" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="616" x2="616" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="622" x2="622" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="628" x2="628" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="634" x2="634" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="640" x2="640" y1="440" y2="24"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="435" y2="435"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="431" y2="431"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="427" y2="427"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="423" y2="423"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="419" y2="419"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="415" y2="415"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="410" y2="410"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="406" y2="406"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="402" y2="402"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="398" y2="398"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="394" y2="394"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="390" y2="390"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="385" y2="385"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="381" y2="381"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="377" y2="377"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="373" y2="373"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="369" y2="369"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="365" y2="365"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="360" y2="360"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="356" y2="356"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="352" y2="352"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="348" y2="348"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="344" y2="344"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="340" y2="340"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="336" y2="336"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="331" y2="331"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="327" y2="327"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="323" y2="323"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="319" y2="319"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="315" y2="315"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="311" y2="311"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="306" y2="306"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="302" y2="302"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="298" y2="298"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="294" y2="294"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="290" y2="290"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="286" y2="286"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="281" y2="281"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="277" y2="277"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="273" y2="273"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="269" y2="269"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="265" y2="265"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="261" y2="261"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="256" y2="256"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="252" y2="252"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="248" y2="248"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="244" y2="244"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="240" y2="240"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="236" y2="236"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="232" y2="232"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="227" y2="227"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="223" y2="223"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="219" y2="219"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="215" y2="215"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="211" y2="211"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="207" y2="207"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="202" y2="202"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="198" y2="198"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="194" y2="194"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="190" y2="190"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="186" y2="186"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="182" y2="182"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="177" y2="177"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="173" y2="173"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="169" y2="169"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="165" y2="165"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="161" y2="161"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="157" y2="157"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="152" y2="152"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="148" y2="148"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="144" y2="144"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="140" y2="140"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="136" y2="136"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="132" y2="132"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="128" y2="128"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="123" y2="123"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="119" y2="119"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="115" y2="115"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="111" y2="111"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="107" y2="107"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="103" y2="103"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="98" y2="98"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="94" y2="94"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="90" y2="90"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="86" y2="86"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="82" y2="82"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="78" y2="78"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="73" y2="73"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="69" y2="69"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="65" y2="65"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="61" y2="61"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="57" y2="57"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="53" y2="53"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="48" y2="48"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="44" y2="44"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="40" y2="40"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="36" y2="36"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="32" y2="32"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="28" y2="28"/>
+<line opacity="0.1" stroke="#000000" x1="40" x2="640" y1="24" y2="24"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="290" y="479">
+Here's the label for X
+</text>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" transform="rotate(270, 0, 282)" x="0" y="290">
+Here's the label for Y
+</text>
+<line opacity="0.2" stroke="#000000" x1="100" x2="100" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="160" x2="160" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="220" x2="220" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="280" x2="280" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="340" x2="340" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="400" x2="400" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="460" x2="460" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="520" x2="520" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="580" x2="580" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="640" x2="640" y1="440" y2="24"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="398" y2="398"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="356" y2="356"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="315" y2="315"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="273" y2="273"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="232" y2="232"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="190" y2="190"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="148" y2="148"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="107" y2="107"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="65" y2="65"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="24" y2="24"/>
+<polyline fill="none" opacity="1" points="40,440 640,440 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="100,440 100,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="93" y="458">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,440 160,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="153" y="458">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,440 220,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="213" y="458">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,440 280,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="273" y="458">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,440 340,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="333" y="458">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,440 400,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="393" y="458">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,440 460,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="453" y="458">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,440 520,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="513" y="458">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,440 580,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="573" y="458">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,24 40,440 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="402">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,398 40,398 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="360">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,356 40,356 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="319">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,315 40,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="277">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,273 40,273 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="236">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,232 40,232 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="194">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,190 40,190 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="152">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,148 40,148 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="111">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,107 40,107 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="69">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,65 40,65 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="28">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,24 40,24 " stroke="#000000"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Then let's disable mesh lines for the X axis</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[26]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Chart Context with Mesh and Axis&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_labels</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">line_style_2</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Transparent</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_x_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[26]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="185" y="18">
+Chart Context with Mesh and Axis
+</text>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="398" y2="398"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="356" y2="356"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="315" y2="315"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="273" y2="273"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="232" y2="232"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="190" y2="190"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="148" y2="148"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="107" y2="107"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="65" y2="65"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="640" y1="24" y2="24"/>
+<polyline fill="none" opacity="1" points="40,440 640,440 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="100,440 100,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="93" y="458">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,440 160,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="153" y="458">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,440 220,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="213" y="458">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,440 280,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="273" y="458">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,440 340,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="333" y="458">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,440 400,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="393" y="458">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,440 460,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="453" y="458">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,440 520,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="513" y="458">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,440 580,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="573" y="458">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,24 40,440 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="402">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,398 40,398 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="360">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,356 40,356 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="319">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,315 40,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="277">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,273 40,273 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="236">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,232 40,232 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="194">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,190 40,190 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="152">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,148 40,148 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="111">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,107 40,107 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="69">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,65 40,65 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="28">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,24 40,24 " stroke="#000000"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>To create multiple charts in a single figure, you can just split the drawing area and create multiple chart context.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[27]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">sub_areas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">split_evenly</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">));</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">idx</span><span class="p">,</span><span class="w"> </span><span class="n">area</span><span class="p">)</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">..).</span><span class="n">zip</span><span class="p">(</span><span class="n">sub_areas</span><span class="p">.</span><span class="n">iter</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">area</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="n">format</span><span class="o">!</span><span class="p">(</span><span class="s">&quot;Subchart #{}&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">idx</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f32</span><span class="p">..</span><span class="mi">1</span><span class="k">f32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_labels</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">line_style_2</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Transparent</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_x_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"></span>
+
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width: 60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[27]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width: 60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="15" opacity="1" x="124" y="15">
+Subchart #1
+</text>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="183" y2="183"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="165" y2="165"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="147" y2="147"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="129" y2="129"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="111" y2="111"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="93" y2="93"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="75" y2="75"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="57" y2="57"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="39" y2="39"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="21" y2="21"/>
+<polyline fill="none" opacity="1" points="40,201 321,201 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="68,201 68,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="61" y="219">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="96,201 96,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="89" y="219">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="124,201 124,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="117" y="219">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="152,201 152,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="145" y="219">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="180,201 180,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="173" y="219">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="208,201 208,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="201" y="219">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="236,201 236,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="229" y="219">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="264,201 264,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="257" y="219">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="292,201 292,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="285" y="219">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,21 40,201 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="187">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,183 40,183 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="169">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,165 40,165 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="151">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,147 40,147 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="133">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,129 40,129 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="115">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,111 40,111 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="97">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,93 40,93 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="79">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,75 40,75 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="61">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,57 40,57 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="43">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,39 40,39 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="25">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,21 40,21 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="15" opacity="1" x="445" y="15">
+Subchart #2
+</text>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="183" y2="183"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="165" y2="165"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="147" y2="147"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="129" y2="129"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="111" y2="111"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="93" y2="93"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="75" y2="75"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="57" y2="57"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="39" y2="39"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="21" y2="21"/>
+<polyline fill="none" opacity="1" points="361,201 641,201 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="389,201 389,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="382" y="219">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="417,201 417,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="410" y="219">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="445,201 445,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="438" y="219">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="473,201 473,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="466" y="219">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="501,201 501,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="494" y="219">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="529,201 529,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="522" y="219">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="557,201 557,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="550" y="219">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="585,201 585,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="578" y="219">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="613,201 613,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="606" y="219">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="361,21 361,201 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="187">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="356,183 361,183 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="169">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="356,165 361,165 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="151">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="356,147 361,147 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="133">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="356,129 361,129 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="115">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="356,111 361,111 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="97">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="356,93 361,93 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="79">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="356,75 361,75 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="61">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="356,57 361,57 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="43">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="356,39 361,39 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="25">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="356,21 361,21 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="15" opacity="1" x="124" y="256">
+Subchart #3
+</text>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="423" y2="423"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="405" y2="405"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="387" y2="387"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="369" y2="369"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="351" y2="351"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="333" y2="333"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="315" y2="315"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="297" y2="297"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="279" y2="279"/>
+<line opacity="0.2" stroke="#000000" x1="40" x2="321" y1="262" y2="262"/>
+<polyline fill="none" opacity="1" points="40,441 321,441 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="68,441 68,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="61" y="459">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="96,441 96,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="89" y="459">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="124,441 124,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="117" y="459">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="152,441 152,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="145" y="459">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="180,441 180,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="173" y="459">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="208,441 208,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="201" y="459">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="236,441 236,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="229" y="459">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="264,441 264,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="257" y="459">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="292,441 292,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="285" y="459">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,262 40,441 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="427">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,423 40,423 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="409">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,405 40,405 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="391">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,387 40,387 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="373">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,369 40,369 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="355">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,351 40,351 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="337">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,333 40,333 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="319">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,315 40,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="301">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,297 40,297 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="283">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,279 40,279 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="266">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,262 40,262 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="15" opacity="1" x="444" y="256">
+Subchart #4
+</text>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="423" y2="423"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="405" y2="405"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="387" y2="387"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="369" y2="369"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="351" y2="351"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="333" y2="333"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="315" y2="315"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="297" y2="297"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="279" y2="279"/>
+<line opacity="0.2" stroke="#000000" x1="361" x2="641" y1="262" y2="262"/>
+<polyline fill="none" opacity="1" points="361,441 641,441 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="389,441 389,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="382" y="459">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="417,441 417,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="410" y="459">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="445,441 445,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="438" y="459">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="473,441 473,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="466" y="459">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="501,441 501,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="494" y="459">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="529,441 529,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="522" y="459">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="557,441 557,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="550" y="459">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="585,441 585,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="578" y="459">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="613,441 613,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="606" y="459">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="361,262 361,441 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="427">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="356,423 361,423 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="409">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="356,405 361,405 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="391">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="356,387 361,387 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="373">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="356,369 361,369 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="355">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="356,351 361,351 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="337">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="356,333 361,333 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="319">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="356,315 361,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="301">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="356,297 361,297 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="283">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="356,279 361,279 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="336" y="266">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="356,262 361,262 " stroke="#000000"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Series">Series<a class="anchor-link" href="#Series">&#182;</a></h2>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Unlike most of the plotting libraries, <code>Plotters</code> doesn't actually define any types of chart. All the chart is abstracted to a concept of series. By doing so, you can put a histgoram series and a line plot series into the same chart context.
+The series is actually defined as an iterator of elements, just this.</p>
+<p>This gives <code>Plotters</code> a huge flexibility on drawing charts. You can implement you own types of series and uses the coordinate translation and chart elements.</p>
+<p>There are few types of predefined series, just for convenience:</p>
+<ul>
+<li>Line Series</li>
+<li>Histogram</li>
+<li>Point Series</li>
+</ul>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h3 id="Scatter-Plot">Scatter Plot<a class="anchor-link" href="#Scatter-Plot">&#182;</a></h3>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>First of all, let's generate some random numbers.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[2]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">rand</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;0.6.5&quot;</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">rand</span><span class="p">;</span><span class="w"></span>
+
+<span class="k">use</span><span class="w"> </span><span class="n">rand</span>::<span class="n">distributions</span>::<span class="n">Normal</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">rand</span>::<span class="n">distributions</span>::<span class="n">Distribution</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">rand</span>::<span class="n">thread_rng</span><span class="p">;</span><span class="w"></span>
+<span class="kd">let</span><span class="w"> </span><span class="n">sd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0.13</span><span class="p">;</span><span class="w"></span>
+<span class="kd">let</span><span class="w"> </span><span class="n">random_points</span>:<span class="nb">Vec</span><span class="o">&lt;</span><span class="p">(</span><span class="kt">f64</span><span class="p">,</span><span class="kt">f64</span><span class="p">)</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">norm_dist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Normal</span>::<span class="n">new</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="w"> </span><span class="n">sd</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">x_rand</span><span class="p">,</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">y_rand</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">thread_rng</span><span class="p">(),</span><span class="w"> </span><span class="n">thread_rng</span><span class="p">());</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x_iter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">norm_dist</span><span class="p">.</span><span class="n">sample_iter</span><span class="p">(</span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">x_rand</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">y_iter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">norm_dist</span><span class="p">.</span><span class="n">sample_iter</span><span class="p">(</span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">y_rand</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span><span class="n">x_iter</span><span class="p">.</span><span class="n">zip</span><span class="p">(</span><span class="n">y_iter</span><span class="p">).</span><span class="n">take</span><span class="p">(</span><span class="mi">1000</span><span class="p">).</span><span class="n">collect</span><span class="p">()</span><span class="w"></span>
+<span class="p">};</span><span class="w"></span>
+<span class="n">random_points</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[2]:</div>
+
+
+
+
+<div class="output_text output_subarea output_execute_result">
+<pre>1000</pre>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>It's trivial to draw a scatter plot with <code>Plotters</code>. The only need is, provide a iterator of the elements as series.
+The following example shows how to make a 2D normal distribution figure. The red rectangle is the two sigma area and the red cross is the mean.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[3]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">root</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="s">&quot;Normal Distribution&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mi">1</span><span class="k">f64</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mi">1</span><span class="k">f64</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_x_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_y_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">draw_series</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="n">Circle</span>::<span class="n">new</span><span class="p">((</span><span class="o">*</span><span class="n">x</span><span class="p">,</span><span class="o">*</span><span class="n">y</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">Green</span><span class="p">.</span><span class="n">filled</span><span class="p">())));</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="c1">// You can alawys freely draw on the drawing backend</span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">area</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">plotting_area</span><span class="p">();</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">two_sigma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sd</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2.0</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">area</span><span class="p">.</span><span class="n">draw</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Rectangle</span>::<span class="n">new</span><span class="p">(</span><span class="w"></span>
+<span class="w"> </span><span class="p">[(</span><span class="mf">0.5</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">two_sigma</span><span class="p">,</span><span class="w"> </span><span class="mf">0.5</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">two_sigma</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mf">0.5</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">two_sigma</span><span class="p">,</span><span class="w"> </span><span class="mf">0.5</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">two_sigma</span><span class="p">)],</span><span class="w"> </span>
+<span class="w"> </span><span class="n">Red</span><span class="p">.</span><span class="n">mix</span><span class="p">(</span><span class="mf">0.3</span><span class="p">).</span><span class="n">filled</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">area</span><span class="p">.</span><span class="n">draw</span><span class="p">(</span><span class="o">&amp;</span><span class="n">Cross</span>::<span class="n">new</span><span class="p">((</span><span class="mf">0.5</span><span class="p">,</span><span class="w"> </span><span class="mf">0.5</span><span class="p">),</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">Red</span><span class="p">))</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width:60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[3]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width:60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="244" y="18">
+Normal Distribution
+</text>
+<polyline fill="none" opacity="1" points="40,440 640,440 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="100,440 100,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="93" y="458">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,440 160,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="153" y="458">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,440 220,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="213" y="458">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,440 280,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="273" y="458">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,440 340,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="333" y="458">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,440 400,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="393" y="458">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,440 460,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="453" y="458">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,440 520,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="513" y="458">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,440 580,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="573" y="458">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,24 40,440 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="402">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,398 40,398 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="360">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,356 40,356 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="319">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,315 40,315 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="277">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,273 40,273 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="236">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,232 40,232 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="194">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,190 40,190 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="152">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,148 40,148 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="111">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,107 40,107 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="69">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,65 40,65 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="28">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,24 40,24 " stroke="#000000"/>
+<circle cx="439" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="242" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="178" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="406" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="185" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="405" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="131" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="390" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="238" cy="199" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="429" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="440" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="147" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="439" cy="83" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="352" cy="162" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="442" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="116" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="358" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="211" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="83" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="152" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="157" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="406" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="257" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="195" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="165" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="449" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="370" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="455" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="387" cy="100" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="167" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="228" cy="201" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="147" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="545" cy="115" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="391" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="168" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="141" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="108" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="365" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="468" cy="163" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="240" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="146" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="113" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="527" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="488" cy="158" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="420" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="408" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="438" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="425" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="379" cy="324" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="173" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="430" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="176" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="177" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="182" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="473" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="156" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="430" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="213" cy="89" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="486" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="472" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="457" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="205" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="206" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="410" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="185" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="391" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="159" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="169" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="192" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="489" cy="167" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="390" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="41" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="493" cy="178" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="341" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="138" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="193" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="159" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="193" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="219" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="434" cy="165" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="174" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="493" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="133" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="340" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="391" cy="151" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="197" cy="353" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="446" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="152" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="485" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="425" cy="143" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="408" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="334" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="410" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="179" cy="156" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="211" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="427" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="493" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="161" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="505" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="410" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="112" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="149" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="483" cy="387" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="176" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="453" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="463" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="477" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="381" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="189" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="170" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="408" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="456" cy="173" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="401" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="520" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="494" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="140" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="184" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="253" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="395" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="512" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="144" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="408" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="405" cy="128" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="173" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="131" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="460" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="219" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="338" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="496" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="134" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="443" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="222" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="169" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="182" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="188" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="430" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="157" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="381" cy="201" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="343" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="201" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="407" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="184" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="199" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="460" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="204" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="352" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="241" cy="158" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="231" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="212" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="310" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="163" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="352" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="447" cy="169" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="461" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="471" cy="184" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="160" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="212" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="182" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="257" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="464" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="204" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="436" cy="159" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="400" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="436" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="438" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="437" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="214" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="222" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="425" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="184" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="334" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="189" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="155" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="242" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="201" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="472" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="416" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="109" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="454" cy="188" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="111" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="149" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="171" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="182" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="376" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="545" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="429" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="443" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="280" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="149" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="410" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="280" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="436" cy="160" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="442" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="141" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="488" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="102" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="419" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="321" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="395" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="406" cy="169" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="466" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="458" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="469" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="489" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="210" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="152" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="486" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="333" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="430" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="459" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="152" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="485" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="422" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="110" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="154" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="446" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="441" cy="124" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="131" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="476" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="140" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="462" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="173" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="159" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="321" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="106" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="185" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="375" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="336" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="169" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="115" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="443" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="511" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="181" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="449" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="434" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="424" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="209" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="391" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="132" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="541" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="394" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="450" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="383" cy="137" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="163" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="176" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="372" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="185" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="392" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="493" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="162" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="95" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="185" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="222" cy="146" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="472" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="103" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="167" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="420" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="391" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="207" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="435" cy="363" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="494" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="538" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="358" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="466" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="405" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="209" cy="161" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="424" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="358" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="428" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="140" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="447" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="101" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="436" cy="167" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="123" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="452" cy="161" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="213" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="314" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="341" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="410" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="195" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="431" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="214" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="162" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="460" cy="150" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="437" cy="373" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="461" cy="134" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="390" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="426" cy="165" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="405" cy="188" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="362" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="188" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="444" cy="114" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="458" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="156" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="233" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="441" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="215" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="458" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="501" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="218" cy="299" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="170" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="478" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="393" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="123" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="395" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="112" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="142" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="158" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="440" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="87" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="365" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="176" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="476" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="358" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="424" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="541" cy="378" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="348" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="460" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="124" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="228" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="513" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="148" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="181" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="416" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="129" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="427" cy="130" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="427" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="136" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="365" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="143" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="179" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="98" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="443" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="490" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="390" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="134" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="534" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="163" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="372" cy="158" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="420" cy="121" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="384" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="257" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="421" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="166" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="253" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="368" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="162" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="158" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="160" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="151" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="216" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="199" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="440" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="233" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="314" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="183" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="452" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="199" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="434" cy="361" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="165" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="157" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="144" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="379" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="480" cy="332" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="498" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="478" cy="199" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="381" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="484" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="157" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="439" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="435" cy="102" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="439" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="419" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="154" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="423" cy="382" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="211" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="138" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="438" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="383" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="214" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="231" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="253" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="438" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="421" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="360" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="471" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="401" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="218" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="147" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="155" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="365" cy="173" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="413" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="196" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="424" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="160" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="441" cy="185" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="161" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="416" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="421" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="336" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="210" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="426" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="115" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="434" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="372" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="169" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="384" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="379" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="109" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="218" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="191" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="358" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="393" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="396" cy="136" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<rect fill="#FF0000" height="217" opacity="0.3" stroke="none" width="312" x="184" y="123"/>
+<line opacity="1" stroke="#FF0000" x1="335" x2="345" y1="227" y2="237"/>
+<line opacity="1" stroke="#FF0000" x1="335" x2="345" y1="237" y2="227"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h3 id="Histogram">Histogram<a class="anchor-link" href="#Histogram">&#182;</a></h3>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>We can also have histograms. For histograms, we can use the predefined histogram series struct to build the histogram easily. The following code demonstrate how to create both histogram for X and Y value of <code>random_points</code>.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[4]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">areas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">split_evenly</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">));</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">charts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">vec</span><span class="o">!</span><span class="p">[];</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="c1">// The following code will create a chart context</span>
+<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">area</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">areas</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">zip</span><span class="p">([</span><span class="s">&quot;X&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Y&quot;</span><span class="p">].</span><span class="n">into_iter</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">chart</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">area</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">caption</span><span class="p">(</span><span class="n">format</span><span class="o">!</span><span class="p">(</span><span class="s">&quot;Histogram for {}&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">u32</span><span class="p">..</span><span class="mi">100</span><span class="k">u32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mf">0.5</span><span class="k">f64</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">chart</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_x_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_y_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_labels</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_offset</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_formatter</span><span class="p">(</span><span class="o">&amp;|</span><span class="n">x</span><span class="o">|</span><span class="w"> </span><span class="n">format</span><span class="o">!</span><span class="p">(</span><span class="s">&quot;{:.1}&quot;</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">x</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">f64</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">100.0</span><span class="p">))</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_formatter</span><span class="p">(</span><span class="o">&amp;|</span><span class="n">y</span><span class="o">|</span><span class="w"> </span><span class="n">format</span><span class="o">!</span><span class="p">(</span><span class="s">&quot;{}%&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">y</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">100.0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u32</span><span class="p">))</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">charts</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="n">chart</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span><span class="p">}</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">hist_x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Histogram</span>::<span class="n">vertical</span><span class="p">(</span><span class="o">&amp;</span><span class="n">charts</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">style</span><span class="p">(</span><span class="n">Red</span><span class="p">.</span><span class="n">filled</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">margin</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">data</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">_</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="n">x</span><span class="o">*</span><span class="mf">100.0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="mf">0.01</span><span class="p">)));</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">hist_y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Histogram</span>::<span class="n">vertical</span><span class="p">(</span><span class="o">&amp;</span><span class="n">charts</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">style</span><span class="p">(</span><span class="n">Green</span><span class="p">.</span><span class="n">filled</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">margin</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">data</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">_</span><span class="p">,</span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="n">y</span><span class="o">*</span><span class="mf">100.0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="mf">0.01</span><span class="p">)));</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="n">charts</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="n">draw_series</span><span class="p">(</span><span class="n">hist_x</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span><span class="n">charts</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="n">draw_series</span><span class="p">(</span><span class="n">hist_y</span><span class="p">);</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width:60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[4]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width:60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="259" y="18">
+Histogram for X
+</text>
+<polyline fill="none" opacity="1" points="40,201 641,201 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="40,201 40,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="63" y="219">
+0.0
+</text>
+<polyline fill="none" opacity="1" points="100,201 100,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="123" y="219">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,201 160,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="183" y="219">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,201 220,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="243" y="219">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,201 280,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="303" y="219">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,201 340,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="363" y="219">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,201 400,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="423" y="219">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,201 460,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="483" y="219">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,201 520,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="543" y="219">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,201 580,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="603" y="219">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,27 40,201 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="170">
+10%
+</text>
+<polyline fill="none" opacity="1" points="35,166 40,166 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="135">
+20%
+</text>
+<polyline fill="none" opacity="1" points="35,131 40,131 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="100">
+30%
+</text>
+<polyline fill="none" opacity="1" points="35,96 40,96 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="65">
+40%
+</text>
+<polyline fill="none" opacity="1" points="35,61 40,61 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="31">
+50%
+</text>
+<polyline fill="none" opacity="1" points="35,27 40,27 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="259" y="259">
+Histogram for Y
+</text>
+<polyline fill="none" opacity="1" points="40,441 641,441 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="40,441 40,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="63" y="459">
+0.0
+</text>
+<polyline fill="none" opacity="1" points="100,441 100,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="123" y="459">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="160,441 160,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="183" y="459">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="220,441 220,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="243" y="459">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="280,441 280,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="303" y="459">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="340,441 340,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="363" y="459">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="400,441 400,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="423" y="459">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="460,441 460,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="483" y="459">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="520,441 520,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="543" y="459">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="580,441 580,446 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="603" y="459">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,268 40,441 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="410">
+10%
+</text>
+<polyline fill="none" opacity="1" points="35,406 40,406 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="375">
+20%
+</text>
+<polyline fill="none" opacity="1" points="35,371 40,371 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="341">
+30%
+</text>
+<polyline fill="none" opacity="1" points="35,337 40,337 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="306">
+40%
+</text>
+<polyline fill="none" opacity="1" points="35,302 40,302 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="8" y="272">
+50%
+</text>
+<polyline fill="none" opacity="1" points="35,268 40,268 " stroke="#000000"/>
+<rect fill="#FF0000" height="28" opacity="1" stroke="none" width="6" x="454" y="173"/>
+<rect fill="#FF0000" height="39" opacity="1" stroke="none" width="6" x="442" y="162"/>
+<rect fill="#FF0000" height="74" opacity="1" stroke="none" width="6" x="220" y="127"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="124" y="197"/>
+<rect fill="#FF0000" height="119" opacity="1" stroke="none" width="6" x="370" y="82"/>
+<rect fill="#FF0000" height="115" opacity="1" stroke="none" width="6" x="358" y="86"/>
+<rect fill="#FF0000" height="32" opacity="1" stroke="none" width="6" x="460" y="169"/>
+<rect fill="#FF0000" height="122" opacity="1" stroke="none" width="6" x="346" y="79"/>
+<rect fill="#FF0000" height="74" opacity="1" stroke="none" width="6" x="340" y="127"/>
+<rect fill="#FF0000" height="18" opacity="1" stroke="none" width="6" x="166" y="183"/>
+<rect fill="#FF0000" height="101" opacity="1" stroke="none" width="6" x="316" y="100"/>
+<rect fill="#FF0000" height="70" opacity="1" stroke="none" width="6" x="436" y="131"/>
+<rect fill="#FF0000" height="42" opacity="1" stroke="none" width="6" x="232" y="159"/>
+<rect fill="#FF0000" height="28" opacity="1" stroke="none" width="6" x="202" y="173"/>
+<rect fill="#FF0000" height="18" opacity="1" stroke="none" width="6" x="196" y="183"/>
+<rect fill="#FF0000" height="84" opacity="1" stroke="none" width="6" x="364" y="117"/>
+<rect fill="#FF0000" height="84" opacity="1" stroke="none" width="6" x="352" y="117"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="172" y="190"/>
+<rect fill="#FF0000" height="84" opacity="1" stroke="none" width="6" x="406" y="117"/>
+<rect fill="#FF0000" height="63" opacity="1" stroke="none" width="6" x="412" y="138"/>
+<rect fill="#FF0000" height="7" opacity="1" stroke="none" width="6" x="148" y="194"/>
+<rect fill="#FF0000" height="32" opacity="1" stroke="none" width="6" x="484" y="169"/>
+<rect fill="#FF0000" height="105" opacity="1" stroke="none" width="6" x="334" y="96"/>
+<rect fill="#FF0000" height="25" opacity="1" stroke="none" width="6" x="472" y="176"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="82" y="197"/>
+<rect fill="#FF0000" height="91" opacity="1" stroke="none" width="6" x="400" y="110"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="538" y="190"/>
+<rect fill="#FF0000" height="49" opacity="1" stroke="none" width="6" x="214" y="152"/>
+<rect fill="#FF0000" height="119" opacity="1" stroke="none" width="6" x="310" y="82"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="136" y="197"/>
+<rect fill="#FF0000" height="53" opacity="1" stroke="none" width="6" x="256" y="148"/>
+<rect fill="#FF0000" height="49" opacity="1" stroke="none" width="6" x="244" y="152"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="112" y="197"/>
+<rect fill="#FF0000" height="21" opacity="1" stroke="none" width="6" x="238" y="180"/>
+<rect fill="#FF0000" height="67" opacity="1" stroke="none" width="6" x="286" y="134"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="178" y="190"/>
+<rect fill="#FF0000" height="60" opacity="1" stroke="none" width="6" x="250" y="141"/>
+<rect fill="#FF0000" height="115" opacity="1" stroke="none" width="6" x="322" y="86"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="520" y="197"/>
+<rect fill="#FF0000" height="87" opacity="1" stroke="none" width="6" x="328" y="114"/>
+<rect fill="#FF0000" height="35" opacity="1" stroke="none" width="6" x="208" y="166"/>
+<rect fill="#FF0000" height="60" opacity="1" stroke="none" width="6" x="418" y="141"/>
+<rect fill="#FF0000" height="7" opacity="1" stroke="none" width="6" x="544" y="194"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="496" y="190"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="532" y="197"/>
+<rect fill="#FF0000" height="101" opacity="1" stroke="none" width="6" x="280" y="100"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="154" y="197"/>
+<rect fill="#FF0000" height="94" opacity="1" stroke="none" width="6" x="262" y="107"/>
+<rect fill="#FF0000" height="25" opacity="1" stroke="none" width="6" x="490" y="176"/>
+<rect fill="#FF0000" height="53" opacity="1" stroke="none" width="6" x="424" y="148"/>
+<rect fill="#FF0000" height="14" opacity="1" stroke="none" width="6" x="478" y="187"/>
+<rect fill="#FF0000" height="60" opacity="1" stroke="none" width="6" x="226" y="141"/>
+<rect fill="#FF0000" height="98" opacity="1" stroke="none" width="6" x="304" y="103"/>
+<rect fill="#FF0000" height="77" opacity="1" stroke="none" width="6" x="376" y="124"/>
+<rect fill="#FF0000" height="98" opacity="1" stroke="none" width="6" x="274" y="103"/>
+<rect fill="#FF0000" height="21" opacity="1" stroke="none" width="6" x="448" y="180"/>
+<rect fill="#FF0000" height="87" opacity="1" stroke="none" width="6" x="388" y="114"/>
+<rect fill="#FF0000" height="63" opacity="1" stroke="none" width="6" x="382" y="138"/>
+<rect fill="#FF0000" height="115" opacity="1" stroke="none" width="6" x="292" y="86"/>
+<rect fill="#FF0000" height="63" opacity="1" stroke="none" width="6" x="430" y="138"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="508" y="190"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="526" y="197"/>
+<rect fill="#FF0000" height="21" opacity="1" stroke="none" width="6" x="466" y="180"/>
+<rect fill="#FF0000" height="18" opacity="1" stroke="none" width="6" x="190" y="183"/>
+<rect fill="#FF0000" height="14" opacity="1" stroke="none" width="6" x="184" y="187"/>
+<rect fill="#FF0000" height="4" opacity="1" stroke="none" width="6" x="502" y="197"/>
+<rect fill="#FF0000" height="67" opacity="1" stroke="none" width="6" x="298" y="134"/>
+<rect fill="#FF0000" height="94" opacity="1" stroke="none" width="6" x="394" y="107"/>
+<rect fill="#FF0000" height="49" opacity="1" stroke="none" width="6" x="268" y="152"/>
+<rect fill="#FF0000" height="11" opacity="1" stroke="none" width="6" x="160" y="190"/>
+<rect fill="#00FF00" height="73" opacity="1" stroke="none" width="6" x="430" y="368"/>
+<rect fill="#00FF00" height="94" opacity="1" stroke="none" width="6" x="382" y="347"/>
+<rect fill="#00FF00" height="25" opacity="1" stroke="none" width="6" x="460" y="416"/>
+<rect fill="#00FF00" height="56" opacity="1" stroke="none" width="6" x="442" y="385"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="472" y="423"/>
+<rect fill="#00FF00" height="115" opacity="1" stroke="none" width="6" x="328" y="326"/>
+<rect fill="#00FF00" height="49" opacity="1" stroke="none" width="6" x="412" y="392"/>
+<rect fill="#00FF00" height="14" opacity="1" stroke="none" width="6" x="526" y="427"/>
+<rect fill="#00FF00" height="21" opacity="1" stroke="none" width="6" x="184" y="420"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="508" y="423"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="178" y="434"/>
+<rect fill="#00FF00" height="14" opacity="1" stroke="none" width="6" x="190" y="427"/>
+<rect fill="#00FF00" height="87" opacity="1" stroke="none" width="6" x="316" y="354"/>
+<rect fill="#00FF00" height="90" opacity="1" stroke="none" width="6" x="274" y="351"/>
+<rect fill="#00FF00" height="11" opacity="1" stroke="none" width="6" x="154" y="430"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="142" y="434"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="490" y="434"/>
+<rect fill="#00FF00" height="80" opacity="1" stroke="none" width="6" x="256" y="361"/>
+<rect fill="#00FF00" height="111" opacity="1" stroke="none" width="6" x="376" y="330"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="136" y="437"/>
+<rect fill="#00FF00" height="101" opacity="1" stroke="none" width="6" x="352" y="340"/>
+<rect fill="#00FF00" height="63" opacity="1" stroke="none" width="6" x="406" y="378"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="502" y="434"/>
+<rect fill="#00FF00" height="77" opacity="1" stroke="none" width="6" x="250" y="364"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="532" y="434"/>
+<rect fill="#00FF00" height="115" opacity="1" stroke="none" width="6" x="334" y="326"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="520" y="434"/>
+<rect fill="#00FF00" height="70" opacity="1" stroke="none" width="6" x="298" y="371"/>
+<rect fill="#00FF00" height="56" opacity="1" stroke="none" width="6" x="268" y="385"/>
+<rect fill="#00FF00" height="90" opacity="1" stroke="none" width="6" x="388" y="351"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="6" x="466" y="413"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="118" y="434"/>
+<rect fill="#00FF00" height="25" opacity="1" stroke="none" width="6" x="448" y="416"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="550" y="437"/>
+<rect fill="#00FF00" height="21" opacity="1" stroke="none" width="6" x="226" y="420"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="112" y="437"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="124" y="437"/>
+<rect fill="#00FF00" height="56" opacity="1" stroke="none" width="6" x="424" y="385"/>
+<rect fill="#00FF00" height="39" opacity="1" stroke="none" width="6" x="220" y="402"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="544" y="434"/>
+<rect fill="#00FF00" height="80" opacity="1" stroke="none" width="6" x="310" y="361"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="166" y="437"/>
+<rect fill="#00FF00" height="49" opacity="1" stroke="none" width="6" x="436" y="392"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="202" y="423"/>
+<rect fill="#00FF00" height="35" opacity="1" stroke="none" width="6" x="208" y="406"/>
+<rect fill="#00FF00" height="80" opacity="1" stroke="none" width="6" x="304" y="361"/>
+<rect fill="#00FF00" height="77" opacity="1" stroke="none" width="6" x="400" y="364"/>
+<rect fill="#00FF00" height="11" opacity="1" stroke="none" width="6" x="148" y="430"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="6" x="454" y="413"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="478" y="423"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="160" y="434"/>
+<rect fill="#00FF00" height="77" opacity="1" stroke="none" width="6" x="418" y="364"/>
+<rect fill="#00FF00" height="108" opacity="1" stroke="none" width="6" x="394" y="333"/>
+<rect fill="#00FF00" height="146" opacity="1" stroke="none" width="6" x="346" y="295"/>
+<rect fill="#00FF00" height="80" opacity="1" stroke="none" width="6" x="292" y="361"/>
+<rect fill="#00FF00" height="11" opacity="1" stroke="none" width="6" x="496" y="430"/>
+<rect fill="#00FF00" height="63" opacity="1" stroke="none" width="6" x="262" y="378"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="6" x="214" y="413"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="484" y="423"/>
+<rect fill="#00FF00" height="66" opacity="1" stroke="none" width="6" x="358" y="375"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="610" y="437"/>
+<rect fill="#00FF00" height="25" opacity="1" stroke="none" width="6" x="232" y="416"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="130" y="434"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="6" x="514" y="423"/>
+<rect fill="#00FF00" height="77" opacity="1" stroke="none" width="6" x="286" y="364"/>
+<rect fill="#00FF00" height="59" opacity="1" stroke="none" width="6" x="244" y="382"/>
+<rect fill="#00FF00" height="111" opacity="1" stroke="none" width="6" x="322" y="330"/>
+<rect fill="#00FF00" height="125" opacity="1" stroke="none" width="6" x="364" y="316"/>
+<rect fill="#00FF00" height="101" opacity="1" stroke="none" width="6" x="280" y="340"/>
+<rect fill="#00FF00" height="108" opacity="1" stroke="none" width="6" x="370" y="333"/>
+<rect fill="#00FF00" height="49" opacity="1" stroke="none" width="6" x="238" y="392"/>
+<rect fill="#00FF00" height="118" opacity="1" stroke="none" width="6" x="340" y="323"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h3 id="Combination-of-Histogram-and-Scatter">Combination of Histogram and Scatter<a class="anchor-link" href="#Combination-of-Histogram-and-Scatter">&#182;</a></h3>
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[5]:</div>
+<div class="inner_cell">
+ <div class="input_area">
+<div class=" highlight hl-Rust"><pre><span></span>:<span class="nc">dep</span><span class="w"> </span><span class="n">plotters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;https://github.com/38/plotters&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">default_features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"> </span><span class="n">features</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">&quot;evcxr&quot;</span><span class="p">]</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
+
+<span class="k">extern</span><span class="w"> </span><span class="k">crate</span><span class="w"> </span><span class="n">plotters</span><span class="p">;</span><span class="w"></span>
+<span class="k">use</span><span class="w"> </span><span class="n">plotters</span>::<span class="n">prelude</span>::<span class="o">*</span><span class="p">;</span><span class="w"></span>
+
+<span class="n">evcxr_figure</span><span class="p">((</span><span class="mi">640</span><span class="p">,</span><span class="w"> </span><span class="mi">480</span><span class="p">),</span><span class="w"> </span><span class="o">|</span><span class="n">root</span><span class="o">|</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">root</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">titled</span><span class="p">(</span><span class="s">&quot;Scatter with Histogram Example&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Arial&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">).</span><span class="n">into_font</span><span class="p">())</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">areas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">root</span><span class="p">.</span><span class="n">split_by_breakpoints</span><span class="p">([</span><span class="mi">560</span><span class="p">],</span><span class="w"> </span><span class="p">[</span><span class="mi">80</span><span class="p">]);</span><span class="w"></span>
+
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x_hist_ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">areas</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">u32</span><span class="p">..</span><span class="mi">100</span><span class="k">u32</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mf">0.5</span><span class="k">f64</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">y_hist_ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">areas</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mf">0.5</span><span class="k">f64</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">..</span><span class="mi">100</span><span class="k">u32</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">scatter_ctx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ChartBuilder</span>::<span class="n">on</span><span class="p">(</span><span class="o">&amp;</span><span class="n">areas</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">x_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">y_label_area_size</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">build_ranged</span><span class="p">(</span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mi">1</span><span class="k">f64</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="k">f64</span><span class="p">..</span><span class="mi">1</span><span class="k">f64</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">scatter_ctx</span><span class="p">.</span><span class="n">configure_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_x_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">disable_y_mesh</span><span class="p">()</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">draw</span><span class="p">()</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">scatter_ctx</span><span class="p">.</span><span class="n">draw_series</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="n">Circle</span>::<span class="n">new</span><span class="p">((</span><span class="o">*</span><span class="n">x</span><span class="p">,</span><span class="o">*</span><span class="n">y</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">Green</span><span class="p">.</span><span class="n">filled</span><span class="p">())))</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x_hist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Histogram</span>::<span class="n">vertical</span><span class="p">(</span><span class="o">&amp;</span><span class="n">x_hist_ctx</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">style</span><span class="p">(</span><span class="n">Green</span><span class="p">.</span><span class="n">filled</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">margin</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">data</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">_</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="n">x</span><span class="o">*</span><span class="mf">100.0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="mf">0.01</span><span class="p">)));</span><span class="w"></span>
+<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">y_hist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Histogram</span>::<span class="n">horizental</span><span class="p">(</span><span class="o">&amp;</span><span class="n">y_hist_ctx</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">style</span><span class="p">(</span><span class="n">Green</span><span class="p">.</span><span class="n">filled</span><span class="p">())</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">margin</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"></span>
+<span class="w"> </span><span class="p">.</span><span class="n">data</span><span class="p">(</span><span class="n">random_points</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">_</span><span class="p">,</span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="n">y</span><span class="o">*</span><span class="mf">100.0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="mf">0.01</span><span class="p">)));</span><span class="w"></span>
+<span class="w"> </span><span class="n">x_hist_ctx</span><span class="p">.</span><span class="n">draw_series</span><span class="p">(</span><span class="n">x_hist</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span><span class="n">y_hist_ctx</span><span class="p">.</span><span class="n">draw_series</span><span class="p">(</span><span class="n">y_hist</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
+<span class="w"> </span>
+<span class="w"> </span><span class="nb">Ok</span><span class="p">(())</span><span class="w"></span>
+<span class="p">}).</span><span class="n">style</span><span class="p">(</span><span class="s">&quot;width:60%&quot;</span><span class="p">)</span><span class="w"></span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+
+<div class="prompt output_prompt">Out[5]:</div>
+
+
+
+<div class="output_html rendered_html output_subarea output_execute_result">
+<div style="width:60%"><svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
+<text fill="#000000" font-famliy="Arial" font-size="20" opacity="1" x="193" y="18">
+Scatter with Histogram Example
+</text>
+<polyline fill="none" opacity="1" points="40,440 560,440 " stroke="#000000"/>
+<polyline fill="none" opacity="1" points="92,440 92,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="85" y="458">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="144,440 144,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="137" y="458">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="196,440 196,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="189" y="458">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="248,440 248,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="241" y="458">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="300,440 300,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="293" y="458">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="352,440 352,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="345" y="458">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="404,440 404,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="397" y="458">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="456,440 456,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="449" y="458">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="508,440 508,445 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="501" y="458">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="40,107 40,440 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="410">
+0.1
+</text>
+<polyline fill="none" opacity="1" points="35,406 40,406 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="377">
+0.2
+</text>
+<polyline fill="none" opacity="1" points="35,373 40,373 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="344">
+0.3
+</text>
+<polyline fill="none" opacity="1" points="35,340 40,340 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="310">
+0.4
+</text>
+<polyline fill="none" opacity="1" points="35,306 40,306 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="277">
+0.5
+</text>
+<polyline fill="none" opacity="1" points="35,273 40,273 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="244">
+0.6
+</text>
+<polyline fill="none" opacity="1" points="35,240 40,240 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="210">
+0.7
+</text>
+<polyline fill="none" opacity="1" points="35,206 40,206 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="177">
+0.8
+</text>
+<polyline fill="none" opacity="1" points="35,173 40,173 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="144">
+0.9
+</text>
+<polyline fill="none" opacity="1" points="35,140 40,140 " stroke="#000000"/>
+<text fill="#000000" font-famliy="Arial" font-size="12" opacity="1" x="15" y="111">
+1.0
+</text>
+<polyline fill="none" opacity="1" points="35,107 40,107 " stroke="#000000"/>
+<circle cx="386" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="215" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="345" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="212" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="242" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="154" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="329" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="193" cy="333" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="181" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="188" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="78" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="137" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="228" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="174" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="394" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="384" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="341" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="178" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="478" cy="180" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="340" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="210" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="151" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="253" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="174" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="359" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="241" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="321" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="411" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="213" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="241" cy="204" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="178" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="462" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="428" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="342" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="347" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="349" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="158" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="328" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="159" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="415" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="218" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="182" cy="329" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="346" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="190" cy="159" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="427" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="200" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="183" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="184" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="334" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="166" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="345" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="324" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="172" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="299" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="429" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="332" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="346" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="120" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="357" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="335" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="173" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="143" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="172" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="333" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="331" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="195" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="381" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="240" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="156" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="194" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="360" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="176" cy="370" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="238" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="392" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="200" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="426" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="355" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="160" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="210" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="189" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="240" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="329" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="145" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="443" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="134" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="423" cy="398" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="310" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="345" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="398" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="406" cy="311" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="419" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="152" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="359" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="401" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="456" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="238" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="449" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="197" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="358" cy="328" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="257" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="190" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="293" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="218" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="204" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="195" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="229" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="358" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="435" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="310" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="220" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="208" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="240" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="226" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="362" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="358" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="182" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="370" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="214" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="222" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="206" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="189" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="336" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="146" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="393" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="405" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="231" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="333" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="189" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="163" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="228" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="408" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="204" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="182" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="383" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="352" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="383" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="346" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="384" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="190" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="210" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="374" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="165" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="355" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="338" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="324" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="295" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="178" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="333" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="215" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="415" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="327" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="399" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="176" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="294" cy="233" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="200" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="477" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="377" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="207" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="231" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="384" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="257" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="127" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="209" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="428" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="240" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="332" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="193" cy="228" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="277" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="412" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="429" cy="342" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="187" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="344" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="426" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="354" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="378" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="403" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="216" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="304" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="425" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="344" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="200" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="371" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="341" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="193" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="392" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="387" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="209" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="341" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="418" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="379" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="406" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="225" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="238" cy="215" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="220" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="172" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="202" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="388" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="357" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="364" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="152" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="105" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="248" cy="344" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="448" cy="299" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="208" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="395" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="381" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="186" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="328" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="287" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="345" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="193" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="474" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="395" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="328" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="253" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="321" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="165" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="284" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="222" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="432" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="281" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="164" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="342" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="205" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="414" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="299" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="185" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="205" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="208" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="378" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="433" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="471" cy="252" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="196" cy="374" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="270" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="409" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="357" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="186" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="314" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="376" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="200" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="393" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="168" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="327" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="383" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="189" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="283" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="246" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="302" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="220" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="268" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="174" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="243" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="379" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="208" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="191" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="145" cy="310" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="208" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="271" cy="334" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="384" cy="386" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="343" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="356" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="294" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="313" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="330" cy="378" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="232" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="168" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="390" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="319" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="207" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="387" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="192" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="340" cy="341" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="402" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="439" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="194" cy="327" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="237" cy="219" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="153" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="320" cy="323" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="420" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="346" cy="330" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="240" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="217" cy="186" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="347" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="177" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="387" cy="359" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="157" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="263" cy="380" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="327" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="276" cy="329" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="181" cy="229" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="417" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="372" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="474" cy="390" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="366" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="265" cy="238" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="404" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="286" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="187" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="203" cy="246" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="450" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="194" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="274" cy="300" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="117" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="288" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="306" cy="249" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="309" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="192" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="376" cy="321" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="224" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="269" cy="266" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="250" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="260" cy="202" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="160" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="166" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="204" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="262" cy="322" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="210" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="389" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="290" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="430" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="344" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="195" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="468" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="181" cy="218" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="296" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="219" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="369" cy="184" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="228" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="326" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="177" cy="270" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="251" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="202" cy="303" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="149" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="230" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="382" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="237" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="275" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="261" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="307" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="209" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="192" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="312" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="233" cy="289" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="255" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="207" cy="306" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="339" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="234" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="397" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="245" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="376" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="305" cy="220" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="239" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="223" cy="214" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="285" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="197" cy="203" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="333" cy="263" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="329" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="421" cy="353" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="437" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="303" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="380" cy="259" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="420" cy="247" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="393" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="425" cy="253" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="316" cy="213" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="170" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="233" cy="313" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="198" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="386" cy="307" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="295" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="238" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="297" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="254" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="368" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="211" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="372" cy="393" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="367" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="349" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="188" cy="305" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="312" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="280" cy="198" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="254" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="292" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="336" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="326" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="191" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="349" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="282" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="291" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="206" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="309" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="224" cy="337" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="385" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="376" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="282" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="361" cy="244" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="299" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="413" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="256" cy="340" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="352" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="194" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="206" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="339" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="233" cy="212" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="226" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="252" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="227" cy="221" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="273" cy="250" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="279" cy="318" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="363" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="300" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="271" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="298" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="261" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="373" cy="277" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="318" cy="227" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="351" cy="275" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="273" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="286" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="342" cy="216" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="272" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="288" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="337" cy="279" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="310" cy="280" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="285" cy="315" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="388" cy="235" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="225" cy="217" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="311" cy="222" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="242" cy="248" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="353" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="366" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="205" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="291" cy="260" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="329" cy="320" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="370" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="236" cy="276" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="354" cy="299" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="244" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="322" cy="357" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="315" cy="256" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="341" cy="255" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="301" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="201" cy="293" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="350" cy="267" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="375" cy="242" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="355" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="325" cy="316" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="221" cy="179" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="314" cy="304" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="324" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="230" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="308" cy="258" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="382" cy="348" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="249" cy="319" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="328" cy="292" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="266" cy="239" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="267" cy="223" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="259" cy="287" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="243" cy="245" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="200" cy="296" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="335" cy="262" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="199" cy="265" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="332" cy="264" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="338" cy="341" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="334" cy="308" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="331" cy="332" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="242" cy="175" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="194" cy="236" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="235" cy="241" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="272" cy="278" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="269" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="289" cy="317" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="251" cy="325" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="179" cy="281" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="317" cy="290" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="323" cy="344" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="264" cy="374" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="362" cy="268" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="345" cy="232" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="278" cy="302" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="284" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="234" cy="283" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="360" cy="298" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="348" cy="197" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="247" cy="301" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="258" cy="274" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<circle cx="297" cy="257" fill="#00FF00" opacity="1" r="3" stroke="none"/>
+<rect fill="#00FF00" height="10" opacity="1" stroke="none" width="5" x="393" y="97"/>
+<rect fill="#00FF00" height="39" opacity="1" stroke="none" width="5" x="357" y="68"/>
+<rect fill="#00FF00" height="29" opacity="1" stroke="none" width="5" x="378" y="78"/>
+<rect fill="#00FF00" height="47" opacity="1" stroke="none" width="5" x="248" y="60"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="440" y="105"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="461" y="105"/>
+<rect fill="#00FF00" height="36" opacity="1" stroke="none" width="5" x="331" y="71"/>
+<rect fill="#00FF00" height="12" opacity="1" stroke="none" width="5" x="430" y="95"/>
+<rect fill="#00FF00" height="29" opacity="1" stroke="none" width="5" x="336" y="78"/>
+<rect fill="#00FF00" height="48" opacity="1" stroke="none" width="6" x="294" y="59"/>
+<rect fill="#00FF00" height="53" opacity="1" stroke="none" width="5" x="284" y="54"/>
+<rect fill="#00FF00" height="8" opacity="1" stroke="none" width="5" x="175" y="99"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="476" y="103"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="5" x="201" y="79"/>
+<rect fill="#00FF00" height="23" opacity="1" stroke="none" width="6" x="190" y="84"/>
+<rect fill="#00FF00" height="24" opacity="1" stroke="none" width="5" x="227" y="83"/>
+<rect fill="#00FF00" height="10" opacity="1" stroke="none" width="5" x="409" y="97"/>
+<rect fill="#00FF00" height="34" opacity="1" stroke="none" width="5" x="300" y="73"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="123" y="105"/>
+<rect fill="#00FF00" height="45" opacity="1" stroke="none" width="6" x="242" y="62"/>
+<rect fill="#00FF00" height="32" opacity="1" stroke="none" width="5" x="383" y="75"/>
+<rect fill="#00FF00" height="55" opacity="1" stroke="none" width="5" x="326" y="52"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="5" x="367" y="79"/>
+<rect fill="#00FF00" height="47" opacity="1" stroke="none" width="5" x="279" y="60"/>
+<rect fill="#00FF00" height="18" opacity="1" stroke="none" width="5" x="388" y="89"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="5" x="419" y="100"/>
+<rect fill="#00FF00" height="39" opacity="1" stroke="none" width="5" x="310" y="68"/>
+<rect fill="#00FF00" height="39" opacity="1" stroke="none" width="6" x="320" y="68"/>
+<rect fill="#00FF00" height="8" opacity="1" stroke="none" width="5" x="170" y="99"/>
+<rect fill="#00FF00" height="15" opacity="1" stroke="none" width="5" x="404" y="92"/>
+<rect fill="#00FF00" height="44" opacity="1" stroke="none" width="6" x="346" y="63"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="159" y="102"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="5" x="133" y="103"/>
+<rect fill="#00FF00" height="20" opacity="1" stroke="none" width="5" x="206" y="87"/>
+<rect fill="#00FF00" height="55" opacity="1" stroke="none" width="5" x="274" y="52"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="154" y="102"/>
+<rect fill="#00FF00" height="53" opacity="1" stroke="none" width="5" x="258" y="54"/>
+<rect fill="#00FF00" height="42" opacity="1" stroke="none" width="5" x="352" y="65"/>
+<rect fill="#00FF00" height="40" opacity="1" stroke="none" width="5" x="289" y="67"/>
+<rect fill="#00FF00" height="23" opacity="1" stroke="none" width="5" x="237" y="84"/>
+<rect fill="#00FF00" height="8" opacity="1" stroke="none" width="5" x="149" y="99"/>
+<rect fill="#00FF00" height="31" opacity="1" stroke="none" width="5" x="253" y="76"/>
+<rect fill="#00FF00" height="34" opacity="1" stroke="none" width="5" x="196" y="73"/>
+<rect fill="#00FF00" height="16" opacity="1" stroke="none" width="5" x="185" y="91"/>
+<rect fill="#00FF00" height="24" opacity="1" stroke="none" width="6" x="372" y="83"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="6" x="138" y="105"/>
+<rect fill="#00FF00" height="15" opacity="1" stroke="none" width="6" x="424" y="92"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="435" y="102"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="102" y="105"/>
+<rect fill="#00FF00" height="13" opacity="1" stroke="none" width="6" x="398" y="94"/>
+<rect fill="#00FF00" height="53" opacity="1" stroke="none" width="5" x="315" y="54"/>
+<rect fill="#00FF00" height="28" opacity="1" stroke="none" width="5" x="222" y="79"/>
+<rect fill="#00FF00" height="13" opacity="1" stroke="none" width="5" x="180" y="94"/>
+<rect fill="#00FF00" height="12" opacity="1" stroke="none" width="5" x="414" y="95"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="6" x="112" y="105"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="76" y="105"/>
+<rect fill="#00FF00" height="29" opacity="1" stroke="none" width="5" x="362" y="78"/>
+<rect fill="#00FF00" height="7" opacity="1" stroke="none" width="6" x="164" y="100"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="466" y="105"/>
+<rect fill="#00FF00" height="40" opacity="1" stroke="none" width="5" x="341" y="67"/>
+<rect fill="#00FF00" height="44" opacity="1" stroke="none" width="5" x="232" y="63"/>
+<rect fill="#00FF00" height="23" opacity="1" stroke="none" width="6" x="216" y="84"/>
+<rect fill="#00FF00" height="2" opacity="1" stroke="none" width="5" x="456" y="105"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="144" y="102"/>
+<rect fill="#00FF00" height="56" opacity="1" stroke="none" width="5" x="305" y="51"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="445" y="102"/>
+<rect fill="#00FF00" height="31" opacity="1" stroke="none" width="5" x="263" y="76"/>
+<rect fill="#00FF00" height="10" opacity="1" stroke="none" width="5" x="211" y="97"/>
+<rect fill="#00FF00" height="45" opacity="1" stroke="none" width="6" x="268" y="62"/>
+<rect fill="#00FF00" height="5" opacity="1" stroke="none" width="5" x="471" y="102"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="35" x="560" y="236"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="35" x="560" y="226"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="28" x="560" y="313"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="40" x="560" y="283"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="30" x="560" y="260"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="12" x="560" y="340"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="35" x="560" y="300"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="52" x="560" y="276"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="36" x="560" y="290"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="46" x="560" y="263"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="17" x="560" y="336"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="35" x="560" y="320"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="8" x="560" y="173"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="28" x="560" y="233"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="1" x="560" y="120"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="3" x="560" y="386"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="43" x="560" y="246"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="8" x="560" y="176"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="4" x="560" y="183"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="52" x="560" y="273"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="1" x="560" y="153"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="180"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="22" x="560" y="230"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="33" x="560" y="220"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="32" x="560" y="293"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="1" x="560" y="396"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="49" x="560" y="240"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="9" x="560" y="333"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="8" x="560" y="346"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="22" x="560" y="326"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="36" x="560" y="296"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="41" x="560" y="306"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="370"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="25" x="560" y="310"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="41" x="560" y="243"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="3" x="560" y="186"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="1" x="560" y="366"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="11" x="560" y="203"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="3" x="560" y="156"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="393"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="6" x="560" y="166"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="51" x="560" y="280"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="4" x="560" y="376"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="12" x="560" y="200"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="170"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="11" x="560" y="330"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="36" x="560" y="286"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="25" x="560" y="223"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="67" x="560" y="266"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="46" x="560" y="303"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="49" x="560" y="253"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="54" x="560" y="270"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="1" x="560" y="383"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="360"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="27" x="560" y="323"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="9" x="560" y="356"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="51" x="560" y="250"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="6" x="560" y="353"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="380"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="16" x="560" y="343"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="3" x="560" y="163"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="22" x="560" y="216"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="11" x="560" y="210"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="12" x="560" y="206"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="1" x="560" y="390"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="8" x="560" y="190"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="8" x="560" y="193"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="57" x="560" y="256"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="8" x="560" y="196"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="25" x="560" y="213"/>
+<rect fill="#00FF00" height="3" opacity="1" stroke="none" width="4" x="560" y="373"/>
+<rect fill="#00FF00" height="4" opacity="1" stroke="none" width="36" x="560" y="316"/>
+</svg></div>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+ </div>
+ </div>
+</body>
+
+
+
+
+</html>
diff --git a/plotters-doc-data/evcxr-jupyter-integration.ipynb b/plotters-doc-data/evcxr-jupyter-integration.ipynb
new file mode 100644
index 0000000..c61cd8e
--- /dev/null
+++ b/plotters-doc-data/evcxr-jupyter-integration.ipynb
@@ -0,0 +1,9354 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Plotters Tutorial with Jupyter"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This is a interactive tutorial for [`Plotters`](https://github.com/38/plotters) drawing library. If you are looking at the static HTML version and want to try the interactive version. Please follow the steps:\n",
+ "\n",
+ "#### For Ubuntu/Debian users\n",
+ "\n",
+ "```bash\n",
+ "# Install Jupyter notebook \n",
+ "sudo apt install libzmq3-dev jupyter-notebook\n",
+ "cargo install evcxr_jupyter\n",
+ "evcxr_jupyter --install\n",
+ "# Get the notebook\n",
+ "git clone https://github.com/38/plotters-doc-data\n",
+ "cd plotteres-doc-data\n",
+ "jupyter notebook\n",
+ "```\n",
+ "\n",
+ "#### For OSX users\n",
+ "\n",
+ "```bash\n",
+ "# Install Jupyter notebook \n",
+ "brew install zeromq pkg-config\n",
+ "cargo install evcxr_jupyter\n",
+ "evcxr_jupyter --install\n",
+ "# Get the notebook\n",
+ "git clone https://github.com/38/plotters-doc-data\n",
+ "cd plotteres-doc-data\n",
+ "jupyter notebook\n",
+ "```\n",
+ "\n",
+ "You can also download the latest notebook from [https://raw.githubusercontent.com/38/plotters-doc-data/master/evcxr-jupyter-integration.ipynb](https://raw.githubusercontent.com/38/plotters-doc-data/master/evcxr-jupyter-integration.ipynb), thus you don't have to clone the entire data repo."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Get Started"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In order to use `Plotters` in `jupyter-evcxr`, you need both Jupyter and evcxr installed.\n",
+ "Check [https://github.com/google/evcxr](https://github.com/google/evcxr) for the instructions.\n",
+ "\n",
+ "To use Plotters with `jupyter-evcxr`, you need to import it using the following code:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Because `evcxr` uses only SVG images, so we don't need other types of backend. So we should put\n",
+ "\n",
+ "`default_features = false, features = [\"evcxr\"]`\n",
+ "\n",
+ "Make the compilation faster. Since `evcxr` shares all the artifacts among cells, after the first time we have `plotters` compiled, it should be faster after."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Plotters evcxr integration overview"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To use plotters, the most convenient way is importing everything defined in the `prelude` module.\n",
+ "It will import `evcxr_figure` function for `evcxr` integration. \n",
+ "\n",
+ "*Note: Currently evcxr doesn't work with nightly rust, so please make sure you are using a stable rust*"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"\"><svg viewBox=\"0 0 300 10\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<rect fill=\"#0000FF\" height=\"10\" opacity=\"1\" stroke=\"none\" width=\"300\" x=\"0\" y=\"0\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "// Import all the plotters prelude functions\n",
+ "use plotters::prelude::*;\n",
+ "// To create a figure that can be displayed in Jupyter notebook, use evcxr_figure function.\n",
+ "// The first param is the resolution of the figure.\n",
+ "// The second param is the closure that performes the drawing.\n",
+ "evcxr_figure((300, 10), |root| {\n",
+ " // Do the drawings\n",
+ " root.fill(&BLUE)?;\n",
+ " // Tell plotters that everything is ok\n",
+ " Ok(())\n",
+ "})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Hello World"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"\"><svg viewBox=\"0 0 320 50\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<rect fill=\"#00FF00\" height=\"50\" opacity=\"1\" stroke=\"none\" width=\"320\" x=\"0\" y=\"0\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"15\" y=\"28\">\n",
+ "Hello World from Plotters!\n",
+ "</text>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "\n",
+ "evcxr_figure((320,50), |root| {\n",
+ " root.fill(&GREEN)?;\n",
+ " root.draw(&Text::new(\"Hello World from Plotters!\", (15, 15), (\"Arial\", 20).into_font()))?;\n",
+ " Ok(())\n",
+ "})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Sub- Drawing Areas"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "One of the very important features is, `Plotters` allows drawing multiple charts in a single figure. And this is done by having sub-drawing-areas. The root drawing area is able to be splitted into smaller drawing areas, and you can always do more fine-grained splits as well."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 200px\"><svg viewBox=\"0 0 4800 4800\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<rect fill=\"#000000\" height=\"4800\" opacity=\"1\" stroke=\"none\" width=\"4800\" x=\"0\" y=\"0\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"533\" opacity=\"1\" stroke=\"none\" width=\"533\" x=\"533\" y=\"533\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"2313\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"533\" opacity=\"1\" stroke=\"none\" width=\"534\" x=\"2134\" y=\"533\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"2313\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"21\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"60\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"79\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"138\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"177\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"198\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"237\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"256\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"315\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"373\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"413\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"434\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"492\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"533\" opacity=\"1\" stroke=\"none\" width=\"534\" x=\"3734\" y=\"533\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"554\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"593\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"612\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"671\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"710\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"731\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"770\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"789\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"848\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"906\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"946\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"967\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1025\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1085\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"1125\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1144\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1205\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"1245\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1264\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"1304\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1325\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1383\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1442\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"1482\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1503\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1561\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"2313\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"534\" opacity=\"1\" stroke=\"none\" width=\"533\" x=\"533\" y=\"2134\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"2313\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"1600\" opacity=\"1\" stroke=\"none\" width=\"1600\" x=\"1601\" y=\"1601\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1622\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"1661\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1680\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1739\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"1778\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1799\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"1838\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1857\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1916\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"1974\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2014\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2035\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2093\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"2313\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"534\" opacity=\"1\" stroke=\"none\" width=\"534\" x=\"3734\" y=\"2134\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2153\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2193\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2212\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2273\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"2313\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2332\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2372\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2393\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2451\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2510\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2550\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2571\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2629\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2689\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2728\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2747\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2806\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"2845\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2866\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"2905\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2924\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"2983\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3041\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3081\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3102\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3160\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"534\" opacity=\"1\" stroke=\"none\" width=\"533\" x=\"533\" y=\"3734\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"177\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"60\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"21\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"79\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"138\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"237\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"198\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"256\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"315\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"413\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"373\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"434\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"492\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"710\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"593\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"554\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"612\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"671\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"770\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"731\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"789\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"848\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"946\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"906\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"967\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1025\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"1245\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1125\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1085\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1144\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1205\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1304\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1264\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1325\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1383\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"1482\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1442\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1503\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1561\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"2313\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"534\" opacity=\"1\" stroke=\"none\" width=\"534\" x=\"2134\" y=\"3734\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"1778\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1661\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1622\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1680\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1739\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"1838\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"1799\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1857\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1916\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2014\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"1974\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2035\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2093\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"2313\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2193\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2153\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2212\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2273\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2372\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2332\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2393\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2451\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"2550\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2510\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2571\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2629\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"2845\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2728\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2689\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2747\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2806\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"2905\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"2866\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2924\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"2983\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3081\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3041\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3102\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3160\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3222\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3261\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3280\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3339\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"3378\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3399\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3438\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3457\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3516\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3574\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3614\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3635\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3693\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"534\" opacity=\"1\" stroke=\"none\" width=\"534\" x=\"3734\" y=\"3734\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3753\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3793\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3812\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3873\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"178\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"3913\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3932\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"3972\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"3993\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4051\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4110\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"4150\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4171\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4229\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"3378\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3261\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3222\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3280\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3339\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3438\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3399\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3457\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3516\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3614\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3574\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3635\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3693\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"178\" x=\"3913\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"3793\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3753\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3812\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3873\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"3972\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"3932\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"3993\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4051\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4150\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4110\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4171\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4229\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4289\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"4328\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4347\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4406\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"177\" opacity=\"1\" stroke=\"none\" width=\"177\" x=\"4445\" y=\"4445\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4466\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"4505\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4524\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4583\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4328\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4289\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4347\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4406\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"4505\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4466\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4524\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4583\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4641\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"60\" x=\"4681\" y=\"4681\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4702\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4641\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"4702\" y=\"4760\"/>\n",
+ "<rect fill=\"#FFFFFF\" height=\"19\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"4760\" y=\"4760\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "use plotters::coord::Shift;\n",
+ "pub fn sierpinski_carpet(\n",
+ " depth: u32, \n",
+ " drawing_area: &DrawingArea<SVGBackend, Shift>) \n",
+ "-> Result<(), Box<dyn std::error::Error>> {\n",
+ " if depth > 0 {\n",
+ " let sub_areas = drawing_area.split_evenly((3,3));\n",
+ " for (idx, sub_area) in (0..).zip(sub_areas.iter()) {\n",
+ " if idx == 4 {\n",
+ " sub_area.fill(&WHITE)?;\n",
+ " } else {\n",
+ " sierpinski_carpet(depth - 1, sub_area)?;\n",
+ " }\n",
+ " }\n",
+ " }\n",
+ " Ok(())\n",
+ "}\n",
+ "evcxr_figure((4800,4800), |root| {\n",
+ " root.fill(&BLACK)?;\n",
+ " sierpinski_carpet(5, &root)\n",
+ "}).style(\"width: 200px\") /* You can add CSS style to the result */\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Chart Context"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "`Plotters` is designed for drawing charts, plots, etc. This example demonstrate how to use `Plotters` chart specific APIs to draw a chart, including, labels, axis, meshes, etc. To draw a chart on the drawin area, you need to create a chart context and do some configuration."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width:60%\"><svg viewBox=\"0 0 640 240\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"207\" y=\"18\">\n",
+ "Hello Plotters Chart Context!\n",
+ "</text>\n",
+ "<circle cx=\"64\" cy=\"218\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"128\" cy=\"196\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"192\" cy=\"175\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"256\" cy=\"153\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"320\" cy=\"132\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"384\" cy=\"110\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"448\" cy=\"88\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"512\" cy=\"67\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "<circle cx=\"576\" cy=\"45\" fill=\"none\" opacity=\"1\" r=\"5\" stroke=\"#FF0000\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 240), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Hello Plotters Chart Context!\", (\"Arial\", 20).into_font())\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ " // Then we can draw a series on it!\n",
+ " chart.draw_series((1..10).map(|x|{\n",
+ " let x = x as f32/10.0;\n",
+ " Circle::new((x,x), 5, &RED)\n",
+ " }))?;\n",
+ " Ok(())\n",
+ "}).style(\"width:60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Adding Common Chart Components "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can also make `Plotters` draws common components for us, such as, meshes, axis, legend. In this section, we demonstrate how to do that.\n",
+ "\n",
+ "The following code shows how we add mesh to the chart."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"222\" y=\"18\">\n",
+ "Chart Context with Mesh\n",
+ "</text>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"6\" x2=\"6\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"12\" x2=\"12\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"19\" x2=\"19\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"25\" x2=\"25\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"32\" x2=\"32\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"38\" x2=\"38\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"44\" x2=\"44\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"51\" x2=\"51\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"57\" x2=\"57\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"64\" x2=\"64\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"70\" x2=\"70\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"76\" x2=\"76\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"83\" x2=\"83\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"89\" x2=\"89\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"96\" x2=\"96\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"102\" x2=\"102\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"108\" x2=\"108\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"115\" x2=\"115\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"121\" x2=\"121\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"128\" x2=\"128\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"134\" x2=\"134\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"140\" x2=\"140\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"147\" x2=\"147\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"153\" x2=\"153\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"160\" x2=\"160\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"166\" x2=\"166\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"172\" x2=\"172\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"179\" x2=\"179\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"185\" x2=\"185\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"192\" x2=\"192\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"198\" x2=\"198\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"204\" x2=\"204\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"211\" x2=\"211\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"217\" x2=\"217\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"224\" x2=\"224\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"230\" x2=\"230\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"236\" x2=\"236\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"243\" x2=\"243\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"249\" x2=\"249\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"256\" x2=\"256\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"262\" x2=\"262\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"268\" x2=\"268\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"275\" x2=\"275\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"281\" x2=\"281\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"288\" x2=\"288\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"294\" x2=\"294\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"300\" x2=\"300\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"307\" x2=\"307\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"313\" x2=\"313\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"320\" x2=\"320\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"326\" x2=\"326\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"332\" x2=\"332\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"339\" x2=\"339\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"345\" x2=\"345\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"352\" x2=\"352\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"358\" x2=\"358\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"364\" x2=\"364\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"371\" x2=\"371\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"377\" x2=\"377\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"384\" x2=\"384\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"390\" x2=\"390\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"396\" x2=\"396\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"403\" x2=\"403\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"409\" x2=\"409\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"416\" x2=\"416\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"422\" x2=\"422\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"428\" x2=\"428\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"435\" x2=\"435\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"441\" x2=\"441\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"448\" x2=\"448\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"454\" x2=\"454\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"460\" x2=\"460\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"467\" x2=\"467\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"473\" x2=\"473\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"480\" x2=\"480\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"486\" x2=\"486\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"492\" x2=\"492\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"499\" x2=\"499\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"505\" x2=\"505\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"512\" x2=\"512\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"518\" x2=\"518\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"524\" x2=\"524\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"531\" x2=\"531\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"537\" x2=\"537\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"544\" x2=\"544\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"550\" x2=\"550\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"556\" x2=\"556\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"563\" x2=\"563\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"569\" x2=\"569\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"576\" x2=\"576\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"582\" x2=\"582\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"588\" x2=\"588\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"595\" x2=\"595\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"601\" x2=\"601\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"608\" x2=\"608\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"614\" x2=\"614\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"620\" x2=\"620\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"627\" x2=\"627\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"633\" x2=\"633\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"475\" y2=\"475\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"470\" y2=\"470\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"466\" y2=\"466\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"461\" y2=\"461\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"457\" y2=\"457\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"452\" y2=\"452\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"448\" y2=\"448\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"443\" y2=\"443\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"438\" y2=\"438\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"434\" y2=\"434\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"429\" y2=\"429\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"425\" y2=\"425\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"420\" y2=\"420\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"416\" y2=\"416\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"411\" y2=\"411\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"407\" y2=\"407\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"402\" y2=\"402\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"397\" y2=\"397\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"393\" y2=\"393\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"388\" y2=\"388\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"384\" y2=\"384\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"379\" y2=\"379\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"375\" y2=\"375\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"370\" y2=\"370\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"366\" y2=\"366\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"361\" y2=\"361\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"352\" y2=\"352\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"347\" y2=\"347\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"343\" y2=\"343\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"338\" y2=\"338\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"334\" y2=\"334\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"329\" y2=\"329\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"324\" y2=\"324\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"320\" y2=\"320\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"311\" y2=\"311\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"306\" y2=\"306\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"302\" y2=\"302\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"297\" y2=\"297\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"293\" y2=\"293\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"288\" y2=\"288\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"283\" y2=\"283\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"279\" y2=\"279\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"274\" y2=\"274\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"270\" y2=\"270\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"265\" y2=\"265\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"261\" y2=\"261\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"256\" y2=\"256\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"252\" y2=\"252\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"247\" y2=\"247\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"242\" y2=\"242\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"238\" y2=\"238\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"233\" y2=\"233\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"229\" y2=\"229\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"224\" y2=\"224\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"220\" y2=\"220\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"215\" y2=\"215\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"210\" y2=\"210\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"206\" y2=\"206\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"201\" y2=\"201\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"197\" y2=\"197\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"192\" y2=\"192\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"188\" y2=\"188\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"183\" y2=\"183\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"179\" y2=\"179\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"174\" y2=\"174\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"169\" y2=\"169\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"165\" y2=\"165\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"160\" y2=\"160\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"156\" y2=\"156\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"151\" y2=\"151\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"147\" y2=\"147\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"142\" y2=\"142\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"138\" y2=\"138\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"133\" y2=\"133\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"128\" y2=\"128\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"124\" y2=\"124\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"119\" y2=\"119\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"115\" y2=\"115\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"110\" y2=\"110\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"106\" y2=\"106\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"101\" y2=\"101\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"96\" y2=\"96\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"92\" y2=\"92\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"87\" y2=\"87\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"83\" y2=\"83\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"78\" y2=\"78\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"74\" y2=\"74\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"69\" y2=\"69\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"60\" y2=\"60\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"55\" y2=\"55\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"51\" y2=\"51\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"46\" y2=\"46\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"42\" y2=\"42\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"37\" y2=\"37\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"33\" y2=\"33\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"28\" y2=\"28\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"64\" x2=\"64\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"128\" x2=\"128\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"192\" x2=\"192\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"256\" x2=\"256\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"320\" x2=\"320\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"384\" x2=\"384\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"448\" x2=\"448\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"512\" x2=\"512\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"576\" x2=\"576\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"480\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"434\" y2=\"434\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"388\" y2=\"388\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"343\" y2=\"343\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"297\" y2=\"297\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"252\" y2=\"252\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"206\" y2=\"206\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"160\" y2=\"160\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"115\" y2=\"115\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"69\" y2=\"69\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"0\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Chart Context with Mesh\", (\"Arial\", 20).into_font())\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ " chart.configure_mesh().draw()?;\n",
+ " Ok(())\n",
+ "}).style(\"width: 60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Then we can add axis to the chart."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"185\" y=\"18\">\n",
+ "Chart Context with Mesh and Axis\n",
+ "</text>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"46\" x2=\"46\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"52\" x2=\"52\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"58\" x2=\"58\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"64\" x2=\"64\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"70\" x2=\"70\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"76\" x2=\"76\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"82\" x2=\"82\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"88\" x2=\"88\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"94\" x2=\"94\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"100\" x2=\"100\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"106\" x2=\"106\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"112\" x2=\"112\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"118\" x2=\"118\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"124\" x2=\"124\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"130\" x2=\"130\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"136\" x2=\"136\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"142\" x2=\"142\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"148\" x2=\"148\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"154\" x2=\"154\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"160\" x2=\"160\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"166\" x2=\"166\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"172\" x2=\"172\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"178\" x2=\"178\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"184\" x2=\"184\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"190\" x2=\"190\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"196\" x2=\"196\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"202\" x2=\"202\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"208\" x2=\"208\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"214\" x2=\"214\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"220\" x2=\"220\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"226\" x2=\"226\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"232\" x2=\"232\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"238\" x2=\"238\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"244\" x2=\"244\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"250\" x2=\"250\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"256\" x2=\"256\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"262\" x2=\"262\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"268\" x2=\"268\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"274\" x2=\"274\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"280\" x2=\"280\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"286\" x2=\"286\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"292\" x2=\"292\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"298\" x2=\"298\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"304\" x2=\"304\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"310\" x2=\"310\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"316\" x2=\"316\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"322\" x2=\"322\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"328\" x2=\"328\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"334\" x2=\"334\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"340\" x2=\"340\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"346\" x2=\"346\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"352\" x2=\"352\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"358\" x2=\"358\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"364\" x2=\"364\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"370\" x2=\"370\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"376\" x2=\"376\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"382\" x2=\"382\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"388\" x2=\"388\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"394\" x2=\"394\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"400\" x2=\"400\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"406\" x2=\"406\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"412\" x2=\"412\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"418\" x2=\"418\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"424\" x2=\"424\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"430\" x2=\"430\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"436\" x2=\"436\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"442\" x2=\"442\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"448\" x2=\"448\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"454\" x2=\"454\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"460\" x2=\"460\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"466\" x2=\"466\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"472\" x2=\"472\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"478\" x2=\"478\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"484\" x2=\"484\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"490\" x2=\"490\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"496\" x2=\"496\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"502\" x2=\"502\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"508\" x2=\"508\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"514\" x2=\"514\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"520\" x2=\"520\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"526\" x2=\"526\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"532\" x2=\"532\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"538\" x2=\"538\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"544\" x2=\"544\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"550\" x2=\"550\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"556\" x2=\"556\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"562\" x2=\"562\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"568\" x2=\"568\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"574\" x2=\"574\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"580\" x2=\"580\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"586\" x2=\"586\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"592\" x2=\"592\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"598\" x2=\"598\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"604\" x2=\"604\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"610\" x2=\"610\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"616\" x2=\"616\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"622\" x2=\"622\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"628\" x2=\"628\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"634\" x2=\"634\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"435\" y2=\"435\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"431\" y2=\"431\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"427\" y2=\"427\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"423\" y2=\"423\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"419\" y2=\"419\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"415\" y2=\"415\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"410\" y2=\"410\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"406\" y2=\"406\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"402\" y2=\"402\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"398\" y2=\"398\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"394\" y2=\"394\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"390\" y2=\"390\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"385\" y2=\"385\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"381\" y2=\"381\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"377\" y2=\"377\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"373\" y2=\"373\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"369\" y2=\"369\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"365\" y2=\"365\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"360\" y2=\"360\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"352\" y2=\"352\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"348\" y2=\"348\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"344\" y2=\"344\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"340\" y2=\"340\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"336\" y2=\"336\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"331\" y2=\"331\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"327\" y2=\"327\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"323\" y2=\"323\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"319\" y2=\"319\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"311\" y2=\"311\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"306\" y2=\"306\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"302\" y2=\"302\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"298\" y2=\"298\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"294\" y2=\"294\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"290\" y2=\"290\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"286\" y2=\"286\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"281\" y2=\"281\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"277\" y2=\"277\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"273\" y2=\"273\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"269\" y2=\"269\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"265\" y2=\"265\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"261\" y2=\"261\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"256\" y2=\"256\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"252\" y2=\"252\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"248\" y2=\"248\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"244\" y2=\"244\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"240\" y2=\"240\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"236\" y2=\"236\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"232\" y2=\"232\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"227\" y2=\"227\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"223\" y2=\"223\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"219\" y2=\"219\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"215\" y2=\"215\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"211\" y2=\"211\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"207\" y2=\"207\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"202\" y2=\"202\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"198\" y2=\"198\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"194\" y2=\"194\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"190\" y2=\"190\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"186\" y2=\"186\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"182\" y2=\"182\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"177\" y2=\"177\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"173\" y2=\"173\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"169\" y2=\"169\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"165\" y2=\"165\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"161\" y2=\"161\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"157\" y2=\"157\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"152\" y2=\"152\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"148\" y2=\"148\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"144\" y2=\"144\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"140\" y2=\"140\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"136\" y2=\"136\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"132\" y2=\"132\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"128\" y2=\"128\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"123\" y2=\"123\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"119\" y2=\"119\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"115\" y2=\"115\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"111\" y2=\"111\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"107\" y2=\"107\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"103\" y2=\"103\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"98\" y2=\"98\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"94\" y2=\"94\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"90\" y2=\"90\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"86\" y2=\"86\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"82\" y2=\"82\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"78\" y2=\"78\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"73\" y2=\"73\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"69\" y2=\"69\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"61\" y2=\"61\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"57\" y2=\"57\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"53\" y2=\"53\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"48\" y2=\"48\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"44\" y2=\"44\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"40\" y2=\"40\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"36\" y2=\"36\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"32\" y2=\"32\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"28\" y2=\"28\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"100\" x2=\"100\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"160\" x2=\"160\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"220\" x2=\"220\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"280\" x2=\"280\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"340\" x2=\"340\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"400\" x2=\"400\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"460\" x2=\"460\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"520\" x2=\"520\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"580\" x2=\"580\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"398\" y2=\"398\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"273\" y2=\"273\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"232\" y2=\"232\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"190\" y2=\"190\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"148\" y2=\"148\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"107\" y2=\"107\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,440 640,440 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,440 100,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"93\" y=\"458\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,440 160,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"153\" y=\"458\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,440 220,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"213\" y=\"458\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,440 280,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"273\" y=\"458\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,440 340,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"333\" y=\"458\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,440 400,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"393\" y=\"458\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,440 460,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"453\" y=\"458\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,440 520,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"513\" y=\"458\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,440 580,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"573\" y=\"458\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,24 40,440 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"402\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,398 40,398 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"360\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,356 40,356 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"319\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,315 40,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"277\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,273 40,273 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"236\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,232 40,232 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"194\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,190 40,190 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"152\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,148 40,148 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"111\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,107 40,107 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"69\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,65 40,65 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"28\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,24 40,24 \" stroke=\"#000000\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Chart Context with Mesh and Axis\", (\"Arial\", 20).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ " \n",
+ " chart.configure_mesh()\n",
+ " .draw()?;\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width: 60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In addition to that, we can put label text to the axis."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"237\" y=\"18\">\n",
+ "Chart with Axis Label\n",
+ "</text>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"46\" x2=\"46\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"52\" x2=\"52\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"58\" x2=\"58\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"64\" x2=\"64\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"70\" x2=\"70\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"76\" x2=\"76\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"82\" x2=\"82\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"88\" x2=\"88\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"94\" x2=\"94\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"100\" x2=\"100\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"106\" x2=\"106\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"112\" x2=\"112\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"118\" x2=\"118\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"124\" x2=\"124\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"130\" x2=\"130\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"136\" x2=\"136\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"142\" x2=\"142\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"148\" x2=\"148\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"154\" x2=\"154\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"160\" x2=\"160\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"166\" x2=\"166\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"172\" x2=\"172\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"178\" x2=\"178\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"184\" x2=\"184\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"190\" x2=\"190\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"196\" x2=\"196\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"202\" x2=\"202\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"208\" x2=\"208\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"214\" x2=\"214\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"220\" x2=\"220\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"226\" x2=\"226\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"232\" x2=\"232\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"238\" x2=\"238\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"244\" x2=\"244\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"250\" x2=\"250\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"256\" x2=\"256\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"262\" x2=\"262\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"268\" x2=\"268\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"274\" x2=\"274\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"280\" x2=\"280\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"286\" x2=\"286\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"292\" x2=\"292\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"298\" x2=\"298\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"304\" x2=\"304\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"310\" x2=\"310\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"316\" x2=\"316\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"322\" x2=\"322\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"328\" x2=\"328\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"334\" x2=\"334\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"340\" x2=\"340\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"346\" x2=\"346\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"352\" x2=\"352\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"358\" x2=\"358\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"364\" x2=\"364\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"370\" x2=\"370\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"376\" x2=\"376\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"382\" x2=\"382\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"388\" x2=\"388\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"394\" x2=\"394\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"400\" x2=\"400\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"406\" x2=\"406\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"412\" x2=\"412\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"418\" x2=\"418\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"424\" x2=\"424\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"430\" x2=\"430\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"436\" x2=\"436\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"442\" x2=\"442\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"448\" x2=\"448\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"454\" x2=\"454\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"460\" x2=\"460\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"466\" x2=\"466\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"472\" x2=\"472\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"478\" x2=\"478\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"484\" x2=\"484\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"490\" x2=\"490\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"496\" x2=\"496\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"502\" x2=\"502\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"508\" x2=\"508\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"514\" x2=\"514\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"520\" x2=\"520\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"526\" x2=\"526\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"532\" x2=\"532\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"538\" x2=\"538\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"544\" x2=\"544\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"550\" x2=\"550\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"556\" x2=\"556\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"562\" x2=\"562\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"568\" x2=\"568\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"574\" x2=\"574\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"580\" x2=\"580\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"586\" x2=\"586\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"592\" x2=\"592\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"598\" x2=\"598\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"604\" x2=\"604\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"610\" x2=\"610\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"616\" x2=\"616\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"622\" x2=\"622\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"628\" x2=\"628\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"634\" x2=\"634\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"435\" y2=\"435\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"431\" y2=\"431\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"427\" y2=\"427\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"423\" y2=\"423\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"419\" y2=\"419\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"415\" y2=\"415\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"410\" y2=\"410\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"406\" y2=\"406\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"402\" y2=\"402\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"398\" y2=\"398\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"394\" y2=\"394\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"390\" y2=\"390\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"385\" y2=\"385\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"381\" y2=\"381\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"377\" y2=\"377\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"373\" y2=\"373\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"369\" y2=\"369\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"365\" y2=\"365\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"360\" y2=\"360\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"352\" y2=\"352\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"348\" y2=\"348\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"344\" y2=\"344\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"340\" y2=\"340\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"336\" y2=\"336\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"331\" y2=\"331\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"327\" y2=\"327\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"323\" y2=\"323\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"319\" y2=\"319\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"311\" y2=\"311\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"306\" y2=\"306\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"302\" y2=\"302\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"298\" y2=\"298\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"294\" y2=\"294\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"290\" y2=\"290\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"286\" y2=\"286\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"281\" y2=\"281\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"277\" y2=\"277\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"273\" y2=\"273\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"269\" y2=\"269\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"265\" y2=\"265\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"261\" y2=\"261\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"256\" y2=\"256\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"252\" y2=\"252\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"248\" y2=\"248\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"244\" y2=\"244\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"240\" y2=\"240\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"236\" y2=\"236\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"232\" y2=\"232\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"227\" y2=\"227\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"223\" y2=\"223\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"219\" y2=\"219\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"215\" y2=\"215\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"211\" y2=\"211\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"207\" y2=\"207\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"202\" y2=\"202\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"198\" y2=\"198\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"194\" y2=\"194\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"190\" y2=\"190\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"186\" y2=\"186\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"182\" y2=\"182\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"177\" y2=\"177\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"173\" y2=\"173\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"169\" y2=\"169\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"165\" y2=\"165\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"161\" y2=\"161\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"157\" y2=\"157\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"152\" y2=\"152\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"148\" y2=\"148\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"144\" y2=\"144\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"140\" y2=\"140\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"136\" y2=\"136\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"132\" y2=\"132\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"128\" y2=\"128\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"123\" y2=\"123\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"119\" y2=\"119\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"115\" y2=\"115\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"111\" y2=\"111\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"107\" y2=\"107\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"103\" y2=\"103\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"98\" y2=\"98\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"94\" y2=\"94\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"90\" y2=\"90\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"86\" y2=\"86\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"82\" y2=\"82\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"78\" y2=\"78\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"73\" y2=\"73\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"69\" y2=\"69\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"61\" y2=\"61\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"57\" y2=\"57\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"53\" y2=\"53\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"48\" y2=\"48\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"44\" y2=\"44\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"40\" y2=\"40\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"36\" y2=\"36\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"32\" y2=\"32\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"28\" y2=\"28\"/>\n",
+ "<line opacity=\"0.1\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"290\" y=\"479\">\n",
+ "Here's the label for X\n",
+ "</text>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" transform=\"rotate(270, 0, 282)\" x=\"0\" y=\"290\">\n",
+ "Here's the label for Y\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"100\" x2=\"100\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"160\" x2=\"160\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"220\" x2=\"220\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"280\" x2=\"280\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"340\" x2=\"340\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"400\" x2=\"400\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"460\" x2=\"460\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"520\" x2=\"520\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"580\" x2=\"580\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"640\" x2=\"640\" y1=\"440\" y2=\"24\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"398\" y2=\"398\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"273\" y2=\"273\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"232\" y2=\"232\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"190\" y2=\"190\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"148\" y2=\"148\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"107\" y2=\"107\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,440 640,440 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,440 100,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"93\" y=\"458\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,440 160,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"153\" y=\"458\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,440 220,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"213\" y=\"458\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,440 280,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"273\" y=\"458\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,440 340,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"333\" y=\"458\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,440 400,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"393\" y=\"458\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,440 460,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"453\" y=\"458\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,440 520,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"513\" y=\"458\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,440 580,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"573\" y=\"458\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,24 40,440 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"402\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,398 40,398 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"360\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,356 40,356 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"319\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,315 40,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"277\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,273 40,273 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"236\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,232 40,232 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"194\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,190 40,190 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"152\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,148 40,148 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"111\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,107 40,107 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"69\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,65 40,65 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"28\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,24 40,24 \" stroke=\"#000000\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Chart with Axis Label\", (\"Arial\", 20).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ " \n",
+ " chart.configure_mesh()\n",
+ " .x_desc(\"Here's the label for X\")\n",
+ " .y_desc(\"Here's the label for Y\")\n",
+ " .draw()?;\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width: 60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Then let's disable mesh lines for the X axis"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"185\" y=\"18\">\n",
+ "Chart Context with Mesh and Axis\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"398\" y2=\"398\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"356\" y2=\"356\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"273\" y2=\"273\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"232\" y2=\"232\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"190\" y2=\"190\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"148\" y2=\"148\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"107\" y2=\"107\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"65\" y2=\"65\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"640\" y1=\"24\" y2=\"24\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,440 640,440 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,440 100,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"93\" y=\"458\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,440 160,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"153\" y=\"458\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,440 220,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"213\" y=\"458\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,440 280,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"273\" y=\"458\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,440 340,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"333\" y=\"458\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,440 400,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"393\" y=\"458\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,440 460,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"453\" y=\"458\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,440 520,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"513\" y=\"458\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,440 580,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"573\" y=\"458\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,24 40,440 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"402\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,398 40,398 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"360\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,356 40,356 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"319\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,315 40,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"277\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,273 40,273 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"236\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,232 40,232 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"194\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,190 40,190 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"152\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,148 40,148 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"111\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,107 40,107 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"69\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,65 40,65 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"28\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,24 40,24 \" stroke=\"#000000\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Chart Context with Mesh and Axis\", (\"Arial\", 20).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ " \n",
+ " chart.configure_mesh()\n",
+ " .y_labels(10)\n",
+ " .line_style_2(&TRANSPARENT)\n",
+ " .disable_x_mesh()\n",
+ " .draw()?;\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width: 60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To create multiple charts in a single figure, you can just split the drawing area and create multiple chart context."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width: 60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"15\" opacity=\"1\" x=\"124\" y=\"15\">\n",
+ "Subchart #1\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"183\" y2=\"183\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"165\" y2=\"165\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"147\" y2=\"147\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"129\" y2=\"129\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"111\" y2=\"111\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"93\" y2=\"93\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"75\" y2=\"75\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"57\" y2=\"57\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"39\" y2=\"39\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"21\" y2=\"21\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,201 321,201 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"68,201 68,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"61\" y=\"219\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"96,201 96,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"89\" y=\"219\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"124,201 124,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"117\" y=\"219\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"152,201 152,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"145\" y=\"219\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"180,201 180,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"173\" y=\"219\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"208,201 208,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"201\" y=\"219\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"236,201 236,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"229\" y=\"219\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"264,201 264,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"257\" y=\"219\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"292,201 292,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"285\" y=\"219\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,21 40,201 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"187\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,183 40,183 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"169\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,165 40,165 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"151\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,147 40,147 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"133\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,129 40,129 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"115\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,111 40,111 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"97\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,93 40,93 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"79\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,75 40,75 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"61\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,57 40,57 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"43\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,39 40,39 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"25\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,21 40,21 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"15\" opacity=\"1\" x=\"445\" y=\"15\">\n",
+ "Subchart #2\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"183\" y2=\"183\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"165\" y2=\"165\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"147\" y2=\"147\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"129\" y2=\"129\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"111\" y2=\"111\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"93\" y2=\"93\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"75\" y2=\"75\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"57\" y2=\"57\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"39\" y2=\"39\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"21\" y2=\"21\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"361,201 641,201 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"389,201 389,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"382\" y=\"219\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"417,201 417,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"410\" y=\"219\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"445,201 445,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"438\" y=\"219\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"473,201 473,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"466\" y=\"219\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"501,201 501,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"494\" y=\"219\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"529,201 529,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"522\" y=\"219\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"557,201 557,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"550\" y=\"219\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"585,201 585,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"578\" y=\"219\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"613,201 613,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"606\" y=\"219\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"361,21 361,201 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"187\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,183 361,183 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"169\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,165 361,165 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"151\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,147 361,147 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"133\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,129 361,129 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"115\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,111 361,111 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"97\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,93 361,93 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"79\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,75 361,75 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"61\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,57 361,57 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"43\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,39 361,39 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"25\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,21 361,21 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"15\" opacity=\"1\" x=\"124\" y=\"256\">\n",
+ "Subchart #3\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"423\" y2=\"423\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"405\" y2=\"405\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"387\" y2=\"387\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"369\" y2=\"369\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"351\" y2=\"351\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"333\" y2=\"333\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"297\" y2=\"297\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"279\" y2=\"279\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"40\" x2=\"321\" y1=\"262\" y2=\"262\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,441 321,441 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"68,441 68,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"61\" y=\"459\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"96,441 96,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"89\" y=\"459\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"124,441 124,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"117\" y=\"459\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"152,441 152,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"145\" y=\"459\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"180,441 180,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"173\" y=\"459\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"208,441 208,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"201\" y=\"459\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"236,441 236,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"229\" y=\"459\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"264,441 264,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"257\" y=\"459\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"292,441 292,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"285\" y=\"459\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,262 40,441 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"427\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,423 40,423 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"409\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,405 40,405 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"391\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,387 40,387 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"373\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,369 40,369 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"355\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,351 40,351 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"337\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,333 40,333 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"319\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,315 40,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"301\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,297 40,297 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"283\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,279 40,279 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"266\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,262 40,262 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"15\" opacity=\"1\" x=\"444\" y=\"256\">\n",
+ "Subchart #4\n",
+ "</text>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"423\" y2=\"423\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"405\" y2=\"405\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"387\" y2=\"387\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"369\" y2=\"369\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"351\" y2=\"351\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"333\" y2=\"333\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"315\" y2=\"315\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"297\" y2=\"297\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"279\" y2=\"279\"/>\n",
+ "<line opacity=\"0.2\" stroke=\"#000000\" x1=\"361\" x2=\"641\" y1=\"262\" y2=\"262\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"361,441 641,441 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"389,441 389,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"382\" y=\"459\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"417,441 417,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"410\" y=\"459\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"445,441 445,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"438\" y=\"459\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"473,441 473,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"466\" y=\"459\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"501,441 501,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"494\" y=\"459\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"529,441 529,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"522\" y=\"459\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"557,441 557,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"550\" y=\"459\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"585,441 585,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"578\" y=\"459\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"613,441 613,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"606\" y=\"459\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"361,262 361,441 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"427\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,423 361,423 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"409\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,405 361,405 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"391\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,387 361,387 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"373\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,369 361,369 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"355\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,351 361,351 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"337\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,333 361,333 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"319\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,315 361,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"301\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,297 361,297 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"283\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,279 361,279 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"336\" y=\"266\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"356,262 361,262 \" stroke=\"#000000\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " let sub_areas = root.split_evenly((2,2));\n",
+ " \n",
+ " for (idx, area) in (1..).zip(sub_areas.iter()) {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&area)\n",
+ " .caption(format!(\"Subchart #{}\", idx), (\"Arial\", 15).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f32..1f32, 0f32..1f32)?;\n",
+ "\n",
+ " chart.configure_mesh()\n",
+ " .y_labels(10)\n",
+ " .line_style_2(&TRANSPARENT)\n",
+ " .disable_x_mesh()\n",
+ " .draw()?;\n",
+ " }\n",
+ "\n",
+ " Ok(())\n",
+ "}).style(\"width: 60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Series"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Unlike most of the plotting libraries, `Plotters` doesn't actually define any types of chart. All the chart is abstracted to a concept of series. By doing so, you can put a histgoram series and a line plot series into the same chart context.\n",
+ "The series is actually defined as an iterator of elements, just this.\n",
+ "\n",
+ "This gives `Plotters` a huge flexibility on drawing charts. You can implement you own types of series and uses the coordinate translation and chart elements. \n",
+ "\n",
+ "There are few types of predefined series, just for convenience:\n",
+ "- Line Series\n",
+ "- Histogram\n",
+ "- Point Series"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Scatter Plot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "First of all, let's generate some random numbers."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1000"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep rand = { version = \"0.6.5\" }\n",
+ "extern crate rand;\n",
+ "\n",
+ "use rand::distributions::Normal;\n",
+ "use rand::distributions::Distribution;\n",
+ "use rand::thread_rng;\n",
+ "let sd = 0.13;\n",
+ "let random_points:Vec<(f64,f64)> = {\n",
+ " let mut norm_dist = Normal::new(0.5, sd);\n",
+ " let (mut x_rand, mut y_rand) = (thread_rng(), thread_rng());\n",
+ " let x_iter = norm_dist.sample_iter(&mut x_rand);\n",
+ " let y_iter = norm_dist.sample_iter(&mut y_rand);\n",
+ " x_iter.zip(y_iter).take(1000).collect()\n",
+ "};\n",
+ "random_points.len()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "It's trivial to draw a scatter plot with `Plotters`. The only need is, provide a iterator of the elements as series.\n",
+ "The following example shows how to make a 2D normal distribution figure. The red rectangle is the two sigma area and the red cross is the mean."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width:60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"244\" y=\"18\">\n",
+ "Normal Distribution\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,440 640,440 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,440 100,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"93\" y=\"458\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,440 160,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"153\" y=\"458\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,440 220,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"213\" y=\"458\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,440 280,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"273\" y=\"458\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,440 340,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"333\" y=\"458\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,440 400,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"393\" y=\"458\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,440 460,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"453\" y=\"458\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,440 520,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"513\" y=\"458\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,440 580,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"573\" y=\"458\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,24 40,440 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"402\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,398 40,398 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"360\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,356 40,356 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"319\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,315 40,315 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"277\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,273 40,273 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"236\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,232 40,232 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"194\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,190 40,190 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"152\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,148 40,148 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"111\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,107 40,107 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"69\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,65 40,65 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"28\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,24 40,24 \" stroke=\"#000000\"/>\n",
+ "<circle cx=\"229\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"255\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"174\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"448\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"465\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"439\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"509\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"132\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"470\" cy=\"154\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"259\" cy=\"183\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"582\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"420\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"221\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"417\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"332\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"280\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"432\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"260\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"467\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"175\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"496\" cy=\"183\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"426\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"152\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"449\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"176\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"476\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"485\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"488\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"467\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"385\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"129\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"424\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"457\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"389\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"398\" cy=\"327\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"365\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"412\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"289\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"153\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"422\" cy=\"323\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"524\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"161\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"187\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"556\" cy=\"167\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"442\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"470\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"177\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"127\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"244\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"135\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"379\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"192\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"214\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"459\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"478\" cy=\"151\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"323\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"291\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"510\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"365\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"385\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"227\" cy=\"189\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"120\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"145\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"200\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"469\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"149\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"227\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"214\" cy=\"148\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"460\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"177\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"107\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"258\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"423\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"191\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"184\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"149\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"133\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"155\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"379\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"191\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"401\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"229\" cy=\"116\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"417\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"460\" cy=\"178\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"153\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"172\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"116\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"113\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"210\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"125\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"430\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"354\" cy=\"178\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"176\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"115\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"453\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"178\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"401\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"152\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"254\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"259\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"498\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"35\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"328\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"438\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"200\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"188\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"475\" cy=\"158\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"354\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"220\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"149\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"119\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"194\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"484\" cy=\"150\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"188\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"245\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"491\" cy=\"155\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"468\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"166\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"453\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"422\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"462\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"244\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"128\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"134\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"174\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"468\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"460\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"392\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"367\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"452\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"391\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"485\" cy=\"176\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"385\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"407\" cy=\"323\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"123\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"191\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"434\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"151\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"462\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"241\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"462\" cy=\"142\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"137\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"540\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"414\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"428\" cy=\"361\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"214\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"289\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"468\" cy=\"315\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"436\" cy=\"327\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"255\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"205\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"365\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"179\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"397\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"498\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"465\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"365\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"407\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"392\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"397\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"460\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"457\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"175\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"287\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"143\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"152\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"215\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"197\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"179\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"204\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"177\" cy=\"139\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"243\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"509\" cy=\"154\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"392\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"454\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"244\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"280\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"140\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"215\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"386\" cy=\"159\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"448\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"241\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"190\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"149\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"483\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"150\" cy=\"197\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"487\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"146\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"498\" cy=\"169\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"134\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"234\" cy=\"359\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"432\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"138\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"454\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"431\" cy=\"72\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"179\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"474\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"445\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"323\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"406\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"450\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"480\" cy=\"138\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"400\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"179\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"477\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"141\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"510\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"415\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"107\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"409\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"291\" cy=\"166\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"503\" cy=\"172\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"367\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"163\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"194\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"224\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"466\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"254\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"362\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"100\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"440\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"160\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"433\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"448\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"147\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"191\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"117\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"175\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"260\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"178\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"402\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"420\" cy=\"349\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"169\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"406\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"396\" cy=\"151\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"468\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"427\" cy=\"167\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"397\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"461\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"433\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"287\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"126\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"485\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"424\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"367\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"208\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"135\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"117\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"189\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"248\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"448\" cy=\"141\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"342\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"120\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"161\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"143\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"428\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"427\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"434\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"449\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"449\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"448\" cy=\"406\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"485\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"477\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"108\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"470\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"204\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"454\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"367\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"245\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"218\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"183\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"255\" cy=\"133\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"407\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"405\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"195\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"204\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"396\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"170\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"517\" cy=\"117\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"497\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"503\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"396\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"159\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"402\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"107\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"474\" cy=\"171\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"456\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"151\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"427\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"245\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"507\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"143\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"409\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"449\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"197\" cy=\"185\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"399\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"194\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"399\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"166\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"442\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"248\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"421\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"443\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"139\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"161\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"428\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"230\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"265\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"289\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"260\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"215\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"211\" cy=\"188\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"197\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"476\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"258\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"205\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"396\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"341\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"135\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"189\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"518\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"410\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"164\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"400\" cy=\"174\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"462\" cy=\"360\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"288\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"443\" cy=\"142\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"179\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"197\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"422\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"332\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"177\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"212\" cy=\"148\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"189\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"200\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"414\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"210\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"430\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"410\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"506\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"243\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"430\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"437\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"420\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"424\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"512\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"481\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"343\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"489\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"220\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"465\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"420\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"136\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"430\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"496\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"131\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"405\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"351\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"207\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"498\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"192\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"137\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"428\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"212\" cy=\"204\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"447\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"223\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"187\" cy=\"214\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"133\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"409\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"439\" cy=\"214\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"182\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"327\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"401\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"379\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"373\" cy=\"154\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"229\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"221\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"139\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"489\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"477\" cy=\"203\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"392\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"158\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"409\" cy=\"152\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"386\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"414\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"506\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"507\" cy=\"178\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"414\" cy=\"176\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"138\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"67\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"434\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"158\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"353\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"128\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"216\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"424\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"455\" cy=\"167\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"447\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"430\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"442\" cy=\"165\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"209\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"191\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"366\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"238\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"435\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"156\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"259\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"153\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"157\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"402\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"162\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"436\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"436\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"494\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"447\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"452\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"399\" cy=\"139\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"169\" cy=\"349\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"212\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"412\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"155\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"458\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"427\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"166\" cy=\"351\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"217\" opacity=\"0.3\" stroke=\"none\" width=\"312\" x=\"184\" y=\"123\"/>\n",
+ "<line opacity=\"1\" stroke=\"#FF0000\" x1=\"335\" x2=\"345\" y1=\"227\" y2=\"237\"/>\n",
+ "<line opacity=\"1\" stroke=\"#FF0000\" x1=\"335\" x2=\"345\" y1=\"237\" y2=\"227\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " // The following code will create a chart context\n",
+ " let mut chart = ChartBuilder::on(&root)\n",
+ " .caption(\"Normal Distribution\", (\"Arial\", 20).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f64..1f64, 0f64..1f64)?;\n",
+ " \n",
+ " chart.configure_mesh()\n",
+ " .disable_x_mesh()\n",
+ " .disable_y_mesh()\n",
+ " .draw()?;\n",
+ " \n",
+ " chart.draw_series(random_points.iter().map(|(x,y)| Circle::new((*x,*y), 3, GREEN.filled())));\n",
+ " \n",
+ " // You can alawys freely draw on the drawing backend\n",
+ " let area = chart.plotting_area();\n",
+ " let two_sigma = sd * 2.0;\n",
+ " area.draw(&Rectangle::new(\n",
+ " [(0.5 - two_sigma, 0.5 - two_sigma), (0.5 + two_sigma, 0.5 + two_sigma)], \n",
+ " RED.mix(0.3).filled())\n",
+ " )?;\n",
+ " area.draw(&Cross::new((0.5, 0.5), 5, &RED))?;\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width:60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Histogram"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can also have histograms. For histograms, we can use the predefined histogram series struct to build the histogram easily. The following code demonstrate how to create both histogram for X and Y value of `random_points`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width:60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"259\" y=\"18\">\n",
+ "Histogram for X\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,201 641,201 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,201 40,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"63\" y=\"219\">\n",
+ "0.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,201 100,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"123\" y=\"219\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,201 160,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"183\" y=\"219\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,201 220,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"243\" y=\"219\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,201 280,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"303\" y=\"219\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,201 340,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"363\" y=\"219\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,201 400,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"423\" y=\"219\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,201 460,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"483\" y=\"219\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,201 520,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"543\" y=\"219\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,201 580,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"603\" y=\"219\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,27 40,201 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"170\">\n",
+ "10%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,166 40,166 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"135\">\n",
+ "20%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,131 40,131 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"100\">\n",
+ "30%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,96 40,96 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"65\">\n",
+ "40%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,61 40,61 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"31\">\n",
+ "50%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,27 40,27 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"259\" y=\"259\">\n",
+ "Histogram for Y\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,441 641,441 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,441 40,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"63\" y=\"459\">\n",
+ "0.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"100,441 100,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"123\" y=\"459\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"160,441 160,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"183\" y=\"459\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"220,441 220,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"243\" y=\"459\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"280,441 280,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"303\" y=\"459\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"340,441 340,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"363\" y=\"459\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"400,441 400,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"423\" y=\"459\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"460,441 460,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"483\" y=\"459\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"520,441 520,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"543\" y=\"459\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"580,441 580,446 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"603\" y=\"459\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,268 40,441 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"410\">\n",
+ "10%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,406 40,406 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"375\">\n",
+ "20%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,371 40,371 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"341\">\n",
+ "30%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,337 40,337 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"306\">\n",
+ "40%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,302 40,302 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"8\" y=\"272\">\n",
+ "50%\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,268 40,268 \" stroke=\"#000000\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"77\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"250\" y=\"124\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"39\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"442\" y=\"162\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"98\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"346\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"129\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"310\" y=\"72\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"202\" y=\"190\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"140\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"340\" y=\"61\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"418\" y=\"141\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"49\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"430\" y=\"152\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"334\" y=\"93\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"148\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"39\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"466\" y=\"162\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"74\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"394\" y=\"127\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"538\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"77\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"424\" y=\"124\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"436\" y=\"159\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"142\" y=\"194\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"166\" y=\"194\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"556\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"32\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"484\" y=\"169\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"136\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"21\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"196\" y=\"180\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"81\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"286\" y=\"120\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"49\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"448\" y=\"152\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"388\" y=\"141\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"74\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"274\" y=\"127\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"304\" y=\"93\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"238\" y=\"141\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"87\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"328\" y=\"114\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"178\" y=\"190\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"35\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"220\" y=\"166\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"35\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"208\" y=\"166\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"98\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"352\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"25\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"190\" y=\"176\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"376\" y=\"93\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"115\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"364\" y=\"86\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"77\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"268\" y=\"124\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"514\" y=\"194\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"74\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"316\" y=\"127\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"244\" y=\"159\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"520\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"87\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"298\" y=\"114\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"490\" y=\"194\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"160\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"460\" y=\"159\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"63\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"262\" y=\"138\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"140\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"358\" y=\"61\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"70\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"406\" y=\"131\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"84\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"280\" y=\"117\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"91\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"322\" y=\"110\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"74\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"400\" y=\"127\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"472\" y=\"173\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"112\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"67\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"412\" y=\"134\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"32\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"454\" y=\"169\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"154\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"77\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"256\" y=\"124\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"21\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"502\" y=\"180\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"119\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"370\" y=\"82\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"184\" y=\"187\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"172\" y=\"190\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"25\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"496\" y=\"176\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"580\" y=\"197\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"18\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"508\" y=\"183\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"56\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"292\" y=\"145\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"98\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"382\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"478\" y=\"187\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"18\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"214\" y=\"183\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"226\" y=\"159\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"21\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"232\" y=\"180\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"454\" y=\"396\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"73\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"424\" y=\"368\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"250\" y=\"396\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"101\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"334\" y=\"340\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"478\" y=\"413\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"84\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"298\" y=\"357\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"346\" y=\"333\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"101\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"370\" y=\"340\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"106\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"35\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"472\" y=\"406\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"49\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"196\" y=\"392\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"87\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"412\" y=\"354\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"87\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"310\" y=\"354\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"84\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"262\" y=\"357\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"460\" y=\"427\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"376\" y=\"333\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"66\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"364\" y=\"375\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"148\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"526\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"70\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"256\" y=\"371\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"21\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"466\" y=\"420\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"73\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"400\" y=\"368\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"104\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"274\" y=\"337\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"32\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"202\" y=\"409\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"178\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"94\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"304\" y=\"347\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"142\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"166\" y=\"427\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"238\" y=\"396\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"73\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"268\" y=\"368\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"122\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"286\" y=\"319\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"70\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"244\" y=\"371\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"448\" y=\"396\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"18\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"484\" y=\"423\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"59\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"406\" y=\"382\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"442\" y=\"399\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"208\" y=\"427\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"502\" y=\"427\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"14\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"496\" y=\"427\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"568\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"490\" y=\"430\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"77\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"394\" y=\"364\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"94\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"316\" y=\"347\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"214\" y=\"413\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"129\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"358\" y=\"312\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"88\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"220\" y=\"396\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"108\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"340\" y=\"333\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"66\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"292\" y=\"375\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"508\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"622\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"514\" y=\"430\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"154\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"160\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"11\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"190\" y=\"430\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"49\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"418\" y=\"392\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"49\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"232\" y=\"392\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"184\" y=\"434\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"70\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"280\" y=\"371\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"520\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"574\" y=\"437\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"84\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"328\" y=\"357\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"80\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"388\" y=\"361\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"101\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"352\" y=\"340\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"80\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"382\" y=\"361\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"129\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"322\" y=\"312\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"39\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"226\" y=\"402\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"52\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"430\" y=\"389\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"66\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"436\" y=\"375\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " let areas = root.split_evenly((2,1));\n",
+ " let mut charts = vec![];\n",
+ " \n",
+ " // The following code will create a chart context\n",
+ " for (area, name) in areas.iter().zip([\"X\", \"Y\"].into_iter()) {\n",
+ " let mut chart = ChartBuilder::on(&area)\n",
+ " .caption(format!(\"Histogram for {}\", name), (\"Arial\", 20).into_font())\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0u32..100u32, 0f64..0.5f64)?;\n",
+ " chart.configure_mesh()\n",
+ " .disable_x_mesh()\n",
+ " .disable_y_mesh()\n",
+ " .y_labels(5)\n",
+ " .x_label_offset(30)\n",
+ " .x_label_formatter(&|x| format!(\"{:.1}\", *x as f64 / 100.0))\n",
+ " .y_label_formatter(&|y| format!(\"{}%\", (*y * 100.0) as u32))\n",
+ " .draw()?;\n",
+ " charts.push(chart);\n",
+ " }\n",
+ " \n",
+ " let hist_x = Histogram::vertical(&charts[0])\n",
+ " .style(RED.filled())\n",
+ " .margin(0)\n",
+ " .data(random_points.iter().map(|(x,_)| ((x*100.0) as u32, 0.01)));\n",
+ " \n",
+ " let hist_y = Histogram::vertical(&charts[0])\n",
+ " .style(GREEN.filled())\n",
+ " .margin(0)\n",
+ " .data(random_points.iter().map(|(_,y)| ((y*100.0) as u32, 0.01)));\n",
+ " \n",
+ " charts[0].draw_series(hist_x);\n",
+ " charts[1].draw_series(hist_y);\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width:60%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Combination of Histogram and Scatter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div style=\"width:60%\"><svg viewBox=\"0 0 640 480\" xmlns=\"http://www.w3.org/2000/svg\">\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"20\" opacity=\"1\" x=\"193\" y=\"18\">\n",
+ "Scatter with Histogram Example\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,440 560,440 \" stroke=\"#000000\"/>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"92,440 92,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"85\" y=\"458\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"144,440 144,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"137\" y=\"458\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"196,440 196,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"189\" y=\"458\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"248,440 248,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"241\" y=\"458\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"300,440 300,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"293\" y=\"458\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"352,440 352,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"345\" y=\"458\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"404,440 404,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"397\" y=\"458\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"456,440 456,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"449\" y=\"458\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"508,440 508,445 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"501\" y=\"458\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"40,107 40,440 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"410\">\n",
+ "0.1\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,406 40,406 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"377\">\n",
+ "0.2\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,373 40,373 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"344\">\n",
+ "0.3\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,340 40,340 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"310\">\n",
+ "0.4\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,306 40,306 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"277\">\n",
+ "0.5\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,273 40,273 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"244\">\n",
+ "0.6\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,240 40,240 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"210\">\n",
+ "0.7\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,206 40,206 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"177\">\n",
+ "0.8\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,173 40,173 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"144\">\n",
+ "0.9\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,140 40,140 \" stroke=\"#000000\"/>\n",
+ "<text fill=\"#000000\" font-family=\"Arial\" font-size=\"12\" opacity=\"1\" x=\"15\" y=\"111\">\n",
+ "1.0\n",
+ "</text>\n",
+ "<polyline fill=\"none\" opacity=\"1\" points=\"35,107 40,107 \" stroke=\"#000000\"/>\n",
+ "<circle cx=\"204\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"156\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"386\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"446\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"412\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"230\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"326\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"510\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"221\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"214\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"197\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"198\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"353\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"248\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"380\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"410\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"350\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"435\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"342\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"347\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"232\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"373\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"306\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"334\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"224\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"410\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"191\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"265\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"337\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"401\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"342\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"349\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"234\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"245\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"347\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"460\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"167\" cy=\"359\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"241\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"487\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"413\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"189\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"217\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"334\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"172\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"420\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"259\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"346\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"258\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"280\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"447\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"321\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"260\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"342\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"280\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"202\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"184\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"204\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"179\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"412\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"238\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"202\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"191\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"159\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"229\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"342\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"197\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"165\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"332\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"306\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"283\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"306\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"203\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"321\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"178\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"187\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"187\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"190\" cy=\"180\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"289\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"398\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"230\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"437\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"223\" cy=\"116\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"190\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"385\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"341\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"209\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"178\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"342\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"323\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"417\" cy=\"215\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"312\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"223\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"241\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"196\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"373\" cy=\"183\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"173\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"326\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"217\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"431\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"398\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"405\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"217\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"287\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"410\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"333\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"381\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"397\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"179\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"401\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"205\" cy=\"356\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"426\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"339\" cy=\"306\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"291\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"346\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"227\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"186\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"180\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"265\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"405\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"214\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"241\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"406\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"473\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"329\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"377\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"191\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"340\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"349\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"326\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"183\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"374\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"160\" cy=\"348\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"437\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"352\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"350\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"332\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"404\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"402\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"221\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"254\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"280\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"268\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"159\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"225\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"327\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"216\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"446\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"233\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"399\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"217\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"248\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"200\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"254\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"215\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"315\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"352\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"214\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"170\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"227\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"207\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"424\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"135\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"219\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"362\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"347\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"191\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"427\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"205\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"351\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"266\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"437\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"208\" cy=\"375\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"379\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"334\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"264\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"399\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"275\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"379\" cy=\"145\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"161\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"288\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"391\" cy=\"293\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"346\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"396\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"232\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"421\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"300\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"419\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"447\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"365\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"346\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"258\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"218\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"233\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"173\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"322\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"200\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"409\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"225\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"377\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"245\" cy=\"168\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"216\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"296\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"287\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"226\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"133\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"352\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"171\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"387\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"350\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"288\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"159\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"241\" cy=\"326\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"367\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"390\" cy=\"223\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"357\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"280\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"209\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"411\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"405\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"254\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"328\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"262\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"189\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"426\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"248\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"373\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"186\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"242\" cy=\"357\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"196\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"252\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"107\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"328\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"169\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"220\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"390\" cy=\"306\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"361\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"184\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"306\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"202\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"331\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"381\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"394\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"244\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"413\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"425\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"211\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"174\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"336\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"209\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"412\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"297\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"398\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"326\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"262\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"217\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"194\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"215\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"234\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"226\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"358\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"225\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"201\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"174\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"277\" cy=\"224\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"325\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"308\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"454\" cy=\"181\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"436\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"441\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"305\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"298\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"143\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"173\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"416\" cy=\"225\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"400\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"208\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"375\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"218\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"235\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"265\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"254\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"129\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"350\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"395\" cy=\"311\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"243\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"176\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"307\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"321\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"297\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"173\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"353\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"233\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"320\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"213\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"388\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"220\" cy=\"341\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"370\" cy=\"308\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"390\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"366\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"337\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"285\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"318\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"144\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"328\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"290\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"377\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"273\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"205\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"269\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"260\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"198\" cy=\"243\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"188\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"368\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"276\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"296\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"229\" cy=\"256\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"240\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"183\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"349\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"244\" cy=\"361\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"195\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"454\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"287\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"302\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"219\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"203\" cy=\"275\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"328\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"313\" cy=\"244\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"348\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"352\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"406\" cy=\"376\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"255\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"390\" cy=\"201\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"351\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"197\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"322\" cy=\"231\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"324\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"371\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"367\" cy=\"247\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"321\" cy=\"353\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"229\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"189\" cy=\"206\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"351\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"359\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"258\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"238\" cy=\"239\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"179\" cy=\"301\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"344\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"324\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"267\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"187\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"352\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"227\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"216\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"224\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"256\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"326\" cy=\"312\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"332\" cy=\"344\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"384\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"209\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"372\" cy=\"271\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"449\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"286\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"422\" cy=\"287\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"303\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"252\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"299\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"234\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"196\" cy=\"314\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"408\" cy=\"227\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"369\" cy=\"274\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"309\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"197\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"238\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"435\" cy=\"236\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"236\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"270\" cy=\"193\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"356\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"224\" cy=\"368\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"185\" cy=\"313\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"289\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"222\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"317\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"437\" cy=\"288\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"348\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"124\" cy=\"285\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"345\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"291\" cy=\"277\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"335\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"189\" cy=\"251\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"392\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"198\" cy=\"267\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"167\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"194\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"282\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"288\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"278\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"385\" cy=\"259\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"262\" cy=\"262\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"347\" cy=\"233\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"234\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"317\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"329\" cy=\"350\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"271\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"250\" cy=\"353\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"246\" cy=\"248\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"295\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"319\" cy=\"309\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"333\" cy=\"270\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"259\" cy=\"261\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"305\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"328\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"293\" cy=\"294\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"204\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"323\" cy=\"286\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"197\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"311\" cy=\"246\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"290\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"310\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"429\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"247\" cy=\"283\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"418\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"345\" cy=\"316\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"214\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"360\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"340\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"350\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"245\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"292\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"292\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"444\" cy=\"230\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"364\" cy=\"228\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"282\" cy=\"198\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"335\" cy=\"141\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"339\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"338\" cy=\"253\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"214\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"338\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"281\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"249\" cy=\"370\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"361\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"231\" cy=\"190\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"294\" cy=\"302\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"193\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"223\" cy=\"318\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"373\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"209\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"330\" cy=\"268\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"295\" cy=\"257\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"400\" cy=\"221\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"378\" cy=\"291\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"228\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"389\" cy=\"220\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"186\" cy=\"263\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"341\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"237\" cy=\"327\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"331\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"253\" cy=\"315\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"320\" cy=\"284\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"279\" cy=\"240\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"284\" cy=\"380\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"211\" cy=\"336\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"221\" cy=\"300\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"235\" cy=\"250\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"315\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"382\" cy=\"237\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"272\" cy=\"343\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"224\" cy=\"303\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"212\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"274\" cy=\"265\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"230\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"239\" cy=\"232\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"298\" cy=\"210\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"291\" cy=\"213\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"299\" cy=\"279\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"353\" cy=\"273\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"263\" cy=\"217\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"310\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"261\" cy=\"249\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"304\" cy=\"307\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"383\" cy=\"325\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"434\" cy=\"319\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"251\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"327\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"316\" cy=\"242\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"314\" cy=\"272\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"393\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"301\" cy=\"276\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"397\" cy=\"304\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"351\" cy=\"199\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"152\" cy=\"367\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"189\" cy=\"337\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"222\" cy=\"289\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"363\" cy=\"266\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"257\" cy=\"211\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"403\" cy=\"264\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"376\" cy=\"255\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"355\" cy=\"269\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"346\" cy=\"281\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"278\" cy=\"330\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<circle cx=\"149\" cy=\"368\" fill=\"#00FF00\" opacity=\"1\" r=\"3\" stroke=\"none\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"39\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"248\" y=\"68\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"23\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"378\" y=\"84\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"138\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"53\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"320\" y=\"54\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"40\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"263\" y=\"67\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"36\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"372\" y=\"71\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"60\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"274\" y=\"47\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"164\" y=\"100\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"36\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"237\" y=\"71\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"32\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"357\" y=\"75\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"34\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"279\" y=\"73\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"450\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"10\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"175\" y=\"97\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"50\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"294\" y=\"57\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"471\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"10\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"206\" y=\"97\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"40\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"289\" y=\"67\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"508\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"8\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"190\" y=\"99\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"383\" y=\"87\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"133\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"216\" y=\"87\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"34\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"346\" y=\"73\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"211\" y=\"79\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"13\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"414\" y=\"94\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"456\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"8\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"445\" y=\"99\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"305\" y=\"62\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"36\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"222\" y=\"71\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"42\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"284\" y=\"65\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"367\" y=\"79\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"123\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"310\" y=\"62\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"144\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"45\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"336\" y=\"62\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"128\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"5\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"159\" y=\"102\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"487\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"34\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"352\" y=\"73\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"15\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"398\" y=\"92\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"10\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"440\" y=\"97\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"2\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"102\" y=\"105\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"12\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"435\" y=\"95\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"29\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"232\" y=\"78\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"37\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"253\" y=\"70\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"26\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"258\" y=\"81\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"64\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"315\" y=\"43\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"149\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"64\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"300\" y=\"43\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"15\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"424\" y=\"92\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"201\" y=\"87\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"50\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"331\" y=\"57\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"12\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"170\" y=\"95\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"36\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"227\" y=\"71\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"23\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"393\" y=\"84\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"55\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"326\" y=\"52\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"31\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"362\" y=\"76\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"7\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"419\" y=\"100\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"18\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"388\" y=\"89\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"430\" y=\"103\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"34\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"242\" y=\"73\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"16\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"196\" y=\"91\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"5\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"180\" y=\"102\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"5\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"154\" y=\"102\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"50\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"268\" y=\"57\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"28\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"341\" y=\"79\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"16\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"185\" y=\"91\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"20\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"404\" y=\"87\"/>\n",
+ "<rect fill=\"#FF0000\" height=\"18\" opacity=\"1\" stroke=\"none\" width=\"5\" x=\"409\" y=\"89\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"40\" x=\"560\" y=\"286\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"560\" y=\"260\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"22\" x=\"560\" y=\"330\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"32\" x=\"560\" y=\"303\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"43\" x=\"560\" y=\"283\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"35\" x=\"560\" y=\"240\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"143\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"560\" y=\"366\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"38\" x=\"560\" y=\"293\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"560\" y=\"210\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"170\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"373\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"560\" y=\"180\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"49\" x=\"560\" y=\"250\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"46\" x=\"560\" y=\"273\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"14\" x=\"560\" y=\"346\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"40\" x=\"560\" y=\"230\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"22\" x=\"560\" y=\"226\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"30\" x=\"560\" y=\"256\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"12\" x=\"560\" y=\"193\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"560\" y=\"343\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"410\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"48\" x=\"560\" y=\"306\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"33\" x=\"560\" y=\"310\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"560\" y=\"336\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"16\" x=\"560\" y=\"196\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"113\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"560\" y=\"206\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"4\" x=\"560\" y=\"173\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"22\" x=\"560\" y=\"350\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"32\" x=\"560\" y=\"316\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"33\" x=\"560\" y=\"223\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"560\" y=\"326\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"46\" x=\"560\" y=\"253\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"9\" x=\"560\" y=\"200\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"560\" y=\"203\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"8\" x=\"560\" y=\"190\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"33\" x=\"560\" y=\"236\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"370\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"38\" x=\"560\" y=\"276\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"30\" x=\"560\" y=\"216\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"166\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"36\" x=\"560\" y=\"246\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"43\" x=\"560\" y=\"290\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"4\" x=\"560\" y=\"353\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"356\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"140\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"20\" x=\"560\" y=\"320\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"17\" x=\"560\" y=\"333\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"176\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"1\" x=\"560\" y=\"400\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"6\" x=\"560\" y=\"183\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"49\" x=\"560\" y=\"270\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"36\" x=\"560\" y=\"243\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"24\" x=\"560\" y=\"220\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"4\" x=\"560\" y=\"186\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"376\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"360\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"38\" x=\"560\" y=\"313\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"30\" x=\"560\" y=\"296\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"4\" opacity=\"1\" stroke=\"none\" width=\"49\" x=\"560\" y=\"266\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"56\" x=\"560\" y=\"300\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"27\" x=\"560\" y=\"233\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"32\" x=\"560\" y=\"323\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"3\" x=\"560\" y=\"380\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"19\" x=\"560\" y=\"213\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"46\" x=\"560\" y=\"263\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"12\" x=\"560\" y=\"340\"/>\n",
+ "<rect fill=\"#00FF00\" height=\"3\" opacity=\"1\" stroke=\"none\" width=\"59\" x=\"560\" y=\"280\"/>\n",
+ "</svg></div>"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ ":dep plotters = { git = \"https://github.com/38/plotters\", default_features = false, features = [\"evcxr\"] }\n",
+ "\n",
+ "extern crate plotters;\n",
+ "use plotters::prelude::*;\n",
+ "\n",
+ "evcxr_figure((640, 480), |root| {\n",
+ " let root = root.titled(\"Scatter with Histogram Example\", (\"Arial\", 20).into_font())?;\n",
+ " \n",
+ " let areas = root.split_by_breakpoints([560], [80]);\n",
+ "\n",
+ " let mut x_hist_ctx = ChartBuilder::on(&areas[0])\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0u32..100u32, 0f64..0.5f64)?;\n",
+ " let mut y_hist_ctx = ChartBuilder::on(&areas[3])\n",
+ " .x_label_area_size(40)\n",
+ " .build_ranged(0f64..0.5f64, 0..100u32)?;\n",
+ " let mut scatter_ctx = ChartBuilder::on(&areas[2])\n",
+ " .x_label_area_size(40)\n",
+ " .y_label_area_size(40)\n",
+ " .build_ranged(0f64..1f64, 0f64..1f64)?;\n",
+ " scatter_ctx.configure_mesh()\n",
+ " .disable_x_mesh()\n",
+ " .disable_y_mesh()\n",
+ " .draw()?;\n",
+ " scatter_ctx.draw_series(random_points.iter().map(|(x,y)| Circle::new((*x,*y), 3, GREEN.filled())))?;\n",
+ " let x_hist = Histogram::vertical(&x_hist_ctx)\n",
+ " .style(RED.filled())\n",
+ " .margin(0)\n",
+ " .data(random_points.iter().map(|(x,_)| ((x*100.0) as u32, 0.01)));\n",
+ " let y_hist = Histogram::horizental(&y_hist_ctx)\n",
+ " .style(GREEN.filled())\n",
+ " .margin(0)\n",
+ " .data(random_points.iter().map(|(_,y)| ((y*100.0) as u32, 0.01)));\n",
+ " x_hist_ctx.draw_series(x_hist)?;\n",
+ " y_hist_ctx.draw_series(y_hist)?;\n",
+ " \n",
+ " Ok(())\n",
+ "}).style(\"width:60%\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Rust",
+ "language": "rust",
+ "name": "rust"
+ },
+ "language_info": {
+ "codemirror_mode": "rust",
+ "file_extension": ".rs",
+ "mimetype": "text/rust",
+ "name": "Rust",
+ "pygment_lexer": "rust",
+ "version": ""
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/plotters-doc-data/evcxr_animation.gif b/plotters-doc-data/evcxr_animation.gif
new file mode 100644
index 0000000..6aa048d
--- /dev/null
+++ b/plotters-doc-data/evcxr_animation.gif
Binary files differ
diff --git a/plotters-doc-data/histogram.png b/plotters-doc-data/histogram.png
index 4ffddb8..58522a6 100644
--- a/plotters-doc-data/histogram.png
+++ b/plotters-doc-data/histogram.png
Binary files differ
diff --git a/plotters-doc-data/nested_coord.png b/plotters-doc-data/nested_coord.png
new file mode 100644
index 0000000..5882ef1
--- /dev/null
+++ b/plotters-doc-data/nested_coord.png
Binary files differ
diff --git a/plotters-doc-data/normal-dist.png b/plotters-doc-data/normal-dist.png
index 249f63a..f3c84b3 100644
--- a/plotters-doc-data/normal-dist.png
+++ b/plotters-doc-data/normal-dist.png
Binary files differ
diff --git a/plotters-doc-data/normal-dist2.png b/plotters-doc-data/normal-dist2.png
index a1ec8d7..55eff3c 100644
--- a/plotters-doc-data/normal-dist2.png
+++ b/plotters-doc-data/normal-dist2.png
Binary files differ
diff --git a/plotters-doc-data/plotters-piston.gif b/plotters-doc-data/plotters-piston.gif
new file mode 100644
index 0000000..9790489
--- /dev/null
+++ b/plotters-doc-data/plotters-piston.gif
Binary files differ
diff --git a/plotters-doc-data/sample.png b/plotters-doc-data/sample.png
index 20fee59..3ff9b04 100644
--- a/plotters-doc-data/sample.png
+++ b/plotters-doc-data/sample.png
Binary files differ
diff --git a/plotters-doc-data/style.css b/plotters-doc-data/style.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plotters-doc-data/style.css
diff --git a/src/chart/axes3d.rs b/src/chart/axes3d.rs
new file mode 100644
index 0000000..14dd29b
--- /dev/null
+++ b/src/chart/axes3d.rs
@@ -0,0 +1,191 @@
+use std::marker::PhantomData;
+
+use super::ChartContext;
+use crate::coord::cartesian::Cartesian3d;
+use crate::coord::ranged1d::{BoldPoints, LightPoints, Ranged, ValueFormatter};
+use crate::style::colors::{BLACK, TRANSPARENT};
+use crate::style::Color;
+use crate::style::{AsRelative, ShapeStyle, SizeDesc, TextStyle};
+
+use super::Coord3D;
+
+use crate::drawing::DrawingAreaErrorKind;
+
+use plotters_backend::DrawingBackend;
+
+/// The configurations about the 3D plot's axes
+pub struct Axes3dStyle<'a, 'b, X: Ranged, Y: Ranged, Z: Ranged, DB: DrawingBackend> {
+ pub(super) parent_size: (u32, u32),
+ pub(super) target: Option<&'b mut ChartContext<'a, DB, Cartesian3d<X, Y, Z>>>,
+ pub(super) tick_size: i32,
+ pub(super) n_labels: [usize; 3],
+ pub(super) bold_line_style: ShapeStyle,
+ pub(super) light_line_style: ShapeStyle,
+ pub(super) axis_panel_style: ShapeStyle,
+ pub(super) axis_style: ShapeStyle,
+ pub(super) label_style: TextStyle<'b>,
+ pub(super) format_x: &'b dyn Fn(&X::ValueType) -> String,
+ pub(super) format_y: &'b dyn Fn(&Y::ValueType) -> String,
+ pub(super) format_z: &'b dyn Fn(&Z::ValueType) -> String,
+ _phantom: PhantomData<&'a (X, Y, Z)>,
+}
+
+impl<'a, 'b, X, Y, Z, XT, YT, ZT, DB> Axes3dStyle<'a, 'b, X, Y, Z, DB>
+where
+ X: Ranged<ValueType = XT> + ValueFormatter<XT>,
+ Y: Ranged<ValueType = YT> + ValueFormatter<YT>,
+ Z: Ranged<ValueType = ZT> + ValueFormatter<ZT>,
+ DB: DrawingBackend,
+{
+ /// Set the size of the tick mark
+ pub fn tick_size<Size: SizeDesc>(&mut self, size: Size) -> &mut Self {
+ let actual_size = size.in_pixels(&self.parent_size);
+ self.tick_size = actual_size;
+ self
+ }
+
+ /// Set the number of labels on the X axes
+ pub fn x_labels(&mut self, n: usize) -> &mut Self {
+ self.n_labels[0] = n;
+ self
+ }
+
+ /// Set the number of labels on the Y axes
+ pub fn y_labels(&mut self, n: usize) -> &mut Self {
+ self.n_labels[1] = n;
+ self
+ }
+
+ /// Set the number of labels on the Z axes
+ pub fn z_labels(&mut self, n: usize) -> &mut Self {
+ self.n_labels[2] = n;
+ self
+ }
+
+ pub fn axis_panel_style<S: Into<ShapeStyle>>(&mut self, style: S) -> &mut Self {
+ self.axis_panel_style = style.into();
+ self
+ }
+
+ pub fn bold_grid_style<S: Into<ShapeStyle>>(&mut self, style: S) -> &mut Self {
+ self.bold_line_style = style.into();
+ self
+ }
+
+ pub fn light_grid_style<S: Into<ShapeStyle>>(&mut self, style: S) -> &mut Self {
+ self.light_line_style = style.into();
+ self
+ }
+
+ pub fn label_style<S: Into<TextStyle<'b>>>(&mut self, style: S) -> &mut Self {
+ self.label_style = style.into();
+ self
+ }
+
+ pub fn x_formatter<F: Fn(&X::ValueType) -> String>(&mut self, f: &'b F) -> &mut Self {
+ self.format_x = f;
+ self
+ }
+
+ pub fn y_formatter<F: Fn(&Y::ValueType) -> String>(&mut self, f: &'b F) -> &mut Self {
+ self.format_y = f;
+ self
+ }
+
+ pub fn z_formatter<F: Fn(&Z::ValueType) -> String>(&mut self, f: &'b F) -> &mut Self {
+ self.format_z = f;
+ self
+ }
+
+ pub(crate) fn new(chart: &'b mut ChartContext<'a, DB, Cartesian3d<X, Y, Z>>) -> Self {
+ let parent_size = chart.drawing_area.dim_in_pixel();
+ let base_tick_size = (5u32).percent().max(5).in_pixels(chart.plotting_area());
+ let tick_size = base_tick_size;
+ Self {
+ parent_size,
+ tick_size,
+ n_labels: [10, 10, 10],
+ bold_line_style: Into::<ShapeStyle>::into(&BLACK.mix(0.2)),
+ light_line_style: Into::<ShapeStyle>::into(&TRANSPARENT),
+ axis_panel_style: Into::<ShapeStyle>::into(&BLACK.mix(0.1)),
+ axis_style: Into::<ShapeStyle>::into(&BLACK.mix(0.8)),
+ label_style: ("sans-serf", (12).percent().max(12).in_pixels(&parent_size)).into(),
+ format_x: &X::format,
+ format_y: &Y::format,
+ format_z: &Z::format,
+ _phantom: PhantomData,
+ target: Some(chart),
+ }
+ }
+ pub fn draw(&mut self) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>>
+ where
+ XT: Clone,
+ YT: Clone,
+ ZT: Clone,
+ {
+ let chart = self.target.take().unwrap();
+ let kps_bold = chart.get_key_points(
+ BoldPoints(self.n_labels[0]),
+ BoldPoints(self.n_labels[1]),
+ BoldPoints(self.n_labels[2]),
+ );
+ let kps_light = chart.get_key_points(
+ LightPoints::new(self.n_labels[0], self.n_labels[0] * 10),
+ LightPoints::new(self.n_labels[1], self.n_labels[1] * 10),
+ LightPoints::new(self.n_labels[2], self.n_labels[2] * 10),
+ );
+
+ let panels = chart.draw_axis_panels(
+ &kps_bold,
+ &kps_light,
+ self.axis_panel_style.clone(),
+ self.bold_line_style.clone(),
+ self.light_line_style.clone(),
+ )?;
+
+ for i in 0..3 {
+ let axis = chart.draw_axis(i, &panels, self.axis_style.clone())?;
+ let labels: Vec<_> = match i {
+ 0 => kps_bold
+ .x_points
+ .iter()
+ .map(|x| {
+ let x_text = (self.format_x)(x);
+ let mut p = axis[0].clone();
+ p[0] = Coord3D::X(x.clone());
+ (p, x_text)
+ })
+ .collect(),
+ 1 => kps_bold
+ .y_points
+ .iter()
+ .map(|y| {
+ let y_text = (self.format_y)(y);
+ let mut p = axis[0].clone();
+ p[1] = Coord3D::Y(y.clone());
+ (p, y_text)
+ })
+ .collect(),
+ _ => kps_bold
+ .z_points
+ .iter()
+ .map(|z| {
+ let z_text = (self.format_z)(z);
+ let mut p = axis[0].clone();
+ p[2] = Coord3D::Z(z.clone());
+ (p, z_text)
+ })
+ .collect(),
+ };
+ chart.draw_axis_ticks(
+ axis,
+ &labels[..],
+ self.tick_size,
+ self.axis_style.clone(),
+ self.label_style.clone(),
+ )?;
+ }
+
+ Ok(())
+ }
+}
diff --git a/src/chart/builder.rs b/src/chart/builder.rs
index ee8ef12..b74167c 100644
--- a/src/chart/builder.rs
+++ b/src/chart/builder.rs
@@ -1,12 +1,17 @@
use super::context::ChartContext;
-use crate::coord::{AsRangedCoord, RangedCoord, Shift};
-use crate::drawing::backend::DrawingBackend;
+use crate::coord::cartesian::{Cartesian2d, Cartesian3d};
+use crate::coord::ranged1d::AsRangedCoord;
+use crate::coord::Shift;
+
use crate::drawing::{DrawingArea, DrawingAreaErrorKind};
use crate::style::{IntoTextStyle, SizeDesc, TextStyle};
+use plotters_backend::DrawingBackend;
+
/// The enum used to specify the position of label area.
-/// This is used when we configure the label area size with the API `set_label_area_size`
+/// This is used when we configure the label area size with the API
+/// [ChartBuilder::set_label_area_size](struct ChartBuilder.html#method.set_label_area_size)
#[derive(Copy, Clone)]
pub enum LabelAreaPosition {
Top = 0,
@@ -150,18 +155,33 @@ impl<'a, 'b, DB: DrawingBackend> ChartBuilder<'a, 'b, DB> {
self
}
+ #[allow(clippy::type_complexity)]
+ #[deprecated(
+ note = "`build_ranged` has been renamed to `build_cartesian_2d` and is to be removed in the future."
+ )]
+ pub fn build_ranged<X: AsRangedCoord, Y: AsRangedCoord>(
+ &mut self,
+ x_spec: X,
+ y_spec: Y,
+ ) -> Result<
+ ChartContext<'a, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
+ DrawingAreaErrorKind<DB::ErrorType>,
+ > {
+ self.build_cartesian_2d(x_spec, y_spec)
+ }
+
/// Build the chart with a 2D Cartesian coordinate system. The function will returns a chart
/// context, where data series can be rendered on.
/// - `x_spec`: The specification of X axis
/// - `y_spec`: The specification of Y axis
/// - Returns: A chart context
#[allow(clippy::type_complexity)]
- pub fn build_ranged<X: AsRangedCoord, Y: AsRangedCoord>(
+ pub fn build_cartesian_2d<X: AsRangedCoord, Y: AsRangedCoord>(
&mut self,
x_spec: X,
y_spec: Y,
) -> Result<
- ChartContext<'a, DB, RangedCoord<X::CoordDescType, Y::CoordDescType>>,
+ ChartContext<'a, DB, Cartesian2d<X::CoordDescType, Y::CoordDescType>>,
DrawingAreaErrorKind<DB::ErrorType>,
> {
let mut label_areas = [None, None, None, None];
@@ -204,6 +224,18 @@ impl<'a, 'b, DB: DrawingBackend> ChartBuilder<'a, 'b, DB> {
actual_drawing_area_pos[idx] += split_point;
}
+ // Now the root drawing area is to be split into
+ //
+ // +----------+------------------------------+------+
+ // | 0 | 1 (Top Label Area) | 2 |
+ // +----------+------------------------------+------+
+ // | 3 | | 5 |
+ // | Left | 4 (Plotting Area) | Right|
+ // | Labels | | Label|
+ // +----------+------------------------------+------+
+ // | 6 | 7 (Bottom Labels) | 8 |
+ // +----------+------------------------------+------+
+
let mut split: Vec<_> = drawing_area
.split_by_breakpoints(
&actual_drawing_area_pos[2..4],
@@ -213,8 +245,11 @@ impl<'a, 'b, DB: DrawingBackend> ChartBuilder<'a, 'b, DB> {
.map(Some)
.collect();
+ // Take out the plotting area
std::mem::swap(&mut drawing_area, split[4].as_mut().unwrap());
+ // Initialize the label areas - since the label area might be overlapping
+ // with the plotting area, in this case, we need handle them differently
for (src_idx, dst_idx) in [1, 7, 3, 5].iter().zip(0..4) {
if !self.overlap_plotting_area[dst_idx] {
let (h, w) = split[*src_idx].as_ref().unwrap().dim_in_pixel();
@@ -259,7 +294,7 @@ impl<'a, 'b, DB: DrawingBackend> ChartBuilder<'a, 'b, DB> {
Ok(ChartContext {
x_label_area,
y_label_area,
- drawing_area: drawing_area.apply_coord_spec(RangedCoord::new(
+ drawing_area: drawing_area.apply_coord_spec(Cartesian2d::new(
x_spec,
y_spec,
pixel_range,
@@ -271,6 +306,60 @@ impl<'a, 'b, DB: DrawingBackend> ChartBuilder<'a, 'b, DB> {
),
})
}
+
+ /// Build a 3 dimensional cartesian chart. The function will returns a chart
+ /// context, where data series can be rendered on.
+ /// - `x_spec`: The specification of X axis
+ /// - `y_spec`: The specification of Y axis
+ /// - `z_sepc`: The specification of Z axis
+ /// - Returns: A chart context
+ pub fn build_cartesian_3d<X: AsRangedCoord, Y: AsRangedCoord, Z: AsRangedCoord>(
+ &mut self,
+ x_spec: X,
+ y_spec: Y,
+ z_spec: Z,
+ ) -> Result<
+ ChartContext<'a, DB, Cartesian3d<X::CoordDescType, Y::CoordDescType, Z::CoordDescType>>,
+ DrawingAreaErrorKind<DB::ErrorType>,
+ > {
+ let mut drawing_area = DrawingArea::clone(self.root_area);
+
+ if *self.margin.iter().max().unwrap_or(&0) > 0 {
+ drawing_area = drawing_area.margin(
+ self.margin[0] as i32,
+ self.margin[1] as i32,
+ self.margin[2] as i32,
+ self.margin[3] as i32,
+ );
+ }
+
+ let (title_dx, title_dy) = if let Some((ref title, ref style)) = self.title {
+ let (origin_dx, origin_dy) = drawing_area.get_base_pixel();
+ drawing_area = drawing_area.titled(title, style.clone())?;
+ let (current_dx, current_dy) = drawing_area.get_base_pixel();
+ (current_dx - origin_dx, current_dy - origin_dy)
+ } else {
+ (0, 0)
+ };
+
+ let pixel_range = drawing_area.get_pixel_range();
+
+ Ok(ChartContext {
+ x_label_area: [None, None],
+ y_label_area: [None, None],
+ drawing_area: drawing_area.apply_coord_spec(Cartesian3d::new(
+ x_spec,
+ y_spec,
+ z_spec,
+ pixel_range,
+ )),
+ series_anno: vec![],
+ drawing_area_pos: (
+ title_dx + self.margin[2] as i32,
+ title_dy + self.margin[0] as i32,
+ ),
+ })
+ }
}
#[cfg(test)]
@@ -334,10 +423,7 @@ mod test {
assert_eq!(chart.title.as_ref().unwrap().0, "This is a test case");
assert_eq!(chart.title.as_ref().unwrap().1.font.get_name(), "serif");
assert_eq!(chart.title.as_ref().unwrap().1.font.get_size(), 10.0);
- assert_eq!(
- chart.title.as_ref().unwrap().1.color.to_rgba(),
- BLACK.to_rgba()
- );
+ check_color(chart.title.as_ref().unwrap().1.color, BLACK.to_rgba());
chart.caption("This is a test case", ("serif", 10));
assert_eq!(chart.title.as_ref().unwrap().1.font.get_name(), "serif");
diff --git a/src/chart/context.rs b/src/chart/context.rs
index 6f7d09e..eac4d53 100644
--- a/src/chart/context.rs
+++ b/src/chart/context.rs
@@ -1,74 +1,28 @@
use std::borrow::Borrow;
-use std::fmt::Debug;
-use std::marker::PhantomData;
use std::ops::Range;
-use std::sync::Arc;
-use super::dual_coord::DualCoordChartContext;
-use super::mesh::MeshStyle;
-use super::series::SeriesLabelStyle;
+use super::axes3d::Axes3dStyle;
+use super::{DualCoordChartContext, MeshStyle, SeriesAnno, SeriesLabelStyle};
+
+use crate::coord::cartesian::{Cartesian2d, Cartesian3d, MeshLine};
+use crate::coord::ranged1d::{AsRangedCoord, KeyPointHint, Ranged, ValueFormatter};
+use crate::coord::ranged3d::{ProjectionMatrix, ProjectionMatrixBuilder};
+use crate::coord::{CoordTranslate, ReverseCoordTranslate, Shift};
-use crate::coord::{
- AsRangedCoord, CoordTranslate, MeshLine, Ranged, RangedCoord, ReverseCoordTranslate, Shift,
-};
-use crate::drawing::backend::{BackendCoord, DrawingBackend};
use crate::drawing::{DrawingArea, DrawingAreaErrorKind};
-use crate::element::{Drawable, DynElement, IntoDynElement, PathElement, PointCollection};
+use crate::element::{Drawable, EmptyElement, PathElement, PointCollection, Polygon, Text};
use crate::style::text_anchor::{HPos, Pos, VPos};
-use crate::style::{AsRelative, FontTransform, ShapeStyle, SizeDesc, TextStyle};
-
-/// The annotations (such as the label of the series, the legend element, etc)
-/// When a series is drawn onto a drawing area, an series annotation object
-/// is created and a mutable reference is returned.
-#[allow(clippy::type_complexity)]
-pub struct SeriesAnno<'a, DB: DrawingBackend> {
- label: Option<String>,
- draw_func: Option<Box<dyn Fn(BackendCoord) -> DynElement<'a, DB, BackendCoord> + 'a>>,
- phantom_data: PhantomData<DB>,
-}
-
-impl<'a, DB: DrawingBackend> SeriesAnno<'a, DB> {
- pub(crate) fn get_label(&self) -> &str {
- self.label.as_ref().map(|x| x.as_str()).unwrap_or("")
- }
-
- pub(crate) fn get_draw_func(
- &self,
- ) -> Option<&dyn Fn(BackendCoord) -> DynElement<'a, DB, BackendCoord>> {
- self.draw_func.as_ref().map(|x| x.borrow())
- }
+use crate::style::{ShapeStyle, TextStyle};
- fn new() -> Self {
- Self {
- label: None,
- draw_func: None,
- phantom_data: PhantomData,
- }
- }
-
- /// Set the series label
- /// - `label`: The string would be use as label for current series
- pub fn label<L: Into<String>>(&mut self, label: L) -> &mut Self {
- self.label = Some(label.into());
- self
- }
-
- /// Set the legend element creator function
- /// - `func`: The function use to create the element
- /// *Note*: The creation function uses a shifted pixel-based coordinate system. And place the
- /// point (0,0) to the mid-right point of the shape
- pub fn legend<E: IntoDynElement<'a, DB, BackendCoord>, T: Fn(BackendCoord) -> E + 'a>(
- &mut self,
- func: T,
- ) -> &mut Self {
- self.draw_func = Some(Box::new(move |p| func(p).into_dyn()));
- self
- }
-}
+use plotters_backend::{BackendCoord, DrawingBackend, FontTransform};
/// The context of the chart. This is the core object of Plotters.
/// Any plot/chart is abstracted as this type, and any data series can be placed to the chart
/// context.
+///
+/// - To draw a series on a chart context, use [ChartContext::draw_series](struct.ChartContext.html#method.draw_series)
+/// - To draw a single element to the chart, you may want to use [ChartContext::plotting_area](struct.ChartContext.html#method.plotting_area)
+///
pub struct ChartContext<'a, DB: DrawingBackend, CT: CoordTranslate> {
pub(super) x_label_area: [Option<DrawingArea<DB, Shift>>; 2],
pub(super) y_label_area: [Option<DrawingArea<DB, Shift>>; 2],
@@ -77,111 +31,16 @@ pub struct ChartContext<'a, DB: DrawingBackend, CT: CoordTranslate> {
pub(super) drawing_area_pos: (i32, i32),
}
-/// A chart context state - This is the data that is needed to reconstruct the chart context
-/// without actually drawing the chart. This is useful when we want to do realtime rendering and
-/// want to incrementally update the chart.
-///
-/// For each frame, instead of updating the entire backend, we are able to keep the keep the figure
-/// component like axis, labels untouched and make updates only in the plotting drawing area.
-pub struct ChartState<CT: CoordTranslate> {
- drawing_area_pos: (i32, i32),
- drawing_area_size: (u32, u32),
- coord: CT,
-}
-
-impl<'a, CT: CoordTranslate + Clone> Clone for ChartState<CT> {
- fn clone(&self) -> Self {
- Self {
- drawing_area_size: self.drawing_area_size,
- drawing_area_pos: self.drawing_area_pos,
- coord: self.coord.clone(),
- }
- }
-}
-
-impl<'a, DB: DrawingBackend, CT: CoordTranslate> From<ChartContext<'a, DB, CT>> for ChartState<CT> {
- fn from(chart: ChartContext<'a, DB, CT>) -> ChartState<CT> {
- ChartState {
- drawing_area_pos: chart.drawing_area_pos,
- drawing_area_size: chart.drawing_area.dim_in_pixel(),
- coord: chart.drawing_area.into_coord_spec(),
- }
- }
-}
-
-impl<'a, DB: DrawingBackend, CT: CoordTranslate> ChartContext<'a, DB, CT> {
- /// Convert a chart context into a chart state, by doing so, the chart context is consumed and
- /// a saved chart state is created for later use.
- pub fn into_chart_state(self) -> ChartState<CT> {
- self.into()
- }
-
- /// Convert the chart context into a sharable chart state.
- /// Normally a chart state can not be clone, since the coordinate spec may not be able to be
- /// cloned. In this case, we can use an `Arc` get the coordinate wrapped thus the state can be
- /// cloned and shared by multiple chart context
- pub fn into_shared_chart_state(self) -> ChartState<Arc<CT>> {
- ChartState {
- drawing_area_pos: self.drawing_area_pos,
- drawing_area_size: self.drawing_area.dim_in_pixel(),
- coord: Arc::new(self.drawing_area.into_coord_spec()),
- }
- }
-}
-
-impl<'a, 'b, DB, CT> From<&ChartContext<'a, DB, CT>> for ChartState<CT>
+impl<'a, DB, XT, YT, X, Y> ChartContext<'a, DB, Cartesian2d<X, Y>>
where
DB: DrawingBackend,
- CT: CoordTranslate + Clone,
-{
- fn from(chart: &ChartContext<'a, DB, CT>) -> ChartState<CT> {
- ChartState {
- drawing_area_pos: chart.drawing_area_pos,
- drawing_area_size: chart.drawing_area.dim_in_pixel(),
- coord: chart.drawing_area.as_coord_spec().clone(),
- }
- }
-}
-
-impl<'a, DB: DrawingBackend, CT: CoordTranslate + Clone> ChartContext<'a, DB, CT> {
- /// Make the chart context, do not consume the chart context and clone the coordinate spec
- pub fn to_chart_state(&self) -> ChartState<CT> {
- self.into()
- }
-}
-
-impl<CT: CoordTranslate> ChartState<CT> {
- /// Restore the chart context on the given drawing area
- ///
- /// - `area`: The given drawing area where we want to restore the chart context
- /// - **returns** The newly created chart context
- pub fn restore<'a, DB: DrawingBackend>(
- self,
- area: &DrawingArea<DB, Shift>,
- ) -> ChartContext<'a, DB, CT> {
- let area = area
- .clone()
- .shrink(self.drawing_area_pos, self.drawing_area_size);
- ChartContext {
- x_label_area: [None, None],
- y_label_area: [None, None],
- drawing_area: area.apply_coord_spec(self.coord),
- series_anno: vec![],
- drawing_area_pos: self.drawing_area_pos,
- }
- }
-}
-
-impl<
- 'a,
- DB: DrawingBackend,
- XT: Debug,
- YT: Debug,
- X: Ranged<ValueType = XT>,
- Y: Ranged<ValueType = YT>,
- > ChartContext<'a, DB, RangedCoord<X, Y>>
+ X: Ranged<ValueType = XT> + ValueFormatter<XT>,
+ Y: Ranged<ValueType = YT> + ValueFormatter<YT>,
{
- fn is_overlapping_drawing_area(&self, area: Option<&DrawingArea<DB, Shift>>) -> bool {
+ pub(crate) fn is_overlapping_drawing_area(
+ &self,
+ area: Option<&DrawingArea<DB, Shift>>,
+ ) -> bool {
if let Some(area) = area {
let (x0, y0) = area.get_base_pixel();
let (w, h) = area.dim_in_pixel();
@@ -200,53 +59,26 @@ impl<
}
/// Initialize a mesh configuration object and mesh drawing can be finalized by calling
- /// the function `MeshStyle::draw`
- pub fn configure_mesh<'b>(&'b mut self) -> MeshStyle<'a, 'b, X, Y, DB> {
- let base_tick_size = (5u32).percent().max(5).in_pixels(&self.drawing_area);
-
- let mut x_tick_size = [base_tick_size, base_tick_size];
- let mut y_tick_size = [base_tick_size, base_tick_size];
-
- for idx in 0..2 {
- if self.is_overlapping_drawing_area(self.x_label_area[idx].as_ref()) {
- x_tick_size[idx] = -x_tick_size[idx];
- }
- if self.is_overlapping_drawing_area(self.y_label_area[idx].as_ref()) {
- y_tick_size[idx] = -y_tick_size[idx];
- }
- }
+ /// the function `MeshStyle::draw`.
+ pub fn configure_mesh(&mut self) -> MeshStyle<'a, '_, X, Y, DB> {
+ MeshStyle::new(self)
+ }
+}
- MeshStyle {
- parent_size: self.drawing_area.dim_in_pixel(),
- axis_style: None,
- x_label_offset: 0,
- y_label_offset: 0,
- draw_x_mesh: true,
- draw_y_mesh: true,
- draw_x_axis: true,
- draw_y_axis: true,
- n_x_labels: 10,
- n_y_labels: 10,
- line_style_1: None,
- line_style_2: None,
- x_label_style: None,
- y_label_style: None,
- format_x: &|x| format!("{:?}", x),
- format_y: &|y| format!("{:?}", y),
- target: Some(self),
- _phantom_data: PhantomData,
- x_desc: None,
- y_desc: None,
- axis_desc_style: None,
- x_tick_size,
- y_tick_size,
- }
+impl<'a, DB: DrawingBackend, CT: ReverseCoordTranslate> ChartContext<'a, DB, CT> {
+ /// Convert the chart context into an closure that can be used for coordinate translation
+ pub fn into_coord_trans(self) -> impl Fn(BackendCoord) -> Option<CT::From> {
+ let coord_spec = self.drawing_area.into_coord_spec();
+ move |coord| coord_spec.reverse_translate(coord)
}
}
-impl<'a, DB: DrawingBackend + 'a, CT: CoordTranslate> ChartContext<'a, DB, CT> {
+impl<'a, DB: DrawingBackend, CT: CoordTranslate> ChartContext<'a, DB, CT> {
/// Configure the styles for drawing series labels in the chart
- pub fn configure_series_labels<'b>(&'b mut self) -> SeriesLabelStyle<'a, 'b, DB, CT> {
+ pub fn configure_series_labels<'b>(&'b mut self) -> SeriesLabelStyle<'a, 'b, DB, CT>
+ where
+ DB: 'a,
+ {
SeriesLabelStyle::new(self)
}
@@ -254,29 +86,23 @@ impl<'a, DB: DrawingBackend + 'a, CT: CoordTranslate> ChartContext<'a, DB, CT> {
pub fn plotting_area(&self) -> &DrawingArea<DB, CT> {
&self.drawing_area
}
-}
-impl<'a, DB: DrawingBackend, CT: CoordTranslate> ChartContext<'a, DB, CT> {
+ /// Cast the reference to a chart context to a reference to underlying coordinate specification.
pub fn as_coord_spec(&self) -> &CT {
self.drawing_area.as_coord_spec()
}
-}
-
-impl<'a, DB: DrawingBackend, CT: ReverseCoordTranslate> ChartContext<'a, DB, CT> {
- /// Convert the chart context into an closure that can be used for coordinate translation
- pub fn into_coord_trans(self) -> impl Fn(BackendCoord) -> Option<CT::From> {
- let coord_spec = self.drawing_area.into_coord_spec();
- move |coord| coord_spec.reverse_translate(coord)
- }
-}
-impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, Arc<RangedCoord<X, Y>>> {
+ // TODO: All draw_series_impl is overly strict about lifetime, because we don't have stable HKT,
+ // what we can ensure is for all lifetime 'b the element reference &'b E is a iterator
+ // of points reference with the same lifetime.
+ // However, this doesn't work if the coordinate doesn't live longer than the backend,
+ // this is unnecessarily strict
pub(super) fn draw_series_impl<E, R, S>(
&mut self,
series: S,
) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>>
where
- for<'b> &'b E: PointCollection<'b, (X::ValueType, Y::ValueType)>,
+ for<'b> &'b E: PointCollection<'b, CT::From>,
E: Drawable<DB>,
R: Borrow<E>,
S: IntoIterator<Item = R>,
@@ -299,7 +125,7 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, Arc<Rang
series: S,
) -> Result<&mut SeriesAnno<'a, DB>, DrawingAreaErrorKind<DB::ErrorType>>
where
- for<'b> &'b E: PointCollection<'b, (X::ValueType, Y::ValueType)>,
+ for<'b> &'b E: PointCollection<'b, CT::From>,
E: Drawable<DB>,
R: Borrow<E>,
S: IntoIterator<Item = R>,
@@ -309,7 +135,7 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, Arc<Rang
}
}
-impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, RangedCoord<X, Y>> {
+impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, Cartesian2d<X, Y>> {
/// Get the range of X axis
pub fn x_range(&self) -> Range<X::ValueType> {
self.drawing_area.get_x_range()
@@ -326,49 +152,12 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, RangedCo
self.drawing_area.map_coordinate(coord)
}
- pub(super) fn draw_series_impl<E, R, S>(
- &mut self,
- series: S,
- ) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>>
- where
- for<'b> &'b E: PointCollection<'b, (X::ValueType, Y::ValueType)>,
- E: Drawable<DB>,
- R: Borrow<E>,
- S: IntoIterator<Item = R>,
- {
- for element in series {
- self.drawing_area.draw(element.borrow())?;
- }
- Ok(())
- }
-
- pub(super) fn alloc_series_anno(&mut self) -> &mut SeriesAnno<'a, DB> {
- let idx = self.series_anno.len();
- self.series_anno.push(SeriesAnno::new());
- &mut self.series_anno[idx]
- }
-
- /// Draw a data series. A data series in Plotters is abstracted as an iterator of elements
- pub fn draw_series<E, R, S>(
- &mut self,
- series: S,
- ) -> Result<&mut SeriesAnno<'a, DB>, DrawingAreaErrorKind<DB::ErrorType>>
- where
- for<'b> &'b E: PointCollection<'b, (X::ValueType, Y::ValueType)>,
- E: Drawable<DB>,
- R: Borrow<E>,
- S: IntoIterator<Item = R>,
- {
- self.draw_series_impl(series)?;
- Ok(self.alloc_series_anno())
- }
-
/// The actual function that draws the mesh lines.
/// It also returns the label that suppose to be there.
#[allow(clippy::type_complexity)]
- fn draw_mesh_lines<FmtLabel>(
+ fn draw_mesh_lines<FmtLabel, YH: KeyPointHint, XH: KeyPointHint>(
&mut self,
- (r, c): (usize, usize),
+ (r, c): (YH, XH),
(x_mesh, y_mesh): (bool, bool),
mesh_line_style: &ShapeStyle,
mut fmt_label: FmtLabel,
@@ -665,9 +454,9 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, RangedCo
}
#[allow(clippy::too_many_arguments)]
- pub(super) fn draw_mesh<FmtLabel>(
+ pub(super) fn draw_mesh<FmtLabel, YH: KeyPointHint, XH: KeyPointHint>(
&mut self,
- (r, c): (usize, usize),
+ (r, c): (YH, XH),
mesh_line_style: &ShapeStyle,
x_label_style: &TextStyle,
y_label_style: &TextStyle,
@@ -718,7 +507,8 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, RangedCo
Ok(())
}
- /// Convert this chart context into a dual axis chart context
+ /// Convert this chart context into a dual axis chart context and attach a second coordinate spec
+ /// on the chart context. For more detailed information, see documentation for [struct DualCoordChartContext](struct.DualCoordChartContext.html)
///
/// - `x_coord`: The coordinate spec for the X axis
/// - `y_coord`: The coordinate spec for the Y axis
@@ -731,13 +521,360 @@ impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged> ChartContext<'a, DB, RangedCo
) -> DualCoordChartContext<
'a,
DB,
- RangedCoord<X, Y>,
- RangedCoord<SX::CoordDescType, SY::CoordDescType>,
+ Cartesian2d<X, Y>,
+ Cartesian2d<SX::CoordDescType, SY::CoordDescType>,
> {
let mut pixel_range = self.drawing_area.get_pixel_range();
pixel_range.1 = pixel_range.1.end..pixel_range.1.start;
- DualCoordChartContext::new(self, RangedCoord::new(x_coord, y_coord, pixel_range))
+ DualCoordChartContext::new(self, Cartesian2d::new(x_coord, y_coord, pixel_range))
+ }
+}
+
+pub(super) struct KeyPoints3d<X: Ranged, Y: Ranged, Z: Ranged> {
+ pub(super) x_points: Vec<X::ValueType>,
+ pub(super) y_points: Vec<Y::ValueType>,
+ pub(super) z_points: Vec<Z::ValueType>,
+}
+
+#[derive(Clone, Debug)]
+pub(super) enum Coord3D<X, Y, Z> {
+ X(X),
+ Y(Y),
+ Z(Z),
+}
+
+impl<X, Y, Z> Coord3D<X, Y, Z> {
+ fn get_x(&self) -> &X {
+ match self {
+ Coord3D::X(ret) => ret,
+ _ => panic!("Invalid call!"),
+ }
+ }
+ fn get_y(&self) -> &Y {
+ match self {
+ Coord3D::Y(ret) => ret,
+ _ => panic!("Invalid call!"),
+ }
+ }
+ fn get_z(&self) -> &Z {
+ match self {
+ Coord3D::Z(ret) => ret,
+ _ => panic!("Invalid call!"),
+ }
+ }
+
+ fn build_coord([x, y, z]: [&Self; 3]) -> (X, Y, Z)
+ where
+ X: Clone,
+ Y: Clone,
+ Z: Clone,
+ {
+ (x.get_x().clone(), y.get_y().clone(), z.get_z().clone())
+ }
+}
+impl<'a, DB, X, Y, Z, XT, YT, ZT> ChartContext<'a, DB, Cartesian3d<X, Y, Z>>
+where
+ DB: DrawingBackend,
+ X: Ranged<ValueType = XT> + ValueFormatter<XT>,
+ Y: Ranged<ValueType = YT> + ValueFormatter<YT>,
+ Z: Ranged<ValueType = ZT> + ValueFormatter<ZT>,
+{
+ pub fn configure_axes(&mut self) -> Axes3dStyle<'a, '_, X, Y, Z, DB> {
+ Axes3dStyle::new(self)
+ }
+}
+impl<'a, DB, X: Ranged, Y: Ranged, Z: Ranged> ChartContext<'a, DB, Cartesian3d<X, Y, Z>>
+where
+ DB: DrawingBackend,
+{
+ /// Override the 3D projection matrix. This function allows to override the default projection
+ /// matrix.
+ /// - `pf`: A function that takes the default projection matrix configuration and returns the
+ /// projection matrix. This function will allow you to adjust the pitch, yaw angle and the
+ /// centeral point of the projection, etc. You can also build a projection matrix which is not
+ /// relies on the default configuration as well.
+ pub fn with_projection<P: FnOnce(ProjectionMatrixBuilder) -> ProjectionMatrix>(
+ &mut self,
+ pf: P,
+ ) -> &mut Self {
+ let (actual_x, actual_y) = self.drawing_area.get_pixel_range();
+ self.drawing_area
+ .as_coord_spec_mut()
+ .set_projection(actual_x, actual_y, pf);
+ self
+ }
+}
+
+impl<'a, DB, X: Ranged, Y: Ranged, Z: Ranged> ChartContext<'a, DB, Cartesian3d<X, Y, Z>>
+where
+ DB: DrawingBackend,
+ X::ValueType: Clone,
+ Y::ValueType: Clone,
+ Z::ValueType: Clone,
+{
+ pub(super) fn get_key_points<XH: KeyPointHint, YH: KeyPointHint, ZH: KeyPointHint>(
+ &self,
+ x_hint: XH,
+ y_hint: YH,
+ z_hint: ZH,
+ ) -> KeyPoints3d<X, Y, Z> {
+ let coord = self.plotting_area().as_coord_spec();
+ let x_points = coord.logic_x.key_points(x_hint);
+ let y_points = coord.logic_y.key_points(y_hint);
+ let z_points = coord.logic_z.key_points(z_hint);
+ KeyPoints3d {
+ x_points,
+ y_points,
+ z_points,
+ }
+ }
+ pub(super) fn draw_axis_ticks(
+ &mut self,
+ axis: [[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3]; 2],
+ labels: &[(
+ [Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3],
+ String,
+ )],
+ tick_size: i32,
+ style: ShapeStyle,
+ font: TextStyle,
+ ) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>> {
+ let coord = self.plotting_area().as_coord_spec();
+ let begin = coord.translate(&Coord3D::build_coord([
+ &axis[0][0],
+ &axis[0][1],
+ &axis[0][2],
+ ]));
+ let end = coord.translate(&Coord3D::build_coord([
+ &axis[1][0],
+ &axis[1][1],
+ &axis[1][2],
+ ]));
+ let axis_dir = (end.0 - begin.0, end.1 - begin.1);
+ let (x_range, y_range) = self.plotting_area().get_pixel_range();
+ let x_mid = (x_range.start + x_range.end) / 2;
+ let y_mid = (y_range.start + y_range.end) / 2;
+
+ let x_dir = if begin.0 < x_mid {
+ (-tick_size, 0)
+ } else {
+ (tick_size, 0)
+ };
+
+ let y_dir = if begin.1 < y_mid {
+ (0, -tick_size)
+ } else {
+ (0, tick_size)
+ };
+
+ let x_score = (x_dir.0 * axis_dir.0 + x_dir.1 * axis_dir.1).abs();
+ let y_score = (y_dir.0 * axis_dir.0 + y_dir.1 * axis_dir.1).abs();
+
+ let dir = if x_score < y_score { x_dir } else { y_dir };
+
+ for (pos, text) in labels {
+ let logic_pos = Coord3D::build_coord([&pos[0], &pos[1], &pos[2]]);
+ let mut font = font.clone();
+ if dir.0 < 0 {
+ font.pos = Pos::new(HPos::Right, VPos::Center);
+ } else if dir.0 > 0 {
+ font.pos = Pos::new(HPos::Left, VPos::Center);
+ };
+ if dir.1 < 0 {
+ font.pos = Pos::new(HPos::Center, VPos::Bottom);
+ } else if dir.1 > 0 {
+ font.pos = Pos::new(HPos::Center, VPos::Top);
+ };
+ let element = EmptyElement::at(logic_pos)
+ + PathElement::new(vec![(0, 0), dir], style.clone())
+ + Text::new(text.to_string(), (dir.0 * 2, dir.1 * 2), font.clone());
+ self.plotting_area().draw(&element)?;
+ }
+ Ok(())
+ }
+ pub(super) fn draw_axis(
+ &mut self,
+ idx: usize,
+ panels: &[[[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3]; 2]; 3],
+ style: ShapeStyle,
+ ) -> Result<
+ [[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3]; 2],
+ DrawingAreaErrorKind<DB::ErrorType>,
+ > {
+ let coord = self.plotting_area().as_coord_spec();
+ let x_range = coord.logic_x.range();
+ let y_range = coord.logic_y.range();
+ let z_range = coord.logic_z.range();
+
+ let ranges: [[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 2]; 3] = [
+ [Coord3D::X(x_range.start), Coord3D::X(x_range.end)],
+ [Coord3D::Y(y_range.start), Coord3D::Y(y_range.end)],
+ [Coord3D::Z(z_range.start), Coord3D::Z(z_range.end)],
+ ];
+
+ let (start, end) = {
+ let mut start = [&ranges[0][0], &ranges[1][0], &ranges[2][0]];
+ let mut end = [&ranges[0][1], &ranges[1][1], &ranges[2][1]];
+
+ let mut plan = vec![];
+
+ for i in 0..3 {
+ if i == idx {
+ continue;
+ }
+ start[i] = &panels[i][0][i];
+ end[i] = &panels[i][0][i];
+ for j in 0..3 {
+ if i != idx && i != j && j != idx {
+ for k in 0..2 {
+ start[j] = &panels[i][k][j];
+ end[j] = &panels[i][k][j];
+ plan.push((start, end));
+ }
+ }
+ }
+ }
+ plan.into_iter()
+ .min_by_key(|&(s, e)| {
+ let d = coord.projected_depth(s[0].get_x(), s[1].get_y(), s[2].get_z());
+ let d = d + coord.projected_depth(e[0].get_x(), e[1].get_y(), e[2].get_z());
+ let (_, y1) = coord.translate(&Coord3D::build_coord(s));
+ let (_, y2) = coord.translate(&Coord3D::build_coord(e));
+ let y = y1 + y2;
+ (d, y)
+ })
+ .unwrap()
+ };
+
+ self.plotting_area().draw(&PathElement::new(
+ vec![Coord3D::build_coord(start), Coord3D::build_coord(end)],
+ style.clone(),
+ ))?;
+
+ Ok([
+ [start[0].clone(), start[1].clone(), start[2].clone()],
+ [end[0].clone(), end[1].clone(), end[2].clone()],
+ ])
+ }
+ pub(super) fn draw_axis_panels(
+ &mut self,
+ bold_points: &KeyPoints3d<X, Y, Z>,
+ light_points: &KeyPoints3d<X, Y, Z>,
+ panel_style: ShapeStyle,
+ bold_grid_style: ShapeStyle,
+ light_grid_style: ShapeStyle,
+ ) -> Result<
+ [[[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3]; 2]; 3],
+ DrawingAreaErrorKind<DB::ErrorType>,
+ > {
+ let mut r_iter = (0..3).map(|idx| {
+ self.draw_axis_panel(
+ idx,
+ bold_points,
+ light_points,
+ panel_style.clone(),
+ bold_grid_style.clone(),
+ light_grid_style.clone(),
+ )
+ });
+ Ok([
+ r_iter.next().unwrap()?,
+ r_iter.next().unwrap()?,
+ r_iter.next().unwrap()?,
+ ])
+ }
+ fn draw_axis_panel(
+ &mut self,
+ idx: usize,
+ bold_points: &KeyPoints3d<X, Y, Z>,
+ light_points: &KeyPoints3d<X, Y, Z>,
+ panel_style: ShapeStyle,
+ bold_grid_style: ShapeStyle,
+ light_grid_style: ShapeStyle,
+ ) -> Result<
+ [[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 3]; 2],
+ DrawingAreaErrorKind<DB::ErrorType>,
+ > {
+ let coord = self.plotting_area().as_coord_spec();
+ let x_range = coord.logic_x.range();
+ let y_range = coord.logic_y.range();
+ let z_range = coord.logic_z.range();
+
+ let ranges: [[Coord3D<X::ValueType, Y::ValueType, Z::ValueType>; 2]; 3] = [
+ [Coord3D::X(x_range.start), Coord3D::X(x_range.end)],
+ [Coord3D::Y(y_range.start), Coord3D::Y(y_range.end)],
+ [Coord3D::Z(z_range.start), Coord3D::Z(z_range.end)],
+ ];
+
+ let (mut panel, start, end) = {
+ let a = [&ranges[0][0], &ranges[1][0], &ranges[2][0]];
+ let mut b = [&ranges[0][1], &ranges[1][1], &ranges[2][1]];
+ let mut c = a;
+ let d = b;
+
+ b[idx] = &ranges[idx][0];
+ c[idx] = &ranges[idx][1];
+
+ let (a, b) = if coord.projected_depth(a[0].get_x(), a[1].get_y(), a[2].get_z())
+ >= coord.projected_depth(c[0].get_x(), c[1].get_y(), c[2].get_z())
+ {
+ (a, b)
+ } else {
+ (c, d)
+ };
+
+ let mut m = a.clone();
+ m[(idx + 1) % 3] = b[(idx + 1) % 3];
+ let mut n = a.clone();
+ n[(idx + 2) % 3] = b[(idx + 2) % 3];
+
+ (
+ vec![
+ Coord3D::build_coord(a),
+ Coord3D::build_coord(m),
+ Coord3D::build_coord(b),
+ Coord3D::build_coord(n),
+ ],
+ a,
+ b,
+ )
+ };
+ self.plotting_area()
+ .draw(&Polygon::new(panel.clone(), panel_style.clone()))?;
+ panel.push(panel[0].clone());
+ self.plotting_area()
+ .draw(&PathElement::new(panel, bold_grid_style.clone()))?;
+
+ for (kps, style) in vec![
+ (light_points, light_grid_style),
+ (bold_points, bold_grid_style),
+ ]
+ .into_iter()
+ {
+ for idx in (0..3).filter(|&i| i != idx) {
+ let kps: Vec<_> = match idx {
+ 0 => kps.x_points.iter().map(|x| Coord3D::X(x.clone())).collect(),
+ 1 => kps.y_points.iter().map(|y| Coord3D::Y(y.clone())).collect(),
+ _ => kps.z_points.iter().map(|z| Coord3D::Z(z.clone())).collect(),
+ };
+ for kp in kps.iter() {
+ let mut kp_start = start;
+ let mut kp_end = end;
+ kp_start[idx] = kp;
+ kp_end[idx] = kp;
+ self.plotting_area().draw(&PathElement::new(
+ vec![Coord3D::build_coord(kp_start), Coord3D::build_coord(kp_end)],
+ style.clone(),
+ ))?;
+ }
+ }
+ }
+
+ Ok([
+ [start[0].clone(), start[1].clone(), start[2].clone()],
+ [end[0].clone(), end[1].clone(), end[2].clone()],
+ ])
}
}
@@ -757,7 +894,7 @@ mod test {
.y_label_area_size(20)
.set_label_area_size(LabelAreaPosition::Top, 20)
.set_label_area_size(LabelAreaPosition::Right, 20)
- .build_ranged(0..10, 0..10)
+ .build_cartesian_2d(0..10, 0..10)
.expect("Create chart")
.set_secondary_coord(0.0..1.0, 0.0..1.0);
@@ -789,4 +926,33 @@ mod test {
.draw()
.expect("Drawing error");
}
+
+ #[test]
+ fn test_chart_context_3d() {
+ let drawing_area = create_mocked_drawing_area(200, 200, |_| {});
+
+ drawing_area.fill(&WHITE).expect("Fill");
+
+ let mut chart = ChartBuilder::on(&drawing_area)
+ .caption("Test Title", ("serif", 10))
+ .x_label_area_size(20)
+ .y_label_area_size(20)
+ .set_label_area_size(LabelAreaPosition::Top, 20)
+ .set_label_area_size(LabelAreaPosition::Right, 20)
+ .build_cartesian_3d(0..10, 0..10, 0..10)
+ .expect("Create chart");
+
+ chart.with_projection(|mut pb| {
+ pb.yaw = 0.5;
+ pb.pitch = 0.5;
+ pb.scale = 0.5;
+ pb.into_matrix()
+ });
+
+ chart.configure_axes().draw().expect("Drawing axes");
+
+ chart
+ .draw_series(std::iter::once(Circle::new((5, 5, 5), 5, &RED)))
+ .expect("Drawing error");
+ }
}
diff --git a/src/chart/dual_coord.rs b/src/chart/dual_coord.rs
index dcc0ce8..9138f65 100644
--- a/src/chart/dual_coord.rs
+++ b/src/chart/dual_coord.rs
@@ -1,35 +1,46 @@
/// The dual coordinate system support
use std::borrow::{Borrow, BorrowMut};
-use std::fmt::Debug;
use std::ops::{Deref, DerefMut};
use std::sync::Arc;
-use super::context::{ChartContext, ChartState, SeriesAnno};
use super::mesh::SecondaryMeshStyle;
+use super::{ChartContext, ChartState, SeriesAnno};
+
+use crate::coord::cartesian::Cartesian2d;
+use crate::coord::ranged1d::{Ranged, ValueFormatter};
+use crate::coord::{CoordTranslate, ReverseCoordTranslate, Shift};
-use crate::coord::{CoordTranslate, Ranged, RangedCoord, ReverseCoordTranslate, Shift};
-use crate::drawing::backend::{BackendCoord, DrawingBackend};
use crate::drawing::DrawingArea;
use crate::drawing::DrawingAreaErrorKind;
use crate::element::{Drawable, PointCollection};
-/// The chart context that has two coordinate system attached
+use plotters_backend::{BackendCoord, DrawingBackend};
+
+/// The chart context that has two coordinate system attached.
+/// This situation is quite common, for example, we with two different coodinate system.
+/// For instance this example <img src="https://plotters-rs.github.io/plotters-doc-data/twoscale.png"></img>
+/// This is done by attaching a second coordinate system to ChartContext by method [ChartContext::set_secondary_coord](struct.ChartContext.html#method.set_secondary_coord).
+/// For instance of dual coordinate charts, see [this example](https://github.com/38/plotters/blob/master/examples/two-scales.rs#L15).
+/// Note: `DualCoordChartContext` is always deref to the chart context.
+/// - If you want to configure the secondary axis, method [DualCoordChartContext::configure_secondary_axes](struct.DualCoordChartContext.html#method.configure_secondary_axes)
+/// - If you want to draw a series using secondary coordinate system, use [DualCoordChartContext::draw_secondary_series](struct.DualCoordChartContext.html#method.draw_secondary_series). And method [ChartContext::draw_series](struct.ChartContext.html#method.draw_series) will always use primary coordinate spec.
pub struct DualCoordChartContext<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate> {
pub(super) primary: ChartContext<'a, DB, CT1>,
pub(super) secondary: ChartContext<'a, DB, CT2>,
}
/// The chart state for a dual coord chart, see the detailed description for `ChartState` for more
-/// information about the purpose of a chart state
+/// information about the purpose of a chart state.
+/// Similar to [ChartState](struct.ChartState.html), but used for the dual coordinate charts.
pub struct DualCoordChartState<CT1: CoordTranslate, CT2: CoordTranslate> {
primary: ChartState<CT1>,
secondary: ChartState<CT2>,
}
-impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
- DualCoordChartContext<'a, DB, CT1, CT2>
+impl<DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
+ DualCoordChartContext<'_, DB, CT1, CT2>
{
- /// Convert the chart context into a chart state
+ /// Convert the chart context into a chart state, similar to [ChartContext::into_chart_state](struct.ChartContext.html#method.into_chart_state)
pub fn into_chart_state(self) -> DualCoordChartState<CT1, CT2> {
DualCoordChartState {
primary: self.primary.into(),
@@ -37,23 +48,20 @@ impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
}
}
- /// Convert the chart context into a sharable chart state
+ /// Convert the chart context into a sharable chart state.
pub fn into_shared_chart_state(self) -> DualCoordChartState<Arc<CT1>, Arc<CT2>> {
DualCoordChartState {
primary: self.primary.into_shared_chart_state(),
secondary: self.secondary.into_shared_chart_state(),
}
}
-}
-impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
- DualCoordChartContext<'a, DB, CT1, CT2>
-where
- CT1: Clone,
- CT2: Clone,
-{
- /// Copy the coordinate specs and make the chart state
- pub fn to_chart_state(&self) -> DualCoordChartState<CT1, CT2> {
+ /// Copy the coordinate specs and make a chart state
+ pub fn to_chart_state(&self) -> DualCoordChartState<CT1, CT2>
+ where
+ CT1: Clone,
+ CT2: Clone,
+ {
DualCoordChartState {
primary: self.primary.to_chart_state(),
secondary: self.secondary.to_chart_state(),
@@ -63,10 +71,10 @@ where
impl<CT1: CoordTranslate, CT2: CoordTranslate> DualCoordChartState<CT1, CT2> {
/// Restore the chart state on the given drawing area
- pub fn restore<'a, DB: DrawingBackend + 'a>(
+ pub fn restore<DB: DrawingBackend>(
self,
area: &DrawingArea<DB, Shift>,
- ) -> DualCoordChartContext<'a, DB, CT1, CT2> {
+ ) -> DualCoordChartContext<'_, DB, CT1, CT2> {
let primary = self.primary.restore(area);
let secondary = self
.secondary
@@ -75,18 +83,18 @@ impl<CT1: CoordTranslate, CT2: CoordTranslate> DualCoordChartState<CT1, CT2> {
}
}
-impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
- From<DualCoordChartContext<'a, DB, CT1, CT2>> for DualCoordChartState<CT1, CT2>
+impl<DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
+ From<DualCoordChartContext<'_, DB, CT1, CT2>> for DualCoordChartState<CT1, CT2>
{
- fn from(chart: DualCoordChartContext<'a, DB, CT1, CT2>) -> DualCoordChartState<CT1, CT2> {
+ fn from(chart: DualCoordChartContext<'_, DB, CT1, CT2>) -> DualCoordChartState<CT1, CT2> {
chart.into_chart_state()
}
}
-impl<'a, 'b, DB: DrawingBackend, CT1: CoordTranslate + Clone, CT2: CoordTranslate + Clone>
- From<&'b DualCoordChartContext<'a, DB, CT1, CT2>> for DualCoordChartState<CT1, CT2>
+impl<'b, DB: DrawingBackend, CT1: CoordTranslate + Clone, CT2: CoordTranslate + Clone>
+ From<&'b DualCoordChartContext<'_, DB, CT1, CT2>> for DualCoordChartState<CT1, CT2>
{
- fn from(chart: &'b DualCoordChartContext<'a, DB, CT1, CT2>) -> DualCoordChartState<CT1, CT2> {
+ fn from(chart: &'b DualCoordChartContext<'_, DB, CT1, CT2>) -> DualCoordChartState<CT1, CT2> {
chart.to_chart_state()
}
}
@@ -129,8 +137,8 @@ impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: CoordTranslate>
}
}
-impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: ReverseCoordTranslate>
- DualCoordChartContext<'a, DB, CT1, CT2>
+impl<DB: DrawingBackend, CT1: CoordTranslate, CT2: ReverseCoordTranslate>
+ DualCoordChartContext<'_, DB, CT1, CT2>
{
/// Convert the chart context into the secondary coordinate translation function
pub fn into_secondary_coord_trans(self) -> impl Fn(BackendCoord) -> Option<CT2::From> {
@@ -139,8 +147,8 @@ impl<'a, DB: DrawingBackend, CT1: CoordTranslate, CT2: ReverseCoordTranslate>
}
}
-impl<'a, DB: DrawingBackend, CT1: ReverseCoordTranslate, CT2: ReverseCoordTranslate>
- DualCoordChartContext<'a, DB, CT1, CT2>
+impl<DB: DrawingBackend, CT1: ReverseCoordTranslate, CT2: ReverseCoordTranslate>
+ DualCoordChartContext<'_, DB, CT1, CT2>
{
/// Convert the chart context into a pair of closures that maps the pixel coordinate into the
/// logical coordinate for both primary coordinate system and secondary coordinate system.
@@ -159,11 +167,18 @@ impl<'a, DB: DrawingBackend, CT1: ReverseCoordTranslate, CT2: ReverseCoordTransl
}
}
-impl<'a, DB: DrawingBackend, CT1: CoordTranslate, SX: Ranged, SY: Ranged>
- DualCoordChartContext<'a, DB, CT1, RangedCoord<SX, SY>>
+impl<
+ 'a,
+ DB: DrawingBackend,
+ CT1: CoordTranslate,
+ XT,
+ YT,
+ SX: Ranged<ValueType = XT>,
+ SY: Ranged<ValueType = YT>,
+ > DualCoordChartContext<'a, DB, CT1, Cartesian2d<SX, SY>>
where
- SX::ValueType: Debug,
- SY::ValueType: Debug,
+ SX: ValueFormatter<XT>,
+ SY: ValueFormatter<YT>,
{
/// Start configure the style for the secondary axes
pub fn configure_secondary_axes<'b>(&'b mut self) -> SecondaryMeshStyle<'a, 'b, SX, SY, DB> {
@@ -172,14 +187,9 @@ where
}
impl<'a, DB: DrawingBackend, X: Ranged, Y: Ranged, SX: Ranged, SY: Ranged>
- DualCoordChartContext<'a, DB, RangedCoord<X, Y>, RangedCoord<SX, SY>>
-where
- X::ValueType: Debug,
- Y::ValueType: Debug,
- SX::ValueType: Debug,
- SY::ValueType: Debug,
+ DualCoordChartContext<'a, DB, Cartesian2d<X, Y>, Cartesian2d<SX, SY>>
{
- /// Draw a series use the secondary coordinate system
+ /// Draw a series use the secondary coordinate system.
/// - `series`: The series to draw
/// - `Returns` the series annotation object or error code
pub fn draw_secondary_series<E, R, S>(
diff --git a/src/chart/mesh.rs b/src/chart/mesh.rs
index 8f96168..223bcbe 100644
--- a/src/chart/mesh.rs
+++ b/src/chart/mesh.rs
@@ -1,27 +1,29 @@
-use std::fmt::Debug;
use std::marker::PhantomData;
use super::builder::LabelAreaPosition;
use super::context::ChartContext;
-use crate::coord::{MeshLine, Ranged, RangedCoord};
-use crate::drawing::backend::DrawingBackend;
+use crate::coord::cartesian::{Cartesian2d, MeshLine};
+use crate::coord::ranged1d::{BoldPoints, LightPoints, Ranged, ValueFormatter};
use crate::drawing::DrawingAreaErrorKind;
use crate::style::{
AsRelative, Color, FontDesc, FontFamily, FontStyle, IntoTextStyle, RGBColor, ShapeStyle,
SizeDesc, TextStyle,
};
+use plotters_backend::DrawingBackend;
+
/// The style used to describe the mesh and axis for a secondary coordinate system.
pub struct SecondaryMeshStyle<'a, 'b, X: Ranged, Y: Ranged, DB: DrawingBackend> {
style: MeshStyle<'a, 'b, X, Y, DB>,
}
-impl<'a, 'b, X: Ranged, Y: Ranged, DB: DrawingBackend> SecondaryMeshStyle<'a, 'b, X, Y, DB>
+impl<'a, 'b, XT, YT, X: Ranged<ValueType = XT>, Y: Ranged<ValueType = YT>, DB: DrawingBackend>
+ SecondaryMeshStyle<'a, 'b, X, Y, DB>
where
- X::ValueType: Debug,
- Y::ValueType: Debug,
+ X: ValueFormatter<XT>,
+ Y: ValueFormatter<YT>,
{
- pub(super) fn new(target: &'b mut ChartContext<'a, DB, RangedCoord<X, Y>>) -> Self {
+ pub(super) fn new(target: &'b mut ChartContext<'a, DB, Cartesian2d<X, Y>>) -> Self {
let mut style = target.configure_mesh();
style.draw_x_mesh = false;
style.draw_y_mesh = false;
@@ -36,7 +38,8 @@ where
}
/// The offset of x labels. This is used when we want to place the label in the middle of
- /// the grid. This is useful if we are drawing a histogram
+ /// the grid. This is used to adjust label position for histograms, but since plotters 0.3, this
+ /// use case is deprecated, see [CentricDiscreteRanged coord decorator](../coord/trait.IntoCentric.html) for more details
/// - `value`: The offset in pixel
pub fn x_label_offset<S: SizeDesc>(&mut self, value: S) -> &mut Self {
self.style.x_label_offset(value);
@@ -44,7 +47,8 @@ where
}
/// The offset of y labels. This is used when we want to place the label in the middle of
- /// the grid. This is useful if we are drawing a histogram
+ /// the grid. This is used to adjust label position for histograms, but since plotters 0.3, this
+ /// use case is deprecated, see [CentricDiscreteRanged coord decorator](../coord/trait.IntoCentric.html) for more details
/// - `value`: The offset in pixel
pub fn y_label_offset<S: SizeDesc>(&mut self, value: S) -> &mut Self {
self.style.y_label_offset(value);
@@ -137,10 +141,7 @@ where
}
/// The struct that is used for tracking the configuration of a mesh of any chart
-pub struct MeshStyle<'a, 'b, X: Ranged, Y: Ranged, DB>
-where
- DB: DrawingBackend,
-{
+pub struct MeshStyle<'a, 'b, X: Ranged, Y: Ranged, DB: DrawingBackend> {
pub(super) parent_size: (u32, u32),
pub(super) draw_x_mesh: bool,
pub(super) draw_y_mesh: bool,
@@ -153,19 +154,68 @@ where
pub(super) axis_desc_style: Option<TextStyle<'b>>,
pub(super) x_desc: Option<String>,
pub(super) y_desc: Option<String>,
- pub(super) line_style_1: Option<ShapeStyle>,
- pub(super) line_style_2: Option<ShapeStyle>,
+ pub(super) bold_line_style: Option<ShapeStyle>,
+ pub(super) light_line_style: Option<ShapeStyle>,
pub(super) axis_style: Option<ShapeStyle>,
pub(super) x_label_style: Option<TextStyle<'b>>,
pub(super) y_label_style: Option<TextStyle<'b>>,
pub(super) format_x: &'b dyn Fn(&X::ValueType) -> String,
pub(super) format_y: &'b dyn Fn(&Y::ValueType) -> String,
- pub(super) target: Option<&'b mut ChartContext<'a, DB, RangedCoord<X, Y>>>,
+ pub(super) target: Option<&'b mut ChartContext<'a, DB, Cartesian2d<X, Y>>>,
pub(super) _phantom_data: PhantomData<(X, Y)>,
pub(super) x_tick_size: [i32; 2],
pub(super) y_tick_size: [i32; 2],
}
+impl<'a, 'b, X, Y, XT, YT, DB> MeshStyle<'a, 'b, X, Y, DB>
+where
+ X: Ranged<ValueType = XT> + ValueFormatter<XT>,
+ Y: Ranged<ValueType = YT> + ValueFormatter<YT>,
+ DB: DrawingBackend,
+{
+ pub(crate) fn new(chart: &'b mut ChartContext<'a, DB, Cartesian2d<X, Y>>) -> Self {
+ let base_tick_size = (5u32).percent().max(5).in_pixels(chart.plotting_area());
+
+ let mut x_tick_size = [base_tick_size, base_tick_size];
+ let mut y_tick_size = [base_tick_size, base_tick_size];
+
+ for idx in 0..2 {
+ if chart.is_overlapping_drawing_area(chart.x_label_area[idx].as_ref()) {
+ x_tick_size[idx] = -x_tick_size[idx];
+ }
+ if chart.is_overlapping_drawing_area(chart.y_label_area[idx].as_ref()) {
+ y_tick_size[idx] = -y_tick_size[idx];
+ }
+ }
+
+ MeshStyle {
+ parent_size: chart.drawing_area.dim_in_pixel(),
+ axis_style: None,
+ x_label_offset: 0,
+ y_label_offset: 0,
+ draw_x_mesh: true,
+ draw_y_mesh: true,
+ draw_x_axis: true,
+ draw_y_axis: true,
+ n_x_labels: 10,
+ n_y_labels: 10,
+ bold_line_style: None,
+ light_line_style: None,
+ x_label_style: None,
+ y_label_style: None,
+ format_x: &X::format,
+ format_y: &Y::format,
+ target: Some(chart),
+ _phantom_data: PhantomData,
+ x_desc: None,
+ y_desc: None,
+ axis_desc_style: None,
+ x_tick_size,
+ y_tick_size,
+ }
+ }
+}
+
impl<'a, 'b, X, Y, DB> MeshStyle<'a, 'b, X, Y, DB>
where
X: Ranged,
@@ -201,7 +251,8 @@ where
}
/// The offset of x labels. This is used when we want to place the label in the middle of
- /// the grid. This is useful if we are drawing a histogram
+ /// the grid. This is used to adjust label position for histograms, but since plotters 0.3, this
+ /// use case is deprecated, see [CentricDiscreteRanged coord decorator](../coord/trait.IntoCentric.html) for more details
/// - `value`: The offset in pixel
pub fn x_label_offset<S: SizeDesc>(&mut self, value: S) -> &mut Self {
self.x_label_offset = value.in_pixels(&self.parent_size);
@@ -209,7 +260,8 @@ where
}
/// The offset of y labels. This is used when we want to place the label in the middle of
- /// the grid. This is useful if we are drawing a histogram
+ /// the grid. This is used to adjust label position for histograms, but since plotters 0.3, this
+ /// use case is deprecated, see [CentricDiscreteRanged coord decorator](../coord/trait.IntoCentric.html) for more details
/// - `value`: The offset in pixel
pub fn y_label_offset<S: SizeDesc>(&mut self, value: S) -> &mut Self {
self.y_label_offset = value.in_pixels(&self.parent_size);
@@ -272,15 +324,15 @@ where
/// Set the style for the coarse grind grid
/// - `style`: This is the coarse grind grid style
- pub fn line_style_1<T: Into<ShapeStyle>>(&mut self, style: T) -> &mut Self {
- self.line_style_1 = Some(style.into());
+ pub fn bold_line_style<T: Into<ShapeStyle>>(&mut self, style: T) -> &mut Self {
+ self.bold_line_style = Some(style.into());
self
}
/// Set the style for the fine grind grid
/// - `style`: The fine grind grid style
- pub fn line_style_2<T: Into<ShapeStyle>>(&mut self, style: T) -> &mut Self {
- self.line_style_2 = Some(style.into());
+ pub fn light_line_style<T: Into<ShapeStyle>>(&mut self, style: T) -> &mut Self {
+ self.light_line_style = Some(style.into());
self
}
@@ -357,12 +409,12 @@ where
FontStyle::Normal,
);
- let mesh_style_1 = self
- .line_style_1
+ let bold_style = self
+ .bold_line_style
.clone()
.unwrap_or_else(|| (&default_mesh_color_1).into());
- let mesh_style_2 = self
- .line_style_2
+ let light_style = self
+ .light_line_style
.clone()
.unwrap_or_else(|| (&default_mesh_color_2).into());
let axis_style = self
@@ -386,8 +438,11 @@ where
.unwrap_or_else(|| x_label_style.clone());
target.draw_mesh(
- (self.n_y_labels * 10, self.n_x_labels * 10),
- &mesh_style_2,
+ (
+ LightPoints::new(self.n_y_labels, self.n_y_labels * 10),
+ LightPoints::new(self.n_x_labels, self.n_x_labels * 10),
+ ),
+ &light_style,
&x_label_style,
&y_label_style,
|_| None,
@@ -406,8 +461,8 @@ where
)?;
target.draw_mesh(
- (self.n_y_labels, self.n_x_labels),
- &mesh_style_1,
+ (BoldPoints(self.n_y_labels), BoldPoints(self.n_x_labels)),
+ &bold_style,
&x_label_style,
&y_label_style,
|m| match m {
diff --git a/src/chart/mod.rs b/src/chart/mod.rs
index edb0902..4a88029 100644
--- a/src/chart/mod.rs
+++ b/src/chart/mod.rs
@@ -12,14 +12,19 @@ In Plotters, a series is abstracted as an iterator of elements.
detailed description for each struct.
*/
+mod axes3d;
mod builder;
mod context;
mod dual_coord;
mod mesh;
mod series;
+mod state;
pub use builder::{ChartBuilder, LabelAreaPosition};
-pub use context::{ChartContext, ChartState, SeriesAnno};
+pub use context::ChartContext;
pub use dual_coord::{DualCoordChartContext, DualCoordChartState};
-pub use mesh::MeshStyle;
-pub use series::{SeriesLabelPosition, SeriesLabelStyle};
+pub use mesh::{MeshStyle, SecondaryMeshStyle};
+pub use series::{SeriesAnno, SeriesLabelPosition, SeriesLabelStyle};
+pub use state::ChartState;
+
+use context::Coord3D;
diff --git a/src/chart/series.rs b/src/chart/series.rs
index 51fe97d..efced77 100644
--- a/src/chart/series.rs
+++ b/src/chart/series.rs
@@ -1,10 +1,59 @@
use super::ChartContext;
use crate::coord::CoordTranslate;
-use crate::drawing::backend::{BackendCoord, DrawingErrorKind};
-use crate::drawing::{DrawingAreaErrorKind, DrawingBackend};
-use crate::element::{EmptyElement, IntoDynElement, MultiLineText, Rectangle};
+use crate::drawing::DrawingAreaErrorKind;
+use crate::element::{DynElement, EmptyElement, IntoDynElement, MultiLineText, Rectangle};
use crate::style::{IntoFont, IntoTextStyle, ShapeStyle, SizeDesc, TextStyle, TRANSPARENT};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
+
+type SeriesAnnoDrawFn<'a, DB> = dyn Fn(BackendCoord) -> DynElement<'a, DB, BackendCoord> + 'a;
+
+/// The annotations (such as the label of the series, the legend element, etc)
+/// When a series is drawn onto a drawing area, an series annotation object
+/// is created and a mutable reference is returned.
+pub struct SeriesAnno<'a, DB: DrawingBackend> {
+ label: Option<String>,
+ draw_func: Option<Box<SeriesAnnoDrawFn<'a, DB>>>,
+}
+
+impl<'a, DB: DrawingBackend> SeriesAnno<'a, DB> {
+ #[allow(clippy::option_as_ref_deref)]
+ pub(crate) fn get_label(&self) -> &str {
+ // TODO: Change this when we bump the MSRV
+ self.label.as_ref().map(|x| x.as_str()).unwrap_or("")
+ }
+
+ pub(crate) fn get_draw_func(&self) -> Option<&SeriesAnnoDrawFn<'a, DB>> {
+ self.draw_func.as_ref().map(|x| x.as_ref())
+ }
+
+ pub(crate) fn new() -> Self {
+ Self {
+ label: None,
+ draw_func: None,
+ }
+ }
+
+ /// Set the series label
+ /// - `label`: The string would be use as label for current series
+ pub fn label<L: Into<String>>(&mut self, label: L) -> &mut Self {
+ self.label = Some(label.into());
+ self
+ }
+
+ /// Set the legend element creator function
+ /// - `func`: The function use to create the element
+ /// *Note*: The creation function uses a shifted pixel-based coordinate system. And place the
+ /// point (0,0) to the mid-right point of the shape
+ pub fn legend<E: IntoDynElement<'a, DB, BackendCoord>, T: Fn(BackendCoord) -> E + 'a>(
+ &mut self,
+ func: T,
+ ) -> &mut Self {
+ self.draw_func = Some(Box::new(move |p| func(p).into_dyn()));
+ self
+ }
+}
+
/// Describes where we want to put the series label
pub enum SeriesLabelPosition {
UpperLeft,
@@ -148,9 +197,9 @@ impl<'a, 'b, DB: DrawingBackend + 'a, CT: CoordTranslate> SeriesLabelStyle<'a, '
label_element.push_line(label_text);
}
- let (mut w, mut h) = label_element
- .estimate_dimension()
- .map_err(|e| DrawingAreaErrorKind::BackendError(DrawingErrorKind::FontError(e)))?;
+ let (mut w, mut h) = label_element.estimate_dimension().map_err(|e| {
+ DrawingAreaErrorKind::BackendError(DrawingErrorKind::FontError(Box::new(e)))
+ })?;
let margin = self.margin as i32;
@@ -178,7 +227,9 @@ impl<'a, 'b, DB: DrawingBackend + 'a, CT: CoordTranslate> SeriesLabelStyle<'a, '
for (((_, y0), (_, y1)), make_elem) in label_element
.compute_line_layout()
- .map_err(|e| DrawingAreaErrorKind::BackendError(DrawingErrorKind::FontError(e)))?
+ .map_err(|e| {
+ DrawingAreaErrorKind::BackendError(DrawingErrorKind::FontError(Box::new(e)))
+ })?
.into_iter()
.zip(funcs.into_iter())
{
diff --git a/src/chart/state.rs b/src/chart/state.rs
new file mode 100644
index 0000000..9383d44
--- /dev/null
+++ b/src/chart/state.rs
@@ -0,0 +1,112 @@
+use std::sync::Arc;
+
+use super::ChartContext;
+use crate::coord::{CoordTranslate, Shift};
+use crate::drawing::DrawingArea;
+use plotters_backend::DrawingBackend;
+
+/// A chart context state - This is the data that is needed to reconstruct the chart context
+/// without actually drawing the chart. This is useful when we want to do realtime rendering and
+/// want to incrementally update the chart.
+///
+/// For each frame, instead of updating the entire backend, we are able to keep the keep the figure
+/// component like axis, labels untouched and make updates only in the plotting drawing area.
+/// This is very useful for incremental render.
+/// ```rust
+/// use plotters::prelude::*;
+/// let mut buffer = vec![0u8;1024*768*3];
+/// let area = BitMapBackend::with_buffer(&mut buffer[..], (1024, 768))
+/// .into_drawing_area()
+/// .split_evenly((1,2));
+/// let chart = ChartBuilder::on(&area[0])
+/// .caption("Incremental Example", ("sans-serif", 20))
+/// .set_all_label_area_size(30)
+/// .build_ranged(0..10, 0..10)
+/// .expect("Unable to build ChartContext");
+/// // Draw the first frame at this point
+/// area[0].present().expect("Present");
+/// let state = chart.into_chart_state();
+/// // Let's draw the second frame
+/// let chart = state.restore(&area[0]);
+/// chart.plotting_area().fill(&WHITE).unwrap(); // Clear the previously drawn graph
+/// // At this point, you are able to draw next frame
+///```
+#[derive(Clone)]
+pub struct ChartState<CT: CoordTranslate> {
+ drawing_area_pos: (i32, i32),
+ drawing_area_size: (u32, u32),
+ coord: CT,
+}
+
+impl<'a, DB: DrawingBackend, CT: CoordTranslate> From<ChartContext<'a, DB, CT>> for ChartState<CT> {
+ fn from(chart: ChartContext<'a, DB, CT>) -> ChartState<CT> {
+ ChartState {
+ drawing_area_pos: chart.drawing_area_pos,
+ drawing_area_size: chart.drawing_area.dim_in_pixel(),
+ coord: chart.drawing_area.into_coord_spec(),
+ }
+ }
+}
+
+impl<'a, DB: DrawingBackend, CT: CoordTranslate> ChartContext<'a, DB, CT> {
+ /// Convert a chart context into a chart state, by doing so, the chart context is consumed and
+ /// a saved chart state is created for later use. This is typically used in incrmental rendering. See documentation of `ChartState` for more detailed example.
+ pub fn into_chart_state(self) -> ChartState<CT> {
+ self.into()
+ }
+
+ /// Convert the chart context into a sharable chart state.
+ /// Normally a chart state can not be clone, since the coordinate spec may not be able to be
+ /// cloned. In this case, we can use an `Arc` get the coordinate wrapped thus the state can be
+ /// cloned and shared by multiple chart context
+ pub fn into_shared_chart_state(self) -> ChartState<Arc<CT>> {
+ ChartState {
+ drawing_area_pos: self.drawing_area_pos,
+ drawing_area_size: self.drawing_area.dim_in_pixel(),
+ coord: Arc::new(self.drawing_area.into_coord_spec()),
+ }
+ }
+}
+
+impl<'a, 'b, DB, CT> From<&ChartContext<'a, DB, CT>> for ChartState<CT>
+where
+ DB: DrawingBackend,
+ CT: CoordTranslate + Clone,
+{
+ fn from(chart: &ChartContext<'a, DB, CT>) -> ChartState<CT> {
+ ChartState {
+ drawing_area_pos: chart.drawing_area_pos,
+ drawing_area_size: chart.drawing_area.dim_in_pixel(),
+ coord: chart.drawing_area.as_coord_spec().clone(),
+ }
+ }
+}
+
+impl<'a, DB: DrawingBackend, CT: CoordTranslate + Clone> ChartContext<'a, DB, CT> {
+ /// Make the chart context, do not consume the chart context and clone the coordinate spec
+ pub fn to_chart_state(&self) -> ChartState<CT> {
+ self.into()
+ }
+}
+
+impl<CT: CoordTranslate> ChartState<CT> {
+ /// Restore the chart context on the given drawing area
+ ///
+ /// - `area`: The given drawing area where we want to restore the chart context
+ /// - **returns** The newly created chart context
+ pub fn restore<'a, DB: DrawingBackend>(
+ self,
+ area: &DrawingArea<DB, Shift>,
+ ) -> ChartContext<'a, DB, CT> {
+ let area = area
+ .clone()
+ .shrink(self.drawing_area_pos, self.drawing_area_size);
+ ChartContext {
+ x_label_area: [None, None],
+ y_label_area: [None, None],
+ drawing_area: area.apply_coord_spec(self.coord),
+ series_anno: vec![],
+ drawing_area_pos: self.drawing_area_pos,
+ }
+ }
+}
diff --git a/src/coord/category.rs b/src/coord/category.rs
deleted file mode 100644
index 805bad2..0000000
--- a/src/coord/category.rs
+++ /dev/null
@@ -1,209 +0,0 @@
-use std::fmt;
-use std::ops::Range;
-use std::rc::Rc;
-
-use super::{AsRangedCoord, Ranged};
-
-/// The category coordinate
-pub struct Category<T: PartialEq> {
- name: String,
- elements: Rc<Vec<T>>,
- // i32 type is required for the empty ref (having -1 value)
- idx: i32,
-}
-
-impl<T: PartialEq> Clone for Category<T> {
- fn clone(&self) -> Self {
- Category {
- name: self.name.clone(),
- elements: Rc::clone(&self.elements),
- idx: self.idx,
- }
- }
-}
-
-impl<T: PartialEq + fmt::Display> fmt::Debug for Category<T> {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- let element = &self.elements[self.idx as usize];
- write!(f, "{}", element)
- }
-}
-
-impl<T: PartialEq> Category<T> {
- /// Create a new category coordinate.
- ///
- /// - `name`: The name of the category
- /// - `elements`: The vector of category elements
- /// - **returns** The newly created category coordinate
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// ```
- pub fn new<S: Into<String>>(name: S, elements: Vec<T>) -> Self {
- Self {
- name: name.into(),
- elements: Rc::new(elements),
- idx: -1,
- }
- }
-
- /// Get an element reference (tick) by its value.
- ///
- /// - `val`: The value of the element
- /// - **returns** The optional reference
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// let red = category.get(&"red");
- /// assert!(red.is_some());
- /// let unknown = category.get(&"unknown");
- /// assert!(unknown.is_none());
- /// ```
- pub fn get(&self, val: &T) -> Option<Category<T>> {
- match self.elements.iter().position(|x| x == val) {
- Some(pos) => {
- let element_ref = Category {
- name: self.name.clone(),
- elements: Rc::clone(&self.elements),
- idx: pos as i32,
- };
- Some(element_ref)
- }
- _ => None,
- }
- }
-
- /// Create a full range over the category elements.
- ///
- /// - **returns** The range including all category elements
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// let range = category.range();
- /// ```
- pub fn range(&self) -> Self {
- self.clone()
- }
-
- /// Get the number of elements in the category.
- ///
- /// - **returns** The number of elements
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// assert_eq!(category.len(), 3);
- /// ```
- pub fn len(&self) -> usize {
- self.elements.len()
- }
-
- /// Returns `true` if the category contains no elements.
- ///
- /// - **returns** `true` is no elements, otherwise - `false`
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// assert_eq!(category.is_empty(), false);
- ///
- /// let category = Category::new("empty", Vec::<&str>::new());
- /// assert_eq!(category.is_empty(), true);
- /// ```
- pub fn is_empty(&self) -> bool {
- self.elements.is_empty()
- }
-
- /// Get the category name.
- ///
- /// - **returns** The name of the category
- ///
- /// ```rust
- /// use plotters::prelude::*;
- ///
- /// let category = Category::new("color", vec!["red", "green", "blue"]);
- /// assert_eq!(category.name(), "color");
- /// ```
- pub fn name(&self) -> String {
- self.name.clone()
- }
-}
-
-impl<T: PartialEq> Ranged for Category<T> {
- type ValueType = Category<T>;
-
- fn range(&self) -> Range<Category<T>> {
- let mut left = self.clone();
- let mut right = self.clone();
- left.idx = 0;
- right.idx = right.len() as i32 - 1;
- left..right
- }
-
- fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
- // Add margins to spans as edge values are not applicable to category
- let total_span = (self.len() + 1) as f64;
- let value_span = f64::from(value.idx + 1);
- (f64::from(limit.1 - limit.0) * value_span / total_span) as i32 + limit.0
- }
-
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
- let mut ret = vec![];
- let intervals = (self.len() - 1) as f64;
- let elements = &self.elements;
- let name = &self.name;
- let step = (intervals / max_points as f64 + 1.0) as usize;
- for idx in (0..self.len()).step_by(step) {
- ret.push(Category {
- name: name.clone(),
- elements: Rc::clone(&elements),
- idx: idx as i32,
- });
- }
- ret
- }
-}
-
-impl<T: PartialEq> AsRangedCoord for Category<T> {
- type CoordDescType = Self;
- type Value = Category<T>;
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
-
- #[test]
- fn test_clone_trait() {
- let category = Category::new("color", vec!["red", "green", "blue"]);
- let red = category.get(&"red").unwrap();
- assert_eq!(red.idx, 0);
- let clone = red.clone();
- assert_eq!(clone.idx, 0);
- }
-
- #[test]
- fn test_debug_trait() {
- let category = Category::new("color", vec!["red", "green", "blue"]);
- let red = category.get(&"red").unwrap();
- assert_eq!(format!("{:?}", red), "red");
- }
-
- #[test]
- fn test_ranged_trait() {
- let category = Category::new("color", vec!["red", "green", "blue"]);
- assert_eq!(category.map(&category.get(&"red").unwrap(), (0, 8)), 2);
- assert_eq!(category.map(&category.get(&"green").unwrap(), (0, 8)), 4);
- assert_eq!(category.map(&category.get(&"blue").unwrap(), (0, 8)), 6);
- assert_eq!(category.key_points(3).len(), 3);
- assert_eq!(category.key_points(5).len(), 3);
- }
-}
diff --git a/src/coord/mod.rs b/src/coord/mod.rs
index 0afafa3..5cc1708 100644
--- a/src/coord/mod.rs
+++ b/src/coord/mod.rs
@@ -1,90 +1,58 @@
/*!
-Coordinate system abstractions.
-Coordinate systems can be attached to drawing areas. By doing so,
-the drawing area can draw elements in the guest coordinate system.
-`DrawingArea::apply_coord_spec` is used to attach new coordinate system
-to the drawing area.
+One of the key features of Plotters is flexible coordinate system abstraction and this module
+provides all the abstraction used for the coordinate abstarction of Plotters.
-`CoordTranslate` is the trait required by `DrawingArea::apply_coord_spec`. It provides
-the forward coordinate translation: from the logic coordinate to the pixel-based absolute
-backend coordinate system.
+Generally speaking, the coordinate system in Plotters is responsible for mapping logic data points into
+pixel based backend coordinate. This task is abstracted by a simple trait called
+[CoordTranslate](trait.CoordTranslate.html). Please note `CoordTranslate` trait doesn't assume any property
+about the coordinate values, thus we are able to extend Plotters's coordinate system to other types of coorindate
+easily.
-When the coordinate type implements `ReverseCoordTranslate`,
-the backward translation is possible, which allows mapping pixel-based coordinate into
-the logic coordinate. It's not usually used for static figure rendering, but may be useful
-for a interactive figure.
+Another important trait is [ReverseCoordTranslate](trait.ReverseCoordTranslate.html). This trait allows some coordinate
+retrieve the logic value based on the pixel-based backend coordinate. This is particularly interesting for interactive plots.
-`RangedCoord` is the 2D cartesian coordinate system that has two `Ranged` axis.
-A ranged axis can be logarithmic and by applying an logarithmic axis, the figure is logarithmic scale.
-Also, the ranged axis can be deserted, and this is required by the histogram series.
+Plotters contains a set of pre-defined coordinate specifications that fulfills the most common use. See documentation for
+module [types](types/index.html) for details about the basic 1D types.
+
+The coordinate system also can be tweaked by the coordinate combinators, such as logarithmic coordinate, nested coordinate, etc.
+See documentation for module [combinators](combinators/index.html) for details.
+
+Currently we support the following 2D coordinate system:
+
+- 2-dimensional Cartesian Coordinate: This is done by the combinator [Cartesian2d](cartesian/struct.Cartesian2d.html).
*/
-use crate::drawing::backend::BackendCoord;
-
-mod category;
-#[cfg(feature = "chrono")]
-mod datetime;
-mod logarithmic;
-mod numeric;
-mod ranged;
-
-#[cfg(feature = "chrono")]
-pub use datetime::{IntoMonthly, IntoYearly, RangedDate, RangedDateTime, RangedDuration};
-pub use numeric::{
- RangedCoordf32, RangedCoordf64, RangedCoordi128, RangedCoordi32, RangedCoordi64,
- RangedCoordu128, RangedCoordu32, RangedCoordu64,
-};
-pub use ranged::{
- AsRangedCoord, DiscreteRanged, IntoCentric, IntoPartialAxis, MeshLine, Ranged, RangedCoord,
- ReversibleRanged,
-};
-
-pub use ranged::make_partial_axis;
-
-pub use logarithmic::{LogCoord, LogRange, LogScalable};
-
-pub use numeric::group_integer_by::{GroupBy, ToGroupByRange};
-use std::rc::Rc;
-use std::sync::Arc;
-
-pub use category::Category;
-
-/// The trait that translates some customized object to the backend coordinate
-pub trait CoordTranslate {
- type From;
-
- /// Translate the guest coordinate to the guest coordinate
- fn translate(&self, from: &Self::From) -> BackendCoord;
-}
-impl<T: CoordTranslate> CoordTranslate for Rc<T> {
- type From = T::From;
+use plotters_backend::BackendCoord;
- fn translate(&self, from: &Self::From) -> BackendCoord {
- self.as_ref().translate(from)
- }
-}
+pub mod ranged1d;
-impl<T: CoordTranslate> CoordTranslate for Arc<T> {
- type From = T::From;
+/// The coordinate combinators
+///
+/// Coordinate combinators are very important part of Plotters' coordinate system.
+/// The combinator is more about the "combinator pattern", which takes one or more coordinate specification
+/// and transform them into a new coordinate specification.
+pub mod combinators {
+ pub use super::ranged1d::combinators::*;
+}
- fn translate(&self, from: &Self::From) -> BackendCoord {
- self.as_ref().translate(from)
- }
+/// The primitive types supported by Plotters coordinate system
+pub mod types {
+ pub use super::ranged1d::types::*;
}
-/// The trait indicates that the coordinate system supports reverse transform
-/// This is useful when we need an interactive plot, thus we need to map the event
-/// from the backend coordinate to the logical coordinate
-pub trait ReverseCoordTranslate: CoordTranslate {
- /// Reverse translate the coordinate from the drawing coordinate to the
- /// logic coordinate.
- /// Note: the return value is an option, because it's possible that the drawing
- /// coordinate isn't able to be represented in te guest coordinate system
- fn reverse_translate(&self, input: BackendCoord) -> Option<Self::From>;
+mod ranged2d;
+pub mod ranged3d;
+
+pub mod cartesian {
+ pub use super::ranged2d::cartesian::{Cartesian2d, MeshLine};
+ pub use super::ranged3d::Cartesian3d;
}
+mod translate;
+pub use translate::{CoordTranslate, ReverseCoordTranslate};
+
/// The coordinate translation that only impose shift
#[derive(Debug, Clone)]
pub struct Shift(pub BackendCoord);
@@ -101,20 +69,3 @@ impl ReverseCoordTranslate for Shift {
Some((input.0 - (self.0).0, input.1 - (self.0).1))
}
}
-
-/// We can compose an arbitrary transformation with a shift
-pub struct ShiftAndTrans<T: CoordTranslate>(Shift, T);
-
-impl<T: CoordTranslate> CoordTranslate for ShiftAndTrans<T> {
- type From = T::From;
- fn translate(&self, from: &Self::From) -> BackendCoord {
- let temp = self.1.translate(from);
- self.0.translate(&temp)
- }
-}
-
-impl<T: ReverseCoordTranslate> ReverseCoordTranslate for ShiftAndTrans<T> {
- fn reverse_translate(&self, input: BackendCoord) -> Option<T::From> {
- Some(self.1.reverse_translate(self.0.reverse_translate(input)?)?)
- }
-}
diff --git a/src/coord/ranged.rs b/src/coord/ranged.rs
deleted file mode 100644
index 2291854..0000000
--- a/src/coord/ranged.rs
+++ /dev/null
@@ -1,397 +0,0 @@
-use super::{CoordTranslate, ReverseCoordTranslate};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
-use crate::style::ShapeStyle;
-
-use std::ops::Range;
-
-/// The trait that indicates we have a ordered and ranged value
-/// Which is used to describe the axis
-pub trait Ranged {
- /// The type of this value
- type ValueType;
-
- /// This function maps the value to i32, which is the drawing coordinate
- fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32;
-
- /// This function gives the key points that we can draw a grid based on this
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType>;
-
- /// Get the range of this value
- fn range(&self) -> Range<Self::ValueType>;
-
- /// This function provides the on-axis part of its range
- #[allow(clippy::range_plus_one)]
- fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
- if limit.0 < limit.1 {
- limit.0..limit.1
- } else {
- (limit.1 + 1)..(limit.0 + 1)
- }
- }
-}
-
-/// The trait indicates the ranged value can be map reversely, which means
-/// an pixel-based coordinate is given, it's possible to figure out the underlying
-/// logic value.
-pub trait ReversibleRanged: Ranged {
- fn unmap(&self, input: i32, limit: (i32, i32)) -> Option<Self::ValueType>;
-}
-
-/// The coordinate described by two ranged value
-pub struct RangedCoord<X: Ranged, Y: Ranged> {
- logic_x: X,
- logic_y: Y,
- back_x: (i32, i32),
- back_y: (i32, i32),
-}
-
-impl<X: Ranged + Clone, Y: Ranged + Clone> Clone for RangedCoord<X, Y> {
- fn clone(&self) -> Self {
- Self {
- logic_x: self.logic_x.clone(),
- logic_y: self.logic_y.clone(),
- back_x: self.back_x,
- back_y: self.back_y,
- }
- }
-}
-
-impl<X: Ranged, Y: Ranged> RangedCoord<X, Y> {
- /// Create a new ranged value coordinate system
- pub fn new<IntoX: Into<X>, IntoY: Into<Y>>(
- logic_x: IntoX,
- logic_y: IntoY,
- actual: (Range<i32>, Range<i32>),
- ) -> Self {
- Self {
- logic_x: logic_x.into(),
- logic_y: logic_y.into(),
- back_x: (actual.0.start, actual.0.end),
- back_y: (actual.1.start, actual.1.end),
- }
- }
-
- /// Draw the mesh for the coordinate system
- pub fn draw_mesh<E, DrawMesh: FnMut(MeshLine<X, Y>) -> Result<(), E>>(
- &self,
- h_limit: usize,
- v_limit: usize,
- mut draw_mesh: DrawMesh,
- ) -> Result<(), E> {
- let (xkp, ykp) = (
- self.logic_x.key_points(v_limit),
- self.logic_y.key_points(h_limit),
- );
-
- for logic_x in xkp {
- let x = self.logic_x.map(&logic_x, self.back_x);
- draw_mesh(MeshLine::XMesh(
- (x, self.back_y.0),
- (x, self.back_y.1),
- &logic_x,
- ))?;
- }
-
- for logic_y in ykp {
- let y = self.logic_y.map(&logic_y, self.back_y);
- draw_mesh(MeshLine::YMesh(
- (self.back_x.0, y),
- (self.back_x.1, y),
- &logic_y,
- ))?;
- }
-
- Ok(())
- }
-
- /// Get the range of X axis
- pub fn get_x_range(&self) -> Range<X::ValueType> {
- self.logic_x.range()
- }
-
- /// Get the range of Y axis
- pub fn get_y_range(&self) -> Range<Y::ValueType> {
- self.logic_y.range()
- }
-
- pub fn get_x_axis_pixel_range(&self) -> Range<i32> {
- self.logic_x.axis_pixel_range(self.back_x)
- }
-
- pub fn get_y_axis_pixel_range(&self) -> Range<i32> {
- self.logic_y.axis_pixel_range(self.back_y)
- }
-
- pub fn x_spec(&self) -> &X {
- &self.logic_x
- }
-
- pub fn y_spec(&self) -> &Y {
- &self.logic_y
- }
-}
-
-impl<X: Ranged, Y: Ranged> CoordTranslate for RangedCoord<X, Y> {
- type From = (X::ValueType, Y::ValueType);
-
- fn translate(&self, from: &Self::From) -> BackendCoord {
- (
- self.logic_x.map(&from.0, self.back_x),
- self.logic_y.map(&from.1, self.back_y),
- )
- }
-}
-
-impl<X: ReversibleRanged, Y: ReversibleRanged> ReverseCoordTranslate for RangedCoord<X, Y> {
- fn reverse_translate(&self, input: BackendCoord) -> Option<Self::From> {
- Some((
- self.logic_x.unmap(input.0, self.back_x)?,
- self.logic_y.unmap(input.1, self.back_y)?,
- ))
- }
-}
-
-/// Represent a coordinate mesh for the two ranged value coordinate system
-pub enum MeshLine<'a, X: Ranged, Y: Ranged> {
- XMesh(BackendCoord, BackendCoord, &'a X::ValueType),
- YMesh(BackendCoord, BackendCoord, &'a Y::ValueType),
-}
-
-impl<'a, X: Ranged, Y: Ranged> MeshLine<'a, X, Y> {
- /// Draw a single mesh line onto the backend
- pub fn draw<DB: DrawingBackend>(
- &self,
- backend: &mut DB,
- style: &ShapeStyle,
- ) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
- let (&left, &right) = match self {
- MeshLine::XMesh(a, b, _) => (a, b),
- MeshLine::YMesh(a, b, _) => (a, b),
- };
- backend.draw_line(left, right, style)
- }
-}
-
-/// The trait indicates the coordinate is discrete, so that we can draw histogram on it
-pub trait DiscreteRanged
-where
- Self: Ranged,
-{
- type RangeParameter;
-
- fn get_range_parameter(&self) -> Self::RangeParameter;
-
- /// Get the smallest value that is larger than the `this` value
- fn next_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType;
-
- /// Get the largest value that is smaller than `this` value
- fn previous_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType;
-}
-
-/// The trait for the type that can be converted into a ranged coordinate axis
-pub trait AsRangedCoord: Sized {
- type CoordDescType: Ranged<ValueType = Self::Value> + From<Self>;
- type Value;
-}
-
-impl<T> AsRangedCoord for T
-where
- T: Ranged,
- Range<T::ValueType>: Into<T>,
-{
- type CoordDescType = T;
- type Value = T::ValueType;
-}
-
-/// The axis decorator that makes key-point in the center of the value range
-/// This is useful when we draw a histogram, since we want the axis value label
-/// to be shown in the middle of the range rather than exactly the location where
-/// the value mapped to.
-pub struct CentricDiscreteRange<D: DiscreteRanged>(D)
-where
- <D as Ranged>::ValueType: Eq;
-
-/// The trait for types that can decorated by `CentricDiscreteRange` decorator
-pub trait IntoCentric: AsRangedCoord
-where
- Self::CoordDescType: DiscreteRanged,
- <Self::CoordDescType as Ranged>::ValueType: Eq,
-{
- /// Convert current ranged value into a centric ranged value
- fn into_centric(self) -> CentricDiscreteRange<Self::CoordDescType> {
- CentricDiscreteRange(self.into())
- }
-}
-
-impl<T: AsRangedCoord> IntoCentric for T
-where
- T::CoordDescType: DiscreteRanged,
- <Self::CoordDescType as Ranged>::ValueType: Eq,
-{
-}
-
-impl<D: DiscreteRanged + Clone> Clone for CentricDiscreteRange<D>
-where
- <D as Ranged>::ValueType: Eq,
-{
- fn clone(&self) -> Self {
- Self(self.0.clone())
- }
-}
-
-impl<D: DiscreteRanged> Ranged for CentricDiscreteRange<D>
-where
- <D as Ranged>::ValueType: Eq,
-{
- type ValueType = <D as Ranged>::ValueType;
-
- fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
- let prev = <D as DiscreteRanged>::previous_value(&value, &self.0.get_range_parameter());
- (self.0.map(&prev, limit) + self.0.map(value, limit)) / 2
- }
-
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
- self.0.key_points(max_points)
- }
-
- fn range(&self) -> Range<Self::ValueType> {
- self.0.range()
- }
-}
-
-impl<D: DiscreteRanged> DiscreteRanged for CentricDiscreteRange<D>
-where
- <D as Ranged>::ValueType: Eq,
-{
- type RangeParameter = <D as DiscreteRanged>::RangeParameter;
- fn get_range_parameter(&self) -> Self::RangeParameter {
- self.0.get_range_parameter()
- }
- fn next_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <D as DiscreteRanged>::next_value(this, param)
- }
-
- fn previous_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <D as DiscreteRanged>::previous_value(this, param)
- }
-}
-
-impl<D: DiscreteRanged> AsRangedCoord for CentricDiscreteRange<D>
-where
- <D as Ranged>::ValueType: Eq,
-{
- type CoordDescType = Self;
- type Value = <Self as Ranged>::ValueType;
-}
-
-/// This axis decorator will make the axis partially display on the axis.
-/// At some time, we want the axis only covers some part of the value.
-/// This decorator will have an additional display range defined.
-pub struct PartialAxis<R: Ranged>(R, Range<R::ValueType>);
-
-/// The trait for the types that can be converted into a partial axis
-pub trait IntoPartialAxis: AsRangedCoord {
- /// Make the partial axis
- ///
- /// - `axis_range`: The range of the axis to be displayed
- /// - **returns**: The converted range specification
- fn partial_axis(
- self,
- axis_range: Range<<Self::CoordDescType as Ranged>::ValueType>,
- ) -> PartialAxis<Self::CoordDescType> {
- PartialAxis(self.into(), axis_range)
- }
-}
-
-impl<R: AsRangedCoord> IntoPartialAxis for R {}
-
-impl<R: Ranged + Clone> Clone for PartialAxis<R>
-where
- <R as Ranged>::ValueType: Clone,
-{
- fn clone(&self) -> Self {
- PartialAxis(self.0.clone(), self.1.clone())
- }
-}
-
-impl<R: Ranged> Ranged for PartialAxis<R>
-where
- R::ValueType: Clone,
-{
- type ValueType = R::ValueType;
-
- fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
- self.0.map(value, limit)
- }
-
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
- self.0.key_points(max_points)
- }
-
- fn range(&self) -> Range<Self::ValueType> {
- self.0.range()
- }
-
- fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
- let left = self.map(&self.1.start, limit);
- let right = self.map(&self.1.end, limit);
-
- left.min(right)..left.max(right)
- }
-}
-
-impl<R: DiscreteRanged> DiscreteRanged for PartialAxis<R>
-where
- R: Ranged,
- <R as Ranged>::ValueType: Eq + Clone,
-{
- type RangeParameter = <R as DiscreteRanged>::RangeParameter;
- fn get_range_parameter(&self) -> Self::RangeParameter {
- self.0.get_range_parameter()
- }
- fn next_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <R as DiscreteRanged>::next_value(this, param)
- }
-
- fn previous_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <R as DiscreteRanged>::previous_value(this, param)
- }
-}
-
-impl<R: Ranged> AsRangedCoord for PartialAxis<R>
-where
- <R as Ranged>::ValueType: Clone,
-{
- type CoordDescType = Self;
- type Value = <Self as Ranged>::ValueType;
-}
-
-/// Make a partial axis based on the percentage of visible portion.
-/// We can use `into_partial_axis` to create a partial axis range specification.
-/// But sometimes, we want to directly specify the percentage visible to the user.
-///
-/// - `axis_range`: The range specification
-/// - `part`: The visible part of the axis. Each value is from [0.0, 1.0]
-/// - **returns**: The partial axis created from the input, or `None` when not possible
-pub fn make_partial_axis<T>(
- axis_range: Range<T>,
- part: Range<f64>,
-) -> Option<PartialAxis<<Range<T> as AsRangedCoord>::CoordDescType>>
-where
- Range<T>: AsRangedCoord,
- T: num_traits::NumCast + Clone,
-{
- let left: f64 = num_traits::cast(axis_range.start.clone())?;
- let right: f64 = num_traits::cast(axis_range.end.clone())?;
-
- let full_range_size = (right - left) / (part.end - part.start);
-
- let full_left = left - full_range_size * part.start;
- let full_right = right + full_range_size * (1.0 - part.end);
-
- let full_range: Range<T> = num_traits::cast(full_left)?..num_traits::cast(full_right)?;
-
- let axis_range: <Range<T> as AsRangedCoord>::CoordDescType = axis_range.into();
-
- Some(PartialAxis(full_range.into(), axis_range.range()))
-}
diff --git a/src/coord/ranged1d/combinators/ckps.rs b/src/coord/ranged1d/combinators/ckps.rs
new file mode 100644
index 0000000..bca1d87
--- /dev/null
+++ b/src/coord/ranged1d/combinators/ckps.rs
@@ -0,0 +1,266 @@
+// The customized coordinate combinators.
+// This file contains a set of coorindate combinators that allows you determine the
+// keypoint by your own code.
+use std::ops::Range;
+
+use crate::coord::ranged1d::{AsRangedCoord, DiscreteRanged, KeyPointHint, Ranged};
+
+/// The coordinate decorator that binds a key point vector.
+/// Normally, all the ranged coordinate implements its own keypoint algorithm
+/// to determine how to render the tick mark and mesh grid.
+/// This decorator allows customized tick mark specifiied by vector.
+/// See [BindKeyPoints::with_key_points](trait.BindKeyPoints.html#tymethod.with_key_points)
+/// for details.
+/// Note: For any coordinate spec wrapped by this decorator, the maxium number of labels configured by
+/// MeshStyle will be ignored and the key point function will always returns the entire vector
+pub struct WithKeyPoints<Inner: Ranged> {
+ inner: Inner,
+ bold_points: Vec<Inner::ValueType>,
+ light_points: Vec<Inner::ValueType>,
+}
+
+impl<I: Ranged> WithKeyPoints<I> {
+ /// Specify the light key points, which is used to render the light mesh line
+ pub fn with_light_points<T: IntoIterator<Item = I::ValueType>>(mut self, iter: T) -> Self {
+ self.light_points.clear();
+ self.light_points.extend(iter);
+ self
+ }
+
+ /// Get a reference to the bold points
+ pub fn bold_points(&self) -> &[I::ValueType] {
+ self.bold_points.as_ref()
+ }
+
+ /// Get a mut reference to the bold points
+ pub fn bold_points_mut(&mut self) -> &mut [I::ValueType] {
+ self.bold_points.as_mut()
+ }
+
+ /// Get a reference to light key points
+ pub fn light_points(&self) -> &[I::ValueType] {
+ self.light_points.as_ref()
+ }
+
+ /// Get a mut reference to the light key points
+ pub fn light_points_mut(&mut self) -> &mut [I::ValueType] {
+ self.light_points.as_mut()
+ }
+}
+
+impl<R: Ranged> Ranged for WithKeyPoints<R>
+where
+ R::ValueType: Clone,
+{
+ type ValueType = R::ValueType;
+ type FormatOption = R::FormatOption;
+
+ fn range(&self) -> Range<Self::ValueType> {
+ self.inner.range()
+ }
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ self.inner.map(value, limit)
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ if hint.weight().allow_light_points() {
+ self.light_points.clone()
+ } else {
+ self.bold_points.clone()
+ }
+ }
+
+ fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
+ self.inner.axis_pixel_range(limit)
+ }
+}
+
+impl<R: DiscreteRanged> DiscreteRanged for WithKeyPoints<R>
+where
+ R::ValueType: Clone,
+{
+ fn size(&self) -> usize {
+ self.inner.size()
+ }
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ self.inner.index_of(value)
+ }
+ fn from_index(&self, index: usize) -> Option<Self::ValueType> {
+ self.inner.from_index(index)
+ }
+}
+
+pub trait BindKeyPoints
+where
+ Self: AsRangedCoord,
+{
+ /// Bind a existing coordinate spec with a given key points vector. See [WithKeyPoints](struct.WithKeyPoints.html ) for more details.
+ /// Example:
+ /// ```
+ ///use plotters::prelude::*;
+ ///use plotters_bitmap::BitMapBackend;
+ ///let mut buffer = vec![0;1024*768*3];
+ /// let root = BitMapBackend::with_buffer(&mut buffer, (1024, 768)).into_drawing_area();
+ /// let mut chart = ChartBuilder::on(&root)
+ /// .build_ranged(
+ /// (0..100).with_key_points(vec![1,20,50,90]), // <= This line will make the plot shows 4 tick marks at 1, 20, 50, 90
+ /// 0..10
+ /// ).unwrap();
+ /// chart.configure_mesh().draw().unwrap();
+ ///```
+ fn with_key_points(self, points: Vec<Self::Value>) -> WithKeyPoints<Self::CoordDescType> {
+ WithKeyPoints {
+ inner: self.into(),
+ bold_points: points,
+ light_points: vec![],
+ }
+ }
+}
+
+impl<T: AsRangedCoord> BindKeyPoints for T {}
+
+/// The coordinate decorator that allows customized keypoint algorithms.
+/// Normally, all the coordinate spec implements its own key point algorith
+/// But this decorator allows you override the pre-defined key point algorithm.
+///
+/// To use this decorator, see [BindKeyPointMethod::with_key_point_func](trait.BindKeyPointMethod.html#tymethod.with_key_point_func)
+pub struct WithKeyPointMethod<R: Ranged> {
+ inner: R,
+ bold_func: Box<dyn Fn(usize) -> Vec<R::ValueType>>,
+ light_func: Box<dyn Fn(usize) -> Vec<R::ValueType>>,
+}
+
+pub trait BindKeyPointMethod
+where
+ Self: AsRangedCoord,
+{
+ /// Bind a existing coordinate spec with a given key points algorithm. See [WithKeyPointMethod](struct.WithKeyMethod.html ) for more details.
+ /// Example:
+ /// ```
+ ///use plotters::prelude::*;
+ ///use plotters_bitmap::BitMapBackend;
+ ///let mut buffer = vec![0;1024*768*3];
+ /// let root = BitMapBackend::with_buffer(&mut buffer, (1024, 768)).into_drawing_area();
+ /// let mut chart = ChartBuilder::on(&root)
+ /// .build_ranged(
+ /// (0..100).with_key_point_func(|n| (0..100 / n as i32).map(|x| x * 100 / n as i32).collect()),
+ /// 0..10
+ /// ).unwrap();
+ /// chart.configure_mesh().draw().unwrap();
+ ///```
+ fn with_key_point_func<F: Fn(usize) -> Vec<Self::Value> + 'static>(
+ self,
+ func: F,
+ ) -> WithKeyPointMethod<Self::CoordDescType> {
+ WithKeyPointMethod {
+ inner: self.into(),
+ bold_func: Box::new(func),
+ light_func: Box::new(|_| vec![]),
+ }
+ }
+}
+
+impl<T: AsRangedCoord> BindKeyPointMethod for T {}
+
+impl<R: Ranged> WithKeyPointMethod<R> {
+ /// Define the light key point algorithm, by default this returns an empty set
+ pub fn with_light_point_func<F: Fn(usize) -> Vec<R::ValueType> + 'static>(
+ mut self,
+ func: F,
+ ) -> Self {
+ self.light_func = Box::new(func);
+ self
+ }
+}
+
+impl<R: Ranged> Ranged for WithKeyPointMethod<R> {
+ type ValueType = R::ValueType;
+ type FormatOption = R::FormatOption;
+
+ fn range(&self) -> Range<Self::ValueType> {
+ self.inner.range()
+ }
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ self.inner.map(value, limit)
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ if hint.weight().allow_light_points() {
+ (self.light_func)(hint.max_num_points())
+ } else {
+ (self.bold_func)(hint.max_num_points())
+ }
+ }
+
+ fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
+ self.inner.axis_pixel_range(limit)
+ }
+}
+
+impl<R: DiscreteRanged> DiscreteRanged for WithKeyPointMethod<R> {
+ fn size(&self) -> usize {
+ self.inner.size()
+ }
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ self.inner.index_of(value)
+ }
+ fn from_index(&self, index: usize) -> Option<Self::ValueType> {
+ self.inner.from_index(index)
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ use crate::coord::ranged1d::{BoldPoints, LightPoints};
+ #[test]
+ fn test_with_key_points() {
+ let range = (0..100).with_key_points(vec![1, 2, 3]);
+ assert_eq!(range.map(&3, (0, 1000)), 30);
+ assert_eq!(range.range(), 0..100);
+ assert_eq!(range.key_points(BoldPoints(100)), vec![1, 2, 3]);
+ assert_eq!(range.key_points(LightPoints::new(100, 100)), vec![]);
+ let range = range.with_light_points(5..10);
+ assert_eq!(range.key_points(BoldPoints(10)), vec![1, 2, 3]);
+ assert_eq!(
+ range.key_points(LightPoints::new(10, 10)),
+ (5..10).collect::<Vec<_>>()
+ );
+
+ assert_eq!(range.size(), 101);
+ assert_eq!(range.index_of(&10), Some(10));
+ assert_eq!(range.from_index(10), Some(10));
+
+ assert_eq!(range.axis_pixel_range((0, 1000)), 0..1000);
+
+ let mut range = range;
+
+ assert_eq!(range.light_points().len(), 5);
+ assert_eq!(range.light_points_mut().len(), 5);
+ assert_eq!(range.bold_points().len(), 3);
+ assert_eq!(range.bold_points_mut().len(), 3);
+ }
+
+ #[test]
+ fn test_with_key_point_method() {
+ let range = (0..100).with_key_point_func(|_| vec![1, 2, 3]);
+ assert_eq!(range.map(&3, (0, 1000)), 30);
+ assert_eq!(range.range(), 0..100);
+ assert_eq!(range.key_points(BoldPoints(100)), vec![1, 2, 3]);
+ assert_eq!(range.key_points(LightPoints::new(100, 100)), vec![]);
+ let range = range.with_light_point_func(|_| (5..10).collect());
+ assert_eq!(range.key_points(BoldPoints(10)), vec![1, 2, 3]);
+ assert_eq!(
+ range.key_points(LightPoints::new(10, 10)),
+ (5..10).collect::<Vec<_>>()
+ );
+
+ assert_eq!(range.size(), 101);
+ assert_eq!(range.index_of(&10), Some(10));
+ assert_eq!(range.from_index(10), Some(10));
+
+ assert_eq!(range.axis_pixel_range((0, 1000)), 0..1000);
+ }
+}
diff --git a/src/coord/ranged1d/combinators/group_by.rs b/src/coord/ranged1d/combinators/group_by.rs
new file mode 100644
index 0000000..0b4b508
--- /dev/null
+++ b/src/coord/ranged1d/combinators/group_by.rs
@@ -0,0 +1,120 @@
+use crate::coord::ranged1d::{
+ AsRangedCoord, DiscreteRanged, KeyPointHint, NoDefaultFormatting, Ranged, ValueFormatter,
+};
+use std::ops::Range;
+
+/// Grouping the value in the coordinate specification.
+///
+/// This combinator doesn't change the coordinate mapping behavior. But it changes how
+/// the key point is generated, this coordinate specification will enforce that only the first value in each group
+/// can be emitted as the bold key points.
+///
+/// This is useful, for example, when we have an X axis is a integer and denotes days.
+/// And we are expecting the tick mark denotes weeks, in this way we can make the range
+/// spec grouping by 7 elements.
+/// With the help of the GroupBy decorator, this can be archived quite easily:
+///```rust
+///use plotters::prelude::*;
+///let mut buf = vec![0;1024*768*3];
+///let area = BitMapBackend::with_buffer(buf.as_mut(), (1024, 768)).into_drawing_area();
+///let chart = ChartBuilder::on(&area)
+/// .build_ranged((0..100).group_by(7), 0..100)
+/// .unwrap();
+///```
+///
+/// To apply this combinator, call [ToGroupByRange::group_by](trait.ToGroupByRange.html#tymethod.group_by) method on any discrete coordinate spec.
+#[derive(Clone)]
+pub struct GroupBy<T: DiscreteRanged>(T, usize);
+
+/// The trait that provides method `Self::group_by` function which creates a
+/// `GroupBy` decorated ranged value.
+pub trait ToGroupByRange: AsRangedCoord + Sized
+where
+ Self::CoordDescType: DiscreteRanged,
+{
+ /// Make a grouping ranged value, see the documentation for `GroupBy` for details.
+ ///
+ /// - `value`: The number of values we want to group it
+ /// - **return**: The newly created grouping range specification
+ fn group_by(self, value: usize) -> GroupBy<<Self as AsRangedCoord>::CoordDescType> {
+ GroupBy(self.into(), value)
+ }
+}
+
+impl<T: AsRangedCoord + Sized> ToGroupByRange for T where T::CoordDescType: DiscreteRanged {}
+
+impl<T: DiscreteRanged> DiscreteRanged for GroupBy<T> {
+ fn size(&self) -> usize {
+ (self.0.size() + self.1 - 1) / self.1
+ }
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ self.0.index_of(value).map(|idx| idx / self.1)
+ }
+ fn from_index(&self, index: usize) -> Option<Self::ValueType> {
+ self.0.from_index(index * self.1)
+ }
+}
+
+impl<T, R: DiscreteRanged<ValueType = T> + ValueFormatter<T>> ValueFormatter<T> for GroupBy<R> {
+ fn format(value: &T) -> String {
+ R::format(value)
+ }
+}
+
+impl<T: DiscreteRanged> Ranged for GroupBy<T> {
+ type FormatOption = NoDefaultFormatting;
+ type ValueType = T::ValueType;
+ fn map(&self, value: &T::ValueType, limit: (i32, i32)) -> i32 {
+ self.0.map(value, limit)
+ }
+ fn range(&self) -> Range<T::ValueType> {
+ self.0.range()
+ }
+ // TODO: See issue issue #88
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<T::ValueType> {
+ let range = 0..(self.0.size() + self.1) / self.1;
+ //let logic_range: RangedCoordusize = range.into();
+
+ let interval =
+ ((range.end - range.start + hint.bold_points() - 1) / hint.bold_points()).max(1);
+ let count = (range.end - range.start) / interval;
+
+ let idx_iter = (0..hint.bold_points()).map(|x| x * interval);
+
+ if hint.weight().allow_light_points() && count < hint.bold_points() * 2 {
+ let outter_ticks = idx_iter;
+ let outter_tick_size = interval * self.1;
+ let inner_ticks_per_group = hint.max_num_points() / outter_ticks.len();
+ let inner_ticks =
+ (outter_tick_size + inner_ticks_per_group - 1) / inner_ticks_per_group;
+ let inner_ticks: Vec<_> = (0..(outter_tick_size / inner_ticks))
+ .map(move |x| x * inner_ticks)
+ .collect();
+ let size = self.0.size();
+ return outter_ticks
+ .map(|base| inner_ticks.iter().map(move |&ofs| base * self.1 + ofs))
+ .flatten()
+ .take_while(|&idx| idx < size)
+ .map(|x| self.0.from_index(x).unwrap())
+ .collect();
+ }
+
+ idx_iter
+ .map(|x| self.0.from_index(x * self.1).unwrap())
+ .collect()
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ #[test]
+ fn test_group_by() {
+ let coord = (0..100).group_by(10);
+ assert_eq!(coord.size(), 11);
+ for (idx, val) in (0..).zip(coord.values()) {
+ assert_eq!(val, idx * 10);
+ assert_eq!(coord.from_index(idx as usize), Some(val));
+ }
+ }
+}
diff --git a/src/coord/ranged1d/combinators/linspace.rs b/src/coord/ranged1d/combinators/linspace.rs
new file mode 100644
index 0000000..17b3d42
--- /dev/null
+++ b/src/coord/ranged1d/combinators/linspace.rs
@@ -0,0 +1,432 @@
+use crate::coord::ranged1d::types::RangedCoordusize;
+use crate::coord::ranged1d::{
+ AsRangedCoord, DiscreteRanged, KeyPointHint, NoDefaultFormatting, Ranged, ValueFormatter,
+};
+use std::cmp::{Ordering, PartialOrd};
+use std::marker::PhantomData;
+use std::ops::{Add, Range, Sub};
+
+/// The type marker used to denote the rounding method.
+/// Since we are mapping any range to a discrete range thus not all values are
+/// perfect mapped to the grid points. In this case, this type marker gives hints
+/// for the linspace coord for how to treat the non-grid-point values.
+pub trait LinspaceRoundingMethod<V> {
+ /// Search for the value within the given values array and rounding method
+ ///
+ /// - `values`: The values we want to search
+ /// - `target`: The target value
+ /// - `returns`: The index if we found the matching item, otherwise none
+ fn search(values: &[V], target: &V) -> Option<usize>;
+}
+
+/// This type marker means linspace do the exact match for searching
+/// which means if there's no value strictly equals to the target, the coord spec
+/// reports not found result.
+#[derive(Clone)]
+pub struct Exact<V>(PhantomData<V>);
+
+impl<V: PartialOrd> LinspaceRoundingMethod<V> for Exact<V> {
+ fn search(values: &[V], target: &V) -> Option<usize> {
+ values.iter().position(|x| target == x)
+ }
+}
+
+/// This type marker means we round up the value. Which means we try to find a
+/// minimal value in the values array that is greater or equal to the target.
+#[derive(Clone)]
+pub struct Ceil<V>(PhantomData<V>);
+
+impl<V: PartialOrd> LinspaceRoundingMethod<V> for Ceil<V> {
+ fn search(values: &[V], target: &V) -> Option<usize> {
+ let ascending = if values.len() < 2 {
+ true
+ } else {
+ values[0].partial_cmp(&values[1]) == Some(Ordering::Less)
+ };
+
+ match values.binary_search_by(|probe| {
+ if ascending {
+ probe.partial_cmp(target).unwrap()
+ } else {
+ target.partial_cmp(probe).unwrap()
+ }
+ }) {
+ Ok(idx) => Some(idx),
+ Err(idx) => {
+ let offset = if ascending { 0 } else { 1 };
+
+ if idx < offset || idx >= values.len() + offset {
+ return None;
+ }
+ Some(idx - offset)
+ }
+ }
+ }
+}
+
+/// This means we use the round down. Which means we try to find a
+/// maximum value in the values array that is less or equal to the target.
+#[derive(Clone)]
+pub struct Floor<V>(PhantomData<V>);
+
+impl<V: PartialOrd> LinspaceRoundingMethod<V> for Floor<V> {
+ fn search(values: &[V], target: &V) -> Option<usize> {
+ let ascending = if values.len() < 2 {
+ true
+ } else {
+ values[0].partial_cmp(&values[1]) == Some(Ordering::Less)
+ };
+
+ match values.binary_search_by(|probe| {
+ if ascending {
+ probe.partial_cmp(target).unwrap()
+ } else {
+ target.partial_cmp(probe).unwrap()
+ }
+ }) {
+ Ok(idx) => Some(idx),
+ Err(idx) => {
+ let offset = if ascending { 1 } else { 0 };
+
+ if idx < offset || idx >= values.len() + offset {
+ return None;
+ }
+ Some(idx - offset)
+ }
+ }
+ }
+}
+
+/// This means we use the rounding. Which means we try to find the closet
+/// value in the array that matches the target
+#[derive(Clone)]
+pub struct Round<V, S>(PhantomData<(V, S)>);
+
+impl<V, S> LinspaceRoundingMethod<V> for Round<V, S>
+where
+ V: Add<S, Output = V> + PartialOrd + Sub<V, Output = S> + Clone,
+ S: PartialOrd + Clone,
+{
+ fn search(values: &[V], target: &V) -> Option<usize> {
+ let ascending = if values.len() < 2 {
+ true
+ } else {
+ values[0].partial_cmp(&values[1]) == Some(Ordering::Less)
+ };
+
+ match values.binary_search_by(|probe| {
+ if ascending {
+ probe.partial_cmp(target).unwrap()
+ } else {
+ target.partial_cmp(probe).unwrap()
+ }
+ }) {
+ Ok(idx) => Some(idx),
+ Err(idx) => {
+ if idx == 0 {
+ return Some(0);
+ }
+
+ if idx == values.len() {
+ return Some(idx - 1);
+ }
+
+ let left_delta = if ascending {
+ target.clone() - values[idx - 1].clone()
+ } else {
+ values[idx - 1].clone() - target.clone()
+ };
+ let right_delta = if ascending {
+ values[idx].clone() - target.clone()
+ } else {
+ target.clone() - values[idx].clone()
+ };
+
+ if left_delta.partial_cmp(&right_delta) == Some(Ordering::Less) {
+ Some(idx - 1)
+ } else {
+ Some(idx)
+ }
+ }
+ }
+ }
+}
+
+/// The coordinate combinator that transform a continous coordinate to a discrete coordinate
+/// to a discrete coordinate by a giving step.
+///
+/// For example, range `0f32..100f32` is a continuous coordinate, thus this prevent us having a
+/// histogram on it since Plotters doesn't know how to segment the range into buckets.
+/// In this case, to get a histogram, we need to split the original range to a
+/// set of discrete buckets (for example, 0.5 per bucket).
+///
+/// The linspace decorate abstracting this method. For example, we can have a discrete coordinate:
+/// `(0f32..100f32).step(0.5)`.
+///
+/// Linspace also supports different types of bucket matching method - This configuration alters the behavior of
+/// [DiscreteCoord::index_of](../trait.DiscreteCoord.html#tymethod.index_of) for Linspace coord spec
+/// - **Flooring**, the value falls into the nearst bucket smaller than it. See [Linspace::use_floor](struct.Linspace.html#method.use_floor)
+/// - **Round**, the value falls into the nearst bucket. See [Linearspace::use_round](struct.Linspace.html#method.use_round)
+/// - **Ceiling**, the value falls into the nearst bucket larger than itself. See [Linspace::use_ceil](struct.Linspace.html#method.use_ceil)
+/// - **Exact Matchting**, the value must be exactly same as the butcket value. See [Linspace::use_exact](struct.Linspace.html#method.use_exact)
+#[derive(Clone)]
+pub struct Linspace<T: Ranged, S: Clone, R: LinspaceRoundingMethod<T::ValueType>>
+where
+ T::ValueType: Add<S, Output = T::ValueType> + PartialOrd + Clone,
+{
+ step: S,
+ inner: T,
+ grid_value: Vec<T::ValueType>,
+ _phatom: PhantomData<R>,
+}
+
+impl<T: Ranged, S: Clone, R: LinspaceRoundingMethod<T::ValueType>> Linspace<T, S, R>
+where
+ T::ValueType: Add<S, Output = T::ValueType> + PartialOrd + Clone,
+{
+ fn compute_grid_values(&mut self) {
+ let range = self.inner.range();
+
+ match (
+ range.start.partial_cmp(&range.end),
+ (range.start.clone() + self.step.clone()).partial_cmp(&range.end),
+ ) {
+ (Some(a), Some(b)) if a != b || a == Ordering::Equal || b == Ordering::Equal => (),
+ (Some(a), Some(_)) => {
+ let mut current = range.start;
+ while current.partial_cmp(&range.end) == Some(a) {
+ self.grid_value.push(current.clone());
+ current = current + self.step.clone();
+ }
+ }
+ _ => (),
+ }
+ }
+
+ /// Set the linspace use the round up method for value matching
+ ///
+ /// - **returns**: The newly created linspace that uses new matching method
+ pub fn use_ceil(self) -> Linspace<T, S, Ceil<T::ValueType>> {
+ Linspace {
+ step: self.step,
+ inner: self.inner,
+ grid_value: self.grid_value,
+ _phatom: PhantomData,
+ }
+ }
+
+ /// Set the linspace use the round down method for value matching
+ ///
+ /// - **returns**: The newly created linspace that uses new matching method
+ pub fn use_floor(self) -> Linspace<T, S, Floor<T::ValueType>> {
+ Linspace {
+ step: self.step,
+ inner: self.inner,
+ grid_value: self.grid_value,
+ _phatom: PhantomData,
+ }
+ }
+
+ /// Set the linspace use the best match method for value matching
+ ///
+ /// - **returns**: The newly created linspace that uses new matching method
+ pub fn use_round(self) -> Linspace<T, S, Round<T::ValueType, S>>
+ where
+ T::ValueType: Sub<T::ValueType, Output = S>,
+ S: PartialOrd,
+ {
+ Linspace {
+ step: self.step,
+ inner: self.inner,
+ grid_value: self.grid_value,
+ _phatom: PhantomData,
+ }
+ }
+
+ /// Set the linspace use the exact match method for value matching
+ ///
+ /// - **returns**: The newly created linspace that uses new matching method
+ pub fn use_exact(self) -> Linspace<T, S, Exact<T::ValueType>>
+ where
+ T::ValueType: Sub<T::ValueType, Output = S>,
+ S: PartialOrd,
+ {
+ Linspace {
+ step: self.step,
+ inner: self.inner,
+ grid_value: self.grid_value,
+ _phatom: PhantomData,
+ }
+ }
+}
+
+impl<T, R, S, RM> ValueFormatter<T> for Linspace<R, S, RM>
+where
+ R: Ranged<ValueType = T> + ValueFormatter<T>,
+ RM: LinspaceRoundingMethod<T>,
+ T: Add<S, Output = T> + PartialOrd + Clone,
+ S: Clone,
+{
+ fn format(value: &T) -> String {
+ R::format(value)
+ }
+}
+
+impl<T: Ranged, S: Clone, R: LinspaceRoundingMethod<T::ValueType>> Ranged for Linspace<T, S, R>
+where
+ T::ValueType: Add<S, Output = T::ValueType> + PartialOrd + Clone,
+{
+ type FormatOption = NoDefaultFormatting;
+ type ValueType = T::ValueType;
+
+ fn range(&self) -> Range<T::ValueType> {
+ self.inner.range()
+ }
+
+ fn map(&self, value: &T::ValueType, limit: (i32, i32)) -> i32 {
+ self.inner.map(value, limit)
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<T::ValueType> {
+ if self.grid_value.is_empty() {
+ return vec![];
+ }
+ let idx_range: RangedCoordusize = (0..(self.grid_value.len() - 1)).into();
+
+ idx_range
+ .key_points(hint)
+ .into_iter()
+ .map(|x| self.grid_value[x].clone())
+ .collect()
+ }
+}
+
+impl<T: Ranged, S: Clone, R: LinspaceRoundingMethod<T::ValueType>> DiscreteRanged
+ for Linspace<T, S, R>
+where
+ T::ValueType: Add<S, Output = T::ValueType> + PartialOrd + Clone,
+{
+ fn size(&self) -> usize {
+ self.grid_value.len()
+ }
+
+ fn index_of(&self, value: &T::ValueType) -> Option<usize> {
+ R::search(self.grid_value.as_ref(), value)
+ }
+
+ fn from_index(&self, idx: usize) -> Option<T::ValueType> {
+ self.grid_value.get(idx).map(Clone::clone)
+ }
+}
+
+pub trait IntoLinspace: AsRangedCoord {
+ /// Set the step value, make a linspace coordinate from the given range.
+ /// By default the matching method use the exact match
+ ///
+ /// - `val`: The step value
+ /// - **returns*: The newly created linspace
+ fn step<S: Clone>(self, val: S) -> Linspace<Self::CoordDescType, S, Exact<Self::Value>>
+ where
+ Self::Value: Add<S, Output = Self::Value> + PartialOrd + Clone,
+ {
+ let mut ret = Linspace {
+ step: val,
+ inner: self.into(),
+ grid_value: vec![],
+ _phatom: PhantomData,
+ };
+
+ ret.compute_grid_values();
+
+ ret
+ }
+}
+
+impl<T: AsRangedCoord> IntoLinspace for T {}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ #[test]
+ fn test_float_linspace() {
+ let coord = (0.0f64..100.0f64).step(0.1);
+
+ assert_eq!(coord.map(&23.12, (0, 10000)), 2312);
+ assert_eq!(coord.range(), 0.0..100.0);
+ assert_eq!(coord.key_points(100000).len(), 1001);
+ assert_eq!(coord.size(), 1001);
+ assert_eq!(coord.index_of(&coord.from_index(230).unwrap()), Some(230));
+ assert!((coord.from_index(230).unwrap() - 23.0).abs() < 1e-5);
+ }
+
+ #[test]
+ fn test_rounding_methods() {
+ let coord = (0.0f64..100.0f64).step(1.0);
+
+ assert_eq!(coord.index_of(&1.0), Some(1));
+ assert_eq!(coord.index_of(&1.2), None);
+
+ let coord = coord.use_floor();
+ assert_eq!(coord.index_of(&1.0), Some(1));
+ assert_eq!(coord.index_of(&1.2), Some(1));
+ assert_eq!(coord.index_of(&23.9), Some(23));
+ assert_eq!(coord.index_of(&10000.0), Some(99));
+ assert_eq!(coord.index_of(&-1.0), None);
+
+ let coord = coord.use_ceil();
+ assert_eq!(coord.index_of(&1.0), Some(1));
+ assert_eq!(coord.index_of(&1.2), Some(2));
+ assert_eq!(coord.index_of(&23.9), Some(24));
+ assert_eq!(coord.index_of(&10000.0), None);
+ assert_eq!(coord.index_of(&-1.0), Some(0));
+
+ let coord = coord.use_round();
+ assert_eq!(coord.index_of(&1.0), Some(1));
+ assert_eq!(coord.index_of(&1.2), Some(1));
+ assert_eq!(coord.index_of(&1.7), Some(2));
+ assert_eq!(coord.index_of(&23.9), Some(24));
+ assert_eq!(coord.index_of(&10000.0), Some(99));
+ assert_eq!(coord.index_of(&-1.0), Some(0));
+
+ let coord = (0.0f64..-100.0f64).step(-1.0);
+
+ assert_eq!(coord.index_of(&-1.0), Some(1));
+ assert_eq!(coord.index_of(&-1.2), None);
+
+ let coord = coord.use_floor();
+ assert_eq!(coord.index_of(&-1.0), Some(1));
+ assert_eq!(coord.index_of(&-1.2), Some(2));
+ assert_eq!(coord.index_of(&-23.9), Some(24));
+ assert_eq!(coord.index_of(&-10000.0), None);
+ assert_eq!(coord.index_of(&1.0), Some(0));
+
+ let coord = coord.use_ceil();
+ assert_eq!(coord.index_of(&-1.0), Some(1));
+ assert_eq!(coord.index_of(&-1.2), Some(1));
+ assert_eq!(coord.index_of(&-23.9), Some(23));
+ assert_eq!(coord.index_of(&-10000.0), Some(99));
+ assert_eq!(coord.index_of(&1.0), None);
+
+ let coord = coord.use_round();
+ assert_eq!(coord.index_of(&-1.0), Some(1));
+ assert_eq!(coord.index_of(&-1.2), Some(1));
+ assert_eq!(coord.index_of(&-1.7), Some(2));
+ assert_eq!(coord.index_of(&-23.9), Some(24));
+ assert_eq!(coord.index_of(&-10000.0), Some(99));
+ assert_eq!(coord.index_of(&1.0), Some(0));
+ }
+
+ #[cfg(feature = "chrono")]
+ #[test]
+ fn test_duration_linspace() {
+ use chrono::Duration;
+ let coord = (Duration::seconds(0)..Duration::seconds(100)).step(Duration::milliseconds(1));
+
+ assert_eq!(coord.size(), 100_000);
+ assert_eq!(coord.index_of(&coord.from_index(230).unwrap()), Some(230));
+ assert_eq!(coord.key_points(10000000).len(), 100_000);
+ assert_eq!(coord.range(), Duration::seconds(0)..Duration::seconds(100));
+ assert_eq!(coord.map(&Duration::seconds(25), (0, 100_000)), 25000);
+ }
+}
diff --git a/src/coord/logarithmic.rs b/src/coord/ranged1d/combinators/logarithmic.rs
index a651013..d29c73e 100644
--- a/src/coord/logarithmic.rs
+++ b/src/coord/ranged1d/combinators/logarithmic.rs
@@ -1,8 +1,10 @@
-use super::{AsRangedCoord, Ranged, RangedCoordf64};
+use crate::coord::ranged1d::types::RangedCoordf64;
+use crate::coord::ranged1d::{AsRangedCoord, DefaultFormatting, KeyPointHint, Ranged};
use std::marker::PhantomData;
use std::ops::Range;
-/// The trait for the type that is able to be presented in the log scale
+/// The trait for the type that is able to be presented in the log scale.
+/// This trait is primarily used by [LogRange](struct.LogRange.html).
pub trait LogScalable: Clone {
/// Make the conversion from the type to the floating point number
fn as_f64(&self) -> f64;
@@ -47,15 +49,23 @@ impl_log_scalable!(i, u64);
impl_log_scalable!(f, f32);
impl_log_scalable!(f, f64);
-/// The decorator type for a range of a log-scaled value
-pub struct LogRange<V: LogScalable>(pub Range<V>);
+pub trait IntoLogRange {
+ type ValueType: LogScalable;
+ fn log_scale(self) -> LogRange<Self::ValueType>;
+}
-impl<V: LogScalable + Clone> Clone for LogRange<V> {
- fn clone(&self) -> Self {
- Self(self.0.clone())
+impl<T: LogScalable> IntoLogRange for Range<T> {
+ type ValueType = T;
+ fn log_scale(self) -> LogRange<T> {
+ LogRange(self)
}
}
+/// The logarithmic coodinate decorator.
+/// This decorator is used to make the axis rendered as logarithmically.
+#[derive(Clone)]
+pub struct LogRange<V: LogScalable>(pub Range<V>);
+
impl<V: LogScalable> From<LogRange<V>> for LogCoord<V> {
fn from(range: LogRange<V>) -> LogCoord<V> {
LogCoord {
@@ -79,6 +89,7 @@ pub struct LogCoord<V: LogScalable> {
}
impl<V: LogScalable> Ranged for LogCoord<V> {
+ type FormatOption = DefaultFormatting;
type ValueType = V;
fn map(&self, value: &V, limit: (i32, i32)) -> i32 {
@@ -87,7 +98,8 @@ impl<V: LogScalable> Ranged for LogCoord<V> {
self.linear.map(&value, limit)
}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ let max_points = hint.max_num_points();
let tier_1 = (self.logic.end.as_f64() / self.logic.start.as_f64())
.log10()
.abs()
diff --git a/src/coord/ranged1d/combinators/mod.rs b/src/coord/ranged1d/combinators/mod.rs
new file mode 100644
index 0000000..ea1ed5a
--- /dev/null
+++ b/src/coord/ranged1d/combinators/mod.rs
@@ -0,0 +1,17 @@
+mod ckps;
+pub use ckps::{BindKeyPointMethod, BindKeyPoints, WithKeyPointMethod, WithKeyPoints};
+
+mod group_by;
+pub use group_by::{GroupBy, ToGroupByRange};
+
+mod linspace;
+pub use linspace::{IntoLinspace, Linspace};
+
+mod logarithmic;
+pub use logarithmic::{IntoLogRange, LogCoord, LogRange, LogScalable};
+
+mod nested;
+pub use nested::{BuildNestedCoord, NestedRange, NestedValue};
+
+mod partial_axis;
+pub use partial_axis::{make_partial_axis, IntoPartialAxis};
diff --git a/src/coord/ranged1d/combinators/nested.rs b/src/coord/ranged1d/combinators/nested.rs
new file mode 100644
index 0000000..d23f34e
--- /dev/null
+++ b/src/coord/ranged1d/combinators/nested.rs
@@ -0,0 +1,204 @@
+use crate::coord::ranged1d::{
+ AsRangedCoord, DiscreteRanged, KeyPointHint, NoDefaultFormatting, Ranged, ValueFormatter,
+};
+use std::ops::Range;
+
+/// Describe a value for a nested coordinate
+#[derive(PartialEq, Eq, Clone, Debug)]
+pub enum NestedValue<C, V> {
+ /// Category value
+ Category(C),
+ /// One exact nested value
+ Value(C, V),
+}
+
+impl<C, V> NestedValue<C, V> {
+ /// Get the category of current nest value
+ pub fn category(&self) -> &C {
+ match self {
+ NestedValue::Category(cat) => cat,
+ NestedValue::Value(cat, _) => cat,
+ }
+ }
+ /// Get the nested value from this value
+ pub fn nested_value(&self) -> Option<&V> {
+ match self {
+ NestedValue::Category(_) => None,
+ NestedValue::Value(_, val) => Some(val),
+ }
+ }
+}
+
+impl<C, V> From<(C, V)> for NestedValue<C, V> {
+ fn from((cat, val): (C, V)) -> NestedValue<C, V> {
+ NestedValue::Value(cat, val)
+ }
+}
+
+impl<C, V> From<C> for NestedValue<C, V> {
+ fn from(cat: C) -> NestedValue<C, V> {
+ NestedValue::Category(cat)
+ }
+}
+
+/// A nested coordinate spec which is a discrete coordinate on the top level and
+/// for each value in discrete value, there is a secondary coordinate system.
+/// And the value is defined as a tuple of primary coordinate value and secondary
+/// coordinate value
+pub struct NestedRange<Primary: DiscreteRanged, Secondary: Ranged> {
+ primary: Primary,
+ secondary: Vec<Secondary>,
+}
+
+impl<PT, ST, P, S> ValueFormatter<NestedValue<PT, ST>> for NestedRange<P, S>
+where
+ P: Ranged<ValueType = PT> + DiscreteRanged,
+ S: Ranged<ValueType = ST>,
+ P: ValueFormatter<PT>,
+ S: ValueFormatter<ST>,
+{
+ fn format(value: &NestedValue<PT, ST>) -> String {
+ match value {
+ NestedValue::Category(cat) => P::format(cat),
+ NestedValue::Value(_, val) => S::format(val),
+ }
+ }
+}
+
+impl<P: DiscreteRanged, S: Ranged> Ranged for NestedRange<P, S> {
+ type FormatOption = NoDefaultFormatting;
+ type ValueType = NestedValue<P::ValueType, S::ValueType>;
+
+ fn range(&self) -> Range<Self::ValueType> {
+ let primary_range = self.primary.range();
+
+ let secondary_left = self.secondary[0].range().start;
+ let secondary_right = self.secondary[self.primary.size() - 1].range().end;
+
+ NestedValue::Value(primary_range.start, secondary_left)
+ ..NestedValue::Value(primary_range.end, secondary_right)
+ }
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ let idx = self.primary.index_of(value.category()).unwrap_or(0);
+ let total = self.primary.size();
+
+ let bucket_size = (limit.1 - limit.0) / total as i32;
+ let mut residual = (limit.1 - limit.0) % total as i32;
+
+ if residual < 0 {
+ residual += total as i32;
+ }
+
+ let s_left = limit.0 + bucket_size * idx as i32 + residual.min(idx as i32);
+ let s_right = s_left + bucket_size + if (residual as usize) < idx { 1 } else { 0 };
+
+ if let Some(secondary_value) = value.nested_value() {
+ self.secondary[idx].map(secondary_value, (s_left, s_right))
+ } else {
+ (s_left + s_right) / 2
+ }
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ if !hint.weight().allow_light_points() || hint.max_num_points() < self.primary.size() * 2 {
+ self.primary
+ .key_points(hint)
+ .into_iter()
+ .map(NestedValue::Category)
+ .collect()
+ } else {
+ let secondary_size =
+ (hint.max_num_points() - self.primary.size()) / self.primary.size();
+ self.primary
+ .values()
+ .enumerate()
+ .map(|(idx, val)| {
+ std::iter::once(NestedValue::Category(val)).chain(
+ self.secondary[idx]
+ .key_points(secondary_size)
+ .into_iter()
+ .map(move |v| {
+ NestedValue::Value(self.primary.from_index(idx).unwrap(), v)
+ }),
+ )
+ })
+ .flatten()
+ .collect()
+ }
+ }
+}
+
+impl<P: DiscreteRanged, S: DiscreteRanged> DiscreteRanged for NestedRange<P, S> {
+ fn size(&self) -> usize {
+ self.secondary.iter().map(|x| x.size()).sum::<usize>()
+ }
+
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ let p_idx = self.primary.index_of(value.category())?;
+ let s_idx = self.secondary[p_idx].index_of(value.nested_value()?)?;
+ Some(
+ s_idx
+ + self.secondary[..p_idx]
+ .iter()
+ .map(|x| x.size())
+ .sum::<usize>(),
+ )
+ }
+
+ fn from_index(&self, mut index: usize) -> Option<Self::ValueType> {
+ for (p_idx, snd) in self.secondary.iter().enumerate() {
+ if snd.size() > index {
+ return Some(NestedValue::Value(
+ self.primary.from_index(p_idx).unwrap(),
+ snd.from_index(index).unwrap(),
+ ));
+ }
+ index -= snd.size();
+ }
+ None
+ }
+}
+
+pub trait BuildNestedCoord: AsRangedCoord
+where
+ Self::CoordDescType: DiscreteRanged,
+{
+ fn nested_coord<S: AsRangedCoord>(
+ self,
+ builder: impl Fn(<Self::CoordDescType as Ranged>::ValueType) -> S,
+ ) -> NestedRange<Self::CoordDescType, S::CoordDescType> {
+ let primary: Self::CoordDescType = self.into();
+ assert!(primary.size() > 0);
+
+ let secondary = primary
+ .values()
+ .map(|value| builder(value).into())
+ .collect();
+
+ NestedRange { primary, secondary }
+ }
+}
+
+impl<T: AsRangedCoord> BuildNestedCoord for T where T::CoordDescType: DiscreteRanged {}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ #[test]
+ fn test_nested_coord() {
+ let coord = (0..10).nested_coord(|x| 0..(x + 1));
+
+ let range = coord.range();
+
+ assert_eq!(NestedValue::Value(0, 0)..NestedValue::Value(10, 11), range);
+ assert_eq!(coord.map(&NestedValue::Category(0), (0, 1100)), 50);
+ assert_eq!(coord.map(&NestedValue::Value(0, 0), (0, 1100)), 0);
+ assert_eq!(coord.map(&NestedValue::Value(5, 4), (0, 1100)), 567);
+
+ assert_eq!(coord.size(), (2 + 12) * 11 / 2);
+ assert_eq!(coord.index_of(&NestedValue::Value(5, 4)), Some(24));
+ assert_eq!(coord.from_index(24), Some(NestedValue::Value(5, 4)));
+ }
+}
diff --git a/src/coord/ranged1d/combinators/partial_axis.rs b/src/coord/ranged1d/combinators/partial_axis.rs
new file mode 100644
index 0000000..b778ee2
--- /dev/null
+++ b/src/coord/ranged1d/combinators/partial_axis.rs
@@ -0,0 +1,113 @@
+use crate::coord::ranged1d::{
+ AsRangedCoord, DefaultFormatting, DiscreteRanged, KeyPointHint, Ranged,
+};
+use std::ops::Range;
+
+/// This axis decorator will make the axis partially display on the axis.
+/// At some time, we want the axis only covers some part of the value.
+/// This decorator will have an additional display range defined.
+#[derive(Clone)]
+pub struct PartialAxis<R: Ranged>(R, Range<R::ValueType>);
+
+/// The trait for the types that can be converted into a partial axis
+pub trait IntoPartialAxis: AsRangedCoord {
+ /// Make the partial axis
+ ///
+ /// - `axis_range`: The range of the axis to be displayed
+ /// - **returns**: The converted range specification
+ fn partial_axis(
+ self,
+ axis_range: Range<<Self::CoordDescType as Ranged>::ValueType>,
+ ) -> PartialAxis<Self::CoordDescType> {
+ PartialAxis(self.into(), axis_range)
+ }
+}
+
+impl<R: AsRangedCoord> IntoPartialAxis for R {}
+
+impl<R: Ranged> Ranged for PartialAxis<R>
+where
+ R::ValueType: Clone,
+{
+ type FormatOption = DefaultFormatting;
+ type ValueType = R::ValueType;
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ self.0.map(value, limit)
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ self.0.key_points(hint)
+ }
+
+ fn range(&self) -> Range<Self::ValueType> {
+ self.0.range()
+ }
+
+ fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
+ let left = self.map(&self.1.start, limit);
+ let right = self.map(&self.1.end, limit);
+
+ left.min(right)..left.max(right)
+ }
+}
+
+impl<R: DiscreteRanged> DiscreteRanged for PartialAxis<R>
+where
+ R: Ranged,
+ <R as Ranged>::ValueType: Eq + Clone,
+{
+ fn size(&self) -> usize {
+ self.0.size()
+ }
+
+ fn index_of(&self, value: &R::ValueType) -> Option<usize> {
+ self.0.index_of(value)
+ }
+
+ fn from_index(&self, index: usize) -> Option<Self::ValueType> {
+ self.0.from_index(index)
+ }
+}
+
+/// Make a partial axis based on the percentage of visible portion.
+/// We can use `into_partial_axis` to create a partial axis range specification.
+/// But sometimes, we want to directly specify the percentage visible to the user.
+///
+/// - `axis_range`: The range specification
+/// - `part`: The visible part of the axis. Each value is from [0.0, 1.0]
+/// - **returns**: The partial axis created from the input, or `None` when not possible
+pub fn make_partial_axis<T>(
+ axis_range: Range<T>,
+ part: Range<f64>,
+) -> Option<PartialAxis<<Range<T> as AsRangedCoord>::CoordDescType>>
+where
+ Range<T>: AsRangedCoord,
+ T: num_traits::NumCast + Clone,
+{
+ let left: f64 = num_traits::cast(axis_range.start.clone())?;
+ let right: f64 = num_traits::cast(axis_range.end.clone())?;
+
+ let full_range_size = (right - left) / (part.end - part.start);
+
+ let full_left = left - full_range_size * part.start;
+ let full_right = right + full_range_size * (1.0 - part.end);
+
+ let full_range: Range<T> = num_traits::cast(full_left)?..num_traits::cast(full_right)?;
+
+ let axis_range: <Range<T> as AsRangedCoord>::CoordDescType = axis_range.into();
+
+ Some(PartialAxis(full_range.into(), axis_range.range()))
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ #[test]
+ fn test_make_partial_axis() {
+ let r = make_partial_axis(20..80, 0.2..0.8).unwrap();
+ assert_eq!(r.size(), 101);
+ assert_eq!(r.range(), 0..100);
+ assert_eq!(r.axis_pixel_range((0, 100)), 20..80);
+ }
+}
diff --git a/src/coord/ranged1d/discrete.rs b/src/coord/ranged1d/discrete.rs
new file mode 100644
index 0000000..5797dce
--- /dev/null
+++ b/src/coord/ranged1d/discrete.rs
@@ -0,0 +1,270 @@
+use crate::coord::ranged1d::{
+ AsRangedCoord, KeyPointHint, NoDefaultFormatting, Ranged, ReversibleRanged, ValueFormatter,
+};
+use std::ops::Range;
+
+/// The trait indicates the coordinate is discrete
+/// This means we can bidirectionally map the range value to 0 to N
+/// in which N is the number of distinct values of the range.
+///
+/// This is useful since for a histgoram, this is an abstraction of bucket.
+pub trait DiscreteRanged
+where
+ Self: Ranged,
+{
+ /// Get the number of element in the range
+ /// Note: we assume that all the ranged discrete coordinate has finite value
+ ///
+ /// - **returns** The number of values in the range
+ fn size(&self) -> usize;
+
+ /// Map a value to the index
+ ///
+ /// Note: This function doesn't guareentee return None when the value is out of range.
+ /// The only way to confirm the value is in the range is to examing the return value isn't
+ /// larger than self.size.
+ ///
+ /// - `value`: The value to map
+ /// - **returns** The index of the value
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize>;
+
+ /// Reverse map the index to the value
+ ///
+ /// Note: This function doesn't guareentee returning None when the index is out of range.
+ ///
+ /// - `value`: The index to map
+ /// - **returns** The value
+ fn from_index(&self, index: usize) -> Option<Self::ValueType>;
+
+ /// Return a iterator that iterates over the all possible values
+ ///
+ /// - **returns** The value iterator
+ fn values(&self) -> DiscreteValueIter<'_, Self>
+ where
+ Self: Sized,
+ {
+ DiscreteValueIter(self, 0, self.size())
+ }
+
+ /// Returns the previous value in this range
+ ///
+ /// Normally, it's based on the `from_index` and `index_of` function. But for
+ /// some of the coord spec, it's possible that we value faster implementation.
+ /// If this is the case, we can impelemnet the type specific impl for the `previous`
+ /// and `next`.
+ ///
+ /// - `value`: The current value
+ /// - **returns**: The value piror to current value
+ fn previous(&self, value: &Self::ValueType) -> Option<Self::ValueType> {
+ if let Some(idx) = self.index_of(value) {
+ if idx > 0 {
+ return self.from_index(idx - 1);
+ }
+ }
+ None
+ }
+
+ /// Returns the next value in this range
+ ///
+ /// Normally, it's based on the `from_index` and `index_of` function. But for
+ /// some of the coord spec, it's possible that we value faster implementation.
+ /// If this is the case, we can impelemnet the type specific impl for the `previous`
+ /// and `next`.
+ ///
+ /// - `value`: The current value
+ /// - **returns**: The value next to current value
+ fn next(&self, value: &Self::ValueType) -> Option<Self::ValueType> {
+ if let Some(idx) = self.index_of(value) {
+ if idx + 1 < self.size() {
+ return self.from_index(idx + 1);
+ }
+ }
+ None
+ }
+}
+
+/// A `SegmentedCoord` is a decorator on any discrete coordinate specification.
+/// This decorator will convert the discrete coordiante in two ways:
+/// - Add an extra dummy element after all the values in origianl discrete coordinate
+/// - Logically each value `v` from original coordinate system is mapped into an segment `[v, v+1)` where `v+1` denotes the sucessor of the `v`
+/// - Introduce two types of values `SegmentValue::Exact(value)` which denotes the left end of value's segment and `SegmentValue::CenterOf(value)` which refers the center of the segment.
+/// This is used in histogram types, which uses a discrete coordinate as the buckets. The segmented coord always emits `CenterOf(value)` key points, thus it allows all the label and tick marks
+/// of the coordinate rendered in the middle of each segment.
+/// The coresponding trait [IntoSegmentedCoord](trait.IntoSegmentedCoord.html) is used to apply this decorator to coordinates.
+#[derive(Clone)]
+pub struct SegmentedCoord<D: DiscreteRanged>(D);
+
+/// The trait for types that can decorated by [SegmentedCoord](struct.SegmentedCoord.html) decorator.
+pub trait IntoSegmentedCoord: AsRangedCoord
+where
+ Self::CoordDescType: DiscreteRanged,
+{
+ /// Convert current ranged value into a segmented coordinate
+ fn into_segmented(self) -> SegmentedCoord<Self::CoordDescType> {
+ SegmentedCoord(self.into())
+ }
+}
+
+impl<R: AsRangedCoord> IntoSegmentedCoord for R where R::CoordDescType: DiscreteRanged {}
+
+/// The value that used by the segmented coordinate.
+#[derive(Clone, Debug)]
+pub enum SegmentValue<T> {
+ /// Means we are referring the exact position of value `T`
+ Exact(T),
+ /// Means we are referring the center of position `T` and the successor of `T`
+ CenterOf(T),
+ /// Referring the last dummy element
+ Last,
+}
+
+impl<T, D: DiscreteRanged + Ranged<ValueType = T>> ValueFormatter<SegmentValue<T>>
+ for SegmentedCoord<D>
+where
+ D: ValueFormatter<T>,
+{
+ fn format(value: &SegmentValue<T>) -> String {
+ match value {
+ SegmentValue::Exact(ref value) => D::format(value),
+ SegmentValue::CenterOf(ref value) => D::format(value),
+ _ => "".to_string(),
+ }
+ }
+}
+
+impl<D: DiscreteRanged> Ranged for SegmentedCoord<D> {
+ type FormatOption = NoDefaultFormatting;
+ type ValueType = SegmentValue<D::ValueType>;
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ let margin = ((limit.1 - limit.0) as f32 / self.0.size() as f32).round() as i32;
+
+ match value {
+ SegmentValue::Exact(coord) => self.0.map(coord, (limit.0, limit.1 - margin)),
+ SegmentValue::CenterOf(coord) => {
+ let left = self.0.map(coord, (limit.0, limit.1 - margin));
+ if let Some(idx) = self.0.index_of(coord) {
+ if idx + 1 < self.0.size() {
+ let right = self.0.map(
+ &self.0.from_index(idx + 1).unwrap(),
+ (limit.0, limit.1 - margin),
+ );
+ return (left + right) / 2;
+ }
+ }
+ left + margin / 2
+ }
+ SegmentValue::Last => limit.1,
+ }
+ }
+
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ self.0
+ .key_points(hint)
+ .into_iter()
+ .map(SegmentValue::CenterOf)
+ .collect()
+ }
+
+ fn range(&self) -> Range<Self::ValueType> {
+ let range = self.0.range();
+ SegmentValue::Exact(range.start)..SegmentValue::Exact(range.end)
+ }
+}
+
+impl<D: DiscreteRanged> DiscreteRanged for SegmentedCoord<D> {
+ fn size(&self) -> usize {
+ self.0.size() + 1
+ }
+
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ match value {
+ SegmentValue::Exact(value) => self.0.index_of(value),
+ SegmentValue::CenterOf(value) => self.0.index_of(value),
+ SegmentValue::Last => Some(self.0.size()),
+ }
+ }
+
+ fn from_index(&self, idx: usize) -> Option<Self::ValueType> {
+ match idx {
+ idx if idx < self.0.size() => self.0.from_index(idx).map(SegmentValue::Exact),
+ idx if idx == self.0.size() => Some(SegmentValue::Last),
+ _ => None,
+ }
+ }
+}
+
+impl<T> From<T> for SegmentValue<T> {
+ fn from(this: T) -> SegmentValue<T> {
+ SegmentValue::Exact(this)
+ }
+}
+
+impl<DC: DiscreteRanged> ReversibleRanged for DC {
+ fn unmap(&self, input: i32, limit: (i32, i32)) -> Option<Self::ValueType> {
+ let idx = (f64::from(input - limit.0) * (self.size() as f64) / f64::from(limit.1 - limit.0))
+ .floor() as usize;
+ self.from_index(idx)
+ }
+}
+
+/// The iterator that can be used to iterate all the values defined by a discrete coordinate
+pub struct DiscreteValueIter<'a, T: DiscreteRanged>(&'a T, usize, usize);
+
+impl<'a, T: DiscreteRanged> Iterator for DiscreteValueIter<'a, T> {
+ type Item = T::ValueType;
+ fn next(&mut self) -> Option<T::ValueType> {
+ if self.1 >= self.2 {
+ return None;
+ }
+ let idx = self.1;
+ self.1 += 1;
+ self.0.from_index(idx)
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ #[test]
+ fn test_value_iter() {
+ let range: crate::coord::ranged1d::types::RangedCoordi32 = (-10..10).into();
+
+ let values: Vec<_> = range.values().collect();
+
+ assert_eq!(21, values.len());
+
+ for (expected, value) in (-10..=10).zip(values) {
+ assert_eq!(expected, value);
+ }
+ assert_eq!(range.next(&5), Some(6));
+ assert_eq!(range.next(&10), None);
+ assert_eq!(range.previous(&-10), None);
+ assert_eq!(range.previous(&10), Some(9));
+ }
+
+ #[test]
+ fn test_centric_coord() {
+ let coord = (0..10).into_segmented();
+
+ assert_eq!(coord.size(), 12);
+ for i in 0..=11 {
+ match coord.from_index(i as usize) {
+ Some(SegmentValue::Exact(value)) => assert_eq!(i, value),
+ Some(SegmentValue::Last) => assert_eq!(i, 11),
+ _ => panic!(),
+ }
+ }
+
+ for (kps, idx) in coord.key_points(20).into_iter().zip(0..) {
+ match kps {
+ SegmentValue::CenterOf(value) if value <= 10 => assert_eq!(value, idx),
+ _ => panic!(),
+ }
+ }
+
+ assert_eq!(coord.map(&SegmentValue::CenterOf(0), (0, 24)), 1);
+ assert_eq!(coord.map(&SegmentValue::Exact(0), (0, 24)), 0);
+ assert_eq!(coord.map(&SegmentValue::Exact(1), (0, 24)), 2);
+ }
+}
diff --git a/src/coord/ranged1d/mod.rs b/src/coord/ranged1d/mod.rs
new file mode 100644
index 0000000..06de6bf
--- /dev/null
+++ b/src/coord/ranged1d/mod.rs
@@ -0,0 +1,234 @@
+/*!
+ The one-dimensional coordinate system abstraction.
+
+ Plotters build complex coordinate system with a combinator pattern and all the coordinate system is
+ built from the one dimensional coordinate system. This module defines the fundamental types used by
+ the one-dimensional coordinate system.
+
+ The key trait for a one dimensional coordinate is [Ranged](trait.Ranged.html). This trait describes a
+ set of values which served as the 1D coordinate system in Plotters. In order to extend the coordinate system,
+ the new coordinate spec must implement this trait.
+
+ The following example demonstrate how to make a customized coordinate specification
+ ```
+use plotters::coord::ranged1d::{Ranged, DefaultFormatting, KeyPointHint};
+use std::ops::Range;
+
+struct ZeroToOne;
+
+impl Ranged for ZeroToOne {
+ type ValueType = f64;
+ type FormatOption = DefaultFormatting;
+
+ fn map(&self, &v: &f64, pixel_range: (i32, i32)) -> i32 {
+ let size = pixel_range.1 - pixel_range.0;
+ let v = v.min(1.0).max(0.0);
+ ((size as f64) * v).round() as i32
+ }
+
+ fn key_points<Hint:KeyPointHint>(&self, hint: Hint) -> Vec<f64> {
+ if hint.max_num_points() < 3 {
+ vec![]
+ } else {
+ vec![0.0, 0.5, 1.0]
+ }
+ }
+
+ fn range(&self) -> Range<f64> {
+ 0.0..1.0
+ }
+}
+
+use plotters::prelude::*;
+
+let mut buffer = vec![0; 1024 * 768 * 3];
+let root = BitMapBackend::with_buffer(&mut buffer, (1024, 768)).into_drawing_area();
+
+let chart = ChartBuilder::on(&root)
+ .build_cartesian_2d(ZeroToOne, ZeroToOne)
+ .unwrap();
+
+ ```
+*/
+use std::fmt::Debug;
+use std::ops::Range;
+
+pub(super) mod combinators;
+pub(super) mod types;
+
+mod discrete;
+pub use discrete::{DiscreteRanged, IntoSegmentedCoord, SegmentValue, SegmentedCoord};
+
+/// Since stable Rust doesn't have specialization, it's very hard to make our own trait that
+/// automatically implemented the value formatter. This trait uses as a marker indicates if we
+/// should automatically implement the default value formater based on it's `Debug` trait
+pub trait DefaultValueFormatOption {}
+
+/// This makes the ranged coord uses the default `Debug` based formatting
+pub struct DefaultFormatting;
+impl DefaultValueFormatOption for DefaultFormatting {}
+
+/// This markers prevent Plotters to implement the default `Debug` based formatting
+pub struct NoDefaultFormatting;
+impl DefaultValueFormatOption for NoDefaultFormatting {}
+
+/// Determine how we can format a value in a coordinate system by default
+pub trait ValueFormatter<V> {
+ /// Format the value
+ fn format(value: &V) -> String;
+}
+
+// By default the value is formatted by the debug trait
+impl<R: Ranged<FormatOption = DefaultFormatting>> ValueFormatter<R::ValueType> for R
+where
+ R::ValueType: Debug,
+{
+ fn format(value: &R::ValueType) -> String {
+ format!("{:?}", value)
+ }
+}
+
+/// Specify the weight of key points.
+pub enum KeyPointWeight {
+ // Allows only bold key points
+ Bold,
+ // Allows any key points
+ Any,
+}
+
+impl KeyPointWeight {
+ /// Check if this key point weight setting allows light point
+ pub fn allow_light_points(&self) -> bool {
+ match self {
+ KeyPointWeight::Bold => false,
+ KeyPointWeight::Any => true,
+ }
+ }
+}
+
+/// The trait for a hint provided to the key point algorithm used by the coordinate specs.
+/// The most important constraint is the `max_num_points` which means the algorithm could emit no more than specific number of key points
+/// `weight` is used to determine if this is used as a bold grid line or light grid line
+/// `bold_points` returns the max number of coresponding bold grid lines
+pub trait KeyPointHint {
+ /// Returns the max number of key points
+ fn max_num_points(&self) -> usize;
+ /// Returns the weight for this hint
+ fn weight(&self) -> KeyPointWeight;
+ /// Returns the point number constraint for the bold points
+ fn bold_points(&self) -> usize {
+ self.max_num_points()
+ }
+}
+
+impl KeyPointHint for usize {
+ fn max_num_points(&self) -> usize {
+ *self
+ }
+
+ fn weight(&self) -> KeyPointWeight {
+ KeyPointWeight::Any
+ }
+}
+
+/// The key point hint indicates we only need key point for the bold grid lines
+pub struct BoldPoints(pub usize);
+
+impl KeyPointHint for BoldPoints {
+ fn max_num_points(&self) -> usize {
+ self.0
+ }
+
+ fn weight(&self) -> KeyPointWeight {
+ KeyPointWeight::Bold
+ }
+}
+
+/// The key point hint indicates that we are using the key points for the light grid lines
+pub struct LightPoints {
+ bold_points_num: usize,
+ light_limit: usize,
+}
+
+impl LightPoints {
+ /// Create a new light key point hind
+ pub fn new(bold_count: usize, requested: usize) -> Self {
+ Self {
+ bold_points_num: bold_count,
+ light_limit: requested,
+ }
+ }
+}
+
+impl KeyPointHint for LightPoints {
+ fn max_num_points(&self) -> usize {
+ self.light_limit
+ }
+
+ fn bold_points(&self) -> usize {
+ self.bold_points_num
+ }
+
+ fn weight(&self) -> KeyPointWeight {
+ KeyPointWeight::Any
+ }
+}
+
+/// The trait that indicates we have a ordered and ranged value
+/// Which is used to describe any 1D axis.
+pub trait Ranged {
+ /// This marker decides if Plotters default [ValueFormatter](trait.ValueFormatter.html) implementation should be used.
+ /// This assicated type can be one of follow two types:
+ /// - [DefaultFormatting](struct.DefaultFormatting.html) will allow Plotters automatically impl
+ /// the formatter based on `Debug` trait, if `Debug` trait is not impl for the `Self::Value`,
+ /// [ValueFormatter](trait.ValueFormatter.html) will not impl unless you impl it manually.
+ ///
+ /// - [NoDefaultFormatting](struct.NoDefaultFormatting.html) Disable the automatical `Debug`
+ /// based value formatting. Thus you have to impl the
+ /// [ValueFormatter](trait.ValueFormatter.html) manually.
+ ///
+ type FormatOption: DefaultValueFormatOption;
+
+ /// The type of this value in this range specification
+ type ValueType;
+
+ /// This function maps the value to i32, which is the drawing coordinate
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32;
+
+ /// This function gives the key points that we can draw a grid based on this
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType>;
+
+ /// Get the range of this value
+ fn range(&self) -> Range<Self::ValueType>;
+
+ /// This function provides the on-axis part of its range
+ #[allow(clippy::range_plus_one)]
+ fn axis_pixel_range(&self, limit: (i32, i32)) -> Range<i32> {
+ if limit.0 < limit.1 {
+ limit.0..limit.1
+ } else {
+ (limit.1 + 1)..(limit.0 + 1)
+ }
+ }
+}
+
+/// The trait indicates the ranged value can be map reversely, which means
+/// an pixel-based coordinate is given, it's possible to figure out the underlying
+/// logic value.
+pub trait ReversibleRanged: Ranged {
+ fn unmap(&self, input: i32, limit: (i32, i32)) -> Option<Self::ValueType>;
+}
+
+/// The trait for the type that can be converted into a ranged coordinate axis
+pub trait AsRangedCoord: Sized {
+ type CoordDescType: Ranged<ValueType = Self::Value> + From<Self>;
+ type Value;
+}
+
+impl<T> AsRangedCoord for T
+where
+ T: Ranged,
+{
+ type CoordDescType = T;
+ type Value = T::ValueType;
+}
diff --git a/src/coord/datetime.rs b/src/coord/ranged1d/types/datetime.rs
index cb96f93..f6b5717 100644
--- a/src/coord/datetime.rs
+++ b/src/coord/ranged1d/types/datetime.rs
@@ -1,24 +1,31 @@
/// The datetime coordinates
-use chrono::{Date, DateTime, Datelike, Duration, NaiveTime, TimeZone, Timelike};
-use std::ops::Range;
+use chrono::{Date, DateTime, Datelike, Duration, NaiveDate, NaiveDateTime, TimeZone, Timelike};
+use std::ops::{Add, Range, Sub};
-use super::{AsRangedCoord, DiscreteRanged, Ranged};
+use crate::coord::ranged1d::{
+ AsRangedCoord, DefaultFormatting, DiscreteRanged, KeyPointHint, NoDefaultFormatting, Ranged,
+ ValueFormatter,
+};
-/// The trait that describe some time value
+/// The trait that describe some time value. This is the uniformed abstraction that works
+/// for both Date, DateTime and Duration, etc.
pub trait TimeValue: Eq {
- type Tz: TimeZone;
+ type DateType: Datelike + PartialOrd;
+
/// Returns the date that is no later than the time
- fn date_floor(&self) -> Date<Self::Tz>;
+ fn date_floor(&self) -> Self::DateType;
/// Returns the date that is no earlier than the time
- fn date_ceil(&self) -> Date<Self::Tz>;
+ fn date_ceil(&self) -> Self::DateType;
/// Returns the maximum value that is earlier than the given date
- fn earliest_after_date(date: Date<Self::Tz>) -> Self;
+ fn earliest_after_date(date: Self::DateType) -> Self;
/// Returns the duration between two time value
fn subtract(&self, other: &Self) -> Duration;
- /// Get the timezone information for current value
- fn timezone(&self) -> Self::Tz;
+ /// Instantiate a date type for current time value;
+ fn ymd(&self, year: i32, month: u32, date: u32) -> Self::DateType;
+ /// Cast current date type into this type
+ fn from_date(date: Self::DateType) -> Self;
- /// Map the coord
+ /// Map the coord spec
fn map_coord(value: &Self, begin: &Self, end: &Self, limit: (i32, i32)) -> i32 {
let total_span = end.subtract(begin);
let value_span = value.subtract(begin);
@@ -31,6 +38,7 @@ pub trait TimeValue: Eq {
}
}
+ // Yes, converting them to floating point may lose precision, but this is Ok.
// If it overflows, it means we have a time span nearly 300 years, we are safe to ignore the
// portion less than 1 day.
let total_days = total_span.num_days() as f64;
@@ -40,8 +48,32 @@ pub trait TimeValue: Eq {
}
}
+impl TimeValue for NaiveDate {
+ type DateType = NaiveDate;
+ fn date_floor(&self) -> NaiveDate {
+ *self
+ }
+ fn date_ceil(&self) -> NaiveDate {
+ *self
+ }
+ fn earliest_after_date(date: NaiveDate) -> Self {
+ date
+ }
+ fn subtract(&self, other: &NaiveDate) -> Duration {
+ *self - *other
+ }
+
+ fn ymd(&self, year: i32, month: u32, date: u32) -> Self::DateType {
+ NaiveDate::from_ymd(year, month, date)
+ }
+
+ fn from_date(date: Self::DateType) -> Self {
+ date
+ }
+}
+
impl<Z: TimeZone> TimeValue for Date<Z> {
- type Tz = Z;
+ type DateType = Date<Z>;
fn date_floor(&self) -> Date<Z> {
self.clone()
}
@@ -54,13 +86,18 @@ impl<Z: TimeZone> TimeValue for Date<Z> {
fn subtract(&self, other: &Date<Z>) -> Duration {
self.clone() - other.clone()
}
- fn timezone(&self) -> Self::Tz {
- self.timezone()
+
+ fn ymd(&self, year: i32, month: u32, date: u32) -> Self::DateType {
+ self.timezone().ymd(year, month, date)
+ }
+
+ fn from_date(date: Self::DateType) -> Self {
+ date
}
}
impl<Z: TimeZone> TimeValue for DateTime<Z> {
- type Tz = Z;
+ type DateType = Date<Z>;
fn date_floor(&self) -> Date<Z> {
self.date()
}
@@ -78,25 +115,63 @@ impl<Z: TimeZone> TimeValue for DateTime<Z> {
fn subtract(&self, other: &DateTime<Z>) -> Duration {
self.clone() - other.clone()
}
- fn timezone(&self) -> Self::Tz {
- self.timezone()
+
+ fn ymd(&self, year: i32, month: u32, date: u32) -> Self::DateType {
+ self.timezone().ymd(year, month, date)
+ }
+
+ fn from_date(date: Self::DateType) -> Self {
+ date.and_hms(0, 0, 0)
+ }
+}
+
+impl TimeValue for NaiveDateTime {
+ type DateType = NaiveDate;
+ fn date_floor(&self) -> NaiveDate {
+ self.date()
+ }
+ fn date_ceil(&self) -> NaiveDate {
+ if self.time().num_seconds_from_midnight() > 0 {
+ self.date() + Duration::days(1)
+ } else {
+ self.date()
+ }
+ }
+ fn earliest_after_date(date: NaiveDate) -> NaiveDateTime {
+ date.and_hms(0, 0, 0)
+ }
+
+ fn subtract(&self, other: &NaiveDateTime) -> Duration {
+ *self - *other
+ }
+
+ fn ymd(&self, year: i32, month: u32, date: u32) -> Self::DateType {
+ NaiveDate::from_ymd(year, month, date)
+ }
+
+ fn from_date(date: Self::DateType) -> Self {
+ date.and_hms(0, 0, 0)
}
}
/// The ranged coordinate for date
#[derive(Clone)]
-pub struct RangedDate<Z: TimeZone>(Date<Z>, Date<Z>);
+pub struct RangedDate<D: Datelike>(D, D);
-impl<Z: TimeZone> From<Range<Date<Z>>> for RangedDate<Z> {
- fn from(range: Range<Date<Z>>) -> Self {
+impl<D: Datelike> From<Range<D>> for RangedDate<D> {
+ fn from(range: Range<D>) -> Self {
Self(range.start, range.end)
}
}
-impl<Z: TimeZone> Ranged for RangedDate<Z> {
- type ValueType = Date<Z>;
+impl<D> Ranged for RangedDate<D>
+where
+ D: Datelike + TimeValue + Sub<D, Output = Duration> + Add<Duration, Output = D> + Clone,
+{
+ type FormatOption = DefaultFormatting;
+ type ValueType = D;
- fn range(&self) -> Range<Date<Z>> {
+ fn range(&self) -> Range<D> {
self.0.clone()..self.1.clone()
}
@@ -104,7 +179,8 @@ impl<Z: TimeZone> Ranged for RangedDate<Z> {
TimeValue::map_coord(value, &self.0, &self.1, limit)
}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ let max_points = hint.max_num_points();
let mut ret = vec![];
let total_days = (self.1.clone() - self.0.clone()).num_days();
@@ -134,23 +210,37 @@ impl<Z: TimeZone> Ranged for RangedDate<Z> {
}
}
-impl<Z: TimeZone> DiscreteRanged for RangedDate<Z> {
- type RangeParameter = ();
- fn get_range_parameter(&self) {}
- fn next_value(this: &Date<Z>, _: &()) -> Date<Z> {
- this.clone() + Duration::days(1)
+impl<D> DiscreteRanged for RangedDate<D>
+where
+ D: Datelike + TimeValue + Sub<D, Output = Duration> + Add<Duration, Output = D> + Clone,
+{
+ fn size(&self) -> usize {
+ ((self.1.clone() - self.0.clone()).num_days().max(-1) + 1) as usize
}
- fn previous_value(this: &Date<Z>, _: &()) -> Date<Z> {
- this.clone() - Duration::days(1)
+ fn index_of(&self, value: &D) -> Option<usize> {
+ let ret = (value.clone() - self.0.clone()).num_days();
+ if ret < 0 {
+ return None;
+ }
+ Some(ret as usize)
+ }
+
+ fn from_index(&self, index: usize) -> Option<D> {
+ Some(self.0.clone() + Duration::days(index as i64))
}
}
impl<Z: TimeZone> AsRangedCoord for Range<Date<Z>> {
- type CoordDescType = RangedDate<Z>;
+ type CoordDescType = RangedDate<Date<Z>>;
type Value = Date<Z>;
}
+impl AsRangedCoord for Range<NaiveDate> {
+ type CoordDescType = RangedDate<NaiveDate>;
+ type Value = NaiveDate;
+}
+
/// Indicates the coord has a monthly resolution
///
/// Note: since month doesn't have a constant duration.
@@ -159,23 +249,15 @@ impl<Z: TimeZone> AsRangedCoord for Range<Date<Z>> {
#[derive(Clone)]
pub struct Monthly<T: TimeValue>(Range<T>);
-impl<T: TimeValue + Clone> AsRangedCoord for Monthly<T> {
- type CoordDescType = Monthly<T>;
- type Value = T;
-}
-
-impl<T: TimeValue + Clone> Ranged for Monthly<T> {
- type ValueType = T;
-
- fn range(&self) -> Range<T> {
- self.0.start.clone()..self.0.end.clone()
- }
-
- fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
- T::map_coord(value, &self.0.start, &self.0.end, limit)
+impl<T: TimeValue + Datelike + Clone> ValueFormatter<T> for Monthly<T> {
+ fn format(value: &T) -> String {
+ format!("{}-{}", value.year(), value.month())
}
+}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+impl<T: TimeValue + Clone> Monthly<T> {
+ fn bold_key_points<H: KeyPointHint>(&self, hint: &H) -> Vec<T> {
+ let max_points = hint.max_num_points();
let start_date = self.0.start.date_ceil();
let end_date = self.0.end.date_floor();
@@ -202,11 +284,11 @@ impl<T: TimeValue + Clone> Ranged for Monthly<T> {
end_year: i32,
end_month: i32,
step: u32,
- tz: T::Tz,
+ builder: &T,
) -> Vec<T> {
let mut ret = vec![];
while end_year > start_year || (end_year == start_year && end_month >= start_month) {
- ret.push(T::earliest_after_date(tz.ymd(
+ ret.push(T::earliest_after_date(builder.ymd(
start_year,
start_month as u32,
1,
@@ -230,7 +312,7 @@ impl<T: TimeValue + Clone> Ranged for Monthly<T> {
end_year,
end_month as i32,
1,
- self.0.start.timezone(),
+ &self.0.start,
);
} else if total_month as usize <= max_points * 3 {
// Quarterly
@@ -240,7 +322,7 @@ impl<T: TimeValue + Clone> Ranged for Monthly<T> {
end_year,
end_month as i32,
3,
- self.0.start.timezone(),
+ &self.0.start,
);
} else if total_month as usize <= max_points * 6 {
// Biyearly
@@ -250,7 +332,7 @@ impl<T: TimeValue + Clone> Ranged for Monthly<T> {
end_year,
end_month as i32,
6,
- self.0.start.timezone(),
+ &self.0.start,
);
}
@@ -261,34 +343,84 @@ impl<T: TimeValue + Clone> Ranged for Monthly<T> {
start_month,
end_year,
end_month,
- self.0.start.timezone(),
+ &self.0.start,
)
}
}
-impl<T: TimeValue + Clone> DiscreteRanged for Monthly<T> {
- type RangeParameter = ();
- fn get_range_parameter(&self) {}
- fn next_value(this: &T, _: &()) -> T {
- let mut year = this.date_ceil().year();
- let mut month = this.date_ceil().month();
- month += 1;
- if month == 13 {
- month = 1;
- year += 1;
+impl<T: TimeValue + Clone> Ranged for Monthly<T>
+where
+ Range<T>: AsRangedCoord<Value = T>,
+{
+ type FormatOption = NoDefaultFormatting;
+ type ValueType = T;
+
+ fn range(&self) -> Range<T> {
+ self.0.start.clone()..self.0.end.clone()
+ }
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ T::map_coord(value, &self.0.start, &self.0.end, limit)
+ }
+
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ if hint.weight().allow_light_points() && self.size() <= hint.bold_points() * 2 {
+ let coord: <Range<T> as AsRangedCoord>::CoordDescType = self.0.clone().into();
+ let normal = coord.key_points(hint.max_num_points());
+ return normal;
}
- T::earliest_after_date(this.timezone().ymd(year, month, this.date_ceil().day()))
+ self.bold_key_points(&hint)
}
+}
- fn previous_value(this: &T, _: &()) -> T {
- let mut year = this.clone().date_floor().year();
- let mut month = this.clone().date_floor().month();
- month -= 1;
- if month == 0 {
- month = 12;
- year -= 1;
+impl<T: TimeValue + Clone> DiscreteRanged for Monthly<T>
+where
+ Range<T>: AsRangedCoord<Value = T>,
+{
+ fn size(&self) -> usize {
+ let (start_year, start_month) = {
+ let ceil = self.0.start.date_ceil();
+ (ceil.year(), ceil.month())
+ };
+ let (end_year, end_month) = {
+ let floor = self.0.end.date_floor();
+ (floor.year(), floor.month())
+ };
+ ((end_year - start_year).max(0) * 12
+ + (1 - start_month as i32)
+ + (end_month as i32 - 1)
+ + 1)
+ .max(0) as usize
+ }
+
+ fn index_of(&self, value: &T) -> Option<usize> {
+ let this_year = value.date_floor().year();
+ let this_month = value.date_floor().month();
+
+ let start_year = self.0.start.date_ceil().year();
+ let start_month = self.0.start.date_ceil().month();
+
+ let ret = (this_year - start_year).max(0) * 12
+ + (1 - start_month as i32)
+ + (this_month as i32 - 1);
+ if ret >= 0 {
+ return Some(ret as usize);
+ }
+ None
+ }
+
+ fn from_index(&self, index: usize) -> Option<T> {
+ if index == 0 {
+ return Some(T::earliest_after_date(self.0.start.date_ceil()));
}
- T::earliest_after_date(this.timezone().ymd(year, month, this.date_floor().day()))
+ let index_from_start_year = index + (self.0.start.date_ceil().month() - 1) as usize;
+ let year = self.0.start.date_ceil().year() + index_from_start_year as i32 / 12;
+ let month = index_from_start_year % 12;
+ Some(T::earliest_after_date(self.0.start.ymd(
+ year,
+ month as u32 + 1,
+ 1,
+ )))
}
}
@@ -296,18 +428,13 @@ impl<T: TimeValue + Clone> DiscreteRanged for Monthly<T> {
#[derive(Clone)]
pub struct Yearly<T: TimeValue>(Range<T>);
-impl<T: TimeValue + Clone> AsRangedCoord for Yearly<T> {
- type CoordDescType = Yearly<T>;
- type Value = T;
-}
-
fn generate_yearly_keypoints<T: TimeValue>(
max_points: usize,
mut start_year: i32,
start_month: u32,
mut end_year: i32,
end_month: u32,
- tz: T::Tz,
+ builder: &T,
) -> Vec<T> {
if start_month > end_month {
end_year -= 1;
@@ -331,14 +458,28 @@ fn generate_yearly_keypoints<T: TimeValue>(
let mut ret = vec![];
while start_year <= end_year {
- ret.push(T::earliest_after_date(tz.ymd(start_year, start_month, 1)));
+ ret.push(T::earliest_after_date(builder.ymd(
+ start_year,
+ start_month,
+ 1,
+ )));
start_year += freq as i32;
}
ret
}
-impl<T: TimeValue + Clone> Ranged for Yearly<T> {
+impl<T: TimeValue + Datelike + Clone> ValueFormatter<T> for Yearly<T> {
+ fn format(value: &T) -> String {
+ format!("{}-{}", value.year(), value.month())
+ }
+}
+
+impl<T: TimeValue + Clone> Ranged for Yearly<T>
+where
+ Range<T>: AsRangedCoord<Value = T>,
+{
+ type FormatOption = NoDefaultFormatting;
type ValueType = T;
fn range(&self) -> Range<T> {
@@ -349,7 +490,11 @@ impl<T: TimeValue + Clone> Ranged for Yearly<T> {
T::map_coord(value, &self.0.start, &self.0.end, limit)
}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ if hint.weight().allow_light_points() && self.size() <= hint.bold_points() * 2 {
+ return Monthly(self.0.clone()).key_points(hint);
+ }
+ let max_points = hint.max_num_points();
let start_date = self.0.start.date_ceil();
let end_date = self.0.end.date_floor();
@@ -374,20 +519,38 @@ impl<T: TimeValue + Clone> Ranged for Yearly<T> {
start_month,
end_year,
end_month,
- self.0.start.timezone(),
+ &self.0.start,
)
}
}
-impl<T: TimeValue + Clone> DiscreteRanged for Yearly<T> {
- type RangeParameter = ();
- fn get_range_parameter(&self) {}
- fn next_value(this: &T, _: &()) -> T {
- T::earliest_after_date(this.timezone().ymd(this.date_floor().year() + 1, 1, 1))
+impl<T: TimeValue + Clone> DiscreteRanged for Yearly<T>
+where
+ Range<T>: AsRangedCoord<Value = T>,
+{
+ fn size(&self) -> usize {
+ let year_start = self.0.start.date_ceil().year();
+ let year_end = self.0.end.date_floor().year();
+ ((year_end - year_start).max(-1) + 1) as usize
}
- fn previous_value(this: &T, _: &()) -> T {
- T::earliest_after_date(this.timezone().ymd(this.date_ceil().year() - 1, 1, 1))
+ fn index_of(&self, value: &T) -> Option<usize> {
+ let year_start = self.0.start.date_ceil().year();
+ let year_value = value.date_floor().year();
+ let ret = year_value - year_start;
+ if ret < 0 {
+ return None;
+ }
+ Some(ret as usize)
+ }
+
+ fn from_index(&self, index: usize) -> Option<T> {
+ let year = self.0.start.date_ceil().year() + index as i32;
+ let ret = T::earliest_after_date(self.0.start.ymd(year, 1, 1));
+ if ret.date_ceil() <= self.0.start.date_floor() {
+ return Some(self.0.start.clone());
+ }
+ Some(ret)
}
}
@@ -415,23 +578,36 @@ impl<T: TimeValue> IntoYearly<T> for Range<T> {
/// The ranged coordinate for the date and time
#[derive(Clone)]
-pub struct RangedDateTime<Z: TimeZone>(DateTime<Z>, DateTime<Z>);
+pub struct RangedDateTime<DT: Datelike + Timelike + TimeValue>(DT, DT);
impl<Z: TimeZone> AsRangedCoord for Range<DateTime<Z>> {
- type CoordDescType = RangedDateTime<Z>;
+ type CoordDescType = RangedDateTime<DateTime<Z>>;
type Value = DateTime<Z>;
}
-impl<Z: TimeZone> From<Range<DateTime<Z>>> for RangedDateTime<Z> {
+impl<Z: TimeZone> From<Range<DateTime<Z>>> for RangedDateTime<DateTime<Z>> {
fn from(range: Range<DateTime<Z>>) -> Self {
Self(range.start, range.end)
}
}
-impl<Z: TimeZone> Ranged for RangedDateTime<Z> {
- type ValueType = DateTime<Z>;
+impl From<Range<NaiveDateTime>> for RangedDateTime<NaiveDateTime> {
+ fn from(range: Range<NaiveDateTime>) -> Self {
+ Self(range.start, range.end)
+ }
+}
- fn range(&self) -> Range<DateTime<Z>> {
+impl<DT> Ranged for RangedDateTime<DT>
+where
+ DT: Datelike + Timelike + TimeValue + Clone + PartialOrd,
+ DT: Add<Duration, Output = DT>,
+ DT: Sub<DT, Output = Duration>,
+ RangedDate<DT::DateType>: Ranged<ValueType = DT::DateType>,
+{
+ type FormatOption = DefaultFormatting;
+ type ValueType = DT;
+
+ fn range(&self) -> Range<DT> {
self.0.clone()..self.1.clone()
}
@@ -439,30 +615,23 @@ impl<Z: TimeZone> Ranged for RangedDateTime<Z> {
TimeValue::map_coord(value, &self.0, &self.1, limit)
}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ let max_points = hint.max_num_points();
let total_span = self.1.clone() - self.0.clone();
if let Some(total_ns) = total_span.num_nanoseconds() {
if let Some(actual_ns_per_point) =
compute_period_per_point(total_ns as u64, max_points, true)
{
- let start_time_ns = u64::from(self.0.time().num_seconds_from_midnight())
- * 1_000_000_000
- + u64::from(self.0.time().nanosecond());
-
- let mut start_time = self
- .0
- .date_floor()
- .and_time(
- NaiveTime::from_hms(0, 0, 0)
- + Duration::nanoseconds(if start_time_ns % actual_ns_per_point > 0 {
- start_time_ns
- + (actual_ns_per_point - start_time_ns % actual_ns_per_point)
- } else {
- start_time_ns
- } as i64),
- )
- .unwrap();
+ let start_time_ns = u64::from(self.0.num_seconds_from_midnight()) * 1_000_000_000
+ + u64::from(self.0.nanosecond());
+
+ let mut start_time = DT::from_date(self.0.date_floor())
+ + Duration::nanoseconds(if start_time_ns % actual_ns_per_point > 0 {
+ start_time_ns + (actual_ns_per_point - start_time_ns % actual_ns_per_point)
+ } else {
+ start_time_ns
+ } as i64);
let mut ret = vec![];
@@ -481,7 +650,7 @@ impl<Z: TimeZone> Ranged for RangedDateTime<Z> {
date_range
.key_points(max_points)
.into_iter()
- .map(|x| x.and_hms(0, 0, 0))
+ .map(DT::from_date)
.collect()
}
}
@@ -502,6 +671,7 @@ impl From<Range<Duration>> for RangedDuration {
}
impl Ranged for RangedDuration {
+ type FormatOption = DefaultFormatting;
type ValueType = Duration;
fn range(&self) -> Range<Duration> {
@@ -528,7 +698,8 @@ impl Ranged for RangedDuration {
+ (f64::from(limit.1 - limit.0) * value_days as f64 / total_days as f64 + 1e-10) as i32
}
- fn key_points(&self, max_points: usize) -> Vec<Self::ValueType> {
+ fn key_points<HintType: KeyPointHint>(&self, hint: HintType) -> Vec<Self::ValueType> {
+ let max_points = hint.max_num_points();
let total_span = self.1 - self.0;
if let Some(total_ns) = total_span.num_nanoseconds() {
@@ -741,6 +912,7 @@ mod test {
#[test]
fn test_yearly_date_range() {
+ use crate::coord::ranged1d::BoldPoints;
let range = Utc.ymd(1000, 8, 5)..Utc.ymd(2999, 1, 1);
let ranged_coord = range.yearly();
@@ -768,7 +940,7 @@ mod test {
let range = Utc.ymd(2019, 8, 5)..Utc.ymd(2020, 1, 1);
let ranged_coord = range.yearly();
- let kps = ranged_coord.key_points(23);
+ let kps = ranged_coord.key_points(BoldPoints(23));
assert!(kps.len() == 1);
}
@@ -777,13 +949,15 @@ mod test {
let range = Utc.ymd(2019, 8, 5)..Utc.ymd(2020, 9, 1);
let ranged_coord = range.monthly();
- let kps = ranged_coord.key_points(15);
+ use crate::coord::ranged1d::BoldPoints;
+
+ let kps = ranged_coord.key_points(BoldPoints(15));
assert!(kps.len() <= 15);
assert!(kps.iter().all(|x| x.day() == 1));
assert!(kps.into_iter().any(|x| x.month() != 9));
- let kps = ranged_coord.key_points(5);
+ let kps = ranged_coord.key_points(BoldPoints(5));
assert!(kps.len() <= 5);
assert!(kps.iter().all(|x| x.day() == 1));
let kps: Vec<_> = kps.into_iter().map(|x| x.month()).collect();
@@ -951,4 +1125,39 @@ mod test {
assert!(max == min);
assert_eq!(max, 3600 * 2);
}
+
+ #[test]
+ fn test_date_discrete() {
+ let coord: RangedDate<Date<_>> = (Utc.ymd(2019, 1, 1)..Utc.ymd(2019, 12, 31)).into();
+ assert_eq!(coord.size(), 365);
+ assert_eq!(coord.index_of(&Utc.ymd(2019, 2, 28)), Some(31 + 28 - 1));
+ assert_eq!(coord.from_index(364), Some(Utc.ymd(2019, 12, 31)));
+ }
+
+ #[test]
+ fn test_monthly_discrete() {
+ let coord1 = (Utc.ymd(2019, 1, 10)..Utc.ymd(2019, 12, 31)).monthly();
+ let coord2 = (Utc.ymd(2019, 1, 10)..Utc.ymd(2020, 1, 1)).monthly();
+ assert_eq!(coord1.size(), 12);
+ assert_eq!(coord2.size(), 13);
+
+ for i in 1..=12 {
+ assert_eq!(coord1.from_index(i - 1).unwrap().month(), i as u32);
+ assert_eq!(
+ coord1.index_of(&coord1.from_index(i - 1).unwrap()).unwrap(),
+ i - 1
+ );
+ }
+ }
+
+ #[test]
+ fn test_yearly_discrete() {
+ let coord1 = (Utc.ymd(2000, 1, 10)..Utc.ymd(2019, 12, 31)).yearly();
+ assert_eq!(coord1.size(), 20);
+
+ for i in 0..20 {
+ assert_eq!(coord1.from_index(i).unwrap().year(), 2000 + i as i32);
+ assert_eq!(coord1.index_of(&coord1.from_index(i).unwrap()).unwrap(), i);
+ }
+ }
}
diff --git a/src/coord/ranged1d/types/mod.rs b/src/coord/ranged1d/types/mod.rs
new file mode 100644
index 0000000..5a5ca48
--- /dev/null
+++ b/src/coord/ranged1d/types/mod.rs
@@ -0,0 +1,15 @@
+#[cfg(feature = "chrono")]
+mod datetime;
+#[cfg(feature = "chrono")]
+pub use datetime::{
+ IntoMonthly, IntoYearly, Monthly, RangedDate, RangedDateTime, RangedDuration, Yearly,
+};
+
+mod numeric;
+pub use numeric::{
+ RangedCoordf32, RangedCoordf64, RangedCoordi128, RangedCoordi32, RangedCoordi64,
+ RangedCoordu128, RangedCoordu32, RangedCoordu64, RangedCoordusize,
+};
+
+mod slice;
+pub use slice::RangedSlice;
diff --git a/src/coord/numeric.rs b/src/coord/ranged1d/types/numeric.rs
index 6a9f72d..6de2bdf 100644
--- a/src/coord/numeric.rs
+++ b/src/coord/ranged1d/types/numeric.rs
@@ -1,17 +1,35 @@
+use std::convert::TryFrom;
use std::ops::Range;
-use super::{AsRangedCoord, DiscreteRanged, Ranged, ReversibleRanged};
+use crate::coord::ranged1d::{
+ AsRangedCoord, DefaultFormatting, DiscreteRanged, KeyPointHint, NoDefaultFormatting, Ranged,
+ ReversibleRanged, ValueFormatter,
+};
macro_rules! impl_discrete_trait {
($name:ident) => {
impl DiscreteRanged for $name {
- type RangeParameter = ();
- fn get_range_parameter(&self) -> () {}
- fn next_value(this: &Self::ValueType, _: &()) -> Self::ValueType {
- return *this + 1;
+ fn size(&self) -> usize {
+ if &self.1 < &self.0 {
+ return 0;
+ }
+ let values = self.1 - self.0;
+ (values + 1) as usize
+ }
+
+ fn index_of(&self, value: &Self::ValueType) -> Option<usize> {
+ if value < &self.0 {
+ return None;
+ }
+ let ret = value - self.0;
+ Some(ret as usize)
}
- fn previous_value(this: &Self::ValueType, _: &()) -> Self::ValueType {
- return *this - 1;
+
+ fn from_index(&self, index: usize) -> Option<Self::ValueType> {
+ if let Ok(index) = Self::ValueType::try_from(index) {
+ return Some(self.0 + index);
+ }
+ None
}
}
};
@@ -25,9 +43,23 @@ macro_rules! impl_ranged_type_trait {
}
};
}
+macro_rules! impl_reverse_mapping_trait {
+ ($type:ty, $name: ident) => {
+ impl ReversibleRanged for $name {
+ fn unmap(&self, p: i32, (min, max): (i32, i32)) -> Option<$type> {
+ if p < min.min(max) || p > max.max(min) || min == max {
+ return None;
+ }
+ let logical_offset = f64::from(p - min) / f64::from(max - min);
+
+ return Some(((self.1 - self.0) as f64 * logical_offset + self.0 as f64) as $type);
+ }
+ }
+ };
+}
macro_rules! make_numeric_coord {
- ($type:ty, $name:ident, $key_points:ident, $doc: expr) => {
+ ($type:ty, $name:ident, $key_points:ident, $doc: expr, $fmt: ident) => {
#[doc = $doc]
#[derive(Clone)]
pub struct $name($type, $type);
@@ -37,9 +69,18 @@ macro_rules! make_numeric_coord {
}
}
impl Ranged for $name {
+ type FormatOption = $fmt;
type ValueType = $type;
+ #[allow(clippy::float_cmp)]
fn map(&self, v: &$type, limit: (i32, i32)) -> i32 {
+ // Corner case: If we have a range that have only one value,
+ // then we just assign everything to the only point
+ if self.1 == self.0 {
+ return (limit.1 - limit.0) / 2;
+ }
+
let logic_length = (*v - self.0) as f64 / (self.1 - self.0) as f64;
+
let actual_length = limit.1 - limit.0;
if actual_length == 0 {
@@ -48,26 +89,17 @@ macro_rules! make_numeric_coord {
return limit.0 + (actual_length as f64 * logic_length + 1e-3).floor() as i32;
}
- fn key_points(&self, max_points: usize) -> Vec<$type> {
- $key_points((self.0, self.1), max_points)
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<$type> {
+ $key_points((self.0, self.1), hint.max_num_points())
}
fn range(&self) -> Range<$type> {
return self.0..self.1;
}
}
-
- impl ReversibleRanged for $name {
- fn unmap(&self, p:i32, (min,max): (i32, i32)) -> Option<$type> {
- if p < min.min(max) || p > max.max(min) {
- return None;
- }
-
- let logical_offset = (p - min) as f64 / (max - min) as f64;
-
- return Some(((self.1 - self.0) as f64 * logical_offset + self.0 as f64) as $type);
- }
- }
};
+ ($type:ty, $name:ident, $key_points:ident, $doc: expr) => {
+ make_numeric_coord!($type, $name, $key_points, $doc, DefaultFormatting);
+ }
}
macro_rules! gen_key_points_comp {
@@ -179,14 +211,38 @@ make_numeric_coord!(
f32,
RangedCoordf32,
compute_f32_key_points,
- "The ranged coordinate for type f32"
+ "The ranged coordinate for type f32",
+ NoDefaultFormatting
);
+impl_reverse_mapping_trait!(f32, RangedCoordf32);
+impl ValueFormatter<f32> for RangedCoordf32 {
+ fn format(value: &f32) -> String {
+ crate::data::float::FloatPrettyPrinter {
+ allow_scientific: false,
+ min_decimal: 1,
+ max_decimal: 5,
+ }
+ .print(*value as f64)
+ }
+}
make_numeric_coord!(
f64,
RangedCoordf64,
compute_f64_key_points,
- "The ranged coordinate for type f64"
+ "The ranged coordinate for type f64",
+ NoDefaultFormatting
);
+impl_reverse_mapping_trait!(f64, RangedCoordf64);
+impl ValueFormatter<f64> for RangedCoordf64 {
+ fn format(value: &f64) -> String {
+ crate::data::float::FloatPrettyPrinter {
+ allow_scientific: false,
+ min_decimal: 1,
+ max_decimal: 5,
+ }
+ .print(*value)
+ }
+}
make_numeric_coord!(
u32,
RangedCoordu32,
@@ -256,111 +312,9 @@ impl_ranged_type_trait!(u128, RangedCoordu128);
impl_ranged_type_trait!(isize, RangedCoordisize);
impl_ranged_type_trait!(usize, RangedCoordusize);
-// TODO: Think about how to re-organize this part
-pub mod group_integer_by {
- use super::Ranged;
- use super::{AsRangedCoord, DiscreteRanged};
- use num_traits::{FromPrimitive, PrimInt, ToPrimitive};
- use std::ops::{Mul, Range};
-
- /// The ranged value spec that needs to be grouped.
- /// This is useful, for example, when we have an X axis is a integer and denotes days.
- /// And we are expecting the tick mark denotes weeks, in this way we can make the range
- /// spec grouping by 7 elements.
- pub struct GroupBy<T>(T, T::ValueType)
- where
- T::ValueType: PrimInt + ToPrimitive + FromPrimitive + Mul,
- T: Ranged;
-
- /// The trait that provides method `Self::group_by` function which creates a
- /// `GroupBy` decorated ranged value.
- pub trait ToGroupByRange
- where
- Self: AsRangedCoord,
- <Self as AsRangedCoord>::Value: PrimInt + ToPrimitive + FromPrimitive + Mul,
- <<Self as AsRangedCoord>::CoordDescType as Ranged>::ValueType:
- PrimInt + ToPrimitive + FromPrimitive + Mul,
- {
- /// Make a grouping ranged value, see the documentation for `GroupBy` for details.
- ///
- /// - `value`: The number of values we want to group it
- /// - **return**: The newly created grouping range sepcification
- fn group_by(
- self,
- value: <<Self as AsRangedCoord>::CoordDescType as Ranged>::ValueType,
- ) -> GroupBy<<Self as AsRangedCoord>::CoordDescType> {
- GroupBy(self.into(), value)
- }
- }
-
- impl<T> ToGroupByRange for T
- where
- Self: AsRangedCoord,
- <Self as AsRangedCoord>::Value: PrimInt + FromPrimitive + ToPrimitive + Mul,
- <<Self as AsRangedCoord>::CoordDescType as Ranged>::ValueType:
- PrimInt + FromPrimitive + ToPrimitive + Mul,
- {
- }
-
- impl<T> AsRangedCoord for GroupBy<T>
- where
- T::ValueType: PrimInt + ToPrimitive + FromPrimitive + Mul,
- T: Ranged,
- {
- type Value = T::ValueType;
- type CoordDescType = Self;
- }
-
- impl<T> DiscreteRanged for GroupBy<T>
- where
- T::ValueType: PrimInt + ToPrimitive + FromPrimitive + Mul,
- T: Ranged + DiscreteRanged,
- {
- type RangeParameter = <T as DiscreteRanged>::RangeParameter;
- fn get_range_parameter(&self) -> Self::RangeParameter {
- self.0.get_range_parameter()
- }
- fn previous_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <T as DiscreteRanged>::previous_value(this, param)
- }
- fn next_value(this: &Self::ValueType, param: &Self::RangeParameter) -> Self::ValueType {
- <T as DiscreteRanged>::next_value(this, param)
- }
- }
-
- impl<T> Ranged for GroupBy<T>
- where
- T::ValueType: PrimInt + ToPrimitive + FromPrimitive + Mul,
- T: Ranged,
- {
- type ValueType = T::ValueType;
- fn map(&self, value: &T::ValueType, limit: (i32, i32)) -> i32 {
- self.0.map(value, limit)
- }
- fn range(&self) -> Range<T::ValueType> {
- self.0.range()
- }
- fn key_points(&self, max_points: usize) -> Vec<T::ValueType> {
- let actual_range = self.0.range();
- let from = ((actual_range.start + self.1 - T::ValueType::from_u8(1).unwrap()) / self.1)
- .to_isize()
- .unwrap();
- let to = (actual_range.end / self.1).to_isize().unwrap();
- let logic_range: super::RangedCoordisize = (from..to).into();
-
- logic_range
- .key_points(max_points)
- .into_iter()
- .map(|x| T::ValueType::from_isize(x).unwrap() * self.1)
- .collect()
- }
- }
-}
-
#[cfg(test)]
mod test {
use super::*;
- use crate::coord::*;
#[test]
fn test_key_points() {
let kp = compute_i32_key_points((0, 999), 28);
@@ -390,6 +344,18 @@ mod test {
#[test]
fn test_linear_coord_system() {
let _coord =
- RangedCoord::<RangedCoordu32, RangedCoordu32>::new(0..10, 0..10, (0..1024, 0..768));
+ crate::coord::ranged2d::cartesian::Cartesian2d::<RangedCoordu32, RangedCoordu32>::new(
+ 0..10,
+ 0..10,
+ (0..1024, 0..768),
+ );
+ }
+
+ #[test]
+ fn test_coord_unmap() {
+ let coord: RangedCoordu32 = (0..20).into();
+ let pos = coord.map(&5, (1000, 2000));
+ let value = coord.unmap(pos, (1000, 2000));
+ assert_eq!(value, Some(5));
}
}
diff --git a/src/coord/ranged1d/types/slice.rs b/src/coord/ranged1d/types/slice.rs
new file mode 100644
index 0000000..13be3d7
--- /dev/null
+++ b/src/coord/ranged1d/types/slice.rs
@@ -0,0 +1,100 @@
+use crate::coord::ranged1d::{
+ AsRangedCoord, DefaultFormatting, DiscreteRanged, KeyPointHint, Ranged,
+};
+use std::ops::Range;
+
+/// A range that is defined by a slice of values.
+///
+/// Please note: the behavior of constructing an empty range may cause panic
+#[derive(Clone)]
+pub struct RangedSlice<'a, T: PartialEq>(&'a [T]);
+
+impl<'a, T: PartialEq> Ranged for RangedSlice<'a, T> {
+ type FormatOption = DefaultFormatting;
+ type ValueType = &'a T;
+
+ fn range(&self) -> Range<&'a T> {
+ // If inner slice is empty, we should always panic
+ &self.0[0]..&self.0[self.0.len() - 1]
+ }
+
+ fn map(&self, value: &Self::ValueType, limit: (i32, i32)) -> i32 {
+ match self.0.iter().position(|x| &x == value) {
+ Some(pos) => {
+ let pixel_span = limit.1 - limit.0;
+ let value_span = self.0.len() - 1;
+ (f64::from(limit.0)
+ + f64::from(pixel_span)
+ * (f64::from(pos as u32) / f64::from(value_span as u32)))
+ .round() as i32
+ }
+ None => limit.0,
+ }
+ }
+
+ fn key_points<Hint: KeyPointHint>(&self, hint: Hint) -> Vec<Self::ValueType> {
+ let max_points = hint.max_num_points();
+ let mut ret = vec![];
+ let intervals = (self.0.len() - 1) as f64;
+ let step = (intervals / max_points as f64 + 1.0) as usize;
+ for idx in (0..self.0.len()).step_by(step) {
+ ret.push(&self.0[idx]);
+ }
+ ret
+ }
+}
+
+impl<'a, T: PartialEq> DiscreteRanged for RangedSlice<'a, T> {
+ fn size(&self) -> usize {
+ self.0.len()
+ }
+
+ fn index_of(&self, value: &&'a T) -> Option<usize> {
+ self.0.iter().position(|x| &x == value)
+ }
+
+ fn from_index(&self, index: usize) -> Option<&'a T> {
+ if self.0.len() <= index {
+ return None;
+ }
+ Some(&self.0[index])
+ }
+}
+
+impl<'a, T: PartialEq> From<&'a [T]> for RangedSlice<'a, T> {
+ fn from(range: &'a [T]) -> Self {
+ RangedSlice(range)
+ }
+}
+
+impl<'a, T: PartialEq> AsRangedCoord for &'a [T] {
+ type CoordDescType = RangedSlice<'a, T>;
+ type Value = &'a T;
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ #[test]
+ fn test_slice_range() {
+ let my_slice = [1, 2, 3, 0, -1, -2];
+ let slice_range: RangedSlice<i32> = my_slice[..].into();
+
+ assert_eq!(slice_range.range(), &1..&-2);
+ assert_eq!(
+ slice_range.key_points(6),
+ my_slice.iter().collect::<Vec<_>>()
+ );
+ assert_eq!(slice_range.map(&&0, (0, 50)), 30);
+ }
+
+ #[test]
+ fn test_slice_range_discrete() {
+ let my_slice = [1, 2, 3, 0, -1, -2];
+ let slice_range: RangedSlice<i32> = my_slice[..].into();
+
+ assert_eq!(slice_range.size(), 6);
+ assert_eq!(slice_range.index_of(&&3), Some(2));
+ assert_eq!(slice_range.from_index(2), Some(&3));
+ }
+}
diff --git a/src/coord/ranged2d/cartesian.rs b/src/coord/ranged2d/cartesian.rs
new file mode 100644
index 0000000..897e7f5
--- /dev/null
+++ b/src/coord/ranged2d/cartesian.rs
@@ -0,0 +1,152 @@
+/*!
+ The 2-dimensional cartesian coordinate system.
+
+ This module provides the 2D cartesian coordinate system, which is composed by two independent
+ ranged 1D coordinate sepcification.
+
+ This types of coordinate system is used by the chart constructed with [ChartBuilder::build_cartesian_2d](../../chart/ChartBuilder.html#method.build_cartesian_2d).
+*/
+
+use crate::coord::ranged1d::{KeyPointHint, Ranged, ReversibleRanged};
+use crate::coord::{CoordTranslate, ReverseCoordTranslate};
+
+use crate::style::ShapeStyle;
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
+
+use std::ops::Range;
+
+/// A 2D Cartesian coordinate system described by two 1D ranged coordinate specs.
+#[derive(Clone)]
+pub struct Cartesian2d<X: Ranged, Y: Ranged> {
+ logic_x: X,
+ logic_y: Y,
+ back_x: (i32, i32),
+ back_y: (i32, i32),
+}
+
+impl<X: Ranged, Y: Ranged> Cartesian2d<X, Y> {
+ /// Create a new 2D cartesian coordinate system
+ /// - `logic_x` and `logic_y` : The description for the 1D coordinate system
+ /// - `actual`: The pixel range on the screen for this coordinate system
+ pub fn new<IntoX: Into<X>, IntoY: Into<Y>>(
+ logic_x: IntoX,
+ logic_y: IntoY,
+ actual: (Range<i32>, Range<i32>),
+ ) -> Self {
+ Self {
+ logic_x: logic_x.into(),
+ logic_y: logic_y.into(),
+ back_x: (actual.0.start, actual.0.end),
+ back_y: (actual.1.start, actual.1.end),
+ }
+ }
+
+ /// Draw the mesh for the coordinate system
+ pub fn draw_mesh<
+ E,
+ DrawMesh: FnMut(MeshLine<X, Y>) -> Result<(), E>,
+ XH: KeyPointHint,
+ YH: KeyPointHint,
+ >(
+ &self,
+ h_limit: YH,
+ v_limit: XH,
+ mut draw_mesh: DrawMesh,
+ ) -> Result<(), E> {
+ let (xkp, ykp) = (
+ self.logic_x.key_points(v_limit),
+ self.logic_y.key_points(h_limit),
+ );
+
+ for logic_x in xkp {
+ let x = self.logic_x.map(&logic_x, self.back_x);
+ draw_mesh(MeshLine::XMesh(
+ (x, self.back_y.0),
+ (x, self.back_y.1),
+ &logic_x,
+ ))?;
+ }
+
+ for logic_y in ykp {
+ let y = self.logic_y.map(&logic_y, self.back_y);
+ draw_mesh(MeshLine::YMesh(
+ (self.back_x.0, y),
+ (self.back_x.1, y),
+ &logic_y,
+ ))?;
+ }
+
+ Ok(())
+ }
+
+ /// Get the range of X axis
+ pub fn get_x_range(&self) -> Range<X::ValueType> {
+ self.logic_x.range()
+ }
+
+ /// Get the range of Y axis
+ pub fn get_y_range(&self) -> Range<Y::ValueType> {
+ self.logic_y.range()
+ }
+
+ /// Get the horizental backend coordinate range where X axis should be drawn
+ pub fn get_x_axis_pixel_range(&self) -> Range<i32> {
+ self.logic_x.axis_pixel_range(self.back_x)
+ }
+
+ /// Get the vertical backend coordinate range where Y axis should be drawn
+ pub fn get_y_axis_pixel_range(&self) -> Range<i32> {
+ self.logic_y.axis_pixel_range(self.back_y)
+ }
+
+ /// Get the 1D coordinate spec for X axis
+ pub fn x_spec(&self) -> &X {
+ &self.logic_x
+ }
+
+ /// Get the 1D coordinate spec for Y axis
+ pub fn y_spec(&self) -> &Y {
+ &self.logic_y
+ }
+}
+
+impl<X: Ranged, Y: Ranged> CoordTranslate for Cartesian2d<X, Y> {
+ type From = (X::ValueType, Y::ValueType);
+
+ fn translate(&self, from: &Self::From) -> BackendCoord {
+ (
+ self.logic_x.map(&from.0, self.back_x),
+ self.logic_y.map(&from.1, self.back_y),
+ )
+ }
+}
+
+impl<X: ReversibleRanged, Y: ReversibleRanged> ReverseCoordTranslate for Cartesian2d<X, Y> {
+ fn reverse_translate(&self, input: BackendCoord) -> Option<Self::From> {
+ Some((
+ self.logic_x.unmap(input.0, self.back_x)?,
+ self.logic_y.unmap(input.1, self.back_y)?,
+ ))
+ }
+}
+
+/// Represent a coordinate mesh for the two ranged value coordinate system
+pub enum MeshLine<'a, X: Ranged, Y: Ranged> {
+ XMesh(BackendCoord, BackendCoord, &'a X::ValueType),
+ YMesh(BackendCoord, BackendCoord, &'a Y::ValueType),
+}
+
+impl<'a, X: Ranged, Y: Ranged> MeshLine<'a, X, Y> {
+ /// Draw a single mesh line onto the backend
+ pub fn draw<DB: DrawingBackend>(
+ &self,
+ backend: &mut DB,
+ style: &ShapeStyle,
+ ) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
+ let (&left, &right) = match self {
+ MeshLine::XMesh(a, b, _) => (a, b),
+ MeshLine::YMesh(a, b, _) => (a, b),
+ };
+ backend.draw_line(left, right, style)
+ }
+}
diff --git a/src/coord/ranged2d/mod.rs b/src/coord/ranged2d/mod.rs
new file mode 100644
index 0000000..eae9425
--- /dev/null
+++ b/src/coord/ranged2d/mod.rs
@@ -0,0 +1 @@
+pub mod cartesian;
diff --git a/src/coord/ranged3d/cartesian3d.rs b/src/coord/ranged3d/cartesian3d.rs
new file mode 100644
index 0000000..d7daffd
--- /dev/null
+++ b/src/coord/ranged3d/cartesian3d.rs
@@ -0,0 +1,105 @@
+use super::{ProjectionMatrix, ProjectionMatrixBuilder};
+use crate::coord::ranged1d::Ranged;
+use crate::coord::CoordTranslate;
+use plotters_backend::BackendCoord;
+
+use std::ops::Range;
+
+/// A 3D cartesian coordinate system
+pub struct Cartesian3d<X: Ranged, Y: Ranged, Z: Ranged> {
+ pub(crate) logic_x: X,
+ pub(crate) logic_y: Y,
+ pub(crate) logic_z: Z,
+ coord_size: (i32, i32, i32),
+ projection: ProjectionMatrix,
+}
+
+impl<X: Ranged, Y: Ranged, Z: Ranged> Cartesian3d<X, Y, Z> {
+ fn compute_default_size(actual_x: Range<i32>, actual_y: Range<i32>) -> i32 {
+ (actual_x.end - actual_x.start).min(actual_y.end - actual_y.start) * 4 / 5
+ }
+ fn create_projection<F: FnOnce(ProjectionMatrixBuilder) -> ProjectionMatrix>(
+ actual_x: Range<i32>,
+ actual_y: Range<i32>,
+ f: F,
+ ) -> ProjectionMatrix {
+ let default_size = Self::compute_default_size(actual_x.clone(), actual_y.clone());
+ let center_3d = (default_size / 2, default_size / 2, default_size / 2);
+ let center_2d = (
+ (actual_x.end + actual_x.start) / 2,
+ (actual_y.end + actual_y.start) / 2,
+ );
+ let mut pb = ProjectionMatrixBuilder::new();
+ pb.set_pivot(center_3d, center_2d);
+ f(pb)
+ }
+ pub fn with_projection<
+ SX: Into<X>,
+ SY: Into<Y>,
+ SZ: Into<Z>,
+ F: FnOnce(ProjectionMatrixBuilder) -> ProjectionMatrix,
+ >(
+ logic_x: SX,
+ logic_y: SY,
+ logic_z: SZ,
+ (actual_x, actual_y): (Range<i32>, Range<i32>),
+ build_projection_matrix: F,
+ ) -> Self {
+ let default_size = Self::compute_default_size(actual_x.clone(), actual_y.clone());
+ Self {
+ logic_x: logic_x.into(),
+ logic_y: logic_y.into(),
+ logic_z: logic_z.into(),
+ coord_size: (default_size, default_size, default_size),
+ projection: Self::create_projection(actual_x, actual_y, build_projection_matrix),
+ }
+ }
+ /// Set the projection matrix
+ pub fn set_projection<F: FnOnce(ProjectionMatrixBuilder) -> ProjectionMatrix>(
+ &mut self,
+ actual_x: Range<i32>,
+ actual_y: Range<i32>,
+ f: F,
+ ) -> &mut Self {
+ self.projection = Self::create_projection(actual_x, actual_y, f);
+ self
+ }
+
+ /// Create a new coordinate
+ pub fn new<SX: Into<X>, SY: Into<Y>, SZ: Into<Z>>(
+ logic_x: SX,
+ logic_y: SY,
+ logic_z: SZ,
+ (actual_x, actual_y): (Range<i32>, Range<i32>),
+ ) -> Self {
+ Self::with_projection(logic_x, logic_y, logic_z, (actual_x, actual_y), |pb| {
+ pb.into_matrix()
+ })
+ }
+ /// Get the projection matrix
+ pub fn projection(&self) -> &ProjectionMatrix {
+ &self.projection
+ }
+
+ /// Do not project, only transform the guest coordinate system
+ pub fn map_3d(&self, x: &X::ValueType, y: &Y::ValueType, z: &Z::ValueType) -> (i32, i32, i32) {
+ (
+ self.logic_x.map(x, (0, self.coord_size.0)),
+ self.logic_y.map(y, (0, self.coord_size.1)),
+ self.logic_z.map(z, (0, self.coord_size.2)),
+ )
+ }
+
+ /// Get the depth of the projection
+ pub fn projected_depth(&self, x: &X::ValueType, y: &Y::ValueType, z: &Z::ValueType) -> i32 {
+ self.projection.projected_depth(self.map_3d(x, y, z))
+ }
+}
+
+impl<X: Ranged, Y: Ranged, Z: Ranged> CoordTranslate for Cartesian3d<X, Y, Z> {
+ type From = (X::ValueType, Y::ValueType, Z::ValueType);
+ fn translate(&self, coord: &Self::From) -> BackendCoord {
+ let pixel_coord_3d = self.map_3d(&coord.0, &coord.1, &coord.2);
+ self.projection * pixel_coord_3d
+ }
+}
diff --git a/src/coord/ranged3d/mod.rs b/src/coord/ranged3d/mod.rs
new file mode 100644
index 0000000..274a70d
--- /dev/null
+++ b/src/coord/ranged3d/mod.rs
@@ -0,0 +1,5 @@
+mod projection;
+pub use projection::{ProjectionMatrix, ProjectionMatrixBuilder};
+
+mod cartesian3d;
+pub use cartesian3d::Cartesian3d;
diff --git a/src/coord/ranged3d/projection.rs b/src/coord/ranged3d/projection.rs
new file mode 100644
index 0000000..1aef9a7
--- /dev/null
+++ b/src/coord/ranged3d/projection.rs
@@ -0,0 +1,198 @@
+use std::f64::consts::PI;
+use std::ops::Mul;
+
+/// The projection matrix which is used to project the 3D space to the 2D display panel
+#[derive(Clone, Debug, Copy)]
+pub struct ProjectionMatrix([[f64; 4]; 4]);
+
+impl AsRef<[[f64; 4]; 4]> for ProjectionMatrix {
+ fn as_ref(&self) -> &[[f64; 4]; 4] {
+ &self.0
+ }
+}
+
+impl AsMut<[[f64; 4]; 4]> for ProjectionMatrix {
+ fn as_mut(&mut self) -> &mut [[f64; 4]; 4] {
+ &mut self.0
+ }
+}
+
+impl From<[[f64; 4]; 4]> for ProjectionMatrix {
+ fn from(data: [[f64; 4]; 4]) -> Self {
+ ProjectionMatrix(data)
+ }
+}
+
+impl Default for ProjectionMatrix {
+ fn default() -> Self {
+ ProjectionMatrix::rotate(PI, 0.0, 0.0)
+ }
+}
+
+impl Mul<ProjectionMatrix> for ProjectionMatrix {
+ type Output = ProjectionMatrix;
+ fn mul(self, other: ProjectionMatrix) -> ProjectionMatrix {
+ let mut ret = ProjectionMatrix::zero();
+ for r in 0..4 {
+ for c in 0..4 {
+ for k in 0..4 {
+ ret.0[r][c] += other.0[r][k] * self.0[k][c];
+ }
+ }
+ }
+ ret.normalize();
+ ret
+ }
+}
+
+impl Mul<(i32, i32, i32)> for ProjectionMatrix {
+ type Output = (i32, i32);
+ fn mul(self, (x, y, z): (i32, i32, i32)) -> (i32, i32) {
+ let (x, y, z) = (x as f64, y as f64, z as f64);
+ let m = self.0;
+ (
+ (x * m[0][0] + y * m[0][1] + z * m[0][2] + m[0][3]) as i32,
+ (x * m[1][0] + y * m[1][1] + z * m[1][2] + m[1][3]) as i32,
+ )
+ }
+}
+
+impl Mul<(f64, f64, f64)> for ProjectionMatrix {
+ type Output = (i32, i32);
+ fn mul(self, (x, y, z): (f64, f64, f64)) -> (i32, i32) {
+ let m = self.0;
+ (
+ (x * m[0][0] + y * m[0][1] + z * m[0][2] + m[0][3]) as i32,
+ (x * m[1][0] + y * m[1][1] + z * m[1][2] + m[1][3]) as i32,
+ )
+ }
+}
+
+impl ProjectionMatrix {
+ /// Returns the identity matrix
+ pub fn one() -> Self {
+ ProjectionMatrix([
+ [1.0, 0.0, 0.0, 0.0],
+ [0.0, 1.0, 0.0, 0.0],
+ [0.0, 0.0, 1.0, 0.0],
+ [0.0, 0.0, 0.0, 1.0],
+ ])
+ }
+ /// Returns the zero maxtrix
+ pub fn zero() -> Self {
+ ProjectionMatrix([[0.0; 4]; 4])
+ }
+ /// Returns the matrix which shift the coordinate
+ pub fn shift(x: f64, y: f64, z: f64) -> Self {
+ ProjectionMatrix([
+ [1.0, 0.0, 0.0, x],
+ [0.0, 1.0, 0.0, y],
+ [0.0, 0.0, 1.0, z],
+ [0.0, 0.0, 0.0, 1.0],
+ ])
+ }
+ /// Returns the matrix which rotates the coordinate
+ pub fn rotate(x: f64, y: f64, z: f64) -> Self {
+ let (c, b, a) = (x, y, z);
+ ProjectionMatrix([
+ [
+ a.cos() * b.cos(),
+ a.cos() * b.sin() * c.sin() - a.sin() * c.cos(),
+ a.cos() * b.sin() * c.cos() + a.sin() * c.sin(),
+ 0.0,
+ ],
+ [
+ a.sin() * b.cos(),
+ a.sin() * b.sin() * c.sin() + a.cos() * c.cos(),
+ a.sin() * b.sin() * c.cos() - a.cos() * c.sin(),
+ 0.0,
+ ],
+ [-b.sin(), b.cos() * c.sin(), b.cos() * c.cos(), 0.0],
+ [0.0, 0.0, 0.0, 1.0],
+ ])
+ }
+ /// Returns the matrix that applies a scale factor
+ pub fn scale(factor: f64) -> Self {
+ ProjectionMatrix([
+ [1.0, 0.0, 0.0, 0.0],
+ [0.0, 1.0, 0.0, 0.0],
+ [0.0, 0.0, 1.0, 0.0],
+ [0.0, 0.0, 0.0, 1.0 / factor],
+ ])
+ }
+ /// Normalize the matrix, this will make the metric unit to 1
+ pub fn normalize(&mut self) {
+ if self.0[3][3] > 1e-20 {
+ for r in 0..4 {
+ for c in 0..4 {
+ self.0[r][c] /= self.0[3][3];
+ }
+ }
+ }
+ }
+
+ /// Get the distance of the point in guest coordinate from the screen in pixels
+ pub fn projected_depth(&self, (x, y, z): (i32, i32, i32)) -> i32 {
+ let r = &self.0[2];
+ (r[0] * x as f64 + r[1] * y as f64 + r[2] * z as f64 + r[3]) as i32
+ }
+}
+
+/// The helper struct to build a projection matrix
+#[derive(Copy, Clone)]
+pub struct ProjectionMatrixBuilder {
+ pub yaw: f64,
+ pub pitch: f64,
+ pub scale: f64,
+ pivot_before: (i32, i32, i32),
+ pivot_after: (i32, i32),
+}
+
+impl ProjectionMatrixBuilder {
+ pub fn new() -> Self {
+ Self {
+ yaw: 0.5,
+ pitch: 0.15,
+ scale: 1.0,
+ pivot_after: (0, 0),
+ pivot_before: (0, 0, 0),
+ }
+ }
+
+ /// Set the pivot point, which means the 3D coordinate "before" should be mapped into
+ /// the 2D coordinatet "after"
+ pub fn set_pivot(&mut self, before: (i32, i32, i32), after: (i32, i32)) -> &mut Self {
+ self.pivot_before = before;
+ self.pivot_after = after;
+ self
+ }
+
+ /// Build the matrix based on the configuration
+ pub fn into_matrix(self) -> ProjectionMatrix {
+ let mut ret = if self.pivot_before == (0, 0, 0) {
+ ProjectionMatrix::default()
+ } else {
+ let (x, y, z) = self.pivot_before;
+ ProjectionMatrix::shift(-x as f64, -y as f64, -z as f64) * ProjectionMatrix::default()
+ };
+
+ if self.yaw.abs() > 1e-20 {
+ ret = ret * ProjectionMatrix::rotate(0.0, self.yaw, 0.0);
+ }
+
+ if self.pitch.abs() > 1e-20 {
+ ret = ret * ProjectionMatrix::rotate(self.pitch, 0.0, 0.0);
+ }
+
+ if (self.scale - 1.0).abs() > 1e-20 {
+ ret = ret * ProjectionMatrix::scale(self.scale);
+ }
+
+ if self.pivot_after != (0, 0) {
+ let (x, y) = self.pivot_after;
+ ret = ret * ProjectionMatrix::shift(x as f64, y as f64, 0.0);
+ }
+
+ ret
+ }
+}
diff --git a/src/coord/translate.rs b/src/coord/translate.rs
new file mode 100644
index 0000000..32888be
--- /dev/null
+++ b/src/coord/translate.rs
@@ -0,0 +1,32 @@
+use plotters_backend::BackendCoord;
+use std::ops::Deref;
+
+/// The trait that translates some customized object to the backend coordinate
+pub trait CoordTranslate {
+ type From;
+
+ /// Translate the guest coordinate to the guest coordinate
+ fn translate(&self, from: &Self::From) -> BackendCoord;
+}
+
+impl<C, T> CoordTranslate for T
+where
+ C: CoordTranslate,
+ T: Deref<Target = C>,
+{
+ type From = C::From;
+ fn translate(&self, from: &Self::From) -> BackendCoord {
+ self.deref().translate(from)
+ }
+}
+
+/// The trait indicates that the coordinate system supports reverse transform
+/// This is useful when we need an interactive plot, thus we need to map the event
+/// from the backend coordinate to the logical coordinate
+pub trait ReverseCoordTranslate: CoordTranslate {
+ /// Reverse translate the coordinate from the drawing coordinate to the
+ /// logic coordinate.
+ /// Note: the return value is an option, because it's possible that the drawing
+ /// coordinate isn't able to be represented in te guest coordinate system
+ fn reverse_translate(&self, input: BackendCoord) -> Option<Self::From>;
+}
diff --git a/src/data/float.rs b/src/data/float.rs
index 6115876..64e5226 100644
--- a/src/data/float.rs
+++ b/src/data/float.rs
@@ -1,5 +1,4 @@
// The code that is related to float number handling
-
fn find_minimal_repr(n: f64, eps: f64) -> (f64, usize) {
if eps >= 1.0 {
return (n, 0);
@@ -14,32 +13,91 @@ fn find_minimal_repr(n: f64, eps: f64) -> (f64, usize) {
}
}
-fn float_to_string(n: f64, max_precision: usize) -> String {
- let (sign, n) = if n < 0.0 { ("-", -n) } else { ("", n) };
- let int_part = n.floor();
+fn float_to_string(n: f64, max_precision: usize, min_decimal: usize) -> String {
+ let (mut result, mut count) = loop {
+ let (sign, n) = if n < 0.0 { ("-", -n) } else { ("", n) };
+ let int_part = n.floor();
- let dec_part =
- ((n.abs() - int_part.abs()) * (10.0f64).powf(max_precision as f64)).round() as u64;
+ let dec_part =
+ ((n.abs() - int_part.abs()) * (10.0f64).powi(max_precision as i32)).round() as u64;
- if dec_part == 0 || max_precision == 0 {
- return format!("{}{:.0}", sign, int_part);
- }
+ if dec_part == 0 || max_precision == 0 {
+ break (format!("{}{:.0}", sign, int_part), 0);
+ }
- let mut leading = "".to_string();
- let mut dec_result = format!("{}", dec_part);
+ let mut leading = "".to_string();
+ let mut dec_result = format!("{}", dec_part);
- for _ in 0..(max_precision - dec_result.len()) {
- leading.push('0');
- }
+ for _ in 0..(max_precision - dec_result.len()) {
+ leading.push('0');
+ }
- while let Some(c) = dec_result.pop() {
- if c != '0' {
- dec_result.push(c);
- break;
+ while let Some(c) = dec_result.pop() {
+ if c != '0' {
+ dec_result.push(c);
+ break;
+ }
}
+
+ break (
+ format!("{}{:.0}.{}{}", sign, int_part, leading, dec_result),
+ leading.len() + dec_result.len(),
+ );
+ };
+
+ if count == 0 && min_decimal > 0 {
+ result.push('.');
}
- format!("{}{:.0}.{}{}", sign, int_part, leading, dec_result)
+ while count < min_decimal {
+ result.push('0');
+ count += 1;
+ }
+ result
+}
+
+pub struct FloatPrettyPrinter {
+ pub allow_scientific: bool,
+ pub min_decimal: i32,
+ pub max_decimal: i32,
+}
+
+impl FloatPrettyPrinter {
+ pub fn print(&self, n: f64) -> String {
+ let (n, p) = find_minimal_repr(n, (10f64).powi(-self.max_decimal));
+ let d_repr = float_to_string(n, p, self.min_decimal as usize);
+ if !self.allow_scientific {
+ d_repr
+ } else {
+ if n == 0.0 {
+ return "0".to_string();
+ }
+
+ let mut idx = n.abs().log10().floor();
+ let mut exp = (10.0f64).powf(idx);
+
+ if n.abs() / exp + 1e-5 >= 10.0 {
+ idx += 1.0;
+ exp *= 10.0;
+ }
+
+ if idx.abs() < 3.0 {
+ return d_repr;
+ }
+
+ let (sn, sp) = find_minimal_repr(n / exp, 1e-5);
+ let s_repr = format!(
+ "{}e{}",
+ float_to_string(sn, sp, self.min_decimal as usize),
+ float_to_string(idx, 0, 0)
+ );
+ if s_repr.len() + 1 < d_repr.len() {
+ s_repr
+ } else {
+ d_repr
+ }
+ }
+ }
}
/// The function that pretty prints the floating number
@@ -51,35 +109,12 @@ fn float_to_string(n: f64, max_precision: usize) -> String {
/// - `allow_sn`: Should we use scientific notation when possible
/// - **returns**: The pretty printed string
pub fn pretty_print_float(n: f64, allow_sn: bool) -> String {
- let (n, p) = find_minimal_repr(n, 1e-10);
- let d_repr = float_to_string(n, p);
- if !allow_sn {
- d_repr
- } else {
- if n == 0.0 {
- return "0".to_string();
- }
-
- let mut idx = n.abs().log10().floor();
- let mut exp = (10.0f64).powf(idx);
-
- if n.abs() / exp + 1e-5 >= 10.0 {
- idx += 1.0;
- exp *= 10.0;
- }
-
- if idx.abs() < 3.0 {
- return d_repr;
- }
-
- let (sn, sp) = find_minimal_repr(n / exp, 1e-5);
- let s_repr = format!("{}e{}", float_to_string(sn, sp), float_to_string(idx, 0));
- if s_repr.len() + 1 < d_repr.len() {
- s_repr
- } else {
- d_repr
- }
- }
+ (FloatPrettyPrinter {
+ allow_scientific: allow_sn,
+ min_decimal: 0,
+ max_decimal: 10,
+ })
+ .print(n)
}
#[cfg(test)]
diff --git a/src/drawing/area.rs b/src/drawing/area.rs
index ae75087..511dc08 100644
--- a/src/drawing/area.rs
+++ b/src/drawing/area.rs
@@ -1,9 +1,12 @@
-/// The abstraction of a drawing area
-use super::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
-use crate::coord::{CoordTranslate, MeshLine, Ranged, RangedCoord, Shift};
+use crate::coord::cartesian::{Cartesian2d, MeshLine};
+use crate::coord::ranged1d::{KeyPointHint, Ranged};
+use crate::coord::{CoordTranslate, Shift};
use crate::element::{Drawable, PointCollection};
use crate::style::text_anchor::{HPos, Pos, VPos};
-use crate::style::{Color, FontDesc, SizeDesc, TextStyle};
+use crate::style::{Color, SizeDesc, TextStyle};
+
+/// The abstraction of a drawing area
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use std::borrow::Borrow;
use std::cell::RefCell;
@@ -120,7 +123,7 @@ pub struct DrawingArea<DB: DrawingBackend, CT: CoordTranslate> {
impl<DB: DrawingBackend, CT: CoordTranslate + Clone> Clone for DrawingArea<DB, CT> {
fn clone(&self) -> Self {
Self {
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
rect: self.rect.clone(),
coord: self.coord.clone(),
}
@@ -181,13 +184,13 @@ impl<T: DrawingBackend> IntoDrawingArea for T {
}
}
-impl<DB: DrawingBackend, X: Ranged, Y: Ranged> DrawingArea<DB, RangedCoord<X, Y>> {
+impl<DB: DrawingBackend, X: Ranged, Y: Ranged> DrawingArea<DB, Cartesian2d<X, Y>> {
/// Draw the mesh on a area
- pub fn draw_mesh<DrawFunc>(
+ pub fn draw_mesh<DrawFunc, YH: KeyPointHint, XH: KeyPointHint>(
&self,
mut draw_func: DrawFunc,
- y_count_max: usize,
- x_count_max: usize,
+ y_count_max: YH,
+ x_count_max: XH,
) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>>
where
DrawFunc: FnMut(&mut DB, MeshLine<X, Y>) -> Result<(), DrawingErrorKind<DB::ErrorType>>,
@@ -227,11 +230,19 @@ impl<DB: DrawingBackend, CT: CoordTranslate> DrawingArea<DB, CT> {
pub fn strip_coord_spec(&self) -> DrawingArea<DB, Shift> {
DrawingArea {
rect: self.rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((self.rect.x0, self.rect.y0)),
}
}
+ pub fn use_screen_coord(&self) -> DrawingArea<DB, Shift> {
+ DrawingArea {
+ rect: self.rect.clone(),
+ backend: self.backend.clone(),
+ coord: Shift((0, 0)),
+ }
+ }
+
/// Get the area dimension in pixel
pub fn dim_in_pixel(&self) -> (u32, u32) {
(
@@ -255,11 +266,6 @@ impl<DB: DrawingBackend, CT: CoordTranslate> DrawingArea<DB, CT> {
(self.rect.x0..self.rect.x1, self.rect.y0..self.rect.y1)
}
- /// Copy the drawing context
- fn copy_backend_ref(&self) -> Rc<RefCell<DB>> {
- self.backend.clone()
- }
-
/// Perform operation on the drawing backend
fn backend_ops<R, O: FnOnce(&mut DB) -> Result<R, DrawingErrorKind<DB::ErrorType>>>(
&self,
@@ -293,7 +299,7 @@ impl<DB: DrawingBackend, CT: CoordTranslate> DrawingArea<DB, CT> {
color: &ColorType,
) -> Result<(), DrawingAreaError<DB>> {
let pos = self.coord.translate(&pos);
- self.backend_ops(|b| b.draw_pixel(pos, &color.to_rgba()))
+ self.backend_ops(|b| b.draw_pixel(pos, color.color()))
}
/// Present all the pending changes to the backend
@@ -330,9 +336,9 @@ impl<DB: DrawingBackend, CT: CoordTranslate> DrawingArea<DB, CT> {
pub fn estimate_text_size(
&self,
text: &str,
- font: &FontDesc,
+ style: &TextStyle,
) -> Result<(u32, u32), DrawingAreaError<DB>> {
- self.backend_ops(move |b| b.estimate_text_size(text, font))
+ self.backend_ops(move |b| b.estimate_text_size(text, style))
}
}
@@ -374,7 +380,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
pub fn apply_coord_spec<CT: CoordTranslate>(&self, coord_spec: CT) -> DrawingArea<DB, CT> {
DrawingArea {
rect: self.rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: coord_spec,
}
}
@@ -398,7 +404,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
x1: self.rect.x1 - right,
y1: self.rect.y1 - bottom,
},
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((self.rect.x0 + left, self.rect.y0 + top)),
}
}
@@ -409,7 +415,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
let split_point = [y + self.rect.y0];
let mut ret = self.rect.split(split_point.iter(), true).map(|rect| Self {
rect: rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((rect.x0, rect.y0)),
});
@@ -422,7 +428,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
let split_point = [x + self.rect.x0];
let mut ret = self.rect.split(split_point.iter(), false).map(|rect| Self {
rect: rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((rect.x0, rect.y0)),
});
@@ -435,7 +441,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
.split_evenly((row, col))
.map(|rect| Self {
rect: rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((rect.x0, rect.y0)),
})
.collect()
@@ -459,7 +465,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
)
.map(|rect| Self {
rect: rect.clone(),
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((rect.x0, rect.y0)),
})
.collect()
@@ -475,7 +481,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
let x_padding = (self.rect.x1 - self.rect.x0) / 2;
- let (_, text_h) = self.estimate_text_size(text, &style.font)?;
+ let (_, text_h) = self.estimate_text_size(text, &style)?;
let y_padding = (text_h / 2).min(5) as i32;
let style = &style.pos(Pos::new(HPos::Center, VPos::Top));
@@ -483,7 +489,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
self.backend_ops(|b| {
b.draw_text(
text,
- &style,
+ style,
(self.rect.x0 + x_padding, self.rect.y0 + y_padding),
)
})?;
@@ -495,7 +501,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
x1: self.rect.x1,
y1: self.rect.y1,
},
- backend: self.copy_backend_ref(),
+ backend: self.backend.clone(),
coord: Shift((self.rect.x0, self.rect.y0 + y_padding * 2 + text_h as i32)),
})
}
@@ -507,9 +513,7 @@ impl<DB: DrawingBackend> DrawingArea<DB, Shift> {
style: &TextStyle,
pos: BackendCoord,
) -> Result<(), DrawingAreaError<DB>> {
- self.backend_ops(|b| {
- b.draw_text(text, &style, (pos.0 + self.rect.x0, pos.1 + self.rect.y0))
- })
+ self.backend_ops(|b| b.draw_text(text, style, (pos.0 + self.rect.x0, pos.1 + self.rect.y0)))
}
}
@@ -521,6 +525,10 @@ impl<DB: DrawingBackend, CT: CoordTranslate> DrawingArea<DB, CT> {
pub fn as_coord_spec(&self) -> &CT {
&self.coord
}
+
+ pub fn as_coord_spec_mut(&mut self) -> &mut CT {
+ &mut self.coord
+ }
}
#[cfg(test)]
@@ -748,15 +756,11 @@ mod drawing_area_tests {
#[test]
fn test_ranges() {
- let drawing_area =
- create_mocked_drawing_area(1024, 768, |_m| {}).apply_coord_spec(RangedCoord::<
- RangedCoordi32,
- RangedCoordu32,
- >::new(
- -100..100,
- 0..200,
- (0..1024, 0..768),
- ));
+ let drawing_area = create_mocked_drawing_area(1024, 768, |_m| {})
+ .apply_coord_spec(Cartesian2d::<
+ crate::coord::types::RangedCoordi32,
+ crate::coord::types::RangedCoordu32,
+ >::new(-100..100, 0..200, (0..1024, 0..768)));
let x_range = drawing_area.get_x_range();
assert_eq!(x_range, -100..100);
diff --git a/src/drawing/backend.rs b/src/drawing/backend.rs
deleted file mode 100644
index a5ba54b..0000000
--- a/src/drawing/backend.rs
+++ /dev/null
@@ -1,284 +0,0 @@
-use crate::style::text_anchor::{HPos, VPos};
-use crate::style::{Color, FontDesc, FontError, RGBAColor, ShapeStyle, TextStyle};
-use std::error::Error;
-
-/// A coordinate in the image
-pub type BackendCoord = (i32, i32);
-
-/// The error produced by a drawing backend
-#[derive(Debug)]
-pub enum DrawingErrorKind<E: Error + Send + Sync>
-where
- FontError: Send + Sync,
-{
- /// A drawing backend error
- DrawingError(E),
- /// A font rendering error
- FontError(FontError),
-}
-
-impl<E: Error + Send + Sync> std::fmt::Display for DrawingErrorKind<E> {
- fn fmt(&self, fmt: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
- match self {
- DrawingErrorKind::DrawingError(e) => write!(fmt, "Drawing backend error: {}", e),
- DrawingErrorKind::FontError(e) => write!(fmt, "Font loading error: {}", e),
- }
- }
-}
-
-impl<E: Error + Send + Sync> Error for DrawingErrorKind<E> {}
-
-/// The style data for the backend drawing API
-pub trait BackendStyle {
- /// The underlying type represents the color for this style
- type ColorType: Color;
-
- /// Convert the style into the underlying color
- fn as_color(&self) -> RGBAColor;
-
- // TODO: In the future we should support stroke width, line shape, etc....
- fn stroke_width(&self) -> u32 {
- 1
- }
-}
-
-impl<T: Color> BackendStyle for T {
- type ColorType = T;
- fn as_color(&self) -> RGBAColor {
- self.to_rgba()
- }
-}
-
-impl BackendStyle for ShapeStyle {
- type ColorType = RGBAColor;
- fn as_color(&self) -> RGBAColor {
- self.color.clone()
- }
- fn stroke_width(&self) -> u32 {
- self.stroke_width
- }
-}
-
-/// The drawing backend trait, which implements the low-level drawing APIs.
-/// This trait has a set of default implementation. And the minimal requirement of
-/// implementing a drawing backend is implementing the `draw_pixel` function.
-///
-/// If the drawing backend supports vector graphics, the other drawing APIs should be
-/// override by the backend specific implementation. Otherwise, the default implementation
-/// will use the pixel-based approach to draw other types of low-level shapes.
-pub trait DrawingBackend: Sized {
- /// The error type reported by the backend
- type ErrorType: Error + Send + Sync;
-
- /// Get the dimension of the drawing backend in pixels
- fn get_size(&self) -> (u32, u32);
-
- /// Ensure the backend is ready to draw
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>>;
-
- /// Finalize the drawing step and present all the changes.
- /// This is used as the real-time rendering support.
- /// The backend may implement in the following way, when `ensure_prepared` is called
- /// it checks if it needs a fresh buffer and `present` is called rendering all the
- /// pending changes on the screen.
- fn present(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>>;
-
- /// Draw a pixel on the drawing backend
- /// - `point`: The backend pixel-based coordinate to draw
- /// - `color`: The color of the pixel
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- color: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>>;
-
- /// Draw a line on the drawing backend
- /// - `from`: The start point of the line
- /// - `to`: The end point of the line
- /// - `style`: The style of the line
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: BackendCoord,
- to: BackendCoord,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- super::rasterizer::draw_line(self, from, to, style)
- }
-
- /// Draw a rectangle on the drawing backend
- /// - `upper_left`: The coordinate of the upper-left corner of the rect
- /// - `bottom_right`: The coordinate of the bottom-right corner of the rect
- /// - `style`: The style
- /// - `fill`: If the rectangle should be filled
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- super::rasterizer::draw_rect(self, upper_left, bottom_right, style, fill)
- }
-
- /// Draw a path on the drawing backend
- /// - `path`: The iterator of key points of the path
- /// - `style`: The style of the path
- fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
-
- if style.stroke_width() == 1 {
- let mut begin: Option<BackendCoord> = None;
- for end in path.into_iter() {
- if let Some(begin) = begin {
- let result = self.draw_line(begin, end, style);
- if result.is_err() {
- return result;
- }
- }
- begin = Some(end);
- }
- } else {
- let p: Vec<_> = path.into_iter().collect();
- let v = super::rasterizer::polygonize(&p[..], style.stroke_width());
- return self.fill_polygon(v, &style.as_color());
- }
- Ok(())
- }
-
- /// Draw a circle on the drawing backend
- /// - `center`: The center coordinate of the circle
- /// - `radius`: The radius of the circle
- /// - `style`: The style of the shape
- /// - `fill`: If the circle should be filled
- fn draw_circle<S: BackendStyle>(
- &mut self,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- super::rasterizer::draw_circle(self, center, radius, style, fill)
- }
-
- fn fill_polygon<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- vert: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let vert_buf: Vec<_> = vert.into_iter().collect();
-
- super::rasterizer::fill_polygon(self, &vert_buf[..], style)
- }
-
- /// Draw a text on the drawing backend
- /// - `text`: The text to draw
- /// - `style`: The text style
- /// - `pos` : The text anchor point
- fn draw_text(
- &mut self,
- text: &str,
- style: &TextStyle,
- pos: BackendCoord,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let font = &style.font;
- let color = &style.color;
- if color.alpha() == 0.0 {
- return Ok(());
- }
-
- let layout = font.layout_box(text).map_err(DrawingErrorKind::FontError)?;
- let ((min_x, min_y), (max_x, max_y)) = layout;
- let width = (max_x - min_x) as i32;
- let height = (max_y - min_y) as i32;
- let dx = match style.pos.h_pos {
- HPos::Left => 0,
- HPos::Right => -width,
- HPos::Center => -width / 2,
- };
- let dy = match style.pos.v_pos {
- VPos::Top => 0,
- VPos::Center => -height / 2,
- VPos::Bottom => -height,
- };
- let trans = font.get_transform();
- let (w, h) = self.get_size();
- match font.draw(text, (0, 0), |x, y, v| {
- let (x, y) = trans.transform(x + dx - min_x, y + dy - min_y);
- let (x, y) = (pos.0 + x, pos.1 + y);
- if x >= 0 && x < w as i32 && y >= 0 && y < h as i32 {
- self.draw_pixel((x, y), &color.mix(f64::from(v)))
- } else {
- Ok(())
- }
- }) {
- Ok(drawing_result) => drawing_result,
- Err(font_error) => Err(DrawingErrorKind::FontError(font_error)),
- }
- }
-
- /// Estimate the size of the horizontal text if rendered on this backend.
- /// This is important because some of the backend may not have font ability.
- /// Thus this allows those backend reports proper value rather than ask the
- /// font rasterizer for that.
- ///
- /// - `text`: The text to estimate
- /// - `font`: The font to estimate
- /// - *Returns* The estimated text size
- fn estimate_text_size<'a>(
- &self,
- text: &str,
- font: &FontDesc<'a>,
- ) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>> {
- let layout = font.layout_box(text).map_err(DrawingErrorKind::FontError)?;
- Ok((
- ((layout.1).0 - (layout.0).0) as u32,
- ((layout.1).1 - (layout.0).1) as u32,
- ))
- }
-
- /// Blit a bitmap on to the backend.
- ///
- /// - `text`: pos the left upper conner of the bitmap to blit
- /// - `src`: The source of the image
- ///
- /// TODO: The default implementation of bitmap blitting assumes that the bitmap is RGB, but
- /// this may not be the case. But for bitmap backend it's actually ok if we use the bitmap
- /// element that matches the pixel format, but we need to fix this.
- fn blit_bitmap<'a>(
- &mut self,
- pos: BackendCoord,
- (iw, ih): (u32, u32),
- src: &'a [u8],
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let (w, h) = self.get_size();
-
- for dx in 0..iw {
- if pos.0 + dx as i32 >= w as i32 {
- break;
- }
- for dy in 0..ih {
- if pos.1 + dy as i32 >= h as i32 {
- break;
- }
- // FIXME: This assume we have RGB image buffer
- let r = src[(dx + dy * iw) as usize * 3];
- let g = src[(dx + dy * iw) as usize * 3 + 1];
- let b = src[(dx + dy * iw) as usize * 3 + 2];
- let color = crate::style::RGBColor(r, g, b);
- let result =
- self.draw_pixel((pos.0 + dx as i32, pos.1 + dy as i32), &color.to_rgba());
- if result.is_err() {
- return result;
- }
- }
- }
-
- Ok(())
- }
-}
diff --git a/src/drawing/backend_impl/bitmap.rs b/src/drawing/backend_impl/bitmap.rs
deleted file mode 100644
index a4d776a..0000000
--- a/src/drawing/backend_impl/bitmap.rs
+++ /dev/null
@@ -1,1607 +0,0 @@
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
-use crate::style::{Color, RGBAColor};
-use std::marker::PhantomData;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
-mod image_encoding_support {
- pub(super) use image::{ImageBuffer, ImageError, Rgb};
- pub(super) use std::path::Path;
- pub(super) type BorrowedImage<'a> = ImageBuffer<Rgb<u8>, &'a mut [u8]>;
-}
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
-use image_encoding_support::*;
-
-#[derive(Debug)]
-/// Indicates some error occurs within the bitmap backend
-pub enum BitMapBackendError {
- /// The buffer provided is invalid, for example, wrong pixel buffer size
- InvalidBuffer,
- /// Some IO error occurs while the bitmap maniuplation
- IOError(std::io::Error),
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- /// Image encoding error
- ImageError(ImageError),
-}
-
-impl std::fmt::Display for BitMapBackendError {
- fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
- write!(f, "{:?}", self)
- }
-}
-
-impl std::error::Error for BitMapBackendError {}
-
-#[inline(always)]
-fn blend(prev: &mut u8, new: u8, a: u64) {
- if new > *prev {
- *prev += (u64::from(new - *prev) * a / 256) as u8
- } else {
- *prev -= (u64::from(*prev - new) * a / 256) as u8
- }
-}
-
-#[cfg(all(feature = "gif", not(target_arch = "wasm32"), feature = "image"))]
-mod gif_support {
- use super::*;
- use gif::{Encoder as GifEncoder, Frame as GifFrame, Repeat, SetParameter};
- use std::fs::File;
-
- pub(super) struct GifFile {
- encoder: GifEncoder<File>,
- height: u32,
- width: u32,
- delay: u32,
- }
-
- impl GifFile {
- pub(super) fn new<T: AsRef<Path>>(
- path: T,
- dim: (u32, u32),
- delay: u32,
- ) -> Result<Self, BitMapBackendError> {
- let mut encoder = GifEncoder::new(
- File::create(path.as_ref()).map_err(BitMapBackendError::IOError)?,
- dim.0 as u16,
- dim.1 as u16,
- &[],
- )
- .map_err(BitMapBackendError::IOError)?;
-
- encoder
- .set(Repeat::Infinite)
- .map_err(BitMapBackendError::IOError)?;
-
- Ok(Self {
- encoder,
- width: dim.0,
- height: dim.1,
- delay: (delay + 5) / 10,
- })
- }
-
- pub(super) fn flush_frame(&mut self, buffer: &[u8]) -> Result<(), BitMapBackendError> {
- let mut frame =
- GifFrame::from_rgb_speed(self.width as u16, self.height as u16, buffer, 10);
-
- frame.delay = self.delay as u16;
-
- self.encoder
- .write_frame(&frame)
- .map_err(BitMapBackendError::IOError)?;
-
- Ok(())
- }
- }
-}
-
-enum Target<'a> {
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- File(&'a Path),
- Buffer(PhantomData<&'a u32>),
- #[cfg(all(feature = "gif", not(target_arch = "wasm32"), feature = "image"))]
- Gif(Box<gif_support::GifFile>),
-}
-
-enum Buffer<'a> {
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- Owned(Vec<u8>),
- Borrowed(&'a mut [u8]),
-}
-
-impl<'a> Buffer<'a> {
- #[inline(always)]
- fn borrow_buffer(&mut self) -> &mut [u8] {
- match self {
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- Buffer::Owned(buf) => &mut buf[..],
- Buffer::Borrowed(buf) => *buf,
- }
- }
-}
-
-/// The trait that describes some details about a particular pixel format
-pub trait PixelFormat: Sized {
- /// Number of bytes per pixel
- const PIXEL_SIZE: usize;
-
- /// Number of effective bytes per pixel, e.g. for BGRX pixel format, the size of pixel
- /// is 4 but the effective size is 3, since the 4th byte isn't used
- const EFFECTIVE_PIXEL_SIZE: usize;
-
- /// Encoding a pixel and returns the idx-th byte for the pixel
- fn byte_at(r: u8, g: u8, b: u8, a: u64, idx: usize) -> u8;
-
- /// Decode a pixel at the given location
- fn decode_pixel(data: &[u8]) -> (u8, u8, u8, u64);
-
- /// The fast alpha blending algorithm for this pixel format
- ///
- /// - `target`: The target bitmap backend
- /// - `upper_left`: The upper-left coord for the rect
- /// - `bottom_right`: The bottom-right coord for the rect
- /// - `r`, `g`, `b`, `a`: The blending color and alpha value
- fn blend_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- a: f64,
- );
-
- /// The fast vertical line filling algorithm
- ///
- /// - `target`: The target bitmap backend
- /// - `x`: the X coordinate for the entire line
- /// - `ys`: The range of y coord
- /// - `r`, `g`, `b`: The blending color and alpha value
- fn fill_vertical_line_fast(
- target: &mut BitMapBackend<'_, Self>,
- x: i32,
- ys: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- ) {
- let (w, h) = target.get_size();
- let w = w as i32;
- let h = h as i32;
-
- // Make sure we are in the range
- if x < 0 || x >= w {
- return;
- }
-
- let dst = target.get_raw_pixel_buffer();
- let (mut y0, mut y1) = ys;
- if y0 > y1 {
- std::mem::swap(&mut y0, &mut y1);
- }
- // And check the y axis isn't out of bound
- y0 = y0.max(0);
- y1 = y1.min(h - 1);
- // This is ok because once y0 > y1, there won't be any iteration anymore
- for y in y0..=y1 {
- for idx in 0..Self::EFFECTIVE_PIXEL_SIZE {
- dst[(y * w + x) as usize * Self::PIXEL_SIZE + idx] = Self::byte_at(r, g, b, 0, idx);
- }
- }
- }
-
- /// The fast rectangle filling algorithm
- ///
- /// - `target`: The target bitmap backend
- /// - `upper_left`: The upper-left coord for the rect
- /// - `bottom_right`: The bottom-right coord for the rect
- /// - `r`, `g`, `b`: The filling color
- fn fill_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- );
-
- #[inline(always)]
- /// Drawing a single pixel in this format
- ///
- /// - `target`: The target bitmap backend
- /// - `point`: The coord of the point
- /// - `r`, `g`, `b`: The filling color
- /// - `alpha`: The alpha value
- fn draw_pixel(
- target: &mut BitMapBackend<'_, Self>,
- point: (i32, i32),
- (r, g, b): (u8, u8, u8),
- alpha: f64,
- ) {
- let (x, y) = (point.0 as usize, point.1 as usize);
- let (w, _) = target.get_size();
- let buf = target.get_raw_pixel_buffer();
- let w = w as usize;
- let base = (y * w + x) * Self::PIXEL_SIZE;
-
- if base < buf.len() {
- unsafe {
- if alpha >= 1.0 - 1.0 / 256.0 {
- for idx in 0..Self::EFFECTIVE_PIXEL_SIZE {
- *buf.get_unchecked_mut(base + idx) = Self::byte_at(r, g, b, 0, idx);
- }
- } else {
- if alpha <= 0.0 {
- return;
- }
-
- let alpha = (alpha * 256.0).floor() as u64;
- for idx in 0..Self::EFFECTIVE_PIXEL_SIZE {
- blend(
- buf.get_unchecked_mut(base + idx),
- Self::byte_at(r, g, b, 0, idx),
- alpha,
- );
- }
- }
- }
- }
- }
-
- /// Indicates if this pixel format can be saved as image.
- /// Note: Currently we only using RGB pixel format in the image crate, but later we may lift
- /// this restriction
- ///
- /// - `returns`: If the image can be saved as image file
- fn can_be_saved() -> bool {
- false
- }
-}
-
-/// The marker type that indicates we are currently using a RGB888 pixel format
-pub struct RGBPixel;
-
-/// The marker type that indicates we are currently using a BGRX8888 pixel format
-pub struct BGRXPixel;
-
-impl PixelFormat for RGBPixel {
- const PIXEL_SIZE: usize = 3;
- const EFFECTIVE_PIXEL_SIZE: usize = 3;
-
- #[inline(always)]
- fn byte_at(r: u8, g: u8, b: u8, _a: u64, idx: usize) -> u8 {
- match idx {
- 0 => r,
- 1 => g,
- 2 => b,
- _ => 0xff,
- }
- }
-
- #[inline(always)]
- fn decode_pixel(data: &[u8]) -> (u8, u8, u8, u64) {
- (data[0], data[1], data[2], 0x255)
- }
-
- fn can_be_saved() -> bool {
- true
- }
-
- #[allow(clippy::many_single_char_names, clippy::cast_ptr_alignment)]
- fn blend_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- a: f64,
- ) {
- let (w, h) = target.get_size();
- let a = a.min(1.0).max(0.0);
- if a == 0.0 {
- return;
- }
-
- let (x0, y0) = (
- upper_left.0.min(bottom_right.0).max(0),
- upper_left.1.min(bottom_right.1).max(0),
- );
- let (x1, y1) = (
- upper_left.0.max(bottom_right.0).min(w as i32 - 1),
- upper_left.1.max(bottom_right.1).min(h as i32 - 1),
- );
-
- // This may happen when the minimal value is larger than the limit.
- // Thus we just have something that is completely out-of-range
- if x0 > x1 || y0 > y1 {
- return;
- }
-
- let dst = target.get_raw_pixel_buffer();
-
- let a = (256.0 * a).floor() as u64;
-
- // Since we should always make sure the RGB payload occupies the logic lower bits
- // thus, this type purning should work for both LE and BE CPUs
- #[rustfmt::skip]
- let (p1, p2, p3): (u64, u64, u64) = unsafe {
- std::mem::transmute([
- u16::from(r), u16::from(b), u16::from(g), u16::from(r), // QW1
- u16::from(b), u16::from(g), u16::from(r), u16::from(b), // QW2
- u16::from(g), u16::from(r), u16::from(b), u16::from(g), // QW3
- ])
- };
-
- #[rustfmt::skip]
- let (q1, q2, q3): (u64, u64, u64) = unsafe {
- std::mem::transmute([
- u16::from(g), u16::from(r), u16::from(b), u16::from(g), // QW1
- u16::from(r), u16::from(b), u16::from(g), u16::from(r), // QW2
- u16::from(b), u16::from(g), u16::from(r), u16::from(b), // QW3
- ])
- };
-
- const N: u64 = 0xff00_ff00_ff00_ff00;
- const M: u64 = 0x00ff_00ff_00ff_00ff;
-
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let count = (x1 - x0 + 1) as usize;
-
- let start_ptr = &mut dst[start * Self::PIXEL_SIZE] as *mut u8 as *mut [u8; 24];
- let slice = unsafe { std::slice::from_raw_parts_mut(start_ptr, (count - 1) / 8) };
- for p in slice.iter_mut() {
- let ptr = p as *mut [u8; 24] as *mut (u64, u64, u64);
- let (d1, d2, d3) = unsafe { *ptr };
- let (mut h1, mut h2, mut h3) = ((d1 >> 8) & M, (d2 >> 8) & M, (d3 >> 8) & M);
- let (mut l1, mut l2, mut l3) = (d1 & M, d2 & M, d3 & M);
-
- #[cfg(target_endian = "little")]
- {
- h1 = (h1 * (256 - a) + q1 * a) & N;
- h2 = (h2 * (256 - a) + q2 * a) & N;
- h3 = (h3 * (256 - a) + q3 * a) & N;
- l1 = ((l1 * (256 - a) + p1 * a) & N) >> 8;
- l2 = ((l2 * (256 - a) + p2 * a) & N) >> 8;
- l3 = ((l3 * (256 - a) + p3 * a) & N) >> 8;
- }
-
- #[cfg(target_endian = "big")]
- {
- h1 = (h1 * (256 - a) + p1 * a) & N;
- h2 = (h2 * (256 - a) + p2 * a) & N;
- h3 = (h3 * (256 - a) + p3 * a) & N;
- l1 = ((l1 * (256 - a) + q1 * a) & N) >> 8;
- l2 = ((l2 * (256 - a) + q2 * a) & N) >> 8;
- l3 = ((l3 * (256 - a) + q3 * a) & N) >> 8;
- }
-
- unsafe {
- *ptr = (h1 | l1, h2 | l2, h3 | l3);
- }
- }
-
- let mut iter = dst[((start + slice.len() * 8) * Self::PIXEL_SIZE)
- ..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut();
- for _ in (slice.len() * 8)..count {
- blend(iter.next().unwrap(), r, a);
- blend(iter.next().unwrap(), g, a);
- blend(iter.next().unwrap(), b, a);
- }
- }
- }
-
- #[allow(clippy::many_single_char_names, clippy::cast_ptr_alignment)]
- fn fill_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- ) {
- let (w, h) = target.get_size();
- let (x0, y0) = (
- upper_left.0.min(bottom_right.0).max(0),
- upper_left.1.min(bottom_right.1).max(0),
- );
- let (x1, y1) = (
- upper_left.0.max(bottom_right.0).min(w as i32 - 1),
- upper_left.1.max(bottom_right.1).min(h as i32 - 1),
- );
-
- // This may happen when the minimal value is larger than the limit.
- // Thus we just have something that is completely out-of-range
- if x0 > x1 || y0 > y1 {
- return;
- }
-
- let dst = target.get_raw_pixel_buffer();
-
- if r == g && g == b {
- // If r == g == b, then we can use memset
- if x0 != 0 || x1 != w as i32 - 1 {
- // If it's not the entire row is filled, we can only do
- // memset per row
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let count = (x1 - x0 + 1) as usize;
- dst[(start * Self::PIXEL_SIZE)..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut()
- .for_each(|e| *e = r);
- }
- } else {
- // If the entire memory block is going to be filled, just use single memset
- dst[Self::PIXEL_SIZE * (y0 * w as i32) as usize
- ..((y1 + 1) * w as i32) as usize * Self::PIXEL_SIZE]
- .iter_mut()
- .for_each(|e| *e = r);
- }
- } else {
- let count = (x1 - x0 + 1) as usize;
- if count < 8 {
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let mut iter = dst
- [(start * Self::PIXEL_SIZE)..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut();
- for _ in 0..=(x1 - x0) {
- *iter.next().unwrap() = r;
- *iter.next().unwrap() = g;
- *iter.next().unwrap() = b;
- }
- }
- } else {
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let start_ptr = &mut dst[start * Self::PIXEL_SIZE] as *mut u8 as *mut [u8; 24];
- let slice =
- unsafe { std::slice::from_raw_parts_mut(start_ptr, (count - 1) / 8) };
- for p in slice.iter_mut() {
- // In this case, we can actually fill 8 pixels in one iteration with
- // only 3 movq instructions.
- // TODO: Consider using AVX instructions when possible
- let ptr = p as *mut [u8; 24] as *mut u64;
- unsafe {
- let (d1, d2, d3): (u64, u64, u64) = std::mem::transmute([
- r, g, b, r, g, b, r, g, // QW1
- b, r, g, b, r, g, b, r, // QW2
- g, b, r, g, b, r, g, b, // QW3
- ]);
- *ptr = d1;
- *ptr.offset(1) = d2;
- *ptr.offset(2) = d3;
- }
- }
-
- for idx in (slice.len() * 8)..count {
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE] = r;
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE + 1] = g;
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE + 2] = b;
- }
- }
- }
- }
- }
-}
-
-impl PixelFormat for BGRXPixel {
- const PIXEL_SIZE: usize = 4;
- const EFFECTIVE_PIXEL_SIZE: usize = 3;
-
- #[inline(always)]
- fn byte_at(r: u8, g: u8, b: u8, _a: u64, idx: usize) -> u8 {
- match idx {
- 0 => b,
- 1 => g,
- 2 => r,
- _ => 0xff,
- }
- }
-
- #[inline(always)]
- fn decode_pixel(data: &[u8]) -> (u8, u8, u8, u64) {
- (data[2], data[1], data[0], 0x255)
- }
-
- #[allow(clippy::many_single_char_names, clippy::cast_ptr_alignment)]
- fn blend_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- a: f64,
- ) {
- let (w, h) = target.get_size();
- let a = a.min(1.0).max(0.0);
- if a == 0.0 {
- return;
- }
-
- let (x0, y0) = (
- upper_left.0.min(bottom_right.0).max(0),
- upper_left.1.min(bottom_right.1).max(0),
- );
- let (x1, y1) = (
- upper_left.0.max(bottom_right.0).min(w as i32 - 1),
- upper_left.1.max(bottom_right.1).min(h as i32 - 1),
- );
-
- // This may happen when the minimal value is larger than the limit.
- // Thus we just have something that is completely out-of-range
- if x0 > x1 || y0 > y1 {
- return;
- }
-
- let dst = target.get_raw_pixel_buffer();
-
- let a = (256.0 * a).floor() as u64;
-
- // Since we should always make sure the RGB payload occupies the logic lower bits
- // thus, this type purning should work for both LE and BE CPUs
- #[rustfmt::skip]
- let p: u64 = unsafe {
- std::mem::transmute([
- u16::from(b), u16::from(r), u16::from(b), u16::from(r), // QW1
- ])
- };
-
- #[rustfmt::skip]
- let q: u64 = unsafe {
- std::mem::transmute([
- u16::from(g), 0u16, u16::from(g), 0u16, // QW1
- ])
- };
-
- const N: u64 = 0xff00_ff00_ff00_ff00;
- const M: u64 = 0x00ff_00ff_00ff_00ff;
-
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let count = (x1 - x0 + 1) as usize;
-
- let start_ptr = &mut dst[start * Self::PIXEL_SIZE] as *mut u8 as *mut [u8; 8];
- let slice = unsafe { std::slice::from_raw_parts_mut(start_ptr, (count - 1) / 2) };
- for rp in slice.iter_mut() {
- let ptr = rp as *mut [u8; 8] as *mut u64;
- let d1 = unsafe { *ptr };
- let mut h = (d1 >> 8) & M;
- let mut l = d1 & M;
-
- #[cfg(target_endian = "little")]
- {
- h = (h * (256 - a) + q * a) & N;
- l = ((l * (256 - a) + p * a) & N) >> 8;
- }
-
- #[cfg(target_endian = "big")]
- {
- h = (h * (256 - a) + p * a) & N;
- l = ((l * (256 - a) + q * a) & N) >> 8;
- }
-
- unsafe {
- *ptr = h | l;
- }
- }
-
- let mut iter = dst[((start + slice.len() * 2) * Self::PIXEL_SIZE)
- ..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut();
- for _ in (slice.len() * 2)..count {
- blend(iter.next().unwrap(), b, a);
- blend(iter.next().unwrap(), g, a);
- blend(iter.next().unwrap(), r, a);
- iter.next();
- }
- }
- }
-
- #[allow(clippy::many_single_char_names, clippy::cast_ptr_alignment)]
- fn fill_rect_fast(
- target: &mut BitMapBackend<'_, Self>,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- r: u8,
- g: u8,
- b: u8,
- ) {
- let (w, h) = target.get_size();
- let (x0, y0) = (
- upper_left.0.min(bottom_right.0).max(0),
- upper_left.1.min(bottom_right.1).max(0),
- );
- let (x1, y1) = (
- upper_left.0.max(bottom_right.0).min(w as i32 - 1),
- upper_left.1.max(bottom_right.1).min(h as i32 - 1),
- );
-
- // This may happen when the minimal value is larger than the limit.
- // Thus we just have something that is completely out-of-range
- if x0 > x1 || y0 > y1 {
- return;
- }
-
- let dst = target.get_raw_pixel_buffer();
-
- if r == g && g == b {
- // If r == g == b, then we can use memset
- if x0 != 0 || x1 != w as i32 - 1 {
- // If it's not the entire row is filled, we can only do
- // memset per row
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let count = (x1 - x0 + 1) as usize;
- dst[(start * Self::PIXEL_SIZE)..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut()
- .for_each(|e| *e = r);
- }
- } else {
- // If the entire memory block is going to be filled, just use single memset
- dst[Self::PIXEL_SIZE * (y0 * w as i32) as usize
- ..((y1 + 1) * w as i32) as usize * Self::PIXEL_SIZE]
- .iter_mut()
- .for_each(|e| *e = r);
- }
- } else {
- let count = (x1 - x0 + 1) as usize;
- if count < 8 {
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let mut iter = dst
- [(start * Self::PIXEL_SIZE)..((start + count) * Self::PIXEL_SIZE)]
- .iter_mut();
- for _ in 0..=(x1 - x0) {
- *iter.next().unwrap() = b;
- *iter.next().unwrap() = g;
- *iter.next().unwrap() = r;
- iter.next();
- }
- }
- } else {
- for y in y0..=y1 {
- let start = (y * w as i32 + x0) as usize;
- let start_ptr = &mut dst[start * Self::PIXEL_SIZE] as *mut u8 as *mut [u8; 8];
- let slice =
- unsafe { std::slice::from_raw_parts_mut(start_ptr, (count - 1) / 2) };
- for p in slice.iter_mut() {
- // In this case, we can actually fill 8 pixels in one iteration with
- // only 3 movq instructions.
- // TODO: Consider using AVX instructions when possible
- let ptr = p as *mut [u8; 8] as *mut u64;
- unsafe {
- let d: u64 = std::mem::transmute([
- b, g, r, 0, b, g, r, 0, // QW1
- ]);
- *ptr = d;
- }
- }
-
- for idx in (slice.len() * 2)..count {
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE] = b;
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE + 1] = g;
- dst[start * Self::PIXEL_SIZE + idx * Self::PIXEL_SIZE + 2] = r;
- }
- }
- }
- }
- }
-}
-
-/// The backend that drawing a bitmap
-pub struct BitMapBackend<'a, P: PixelFormat = RGBPixel> {
- /// The path to the image
- #[allow(dead_code)]
- target: Target<'a>,
- /// The size of the image
- size: (u32, u32),
- /// The data buffer of the image
- buffer: Buffer<'a>,
- /// Flag indicates if the bitmap has been saved
- saved: bool,
- _pantomdata: PhantomData<P>,
-}
-
-impl<'a, P: PixelFormat> BitMapBackend<'a, P> {
- /// The number of bytes per pixel
- const PIXEL_SIZE: usize = P::PIXEL_SIZE;
-}
-
-impl<'a> BitMapBackend<'a, RGBPixel> {
- /// Create a new bitmap backend
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- pub fn new<T: AsRef<Path> + ?Sized>(path: &'a T, (w, h): (u32, u32)) -> Self {
- Self {
- target: Target::File(path.as_ref()),
- size: (w, h),
- buffer: Buffer::Owned(vec![0; Self::PIXEL_SIZE * (w * h) as usize]),
- saved: false,
- _pantomdata: PhantomData,
- }
- }
-
- /// Create a new bitmap backend that generate GIF animation
- ///
- /// When this is used, the bitmap backend acts similar to a real-time rendering backend.
- /// When the program finished drawing one frame, use `present` function to flush the frame
- /// into the GIF file.
- ///
- /// - `path`: The path to the GIF file to create
- /// - `dimension`: The size of the GIF image
- /// - `speed`: The amount of time for each frame to display
- #[cfg(all(feature = "gif", not(target_arch = "wasm32"), feature = "image"))]
- pub fn gif<T: AsRef<Path>>(
- path: T,
- (w, h): (u32, u32),
- frame_delay: u32,
- ) -> Result<Self, BitMapBackendError> {
- Ok(Self {
- target: Target::Gif(Box::new(gif_support::GifFile::new(
- path,
- (w, h),
- frame_delay,
- )?)),
- size: (w, h),
- buffer: Buffer::Owned(vec![0; Self::PIXEL_SIZE * (w * h) as usize]),
- saved: false,
- _pantomdata: PhantomData,
- })
- }
-
- /// Create a new bitmap backend which only lives in-memory
- ///
- /// When this is used, the bitmap backend will write to a user provided [u8] array (or Vec<u8>)
- /// in RGB pixel format.
- ///
- /// Note: This function provides backward compatibility for those code that assumes Plotters
- /// uses RGB pixel format and maniuplates the in-memory framebuffer.
- /// For more pixel format option, use `with_buffer_and_format` instead.
- ///
- /// - `buf`: The buffer to operate
- /// - `dimension`: The size of the image in pixels
- /// - **returns**: The newly created bitmap backend
- pub fn with_buffer(buf: &'a mut [u8], (w, h): (u32, u32)) -> Self {
- Self::with_buffer_and_format(buf, (w, h)).expect("Wrong buffer size")
- }
-}
-
-impl<'a, P: PixelFormat> BitMapBackend<'a, P> {
- /// Create a new bitmap backend with a in-memory buffer with specific pixel format.
- ///
- /// Note: This can be used as a way to manipulate framebuffer, `mmap` can be used on the top of this
- /// as well.
- ///
- /// - `buf`: The buffer to operate
- /// - `dimension`: The size of the image in pixels
- /// - **returns**: The newly created bitmap backend
- pub fn with_buffer_and_format(
- buf: &'a mut [u8],
- (w, h): (u32, u32),
- ) -> Result<Self, BitMapBackendError> {
- if (w * h) as usize * Self::PIXEL_SIZE > buf.len() {
- return Err(BitMapBackendError::InvalidBuffer);
- }
-
- Ok(Self {
- target: Target::Buffer(PhantomData),
- size: (w, h),
- buffer: Buffer::Borrowed(buf),
- saved: false,
- _pantomdata: PhantomData,
- })
- }
-
- #[inline(always)]
- fn get_raw_pixel_buffer(&mut self) -> &mut [u8] {
- self.buffer.borrow_buffer()
- }
-
- /// Split a bitmap backend vertically into several sub drawing area which allows
- /// multi-threading rendering.
- ///
- /// - `area_size`: The size of the area
- /// - **returns**: The splitted backends that can be rendered in parallel
- pub fn split(&mut self, area_size: &[u32]) -> Vec<BitMapBackend<P>> {
- let (w, h) = self.get_size();
- let buf = self.get_raw_pixel_buffer();
-
- let base_addr = &mut buf[0] as *mut u8;
- let mut split_points = vec![0];
- for size in area_size {
- let next = split_points.last().unwrap() + size;
- if next >= h {
- break;
- }
- split_points.push(next);
- }
- split_points.push(h);
-
- split_points
- .iter()
- .zip(split_points.iter().skip(1))
- .map(|(begin, end)| {
- let actual_buf = unsafe {
- std::slice::from_raw_parts_mut(
- base_addr.offset((begin * w) as isize * Self::PIXEL_SIZE as isize),
- ((end - begin) * w) as usize * Self::PIXEL_SIZE,
- )
- };
- Self::with_buffer_and_format(actual_buf, (w, end - begin)).unwrap()
- })
- .collect()
- }
-}
-
-impl<'a, P: PixelFormat> DrawingBackend for BitMapBackend<'a, P> {
- type ErrorType = BitMapBackendError;
-
- fn get_size(&self) -> (u32, u32) {
- self.size
- }
-
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<BitMapBackendError>> {
- self.saved = false;
- Ok(())
- }
-
- #[cfg(any(target_arch = "wasm32", not(feature = "image")))]
- fn present(&mut self) -> Result<(), DrawingErrorKind<BitMapBackendError>> {
- Ok(())
- }
-
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- fn present(&mut self) -> Result<(), DrawingErrorKind<BitMapBackendError>> {
- if !P::can_be_saved() {
- return Ok(());
- }
- let (w, h) = self.get_size();
- match &mut self.target {
- Target::File(path) => {
- if let Some(img) = BorrowedImage::from_raw(w, h, self.buffer.borrow_buffer()) {
- img.save(&path).map_err(|x| {
- DrawingErrorKind::DrawingError(match x {
- ImageError::IoError(x) => BitMapBackendError::IOError(x),
- whatever => BitMapBackendError::IOError(std::io::Error::new(
- std::io::ErrorKind::Other,
- format!("{}", whatever),
- )),
- })
- })?;
- self.saved = true;
- Ok(())
- } else {
- Err(DrawingErrorKind::DrawingError(
- BitMapBackendError::InvalidBuffer,
- ))
- }
- }
- Target::Buffer(_) => Ok(()),
-
- #[cfg(all(feature = "gif", not(target_arch = "wasm32"), feature = "image"))]
- Target::Gif(target) => {
- target
- .flush_frame(self.buffer.borrow_buffer())
- .map_err(DrawingErrorKind::DrawingError)?;
- self.saved = true;
- Ok(())
- }
- }
- }
-
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- color: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<BitMapBackendError>> {
- if point.0 < 0 || point.1 < 0 {
- return Ok(());
- }
-
- let alpha = color.alpha();
- let rgb = color.rgb();
-
- P::draw_pixel(self, point, rgb, alpha);
-
- Ok(())
- }
-
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: (i32, i32),
- to: (i32, i32),
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let alpha = style.as_color().alpha();
- let (r, g, b) = style.as_color().rgb();
-
- if (from.0 == to.0 || from.1 == to.1) && style.stroke_width() == 1 {
- if alpha >= 1.0 {
- if from.1 == to.1 {
- P::fill_rect_fast(self, from, to, r, g, b);
- } else {
- P::fill_vertical_line_fast(self, from.0, (from.1, to.1), r, g, b);
- }
- } else {
- P::blend_rect_fast(self, from, to, r, g, b, alpha);
- }
- return Ok(());
- }
-
- crate::drawing::rasterizer::draw_line(self, from, to, style)
- }
-
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: (i32, i32),
- bottom_right: (i32, i32),
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let alpha = style.as_color().alpha();
- let (r, g, b) = style.as_color().rgb();
- if fill {
- if alpha >= 1.0 {
- P::fill_rect_fast(self, upper_left, bottom_right, r, g, b);
- } else {
- P::blend_rect_fast(self, upper_left, bottom_right, r, g, b, alpha);
- }
- return Ok(());
- }
- crate::drawing::rasterizer::draw_rect(self, upper_left, bottom_right, style, fill)
- }
-
- fn blit_bitmap<'b>(
- &mut self,
- pos: BackendCoord,
- (sw, sh): (u32, u32),
- src: &'b [u8],
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let (dw, dh) = self.get_size();
-
- let (x0, y0) = pos;
- let (x1, y1) = (x0 + sw as i32, y0 + sh as i32);
-
- let (x0, y0, x1, y1) = (x0.max(0), y0.max(0), x1.min(dw as i32), y1.min(dh as i32));
-
- if x0 == x1 || y0 == y1 {
- return Ok(());
- }
-
- let mut chunk_size = (x1 - x0) as usize;
- let mut num_chunks = (y1 - y0) as usize;
- let dst_gap = dw as usize - chunk_size;
- let src_gap = sw as usize - chunk_size;
-
- let dst_start = Self::PIXEL_SIZE * (y0 as usize * dw as usize + x0 as usize);
-
- let mut dst = &mut self.get_raw_pixel_buffer()[dst_start..];
-
- let src_start =
- Self::PIXEL_SIZE * ((sh as i32 + y0 - y1) * sw as i32 + (sw as i32 + x0 - x1)) as usize;
- let mut src = &src[src_start..];
-
- if src_gap == 0 && dst_gap == 0 {
- chunk_size *= num_chunks;
- num_chunks = 1;
- }
- for i in 0..num_chunks {
- dst[0..(chunk_size * Self::PIXEL_SIZE)]
- .copy_from_slice(&src[0..(chunk_size * Self::PIXEL_SIZE)]);
- if i != num_chunks - 1 {
- dst = &mut dst[((chunk_size + dst_gap) * Self::PIXEL_SIZE)..];
- src = &src[((chunk_size + src_gap) * Self::PIXEL_SIZE)..];
- }
- }
-
- Ok(())
- }
-}
-
-impl<P: PixelFormat> Drop for BitMapBackend<'_, P> {
- fn drop(&mut self) {
- if !self.saved {
- // drop should not panic, so we ignore a failed present
- let _ = self.present();
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_backend() {
- use crate::prelude::*;
- let mut buffer = vec![0; 10 * 10 * 3];
-
- {
- let back = BitMapBackend::with_buffer(&mut buffer, (10, 10));
-
- let area = back.into_drawing_area();
- area.fill(&WHITE).unwrap();
- area.draw(&PathElement::new(vec![(0, 0), (10, 10)], RED.filled()))
- .unwrap();
- area.present().unwrap();
- }
-
- for i in 0..10 {
- assert_eq!(buffer[i * 33], 255);
- assert_eq!(buffer[i * 33 + 1], 0);
- assert_eq!(buffer[i * 33 + 2], 0);
- buffer[i * 33] = 255;
- buffer[i * 33 + 1] = 255;
- buffer[i * 33 + 2] = 255;
- }
-
- assert!(buffer.into_iter().all(|x| x == 255));
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_backend_fill_half() {
- use crate::prelude::*;
- let mut buffer = vec![0; 10 * 10 * 3];
-
- {
- let back = BitMapBackend::with_buffer(&mut buffer, (10, 10));
-
- let area = back.into_drawing_area();
- area.draw(&Rectangle::new([(0, 0), (5, 10)], RED.filled()))
- .unwrap();
- area.present().unwrap();
- }
- for x in 0..10 {
- for y in 0..10 {
- assert_eq!(
- buffer[(y * 10 + x) as usize * 3 + 0],
- if x <= 5 { 255 } else { 0 }
- );
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 1], 0);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 2], 0);
- }
- }
-
- let mut buffer = vec![0; 10 * 10 * 3];
-
- {
- let back = BitMapBackend::with_buffer(&mut buffer, (10, 10));
-
- let area = back.into_drawing_area();
- area.draw(&Rectangle::new([(0, 0), (10, 5)], RED.filled()))
- .unwrap();
- area.present().unwrap();
- }
- for x in 0..10 {
- for y in 0..10 {
- assert_eq!(
- buffer[(y * 10 + x) as usize * 3 + 0],
- if y <= 5 { 255 } else { 0 }
- );
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 1], 0);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 2], 0);
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_backend_blend() {
- use crate::prelude::*;
- let mut buffer = vec![255; 10 * 10 * 3];
-
- {
- let back = BitMapBackend::with_buffer(&mut buffer, (10, 10));
-
- let area = back.into_drawing_area();
- area.draw(&Rectangle::new(
- [(0, 0), (5, 10)],
- RGBColor(0, 100, 200).mix(0.2).filled(),
- ))
- .unwrap();
- area.present().unwrap();
- }
-
- for x in 0..10 {
- for y in 0..10 {
- let (r, g, b) = if x <= 5 {
- (205, 225, 245)
- } else {
- (255, 255, 255)
- };
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 0], r);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 1], g);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 2], b);
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_backend_split_and_fill() {
- use crate::prelude::*;
- let mut buffer = vec![255; 10 * 10 * 3];
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (10, 10));
-
- for (sub_backend, color) in back.split(&[5]).into_iter().zip([&RED, &GREEN].iter()) {
- sub_backend.into_drawing_area().fill(*color).unwrap();
- }
- }
-
- for x in 0..10 {
- for y in 0..10 {
- let (r, g, b) = if y < 5 { (255, 0, 0) } else { (0, 255, 0) };
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 0], r);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 1], g);
- assert_eq!(buffer[(y * 10 + x) as usize * 3 + 2], b);
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_draw_rect_out_of_range() {
- use crate::prelude::*;
- let mut buffer = vec![0; 1099 * 1000 * 3];
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (1000, 1000));
-
- back.draw_line((1100, 0), (1100, 999), &RED.to_rgba())
- .unwrap();
- back.draw_line((0, 1100), (999, 1100), &RED.to_rgba())
- .unwrap();
- back.draw_rect((1100, 0), (1100, 999), &RED.to_rgba(), true)
- .unwrap();
- }
-
- for x in 0..1000 {
- for y in 0..1000 {
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 0], 0);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 1], 0);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 2], 0);
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_draw_line_out_of_range() {
- use crate::prelude::*;
- let mut buffer = vec![0; 1000 * 1000 * 3];
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (1000, 1000));
-
- back.draw_line((-1000, -1000), (2000, 2000), &WHITE.to_rgba())
- .unwrap();
-
- back.draw_line((999, -1000), (999, 2000), &WHITE.to_rgba())
- .unwrap();
- }
-
- for x in 0..1000 {
- for y in 0..1000 {
- let expected_value = if x == y || x == 999 { 255 } else { 0 };
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 0], expected_value);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 1], expected_value);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 2], expected_value);
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_blend_large() {
- use crate::prelude::*;
- let mut buffer = vec![0; 1000 * 1000 * 3];
-
- for fill_color in [RED, GREEN, BLUE].iter() {
- buffer.iter_mut().for_each(|x| *x = 0);
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (1000, 1000));
-
- back.draw_rect((0, 0), (1000, 1000), &WHITE.mix(0.1), true)
- .unwrap(); // should be (24, 24, 24)
- back.draw_rect((0, 0), (100, 100), &fill_color.mix(0.5), true)
- .unwrap(); // should be (139, 24, 24)
- }
-
- for x in 0..1000 {
- for y in 0..1000 {
- let expected_value = if x <= 100 && y <= 100 {
- let (r, g, b) = fill_color.to_rgba().rgb();
- (
- if r > 0 { 139 } else { 12 },
- if g > 0 { 139 } else { 12 },
- if b > 0 { 139 } else { 12 },
- )
- } else {
- (24, 24, 24)
- };
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 0], expected_value.0);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 1], expected_value.1);
- assert_eq!(buffer[(y * 1000 + x) as usize * 3 + 2], expected_value.2);
- }
- }
- }
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_bgrx_pixel_format() {
- use crate::drawing::bitmap_pixel::BGRXPixel;
- use crate::prelude::*;
- let mut rgb_buffer = vec![0; 1000 * 1000 * 3];
- let mut bgrx_buffer = vec![0; 1000 * 1000 * 4];
-
- {
- let mut rgb_back = BitMapBackend::with_buffer(&mut rgb_buffer, (1000, 1000));
- let mut bgrx_back =
- BitMapBackend::<BGRXPixel>::with_buffer_and_format(&mut bgrx_buffer, (1000, 1000))
- .unwrap();
-
- rgb_back
- .draw_rect((0, 0), (1000, 1000), &BLACK, true)
- .unwrap();
- bgrx_back
- .draw_rect((0, 0), (1000, 1000), &BLACK, true)
- .unwrap();
-
- rgb_back
- .draw_rect(
- (0, 0),
- (1000, 1000),
- &RGBColor(0xaa, 0xbb, 0xcc).mix(0.85),
- true,
- )
- .unwrap();
- bgrx_back
- .draw_rect(
- (0, 0),
- (1000, 1000),
- &RGBColor(0xaa, 0xbb, 0xcc).mix(0.85),
- true,
- )
- .unwrap();
-
- rgb_back
- .draw_rect((0, 0), (1000, 1000), &RED.mix(0.85), true)
- .unwrap();
- bgrx_back
- .draw_rect((0, 0), (1000, 1000), &RED.mix(0.85), true)
- .unwrap();
-
- rgb_back.draw_circle((300, 300), 100, &GREEN, true).unwrap();
- bgrx_back
- .draw_circle((300, 300), 100, &GREEN, true)
- .unwrap();
-
- rgb_back.draw_rect((10, 10), (50, 50), &BLUE, true).unwrap();
- bgrx_back
- .draw_rect((10, 10), (50, 50), &BLUE, true)
- .unwrap();
-
- rgb_back
- .draw_rect((10, 10), (50, 50), &WHITE, true)
- .unwrap();
- bgrx_back
- .draw_rect((10, 10), (50, 50), &WHITE, true)
- .unwrap();
-
- rgb_back
- .draw_rect((10, 10), (15, 50), &YELLOW, true)
- .unwrap();
- bgrx_back
- .draw_rect((10, 10), (15, 50), &YELLOW, true)
- .unwrap();
- }
-
- for x in 0..1000 {
- for y in 0..1000 {
- assert!(
- (rgb_buffer[y * 3000 + x * 3 + 0] as i32
- - bgrx_buffer[y * 4000 + x * 4 + 2] as i32)
- .abs()
- <= 1
- );
- assert!(
- (rgb_buffer[y * 3000 + x * 3 + 1] as i32
- - bgrx_buffer[y * 4000 + x * 4 + 1] as i32)
- .abs()
- <= 1
- );
- assert!(
- (rgb_buffer[y * 3000 + x * 3 + 2] as i32
- - bgrx_buffer[y * 4000 + x * 4 + 0] as i32)
- .abs()
- <= 1
- );
- }
- }
-}
-#[cfg(test)]
-#[test]
-fn test_draw_simple_lines() {
- use crate::prelude::*;
- let mut buffer = vec![0; 1000 * 1000 * 3];
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (1000, 1000));
- back.draw_line((500, 0), (500, 1000), &WHITE.filled().stroke_width(5))
- .unwrap();
- }
-
- let nz_count = buffer.into_iter().filter(|x| *x != 0).count();
-
- assert_eq!(nz_count, 6 * 1000 * 3);
-}
-
-#[cfg(test)]
-#[test]
-fn test_bitmap_blit() {
- let src_bitmap: Vec<u8> = (0..100)
- .map(|y| (0..300).map(move |x| ((x * y) % 253) as u8))
- .flatten()
- .collect();
-
- use crate::prelude::*;
- let mut buffer = vec![0; 1000 * 1000 * 3];
-
- {
- let mut back = BitMapBackend::with_buffer(&mut buffer, (1000, 1000));
- back.blit_bitmap((500, 500), (100, 100), &src_bitmap[..])
- .unwrap();
- }
-
- for y in 0..1000 {
- for x in 0..1000 {
- if x >= 500 && x < 600 && y >= 500 && y < 600 {
- let lx = x - 500;
- let ly = y - 500;
- assert_eq!(buffer[y * 3000 + x * 3 + 0] as usize, (ly * lx * 3) % 253);
- assert_eq!(
- buffer[y * 3000 + x * 3 + 1] as usize,
- (ly * (lx * 3 + 1)) % 253
- );
- assert_eq!(
- buffer[y * 3000 + x * 3 + 2] as usize,
- (ly * (lx * 3 + 2)) % 253
- );
- } else {
- assert_eq!(buffer[y * 3000 + x * 3 + 0], 0);
- assert_eq!(buffer[y * 3000 + x * 3 + 1], 0);
- assert_eq!(buffer[y * 3000 + x * 3 + 2], 0);
- }
- }
- }
-}
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
-#[cfg(test)]
-mod test {
- use crate::prelude::*;
- use crate::style::text_anchor::{HPos, Pos, VPos};
- use image::{ImageBuffer, Rgb};
- use std::fs;
- use std::path::Path;
-
- static DST_DIR: &str = "target/test/bitmap";
-
- fn checked_save_file(name: &str, content: &[u8], w: u32, h: u32) {
- /*
- Please use the PNG file to manually verify the results.
- */
- assert!(content.iter().any(|x| *x != 0));
- fs::create_dir_all(DST_DIR).unwrap();
- let file_name = format!("{}.png", name);
- let file_path = Path::new(DST_DIR).join(file_name);
- println!("{:?} created", file_path);
- let img = ImageBuffer::<Rgb<u8>, &[u8]>::from_raw(w, h, content).unwrap();
- img.save(&file_path).unwrap();
- }
-
- fn draw_mesh_with_custom_ticks(tick_size: i32, test_name: &str) {
- let (width, height) = (500, 500);
- let mut buffer = vec![0; (width * height * 3) as usize];
- {
- let root = BitMapBackend::with_buffer(&mut buffer, (width, height)).into_drawing_area();
- root.fill(&WHITE).unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("This is a test", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..10, 0..10)
- .unwrap();
-
- chart
- .configure_mesh()
- .set_all_tick_mark_size(tick_size)
- .draw()
- .unwrap();
- }
- checked_save_file(test_name, &buffer, width, height);
- }
-
- #[test]
- fn test_draw_mesh_no_ticks() {
- draw_mesh_with_custom_ticks(0, "test_draw_mesh_no_ticks");
- }
-
- #[test]
- fn test_draw_mesh_negative_ticks() {
- draw_mesh_with_custom_ticks(-10, "test_draw_mesh_negative_ticks");
- }
-
- #[test]
- fn test_text_draw() {
- let (width, height) = (1500, 800);
- let mut buffer = vec![0; (width * height * 3) as usize];
- {
- let root = BitMapBackend::with_buffer(&mut buffer, (width, height)).into_drawing_area();
- root.fill(&WHITE).unwrap();
- let root = root
- .titled("Image Title", ("sans-serif", 60).into_font())
- .unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All anchor point positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..100, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .x_desc("X Axis")
- .y_desc("Y Axis")
- .draw()
- .unwrap();
-
- let ((x1, y1), (x2, y2), (x3, y3)) = ((-30, 30), (0, -30), (30, 30));
-
- for (dy, trans) in [
- FontTransform::None,
- FontTransform::Rotate90,
- FontTransform::Rotate180,
- FontTransform::Rotate270,
- ]
- .iter()
- .enumerate()
- {
- for (dx1, h_pos) in [HPos::Left, HPos::Right, HPos::Center].iter().enumerate() {
- for (dx2, v_pos) in [VPos::Top, VPos::Center, VPos::Bottom].iter().enumerate() {
- let x = 150_i32 + (dx1 as i32 * 3 + dx2 as i32) * 150;
- let y = 120 + dy as i32 * 150;
- let draw = |x, y, text| {
- root.draw(&Circle::new((x, y), 3, &BLACK.mix(0.5))).unwrap();
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(*h_pos, *v_pos))
- .transform(trans.clone());
- root.draw_text(text, &style, (x, y)).unwrap();
- };
- draw(x + x1, y + y1, "dood");
- draw(x + x2, y + y2, "dog");
- draw(x + x3, y + y3, "goog");
- }
- }
- }
- }
- checked_save_file("test_text_draw", &buffer, width, height);
- }
-
- #[test]
- fn test_text_clipping() {
- let (width, height) = (500_i32, 500_i32);
- let mut buffer = vec![0; (width * height * 3) as usize];
- {
- let root = BitMapBackend::with_buffer(&mut buffer, (width as u32, height as u32))
- .into_drawing_area();
- root.fill(&WHITE).unwrap();
-
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(HPos::Center, VPos::Center));
- root.draw_text("TOP LEFT", &style, (0, 0)).unwrap();
- root.draw_text("TOP CENTER", &style, (width / 2, 0))
- .unwrap();
- root.draw_text("TOP RIGHT", &style, (width, 0)).unwrap();
-
- root.draw_text("MIDDLE LEFT", &style, (0, height / 2))
- .unwrap();
- root.draw_text("MIDDLE RIGHT", &style, (width, height / 2))
- .unwrap();
-
- root.draw_text("BOTTOM LEFT", &style, (0, height)).unwrap();
- root.draw_text("BOTTOM CENTER", &style, (width / 2, height))
- .unwrap();
- root.draw_text("BOTTOM RIGHT", &style, (width, height))
- .unwrap();
- }
- checked_save_file("test_text_clipping", &buffer, width as u32, height as u32);
- }
-
- #[test]
- fn test_series_labels() {
- let (width, height) = (500, 500);
- let mut buffer = vec![0; (width * height * 3) as usize];
- {
- let root = BitMapBackend::with_buffer(&mut buffer, (width, height)).into_drawing_area();
- root.fill(&WHITE).unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All series label positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..50, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .draw()
- .unwrap();
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 5, &RED)))
- .expect("Drawing error")
- .label("Series 1")
- .legend(|(x, y)| Circle::new((x, y), 3, RED.filled()));
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 10, &BLUE)))
- .expect("Drawing error")
- .label("Series 2")
- .legend(|(x, y)| Circle::new((x, y), 3, BLUE.filled()));
-
- for pos in vec![
- SeriesLabelPosition::UpperLeft,
- SeriesLabelPosition::MiddleLeft,
- SeriesLabelPosition::LowerLeft,
- SeriesLabelPosition::UpperMiddle,
- SeriesLabelPosition::MiddleMiddle,
- SeriesLabelPosition::LowerMiddle,
- SeriesLabelPosition::UpperRight,
- SeriesLabelPosition::MiddleRight,
- SeriesLabelPosition::LowerRight,
- SeriesLabelPosition::Coordinate(70, 70),
- ]
- .into_iter()
- {
- chart
- .configure_series_labels()
- .border_style(&BLACK.mix(0.5))
- .position(pos)
- .draw()
- .expect("Drawing error");
- }
- }
- checked_save_file("test_series_labels", &buffer, width, height);
- }
-
- #[test]
- fn test_draw_pixel_alphas() {
- let (width, height) = (100_i32, 100_i32);
- let mut buffer = vec![0; (width * height * 3) as usize];
- {
- let root = BitMapBackend::with_buffer(&mut buffer, (width as u32, height as u32))
- .into_drawing_area();
- root.fill(&WHITE).unwrap();
- for i in -20..20 {
- let alpha = i as f64 * 0.1;
- root.draw_pixel((50 + i, 50 + i), &BLACK.mix(alpha))
- .unwrap();
- }
- }
- checked_save_file(
- "test_draw_pixel_alphas",
- &buffer,
- width as u32,
- height as u32,
- );
- }
-}
diff --git a/src/drawing/backend_impl/cairo.rs b/src/drawing/backend_impl/cairo.rs
deleted file mode 100644
index a65bb7b..0000000
--- a/src/drawing/backend_impl/cairo.rs
+++ /dev/null
@@ -1,567 +0,0 @@
-use cairo::{Context as CairoContext, FontSlant, FontWeight, Status as CairoStatus};
-
-#[allow(unused_imports)]
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
-use crate::style::text_anchor::{HPos, VPos};
-#[allow(unused_imports)]
-use crate::style::{Color, FontDesc, FontStyle, FontTransform, RGBAColor, TextStyle};
-
-/// The drawing backend that is backed with a Cairo context
-pub struct CairoBackend<'a> {
- context: &'a CairoContext,
- width: u32,
- height: u32,
- init_flag: bool,
-}
-
-#[derive(Debug)]
-pub struct CairoError(CairoStatus);
-
-impl std::fmt::Display for CairoError {
- fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {
- write!(fmt, "{:?}", self)
- }
-}
-
-impl std::error::Error for CairoError {}
-
-impl<'a> CairoBackend<'a> {
- /// Call cairo functions and verify the cairo status afterward.
- ///
- /// All major cairo objects retain an error status internally
- /// which can be queried anytime by the users using status() method.
- /// In the mean time, it is safe to call all cairo functions normally even
- /// if the underlying object is in an error status.
- /// This means that no error handling code is required before or after
- /// each individual cairo function call.
- ///
- /// - `f`: The function to call
- /// - *Returns* The wrapped result of the function
- fn call_cairo<T, F: Fn(&CairoContext) -> T>(
- &self,
- f: F,
- ) -> Result<T, DrawingErrorKind<CairoError>> {
- let result = f(self.context);
- let status = self.context.status();
- if status == CairoStatus::Success {
- Ok(result)
- } else {
- Err(DrawingErrorKind::DrawingError(CairoError(status)))
- }
- }
-
- fn set_color(&self, color: &RGBAColor) -> Result<(), DrawingErrorKind<CairoError>> {
- self.call_cairo(|c| {
- c.set_source_rgba(
- f64::from(color.rgb().0) / 255.0,
- f64::from(color.rgb().1) / 255.0,
- f64::from(color.rgb().2) / 255.0,
- color.alpha(),
- )
- })
- }
-
- fn set_stroke_width(&self, width: u32) -> Result<(), DrawingErrorKind<CairoError>> {
- self.call_cairo(|c| c.set_line_width(f64::from(width)))
- }
-
- fn set_font<'b>(&self, font: &FontDesc<'b>) -> Result<(), DrawingErrorKind<CairoError>> {
- let actual_size = font.get_size();
- self.call_cairo(|c| {
- match font.get_style() {
- FontStyle::Normal => {
- c.select_font_face(font.get_name(), FontSlant::Normal, FontWeight::Normal)
- }
- FontStyle::Bold => {
- c.select_font_face(font.get_name(), FontSlant::Normal, FontWeight::Bold)
- }
- FontStyle::Oblique => {
- c.select_font_face(font.get_name(), FontSlant::Oblique, FontWeight::Normal)
- }
- FontStyle::Italic => {
- c.select_font_face(font.get_name(), FontSlant::Italic, FontWeight::Normal)
- }
- };
- c.set_font_size(actual_size);
- })
- }
-
- pub fn new(context: &'a CairoContext, (w, h): (u32, u32)) -> Result<Self, CairoError> {
- let ret = Self {
- context,
- width: w,
- height: h,
- init_flag: false,
- };
- Ok(ret)
- }
-}
-
-impl<'a> DrawingBackend for CairoBackend<'a> {
- type ErrorType = CairoError;
-
- fn get_size(&self) -> (u32, u32) {
- (self.width, self.height)
- }
-
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if !self.init_flag {
- self.call_cairo(|c| {
- let (x0, y0, x1, y1) = c.clip_extents();
- c.scale(
- (x1 - x0) / f64::from(self.width),
- (y1 - y0) / f64::from(self.height),
- )
- })?;
- self.init_flag = true;
- }
- Ok(())
- }
-
- fn present(&mut self) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- Ok(())
- }
-
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- color: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.call_cairo(|c| {
- c.rectangle(f64::from(point.0), f64::from(point.1), 1.0, 1.0);
- c.set_source_rgba(
- f64::from(color.rgb().0) / 255.0,
- f64::from(color.rgb().1) / 255.0,
- f64::from(color.rgb().2) / 255.0,
- color.alpha(),
- );
- c.fill();
- })
- }
-
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: BackendCoord,
- to: BackendCoord,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.set_color(&style.as_color())?;
- self.set_stroke_width(style.stroke_width())?;
-
- self.call_cairo(|c| {
- c.move_to(f64::from(from.0), f64::from(from.1));
- c.line_to(f64::from(to.0), f64::from(to.1));
- c.stroke();
- })
- }
-
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.set_color(&style.as_color())?;
- self.set_stroke_width(style.stroke_width())?;
-
- self.call_cairo(|c| {
- c.rectangle(
- f64::from(upper_left.0),
- f64::from(upper_left.1),
- f64::from(bottom_right.0 - upper_left.0),
- f64::from(bottom_right.1 - upper_left.1),
- );
- if fill {
- c.fill();
- } else {
- c.stroke();
- }
- })
- }
-
- fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.set_color(&style.as_color())?;
- self.set_stroke_width(style.stroke_width())?;
-
- let mut path = path.into_iter();
- if let Some((x, y)) = path.next() {
- self.call_cairo(|c| c.move_to(f64::from(x), f64::from(y)))?;
- }
-
- for (x, y) in path {
- self.call_cairo(|c| c.line_to(f64::from(x), f64::from(y)))?;
- }
-
- self.call_cairo(|c| c.stroke())
- }
-
- fn fill_polygon<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.set_color(&style.as_color())?;
- self.set_stroke_width(style.stroke_width())?;
-
- let mut path = path.into_iter();
-
- if let Some((x, y)) = path.next() {
- self.call_cairo(|c| c.move_to(f64::from(x), f64::from(y)))?;
-
- for (x, y) in path {
- self.call_cairo(|c| c.line_to(f64::from(x), f64::from(y)))?;
- }
-
- self.call_cairo(|c| {
- c.close_path();
- c.fill();
- })
- } else {
- Ok(())
- }
- }
-
- fn draw_circle<S: BackendStyle>(
- &mut self,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- self.set_color(&style.as_color())?;
- self.set_stroke_width(style.stroke_width())?;
-
- self.call_cairo(|c| {
- c.new_sub_path();
- c.arc(
- f64::from(center.0),
- f64::from(center.1),
- f64::from(radius),
- 0.0,
- std::f64::consts::PI * 2.0,
- );
-
- if fill {
- c.fill();
- } else {
- c.stroke();
- }
- })
- }
-
- fn estimate_text_size<'b>(
- &self,
- text: &str,
- font: &FontDesc<'b>,
- ) -> Result<(u32, u32), DrawingErrorKind<Self::ErrorType>> {
- self.set_font(&font)?;
- self.call_cairo(|c| {
- let extents = c.text_extents(text);
- (extents.width as u32, extents.height as u32)
- })
- }
-
- fn draw_text(
- &mut self,
- text: &str,
- style: &TextStyle,
- pos: BackendCoord,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let font = &style.font;
- let color = &style.color;
- let (mut x, mut y) = (pos.0, pos.1);
-
- let degree = match font.get_transform() {
- FontTransform::None => 0.0,
- FontTransform::Rotate90 => 90.0,
- FontTransform::Rotate180 => 180.0,
- FontTransform::Rotate270 => 270.0,
- } / 180.0
- * std::f64::consts::PI;
-
- if degree != 0.0 {
- self.call_cairo(|c| {
- c.save();
- c.translate(f64::from(x), f64::from(y));
- c.rotate(degree);
- })?;
- x = 0;
- y = 0;
- }
-
- self.set_font(&font)?;
- self.set_color(&color)?;
-
- self.call_cairo(|c| {
- let extents = c.text_extents(text);
- let dx = match style.pos.h_pos {
- HPos::Left => 0.0,
- HPos::Right => -extents.width,
- HPos::Center => -extents.width / 2.0,
- };
- let dy = match style.pos.v_pos {
- VPos::Top => extents.height,
- VPos::Center => extents.height / 2.0,
- VPos::Bottom => 0.0,
- };
- c.move_to(
- f64::from(x) + dx - extents.x_bearing,
- f64::from(y) + dy - extents.y_bearing - extents.height,
- );
- c.show_text(text);
- if degree != 0.0 {
- c.restore();
- }
- })
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
- use crate::prelude::*;
- use crate::style::text_anchor::{HPos, Pos, VPos};
- use std::fs;
- use std::path::Path;
-
- static DST_DIR: &str = "target/test/cairo";
-
- fn checked_save_file(name: &str, content: &str) {
- /*
- Please use the PS file to manually verify the results.
-
- You may want to use Ghostscript to view the file.
- */
- assert!(!content.is_empty());
- fs::create_dir_all(DST_DIR).unwrap();
- let file_name = format!("{}.ps", name);
- let file_path = Path::new(DST_DIR).join(file_name);
- println!("{:?} created", file_path);
- fs::write(file_path, &content).unwrap();
- }
-
- fn draw_mesh_with_custom_ticks(tick_size: i32, test_name: &str) {
- let buffer: Vec<u8> = vec![];
- let surface = cairo::PsSurface::for_stream(500.0, 500.0, buffer).unwrap();
- let cr = CairoContext::new(&surface);
- let root = CairoBackend::new(&cr, (500, 500))
- .unwrap()
- .into_drawing_area();
-
- // Text could be rendered to different elements if has whitespaces
- let mut chart = ChartBuilder::on(&root)
- .caption("this-is-a-test", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..10, 0..10)
- .unwrap();
-
- chart
- .configure_mesh()
- .set_all_tick_mark_size(tick_size)
- .draw()
- .unwrap();
-
- let buffer = *surface.finish_output_stream().unwrap().downcast().unwrap();
- let content = String::from_utf8(buffer).unwrap();
- checked_save_file(test_name, &content);
-
- assert!(content.contains("this-is-a-test"));
- }
-
- #[test]
- fn test_draw_mesh_no_ticks() {
- draw_mesh_with_custom_ticks(0, "test_draw_mesh_no_ticks");
- }
-
- #[test]
- fn test_draw_mesh_negative_ticks() {
- draw_mesh_with_custom_ticks(-10, "test_draw_mesh_negative_ticks");
- }
-
- #[test]
- fn test_text_draw() {
- let buffer: Vec<u8> = vec![];
- let (width, height) = (1500, 800);
- let surface = cairo::PsSurface::for_stream(width.into(), height.into(), buffer).unwrap();
- let cr = CairoContext::new(&surface);
- let root = CairoBackend::new(&cr, (width, height))
- .unwrap()
- .into_drawing_area();
- let root = root
- .titled("Image Title", ("sans-serif", 60).into_font())
- .unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All anchor point positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..100, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .x_desc("X Axis")
- .y_desc("Y Axis")
- .draw()
- .unwrap();
-
- let ((x1, y1), (x2, y2), (x3, y3)) = ((-30, 30), (0, -30), (30, 30));
-
- for (dy, trans) in [
- FontTransform::None,
- FontTransform::Rotate90,
- FontTransform::Rotate180,
- FontTransform::Rotate270,
- ]
- .iter()
- .enumerate()
- {
- for (dx1, h_pos) in [HPos::Left, HPos::Right, HPos::Center].iter().enumerate() {
- for (dx2, v_pos) in [VPos::Top, VPos::Center, VPos::Bottom].iter().enumerate() {
- let x = 150_i32 + (dx1 as i32 * 3 + dx2 as i32) * 150;
- let y = 120 + dy as i32 * 150;
- let draw = |x, y, text| {
- root.draw(&Circle::new((x, y), 3, &BLACK.mix(0.5))).unwrap();
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(*h_pos, *v_pos))
- .transform(trans.clone());
- root.draw_text(text, &style, (x, y)).unwrap();
- };
- draw(x + x1, y + y1, "dood");
- draw(x + x2, y + y2, "dog");
- draw(x + x3, y + y3, "goog");
- }
- }
- }
-
- let buffer = *surface.finish_output_stream().unwrap().downcast().unwrap();
- let content = String::from_utf8(buffer).unwrap();
- checked_save_file("test_text_draw", &content);
-
- assert_eq!(content.matches("dog").count(), 36);
- assert_eq!(content.matches("dood").count(), 36);
- assert_eq!(content.matches("goog").count(), 36);
- }
-
- #[test]
- fn test_text_clipping() {
- let buffer: Vec<u8> = vec![];
- let (width, height) = (500_i32, 500_i32);
- let surface = cairo::PsSurface::for_stream(width.into(), height.into(), buffer).unwrap();
- let cr = CairoContext::new(&surface);
- let root = CairoBackend::new(&cr, (width as u32, height as u32))
- .unwrap()
- .into_drawing_area();
-
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(HPos::Center, VPos::Center));
- root.draw_text("TOP LEFT", &style, (0, 0)).unwrap();
- root.draw_text("TOP CENTER", &style, (width / 2, 0))
- .unwrap();
- root.draw_text("TOP RIGHT", &style, (width, 0)).unwrap();
-
- root.draw_text("MIDDLE LEFT", &style, (0, height / 2))
- .unwrap();
- root.draw_text("MIDDLE RIGHT", &style, (width, height / 2))
- .unwrap();
-
- root.draw_text("BOTTOM LEFT", &style, (0, height)).unwrap();
- root.draw_text("BOTTOM CENTER", &style, (width / 2, height))
- .unwrap();
- root.draw_text("BOTTOM RIGHT", &style, (width, height))
- .unwrap();
-
- let buffer = *surface.finish_output_stream().unwrap().downcast().unwrap();
- let content = String::from_utf8(buffer).unwrap();
- checked_save_file("test_text_clipping", &content);
- }
-
- #[test]
- fn test_series_labels() {
- let buffer: Vec<u8> = vec![];
- let (width, height) = (500, 500);
- let surface = cairo::PsSurface::for_stream(width.into(), height.into(), buffer).unwrap();
- let cr = CairoContext::new(&surface);
- let root = CairoBackend::new(&cr, (width, height))
- .unwrap()
- .into_drawing_area();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All series label positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..50, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .draw()
- .unwrap();
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 5, &RED)))
- .expect("Drawing error")
- .label("Series 1")
- .legend(|(x, y)| Circle::new((x, y), 3, RED.filled()));
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 10, &BLUE)))
- .expect("Drawing error")
- .label("Series 2")
- .legend(|(x, y)| Circle::new((x, y), 3, BLUE.filled()));
-
- for pos in vec![
- SeriesLabelPosition::UpperLeft,
- SeriesLabelPosition::MiddleLeft,
- SeriesLabelPosition::LowerLeft,
- SeriesLabelPosition::UpperMiddle,
- SeriesLabelPosition::MiddleMiddle,
- SeriesLabelPosition::LowerMiddle,
- SeriesLabelPosition::UpperRight,
- SeriesLabelPosition::MiddleRight,
- SeriesLabelPosition::LowerRight,
- SeriesLabelPosition::Coordinate(70, 70),
- ]
- .into_iter()
- {
- chart
- .configure_series_labels()
- .border_style(&BLACK.mix(0.5))
- .position(pos)
- .draw()
- .expect("Drawing error");
- }
-
- let buffer = *surface.finish_output_stream().unwrap().downcast().unwrap();
- let content = String::from_utf8(buffer).unwrap();
- checked_save_file("test_series_labels", &content);
- }
-
- #[test]
- fn test_draw_pixel_alphas() {
- let buffer: Vec<u8> = vec![];
- let (width, height) = (100_i32, 100_i32);
- let surface = cairo::PsSurface::for_stream(width.into(), height.into(), buffer).unwrap();
- let cr = CairoContext::new(&surface);
- let root = CairoBackend::new(&cr, (width as u32, height as u32))
- .unwrap()
- .into_drawing_area();
-
- for i in -20..20 {
- let alpha = i as f64 * 0.1;
- root.draw_pixel((50 + i, 50 + i), &BLACK.mix(alpha))
- .unwrap();
- }
-
- let buffer = *surface.finish_output_stream().unwrap().downcast().unwrap();
- let content = String::from_utf8(buffer).unwrap();
- checked_save_file("test_draw_pixel_alphas", &content);
- }
-}
diff --git a/src/drawing/backend_impl/canvas.rs b/src/drawing/backend_impl/canvas.rs
deleted file mode 100644
index f57639f..0000000
--- a/src/drawing/backend_impl/canvas.rs
+++ /dev/null
@@ -1,530 +0,0 @@
-use js_sys::JSON;
-use wasm_bindgen::{JsCast, JsValue};
-use web_sys::{window, CanvasRenderingContext2d, HtmlCanvasElement};
-
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
-use crate::style::text_anchor::{HPos, VPos};
-use crate::style::{Color, FontTransform, RGBAColor, TextStyle};
-
-/// The backend that is drawing on the HTML canvas
-/// TODO: Support double buffering
-pub struct CanvasBackend {
- canvas: HtmlCanvasElement,
- context: CanvasRenderingContext2d,
-}
-
-pub struct CanvasError(String);
-
-impl std::fmt::Display for CanvasError {
- fn fmt(&self, fmt: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
- return write!(fmt, "Canvas Error: {}", self.0);
- }
-}
-
-impl std::fmt::Debug for CanvasError {
- fn fmt(&self, fmt: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
- return write!(fmt, "CanvasError({})", self.0);
- }
-}
-
-impl From<JsValue> for DrawingErrorKind<CanvasError> {
- fn from(e: JsValue) -> DrawingErrorKind<CanvasError> {
- DrawingErrorKind::DrawingError(CanvasError(
- JSON::stringify(&e)
- .map(|s| Into::<String>::into(&s))
- .unwrap_or_else(|_| "Unknown".to_string()),
- ))
- }
-}
-
-impl std::error::Error for CanvasError {}
-
-impl CanvasBackend {
- fn init_backend(canvas: HtmlCanvasElement) -> Option<Self> {
- let context: CanvasRenderingContext2d = canvas.get_context("2d").ok()??.dyn_into().ok()?;
- Some(CanvasBackend { canvas, context })
- }
-
- /// Create a new drawing backend backed with an HTML5 canvas object with given Id
- /// - `elem_id` The element id for the canvas
- /// - Return either some drawing backend has been created, or none in error case
- pub fn new(elem_id: &str) -> Option<Self> {
- let document = window()?.document()?;
- let canvas = document.get_element_by_id(elem_id)?;
- let canvas: HtmlCanvasElement = canvas.dyn_into().ok()?;
- Self::init_backend(canvas)
- }
-
- /// Create a new drawing backend backend with a HTML5 canvas object passed in
- /// - `canvas` The object we want to use as backend
- /// - Return either the drawing backend or None for error
- pub fn with_canvas_object(canvas: HtmlCanvasElement) -> Option<Self> {
- Self::init_backend(canvas)
- }
-}
-
-fn make_canvas_color(color: RGBAColor) -> JsValue {
- let (r, g, b) = color.rgb();
- let a = color.alpha();
- format!("rgba({},{},{},{})", r, g, b, a).into()
-}
-
-impl DrawingBackend for CanvasBackend {
- type ErrorType = CanvasError;
-
- fn get_size(&self) -> (u32, u32) {
- // Getting just canvas.width gives poor results on HighDPI screens.
- let rect = self.canvas.get_bounding_client_rect();
- (rect.width() as u32, rect.height() as u32)
- }
-
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<CanvasError>> {
- Ok(())
- }
-
- fn present(&mut self) -> Result<(), DrawingErrorKind<CanvasError>> {
- Ok(())
- }
-
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- style: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<CanvasError>> {
- if style.alpha() == 0.0 {
- return Ok(());
- }
-
- self.context
- .set_fill_style(&make_canvas_color(style.as_color()));
- self.context
- .fill_rect(f64::from(point.0), f64::from(point.1), 1.0, 1.0);
- Ok(())
- }
-
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: BackendCoord,
- to: BackendCoord,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
-
- self.context
- .set_stroke_style(&make_canvas_color(style.as_color()));
- self.context.set_line_width(style.stroke_width() as f64);
- self.context.begin_path();
- self.context.move_to(f64::from(from.0), f64::from(from.1));
- self.context.line_to(f64::from(to.0), f64::from(to.1));
- self.context.stroke();
- Ok(())
- }
-
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- if fill {
- self.context
- .set_fill_style(&make_canvas_color(style.as_color()));
- self.context.fill_rect(
- f64::from(upper_left.0),
- f64::from(upper_left.1),
- f64::from(bottom_right.0 - upper_left.0),
- f64::from(bottom_right.1 - upper_left.1),
- );
- } else {
- self.context
- .set_stroke_style(&make_canvas_color(style.as_color()));
- self.context.stroke_rect(
- f64::from(upper_left.0),
- f64::from(upper_left.1),
- f64::from(bottom_right.0 - upper_left.0),
- f64::from(bottom_right.1 - upper_left.1),
- );
- }
- Ok(())
- }
-
- fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- let mut path = path.into_iter();
- self.context.begin_path();
- if let Some(start) = path.next() {
- self.context
- .set_stroke_style(&make_canvas_color(style.as_color()));
- self.context.move_to(f64::from(start.0), f64::from(start.1));
- for next in path {
- self.context.line_to(f64::from(next.0), f64::from(next.1));
- }
- }
- self.context.stroke();
- Ok(())
- }
-
- fn fill_polygon<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- let mut path = path.into_iter();
- self.context.begin_path();
- if let Some(start) = path.next() {
- self.context
- .set_fill_style(&make_canvas_color(style.as_color()));
- self.context.move_to(f64::from(start.0), f64::from(start.1));
- for next in path {
- self.context.line_to(f64::from(next.0), f64::from(next.1));
- }
- self.context.close_path();
- }
- self.context.fill();
- Ok(())
- }
-
- fn draw_circle<S: BackendStyle>(
- &mut self,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- if fill {
- self.context
- .set_fill_style(&make_canvas_color(style.as_color()));
- } else {
- self.context
- .set_stroke_style(&make_canvas_color(style.as_color()));
- }
- self.context.begin_path();
- self.context.arc(
- f64::from(center.0),
- f64::from(center.1),
- f64::from(radius),
- 0.0,
- std::f64::consts::PI * 2.0,
- )?;
- if fill {
- self.context.fill();
- } else {
- self.context.stroke();
- }
- Ok(())
- }
-
- fn draw_text(
- &mut self,
- text: &str,
- style: &TextStyle,
- pos: BackendCoord,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let font = &style.font;
- let color = &style.color;
- if color.alpha() == 0.0 {
- return Ok(());
- }
-
- let (mut x, mut y) = (pos.0, pos.1);
-
- let degree = match font.get_transform() {
- FontTransform::None => 0.0,
- FontTransform::Rotate90 => 90.0,
- FontTransform::Rotate180 => 180.0,
- FontTransform::Rotate270 => 270.0,
- } / 180.0
- * std::f64::consts::PI;
-
- if degree != 0.0 {
- self.context.save();
- self.context.translate(f64::from(x), f64::from(y))?;
- self.context.rotate(degree)?;
- x = 0;
- y = 0;
- }
-
- let text_baseline = match style.pos.v_pos {
- VPos::Top => "top",
- VPos::Center => "middle",
- VPos::Bottom => "bottom",
- };
- self.context.set_text_baseline(text_baseline);
-
- let text_align = match style.pos.h_pos {
- HPos::Left => "start",
- HPos::Right => "end",
- HPos::Center => "center",
- };
- self.context.set_text_align(text_align);
-
- self.context
- .set_fill_style(&make_canvas_color(color.clone()));
- self.context.set_font(&format!(
- "{} {}px {}",
- font.get_style().as_str(),
- font.get_size(),
- font.get_name()
- ));
- self.context.fill_text(text, f64::from(x), f64::from(y))?;
-
- if degree != 0.0 {
- self.context.restore();
- }
-
- Ok(())
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
- use crate::element::Circle;
- use crate::prelude::*;
- use crate::style::text_anchor::Pos;
- use wasm_bindgen_test::wasm_bindgen_test_configure;
- use wasm_bindgen_test::*;
- use web_sys::Document;
-
- wasm_bindgen_test_configure!(run_in_browser);
-
- fn create_canvas(document: &Document, id: &str, width: u32, height: u32) -> HtmlCanvasElement {
- let canvas = document
- .create_element("canvas")
- .unwrap()
- .dyn_into::<HtmlCanvasElement>()
- .unwrap();
- let div = document.create_element("div").unwrap();
- div.append_child(&canvas).unwrap();
- document.body().unwrap().append_child(&div).unwrap();
- canvas.set_attribute("id", id).unwrap();
- canvas.set_width(width);
- canvas.set_height(height);
- canvas
- }
-
- fn check_content(document: &Document, id: &str) {
- let canvas = document
- .get_element_by_id(id)
- .unwrap()
- .dyn_into::<HtmlCanvasElement>()
- .unwrap();
- let data_uri = canvas.to_data_url().unwrap();
- let prefix = "data:image/png;base64,";
- assert!(&data_uri.starts_with(prefix));
- }
-
- fn draw_mesh_with_custom_ticks(tick_size: i32, test_name: &str) {
- let document = window().unwrap().document().unwrap();
- let canvas = create_canvas(&document, test_name, 500, 500);
- let backend = CanvasBackend::with_canvas_object(canvas).expect("cannot find canvas");
- let root = backend.into_drawing_area();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("This is a test", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..10, 0..10)
- .unwrap();
-
- chart
- .configure_mesh()
- .set_all_tick_mark_size(tick_size)
- .draw()
- .unwrap();
-
- check_content(&document, test_name);
- }
-
- #[wasm_bindgen_test]
- fn test_draw_mesh_no_ticks() {
- draw_mesh_with_custom_ticks(0, "test_draw_mesh_no_ticks");
- }
-
- #[wasm_bindgen_test]
- fn test_draw_mesh_negative_ticks() {
- draw_mesh_with_custom_ticks(-10, "test_draw_mesh_negative_ticks");
- }
-
- #[wasm_bindgen_test]
- fn test_text_draw() {
- let document = window().unwrap().document().unwrap();
- let canvas = create_canvas(&document, "test_text_draw", 1500, 800);
- let backend = CanvasBackend::with_canvas_object(canvas).expect("cannot find canvas");
- let root = backend.into_drawing_area();
- let root = root
- .titled("Image Title", ("sans-serif", 60).into_font())
- .unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All anchor point positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..100, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .x_desc("X Axis")
- .y_desc("Y Axis")
- .draw()
- .unwrap();
-
- let ((x1, y1), (x2, y2), (x3, y3)) = ((-30, 30), (0, -30), (30, 30));
-
- for (dy, trans) in [
- FontTransform::None,
- FontTransform::Rotate90,
- FontTransform::Rotate180,
- FontTransform::Rotate270,
- ]
- .iter()
- .enumerate()
- {
- for (dx1, h_pos) in [HPos::Left, HPos::Right, HPos::Center].iter().enumerate() {
- for (dx2, v_pos) in [VPos::Top, VPos::Center, VPos::Bottom].iter().enumerate() {
- let x = 150_i32 + (dx1 as i32 * 3 + dx2 as i32) * 150;
- let y = 120 + dy as i32 * 150;
- let draw = |x, y, text| {
- root.draw(&Circle::new((x, y), 3, &BLACK.mix(0.5))).unwrap();
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(*h_pos, *v_pos))
- .transform(trans.clone());
- root.draw_text(text, &style, (x, y)).unwrap();
- };
- draw(x + x1, y + y1, "dood");
- draw(x + x2, y + y2, "dog");
- draw(x + x3, y + y3, "goog");
- }
- }
- }
- check_content(&document, "test_text_draw");
- }
-
- #[wasm_bindgen_test]
- fn test_text_clipping() {
- let (width, height) = (500_i32, 500_i32);
- let document = window().unwrap().document().unwrap();
- let canvas = create_canvas(&document, "test_text_clipping", width as u32, height as u32);
- let backend = CanvasBackend::with_canvas_object(canvas).expect("cannot find canvas");
- let root = backend.into_drawing_area();
-
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(HPos::Center, VPos::Center));
- root.draw_text("TOP LEFT", &style, (0, 0)).unwrap();
- root.draw_text("TOP CENTER", &style, (width / 2, 0))
- .unwrap();
- root.draw_text("TOP RIGHT", &style, (width, 0)).unwrap();
-
- root.draw_text("MIDDLE LEFT", &style, (0, height / 2))
- .unwrap();
- root.draw_text("MIDDLE RIGHT", &style, (width, height / 2))
- .unwrap();
-
- root.draw_text("BOTTOM LEFT", &style, (0, height)).unwrap();
- root.draw_text("BOTTOM CENTER", &style, (width / 2, height))
- .unwrap();
- root.draw_text("BOTTOM RIGHT", &style, (width, height))
- .unwrap();
-
- check_content(&document, "test_text_clipping");
- }
-
- #[wasm_bindgen_test]
- fn test_series_labels() {
- let (width, height) = (500, 500);
- let document = window().unwrap().document().unwrap();
- let canvas = create_canvas(&document, "test_series_labels", width, height);
- let backend = CanvasBackend::with_canvas_object(canvas).expect("cannot find canvas");
- let root = backend.into_drawing_area();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All series label positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..50, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .draw()
- .unwrap();
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 5, &RED)))
- .expect("Drawing error")
- .label("Series 1")
- .legend(|(x, y)| Circle::new((x, y), 3, RED.filled()));
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 10, &BLUE)))
- .expect("Drawing error")
- .label("Series 2")
- .legend(|(x, y)| Circle::new((x, y), 3, BLUE.filled()));
-
- for pos in vec![
- SeriesLabelPosition::UpperLeft,
- SeriesLabelPosition::MiddleLeft,
- SeriesLabelPosition::LowerLeft,
- SeriesLabelPosition::UpperMiddle,
- SeriesLabelPosition::MiddleMiddle,
- SeriesLabelPosition::LowerMiddle,
- SeriesLabelPosition::UpperRight,
- SeriesLabelPosition::MiddleRight,
- SeriesLabelPosition::LowerRight,
- SeriesLabelPosition::Coordinate(70, 70),
- ]
- .into_iter()
- {
- chart
- .configure_series_labels()
- .border_style(&BLACK.mix(0.5))
- .position(pos)
- .draw()
- .expect("Drawing error");
- }
-
- check_content(&document, "test_series_labels");
- }
-
- #[wasm_bindgen_test]
- fn test_draw_pixel_alphas() {
- let (width, height) = (100_i32, 100_i32);
- let document = window().unwrap().document().unwrap();
- let canvas = create_canvas(
- &document,
- "test_draw_pixel_alphas",
- width as u32,
- height as u32,
- );
- let backend = CanvasBackend::with_canvas_object(canvas).expect("cannot find canvas");
- let root = backend.into_drawing_area();
-
- for i in -20..20 {
- let alpha = i as f64 * 0.1;
- root.draw_pixel((50 + i, 50 + i), &BLACK.mix(alpha))
- .unwrap();
- }
-
- check_content(&document, "test_draw_pixel_alphas");
- }
-}
diff --git a/src/drawing/backend_impl/mocked.rs b/src/drawing/backend_impl/mocked.rs
index b416ba9..da6bfec 100644
--- a/src/drawing/backend_impl/mocked.rs
+++ b/src/drawing/backend_impl/mocked.rs
@@ -1,11 +1,20 @@
use crate::coord::Shift;
use crate::drawing::area::IntoDrawingArea;
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
use crate::drawing::DrawingArea;
-use crate::style::{Color, RGBAColor, TextStyle};
+use crate::style::RGBAColor;
+use plotters_backend::{
+ BackendColor, BackendCoord, BackendStyle, BackendTextStyle, DrawingBackend, DrawingErrorKind,
+};
use std::collections::VecDeque;
+pub fn check_color(left: BackendColor, right: RGBAColor) {
+ assert_eq!(
+ RGBAColor(left.rgb.0, left.rgb.1, left.rgb.2, left.alpha),
+ right
+ );
+}
+
pub struct MockedBackend {
height: u32,
width: u32,
@@ -122,11 +131,11 @@ impl DrawingBackend for MockedBackend {
fn draw_pixel(
&mut self,
point: BackendCoord,
- color: &RGBAColor,
+ color: BackendColor,
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_draw_pixel_call += 1;
- let color = color.to_rgba();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_draw_pixel.pop_front() {
checker(color, point);
@@ -145,7 +154,8 @@ impl DrawingBackend for MockedBackend {
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_draw_line_call += 1;
- let color = style.as_color().to_rgba();
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_draw_line.pop_front() {
checker(color, style.stroke_width(), from, to);
@@ -165,7 +175,8 @@ impl DrawingBackend for MockedBackend {
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_draw_rect_call += 1;
- let color = style.as_color().to_rgba();
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_draw_rect.pop_front() {
checker(color, style.stroke_width(), fill, upper_left, bottom_right);
@@ -183,7 +194,8 @@ impl DrawingBackend for MockedBackend {
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_draw_path_call += 1;
- let color = style.as_color().to_rgba();
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_draw_path.pop_front() {
checker(color, style.stroke_width(), path.into_iter().collect());
@@ -203,7 +215,8 @@ impl DrawingBackend for MockedBackend {
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_draw_circle_call += 1;
- let color = style.as_color().to_rgba();
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_draw_circle.pop_front() {
checker(color, style.stroke_width(), fill, center, radius);
@@ -221,7 +234,8 @@ impl DrawingBackend for MockedBackend {
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
self.check_before_draw();
self.num_fill_polygon_call += 1;
- let color = style.as_color().to_rgba();
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
if let Some(mut checker) = self.check_fill_polygon.pop_front() {
checker(color, path.into_iter().collect());
@@ -232,19 +246,18 @@ impl DrawingBackend for MockedBackend {
Ok(())
}
- fn draw_text(
+ fn draw_text<S: BackendTextStyle>(
&mut self,
text: &str,
- style: &TextStyle,
+ style: &S,
pos: BackendCoord,
) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let font = &style.font;
- let color = &style.color;
+ let color = style.color();
+ let color = RGBAColor(color.rgb.0, color.rgb.1, color.rgb.2, color.alpha);
self.check_before_draw();
self.num_draw_text_call += 1;
- let color = color.to_rgba();
if let Some(mut checker) = self.check_draw_text.pop_front() {
- checker(color, font.get_name(), font.get_size(), pos, text);
+ checker(color, style.family().as_str(), style.size(), pos, text);
if self.check_draw_text.is_empty() {
self.check_draw_text.push_back(checker);
diff --git a/src/drawing/backend_impl/mod.rs b/src/drawing/backend_impl/mod.rs
index 719f375..59daa8d 100644
--- a/src/drawing/backend_impl/mod.rs
+++ b/src/drawing/backend_impl/mod.rs
@@ -1,37 +1,7 @@
-#[cfg(feature = "svg")]
-mod svg;
-#[cfg(feature = "svg")]
-pub use self::svg::SVGBackend;
-
-#[cfg(feature = "bitmap")]
-mod bitmap;
-#[cfg(feature = "bitmap")]
-pub use bitmap::BitMapBackend;
-
-#[cfg(feature = "bitmap")]
-pub mod bitmap_pixel {
- pub use super::bitmap::{BGRXPixel, PixelFormat, RGBPixel};
-}
-
-#[cfg(target_arch = "wasm32")]
-mod canvas;
-#[cfg(target_arch = "wasm32")]
-pub use canvas::CanvasBackend;
-
#[cfg(test)]
mod mocked;
#[cfg(test)]
-pub use mocked::{create_mocked_drawing_area, MockedBackend};
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "piston"))]
-mod piston;
-#[cfg(all(not(target_arch = "wasm32"), feature = "piston"))]
-pub use piston::{draw_piston_window, PistonBackend};
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "cairo-rs"))]
-mod cairo;
-#[cfg(all(not(target_arch = "wasm32"), feature = "cairo-rs"))]
-pub use self::cairo::CairoBackend;
+pub use mocked::{check_color, create_mocked_drawing_area, MockedBackend};
/// This is the dummy backend placeholder for the backend that never fails
#[derive(Debug)]
diff --git a/src/drawing/backend_impl/piston.rs b/src/drawing/backend_impl/piston.rs
deleted file mode 100644
index 4a57905..0000000
--- a/src/drawing/backend_impl/piston.rs
+++ /dev/null
@@ -1,206 +0,0 @@
-use piston_window::context::Context;
-use piston_window::ellipse::circle;
-use piston_window::{circle_arc, ellipse, line, rectangle, Event, Loop};
-use piston_window::{G2d, PistonWindow};
-
-use super::DummyBackendError;
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
-use crate::style::{Color, RGBAColor};
-
-pub struct PistonBackend<'a, 'b> {
- size: (u32, u32),
- scale: f64,
- context: Context,
- graphics: &'b mut G2d<'a>,
-}
-
-fn make_piston_rgba(color: &RGBAColor) -> [f32; 4] {
- let (r, g, b) = color.rgb();
- let a = color.alpha();
-
- [
- r as f32 / 255.0,
- g as f32 / 255.0,
- b as f32 / 255.0,
- a as f32,
- ]
-}
-fn make_point_pair(a: BackendCoord, b: BackendCoord, scale: f64) -> [f64; 4] {
- [
- a.0 as f64 * scale,
- a.1 as f64 * scale,
- b.0 as f64 * scale,
- b.1 as f64 * scale,
- ]
-}
-
-impl<'a, 'b> PistonBackend<'a, 'b> {
- pub fn new(size: (u32, u32), scale: f64, context: Context, graphics: &'b mut G2d<'a>) -> Self {
- Self {
- size,
- context,
- graphics,
- scale,
- }
- }
-}
-
-impl<'a, 'b> DrawingBackend for PistonBackend<'a, 'b> {
- type ErrorType = DummyBackendError;
-
- fn get_size(&self) -> (u32, u32) {
- self.size
- }
-
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<DummyBackendError>> {
- Ok(())
- }
-
- fn present(&mut self) -> Result<(), DrawingErrorKind<DummyBackendError>> {
- Ok(())
- }
-
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- color: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- piston_window::rectangle(
- make_piston_rgba(color),
- make_point_pair(point, (1, 1), self.scale),
- self.context.transform,
- self.graphics,
- );
- Ok(())
- }
-
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: BackendCoord,
- to: BackendCoord,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- line(
- make_piston_rgba(&style.as_color()),
- self.scale,
- make_point_pair(from, to, self.scale),
- self.context.transform,
- self.graphics,
- );
- Ok(())
- }
-
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if fill {
- rectangle(
- make_piston_rgba(&style.as_color()),
- make_point_pair(
- upper_left,
- (bottom_right.0 - upper_left.0, bottom_right.1 - upper_left.1),
- self.scale,
- ),
- self.context.transform,
- self.graphics,
- );
- } else {
- let color = make_piston_rgba(&style.as_color());
- let [x0, y0, x1, y1] = make_point_pair(upper_left, bottom_right, self.scale);
- line(
- color,
- self.scale,
- [x0, y0, x0, y1],
- self.context.transform,
- self.graphics,
- );
- line(
- color,
- self.scale,
- [x0, y1, x1, y1],
- self.context.transform,
- self.graphics,
- );
- line(
- color,
- self.scale,
- [x1, y1, x1, y0],
- self.context.transform,
- self.graphics,
- );
- line(
- color,
- self.scale,
- [x1, y0, x0, y0],
- self.context.transform,
- self.graphics,
- );
- }
- Ok(())
- }
-
- fn draw_circle<S: BackendStyle>(
- &mut self,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let rect = circle(center.0 as f64, center.1 as f64, radius as f64);
- if fill {
- ellipse(
- make_piston_rgba(&style.as_color()),
- rect,
- self.context.transform,
- self.graphics,
- );
- } else {
- circle_arc(
- make_piston_rgba(&style.as_color()),
- self.scale,
- std::f64::consts::PI,
- 0.0,
- rect,
- self.context.transform,
- self.graphics,
- );
- circle_arc(
- make_piston_rgba(&style.as_color()),
- self.scale,
- 0.0,
- std::f64::consts::PI,
- rect,
- self.context.transform,
- self.graphics,
- );
- }
- Ok(())
- }
-}
-
-#[allow(clippy::single_match)]
-pub fn draw_piston_window<F: FnOnce(PistonBackend) -> Result<(), Box<dyn std::error::Error>>>(
- window: &mut PistonWindow,
- draw: F,
-) -> Option<Event> {
- if let Some(event) = window.next() {
- window.draw_2d(&event, |c, g, _| match event {
- Event::Loop(Loop::Render(arg)) => {
- draw(PistonBackend::new(
- (arg.draw_size[0], arg.draw_size[1]),
- arg.window_size[0] / arg.draw_size[0] as f64,
- c,
- g,
- ))
- .ok();
- }
- _ => {}
- });
- return Some(event);
- }
- None
-}
diff --git a/src/drawing/backend_impl/svg.rs b/src/drawing/backend_impl/svg.rs
deleted file mode 100644
index 53e49bc..0000000
--- a/src/drawing/backend_impl/svg.rs
+++ /dev/null
@@ -1,832 +0,0 @@
-/*!
-The SVG image drawing backend
-*/
-
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
-use crate::style::text_anchor::{HPos, VPos};
-use crate::style::{Color, FontStyle, FontTransform, RGBAColor, TextStyle};
-
-use std::fs::File;
-#[allow(unused_imports)]
-use std::io::Cursor;
-use std::io::{BufWriter, Error, Write};
-use std::path::Path;
-
-fn make_svg_color<C: Color>(color: &C) -> String {
- let (r, g, b) = color.rgb();
- return format!("#{:02X}{:02X}{:02X}", r, g, b);
-}
-
-fn make_svg_opacity<C: Color>(color: &C) -> String {
- return format!("{}", color.alpha());
-}
-
-enum Target<'a> {
- File(String, &'a Path),
- Buffer(&'a mut String),
- // TODO: At this point we won't make the breaking change
- // so the u8 buffer is still supported. But in 0.3, we definitely
- // should get rid of this.
- #[cfg(feature = "deprecated_items")]
- U8Buffer(String, &'a mut Vec<u8>),
-}
-
-impl Target<'_> {
- fn get_mut(&mut self) -> &mut String {
- match self {
- Target::File(ref mut buf, _) => buf,
- Target::Buffer(buf) => buf,
- #[cfg(feature = "deprecated_items")]
- Target::U8Buffer(ref mut buf, _) => buf,
- }
- }
-}
-
-enum SVGTag {
- SVG,
- Circle,
- Line,
- Polygon,
- Polyline,
- Rectangle,
- Text,
- #[allow(dead_code)]
- Image,
-}
-
-impl SVGTag {
- fn to_tag_name(&self) -> &'static str {
- match self {
- SVGTag::SVG => "svg",
- SVGTag::Circle => "circle",
- SVGTag::Line => "line",
- SVGTag::Polyline => "polyline",
- SVGTag::Rectangle => "rect",
- SVGTag::Text => "text",
- SVGTag::Image => "image",
- SVGTag::Polygon => "polygon",
- }
- }
-}
-
-/// The SVG image drawing backend
-pub struct SVGBackend<'a> {
- target: Target<'a>,
- size: (u32, u32),
- tag_stack: Vec<SVGTag>,
- saved: bool,
-}
-
-impl<'a> SVGBackend<'a> {
- fn escape_and_push(buf: &mut String, value: &str) {
- value.chars().for_each(|c| match c {
- '<' => buf.push_str("&lt;"),
- '>' => buf.push_str("&gt;"),
- '&' => buf.push_str("&amp;"),
- '"' => buf.push_str("&quot;"),
- '\'' => buf.push_str("&apos;"),
- other => buf.push(other),
- });
- }
- fn open_tag(&mut self, tag: SVGTag, attr: &[(&str, &str)], close: bool) {
- let buf = self.target.get_mut();
- buf.push_str("<");
- buf.push_str(tag.to_tag_name());
- for (key, value) in attr {
- buf.push_str(" ");
- buf.push_str(key);
- buf.push_str("=\"");
- Self::escape_and_push(buf, value);
- buf.push_str("\"");
- }
- if close {
- buf.push_str("/>\n");
- } else {
- self.tag_stack.push(tag);
- buf.push_str(">\n");
- }
- }
-
- fn close_tag(&mut self) -> bool {
- if let Some(tag) = self.tag_stack.pop() {
- let buf = self.target.get_mut();
- buf.push_str("</");
- buf.push_str(tag.to_tag_name());
- buf.push_str(">\n");
- return true;
- }
- false
- }
-
- fn init_svg_file(&mut self, size: (u32, u32)) {
- self.open_tag(
- SVGTag::SVG,
- &[
- ("width", &format!("{}", size.0)),
- ("height", &format!("{}", size.1)),
- ("viewBox", &format!("0 0 {} {}", size.0, size.1)),
- ("xmlns", "http://www.w3.org/2000/svg"),
- ],
- false,
- );
- }
-
- /// Create a new SVG drawing backend
- pub fn new<T: AsRef<Path> + ?Sized>(path: &'a T, size: (u32, u32)) -> Self {
- let mut ret = Self {
- target: Target::File(String::default(), path.as_ref()),
- size,
- tag_stack: vec![],
- saved: false,
- };
-
- ret.init_svg_file(size);
- ret
- }
-
- /// Create a new SVG drawing backend and store the document into a u8 vector
- #[cfg(feature = "deprecated_items")]
- #[deprecated(
- note = "This will be replaced by `with_string`, consider use `with_string` to avoid breaking change in the future"
- )]
- pub fn with_buffer(buf: &'a mut Vec<u8>, size: (u32, u32)) -> Self {
- let mut ret = Self {
- target: Target::U8Buffer(String::default(), buf),
- size,
- tag_stack: vec![],
- saved: false,
- };
-
- ret.init_svg_file(size);
-
- ret
- }
-
- /// Create a new SVG drawing backend and store the document into a String buffer
- pub fn with_string(buf: &'a mut String, size: (u32, u32)) -> Self {
- let mut ret = Self {
- target: Target::Buffer(buf),
- size,
- tag_stack: vec![],
- saved: false,
- };
-
- ret.init_svg_file(size);
-
- ret
- }
-}
-
-impl<'a> DrawingBackend for SVGBackend<'a> {
- type ErrorType = Error;
-
- fn get_size(&self) -> (u32, u32) {
- self.size
- }
-
- fn ensure_prepared(&mut self) -> Result<(), DrawingErrorKind<Error>> {
- Ok(())
- }
-
- fn present(&mut self) -> Result<(), DrawingErrorKind<Error>> {
- if !self.saved {
- while self.close_tag() {}
- match self.target {
- Target::File(ref buf, path) => {
- let outfile = File::create(path).map_err(DrawingErrorKind::DrawingError)?;
- let mut outfile = BufWriter::new(outfile);
- outfile
- .write_all(buf.as_ref())
- .map_err(DrawingErrorKind::DrawingError)?;
- }
- Target::Buffer(_) => {}
- #[cfg(feature = "deprecated_items")]
- Target::U8Buffer(ref actual, ref mut target) => {
- target.clear();
- target.extend_from_slice(actual.as_bytes());
- }
- }
- self.saved = true;
- }
- Ok(())
- }
-
- fn draw_pixel(
- &mut self,
- point: BackendCoord,
- color: &RGBAColor,
- ) -> Result<(), DrawingErrorKind<Error>> {
- if color.alpha() == 0.0 {
- return Ok(());
- }
- self.open_tag(
- SVGTag::Rectangle,
- &[
- ("x", &format!("{}", point.0)),
- ("y", &format!("{}", point.1)),
- ("width", "1"),
- ("height", "1"),
- ("stroke", "none"),
- ("opacity", &make_svg_opacity(color)),
- ("fill", &make_svg_color(color)),
- ],
- true,
- );
- Ok(())
- }
-
- fn draw_line<S: BackendStyle>(
- &mut self,
- from: BackendCoord,
- to: BackendCoord,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- self.open_tag(
- SVGTag::Line,
- &[
- ("opacity", &make_svg_opacity(&style.as_color())),
- ("stroke", &make_svg_color(&style.as_color())),
- ("stroke-width", &format!("{}", style.stroke_width())),
- ("x1", &format!("{}", from.0)),
- ("y1", &format!("{}", from.1)),
- ("x2", &format!("{}", to.0)),
- ("y2", &format!("{}", to.1)),
- ],
- true,
- );
- Ok(())
- }
-
- fn draw_rect<S: BackendStyle>(
- &mut self,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
-
- let (fill, stroke) = if !fill {
- ("none".to_string(), make_svg_color(&style.as_color()))
- } else {
- (make_svg_color(&style.as_color()), "none".to_string())
- };
-
- self.open_tag(
- SVGTag::Rectangle,
- &[
- ("x", &format!("{}", upper_left.0)),
- ("y", &format!("{}", upper_left.1)),
- ("width", &format!("{}", bottom_right.0 - upper_left.0)),
- ("height", &format!("{}", bottom_right.1 - upper_left.1)),
- ("opacity", &make_svg_opacity(&style.as_color())),
- ("fill", &fill),
- ("stroke", &stroke),
- ],
- true,
- );
-
- Ok(())
- }
-
- fn draw_path<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- self.open_tag(
- SVGTag::Polyline,
- &[
- ("fill", "none"),
- ("opacity", &make_svg_opacity(&style.as_color())),
- ("stroke", &make_svg_color(&style.as_color())),
- ("stroke-width", &format!("{}", style.stroke_width())),
- (
- "points",
- &path.into_iter().fold(String::new(), |mut s, (x, y)| {
- s.push_str(&format!("{},{} ", x, y));
- s
- }),
- ),
- ],
- true,
- );
- Ok(())
- }
-
- fn fill_polygon<S: BackendStyle, I: IntoIterator<Item = BackendCoord>>(
- &mut self,
- path: I,
- style: &S,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- self.open_tag(
- SVGTag::Polygon,
- &[
- ("opacity", &make_svg_opacity(&style.as_color())),
- ("fill", &make_svg_color(&style.as_color())),
- (
- "points",
- &path.into_iter().fold(String::new(), |mut s, (x, y)| {
- s.push_str(&format!("{},{} ", x, y));
- s
- }),
- ),
- ],
- true,
- );
- Ok(())
- }
-
- fn draw_circle<S: BackendStyle>(
- &mut self,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- let (stroke, fill) = if !fill {
- (make_svg_color(&style.as_color()), "none".to_string())
- } else {
- ("none".to_string(), make_svg_color(&style.as_color()))
- };
- self.open_tag(
- SVGTag::Circle,
- &[
- ("cx", &format!("{}", center.0)),
- ("cy", &format!("{}", center.1)),
- ("r", &format!("{}", radius)),
- ("opacity", &make_svg_opacity(&style.as_color())),
- ("fill", &fill),
- ("stroke", &stroke),
- ],
- true,
- );
- Ok(())
- }
-
- fn draw_text(
- &mut self,
- text: &str,
- style: &TextStyle,
- pos: BackendCoord,
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- let font = &style.font;
- let color = &style.color;
- if color.alpha() == 0.0 {
- return Ok(());
- }
-
- let (x0, y0) = pos;
- let text_anchor = match style.pos.h_pos {
- HPos::Left => "start",
- HPos::Right => "end",
- HPos::Center => "middle",
- };
-
- let dy = match style.pos.v_pos {
- VPos::Top => "0.76em",
- VPos::Center => "0.5ex",
- VPos::Bottom => "-0.5ex",
- };
-
- #[cfg(feature = "debug")]
- {
- let ((fx0, fy0), (fx1, fy1)) =
- font.layout_box(text).map_err(DrawingErrorKind::FontError)?;
- let x0 = match style.pos.h_pos {
- HPos::Left => x0,
- HPos::Center => x0 - fx1 / 2 + fx0 / 2,
- HPos::Right => x0 - fx1 + fx0,
- };
- let y0 = match style.pos.v_pos {
- VPos::Top => y0,
- VPos::Center => y0 - fy1 / 2 + fy0 / 2,
- VPos::Bottom => y0 - fy1 + fy0,
- };
- self.draw_rect(
- (x0, y0),
- (x0 + fx1 - fx0, y0 + fy1 - fy0),
- &crate::prelude::RED,
- false,
- )
- .unwrap();
- self.draw_circle((x0, y0), 2, &crate::prelude::RED, false)
- .unwrap();
- }
-
- let mut attrs = vec![
- ("x", format!("{}", x0)),
- ("y", format!("{}", y0)),
- ("dy", dy.to_owned()),
- ("text-anchor", text_anchor.to_string()),
- ("font-family", font.get_name().to_string()),
- ("font-size", format!("{}", font.get_size() / 1.24)),
- ("opacity", make_svg_opacity(color)),
- ("fill", make_svg_color(color)),
- ];
-
- match font.get_style() {
- FontStyle::Normal => {}
- FontStyle::Bold => attrs.push(("font-weight", "bold".to_string())),
- other_style => attrs.push(("font-style", other_style.as_str().to_string())),
- };
-
- let trans = font.get_transform();
- match trans {
- FontTransform::Rotate90 => {
- attrs.push(("transform", format!("rotate(90, {}, {})", x0, y0)))
- }
- FontTransform::Rotate180 => {
- attrs.push(("transform", format!("rotate(180, {}, {})", x0, y0)));
- }
- FontTransform::Rotate270 => {
- attrs.push(("transform", format!("rotate(270, {}, {})", x0, y0)));
- }
- _ => {}
- }
-
- self.open_tag(
- SVGTag::Text,
- attrs
- .iter()
- .map(|(a, b)| (*a, b.as_ref()))
- .collect::<Vec<_>>()
- .as_ref(),
- false,
- );
-
- Self::escape_and_push(self.target.get_mut(), text);
- self.target.get_mut().push_str("\n");
-
- self.close_tag();
-
- Ok(())
- }
-
- #[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
- fn blit_bitmap<'b>(
- &mut self,
- pos: BackendCoord,
- (w, h): (u32, u32),
- src: &'b [u8],
- ) -> Result<(), DrawingErrorKind<Self::ErrorType>> {
- use image::png::PNGEncoder;
-
- let mut data = vec![0; 0];
-
- {
- let cursor = Cursor::new(&mut data);
-
- let encoder = PNGEncoder::new(cursor);
-
- let color = image::ColorType::Rgb8;
-
- encoder.encode(src, w, h, color).map_err(|e| {
- DrawingErrorKind::DrawingError(Error::new(
- std::io::ErrorKind::Other,
- format!("Image error: {}", e),
- ))
- })?;
- }
-
- let padding = (3 - data.len() % 3) % 3;
- for _ in 0..padding {
- data.push(0);
- }
-
- let mut rem_bits = 0;
- let mut rem_num = 0;
-
- fn cvt_base64(from: u8) -> char {
- (if from < 26 {
- b'A' + from
- } else if from < 52 {
- b'a' + from - 26
- } else if from < 62 {
- b'0' + from - 52
- } else if from == 62 {
- b'+'
- } else {
- b'/'
- })
- .into()
- }
-
- let mut buf = String::new();
- buf.push_str("data:png;base64,");
-
- for byte in data {
- let value = (rem_bits << (6 - rem_num)) | (byte >> (rem_num + 2));
- rem_bits = byte & ((1 << (2 + rem_num)) - 1);
- rem_num += 2;
-
- buf.push(cvt_base64(value));
- if rem_num == 6 {
- buf.push(cvt_base64(rem_bits));
- rem_bits = 0;
- rem_num = 0;
- }
- }
-
- for _ in 0..padding {
- buf.pop();
- buf.push('=');
- }
-
- self.open_tag(
- SVGTag::Image,
- &[
- ("x", &format!("{}", pos.0)),
- ("y", &format!("{}", pos.1)),
- ("width", &format!("{}", w)),
- ("height", &format!("{}", h)),
- ("href", buf.as_str()),
- ],
- true,
- );
-
- Ok(())
- }
-}
-
-impl Drop for SVGBackend<'_> {
- fn drop(&mut self) {
- if !self.saved {
- // drop should not panic, so we ignore a failed present
- let _ = self.present();
- }
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
- use crate::element::Circle;
- use crate::prelude::*;
- use crate::style::text_anchor::{HPos, Pos, VPos};
- use std::fs;
- use std::path::Path;
-
- static DST_DIR: &str = "target/test/svg";
-
- fn checked_save_file(name: &str, content: &str) {
- /*
- Please use the SVG file to manually verify the results.
- */
- assert!(!content.is_empty());
- fs::create_dir_all(DST_DIR).unwrap();
- let file_name = format!("{}.svg", name);
- let file_path = Path::new(DST_DIR).join(file_name);
- println!("{:?} created", file_path);
- fs::write(file_path, &content).unwrap();
- }
-
- fn draw_mesh_with_custom_ticks(tick_size: i32, test_name: &str) {
- let mut content: String = Default::default();
- {
- let root = SVGBackend::with_string(&mut content, (500, 500)).into_drawing_area();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("This is a test", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..10, 0..10)
- .unwrap();
-
- chart
- .configure_mesh()
- .set_all_tick_mark_size(tick_size)
- .draw()
- .unwrap();
- }
-
- checked_save_file(test_name, &content);
-
- assert!(content.contains("This is a test"));
- }
-
- #[test]
- fn test_draw_mesh_no_ticks() {
- draw_mesh_with_custom_ticks(0, "test_draw_mesh_no_ticks");
- }
-
- #[test]
- fn test_draw_mesh_negative_ticks() {
- draw_mesh_with_custom_ticks(-10, "test_draw_mesh_negative_ticks");
- }
-
- #[test]
- fn test_text_alignments() {
- let mut content: String = Default::default();
- {
- let mut root = SVGBackend::with_string(&mut content, (500, 500));
-
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(HPos::Right, VPos::Top));
- root.draw_text("right-align", &style, (150, 50)).unwrap();
-
- let style = style.pos(Pos::new(HPos::Center, VPos::Top));
- root.draw_text("center-align", &style, (150, 150)).unwrap();
-
- let style = style.pos(Pos::new(HPos::Left, VPos::Top));
- root.draw_text("left-align", &style, (150, 200)).unwrap();
- }
-
- checked_save_file("test_text_alignments", &content);
-
- for svg_line in content.split("</text>") {
- if let Some(anchor_and_rest) = svg_line.split("text-anchor=\"").nth(1) {
- if anchor_and_rest.starts_with("end") {
- assert!(anchor_and_rest.contains("right-align"))
- }
- if anchor_and_rest.starts_with("middle") {
- assert!(anchor_and_rest.contains("center-align"))
- }
- if anchor_and_rest.starts_with("start") {
- assert!(anchor_and_rest.contains("left-align"))
- }
- }
- }
- }
-
- #[test]
- fn test_text_draw() {
- let mut content: String = Default::default();
- {
- let root = SVGBackend::with_string(&mut content, (1500, 800)).into_drawing_area();
- let root = root
- .titled("Image Title", ("sans-serif", 60).into_font())
- .unwrap();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All anchor point positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..100, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .x_desc("X Axis")
- .y_desc("Y Axis")
- .draw()
- .unwrap();
-
- let ((x1, y1), (x2, y2), (x3, y3)) = ((-30, 30), (0, -30), (30, 30));
-
- for (dy, trans) in [
- FontTransform::None,
- FontTransform::Rotate90,
- FontTransform::Rotate180,
- FontTransform::Rotate270,
- ]
- .iter()
- .enumerate()
- {
- for (dx1, h_pos) in [HPos::Left, HPos::Right, HPos::Center].iter().enumerate() {
- for (dx2, v_pos) in [VPos::Top, VPos::Center, VPos::Bottom].iter().enumerate() {
- let x = 150_i32 + (dx1 as i32 * 3 + dx2 as i32) * 150;
- let y = 120 + dy as i32 * 150;
- let draw = |x, y, text| {
- root.draw(&Circle::new((x, y), 3, &BLACK.mix(0.5))).unwrap();
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(*h_pos, *v_pos))
- .transform(trans.clone());
- root.draw_text(text, &style, (x, y)).unwrap();
- };
- draw(x + x1, y + y1, "dood");
- draw(x + x2, y + y2, "dog");
- draw(x + x3, y + y3, "goog");
- }
- }
- }
- }
-
- checked_save_file("test_text_draw", &content);
-
- assert_eq!(content.matches("dog").count(), 36);
- assert_eq!(content.matches("dood").count(), 36);
- assert_eq!(content.matches("goog").count(), 36);
- }
-
- #[test]
- fn test_text_clipping() {
- let mut content: String = Default::default();
- {
- let (width, height) = (500_i32, 500_i32);
- let root = SVGBackend::with_string(&mut content, (width as u32, height as u32))
- .into_drawing_area();
-
- let style = TextStyle::from(("sans-serif", 20).into_font())
- .pos(Pos::new(HPos::Center, VPos::Center));
- root.draw_text("TOP LEFT", &style, (0, 0)).unwrap();
- root.draw_text("TOP CENTER", &style, (width / 2, 0))
- .unwrap();
- root.draw_text("TOP RIGHT", &style, (width, 0)).unwrap();
-
- root.draw_text("MIDDLE LEFT", &style, (0, height / 2))
- .unwrap();
- root.draw_text("MIDDLE RIGHT", &style, (width, height / 2))
- .unwrap();
-
- root.draw_text("BOTTOM LEFT", &style, (0, height)).unwrap();
- root.draw_text("BOTTOM CENTER", &style, (width / 2, height))
- .unwrap();
- root.draw_text("BOTTOM RIGHT", &style, (width, height))
- .unwrap();
- }
-
- checked_save_file("test_text_clipping", &content);
- }
-
- #[test]
- fn test_series_labels() {
- let mut content = String::default();
- {
- let (width, height) = (500, 500);
- let root = SVGBackend::with_string(&mut content, (width, height)).into_drawing_area();
-
- let mut chart = ChartBuilder::on(&root)
- .caption("All series label positions", ("sans-serif", 20))
- .set_all_label_area_size(40)
- .build_ranged(0..50, 0..50)
- .unwrap();
-
- chart
- .configure_mesh()
- .disable_x_mesh()
- .disable_y_mesh()
- .draw()
- .unwrap();
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 5, &RED)))
- .expect("Drawing error")
- .label("Series 1")
- .legend(|(x, y)| Circle::new((x, y), 3, RED.filled()));
-
- chart
- .draw_series(std::iter::once(Circle::new((5, 15), 10, &BLUE)))
- .expect("Drawing error")
- .label("Series 2")
- .legend(|(x, y)| Circle::new((x, y), 3, BLUE.filled()));
-
- for pos in vec![
- SeriesLabelPosition::UpperLeft,
- SeriesLabelPosition::MiddleLeft,
- SeriesLabelPosition::LowerLeft,
- SeriesLabelPosition::UpperMiddle,
- SeriesLabelPosition::MiddleMiddle,
- SeriesLabelPosition::LowerMiddle,
- SeriesLabelPosition::UpperRight,
- SeriesLabelPosition::MiddleRight,
- SeriesLabelPosition::LowerRight,
- SeriesLabelPosition::Coordinate(70, 70),
- ]
- .into_iter()
- {
- chart
- .configure_series_labels()
- .border_style(&BLACK.mix(0.5))
- .position(pos)
- .draw()
- .expect("Drawing error");
- }
- }
-
- checked_save_file("test_series_labels", &content);
- }
-
- #[test]
- fn test_draw_pixel_alphas() {
- let mut content = String::default();
- {
- let (width, height) = (100_i32, 100_i32);
- let root = SVGBackend::with_string(&mut content, (width as u32, height as u32))
- .into_drawing_area();
- root.fill(&WHITE).unwrap();
-
- for i in -20..20 {
- let alpha = i as f64 * 0.1;
- root.draw_pixel((50 + i, 50 + i), &BLACK.mix(alpha))
- .unwrap();
- }
- }
-
- checked_save_file("test_draw_pixel_alphas", &content);
- }
-}
diff --git a/src/drawing/mod.rs b/src/drawing/mod.rs
index e2c59bd..af845ea 100644
--- a/src/drawing/mod.rs
+++ b/src/drawing/mod.rs
@@ -1,31 +1,18 @@
/*!
-The drawing utils for Plotter. Which handles the both low-level and high-level
-drawing.
+The drawing utils for Plotters. In Plotters, we have two set of drawing APIs: low-level API and
+high-level API.
-For the low-level drawing abstraction, the module defines the `DrawingBackend` trait,
-which handles low-level drawing of different shapes, such as, pixels, lines, rectangles, etc.
-
-On the top of drawing backend, one or more drawing area can be defined and different coordinate
-system can be applied to the drawing areas. And the drawing area implement the high-level drawing
-interface, which draws an element.
-
-Currently we have following backend implemented:
-
-- `BitMapBackend`: The backend that creates bitmap, this is based on `image` crate
-- `SVGBackend`: The backend that creates SVG image, based on `svg` crate.
-- `PistonBackend`: The backend that uses Piston Window for real time rendering. Disabled by default, use feature `piston` to turn on.
-- `CanvasBackend`: The backend that operates HTML5 Canvas, this is available when `Plotters` is targeting WASM.
+The low-level drawing abstraction, the module defines the `DrawingBackend` trait from the `plotters-backend` create.
+It exposes a set of functions which allows basic shape, such as pixels, lines, rectangles, circles, to be drawn on the screen.
+The low-level API uses the pixel based coordinate.
+The high-level API is built on the top of high-level API. The `DrawingArea` type exposes the high-level drawing API to the remianing part
+of Plotters. The basic drawing blocks are composable elements, which can be defined in logic coordinate. To learn more details
+about the [coordinate abstraction](../coord/index.html) and [element system](../element/index.html).
*/
mod area;
mod backend_impl;
-pub mod rasterizer;
-
-pub mod backend;
-
pub use area::{DrawingArea, DrawingAreaErrorKind, IntoDrawingArea};
pub use backend_impl::*;
-
-pub use backend::DrawingBackend;
diff --git a/src/drawing/rasterizer/circle.rs b/src/drawing/rasterizer/circle.rs
deleted file mode 100644
index d38e00a..0000000
--- a/src/drawing/rasterizer/circle.rs
+++ /dev/null
@@ -1,67 +0,0 @@
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingErrorKind};
-use crate::drawing::DrawingBackend;
-
-use crate::style::Color;
-
-pub fn draw_circle<B: DrawingBackend, S: BackendStyle>(
- b: &mut B,
- center: BackendCoord,
- radius: u32,
- style: &S,
- fill: bool,
-) -> Result<(), DrawingErrorKind<B::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
-
- if !fill && style.stroke_width() != 1 {
- // FIXME: We are currently ignore the stroke width for circles
- }
-
- let min = (f64::from(radius) * (1.0 - (2f64).sqrt() / 2.0)).ceil() as i32;
- let max = (f64::from(radius) * (1.0 + (2f64).sqrt() / 2.0)).floor() as i32;
-
- let range = min..=max;
-
- let (up, down) = (
- range.start() + center.1 - radius as i32,
- range.end() + center.1 - radius as i32,
- );
-
- for dy in range {
- let dy = dy - radius as i32;
- let y = center.1 + dy;
-
- let lx = (f64::from(radius) * f64::from(radius)
- - (f64::from(dy) * f64::from(dy)).max(1e-5))
- .sqrt();
-
- let left = center.0 - lx.floor() as i32;
- let right = center.0 + lx.floor() as i32;
-
- let v = lx - lx.floor();
-
- let x = center.0 + dy;
- let top = center.1 - lx.floor() as i32;
- let bottom = center.1 + lx.floor() as i32;
-
- if fill {
- check_result!(b.draw_line((left, y), (right, y), &style.as_color()));
- check_result!(b.draw_line((x, top), (x, up), &style.as_color()));
- check_result!(b.draw_line((x, down), (x, bottom), &style.as_color()));
- } else {
- check_result!(b.draw_pixel((left, y), &style.as_color().mix(1.0 - v)));
- check_result!(b.draw_pixel((right, y), &style.as_color().mix(1.0 - v)));
-
- check_result!(b.draw_pixel((x, top), &style.as_color().mix(1.0 - v)));
- check_result!(b.draw_pixel((x, bottom), &style.as_color().mix(1.0 - v)));
- }
-
- check_result!(b.draw_pixel((left - 1, y), &style.as_color().mix(v)));
- check_result!(b.draw_pixel((right + 1, y), &style.as_color().mix(v)));
- check_result!(b.draw_pixel((x, top - 1), &style.as_color().mix(v)));
- check_result!(b.draw_pixel((x, bottom + 1), &style.as_color().mix(v)));
- }
-
- Ok(())
-}
diff --git a/src/drawing/rasterizer/line.rs b/src/drawing/rasterizer/line.rs
deleted file mode 100644
index e1f9e5f..0000000
--- a/src/drawing/rasterizer/line.rs
+++ /dev/null
@@ -1,126 +0,0 @@
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingErrorKind};
-use crate::drawing::DrawingBackend;
-
-use crate::style::Color;
-
-pub fn draw_line<DB: DrawingBackend, S: BackendStyle>(
- back: &mut DB,
- mut from: BackendCoord,
- mut to: BackendCoord,
- style: &S,
-) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
-
- if style.stroke_width() != 1 {
- // If the line is wider than 1px, then we need to make it a polygon
- let v = (i64::from(to.0 - from.0), i64::from(to.1 - from.1));
- let l = ((v.0 * v.0 + v.1 * v.1) as f64).sqrt();
-
- if l < 1e-5 {
- return Ok(());
- }
-
- let v = (v.0 as f64 / l, v.1 as f64 / l);
-
- let r = f64::from(style.stroke_width()) / 2.0;
- let mut trans = [(v.1 * r, -v.0 * r), (-v.1 * r, v.0 * r)];
- let mut vertices = vec![];
-
- for point in [from, to].iter() {
- for t in trans.iter() {
- vertices.push((
- (f64::from(point.0) + t.0) as i32,
- (f64::from(point.1) + t.1) as i32,
- ))
- }
-
- trans.swap(0, 1);
- }
-
- return back.fill_polygon(vertices, &style.as_color());
- }
-
- if from.0 == to.0 {
- if from.1 > to.1 {
- std::mem::swap(&mut from, &mut to);
- }
- for y in from.1..=to.1 {
- check_result!(back.draw_pixel((from.0, y), &style.as_color()));
- }
- return Ok(());
- }
-
- if from.1 == to.1 {
- if from.0 > to.0 {
- std::mem::swap(&mut from, &mut to);
- }
- for x in from.0..=to.0 {
- check_result!(back.draw_pixel((x, from.1), &style.as_color()));
- }
- return Ok(());
- }
-
- let steep = (from.0 - to.0).abs() < (from.1 - to.1).abs();
-
- if steep {
- from = (from.1, from.0);
- to = (to.1, to.0);
- }
-
- let (from, to) = if from.0 > to.0 {
- (to, from)
- } else {
- (from, to)
- };
-
- let mut size_limit = back.get_size();
-
- if steep {
- size_limit = (size_limit.1, size_limit.0);
- }
-
- let grad = f64::from(to.1 - from.1) / f64::from(to.0 - from.0);
-
- let mut put_pixel = |(x, y): BackendCoord, b: f64| {
- if steep {
- back.draw_pixel((y, x), &style.as_color().mix(b))
- } else {
- back.draw_pixel((x, y), &style.as_color().mix(b))
- }
- };
-
- let y_step_limit =
- (f64::from(to.1.min(size_limit.1 as i32 - 1).max(0) - from.1) / grad).floor() as i32;
-
- let batch_start = (f64::from(from.1.min(size_limit.1 as i32 - 2).max(0) - from.1) / grad)
- .abs()
- .ceil() as i32
- + from.0;
-
- let batch_limit =
- to.0.min(size_limit.0 as i32 - 2)
- .min(from.0 + y_step_limit - 1);
-
- let mut y = f64::from(from.1) + f64::from(batch_start - from.0) * grad;
-
- for x in batch_start..=batch_limit {
- check_result!(put_pixel((x, y as i32), 1.0 + y.floor() - y));
- check_result!(put_pixel((x, y as i32 + 1), y - y.floor()));
-
- y += grad;
- }
-
- if to.0 > batch_limit && y < f64::from(to.1) {
- let x = batch_limit as i32 + 1;
- if 1.0 + y.floor() - y > 1e-5 {
- check_result!(put_pixel((x, y as i32), 1.0 + y.floor() - y));
- }
- if y - y.floor() > 1e-5 && y + 1.0 < f64::from(to.1) {
- check_result!(put_pixel((x, y as i32 + 1), y - y.floor()));
- }
- }
-
- Ok(())
-}
diff --git a/src/drawing/rasterizer/mod.rs b/src/drawing/rasterizer/mod.rs
deleted file mode 100644
index 1fba804..0000000
--- a/src/drawing/rasterizer/mod.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-// TODO: ? operator is very slow. See issue #58 for details
-macro_rules! check_result {
- ($e:expr) => {
- let result = $e;
- if result.is_err() {
- return result;
- }
- };
-}
-
-mod line;
-pub use line::draw_line;
-
-mod rect;
-pub use rect::draw_rect;
-
-mod circle;
-pub use circle::draw_circle;
-
-mod polygon;
-pub use polygon::fill_polygon;
-
-mod path;
-pub use path::polygonize;
diff --git a/src/drawing/rasterizer/path.rs b/src/drawing/rasterizer/path.rs
deleted file mode 100644
index ff0be10..0000000
--- a/src/drawing/rasterizer/path.rs
+++ /dev/null
@@ -1,115 +0,0 @@
-use crate::drawing::backend::BackendCoord;
-
-fn get_dir_vector(from: BackendCoord, to: BackendCoord, flag: bool) -> ((f64, f64), (f64, f64)) {
- let v = (i64::from(to.0 - from.0), i64::from(to.1 - from.1));
- let l = ((v.0 * v.0 + v.1 * v.1) as f64).sqrt();
-
- let v = (v.0 as f64 / l, v.1 as f64 / l);
-
- if flag {
- (v, (v.1, -v.0))
- } else {
- (v, (-v.1, v.0))
- }
-}
-
-fn compute_polygon_vertex(triple: &[BackendCoord; 3], d: f64) -> BackendCoord {
- let (a_t, a_n) = get_dir_vector(triple[0], triple[1], false);
- let (b_t, b_n) = get_dir_vector(triple[2], triple[1], true);
-
- let a_p = (
- f64::from(triple[1].0) + d * a_n.0,
- f64::from(triple[1].1) + d * a_n.1,
- );
- let b_p = (
- f64::from(triple[1].0) + d * b_n.0,
- f64::from(triple[1].1) + d * b_n.1,
- );
-
- // u * a_t + a_p = v * b_t + b_p
- // u * a_t.0 - v * b_t.0 = b_p.0 - a_p.0
- // u * a_t.1 - v * b_t.1 = b_p.1 - a_p.1
- if a_p.0 as i32 == b_p.0 as i32 && a_p.1 as i32 == b_p.1 as i32 {
- return (a_p.0 as i32, a_p.1 as i32);
- }
-
- let a0 = a_t.0;
- let b0 = -b_t.0;
- let c0 = b_p.0 - a_p.0;
- let a1 = a_t.1;
- let b1 = -b_t.1;
- let c1 = b_p.1 - a_p.1;
-
- // This is the coner case that
- if (a0 * b1 - a1 * b0).abs() < 1e-10 {
- return (a_p.0 as i32, a_p.1 as i32);
- }
-
- let u = (c0 * b1 - c1 * b0) / (a0 * b1 - a1 * b0);
-
- let x = a_p.0 + u * a_t.0;
- let y = a_p.1 + u * a_t.1;
-
- (x.round() as i32, y.round() as i32)
-}
-
-fn traverse_vertices<'a>(
- mut vertices: impl Iterator<Item = &'a BackendCoord>,
- width: u32,
- mut op: impl FnMut(BackendCoord),
-) {
- let mut a = vertices.next().unwrap();
- let mut b = vertices.next().unwrap();
-
- while a == b {
- a = b;
- if let Some(new_b) = vertices.next() {
- b = new_b;
- } else {
- return;
- }
- }
-
- let (_, n) = get_dir_vector(*a, *b, false);
-
- op((
- (f64::from(a.0) + n.0 * f64::from(width) / 2.0).round() as i32,
- (f64::from(a.1) + n.1 * f64::from(width) / 2.0).round() as i32,
- ));
-
- let mut recent = [(0, 0), *a, *b];
-
- for p in vertices {
- if *p == recent[2] {
- continue;
- }
- recent.swap(0, 1);
- recent.swap(1, 2);
- recent[2] = *p;
-
- op(compute_polygon_vertex(&recent, f64::from(width) / 2.0));
- }
-
- let b = recent[1];
- let a = recent[2];
-
- let (_, n) = get_dir_vector(a, b, true);
-
- op((
- (f64::from(a.0) + n.0 * f64::from(width) / 2.0).round() as i32,
- (f64::from(a.1) + n.1 * f64::from(width) / 2.0).round() as i32,
- ));
-}
-
-pub fn polygonize(vertices: &[BackendCoord], stroke_width: u32) -> Vec<BackendCoord> {
- if vertices.len() < 2 {
- return vec![];
- }
-
- let mut ret = vec![];
-
- traverse_vertices(vertices.iter(), stroke_width, |v| ret.push(v));
- traverse_vertices(vertices.iter().rev(), stroke_width, |v| ret.push(v));
-
- ret
-}
diff --git a/src/drawing/rasterizer/polygon.rs b/src/drawing/rasterizer/polygon.rs
deleted file mode 100644
index 169b83a..0000000
--- a/src/drawing/rasterizer/polygon.rs
+++ /dev/null
@@ -1,245 +0,0 @@
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingErrorKind};
-use crate::drawing::DrawingBackend;
-
-use crate::style::Color;
-
-use std::cmp::{Ord, Ordering, PartialOrd};
-
-#[derive(Clone, Debug)]
-struct Edge {
- epoch: u32,
- total_epoch: u32,
- slave_begin: i32,
- slave_end: i32,
-}
-
-impl Edge {
- fn horizontal_sweep(mut from: BackendCoord, mut to: BackendCoord) -> Option<Edge> {
- if from.0 == to.0 {
- return None;
- }
-
- if from.0 > to.0 {
- std::mem::swap(&mut from, &mut to);
- }
-
- Some(Edge {
- epoch: 0,
- total_epoch: (to.0 - from.0) as u32,
- slave_begin: from.1,
- slave_end: to.1,
- })
- }
-
- fn vertical_sweep(from: BackendCoord, to: BackendCoord) -> Option<Edge> {
- Edge::horizontal_sweep((from.1, from.0), (to.1, to.0))
- }
-
- fn get_master_pos(&self) -> i32 {
- (self.total_epoch - self.epoch) as i32
- }
-
- fn inc_epoch(&mut self) {
- self.epoch += 1;
- }
-
- fn get_slave_pos(&self) -> f64 {
- f64::from(self.slave_begin)
- + (i64::from(self.slave_end - self.slave_begin) * i64::from(self.epoch)) as f64
- / f64::from(self.total_epoch)
- }
-}
-
-impl PartialOrd for Edge {
- fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
- self.get_slave_pos().partial_cmp(&other.get_slave_pos())
- }
-}
-
-impl PartialEq for Edge {
- fn eq(&self, other: &Self) -> bool {
- self.get_slave_pos() == other.get_slave_pos()
- }
-}
-
-impl Eq for Edge {}
-
-impl Ord for Edge {
- fn cmp(&self, other: &Self) -> Ordering {
- self.get_slave_pos()
- .partial_cmp(&other.get_slave_pos())
- .unwrap()
- }
-}
-
-pub fn fill_polygon<DB: DrawingBackend, S: BackendStyle>(
- back: &mut DB,
- vertices: &[BackendCoord],
- style: &S,
-) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
- if let Some((x_span, y_span)) =
- vertices
- .iter()
- .fold(None, |res: Option<((i32, i32), (i32, i32))>, (x, y)| {
- Some(
- res.map(|((min_x, max_x), (min_y, max_y))| {
- (
- (min_x.min(*x), max_x.max(*x)),
- (min_y.min(*y), max_y.max(*y)),
- )
- })
- .unwrap_or(((*x, *x), (*y, *y))),
- )
- })
- {
- // First of all, let's handle the case that all the points is in a same vertical or
- // horizontal line
- if x_span.0 == x_span.1 || y_span.0 == y_span.1 {
- return back.draw_line((x_span.0, y_span.0), (x_span.1, y_span.1), style);
- }
-
- let horizontal_sweep = x_span.1 - x_span.0 > y_span.1 - y_span.0;
-
- let mut edges: Vec<_> = vertices
- .iter()
- .zip(vertices.iter().skip(1))
- .map(|(a, b)| (*a, *b))
- .collect();
- edges.push((vertices[vertices.len() - 1], vertices[0]));
- edges.sort_by_key(|((x1, y1), (x2, y2))| {
- if horizontal_sweep {
- *x1.min(x2)
- } else {
- *y1.min(y2)
- }
- });
-
- for edge in &mut edges.iter_mut() {
- if horizontal_sweep {
- if (edge.0).0 > (edge.1).0 {
- std::mem::swap(&mut edge.0, &mut edge.1);
- }
- } else if (edge.0).1 > (edge.1).1 {
- std::mem::swap(&mut edge.0, &mut edge.1);
- }
- }
-
- let (low, high) = if horizontal_sweep { x_span } else { y_span };
-
- let mut idx = 0;
-
- let mut active_edge: Vec<Edge> = vec![];
-
- for sweep_line in low..=high {
- let mut new_vec = vec![];
-
- for mut e in active_edge {
- if e.get_master_pos() > 0 {
- e.inc_epoch();
- new_vec.push(e);
- }
- }
-
- active_edge = new_vec;
-
- loop {
- if idx >= edges.len() {
- break;
- }
- let line = if horizontal_sweep {
- (edges[idx].0).0
- } else {
- (edges[idx].0).1
- };
- if line > sweep_line {
- break;
- }
-
- let edge_obj = if horizontal_sweep {
- Edge::horizontal_sweep(edges[idx].0, edges[idx].1)
- } else {
- Edge::vertical_sweep(edges[idx].0, edges[idx].1)
- };
-
- if let Some(edge_obj) = edge_obj {
- active_edge.push(edge_obj);
- }
-
- idx += 1;
- }
-
- active_edge.sort();
-
- let mut first = None;
- let mut second = None;
-
- for edge in active_edge.iter() {
- if first.is_none() {
- first = Some(edge.clone())
- } else if second.is_none() {
- second = Some(edge.clone())
- }
-
- if let Some(a) = first.clone() {
- if let Some(b) = second.clone() {
- if a.get_master_pos() == 0 && b.get_master_pos() != 0 {
- first = Some(b);
- second = None;
- continue;
- }
-
- if a.get_master_pos() != 0 && b.get_master_pos() == 0 {
- first = Some(a);
- second = None;
- continue;
- }
-
- let from = a.get_slave_pos();
- let to = b.get_slave_pos();
-
- if a.get_master_pos() == 0 && b.get_master_pos() == 0 && to - from > 1.0 {
- first = None;
- second = None;
- continue;
- }
-
- if horizontal_sweep {
- check_result!(back.draw_line(
- (sweep_line, from.ceil() as i32),
- (sweep_line, to.floor() as i32),
- &style.as_color(),
- ));
- check_result!(back.draw_pixel(
- (sweep_line, from.floor() as i32),
- &style.as_color().mix(from.ceil() - from),
- ));
- check_result!(back.draw_pixel(
- (sweep_line, to.ceil() as i32),
- &style.as_color().mix(to - to.floor()),
- ));
- } else {
- check_result!(back.draw_line(
- (from.ceil() as i32, sweep_line),
- (to.floor() as i32, sweep_line),
- &style.as_color(),
- ));
- check_result!(back.draw_pixel(
- (from.floor() as i32, sweep_line),
- &style.as_color().mix(from.ceil() - from),
- ));
- check_result!(back.draw_pixel(
- (to.ceil() as i32, sweep_line),
- &style.as_color().mix(to.floor() - to),
- ));
- }
-
- first = None;
- second = None;
- }
- }
- }
- }
- }
-
- Ok(())
-}
diff --git a/src/drawing/rasterizer/rect.rs b/src/drawing/rasterizer/rect.rs
deleted file mode 100644
index 659fbba..0000000
--- a/src/drawing/rasterizer/rect.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-use crate::drawing::backend::{BackendCoord, BackendStyle, DrawingErrorKind};
-use crate::drawing::DrawingBackend;
-
-use crate::style::Color;
-
-pub fn draw_rect<B: DrawingBackend, S: BackendStyle>(
- b: &mut B,
- upper_left: BackendCoord,
- bottom_right: BackendCoord,
- style: &S,
- fill: bool,
-) -> Result<(), DrawingErrorKind<B::ErrorType>> {
- if style.as_color().alpha() == 0.0 {
- return Ok(());
- }
- let (upper_left, bottom_right) = (
- (
- upper_left.0.min(bottom_right.0),
- upper_left.1.min(bottom_right.1),
- ),
- (
- upper_left.0.max(bottom_right.0),
- upper_left.1.max(bottom_right.1),
- ),
- );
-
- if fill {
- if bottom_right.0 - upper_left.0 < bottom_right.1 - upper_left.1 {
- for x in upper_left.0..=bottom_right.0 {
- check_result!(b.draw_line((x, upper_left.1), (x, bottom_right.1), style));
- }
- } else {
- for y in upper_left.1..=bottom_right.1 {
- check_result!(b.draw_line((upper_left.0, y), (bottom_right.0, y), style));
- }
- }
- } else {
- b.draw_line(
- (upper_left.0, upper_left.1),
- (upper_left.0, bottom_right.1),
- style,
- )?;
- b.draw_line(
- (upper_left.0, upper_left.1),
- (bottom_right.0, upper_left.1),
- style,
- )?;
- b.draw_line(
- (bottom_right.0, bottom_right.1),
- (upper_left.0, bottom_right.1),
- style,
- )?;
- b.draw_line(
- (bottom_right.0, bottom_right.1),
- (bottom_right.0, upper_left.1),
- style,
- )?;
- }
- Ok(())
-}
diff --git a/src/element/basic_shapes.rs b/src/element/basic_shapes.rs
index c0a453f..e0a3548 100644
--- a/src/element/basic_shapes.rs
+++ b/src/element/basic_shapes.rs
@@ -1,6 +1,6 @@
use super::{Drawable, PointCollection};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::style::{ShapeStyle, SizeDesc};
+use plotters_backend::{BackendCoord, BackendStyle, DrawingBackend, DrawingErrorKind};
/// An element of a single pixel
pub struct Pixel<Coord> {
@@ -18,7 +18,7 @@ impl<Coord> Pixel<Coord> {
}
impl<'a, Coord> PointCollection<'a, Coord> for &'a Pixel<Coord> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> Self::IntoIter {
std::iter::once(&self.pos)
@@ -33,7 +33,7 @@ impl<Coord, DB: DrawingBackend> Drawable<DB> for Pixel<Coord> {
_: (u32, u32),
) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
if let Some((x, y)) = points.next() {
- return backend.draw_pixel((x, y), &self.style.color);
+ return backend.draw_pixel((x, y), self.style.color());
}
Ok(())
}
@@ -81,7 +81,7 @@ impl<Coord> PathElement<Coord> {
}
impl<'a, Coord> PointCollection<'a, Coord> for &'a PathElement<Coord> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = &'a [Coord];
fn point_iter(self) -> &'a [Coord] {
&self.points
@@ -153,7 +153,7 @@ impl<Coord> Rectangle<Coord> {
}
impl<'a, Coord> PointCollection<'a, Coord> for &'a Rectangle<Coord> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = &'a [Coord];
fn point_iter(self) -> &'a [Coord] {
&self.points
@@ -200,7 +200,7 @@ fn test_rect_element() {
});
da.draw(&Rectangle::new(
[(100, 101), (105, 107)],
- BLUE.stroke_width(5),
+ Color::stroke_width(&BLUE, 5),
))
.expect("Drawing Failure");
}
@@ -245,7 +245,7 @@ impl<Coord, Size: SizeDesc> Circle<Coord, Size> {
}
impl<'a, Coord, Size: SizeDesc> PointCollection<'a, Coord> for &'a Circle<Coord, Size> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> std::iter::Once<&'a Coord> {
std::iter::once(&self.center)
@@ -306,7 +306,7 @@ impl<Coord> Polygon<Coord> {
}
impl<'a, Coord> PointCollection<'a, Coord> for &'a Polygon<Coord> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = &'a [Coord];
fn point_iter(self) -> &'a [Coord] {
&self.points
diff --git a/src/element/boxplot.rs b/src/element/boxplot.rs
index c8040bc..76679b3 100644
--- a/src/element/boxplot.rs
+++ b/src/element/boxplot.rs
@@ -1,9 +1,9 @@
use std::marker::PhantomData;
use crate::data::Quartiles;
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::element::{Drawable, PointCollection};
use crate::style::{ShapeStyle, BLACK};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
/// The boxplot orientation trait
pub trait BoxplotOrient<K, V> {
@@ -177,11 +177,11 @@ impl<K, O: BoxplotOrient<K, f32>> Boxplot<K, O> {
}
}
-impl<'a, K: 'a + Clone, O: BoxplotOrient<K, f32>> PointCollection<'a, (O::XType, O::YType)>
+impl<'a, K: Clone, O: BoxplotOrient<K, f32>> PointCollection<'a, (O::XType, O::YType)>
for &'a Boxplot<K, O>
{
- type Borrow = (O::XType, O::YType);
- type IntoIter = Vec<Self::Borrow>;
+ type Point = (O::XType, O::YType);
+ type IntoIter = Vec<Self::Point>;
fn point_iter(self) -> Self::IntoIter {
self.values
.iter()
@@ -257,7 +257,7 @@ mod test {
fn test_draw_v() {
let root = MockedBackend::new(1024, 768).into_drawing_area();
let chart = ChartBuilder::on(&root)
- .build_ranged(0..2, 0f32..100f32)
+ .build_cartesian_2d(0..2, 0f32..100f32)
.unwrap();
let values = Quartiles::new(&[6]);
@@ -271,7 +271,7 @@ mod test {
fn test_draw_h() {
let root = MockedBackend::new(1024, 768).into_drawing_area();
let chart = ChartBuilder::on(&root)
- .build_ranged(0f32..100f32, 0..2)
+ .build_cartesian_2d(0f32..100f32, 0..2)
.unwrap();
let values = Quartiles::new(&[6]);
diff --git a/src/element/candlestick.rs b/src/element/candlestick.rs
index b026425..6157cb6 100644
--- a/src/element/candlestick.rs
+++ b/src/element/candlestick.rs
@@ -4,9 +4,9 @@
use std::cmp::Ordering;
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::element::{Drawable, PointCollection};
use crate::style::ShapeStyle;
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
/// The candlestick data point element
pub struct CandleStick<X, Y: PartialOrd> {
@@ -62,7 +62,7 @@ impl<X: Clone, Y: PartialOrd> CandleStick<X, Y> {
}
impl<'a, X: 'a, Y: PartialOrd + 'a> PointCollection<'a, (X, Y)> for &'a CandleStick<X, Y> {
- type Borrow = &'a (X, Y);
+ type Point = &'a (X, Y);
type IntoIter = &'a [(X, Y)];
fn point_iter(self) -> &'a [(X, Y)] {
&self.points
diff --git a/src/element/composable.rs b/src/element/composable.rs
index 95ff380..33b08c9 100644
--- a/src/element/composable.rs
+++ b/src/element/composable.rs
@@ -1,5 +1,5 @@
use super::*;
-use crate::drawing::backend::DrawingBackend;
+use plotters_backend::DrawingBackend;
use std::borrow::Borrow;
use std::iter::{once, Once};
use std::marker::PhantomData;
@@ -36,7 +36,7 @@ where
}
impl<'a, Coord, DB: DrawingBackend> PointCollection<'a, Coord> for &'a EmptyElement<Coord, DB> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = Once<&'a Coord>;
fn point_iter(self) -> Self::IntoIter {
once(&self.coord)
@@ -64,7 +64,7 @@ pub struct BoxedElement<Coord, DB: DrawingBackend, A: Drawable<DB>> {
impl<'b, Coord, DB: DrawingBackend, A: Drawable<DB>> PointCollection<'b, Coord>
for &'b BoxedElement<Coord, DB, A>
{
- type Borrow = &'b Coord;
+ type Point = &'b Coord;
type IntoIter = Once<&'b Coord>;
fn point_iter(self) -> Self::IntoIter {
once(&self.offset)
@@ -132,7 +132,7 @@ where
A: Drawable<DB>,
B: Drawable<DB>,
{
- type Borrow = &'b Coord;
+ type Point = &'b Coord;
type IntoIter = Once<&'b Coord>;
fn point_iter(self) -> Self::IntoIter {
once(&self.offset)
diff --git a/src/element/dynelem.rs b/src/element/dynelem.rs
index d32c06d..b2bd178 100644
--- a/src/element/dynelem.rs
+++ b/src/element/dynelem.rs
@@ -1,5 +1,5 @@
use super::{Drawable, PointCollection};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use std::borrow::Borrow;
@@ -36,7 +36,7 @@ where
impl<'a, 'b: 'a, DB: DrawingBackend, Coord: Clone> PointCollection<'a, Coord>
for &'a DynElement<'b, DB, Coord>
{
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = &'a Vec<Coord>;
fn point_iter(self) -> Self::IntoIter {
&self.points
diff --git a/src/element/errorbar.rs b/src/element/errorbar.rs
index 855cd72..846474e 100644
--- a/src/element/errorbar.rs
+++ b/src/element/errorbar.rs
@@ -1,8 +1,8 @@
use std::marker::PhantomData;
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::element::{Drawable, PointCollection};
use crate::style::ShapeStyle;
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
pub trait ErrorBarOrient<K, V> {
type XType;
@@ -94,11 +94,11 @@ impl<K, V> ErrorBar<K, V, ErrorBarOrientH<K, V>> {
}
}
-impl<'a, K: 'a + Clone, V: 'a + Clone, O: ErrorBarOrient<K, V>>
- PointCollection<'a, (O::XType, O::YType)> for &'a ErrorBar<K, V, O>
+impl<'a, K: Clone, V: Clone, O: ErrorBarOrient<K, V>> PointCollection<'a, (O::XType, O::YType)>
+ for &'a ErrorBar<K, V, O>
{
- type Borrow = (O::XType, O::YType);
- type IntoIter = Vec<Self::Borrow>;
+ type Point = (O::XType, O::YType);
+ type IntoIter = Vec<Self::Point>;
fn point_iter(self) -> Self::IntoIter {
self.values
.iter()
diff --git a/src/element/image.rs b/src/element/image.rs
index 12f3f30..dbddb19 100644
--- a/src/element/image.rs
+++ b/src/element/image.rs
@@ -2,10 +2,15 @@
use image::{DynamicImage, GenericImageView};
use super::{Drawable, PointCollection};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
-use crate::drawing::bitmap_pixel::{PixelFormat, RGBPixel};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
+
+use plotters_bitmap::bitmap_pixel::{PixelFormat, RGBPixel};
+
+#[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
+use plotters_bitmap::bitmap_pixel::BGRXPixel;
+
+use plotters_bitmap::BitMapBackend;
-use crate::drawing::BitMapBackend;
use std::borrow::Borrow;
use std::marker::PhantomData;
@@ -174,9 +179,7 @@ impl<'a, Coord> From<(Coord, DynamicImage)> for BitMapElement<'a, Coord, RGBPixe
}
#[cfg(all(not(target_arch = "wasm32"), feature = "image"))]
-impl<'a, Coord> From<(Coord, DynamicImage)>
- for BitMapElement<'a, Coord, crate::drawing::bitmap_pixel::BGRXPixel>
-{
+impl<'a, Coord> From<(Coord, DynamicImage)> for BitMapElement<'a, Coord, BGRXPixel> {
fn from((pos, image): (Coord, DynamicImage)) -> Self {
let (w, h) = image.dimensions();
let rgb_image = image.to_bgra().into_raw();
@@ -190,7 +193,7 @@ impl<'a, Coord> From<(Coord, DynamicImage)>
}
impl<'a, 'b, Coord> PointCollection<'a, Coord> for &'a BitMapElement<'b, Coord> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> Self::IntoIter {
std::iter::once(&self.pos)
diff --git a/src/element/mod.rs b/src/element/mod.rs
index 99b7a62..4b39ef4 100644
--- a/src/element/mod.rs
+++ b/src/element/mod.rs
@@ -21,7 +21,7 @@
```rust
use std::iter::{Once, once};
use plotters::element::{PointCollection, Drawable};
- use plotters::drawing::backend::{BackendCoord, DrawingErrorKind};
+ use plotters_backend::{BackendCoord, DrawingErrorKind, BackendStyle};
use plotters::style::IntoTextStyle;
use plotters::prelude::*;
@@ -30,7 +30,7 @@
// For any reference to RedX, we can convert it into an iterator of points
impl <'a> PointCollection<'a, (i32, i32)> for &'a RedBoxedX {
- type Borrow = &'a (i32, i32);
+ type Point = &'a (i32, i32);
type IntoIter = Once<&'a (i32, i32)>;
fn point_iter(self) -> Self::IntoIter {
once(&self.0)
@@ -46,10 +46,9 @@
_: (u32, u32),
) -> Result<(), DrawingErrorKind<DB::ErrorType>> {
let pos = pos.next().unwrap();
- let color = RED.to_rgba();
- backend.draw_rect(pos, (pos.0 + 10, pos.1 + 12), &color, false)?;
- let text_style = &("sans-serif", 20).into_text_style(backend).color(&color);
- backend.draw_text("X", &text_style, pos)
+ backend.draw_rect(pos, (pos.0 + 10, pos.1 + 12), &RED, false)?;
+ let text_style = &("sans-serif", 20).into_text_style(&backend.get_size()).color(&RED);
+ backend.draw_text("X", text_style, pos)
}
}
@@ -155,7 +154,7 @@
```
![](https://plotters-rs.github.io/plotters-doc-data/element-3.png)
*/
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use std::borrow::Borrow;
mod basic_shapes;
@@ -185,26 +184,52 @@ mod boxplot;
#[cfg(feature = "boxplot")]
pub use boxplot::Boxplot;
-#[cfg(feature = "bitmap")]
+#[cfg(feature = "bitmap_backend")]
mod image;
-#[cfg(feature = "bitmap")]
+#[cfg(feature = "bitmap_backend")]
pub use self::image::BitMapElement;
mod dynelem;
pub use dynelem::{DynElement, IntoDynElement};
-/// A type which is logically a collection of points, under any given coordinate system
+/// A type which is logically a collection of points, under any given coordinate system.
+/// Note: Ideally, a point collection trait should be any type of which coordinate elements can be
+/// iterated. This is similar to `iter` method of many collection types in std.
+///
+/// ```ignore
+/// trait PointCollection<Coord> {
+/// type PointIter<'a> : Iterator<Item = &'a Coord>;
+/// fn iter(&self) -> PointIter<'a>;
+/// }
+/// ```
+///
+/// However,
+/// [Generic Associated Types](https://github.com/rust-lang/rfcs/blob/master/text/1598-generic_associated_types.md)
+/// is far away from stablize.
+/// So currently we have the following workaround:
+///
+/// Instead of implement the PointCollection trait on the element type itself, it implements on the
+/// reference to the element. By doing so, we now have a well-defined lifetime for the iterator.
+///
+/// In addition, for some element, the coordinate is computed on the fly, thus we can't hard-code
+/// the iterator's return type is `&'a Coord`.
+/// `Borrow` trait seems to strict in this case, since we don't need the order and hash
+/// preservation properties at this point. However, `AsRef` doesn't work with `Coord`
+///
+/// This workaround also leads overly strict lifetime bound on `ChartContext::draw_series`.
+///
+/// TODO: Once GAT is ready on stable Rust, we should simplify the design.
+///
pub trait PointCollection<'a, Coord> {
/// The item in point iterator
- type Borrow: Borrow<Coord>;
+ type Point: Borrow<Coord> + 'a;
/// The point iterator
- type IntoIter: IntoIterator<Item = Self::Borrow>;
+ type IntoIter: IntoIterator<Item = Self::Point>;
/// framework to do the coordinate mapping
fn point_iter(self) -> Self::IntoIter;
}
-
/// The trait indicates we are able to draw it on a drawing area
pub trait Drawable<DB: DrawingBackend> {
/// Actually draws the element. The key points is already translated into the
diff --git a/src/element/points.rs b/src/element/points.rs
index aa07de3..2b5346c 100644
--- a/src/element/points.rs
+++ b/src/element/points.rs
@@ -1,7 +1,7 @@
use super::*;
use super::{Drawable, PointCollection};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::style::{ShapeStyle, SizeDesc};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
/// The element that used to describe a point
pub trait PointElement<Coord, Size: SizeDesc> {
@@ -26,7 +26,7 @@ impl<Coord, Size: SizeDesc> Cross<Coord, Size> {
}
impl<'a, Coord: 'a, Size: SizeDesc> PointCollection<'a, Coord> for &'a Cross<Coord, Size> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> std::iter::Once<&'a Coord> {
std::iter::once(&self.center)
@@ -69,7 +69,7 @@ impl<Coord, Size: SizeDesc> TriangleMarker<Coord, Size> {
}
impl<'a, Coord: 'a, Size: SizeDesc> PointCollection<'a, Coord> for &'a TriangleMarker<Coord, Size> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> std::iter::Once<&'a Coord> {
std::iter::once(&self.center)
diff --git a/src/element/text.rs b/src/element/text.rs
index 3acaac3..ca813c7 100644
--- a/src/element/text.rs
+++ b/src/element/text.rs
@@ -2,8 +2,8 @@ use std::borrow::Borrow;
use std::i32;
use super::{Drawable, PointCollection};
-use crate::drawing::backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
use crate::style::{FontDesc, FontResult, LayoutBox, TextStyle};
+use plotters_backend::{BackendCoord, DrawingBackend, DrawingErrorKind};
/// A single line text element. This can be owned or borrowed string, dependents on
/// `String` or `str` moved into.
@@ -29,7 +29,7 @@ impl<'a, Coord, T: Borrow<str>> Text<'a, Coord, T> {
}
impl<'b, 'a, Coord: 'a, T: Borrow<str> + 'a> PointCollection<'a, Coord> for &'a Text<'b, Coord, T> {
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> Self::IntoIter {
std::iter::once(&self.coord)
@@ -216,7 +216,7 @@ impl<'a, Coord> MultiLineText<'a, Coord, String> {
impl<'b, 'a, Coord: 'a, T: Borrow<str> + 'a> PointCollection<'a, Coord>
for &'a MultiLineText<'b, Coord, T>
{
- type Borrow = &'a Coord;
+ type Point = &'a Coord;
type IntoIter = std::iter::Once<&'a Coord>;
fn point_iter(self) -> Self::IntoIter {
std::iter::once(&self.coord)
diff --git a/src/evcxr.rs b/src/evcxr.rs
index 1a17077..44734b7 100644
--- a/src/evcxr.rs
+++ b/src/evcxr.rs
@@ -1,5 +1,6 @@
use crate::coord::Shift;
-use crate::drawing::{DrawingArea, IntoDrawingArea, SVGBackend};
+use crate::drawing::{DrawingArea, IntoDrawingArea};
+use plotters_svg::SVGBackend;
/// The wrapper for the generated SVG
pub struct SVGWrapper(String, String);
diff --git a/src/lib.rs b/src/lib.rs
index 06c6d6c..590bf89 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -264,7 +264,7 @@ including bitmap, vector graph, piston window, GTK/Cairo and WebAssembly.
To use Plotters, you can simply add Plotters into your `Cargo.toml`
```toml
[dependencies]
-plotters = "^0.2.15"
+plotters = "^0.3.0"
```
And the following code draws a quadratic function. `src/main.rs`,
@@ -484,13 +484,14 @@ For example, we can have an element which includes a dot and its coordinate.
```rust
use plotters::prelude::*;
+use plotters::coord::types::RangedCoordf32;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let root = BitMapBackend::new("plotters-doc-data/4.png", (640, 480)).into_drawing_area();
root.fill(&RGBColor(240, 200, 200))?;
- let root = root.apply_coord_spec(RangedCoord::<RangedCoordf32, RangedCoordf32>::new(
+ let root = root.apply_coord_spec(Cartesian2d::<RangedCoordf32, RangedCoordf32>::new(
0f32..1f32,
0f32..1f32,
(0..640, 0..480),
@@ -536,7 +537,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.x_label_area_size(20)
.y_label_area_size(40)
// Finally attach a coordinate on the drawing area and make a chart context
- .build_ranged(0f32..10f32, 0f32..10f32)?;
+ .build_cartesian_2d(0f32..10f32, 0f32..10f32)?;
// Then we can draw a mesh
chart
@@ -607,15 +608,13 @@ By doing so, you can minimize the number of dependencies down to only `itertools
The following list is a complete list of features that can be opt in and out.
-- Drawing backends related features
+- Tier 1 drawing backends
| Name | Description | Additional Dependency |Default?|
|---------|--------------|--------|------------|
-| image\_encoder | Allow `BitMapBackend` save the result to bitmap files | image, rusttype, font-kit | Yes |
-| svg | Enable `SVGBackend` Support | None | Yes |
-| gif\_backend| Opt-in GIF animation Rendering support for `BitMapBackend`, implies `bitmap` enabled | gif | Yes |
-| piston | Enable `PistonWindowBackend` | piston\_window, rusttype, font-kit | No |
-| cairo | Enable `CairoBackend` | cairo-rs, rusttype, font-kit | No |
+| bitmap\_encoder | Allow `BitMapBackend` save the result to bitmap files | image, rusttype, font-kit | Yes |
+| svg\_backend | Enable `SVGBackend` Support | None | Yes |
+| bitmap\_gif| Opt-in GIF animation Rendering support for `BitMapBackend`, implies `bitmap` enabled | gif | Yes |
- Font manipulation features
@@ -696,24 +695,39 @@ pub mod style;
pub mod evcxr;
#[cfg(test)]
-pub use crate::drawing::create_mocked_drawing_area;
+pub use crate::drawing::{check_color, create_mocked_drawing_area};
#[cfg(feature = "palette_ext")]
pub use palette;
/// The module imports the most commonly used types and modules in Plotters
pub mod prelude {
+ // Chart related types
pub use crate::chart::{ChartBuilder, ChartContext, LabelAreaPosition, SeriesLabelPosition};
+
+ // Coordinates
pub use crate::coord::{
- Category, CoordTranslate, GroupBy, IntoCentric, IntoPartialAxis, LogCoord, LogRange,
- LogScalable, Ranged, RangedCoord, RangedCoordf32, RangedCoordf64, RangedCoordi32,
- RangedCoordi64, RangedCoordu32, RangedCoordu64, ToGroupByRange,
+ cartesian::Cartesian2d,
+ combinators::{
+ make_partial_axis, BindKeyPointMethod, BindKeyPoints, BuildNestedCoord, GroupBy,
+ IntoLinspace, IntoLogRange, IntoPartialAxis, Linspace, LogCoord, LogRange, LogScalable,
+ NestedRange, NestedValue, ToGroupByRange,
+ },
+ ranged1d::{DiscreteRanged, IntoSegmentedCoord, Ranged, SegmentValue},
+ CoordTranslate,
};
#[cfg(feature = "chrono")]
- pub use crate::coord::{make_partial_axis, RangedDate, RangedDateTime, RangedDuration};
+ pub use crate::coord::types::{
+ IntoMonthly, IntoYearly, RangedDate, RangedDateTime, RangedDuration,
+ };
+
+ // Re-export the backend for backward compatibility
+ pub use plotters_backend::DrawingBackend;
pub use crate::drawing::*;
+
+ // Series helpers
#[cfg(feature = "area_series")]
pub use crate::series::AreaSeries;
#[cfg(feature = "histogram")]
@@ -722,14 +736,17 @@ pub mod prelude {
pub use crate::series::LineSeries;
#[cfg(feature = "point_series")]
pub use crate::series::PointSeries;
+ #[cfg(feature = "surface_series")]
+ pub use crate::series::SurfaceSeries;
+ // Styles
pub use crate::style::{
AsRelative, Color, FontDesc, FontFamily, FontStyle, FontTransform, HSLColor, IntoFont,
- Palette, Palette100, Palette99, Palette9999, PaletteColor, RGBColor, ShapeStyle,
- SimpleColor, TextStyle,
+ Palette, Palette100, Palette99, Palette9999, PaletteColor, RGBColor, ShapeStyle, TextStyle,
};
pub use crate::style::{BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, TRANSPARENT, WHITE, YELLOW};
+ // Elements
pub use crate::element::{
Circle, Cross, DynElement, EmptyElement, IntoDynElement, MultiLineText, PathElement, Pixel,
Polygon, Rectangle, Text, TriangleMarker,
@@ -742,9 +759,10 @@ pub mod prelude {
#[cfg(feature = "errorbar")]
pub use crate::element::ErrorBar;
- #[cfg(feature = "bitmap")]
+ #[cfg(feature = "bitmap_backend")]
pub use crate::element::BitMapElement;
+ // Data
pub use crate::data::Quartiles;
// TODO: This should be deprecated and completely removed
@@ -761,4 +779,11 @@ pub mod prelude {
#[cfg(feature = "evcxr")]
pub use crate::evcxr::evcxr_figure;
+
+ // Re-export tier 1 backends for backward compatibility
+ #[cfg(feature = "bitmap_backend")]
+ pub use plotters_bitmap::BitMapBackend;
+
+ #[cfg(feature = "svg_backend")]
+ pub use plotters_svg::SVGBackend;
}
diff --git a/src/series/area_series.rs b/src/series/area_series.rs
index f6dce0c..df601cf 100644
--- a/src/series/area_series.rs
+++ b/src/series/area_series.rs
@@ -1,7 +1,7 @@
-use crate::drawing::DrawingBackend;
use crate::element::{DynElement, IntoDynElement, PathElement, Polygon};
use crate::style::colors::TRANSPARENT;
use crate::style::ShapeStyle;
+use plotters_backend::DrawingBackend;
/// An area series is similar to a line series but use a filled polygon
pub struct AreaSeries<DB: DrawingBackend, X: Clone, Y: Clone> {
diff --git a/src/series/histogram.rs b/src/series/histogram.rs
index 75c2fb2..477e4ad 100644
--- a/src/series/histogram.rs
+++ b/src/series/histogram.rs
@@ -1,13 +1,13 @@
use std::collections::{hash_map::IntoIter as HashMapIter, HashMap};
-use std::hash::Hash;
use std::marker::PhantomData;
use std::ops::AddAssign;
use crate::chart::ChartContext;
-use crate::coord::{DiscreteRanged, Ranged, RangedCoord};
-use crate::drawing::DrawingBackend;
+use crate::coord::cartesian::Cartesian2d;
+use crate::coord::ranged1d::{DiscreteRanged, Ranged};
use crate::element::Rectangle;
use crate::style::{Color, ShapeStyle, GREEN};
+use plotters_backend::DrawingBackend;
pub trait HistogramType {}
pub struct Vertical;
@@ -20,32 +20,30 @@ impl HistogramType for Horizontal {}
pub struct Histogram<'a, BR, A, Tag = Vertical>
where
BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
A: AddAssign<A> + Default,
Tag: HistogramType,
{
style: Box<dyn Fn(&BR::ValueType, &A) -> ShapeStyle + 'a>,
margin: u32,
- iter: HashMapIter<BR::ValueType, A>,
- baseline: Box<dyn Fn(BR::ValueType) -> A + 'a>,
- br_param: BR::RangeParameter,
- _p: PhantomData<(BR, Tag)>,
+ iter: HashMapIter<usize, A>,
+ baseline: Box<dyn Fn(&BR::ValueType) -> A + 'a>,
+ br: BR,
+ _p: PhantomData<Tag>,
}
impl<'a, BR, A, Tag> Histogram<'a, BR, A, Tag>
where
- BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
+ BR: DiscreteRanged + Clone,
A: AddAssign<A> + Default + 'a,
Tag: HistogramType,
{
- fn empty(br_param: BR::RangeParameter) -> Self {
+ fn empty(br: &BR) -> Self {
Self {
style: Box::new(|_, _| GREEN.filled()),
margin: 5,
iter: HashMap::new().into_iter(),
baseline: Box::new(|_| A::default()),
- br_param,
+ br: br.clone(),
_p: PhantomData,
}
}
@@ -75,7 +73,7 @@ where
}
/// Set a function that defines variant baseline
- pub fn baseline_func(mut self, func: impl Fn(BR::ValueType) -> A + 'a) -> Self {
+ pub fn baseline_func(mut self, func: impl Fn(&BR::ValueType) -> A + 'a) -> Self {
self.baseline = Box::new(func);
self
}
@@ -87,68 +85,33 @@ where
}
/// Set the data iterator
- pub fn data<I: IntoIterator<Item = (BR::ValueType, A)>>(mut self, iter: I) -> Self {
- let mut buffer = HashMap::<BR::ValueType, A>::new();
+ pub fn data<TB: Into<BR::ValueType>, I: IntoIterator<Item = (TB, A)>>(
+ mut self,
+ iter: I,
+ ) -> Self {
+ let mut buffer = HashMap::<usize, A>::new();
for (x, y) in iter.into_iter() {
- *buffer.entry(x).or_insert_with(Default::default) += y;
+ if let Some(x) = self.br.index_of(&x.into()) {
+ *buffer.entry(x).or_insert_with(Default::default) += y;
+ }
}
self.iter = buffer.into_iter();
self
}
}
-pub trait UseDefaultParameter: Default {
- fn new() -> Self {
- Default::default()
- }
-}
-
-impl UseDefaultParameter for () {}
-
impl<'a, BR, A> Histogram<'a, BR, A, Vertical>
where
- BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
+ BR: DiscreteRanged + Clone,
A: AddAssign<A> + Default + 'a,
{
- /// Create a new histogram series.
- ///
- /// - `iter`: The data iterator
- /// - `margin`: The margin between bars
- /// - `style`: The style of bars
- ///
- /// Returns the newly created histogram series
- #[allow(clippy::redundant_closure)]
- pub fn new<S: Into<ShapeStyle>, I: IntoIterator<Item = (BR::ValueType, A)>>(
- iter: I,
- margin: u32,
- style: S,
- ) -> Self
- where
- BR::RangeParameter: UseDefaultParameter,
- {
- let mut buffer = HashMap::<BR::ValueType, A>::new();
- for (x, y) in iter.into_iter() {
- *buffer.entry(x).or_insert_with(Default::default) += y;
- }
- let style = style.into();
- Self {
- style: Box::new(move |_, _| style.clone()),
- margin,
- iter: buffer.into_iter(),
- baseline: Box::new(|_| A::default()),
- br_param: BR::RangeParameter::new(),
- _p: PhantomData,
- }
- }
-
pub fn vertical<ACoord, DB: DrawingBackend + 'a>(
- parent: &ChartContext<DB, RangedCoord<BR, ACoord>>,
+ parent: &ChartContext<DB, Cartesian2d<BR, ACoord>>,
) -> Self
where
ACoord: Ranged<ValueType = A>,
{
- let dp = parent.as_coord_spec().x_spec().get_range_parameter();
+ let dp = parent.as_coord_spec().x_spec();
Self::empty(dp)
}
@@ -156,17 +119,16 @@ where
impl<'a, BR, A> Histogram<'a, BR, A, Horizontal>
where
- BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
+ BR: DiscreteRanged + Clone,
A: AddAssign<A> + Default + 'a,
{
pub fn horizontal<ACoord, DB: DrawingBackend>(
- parent: &ChartContext<DB, RangedCoord<ACoord, BR>>,
+ parent: &ChartContext<DB, Cartesian2d<ACoord, BR>>,
) -> Self
where
ACoord: Ranged<ValueType = A>,
{
- let dp = parent.as_coord_spec().y_spec().get_range_parameter();
+ let dp = parent.as_coord_spec().y_spec();
Self::empty(dp)
}
}
@@ -174,18 +136,22 @@ where
impl<'a, BR, A> Iterator for Histogram<'a, BR, A, Vertical>
where
BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
A: AddAssign<A> + Default,
{
type Item = Rectangle<(BR::ValueType, A)>;
fn next(&mut self) -> Option<Self::Item> {
- if let Some((x, y)) = self.iter.next() {
- let nx = BR::next_value(&x, &self.br_param);
- let base = (self.baseline)(BR::previous_value(&nx, &self.br_param));
- let style = (self.style)(&x, &y);
- let mut rect = Rectangle::new([(x, y), (nx, base)], style);
- rect.set_margin(0, 0, self.margin, self.margin);
- return Some(rect);
+ while let Some((x, y)) = self.iter.next() {
+ if let Some((x, Some(nx))) = self
+ .br
+ .from_index(x)
+ .map(|v| (v, self.br.from_index(x + 1)))
+ {
+ let base = (self.baseline)(&x);
+ let style = (self.style)(&x, &y);
+ let mut rect = Rectangle::new([(x, y), (nx, base)], style);
+ rect.set_margin(0, 0, self.margin, self.margin);
+ return Some(rect);
+ }
}
None
}
@@ -194,19 +160,22 @@ where
impl<'a, BR, A> Iterator for Histogram<'a, BR, A, Horizontal>
where
BR: DiscreteRanged,
- BR::ValueType: Eq + Hash,
A: AddAssign<A> + Default,
{
type Item = Rectangle<(A, BR::ValueType)>;
fn next(&mut self) -> Option<Self::Item> {
- if let Some((y, x)) = self.iter.next() {
- let ny = BR::next_value(&y, &self.br_param);
- // With this trick we can avoid the clone trait bound
- let base = (self.baseline)(BR::previous_value(&ny, &self.br_param));
- let style = (self.style)(&y, &x);
- let mut rect = Rectangle::new([(x, y), (base, ny)], style);
- rect.set_margin(self.margin, self.margin, 0, 0);
- return Some(rect);
+ while let Some((y, x)) = self.iter.next() {
+ if let Some((y, Some(ny))) = self
+ .br
+ .from_index(y)
+ .map(|v| (v, self.br.from_index(y + 1)))
+ {
+ let base = (self.baseline)(&y);
+ let style = (self.style)(&y, &x);
+ let mut rect = Rectangle::new([(x, y), (base, ny)], style);
+ rect.set_margin(0, 0, self.margin, self.margin);
+ return Some(rect);
+ }
}
None
}
diff --git a/src/series/line_series.rs b/src/series/line_series.rs
index d3a5971..f1e08e8 100644
--- a/src/series/line_series.rs
+++ b/src/series/line_series.rs
@@ -1,6 +1,6 @@
-use crate::drawing::DrawingBackend;
use crate::element::{Circle, DynElement, IntoDynElement, PathElement};
use crate::style::ShapeStyle;
+use plotters_backend::DrawingBackend;
use std::marker::PhantomData;
/// The line series object, which takes an iterator of points in guest coordinate system
@@ -73,7 +73,7 @@ mod test {
});
let mut chart = ChartBuilder::on(&drawing_area)
- .build_ranged(0..100, 0..100)
+ .build_cartesian_2d(0..100, 0..100)
.expect("Build chart error");
chart
diff --git a/src/series/mod.rs b/src/series/mod.rs
index 103135e..a0c8f19 100644
--- a/src/series/mod.rs
+++ b/src/series/mod.rs
@@ -18,6 +18,8 @@ mod histogram;
mod line_series;
#[cfg(feature = "point_series")]
mod point_series;
+#[cfg(feature = "surface_series")]
+mod surface;
#[cfg(feature = "area_series")]
pub use area_series::AreaSeries;
@@ -27,3 +29,5 @@ pub use histogram::Histogram;
pub use line_series::LineSeries;
#[cfg(feature = "point_series")]
pub use point_series::PointSeries;
+#[cfg(feature = "surface_series")]
+pub use surface::SurfaceSeries;
diff --git a/src/series/surface.rs b/src/series/surface.rs
new file mode 100644
index 0000000..04792dc
--- /dev/null
+++ b/src/series/surface.rs
@@ -0,0 +1,82 @@
+use crate::element::Polygon;
+use crate::style::ShapeStyle;
+/// The surface series.
+///
+/// Currently the surface is representing any surface in form
+/// y = f(x,z)
+///
+/// TODO: make this more general
+pub struct SurfaceSeries<X, Y, Z> {
+ x_data: Vec<X>,
+ y_data: Vec<Y>,
+ z_data: Vec<Z>,
+ style: ShapeStyle,
+ size: usize,
+ state: usize,
+}
+
+impl<X, Y, Z> SurfaceSeries<X, Y, Z> {
+ pub fn new<XS, ZS, YF, S>(xs: XS, zs: ZS, y_func: YF, style: S) -> Self
+ where
+ YF: Fn(&X, &Z) -> Y,
+ XS: Iterator<Item = X>,
+ ZS: Iterator<Item = Z>,
+ S: Into<ShapeStyle>,
+ {
+ let x_data: Vec<_> = xs.collect();
+ let z_data: Vec<_> = zs.collect();
+ let y_data: Vec<_> = x_data
+ .iter()
+ .map(|x| z_data.iter().map(move |z| (x, z)))
+ .flatten()
+ .map(|(x, z)| y_func(x, z))
+ .collect();
+ let size = (x_data.len().max(1) - 1) * (z_data.len().max(1) - 1);
+ Self {
+ x_data,
+ y_data,
+ z_data,
+ style: style.into(),
+ size,
+ state: 0,
+ }
+ }
+
+ fn point_at(&self, x: usize, z: usize) -> (X, Y, Z)
+ where
+ X: Clone,
+ Y: Clone,
+ Z: Clone,
+ {
+ (
+ self.x_data[x].clone(),
+ self.y_data[x * self.z_data.len() + z].clone(),
+ self.z_data[z].clone(),
+ )
+ }
+}
+
+impl<X: Clone, Y: Clone, Z: Clone> Iterator for SurfaceSeries<X, Y, Z> {
+ type Item = Polygon<(X, Y, Z)>;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ if self.size <= self.state {
+ return None;
+ }
+
+ let x = self.state / (self.z_data.len() - 1);
+ let z = self.state % (self.z_data.len() - 1);
+
+ self.state += 1;
+
+ Some(Polygon::new(
+ vec![
+ self.point_at(x, z),
+ self.point_at(x, z + 1),
+ self.point_at(x + 1, z + 1),
+ self.point_at(x + 1, z),
+ ],
+ self.style.clone(),
+ ))
+ }
+}
diff --git a/src/style/color.rs b/src/style/color.rs
index f43f863..d75add3 100644
--- a/src/style/color.rs
+++ b/src/style/color.rs
@@ -1,15 +1,23 @@
use super::palette::Palette;
use super::ShapeStyle;
+use plotters_backend::{BackendColor, BackendStyle};
+
use std::marker::PhantomData;
/// Any color representation
-pub trait Color {
+pub trait Color: BackendStyle {
/// Convert the RGB representation to the standard RGB tuple
- fn rgb(&self) -> (u8, u8, u8);
+ #[inline(always)]
+ fn rgb(&self) -> (u8, u8, u8) {
+ self.color().rgb
+ }
/// Get the alpha channel of the color
- fn alpha(&self) -> f64;
+ #[inline(always)]
+ fn alpha(&self) -> f64 {
+ self.color().alpha
+ }
/// Mix the color with given opacity
fn mix(&self, value: f64) -> RGBAColor {
@@ -45,38 +53,18 @@ pub trait Color {
/// The RGBA representation of the color, Plotters use RGBA as the internal representation
/// of color
#[derive(Clone, PartialEq, Debug)]
-pub struct RGBAColor(pub(super) u8, pub(super) u8, pub(super) u8, pub(super) f64);
+pub struct RGBAColor(pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) f64);
-impl Color for RGBAColor {
+impl BackendStyle for RGBAColor {
#[inline(always)]
- fn rgb(&self) -> (u8, u8, u8) {
- (self.0, self.1, self.2)
- }
-
- #[inline(always)]
- fn alpha(&self) -> f64 {
- self.3
- }
-
- fn to_rgba(&self) -> RGBAColor {
- self.clone()
- }
-}
-
-/// Color without alpha channel
-pub trait SimpleColor {
- fn rgb(&self) -> (u8, u8, u8);
-}
-
-impl<T: SimpleColor> Color for T {
- fn rgb(&self) -> (u8, u8, u8) {
- SimpleColor::rgb(self)
- }
-
- fn alpha(&self) -> f64 {
- 1.0
+ fn color(&self) -> BackendColor {
+ BackendColor {
+ rgb: (self.0, self.1, self.2),
+ alpha: self.3,
+ }
}
}
+impl Color for RGBAColor {}
/// A color in the given palette
pub struct PaletteColor<P: Palette>(usize, PhantomData<P>);
@@ -88,28 +76,41 @@ impl<P: Palette> PaletteColor<P> {
}
}
-impl<P: Palette> SimpleColor for PaletteColor<P> {
- fn rgb(&self) -> (u8, u8, u8) {
- P::COLORS[self.0]
+impl<P: Palette> BackendStyle for PaletteColor<P> {
+ #[inline(always)]
+ fn color(&self) -> BackendColor {
+ BackendColor {
+ rgb: P::COLORS[self.0],
+ alpha: 1.0,
+ }
}
}
+impl<P: Palette> Color for PaletteColor<P> {}
+
/// The color described by its RGB value
#[derive(Debug)]
pub struct RGBColor(pub u8, pub u8, pub u8);
-impl SimpleColor for RGBColor {
- fn rgb(&self) -> (u8, u8, u8) {
- (self.0, self.1, self.2)
+impl BackendStyle for RGBColor {
+ #[inline(always)]
+ fn color(&self) -> BackendColor {
+ BackendColor {
+ rgb: (self.0, self.1, self.2),
+ alpha: 1.0,
+ }
}
}
+impl Color for RGBColor {}
+
/// The color described by HSL color space
pub struct HSLColor(pub f64, pub f64, pub f64);
-impl SimpleColor for HSLColor {
+impl BackendStyle for HSLColor {
+ #[inline(always)]
#[allow(clippy::many_single_char_names)]
- fn rgb(&self) -> (u8, u8, u8) {
+ fn color(&self) -> BackendColor {
let (h, s, l) = (
self.0.min(1.0).max(0.0),
self.1.min(1.0).max(0.0),
@@ -118,7 +119,10 @@ impl SimpleColor for HSLColor {
if s == 0.0 {
let value = (l * 255.0).round() as u8;
- return (value, value, value);
+ return BackendColor {
+ rgb: (value, value, value),
+ alpha: 1.0,
+ };
}
let q = if l < 0.5 {
@@ -147,6 +151,11 @@ impl SimpleColor for HSLColor {
(value * 255.0).round() as u8
};
- (cvt(h + 1.0 / 3.0), cvt(h), cvt(h - 1.0 / 3.0))
+ BackendColor {
+ rgb: (cvt(h + 1.0 / 3.0), cvt(h), cvt(h - 1.0 / 3.0)),
+ alpha: 1.0,
+ }
}
}
+
+impl Color for HSLColor {}
diff --git a/src/style/colors.rs b/src/style/colors.rs
index 4854da8..3b9ce07 100644
--- a/src/style/colors.rs
+++ b/src/style/colors.rs
@@ -22,36 +22,3 @@ predefined_color!(YELLOW, 255, 255, 0, "The predefined yellow color");
predefined_color!(CYAN, 0, 255, 255, "The predefined cyan color");
predefined_color!(MAGENTA, 255, 0, 255, "The predefined magenta color");
predefined_color!(TRANSPARENT, 0, 0, 0, 0.0, "The predefined transparent");
-
-/// Predefined Color definitions using the [palette](https://docs.rs/palette/) color types
-#[cfg(feature = "palette_ext")]
-pub mod palette_ext {
- use palette::rgb::Srgb;
- use palette::Alpha;
-
- use std::marker::PhantomData;
-
- macro_rules! predefined_color_pal {
- ($name:ident, $r:expr, $g:expr, $b:expr, $doc:expr) => {
- #[doc = $doc]
- pub const $name: Srgb<u8> = predefined_color_pal!(@gen_c $r, $g, $b);
- };
- ($name:ident, $r:expr, $g:expr, $b:expr, $a:expr, $doc:expr) => {
- #[doc = $doc]
- pub const $name: Alpha<Srgb<u8>, f64> = Alpha{ alpha: $a, color: predefined_color_pal!(@gen_c $r, $g, $b) };
- };
- (@gen_c $r:expr, $g:expr, $b:expr) => {
- Srgb { red: $r, green: $g, blue: $b, standard: PhantomData }
- };
- }
-
- predefined_color_pal!(WHITE, 255, 255, 255, "The predefined white color");
- predefined_color_pal!(BLACK, 0, 0, 0, "The predefined black color");
- predefined_color_pal!(RED, 255, 0, 0, "The predefined red color");
- predefined_color_pal!(GREEN, 0, 255, 0, "The predefined green color");
- predefined_color_pal!(BLUE, 0, 0, 255, "The predefined blue color");
- predefined_color_pal!(YELLOW, 255, 255, 0, "The predefined yellow color");
- predefined_color_pal!(CYAN, 0, 255, 255, "The predefined cyan color");
- predefined_color_pal!(MAGENTA, 255, 0, 255, "The predefined magenta color");
- predefined_color_pal!(TRANSPARENT, 0, 0, 0, 0.0, "The predefined transparent");
-}
diff --git a/src/style/font/font_desc.rs b/src/style/font/font_desc.rs
index 7caa4e4..20d8b7c 100644
--- a/src/style/font/font_desc.rs
+++ b/src/style/font/font_desc.rs
@@ -4,41 +4,14 @@ use crate::style::{Color, TextStyle};
use std::convert::From;
+pub use plotters_backend::{FontFamily, FontStyle, FontTransform};
+
/// The error type for the font implementation
pub type FontError = <FontDataInternal as FontData>::ErrorType;
/// The type we used to represent a result of any font operations
pub type FontResult<T> = Result<T, FontError>;
-/// Specifying text transformations
-#[derive(Clone)]
-pub enum FontTransform {
- /// Nothing to transform
- None,
- /// Rotating the text 90 degree clockwise
- Rotate90,
- /// Rotating the text 180 degree clockwise
- Rotate180,
- /// Rotating the text 270 degree clockwise
- Rotate270,
-}
-
-impl FontTransform {
- /// Transform the coordinate to perform the rotation
- ///
- /// - `x`: The x coordinate in pixels before transform
- /// - `y`: The y coordinate in pixels before transform
- /// - **returns**: The coordinate after transform
- pub fn transform(&self, x: i32, y: i32) -> (i32, i32) {
- match self {
- FontTransform::None => (x, y),
- FontTransform::Rotate90 => (-y, x),
- FontTransform::Rotate180 => (-x, -y),
- FontTransform::Rotate270 => (y, -x),
- }
- }
-}
-
/// Describes a font
#[derive(Clone)]
pub struct FontDesc<'a> {
@@ -49,82 +22,6 @@ pub struct FontDesc<'a> {
style: FontStyle,
}
-/// Describes font family.
-/// This can be either a specific font family name, such as "arial",
-/// or a general font family class, such as "serif" and "sans-serif"
-#[derive(Clone, Copy)]
-pub enum FontFamily<'a> {
- /// The system default serif font family
- Serif,
- /// The system default sans-serif font family
- SansSerif,
- /// The system default monospace font
- Monospace,
- /// A specific font family name
- Name(&'a str),
-}
-
-impl<'a> FontFamily<'a> {
- /// Make a CSS compatible string for the font family name.
- /// This can be used as the value of `font-family` attribute in SVG.
- pub fn as_str(&self) -> &str {
- match self {
- FontFamily::Serif => "serif",
- FontFamily::SansSerif => "sans-serif",
- FontFamily::Monospace => "monospace",
- FontFamily::Name(face) => face,
- }
- }
-}
-
-impl<'a> From<&'a str> for FontFamily<'a> {
- fn from(from: &'a str) -> FontFamily<'a> {
- match from.to_lowercase().as_str() {
- "serif" => FontFamily::Serif,
- "sans-serif" => FontFamily::SansSerif,
- "monospace" => FontFamily::Monospace,
- _ => FontFamily::Name(from),
- }
- }
-}
-
-/// Describes the font style. Such as Italic, Oblique, etc.
-#[derive(Clone, Copy)]
-pub enum FontStyle {
- /// The normal style
- Normal,
- /// The oblique style
- Oblique,
- /// The italic style
- Italic,
- /// The bold style
- Bold,
-}
-
-impl FontStyle {
- /// Convert the font style into a CSS compatible string which can be used in `font-style` attribute.
- pub fn as_str(&self) -> &str {
- match self {
- FontStyle::Normal => "normal",
- FontStyle::Italic => "italic",
- FontStyle::Oblique => "oblique",
- FontStyle::Bold => "bold",
- }
- }
-}
-
-impl<'a> From<&'a str> for FontStyle {
- fn from(from: &'a str) -> FontStyle {
- match from.to_lowercase().as_str() {
- "normal" => FontStyle::Normal,
- "italic" => FontStyle::Italic,
- "oblique" => FontStyle::Oblique,
- "bold" => FontStyle::Bold,
- _ => FontStyle::Normal,
- }
- }
-}
-
impl<'a> From<&'a str> for FontDesc<'a> {
fn from(from: &'a str) -> FontDesc<'a> {
FontDesc::new(from.into(), 1.0, FontStyle::Normal)
@@ -241,11 +138,15 @@ impl<'a> FontDesc<'a> {
pub fn color<C: Color>(&self, color: &C) -> TextStyle<'a> {
TextStyle {
font: self.clone(),
- color: color.to_rgba(),
+ color: color.color(),
pos: Pos::default(),
}
}
+ pub fn get_family(&self) -> FontFamily {
+ self.family
+ }
+
/// Get the name of the font
pub fn get_name(&self) -> &str {
self.family.as_str()
diff --git a/src/style/mod.rs b/src/style/mod.rs
index 39c171d..635fd10 100644
--- a/src/style/mod.rs
+++ b/src/style/mod.rs
@@ -9,12 +9,9 @@ mod shape;
mod size;
mod text;
-#[cfg(feature = "palette_ext")]
-mod palette_ext;
-
/// Definitions of palettes of accessibility
pub use self::palette::*;
-pub use color::{Color, HSLColor, PaletteColor, RGBAColor, RGBColor, SimpleColor};
+pub use color::{Color, HSLColor, PaletteColor, RGBAColor, RGBColor};
pub use colors::{BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, TRANSPARENT, WHITE, YELLOW};
pub use font::{
FontDesc, FontError, FontFamily, FontResult, FontStyle, FontTransform, IntoFont, LayoutBox,
diff --git a/src/style/palette_ext.rs b/src/style/palette_ext.rs
deleted file mode 100644
index 35e15ff..0000000
--- a/src/style/palette_ext.rs
+++ /dev/null
@@ -1,136 +0,0 @@
-use num_traits::Float;
-
-use palette::encoding::Linear;
-use palette::luma::{Luma, LumaStandard};
-use palette::rgb::RgbStandard;
-use palette::rgb::{Rgb, RgbSpace};
-use palette::white_point::D65;
-use palette::{Alpha, Component, Hsl, Hsv, Hwb, Lab, Lch, LinSrgb, Xyz, Yxy};
-
-use super::color::Color;
-
-impl<S: RgbStandard, T: Component> Color for Rgb<S, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- self.into_format::<u8>().into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<S: LumaStandard, T: Component> Color for Luma<S, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- let (luma,) = self.into_format::<u8>().into_components();
- (luma, luma, luma)
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<S: RgbSpace, T: Component + Float> Color for Hsl<S, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- Rgb::<Linear<S>, T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<S: RgbSpace, T: Component + Float> Color for Hsv<S, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- Rgb::<Linear<S>, T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<S: RgbSpace, T: Component + Float> Color for Hwb<S, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- Rgb::<Linear<S>, T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<T: Component + Float> Color for Lab<D65, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- LinSrgb::<T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<T: Component + Float> Color for Lch<D65, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- LinSrgb::<T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<T: Component + Float> Color for Xyz<D65, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- LinSrgb::<T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<T: Component + Float> Color for Yxy<D65, T> {
- fn rgb(&self) -> (u8, u8, u8) {
- LinSrgb::<T>::from(*self)
- .into_format::<u8>()
- .into_components()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- 1.0
- }
-}
-
-impl<C: Color, T: Component> Color for Alpha<C, T> {
- #[inline]
- fn rgb(&self) -> (u8, u8, u8) {
- self.color.rgb()
- }
-
- #[inline]
- fn alpha(&self) -> f64 {
- self.alpha.convert()
- }
-}
diff --git a/src/style/shape.rs b/src/style/shape.rs
index 4a56a1d..a829f3f 100644
--- a/src/style/shape.rs
+++ b/src/style/shape.rs
@@ -1,4 +1,5 @@
use super::color::{Color, RGBAColor};
+use plotters_backend::{BackendColor, BackendStyle};
/// Style for any of shape
#[derive(Clone)]
@@ -36,3 +37,12 @@ impl<'a, T: Color> From<&'a T> for ShapeStyle {
}
}
}
+
+impl BackendStyle for ShapeStyle {
+ fn color(&self) -> BackendColor {
+ self.color.color()
+ }
+ fn stroke_width(&self) -> u32 {
+ self.stroke_width
+ }
+}
diff --git a/src/style/size.rs b/src/style/size.rs
index 22e436b..500993f 100644
--- a/src/style/size.rs
+++ b/src/style/size.rs
@@ -1,6 +1,6 @@
use crate::coord::CoordTranslate;
use crate::drawing::DrawingArea;
-use crate::drawing::DrawingBackend;
+use plotters_backend::DrawingBackend;
/// The trait indicates that the type has a dimensional data.
/// This is the abstraction for the relative sizing model.
@@ -11,12 +11,6 @@ pub trait HasDimension {
fn dim(&self) -> (u32, u32);
}
-impl<T: DrawingBackend> HasDimension for T {
- fn dim(&self) -> (u32, u32) {
- self.get_size()
- }
-}
-
impl<D: DrawingBackend, C: CoordTranslate> HasDimension for DrawingArea<D, C> {
fn dim(&self) -> (u32, u32) {
self.dim_in_pixel()
diff --git a/src/style/text.rs b/src/style/text.rs
index a609767..d84d5a5 100644
--- a/src/style/text.rs
+++ b/src/style/text.rs
@@ -1,91 +1,9 @@
-use super::color::{Color, RGBAColor};
-use super::font::{FontDesc, FontFamily, FontStyle, FontTransform};
+use super::color::Color;
+use super::font::{FontDesc, FontError, FontFamily, FontStyle, FontTransform};
use super::size::{HasDimension, SizeDesc};
use super::BLACK;
-
-/// Text anchor attributes are used to properly position the text.
-///
-/// # Examples
-///
-/// In the example below, the text anchor (X) position is `Pos::new(HPos::Right, VPos::Center)`.
-/// ```text
-/// ***** X
-/// ```
-/// The position is always relative to the text regardless of its rotation.
-/// In the example below, the text has style
-/// `style.transform(FontTransform::Rotate90).pos(Pos::new(HPos::Center, VPos::Top))`.
-/// ```text
-/// *
-/// *
-/// * X
-/// *
-/// *
-/// ```
-pub mod text_anchor {
- /// The horizontal position of the anchor point relative to the text.
- #[derive(Clone, Copy)]
- pub enum HPos {
- /// Anchor point is on the left side of the text
- Left,
- /// Anchor point is on the right side of the text
- Right,
- /// Anchor point is in the horizontal center of the text
- Center,
- }
-
- /// The vertical position of the anchor point relative to the text.
- #[derive(Clone, Copy)]
- pub enum VPos {
- /// Anchor point is on the top of the text
- Top,
- /// Anchor point is in the vertical center of the text
- Center,
- /// Anchor point is on the bottom of the text
- Bottom,
- }
-
- /// The text anchor position.
- #[derive(Clone, Copy)]
- pub struct Pos {
- /// The horizontal position of the anchor point
- pub h_pos: HPos,
- /// The vertical position of the anchor point
- pub v_pos: VPos,
- }
-
- impl Pos {
- /// Create a new text anchor position.
- ///
- /// - `h_pos`: The horizontal position of the anchor point
- /// - `v_pos`: The vertical position of the anchor point
- /// - **returns** The newly created text anchor position
- ///
- /// ```rust
- /// use plotters::style::text_anchor::{Pos, HPos, VPos};
- ///
- /// let pos = Pos::new(HPos::Left, VPos::Top);
- /// ```
- pub fn new(h_pos: HPos, v_pos: VPos) -> Self {
- Pos { h_pos, v_pos }
- }
-
- /// Create a default text anchor position (top left).
- ///
- /// - **returns** The default text anchor position
- ///
- /// ```rust
- /// use plotters::style::text_anchor::{Pos, HPos, VPos};
- ///
- /// let pos = Pos::default();
- /// ```
- pub fn default() -> Self {
- Pos {
- h_pos: HPos::Left,
- v_pos: VPos::Top,
- }
- }
- }
-}
+pub use plotters_backend::text_anchor;
+use plotters_backend::{BackendColor, BackendCoord, BackendStyle, BackendTextStyle};
/// Style of a text
#[derive(Clone)]
@@ -93,7 +11,7 @@ pub struct TextStyle<'a> {
/// The font description
pub font: FontDesc<'a>,
/// The text color
- pub color: RGBAColor,
+ pub color: BackendColor,
/// The anchor point position
pub pos: text_anchor::Pos,
}
@@ -158,7 +76,7 @@ impl<'a> TextStyle<'a> {
pub fn color<C: Color>(&self, color: &'a C) -> Self {
Self {
font: self.font.clone(),
- color: color.to_rgba(),
+ color: color.color(),
pos: self.pos,
}
}
@@ -176,7 +94,7 @@ impl<'a> TextStyle<'a> {
pub fn transform(&self, trans: FontTransform) -> Self {
Self {
font: self.font.clone().transform(trans),
- color: self.color.clone(),
+ color: self.color,
pos: self.pos,
}
}
@@ -196,7 +114,7 @@ impl<'a> TextStyle<'a> {
pub fn pos(&self, pos: text_anchor::Pos) -> Self {
Self {
font: self.font.clone(),
- color: self.color.clone(),
+ color: self.color,
pos,
}
}
@@ -213,8 +131,53 @@ impl<'a, T: Into<FontDesc<'a>>> From<T> for TextStyle<'a> {
fn from(font: T) -> Self {
Self {
font: font.into(),
- color: BLACK.to_rgba(),
+ color: BLACK.color(),
pos: text_anchor::Pos::default(),
}
}
}
+
+impl<'a> BackendTextStyle for TextStyle<'a> {
+ type FontError = FontError;
+ fn color(&self) -> BackendColor {
+ self.color.color()
+ }
+
+ fn size(&self) -> f64 {
+ self.font.get_size()
+ }
+
+ fn transform(&self) -> FontTransform {
+ self.font.get_transform()
+ }
+
+ fn style(&self) -> FontStyle {
+ self.font.get_style()
+ }
+
+ #[allow(clippy::type_complexity)]
+ fn layout_box(&self, text: &str) -> Result<((i32, i32), (i32, i32)), Self::FontError> {
+ self.font.layout_box(text)
+ }
+
+ fn anchor(&self) -> text_anchor::Pos {
+ self.pos
+ }
+
+ fn family(&self) -> FontFamily {
+ self.font.get_family()
+ }
+
+ fn draw<E, DrawFunc: FnMut(i32, i32, BackendColor) -> Result<(), E>>(
+ &self,
+ text: &str,
+ pos: BackendCoord,
+ mut draw: DrawFunc,
+ ) -> Result<Result<(), E>, Self::FontError> {
+ let color = self.color.color();
+ self.font.draw(text, pos, move |x, y, a| {
+ let mix_color = color.mix(a as f64);
+ draw(x, y, mix_color)
+ })
+ }
+}