Merge branch '2.3.x' of github.com:mapnik/mapnik

Conflicts:
	.travis.yml
	CHANGELOG.md
	bindings/python/build.py
	include/mapnik/feature_style_processor_context.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/json/feature_collection_grammar.hpp
	include/mapnik/json/feature_collection_parser.hpp
	include/mapnik/json/feature_generator_grammar.hpp
	include/mapnik/json/feature_parser.hpp
	include/mapnik/json/geojson_generator.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_parser.hpp
	plugins/input/gdal/gdal_featureset.cpp
	plugins/input/geojson/geojson_datasource.cpp
	plugins/input/occi/occi_featureset.cpp
	plugins/input/osm/osm_featureset.cpp
	plugins/input/postgis/build.py
	plugins/input/postgis/connection.hpp
	src/agg/agg_renderer.cpp
	src/build.py
	src/cairo_context.cpp
	src/datasource_cache.cpp
	src/grid/process_line_symbolizer.cpp
	src/grid/process_polygon_pattern_symbolizer.cpp
	src/grid/process_polygon_symbolizer.cpp
	src/grid/process_text_symbolizer.cpp
	src/json/feature_grammar.cpp
	tests/cpp_tests/fontset_runtime_test.cpp
	tests/visual_tests/images/collision-600-400-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-2.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-2-400-400-1.0-cairo-reference.png
	tests/visual_tests/images/lines-2-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-cairo-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-1.0-agg-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-510-100-2.0-agg-reference.png
	tests/visual_tests/test.py
This commit is contained in:
Dane Springmeyer 2014-04-24 14:50:55 -07:00
commit 39737c5f1d
549 changed files with 2275 additions and 1538 deletions

View file

@ -52,4 +52,3 @@ notifications:
email: email:
on_success: [never] on_success: [never]
on_failure: [change] on_failure: [change]

View file

@ -14,6 +14,12 @@ Released ...
Summary: TODO Summary: TODO
- PostGIS: Added support for rendering 3D and 4D geometries (previously silently skipped) (#44)
- AGG renderer: fixed geometry offsetting to work after smoothing to produce more consistent results (#2202)
- AGG renderer: increased `vertex_dist_epsilon` to ensure nearly coincident points are discarded more readily (#2196)
- GDAL plugin: Added back support for user driven `nodata` on rgb(a) images (#2023) - GDAL plugin: Added back support for user driven `nodata` on rgb(a) images (#2023)
- GDAL plugin: Allowed nodata to override alpha band if set on rgba images (#2023) - GDAL plugin: Allowed nodata to override alpha band if set on rgba images (#2023)

View file

@ -27,7 +27,7 @@ namespace agg
//------------------------------------------------------vertex_dist_epsilon //------------------------------------------------------vertex_dist_epsilon
// Coinciding points maximal distance (Epsilon) // Coinciding points maximal distance (Epsilon)
const double vertex_dist_epsilon = 1e-14; const double vertex_dist_epsilon = 1e-5;
//-----------------------------------------------------intersection_epsilon //-----------------------------------------------------intersection_epsilon
// See calc_intersection // See calc_intersection

View file

@ -46,7 +46,6 @@ template <typename Geometry>
struct MAPNIK_DECL offset_converter struct MAPNIK_DECL offset_converter
{ {
typedef std::size_t size_type; typedef std::size_t size_type;
//typedef typename Geometry::value_type value_type;
offset_converter(Geometry & geom) offset_converter(Geometry & geom)
: geom_(geom) : geom_(geom)
@ -62,10 +61,7 @@ struct MAPNIK_DECL offset_converter
enum status enum status
{ {
initial, initial,
process, process
last_vertex,
angle_joint,
end
}; };
double get_offset() const double get_offset() const
@ -98,19 +94,27 @@ struct MAPNIK_DECL offset_converter
unsigned vertex(double * x, double * y) unsigned vertex(double * x, double * y)
{ {
if (offset_ == 0.0) if (offset_ == 0.0)
{
return geom_.vertex(x, y); return geom_.vertex(x, y);
}
if (status_ == initial) if (status_ == initial)
{
init_vertices(); init_vertices();
}
if (pos_ >= vertices_.size()) if (pos_ >= vertices_.size())
{
return SEG_END; return SEG_END;
}
pre_ = (pos_ ? cur_ : pre_first_); pre_ = (pos_ ? cur_ : pre_first_);
cur_ = vertices_[pos_++]; cur_ = vertices_.at(pos_++);
if (pos_ == vertices_.size()) if (pos_ == vertices_.size())
{
return output_vertex(x, y); return output_vertex(x, y);
}
double const check_dist = offset_ * threshold_; double const check_dist = offset_ * threshold_;
double const check_dist2 = check_dist * check_dist; double const check_dist2 = check_dist * check_dist;
@ -127,13 +131,19 @@ struct MAPNIK_DECL offset_converter
double const dy = u0.y - cur_.y; double const dy = u0.y - cur_.y;
if (dx*dx + dy*dy > check_dist2) if (dx*dx + dy*dy > check_dist2)
{
break; break;
}
if (!intersection(pre_, cur_, &vt, u0, u1, &ut)) if (!intersection(pre_, cur_, &vt, u0, u1, &ut))
{
continue; continue;
}
if (vt < 0.0 || vt > t || ut < 0.0 || ut > 1.0) if (vt < 0.0 || vt > t || ut < 0.0 || ut > 1.0)
{
continue; continue;
}
t = vt; t = vt;
pos_ = i+1; pos_ = i+1;
@ -162,11 +172,17 @@ private:
static double explement_reflex_angle(double angle) static double explement_reflex_angle(double angle)
{ {
if (angle > pi) if (angle > pi)
{
return angle - 2 * pi; return angle - 2 * pi;
}
else if (angle < -pi) else if (angle < -pi)
{
return angle + 2 * pi; return angle + 2 * pi;
}
else else
{
return angle; return angle;
}
} }
static bool intersection(vertex2d const& u1, vertex2d const& u2, double* ut, static bool intersection(vertex2d const& u1, vertex2d const& u2, double* ut,
@ -186,7 +202,9 @@ private:
double const dn = vx * uy - ux * vy; double const dn = vx * uy - ux * vy;
if (dn > -1e-6 && dn < 1e-6) if (dn > -1e-6 && dn < 1e-6)
{
return false; // they are parallel return false; // they are parallel
}
*vt = up / dn; *vt = up / dn;
*ut = (*vt * vx + dx) / ux; *ut = (*vt * vx + dx) / ux;
@ -200,7 +218,9 @@ private:
double const dn = vy * ux - uy * vx; double const dn = vy * ux - uy * vx;
if (dn > -1e-6 && dn < 1e-6) if (dn > -1e-6 && dn < 1e-6)
{
return false; // they are parallel return false; // they are parallel
}
*vt = up / dn; *vt = up / dn;
*ut = (*vt * vy + dy) / uy; *ut = (*vt * vy + dy) / uy;
@ -251,7 +271,9 @@ private:
status init_vertices() status init_vertices()
{ {
if (status_ != initial) // already initialized if (status_ != initial) // already initialized
{
return status_; return status_;
}
vertex2d v1(vertex2d::no_init); vertex2d v1(vertex2d::no_init);
vertex2d v2(vertex2d::no_init); vertex2d v2(vertex2d::no_init);
@ -261,7 +283,9 @@ private:
v2.cmd = geom_.vertex(&v2.x, &v2.y); v2.cmd = geom_.vertex(&v2.x, &v2.y);
if (v2.cmd == SEG_END) // not enough vertices in source if (v2.cmd == SEG_END) // not enough vertices in source
{
return status_ = process; return status_ = process;
}
double angle_a = 0; double angle_a = 0;
double angle_b = std::atan2((v2.y - v1.y), (v2.x - v1.x)); double angle_b = std::atan2((v2.y - v1.y), (v2.x - v1.x));
@ -290,16 +314,24 @@ private:
if (offset_ < 0.0) if (offset_ < 0.0)
{ {
if (joint_angle > 0.0) if (joint_angle > 0.0)
{
joint_angle = joint_angle - 2 * pi; joint_angle = joint_angle - 2 * pi;
}
else else
bulge_steps = 1 + int(std::floor(half_turns / pi)); {
bulge_steps = 1 + static_cast<int>(std::floor(half_turns / pi));
}
} }
else else
{ {
if (joint_angle < 0.0) if (joint_angle < 0.0)
{
joint_angle = joint_angle + 2 * pi; joint_angle = joint_angle + 2 * pi;
}
else else
bulge_steps = 1 + int(floor(half_turns / pi)); {
bulge_steps = 1 + static_cast<int>(std::floor(half_turns / pi));
}
} }
#ifdef MAPNIK_LOG #ifdef MAPNIK_LOG
@ -322,7 +354,7 @@ private:
displace(w, v1, angle_a); displace(w, v1, angle_a);
push_vertex(w); push_vertex(w);
for (int s = 0; ++s < bulge_steps; ) for (int s = 0; ++s < bulge_steps;)
{ {
displace(w, v1, angle_a + (joint_angle * s) / bulge_steps); displace(w, v1, angle_a + (joint_angle * s) / bulge_steps);
push_vertex(w); push_vertex(w);

View file

@ -36,9 +36,6 @@
// boost // boost
// stl
#include <cassert>
extern "C" extern "C"
{ {
#include <png.h> #include <png.h>
@ -542,11 +539,9 @@ void save_as_png8_oct(T1 & file,
std::vector<rgb> pal; std::vector<rgb> pal;
trees[j].setOffset( static_cast<unsigned>(palette.size())); trees[j].setOffset( static_cast<unsigned>(palette.size()));
trees[j].create_palette(pal); trees[j].create_palette(pal);
assert(pal.size() <= opts.colors);
leftovers = cols[j] - static_cast<unsigned>(pal.size()); leftovers = cols[j] - static_cast<unsigned>(pal.size());
cols[j] = static_cast<unsigned>(pal.size()); cols[j] = static_cast<unsigned>(pal.size());
palette.insert(palette.begin(), pal.begin(), pal.end()); palette.insert(palette.begin(), pal.begin(), pal.end());
assert(palette.size() <= 256);
} }
} }
@ -684,7 +679,6 @@ void save_as_png8_hex(T1 & file,
//transparency values per palette index //transparency values per palette index
std::vector<mapnik::rgba> pal; std::vector<mapnik::rgba> pal;
tree.create_palette(pal); tree.create_palette(pal);
assert(int(pal.size()) <= opts.colors);
std::vector<mapnik::rgb> palette; std::vector<mapnik::rgb> palette;
std::vector<unsigned> alphaTable; std::vector<unsigned> alphaTable;
for(unsigned i=0; i<pal.size(); i++) for(unsigned i=0; i<pal.size(); i++)

View file

@ -43,4 +43,4 @@ MAPNIK_DECL std::string dirname(std::string const& value);
#endif #endif

View file

@ -71,4 +71,4 @@ inline void hsl2rgb(double h, double s, double l,
} }
#endif // end MAPNIK_HSL_HPP #endif // end MAPNIK_HSL_HPP

View file

@ -21,6 +21,7 @@
*****************************************************************************/ *****************************************************************************/
// mapnik // mapnik
#include <mapnik/std.hpp>
#include <mapnik/global.hpp> #include <mapnik/global.hpp>
#include <mapnik/debug.hpp> #include <mapnik/debug.hpp>
#include <mapnik/image_data.hpp> #include <mapnik/image_data.hpp>
@ -449,9 +450,9 @@ feature_ptr gdal_featureset::get_feature_at_point(mapnik::coord2d const& pt)
{ {
// construct feature // construct feature
feature_ptr feature = feature_factory::create(ctx_,1); feature_ptr feature = feature_factory::create(ctx_,1);
geometry_type * point = new geometry_type(mapnik::geometry_type::types::Point); std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(pt.x, pt.y); point->move_to(pt.x, pt.y);
feature->add_geometry(point); feature->add_geometry(point.release());
feature->put_new("value",value); feature->put_new("value",value);
if (raster_has_nodata) if (raster_has_nodata)
{ {

View file

@ -259,9 +259,9 @@ void occi_featureset::convert_geometry(SDOGeometry* geom, feature_ptr feature)
SDOPointType* sdopoint = geom->getSdo_point(); SDOPointType* sdopoint = geom->getSdo_point();
if (sdopoint && ! sdopoint->isNull()) if (sdopoint && ! sdopoint->isNull())
{ {
geometry_type* point = new geometry_type(mapnik::geometry_type::types::Point); std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(sdopoint->getX(), sdopoint->getY()); point->move_to(sdopoint->getX(), sdopoint->getY());
feature->add_geometry(point); feature->add_geometry(point.release());
} }
} }
break; break;

View file

@ -165,8 +165,8 @@ void ogr_datasource::init(mapnik::parameters const& params)
int num_layers = dataset_->GetLayerCount(); int num_layers = dataset_->GetLayerCount();
if (*layer_by_index >= num_layers) if (*layer_by_index >= num_layers)
{ {
std::ostringstream s("OGR Plugin: only "); std::ostringstream s;
s << num_layers << " layer(s) exist, cannot find layer by index '" << *layer_by_index << "'"; s << "OGR Plugin: only " << num_layers << " layer(s) exist, cannot find layer by index '" << *layer_by_index << "'";
throw datasource_exception(s.str()); throw datasource_exception(s.str());
} }
@ -214,7 +214,8 @@ void ogr_datasource::init(mapnik::parameters const& params)
if (! layer_.is_valid()) if (! layer_.is_valid())
{ {
std::ostringstream s("OGR Plugin: "); std::ostringstream s;
s << "OGR Plugin: ";
if (layer_by_name) if (layer_by_name)
{ {
@ -452,8 +453,8 @@ void validate_attribute_names(query const& q, std::vector<attribute_descriptor>
if (! found_name) if (! found_name)
{ {
std::ostringstream s("OGR Plugin: no attribute '"); std::ostringstream s;
s << *pos << "'. Valid attributes are: "; s << "OGR Plugin: no attribute named '" << *pos << "'. Valid attributes are: ";
std::vector<attribute_descriptor>::const_iterator e_itr = names.begin(); std::vector<attribute_descriptor>::const_iterator e_itr = names.begin();
std::vector<attribute_descriptor>::const_iterator e_end = names.end(); std::vector<attribute_descriptor>::const_iterator e_end = names.end();
for ( ;e_itr!=e_end;++e_itr) for ( ;e_itr!=e_end;++e_itr)

View file

@ -21,6 +21,7 @@
Import ('plugin_base') Import ('plugin_base')
Import ('env') Import ('env')
from copy import copy
PLUGIN_NAME = 'osm' PLUGIN_NAME = 'osm'
@ -37,9 +38,24 @@ plugin_sources = Split(
""" % locals() """ % locals()
) )
plugin_env['LIBS'] = []
if env['RUNTIME_LINK'] == 'static':
# pkg-config is more reliable than pg_config across platforms
cmd = 'pkg-config libcurl --libs --static'
try:
plugin_env.ParseConfig(cmd)
except OSError, e:
# if this fails likely only system curl is available
# on OS X at least the system curl lacks a pkg-config file
# so static linking is not viable anyway
plugin_env.Append(LIBS='curl')
else:
plugin_env.Append(LIBS='curl')
plugin_env.Append(LIBS='xml2')
# Link Library to Dependencies # Link Library to Dependencies
libraries = [ 'xml2' ] libraries = copy(plugin_env['LIBS'])
libraries.append('curl')
libraries.append(env['ICU_LIB_NAME']) libraries.append(env['ICU_LIB_NAME'])
libraries.append('boost_system%s' % env['BOOST_APPEND']) libraries.append('boost_system%s' % env['BOOST_APPEND'])

View file

@ -22,6 +22,7 @@
*****************************************************************************/ *****************************************************************************/
// mapnik // mapnik
#include <mapnik/std.hpp>
#include <mapnik/geometry.hpp> #include <mapnik/geometry.hpp>
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
#include <mapnik/feature_factory.hpp> #include <mapnik/feature_factory.hpp>
@ -64,9 +65,9 @@ feature_ptr osm_featureset<filterT>::next()
feature = feature_factory::create(ctx_, cur_item->id); feature = feature_factory::create(ctx_, cur_item->id);
double lat = static_cast<osm_node*>(cur_item)->lat; double lat = static_cast<osm_node*>(cur_item)->lat;
double lon = static_cast<osm_node*>(cur_item)->lon; double lon = static_cast<osm_node*>(cur_item)->lon;
geometry_type* point = new geometry_type(mapnik::geometry_type::types::Point); std::unique_ptr<geometry_type> point = std::make_unique<geometry_type>(mapnik::geometry_type::types::Point);
point->move_to(lon, lat); point->move_to(lon, lat);
feature->add_geometry(point); feature->add_geometry(point.release());
} }
else if (dataset_->current_item_is_way()) else if (dataset_->current_item_is_way())
{ {
@ -82,15 +83,12 @@ feature_ptr osm_featureset<filterT>::next()
if (!cur_item) return feature_ptr(); if (!cur_item) return feature_ptr();
feature = feature_factory::create(ctx_, cur_item->id); feature = feature_factory::create(ctx_, cur_item->id);
geometry_type* geom; mapnik::geometry_type::types geom_type = mapnik::geometry_type::types::LineString;
if (static_cast<osm_way*>(cur_item)->is_polygon()) if (static_cast<osm_way*>(cur_item)->is_polygon())
{ {
geom = new geometry_type(mapnik::geometry_type::types::Polygon); geom_type = mapnik::geometry_type::types::Polygon;
}
else
{
geom = new geometry_type(mapnik::geometry_type::types::LineString);
} }
std::unique_ptr<geometry_type> geom = std::make_unique<geometry_type>(geom_type);
geom->move_to(static_cast<osm_way*>(cur_item)->nodes[0]->lon, geom->move_to(static_cast<osm_way*>(cur_item)->nodes[0]->lon,
static_cast<osm_way*>(cur_item)->nodes[0]->lat); static_cast<osm_way*>(cur_item)->nodes[0]->lat);
@ -102,7 +100,7 @@ feature_ptr osm_featureset<filterT>::next()
geom->line_to(static_cast<osm_way*>(cur_item)->nodes[count]->lon, geom->line_to(static_cast<osm_way*>(cur_item)->nodes[count]->lon,
static_cast<osm_way*>(cur_item)->nodes[count]->lat); static_cast<osm_way*>(cur_item)->nodes[count]->lat);
} }
feature->add_geometry(geom); feature->add_geometry(geom.release());
} }
else else
{ {

View file

@ -34,23 +34,21 @@ plugin_sources = Split(
""" % locals() """ % locals()
) )
# Link Library to Dependencies cxxflags = []
plugin_env['LIBS'] = [] plugin_env['LIBS'] = []
libraries = ['pq']
#if env['THREADING'] == 'multi':
# libraries.append('boost_thread%s' % env['BOOST_APPEND'])
if env['RUNTIME_LINK'] == 'static': if env['RUNTIME_LINK'] == 'static':
# pg_config does not seem to report correct deps of libpq # pkg-config is more reliable than pg_config across platforms
# on os x so resort to hardcoding for now cmd = 'pkg-config libpq --libs --static'
if env['PLATFORM'] == 'Darwin': try:
libraries.extend(['ldap', 'pam', 'ssl', 'crypto', 'krb5']) plugin_env.ParseConfig(cmd)
else: except OSError, e:
# TODO - parse back into libraries variable plugin_env.Append(LIBS='pq')
plugin_env.ParseConfig('pg_config --libs') else:
if plugin_env['LIBS']: plugin_env.Append(LIBS='pq')
libraries.extend(copy(plugin_env['LIBS']))
# Link Library to Dependencies
libraries = copy(plugin_env['LIBS'])
if env['PLUGIN_LINKING'] == 'shared': if env['PLUGIN_LINKING'] == 'shared':
libraries.insert(0,'mapnik') libraries.insert(0,'mapnik')

View file

@ -77,32 +77,38 @@ public:
} }
} }
bool execute(std::string const& sql) const bool execute(std::string const& sql)
{ {
#ifdef MAPNIK_STATS #ifdef MAPNIK_STATS
mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute ") + sql); mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute ") + sql);
#endif #endif
PGresult *result = PQexec(conn_, sql.c_str()); if ( ! executeAsyncQuery(sql) ) return false;
PGresult *result = 0;
// fetch multiple times until NULL is returned,
// to handle multi-statement queries
while ( PGresult *tmp = getResult() ) {
if ( result ) PQclear(result);
result = tmp;
}
bool ok = (result && (PQresultStatus(result) == PGRES_COMMAND_OK)); bool ok = (result && (PQresultStatus(result) == PGRES_COMMAND_OK));
if ( result ) PQclear(result); if ( result ) PQclear(result);
return ok; return ok;
} }
std::shared_ptr<ResultSet> executeQuery(std::string const& sql, int type = 0) const std::shared_ptr<ResultSet> executeQuery(std::string const& sql, int type = 0)
{ {
#ifdef MAPNIK_STATS #ifdef MAPNIK_STATS
mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute_query ") + sql); mapnik::progress_timer __stats__(std::clog, std::string("postgis_connection::execute_query ") + sql);
#endif #endif
PGresult* result = 0; PGresult* result = 0;
if (type == 1) if ( executeAsyncQuery(sql, type) ) {
{ // fetch multiple times until NULL is returned,
result = PQexecParams(conn_,sql.c_str(), 0, 0, 0, 0, 0, 1); // to handle multi-statement queries
} while ( PGresult *tmp = getResult() ) {
else if ( result ) PQclear(result);
{ result = tmp;
result = PQexec(conn_, sql.c_str()); }
} }
if (! result || (PQresultStatus(result) != PGRES_TUPLES_OK)) if (! result || (PQresultStatus(result) != PGRES_TUPLES_OK))
@ -112,10 +118,7 @@ public:
err_msg += "\nin executeQuery Full sql was: '"; err_msg += "\nin executeQuery Full sql was: '";
err_msg += sql; err_msg += sql;
err_msg += "'\n"; err_msg += "'\n";
if (result) if ( result ) PQclear(result);
{
PQclear(result);
}
throw mapnik::datasource_exception(err_msg); throw mapnik::datasource_exception(err_msg);
} }
@ -163,10 +166,15 @@ public:
return result; return result;
} }
PGresult* getResult()
{
PGresult *result = PQgetResult(conn_);
return result;
}
std::shared_ptr<ResultSet> getNextAsyncResult() std::shared_ptr<ResultSet> getNextAsyncResult()
{ {
PGresult *result = PQgetResult(conn_); PGresult *result = getResult();
if( result && (PQresultStatus(result) != PGRES_TUPLES_OK)) if( result && (PQresultStatus(result) != PGRES_TUPLES_OK))
{ {
std::string err_msg = "Postgis Plugin: "; std::string err_msg = "Postgis Plugin: ";
@ -183,7 +191,7 @@ public:
std::shared_ptr<ResultSet> getAsyncResult() std::shared_ptr<ResultSet> getAsyncResult()
{ {
PGresult *result = PQgetResult(conn_); PGresult *result = getResult();
if ( !result || (PQresultStatus(result) != PGRES_TUPLES_OK)) if ( !result || (PQresultStatus(result) != PGRES_TUPLES_OK))
{ {
std::string err_msg = "Postgis Plugin: "; std::string err_msg = "Postgis Plugin: ";

View file

@ -1026,8 +1026,7 @@ boost::optional<mapnik::datasource::geometry_t> postgis_datasource::get_geometry
} }
else // geometry else // geometry
{ {
result.reset(mapnik::datasource::Collection); g_type = "";
return result;
} }
} }
} }

View file

@ -241,7 +241,7 @@ void agg_renderer<T>::start_style_processing(feature_type_style const& st)
{ {
int radius = 0; int radius = 0;
mapnik::filter::filter_radius_visitor visitor(radius); mapnik::filter::filter_radius_visitor visitor(radius);
for(mapnik::filter::filter_type const& filter_tag : st.image_filters()) for (mapnik::filter::filter_type const& filter_tag : st.image_filters())
{ {
boost::apply_visitor(visitor, filter_tag); boost::apply_visitor(visitor, filter_tag);
} }

View file

@ -82,8 +82,10 @@ void agg_renderer<T>::process(line_symbolizer const& sym,
typedef agg::pixfmt_custom_blend_rgba<blender_type, agg::rendering_buffer> pixfmt_comp_type; typedef agg::pixfmt_custom_blend_rgba<blender_type, agg::rendering_buffer> pixfmt_comp_type;
typedef agg::renderer_base<pixfmt_comp_type> renderer_base; typedef agg::renderer_base<pixfmt_comp_type> renderer_base;
typedef boost::mpl::vector<clip_line_tag, transform_tag, typedef boost::mpl::vector<clip_line_tag, transform_tag,
offset_transform_tag, affine_transform_tag, affine_transform_tag,
simplify_tag, smooth_tag, dash_tag, stroke_tag> conv_types; simplify_tag, smooth_tag,
offset_transform_tag,
dash_tag, stroke_tag> conv_types;
pixfmt_comp_type pixf(buf); pixfmt_comp_type pixf(buf);
pixf.comp_op(static_cast<agg::comp_op_e>(sym.comp_op())); pixf.comp_op(static_cast<agg::comp_op_e>(sym.comp_op()));

View file

@ -59,7 +59,8 @@ system = 'boost_system%s' % env['BOOST_APPEND']
# clear out and re-set libs for this env # clear out and re-set libs for this env
# note: order matters on linux: see lorder | tsort # note: order matters on linux: see lorder | tsort
lib_env['LIBS'] = [filesystem,regex] lib_env['LIBS'] = [filesystem,
regex]
if env['HAS_CAIRO']: if env['HAS_CAIRO']:
lib_env.Append(LIBS=env['CAIRO_ALL_LIBS']) lib_env.Append(LIBS=env['CAIRO_ALL_LIBS'])

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(HAVE_CAIRO)
#include <mapnik/cairo_context.hpp> #include <mapnik/cairo_context.hpp>
#include <mapnik/text/face.hpp> #include <mapnik/text/face.hpp>
#include <mapnik/text/text_properties.hpp> #include <mapnik/text/text_properties.hpp>
@ -480,3 +482,4 @@ void cairo_context::add_text(glyph_positions_ptr pos,
} }
} //ns mapnik } //ns mapnik
#endif

View file

@ -450,8 +450,10 @@ void cairo_renderer_base::process(line_symbolizer const& sym,
proj_transform const& prj_trans) proj_transform const& prj_trans)
{ {
typedef boost::mpl::vector<clip_line_tag, transform_tag, typedef boost::mpl::vector<clip_line_tag, transform_tag,
offset_transform_tag, affine_transform_tag, affine_transform_tag,
simplify_tag, smooth_tag, dash_tag, stroke_tag> conv_types; simplify_tag, smooth_tag,
offset_transform_tag,
dash_tag, stroke_tag> conv_types;
cairo_save_restore guard(context_); cairo_save_restore guard(context_);
mapnik::stroke const& stroke_ = sym.get_stroke(); mapnik::stroke const& stroke_ = sym.get_stroke();
context_.set_operator(sym.comp_op()); context_.set_operator(sym.comp_op());

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/grid/grid.hpp> #include <mapnik/grid/grid.hpp>
#include <mapnik/debug.hpp> #include <mapnik/debug.hpp>
@ -146,3 +148,5 @@ void hit_grid<T>::add_feature(mapnik::feature_impl & feature)
template class hit_grid<mapnik::value_integer>; template class hit_grid<mapnik::value_integer>;
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/grid/grid_rasterizer.hpp> #include <mapnik/grid/grid_rasterizer.hpp>
#include <mapnik/grid/grid_renderer.hpp> #include <mapnik/grid/grid_renderer.hpp>
@ -212,3 +214,5 @@ void grid_renderer<T>::render_marker(mapnik::feature_impl & feature, unsigned in
template class grid_renderer<grid>; template class grid_renderer<grid>;
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/std.hpp> #include <mapnik/std.hpp>
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
@ -165,3 +167,5 @@ template void grid_renderer<grid>::process(building_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp> #include <mapnik/grid/grid_rasterizer.hpp>
@ -136,3 +138,6 @@ template void grid_renderer<grid>::process(line_pattern_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp> #include <mapnik/grid/grid_rasterizer.hpp>
@ -120,3 +122,5 @@ template void grid_renderer<grid>::process(line_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
/* /*
porting notes --> porting notes -->
@ -257,3 +259,5 @@ template void grid_renderer<grid>::process(markers_symbolizer const&,
mapnik::feature_impl &, mapnik::feature_impl &,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
#include <mapnik/grid/grid_rasterizer.hpp> #include <mapnik/grid/grid_rasterizer.hpp>
@ -119,3 +121,5 @@ template void grid_renderer<grid>::process(point_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// boost // boost
@ -114,3 +116,6 @@ template void grid_renderer<grid>::process(polygon_pattern_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// boost // boost
@ -99,3 +101,5 @@ template void grid_renderer<grid>::process(polygon_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/feature.hpp> #include <mapnik/feature.hpp>
#include <mapnik/debug.hpp> #include <mapnik/debug.hpp>
@ -41,3 +43,5 @@ template void grid_renderer<grid>::process(raster_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -21,6 +21,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/grid/grid_renderer.hpp> #include <mapnik/grid/grid_renderer.hpp>
#include <mapnik/text/symbolizer_helpers.hpp> #include <mapnik/text/symbolizer_helpers.hpp>
@ -65,3 +67,5 @@ template void grid_renderer<grid>::process(shield_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(GRID_RENDERER)
// mapnik // mapnik
#include <mapnik/grid/grid_renderer.hpp> #include <mapnik/grid/grid_renderer.hpp>
#include <mapnik/text/symbolizer_helpers.hpp> #include <mapnik/text/symbolizer_helpers.hpp>
@ -55,3 +57,6 @@ template void grid_renderer<grid>::process(text_symbolizer const&,
proj_transform const&); proj_transform const&);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(building_symbo
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(line_pattern_s
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -46,3 +48,6 @@ template void svg_renderer<std::ostream_iterator<char> >::process(line_symbolize
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(markers_symbol
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(point_symboliz
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(polygon_patter
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -41,3 +43,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(polygon_symbol
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(raster_symboli
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(shield_symboli
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -92,3 +94,6 @@ template bool svg_renderer<std::ostream_iterator<char> >::process(rule::symboliz
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -37,3 +39,5 @@ template void svg_renderer<std::ostream_iterator<char> >::process(text_symbolize
mapnik::feature_impl & feature, mapnik::feature_impl & feature,
proj_transform const& prj_trans); proj_transform const& prj_trans);
} }
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_generator.hpp> #include <mapnik/svg/output/svg_generator.hpp>
#include <mapnik/geometry.hpp> #include <mapnik/geometry.hpp>
@ -109,3 +111,6 @@ namespace mapnik { namespace svg {
template class svg_generator<std::ostream_iterator<char> >; template class svg_generator<std::ostream_iterator<char> >;
}} }}
#endif

View file

@ -21,6 +21,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/svg/output/svg_output_attributes.hpp> #include <mapnik/svg/output/svg_output_attributes.hpp>
@ -288,3 +290,6 @@ namespace mapnik { namespace svg {
svg_namespace_url_ = SVG_NAMESPACE_URL; svg_namespace_url_ = SVG_NAMESPACE_URL;
} }
}} }}
#endif

View file

@ -20,6 +20,8 @@
* *
*****************************************************************************/ *****************************************************************************/
#if defined(SVG_RENDERER)
// mapnik // mapnik
#include <mapnik/debug.hpp> #include <mapnik/debug.hpp>
#include <mapnik/svg/output/svg_renderer.hpp> #include <mapnik/svg/output/svg_renderer.hpp>
@ -117,3 +119,5 @@ void svg_renderer<T>::end_layer_processing(layer const& lay)
template class svg_renderer<std::ostream_iterator<char> >; template class svg_renderer<std::ostream_iterator<char> >;
} }
#endif

View file

@ -63,14 +63,31 @@ public:
wkbMultiLineString=5, wkbMultiLineString=5,
wkbMultiPolygon=6, wkbMultiPolygon=6,
wkbGeometryCollection=7, wkbGeometryCollection=7,
// Z
wkbPointZ=1001, wkbPointZ=1001,
wkbLineStringZ=1002, wkbLineStringZ=1002,
wkbPolygonZ=1003, wkbPolygonZ=1003,
wkbMultiPointZ=1004, wkbMultiPointZ=1004,
wkbMultiLineStringZ=1005, wkbMultiLineStringZ=1005,
wkbMultiPolygonZ=1006, wkbMultiPolygonZ=1006,
wkbGeometryCollectionZ=1007 wkbGeometryCollectionZ=1007,
}; // M
wkbPointM=2001,
wkbLineStringM=2002,
wkbPolygonM=2003,
wkbMultiPointM=2004,
wkbMultiLineStringM=2005,
wkbMultiPolygonM=2006,
wkbGeometryCollectionM=2007,
// ZM
wkbPointZM=3001,
wkbLineStringZM=3002,
wkbPolygonZM=3003,
wkbMultiPointZM=3004,
wkbMultiLineStringZM=3005,
wkbMultiPolygonZM=3006,
wkbGeometryCollectionZM=3007
};
wkb_reader(const char* wkb, std::size_t size, wkbFormat format) wkb_reader(const char* wkb, std::size_t size, wkbFormat format)
: wkb_(wkb), : wkb_(wkb),
@ -143,24 +160,50 @@ public:
read_collection(paths); read_collection(paths);
break; break;
case wkbPointZ: case wkbPointZ:
case wkbPointM:
read_point_xyz(paths); read_point_xyz(paths);
break; break;
case wkbPointZM:
read_point_xyzm(paths);
break;
case wkbLineStringZ: case wkbLineStringZ:
case wkbLineStringM:
read_linestring_xyz(paths); read_linestring_xyz(paths);
break; break;
case wkbLineStringZM:
read_linestring_xyzm(paths);
break;
case wkbPolygonZ: case wkbPolygonZ:
case wkbPolygonM:
read_polygon_xyz(paths); read_polygon_xyz(paths);
break; break;
case wkbPolygonZM:
read_polygon_xyzm(paths);
break;
case wkbMultiPointZ: case wkbMultiPointZ:
case wkbMultiPointM:
read_multipoint_xyz(paths); read_multipoint_xyz(paths);
break; break;
case wkbMultiPointZM:
read_multipoint_xyzm(paths);
break;
case wkbMultiLineStringZ: case wkbMultiLineStringZ:
case wkbMultiLineStringM:
read_multilinestring_xyz(paths); read_multilinestring_xyz(paths);
break; break;
case wkbMultiLineStringZM:
read_multilinestring_xyzm(paths);
break;
case wkbMultiPolygonZ: case wkbMultiPolygonZ:
case wkbMultiPolygonM:
read_multipolygon_xyz(paths); read_multipolygon_xyz(paths);
break; break;
case wkbMultiPolygonZM:
read_multipolygon_xyzm(paths);
break;
case wkbGeometryCollectionZ: case wkbGeometryCollectionZ:
case wkbGeometryCollectionM:
case wkbGeometryCollectionZM:
read_collection(paths); read_collection(paths);
break; break;
default: default:
@ -246,6 +289,27 @@ private:
} }
} }
void read_coords_xyzm(CoordinateArray& ar)
{
if (! needSwap_)
{
for (unsigned i = 0; i < ar.size(); ++i)
{
read_double_ndr(wkb_ + pos_, ar[i].x);
read_double_ndr(wkb_ + pos_ + 8, ar[i].y);
pos_ += 32; // skip XYZM
}
}
else
{
for (unsigned i = 0; i < ar.size(); ++i)
{
read_double_xdr(wkb_ + pos_, ar[i].x);
read_double_xdr(wkb_ + pos_ + 8, ar[i].y);
pos_ += 32; // skip XYZM
}
}
}
void read_point(boost::ptr_vector<geometry_type> & paths) void read_point(boost::ptr_vector<geometry_type> & paths)
{ {
@ -276,6 +340,16 @@ private:
paths.push_back(pt.release()); paths.push_back(pt.release());
} }
void read_point_xyzm(boost::ptr_vector<geometry_type> & paths)
{
double x = read_double();
double y = read_double();
std::auto_ptr<geometry_type> pt(new geometry_type(geometry_type::types::Point));
pos_ += 16;
pt->move_to(x, y);
paths.push_back(pt);
}
void read_multipoint_xyz(boost::ptr_vector<geometry_type> & paths) void read_multipoint_xyz(boost::ptr_vector<geometry_type> & paths)
{ {
int num_points = read_integer(); int num_points = read_integer();
@ -286,6 +360,16 @@ private:
} }
} }
void read_multipoint_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
for (int i = 0; i < num_points; ++i)
{
pos_ += 5;
read_point_xyzm(paths);
}
}
void read_linestring(boost::ptr_vector<geometry_type> & paths) void read_linestring(boost::ptr_vector<geometry_type> & paths)
{ {
int num_points = read_integer(); int num_points = read_integer();
@ -330,6 +414,23 @@ private:
} }
} }
void read_linestring_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_points = read_integer();
if (num_points > 0)
{
CoordinateArray ar(num_points);
read_coords_xyzm(ar);
std::auto_ptr<geometry_type> line(new geometry_type(geometry_type::types::LineString));
line->move_to(ar[0].x, ar[0].y);
for (int i = 1; i < num_points; ++i)
{
line->line_to(ar[i].x, ar[i].y);
}
paths.push_back(line);
}
}
void read_multilinestring_xyz(boost::ptr_vector<geometry_type> & paths) void read_multilinestring_xyz(boost::ptr_vector<geometry_type> & paths)
{ {
int num_lines = read_integer(); int num_lines = read_integer();
@ -340,6 +441,15 @@ private:
} }
} }
void read_multilinestring_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_lines = read_integer();
for (int i = 0; i < num_lines; ++i)
{
pos_ += 5;
read_linestring_xyzm(paths);
}
}
void read_polygon(boost::ptr_vector<geometry_type> & paths) void read_polygon(boost::ptr_vector<geometry_type> & paths)
{ {
@ -403,6 +513,32 @@ private:
} }
} }
void read_polygon_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_rings = read_integer();
if (num_rings > 0)
{
std::auto_ptr<geometry_type> poly(new geometry_type(geometry_type::types::Polygon));
for (int i = 0; i < num_rings; ++i)
{
int num_points = read_integer();
if (num_points > 0)
{
CoordinateArray ar(num_points);
read_coords_xyzm(ar);
poly->move_to(ar[0].x, ar[0].y);
for (int j = 1; j < num_points; ++j)
{
poly->line_to(ar[j].x, ar[j].y);
}
poly->close_path();
}
}
if (poly->size() > 2) // ignore if polygon has less than 3 vertices
paths.push_back(poly);
}
}
void read_multipolygon_xyz(boost::ptr_vector<geometry_type> & paths) void read_multipolygon_xyz(boost::ptr_vector<geometry_type> & paths)
{ {
int num_polys = read_integer(); int num_polys = read_integer();
@ -413,6 +549,16 @@ private:
} }
} }
void read_multipolygon_xyzm(boost::ptr_vector<geometry_type> & paths)
{
int num_polys = read_integer();
for (int i = 0; i < num_polys; ++i)
{
pos_ += 5;
read_polygon_xyzm(paths);
}
}
void read_collection(boost::ptr_vector<geometry_type> & paths) void read_collection(boost::ptr_vector<geometry_type> & paths)
{ {
int num_geometries = read_integer(); int num_geometries = read_integer();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -164,6 +164,34 @@ INSERT INTO test11(label,geom) values ('label_7',GeomFromEWKT('SRID=4326;MULTIPO
INSERT INTO test11(label,geom) values ('label_8',GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POLYGON((1 1, 2 1, 2 2, 1 2,1 1)),POINT(2 3),LINESTRING(2 3,3 4))')); INSERT INTO test11(label,geom) values ('label_8',GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POLYGON((1 1, 2 1, 2 2, 1 2,1 1)),POINT(2 3),LINESTRING(2 3,3 4))'));
""" """
insert_table_12 = """
CREATE TABLE test12(gid serial PRIMARY KEY, name varchar(40), geom geometry);
INSERT INTO test12(name,geom) values ('Point',GeomFromEWKT('SRID=4326;POINT(0 0)'));
INSERT INTO test12(name,geom) values ('PointZ',GeomFromEWKT('SRID=4326;POINTZ(0 0 0)'));
INSERT INTO test12(name,geom) values ('PointM',GeomFromEWKT('SRID=4326;POINTM(0 0 0)'));
INSERT INTO test12(name,geom) values ('PointZM',GeomFromEWKT('SRID=4326;POINTZM(0 0 0 0)'));
INSERT INTO test12(name,geom) values ('MultiPoint',GeomFromEWKT('SRID=4326;MULTIPOINT(0 0, 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointZ',GeomFromEWKT('SRID=4326;MULTIPOINTZ(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointM',GeomFromEWKT('SRID=4326;MULTIPOINTM(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('MultiPointZM',GeomFromEWKT('SRID=4326;MULTIPOINTZM(0 0 0 0, 1 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineString',GeomFromEWKT('SRID=4326;LINESTRING(0 0, 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringZ',GeomFromEWKT('SRID=4326;LINESTRINGZ(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringM',GeomFromEWKT('SRID=4326;LINESTRINGM(0 0 0, 1 1 1)'));
INSERT INTO test12(name,geom) values ('LineStringZM',GeomFromEWKT('SRID=4326;LINESTRINGZM(0 0 0 0, 1 1 1 1)'));
INSERT INTO test12(name,geom) values ('Polygon',GeomFromEWKT('SRID=4326;POLYGON((0 0, 1 1, 2 2, 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonZ',GeomFromEWKT('SRID=4326;POLYGONZ((0 0 0, 1 1 1, 2 2 2, 0 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonM',GeomFromEWKT('SRID=4326;POLYGONZ((0 0 0, 1 1 1, 2 2 2, 0 0 0))'));
INSERT INTO test12(name,geom) values ('PolygonZM',GeomFromEWKT('SRID=4326;POLYGONZM((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0))'));
INSERT INTO test12(name,geom) values ('MultiLineString',GeomFromEWKT('SRID=4326;MULTILINESTRING((0 0, 1 1),(2 2, 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringZ',GeomFromEWKT('SRID=4326;MULTILINESTRINGZ((0 0 0, 1 1 1),(2 2 2, 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringM',GeomFromEWKT('SRID=4326;MULTILINESTRINGM((0 0 0, 1 1 1),(2 2 2, 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiLineStringZM',GeomFromEWKT('SRID=4326;MULTILINESTRINGZM((0 0 0 0, 1 1 1 1),(2 2 2 2, 3 3 3 3))'));
INSERT INTO test12(name,geom) values ('MultiPolygon',GeomFromEWKT('SRID=4326;MULTIPOLYGON(((0 0, 1 1, 2 2, 0 0)),((0 0, 1 1, 2 2, 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonZ',GeomFromEWKT('SRID=4326;MULTIPOLYGONZ(((0 0 0, 1 1 1, 2 2 2, 0 0 0)),((0 0 0, 1 1 1, 2 2 2, 0 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonM',GeomFromEWKT('SRID=4326;MULTIPOLYGONM(((0 0 0, 1 1 1, 2 2 2, 0 0 0)),((0 0 0, 1 1 1, 2 2 2, 0 0 0)))'));
INSERT INTO test12(name,geom) values ('MultiPolygonZM',GeomFromEWKT('SRID=4326;MULTIPOLYGONZM(((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0)),((0 0 0 0, 1 1 1 1, 2 2 2 2, 0 0 0 0)))'));
"""
def postgis_setup(): def postgis_setup():
call('dropdb %s' % MAPNIK_TEST_DBNAME,silent=True) call('dropdb %s' % MAPNIK_TEST_DBNAME,silent=True)
@ -182,6 +210,7 @@ def postgis_setup():
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_9),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_9),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_10),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_10),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_11),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_11),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_12),silent=False)
def postgis_takedown(): def postgis_takedown():
pass pass
@ -757,6 +786,231 @@ if 'postgis' in mapnik.DatasourceCache.plugin_names() \
# This used to raise an exception before correction of issue 2042 # This used to raise an exception before correction of issue 2042
mapnik.render_to_file(map2,'world2.png', 'png') mapnik.render_to_file(map2,'world2.png', 'png')
def test_handling_of_zm_dimensions():
ds = mapnik.PostGIS(dbname=MAPNIK_TEST_DBNAME,
table='(select gid,ST_CoordDim(geom) as dim,name,geom from test12) as tmp',
geometry_field='geom')
eq_(len(ds.fields()),3)
eq_(ds.fields(),['gid', 'dim', 'name'])
eq_(ds.field_types(),['int', 'int', 'str'])
fs = ds.featureset()
# Point (2d)
feat = fs.next()
eq_(feat.id(),1)
eq_(feat['gid'],1)
eq_(feat['dim'],2)
eq_(feat['name'],'Point')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointZ
feat = fs.next()
eq_(feat.id(),2)
eq_(feat['gid'],2)
eq_(feat['dim'],3)
eq_(feat['name'],'PointZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointM
feat = fs.next()
eq_(feat.id(),3)
eq_(feat['gid'],3)
eq_(feat['dim'],3)
eq_(feat['name'],'PointM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# PointZM
feat = fs.next()
eq_(feat.id(),4)
eq_(feat['gid'],4)
eq_(feat['dim'],4)
eq_(feat['name'],'PointZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Point(0 0)')
# MultiPoint
feat = fs.next()
eq_(feat.id(),5)
eq_(feat['gid'],5)
eq_(feat['dim'],2)
eq_(feat['name'],'MultiPoint')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointZ
feat = fs.next()
eq_(feat.id(),6)
eq_(feat['gid'],6)
eq_(feat['dim'],3)
eq_(feat['name'],'MultiPointZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointM
feat = fs.next()
eq_(feat.id(),7)
eq_(feat['gid'],7)
eq_(feat['dim'],3)
eq_(feat['name'],'MultiPointM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# MultiPointZM
feat = fs.next()
eq_(feat.id(),8)
eq_(feat['gid'],8)
eq_(feat['dim'],4)
eq_(feat['name'],'MultiPointZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Point(0 0)')
eq_(geoms[1].to_wkt(),'Point(1 1)')
# LineString
feat = fs.next()
eq_(feat.id(),9)
eq_(feat['gid'],9)
eq_(feat['dim'],2)
eq_(feat['name'],'LineString')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringZ
feat = fs.next()
eq_(feat.id(),10)
eq_(feat['gid'],10)
eq_(feat['dim'],3)
eq_(feat['name'],'LineStringZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringM
feat = fs.next()
eq_(feat.id(),11)
eq_(feat['gid'],11)
eq_(feat['dim'],3)
eq_(feat['name'],'LineStringM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# LineStringZM
feat = fs.next()
eq_(feat.id(),12)
eq_(feat['gid'],12)
eq_(feat['dim'],4)
eq_(feat['name'],'LineStringZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
# Polygon
feat = fs.next()
eq_(feat.id(),13)
eq_(feat['gid'],13)
eq_(feat['name'],'Polygon')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonZ
feat = fs.next()
eq_(feat.id(),14)
eq_(feat['gid'],14)
eq_(feat['name'],'PolygonZ')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonM
feat = fs.next()
eq_(feat.id(),15)
eq_(feat['gid'],15)
eq_(feat['name'],'PolygonM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# PolygonZM
feat = fs.next()
eq_(feat.id(),16)
eq_(feat['gid'],16)
eq_(feat['name'],'PolygonZM')
geoms = feat.geometries()
eq_(len(geoms),1)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiLineString
feat = fs.next()
eq_(feat.id(),17)
eq_(feat['gid'],17)
eq_(feat['name'],'MultiLineString')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringZ
feat = fs.next()
eq_(feat.id(),18)
eq_(feat['gid'],18)
eq_(feat['name'],'MultiLineStringZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringM
feat = fs.next()
eq_(feat.id(),19)
eq_(feat['gid'],19)
eq_(feat['name'],'MultiLineStringM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiLineStringZM
feat = fs.next()
eq_(feat.id(),20)
eq_(feat['gid'],20)
eq_(feat['name'],'MultiLineStringZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'LineString(0 0,1 1)')
eq_(geoms[1].to_wkt(),'LineString(2 2,3 3)')
# MultiPolygon
feat = fs.next()
eq_(feat.id(),21)
eq_(feat['gid'],21)
eq_(feat['name'],'MultiPolygon')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonZ
feat = fs.next()
eq_(feat.id(),22)
eq_(feat['gid'],22)
eq_(feat['name'],'MultiPolygonZ')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonM
feat = fs.next()
eq_(feat.id(),23)
eq_(feat['gid'],23)
eq_(feat['name'],'MultiPolygonM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
# MultiPolygonZM
feat = fs.next()
eq_(feat.id(),24)
eq_(feat['gid'],24)
eq_(feat['name'],'MultiPolygonZM')
geoms = feat.geometries()
eq_(len(geoms),2)
eq_(geoms[0].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
eq_(geoms[1].to_wkt(),'Polygon((0 0,1 1,2 2,0 0))')
atexit.register(postgis_takedown) atexit.register(postgis_takedown)

View file

@ -44,9 +44,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im) mapnik.render(m,im)
actual = '/tmp/mapnik-wgs842merc-reprojection-render.png' actual = '/tmp/mapnik-wgs842merc-reprojection-render.png'
expected = 'images/support/mapnik-wgs842merc-reprojection-render.png' expected = 'images/support/mapnik-wgs842merc-reprojection-render.png'
im.save(actual) im.save(actual,'png32')
expected_im = mapnik.Image.open(expected) expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected)) eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
def test_visual_zoom_all_rendering2(): def test_visual_zoom_all_rendering2():
m = mapnik.Map(512,512) m = mapnik.Map(512,512)
@ -56,9 +56,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im) mapnik.render(m,im)
actual = '/tmp/mapnik-merc2wgs84-reprojection-render.png' actual = '/tmp/mapnik-merc2wgs84-reprojection-render.png'
expected = 'images/support/mapnik-merc2wgs84-reprojection-render.png' expected = 'images/support/mapnik-merc2wgs84-reprojection-render.png'
im.save(actual) im.save(actual,'png32')
expected_im = mapnik.Image.open(expected) expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected)) eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
# maximum-extent read from map.xml # maximum-extent read from map.xml
def test_visual_zoom_all_rendering3(): def test_visual_zoom_all_rendering3():
@ -69,9 +69,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im) mapnik.render(m,im)
actual = '/tmp/mapnik-merc2merc-reprojection-render1.png' actual = '/tmp/mapnik-merc2merc-reprojection-render1.png'
expected = 'images/support/mapnik-merc2merc-reprojection-render1.png' expected = 'images/support/mapnik-merc2merc-reprojection-render1.png'
im.save(actual) im.save(actual,'png32')
expected_im = mapnik.Image.open(expected) expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected)) eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
# no maximum-extent # no maximum-extent
def test_visual_zoom_all_rendering4(): def test_visual_zoom_all_rendering4():
@ -83,9 +83,9 @@ if 'shape' in mapnik.DatasourceCache.plugin_names():
mapnik.render(m,im) mapnik.render(m,im)
actual = '/tmp/mapnik-merc2merc-reprojection-render2.png' actual = '/tmp/mapnik-merc2merc-reprojection-render2.png'
expected = 'images/support/mapnik-merc2merc-reprojection-render2.png' expected = 'images/support/mapnik-merc2merc-reprojection-render2.png'
im.save(actual) im.save(actual,'png32')
expected_im = mapnik.Image.open(expected) expected_im = mapnik.Image.open(expected)
eq_(im.tostring(),expected_im.tostring(), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected)) eq_(im.tostring('png32'),expected_im.tostring('png32'), 'failed comparing actual (%s) and expected (%s)' % (actual,'tests/python_tests/'+ expected))
if __name__ == "__main__": if __name__ == "__main__":
setup() setup()

View file

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import os
import sys import sys
import mapnik import mapnik
@ -10,6 +11,11 @@ except ImportError:
COMPUTE_THRESHOLD = 16 COMPUTE_THRESHOLD = 16
# testcase images are generated on OS X
# so they should exactly match
if os.uname()[0] == 'Darwin':
COMPUTE_THRESHOLD = 2
# returns true if pixels are not identical # returns true if pixels are not identical
def compare_pixels(pixel1, pixel2, alpha=True): def compare_pixels(pixel1, pixel2, alpha=True):
if pixel1 == pixel2: if pixel1 == pixel2:

BIN
tests/visual_tests/data/line.dbf Executable file

Binary file not shown.

BIN
tests/visual_tests/data/line.shp Executable file

Binary file not shown.

BIN
tests/visual_tests/data/line.shx Executable file

Binary file not shown.

View file

@ -19,12 +19,11 @@
" ", " ",
" ", " ",
" ", " ",
" ",
" ! ! !! ! ! ! !! ! ! ! !! !! ", " ! ! !! ! ! ! !! ! ! ! !! !! ",
" ! !! ! !! ! !! !! ", " ! !! ! !! ! !! !! ",
" ! ! ", " ! ! ",
" ! ! !! ! ! !! ", " ! ! !! ! ! !! ",
" ! ! ! ! ", " ! ! ! ! ! ",
" !!!! ! ! ! !! ! ! ! ! ! ", " !!!! ! ! ! !! ! ! ! ! ! ",
" !!!! ! !! ! !! ! ! ", " !!!! ! !! ! !! ! ! ",
" ! ! ! ! ", " ! ! ! ! ",
@ -37,18 +36,18 @@
" !!!!!! ! ! ! !! ! !!!! ", " !!!!!! ! ! ! !! ! !!!! ",
" ! ! ! ! !!!! !!! ! ! !! ", " ! ! ! ! !!!! !!! ! ! !! ",
" ! !! !!! !!! !!!! ", " ! !! !!! !!! !!!! ",
" !! ! ! ! ! ! ",
" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ", " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
" !!! !!!! !! !! !! ",
" !!!! !!!! !!! ! !! ", " !!!! !!!! !!! ! !! ",
" !!! ! !!!! !!! ! !! ! ", " !!! ! !!!! !!! ! !! ! ",
" !!! !!! ! ! !!!! ", " !!! !!! ! ! !!!! ",
" ! ! ! ! ! ", " ! ! ! ! ! ",
" !!! ! !!! ! ! !! ! ", " !!! ! !!! ! ! !! ! ",
" ! ! !! !! ! ! ", " ! !! ! !! !! ! ! ",
" !!!!!! ! !! !!! ! !! ", " !!!!!! ! !! !!! ! !! ",
" !! !!! !!! ! !! ! ", " !! !!! !!! ! !! ! ",
" ! ! ! ! ", " ! ! ! !! ",
" ! !! ! !! ! !! ! ", " ! !! ! !! ! !! !! ",
" ! !! ! !!!!! ! ! ", " ! !! ! !!!!! ! ! ",
" ! ! !! ! !! !!! ! ", " ! ! !! ! !! !!! ! ",
" !!!! !!! ! !! !!! ", " !!!! !!! ! !! !!! ",
@ -60,8 +59,8 @@
" !! ! ! ! ! ", " !! ! ! ! ! ",
" ! ! ! !! !!! !! ! ", " ! ! ! !! !!! !! ! ",
" ! !!!!! ! ", " ! !!!!! ! ",
" ! !! ! !!! !!!! !!!! ", " ! !! ! !!! ! !! !!!! ",
" !! !! !! !! !!! !! ! ", " !! !! !! !! !! !! ! ",
" ! ", " ! ",
" ", " ",
" ", " ",
@ -79,6 +78,7 @@
" ", " ",
" ", " ",
" ", " ",
" ",
" " " "
] ]
} }

View file

@ -28,8 +28,8 @@
" ", " ",
" ! # $ % & ' ( ) * + ", " ! # $ % & ' ( ) * + ",
" ", " ",
" # $$$ %%% &&&& ''''' (( ))) )) )) ** * * ++ + ", " # $$$ %%% &&&& ''''' (( ( )) ) ))) ** *** ++ + ",
" ' (((((((( ))) )) )) * * ** ++++ +++ ", " ' ((((((( )) ))))) * * * + + ++++ ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -28,12 +28,12 @@
" ", " ",
" ! # $ % & ' ( ) * + ", " ! # $ % & ' ( ) * + ",
" ", " ",
"! ! $$$ $ $ && & && ((( *** * ", "! ! $$$ $ $ &&& & && ((( ( ** ",
" ! ! !!!! ! $$ $ $ $ $$$ $$$ & & &&&& & ( ( ( (((( **** * ** *** ", " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" !! !!!! $$ $ $ $$ $ && & && ( ( ( ( ** ** * ** ", " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ", " ",
" ! !!!!!!!! $$$$$$$$$$$ & &&&&&&&& (((((((((( ********* ", " !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ",
" !!!!!!! $$$$$$ $$$$ &&&&& & ((( (((((( *** **** ", " !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -28,12 +28,12 @@
" ", " ",
" ! # $ % & ' ( ) * + ", " ! # $ % & ' ( ) * + ",
" ", " ",
"! ! $$$ $ $ && & && ((( *** * ", "! ! $$$ $ $ &&& & && ((( ( ** ",
" ! ! !!!! ! $$ $ $ $ $$$ $$$ & & &&&& & ( ( ( (((( **** * ** *** ", " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" !! !!!! $$ $ $ $$ $ && & && ( ( ( ( ** ** * ** ", " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ", " ",
" ! !!!!!!!! $$$$$$$$$$$ & &&&&&&&& (((((((((( ********* ", " !!!! !!! $$$$$$$$$ $ &&&&&&&& (((((((((( ******** ",
" !!!!!!! $$$$$$ $$$$ &&&&& & ((( (((((( *** **** ", " !!!!!!! $$$$$$$$$ &&&& & (((((( ( ( ***** **** ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -28,9 +28,9 @@
" ", " ",
" ! # $ % & ' ( ) * + ", " ! # $ % & ' ( ) * + ",
" ", " ",
"! ! $$$ $ $ && & && ((( *** * ", "! ! $$$ $ $ &&& & && ((( ( ** ",
" ! ! !!!! ! $$ $ $ $ $$$ $$$ & & &&&& & ( ( ( (((( **** * ** *** ", " !!! ! !!! ! $$ $ $ $$$ $$$ &&& & &&& & ( ((( ( ((((( ( * * * *** ",
" !! !!!! $$ $ $ $$ $ && & && ( ( ( ( ** ** * ** ", " ! !! !!! $$ $ $ $$$ $ $ & && && & ( ( (( (( ((( ( * * ** ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -19,34 +19,34 @@
" ", " ",
" ", " ",
" ", " ",
" !! ",
" !! ",
" ",
" # # # # ! !! ! ! ",
" # # # # # ! ! ! ",
" # # # # ## # # ! ! ! ! ",
" #### # # # # # ## ! ! !! ! ! ",
" # ## ### # # ### # # # # ! ! ! ! ! ! ",
" # ## # # # # # ## ### ## # ! ! ! ! ! !! ! ",
" # ## ####### # ####### # !!!! !!! !!!!!!! ! ",
" $$ $$ $ # ## !! !! ",
" $ $ $$ #### ## !!! ",
" $ $ $$ $$$$$$ ",
" $ $ $ % % ",
" %%%%%% %%%%%% %% ",
" % %%%% %% ",
" %% % % ",
" ", " ",
" ", " ",
" ", " ",
" ",
" ",
" ",
" ",
" ! ",
" ! ",
" # ## # ! !! ! ",
" # # ## # ! !!! ! ",
" # # ## # ## ! !! ! ",
" ### ## # ## # # # ! !! ! ",
" $$ $$ $ % % % % # ### ### ## # ## ### !! ! !! ! ",
" $ $ $$ % %%% %%% %%%%%% %% # ### ### ## # # # # # # # ! ! ! ! ! ! ",
" $ $ $$ $$$$$$ % %% %% %%% % # ###### ### # ########## # !!!! !! !!!!! ! ",
" $ $ $ % % % # # ## ## ! !! ",
" # ## !! !! ",
" ### # ! ",
" ",
" $ & % ' ( # ) * ! + ", " $ & % ' ( # ) * ! + ",
" ", " ",
" ", " ",
" ", " ",
" $$ $$ % % %% % # # # ! ! !! ", " $$ $$ %%% # # # ! ! !! ",
" $$$$$$ %%%%%%%%% %% %%%%%% # # ## ! !!!! ", " $$$$$$ %%% %%%%%% %%%%%% # # ## ! !!!! ",
" $ $ % %%% %% % % %% % % %%% ! ", " $ $ % % % % % %% % % % % ! ",
" % % % % % ", " % % % % % ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,9 +1,9 @@
{ {
"keys": [ "keys": [
"", "",
"2",
"6", "6",
"8", "8",
"2",
"4" "4"
], ],
"data": {}, "data": {},
@ -20,26 +20,26 @@
" ", " ",
" ", " ",
" ", " ",
" ! ! # # $ ", " ! ! # # ",
" !!!! # ## $$$ ", " $$$ ! !! # ## ",
" ", " ",
" ! !! ! %%%% %%%%% %%%% %%%%%%%%%% ##### # # # $ $$ $$ ", " $ $ $$$$ $ %%%% %%%%% %%%% %%%%%%%%%%%%%%% %%%% !!!!! !! ! ! ! ! # # #### # ",
" !! ! ! !! ! ! % % % % % %% % # ## # # ## $ $$ $ $ $ $$ ", " $ $ $ $$ $ $ $$ % %% % % % %% %% % !! !!! ! ! ! ! ! # # # ## # ## ## ",
" !! ! !!!! ! %%%% % % % % %% % # # # #### # $ $ $ $$$$ $ ", " $ $ $$$$ $ $$$$ $ %%%% % % % % %% %% % ! ! !!!!! ! !!!!! ! # #### # #### # ",
" ! ! ! ! ! ! ! % % % % % %% % # # # # # $ $ $ $ $ $ $ ", " $ $ $ $ $ $ $ $ $ % %% % % % %% %% % ! ! ! ! ! ! ! # # # # # # # ",
" !!!! ! !! ! ! % %% % % % %% % # # ## # # $ $ $ $ $ $ ", " $$$ $$ $ $ $$ $ $$ % % % % % %% %% % !! !! ! ! !! ! !! # ## # # ## # ## ",
" ! ! ! !! ! ! % %% % % % % %% % ## # # # ## # # $ $$ $ $ $ $ ", " $ $ $$ $ $ $$ $ $$ % %% % % % % %% %% % !! !! ! !! ! ! !! ! !! # ## # # ## # ## ",
" ! % % % %% % ## # $ ", " % % % %% %% % !!! ",
" ! ! ! %%%%% %%%% %%%%%%%%%% # # # $ $ $ ", " $ $ %%%%% %%%% %%%%%%%%%%%%%%% %%%% # ",
" ! !! ! # ## # $ $$ $ ", " $ $ # ",
" ! ! ! # ## # $ $ $ ",
" ! ! # # $ $ ",
" ! ## $ ",
" ", " ",
" ", " ",
" !! !! ! %% % % % % % ## # # ## # $ $$ $ $$ $ ", " ",
" !! !!! !!!!! !! % %%%%% %%%%%%% % ### ### ###### # $$ $$ $ $ $$ $$$$$ ", " ",
" ! % ", " ",
" $$ $$ $ $ %% % % %% % ! ! ! !! ! # ## # # ### # ",
" $ $ $$$$$ $$$$ $$ %%%%%%%% %%%%%% % !!! !!! !!!!!!! !! ## ## ###### ###### ",
" $ ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -18,8 +18,8 @@
" ", " ",
" ", " ",
" ", " ",
" !!!!!! ! ! !!!!!!! ! !!!!! ", " !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" !!! !!! ! !!! !!! ! ! !!!! ", " ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ", " ",
" !! ! !! ! ! !!!! ! ", " !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ", " !!! ! ! !! !!!! ! ",
@ -28,8 +28,8 @@
" ", " ",
" ", " ",
" ", " ",
" !!!!!! ! ! ! !!!!! ", " !!!!!! ! ! !!!!!! ! ! ",
" !!! !!! ! ! ! !!!! ", " ! ! !!! ! ! ! !!! ! ",
" ! ", " ! ",
" !! ! !!!! ! ", " !! ! !!!! ! ",
" !!! ! !!!! ! ", " !!! ! !!!! ! ",
@ -38,8 +38,8 @@
" ", " ",
" ", " ",
" ", " ",
" !!!!!! ! ! !!!!!!! ! !!!!! ", " !!!!!! ! ! ! ! ! !!! !!!!!! ! ! ",
" !!! !!! ! !!! !!! ! ! !!!! ", " ! ! !!! ! !! !! ! !! ! ! !!! ! ",
" ", " ",
" !! ! !! ! ! !!!! ! ", " !! ! !! ! ! !!!! ! ",
" !!! ! ! !! !!!! ! ", " !!! ! ! !! !!!! ! ",

View file

@ -31,25 +31,25 @@
" ", " ",
" ", " ",
" ! ", " ! ",
" ! ", " ! ! ! ",
" !!! !! !! ! !! !!!! !!! !! !!!!! !!!! !!!!! !!!!!! !! ! ", " !!! !!! ! ! !! ! !! !!!! !!! !! !!!!! !!!! !!! !!!!!!!!!!!! !! !! ",
" ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ", " ! ! ! ! !!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ",
" ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!! ! ! ! ! ! ", " ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !!! !! ! ! ! ! ! ",
" ", " ",
" ! !! ", " ! ! ",
" ", " ",
" ", " ",
" # $ % & ' ( ! ) * + ", " # $ % & ' ( ! ) * + ",
" ", " ",
" %% ",
" ' ' * * * ",
" % % % %% ''' ' ' ' ' '' '' *** * ** * * * *** ** * ",
" % % % % % ' ' ' ' ' ' '' * * * * * ** * * ** * ",
" %%% % % %% ' ''' ''' ' ''' *** * * * * * * * ** * ",
" % '' ",
" % ' ** ",
" ",
" ", " ",
" %% * ",
"### ## #### ### #### ### # # # # % %% % ''' ' ''' ''' ''' * *** ** *** ** ",
"# # # # # # # ## ### # # # % %%% % ' ' ' ''' ''' '' * * ** *** * * ",
"# # # # # # # # # # # # % % % % ' ' ' ' ' ' '' * ** * * * * * ",
"# # # ## # ### # # # ### ## % % %% ' ' ' '' '' '' * * ** *** * * ",
" # ## % % ''' *** ",
" # % % % ",
" % ' ** ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -30,38 +30,38 @@
" ", " ",
" ", " ",
" ", " ",
" !!! # ", " !! ",
" !!! !!!!!! ## #### ", " ! !!!!!!! # ####### ",
" !!!!!!! !!!!!!!!! ! ####### ## ##### ", " !!!!!!! !!!!!!!!! !!! ####### ############# ",
" !!!!!!! !!!!!!!!!! !! ######## ############# ", " !!!!!!!! !!!!!!!!! !!!! ## ##### ########## ### ",
" !!! !!! !!!!!!!!!!! !! !!!! ### ### ######## ## ### $$$$$$ ", " !! !!!!! !!!!!!!!!!! !!!!! # ###### ######## # ##### $$$$$$ ",
" %% %%% !!!!! !! ! !!!!! ##### ## ## ##### $$ $$$ ", " %% %%% !!!! ! !! ! !!!!! ### # ## ## ##### $$ $$$ ",
" %% %%%%%% %% !!!! !! !!!!!!!! ##### # ######## $$ $$$$$$$ $ $ ", " %% %%%%%%% %% !!!!!!! !! !! ##### # ## ### $$ $ $$$$$$$ $ $ ",
" % %%%%%%%%%%%%%%%%% % %% !!!!! ! !! !! #### # ## ### $ $$$$$$ $$$$$$$$$$ $ ", " % %%%%%%%%%% %%%%%%%% %% !!!! ! !!! #### # ### $ $$$$$$$$$ $$$$$$$ $$ $ ",
" % % %%%%%%%%%%%%%%% %%% % !!!! ! !!! ##### # # # $ $$$$$$$$$$ $$$$$$ $$$$ $ ", " % %%%%%%%%%%%%%%%%%% %% % !!! ! ! #### # # $ $$$$$$$$$$ $ $$$$$$$$$ $ ",
" % %%%% %%% %%% %%% % !!! ! ! ##### # $$$$$$$ $$$$$$ $ ", " % %%% %%% %%% %%% % !!!!! ! ! ##### # # $$$$$ $$$$$$$ $ ",
" % %%%%% %%%% !!! ! # # $$ $$$$$ $ ", " % %%%% %%%%% !!!!! !!!!! ### # ### $ $$$$ $ ",
" %%%%% %%%%% % ! !! # # ## $ $$$$ $ ", " %%%%% %%%%% % !! !!!!! #### ##### $ $$$$ $ ",
" % %%%% %%% % ! ! !!! # ### $ $$$ $ ", " % %%%% %%% % ! ! !!! # ### $ $$$ $ ",
" %%%% % % !!!! #### $ $ $ ", " %%%% % % % !!!! # ## $$$ $$$ $ ",
" % %%% %% ! !! ! #### $$$$$ ", " %%%%% %%% ! !! # ## $$$ $ $$ ",
" % %% &&&& & && %%%%% ''''' '''' '''''''' !!!! # (((((( (((( ((( ### $$$$$ )))))) )) ) )) $$$ $ ", " %%%% &&&& & && %%% ''''' '''' '''''''' !!!!! # (((((( (((( ((( ### $$$$ )))))) )) ) )) $$$$$ ",
" % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! '''''''' '''' !!!! # (((((((((( (((( ### $$$$$ )))))))))) ))))))))))))))) ", " % % &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! !! '''''''' '''' ! ! # (((((((((( (((( # $$ $ )))))))))) ))))))))))))))) ",
" % &&&&&&&& &&& %%%% !!! ' ' ! !! ( ( ## # $$$ ))))))))) ) $$$ $ ", " % &&&&&&&& &&& %%%% !!!! ' ! !!! #### ( ( # ### $$$ ))))))))) ) $$ $ ",
" % %%%% !!! !!! ### #### $$$ $$$ $ ", " % %%%%% !!! !!! #### # ### $$$ $$$ $ ",
" %%%%% !!! ! ! !! ### # ### $ $$$ $$ ", " %%% % !!! ! ! !!! ## # ### $$$$ $$$ ",
" % % % !!! !! ## # # $$$ $$ $ ", " % % % !!! !!!! ### # ### $$$$ $$$$$ ",
" % %%% %% % !!! ! !!! ! ### # # ### $ $$$$ $$$ $ ", " % %% %% % !!! ! ! !!! ### # # ### $ $$$$$ $$ $$ ",
" % %%% %%%%%%% !!!! ! !!!!!! ### # # #### $ $$$$$$ $$$$$$$$ ", " % %%% %%%%%% !!! ! !!!!!! ### # ###### $$$ $$$ $$$$ $ ",
" %%%%%%%% %%%%%%%% % !!! ! ! !!!! ### # # #### $ $ $$$$ $ $$$$$$ $ ", " %%%%%%%% % %%%%% % !!!! ! !!!!!! ### # ###### $ $$$$$ $ $$$$$$$$$ ",
" % %%%%%%%%%%%%%%%%%%%%%%% % !!!!! ! ! !!!! #### # ###### $ $$$$$$$$$$$$$$$$$ $$$$ $ ", " % %%%%%%%%%%%%% %%%%%%%%% % !!!!! ! ! !!! ### # # ## ### $ $$$$$$$$$$$$$$$$ $$$$$ $ ",
" % %%%%%% %%%%%% %%%% % !! !!! ! ! !! ###### # ## ## $$ $$$$$ $$$$$$$$$ $ $ ", " % %%%%%% %%%%%%%%%%%% % ! !! ! ! ! ## ## # ## ## $$ $$$ $$$$$$$$$$ $ $ ",
" %% %% %%%%%%% % %% !!! !!! !!! !! !! # ### ## ## ## ## $ $$$$$$ $$$ $$ ", " %% %% %%%%%%% %%%% !!!!! !!! !!! ! #### ## ## # $ $$$$$$$$$$$$ $$ ",
" %%% %%% !!!!!! !!!!!!! !! !!! ###### ######### # #### $$$$$ $$$$$ ", " %%% %%% !!!!!! !!!!!!! !! # ##### ######### ### $$$$$ $$$$$ ",
" !!!!!! !! !!!!!!!! ###### ## ######## ", " !!!!! !!! !!!!!!!! ###### ### ######## ",
" !!! !!!!!!!!! !!!! ## ########## #### ", " !! !!!!!!!!!! !!!!!! ## ########## ###### ",
" !!!!!!!!! ! # ########## # ", " !!!!!! !!! ! ! ##### #### # ## ",
" !!!!!! ######### ", " !!! !! ## #### ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -0,0 +1,137 @@
{
"keys": [
"",
"1"
],
"data": {},
"grid": [
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" !!! !! ",
" !!!!!!!!! !!!!!!!! ",
" !!! !!!! !!!! !!! ",
" !!! !!!!! !!! !!! !!!!! !! ",
" !! !!!!!!!! !!! !!! !!!!!!!! !! ",
" !!!!! ! !! !! !!! !! !! !!! !! ",
" !! !! !!!!! !! !! !! !! !!!!! !!!!!! ",
" !! ! !!! !!!!! !! !! !! !!! !! !! !!! ",
" !! !! !!!!!!! !!!! !! !! !!!!!!!!! !! !! ",
" !! !!!!!!! !! !! !! !! !!!!!!!!!!!!!! !! !! ",
" !!!! !!!! !! ! !! !!!!!!!!! !!!!!! !! ",
" !! !! !!! !! !!!! !! !!!!! !!!!!!!!! ",
" !! ! !!! !!!!! ! !! !!!!!!!!!!!!!! !!!!! !!! ",
" !! !! !!! !!!!!!! !! !!!!!!!!!!! !!!!! !!!!! !! ",
" !! !!!!! !!!!!! !!!! !! !!!!!! !!!!!!!!! !! ",
" !!!! !! !! !!! !!!! !! !!!!! !!!! !!!!!!!! !! ",
" !! !! !! !! !!!!! !! !! !!!!! !!!!!!!!!! !!!! !!!!!! ",
" !! !!!! !!! !!! ! !! !!!!!!!!! !!! !!!! !!!! !! !!! ",
" !! !!!!! !! !!! !!!! !!! !!!!! !!! !!!! !!!!!! !! ",
" !! !!!! !! !! !!!!! !! !!! !!!!! !! !!! !!!!!!! !! ",
" !!!! !! !!! !!!! !!!!! !!! !!!! !!!!!!!! !!! !!!!!!! !! ",
" !! !!!!! !! !!! !!!!! !! !!!!!!! !!!!!!!!! !!! !!! !!!!!! ",
" !! !!!! !! !! !!!!! !! !! !!! !! !! !!! !!!!!! !!! ",
" !! !!!!! !! !! !! !!!!! !!! !!!!! !! !!!!!! !! ",
" !! !!!!!!! !!! !!!!! !! !!!! !!!!!! !! !!!!!!! !! ",
" !!!! !! !! !! !!!!! !!!!!!!! !!! !! !! !!!!!!! !! ",
" !! !!!!!!! !! !!!!!! !!!!! !!!!!! !!! !!!!!!!!!!",
" !! !!!! !! !!! ! !!! !!!! !! !! !!!!!!! !!",
" !! !! !!!! !! !!!!!! !!!! !! !! !!!!!!! !",
" !! !!!!!!! !! !!!! !!!!!!!!!!!!!!! !!!!!!!! !! ",
" !!!! !!!! !! !! !! !!!!!! !! !! !! !!!!!!!!",
" !! !! !!!! !! !!!! !! !! !!!!!!! !!",
" !! !!!! !! !! !! !! !!! !!! !! !! !! !",
" !! !! !!!! !! !! !!!! !!!!!!!! !! !!!!! ",
" !! !! !!!! !! !!!!!!!!!!! !! !! !! !!!",
" !! ! !! !! !! !! !! !!! !! !!!! !!!",
" !! !! !!!! !! !!!!!!!! !! !! !! !!",
" !! !! !!!! !! !!! !!! !! !!!! !!",
" ! !! !!!!! !! !!!! !!! !! !!!!",
" !! !! !!!! !! !!!!!! !!!! !",
" !! !! !!!! !! !! !!!",
" !! !! !!!!! !! !! !! ",
" !! !! !!!! !! !!!! ",
" ! !! !!!!! !! !! ",
" !! !! !!!!! !! ",
" !! !! !!!!!!! ",
" !! !! !!!!! !! ",
" !! !! !!!!! !! ",
" ! !! !!!!!!!! ",
" !! !! !!!!! !! ",
" !! !! !!!!! !! ",
" !! !! !!!!!!!! ",
" !!!!!!!! !! !! !!!!! !! ",
" !!!! !!!!! ! !! !!!!!! !! ",
" !!! !!!! !!!! !! !! !!!!!! ! ",
" !! !!!!!!!! !!!! !! !! ! !!! !! ",
" !! !!! !!!! !!!! !! !! !!!!!! !! ",
" !! !!! !!!!! !!!! !!!! !! !! !!!!!! ! ",
" !! !!! !!! !!!! !!!! !!!! !! !! !! !!!!!! ",
" !! !!! !! !!!!!!!! !!!! !!!! !! !! !!!!!! !! ",
" !! !!! !!!!!!!!!!!!!! !!!! !!! !!!! !! !!!! !! ",
"!! !!! !!!!! !!!!! !!!! !!! !! !! !! ! !!!! ",
"! !!! !!!! !!!!!!! !!!!!! !!! !! !! !! !!!!!! !! ",
" !!! !!! !!!!!!!!!! !!!!!! !! !!! !! !! !!!! !! ",
"!!! !!! !!!! !!! !! !!! !!!!! !! !!!! !!!! ",
"!! !!! !!! !!!!! !! !! !! !! !!!! !! !!!! !! ",
"! !!!! !! !!!!!!!! !! !! ! !! ! !! !! !!!! ! ",
" !!!! !! !!! !!! !! !!!!!! ! !!!! !! ! !! ",
"!!!! !! !!! !!! !! !!!!!! !! !! !!!! !! ",
"!!! !!! !! !!! !!!!!! !! !!!! !! !!!! ",
" !! !! !! !! !!!!!! !!!! !! !!!! !! ",
"!! !! !! !! !!!! !!!!! !!!! !! !! ",
"!!!! !!! !! !!!! !! !! !! !!!! ",
" !! !! !! !! !!!!! !!!!! !! !! ",
" ! !! !!!!!!! !!!!!! !!!!! ! ",
" !! !! !!!!! !!!!! !! ",
" ! !! !!!!! !!!!! !! ",
" !! !!!!!!!!!!! !!! ",
" !! !!!!!!!!! !!! ",
" !! !!! !!! !!! ",
" !! !!!!! !!! ",
" !! !!! ",
" !!!!!!! ",
" !!!! ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
]
}

View file

@ -85,32 +85,32 @@
" ", " ",
" ", " ",
" ", " ",
" ! ",
" !! ! !!!!! !! ",
" ! ! ! ! ! ",
" ! !! ! ! ",
" ! ! !! !! !!!! ",
" !! ! !!! !! !!!!! !!!!!!!!! ",
" ", " ",
" ", " ! ",
" ! ", " ### #### # !! ! ! !! !! ",
" !!! !!!! !! ! ! ! !! ! ", " # # # # ! !! ! ",
" !! ! ! ! ! ! ", " ## # # # #### ###### # ### ## ## # # #### #### ",
" ! !! ", " # ## # ## # # ## # # # ## # ## # # # # # # ! !! ! ! ! ",
" ! ! ! ! ! ! ! ", " ## ## # # #### # # # # # # #### # # # # # !! !!!!!!! !!!!! ! ",
" ! !!!!!! !! !! !!!! !! !!!!! ", " # # # # # # # # # ## ## ## # # # # # ",
" #### #### # !! ! ", " #### # #### # # # ### # # # # # ### ! ",
" ## ## # # ! ", " # !! ! !! !! !! ! !! !! ",
" # # # ## ### ###### # #### # # # # #### #### ! !!!!! ! !! ! ! !! !! ! ", " #### ! !!! ! ",
" # # # # # # # # # # # # ## # # # #### # ! !! ! ! ! ", " ! ! ! ! ",
" # # # # ##### # # # # # ## ## # # ## # ! ", " # # !!! !!!! ! !!! ",
" ## ## ## # # # # # # ## ## # # # # # !! ", " # # !!!!!!!! !!!! !!!!!! ",
" #### ## #### # # # #### ## ## # # # #### ! !!!!! !! ! !!!!! !! ", " # # ### ### ### ",
" # ! ! ! ", " # # # # ## ## # ! ! ! ! ",
" ### ! ", " # # # # ##### ## ! !!!!! ! !!!!! !!!! ",
" !!! !!!! ! ! ! ! ! !!! ", " # # # # # # ! !! ! !! ",
" # # !! ! ! ! ! ! ", " # # # # ## ## # ",
" # # ! ! ", " ## ## ",
" # # ### ### ### !! ! ! ! ",
" # # # # ## ## # !!!!!!! !!!!!!!!!!!!!! ",
" # # # # ##### ## !! ! !! ",
" # # # # # # ",
" # # # # ## ## # ! ",
" ## ## ! ",
" ", " ",
" ", " ",
" ", " ",
@ -118,48 +118,48 @@
" ", " ",
" ", " ",
" ", " ",
" # # # # # # # # # ) ) ) ) ) ) ) ", " # # # # # # ## ) ) )) ) ) ) )) ) ",
" # ###### ### ### # #### # ###### # # # # ### # ### ## # # ## # )) )))))) ))) ))) ) ))) ) ) )))))) ) ) ) ))) ))) ))) ) ) ", " ## # # ## ##### # # # ## # # #### ### # #### ## #### # ##### ## ) ) ))) ) ) )) )))) )) ) ))) )) ) )) ))))))) ))))))) ))) ) ",
" ######### ### ### ###### ### ### ####### ### ####### #### ### ## ## ## ## ))))))))) ))) )))) ) ))) )))))))))))) ))) ))) )))))) )))) ))) )) ) ", " ## # ###### ### ## # # ## ### ######### ###### # ####### #### #### ))) ))) ))))) ))) ))) ))) ) )))) ))) ))))))))))) ))))) )))))))) ",
" ", " ",
" # ## #### #### ### #### # #### # ## # ##### # # # ### # # ##### ### ## ##### ### # ) )) )) ) )) ) ))) ))) )))) ))))) )) ))) ))) ) ))) ))) ))) ) ))))))) ", " ### # #### ### # # #### ##### ## ### ##### ### ### ##### ####### ### ######### )) ) ))))))) )))) ) ) ) ))))) ) ))))))) )) ) ))) ) )))) ) )))))))))) ",
" ### # # ### ## ##### ##### # ## ### ## # ## ### # ### # # # )) )))) ) ) )) ) )))))) ))))) ) ) )) ) )) ) )) )) ", " #### # # # # ## ## ## ## # ## ## ## # # # ## ## ### #### ## # ) ) ))) ) )) ) ) )) ) )))) ))) )) )) )))))) ) )) ) ))) ",
" # # ) ", " # ",
" # ## ## # # ) ) ) ) )) )) ) ", " # # # # # # # ) )) ) ) ) ) ) ) ) ) ",
" # # #### # # ### ### # #### ## #### # # # ## #### ### #### ) )))) ) ) ) ) ) )))) ) ) ))) ))) ) )))) )) )))) ) ) ) )) ", " # # ### #### # # ## ### # ### ##### #### ##### #### #### #### # # ))) )))) ))) ) ) ))) )))) ) ) )) ))) ) ))) ))))) )))) ))))) )))) ) ",
" ####### ####### # ##### ############# # ### ########## #### #### # ### ) ))))) ))) ) ))))))) ))))))) ) ))))) ))))))))))))) ) ))) )))))))))) ", " ######## #### ## # # #### # ######## # ### ## ######### ### #### # #### ))) )))))))))) )))))))) )))) )) ) ) )))) ) )))))))) ) ))) )) ))))))))) ",
" ", " ",
" ##### ###### ######## #### # #### ### ####### #### ### ## # ##### # ####### ## ) )))) ))) ))))) ))) )) ) ))))) ))))))) )) ))))))) ", " ### ## # ##### ####### ## ####### ### ########### # ####### ## # ### ### #### # ) )))) ))) ))))) ))) )) ) ))))) ))))))) )) ))))))) ))) ))))))))))) ) ",
" # ## ## # # ### ### ## # ### # # # ## ##### ### # # # # ### # # ))) )) )) ) ) )) ) ))) )))))) )))) )) ) ", " # ## # ### ###### #### ## # # ## # # # # ###### ### ## ## ### ## ## ))) )) )) ) ) )) ) ))) )))))) )))) )) ) ) )) ) ) ) ) ",
" # # # ", " # # ) ",
" # # # # # # )) )) ) ) ) ) )) )) ) ", " # ## # #### # # ## # # ) ) ) ) ) ) ) ",
" ## # ## ## ##### ## ###### # #### # ## ### ### #### # ## # ## )) )) ) )))) )))) ) ) ))) ) ))) ) )) ))))))) )) ) ))) )))) ))) ", " ## ### # ### #### ##### # ## #### # # ## ## ##### #### # ) )))) ))))))) )))) ))) ) )) )) )) ))))) )) ))))))) ) )))) ",
" ####### ## ##### # # ###### # ########## # ##### ## ########### # ### ) )))) )))) ))))) )))) )))) )))) ) ) ) )))))) )))))))) )))))))))) ", " # # #### ## ##### # ####### ### ###### # ### # #### #### ##### ## ))))))) )))) ))))) ))) ))))))) ))) ))) )))))))) ) ) )))))) ) ) )))))) ) ",
" ", " ",
" ## ## ## # ### ##### ##### #### ### ##### # ### ## #### ##### ### ## ## ######### ### )))))) )) )))))))))) )) )))))) ))) )) ))))))) )) ))))))) ) ) ", " ####### # ##### # ### ### # ###### ### # # #### # #### ##### #### ### ## ######## )) )) )) ))) )) ))))))) )) ))))))) ) ) ))) ) )) ) ))))) )) ",
" ## # # ## ### #### ## # # # ### # #### ## # # ## ### # # ## # # ## )) ))) ) ) ))) ) ) )) )) ))) ) ) ) ) ) )))) ) ", " ###### ## # # # # ### # ### # # # # # ### # ## ## ## ## # # # ##### ))) ) ) ) ) ) ) )))) ) )) ) ) ))) ) ",
" # # # # ) )) ) ", " # ) ) ",
" # # # # # # ) ))) ", " # # # # ## # # ## ) )) )) ) ) ) )) ) ",
" # #### ## ## #### # # # ## #### ##### # ### #### #### # ## ## ##### # )) ) ))))) ))) ))) ) ) )) ) ))))) )))) )))) ) )) ) ", " ### # # ### ## # ### ###### ### # ### # # # ##### ## ## # #### ))))) ))) )) )))) )) )) ) )))) )))) ))) )) ))))) )))) ) ) ) )))) ",
" # ##### ###### ######## ## ### ## ############ ############# #### ### ###### ### ))) ))))) ))))) )))) ))) )))))))) ))))) )))) ))))))))))) ) ", " #### ### ##### ### ### ####### #### ### #### # # #### ######## # ### ###### )))))) ))) ))) ))) ) )))) )))) ))))) )))) ))) ))) )))))))))))))) ) ",
" ", " ",
" #### #### ###### ######## ### ## # ### # ###### ###### ### ## # # ### ))) )) )))))))) ))) )) )))) ) ) )))) )))) )) ))) ))))) ))))) ) )) ", " # # # ### #### # # ## #### #### #### # # # ## ###### #### # ## ### ## ## ))))))))) ) )))) )) )) )) )) )) )) ) )) ) )))))))) ))) )) ))) ) )))) ",
" # ## #### # ##### ## ## ### # ## # # # # ##### # ## # ## # ) ) ) ))))) )) ))) )))) ) ) )))) )))) ))) ) ))) )) ", " # ## # ### # ## ## # ####### #### # # ### #### # ## # # ## # # )))) )))) )) ))) ) ) ) ) ) ) ))) )))) ) )) ) )) ) ) ",
" # # # ) ) ) ", " # # # # ) ) ",
" # # # # # ## # )) ) ) ) ) ) ) ) ", " # # ## ## # # # ) ) ) ))) ) ) ) ",
" # ### # ### ###### # ## ## # ####### #### # # # # ## # ### ##### )))) )))) ) ))) )) ))))) )) )) ))) )))) ) )))) )))) )))) ", " ##### # # ## ##### ### # #### ### # #### ## # ## # # ## ### ## #### ))) ) )))) ) ))))) )))) ))))) ) ) ) ))))) )))) ) )) )) ) )) ",
" ######### #### ####### #### ##### ##### ## #### # ### ## ### # #### ######## ))))))))) ))))))) )))))) )) ) ))) ) ))))) ))))) )))) )))))))))) )))) ) ", " # ####### ## ####### ########### ##### #### # #### ## # # ###### # ##### ) ))))))))))) )))) )))))))))) )))))) )))) ))))))))) ))) ) )) ))) )) ))) ",
" ", " ",
" ## #### ### ##### ## # ### ## ## ## ## ## ## #### ###### # # # #### ## # ## )))) ))) )))))) )) )) ))) )) ))) )))) ) )) )) ))))) ) )))) ))))) ", " ## # # # # ############ # ### #### ###### ### #### # # ###### ####### #### ## )) )) )))) ))))) )))))) )))) )) )))) ))))) )) )) ))) ))) ) ))) ",
" # # ## # ## ### ## ## # # # # # ##### ## ## ### # ## ### ) ) ) ))))) ) )) ) ) )) ))) ))) ) ) ) ) )) ) )) ))))) ", " ### # # # ########## ### # ### #### # ### ## ## # # # ###### # ## ## ))) ) ) ) ) ))) )))) )))) ))) ) )) ) ) ) ) )) ) ) ) ",
" # # ) ) ", " # # ) ",
" ) ) ) )) ) )) ", " )) ) ) ) ) ",
" # # #### ))))) )))) ) ) ) ) )) ) ))) ))))) ))) ) ) )) ))))) ))) ", " # # #### )) ) ) ) )))) )) ) ) ) )) ))) ) ) ))) ) ))) )) )) ) ",
" # ### ##### )))) )) )))) ) ))) )) ))) ) )))) )))))))) )))) )))) )))))))))))))) ", " # ### ##### ))) ))) )) )))))) )))))) ))) ))) ))) )) )))) ) ))))))))) ))) ) ",
" ", " ",
" ))))) ) )) )))))))) )) )))))) ) ) ) ) )) )))) )))) ) )))))))) )) ", " ) ))) )))) ) ))) ))))))))))) ",
" ) ))) ) )) ))) )))) ) ))) ) ) )) ) ) )) ))) )))))))) ) ", " ) ) ) )) )) )))) )))) ",
" ) ", " ) ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -90,7 +90,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ", " %% %% % % ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" # # # # # # # # ## # # ", " # # # # # # # # # ## # # ",
" ", " ",
" ", " ",
" ", " ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ", " %% %% % % ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -64,7 +64,7 @@
" ######################################################################################################################################## ", " ######################################################################################################################################## ",
" ######################################################################################################################################## ", " ######################################################################################################################################## ",
" ######################################################################################################################################## ", " ######################################################################################################################################## ",
" ## ## ## # # # ", " ## ## ## # ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" # # # # # # # # # # ## # # # # # # ## # ", " # # # # # # # # # # # ## # # ",
" ", " ",
" ", " ",
" ", " ",
@ -100,7 +100,7 @@
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ",
" $ $ $ $ ", " $ $ ",
" ", " ",
" ", " ",
" ", " ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %% %% % % ", " %% %% % % % ",
" ", " ",
" ", " ",
" ", " ",
@ -125,7 +125,7 @@
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ", " &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ",
" && && & & & & & & ", " && && & & ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -90,7 +90,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ", " %% %% % % ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -80,7 +80,7 @@
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" #################################################################################################################################################################################### ", " #################################################################################################################################################################################### ",
" # # # # # # # # ## # # # # # # # # # # ## # # ", " # # # # # # # # # ## # # # # # # # # # # # ## # # ",
" ", " ",
" ", " ",
" ", " ",
@ -115,7 +115,7 @@
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
" % %% % % ", " %% %% % % ",
" ", " ",
" ", " ",
" ", " ",
@ -142,7 +142,7 @@
" (((((((( (((((((( '''' '''' ", " (((((((( (((((((( '''' '''' ",
" (((((( (((((( '''' '''' ", " (((((( (((((( '''' '''' ",
" (((( ((((( ''' ''' ", " (((( ((((( ''' ''' ",
" (((( (((( '''' ''' ", " (((( ((( '''' ''' ",
" (((( ((( ''' '''' ", " (((( ((( ''' '''' ",
" ((( (((( '''' ''' ", " ((( (((( '''' ''' ",
" (((( ((( ''' '''' ", " (((( ((( ''' '''' ",

View file

@ -3,71 +3,71 @@
"", "",
"9", "9",
"8", "8",
"7",
"4", "4",
"5", "5",
"7",
"16", "16",
"6", "6",
"11",
"10",
"12", "12",
"10",
"2", "2",
"13", "13",
"14", "14",
"11",
"3", "3",
"15", "15",
"1" "1"
], ],
"data": {}, "data": {},
"grid": [ "grid": [
" !!!! ! !!! ! !!!!! ", " ",
" !!! !!!!! ! !! ! ", " ",
" ! !!! !! ! !!!!! !!! ! ! ", " ",
" !!!!!!! !!!!! !! !!!!! ", " !! ! !! ! ",
" ! !!!!! ! !!!! !!! ! ", " !!!!! !!!!! !!!! ",
" !!!!!!!! !!!!!!! !!!!!!! !!! ", " !!!!!!!! !!!!!!! !!!!!! !!!! ",
" !!!!!!!!!! !!!!!!!!! !!!!!!!! !!!! ", " !!!!!!!!!!!! !!!!!!!!! !!!!!!!!!! !!!! ",
" !!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ", " !!!! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!! ",
" !! # !!!!!!!!! # !!!!!!!!! !!!!!!!! ", " !! # !!!!!!!!! # !!!!!!!!! !!!!!!!! ",
" #### !!!!!!! ### !!!!! $# !!!!!! ", " #### !!!!!!! ### !!!!! ## !!!!!! ",
" ###### $$$$! ###### !!! ##$##$$$! ## %%% ", " ###### !!! ###### !!! ##### !! ## $$$ ",
" #######$#$ $!$######### ######$$$$####%%% ", " ########## ! ######### ######## ####$$$ ",
" #### ##$## ###########$ ##$#$$###$$####%%% ", " #### ##### ############ ###############$$$ ",
" &&&## $$#$#$#### ###$$##$$$$####%### %%% ", " %%%## ########## ######### ######## $$$ ",
" &&& $$$$$$$## ###$$$#$$ ####% %%%% ", " %%% ####### #&##### ##### $$$ ",
" &&& $$$$ $$####### #######$ $$$$$#%%%%%%%%% ", " %%% &&&& ###&&& & &&&#&&# &&&&&### $$$ ",
" &&&$$$$$$$ ###$$# #$##### $$$$$$$%%% %%%%% ", " %%%&&&&&&& &#&&&&&&&&&&&&&&&&&&&&&& $$$$ ",
" &&$$$$$$$$$$#####$$##$$#$$##$$$$$$$$$%% %%%%% ", " %%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$$ ",
" &&&$$$ $$$$$##$ $##$#$##$#$###$ $$$$$$ % %%% ", " %%%%&& &&&&&&&& &&&&&&& &&&&&&& &&&&&& $$$$ ",
" &&& $ $$$$$ ####$$$###$$##$ $$$%$ %%'%% ", " %%%%& &&&&& &&&&&& &&&&& &&&&& '$$$$ ",
" &&& $$$ ## $$ ## #### %%%%%%'%% ", " %%%% &&& && & '''''$'$$ ",
" &&& &(( #((( (((### ((((( '''%'''%% ", " %%% ((( (((( (((( ((((( ''''''$$$ ",
" &&&((&(&&( (((((( ())(((( (((((((''*''''*% ", " %%%%(((((( (((((( ((((((( ((((((('''''$$$$ ",
" &&((&&(((((((((((((()()))(((((((((((((** %%% ", " %%%%(((((((((((((((((((((((((((((((((( $$$ ",
" &&&(&& &((((((( ((()))))(((((((( (((((* **%%**", " %%%((( (((((((((((((((( ((((((( ((((( $$$$ ",
" &&& & &&(((( ++)((( ))((**((**********%**", " %%%%( (((((( (()((((( (((((*********** $$$ ",
" &&& & &&(((,, +++--))).)))(.*(*(******** *%%*", " %%% (((++ )))(,(----(---************$$$$ ",
" &&& & ,,,,,, +++-)))).....(((*)******%%%**% ", " %%%% ++++++ ))),((--------***.*********$$$ ",
" &&& & ,&,,, +++))).......())(( %%%%%*%% ", " %%% +++++ ))),,,--------.... ****$$$ ",
" &&& &,,,,,,, +++---)))))))(((()( % *%*%%% ", " %%%% +++++/// ))),,,............ ***$$$ ",
" &&& ,,,,,//,,/,++----))))))(()))((( ***%%% ", " %%%%+++++//////)),,,............. **$$$$ ",
" &/&,/,,//,/,///++----))) (0000000 %%***%%% ", " %%%%%++////////)),,,.... 0000000 **$$$$ ",
" //////,/,,,/,,,/+---)))) 0000000 %%**%%%% ", " %%%%++//////////),,..... 0000000 ***$$$ ",
" ///,///,// , //---))) 0000000*%%%%%*%%% ", " %%%%%+//// //,,.... 0000000*******$$$ ",
" &// /////,,,, /// )))) ********%*%%*%%% ", " %%%%%//// /// .... *************$$$ ",
" &/& / /,/, /// )))) ***********%%%%% ", " %%% /// /// .... ************ $$$ ",
" &&&/ //,, /// ))))))))))))) **** %%% ", " %%% //// /// ............. *** $$$ ",
" //&////// /// )))))))))))) ** **** %%% ", " %%% ///// /// ............. $$$ ",
" &&& ///// //// ))))))))))) **** *%% ", " %%% //// //// ............ $$$ ",
" / ///// ////// 111 * ** * ", " /////// ////// 111 ",
" /////////// 111111111111*** * ", " //////////// 1111111111111 ",
" /////////// 111111111111** * ", " ///////// 1111111111111 ",
" ///// //// 1111111111111 ", " ////// 1111111111111 ",
" / /// /// 1 1111 ", " ",
" / / /// 1 11 ", " ",
" / /// 1 ", " ",
" //// 1 1111 ", " ",
" // 1111111 ", " ",
" ", " ",
" " " "
] ]

View file

@ -13,8 +13,8 @@
"12", "12",
"13", "13",
"14", "14",
"3",
"11", "11",
"3",
"15", "15",
"1" "1"
], ],
@ -24,91 +24,91 @@
" ", " ",
" ", " ",
" ", " ",
" ! ! !! ! ", " ",
" !!!! ! ! !!! ! !!!! ", " ",
" !!!! !! !!!!! !!!!! ! ! !!! ! ", " ",
" !!!! ! ! !! ! !! !! !! ! !!! ! ", " !!! ",
" ! !!! !!!! ! !!! !!!!!! !!! !!!! ! ! ", " !!!!! !!! ",
" !! !!!!!! !! !! ! !!!! !!!! ! !!! !!! !!! !!! ", " !!!!!!!! !!!!! !!! ",
" !!! !!!!!!!!! !!! ! !!!!!!!!! !!! ! !!!!! !!!!!! !! ", " !!!!!!!!! !!!!!!!! !!!!!! !! ",
" ! !!!!!!!!!!!!!!!! ! !!!!!!!!!!! !! !!!!!!!! !!!! !!! ", " !!!!!!!!!!!! ! !!!!!!!!!! !!!!!!!! !!!! ",
" !!!!!! !!!!!!! !! !!!!! !!!!!! !! !!!!!!!!!!! ! !!! !!!!! ", " !!!!!! !!!!!!! !!!!!!! !!!!!! !!!!!!!!!!!! ! !!!!! ",
" !!!!!! !!!!! !!! !!!!!! !!!!! !!!! !!!!!! !!!!!! !!!!!!!!!!!! ", " !!!!!! !!!!! !!!!!!! !!!!! !!!!!! !!!!!!! !!!!!! ",
" !!!!! !!!!! ! !!!!!! !!!!!!! !!!!!! !!!!! ! ! !!!!! ", " !!!!! !!!!! !!!!!!!! !!!!!! !!!!!!! !!!!! !!!!!! ",
" !!!! !!!!!! !!!!!! !!!!!!! !!!!! !!!!! !!!!!! ", " !!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!!!! ",
" ! !!!!! !!!!!! !!!!!!!!!!! !!!!!!!!!!! ", " ! !!!!! !!!!!! !!!!!!!!!!! !!!!!!!!!!! ",
" !!!!!!!!! !!!!!!!!! !!!!!!! ", " !!!!!!!!! !!!!!!!!! !!!!!!! ",
" # !!!!!!! # !!!!!! !!!!! ", " # !!!!!!! # !!!!!! !!!!! ",
" #### !!!!! #### !!! ## !!! $$$ ", " #### !!!!! #### !!! ## !!! $$$ ",
" ####### ! ###### ! #### # $$$ ", " ####### ! ###### ! #### # $$$ ",
" ########## ######### ####### ### $$$ ", " ########## ######### ####### ### $$$ ",
" ####### ##### ###### ##### ######### ####$$$$$$ ", " ####### ##### ############ ######### ##### $$$ ",
" ###### ###### ###### ##### ###### ##### ###$$$$$$$$ ", " ################ ############## ############ ##### $$$ ",
" ##### ###### ##### ###### ##### ###### #####$$ $$$$$ ", " ####### ####### ####### ###### ####### ###### ###### $$$ ",
" %%%%#### ##### ###### ###### ##### ###### ###### $$$ ", " %%%%#### ####### ###### # ###### ####### ###### ###### $$$$ ",
" %%%% # & &&& #####&&&&##### & & ##### ###### #&######## $$ $$$ ", " %%%% # ####### ##### # ##### ######## # ############ $$$ ",
" %%%% & & && ###&&#&&#### & ###########& #&###### $$ $$$$ ", " %%%% ################ ########### ######### $$$ ",
" %%%% & &&#&#&### &&& ##&#####&& & &&& &&### $$$$$ $$$ ", " %%%% # ########### ######## ######## $$$ ",
" %%%% &&&&& & &&#&&# &&& ##&##&&& &&& && &&&& $ $$ $$$ ", " %%%%% ####### ####### # & # ### $$$ ",
" %%%%%% &&&&&&&& &&## & && &## && && &&&&&& $$$$$ ", " %%%% & ##### &&&& #### # & &&& $$$ ",
" %%%%% &&&& && &&&#&&&&& &&& &&&&&& & &&&&&&&&&& && $$$ ", " %%%% &&&&&& ###&&&& &&&&&& # # &&&&&&&& $$$$ ",
" %%%%%% &&&&&&&&& &&& &&&&&&&& && &&& &&&&&&&& && & &&&&&&&&&&& $$$ ", " %%%% &&&&&&&& &&&&&&&& &&&&&&&&&& &&&&&&&&&& $$$$ ",
" %%%%%% &%&&&&&&& &&& &&&&&&&&&&& &&&&&&&&&&&&&& &&& &&&&&&&&&&&& $$$ ", " %%%%% &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& $$$$ ",
" %%%%%%&&&&&&&&&&& &&&&&&& &&&&&& &&&&&& &&&& && &&&&&& &&&& & $$$ ", " %%%%%&&&&&&&&&&&&& &&&&&&& &&&&& &&&&&&& &&&& &&&&&&& &&&&&& & $$$$ ",
" %%%%%%%%%& &&&& &&&&&& &&&& &&&&& &&&& &&&&& &&&&&&&&& $$$ ", " %%%% &&&&& &&&&& &&&&&& &&&&&&&&&&&& &&&& &&&&& &&&&&&&&& $$$$ ",
" %%%%%%&%% &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ", " %%%% &&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%%%%%% &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$ ", " %%%%% & &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%%% &&&&&&& &&&&&& &&&&& &&&& $$ $$$$ ", " %%%%% &&&&&&& &&&&&& &&&&& &&&& $$$$ ",
" %%%% &&& & $$$$$$$$$ ", " %%%%% &&& & ''''' $$$ ",
" %%%% $$$'$$$$$ ", " %%%% ''''' $$$ ",
" %%%% ''$'$$$$$ ", " %%%% ''''' $$$ ",
" %%%% ''''''''''''$$$$$ ", " %%%% '''''''''''''$$$$ ",
" %%%% (( ((((( ((((( ((((((( '''''''''$'''$$$$ ", " %%%% (( ((((( ((((( ((((((( ''''''''''''' $$$ ",
" %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''$$$'$$$$$ ", " %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''''''' $$$ ",
" %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( ''''' ' $ $$$ ", " %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( $$$ ",
" %%%% %(((((((((( (((((( (((( (((((( ((((( (((((( (((( ''' ''' $$$ ", " %%%% ((((((((((( (((((( (((( ((((((((((((( ((((((((((((( $$$ ",
" %%%%%%(((( ( ((((( (((((( (( (((( ((((( ((((( ((((( (((( (( '' ''$$ ", " %%%%(((((( ((((((( (((((( (((( ((((((( ((((( ((((( (( ((((( (( $$$ ",
" %%%%%%((% (((((((( ((((((((( ( ((((((((((( ( (((((((((( ((((((((( '''' ''$$$ ", " %%%% ((( ((((( ((((( (((((((((( ( (((((((((( ((((((((( $$$ ",
" %%%%%%( (( ((((((((((((( ((((((((( (( (((((((( (((((((((( ' ' '$$$ ", " %%%% ( (((((((((( ((((((((( ((((((((( (((((((( $$$ ",
" %%%%%% % ( (((((((())( (((((((((( ( ((((( (*** (( (((( $$$ ", " %%%% ( (((((((() (((((((( ((((( *** (((((* $$$ ",
" %%%%% %%% ( (((( ))))(( ((++ (((((( (( ( ( ((((*********(*(***** $$$$$$ ", " %%% ((((( ())) ++++ ((((((( ****************** $$$ ",
" %%%%%%%%% ((( ( )))))((((((++ ,,,( (( (( ( *((*****(*((((****** $$$$$$$$ ", " %%% (())))) ++++ ((,,, ******************** * $$$ ",
" %%%% %% ((( )))))) ( +(( ,,, ((((------------ (**(*****((***********$$ $$$$$ ", " %%% )))))) +++ ,,, --------------- ********************** $$$ ",
" %%% %% ( (( ()))) ((+ ,,, ((------------((((( (((((((((***** $$$ ", " %%% ))))) +++ ,,, --------------- ****** $$$$ ",
" %%% ())))) +++ ,,, (------------((-( ((((( **$$ $$$ ", " %%% )))))))) +++ ,,, ---------..---- ***** $$$ ",
" %%% ))())) ..++ ,,, ////////////// **$$ $$$$ ", " %%%% ))))))) +++ ,,, .... ............... **** $$$ ",
" %%% ))))) ..... ,,/// ////////////////////// $$$$$ $$$ ", " %%% ))))) ) ++++ ,,, ....................... *** $$$ ",
" %%% )))))))) .+... ,//, / /////////////////////// *$*$$ $$$ ", " %%% )))))))) ++++ ,,,, ....................... *** $$$ ",
" %%% )))))) )) ) ....++..,/// //////////////////////// *** $$$$$ ", " %%% ))))))) / +++ ,,,, ....................... *** $$$ ",
" %%% ))))) ))).)..... ..+...,,/ //// *** $$$ ", " %%% ))))) ) //////// +++ ,,, .... *** $$$$ ",
" %%% )))))) ))).)))........ ..+ /,, / /// *** $$$ ", " %%% )))))) )) //////////// +++ ,,, ... *** $$$$ ",
" %%% )).)) ) ..)..............+ ,/, ///// *** $$$ ", " %%%% ))))))) ///////////////+++ ,,, ... *** $$$$ ",
" %%% )).)) .)))). .......+.++,// / /// 000000000000000 *** $$$ ", " %%%% ))))))) ////// ////////+++,,, ... 000000000000000 *** $$$$ ",
" %%%)))).. .. ))).. ...+++,,,,// /// 000000000000000 **** $$$ ", " %%%))))))) ///// //////,,,, ... 000000000000000 **** $$$$ ",
" %%% ))). . ..).. .... ,,,,// /// 000000000000000 **** $$$ ", " %%%%))) ) ///// /////,,,, ... 000000000000000 **** $$$ ",
" %%% )). . ..... ....,,,, /// *** $$$ ", " %%%%)) ///// ////,,,, ... *** $$$$ ",
" %%% .. . .... .....,, /// **** ****$ $$$$ ", " %%% //// /////,, ... **** **** $$$$ ",
" %%% .. ..... .... /// *********************$$$$$$$$$ ", " %%% /// //// ... *********************** $$$ ",
" %%% . ... ... /// *********************$$$ $$$$$ ", " %%%% /// /// ... ********************** $$$ ",
" %%% . ... ... /// ********************* $ $$$$$ ", " %%% /// /// ... ********************* $$$ ",
" %%% .. ... ... //// **** * $$$$$ ", " %%%% /// /// .... * ** * *** $$$$ ",
" %%% .... ... ///// ** * $ $$$$$ ", " %%%% //// /// ..... ** $$$ ",
" %%% .... ... /////////////////////// $$$$$$$$$ ", " %%% //// /// ....................... $$$ ",
" %%% .... .... /////////////////////* ****** $ $$$ ", " %%% //// //// ...................... $$$ ",
" %%% .... ....... ////////////////////*** **** $$$ ", " %%% //// //// ...................... $$$ ",
" %%% .... ... ... // ////////////////// $$$ ", " %%% //// /// .................... $$$ ",
" .... ..... . ////// / /// $$$ ", " //// //// .. . . .. $$$ ",
" .... ....... .. // / / /// / /// ", " //// ////// ",
" .... ......... . // // /// / ", " //// ////// ",
" .......... ..... . . .. ////// /////1/1/111111111111 ", " ////////// /////// 11111111111111111111 ",
" . .............. . ... ////11111//111//111111111111 ", " /////////////// 11111111111111111111111111 ",
" . ............ ... 11111111111111111111111111 ", " ///////////// 11111111111111111111111111 ",
" . .... .... . 11111111111111111111 ", " / //////// 11111111111111111111 ",
" .. ... . 1111 11 ", " // 1 11111 111 1 ",
" ... 111 11 ", " ",
" ..... 11 1 11 ", " ",
" ..... 111 11111 ", " ",
" 1 111111 ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -26,130 +26,130 @@
" ", " ",
" ", " ",
" ", " ",
" ! ", " ",
" ! !!! ", " ",
" !!! !! !! ! ", " ",
" ! ! !!! !! ! ", " ",
" !! !! ! !! ! !!! ", " ",
" !!!! ! !!! !!!!! ! !!! ! ", " ",
" !!! !! !!!! ! ! !!! !!! ! ! ! !!!!! ", " !! ",
" ! ! ! !!!!! ! !!! ! !!!! !!!! ! ! !!!! !! ", " !!!!!! !! ",
" ! ! !!!!!!!!! !!!! ! !!!!! ! ! ! !! ! ! ", " ! !!!!!!!! !!!!!!! !!!! ",
" !!!! !!!!!!!!!!!!!!! !!! !!!!!!! ! ! ! !!!!!! !! !!!!! ! ", " !!!!!!!!!!!! !!!!!!!!! !!!!!! ! ",
" ! ! !!!!!! !!!!! ! !! ! !!!!!!!!!! !! !! !!! !!!!!!!! ! !!! !!! !!! !! ", " !!!!!!!! !!!!! !!!!!!!!!! !!!!!!!! ! !! ",
" !!!!!!!!!!! !!!!! !! ! ! !!!!! !!!!!!!!! !! ! !!!!!!!!!!! !! !! ! !!!!!!!! ", " !!!!!! !!!!! ! !!!!! !!!!!! !!!!!!!!!!!! !!!!! ",
" !!! !!!!!! !!!!!!!!! !!!!!!! !!!!!! !!!!!!!!!! ! !! ! !!!!!! !!!!! ! !!!!!!!!!!! ", " !!!!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!! ",
" ! !!!!!! !!!!! !!! !!! !!! !!!!!! !!!!! !!! !!! ! ! !!!!! !!!!!! ! ! !! !!!!! ", " !!!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!!! !!!!!! ",
" !!!!!!! !!!!! ! ! !! !!!!!! !!!!! !!! ! ! !!!!!! !!!!!!!!! ! !!!!!!! ", " !!!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! ! !! !!! !!!!!! !!!!!! !!!! !!!!!! !!!!! ! !! !!!!!!! ", " !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!!!! ",
" !!!!! !!!!!!! !!! !!!!! !!!!!! !!! !!!!! !!!!! !! !!!!! ", " !!!!! !!!!!!! !!!!! !!!!!! !!!!!!! !!!!! ! !!!!! ",
" !!! !!!!! !!!!!!! !!!!! ! !!!!!! !!!!!! !!!!!! ", " !!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ", " !!!!!!! !!!!!!! !!!!!! !!!!!!!! !!!!!! !!!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! ", " !!!!!! !!!!!! !!!!!!!!!!!! !!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!! !!!!!!!! ", " !!!!!!!!!!! !!!!!!!!! !!!!!!!! ",
" !!!!!!! !!!!!! !!!!! ", " !!!!!!! !!!!!! !!!!! ",
" ## !!!!! # !!!! !! ", " ## !!!!! # !!!! !! ",
" ##### !!! #### ! # $$$$ ", " ##### !!! #### ! # $$$$ ",
" ######## ###### ### $$$$ ", " ######## ###### ### $$$$ ",
" ########## ######### ##### ## $$$$ ", " ########## ######### ##### ## $$$$ ",
" ###### ###### ###### ##### ######### ####$ $$$$ ", " ####### ###### ############ ######### #### $$$$ ",
" ###### ###### ######## ##### ########### #####$ $ $$$$ ", " ####### ###### ####### ##### ########### ###### $$$$ ",
" ###### ##### ###### ########### ##### ##### ######$$$$$$$$$ ", " ###### # ####### ###### # ####### ############# ###### $$$$ ",
" ########### ##### ###### ######### ################ ##### $$ $$$$$$ ", " ####### # ##### ###### # ###### ###### ####### ###### $$$$$ ",
" ###### ### # # ## ###### ##### ## ##### ######## ## ##### ###### $ $$$$$$ ", " ######## ###### ######## ##### ####### # ##### ###### $$$$ ",
" ##### # #### ######### ###### ## ##### ##### ###### ###### $$$$$$ ", " ###### ###### ######## ##### ####### ####### ####### $$$$$ ",
" %%% ### ### ### ##### ###### ## ###### ##### # ## ###### ######### $$$$$ ", " %%% #### ##### ####### ####### ##### ###### ###### $$$$ ",
" %%% #### ## # ##### ###### # ##### ###### # #### ##### ###### ### $$ $$$$$$ ", " %%% ###### ######## ####### ###### ##### ####### $$$$ ",
" %%% ## ### # ###### ###### # ##### ###### # #### ############## # $$$$ ", " %%% ####### ###### # ##### ###### ########## # $$$$$ ",
" %%% %% ## ##### ##### ## ###### ##### # & ############ #### $$$$ ", " %%% ####### ##### ####### ##### ######## # $$$$ ",
" %%% %%%%% & ## ########### & ##&&###### & # &&& ##### # ## $$$$ ", " %%%% ########### ########### ###### $$$$ ",
" %%%%% % & &&& & ### ##&&&#### & &&&& &#&&#### && & &&&& ## #### $$$$ ", " %%%% ######### ######## ##### $$$$$ ",
" %%%%% % && && ## #&&&##& && & &&&& &&&& &&& & ### $$$$ ", " %%% # ####### ###### $$$$$ ",
" %%%%% %% &&& & &&&&#&#&& &&& &&&& &&&& && &&&& & && & && $$$$ ", " %%% ##### ### & $$$$ ",
" %%% % %%% && & && &&& &&&& && &&& & & && && & & & &&&& &&&&& &&& $$$$$$ ", " %%%% # & &&&&&& $$$$ ",
" %%% %%% & && && & &&&&& &&&&& && & &&&&&&&&&&&&& &&& &&&&&&&&&&&&&& && $$$$$$$$$ ", " %%% & && &&&&&&& &&&&&&&&& &&&&&&&&& $$$$ ",
" %%%% % &&&&&&&& & & & & &&&&&&&&& && &&& &&&&&&&&&&&&&& &&& &&&&&&&&&&&&&& $$ $$$$$$ ", " %%% &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&& && & &&&&&&&&&&&& & & &&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& $ $$$$ ", " %%%% &&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&&&& & &&&&&&& &&&&&&& &&&&&& &&&&&& & &&&&&& &&&&& & $$ $$$$ ", " %%%% &&&&&&&&&&&&&& &&&&&&&& &&&&& &&&&&&&& &&&&& &&&&&& &&&&& $$$$$ ",
" %%% &&&&&& &&&& && &&&&&& &&&& & &&&&&& &&&& &&& &&&&& &&&& & & $$ $$$$$ ", " %%% &&&&&& &&&& &&&&&& &&&& &&&&&&& &&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&& &&&&&&&& &&&&& &&&& && &&&&& &&&&&& &&&&& &&&& && & $$$$ $$$$ ", " %%%% &&&&& &&&&& &&&&& &&&& &&&&&& &&&& &&&&& &&&& & $$$$ ",
" %%% &&&&& &&&&&&&& &&&&& &&&&& &&&&& &&&& & &&&&&& &&&& &&&& $$ $$$$ ", " %%%% &&&&& &&&&& &&&&& &&&& &&&&&&& &&&&&& &&&&&& &&&& & &&&& $$$$ ",
" %%% &&& &&&&& &&&&&& &&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$$$ ", " %%% &&& &&&&& &&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ", " %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ", " %%%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%%%% &&&&&&& &&&&&& &&& & $$$$ ", " %%% &&&&&&& &&&&&& &&& & $$$$ ",
" %%%%% % && $$$$ ", " %%%% && $$$$ ",
" %%% % '''''' $$$$ ", " %%%% '''''' $$$$ ",
" %%%%% % '''''' $$$$ ", " %%% '''''' $$$$ ",
" %%%%% '''''' $$$$ ", " %%% '''''' $$$$ ",
" %%%%%%%%% ''''$' $$$$$ ", " %%% '''''' $$$$ ",
" %%%% %% '''''''''''''''''$$$$$$$$$ ", " %%% '''''''''''''''''''' $$$$ ",
" %%%%%% % '''''''''''''''''$$ $$$$$$ ", " %%% ''''''''''''''''''' $$$$$ ",
" %%% ((( (((((( ((((((( '''''''''''''''''$' $$$$$$ ", " %%% ((( (((((( ((((((( ''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( ' ' $$$$$$ ", " %%% ((((((( (((((((( ((((((((( ((((((((((( ''' '' ' ' ' ' $$$$$ ",
" %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( '''''' $ $$$$$ ", " %%%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( '' $$$$ ",
" %%% ((((((((((((( ((((((((((((( (((((((( ((((( (((((( ((( (((( $$ $$$$$$ ", " %%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( ((((( $$$$ ",
" %%% ((((((( ((((( (((((( (((((( ((((( ((((( (((( ((((( ( (((( '' ' ' ' $ $$$$ ", " %%% (((((((( (((((( (((((((((((((((( ((((( ( (((( ((((( (((((( $$$$$ ",
" %%% (((((((((( (((( (((((((((((( ((((( (((((( ((((( ((((( ((((( ((( (((( ( '''' $$$$ ", " %%%% ((((( ( (((((((( ((((((( ((((( ((((((( ((((( ((((( (((((( ( $$$$ ",
" %%% ((((((( ( ( (((( ((((( ( ( (((( ((((( ( (((( (((((( ( ( ( ((((( ((( $$$$ ", " %%%% ((((( ((((( (((((( ( (((( ((((( ( (((( (((((( ( ((((( ((( $$$$ ",
" %%%%% (((( ( ( (((( ((((( ( (( (((( ((((( ( ((((( (((((( ( (((( (((((((((((( $$$$ ", " %%%% (((( ((((( (((((((( (((( (((((( (((((( (((((( ((((((((((((( $$$$$ ",
" %%% %% %( ((((( (((((( (((((( (((((( ((((((((((( ( ((( (((((((((( ( ( ( (((((((((( $$$$ ", " %%%% (( (((((( ((((((( (((((((((((( ((((((((((( ((((((((((( $$$$$ ",
" %%% %%%% (((( ( (((((((((((( ( ((( ((((((((( ( ( ( (((((((( (( ((((((( $$$$ ", " %%% ((((((((((((( ((((((((( ( ((((((((( ((((((( $$$$ ",
" %%%% %% ( ( ((((((((( )) (( (((((( (( ((((( ( ( (( ( $$$$$$$ ", " %%% ((((((((( ( )) ((((((((( (((((((( ( ((( $$$$ ",
" %%% % %% (( (((((((( )))) *(* (( ( ( ( (( ((( +++++++ ((( ( $$$$$$$$$ ", " %%%% (((( )))) *** (( ( ( +++++++ $$$$$ ",
" %%% %% ( (( ))))) **** ( ((((( ( (((((( ++++++++++++++++++((+++++++ $$ $$$$$$ ", " %%%% ))))) ***** +++++++++++++++++++++++++++ $$$$ ",
" %%% % % ((( )))))) **** ( ,,,(( ( ((((+++++++++++++++++((+++((((+++ $$$$$$ ", " %%% )))))) **** ,,, - +++++++++++++++++++++++++++++ $$$$ ",
" %%% %%%% ((( ())))) *** ((,(( (( -- (( (( (( .++.++++++++++++(((+(+((++++++ $$ $$$$$$ ", " %%%% ))))) *** ,,,, ------ -- - -------- +++++++++++++++++++++++++++++ $$$$$ ",
" %%% %% ( (((())) *** (((,(( -----.--....---(-((((- ....... ( ( +++++++++ $$ $$$$$ ", " %%%% ))))) **** ,,,, ---------------------- +++++++++ $$$$ ",
" %%% (((((())) *** (,(, -----..-...----------- ...... +++++ $$$$ $$$$ ", " %%%% )))))) **** ,,,,, ---------------------- +++++ $$$$ ",
" %%% ))))))) ) *** ,,, -----.---------------- .. .. ++++ $ $$ $$$$ ", " %%% ))))) **** ,,, ---------------------- ++++ $$$$ ",
" %%% ))))))) ) **** ,,, ...... .. ... ... ++++ $$$$$$ ", " %%%% ))))) **** ,,,, ++++ $$$$ ",
" %%% )))))))) ))) **** ,,, ..... ... . . ... ++++ $$$ ", " %%% )))))))) ***** ,,, . .. .. . .. +++++ $$$ ",
" %%% ))))) ) ) ))) **** ,,, ........................ +++ $$$ ", " %%% ))))) ***** ,,,, ........................ ++++ $$$ ",
" %%% ))))) ) ) / /// *** ,,,, . ................................ +++ $$$ ", " %%% ))))))) **** ,,,,, ................................ ++++ $$$ ",
" %%% %% )))))) ))) ///// *** ,,,, ... . ................................ +++ $$$ ", " %%% )))))) ) **** ,,,,, ................................ ++++ $$$ ",
" %%% %%%% ))))) ))) / / *** ,,,. . . .................... +++ $$$ ", " %%% ))))))) **** ,,,, ................... ++++ $$$ ",
" %%% %%%%% )))))) / //// *** ,,, .. ...... +++ $$$ ", " %%% )))))) ) **** ,,, .... ++++ $$$ ",
" %%% % % )))))) //// /// **** ,,, .. ...... +++ $$$ ", " %%% )))))) ) //// / **** ,,, , ..... ++++ $$$ ",
" %%% % %% ))))) /////////// // ///* ,,,.... ... +++ $$ $$$$ ", " %%% ))))))) /////////// //// **** ,,,,, .... ++++ $$$ ",
" %%% % %% )))))) ///////////////// / */* ,,,,. .. ... +++$$$$$$$$$ ", " %%% )))))))) / ///////////////// *** ,,,,, .... +++ $$$ ",
" %%% % % )))))) //////////////////////***//,,,, .. ... +++$$$ $ $$$ ", " %%% ))))))) //////////////////// **** ,,,,, .... +++ + $$$$ ",
" %%% %% ))))) ))) ) ////// //////// //*///,,,, ..... +++ $ $$$$$ ", " %%%% ))))) ) /////// //////// **** ,,,,, .... ++++ $$$ ",
" %%% %% )))))))))))))) ///// //// ***///,, .... 00000000000000000000000 ++++ $$$$$ ", " %%%% )))))) ///// //// *** ,,,,, .... 00000000000000000000000 +++++ $$$$ ",
" %%% )))))))) ) )))////// /////*/ //,, .... 00000000000000000000000 ++++ $ $$$$ ", " %%%% )))))) ////// /////** ,,, ..... 00000000000000000000000 +++++ $$$ ",
" %%% ))))) )))////// /////// ,,, ... 00000000000000000000000 +++ $$ $$$$$ ", " %%% ))))) ////// ///// ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% ))) ///// //// / /,,, ... 00 00 0 +++ $ $$$ ", " %%%% ))) ////// ////// ,,,, ... 0 000 000000 ++++ $$$$ ",
" %%% )) ))) //// //// ,,,, ... 000000 +++ $$$ ", " %%%% )) //// //// ,,,, .... 00 +++ $$$ ",
" %%% ) /// //// ,,,, ... ++++ $$$ ", " %%% //// //// ,,,, .... ++++ $$$ ",
" %%% //// ///// ... 0000 0000 ++++ $$$ ", " %%%% //// ///// ... ++++ $$$$ ",
" %%% % //// //// ... +++0+0+0+000++++++++++++++++++++++ $$$ ", " %%%% //// //// ... ++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% %% %% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ", " %%%% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% % /// //// ....... +++++++++++++++++++++++++++++++++ $$$$$$ ", " %%%% /// //// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% %% /// /// ... ..... + + +++++++++++ $$$$$$$$ ", " %%%% //// /// .... ++++++ ++++++++++++++ $$$$ ",
" %%% %% %% /// /// .. . ... ++++++ +++++++ $$ $$$$$ ", " %%%% /// /// .... +++ +++++ $$$ ",
" %%% %% %% / /// /// .. . .... + ++++++ $$$$$$ ", " %%%%% /// /// .... $$$ ",
" %%% %% %% // ////// //// .. ....... ++++ + ++ $$ $$$$$ ", " %%%% //// //// ..... $$$$ ",
" %%% % % / / ////// /// / // . ......... +++ + +++++ $$ $$$$ ", " %%%%% //// //// ..... $$$ ",
" %%% /// /// ///// / / .. .. ...... +++ + $$$$ $$$ ", " %%%% /// //// ...... $$$ ",
" %%% // ////// ////// .. ............................... $ $$ $$$ ", " %%% //// //// ............................... $$$ ",
" %%% // ////// /// // / . .............................. $$$$$ ", " %%% //// //// .............................. $$$ ",
" %%% / // //// /// // / ............................ $$$ ", " %%% //// //// ............................ $$$ ",
" %%% // /// //// ///// / .. ... . ... . $$$ ", " %%% //// //// .... ..... ...... $$$ ",
" / //// //// / . ... . . . $$$ ", " //// //// .. $$$ ",
" //// ///// / .. .. ", " ///// ///// ",
" //// ////// ......... .... .... ", " ///// ////// ",
" //// ////// .. ... . . ... ", " ///// //////// ",
" ///// ///// ", " ////// ////// ",
" //////// ////// ", " //////// ////// / ",
" ///////////// /////// 11111111111111111111111111111111111111 ", " ////////////// ////// 11111111111111111111111111111111111111 ",
" ////////////////////// 11111111111111111111111111111111111111 ", " ///////////////// / 11111111111111111111111111111111111111 ",
" // //////////////// / 11111111111111111111111111111111111111 ", " / / //////////// 11111111111111111111111111111111111111 ",
" / //// //////// //// 11111111111111 1 1 ", " / /// //// 11111111111111 11 1111 11 1 ",
" // /// / / // 1111111 1111111 ", " 111 1 111 1 ",
" ////// // /// 111111 11 ", " ",
" ///// / / / / 11 1 11 1111111 ", " ",
" / / / 11 11111 111 11 1 ", " ",
" 11 111111 ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -9,10 +9,10 @@
"16", "16",
"6", "6",
"2", "2",
"10",
"12", "12",
"14", "10",
"13", "13",
"14",
"11", "11",
"3", "3",
"15", "15",
@ -33,164 +33,164 @@
" ", " ",
" ", " ",
" ", " ",
" !!! ! ", " ",
" !! !! !! !! !!! ", " ",
" ! !! ! ! ! !!!! !! ! ", " ",
" !!!!! !!!! ! ! ! !!! ! ! ! ", " ! ",
" !!! !!!! !! ! ! ! ! ! !!! ! ", " ! !!!! ",
" !!!!!!!!!! ! !!! !!!!!!! !! ! !!! !!!! !!! ", " !!!!!!!! !!! ",
" !!!!!!!!! ! ! ! !!!!!!! !!! ! !!!!!!!! !!! ! ", " !!!!!!!!!! ! !!!!!! ! !!! ",
" ! ! !!!!!! !!!!! !!! ! ! !!!!!!! !!!! ! !! !!!!! ! ! !!!!! ", " !!!!!!!! !!!!! !!!!!!!!! !!!!! ",
" !!! !!!!!! !!!!!!!!!! ! !!!!!!!!!!!!!!! ! ! !!!!!!!!! !!! !!! !! ! ", " !!!!!!!! !!!!!!!! !!!!!!!!!!!! !!!!!!!!! ! ",
" !!! !!!! !!!!!! !!!!!!!!! !! !!!!!! !!!!! !! ! !!!!!!!!!!! !!! !!! !!! !!!! ", " !!!!!!!! !!!!! ! !!!!!! !!!!! !!!!!!!!!!! !!!!! ",
" ! !! !!!!!! !!!!! !!! ! !!!!!! !!!!! ! ! ! !!!!! !!!!!!!!!! ! ! !!!!!!!! ", " !!!!!! !!!!! ! !!!!!!! !!!!! !!!!!! !!!!!! !!!!!!!! ",
" !!!! !!!!!! !!!!!!! !! !! ! !!!!!! !!!!!! !! ! !!!! !!!!!! !!!!!!!! ! ! ! !!!!! ", " !!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! ",
" ! ! !!!!!!!! !!!!!! !!!! !!!!! !!!!!! ! !!! !! !!!!!! !!!!! ! ! !! !!!!!!!!! ", " !!!!!!! !!!!!!! !!!!! !!!!!! ! ! !!!!!! !!!!! !!!!!! ",
" ! !!!!!! !!!!! ! !! !!!! !!!!!! !!!!! !!!!! !!! !! !!!!! !!!!! ! ! !! !!!!!! ", " !!!!!!! !!!!!! !!!!!! !!!!! ! !!!!!! !!!!!!! ! !!!!!! ",
" !!!!!!! !!!!! !! ! ! ! !!! !!!!!! !!!!! !!! ! ! !!!!!!!!! !!!!!! !!!! !!!!! ", " !!!!!!! !!!!! ! !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!!! ",
" !!!!!! !!!!!! !!! ! !! !!!!!! !!!!!! !! ! !!!!!! !!!!! !!!!! !!!!!! ", " !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!!! !!!!!! !!!!!!! ",
" !!!!! !!!!!! !! !!! !!!!!! !!!!! !!! !!! !!!!! !!!!! ! !!!!!! ", " !!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! !!!!!!!! ",
" !!!! !!!!! !!! !!! !!!!! !!!!! !!! ! !!!!!! !!!!!!!! ! !! !!!!! ", " !!!! !!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!!! ",
" ! !!!!! !!! !!!!!!! !!!!!!!! !!!!! !!!!!!!! !! !!!!!!! ", " ! !!!!! !!!!!!! !!!!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!!!!! !!!!! !!!!!! !!!!!! !!!!! !! !!!!! ", " !!!!!! !!!!!!! !!!!!! ! !!!!!! !!!!!!! ! !!!!! ",
" !!!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!!! ", " !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!! ", " !!!!! !!!!!!!! !!!!!! !!!!! !!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!! !!!!!!!! ", " !!!!!!!!!!! !!!!!!!!!! !!!!!!!! ",
" !!!!!!!!! !!!!!!! !!!!! ", " !!!!!!!!! !!!!!!! !!!!! ",
" !!!!!! !!!! !!! ", " !!!!!! !!!! !!! ",
" ### !!! # !! $$$ ", " ### !!! # !! $$$ ",
" ##### ! #### $$$ ", " ##### ! #### $$$ ",
" ######## ####### ## $$$ ", " ######## ####### ## $$$ ",
" ########### ########## ##### # $ $$$ ", " ########### ########## ##### # $$$$$ ",
" ###### ####### ###### ##### ######## ### $$ $$ $$$ ", " ############## ############ ######## ### $$$$$ ",
" ####### ## ##### ##### ## ##### ########## ##### $ $$ $$$ ", " ####### # ##### ####### ###### ########## ##### $$$$ ",
" ###### # ##### ###### ### ###### ##### ##### ##### $ $$$ ", " ######## ##### ####### ###### ##### ##### ##### $$$ ",
" ###### # ###### ######### ###### ######## ###### ###### $ $$$ ", " ####### ####### ####### ####### ###### ###### ###### $$$ ",
" ###### # ####### ####### # # ##### ########## ###### ###### $$ $ $$$ ", " ###### ####### ##### # ##### ####### ###### ###### $$$$ ",
" ######### ## # ##### ###### # ### # # ##### ##### ### ##### ######## $$ $ $$$ ", " ###### ## ####### ####### ##### ####### ####### ####### $$$$$ ",
" ####### ### ### ##### ##### # ## # ## ###### ##### # # ## ###### ###### ##### $ $$$ ", " ####### ###### ###### ###### ##### ######## ####### $$$$$ ",
" ########## ## #### ###### ###### ### # ## ##### ###### ##### ###### ###### ## ### $$ $$$ ", " ######## ######## ###### ###### ####### ####### ####### $$$$$ ",
" ######## # # # # ##### ######### # #### ##### ##### ### ## # ##### ###### ## ### $$$ ", " #### # # ##### ###### ###### ##### # ######## ######## $$$ ",
" %%% ## # ### ## # ##### ##### ### ## # ###### ##### ## # # ######## ###### # ### $$$ ", " %%% ## ####### ##### ###### ##### ######## ####### $$$$ ",
" %%% ## # # ###### ######## ### # # ###### ###### ######### ##### #### $$$ ", " %%% ######## ######## ####### ###### ####### ##### ## $$$ ",
" %%% % ### ######## ######### ### #### ##### ######## ## # ###### ###### $$$ ", " %%% ######## ####### ####### ####### # ###### ######## $$$ ",
" %%%%% %% # ### ##### ###### # ### ### ##### ##### ## # # ########### $$$ ", " %%% ####### ###### # # ##### ####### ############## $$$$$ ",
" %%%%% % #### ##### ###### ### ### ###### ##### ## ## # ####### # $$$ ", " %%% ####### ######## ######## ##### ####### $$$$ ",
" %%% % ##### ###### ##### ### # ########### ## # # ###### # $ $$$ ", " %%%% # ###### ####### ############# ##### $$$$ ",
" %%% % %% ### ########### # && ######## # ## &&& && ### ###### # $ $ $$$ ", " %%%% ########### # ########## ## $$$$ ",
" %%% % %%% & ### ######## && && &&& ###### # # &&&& && ### #### ### $$ $$ $$$ ", " %%% ######## # ######## $$$$$ ",
" %%% %%%%% &&&& ### ##&&& && && & &### ### & ### ## # $$ $$ $$$ ", " %%%% ####### #### $$$ ",
" %%% % &&&& ### &#&& &&&& & &&&&& &&&# # &&& & # # # $$ $$ $$$ ", " %%%% ### # ## $$$ ",
" %%% % && & && & & && & && && &&&&& && & &&&&&&& & ## $$ $$$ ", " %%%% && $$$ ",
" %%% &&& & &&&& & & &&&&& && & & && && &&&&&&&& &&& $ $$$ ", " %%% && & & &&&&&&&&& $$$ ",
" %%% &&& && &&&&&& & &&& &&&&&& & & & &&&&&&&& &&&&& &&&&&&&&&& && $$ $$ $$$ ", " %%% & &&& &&&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%% && && & &&&&&&&&& & &&&&&&&&&&&&&&& & &&&&&&&&&&&& && & && &&&& &&&&&&&&&&&&& && & $ $$$ ", " %%%% &&&&&&&&& &&&&&&&&&& & &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& $$$$$ ",
" %%% & &&& &&&&&&&&&&& && & &&&&&&&&&&&&& && &&&& &&&&&&&&&&&&&&& && && &&&&&&&&&& &&&&& & & $$$ ", " %%% &&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&& &&&&& $$$$$ ",
" %%% &&& &&&&&&&&&&&&&& & & &&&&&&& &&&&&& & && && &&&&&&& &&&&&&&& & &&& &&&&&& &&&&& & && $$$$ ", " %%%% &&&&&&&&&&&&&&& &&&&&&& &&&&&&& &&&&&&&& &&&&&& &&&&&&& &&&&& $$$$ ",
" %%% &&& &&&&&&& &&&&& &&& & &&&&&&& &&&&& & &&& & &&&&&& &&&&&&&& & &&&&& &&&&&&&&&& $$$$ ", " %%%% &&&&&&&& &&&&& &&&&&&& &&&&&& &&&&&&&& &&&&&& &&&&&& &&&&& $$$$$ ",
" %%% %% &&&&&&& &&&& &&&& & &&&&&& &&&&&& && &&& &&&&& &&&&&& & &&& &&&&& &&&& && $$$$ ", " %%%% &&&&&& &&&& &&&&&&& &&&& &&&&&&& &&&&& &&&&&&& &&&& $$$$ ",
" %%% %%%% &&&&&& &&&&& & && &&&&& &&&&& & &&&&&&&&&& &&&& &&& &&&&&&& &&&& & & $$$$ ", " %%%% &&&&&& &&&&& &&&&& &&&&& &&&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%% %%%%%&&&&& &&&& & & &&&&& &&&& && &&&&&&& &&&&&&& &&&&& &&&&&& &&& && $$$$$$ ", " %%%% &&&&& &&&&& &&&&&& &&&& &&&&&& &&&& & &&&&& &&&&& &&& $$$$$ ",
" %%% % %&&&&& &&&& && &&&& &&&&& &&&& & &&&&& &&&&& &&&&& &&&&& &&& &&&&& $$ $$$$$$ ", " %%% &&&&& &&&&& &&&&&& &&&& &&&&&&& &&&&&& &&&&& &&&&&& &&&&&& $$$$$ ",
" %%% % %% &&& &&&& &&& &&&&&& &&&& &&&&& &&&&& &&&&&& &&&&&&&&&&&&&& $ $$$$$$ ", " %%% &&& &&&& &&&&&&& &&&& &&&&& &&&&&& &&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% % %% & &&&&& &&&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $ $$$$ ", " %%% & &&&&&& & &&&&&&& &&&&&& &&&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $$$$$ ",
" %%% % % &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $ $$$$$$ ", " %%% &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$$ ",
" %%% %% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$ $ $$$$ ", " %%% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ",
" %%% %% &&&&&&& &&&& & $$ $ $$$$ ", " %%% &&&&&&& &&&& & $$$$ ",
" %%% && $ $$$$ ", " %%% && $$$$ ",
" %%% $$$$$$ ",
" %%% $$$$ ", " %%% $$$$ ",
" %%% '''''''' $$$$ ", " %%% $$$$ ",
" %%% '''''''' $$$$ ", " %%%% '''''''' $$$$$ ",
" %%% '''''''' $$$$ ", " %%%% '''''''' $$$$$ ",
" %%% % ''' $$$$ ", " %%%% '''''''' $$$$ ",
" %%% % ''''''''''''''''''''''''' $$$$ ", " %%%% ''' $$$$ ",
" %%% % %% ''''''''''''''''''''''''' $$$$ ", " %%%%% ''''''''''''''''''''''''' $$$$ ",
" %%% % %% (( '''''''''''''''''''''''''$ $ $$$$ ", " %%% ''''''''''''''''''''''''' $$$$ ",
" %%% %% ((((((( (((((((( '''''''''''''''''''''''''$$ $$$$$$ ", " %%%% (( ''''''''''''''''''''''''' $$$$ ",
" %%% %% %% (((((( (((((((( (((((((((( (((((((((((( ' ''' $$ $$$$$$ ", " %%%% ((((((( (((((((( ''''''''''''''''''''''''' $$$$ ",
" %%% % %% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( ' ''' $ $$$$$$ ", " %%% (((((( (((((((( (((((((((( (((((((((((( ''' '' ''' ''' $$$$$ ",
" %%% %% % (((((((((((((( ((((((((((((((( (((((((( ( ((((( ((((((( ((((( ''' '' $$$$$$ ", " %%%% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( $$$$ ",
" %%% ((((((( (((((( ((((((( ((( (((( (((((( (( (((((( (((((( ((((((( ' ' ' ''' $$$$$ ", " %%%% (((((((((((((( ((((((((((((((( ((((((((( (((((( (((((((( ( (((( $$$$$ ",
" %%% ((((((( ( (((( (((((( (((((( (((( (((((( (((( (((( ((((( (( (((( ' ' ''' $$ $$$$$$ ", " %%%% ((((((((( (((((( (((((((((( ((((( (((((( (((((( (((((( ( (((( $$$$ ",
" %%% (((((( (( (((( (((((( ( (( (((( ((((( ( ((((((( ((((( ( ((((((( $ $$$$ ", " %%%% ((((((( ( ((((((( (((((((( ( ((((( (((((( (((( ((((( ( ( (((( $$$$ ",
" %%% (((((((((( ( (((( ((((( (( (((( (((((( ((( (((( ((((((((( (( (((((( (( $$$$ ", " %%% (((((( (( ((((( ((((((( (((( ((((((( ((((( ((((( ( (((((( $$$$$ ",
" %%% ((((((((( (((( ((((( ((((( (( (( (((( ((((( ( ((( (((( (((((((((( (( ( ((((((( (((( $$$$ ", " %%%% (((((( (((( ((((( ((((( ((((((( (((((( (((((((( ((((( (( $$$$ ",
" %%% (((( ( ((( (( (((( (((((( ((( (( (((( ((((((( ( (( (((( (((((((( ( ((( ((( ( ((((( (((((( $$$$ ", " %%%% ((((((( (((( ((((( ((((( ((((((( ((((( ((((( ( (((( (((( $$$$ ",
" %%% %% (( (((( ( ((((( (((((( ( ((((( (((((( (( ( ( (((((((((((((( ( (( (( ((((((((((((( $$$$ ", " %%%%% (((( (((( (((((( ((((( ((((( ( (((((( ((((((( ((((( (((((( $$$$$ ",
" %%% % %% ((( ((((((((( (((((( ( (((((((((((((( (((( ( (((((((((((( (((( (( ((((((((( $$$$ ", " %%%%% (( ((((( ((((((( (((((( (((((( ( ((((((((((((((((( (((((((((((((( $$$$$ ",
" %%% %% (( ((((((((((((( (((((((((((( (( (( ((((((((( ((( ((( (((((( (( $$$$$$ ", " %%% (((((( (((((((( (((((((((((( (((((((((((( ( (((((((((( $$$$ ",
" %%% %% % ( (((((((( ((( )) (((((((((( (( ( (( ((( ( ((( (((((( * $$ $$$$$$ ", " %%% (((((((((((( (((((((((( (((((((((( ( (((((((( $$$$ ",
" %%%%% % (( ( ((((( ( (((() +++ (((( ( ((( ,, (((((( ((( (( ( (( ** ** * $$ $$$$$$ ", " %%% (((((((((( )) ((((((((( ((( ((( (((( $$$$$ ",
" %%%% % %% (( ( ())()) +++ (( ((( ,,, ,, ((((( ************ (( ( * * ** $$$$$$ ", " %%%% (((((( ( )))) *** (( ( + $$$$ ",
" %%%%% ((( ( ((())) +++ ( ( ( ((( ( ***************************((((( *** * *** $ $$$$$$ ", " %%%% ( ( ))))) *** +++++++++++++ + +++++ $$$$ ",
" %%%% % % ((((( (()())) ++++ ( (((((--- ,,,,,,,, (( ((((( **************************((*(******* ******* $$ $ $$$$ ", " %%%% )))))) *** ++++++++++++++++++++++++++++++++ + $$$$$ ",
" %%%%%% ((( ()))) ++++ ((( ((--- ,,, ,,,,, ( ((( ********************************* * * $$ $ $$$$ ", " %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) ) +++ (--- ,,,,,, **************** $ $$$$ ", " %%%% ))))))) **** ,,, - - ++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% ))))))))) ) +++ ---- ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ****** $$$$$$ ", " %%%% )))))))) *** ,,, ------- - --- - ----- +++++++++++++++ $$$$ ",
" %%%% ))))) ))) )) +++ ----- -- ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, . .. **** $$$$ ", " %%%% )))))))) **** ,,,, ----------------------------- +++++++ $$$$ ",
" %%%% )))))) ))) )) +++ --- -- - ,,,,,,,,,,,,,,,,,,....,..,,,, .. ... . **** $$$$ ", " %%%% ))))))) **** ,,,, ----------------------------- ++++++ $$$$ ",
" %%%% )))))) ) ))) ++++++ + ------ - . ... ... .. . .... **** $$$$ ", " %%%% )))))) ) **** ,,, ----------------------------- +++++ $$$$ ",
" %%%% ))))) ) ++++ ++ + --- - ... ... .. . .. . .. **** $$$$ ", " %%%%% )))))) ) ***** ,,, +++++ $$$$ ",
" %%%%% )))))) )) +++++++ ----- -- . .. ..... ... ..... **** $$$$ ", " %%%% )))))))) **** ,,, +++++ $$$$ ",
" %%%%%% )))))) ) ++++ ++ ---- -- .. ..... ... . . . *** $$$$ ", " %%%% )))))) ) *** ,,, ++++ $$$$ ",
" %%%% %% ))))) +++ + + ----- -- . .. ................................. *** $$$$ ", " %%%%% )))))) *** ,,,, . .. .. . . . +++ $$$$$ ",
" %%%%%% % )))))) / +++ + ++ ---- -- .......................................... *** $ $ $$$$ ", " %%%%% ))))))) **** ,,,,, . ................................. +++ $$$$ ",
" %%%%%% )))))))) // //// // ++++++ ++ --- -- ........................................... *** $$ $$$$ ", " %%%% ))))))) *** ,,,,, .......................................... +++ $$$$ ",
" %%%%%%%%% ))))) ))) ///// //// ++++++++ --- ................. *** $$ $ $$$$ ", " %%%% )))))) **** ,,,, ............................................ +++ $$$$ ",
" %%%%%% %% )))))) ))) )) // // // ++++++ --- ..... *** $ $$$$$$ ", " %%%% ))))) **** ,,,, .................. +++ $$$$ ",
" %%%%%%%%% )))))) )) ) ) /// /// // // +++ --- .... *** $$$$$$ ", " %%%% )))))) *** ,,,, ...... +++ $$$$ ",
" %%%%%% ))))) )) ) // //// ///// / +++ ---- . ... *** $$$$$ ", " %%%% )))))) **** ,,, .... +++ $$$$$ ",
" %%%% )))))) ) )) //////// /// / +++ ---- . . ... *** $$ $$$$$$ ", " %%%%% ))))) ) / // **** ,,,, ... +++ $$$$$ ",
" %%%% )))))) ))) /////////////// / +++ ---- .. . .... *** $ $$$$ ", " %%%% )))))))) //////// **** ,,,,, .... +++ $$$$ ",
" %%%% ))))) ) ////////////////////// ++++ --- . . .... *** $$$$ ", " %%%% )))))) /////////////////// / **** ,,,,, .... +++ $$$$ ",
" %%%% )))))) ////// ////////////// ++++ --- .. ..... *** $$$$ ", " %%%% ))))))) //////////////////////// **** ,,,, .... +++ $$$$$ ",
" %%%% )))))) ////// ///////// +/+ --- . ..... **** $$$$ ", " %%%% ))))))) /////// //////////////// **** ,,,, ... +++ $$$$ ",
" %%%% %% ))))) ) ///// //// /++/ --- ... ..... **** $$$$ ", " %%%% )))))) /////// ///////// *** ,,, .... ++++ $$$$ ",
" %%%% %%%% ))))))))) ) ////// ///////++// ---- . ... 00000000000000000000000000000 **** $$$$ ", " %%%% )))))) ) /////// //// *** ,,,, ... ++++ $$$$ ",
" %%%%%% %)))))))) )) ////// //// /++////---- . ... 00000000000000000000000000000 *** $$$$$$ ", " %%%% ))))))))) ////// ///// *** ,,,, ... 00000000000000000000000000000 ++++ $$$$ ",
" %%%%%% %%)))) ))) )) ///// //// / / --- ... 00000000000000000000000000000 *** $$$$$$$$$ ", " %%%% )))))))) / ////// //// *** ,,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%%%% )%))) ) ) )) ////// //// // /--- ... 00 00 0 0000 *** $$ $$$$$$ ", " %%%% ))))))) /////// //// ,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% % %%%) ) ) ////// /////// --- ... 000000 0 00 *** $$$$$$$ ", " %%%% )))))) ////// ///// ,,, ... 0 000 0000000 0 +++ $$$$ ",
" %%% %) ))) ///////// //// // --- ... **** $ $$$$$$ ", " %%%%% ))) ////// ///// ,,, ... 00 ++++ $$$$ ",
" %%%% % ) //////// //// / --- ... 00000000 00 00000 ****** **$$ $ $$$$ ", " %%%% ) //// ////// ,,, ... ++++ $$$$ ",
" %%% / / /// //// --- ... 00 0000 000000 *** ** *$$ $ $$$$ ", " %%% /// //// ,,, ... ++++ $$$$ ",
" %%% // // /// ///// ... ***** * $ $$$$ ", " %%% /// //// ,,, ... ++++ $$$$$ ",
" %%% / / /// //// ... **************** **** * * $$$$$$ ", " %%% /// ///// ... +++++ $$$$ ",
" %%% // / //// /// . ... ********************************************** ** $$$$ ", " %%% /// //// ... ++++++++++++++++ +++++ $$$$ ",
" %%% // // //// /// .. ..... ******************************************** * * $$$$ ", " %%% //// /// ... +++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% // /// //// ..... ********************************* * ** $$$$ ", " %%%% //// /// ... ++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% ////// //// . ... * * *** ** ** *** ** $$$$ ", " %%%% /// //// ... + ++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%%% /// //// .. ..... * **** * **** ** *** $$$$ ", " %%% //// //// .... ++++ +++ ++++ $$$$ ",
" %%% %% % /// /// / ......... ** * * $$$$ ", " %%%% /// //// ..... $$$$$ ",
" %%% %%%%% //// /// // .. .. .... **** * ****** ***** ** $$$$ ", " %%%% /// /// .... $$$$$ ",
" %%%% %% /////// ///// / . ..... ** * *** ** * ******* $ $ $$$$ ", " %%% ///// //// ..... $$$$$ ",
" %%%%% %% //////// ///// // . .... $$ $$$$ ", " %%% ///// //// ...... $$$$$ ",
" %%%%%% // ///// ///// // ..... $$ $ $$$$ ", " %%%% //// //// ..... $$$$ ",
" %%%%% %% // / /// //// / ...... $ $$$$$$ ", " %%% /// //// ..... $$$$$ ",
" %%%%%%%% // / /// /// / // .......................................... $$$$$$ ", " %%%% /// //// ....... $$$$$ ",
" %%%%%% // ///// /// //// ......................................... $$$$$ ", " %%%% / /// /// / .......................................... $$$$ ",
" %%% / // //// /// / . .. ...................................... $$ $$$$$$ ", " %%% //// //// ........................................ $$$$ ",
" %%% / // //// /// .. . . . . .. . $ $$$$ ", " %%% ///// /// ........................................ $$$$ ",
" %%% / //// /// .. ... .. ... ... .. $$$$ ", " %%% ////// //// ... . . . ...... $$$$$ ",
" //// //// ... . $$$$ ", " %%% ///// /// . $$$$ ",
" //// ///// ..... .. . . . . ..... $$$$ ", " ///// ///// $$$$ ",
" ///// ///// ... .... ... .... ", " ///// ////// $$$$ ",
" //// ////// ", " ////// ///// ",
" ///// //////// ",
" //// /////// ", " //// /////// ",
" //// ///// ", " //// /////// ",
" ///// /////// / / ", " ///// ////// ",
" / ///// ///////// /// ", " ///// ////// ",
" / /////////// ///// / /// ", " /////////// ///// ",
" // / /////////////////////// / / 11111111111111111111111111111111111111111111111111 ", " /////////////////////// 11111111111111111111111111111111111111111111111111 ",
" / / //////////////////// /// 11111111111111111111111111111111111111111111111111 ", " //////////////////// 11111111111111111111111111111111111111111111111111 ",
" / / //////////// /// 11111111111111111111111111111111111111111111111111 ", " // ///////////// 11111111111111111111111111111111111111111111111111 ",
" //// / / //// 1111111111 1 1 1111 ", " / /// ///// 11111111111 111111 11 11 1111111111 ",
" / /// // /// 1111111 1 1 1 1 11 ", " / /// 1 11 11 11 ",
" /// ///// 111 11 1 1 ", " ",
" / /// / 11 1 11 11111 1 11111 ", " ",
" // ///// 11 11111 111 11 1 111111 ", " ",
" ////// 1 111111 ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -27,42 +27,42 @@
" !!!!! !!!! !!! ", " !!!!! !!!! !!! ",
" !!!!!!!! !!!!!!! !!!!!! !!! ", " !!!!!!!! !!!!!!! !!!!!! !!! ",
" !!!!!!!!!! !!!!!!!!! !!!!!!!! !!!! ", " !!!!!!!!!! !!!!!!!!! !!!!!!!! !!!! ",
" !!!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ", " !!!! !!!!! !!!!! !!!!!!!!!!!!!!!!!!!!! ",
" !! #! !!!!!!!!! # !!!!!!!!! !!!!!!!! ", " !! # !!!!!!!!! # !!!!!!!!! !!!!!!!! ",
" #### !!!!!!! ### !!!!! ## !!!!!! ", " #### !!!!!!! ### !!!!! ## !!!!!! ",
" ###### !!! ###### !!! ##### !! ###$$$ ", " ###### !!! ###### !!! ##### !! ## $$$ ",
" ########## ! ########!! ######## ####$$$ ", " ########## ! ######### ######## ####$$$ ",
" #### ##### ############ ###############$$$ ", " #### ##### ############ ###############$$$ ",
" %%%## ########## ######### ######## $$$ ", " %%%## ########## ######### ######## $$$ ",
" %%% ####### ####### ##### $$$ ", " %%% ####### ####### ##### $$$ ",
" %%% &&&& #####& &&&##### &&&&&### $$$ ", " %%% &&&& #####& &&&#### &&&&&### $$$ ",
" %%%&&&&&&& &&&&&& &&&&&&# #&&&&&& $$$ ", " %%%&&&&&&& &#&&&& &&&&&&# &&&&&&& $$$ ",
" %%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$ ", " %%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $$$ ",
" %%%&&& &&&&&&&&&&&&&&&& &&&&&&& &&&&&& $$$ ", " %%%&&& &&&&&&&&&&&&&&&& &&&&&&& &&&&&& $$$ ",
" %%% & &&&&& &&&&&&& &&&&& &&&&& '''$$ ", " %%% & &&&&& &&&&&&& &&&&& &&&&& '''$$ ",
" %%% &&& && & '''''''$$ ", " %%% &&& && & '''''''$$ ",
" %%% ((( (((( (((( ((((( '''''''$$ ", " %%% ((( ((((( (((( ((((( '''''''$$ ",
" %%%((((((( (((((( ((((((( ((((((('''''''$$ ", " %%%((((((( (((((( ((((((( ((((((('''''''$$ ",
" %%%((((((((((((((((((((((((((((((((((( $$$ ", " %%(((((((((((((((((((((((((((((((((((( $$$ ",
" %%%((( (((((((((((((((( ((((((( ((((( $$$ ", " %%%((( (((((((( ((((((( ((((((( ((((( $$$ ",
" %%% ( ((((( ())(((( ((((*********** $$$ ", " %%% ( ((((( )((((( ((((*********** $$$ ",
" %%% (((++ ))),,,--------************ $$$ ", " %%% (((++ ))),,,--------************ $$$ ",
" %%% ++++++ ))),,,--------***.*********$$$ ", " %%% ++++++ ))),,,--------***.*********$$$ ",
" %%% ++/++ ))),,,------.-.... ****$$$ ", " %%% +++++ ))),,,--------.... ******$$$ ",
" %%% ++++//// ))),,,............ ***$$$ ", " %%% +++++/// ))),,,............ ***$$$ ",
" %%% +++++//////)),,,,............ ***$$$ ", " %%% +++++//////)),,,,............ ***$$$ ",
" %%%++++////////)),,,,... 0000000 ***$$$$", " %%%++++////////)),,,,... 0000000 ***$$$ ",
" %%%+++//////////),,,.... 0000000 ***$$$$", " %%%+++//////////),,,.... 0000000 ***$$$ ",
" %%%+++//// //,,,... 0000000*******$$$ ", " %%%+++//// //,,,... 0000000*******$$$ ",
" %%% /// /// .... . *************$$$ ", " %%% /// /// .... *************$$$ ",
" %%% /// /// .... . ************ $$$ ", " %%% /// /// .... ************ $$$ ",
" %%% /// /// ............. **** $$$ ", " %%% /// /// ............. *** $$$ ",
" %%% //// /// ............ * $$$ ", " %%% //// /// ............ $$$ ",
" %%% //// //// ........... $$$ ", " %%% //// //// ........... $$$ ",
" ///// ////// 111 ", " ///// ////// . . 111 ",
" /////////// 1111111111111 ", " /////////// 1111111111111 ",
" //////// 1111111111111 ", " //////// 1111111111111 ",
" ///// 1111111111111 ", " ////// 1111111111111 ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -34,76 +34,76 @@
" !!!!!!!!!!!! !!!!!!!!!! !!!!!!!! !!! ", " !!!!!!!!!!!! !!!!!!!!!! !!!!!!!! !!! ",
" !!!!!! !!!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ", " !!!!!! !!!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ", " !!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! ", " !!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!!! !!!!!! ", " !!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!!! ",
" ! !!!!! !!!!!! !!!!!!!!!!!! !!!!!!!!!!! ", " ! !!!!! !!!!!! !!!!!!!!!!! !!!!!!!!!!! ",
" !!!!!!!!! !!!!!!!!!!! !!!!!!! ", " !!!!!!!!! !!!!!!!!! !!!!!!! ",
" # !!!!!!! # !!!!!! !!!!! ", " ## !!!!!!! # !!!!!! !!!!! ",
" #### !!!!! #### !!! ## !!! $$$ ", " #### !!!!! #### !!! ## !!! $$$ ",
" ####### !!! ###### ! #### # $$$ ", " ####### ! ###### ! #### # # $$$ ",
" ########## ######### ####### ### $$$ ", " ########## ######### ####### ### $$$ ",
" ####### ##### ###### ##### ######### ##### $$$ ", " ####### ##### ###### ##### ######### ##### $$$ ",
" ###### ###### ###### ##### ###### ##### ##### $$$ ", " ###### ###### ###### ##### ############ ##### $$$ ",
" ###### ###### ##### ###### ##### ####### ###### $$$ ", " ##### ###### ##### ###### ##### ###### ###### $$$ ",
" %%%%###### ##### ###### ###### ##### ######## ###### $$$ ", " %%%%#### ##### ###### ###### ##### ###### ###### $$$ ",
" %%%% # # ##### ##### ##### ###### ########## $$$ ", " %%%% # ##### ##### ##### ###### ########## $$$ ",
" %%%% ############ ############# ######## $$$ ", " %%%% ############ ########### ######## $$$ ",
" %%%% ######### ######## ##### $$$ ", " %%%% ######### ######## ##### $$$ ",
" %%%% ###### ###### ## $$$ ", " %%%% ###### ###### ## $$$ ",
" %%%% ##### ### && $$$ ", " %%%% #### ### && $$$ ",
" %%%% &&&& ##&#&&& &&&&&& &&&&&&& $$$ ", " %%%% &&&& ##&&&&& &&&&&& &&&&&&& $$$ ",
" %%%% &&&&&&&& &&&&&&&& &&&&&&&& &&&&&&&&&& $$$ ", " %%%% &&&&&&&& &&&&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%%% &&&&&&&&& &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& $$$ ", " %%%% &&&&&&&&& &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&&&& $$$ ",
" %%%% &&&&&&&&&&&& &&&&&& &&&&& &&&&&& &&&& &&&&&& &&&& & $$$ ", " %%%% &&&&&&&&&&&& &&&&&& &&&&& &&&&&& &&&& &&&&&& &&&& & $$$ ",
" %%%% &&&&& &&&& &&&&&& &&&& &&&&& &&&& &&&&& &&&&&&&&& $$$ ", " %%%% &&&&& &&&& &&&&&& &&&& &&&&& &&&& &&&&& &&&&&&&&& $$$ ",
" %%%% &&& & &&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ", " %%%% &&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&& $$$ ",
" %%%% & &&&&&&&&& & &&&&&&&& &&&&&&&& &&&&&& $$$ ", " %%%% & &&&&&&&&& &&&&&&&& &&&&&&&& &&&&&& $$$ ",
" %%%% &&&&&&& &&&&&& &&&&& &&&& $$$ ", " %%%% &&&&&&& &&&&&& &&&&& &&&& $$$ ",
" %%%% &&& & ''''' $$$ ", " %%%% &&& & & ''''' $$$ ",
" %%%% ''''' $$$ ", " %%%% ''''' $$$ ",
" %%%% ''''' $$$$$ ", " %%%% ''''' $$$ ",
" %%%% ''''''''''''' $$$$ ", " %%%% ''''''''''''' $$$ ",
" %%%% (( ((((( ((((( ((((((( ''''''''''''' $$$ ", " %%%% (( ( ((((( ((((( ((((((( ''''''''''''' $$$ ",
" %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''''''' $$$ ", " %%%% ((((((( (((((((( (((((((( ((((((((( ''''''''''''' $$$ ",
" %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( $$$ ", " %%%% ((((((((( (((((((((( ((((((((((( ((((((((((( $$$ ",
" %%%% ((((((((((( (((((( (((( (((((( ((((( (((((( (((( $$$ ", " %%%% ((((((((((( (((((( (((( (((((( ((((( (((((( (((( $$$ ",
" %%%%((((((( ((((( (((((( (((( ((((( ((((( ((((( (((( (( $$$ ", " %%%%(((((( ((((( (((((( (((( ( ((((( ((((( ((((( (((( (( $$$ ",
" %%%% ((( ( ((((( ((((( ((((((((((( (((((((((( ((((((((( $$$ ", " %%%% ((( ((((( ((((( (((((((((( (((((((((( ((((((((( $$$ ",
" %%%% ( ((((((((() ((((((((((( (((((((( (((((((( $$$ ", " %%%% ( ((((((((() ((((((((( (((((((( (((((((( $$$ ",
" %%%% ((((((()) ((((((( ((((( *** (((( $$$ ", " %%%% ((((((()) ((((((( ((((( *** (((( $$$ ",
" %%% (((( )))) ++++ (( (****************** $$$ ", " %%% (((( )))) ++++ (( ****************** $$$ ",
" %%% )))))) ++++ ,,,, ******************** $$$ ", " %%% )))))) ++++ ,,,, ******************** $$$ ",
" %%% )))))) +++ ,,, --------------- ********************* $$$ ", " %%% )))))) +++ ,,, --------------- ********************* $$$ ",
" %%% ))))) +++ ,,, --------------- ** ***** $$$ ", " %%% ))))) +++ ,,, --------------- * ***** $$$ ",
" %%%%% )))))) +++ ,,, --------------- * **** $$$ ", " %%% )))))) +++ ,,, --------------- **** $$$ ",
" %%%% )))))) +++ ,,, .............. **** $$$ ", " %%% )))))) +++ ,,, .............. **** $$$ ",
" %%% ))))) ++++ ,,, ...................... *** $$$ ", " %%% ))))) ++++ ,,, ...................... *** $$$ ",
" %%% )))))) ++++ ,,,, ....................... *** $$$ ", " %%% )))))) ++++ ,,,, ....................... *** $$$ ",
" %%% )))))) +++ ,,,, ....................... *** $$$ ", " %%% )))))) +++ ,,,, ....................... *** $$$ ",
" %%% ))))) /////// +++ ,,, .... *** $$$ ", " %%% ))))) /////// +++ ,,, .... *** $$$ ",
" %%% )))))) //////////// +++ ,,, ..... *** $$$ ", " %%% )))))) //////////// +++ ,,, ... *** $$$ ",
" %%% ))))) ///////////////+++ ,,, ... *** $$$ ", " %%% ))))) ///////////////+++ ,,, ... *** $$$ ",
" %%% ))))) ////// ///////++++,,, ... 000000000000000 *** $$$ ", " %%% ))))) ////// ///////++++,,, ... 000000000000000 *** $$$ ",
" %%%))))))) ///// ///+++,,,, ... 000000000000000 **** $$$ ", " %%%)))))) ///// ///+++,,,, ... 000000000000000 **** $$$ ",
" %%% ))) ) ///// //// ,,,, ... 000000000000000 **** $$$ ", " %%% ))) ///// //// ,,,, ... 000000000000000 **** $$$ ",
" %%% )) ///// ////,,,, ... *** $$$ ", " %%% )) ///// ////,,,, ... *** $$$ ",
" %%% //// /////,, ... **** **** $$$ ", " %%% //// /////,, ... **** * * **** $$$ ",
" %%% /// / //// ... *********************** $$$ ", " %%% /// //// ... *********************** $$$ ",
" %%% /// /// ... ********************** $$$ ", " %%% /// /// ... ********************** $$$ ",
" %%% /// /// ... ********************* $$$$$ ", " %%% /// /// ... ********************* $$$ ",
" %%% /// /// .... $$$$ ", " %%% /// /// .... $$$ ",
" %%% //// /// ..... * $$$ ", " %%% //// /// ...... $$$ ",
" %%% //// /// ........................ $$$ ", " %%% //// /// ....................... $$$ ",
" %%% //// //// ...................... $$$ ", " %%% //// //// ...................... $$$ ",
" %%% //// //// ..................... $$$ ", " %%% //// //// ..................... $$$ ",
" %%% //// /// .................. $$$ ", " %%% //// /// .................. $$$ ",
" //// //// $$$ ", " //// //// $$$ ",
" //// ////// ", " //// ////// ",
" //// ////// ", " //// / ////// ",
" ////////// ///// 11111111111111111111 ", " ////////// ///// 111111111111111111111 ",
" ////////////// 11111111111111111111111111 ", " ////////////// 11111111111111111111111111 ",
" //////////// 11111111111111111111111111 ", " //////////// 11111111111111111111111111 ",
" // //// 11111111111111111111 ", " //// 11111111111111111111 ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -38,114 +38,114 @@
" !!!!!!!!!!! !!!!!!! !!!!! ! ", " !!!!!!!!!!! !!!!!!! !!!!! ! ",
" !!!!!! !!!!! !!!!!!!!!! !!!!!!!! !! ", " !!!!!! !!!!! !!!!!!!!!! !!!!!!!! !! ",
" !!!!!! !!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ", " !!!!!! !!!!! !!!!! !!!!!! !!!!!!!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ", " !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!! ", " !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!! ",
" !!!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ", " !!!!!!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!!!! !!!!! !!!!!! ", " !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! ! !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! ", " !!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! ",
" !!! ! !!!!! !!!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ", " !!! !!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! ! ! !!!!!! !!!!!! !!!!!! !!!!!! ", " !!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! ", " !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!! !!!!!!!! ", " !!!!!!!!!!!! !!!!!!!!! !!!!!!!! ",
" !!!!!!! !!!!!! !!!!!! ", " !!!!!!! !!!!!! !!!!! ",
" ## !!!!! # !!!! ! !! ", " ## ! !!!!! # !!!! ! !! ",
" ##### !!! #### ! # $$$$ ", " ##### !!! #### # ! # $$$$ ",
" ######## ###### ### $$$$ ", " ######## ###### ### $$$$ ",
" ########## ######### ##### ## $$$$ ", " ########## ######### ##### ## $$$$ ",
" ###### ###### ###### ##### ######### #### $$$$ ", " ###### ###### ############ ######### #### $$$$ ",
" ###### ###### ###### ##### ########### ###### $$$$ ", " ###### ###### ###### ##### ########### ###### $$$$ ",
" ###### ##### ###### ###### ##### ##### ###### $$$$ ", " ###### ##### ###### ###### ##### ##### ###### $$$$ ",
" ####### ##### ###### ###### ##### ###### ##### $$$$ ", " ####### ##### ###### ###### ##### ###### ##### $$$$ ",
" ###### ###### ##### ##### ###### ##### ###### $$$$ ", " ###### ###### ##### ##### ###### ##### ###### $$$$ ",
" ##### ###### ###### ##### ##### ###### ###### $$$$ ", " ##### ###### ###### ##### ##### ###### ###### $$$$ ",
" %%% ### # ###### ###### ####### ##### # ###### ###### $$$$ ", " %%% ### ##### ###### ###### ##### ###### # ###### $$$$ ",
" %%% ####### ###### # # ##### ###### ##### ###### $$$$ ", " %%% ##### ###### ##### ###### ##### ###### $$$$ ",
" %%% ###### ###### ##### ###### ########## $$$$ ", " %%% ###### ###### ##### ###### ########## $$$$ ",
" %%% ##### ##### ###### ##### ######## $$$$ ", " %%% ###### ##### ###### ##### ######## $$$$ ",
" %%%%% ########### ########## ###### $$$$ ", " %%% ########### ########## ##### $$$$ ",
" %%%%% ######### ####### ## $$$$ ", " %%% ######### ####### ## $$$$ ",
" %%% ###### #### $$$$ ", " %%% ###### #### $$$$ ",
" %%% ### ## $$$$ ", " %%% ### ## $$$$ ",
" %%% &&&&& $$$$ ", " %%% &&&&& $$$$ ",
" %%% && &&&&& &&&&&&&& &&&&&&&&& $$$$ ", " %%% && &&&&& &&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&& &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& $$$$ ", " %%% &&&&&&&& &&&&&&&&& &&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& $$$$ ", " %%% &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&&& & &&&&& $$$$ ", " %%% &&&&&&&&&&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&&& &&&& &&&&& & &&&& $$$$$ ", " %%% &&&&&& &&&& &&&&&& &&&& &&&&&& &&&& &&&&& &&&& $$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&&&& &&&&& &&&& & $$$$ ", " %%% &&&&& &&&& &&&&& &&&& &&&&& &&&& &&&&& &&&& & $$$$ ",
" %%% &&&&&& &&&&& &&&&& &&&& &&&&& &&&& &&&&&& &&&& &&&& $$$$ ", " %%% &&&&& &&&&& &&&&& &&&& &&&&& &&&& &&&&&& &&&& &&&& $$$$ ",
" %%% &&& &&&&& &&&&&& &&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$ ", " %%% &&& &&&&& &&&&&& &&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ", " %%% & &&&&&&&&&&&& &&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% &&&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ", " %%% &&&&&&&&& &&&&&&&&& &&&&&&&& &&&&&& $$$$ ",
" %%% &&&&&&& & &&&&&& &&& & $$$$ ", " %%% &&&&&&& &&&&&& &&& & $$$$ ",
" %%% && && $$$$ ", " %%% && $$$$ ",
" %%% '''''' $$$$ ",
" %%% '''''' $$$$ ", " %%% '''''' $$$$ ",
" %%% '''''' $$$$ ", " %%% '''''' $$$$ ",
" %%% '''''' $$$$ ", " %%% '''''' $$$$ ",
" %%% ' ' '''''' $$$$ ",
" %%% ''''''''''''''''''' $$$$ ", " %%% ''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''' $$$$ ", " %%% ( ''''''''''''''''''' $$$$ ",
" %%% ((( (((((( ((((((( ''''''''''''''''''' $$$$ ", " %%% ( ((( (((((( ((((((( ''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ((((((((( ((((((((((( '' $$$$ ", " %%% ((((((( (((((((( ((((((((( ((((((((((( $$$$ ",
" %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( ' $$$$ ", " %%% (((((((((( ((((((((((( (((((((((((( ((((((((((((( $$$$ ",
" %%%%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( ( (((( $$$$ ", " %%% ((((((((((((( ((((((((((((( ((((((( ((((( (((((( (((( $$$$ ",
" %%% ((((((( ((((( (((((( ((((( ((((( (((( ((((( ( (((( $$$$ ", " %%% ((((((( ((((( (((((( ((((( ((((( (((( ((((( (((( $$$$ ",
" %%% ((((( (((( (((((( ((((( (((((( ((((( ((((( (((( ( $$$$ ", " %%% ((((( (((( (((((( ((((( (((((( ((((( ((((( (((( ( $$$$ ",
" %%% (((((( (((( ((((( (((( ((((( ( (((( (((((( ((((( ((( $$$$ ", " %%% ((((( (((( ((((( (((( ((((( (((( (((((( ((((( ((( $$$$ ",
" %%% (((( ( (((( ((((( (((( ((((( ((((( (((((( (((((((((((( $$$$ ", " %%% (((( (((( ((((( (((( ((((( ((((( (((((( (((((((((((( $$$$ ",
" %%% (( (((((( (((((( ((((((((((( (((((((((( (((((((((( $$$$ ", " %%% (( (((((( (((((( ((((((((((( (((((((((( (((((((((( $$$$ ",
" %%% ((((((((((( ((((((((( (((((((( ((((((( $$$$ ", " %%% ((((((((((( ((((((((( (((((((( ((((((( $$$$ ",
" %%% ((((((((( )) (((((( ((((( (( $$$$ ", " %%% (((((((( )) (((((( ((((( (( $$$$ ",
" %%% (((( ()))) *** (( ( +++++++ $$$$ ", " %%% (((( )))) *** ( +++++++ $$$$ ",
" %%% ))))) **** +++++++++++++++++++++++++++ $$$$ ", " %%% ))))) **** +++++++++++++++++++++++++++ $$$$ ",
" %%% )))))) **** ,,, +++++++++++++++++++++++++++++ $$$$ ", " %%% )))))) **** ,,, +++++++++++++++++++++++++++++ $$$$ ",
" %%% ))))) **** ,,,, -- +++++++++++++++++++++++++++++ $$$$ ", " %%% ))))) *** ,,,, -- +++++++++++++++++++++++++++++ $$$$ ",
" %%% ))))) *** ,,,, ---------------------- + +++++++++ $$$$$ ", " %%% ))))) *** ,,,, ---------------------- +++++++++ $$$$ ",
" %%% )))))) *** ,,, ---------------------- +++++ $$$$ ", " %%% )))))) *** ,,, ---------------------- +++++ $$$$ ",
" %%% ))))) *** ,,, ---------------------- ++++ $$$$ ", " %%% ))))) *** ,,, ---------------------- ++++ $$$$ ",
" %%% ))))) **** ,,, ++++ $$$$ ", " %%% ))))) **** ,,, ++++ $$$$ ",
" %%% )))))) **** ,,, - ++++ $$$ ", " %%% )))))) **** ,,, ++++ $$$ ",
" %%% ))))) **** ,,, ........................ +++ $$$ ", " %%% ))))) **** ,,, ........................ +++ $$$ ",
" %%% ))))) *** ,,,, ................................ +++ $$$ ", " %%% ))))) *** ,,,, ................................ +++ $$$ ",
" %%% )))))) *** ,,,, ................................ +++ $$$ ", " %%% )))))) *** ,,,, ................................ +++ $$$ ",
" %%% ))))) *** ,,, ................... +++ $$$ ", " %%% ))))) *** ,,, ................... +++ $$$ ",
" %%% )))))) *** ,,, .... . +++ $$$ ", " %%% )))))) *** ,,, .... +++ $$$ ",
" %%% )))))) //// **** ,,, .... +++ $$$ ", " %%% )))))) //// **** ,,, .... +++ $$$ ",
" %%% ))))) /////////// **** ,,, ... +++ $$$ ", " %%% ))))) /////////// **** ,,, ... +++ $$$ ",
" %%% )))))) ///////////////// *** ,,,, ... +++ $$$ ", " %%% )))))) ///////////////// *** ,,,, ... +++ $$$ ",
" %%%%% ))))))) //////////////////// *** ,,,, ... +++ $$$ ", " %%% )))))) //////////////////// *** ,,,, ... +++ $$$ ",
" %%%% ))))) ) ////// / //////// *** ,,,, .... +++ $$$ ", " %%% ))))) ////// / //////// *** ,,,, .... 0 +++ $$$ ",
" %%% )))))) ///// / //// *** ,,, .... 00000000000000000000000 ++++ $$$ ", " %%% )))))) ///// //// *** ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% )))))) ////// ////*** ,,, .... 00000000000000000000000 ++++ $$$ ", " %%% )))))) ////// ////*** ,,, .... 00000000000000000000000 ++++ $$$ ",
" %%% ))))) ////// ///// ,,,,, ... 00000000000000000000000 +++ $$$ ", " %%% ))))) ////// ///// ,,, ... 00000000000000000000000 +++ $$$ ",
" %%% ))) ///// //// ,,, ... +++ $$$ ", " %%% ))) ///// //// ,,, ... +++ $$$ ",
" %%% )) //// //// ,,,, ... 0 +++ $$$ ", " %%% )) //// //// ,,,, ... +++ $$$ ",
" %%% /// //// ,,,, ... ++++ $$$ ", " %%% /// //// ,,,, ... ++++ $$$ ",
" %%% //// ///// ... ++++ $$$ ", " %%% //// ///// ... + ++++ $$$ ",
" %%% //// //// ... ++++++++++++++++++++++++++++++++++ $$$ ", " %%% //// //// ... ++++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ", " %%% /// /// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// //// .... +++++++++++++++++++++++++++++++++ $$$ ", " %%% /// //// .... +++++++++++++++++++++++++++++++++ $$$ ",
" %%% /// /// ... + +++++++++++ $$$ ", " %%% /// /// ... +++++++++++ $$$ ",
" %%% /// /// .... + $$$ ", " %%% /// /// ... $$$ ",
" %%% /// / /// .... $$$ ", " %%% /// /// .... $$$ ",
" %%% //// /// ..... $$$$ ", " %%% //// /// ..... $$$ ",
" %%% //// /// ..... $$$$$ ", " %%% //// /// ..... $$$ ",
" %%% /// //// ...... $$$ ", " %%% /// //// ...... . . $$$ ",
" %%% //// //// ............................... $$$ ", " %%% //// //// ............................... $$$ ",
" %%% //// /// .............................. $$$ ", " %%% //// /// .............................. $$$ ",
" %%% //// /// ............................ $$$ ", " %%% //// /// ............................ $$$ ",
" %%% //// /// .. $$$ ", " %%% //// /// $$$ ",
" ///// //// . $$$ ", " //// //// $$$ ",
" / //// ///// ", " //// ///// ",
" //// ////// ", " ///// ////// ",
" //// ////// ", " //// ////// ",
" ///// ///// ", " ///// ///// ",
" //////// ////// ", " //////// ////// ",
" ///////////// ////// 11111111111111111111111111111111111111 ", " ///////////// ////// 11111111111111111111111111111111111111 ",
" /////////////////// 11111111111111111111111111111111111111 ", " ///////////////// 11111111111111111111111111111111111111 ",
" //////////// / 11111111111111111111111111111111111111 ", " //////////// 11111111111111111111111111111111111111 ",
" //// 11111111111111 ", " //// 11111111111111 ",
" 1 ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -42,151 +42,151 @@
" !!!!!!!!! !!!!! !!! ", " !!!!!!!!! !!!!! !!! ",
" !!!!!! !!!!! !!!!!!! !!!!! ", " !!!!!! !!!!! !!!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!!!!!!! !!!!!!!! ! ", " !!!!!! !!!!!! !!!!!!!!!!! !!!!!!!! ! ",
" !!!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!! !!!! ", " !!!!!! !!!!! !!!!!! !!!!!! !!!!!!!!!! !!!! ",
" !!!!!! ! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!!! ", " !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! ", " !!!!!! !!!!!! !!!!!! !!!!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!!! !!!!!! ", " !!!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!! !!!!! !! !!!!! !!!!!! ", " !!!!!! !!!!! !!!!!! !!!!! !!!!! !!!!! !!!!!! ",
" !!!!!!! !!!!! !!!!!!!! !!!!! !!!!!! !!!!!! !!!!! ", " !!!!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! !!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ", " !!!!!! !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!!! ",
" !!!!!! !!!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!!! ", " !!!!! !!!!!! !!!!!! !!!!! !!!!! !!!!! !!!!!! ",
" !!!!!! !!!!! !!!!! !! !!!!! !!!!!! !!!!!! !!!!! ", " !!!! !!!!! !!!!! !!!!! !!!!!! !!!!!! !!!!! ",
" ! ! !!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ", " ! !!!!! !!!!!! !!!!!! !!!!! !!!!!! !!!!!! ",
" !!!!!! !!!!! !!!!!! !!!!!!! !!!!! !!!!! ", " !!!!!! !!!!! !!!!!! !!!!!! !!!!! !!!!! ",
" !!!!!! !!!!!! !!!!! !!!!!!!! !!!!! !!!!!! ", " !!!!!! !!!!!! !!!!! !!!!!! !!!!! !!!!!! ",
" !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!! ", " !!!!! !!!!!! !!!!!! !!!!! !!!!!!!!!!! ",
" !!!!!!!!!!! !!!!!!!!!! !!!!!!!!! ", " !!!!!!!!!!! !!!!!!!!!! !!!!!!!! ",
" !!!!!!!!! !!!!!!! !!!!! ! ", " !!!!!!!!! !!!!!!! !!!!! ",
" !!!!!!! !!!! !!! ", " !!!!!! !!!! !!! ",
" ### ! !!! # !! $$$ ", " ### !!! # !! $$$ ",
" ##### ! #### $$$ ", " ##### ! ##### $$$ ",
" ######## ####### ## $$$ ", " ######## ####### ## # $$$ ",
" ########### ########## ##### # $$$ ", " ########### ########## ##### # $$$ ",
" ###### ###### ###### ##### ######## ### $$$ ", " ###### ###### ###### ##### ######## ### $$$ ",
" ####### ##### ##### ##### ########## ##### $$$ ", " ####### ##### ##### ##### ########## ##### $$$ ",
" ###### ##### ###### ###### ##### ##### ##### $$$ ", " ###### ##### ###### ###### ##### ##### ##### $$$ ",
" ###### ####### ###### ###### ###### ####### ###### $$$ ", " ###### ###### ###### ###### ###### ###### ###### $$$ ",
" ###### # ###### ##### ##### ###### ## ###### ###### $$$ ", " ###### ###### ##### ##### ###### ###### ###### $$$ ",
" ###### ##### ####### ##### ##### ##### ##### $$$ ", " ###### ###### ###### ##### ##### ##### ##### $$$ ",
" ####### ##### ##### # ###### ##### ###### ###### $$$ ", " ####### ##### ##### ###### ##### ###### ###### $$$ ",
" ###### ###### ###### ###### ###### ###### ##### $$$ ", " ###### ###### ###### ##### ###### ###### ##### $$$ ",
" #### ##### ###### ####### ##### ##### ###### $$$ ", " #### ##### ###### ##### ##### ##### ###### $$$ ",
" %%% ## # ##### ##### ###### ##### ###### ###### $$$ ", " %%% ## ##### ##### ###### ##### ###### ###### $$$ ",
" %%% ###### ###### ###### ###### ##### ##### $$$ ", " %%% ###### ###### ###### ###### ##### ##### $$$ ",
" %%% ###### ###### ##### ###### ###### ###### $$$ ", " %%% ###### ###### ##### ###### ###### ###### $$$ ",
" %%% ##### ###### ##### ##### ########### $$$ ", " %%% ##### ###### ##### ##### ########### $$$ ",
" %%%%% ##### ###### ###### ###### ######## $$$ ", " %%% ##### ###### ####### ##### ####### $$$ ",
" %%% ###### ##### ########### # ##### # $$$ ", " %%% ###### ##### ########### ##### $$$ ",
" %%% ########### ######## ## $$$ ", " %%% ########### ######## ## $$$ ",
" %%% ######## ###### $$$ $ ", " %%% ######## ###### $$$ ",
" %%% ##### #### $$$ ", " %%% ##### #### $$$ ",
" %%% ### # $$$ ", " %%% ### # $$$ ",
" %%% # $$$ ", " %%% $$$ ",
" %%% &&&&&&& $$$ ", " %%% &&&&&&& $$$ ",
" %%% &&&&&& &&&&&&&& &&&&&&&&&& $$$ ", " %%% &&&&&& &&&&&&&& &&&&&&&&&& $$$ ",
" %%% &&&&&&&& &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& $$$ ", " %%% &&&&&&&& &&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&&& $$$ ",
" %%% &&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&& &&&&& $$$ ", " %%% &&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&& &&&&&&&& &&&&& $$$ ",
" %%% &&&&&&&&&&&&&& &&&&&&& &&&&&& &&&&&&& & &&&&& &&&&&& &&&&& $$$$ ", " %%% &&&&&&&&&&&&&& &&&&&&& &&&&&& &&&&&&& &&&&& &&&&&& &&&&& $$$$ ",
" %%% &&&&&&& &&&&& &&&&&&& &&&&& &&&&&& & &&&&& &&&&& &&&&& $$$$ ", " %%% &&&&&&& &&&&& &&&&&&& &&&&& &&&&&& &&&&& &&&&& &&&&& $$$$ ",
" %%% &&&&&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&& & &&&& $$$$ ", " %%% &&&&&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&& &&&& $$$$ ",
" %%% &&&&&& &&&&& &&&&& & &&&&& &&&&&& &&&& &&&&&& &&&& $$$$ ", " %%% &&&&&& &&&&& &&&&& &&&&& &&&&&& &&&& &&&&&& &&&& $$$$ ",
" %%% &&&&& &&&& &&&&& &&&& &&&&& &&&& &&&&& &&&& && $$$$ ", " %%% &&&&& &&&& &&&&& &&&&& &&&&& &&&& &&&&& &&&& && $$$$ ",
" %%% &&&&&& &&&& &&&&& &&&& &&&&& &&&&& &&&&& &&&&& &&&&& $$$$ ", " %%% &&&&& &&&& &&&&& &&&& &&&&& &&&&& &&&&& &&&&& &&&&& $$$$ ",
" %%% &&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&&& &&&&&&&&&&&&&& $$$$ ", " %%% &&& &&&& &&&&&& &&&& &&&&& &&&&& &&&&&& &&&&&&&&&&&&&& $$$$ ",
" %%% & &&&&& &&&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $$$$ ", " %%% & &&&&& &&&&&&& &&&&&& &&&&&& &&&&&&&&&&&&& &&&&&&&&&&& $$$$ ",
" %%% &&&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ", " %%% &&&&&&&&&&&&& &&&&&&&&&&&& &&&&&&&&&& &&&&&&&&& $$$$ ",
" %%% & &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ", " %%% &&&&&&&&&&& &&&&&&&& &&&&&& &&&& $$$$ ",
" %%% &&&&&&& &&&& & $$$$ ", " %%% &&&&&&& &&&& & & $$$$ ",
" %%% && $$$$ ", " %%% &&& $$$$ ",
" %%% & $$$$ ",
" %%% $$$$ ", " %%% $$$$ ",
" %%%%% '''''''' $$$$ ", " %%% $$$$ ",
" %%%% '''''''' $$$$ $ ", " %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ",
" %%% '''''''' $$$$ ", " %%% '''''''' $$$$ ",
" %%% ''' $$$$ ", " %%% ''' $$$$ ",
" %%% ''''''''''''''''''''''''' $$$$ ", " %%% ''''''''''''''''''''''''' $$$$ ",
" %%% ''''''''''''''''''''''''' $$$$ ", " %%% ''''''''''''''''''''''''' $$$$ ",
" %%% (( ''''''''''''''''''''''''' $$$$ ", " %%% (( ''''''''''''''''''''''''' $$$$ ",
" %%% ((((((( (((((((( ''''''''''''''''''''''''' $$$$ ", " %%% ((((((( ((((((((( ''''''''''''''''''''''''' $$$$ ",
" %%% (((((( (((((((( (((((((((( (((((((((((( $$$$ ", " %%% (((((( (((((((( (((((((((( (((((((((((( $$$$ ",
" %%% (((((((((( (((((((((((( ((((((((((((( (((((((((((((( $$$$ ", " %%% (((((((((( (((((((((((( ((((((((((((( ((((((((((((((( $$$$ ",
" %%% (((((((((((((( ((((((((((((((( (((((((( ((((((( ((((((( (((( $$$$ ", " %%% (((((((((((((( (((((((((((((((( (((((((( ((((( ((((((( (((( $$$$ ",
" %%% ((((((( (((((( ((((((( (((( (((((( (( (((( (((((( ((((( $$$$ ", " %%% ((((((( (((((( ((((((( (((( (((((( (((( (((((( (((( $$$$ ",
" %%% ((((((( (((( (((((((( (((( (((((( (((( ((((( (((((( $$$$ ", " %%% ((((((( (((( (((((( (((( (((((( (((( ((((( (((( $$$$ ",
" %%% (((((( (((( (((((( ( (((( ((((( ((((( ((((( ((((( $$$$ ", " %%% (((((( (((( (((((( (((( ((((( ((((( ((((( ((((( $$$$ ",
" %%% ((((( (((( ((((( (((( (((((( (((( (((((( (((( (( $$$$ ", " %%% ((((( (((( ((((( (((( (((((( (((( (((((( (((( (( $$$$ ",
" %%% (((((( (((( ((((( (((( ((((( (((( ((((( (((( (((( $$$$ ", " %%% ((((( (((( ((((( (((( ((((( (((( ((((( (((( (((( $$$$ ",
" %%% (((( ( (((( (((((( (((( ((((( (((( (((((( ((((( (((((( $$$$ ", " %%% (((( (((( (((((( (((( ((((( (((( (((((( ((((( (((((( $$$$ ",
" %%% (( ((((( (((((( ((((( (((((( (((((((((((((( ((((((((((((( $$$$ ", " %%% (( ((((( (((((( ((((( (((((( (((((((((((((( ((((((((((((( $$$$ ",
" %%% ((((((( (((((( (((((((((((( (((((((((((( ((((((((( $$$$ ", " %%% ((((((((((((( (((((((((((( (((((((((((( ((((((((( $$$$ ",
" %%% (( ((((((((((( (((((((((( (((((((( ( (((((( $$$$ ", " %%% ((((((((((( (((((((((( (((((((( (((((( $$$$ ",
" %%% (((((((( )) ((((((( ((( $$$$ ", " %%% (((((((( )) ((((((( ((( $$$$ ",
" %%%% (((( )))) *** (( $$$$ ", " %%%% (((( )))) *** ( $$$$ ",
" %%%% ))))) *** ( ++++++++++++ $$$$ ", " %%%% ))))) *** ++++++++++++ $$$$ ",
" %%%% )))))) *** ++++++++++++++++++++++++++++++++ $$$$ ", " %%%% )))))) *** ++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$$ ", " %%%% )))))) **** ,,, +++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% ))))) **** ,,, ++++++++++++++++++++++++++++++++++ $$$$ ", " %%%% ))))) **** ,,, +++++++++++++++++++++++++++++++++ $$$$ ",
" %%%% )))))) *** ,,, ------ + +++++++++++++++ $$$$ ", " %%%% )))))) *** ,,, ------ +++++++++++++++ $$$$ ",
" %%%% )))))) ***** ,,,, ----------------------------- + ++++++ $$$$ ", " %%%% )))))) *** ,,,, ----------------------------- ++++++ $$$$ ",
" %%%% ))))) *** ,,,, ----------------------------- + ++++ $$$$ ", " %%%% ))))) *** ,,,, ----------------------------- + ++++ $$$$ ",
" %%%% )))))) *** ,,, ----------------------------- ++++ $$$$ ", " %%%% )))))) *** ,,, ----------------------------- ++++ $$$$ ",
" %%%% )))))) **** ,,, ++++ $$$$ ", " %%%% )))))) **** ,,, ++++ $$$$ ",
" %%%% ))))) **** ,,, ++++ $$$$ ", " %%%% ))))) **** ,,, ++++ $$$$ ",
" %%%% )))))) *** ,,, ++++ $$$$ ", " %%%% )))))) *** ,,, ++++ $$$$ ",
" %%%% )))))) *** ,,, +++ $$$$ ", " %%%% )))))) *** ,,, +++ $$$$ ",
" %%%% )))))) *** ,,,, ................................. +++ $$$$ ", " %%%% ))))) *** ,,,, ................................. +++ $$$$ ",
" %%%% )))))))) *** ,,,, .......................................... +++ $$$$ ", " %%%% )))))) *** ,,,, .......................................... +++ $$$$ ",
" %%%% )))))) ) **** ,,, ........................................... +++ $$$$ ", " %%%% )))))) **** ,,, ........................................... +++ $$$$ ",
" %%%% ))))) **** ,,, ................. . +++ $$$$ ", " %%%% ))))) **** ,,, ................. . +++ $$$$ ",
" %%%% )))))) *** ,,, ..... . +++ $$$$ ", " %%%% )))))) *** ,,, ..... +++ $$$$ ",
" %%%% )))))) *** ,,, .... +++ $$$$ ", " %%%% )))))) *** ,,, .... +++ $$$$ ",
" %%%% ))))) *** ,,,, ... +++ $$$$ ", " %%%% ))))) *** ,,,, ... +++ $$$$ ",
" %%%% )))))) //////// *** ,,,, ... +++ $$$$ ", " %%%% )))))) //////// *** ,,,, ... +++ $$$$ ",
" %%%% )))))) /////////////// *** ,,,, .... +++ $$$$ ", " %%%% )))))) /////////////// *** ,,,, .... +++ $$$$ ",
" %%%% ))))) ////////////////////// **** ,,, .... +++ $$$$ ", " %%%% ))))) ////////////////////// **** ,,, .... +++ $$$$ ",
" %%%% )))))) ////// ////////////// **** ,,, ... +++ $$$$ ", " %%%% )))))) ////// ////////////// **** ,,, ... +++ $$$$ ",
" %%%% )))))) ////// ///////// *** ,,, .... ++++ $$$$ ", " %%%% )))))) ////// ///////// *** ,,, ... ++++ $$$$ ",
" %%%% ))))) ///// / //// *** ,,, ..... ++++ $$$$ ", " %%%% ))))) ///// / //// *** ,,, ... 0 ++++ $$$$ ",
" %%%% )))))) ////// ///// *** ,,,,, ... 00000000000000000000000000000 ++++ $$$$ ", " %%%% )))))) ////// ///// *** ,,,, ... 00000000000000000000000000000 ++++ $$$$ ",
" %%%% )))))) ////// //// *** ,,,, ... 00000000000000000000000000000 +++ $$$$ ", " %%%% )))))) ////// //// *** ,,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% ))))) ///// //// ,,, ... 00000000000000000000000000000 +++ $$$$ ", " %%%% ))))) ///// //// ,,, ... 00000000000000000000000000000 +++ $$$$ ",
" %%%% ))))))) ////// //// ,,, ... +++ $$$$ ", " %%%% ))))) ////// //// ,,, ... +++ $$$$ ",
" %%%% ))) ) ////// ///// ,,, ... 0 +++ $$$$ ", " %%%% ))) ////// ///// ,,, ... +++ $$$$ ",
" %%%%% ) ///// //// ,,, ... ++++ $$$$ ", " %%% ) //// //// ,,, ... ++++ $$$$ ",
" %%% /// / //// ,,, ... ++++ $$$$ ", " %%% /// //// ,,, ... ++++ $$$$ ",
" %%% /// //// ,,, ... +++ $$$$ ", " %%% /// //// ,,, ... +++ $$$$ ",
" %%% /// ///// ... ++++ $$$$ ", " %%% /// ///// ... ++++ $$$$ ",
" %%% /// //// ... ++++++++++++++++ ++++ $$$$ ", " %%% /// //// ... ++++++++++++++++ + ++++ $$$$ ",
" %%% //// /// ... ++++++++++++++++++++++++++++++++++++++++++++ $$$$ ", " %%% //// /// ... ++++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% //// /// ..... +++++++++++++++++++++++++++++++++++++++++++ $$$$ ", " %%% //// /// ... +++++++++++++++++++++++++++++++++++++++++++ $$$$ ",
" %%% / /// //// ... + +++++++++++++++++++++++++++++++++ $$$$ ", " %%% /// //// ... +++++++++++++++++++++++++++++++++ $$$$ ",
" %%% ///// //// ... + ++ $$$$ ", " %%% /// //// ... $$$$ ",
" %%% /// //// .... + $$$$ ", " %%% /// //// .... $$$$ ",
" %%% /// /// .... $$$$ ", " %%% /// /// .... $$$$ ",
" %%% //// /// .... $$$$ ", " %%% //// /// .... $$$$ ",
" %%% //// /// ..... $$$$ ", " %%% //// /// ..... $$$$ ",
" %%% /// /// .... $$$$ ", " %%% /// /// .... $$$$ ",
" %%% /// //// ..... $$$$ ", " %%% /// //// ..... $$$$ ",
" %%% /// //// ...... $$$$ ", " %%% /// //// ...... . $$$$ ",
" %%% /// /// .......................................... $$$$ ", " %%% /// /// .......................................... $$$$ ",
" %%% //// /// ........................................ $$$$ ", " %%% //// /// ........................................ $$$$ ",
" %%% //// /// ...................................... $$$$$ ", " %%% //// /// ...................................... $$$$ ",
" %%% //// /// . $$$$ ", " %%% //// /// $$$$ ",
" %%% //// /// . $$$$ ", " %%% //// /// $$$$ ",
" //// //// $$$$ ", " //// //// $$$$ ",
" //// ///// $$$$ ", " ///// ///// $$$$ ",
" ///// ///// ", " ///// ///// ",
" //// ////// ", " //// ////// ",
" //// ////// ", " //// ////// ",
" //// ////// ", " //// ///// ",
" ///// ////// / ", " ///// ////// ",
" ///// ////// ", " ////// / ////// ",
" /////////// ///// ", " /////////// ///// ",
" /////////////////////// 11111111111111111111111111111111111111111111111111 ", " /////////////////////// 11111111111111111111111111111111111111111111111111 ",
" //////////////////// 11111111111111111111111111111111111111111111111111 ", " //////////////////// 11111111111111111111111111111111111111111111111111 ",
" / //////////// 11111111111111111111111111111111111111111111111111 ", " //////////// 11111111111111111111111111111111111111111111111111 ",
" //// 1111111111 11 ", " //// 1111111111 ",
" 1 1 ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,12 +1,12 @@
{ {
"keys": [ "keys": [
"", "",
"2", "1",
"3",
"5", "5",
"7", "7",
"9", "9",
"1", "2",
"3",
"4", "4",
"6", "6",
"8", "8",
@ -23,15 +23,15 @@
" ", " ",
" ", " ",
" ", " ",
" !!! !! ! # $ $ % ", "! ! # $ % % & ",
"! ! !!! ### $$$ %%% ", "!!! ## $$$ %%% &&& ",
" ", " ",
" & ! ' ( # ) $ * % +", " ! ' # ( $ ) % * & +",
" ", " ",
" ", " ",
"& ) ** ++", " '' ( ) ** ++",
"& &&&&&& )) ** ++", " ' (( )) ** ++",
"& &&&&&&& ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,15 +1,15 @@
{ {
"keys": [ "keys": [
"", "",
"2",
"4", "4",
"5", "6",
"7", "7",
"8", "8",
"9", "9",
"2",
"1", "1",
"3", "3",
"6", "5",
"10" "10"
], ],
"data": {}, "data": {},
@ -23,15 +23,15 @@
" ", " ",
" ", " ",
" ", " ",
" !!!!!! ! # # $ % & & '' ", " !!!!!!!!! # $ % % && ",
" !! ! !!!! ## $$ %%% && ' ", " '' !! ! !! ###$$$ %% & ",
" ", " ",
" ( ! ) # $ * % & ' + ", " ( ' ) ! * # $ % & + ",
" ", " ",
" ", " ",
" * * + +", " ) ) +++",
" ( ((( **** * * *** +++++ +", " ))))) ) )))) ++ ",
" ( (( ((( ******* ***** +++++ + ", " ) ))))) )) )))) ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,14 +1,14 @@
{ {
"keys": [ "keys": [
"", "",
"2",
"4",
"6",
"9",
"7",
"1", "1",
"3", "3",
"5", "5",
"7",
"9",
"2",
"4",
"6",
"8", "8",
"10" "10"
], ],
@ -23,16 +23,16 @@
" ", " ",
" ", " ",
" ", " ",
" ! !!! ! #### # # $$$$ $$ %%% %%%% ", " ! ! ### #### # $$ $$$$ $ %% %% %%%%%% &&& &&& & ",
" ! ! !!!! ## # ## # $ $ $$ && % % % %% ", " !! # ## $$$$ $$$ %%%% %% %% & & & ",
" ", " ",
" ' ! ( # ) $ & * % + ", " ! ' # ( $ ) % * & + ",
" ", " ",
" ", " ",
" ( * * * ", " ' ' ( ) ) * ",
"' ' ''''' (( )))) ))))) **** * **** ** ", " ''' ' ' '' ' (( ) ))) ) ) ))) * ",
"''' '' ''' ))))) ) ))) ******* ***** *** ", " '''''' ' '' '' ) )))))) ))))) ",
" ** ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,15 +1,15 @@
{ {
"keys": [ "keys": [
"", "",
"2", "1",
"3", "3",
"5", "5",
"7",
"9",
"2",
"4",
"6", "6",
"8", "8",
"9",
"1",
"4",
"7",
"10" "10"
], ],
"data": {}, "data": {},
@ -23,15 +23,15 @@
" ", " ",
" ", " ",
" ", " ",
" !! !!! !! # $$$ $$$$ % & && & &&& '' ", " !!! !!!! ### #### # $$$$$$$$ % %%% %%%%%% & &&& &&&& ",
" !!!! !!!! ## $ $ $$ %% &&& & && & ' ", " ! !! # ### $$ $ %%% % % % &&& & & & ",
" ", " ",
" ( ! # ) $ % * & ' + ", " ! ' # ( $ ) % * & + ",
" ", " ",
" ", " ",
" ( ) * * + + + ", " ' ' ' ( ) ) ",
"((( ( ( ((( ))))) )))) **** * * *** ***** ++++ + ++", " ' ''' ' ''' ' ( ) ))) ) ) ) * ",
"(( ( ((( ((( ))))) ) ))))) ******* **** * ** * +++++++ + ", " ' '''''' ' '' '' ) ))))) )) )) ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -1,16 +1,16 @@
{ {
"keys": [ "keys": [
"", "",
"2",
"4",
"6",
"8",
"10",
"1", "1",
"3", "3",
"5", "5",
"7", "7",
"9" "9",
"10",
"2",
"4",
"6",
"8"
], ],
"data": {}, "data": {},
"grid": [ "grid": [
@ -23,16 +23,16 @@
" ", " ",
" ", " ",
" ", " ",
" !!!! !!!! ### ## ## $$$ $$$ %% %%% %%%% && &&&&&&", " !!!!! !! # ######## $$ $$$$ $ %%% %%% %%% &&& &&& & ' ''' ",
" ! ! ! # # #### $$ $ $$$ %%%% %%%% % &&&& &&&&", " !! ! ! ### # ## # $$ $ $$$ % % % %% & & && ''''' ",
" ", " ",
" ' ! ( # ) $ * % + & ", " ! ( # ) $ * % + & ' ",
" ", " ",
" ", " ",
" ( ( (( ) * + ", " ( ( ) * + ",
"''' ' ' ''' (((( ( (( ((((((( ))))) ))))) *** * * ** *** +++ + ++++ ++ ", " ( ((( ( (((( ( ))))) )))) ***** * * ++ + ++ + ++ ",
"''' ' '' ''' ((((((( (( ((((((( ))))) ) )) )) ***** * **** * *** +++++ +++ ++ ", " ( ((((( (( ((( ))))) ) ))))) * ***** ** * ++++ + ++ +++ + ",
" ", " + ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -3,14 +3,14 @@
"", "",
"2", "2",
"4", "4",
"7", "6",
"9", "8",
"10",
"1", "1",
"3", "3",
"5", "5",
"6", "7",
"8", "9"
"10"
], ],
"data": {}, "data": {},
"grid": [ "grid": [
@ -23,16 +23,16 @@
" ", " ",
" ", " ",
" ", " ",
" ! !!!! ! ## ####### $$$$$$ $ $ $ %%%%%% % % ", " ! !!! !! ! ## #### # $$ $$$ $ %%% %%%%%% &&& &&& ",
" !!! !!!!! #### #### $ $$ $$$$ % %% % % ", " !! ! !!! #### ## # $$ $ $$$ % %%%%% & && ",
" ", " % ",
" & ! ' # ( ) $ * % + ", " ' ! ( # ) $ * % + & ",
" ", " ",
" ", " ",
" & & ' ' ' ( ( ( ) * + + ", " ' ( ( ( ) * + ",
" &&&& & &&& && ''''' ' ''' '''' (((( ( (( (( ))) ) ) ) **** *** ** +++ + + +++ ", " ''''' ' ' ''' ( ((( ( ( ((((( )) ) ) )) *** * * *** ***** +++++ +++ +++ ",
" &&&&&&& &&& && ''''' ' '''' '''' ((((((( (( ( (( ))))) )) )) ***** ** *** * +++++ + +++++ ", " '''' ' ''' ''' ( ((((( (( ((((( )))) ) ) ) )) ****** **** * ** * + +++++ +++ ++ ",
" ** ", " ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -29,10 +29,10 @@
" ! # $ % & ' ( ) * + ", " ! # $ % & ' ( ) * + ",
" ", " ",
" ", " ",
" ! # # $ $ $$ % % % & ' ( ) ) ) * + ", " ! ! # # $ $ % & & & ' ( ) * + + ",
" !!!!! ! ! !!! ##### # #### $$$$ $ $$ $$$$$$$ %%%%%% %% % %% &&&&& &&&&& ''' ' ' ' ' ((( ( ( (( ((( )))) ) )))) ))) *** * **** ** +++ + ++ + ", " ! !!! ! !!!!!! # ### # #### # $$$$$ $ $$ $$$$ %%%%% %%%% & &&& & &&&&&& ''''' ' ' ((((( ((((((((( )) ) )) ) )) *** * * *** +++ + ++++++ ",
" !!!!! ! !! !!! ##### # ## ### $$$$$$$ $$ $$$$$$$ %%%%% % %%% %%% &&&&& & && && ''''' ' ''''' ((((( ( (((( ( ((( ))))))) ))))) ))) ***** *** ** +++++ +++ + ", " ! !!!!! !!!!!!! # ##### ## ### $$$$ $ $$ $$ $$$$ %%%%% % %%%%% & &&&&& && &&& ' ''''' '' ' ( ((((( (( ((( ((( )))) ) )) ))) ) ****** * *** ++++++ + ++ + ",
" )) ", " ) ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -31,18 +31,15 @@
" ", " ",
" ", " ",
" ! ", " ! ",
" ! ",
" ",
" !! ! ! ! ",
" ! ! ! ",
" ", " ",
" ", " ",
" ! ",
" ", " ",
" ! ", " ! ! ",
" ",
" !!! ! ! ",
" ! ! ",
" ",
" ",
" ",
" !! ! ",
" !! ",
" ", " ",
" ! ", " ! ",
" !!! ", " !!! ",
@ -54,6 +51,9 @@
" ", " ",
" ", " ",
" ", " ",
" ",
" ",
" ",
" " " "
] ]
} }

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" ! ", " ! ",
" ! ! ", " ! ! ",
" ## ", " ## ",
" $$$ % % #### & & ' ! ! ( (((( ) ", " $$$ % % & #### ' ' ( ! ! ) )))) * ",
" $ % % * + ## && ' ' ! ( ( ( )) ", " $ % % & + ## '' ( ( ! ) ) ) ** ",
" $$ %% * ++ && '' !! (( (((( )) ", " $$ %% & ++ '' (( !! )) )))) ** ",
" $ * ++++ ( ", " $ & ++++ ) ",
" *** ++ ", " & & ++ ",
" ! ", " ! ",
" ! ", " ! ",
" ! ", " ! ",

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" ! ", " ! ",
" # ! ! ", " # ! ! ",
" ## ", " ## ",
" $$$ %%% #### &&& ''' !!! ( (( ( ( ))) ", " $$$ % % & #### ''' ((( !!! ) )) ) ) *** ",
" $ %% * + ### && '' ! ( (( ( ) ", " $ %% & + ### '' (( ! ) )) ) * ",
" $$ % * ++ & ' !! ( (( ( ) ", " $$ % & ++ ' ( !! ) )) ) * ",
" $ % * ++++ & ' ! ) ", " $ & ++++ ' ( ! * ",
" *** ++ ", " & & ++ ",
" ! ", " ! ",
" ! ", " ! ",
" ! ", " ! ",

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" !! ", " !! ",
" # ! ", " # ! ",
" ## ", " ## ",
" $$$ %%% ##### &&& ''' ! (( ( ( )) ", " $$$ % % & ##### ''' ((( ! )) ) ) ** ",
" $ %% * + ### && '' !! ( ( ( ) ", " $ %% & + ### '' (( !! ) ) ) * ",
" $$ % * ++ && '' !! (((( (( )) ", " $$ % & ++ '' (( !! )))) )) ** ",
" $ % * ++++ & ' ) ", " $ & ++++ ' ( * ",
" *** ++ ", " & & ++ ",
" !! ", " !! ",
" ! ", " ! ",
" !! ", " !! ",

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" !! ", " !! ",
" # ! ", " # ! ",
" ## ", " ## ",
" $$ %%% ##### && '' ! ( (((( ) ", " $$ % % & ##### '' (( ! ) )))) * ",
" $ %% * + ### && ''' !! (( ( (( )) ", " $ %% & + ### '' ((( !! )) ) )) ** ",
" $$ % ** ++ && '' !! (( ( (( )) ", " $$ && ++ '' (( !! )) ) )) ** ",
" $ % * ++++ & ' ( ", " $ & ++++ ' ( ) ",
" *** + ", " & & + ",
" !! ", " !! ",
" ! ", " ! ",
" !! ", " !! ",

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" ! ", " ! ",
" # ! ! ", " # ! ! ",
" ## ", " ## ",
" $$ %%% #### & ' ! ! ( (((( ( ) ) ", " $$ % % & #### ' ( ! ! ) )))) ) * * ",
" $ %% * + ## &&& ''' ! ( ( ( ) ", " $ %% & + ## ''' ((( ! ) ) ) * ",
" $$ % ** ++ && '' !! (( (((( )) ", " $$ && ++ '' (( !! )) )))) ** ",
" $ % * ++++ ( ", " $ & ++++ ) ",
" *** + ", " & & + ",
" ! ", " ! ",
" ! ", " ! ",
" !! ", " !! ",

View file

@ -5,11 +5,11 @@
"5", "5",
"1", "1",
"2", "2",
"3",
"6", "6",
"7", "7",
"9", "9",
"10", "10",
"3",
"4" "4"
], ],
"data": {}, "data": {},
@ -25,11 +25,11 @@
" ! ", " ! ",
" # ! ! ", " # ! ! ",
" ## ", " ## ",
" $$ %%% #### & ' !!! ( ( (( ( ))) ", " $$ % % & #### ' ( !!! ) ) )) ) *** ",
" $ %% * + ## && ' ' ! ( (( ( ) ", " $ %% & + ## '' ( ( ! ) )) ) * ",
" $$ % ** + && '' ! (( ) ", " $$ && + '' (( ! )) * ",
" $ % ** ++++ ! ) ", " $ && ++++ ! * ",
" *** + + ", " & & + + ",
" ! ! ", " ! ! ",
" ! ", " ! ",
" ! ", " ! ",

View file

@ -25,10 +25,10 @@
" ! ", " ! ",
" ! ! ", " ! ! ",
" ## ", " ## ",
" $$ %%% #### & & ' ' !!! ( (( ( ( ))) ", " $$ % % #### & & ' ' !!! ( (( ( ( ))) ",
" $ %% * + ## && ' ' ! ( ( ( ) ", " $ %% * + ## && ' ' ! ( ( ( ) ",
" $$ % ** ++ && '' ! (((( (( )) ", " $$ % ** ++ && '' ! (((( (( )) ",
" $ % ** ++++ ! ) ", " $ ** ++++ ! ) ",
" * +++ ", " * +++ ",
" ! ", " ! ",
" ! ", " ! ",

View file

@ -25,10 +25,10 @@
" !! ", " !! ",
" ! ! ", " ! ! ",
" # ", " # ",
" $$ %%% #### &&& '' ! ( (((( ( ))) ", " $$ % % #### &&& '' ! ( (((( ( ))) ",
" $ %% * + ## && '' ! ( ( ( ) ", " $ %% * + ## && '' ! ( ( ( ) ",
" $$ %% ** ++ && '' !! (( (((( ) ", " $$ %%% ** ++ && '' !! (( (((( ) ",
" $ % ** +++++ & ' ( ) ", " $ % ** +++++ & ' ( ) ",
" * +++ ", " * +++ ",
" ! ", " ! ",
" ! ", " ! ",

View file

@ -25,10 +25,10 @@
" !! ", " !! ",
" ! ", " ! ",
" ## ", " ## ",
" $ % #### & & ''' ! ( ( (( ( ))) ", " $ % % #### & & ''' ! ( ( (( ( ))) ",
" $$ %%% * + ## && '' ! ( (( ( ) ", " $$ %%% * + ## && '' ! ( (( ( ) ",
" $$ %% * ++ & ' !! ( (( ( ) ", " $$ %%% * ++ & ' !! ( (( ( ) ",
" * ++++ ' ) ", " % * ++++ ' ) ",
" * * + ", " * * + ",
" !! ", " !! ",
" ! ", " ! ",

View file

@ -21,20 +21,20 @@
" ", " ",
" ", " ",
" ", " ",
" ! ", " !! ",
" ! ", " !! ",
" ! ! ", " ! ",
" # ", " # ",
" $ $ % # #### & & ' ' ! ! ( ( (( ", " $ $ % % #### & & ' ! (( ( ( ",
" $ % % ) * ### && '' ! ( ( ( + ", " $ $ % %%% ) * # # # & & ' ' ! ! ((( ( (( + + ",
" $ %% )) * & ' ! (( ( (( ", " $ %%% )) ** & '' !! (( ( (( + ",
" )) * **** ", " % )) **** ++++",
" ) * * ", " ) * + ",
" ! ! ", " !! ",
" ! + ", " ! ",
" ! ++ + ", " !! + ",
" + ++++", " + ",
" + + ", " + + ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -21,20 +21,20 @@
" ", " ",
" ", " ",
" ", " ",
" ! ", " !! ",
" ! ", " !! ",
" ! ! ", " ! ",
" ## ", " ## ",
" $ $ $ % % # #### & & ' ! ! ( ( (( ( ", " $$$ %% #### & ' ! (((( ( ",
" $ $ % % ) * * ## && ' ' ! ( ( (( + ", " $ $ % %%% ) * * # ## & && ' '' ! !! ((( ( (( + + ",
" $$ $ %% ) ** * && '' !! (( ((((( ", " $ %%% )) ** && '' !! (( ( (( + ",
" $ ) * ***** ( ", " $ % )) ***** ( ++++",
" ) ) * * ", " ) ) *** + ",
" ! ", " !! ",
" ! + ", " ! ",
" ! ++ + ", " !! ++ ",
" + ++++", " + ",
" ++ + ", " + ",
" ", " ",
" ", " ",
" ", " ",

View file

@ -21,20 +21,20 @@
" ", " ",
" ", " ",
" ", " ",
" !! ", " ! ",
" ! ", " ! ",
" ! ! ", " ! ! ",
" # ", " ## ",
" $ $ $ % % # #### & & ' ' ! ! ! ( (( ( ( ", " $$$ % #### & & ' ' !!! ( (((( ( ",
" $ $ %% ) * * ### && '' ! ! ( (( (( + ", " $ $ % % ) * * # # & & ' ' ! ! ( ( (( ( + ",
" $$ $ % ) ** * & !! ! ( (( (( ", " $ %% ) ** && '' ! (( (((( ",
" $ ) ******* ! ( ", " $ ) ***** ! ( ++++ ",
" ) ) ** * ", " ) ) ** ",
" ! ", " ! ! ",
" ! ", " ! ",
" ! + ", " ! ++ ",
" + ++++ ", " + ",
" + + ", " + ",
" ", " ",
" ", " ",
" ", " ",

Some files were not shown because too many files have changed in this diff Show more