/*
CSS Browser Selector v0.2.7
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
var css_browser_selector = function() {var ua=navigator.userAgent.toLowerCase(),is=function(t){return ua.indexOf(t) != -1;},h=document.getElementsByTagName('html')[0],b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?'gecko ff2':is('firefox/3')?'gecko ff3':is('gecko/')?'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';var c=b+os+' js'; h.className += h.className?' '+c:c;}();
/*
---

script: Core.js

description: The core of MooTools, contains all the base functions and the Native and Hash implementations. Required by all the other scripts.

license: MIT-style license.

copyright: Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/).

authors: The MooTools production team (http://mootools.net/developers/)

inspiration:
- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)

provides: [Mootools, Native, Hash.base, Array.each, $util]

...
*/

var MooTools = {
	'version': '1.2.4',
	'build': '0d9113241a90b9cd5643b926795852a2026710d4'
};

var Native = function(options){
	options = options || {};
	var name = options.name;
	var legacy = options.legacy;
	var protect = options.protect;
	var methods = options.implement;
	var generics = options.generics;
	var initialize = options.initialize;
	var afterImplement = options.afterImplement || function(){};
	var object = initialize || legacy;
	generics = generics !== false;

	object.constructor = Native;
	object.$family = {name: 'native'};
	if (legacy && initialize) object.prototype = legacy.prototype;
	object.prototype.constructor = object;

	if (name){
		var family = name.toLowerCase();
		object.prototype.$family = {name: family};
		Native.typize(object, family);
	}

	var add = function(obj, name, method, force){
		if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;
		if (generics) Native.genericize(obj, name, protect);
		afterImplement.call(obj, name, method);
		return obj;
	};

	object.alias = function(a1, a2, a3){
		if (typeof a1 == 'string'){
			var pa1 = this.prototype[a1];
			if ((a1 = pa1)) return add(this, a2, a1, a3);
		}
		for (var a in a1) this.alias(a, a1[a], a2);
		return this;
	};

	object.implement = function(a1, a2, a3){
		if (typeof a1 == 'string') return add(this, a1, a2, a3);
		for (var p in a1) add(this, p, a1[p], a2);
		return this;
	};

	if (methods) object.implement(methods);

	return object;
};

Native.genericize = function(object, property, check){
	if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){
		var args = Array.prototype.slice.call(arguments);
		return object.prototype[property].apply(args.shift(), args);
	};
};

Native.implement = function(objects, properties){
	for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);
};

Native.typize = function(object, family){
	if (!object.type) object.type = function(item){
		return ($type(item) === family);
	};
};

(function(){
	var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String};
	for (var n in natives) new Native({name: n, initialize: natives[n], protect: true});

	var types = {'boolean': Boolean, 'native': Native, 'object': Object};
	for (var t in types) Native.typize(types[t], t);

	var generics = {
		'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"],
		'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"]
	};
	for (var g in generics){
		for (var i = generics[g].length; i--;) Native.genericize(natives[g], generics[g][i], true);
	}
})();

var Hash = new Native({

	name: 'Hash',

	initialize: function(object){
		if ($type(object) == 'hash') object = $unlink(object.getClean());
		for (var key in object) this[key] = object[key];
		return this;
	}

});

Hash.implement({

	forEach: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);
		}
	},

	getClean: function(){
		var clean = {};
		for (var key in this){
			if (this.hasOwnProperty(key)) clean[key] = this[key];
		}
		return clean;
	},

	getLength: function(){
		var length = 0;
		for (var key in this){
			if (this.hasOwnProperty(key)) length++;
		}
		return length;
	}

});

Hash.alias('forEach', 'each');

Array.implement({

	forEach: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);
	}

});

Array.alias('forEach', 'each');

function $A(iterable){
	if (iterable.item){
		var l = iterable.length, array = new Array(l);
		while (l--) array[l] = iterable[l];
		return array;
	}
	return Array.prototype.slice.call(iterable);
};

function $arguments(i){
	return function(){
		return arguments[i];
	};
};

function $chk(obj){
	return !!(obj || obj === 0);
};

function $clear(timer){
	clearTimeout(timer);
	clearInterval(timer);
	return null;
};

function $defined(obj){
	return (obj != undefined);
};

function $each(iterable, fn, bind){
	var type = $type(iterable);
	((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);
};

function $empty(){};

function $extend(original, extended){
	for (var key in (extended || {})) original[key] = extended[key];
	return original;
};

function $H(object){
	return new Hash(object);
};

function $lambda(value){
	return ($type(value) == 'function') ? value : function(){
		return value;
	};
};

function $merge(){
	var args = Array.slice(arguments);
	args.unshift({});
	return $mixin.apply(null, args);
};

function $mixin(mix){
	for (var i = 1, l = arguments.length; i < l; i++){
		var object = arguments[i];
		if ($type(object) != 'object') continue;
		for (var key in object){
			var op = object[key], mp = mix[key];
			mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op);
		}
	}
	return mix;
};

function $pick(){
	for (var i = 0, l = arguments.length; i < l; i++){
		if (arguments[i] != undefined) return arguments[i];
	}
	return null;
};

function $random(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min);
};

function $splat(obj){
	var type = $type(obj);
	return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];
};

var $time = Date.now || function(){
	return +new Date;
};

function $try(){
	for (var i = 0, l = arguments.length; i < l; i++){
		try {
			return arguments[i]();
		} catch(e){}
	}
	return null;
};

function $type(obj){
	if (obj == undefined) return false;
	if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
	if (obj.nodeName){
		switch (obj.nodeType){
			case 1: return 'element';
			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
		}
	} else if (typeof obj.length == 'number'){
		if (obj.callee) return 'arguments';
		else if (obj.item) return 'collection';
	}
	return typeof obj;
};

function $unlink(object){
	var unlinked;
	switch ($type(object)){
		case 'object':
			unlinked = {};
			for (var p in object) unlinked[p] = $unlink(object[p]);
		break;
		case 'hash':
			unlinked = new Hash(object);
		break;
		case 'array':
			unlinked = [];
			for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
		break;
		default: return object;
	}
	return unlinked;
};


/*
---

script: Browser.js

description: The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.

license: MIT-style license.

requires: 
- /Native
- /$util

provides: [Browser, Window, Document, $exec]

...
*/

var Browser = $merge({

	Engine: {name: 'unknown', version: 0},

	Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},

	Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},

	Plugins: {},

	Engines: {

		presto: function(){
			return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
		},

		trident: function(){
			return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? ((document.querySelectorAll) ? 6 : 5) : 4);
		},

		webkit: function(){
			return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
		},

		gecko: function(){
			return (!document.getBoxObjectFor && window.mozInnerScreenX == null) ? false : ((document.getElementsByClassName) ? 19 : 18);
		}

	}

}, Browser || {});

Browser.Platform[Browser.Platform.name] = true;

Browser.detect = function(){

	for (var engine in this.Engines){
		var version = this.Engines[engine]();
		if (version){
			this.Engine = {name: engine, version: version};
			this.Engine[engine] = this.Engine[engine + version] = true;
			break;
		}
	}

	return {name: engine, version: version};

};

Browser.detect();

Browser.Request = function(){
	return $try(function(){
		return new XMLHttpRequest();
	}, function(){
		return new ActiveXObject('MSXML2.XMLHTTP');
	}, function(){
		return new ActiveXObject('Microsoft.XMLHTTP');
	});
};

Browser.Features.xhr = !!(Browser.Request());

Browser.Plugins.Flash = (function(){
	var version = ($try(function(){
		return navigator.plugins['Shockwave Flash'].description;
	}, function(){
		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
	}) || '0 r0').match(/\d+/g);
	return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0};
})();

function $exec(text){
	if (!text) return text;
	if (window.execScript){
		window.execScript(text);
	} else {
		var script = document.createElement('script');
		script.setAttribute('type', 'text/javascript');
		script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text;
		document.head.appendChild(script);
		document.head.removeChild(script);
	}
	return text;
};

Native.UID = 1;

var $uid = (Browser.Engine.trident) ? function(item){
	return (item.uid || (item.uid = [Native.UID++]))[0];
} : function(item){
	return item.uid || (item.uid = Native.UID++);
};

var Window = new Native({

	name: 'Window',

	legacy: (Browser.Engine.trident) ? null: window.Window,

	initialize: function(win){
		$uid(win);
		if (!win.Element){
			win.Element = $empty;
			if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2
			win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};
		}
		win.document.window = win;
		return $extend(win, Window.Prototype);
	},

	afterImplement: function(property, value){
		window[property] = Window.Prototype[property] = value;
	}

});

Window.Prototype = {$family: {name: 'window'}};

new Window(window);

var Document = new Native({

	name: 'Document',

	legacy: (Browser.Engine.trident) ? null: window.Document,

	initialize: function(doc){
		$uid(doc);
		doc.head = doc.getElementsByTagName('head')[0];
		doc.html = doc.getElementsByTagName('html')[0];
		if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){
			doc.execCommand("BackgroundImageCache", false, true);
		});
		if (Browser.Engine.trident) doc.window.attachEvent('onunload', function(){
			doc.window.detachEvent('onunload', arguments.callee);
			doc.head = doc.html = doc.window = null;
		});
		return $extend(doc, Document.Prototype);
	},

	afterImplement: function(property, value){
		document[property] = Document.Prototype[property] = value;
	}

});

Document.Prototype = {$family: {name: 'document'}};

new Document(document);


/*
---

script: Array.js

description: Contains Array Prototypes like each, contains, and erase.

license: MIT-style license.

requires:
- /$util
- /Array.each

provides: [Array]

...
*/

Array.implement({

	every: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++){
			if (!fn.call(bind, this[i], i, this)) return false;
		}
		return true;
	},

	filter: function(fn, bind){
		var results = [];
		for (var i = 0, l = this.length; i < l; i++){
			if (fn.call(bind, this[i], i, this)) results.push(this[i]);
		}
		return results;
	},

	clean: function(){
		return this.filter($defined);
	},

	indexOf: function(item, from){
		var len = this.length;
		for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
			if (this[i] === item) return i;
		}
		return -1;
	},

	map: function(fn, bind){
		var results = [];
		for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);
		return results;
	},

	some: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++){
			if (fn.call(bind, this[i], i, this)) return true;
		}
		return false;
	},

	associate: function(keys){
		var obj = {}, length = Math.min(this.length, keys.length);
		for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
		return obj;
	},

	link: function(object){
		var result = {};
		for (var i = 0, l = this.length; i < l; i++){
			for (var key in object){
				if (object[key](this[i])){
					result[key] = this[i];
					delete object[key];
					break;
				}
			}
		}
		return result;
	},

	contains: function(item, from){
		return this.indexOf(item, from) != -1;
	},

	extend: function(array){
		for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);
		return this;
	},
	
	getLast: function(){
		return (this.length) ? this[this.length - 1] : null;
	},

	getRandom: function(){
		return (this.length) ? this[$random(0, this.length - 1)] : null;
	},

	include: function(item){
		if (!this.contains(item)) this.push(item);
		return this;
	},

	combine: function(array){
		for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
		return this;
	},

	erase: function(item){
		for (var i = this.length; i--; i){
			if (this[i] === item) this.splice(i, 1);
		}
		return this;
	},

	empty: function(){
		this.length = 0;
		return this;
	},

	flatten: function(){
		var array = [];
		for (var i = 0, l = this.length; i < l; i++){
			var type = $type(this[i]);
			if (!type) continue;
			array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);
		}
		return array;
	},

	hexToRgb: function(array){
		if (this.length != 3) return null;
		var rgb = this.map(function(value){
			if (value.length == 1) value += value;
			return value.toInt(16);
		});
		return (array) ? rgb : 'rgb(' + rgb + ')';
	},

	rgbToHex: function(array){
		if (this.length < 3) return null;
		if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
		var hex = [];
		for (var i = 0; i < 3; i++){
			var bit = (this[i] - 0).toString(16);
			hex.push((bit.length == 1) ? '0' + bit : bit);
		}
		return (array) ? hex : '#' + hex.join('');
	}

});


/*
---

script: Function.js

description: Contains Function Prototypes like create, bind, pass, and delay.

license: MIT-style license.

requires:
- /Native
- /$util

provides: [Function]

...
*/

Function.implement({

	extend: function(properties){
		for (var property in properties) this[property] = properties[property];
		return this;
	},

	create: function(options){
		var self = this;
		options = options || {};
		return function(event){
			var args = options.arguments;
			args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);
			if (options.event) args = [event || window.event].extend(args);
			var returns = function(){
				return self.apply(options.bind || null, args);
			};
			if (options.delay) return setTimeout(returns, options.delay);
			if (options.periodical) return setInterval(returns, options.periodical);
			if (options.attempt) return $try(returns);
			return returns();
		};
	},

	run: function(args, bind){
		return this.apply(bind, $splat(args));
	},

	pass: function(args, bind){
		return this.create({bind: bind, arguments: args});
	},

	bind: function(bind, args){
		return this.create({bind: bind, arguments: args});
	},

	bindWithEvent: function(bind, args){
		return this.create({bind: bind, arguments: args, event: true});
	},

	attempt: function(args, bind){
		return this.create({bind: bind, arguments: args, attempt: true})();
	},

	delay: function(delay, bind, args){
		return this.create({bind: bind, arguments: args, delay: delay})();
	},

	periodical: function(periodical, bind, args){
		return this.create({bind: bind, arguments: args, periodical: periodical})();
	}

});


/*
---

script: Number.js

description: Contains Number Prototypes like limit, round, times, and ceil.

license: MIT-style license.

requires:
- /Native
- /$util

provides: [Number]

...
*/

Number.implement({

	limit: function(min, max){
		return Math.min(max, Math.max(min, this));
	},

	round: function(precision){
		precision = Math.pow(10, precision || 0);
		return Math.round(this * precision) / precision;
	},

	times: function(fn, bind){
		for (var i = 0; i < this; i++) fn.call(bind, i, this);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	}

});

Number.alias('times', 'each');

(function(math){
	var methods = {};
	math.each(function(name){
		if (!Number[name]) methods[name] = function(){
			return Math[name].apply(null, [this].concat($A(arguments)));
		};
	});
	Number.implement(methods);
})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);


/*
---

script: String.js

description: Contains String Prototypes like camelCase, capitalize, test, and toInt.

license: MIT-style license.

requires:
- /Native

provides: [String]

...
*/

String.implement({

	test: function(regex, params){
		return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);
	},

	contains: function(string, separator){
		return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;
	},

	trim: function(){
		return this.replace(/^\s+|\s+$/g, '');
	},

	clean: function(){
		return this.replace(/\s+/g, ' ').trim();
	},

	camelCase: function(){
		return this.replace(/-\D/g, function(match){
			return match.charAt(1).toUpperCase();
		});
	},

	hyphenate: function(){
		return this.replace(/[A-Z]/g, function(match){
			return ('-' + match.charAt(0).toLowerCase());
		});
	},

	capitalize: function(){
		return this.replace(/\b[a-z]/g, function(match){
			return match.toUpperCase();
		});
	},

	escapeRegExp: function(){
		return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	hexToRgb: function(array){
		var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
		return (hex) ? hex.slice(1).hexToRgb(array) : null;
	},

	rgbToHex: function(array){
		var rgb = this.match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHex(array) : null;
	},

	stripScripts: function(option){
		var scripts = '';
		var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
			scripts += arguments[1] + '\n';
			return '';
		});
		if (option === true) $exec(scripts);
		else if ($type(option) == 'function') option(scripts, text);
		return text;
	},

	substitute: function(object, regexp){
		return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
			if (match.charAt(0) == '\\') return match.slice(1);
			return (object[name] != undefined) ? object[name] : '';
		});
	}

});


/*
---

script: Hash.js

description: Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.

license: MIT-style license.

requires:
- /Hash.base

provides: [Hash]

...
*/

Hash.implement({

	has: Object.prototype.hasOwnProperty,

	keyOf: function(value){
		for (var key in this){
			if (this.hasOwnProperty(key) && this[key] === value) return key;
		}
		return null;
	},

	hasValue: function(value){
		return (Hash.keyOf(this, value) !== null);
	},

	extend: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.set(this, key, value);
		}, this);
		return this;
	},

	combine: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.include(this, key, value);
		}, this);
		return this;
	},

	erase: function(key){
		if (this.hasOwnProperty(key)) delete this[key];
		return this;
	},

	get: function(key){
		return (this.hasOwnProperty(key)) ? this[key] : null;
	},

	set: function(key, value){
		if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
		return this;
	},

	empty: function(){
		Hash.each(this, function(value, key){
			delete this[key];
		}, this);
		return this;
	},

	include: function(key, value){
		if (this[key] == undefined) this[key] = value;
		return this;
	},

	map: function(fn, bind){
		var results = new Hash;
		Hash.each(this, function(value, key){
			results.set(key, fn.call(bind, value, key, this));
		}, this);
		return results;
	},

	filter: function(fn, bind){
		var results = new Hash;
		Hash.each(this, function(value, key){
			if (fn.call(bind, value, key, this)) results.set(key, value);
		}, this);
		return results;
	},

	every: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;
		}
		return true;
	},

	some: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;
		}
		return false;
	},

	getKeys: function(){
		var keys = [];
		Hash.each(this, function(value, key){
			keys.push(key);
		});
		return keys;
	},

	getValues: function(){
		var values = [];
		Hash.each(this, function(value){
			values.push(value);
		});
		return values;
	},

	toQueryString: function(base){
		var queryString = [];
		Hash.each(this, function(value, key){
			if (base) key = base + '[' + key + ']';
			var result;
			switch ($type(value)){
				case 'object': result = Hash.toQueryString(value, key); break;
				case 'array':
					var qs = {};
					value.each(function(val, i){
						qs[i] = val;
					});
					result = Hash.toQueryString(qs, key);
				break;
				default: result = key + '=' + encodeURIComponent(value);
			}
			if (value != undefined) queryString.push(result);
		});

		return queryString.join('&');
	}

});

Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});


/*
---

script: Event.js

description: Contains the Event Class, to make the event object cross-browser.

license: MIT-style license.

requires:
- /Window
- /Document
- /Hash
- /Array
- /Function
- /String

provides: [Event]

...
*/

var Event = new Native({

	name: 'Event',

	initialize: function(event, win){
		win = win || window;
		var doc = win.document;
		event = event || win.event;
		if (event.$extended) return event;
		this.$extended = true;
		var type = event.type;
		var target = event.target || event.srcElement;
		while (target && target.nodeType == 3) target = target.parentNode;

		if (type.test(/key/)){
			var code = event.which || event.keyCode;
			var key = Event.Keys.keyOf(code);
			if (type == 'keydown'){
				var fKey = code - 111;
				if (fKey > 0 && fKey < 13) key = 'f' + fKey;
			}
			key = key || String.fromCharCode(code).toLowerCase();
		} else if (type.match(/(click|mouse|menu)/i)){
			doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
			var page = {
				x: event.pageX || event.clientX + doc.scrollLeft,
				y: event.pageY || event.clientY + doc.scrollTop
			};
			var client = {
				x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,
				y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY
			};
			if (type.match(/DOMMouseScroll|mousewheel/)){
				var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
			}
			var rightClick = (event.which == 3) || (event.button == 2);
			var related = null;
			if (type.match(/over|out/)){
				switch (type){
					case 'mouseover': related = event.relatedTarget || event.fromElement; break;
					case 'mouseout': related = event.relatedTarget || event.toElement;
				}
				if (!(function(){
					while (related && related.nodeType == 3) related = related.parentNode;
					return true;
				}).create({attempt: Browser.Engine.gecko})()) related = false;
			}
		}

		return $extend(this, {
			event: event,
			type: type,

			page: page,
			client: client,
			rightClick: rightClick,

			wheel: wheel,

			relatedTarget: related,
			target: target,

			code: code,
			key: key,

			shift: event.shiftKey,
			control: event.ctrlKey,
			alt: event.altKey,
			meta: event.metaKey
		});
	}

});

Event.Keys = new Hash({
	'enter': 13,
	'up': 38,
	'down': 40,
	'left': 37,
	'right': 39,
	'esc': 27,
	'space': 32,
	'backspace': 8,
	'tab': 9,
	'delete': 46
});

Event.implement({

	stop: function(){
		return this.stopPropagation().preventDefault();
	},

	stopPropagation: function(){
		if (this.event.stopPropagation) this.event.stopPropagation();
		else this.event.cancelBubble = true;
		return this;
	},

	preventDefault: function(){
		if (this.event.preventDefault) this.event.preventDefault();
		else this.event.returnValue = false;
		return this;
	}

});


/*
---

script: Class.js

description: Contains the Class Function for easily creating, extending, and implementing reusable Classes.

license: MIT-style license.

requires:
- /$util
- /Native
- /Array
- /String
- /Function
- /Number
- /Hash

provides: [Class]

...
*/

function Class(params){
	
	if (params instanceof Function) params = {initialize: params};
	
	var newClass = function(){
		Object.reset(this);
		if (newClass._prototyping) return this;
		this._current = $empty;
		var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
		delete this._current; delete this.caller;
		return value;
	}.extend(this);
	
	newClass.implement(params);
	
	newClass.constructor = Class;
	newClass.prototype.constructor = newClass;

	return newClass;

};

Function.prototype.protect = function(){
	this._protected = true;
	return this;
};

Object.reset = function(object, key){
		
	if (key == null){
		for (var p in object) Object.reset(object, p);
		return object;
	}
	
	delete object[key];
	
	switch ($type(object[key])){
		case 'object':
			var F = function(){};
			F.prototype = object[key];
			var i = new F;
			object[key] = Object.reset(i);
		break;
		case 'array': object[key] = $unlink(object[key]); break;
	}
	
	return object;
	
};

new Native({name: 'Class', initialize: Class}).extend({

	instantiate: function(F){
		F._prototyping = true;
		var proto = new F;
		delete F._prototyping;
		return proto;
	},
	
	wrap: function(self, key, method){
		if (method._origin) method = method._origin;
		
		return function(){
			if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.');
			var caller = this.caller, current = this._current;
			this.caller = current; this._current = arguments.callee;
			var result = method.apply(this, arguments);
			this._current = current; this.caller = caller;
			return result;
		}.extend({_owner: self, _origin: method, _name: key});

	}
	
});

Class.implement({
	
	implement: function(key, value){
		
		if ($type(key) == 'object'){
			for (var p in key) this.implement(p, key[p]);
			return this;
		}
		
		var mutator = Class.Mutators[key];
		
		if (mutator){
			value = mutator.call(this, value);
			if (value == null) return this;
		}
		
		var proto = this.prototype;

		switch ($type(value)){
			
			case 'function':
				if (value._hidden) return this;
				proto[key] = Class.wrap(this, key, value);
			break;
			
			case 'object':
				var previous = proto[key];
				if ($type(previous) == 'object') $mixin(previous, value);
				else proto[key] = $unlink(value);
			break;
			
			case 'array':
				proto[key] = $unlink(value);
			break;
			
			default: proto[key] = value;

		}
		
		return this;

	}
	
});

Class.Mutators = {
	
	Extends: function(parent){

		this.parent = parent;
		this.prototype = Class.instantiate(parent);

		this.implement('parent', function(){
			var name = this.caller._name, previous = this.caller._owner.parent.prototype[name];
			if (!previous) throw new Error('The method "' + name + '" has no parent.');
			return previous.apply(this, arguments);
		}.protect());

	},

	Implements: function(items){
		$splat(items).each(function(item){
			if (item instanceof Function) item = Class.instantiate(item);
			this.implement(item);
		}, this);

	}
	
};


/*
---

script: Class.Extras.js

description: Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.

license: MIT-style license.

requires:
- /Class

provides: [Chain, Events, Options]

...
*/

var Chain = new Class({

	$chain: [],

	chain: function(){
		this.$chain.extend(Array.flatten(arguments));
		return this;
	},

	callChain: function(){
		return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
	},

	clearChain: function(){
		this.$chain.empty();
		return this;
	}

});

var Events = new Class({

	$events: {},

	addEvent: function(type, fn, internal){
		type = Events.removeOn(type);
		if (fn != $empty){
			this.$events[type] = this.$events[type] || [];
			this.$events[type].include(fn);
			if (internal) fn.internal = true;
		}
		return this;
	},

	addEvents: function(events){
		for (var type in events) this.addEvent(type, events[type]);
		return this;
	},

	fireEvent: function(type, args, delay){
		type = Events.removeOn(type);
		if (!this.$events || !this.$events[type]) return this;
		this.$events[type].each(function(fn){
			fn.create({'bind': this, 'delay': delay, 'arguments': args})();
		}, this);
		return this;
	},

	removeEvent: function(type, fn){
		type = Events.removeOn(type);
		if (!this.$events[type]) return this;
		if (!fn.internal) this.$events[type].erase(fn);
		return this;
	},

	removeEvents: function(events){
		var type;
		if ($type(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		if (events) events = Events.removeOn(events);
		for (type in this.$events){
			if (events && events != type) continue;
			var fns = this.$events[type];
			for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);
		}
		return this;
	}

});

Events.removeOn = function(string){
	return string.replace(/^on([A-Z])/, function(full, first){
		return first.toLowerCase();
	});
};

var Options = new Class({

	setOptions: function(){
		this.options = $merge.run([this.options].extend(arguments));
		if (!this.addEvent) return this;
		for (var option in this.options){
			if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
			this.addEvent(option, this.options[option]);
			delete this.options[option];
		}
		return this;
	}

});


/*
---

script: Element.js

description: One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser, time-saver methods to let you easily work with HTML Elements.

license: MIT-style license.

requires:
- /Window
- /Document
- /Array
- /String
- /Function
- /Number
- /Hash

provides: [Element, Elements, $, $$, Iframe]

...
*/

var Element = new Native({

	name: 'Element',

	legacy: window.Element,

	initialize: function(tag, props){
		var konstructor = Element.Constructors.get(tag);
		if (konstructor) return konstructor(props);
		if (typeof tag == 'string') return document.newElement(tag, props);
		return document.id(tag).set(props);
	},

	afterImplement: function(key, value){
		Element.Prototype[key] = value;
		if (Array[key]) return;
		Elements.implement(key, function(){
			var items = [], elements = true;
			for (var i = 0, j = this.length; i < j; i++){
				var returns = this[i][key].apply(this[i], arguments);
				items.push(returns);
				if (elements) elements = ($type(returns) == 'element');
			}
			return (elements) ? new Elements(items) : items;
		});
	}

});

Element.Prototype = {$family: {name: 'element'}};

Element.Constructors = new Hash;

var IFrame = new Native({

	name: 'IFrame',

	generics: false,

	initialize: function(){
		var params = Array.link(arguments, {properties: Object.type, iframe: $defined});
		var props = params.properties || {};
		var iframe = document.id(params.iframe);
		var onload = props.onload || $empty;
		delete props.onload;
		props.id = props.name = $pick(props.id, props.name, iframe ? (iframe.id || iframe.name) : 'IFrame_' + $time());
		iframe = new Element(iframe || 'iframe', props);
		var onFrameLoad = function(){
			var host = $try(function(){
				return iframe.contentWindow.location.host;
			});
			if (!host || host == window.location.host){
				var win = new Window(iframe.contentWindow);
				new Document(iframe.contentWindow.document);
				$extend(win.Element.prototype, Element.Prototype);
			}
			onload.call(iframe.contentWindow, iframe.contentWindow.document);
		};
		var contentWindow = $try(function(){
			return iframe.contentWindow;
		});
		((contentWindow && contentWindow.document.body) || window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);
		return iframe;
	}

});

var Elements = new Native({

	initialize: function(elements, options){
		options = $extend({ddup: true, cash: true}, options);
		elements = elements || [];
		if (options.ddup || options.cash){
			var uniques = {}, returned = [];
			for (var i = 0, l = elements.length; i < l; i++){
				var el = document.id(elements[i], !options.cash);
				if (options.ddup){
					if (uniques[el.uid]) continue;
					uniques[el.uid] = true;
				}
				if (el) returned.push(el);
			}
			elements = returned;
		}
		return (options.cash) ? $extend(elements, this) : elements;
	}

});

Elements.implement({

	filter: function(filter, bind){
		if (!filter) return this;
		return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){
			return item.match(filter);
		} : filter, bind));
	}

});

Document.implement({

	newElement: function(tag, props){
		if (Browser.Engine.trident && props){
			['name', 'type', 'checked'].each(function(attribute){
				if (!props[attribute]) return;
				tag += ' ' + attribute + '="' + props[attribute] + '"';
				if (attribute != 'checked') delete props[attribute];
			});
			tag = '<' + tag + '>';
		}
		return document.id(this.createElement(tag)).set(props);
	},

	newTextNode: function(text){
		return this.createTextNode(text);
	},

	getDocument: function(){
		return this;
	},

	getWindow: function(){
		return this.window;
	},
	
	id: (function(){
		
		var types = {

			string: function(id, nocash, doc){
				id = doc.getElementById(id);
				return (id) ? types.element(id, nocash) : null;
			},
			
			element: function(el, nocash){
				$uid(el);
				if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){
					var proto = Element.Prototype;
					for (var p in proto) el[p] = proto[p];
				};
				return el;
			},
			
			object: function(obj, nocash, doc){
				if (obj.toElement) return types.element(obj.toElement(doc), nocash);
				return null;
			}
			
		};

		types.textnode = types.whitespace = types.window = types.document = $arguments(0);
		
		return function(el, nocash, doc){
			if (el && el.$family && el.uid) return el;
			var type = $type(el);
			return (types[type]) ? types[type](el, nocash, doc || document) : null;
		};

	})()

});

if (window.$ == null) Window.implement({
	$: function(el, nc){
		return document.id(el, nc, this.document);
	}
});

Window.implement({

	$$: function(selector){
		if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);
		var elements = [];
		var args = Array.flatten(arguments);
		for (var i = 0, l = args.length; i < l; i++){
			var item = args[i];
			switch ($type(item)){
				case 'element': elements.push(item); break;
				case 'string': elements.extend(this.document.getElements(item, true));
			}
		}
		return new Elements(elements);
	},

	getDocument: function(){
		return this.document;
	},

	getWindow: function(){
		return this;
	}

});

Native.implement([Element, Document], {

	getElement: function(selector, nocash){
		return document.id(this.getElements(selector, true)[0] || null, nocash);
	},

	getElements: function(tags, nocash){
		tags = tags.split(',');
		var elements = [];
		var ddup = (tags.length > 1);
		tags.each(function(tag){
			var partial = this.getElementsByTagName(tag.trim());
			(ddup) ? elements.extend(partial) : elements = partial;
		}, this);
		return new Elements(elements, {ddup: ddup, cash: !nocash});
	}

});

(function(){

var collected = {}, storage = {};
var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};

var get = function(uid){
	return (storage[uid] || (storage[uid] = {}));
};

var clean = function(item, retain){
	if (!item) return;
	var uid = item.uid;
	if (Browser.Engine.trident){
		if (item.clearAttributes){
			var clone = retain && item.cloneNode(false);
			item.clearAttributes();
			if (clone) item.mergeAttributes(clone);
		} else if (item.removeEvents){
			item.removeEvents();
		}
		if ((/object/i).test(item.tagName)){
			for (var p in item){
				if (typeof item[p] == 'function') item[p] = $empty;
			}
			Element.dispose(item);
		}
	}	
	if (!uid) return;
	collected[uid] = storage[uid] = null;
};

var purge = function(){
	Hash.each(collected, clean);
	if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);
	if (window.CollectGarbage) CollectGarbage();
	collected = storage = null;
};

var walk = function(element, walk, start, match, all, nocash){
	var el = element[start || walk];
	var elements = [];
	while (el){
		if (el.nodeType == 1 && (!match || Element.match(el, match))){
			if (!all) return document.id(el, nocash);
			elements.push(el);
		}
		el = el[walk];
	}
	return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;
};

var attributes = {
	'html': 'innerHTML',
	'class': 'className',
	'for': 'htmlFor',
	'defaultValue': 'defaultValue',
	'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'
};
var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];
var camels = ['value', 'type', 'defaultValue', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];

bools = bools.associate(bools);

Hash.extend(attributes, bools);
Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));

var inserters = {

	before: function(context, element){
		if (element.parentNode) element.parentNode.insertBefore(context, element);
	},

	after: function(context, element){
		if (!element.parentNode) return;
		var next = element.nextSibling;
		(next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);
	},

	bottom: function(context, element){
		element.appendChild(context);
	},

	top: function(context, element){
		var first = element.firstChild;
		(first) ? element.insertBefore(context, first) : element.appendChild(context);
	}

};

inserters.inside = inserters.bottom;

Hash.each(inserters, function(inserter, where){

	where = where.capitalize();

	Element.implement('inject' + where, function(el){
		inserter(this, document.id(el, true));
		return this;
	});

	Element.implement('grab' + where, function(el){
		inserter(document.id(el, true), this);
		return this;
	});

});

Element.implement({

	set: function(prop, value){
		switch ($type(prop)){
			case 'object':
				for (var p in prop) this.set(p, prop[p]);
				break;
			case 'string':
				var property = Element.Properties.get(prop);
				(property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);
		}
		return this;
	},

	get: function(prop){
		var property = Element.Properties.get(prop);
		return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);
	},

	erase: function(prop){
		var property = Element.Properties.get(prop);
		(property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
		return this;
	},

	setProperty: function(attribute, value){
		var key = attributes[attribute];
		if (value == undefined) return this.removeProperty(attribute);
		if (key && bools[attribute]) value = !!value;
		(key) ? this[key] = value : this.setAttribute(attribute, '' + value);
		return this;
	},

	setProperties: function(attributes){
		for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
		return this;
	},

	getProperty: function(attribute){
		var key = attributes[attribute];
		var value = (key) ? this[key] : this.getAttribute(attribute, 2);
		return (bools[attribute]) ? !!value : (key) ? value : value || null;
	},

	getProperties: function(){
		var args = $A(arguments);
		return args.map(this.getProperty, this).associate(args);
	},

	removeProperty: function(attribute){
		var key = attributes[attribute];
		(key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);
		return this;
	},

	removeProperties: function(){
		Array.each(arguments, this.removeProperty, this);
		return this;
	},

	hasClass: function(className){
		return this.className.contains(className, ' ');
	},

	addClass: function(className){
		if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
		return this;
	},

	removeClass: function(className){
		this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
		return this;
	},

	toggleClass: function(className){
		return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
	},

	adopt: function(){
		Array.flatten(arguments).each(function(element){
			element = document.id(element, true);
			if (element) this.appendChild(element);
		}, this);
		return this;
	},

	appendText: function(text, where){
		return this.grab(this.getDocument().newTextNode(text), where);
	},

	grab: function(el, where){
		inserters[where || 'bottom'](document.id(el, true), this);
		return this;
	},

	inject: function(el, where){
		inserters[where || 'bottom'](this, document.id(el, true));
		return this;
	},

	replaces: function(el){
		el = document.id(el, true);
		el.parentNode.replaceChild(this, el);
		return this;
	},

	wraps: function(el, where){
		el = document.id(el, true);
		return this.replaces(el).grab(el, where);
	},

	getPrevious: function(match, nocash){
		return walk(this, 'previousSibling', null, match, false, nocash);
	},

	getAllPrevious: function(match, nocash){
		return walk(this, 'previousSibling', null, match, true, nocash);
	},

	getNext: function(match, nocash){
		return walk(this, 'nextSibling', null, match, false, nocash);
	},

	getAllNext: function(match, nocash){
		return walk(this, 'nextSibling', null, match, true, nocash);
	},

	getFirst: function(match, nocash){
		return walk(this, 'nextSibling', 'firstChild', match, false, nocash);
	},

	getLast: function(match, nocash){
		return walk(this, 'previousSibling', 'lastChild', match, false, nocash);
	},

	getParent: function(match, nocash){
		return walk(this, 'parentNode', null, match, false, nocash);
	},

	getParents: function(match, nocash){
		return walk(this, 'parentNode', null, match, true, nocash);
	},
	
	getSiblings: function(match, nocash){
		return this.getParent().getChildren(match, nocash).erase(this);
	},

	getChildren: function(match, nocash){
		return walk(this, 'nextSibling', 'firstChild', match, true, nocash);
	},

	getWindow: function(){
		return this.ownerDocument.window;
	},

	getDocument: function(){
		return this.ownerDocument;
	},

	getElementById: function(id, nocash){
		var el = this.ownerDocument.getElementById(id);
		if (!el) return null;
		for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
			if (!parent) return null;
		}
		return document.id(el, nocash);
	},

	getSelected: function(){
		return new Elements($A(this.options).filter(function(option){
			return option.selected;
		}));
	},

	getComputedStyle: function(property){
		if (this.currentStyle) return this.currentStyle[property.camelCase()];
		var computed = this.getDocument().defaultView.getComputedStyle(this, null);
		return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;
	},

	toQueryString: function(){
		var queryString = [];
		this.getElements('input, select, textarea', true).each(function(el){
			if (!el.name || el.disabled || el.type == 'submit' || el.type == 'reset' || el.type == 'file') return;
			var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
				return opt.value;
			}) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
			$splat(value).each(function(val){
				if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
			});
		});
		return queryString.join('&');
	},

	clone: function(contents, keepid){
		contents = contents !== false;
		var clone = this.cloneNode(contents);
		var clean = function(node, element){
			if (!keepid) node.removeAttribute('id');
			if (Browser.Engine.trident){
				node.clearAttributes();
				node.mergeAttributes(element);
				node.removeAttribute('uid');
				if (node.options){
					var no = node.options, eo = element.options;
					for (var j = no.length; j--;) no[j].selected = eo[j].selected;
				}
			}
			var prop = props[element.tagName.toLowerCase()];
			if (prop && element[prop]) node[prop] = element[prop];
		};

		if (contents){
			var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');
			for (var i = ce.length; i--;) clean(ce[i], te[i]);
		}

		clean(clone, this);
		return document.id(clone);
	},

	destroy: function(){
		Element.empty(this);
		Element.dispose(this);
		clean(this, true);
		return null;
	},

	empty: function(){
		$A(this.childNodes).each(function(node){
			Element.destroy(node);
		});
		return this;
	},

	dispose: function(){
		return (this.parentNode) ? this.parentNode.removeChild(this) : this;
	},

	hasChild: function(el){
		el = document.id(el, true);
		if (!el) return false;
		if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);
		return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);
	},

	match: function(tag){
		return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));
	}

});

Native.implement([Element, Window, Document], {

	addListener: function(type, fn){
		if (type == 'unload'){
			var old = fn, self = this;
			fn = function(){
				self.removeListener('unload', fn);
				old();
			};
		} else {
			collected[this.uid] = this;
		}
		if (this.addEventListener) this.addEventListener(type, fn, false);
		else this.attachEvent('on' + type, fn);
		return this;
	},

	removeListener: function(type, fn){
		if (this.removeEventListener) this.removeEventListener(type, fn, false);
		else this.detachEvent('on' + type, fn);
		return this;
	},

	retrieve: function(property, dflt){
		var storage = get(this.uid), prop = storage[property];
		if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;
		return $pick(prop);
	},

	store: function(property, value){
		var storage = get(this.uid);
		storage[property] = value;
		return this;
	},

	eliminate: function(property){
		var storage = get(this.uid);
		delete storage[property];
		return this;
	}

});

window.addListener('unload', purge);

})();

Element.Properties = new Hash;

Element.Properties.style = {

	set: function(style){
		this.style.cssText = style;
	},

	get: function(){
		return this.style.cssText;
	},

	erase: function(){
		this.style.cssText = '';
	}

};

Element.Properties.tag = {

	get: function(){
		return this.tagName.toLowerCase();
	}

};

Element.Properties.html = (function(){
	var wrapper = document.createElement('div');

	var translations = {
		table: [1, '<table>', '</table>'],
		select: [1, '<select>', '</select>'],
		tbody: [2, '<table><tbody>', '</tbody></table>'],
		tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
	};
	translations.thead = translations.tfoot = translations.tbody;

	var html = {
		set: function(){
			var html = Array.flatten(arguments).join('');
			var wrap = Browser.Engine.trident && translations[this.get('tag')];
			if (wrap){
				var first = wrapper;
				first.innerHTML = wrap[1] + html + wrap[2];
				for (var i = wrap[0]; i--;) first = first.firstChild;
				this.empty().adopt(first.childNodes);
			} else {
				this.innerHTML = html;
			}
		}
	};

	html.erase = html.set;

	return html;
})();

if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {
	get: function(){
		if (this.innerText) return this.innerText;
		var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);
		var text = temp.innerText;
		temp.destroy();
		return text;
	}
};


/*
---

script: Element.Event.js

description: Contains Element methods for dealing with events. This file also includes mouseenter and mouseleave custom Element Events.

license: MIT-style license.

requires: 
- /Element
- /Event

provides: [Element.Event]

...
*/

Element.Properties.events = {set: function(events){
	this.addEvents(events);
}};

Native.implement([Element, Window, Document], {

	addEvent: function(type, fn){
		var events = this.retrieve('events', {});
		events[type] = events[type] || {'keys': [], 'values': []};
		if (events[type].keys.contains(fn)) return this;
		events[type].keys.push(fn);
		var realType = type, custom = Element.Events.get(type), condition = fn, self = this;
		if (custom){
			if (custom.onAdd) custom.onAdd.call(this, fn);
			if (custom.condition){
				condition = function(event){
					if (custom.condition.call(this, event)) return fn.call(this, event);
					return true;
				};
			}
			realType = custom.base || realType;
		}
		var defn = function(){
			return fn.call(self);
		};
		var nativeEvent = Element.NativeEvents[realType];
		if (nativeEvent){
			if (nativeEvent == 2){
				defn = function(event){
					event = new Event(event, self.getWindow());
					if (condition.call(self, event) === false) event.stop();
				};
			}
			this.addListener(realType, defn);
		}
		events[type].values.push(defn);
		return this;
	},

	removeEvent: function(type, fn){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		var pos = events[type].keys.indexOf(fn);
		if (pos == -1) return this;
		events[type].keys.splice(pos, 1);
		var value = events[type].values.splice(pos, 1)[0];
		var custom = Element.Events.get(type);
		if (custom){
			if (custom.onRemove) custom.onRemove.call(this, fn);
			type = custom.base || type;
		}
		return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;
	},

	addEvents: function(events){
		for (var event in events) this.addEvent(event, events[event]);
		return this;
	},

	removeEvents: function(events){
		var type;
		if ($type(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		var attached = this.retrieve('events');
		if (!attached) return this;
		if (!events){
			for (type in attached) this.removeEvents(type);
			this.eliminate('events');
		} else if (attached[events]){
			while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);
			attached[events] = null;
		}
		return this;
	},

	fireEvent: function(type, args, delay){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		events[type].keys.each(function(fn){
			fn.create({'bind': this, 'delay': delay, 'arguments': args})();
		}, this);
		return this;
	},

	cloneEvents: function(from, type){
		from = document.id(from);
		var fevents = from.retrieve('events');
		if (!fevents) return this;
		if (!type){
			for (var evType in fevents) this.cloneEvents(from, evType);
		} else if (fevents[type]){
			fevents[type].keys.each(function(fn){
				this.addEvent(type, fn);
			}, this);
		}
		return this;
	}

});

Element.NativeEvents = {
	click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
	mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
	mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
	keydown: 2, keypress: 2, keyup: 2, //keyboard
	focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements
	load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
	error: 1, abort: 1, scroll: 1 //misc
};

(function(){

var $check = function(event){
	var related = event.relatedTarget;
	if (related == undefined) return true;
	if (related === false) return false;
	return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));
};

Element.Events = new Hash({

	mouseenter: {
		base: 'mouseover',
		condition: $check
	},

	mouseleave: {
		base: 'mouseout',
		condition: $check
	},

	mousewheel: {
		base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'
	}

});

})();


/*
---

script: Element.Style.js

description: Contains methods for interacting with the styles of Elements in a fashionable way.

license: MIT-style license.

requires:
- /Element

provides: [Element.Style]

...
*/

Element.Properties.styles = {set: function(styles){
	this.setStyles(styles);
}};

Element.Properties.opacity = {

	set: function(opacity, novisibility){
		if (!novisibility){
			if (opacity == 0){
				if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
			} else {
				if (this.style.visibility != 'visible') this.style.visibility = 'visible';
			}
		}
		if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
		if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';
		this.style.opacity = opacity;
		this.store('opacity', opacity);
	},

	get: function(){
		return this.retrieve('opacity', 1);
	}

};

Element.implement({

	setOpacity: function(value){
		return this.set('opacity', value, true);
	},

	getOpacity: function(){
		return this.get('opacity');
	},

	setStyle: function(property, value){
		switch (property){
			case 'opacity': return this.set('opacity', parseFloat(value));
			case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
		}
		property = property.camelCase();
		if ($type(value) != 'string'){
			var map = (Element.Styles.get(property) || '@').split(' ');
			value = $splat(value).map(function(val, i){
				if (!map[i]) return '';
				return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
			}).join(' ');
		} else if (value == String(Number(value))){
			value = Math.round(value);
		}
		this.style[property] = value;
		return this;
	},

	getStyle: function(property){
		switch (property){
			case 'opacity': return this.get('opacity');
			case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
		}
		property = property.camelCase();
		var result = this.style[property];
		if (!$chk(result)){
			result = [];
			for (var style in Element.ShortStyles){
				if (property != style) continue;
				for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
				return result.join(' ');
			}
			result = this.getComputedStyle(property);
		}
		if (result){
			result = String(result);
			var color = result.match(/rgba?\([\d\s,]+\)/);
			if (color) result = result.replace(color[0], color[0].rgbToHex());
		}
		if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){
			if (property.test(/^(height|width)$/)){
				var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
				values.each(function(value){
					size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
				}, this);
				return this['offset' + property.capitalize()] - size + 'px';
			}
			if ((Browser.Engine.presto) && String(result).test('px')) return result;
			if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';
		}
		return result;
	},

	setStyles: function(styles){
		for (var style in styles) this.setStyle(style, styles[style]);
		return this;
	},

	getStyles: function(){
		var result = {};
		Array.flatten(arguments).each(function(key){
			result[key] = this.getStyle(key);
		}, this);
		return result;
	}

});

Element.Styles = new Hash({
	left: '@px', top: '@px', bottom: '@px', right: '@px',
	width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
	backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
	fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
	margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
	borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
	zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
});

Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};

['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
	var Short = Element.ShortStyles;
	var All = Element.Styles;
	['margin', 'padding'].each(function(style){
		var sd = style + direction;
		Short[style][sd] = All[sd] = '@px';
	});
	var bd = 'border' + direction;
	Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
	var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
	Short[bd] = {};
	Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
	Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
	Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
});


/*
---

script: Element.Dimensions.js

description: Contains methods to work with size, scroll, or positioning of Elements and the window object.

license: MIT-style license.

credits:
- Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
- Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).

requires:
- /Element

provides: [Element.Dimensions]

...
*/

(function(){

Element.implement({

	scrollTo: function(x, y){
		if (isBody(this)){
			this.getWindow().scrollTo(x, y);
		} else {
			this.scrollLeft = x;
			this.scrollTop = y;
		}
		return this;
	},

	getSize: function(){
		if (isBody(this)) return this.getWindow().getSize();
		return {x: this.offsetWidth, y: this.offsetHeight};
	},

	getScrollSize: function(){
		if (isBody(this)) return this.getWindow().getScrollSize();
		return {x: this.scrollWidth, y: this.scrollHeight};
	},

	getScroll: function(){
		if (isBody(this)) return this.getWindow().getScroll();
		return {x: this.scrollLeft, y: this.scrollTop};
	},

	getScrolls: function(){
		var element = this, position = {x: 0, y: 0};
		while (element && !isBody(element)){
			position.x += element.scrollLeft;
			position.y += element.scrollTop;
			element = element.parentNode;
		}
		return position;
	},

	getOffsetParent: function(){
		var element = this;
		if (isBody(element)) return null;
		if (!Browser.Engine.trident) return element.offsetParent;
		while ((element = element.parentNode) && !isBody(element)){
			if (styleString(element, 'position') != 'static') return element;
		}
		return null;
	},

	getOffsets: function(){
		if (this.getBoundingClientRect){
			var bound = this.getBoundingClientRect(),
				html = document.id(this.getDocument().documentElement),
				htmlScroll = html.getScroll(),
				elemScrolls = this.getScrolls(),
				elemScroll = this.getScroll(),
				isFixed = (styleString(this, 'position') == 'fixed');

			return {
				x: bound.left.toInt() + elemScrolls.x - elemScroll.x + ((isFixed) ? 0 : htmlScroll.x) - html.clientLeft,
				y: bound.top.toInt()  + elemScrolls.y - elemScroll.y + ((isFixed) ? 0 : htmlScroll.y) - html.clientTop
			};
		}

		var element = this, position = {x: 0, y: 0};
		if (isBody(this)) return position;

		while (element && !isBody(element)){
			position.x += element.offsetLeft;
			position.y += element.offsetTop;

			if (Browser.Engine.gecko){
				if (!borderBox(element)){
					position.x += leftBorder(element);
					position.y += topBorder(element);
				}
				var parent = element.parentNode;
				if (parent && styleString(parent, 'overflow') != 'visible'){
					position.x += leftBorder(parent);
					position.y += topBorder(parent);
				}
			} else if (element != this && Browser.Engine.webkit){
				position.x += leftBorder(element);
				position.y += topBorder(element);
			}

			element = element.offsetParent;
		}
		if (Browser.Engine.gecko && !borderBox(this)){
			position.x -= leftBorder(this);
			position.y -= topBorder(this);
		}
		return position;
	},

	getPosition: function(relative){
		if (isBody(this)) return {x: 0, y: 0};
		var offset = this.getOffsets(),
				scroll = this.getScrolls();
		var position = {
			x: offset.x - scroll.x,
			y: offset.y - scroll.y
		};
		var relativePosition = (relative && (relative = document.id(relative))) ? relative.getPosition() : {x: 0, y: 0};
		return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};
	},

	getCoordinates: function(element){
		if (isBody(this)) return this.getWindow().getCoordinates();
		var position = this.getPosition(element),
				size = this.getSize();
		var obj = {
			left: position.x,
			top: position.y,
			width: size.x,
			height: size.y
		};
		obj.right = obj.left + obj.width;
		obj.bottom = obj.top + obj.height;
		return obj;
	},

	computePosition: function(obj){
		return {
			left: obj.x - styleNumber(this, 'margin-left'),
			top: obj.y - styleNumber(this, 'margin-top')
		};
	},

	setPosition: function(obj){
		return this.setStyles(this.computePosition(obj));
	}

});


Native.implement([Document, Window], {

	getSize: function(){
		if (Browser.Engine.presto || Browser.Engine.webkit){
			var win = this.getWindow();
			return {x: win.innerWidth, y: win.innerHeight};
		}
		var doc = getCompatElement(this);
		return {x: doc.clientWidth, y: doc.clientHeight};
	},

	getScroll: function(){
		var win = this.getWindow(), doc = getCompatElement(this);
		return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
	},

	getScrollSize: function(){
		var doc = getCompatElement(this), min = this.getSize();
		return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};
	},

	getPosition: function(){
		return {x: 0, y: 0};
	},

	getCoordinates: function(){
		var size = this.getSize();
		return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
	}

});

// private methods

var styleString = Element.getComputedStyle;

function styleNumber(element, style){
	return styleString(element, style).toInt() || 0;
};

function borderBox(element){
	return styleString(element, '-moz-box-sizing') == 'border-box';
};

function topBorder(element){
	return styleNumber(element, 'border-top-width');
};

function leftBorder(element){
	return styleNumber(element, 'border-left-width');
};

function isBody(element){
	return (/^(?:body|html)$/i).test(element.tagName);
};

function getCompatElement(element){
	var doc = element.getDocument();
	return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
};

})();

//aliases
Element.alias('setPosition', 'position'); //compatability

Native.implement([Window, Document, Element], {

	getHeight: function(){
		return this.getSize().y;
	},

	getWidth: function(){
		return this.getSize().x;
	},

	getScrollTop: function(){
		return this.getScroll().y;
	},

	getScrollLeft: function(){
		return this.getScroll().x;
	},

	getScrollHeight: function(){
		return this.getScrollSize().y;
	},

	getScrollWidth: function(){
		return this.getScrollSize().x;
	},

	getTop: function(){
		return this.getPosition().y;
	},

	getLeft: function(){
		return this.getPosition().x;
	}

});


/*
---

script: Selectors.js

description: Adds advanced CSS-style querying capabilities for targeting HTML Elements. Includes pseudo selectors.

license: MIT-style license.

requires:
- /Element

provides: [Selectors]

...
*/

Native.implement([Document, Element], {

	getElements: function(expression, nocash){
		expression = expression.split(',');
		var items, local = {};
		for (var i = 0, l = expression.length; i < l; i++){
			var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);
			if (i != 0 && elements.item) elements = $A(elements);
			items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);
		}
		return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});
	}

});

Element.implement({

	match: function(selector){
		if (!selector || (selector == this)) return true;
		var tagid = Selectors.Utils.parseTagAndID(selector);
		var tag = tagid[0], id = tagid[1];
		if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;
		var parsed = Selectors.Utils.parseSelector(selector);
		return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;
	}

});

var Selectors = {Cache: {nth: {}, parsed: {}}};

Selectors.RegExps = {
	id: (/#([\w-]+)/),
	tag: (/^(\w+|\*)/),
	quick: (/^(\w+|\*)$/),
	splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),
	combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)
};

Selectors.Utils = {

	chk: function(item, uniques){
		if (!uniques) return true;
		var uid = $uid(item);
		if (!uniques[uid]) return uniques[uid] = true;
		return false;
	},

	parseNthArgument: function(argument){
		if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];
		var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);
		if (!parsed) return false;
		var inta = parseInt(parsed[1], 10);
		var a = (inta || inta === 0) ? inta : 1;
		var special = parsed[2] || false;
		var b = parseInt(parsed[3], 10) || 0;
		if (a != 0){
			b--;
			while (b < 1) b += a;
			while (b >= a) b -= a;
		} else {
			a = b;
			special = 'index';
		}
		switch (special){
			case 'n': parsed = {a: a, b: b, special: 'n'}; break;
			case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;
			case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;
			case 'first': parsed = {a: 0, special: 'index'}; break;
			case 'last': parsed = {special: 'last-child'}; break;
			case 'only': parsed = {special: 'only-child'}; break;
			default: parsed = {a: (a - 1), special: 'index'};
		}

		return Selectors.Cache.nth[argument] = parsed;
	},

	parseSelector: function(selector){
		if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];
		var m, parsed = {classes: [], pseudos: [], attributes: []};
		while ((m = Selectors.RegExps.combined.exec(selector))){
			var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7];
			if (cn){
				parsed.classes.push(cn);
			} else if (pn){
				var parser = Selectors.Pseudo.get(pn);
				if (parser) parsed.pseudos.push({parser: parser, argument: pa});
				else parsed.attributes.push({name: pn, operator: '=', value: pa});
			} else if (an){
				parsed.attributes.push({name: an, operator: ao, value: av});
			}
		}
		if (!parsed.classes.length) delete parsed.classes;
		if (!parsed.attributes.length) delete parsed.attributes;
		if (!parsed.pseudos.length) delete parsed.pseudos;
		if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;
		return Selectors.Cache.parsed[selector] = parsed;
	},

	parseTagAndID: function(selector){
		var tag = selector.match(Selectors.RegExps.tag);
		var id = selector.match(Selectors.RegExps.id);
		return [(tag) ? tag[1] : '*', (id) ? id[1] : false];
	},

	filter: function(item, parsed, local){
		var i;
		if (parsed.classes){
			for (i = parsed.classes.length; i--; i){
				var cn = parsed.classes[i];
				if (!Selectors.Filters.byClass(item, cn)) return false;
			}
		}
		if (parsed.attributes){
			for (i = parsed.attributes.length; i--; i){
				var att = parsed.attributes[i];
				if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;
			}
		}
		if (parsed.pseudos){
			for (i = parsed.pseudos.length; i--; i){
				var psd = parsed.pseudos[i];
				if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;
			}
		}
		return true;
	},

	getByTagAndID: function(ctx, tag, id){
		if (id){
			var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);
			return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];
		} else {
			return ctx.getElementsByTagName(tag);
		}
	},

	search: function(self, expression, local){
		var splitters = [];

		var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){
			splitters.push(m1);
			return ':)' + m2;
		}).split(':)');

		var items, filtered, item;

		for (var i = 0, l = selectors.length; i < l; i++){

			var selector = selectors[i];

			if (i == 0 && Selectors.RegExps.quick.test(selector)){
				items = self.getElementsByTagName(selector);
				continue;
			}

			var splitter = splitters[i - 1];

			var tagid = Selectors.Utils.parseTagAndID(selector);
			var tag = tagid[0], id = tagid[1];

			if (i == 0){
				items = Selectors.Utils.getByTagAndID(self, tag, id);
			} else {
				var uniques = {}, found = [];
				for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);
				items = found;
			}

			var parsed = Selectors.Utils.parseSelector(selector);

			if (parsed){
				filtered = [];
				for (var m = 0, n = items.length; m < n; m++){
					item = items[m];
					if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);
				}
				items = filtered;
			}

		}

		return items;

	}

};

Selectors.Getters = {

	' ': function(found, self, tag, id, uniques){
		var items = Selectors.Utils.getByTagAndID(self, tag, id);
		for (var i = 0, l = items.length; i < l; i++){
			var item = items[i];
			if (Selectors.Utils.chk(item, uniques)) found.push(item);
		}
		return found;
	},

	'>': function(found, self, tag, id, uniques){
		var children = Selectors.Utils.getByTagAndID(self, tag, id);
		for (var i = 0, l = children.length; i < l; i++){
			var child = children[i];
			if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);
		}
		return found;
	},

	'+': function(found, self, tag, id, uniques){
		while ((self = self.nextSibling)){
			if (self.nodeType == 1){
				if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
				break;
			}
		}
		return found;
	},

	'~': function(found, self, tag, id, uniques){
		while ((self = self.nextSibling)){
			if (self.nodeType == 1){
				if (!Selectors.Utils.chk(self, uniques)) break;
				if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
			}
		}
		return found;
	}

};

Selectors.Filters = {

	byTag: function(self, tag){
		return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));
	},

	byID: function(self, id){
		return (!id || (self.id && self.id == id));
	},

	byClass: function(self, klass){
		return (self.className && self.className.contains && self.className.contains(klass, ' '));
	},

	byPseudo: function(self, parser, argument, local){
		return parser.call(self, argument, local);
	},

	byAttribute: function(self, name, operator, value){
		var result = Element.prototype.getProperty.call(self, name);
		if (!result) return (operator == '!=');
		if (!operator || value == undefined) return true;
		switch (operator){
			case '=': return (result == value);
			case '*=': return (result.contains(value));
			case '^=': return (result.substr(0, value.length) == value);
			case '$=': return (result.substr(result.length - value.length) == value);
			case '!=': return (result != value);
			case '~=': return result.contains(value, ' ');
			case '|=': return result.contains(value, '-');
		}
		return false;
	}

};

Selectors.Pseudo = new Hash({

	// w3c pseudo selectors

	checked: function(){
		return this.checked;
	},
	
	empty: function(){
		return !(this.innerText || this.textContent || '').length;
	},

	not: function(selector){
		return !Element.match(this, selector);
	},

	contains: function(text){
		return (this.innerText || this.textContent || '').contains(text);
	},

	'first-child': function(){
		return Selectors.Pseudo.index.call(this, 0);
	},

	'last-child': function(){
		var element = this;
		while ((element = element.nextSibling)){
			if (element.nodeType == 1) return false;
		}
		return true;
	},

	'only-child': function(){
		var prev = this;
		while ((prev = prev.previousSibling)){
			if (prev.nodeType == 1) return false;
		}
		var next = this;
		while ((next = next.nextSibling)){
			if (next.nodeType == 1) return false;
		}
		return true;
	},

	'nth-child': function(argument, local){
		argument = (argument == undefined) ? 'n' : argument;
		var parsed = Selectors.Utils.parseNthArgument(argument);
		if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);
		var count = 0;
		local.positions = local.positions || {};
		var uid = $uid(this);
		if (!local.positions[uid]){
			var self = this;
			while ((self = self.previousSibling)){
				if (self.nodeType != 1) continue;
				count ++;
				var position = local.positions[$uid(self)];
				if (position != undefined){
					count = position + count;
					break;
				}
			}
			local.positions[uid] = count;
		}
		return (local.positions[uid] % parsed.a == parsed.b);
	},

	// custom pseudo selectors

	index: function(index){
		var element = this, count = 0;
		while ((element = element.previousSibling)){
			if (element.nodeType == 1 && ++count > index) return false;
		}
		return (count == index);
	},

	even: function(argument, local){
		return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);
	},

	odd: function(argument, local){
		return Selectors.Pseudo['nth-child'].call(this, '2n', local);
	},
	
	selected: function(){
		return this.selected;
	},
	
	enabled: function(){
		return (this.disabled === false);
	}

});


/*
---

script: DomReady.js

description: Contains the custom event domready.

license: MIT-style license.

requires:
- /Element.Event

provides: [DomReady]

...
*/

Element.Events.domready = {

	onAdd: function(fn){
		if (Browser.loaded) fn.call(this);
	}

};

(function(){

	var domready = function(){
		if (Browser.loaded) return;
		Browser.loaded = true;
		window.fireEvent('domready');
		document.fireEvent('domready');
	};
	
	window.addEvent('load', domready);

	if (Browser.Engine.trident){
		var temp = document.createElement('div');
		(function(){
			($try(function(){
				temp.doScroll(); // Technique by Diego Perini
				return document.id(temp).inject(document.body).set('html', 'temp').dispose();
			})) ? domready() : arguments.callee.delay(50);
		})();
	} else if (Browser.Engine.webkit && Browser.Engine.version < 525){
		(function(){
			(['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);
		})();
	} else {
		document.addEvent('DOMContentLoaded', domready);
	}

})();


/*
---

script: JSON.js

description: JSON encoder and decoder.

license: MIT-style license.

See Also: <http://www.json.org/>

requires:
- /Array
- /String
- /Number
- /Function
- /Hash

provides: [JSON]

...
*/

var JSON = new Hash(this.JSON && {
	stringify: JSON.stringify,
	parse: JSON.parse
}).extend({
	
	$specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},

	$replaceChars: function(chr){
		return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
	},

	encode: function(obj){
		switch ($type(obj)){
			case 'string':
				return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
			case 'array':
				return '[' + String(obj.map(JSON.encode).clean()) + ']';
			case 'object': case 'hash':
				var string = [];
				Hash.each(obj, function(value, key){
					var json = JSON.encode(value);
					if (json) string.push(JSON.encode(key) + ':' + json);
				});
				return '{' + string + '}';
			case 'number': case 'boolean': return String(obj);
			case false: return 'null';
		}
		return null;
	},

	decode: function(string, secure){
		if ($type(string) != 'string' || !string.length) return null;
		if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
		return eval('(' + string + ')');
	}

});

Native.implement([Hash, Array, String, Number], {

	toJSON: function(){
		return JSON.encode(this);
	}

});


/*
---

script: Cookie.js

description: Class for creating, reading, and deleting browser Cookies.

license: MIT-style license.

credits:
- Based on the functions by Peter-Paul Koch (http://quirksmode.org).

requires:
- /Options

provides: [Cookie]

...
*/

var Cookie = new Class({

	Implements: Options,

	options: {
		path: false,
		domain: false,
		duration: false,
		secure: false,
		document: document
	},

	initialize: function(key, options){
		this.key = key;
		this.setOptions(options);
	},

	write: function(value){
		value = encodeURIComponent(value);
		if (this.options.domain) value += '; domain=' + this.options.domain;
		if (this.options.path) value += '; path=' + this.options.path;
		if (this.options.duration){
			var date = new Date();
			date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
			value += '; expires=' + date.toGMTString();
		}
		if (this.options.secure) value += '; secure';
		this.options.document.cookie = this.key + '=' + value;
		return this;
	},

	read: function(){
		var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
		return (value) ? decodeURIComponent(value[1]) : null;
	},

	dispose: function(){
		new Cookie(this.key, $merge(this.options, {duration: -1})).write('');
		return this;
	}

});

Cookie.write = function(key, value, options){
	return new Cookie(key, options).write(value);
};

Cookie.read = function(key){
	return new Cookie(key).read();
};

Cookie.dispose = function(key, options){
	return new Cookie(key, options).dispose();
};


/*
---

script: Swiff.js

description: Wrapper for embedding SWF movies. Supports External Interface Communication.

license: MIT-style license.

credits: 
- Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.

requires:
- /Options
- /$util

provides: [Swiff]

...
*/

var Swiff = new Class({

	Implements: [Options],

	options: {
		id: null,
		height: 1,
		width: 1,
		container: null,
		properties: {},
		params: {
			quality: 'high',
			allowScriptAccess: 'always',
			wMode: 'transparent',
			swLiveConnect: true
		},
		callBacks: {},
		vars: {}
	},

	toElement: function(){
		return this.object;
	},

	initialize: function(path, options){
		this.instance = 'Swiff_' + $time();

		this.setOptions(options);
		options = this.options;
		var id = this.id = options.id || this.instance;
		var container = document.id(options.container);

		Swiff.CallBacks[this.instance] = {};

		var params = options.params, vars = options.vars, callBacks = options.callBacks;
		var properties = $extend({height: options.height, width: options.width}, options.properties);

		var self = this;

		for (var callBack in callBacks){
			Swiff.CallBacks[this.instance][callBack] = (function(option){
				return function(){
					return option.apply(self.object, arguments);
				};
			})(callBacks[callBack]);
			vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
		}

		params.flashVars = Hash.toQueryString(vars);
		if (Browser.Engine.trident){
			properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
			params.movie = path;
		} else {
			properties.type = 'application/x-shockwave-flash';
			properties.data = path;
		}
		var build = '<object id="' + id + '"';
		for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
		build += '>';
		for (var param in params){
			if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
		}
		build += '</object>';
		this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
	},

	replaces: function(element){
		element = document.id(element, true);
		element.parentNode.replaceChild(this.toElement(), element);
		return this;
	},

	inject: function(element){
		document.id(element, true).appendChild(this.toElement());
		return this;
	},

	remote: function(){
		return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));
	}

});

Swiff.CallBacks = {};

Swiff.remote = function(obj, fn){
	var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
	return eval(rs);
};


/*
---

script: Fx.js

description: Contains the basic animation logic to be extended by all other Fx Classes.

license: MIT-style license.

requires:
- /Chain
- /Events
- /Options

provides: [Fx]

...
*/

var Fx = new Class({

	Implements: [Chain, Events, Options],

	options: {
		/*
		onStart: $empty,
		onCancel: $empty,
		onComplete: $empty,
		*/
		fps: 50,
		unit: false,
		duration: 500,
		link: 'ignore'
	},

	initialize: function(options){
		this.subject = this.subject || this;
		this.setOptions(options);
		this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();
		var wait = this.options.wait;
		if (wait === false) this.options.link = 'cancel';
	},

	getTransition: function(){
		return function(p){
			return -(Math.cos(Math.PI * p) - 1) / 2;
		};
	},

	step: function(){
		var time = $time();
		if (time < this.time + this.options.duration){
			var delta = this.transition((time - this.time) / this.options.duration);
			this.set(this.compute(this.from, this.to, delta));
		} else {
			this.set(this.compute(this.from, this.to, 1));
			this.complete();
		}
	},

	set: function(now){
		return now;
	},

	compute: function(from, to, delta){
		return Fx.compute(from, to, delta);
	},

	check: function(){
		if (!this.timer) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
		}
		return false;
	},

	start: function(from, to){
		if (!this.check(from, to)) return this;
		this.from = from;
		this.to = to;
		this.time = 0;
		this.transition = this.getTransition();
		this.startTimer();
		this.onStart();
		return this;
	},

	complete: function(){
		if (this.stopTimer()) this.onComplete();
		return this;
	},

	cancel: function(){
		if (this.stopTimer()) this.onCancel();
		return this;
	},

	onStart: function(){
		this.fireEvent('start', this.subject);
	},

	onComplete: function(){
		this.fireEvent('complete', this.subject);
		if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
	},

	onCancel: function(){
		this.fireEvent('cancel', this.subject).clearChain();
	},

	pause: function(){
		this.stopTimer();
		return this;
	},

	resume: function(){
		this.startTimer();
		return this;
	},

	stopTimer: function(){
		if (!this.timer) return false;
		this.time = $time() - this.time;
		this.timer = $clear(this.timer);
		return true;
	},

	startTimer: function(){
		if (this.timer) return false;
		this.time = $time() - this.time;
		this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
		return true;
	}

});

Fx.compute = function(from, to, delta){
	return (to - from) * delta + from;
};

Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};


/*
---

script: Fx.CSS.js

description: Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.

license: MIT-style license.

requires:
- /Fx
- /Element.Style

provides: [Fx.CSS]

...
*/

Fx.CSS = new Class({

	Extends: Fx,

	//prepares the base from/to object

	prepare: function(element, property, values){
		values = $splat(values);
		var values1 = values[1];
		if (!$chk(values1)){
			values[1] = values[0];
			values[0] = element.getStyle(property);
		}
		var parsed = values.map(this.parse);
		return {from: parsed[0], to: parsed[1]};
	},

	//parses a value into an array

	parse: function(value){
		value = $lambda(value)();
		value = (typeof value == 'string') ? value.split(' ') : $splat(value);
		return value.map(function(val){
			val = String(val);
			var found = false;
			Fx.CSS.Parsers.each(function(parser, key){
				if (found) return;
				var parsed = parser.parse(val);
				if ($chk(parsed)) found = {value: parsed, parser: parser};
			});
			found = found || {value: val, parser: Fx.CSS.Parsers.String};
			return found;
		});
	},

	//computes by a from and to prepared objects, using their parsers.

	compute: function(from, to, delta){
		var computed = [];
		(Math.min(from.length, to.length)).times(function(i){
			computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
		});
		computed.$family = {name: 'fx:css:value'};
		return computed;
	},

	//serves the value as settable

	serve: function(value, unit){
		if ($type(value) != 'fx:css:value') value = this.parse(value);
		var returned = [];
		value.each(function(bit){
			returned = returned.concat(bit.parser.serve(bit.value, unit));
		});
		return returned;
	},

	//renders the change to an element

	render: function(element, property, value, unit){
		element.setStyle(property, this.serve(value, unit));
	},

	//searches inside the page css to find the values for a selector

	search: function(selector){
		if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
		var to = {};
		Array.each(document.styleSheets, function(sheet, j){
			var href = sheet.href;
			if (href && href.contains('://') && !href.contains(document.domain)) return;
			var rules = sheet.rules || sheet.cssRules;
			Array.each(rules, function(rule, i){
				if (!rule.style) return;
				var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
					return m.toLowerCase();
				}) : null;
				if (!selectorText || !selectorText.test('^' + selector + '$')) return;
				Element.Styles.each(function(value, style){
					if (!rule.style[style] || Element.ShortStyles[style]) return;
					value = String(rule.style[style]);
					to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;
				});
			});
		});
		return Fx.CSS.Cache[selector] = to;
	}

});

Fx.CSS.Cache = {};

Fx.CSS.Parsers = new Hash({

	Color: {
		parse: function(value){
			if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
			return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
		},
		compute: function(from, to, delta){
			return from.map(function(value, i){
				return Math.round(Fx.compute(from[i], to[i], delta));
			});
		},
		serve: function(value){
			return value.map(Number);
		}
	},

	Number: {
		parse: parseFloat,
		compute: Fx.compute,
		serve: function(value, unit){
			return (unit) ? value + unit : value;
		}
	},

	String: {
		parse: $lambda(false),
		compute: $arguments(1),
		serve: $arguments(0)
	}

});


/*
---

script: Fx.Tween.js

description: Formerly Fx.Style, effect to transition any CSS property for an element.

license: MIT-style license.

requires: 
- /Fx.CSS

provides: [Fx.Tween, Element.fade, Element.highlight]

...
*/

Fx.Tween = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(property, now){
		if (arguments.length == 1){
			now = property;
			property = this.property || this.options.property;
		}
		this.render(this.element, property, now, this.options.unit);
		return this;
	},

	start: function(property, from, to){
		if (!this.check(property, from, to)) return this;
		var args = Array.flatten(arguments);
		this.property = this.options.property || args.shift();
		var parsed = this.prepare(this.element, this.property, args);
		return this.parent(parsed.from, parsed.to);
	}

});

Element.Properties.tween = {

	set: function(options){
		var tween = this.retrieve('tween');
		if (tween) tween.cancel();
		return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('tween')){
			if (options || !this.retrieve('tween:options')) this.set('tween', options);
			this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));
		}
		return this.retrieve('tween');
	}

};

Element.implement({

	tween: function(property, from, to){
		this.get('tween').start(arguments);
		return this;
	},

	fade: function(how){
		var fade = this.get('tween'), o = 'opacity', toggle;
		how = $pick(how, 'toggle');
		switch (how){
			case 'in': fade.start(o, 1); break;
			case 'out': fade.start(o, 0); break;
			case 'show': fade.set(o, 1); break;
			case 'hide': fade.set(o, 0); break;
			case 'toggle':
				var flag = this.retrieve('fade:flag', this.get('opacity') == 1);
				fade.start(o, (flag) ? 0 : 1);
				this.store('fade:flag', !flag);
				toggle = true;
			break;
			default: fade.start(o, arguments);
		}
		if (!toggle) this.eliminate('fade:flag');
		return this;
	},

	highlight: function(start, end){
		if (!end){
			end = this.retrieve('highlight:original', this.getStyle('background-color'));
			end = (end == 'transparent') ? '#fff' : end;
		}
		var tween = this.get('tween');
		tween.start('background-color', start || '#ffff88', end).chain(function(){
			this.setStyle('background-color', this.retrieve('highlight:original'));
			tween.callChain();
		}.bind(this));
		return this;
	}

});


/*
---

script: Fx.Morph.js

description: Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.

license: MIT-style license.

requires:
- /Fx.CSS

provides: [Fx.Morph]

...
*/

Fx.Morph = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(now){
		if (typeof now == 'string') now = this.search(now);
		for (var p in now) this.render(this.element, p, now[p], this.options.unit);
		return this;
	},

	compute: function(from, to, delta){
		var now = {};
		for (var p in from) now[p] = this.parent(from[p], to[p], delta);
		return now;
	},

	start: function(properties){
		if (!this.check(properties)) return this;
		if (typeof properties == 'string') properties = this.search(properties);
		var from = {}, to = {};
		for (var p in properties){
			var parsed = this.prepare(this.element, p, properties[p]);
			from[p] = parsed.from;
			to[p] = parsed.to;
		}
		return this.parent(from, to);
	}

});

Element.Properties.morph = {

	set: function(options){
		var morph = this.retrieve('morph');
		if (morph) morph.cancel();
		return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('morph')){
			if (options || !this.retrieve('morph:options')) this.set('morph', options);
			this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));
		}
		return this.retrieve('morph');
	}

};

Element.implement({

	morph: function(props){
		this.get('morph').start(props);
		return this;
	}

});


/*
---

script: Fx.Transitions.js

description: Contains a set of advanced transitions to be used with any of the Fx Classes.

license: MIT-style license.

credits:
- Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.

requires:
- /Fx

provides: [Fx.Transitions]

...
*/

Fx.implement({

	getTransition: function(){
		var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
		if (typeof trans == 'string'){
			var data = trans.split(':');
			trans = Fx.Transitions;
			trans = trans[data[0]] || trans[data[0].capitalize()];
			if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
		}
		return trans;
	}

});

Fx.Transition = function(transition, params){
	params = $splat(params);
	return $extend(transition, {
		easeIn: function(pos){
			return transition(pos, params);
		},
		easeOut: function(pos){
			return 1 - transition(1 - pos, params);
		},
		easeInOut: function(pos){
			return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;
		}
	});
};

Fx.Transitions = new Hash({

	linear: $arguments(0)

});

Fx.Transitions.extend = function(transitions){
	for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
};

Fx.Transitions.extend({

	Pow: function(p, x){
		return Math.pow(p, x[0] || 6);
	},

	Expo: function(p){
		return Math.pow(2, 8 * (p - 1));
	},

	Circ: function(p){
		return 1 - Math.sin(Math.acos(p));
	},

	Sine: function(p){
		return 1 - Math.sin((1 - p) * Math.PI / 2);
	},

	Back: function(p, x){
		x = x[0] || 1.618;
		return Math.pow(p, 2) * ((x + 1) * p - x);
	},

	Bounce: function(p){
		var value;
		for (var a = 0, b = 1; 1; a += b, b /= 2){
			if (p >= (7 - 4 * a) / 11){
				value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
				break;
			}
		}
		return value;
	},

	Elastic: function(p, x){
		return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);
	}

});

['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
	Fx.Transitions[transition] = new Fx.Transition(function(p){
		return Math.pow(p, [i + 2]);
	});
});


/*
---

script: Request.js

description: Powerful all purpose Request Class. Uses XMLHTTPRequest.

license: MIT-style license.

requires:
- /Element
- /Chain
- /Events
- /Options
- /Browser

provides: [Request]

...
*/

var Request = new Class({

	Implements: [Chain, Events, Options],

	options: {/*
		onRequest: $empty,
		onComplete: $empty,
		onCancel: $empty,
		onSuccess: $empty,
		onFailure: $empty,
		onException: $empty,*/
		url: '',
		data: '',
		headers: {
			'X-Requested-With': 'XMLHttpRequest',
			'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
		},
		async: true,
		format: false,
		method: 'post',
		link: 'ignore',
		isSuccess: null,
		emulation: true,
		urlEncoded: true,
		encoding: 'utf-8',
		evalScripts: false,
		evalResponse: false,
		noCache: false
	},

	initialize: function(options){
		this.xhr = new Browser.Request();
		this.setOptions(options);
		this.options.isSuccess = this.options.isSuccess || this.isSuccess;
		this.headers = new Hash(this.options.headers);
	},

	onStateChange: function(){
		if (this.xhr.readyState != 4 || !this.running) return;
		this.running = false;
		this.status = 0;
		$try(function(){
			this.status = this.xhr.status;
		}.bind(this));
		this.xhr.onreadystatechange = $empty;
		if (this.options.isSuccess.call(this, this.status)){
			this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};
			this.success(this.response.text, this.response.xml);
		} else {
			this.response = {text: null, xml: null};
			this.failure();
		}
	},

	isSuccess: function(){
		return ((this.status >= 200) && (this.status < 300));
	},

	processScripts: function(text){
		if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);
		return text.stripScripts(this.options.evalScripts);
	},

	success: function(text, xml){
		this.onSuccess(this.processScripts(text), xml);
	},

	onSuccess: function(){
		this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
	},

	failure: function(){
		this.onFailure();
	},

	onFailure: function(){
		this.fireEvent('complete').fireEvent('failure', this.xhr);
	},

	setHeader: function(name, value){
		this.headers.set(name, value);
		return this;
	},

	getHeader: function(name){
		return $try(function(){
			return this.xhr.getResponseHeader(name);
		}.bind(this));
	},

	check: function(){
		if (!this.running) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
		}
		return false;
	},

	send: function(options){
		if (!this.check(options)) return this;
		this.running = true;

		var type = $type(options);
		if (type == 'string' || type == 'element') options = {data: options};

		var old = this.options;
		options = $extend({data: old.data, url: old.url, method: old.method}, options);
		var data = options.data, url = String(options.url), method = options.method.toLowerCase();

		switch ($type(data)){
			case 'element': data = document.id(data).toQueryString(); break;
			case 'object': case 'hash': data = Hash.toQueryString(data);
		}

		if (this.options.format){
			var format = 'format=' + this.options.format;
			data = (data) ? format + '&' + data : format;
		}

		if (this.options.emulation && !['get', 'post'].contains(method)){
			var _method = '_method=' + method;
			data = (data) ? _method + '&' + data : _method;
			method = 'post';
		}

		if (this.options.urlEncoded && method == 'post'){
			var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
			this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);
		}

		if (this.options.noCache){
			var noCache = 'noCache=' + new Date().getTime();
			data = (data) ? noCache + '&' + data : noCache;
		}

		var trimPosition = url.lastIndexOf('/');
		if (trimPosition > -1 && (trimPosition = url.indexOf('#')) > -1) url = url.substr(0, trimPosition);

		if (data && method == 'get'){
			url = url + (url.contains('?') ? '&' : '?') + data;
			data = null;
		}

		this.xhr.open(method.toUpperCase(), url, this.options.async);

		this.xhr.onreadystatechange = this.onStateChange.bind(this);

		this.headers.each(function(value, key){
			try {
				this.xhr.setRequestHeader(key, value);
			} catch (e){
				this.fireEvent('exception', [key, value]);
			}
		}, this);

		this.fireEvent('request');
		this.xhr.send(data);
		if (!this.options.async) this.onStateChange();
		return this;
	},

	cancel: function(){
		if (!this.running) return this;
		this.running = false;
		this.xhr.abort();
		this.xhr.onreadystatechange = $empty;
		this.xhr = new Browser.Request();
		this.fireEvent('cancel');
		return this;
	}

});

(function(){

var methods = {};
['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
	methods[method] = function(){
		var params = Array.link(arguments, {url: String.type, data: $defined});
		return this.send($extend(params, {method: method}));
	};
});

Request.implement(methods);

})();

Element.Properties.send = {

	set: function(options){
		var send = this.retrieve('send');
		if (send) send.cancel();
		return this.eliminate('send').store('send:options', $extend({
			data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
		}, options));
	},

	get: function(options){
		if (options || !this.retrieve('send')){
			if (options || !this.retrieve('send:options')) this.set('send', options);
			this.store('send', new Request(this.retrieve('send:options')));
		}
		return this.retrieve('send');
	}

};

Element.implement({

	send: function(url){
		var sender = this.get('send');
		sender.send({data: this, url: url || sender.options.url});
		return this;
	}

});


/*
---

script: Request.HTML.js

description: Extends the basic Request Class with additional methods for interacting with HTML responses.

license: MIT-style license.

requires:
- /Request
- /Element

provides: [Request.HTML]

...
*/

Request.HTML = new Class({

	Extends: Request,

	options: {
		update: false,
		append: false,
		evalScripts: true,
		filter: false
	},

	processHTML: function(text){
		var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
		text = (match) ? match[1] : text;

		var container = new Element('div');

		return $try(function(){
			var root = '<root>' + text + '</root>', doc;
			if (Browser.Engine.trident){
				doc = new ActiveXObject('Microsoft.XMLDOM');
				doc.async = false;
				doc.loadXML(root);
			} else {
				doc = new DOMParser().parseFromString(root, 'text/xml');
			}
			root = doc.getElementsByTagName('root')[0];
			if (!root) return null;
			for (var i = 0, k = root.childNodes.length; i < k; i++){
				var child = Element.clone(root.childNodes[i], true, true);
				if (child) container.grab(child);
			}
			return container;
		}) || container.set('html', text);
	},

	success: function(text){
		var options = this.options, response = this.response;

		response.html = text.stripScripts(function(script){
			response.javascript = script;
		});

		var temp = this.processHTML(response.html);

		response.tree = temp.childNodes;
		response.elements = temp.getElements('*');

		if (options.filter) response.tree = response.elements.filter(options.filter);
		if (options.update) document.id(options.update).empty().set('html', response.html);
		else if (options.append) document.id(options.append).adopt(temp.getChildren());
		if (options.evalScripts) $exec(response.javascript);

		this.onSuccess(response.tree, response.elements, response.html, response.javascript);
	}

});

Element.Properties.load = {

	set: function(options){
		var load = this.retrieve('load');
		if (load) load.cancel();
		return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));
	},

	get: function(options){
		if (options || ! this.retrieve('load')){
			if (options || !this.retrieve('load:options')) this.set('load', options);
			this.store('load', new Request.HTML(this.retrieve('load:options')));
		}
		return this.retrieve('load');
	}

};

Element.implement({

	load: function(){
		this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));
		return this;
	}

});


/*
---

script: Request.JSON.js

description: Extends the basic Request Class with additional methods for sending and receiving JSON data.

license: MIT-style license.

requires:
- /Request JSON

provides: [Request.HTML]

...
*/

Request.JSON = new Class({

	Extends: Request,

	options: {
		secure: true
	},

	initialize: function(options){
		this.parent(options);
		this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});
	},

	success: function(text){
		this.response.json = JSON.decode(text, this.options.secure);
		this.onSuccess(this.response.json, text);
	}

});

//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2009 Aaron Newton <http://clientcide.com/>, Valerio Proietti <http://mad4milk.net> & the MooTools team <http://mootools.net/developers>, MIT Style License.

/*
---

script: More.js

description: MooTools More

license: MIT-style license

authors:
- Guillermo Rauch
- Thomas Aylott
- Scott Kyle

requires:
- core:1.2.4/MooTools

provides: [MooTools.More]

...
*/

MooTools.More = {
	'version': '1.2.4.4',
	'build': '6f6057dc645fdb7547689183b2311063bd653ddf'
};

/*
---

script: MooTools.Lang.js

description: Provides methods for localization.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Events
- /MooTools.More

provides: [MooTools.Lang]

...
*/

(function(){

	var data = {
		language: 'en-US',
		languages: {
			'en-US': {}
		},
		cascades: ['en-US']
	};
	
	var cascaded;

	MooTools.lang = new Events();

	$extend(MooTools.lang, {

		setLanguage: function(lang){
			if (!data.languages[lang]) return this;
			data.language = lang;
			this.load();
			this.fireEvent('langChange', lang);
			return this;
		},

		load: function() {
			var langs = this.cascade(this.getCurrentLanguage());
			cascaded = {};
			$each(langs, function(set, setName){
				cascaded[setName] = this.lambda(set);
			}, this);
		},

		getCurrentLanguage: function(){
			return data.language;
		},

		addLanguage: function(lang){
			data.languages[lang] = data.languages[lang] || {};
			return this;
		},

		cascade: function(lang){
			var cascades = (data.languages[lang] || {}).cascades || [];
			cascades.combine(data.cascades);
			cascades.erase(lang).push(lang);
			var langs = cascades.map(function(lng){
				return data.languages[lng];
			}, this);
			return $merge.apply(this, langs);
		},

		lambda: function(set) {
			(set || {}).get = function(key, args){
				return $lambda(set[key]).apply(this, $splat(args));
			};
			return set;
		},

		get: function(set, key, args){
			if (cascaded && cascaded[set]) return (key ? cascaded[set].get(key, args) : cascaded[set]);
		},

		set: function(lang, set, members){
			this.addLanguage(lang);
			langData = data.languages[lang];
			if (!langData[set]) langData[set] = {};
			$extend(langData[set], members);
			if (lang == this.getCurrentLanguage()){
				this.load();
				this.fireEvent('langChange', lang);
			}
			return this;
		},

		list: function(){
			return Hash.getKeys(data.languages);
		}

	});

})();

/*
---

script: Log.js

description: Provides basic logging functionality for plugins to implement.

license: MIT-style license

authors:
- Guillermo Rauch
- Thomas Aylott
- Scott Kyle

requires:
- core:1.2.4/Class
- /MooTools.More

provides: [Log]

...
*/

(function(){

var global = this;

var log = function(){
	if (global.console && console.log){
		try {
			console.log.apply(console, arguments);
		} catch(e) {
			console.log(Array.slice(arguments));
		}
	} else {
		Log.logged.push(arguments);
	}
	return this;
};

var disabled = function(){
	this.logged.push(arguments);
	return this;
};

this.Log = new Class({
	
	logged: [],
	
	log: disabled,
	
	resetLog: function(){
		this.logged.empty();
		return this;
	},

	enableLog: function(){
		this.log = log;
		this.logged.each(function(args){
			this.log.apply(this, args);
		}, this);
		return this.resetLog();
	},

	disableLog: function(){
		this.log = disabled;
		return this;
	}
	
});

Log.extend(new Log).enableLog();

// legacy
Log.logger = function(){
	return this.log.apply(this, arguments);
};

})();

/*
---

script: Class.Binds.js

description: Automagically binds specified methods in a class to the instance of the class.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Class
- /MooTools.More

provides: [Class.Binds]

...
*/

Class.Mutators.Binds = function(binds){
    return binds;
};

Class.Mutators.initialize = function(initialize){
	return function(){
		$splat(this.Binds).each(function(name){
			var original = this[name];
			if (original) this[name] = original.bind(this);
		}, this);
		return initialize.apply(this, arguments);
	};
};


/*
---

script: Date.js

description: Extends the Date native object to include methods useful in managing dates.

license: MIT-style license

authors:
- Aaron Newton
- Nicholas Barthelemy - https://svn.nbarthelemy.com/date-js/
- Harald Kirshner - mail [at] digitarald.de; http://digitarald.de
- Scott Kyle - scott [at] appden.com; http://appden.com

requires:
- core:1.2.4/Array
- core:1.2.4/String
- core:1.2.4/Number
- core:1.2.4/Lang
- core:1.2.4/Date.English.US
- /MooTools.More

provides: [Date]

...
*/

(function(){

var Date = this.Date;

if (!Date.now) Date.now = $time;

Date.Methods = {
	ms: 'Milliseconds',
	year: 'FullYear',
	min: 'Minutes',
	mo: 'Month',
	sec: 'Seconds',
	hr: 'Hours'
};

['Date', 'Day', 'FullYear', 'Hours', 'Milliseconds', 'Minutes', 'Month', 'Seconds', 'Time', 'TimezoneOffset',
	'Week', 'Timezone', 'GMTOffset', 'DayOfYear', 'LastMonth', 'LastDayOfMonth', 'UTCDate', 'UTCDay', 'UTCFullYear',
	'AMPM', 'Ordinal', 'UTCHours', 'UTCMilliseconds', 'UTCMinutes', 'UTCMonth', 'UTCSeconds'].each(function(method){
	Date.Methods[method.toLowerCase()] = method;
});

var pad = function(what, length){
	return new Array(length - String(what).length + 1).join('0') + what;
};

Date.implement({

	set: function(prop, value){
		switch ($type(prop)){
			case 'object':
				for (var p in prop) this.set(p, prop[p]);
				break;
			case 'string':
				prop = prop.toLowerCase();
				var m = Date.Methods;
				if (m[prop]) this['set' + m[prop]](value);
		}
		return this;
	},

	get: function(prop){
		prop = prop.toLowerCase();
		var m = Date.Methods;
		if (m[prop]) return this['get' + m[prop]]();
		return null;
	},

	clone: function(){
		return new Date(this.get('time'));
	},

	increment: function(interval, times){
		interval = interval || 'day';
		times = $pick(times, 1);

		switch (interval){
			case 'year':
				return this.increment('month', times * 12);
			case 'month':
				var d = this.get('date');
				this.set('date', 1).set('mo', this.get('mo') + times);
				return this.set('date', d.min(this.get('lastdayofmonth')));
			case 'week':
				return this.increment('day', times * 7);
			case 'day':
				return this.set('date', this.get('date') + times);
		}

		if (!Date.units[interval]) throw new Error(interval + ' is not a supported interval');

		return this.set('time', this.get('time') + times * Date.units[interval]());
	},

	decrement: function(interval, times){
		return this.increment(interval, -1 * $pick(times, 1));
	},

	isLeapYear: function(){
		return Date.isLeapYear(this.get('year'));
	},

	clearTime: function(){
		return this.set({hr: 0, min: 0, sec: 0, ms: 0});
	},

	diff: function(date, resolution){
		if ($type(date) == 'string') date = Date.parse(date);
		
		return ((date - this) / Date.units[resolution || 'day'](3, 3)).toInt(); // non-leap year, 30-day month
	},

	getLastDayOfMonth: function(){
		return Date.daysInMonth(this.get('mo'), this.get('year'));
	},

	getDayOfYear: function(){
		return (Date.UTC(this.get('year'), this.get('mo'), this.get('date') + 1) 
			- Date.UTC(this.get('year'), 0, 1)) / Date.units.day();
	},

	getWeek: function(){
		return (this.get('dayofyear') / 7).ceil();
	},
	
	getOrdinal: function(day){
		return Date.getMsg('ordinal', day || this.get('date'));
	},

	getTimezone: function(){
		return this.toString()
			.replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/, '$1')
			.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, '$1$2$3');
	},

	getGMTOffset: function(){
		var off = this.get('timezoneOffset');
		return ((off > 0) ? '-' : '+') + pad((off.abs() / 60).floor(), 2) + pad(off % 60, 2);
	},

	setAMPM: function(ampm){
		ampm = ampm.toUpperCase();
		var hr = this.get('hr');
		if (hr > 11 && ampm == 'AM') return this.decrement('hour', 12);
		else if (hr < 12 && ampm == 'PM') return this.increment('hour', 12);
		return this;
	},

	getAMPM: function(){
		return (this.get('hr') < 12) ? 'AM' : 'PM';
	},

	parse: function(str){
		this.set('time', Date.parse(str));
		return this;
	},

	isValid: function(date) {
		return !!(date || this).valueOf();
	},

	format: function(f){
		if (!this.isValid()) return 'invalid date';
		f = f || '%x %X';
		f = formats[f.toLowerCase()] || f; // replace short-hand with actual format
		var d = this;
		return f.replace(/%([a-z%])/gi,
			function($0, $1){
				switch ($1){
					case 'a': return Date.getMsg('days')[d.get('day')].substr(0, 3);
					case 'A': return Date.getMsg('days')[d.get('day')];
					case 'b': return Date.getMsg('months')[d.get('month')].substr(0, 3);
					case 'B': return Date.getMsg('months')[d.get('month')];
					case 'c': return d.toString();
					case 'd': return pad(d.get('date'), 2);
					case 'H': return pad(d.get('hr'), 2);
					case 'I': return ((d.get('hr') % 12) || 12);
					case 'j': return pad(d.get('dayofyear'), 3);
					case 'm': return pad((d.get('mo') + 1), 2);
					case 'M': return pad(d.get('min'), 2);
					case 'o': return d.get('ordinal');
					case 'p': return Date.getMsg(d.get('ampm'));
					case 'S': return pad(d.get('seconds'), 2);
					case 'U': return pad(d.get('week'), 2);
					case 'w': return d.get('day');
					case 'x': return d.format(Date.getMsg('shortDate'));
					case 'X': return d.format(Date.getMsg('shortTime'));
					case 'y': return d.get('year').toString().substr(2);
					case 'Y': return d.get('year');
					case 'T': return d.get('GMTOffset');
					case 'Z': return d.get('Timezone');
				}
				return $1;
			}
		);
	},

	toISOString: function(){
		return this.format('iso8601');
	}

});

Date.alias('toISOString', 'toJSON');
Date.alias('diff', 'compare');
Date.alias('format', 'strftime');

var formats = {
	db: '%Y-%m-%d %H:%M:%S',
	compact: '%Y%m%dT%H%M%S',
	iso8601: '%Y-%m-%dT%H:%M:%S%T',
	rfc822: '%a, %d %b %Y %H:%M:%S %Z',
	'short': '%d %b %H:%M',
	'long': '%B %d, %Y %H:%M'
};

var parsePatterns = [];
var nativeParse = Date.parse;

var parseWord = function(type, word, num){
	var ret = -1;
	var translated = Date.getMsg(type + 's');

	switch ($type(word)){
		case 'object':
			ret = translated[word.get(type)];
			break;
		case 'number':
			ret = translated[month - 1];
			if (!ret) throw new Error('Invalid ' + type + ' index: ' + index);
			break;
		case 'string':
			var match = translated.filter(function(name){
				return this.test(name);
			}, new RegExp('^' + word, 'i'));
			if (!match.length)    throw new Error('Invalid ' + type + ' string');
			if (match.length > 1) throw new Error('Ambiguous ' + type);
			ret = match[0];
	}

	return (num) ? translated.indexOf(ret) : ret;
};

Date.extend({

	getMsg: function(key, args) {
		return MooTools.lang.get('Date', key, args);
	},

	units: {
		ms: $lambda(1),
		second: $lambda(1000),
		minute: $lambda(60000),
		hour: $lambda(3600000),
		day: $lambda(86400000),
		week: $lambda(608400000),
		month: function(month, year){
			var d = new Date;
			return Date.daysInMonth($pick(month, d.get('mo')), $pick(year, d.get('year'))) * 86400000;
		},
		year: function(year){
			year = year || new Date().get('year');
			return Date.isLeapYear(year) ? 31622400000 : 31536000000;
		}
	},

	daysInMonth: function(month, year){
		return [31, Date.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
	},

	isLeapYear: function(year){
		return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);
	},

	parse: function(from){
		var t = $type(from);
		if (t == 'number') return new Date(from);
		if (t != 'string') return from;
		from = from.clean();
		if (!from.length) return null;

		var parsed;
		parsePatterns.some(function(pattern){
			var bits = pattern.re.exec(from);
			return (bits) ? (parsed = pattern.handler(bits)) : false;
		});

		return parsed || new Date(nativeParse(from));
	},

	parseDay: function(day, num){
		return parseWord('day', day, num);
	},

	parseMonth: function(month, num){
		return parseWord('month', month, num);
	},

	parseUTC: function(value){
		var localDate = new Date(value);
		var utcSeconds = Date.UTC(
			localDate.get('year'),
			localDate.get('mo'),
			localDate.get('date'),
			localDate.get('hr'),
			localDate.get('min'),
			localDate.get('sec')
		);
		return new Date(utcSeconds);
	},

	orderIndex: function(unit){
		return Date.getMsg('dateOrder').indexOf(unit) + 1;
	},

	defineFormat: function(name, format){
		formats[name] = format;
	},

	defineFormats: function(formats){
		for (var name in formats) Date.defineFormat(name, formats[name]);
	},

	parsePatterns: parsePatterns, // this is deprecated
	
	defineParser: function(pattern){
		parsePatterns.push((pattern.re && pattern.handler) ? pattern : build(pattern));
	},
	
	defineParsers: function(){
		Array.flatten(arguments).each(Date.defineParser);
	},
	
	define2DigitYearStart: function(year){
		startYear = year % 100;
		startCentury = year - startYear;
	}

});

var startCentury = 1900;
var startYear = 70;

var regexOf = function(type){
	return new RegExp('(?:' + Date.getMsg(type).map(function(name){
		return name.substr(0, 3);
	}).join('|') + ')[a-z]*');
};

var replacers = function(key){
	switch(key){
		case 'x': // iso8601 covers yyyy-mm-dd, so just check if month is first
			return ((Date.orderIndex('month') == 1) ? '%m[.-/]%d' : '%d[.-/]%m') + '([.-/]%y)?';
		case 'X':
			return '%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%T?';
	}
	return null;
};

var keys = {
	d: /[0-2]?[0-9]|3[01]/,
	H: /[01]?[0-9]|2[0-3]/,
	I: /0?[1-9]|1[0-2]/,
	M: /[0-5]?\d/,
	s: /\d+/,
	o: /[a-z]*/,
	p: /[ap]\.?m\.?/,
	y: /\d{2}|\d{4}/,
	Y: /\d{4}/,
	T: /Z|[+-]\d{2}(?::?\d{2})?/
};

keys.m = keys.I;
keys.S = keys.M;

var currentLanguage;

var recompile = function(language){
	currentLanguage = language;
	
	keys.a = keys.A = regexOf('days');
	keys.b = keys.B = regexOf('months');
	
	parsePatterns.each(function(pattern, i){
		if (pattern.format) parsePatterns[i] = build(pattern.format);
	});
};

var build = function(format){
	if (!currentLanguage) return {format: format};
	
	var parsed = [];
	var re = (format.source || format) // allow format to be regex
	 .replace(/%([a-z])/gi,
		function($0, $1){
			return replacers($1) || $0;
		}
	).replace(/\((?!\?)/g, '(?:') // make all groups non-capturing
	 .replace(/ (?!\?|\*)/g, ',? ') // be forgiving with spaces and commas
	 .replace(/%([a-z%])/gi,
		function($0, $1){
			var p = keys[$1];
			if (!p) return $1;
			parsed.push($1);
			return '(' + p.source + ')';
		}
	).replace(/\[a-z\]/gi, '[a-z\\u00c0-\\uffff]'); // handle unicode words

	return {
		format: format,
		re: new RegExp('^' + re + '$', 'i'),
		handler: function(bits){
			bits = bits.slice(1).associate(parsed);
			var date = new Date().clearTime();
			if ('d' in bits) handle.call(date, 'd', 1);
			if ('m' in bits || 'b' in bits || 'B' in bits) handle.call(date, 'm', 1);
			for (var key in bits) handle.call(date, key, bits[key]);
			return date;
		}
	};
};

var handle = function(key, value){
	if (!value) return this;

	switch(key){
		case 'a': case 'A': return this.set('day', Date.parseDay(value, true));
		case 'b': case 'B': return this.set('mo', Date.parseMonth(value, true));
		case 'd': return this.set('date', value);
		case 'H': case 'I': return this.set('hr', value);
		case 'm': return this.set('mo', value - 1);
		case 'M': return this.set('min', value);
		case 'p': return this.set('ampm', value.replace(/\./g, ''));
		case 'S': return this.set('sec', value);
		case 's': return this.set('ms', ('0.' + value) * 1000);
		case 'w': return this.set('day', value);
		case 'Y': return this.set('year', value);
		case 'y':
			value = +value;
			if (value < 100) value += startCentury + (value < startYear ? 100 : 0);
			return this.set('year', value);
		case 'T':
			if (value == 'Z') value = '+00';
			var offset = value.match(/([+-])(\d{2}):?(\d{2})?/);
			offset = (offset[1] + '1') * (offset[2] * 60 + (+offset[3] || 0)) + this.getTimezoneOffset();
			return this.set('time', this - offset * 60000);
	}

	return this;
};

Date.defineParsers(
	'%Y([-./]%m([-./]%d((T| )%X)?)?)?', // "1999-12-31", "1999-12-31 11:59pm", "1999-12-31 23:59:59", ISO8601
	'%Y%m%d(T%H(%M%S?)?)?', // "19991231", "19991231T1159", compact
	'%x( %X)?', // "12/31", "12.31.99", "12-31-1999", "12/31/2008 11:59 PM"
	'%d%o( %b( %Y)?)?( %X)?', // "31st", "31st December", "31 Dec 1999", "31 Dec 1999 11:59pm"
	'%b( %d%o)?( %Y)?( %X)?', // Same as above with month and day switched
	'%Y %b( %d%o( %X)?)?', // Same as above with year coming first
	'%o %b %d %X %T %Y' // "Thu Oct 22 08:11:23 +0000 2009"
);

MooTools.lang.addEvent('langChange', function(language){
	if (MooTools.lang.get('Date')) recompile(language);
}).fireEvent('langChange', MooTools.lang.getCurrentLanguage());

})();

/*
---

script: Date.Extras.js

description: Extends the Date native object to include extra methods (on top of those in Date.js).

license: MIT-style license

authors:
- Aaron Newton
- Scott Kyle

requires:
- /Date

provides: [Date.Extras]

...
*/

Date.implement({

	timeDiffInWords: function(relative_to){
		return Date.distanceOfTimeInWords(this, relative_to || new Date);
	},

	timeDiff: function(to, joiner){
		if (to == null) to = new Date;
		var delta = ((to - this) / 1000).toInt();
		if (!delta) return '0s';
		
		var durations = {s: 60, m: 60, h: 24, d: 365, y: 0};
		var duration, vals = [];
		
		for (var step in durations){
			if (!delta) break;
			if ((duration = durations[step])){
				vals.unshift((delta % duration) + step);
				delta = (delta / duration).toInt();
			} else {
				vals.unshift(delta + step);
			}
		}
		
		return vals.join(joiner || ':');
	}

});

Date.alias('timeDiffInWords', 'timeAgoInWords');

Date.extend({

	distanceOfTimeInWords: function(from, to){
		return Date.getTimePhrase(((to - from) / 1000).toInt());
	},

	getTimePhrase: function(delta){
		var suffix = (delta < 0) ? 'Until' : 'Ago';
		if (delta < 0) delta *= -1;
		
		var units = {
			minute: 60,
			hour: 60,
			day: 24,
			week: 7,
			month: 52 / 12,
			year: 12,
			eon: Infinity
		};
		
		var msg = 'lessThanMinute';
		
		for (var unit in units){
			var interval = units[unit];
			if (delta < 1.5 * interval){
				if (delta > 0.75 * interval) msg = unit;
				break;
			}
			delta /= interval;
			msg = unit + 's';
		}
		
		return Date.getMsg(msg + suffix).substitute({delta: delta.round()});
	}

});


Date.defineParsers(

	{
		// "today", "tomorrow", "yesterday"
		re: /^(?:tod|tom|yes)/i,
		handler: function(bits){
			var d = new Date().clearTime();
			switch(bits[0]){
				case 'tom': return d.increment();
				case 'yes': return d.decrement();
				default: 	return d;
			}
		}
	},

	{
		// "next Wednesday", "last Thursday"
		re: /^(next|last) ([a-z]+)$/i,
		handler: function(bits){
			var d = new Date().clearTime();
			var day = d.getDay();
			var newDay = Date.parseDay(bits[2], true);
			var addDays = newDay - day;
			if (newDay <= day) addDays += 7;
			if (bits[1] == 'last') addDays -= 7;
			return d.set('date', d.getDate() + addDays);
		}
	}

);


/*
---

script: Hash.Extras.js

description: Extends the Hash native object to include getFromPath which allows a path notation to child elements.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Hash.base
- /MooTools.More

provides: [Hash.Extras]

...
*/

Hash.implement({

	getFromPath: function(notation){
		var source = this.getClean();
		notation.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g, function(match){
			if (!source) return null;
			var prop = arguments[2] || arguments[1] || arguments[0];
			source = (prop in source) ? source[prop] : null;
			return match;
		});
		return source;
	},

	cleanValues: function(method){
		method = method || $defined;
		this.each(function(v, k){
			if (!method(v)) this.erase(k);
		}, this);
		return this;
	},

	run: function(){
		var args = arguments;
		this.each(function(v, k){
			if ($type(v) == 'function') v.run(args);
		});
	}

});

/*
---

script: String.Extras.js

description: Extends the String native object to include methods useful in managing various kinds of strings (query strings, urls, html, etc).

license: MIT-style license

authors:
- Aaron Newton
- Guillermo Rauch

requires:
- core:1.2.4/String
- core:1.2.4/$util
- core:1.2.4/Array

provides: [String.Extras]

...
*/

(function(){
  
var special = ['Ã€','Ã ','Ã','Ã¡','Ã‚','Ã¢','Ãƒ','Ã£','Ã„','Ã¤','Ã…','Ã¥','Ä‚','Äƒ','Ä„','Ä…','Ä†','Ä‡','ÄŒ','Ä','Ã‡','Ã§', 'ÄŽ','Ä','Ä','Ä‘', 'Ãˆ','Ã¨','Ã‰','Ã©','ÃŠ','Ãª','Ã‹','Ã«','Äš','Ä›','Ä˜','Ä™', 'Äž','ÄŸ','ÃŒ','Ã¬','Ã','Ã­','ÃŽ','Ã®','Ã','Ã¯', 'Ä¹','Äº','Ä½','Ä¾','Å','Å‚', 'Ã‘','Ã±','Å‡','Åˆ','Åƒ','Å„','Ã’','Ã²','Ã“','Ã³','Ã”','Ã´','Ã•','Ãµ','Ã–','Ã¶','Ã˜','Ã¸','Å‘','Å˜','Å™','Å”','Å•','Å ','Å¡','Åž','ÅŸ','Åš','Å›', 'Å¤','Å¥','Å¤','Å¥','Å¢','Å£','Ã™','Ã¹','Ãš','Ãº','Ã›','Ã»','Ãœ','Ã¼','Å®','Å¯', 'Å¸','Ã¿','Ã½','Ã','Å½','Å¾','Å¹','Åº','Å»','Å¼', 'Ãž','Ã¾','Ã','Ã°','ÃŸ','Å’','Å“','Ã†','Ã¦','Âµ'];

var standard = ['A','a','A','a','A','a','A','a','Ae','ae','A','a','A','a','A','a','C','c','C','c','C','c','D','d','D','d', 'E','e','E','e','E','e','E','e','E','e','E','e','G','g','I','i','I','i','I','i','I','i','L','l','L','l','L','l', 'N','n','N','n','N','n', 'O','o','O','o','O','o','O','o','Oe','oe','O','o','o', 'R','r','R','r', 'S','s','S','s','S','s','T','t','T','t','T','t', 'U','u','U','u','U','u','Ue','ue','U','u','Y','y','Y','y','Z','z','Z','z','Z','z','TH','th','DH','dh','ss','OE','oe','AE','ae','u'];

var tidymap = {
	"[\xa0\u2002\u2003\u2009]": " ",
	"\xb7": "*",
	"[\u2018\u2019]": "'",
	"[\u201c\u201d]": '"',
	"\u2026": "...",
	"\u2013": "-",
	"\u2014": "--",
	"\uFFFD": "&raquo;"
};

var getRegForTag = function(tag, contents) {
	tag = tag || '';
	var regstr = contents ? "<" + tag + "[^>]*>([\\s\\S]*?)<\/" + tag + ">" : "<\/?" + tag + "([^>]+)?>";
	reg = new RegExp(regstr, "gi");
	return reg;
};

String.implement({

	standardize: function(){
		var text = this;
		special.each(function(ch, i){
			text = text.replace(new RegExp(ch, 'g'), standard[i]);
		});
		return text;
	},

	repeat: function(times){
		return new Array(times + 1).join(this);
	},

	pad: function(length, str, dir){
		if (this.length >= length) return this;
		var pad = (str == null ? ' ' : '' + str).repeat(length - this.length).substr(0, length - this.length);
		if (!dir || dir == 'right') return this + pad;
		if (dir == 'left') return pad + this;
		return pad.substr(0, (pad.length / 2).floor()) + this + pad.substr(0, (pad.length / 2).ceil());
	},

	getTags: function(tag, contents){
		return this.match(getRegForTag(tag, contents)) || [];
	},

	stripTags: function(tag, contents){
		return this.replace(getRegForTag(tag, contents), '');
	},

	tidy: function(){
		var txt = this.toString();
		$each(tidymap, function(value, key){
			txt = txt.replace(new RegExp(key, 'g'), value);
		});
		return txt;
	}

});

})();

/*
---

script: Element.Measure.js

description: Extends the Element native object to include methods useful in measuring dimensions.

credits: "Element.measure / .expose methods by Daniel Steigerwald License: MIT-style license. Copyright: Copyright (c) 2008 Daniel Steigerwald, daniel.steigerwald.cz"

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Element.Style
- core:1.2.4/Element.Dimensions
- /MooTools.More

provides: [Element.Measure]

...
*/

Element.implement({

	measure: function(fn){
		var vis = function(el) {
			return !!(!el || el.offsetHeight || el.offsetWidth);
		};
		if (vis(this)) return fn.apply(this);
		var parent = this.getParent(),
			restorers = [],
			toMeasure = []; 
		while (!vis(parent) && parent != document.body) {
			toMeasure.push(parent.expose());
			parent = parent.getParent();
		}
		var restore = this.expose();
		var result = fn.apply(this);
		restore();
		toMeasure.each(function(restore){
			restore();
		});
		return result;
	},

	expose: function(){
		if (this.getStyle('display') != 'none') return $empty;
		var before = this.style.cssText;
		this.setStyles({
			display: 'block',
			position: 'absolute',
			visibility: 'hidden'
		});
		return function(){
			this.style.cssText = before;
		}.bind(this);
	},

	getDimensions: function(options){
		options = $merge({computeSize: false},options);
		var dim = {};
		var getSize = function(el, options){
			return (options.computeSize)?el.getComputedSize(options):el.getSize();
		};
		var parent = this.getParent('body');
		if (parent && this.getStyle('display') == 'none'){
			dim = this.measure(function(){
				return getSize(this, options);
			});
		} else if (parent){
			try { //safari sometimes crashes here, so catch it
				dim = getSize(this, options);
			}catch(e){}
		} else {
			dim = {x: 0, y: 0};
		}
		return $chk(dim.x) ? $extend(dim, {width: dim.x, height: dim.y}) : $extend(dim, {x: dim.width, y: dim.height});
	},

	getComputedSize: function(options){
		options = $merge({
			styles: ['padding','border'],
			plains: {
				height: ['top','bottom'],
				width: ['left','right']
			},
			mode: 'both'
		}, options);
		var size = {width: 0,height: 0};
		switch (options.mode){
			case 'vertical':
				delete size.width;
				delete options.plains.width;
				break;
			case 'horizontal':
				delete size.height;
				delete options.plains.height;
				break;
		}
		var getStyles = [];
		//this function might be useful in other places; perhaps it should be outside this function?
		$each(options.plains, function(plain, key){
			plain.each(function(edge){
				options.styles.each(function(style){
					getStyles.push((style == 'border') ? style + '-' + edge + '-' + 'width' : style + '-' + edge);
				});
			});
		});
		var styles = {};
		getStyles.each(function(style){ styles[style] = this.getComputedStyle(style); }, this);
		var subtracted = [];
		$each(options.plains, function(plain, key){ //keys: width, height, plains: ['left', 'right'], ['top','bottom']
			var capitalized = key.capitalize();
			size['total' + capitalized] = size['computed' + capitalized] = 0;
			plain.each(function(edge){ //top, left, right, bottom
				size['computed' + edge.capitalize()] = 0;
				getStyles.each(function(style, i){ //padding, border, etc.
					//'padding-left'.test('left') size['totalWidth'] = size['width'] + [padding-left]
					if (style.test(edge)){
						styles[style] = styles[style].toInt() || 0; //styles['padding-left'] = 5;
						size['total' + capitalized] = size['total' + capitalized] + styles[style];
						size['computed' + edge.capitalize()] = size['computed' + edge.capitalize()] + styles[style];
					}
					//if width != width (so, padding-left, for instance), then subtract that from the total
					if (style.test(edge) && key != style &&
						(style.test('border') || style.test('padding')) && !subtracted.contains(style)){
						subtracted.push(style);
						size['computed' + capitalized] = size['computed' + capitalized]-styles[style];
					}
				});
			});
		});

		['Width', 'Height'].each(function(value){
			var lower = value.toLowerCase();
			if(!$chk(size[lower])) return;

			size[lower] = size[lower] + this['offset' + value] + size['computed' + value];
			size['total' + value] = size[lower] + size['total' + value];
			delete size['computed' + value];
		}, this);

		return $extend(styles, size);
	}

});

/*
---

script: Element.Position.js

description: Extends the Element native object to include methods useful positioning elements relative to others.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Element.Dimensions
- /Element.Measure

provides: [Elements.Position]

...
*/

(function(){

var original = Element.prototype.position;

Element.implement({

	position: function(options){
		//call original position if the options are x/y values
		if (options && ($defined(options.x) || $defined(options.y))) return original ? original.apply(this, arguments) : this;
		$each(options||{}, function(v, k){ if (!$defined(v)) delete options[k]; });
		options = $merge({
			// minimum: { x: 0, y: 0 },
			// maximum: { x: 0, y: 0},
			relativeTo: document.body,
			position: {
				x: 'center', //left, center, right
				y: 'center' //top, center, bottom
			},
			edge: false,
			offset: {x: 0, y: 0},
			returnPos: false,
			relFixedPosition: false,
			ignoreMargins: false,
			ignoreScroll: false,
			allowNegative: false
		}, options);
		//compute the offset of the parent positioned element if this element is in one
		var parentOffset = {x: 0, y: 0}, 
				parentPositioned = false;
		/* dollar around getOffsetParent should not be necessary, but as it does not return
		 * a mootools extended element in IE, an error occurs on the call to expose. See:
		 * http://mootools.lighthouseapp.com/projects/2706/tickets/333-element-getoffsetparent-inconsistency-between-ie-and-other-browsers */
		var offsetParent = this.measure(function(){
			return document.id(this.getOffsetParent());
		});
		if (offsetParent && offsetParent != this.getDocument().body){
			parentOffset = offsetParent.measure(function(){
				return this.getPosition();
			});
			parentPositioned = offsetParent != document.id(options.relativeTo);
			options.offset.x = options.offset.x - parentOffset.x;
			options.offset.y = options.offset.y - parentOffset.y;
		}
		//upperRight, bottomRight, centerRight, upperLeft, bottomLeft, centerLeft
		//topRight, topLeft, centerTop, centerBottom, center
		var fixValue = function(option){
			if ($type(option) != 'string') return option;
			option = option.toLowerCase();
			var val = {};
			if (option.test('left')) val.x = 'left';
			else if (option.test('right')) val.x = 'right';
			else val.x = 'center';
			if (option.test('upper') || option.test('top')) val.y = 'top';
			else if (option.test('bottom')) val.y = 'bottom';
			else val.y = 'center';
			return val;
		};
		options.edge = fixValue(options.edge);
		options.position = fixValue(options.position);
		if (!options.edge){
			if (options.position.x == 'center' && options.position.y == 'center') options.edge = {x:'center', y:'center'};
			else options.edge = {x:'left', y:'top'};
		}

		this.setStyle('position', 'absolute');
		var rel = document.id(options.relativeTo) || document.body,
				calc = rel == document.body ? window.getScroll() : rel.getPosition(),
				top = calc.y, left = calc.x;

		var dim = this.getDimensions({computeSize: true, styles:['padding', 'border','margin']});
		var pos = {},
				prefY = options.offset.y,
				prefX = options.offset.x,
				winSize = window.getSize();
		switch(options.position.x){
			case 'left':
				pos.x = left + prefX;
				break;
			case 'right':
				pos.x = left + prefX + rel.offsetWidth;
				break;
			default: //center
				pos.x = left + ((rel == document.body ? winSize.x : rel.offsetWidth)/2) + prefX;
				break;
		}
		switch(options.position.y){
			case 'top':
				pos.y = top + prefY;
				break;
			case 'bottom':
				pos.y = top + prefY + rel.offsetHeight;
				break;
			default: //center
				pos.y = top + ((rel == document.body ? winSize.y : rel.offsetHeight)/2) + prefY;
				break;
		}
		if (options.edge){
			var edgeOffset = {};

			switch(options.edge.x){
				case 'left':
					edgeOffset.x = 0;
					break;
				case 'right':
					edgeOffset.x = -dim.x-dim.computedRight-dim.computedLeft;
					break;
				default: //center
					edgeOffset.x = -(dim.totalWidth/2);
					break;
			}
			switch(options.edge.y){
				case 'top':
					edgeOffset.y = 0;
					break;
				case 'bottom':
					edgeOffset.y = -dim.y-dim.computedTop-dim.computedBottom;
					break;
				default: //center
					edgeOffset.y = -(dim.totalHeight/2);
					break;
			}
			pos.x += edgeOffset.x;
			pos.y += edgeOffset.y;
		}
		pos = {
			left: ((pos.x >= 0 || parentPositioned || options.allowNegative) ? pos.x : 0).toInt(),
			top: ((pos.y >= 0 || parentPositioned || options.allowNegative) ? pos.y : 0).toInt()
		};
		var xy = {left: 'x', top: 'y'};
		['minimum', 'maximum'].each(function(minmax) {
			['left', 'top'].each(function(lr) {
				var val = options[minmax] ? options[minmax][xy[lr]] : null;
				if (val != null && pos[lr] < val) pos[lr] = val;
			});
		});
		if (rel.getStyle('position') == 'fixed' || options.relFixedPosition){
			var winScroll = window.getScroll();
			pos.top+= winScroll.y;
			pos.left+= winScroll.x;
		}
		if (options.ignoreScroll) {
			var relScroll = rel.getScroll();
			pos.top-= relScroll.y;
			pos.left-= relScroll.x;
		}
		if (options.ignoreMargins) {
			pos.left += (
				options.edge.x == 'right' ? dim['margin-right'] : 
				options.edge.x == 'center' ? -dim['margin-left'] + ((dim['margin-right'] + dim['margin-left'])/2) : 
					- dim['margin-left']
			);
			pos.top += (
				options.edge.y == 'bottom' ? dim['margin-bottom'] : 
				options.edge.y == 'center' ? -dim['margin-top'] + ((dim['margin-bottom'] + dim['margin-top'])/2) : 
					- dim['margin-top']
			);
		}
		pos.left = Math.ceil(pos.left);
		pos.top = Math.ceil(pos.top);
		if (options.returnPos) return pos;
		else this.setStyles(pos);
		return this;
	}

});

})();

/*
---

script: Element.Shortcuts.js

description: Extends the Element native object to include some shortcut methods.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Element.Style
- /MooTools.More

provides: [Element.Shortcuts]

...
*/

Element.implement({

	isDisplayed: function(){
		return this.getStyle('display') != 'none';
	},

	isVisible: function(){
		var w = this.offsetWidth,
			h = this.offsetHeight;
		return (w == 0 && h == 0) ? false : (w > 0 && h > 0) ? true : this.isDisplayed();
	},

	toggle: function(){
		return this[this.isDisplayed() ? 'hide' : 'show']();
	},

	hide: function(){
		var d;
		try {
			//IE fails here if the element is not in the dom
			d = this.getStyle('display');
		} catch(e){}
		return this.store('originalDisplay', d || '').setStyle('display', 'none');
	},

	show: function(display){
		display = display || this.retrieve('originalDisplay') || 'block';
		return this.setStyle('display', (display == 'none') ? 'block' : display);
	},

	swapClass: function(remove, add){
		return this.removeClass(remove).addClass(add);
	}

});


/*
---

script: Fx.Elements.js

description: Effect to change any number of CSS properties of any number of Elements.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Fx.CSS
- /MooTools.More

provides: [Fx.Elements]

...
*/

Fx.Elements = new Class({

	Extends: Fx.CSS,

	initialize: function(elements, options){
		this.elements = this.subject = $$(elements);
		this.parent(options);
	},

	compute: function(from, to, delta){
		var now = {};
		for (var i in from){
			var iFrom = from[i], iTo = to[i], iNow = now[i] = {};
			for (var p in iFrom) iNow[p] = this.parent(iFrom[p], iTo[p], delta);
		}
		return now;
	},

	set: function(now){
		for (var i in now){
			var iNow = now[i];
			for (var p in iNow) this.render(this.elements[i], p, iNow[p], this.options.unit);
		}
		return this;
	},

	start: function(obj){
		if (!this.check(obj)) return this;
		var from = {}, to = {};
		for (var i in obj){
			var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {};
			for (var p in iProps){
				var parsed = this.prepare(this.elements[i], p, iProps[p]);
				iFrom[p] = parsed.from;
				iTo[p] = parsed.to;
			}
		}
		return this.parent(from, to);
	}

});

/*
---

script: Fx.Accordion.js

description: An Fx.Elements extension which allows you to easily create accordion type controls.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Element.Event
- /Fx.Elements

provides: [Fx.Accordion]

...
*/

Fx.Accordion = new Class({

	Extends: Fx.Elements,

	options: {/*
		onActive: $empty(toggler, section),
		onBackground: $empty(toggler, section),
		fixedHeight: false,
		fixedWidth: false,
		*/
		display: 0,
		show: false,
		height: true,
		width: false,
		opacity: true,
		alwaysHide: false,
		trigger: 'click',
		initialDisplayFx: true,
		returnHeightToAuto: true
	},

	initialize: function(){
		var params = Array.link(arguments, {
			'container': Element.type, //deprecated
			'options': Object.type,
			'togglers': $defined,
			'elements': $defined
		});
		this.parent(params.elements, params.options);
		this.togglers = $$(params.togglers);
		this.previous = -1;
		this.internalChain = new Chain();
		if (this.options.alwaysHide) this.options.wait = true;
		if ($chk(this.options.show)){
			this.options.display = false;
			this.previous = this.options.show;
		}
		if (this.options.start){
			this.options.display = false;
			this.options.show = false;
		}
		this.effects = {};
		if (this.options.opacity) this.effects.opacity = 'fullOpacity';
		if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';
		if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';
		for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);
		this.elements.each(function(el, i){
			if (this.options.show === i){
				this.fireEvent('active', [this.togglers[i], el]);
			} else {
				for (var fx in this.effects) el.setStyle(fx, 0);
			}
		}, this);
		if ($chk(this.options.display) || this.options.initialDisplayFx === false) this.display(this.options.display, this.options.initialDisplayFx);
		if (this.options.fixedHeight !== false) this.options.returnHeightToAuto = false;
		this.addEvent('complete', this.internalChain.callChain.bind(this.internalChain));
	},

	addSection: function(toggler, element){
		toggler = document.id(toggler);
		element = document.id(element);
		var test = this.togglers.contains(toggler);
		this.togglers.include(toggler);
		this.elements.include(element);
		var idx = this.togglers.indexOf(toggler);
		var displayer = this.display.bind(this, idx);
		toggler.store('accordion:display', displayer);
		toggler.addEvent(this.options.trigger, displayer);
		if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
		if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
		element.fullOpacity = 1;
		if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;
		if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;
		element.setStyle('overflow', 'hidden');
		if (!test){
			for (var fx in this.effects) element.setStyle(fx, 0);
		}
		return this;
	},

	detach: function(){
		this.togglers.each(function(toggler) {
			toggler.removeEvent(this.options.trigger, toggler.retrieve('accordion:display'));
		}, this);
	},

	display: function(index, useFx){
		if (!this.check(index, useFx)) return this;
		useFx = $pick(useFx, true);
		if (this.options.returnHeightToAuto){
			var prev = this.elements[this.previous];
			if (prev && !this.selfHidden){
				for (var fx in this.effects){
					prev.setStyle(fx, prev[this.effects[fx]]);
				}
			}
		}
		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
		if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;
		this.previous = index;
		var obj = {};
		this.elements.each(function(el, i){
			obj[i] = {};
			var hide;
			if (i != index){
				hide = true;
			} else if (this.options.alwaysHide && ((el.offsetHeight > 0 && this.options.height) || el.offsetWidth > 0 && this.options.width)){
				hide = true;
				this.selfHidden = true;
			}
			this.fireEvent(hide ? 'background' : 'active', [this.togglers[i], el]);
			for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];
		}, this);
		this.internalChain.chain(function(){
			if (this.options.returnHeightToAuto && !this.selfHidden){
				var el = this.elements[index];
				if (el) el.setStyle('height', 'auto');
			};
		}.bind(this));
		return useFx ? this.start(obj) : this.set(obj);
	}

});

/*
	Compatibility with 1.2.0
*/
var Accordion = new Class({

	Extends: Fx.Accordion,

	initialize: function(){
		this.parent.apply(this, arguments);
		var params = Array.link(arguments, {'container': Element.type});
		this.container = params.container;
	},

	addSection: function(toggler, element, pos){
		toggler = document.id(toggler);
		element = document.id(element);
		var test = this.togglers.contains(toggler);
		var len = this.togglers.length;
		if (len && (!test || pos)){
			pos = $pick(pos, len - 1);
			toggler.inject(this.togglers[pos], 'before');
			element.inject(toggler, 'after');
		} else if (this.container && !test){
			toggler.inject(this.container);
			element.inject(this.container);
		}
		return this.parent.apply(this, arguments);
	}

});

/*
---

script: Fx.Move.js

description: Defines Fx.Move, a class that works with Element.Position.js to transition an element from one location to another.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Fx.Morph
- /Element.Position

provides: [Fx.Move]

...
*/

Fx.Move = new Class({

	Extends: Fx.Morph,

	options: {
		relativeTo: document.body,
		position: 'center',
		edge: false,
		offset: {x: 0, y: 0}
	},

	start: function(destination){
		return this.parent(this.element.position($merge(this.options, destination, {returnPos: true})));
	}

});

Element.Properties.move = {

	set: function(options){
		var morph = this.retrieve('move');
		if (morph) morph.cancel();
		return this.eliminate('move').store('move:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('move')){
			if (options || !this.retrieve('move:options')) this.set('move', options);
			this.store('move', new Fx.Move(this, this.retrieve('move:options')));
		}
		return this.retrieve('move');
	}

};

Element.implement({

	move: function(options){
		this.get('move').start(options);
		return this;
	}

});


/*
---

script: Fx.Reveal.js

description: Defines Fx.Reveal, a class that shows and hides elements with a transition.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Fx.Morph
- /Element.Shortcuts
- /Element.Measure

provides: [Fx.Reveal]

...
*/

Fx.Reveal = new Class({

	Extends: Fx.Morph,

	options: {/*	  
		onShow: $empty(thisElement),
		onHide: $empty(thisElement),
		onComplete: $empty(thisElement),
		heightOverride: null,
		widthOverride: null, */
		link: 'cancel',
		styles: ['padding', 'border', 'margin'],
		transitionOpacity: !Browser.Engine.trident4,
		mode: 'vertical',
		display: 'block',
		hideInputs: Browser.Engine.trident ? 'select, input, textarea, object, embed' : false
	},

	dissolve: function(){
		try {
			if (!this.hiding && !this.showing){
				if (this.element.getStyle('display') != 'none'){
					this.hiding = true;
					this.showing = false;
					this.hidden = true;
					this.cssText = this.element.style.cssText;
					var startStyles = this.element.getComputedSize({
						styles: this.options.styles,
						mode: this.options.mode
					});
					this.element.setStyle('display', this.options.display);
					if (this.options.transitionOpacity) startStyles.opacity = 1;
					var zero = {};
					$each(startStyles, function(style, name){
						zero[name] = [style, 0];
					}, this);
					this.element.setStyle('overflow', 'hidden');
					var hideThese = this.options.hideInputs ? this.element.getElements(this.options.hideInputs) : null;
					this.$chain.unshift(function(){
						if (this.hidden){
							this.hiding = false;
							$each(startStyles, function(style, name){
								startStyles[name] = style;
							}, this);
							this.element.style.cssText = this.cssText;
							this.element.setStyle('display', 'none');
							if (hideThese) hideThese.setStyle('visibility', 'visible');
						}
						this.fireEvent('hide', this.element);
						this.callChain();
					}.bind(this));
					if (hideThese) hideThese.setStyle('visibility', 'hidden');
					this.start(zero);
				} else {
					this.callChain.delay(10, this);
					this.fireEvent('complete', this.element);
					this.fireEvent('hide', this.element);
				}
			} else if (this.options.link == 'chain'){
				this.chain(this.dissolve.bind(this));
			} else if (this.options.link == 'cancel' && !this.hiding){
				this.cancel();
				this.dissolve();
			}
		} catch(e){
			this.hiding = false;
			this.element.setStyle('display', 'none');
			this.callChain.delay(10, this);
			this.fireEvent('complete', this.element);
			this.fireEvent('hide', this.element);
		}
		return this;
	},

	reveal: function(){
		try {
			if (!this.showing && !this.hiding){
				if (this.element.getStyle('display') == 'none' ||
					 this.element.getStyle('visiblity') == 'hidden' ||
					 this.element.getStyle('opacity') == 0){
					this.showing = true;
					this.hiding = this.hidden =  false;
					var startStyles;
					this.cssText = this.element.style.cssText;
					//toggle display, but hide it
					this.element.measure(function(){
						//create the styles for the opened/visible state
						startStyles = this.element.getComputedSize({
							styles: this.options.styles,
							mode: this.options.mode
						});
					}.bind(this));
					$each(startStyles, function(style, name){
						startStyles[name] = style;
					});
					//if we're overridding height/width
					if ($chk(this.options.heightOverride)) startStyles.height = this.options.heightOverride.toInt();
					if ($chk(this.options.widthOverride)) startStyles.width = this.options.widthOverride.toInt();
					if (this.options.transitionOpacity) {
						this.element.setStyle('opacity', 0);
						startStyles.opacity = 1;
					}
					//create the zero state for the beginning of the transition
					var zero = {
						height: 0,
						display: this.options.display
					};
					$each(startStyles, function(style, name){ zero[name] = 0; });
					//set to zero
					this.element.setStyles($merge(zero, {overflow: 'hidden'}));
					//hide inputs
					var hideThese = this.options.hideInputs ? this.element.getElements(this.options.hideInputs) : null;
					if (hideThese) hideThese.setStyle('visibility', 'hidden');
					//start the effect
					this.start(startStyles);
					this.$chain.unshift(function(){
						this.element.style.cssText = this.cssText;
						this.element.setStyle('display', this.options.display);
						if (!this.hidden) this.showing = false;
						if (hideThese) hideThese.setStyle('visibility', 'visible');
						this.callChain();
						this.fireEvent('show', this.element);
					}.bind(this));
				} else {
					this.callChain();
					this.fireEvent('complete', this.element);
					this.fireEvent('show', this.element);
				}
			} else if (this.options.link == 'chain'){
				this.chain(this.reveal.bind(this));
			} else if (this.options.link == 'cancel' && !this.showing){
				this.cancel();
				this.reveal();
			}
		} catch(e){
			this.element.setStyles({
				display: this.options.display,
				visiblity: 'visible',
				opacity: 1
			});
			this.showing = false;
			this.callChain.delay(10, this);
			this.fireEvent('complete', this.element);
			this.fireEvent('show', this.element);
		}
		return this;
	},

	toggle: function(){
		if (this.element.getStyle('display') == 'none' ||
			 this.element.getStyle('visiblity') == 'hidden' ||
			 this.element.getStyle('opacity') == 0){
			this.reveal();
		} else {
			this.dissolve();
		}
		return this;
	},

	cancel: function(){
		this.parent.apply(this, arguments);
		this.element.style.cssText = this.cssText;
		this.hidding = false;
		this.showing = false;
	}

});

Element.Properties.reveal = {

	set: function(options){
		var reveal = this.retrieve('reveal');
		if (reveal) reveal.cancel();
		return this.eliminate('reveal').store('reveal:options', options);
	},

	get: function(options){
		if (options || !this.retrieve('reveal')){
			if (options || !this.retrieve('reveal:options')) this.set('reveal', options);
			this.store('reveal', new Fx.Reveal(this, this.retrieve('reveal:options')));
		}
		return this.retrieve('reveal');
	}

};

Element.Properties.dissolve = Element.Properties.reveal;

Element.implement({

	reveal: function(options){
		this.get('reveal', options).reveal();
		return this;
	},

	dissolve: function(options){
		this.get('reveal', options).dissolve();
		return this;
	},

	nix: function(){
		var params = Array.link(arguments, {destroy: Boolean.type, options: Object.type});
		this.get('reveal', params.options).dissolve().chain(function(){
			this[params.destroy ? 'destroy' : 'dispose']();
		}.bind(this));
		return this;
	},

	wink: function(){
		var params = Array.link(arguments, {duration: Number.type, options: Object.type});
		var reveal = this.get('reveal', params.options);
		reveal.reveal().chain(function(){
			(function(){
				reveal.dissolve();
			}).delay(params.duration || 2000);
		});
	}


});

/*
---

script: Fx.Scroll.js

description: Effect to smoothly scroll any element, including the window.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Fx
- core:1.2.4/Element.Event
- core:1.2.4/Element.Dimensions
- /MooTools.More

provides: [Fx.Scroll]

...
*/

Fx.Scroll = new Class({

	Extends: Fx,

	options: {
		offset: {x: 0, y: 0},
		wheelStops: true
	},

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
		var cancel = this.cancel.bind(this, false);

		if ($type(this.element) != 'element') this.element = document.id(this.element.getDocument().body);

		var stopper = this.element;

		if (this.options.wheelStops){
			this.addEvent('start', function(){
				stopper.addEvent('mousewheel', cancel);
			}, true);
			this.addEvent('complete', function(){
				stopper.removeEvent('mousewheel', cancel);
			}, true);
		}
	},

	set: function(){
		var now = Array.flatten(arguments);
		if (Browser.Engine.gecko) now = [Math.round(now[0]), Math.round(now[1])];
		this.element.scrollTo(now[0], now[1]);
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(x, y){
		if (!this.check(x, y)) return this;
		var scrollSize = this.element.getScrollSize(),
			scroll = this.element.getScroll(), 
			values = {x: x, y: y};
		for (var z in values){
			var max = scrollSize[z];
			if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? values[z] : max;
			else values[z] = scroll[z];
			values[z] += this.options.offset[z];
		}
		return this.parent([scroll.x, scroll.y], [values.x, values.y]);
	},

	toTop: function(){
		return this.start(false, 0);
	},

	toLeft: function(){
		return this.start(0, false);
	},

	toRight: function(){
		return this.start('right', false);
	},

	toBottom: function(){
		return this.start(false, 'bottom');
	},

	toElement: function(el){
		var position = document.id(el).getPosition(this.element);
		return this.start(position.x, position.y);
	},

	scrollIntoView: function(el, axes, offset){
		axes = axes ? $splat(axes) : ['x','y'];
		var to = {};
		el = document.id(el);
		var pos = el.getPosition(this.element);
		var size = el.getSize();
		var scroll = this.element.getScroll();
		var containerSize = this.element.getSize();
		var edge = {
			x: pos.x + size.x,
			y: pos.y + size.y
		};
		['x','y'].each(function(axis) {
			if (axes.contains(axis)) {
				if (edge[axis] > scroll[axis] + containerSize[axis]) to[axis] = edge[axis] - containerSize[axis];
				if (pos[axis] < scroll[axis]) to[axis] = pos[axis];
			}
			if (to[axis] == null) to[axis] = scroll[axis];
			if (offset && offset[axis]) to[axis] = to[axis] + offset[axis];
		}, this);
		if (to.x != scroll.x || to.y != scroll.y) this.start(to.x, to.y);
		return this;
	},

	scrollToCenter: function(el, axes, offset){
		axes = axes ? $splat(axes) : ['x', 'y'];
		el = $(el);
		var to = {},
			pos = el.getPosition(this.element),
			size = el.getSize(),
			scroll = this.element.getScroll(),
			containerSize = this.element.getSize(),
			edge = {
				x: pos.x + size.x,
				y: pos.y + size.y
			};

		['x','y'].each(function(axis){
			if(axes.contains(axis)){
				to[axis] = pos[axis] - (containerSize[axis] - size[axis])/2;
			}
			if(to[axis] == null) to[axis] = scroll[axis];
			if(offset && offset[axis]) to[axis] = to[axis] + offset[axis];
		}, this);
		if (to.x != scroll.x || to.y != scroll.y) this.start(to.x, to.y);
		return this;
	}

});


/*
---

script: Fx.Slide.js

description: Effect to slide an element in and out of view.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Fx Element.Style
- /MooTools.More

provides: [Fx.Slide]

...
*/

Fx.Slide = new Class({

	Extends: Fx,

	options: {
		mode: 'vertical',
		wrapper: false,
		hideOverflow: true
	},

	initialize: function(element, options){
		this.addEvent('complete', function(){
			this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);
			if (this.open) this.wrapper.setStyle('height', '');
			if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);
		}, true);
		this.element = this.subject = document.id(element);
		this.parent(options);
		var wrapper = this.element.retrieve('wrapper');
		var styles = this.element.getStyles('margin', 'position', 'overflow');
		if (this.options.hideOverflow) styles = $extend(styles, {overflow: 'hidden'});
		if (this.options.wrapper) wrapper = document.id(this.options.wrapper).setStyles(styles);
		this.wrapper = wrapper || new Element('div', {
			styles: styles
		}).wraps(this.element);
		this.element.store('wrapper', this.wrapper).setStyle('margin', 0);
		this.now = [];
		this.open = true;
	},

	vertical: function(){
		this.margin = 'margin-top';
		this.layout = 'height';
		this.offset = this.element.offsetHeight;
	},

	horizontal: function(){
		this.margin = 'margin-left';
		this.layout = 'width';
		this.offset = this.element.offsetWidth;
	},

	set: function(now){
		this.element.setStyle(this.margin, now[0]);
		this.wrapper.setStyle(this.layout, now[1]);
		return this;
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(how, mode){
		if (!this.check(how, mode)) return this;
		this[mode || this.options.mode]();
		var margin = this.element.getStyle(this.margin).toInt();
		var layout = this.wrapper.getStyle(this.layout).toInt();
		var caseIn = [[margin, layout], [0, this.offset]];
		var caseOut = [[margin, layout], [-this.offset, 0]];
		var start;
		switch (how){
			case 'in': start = caseIn; break;
			case 'out': start = caseOut; break;
			case 'toggle': start = (layout == 0) ? caseIn : caseOut;
		}
		return this.parent(start[0], start[1]);
	},

	slideIn: function(mode){
		return this.start('in', mode);
	},

	slideOut: function(mode){
		return this.start('out', mode);
	},

	hide: function(mode){
		this[mode || this.options.mode]();
		this.open = false;
		return this.set([-this.offset, 0]);
	},

	show: function(mode){
		this[mode || this.options.mode]();
		this.open = true;
		return this.set([0, this.offset]);
	},

	toggle: function(mode){
		return this.start('toggle', mode);
	}

});

Element.Properties.slide = {

	set: function(options){
		var slide = this.retrieve('slide');
		if (slide) slide.cancel();
		return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('slide')){
			if (options || !this.retrieve('slide:options')) this.set('slide', options);
			this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));
		}
		return this.retrieve('slide');
	}

};

Element.implement({

	slide: function(how, mode){
		how = how || 'toggle';
		var slide = this.get('slide'), toggle;
		switch (how){
			case 'hide': slide.hide(mode); break;
			case 'show': slide.show(mode); break;
			case 'toggle':
				var flag = this.retrieve('slide:flag', slide.open);
				slide[flag ? 'slideOut' : 'slideIn'](mode);
				this.store('slide:flag', !flag);
				toggle = true;
			break;
			default: slide.start(how, mode);
		}
		if (!toggle) this.eliminate('slide:flag');
		return this;
	}

});


/*
---

script: Fx.SmoothScroll.js

description: Class for creating a smooth scrolling effect to all internal links on the page.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Selectors
- /Fx.Scroll

provides: [Fx.SmoothScroll]

...
*/

var SmoothScroll = Fx.SmoothScroll = new Class({

	Extends: Fx.Scroll,

	initialize: function(options, context){
		context = context || document;
		this.doc = context.getDocument();
		var win = context.getWindow();
		this.parent(this.doc, options);
		this.links = $$(this.options.links || this.doc.links);
		var location = win.location.href.match(/^[^#]*/)[0] + '#';
		this.links.each(function(link){
			if (link.href.indexOf(location) != 0) {return;}
			var anchor = link.href.substr(location.length);
			if (anchor) this.useLink(link, anchor);
		}, this);
		if (!Browser.Engine.webkit419) {
			this.addEvent('complete', function(){
				win.location.hash = this.anchor;
			}, true);
		}
	},

	useLink: function(link, anchor){
		var el;
		link.addEvent('click', function(event){
			if (el !== false && !el) el = document.id(anchor) || this.doc.getElement('a[name=' + anchor + ']');
			if (el) {
				event.preventDefault();
				this.anchor = anchor;
				this.toElement(el).chain(function(){
					this.fireEvent('scrolledTo', [link, el]);
				}.bind(this));
				link.blur();
			}
		}.bind(this));
	}
});

/*
---

script: Fx.Sort.js

description: Defines Fx.Sort, a class that reorders lists with a transition.

license: MIT-style license

authors:
- Aaron Newton

requires:
- core:1.2.4/Element.Dimensions
- /Fx.Elements
- /Element.Measure

provides: [Fx.Sort]

...
*/

Fx.Sort = new Class({

	Extends: Fx.Elements,

	options: {
		mode: 'vertical'
	},

	initialize: function(elements, options){
		this.parent(elements, options);
		this.elements.each(function(el){
			if (el.getStyle('position') == 'static') el.setStyle('position', 'relative');
		});
		this.setDefaultOrder();
	},

	setDefaultOrder: function(){
		this.currentOrder = this.elements.map(function(el, index){
			return index;
		});
	},

	sort: function(newOrder){
		if ($type(newOrder) != 'array') return false;
		var top = 0,
			left = 0,
			next = {},
			zero = {},
			vert = this.options.mode == 'vertical';
		var current = this.elements.map(function(el, index){
			var size = el.getComputedSize({styles: ['border', 'padding', 'margin']});
			var val;
			if (vert){
				val = {
					top: top,
					margin: size['margin-top'],
					height: size.totalHeight
				};
				top += val.height - size['margin-top'];
			} else {
				val = {
					left: left,
					margin: size['margin-left'],
					width: size.totalWidth
				};
				left += val.width;
			}
			var plain = vert ? 'top' : 'left';
			zero[index] = {};
			var start = el.getStyle(plain).toInt();
			zero[index][plain] = start || 0;
			return val;
		}, this);
		this.set(zero);
		newOrder = newOrder.map(function(i){ return i.toInt(); });
		if (newOrder.length != this.elements.length){
			this.currentOrder.each(function(index){
				if (!newOrder.contains(index)) newOrder.push(index);
			});
			if (newOrder.length > this.elements.length)
				newOrder.splice(this.elements.length-1, newOrder.length - this.elements.length);
		}
		var margin = top = left = 0;
		newOrder.each(function(item, index){
			var newPos = {};
			if (vert){
				newPos.top = top - current[item].top - margin;
				top += current[item].height;
			} else {
				newPos.left = left - current[item].left;
				left += current[item].width;
			}
			margin = margin + current[item].margin;
			next[item]=newPos;
		}, this);
		var mapped = {};
		$A(newOrder).sort().each(function(index){
			mapped[index] = next[index];
		});
		this.start(mapped);
		this.currentOrder = newOrder;
		return this;
	},

	rearrangeDOM: function(newOrder){
		newOrder = newOrder || this.currentOrder;
		var parent = this.elements[0].getParent();
		var rearranged = [];
		this.elements.setStyle('opacity', 0);
		//move each element and store the new default order
		newOrder.each(function(index){
			rearranged.push(this.elements[index].inject(parent).setStyles({
				top: 0,
				left: 0
			}));
		}, this);
		this.elements.setStyle('opacity', 1);
		this.elements = $$(rearranged);
		this.setDefaultOrder();
		return this;
	},

	getDefaultOrder: function(){
		return this.elements.map(function(el, index){
			return index;
		});
	},

	forward: function(){
		return this.sort(this.getDefaultOrder());
	},

	backward: function(){
		return this.sort(this.getDefaultOrder().reverse());
	},

	reverse: function(){
		return this.sort(this.currentOrder.reverse());
	},

	sortByElements: function(elements){
		return this.sort(elements.map(function(el){
			return this.elements.indexOf(el);
		}, this));
	},

	swap: function(one, two){
		if ($type(one) == 'element') one = this.elements.indexOf(one);
		if ($type(two) == 'element') two = this.elements.indexOf(two);
		
		var newOrder = $A(this.currentOrder);
		newOrder[this.currentOrder.indexOf(one)] = two;
		newOrder[this.currentOrder.indexOf(two)] = one;
		return this.sort(newOrder);
	}

});

/*
---

script: Drag.js

description: The base Drag Class. Can be used to drag and resize Elements using mouse events.

license: MIT-style license

authors:
- Valerio Proietti
- Tom Occhinno
- Jan Kassens

requires:
- core:1.2.4/Events
- core:1.2.4/Options
- core:1.2.4/Element.Event
- core:1.2.4/Element.Style
- /MooTools.More

provides: [Drag]

*/

var Drag = new Class({

	Implements: [Events, Options],

	options: {/*
		onBeforeStart: $empty(thisElement),
		onStart: $empty(thisElement, event),
		onSnap: $empty(thisElement)
		onDrag: $empty(thisElement, event),
		onCancel: $empty(thisElement),
		onComplete: $empty(thisElement, event),*/
		snap: 6,
		unit: 'px',
		grid: false,
		style: true,
		limit: false,
		handle: false,
		invert: false,
		preventDefault: false,
		stopPropagation: false,
		modifiers: {x: 'left', y: 'top'}
	},

	initialize: function(){
		var params = Array.link(arguments, {'options': Object.type, 'element': $defined});
		this.element = document.id(params.element);
		this.document = this.element.getDocument();
		this.setOptions(params.options || {});
		var htype = $type(this.options.handle);
		this.handles = ((htype == 'array' || htype == 'collection') ? $$(this.options.handle) : document.id(this.options.handle)) || this.element;
		this.mouse = {'now': {}, 'pos': {}};
		this.value = {'start': {}, 'now': {}};

		this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown';

		this.bound = {
			start: this.start.bind(this),
			check: this.check.bind(this),
			drag: this.drag.bind(this),
			stop: this.stop.bind(this),
			cancel: this.cancel.bind(this),
			eventStop: $lambda(false)
		};
		this.attach();
	},

	attach: function(){
		this.handles.addEvent('mousedown', this.bound.start);
		return this;
	},

	detach: function(){
		this.handles.removeEvent('mousedown', this.bound.start);
		return this;
	},

	start: function(event){
		if (event.rightClick) return;
		if (this.options.preventDefault) event.preventDefault();
		if (this.options.stopPropagation) event.stopPropagation();
		this.mouse.start = event.page;
		this.fireEvent('beforeStart', this.element);
		var limit = this.options.limit;
		this.limit = {x: [], y: []};
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			if (this.options.style) this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();
			else this.value.now[z] = this.element[this.options.modifiers[z]];
			if (this.options.invert) this.value.now[z] *= -1;
			this.mouse.pos[z] = event.page[z] - this.value.now[z];
			if (limit && limit[z]){
				for (var i = 2; i--; i){
					if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])();
				}
			}
		}
		if ($type(this.options.grid) == 'number') this.options.grid = {x: this.options.grid, y: this.options.grid};
		this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel});
		this.document.addEvent(this.selection, this.bound.eventStop);
	},

	check: function(event){
		if (this.options.preventDefault) event.preventDefault();
		var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
		if (distance > this.options.snap){
			this.cancel();
			this.document.addEvents({
				mousemove: this.bound.drag,
				mouseup: this.bound.stop
			});
			this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element);
		}
	},

	drag: function(event){
		if (this.options.preventDefault) event.preventDefault();
		this.mouse.now = event.page;
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];
			if (this.options.invert) this.value.now[z] *= -1;
			if (this.options.limit && this.limit[z]){
				if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){
					this.value.now[z] = this.limit[z][1];
				} else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){
					this.value.now[z] = this.limit[z][0];
				}
			}
			if (this.options.grid[z]) this.value.now[z] -= ((this.value.now[z] - (this.limit[z][0]||0)) % this.options.grid[z]);
			if (this.options.style) {
				this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);
			} else {
				this.element[this.options.modifiers[z]] = this.value.now[z];
			}
		}
		this.fireEvent('drag', [this.element, event]);
	},

	cancel: function(event){
		this.document.removeEvent('mousemove', this.bound.check);
		this.document.removeEvent('mouseup', this.bound.cancel);
		if (event){
			this.document.removeEvent(this.selection, this.bound.eventStop);
			this.fireEvent('cancel', this.element);
		}
	},

	stop: function(event){
		this.document.removeEvent(this.selection, this.bound.eventStop);
		this.document.removeEvent('mousemove', this.bound.drag);
		this.document.removeEvent('mouseup', this.bound.stop);
		if (event) this.fireEvent('complete', [this.element, event]);
	}

});

Element.implement({

	makeResizable: function(options){
		var drag = new Drag(this, $merge({modifiers: {x: 'width', y: 'height'}}, options));
		this.store('resizer', drag);
		return drag.addEvent('drag', function(){
			this.fireEvent('resize', drag);
		}.bind(this));
	}

});


/*
---

script: Drag.Move.js

description: A Drag extension that provides support for the constraining of draggables to containers and droppables.

license: MIT-style license

authors:
- Valerio Proietti
- Tom Occhinno
- Jan Kassens
- Aaron Newton
- Scott Kyle

requires:
- core:1.2.4/Element.Dimensions
- /Drag

provides: [Drag.Move]

...
*/

Drag.Move = new Class({

	Extends: Drag,

	options: {/*
		onEnter: $empty(thisElement, overed),
		onLeave: $empty(thisElement, overed),
		onDrop: $empty(thisElement, overed, event),*/
		droppables: [],
		container: false,
		precalculate: false,
		includeMargins: true,
		checkDroppables: true
	},

	initialize: function(element, options){
		this.parent(element, options);
		element = this.element;
		
		this.droppables = $$(this.options.droppables);
		this.container = document.id(this.options.container);
		
		if (this.container && $type(this.container) != 'element')
			this.container = document.id(this.container.getDocument().body);
		
		var styles = element.getStyles('left', 'top', 'position');
		if (styles.left == 'auto' || styles.top == 'auto')
			element.setPosition(element.getPosition(element.getOffsetParent()));
		
		if (styles.position == 'static')
			element.setStyle('position', 'absolute');

		this.addEvent('start', this.checkDroppables, true);

		this.overed = null;
	},

	start: function(event){
		if (this.container) this.options.limit = this.calculateLimit();
		
		if (this.options.precalculate){
			this.positions = this.droppables.map(function(el){
				return el.getCoordinates();
			});
		}
		
		this.parent(event);
	},
	
	calculateLimit: function(){
		var offsetParent = this.element.getOffsetParent(),
			containerCoordinates = this.container.getCoordinates(offsetParent),
			containerBorder = {},
			elementMargin = {},
			elementBorder = {},
			containerMargin = {},
			offsetParentPadding = {};

		['top', 'right', 'bottom', 'left'].each(function(pad){
			containerBorder[pad] = this.container.getStyle('border-' + pad).toInt();
			elementBorder[pad] = this.element.getStyle('border-' + pad).toInt();
			elementMargin[pad] = this.element.getStyle('margin-' + pad).toInt();
			containerMargin[pad] = this.container.getStyle('margin-' + pad).toInt();
			offsetParentPadding[pad] = offsetParent.getStyle('padding-' + pad).toInt();
		}, this);

		var width = this.element.offsetWidth + elementMargin.left + elementMargin.right,
			height = this.element.offsetHeight + elementMargin.top + elementMargin.bottom,
			left = 0,
			top = 0,
			right = containerCoordinates.right - containerBorder.right - width,
			bottom = containerCoordinates.bottom - containerBorder.bottom - height;

		if (this.options.includeMargins){
			left += elementMargin.left;
			top += elementMargin.top;
		} else {
			right += elementMargin.right;
			bottom += elementMargin.bottom;
		}
		
		if (this.element.getStyle('position') == 'relative'){
			var coords = this.element.getCoordinates(offsetParent);
			coords.left -= this.element.getStyle('left').toInt();
			coords.top -= this.element.getStyle('top').toInt();
			
			left += containerBorder.left - coords.left;
			top += containerBorder.top - coords.top;
			right += elementMargin.left - coords.left;
			bottom += elementMargin.top - coords.top;
			
			if (this.container != offsetParent){
				left += containerMargin.left + offsetParentPadding.left;
				top += (Browser.Engine.trident4 ? 0 : containerMargin.top) + offsetParentPadding.top;
			}
		} else {
			left -= elementMargin.left;
			top -= elementMargin.top;
			
			if (this.container == offsetParent){
				right -= containerBorder.left;
				bottom -= containerBorder.top;
			} else {
				left += containerCoordinates.left + containerBorder.left;
				top += containerCoordinates.top + containerBorder.top;
			}
		}
		
		return {
			x: [left, right],
			y: [top, bottom]
		};
	},

	checkAgainst: function(el, i){
		el = (this.positions) ? this.positions[i] : el.getCoordinates();
		var now = this.mouse.now;
		return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top);
	},

	checkDroppables: function(){
		var overed = this.droppables.filter(this.checkAgainst, this).getLast();
		if (this.overed != overed){
			if (this.overed) this.fireEvent('leave', [this.element, this.overed]);
			if (overed) this.fireEvent('enter', [this.element, overed]);
			this.overed = overed;
		}
	},

	drag: function(event){
		this.parent(event);
		if (this.options.checkDroppables && this.droppables.length) this.checkDroppables();
	},

	stop: function(event){
		this.checkDroppables();
		this.fireEvent('drop', [this.element, this.overed, event]);
		this.overed = null;
		return this.parent(event);
	}

});

Element.implement({

	makeDraggable: function(options){
		var drag = new Drag.Move(this, options);
		this.store('dragger', drag);
		return drag;
	}

});


/*
---

script: Slider.js

description: Class for creating horizontal and vertical slider controls.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Element.Dimensions
- /Class.Binds
- /Drag
- /Element.Dimensions
- /Element.Measure

provides: [Slider]

...
*/

var Slider = new Class({

	Implements: [Events, Options],

	Binds: ['clickedElement', 'draggedKnob', 'scrolledElement'],

	options: {/*
		onTick: $empty(intPosition),
		onChange: $empty(intStep),
		onComplete: $empty(strStep),*/
		onTick: function(position){
			if (this.options.snap) position = this.toPosition(this.step);
			this.knob.setStyle(this.property, position);
		},
		initialStep: 0,
		snap: false,
		offset: 0,
		range: false,
		wheel: false,
		steps: 100,
		mode: 'horizontal'
	},

	initialize: function(element, knob, options){
		this.setOptions(options);
		this.element = document.id(element);
		this.knob = document.id(knob);
		this.previousChange = this.previousEnd = this.step = -1;
		var offset, limit = {}, modifiers = {'x': false, 'y': false};
		switch (this.options.mode){
			case 'vertical':
				this.axis = 'y';
				this.property = 'top';
				offset = 'offsetHeight';
				break;
			case 'horizontal':
				this.axis = 'x';
				this.property = 'left';
				offset = 'offsetWidth';
		}
		
		this.full = this.element.measure(function(){ 
			this.half = this.knob[offset] / 2; 
			return this.element[offset] - this.knob[offset] + (this.options.offset * 2); 
		}.bind(this));
		
		this.min = $chk(this.options.range[0]) ? this.options.range[0] : 0;
		this.max = $chk(this.options.range[1]) ? this.options.range[1] : this.options.steps;
		this.range = this.max - this.min;
		this.steps = this.options.steps || this.full;
		this.stepSize = Math.abs(this.range) / this.steps;
		this.stepWidth = this.stepSize * this.full / Math.abs(this.range) ;

		this.knob.setStyle('position', 'relative').setStyle(this.property, this.options.initialStep ? this.toPosition(this.options.initialStep) : - this.options.offset);
		modifiers[this.axis] = this.property;
		limit[this.axis] = [- this.options.offset, this.full - this.options.offset];

		var dragOptions = {
			snap: 0,
			limit: limit,
			modifiers: modifiers,
			onDrag: this.draggedKnob,
			onStart: this.draggedKnob,
			onBeforeStart: (function(){
				this.isDragging = true;
			}).bind(this),
			onCancel: function() {
				this.isDragging = false;
			}.bind(this),
			onComplete: function(){
				this.isDragging = false;
				this.draggedKnob();
				this.end();
			}.bind(this)
		};
		if (this.options.snap){
			dragOptions.grid = Math.ceil(this.stepWidth);
			dragOptions.limit[this.axis][1] = this.full;
		}

		this.drag = new Drag(this.knob, dragOptions);
		this.attach();
	},

	attach: function(){
		this.element.addEvent('mousedown', this.clickedElement);
		if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement);
		this.drag.attach();
		return this;
	},

	detach: function(){
		this.element.removeEvent('mousedown', this.clickedElement);
		this.element.removeEvent('mousewheel', this.scrolledElement);
		this.drag.detach();
		return this;
	},

	set: function(step){
		if (!((this.range > 0) ^ (step < this.min))) step = this.min;
		if (!((this.range > 0) ^ (step > this.max))) step = this.max;

		this.step = Math.round(step);
		this.checkStep();
		this.fireEvent('tick', this.toPosition(this.step));
		this.end();
		return this;
	},

	clickedElement: function(event){
		if (this.isDragging || event.target == this.knob) return;

		var dir = this.range < 0 ? -1 : 1;
		var position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;
		position = position.limit(-this.options.offset, this.full -this.options.offset);

		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
		this.fireEvent('tick', position);
		this.end();
	},

	scrolledElement: function(event){
		var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);
		this.set(mode ? this.step - this.stepSize : this.step + this.stepSize);
		event.stop();
	},

	draggedKnob: function(){
		var dir = this.range < 0 ? -1 : 1;
		var position = this.drag.value.now[this.axis];
		position = position.limit(-this.options.offset, this.full -this.options.offset);
		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
	},

	checkStep: function(){
		if (this.previousChange != this.step){
			this.previousChange = this.step;
			this.fireEvent('change', this.step);
		}
	},

	end: function(){
		if (this.previousEnd !== this.step){
			this.previousEnd = this.step;
			this.fireEvent('complete', this.step + '');
		}
	},

	toStep: function(position){
		var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;
		return this.options.steps ? Math.round(step -= step % this.stepSize) : step;
	},

	toPosition: function(step){
		return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;
	}

});

/*
---

script: Sortables.js

description: Class for creating a drag and drop sorting interface for lists of items.

license: MIT-style license

authors:
- Tom Occhino

requires:
- /Drag.Move

provides: [Slider]

...
*/

var Sortables = new Class({

	Implements: [Events, Options],

	options: {/*
		onSort: $empty(element, clone),
		onStart: $empty(element, clone),
		onComplete: $empty(element),*/
		snap: 4,
		opacity: 1,
		clone: false,
		revert: false,
		handle: false,
		constrain: false
	},

	initialize: function(lists, options){
		this.setOptions(options);
		this.elements = [];
		this.lists = [];
		this.idle = true;

		this.addLists($$(document.id(lists) || lists));
		if (!this.options.clone) this.options.revert = false;
		if (this.options.revert) this.effect = new Fx.Morph(null, $merge({duration: 250, link: 'cancel'}, this.options.revert));
	},

	attach: function(){
		this.addLists(this.lists);
		return this;
	},

	detach: function(){
		this.lists = this.removeLists(this.lists);
		return this;
	},

	addItems: function(){
		Array.flatten(arguments).each(function(element){
			this.elements.push(element);
			var start = element.retrieve('sortables:start', this.start.bindWithEvent(this, element));
			(this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start);
		}, this);
		return this;
	},

	addLists: function(){
		Array.flatten(arguments).each(function(list){
			this.lists.push(list);
			this.addItems(list.getChildren());
		}, this);
		return this;
	},

	removeItems: function(){
		return $$(Array.flatten(arguments).map(function(element){
			this.elements.erase(element);
			var start = element.retrieve('sortables:start');
			(this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start);
			
			return element;
		}, this));
	},

	removeLists: function(){
		return $$(Array.flatten(arguments).map(function(list){
			this.lists.erase(list);
			this.removeItems(list.getChildren());
			
			return list;
		}, this));
	},

	getClone: function(event, element){
		if (!this.options.clone) return new Element('div').inject(document.body);
		if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);
		var clone = element.clone(true).setStyles({
			margin: '0px',
			position: 'absolute',
			visibility: 'hidden',
			'width': element.getStyle('width')
		});
		//prevent the duplicated radio inputs from unchecking the real one
		if (clone.get('html').test('radio')) {
			clone.getElements('input[type=radio]').each(function(input, i) {
				input.set('name', 'clone_' + i);
			});
		}
		
		return clone.inject(this.list).setPosition(element.getPosition(element.getOffsetParent()));
	},

	getDroppables: function(){
		var droppables = this.list.getChildren();
		if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list);
		return droppables.erase(this.clone).erase(this.element);
	},

	insert: function(dragging, element){
		var where = 'inside';
		if (this.lists.contains(element)){
			this.list = element;
			this.drag.droppables = this.getDroppables();
		} else {
			where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';
		}
		this.element.inject(element, where);
		this.fireEvent('sort', [this.element, this.clone]);
	},

	start: function(event, element){
		if (!this.idle) return;
		this.idle = false;
		this.element = element;
		this.opacity = element.get('opacity');
		this.list = element.getParent();
		this.clone = this.getClone(event, element);

		this.drag = new Drag.Move(this.clone, {
			snap: this.options.snap,
			container: this.options.constrain && this.element.getParent(),
			droppables: this.getDroppables(),
			onSnap: function(){
				event.stop();
				this.clone.setStyle('visibility', 'visible');
				this.element.set('opacity', this.options.opacity || 0);
				this.fireEvent('start', [this.element, this.clone]);
			}.bind(this),
			onEnter: this.insert.bind(this),
			onCancel: this.reset.bind(this),
			onComplete: this.end.bind(this)
		});

		this.clone.inject(this.element, 'before');
		this.drag.start(event);
	},

	end: function(){
		this.drag.detach();
		this.element.set('opacity', this.opacity);
		if (this.effect){
			var dim = this.element.getStyles('width', 'height');
			var pos = this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));
			this.effect.element = this.clone;
			this.effect.start({
				top: pos.top,
				left: pos.left,
				width: dim.width,
				height: dim.height,
				opacity: 0.25
			}).chain(this.reset.bind(this));
		} else {
			this.reset();
		}
	},

	reset: function(){
		this.idle = true;
		this.clone.destroy();
		this.fireEvent('complete', this.element);
	},

	serialize: function(){
		var params = Array.link(arguments, {modifier: Function.type, index: $defined});
		var serial = this.lists.map(function(list){
			return list.getChildren().map(params.modifier || function(element){
				return element.get('id');
			}, this);
		}, this);

		var index = params.index;
		if (this.lists.length == 1) index = 0;
		return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial;
	}

});


/*
---

script: Assets.js

description: Provides methods to dynamically load JavaScript, CSS, and Image files into the document.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Element.Event
- /MooTools.More

provides: [Assets]

...
*/

var Asset = {

	javascript: function(source, properties){
		properties = $extend({
			onload: $empty,
			document: document,
			check: $lambda(true)
		}, properties);
		
		if (properties.onLoad) properties.onload = properties.onLoad;
		
		var script = new Element('script', {src: source, type: 'text/javascript'});

		var load = properties.onload.bind(script), 
			check = properties.check, 
			doc = properties.document;
		delete properties.onload;
		delete properties.check;
		delete properties.document;

		script.addEvents({
			load: load,
			readystatechange: function(){
				if (['loaded', 'complete'].contains(this.readyState)) load();
			}
		}).set(properties);

		if (Browser.Engine.webkit419) var checker = (function(){
			if (!$try(check)) return;
			$clear(checker);
			load();
		}).periodical(50);

		return script.inject(doc.head);
	},

	css: function(source, properties){
		return new Element('link', $merge({
			rel: 'stylesheet',
			media: 'screen',
			type: 'text/css',
			href: source
		}, properties)).inject(document.head);
	},

	image: function(source, properties){
		properties = $merge({
			onload: $empty,
			onabort: $empty,
			onerror: $empty
		}, properties);
		var image = new Image();
		var element = document.id(image) || new Element('img');
		['load', 'abort', 'error'].each(function(name){
			var type = 'on' + name;
			var cap = name.capitalize();
			if (properties['on' + cap]) properties[type] = properties['on' + cap];
			var event = properties[type];
			delete properties[type];
			image[type] = function(){
				if (!image) return;
				if (!element.parentNode){
					element.width = image.width;
					element.height = image.height;
				}
				image = image.onload = image.onabort = image.onerror = null;
				event.delay(1, element, element);
				element.fireEvent(name, element, 1);
			};
		});
		image.src = element.src = source;
		if (image && image.complete) image.onload.delay(1);
		return element.set(properties);
	},

	images: function(sources, options){
		options = $merge({
			onComplete: $empty,
			onProgress: $empty,
			onError: $empty,
			properties: {}
		}, options);
		sources = $splat(sources);
		var images = [];
		var counter = 0;
		return new Elements(sources.map(function(source){
			return Asset.image(source, $extend(options.properties, {
				onload: function(){
					options.onProgress.call(this, counter, sources.indexOf(source));
					counter++;
					if (counter == sources.length) options.onComplete();
				},
				onerror: function(){
					options.onError.call(this, counter, sources.indexOf(source));
					counter++;
					if (counter == sources.length) options.onComplete();
				}
			}));
		}));
	}

};

/*
---

script: Hash.Cookie.js

description: Class for creating, reading, and deleting Cookies in JSON format.

license: MIT-style license

authors:
- Valerio Proietti
- Aaron Newton

requires:
- core:1.2.4/Cookie
- core:1.2.4/JSON
- /MooTools.More

provides: [Hash.Cookie]

...
*/

Hash.Cookie = new Class({

	Extends: Cookie,

	options: {
		autoSave: true
	},

	initialize: function(name, options){
		this.parent(name, options);
		this.load();
	},

	save: function(){
		var value = JSON.encode(this.hash);
		if (!value || value.length > 4096) return false; //cookie would be truncated!
		if (value == '{}') this.dispose();
		else this.write(value);
		return true;
	},

	load: function(){
		this.hash = new Hash(JSON.decode(this.read(), true));
		return this;
	}

});

Hash.each(Hash.prototype, function(method, name){
	if (typeof method == 'function') Hash.Cookie.implement(name, function(){
		var value = method.apply(this.hash, arguments);
		if (this.options.autoSave) this.save();
		return value;
	});
});

/*
---

script: Keyboard.js

description: KeyboardEvents used to intercept events on a class for keyboard and format modifiers in a specific order so as to make alt+shift+c the same as shift+alt+c.

license: MIT-style license

authors:
- Perrin Westrich
- Aaron Newton
- Scott Kyle

requires:
- core:1.2.4/Events
- core:1.2.4/Options
- core:1.2.4/Element.Event
- /Log

provides: [Keyboard]

...
*/

(function(){
	
	var Keyboard = this.Keyboard = new Class({

		Extends: Events,

		Implements: [Options, Log],

		options: {
			/*
			onActivate: $empty,
			onDeactivate: $empty,
			*/
			defaultEventType: 'keydown',
			active: false,
			events: {},
			nonParsedEvents: ['activate', 'deactivate', 'onactivate', 'ondeactivate', 'changed', 'onchanged']
		},

		initialize: function(options){
			this.setOptions(options);
			this.setup();
		}, 
		setup: function(){
			this.addEvents(this.options.events);
			//if this is the root manager, nothing manages it
			if (Keyboard.manager && !this.manager) Keyboard.manager.manage(this);
			if (this.options.active) this.activate();
		},

		handle: function(event, type){
			//Keyboard.stop(event) prevents key propagation
			if (event.preventKeyboardPropagation) return;
			
			var bubbles = !!this.manager;
			if (bubbles && this.activeKB){
				this.activeKB.handle(event, type);
				if (event.preventKeyboardPropagation) return;
			}
			this.fireEvent(type, event);
			
			if (!bubbles && this.activeKB) this.activeKB.handle(event, type);
		},

		addEvent: function(type, fn, internal){
			return this.parent(Keyboard.parse(type, this.options.defaultEventType, this.options.nonParsedEvents), fn, internal);
		},

		removeEvent: function(type, fn){
			return this.parent(Keyboard.parse(type, this.options.defaultEventType, this.options.nonParsedEvents), fn);
		},

		toggleActive: function(){
			return this[this.active ? 'deactivate' : 'activate']();
		},

		activate: function(instance){
			if (instance) {
				//if we're stealing focus, store the last keyboard to have it so the relenquish command works
				if (instance != this.activeKB) this.previous = this.activeKB;
				//if we're enabling a child, assign it so that events are now passed to it
				this.activeKB = instance.fireEvent('activate');
				Keyboard.manager.fireEvent('changed');
			} else if (this.manager) {
				//else we're enabling ourselves, we must ask our parent to do it for us
				this.manager.activate(this);
			}
			return this;
		},

		deactivate: function(instance){
			if (instance) {
				if(instance === this.activeKB) {
					this.activeKB = null;
					instance.fireEvent('deactivate');
					Keyboard.manager.fireEvent('changed');
				}
			}
			else if (this.manager) {
				this.manager.deactivate(this);
			}
			return this;
		},

		relenquish: function(){
			if (this.previous) this.activate(this.previous);
		},

		//management logic
		manage: function(instance){
			if (instance.manager) instance.manager.drop(instance);
			this.instances.push(instance);
			instance.manager = this;
			if (!this.activeKB) this.activate(instance);
			else this._disable(instance);
		},

		_disable: function(instance){
			if (this.activeKB == instance) this.activeKB = null;
		},

		drop: function(instance){
			this._disable(instance);
			this.instances.erase(instance);
		},

		instances: [],

		trace: function(){
			Keyboard.trace(this);
		},

		each: function(fn){
			Keyboard.each(this, fn);
		}

	});
	
	var parsed = {};
	var modifiers = ['shift', 'control', 'alt', 'meta'];
	var regex = /^(?:shift|control|ctrl|alt|meta)$/;
	
	Keyboard.parse = function(type, eventType, ignore){
		if (ignore && ignore.contains(type.toLowerCase())) return type;
		
		type = type.toLowerCase().replace(/^(keyup|keydown):/, function($0, $1){
			eventType = $1;
			return '';
		});

		if (!parsed[type]){
			var key, mods = {};
			type.split('+').each(function(part){
				if (regex.test(part)) mods[part] = true;
				else key = part;
			});

			mods.control = mods.control || mods.ctrl; // allow both control and ctrl
			
			var keys = [];
			modifiers.each(function(mod){
				if (mods[mod]) keys.push(mod);
			});
			
			if (key) keys.push(key);
			parsed[type] = keys.join('+');
		}

		return eventType + ':' + parsed[type];
	};

	Keyboard.each = function(keyboard, fn){
		var current = keyboard || Keyboard.manager;
		while (current){
			fn.run(current);
			current = current.activeKB;
		}
	};

	Keyboard.stop = function(event){
		event.preventKeyboardPropagation = true;
	};

	Keyboard.manager = new Keyboard({
		active: true
	});
	
	Keyboard.trace = function(keyboard){
		keyboard = keyboard || Keyboard.manager;
		keyboard.enableLog();
		keyboard.log('the following items have focus: ');
		Keyboard.each(keyboard, function(current){
			keyboard.log(document.id(current.widget) || current.wiget || current);
		});
	};
	
	var handler = function(event){
		var keys = [];
		modifiers.each(function(mod){
			if (event[mod]) keys.push(mod);
		});
		
		if (!regex.test(event.key)) keys.push(event.key);
		Keyboard.manager.handle(event, event.type + ':' + keys.join('+'));
	};
	
	document.addEvents({
		'keyup': handler,
		'keydown': handler
	});

	Event.Keys.extend({
		'shift': 16,
		'control': 17,
		'alt': 18,
		'capslock': 20,
		'pageup': 33,
		'pagedown': 34,
		'end': 35,
		'home': 36,
		'numlock': 144,
		'scrolllock': 145,
		';': 186,
		'=': 187,
		',': 188,
		'-': Browser.Engine.Gecko ? 109 : 189,
		'.': 190,
		'/': 191,
		'`': 192,
		'[': 219,
		'\\': 220,
		']': 221,
		"'": 222
	});

})();


/*
---

script: Keyboard.js

description: Enhances Keyboard by adding the ability to name and describe keyboard shortcuts, and the ability to grab shortcuts by name and bind the shortcut to different keys.

license: MIT-style license

authors:
- Perrin Westrich

requires:
- core:1.2.4/Function
- /Keyboard.Extras

provides: [Keyboard.Extras]

...
*/
Keyboard.prototype.options.nonParsedEvents.combine(['rebound', 'onrebound']);

Keyboard.implement({

	/*
		shortcut should be in the format of:
		{
			'keys': 'shift+s', // the default to add as an event.
			'description': 'blah blah blah', // a brief description of the functionality.
			'handler': function(){} // the event handler to run when keys are pressed.
		}
	*/
	addShortcut: function(name, shortcut) {
		this.shortcuts = this.shortcuts || [];
		this.shortcutIndex = this.shortcutIndex || {};
		
		shortcut.getKeyboard = $lambda(this);
		shortcut.name = name;
		this.shortcutIndex[name] = shortcut;
		this.shortcuts.push(shortcut);
		if(shortcut.keys) this.addEvent(shortcut.keys, shortcut.handler);
		return this;
	},

	addShortcuts: function(obj){
		for(var name in obj) this.addShortcut(name, obj[name]);
		return this;
	},

	getShortcuts: function(){
		return this.shortcuts || [];
	},

	getShortcut: function(name){
		return (this.shortcutIndex || {})[name];
	}

});

Keyboard.rebind = function(newKeys, shortcuts){
	$splat(shortcuts).each(function(shortcut){
		shortcut.getKeyboard().removeEvent(shortcut.keys, shortcut.handler);
		shortcut.getKeyboard().addEvent(newKeys, shortcut.handler);
		shortcut.keys = newKeys;
		shortcut.getKeyboard().fireEvent('rebound');
	});
};


Keyboard.getActiveShortcuts = function(keyboard) {
	var activeKBS = [], activeSCS = [];
	Keyboard.each(keyboard, [].push.bind(activeKBS));
	activeKBS.each(function(kb){ activeSCS.extend(kb.getShortcuts()); });
	return activeSCS;
};

Keyboard.getShortcut = function(name, keyboard, opts){
	opts = opts || {};
	var shortcuts = opts.many ? [] : null,
		set = opts.many ? function(kb){
				var shortcut = kb.getShortcut(name);
				if(shortcut) shortcuts.push(shortcut);
			} : function(kb) { 
				if(!shortcuts) shortcuts = kb.getShortcut(name);
			};
	Keyboard.each(keyboard, set);
	return shortcuts;
};

Keyboard.getShortcuts = function(name, keyboard) {
	return Keyboard.getShortcut(name, keyboard, { many: true });
};


/*
---

script: Scroller.js

description: Class which scrolls the contents of any Element (including the window) when the mouse reaches the Element's boundaries.

license: MIT-style license

authors:
- Valerio Proietti

requires:
- core:1.2.4/Events
- core:1.2.4/Options
- core:1.2.4/Element.Event
- core:1.2.4/Element.Dimensions

provides: [Scroller]

...
*/

var Scroller = new Class({

	Implements: [Events, Options],

	options: {
		area: 20,
		velocity: 1,
		onChange: function(x, y){
			this.element.scrollTo(x, y);
		},
		fps: 50
	},

	initialize: function(element, options){
		this.setOptions(options);
		this.element = document.id(element);
		this.docBody = document.id(this.element.getDocument().body);
		this.listener = ($type(this.element) != 'element') ?  this.docBody : this.element;
		this.timer = null;
		this.bound = {
			attach: this.attach.bind(this),
			detach: this.detach.bind(this),
			getCoords: this.getCoords.bind(this)
		};
	},

	start: function(){
		this.listener.addEvents({
			mouseover: this.bound.attach,
			mouseout: this.bound.detach
		});
	},

	stop: function(){
		this.listener.removeEvents({
			mouseover: this.bound.attach,
			mouseout: this.bound.detach
		});
		this.detach();
		this.timer = $clear(this.timer);
	},

	attach: function(){
		this.listener.addEvent('mousemove', this.bound.getCoords);
	},

	detach: function(){
		this.listener.removeEvent('mousemove', this.bound.getCoords);
		this.timer = $clear(this.timer);
	},

	getCoords: function(event){
		this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;
		if (!this.timer) this.timer = this.scroll.periodical(Math.round(1000 / this.options.fps), this);
	},

	scroll: function(){
		var size = this.element.getSize(), 
			scroll = this.element.getScroll(), 
			pos = this.element != this.docBody ? this.element.getOffsets() : {x: 0, y:0}, 
			scrollSize = this.element.getScrollSize(), 
			change = {x: 0, y: 0};
		for (var z in this.page){
			if (this.page[z] < (this.options.area + pos[z]) && scroll[z] != 0) {
				change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;
			} else if (this.page[z] + this.options.area > (size[z] + pos[z]) && scroll[z] + size[z] != scrollSize[z]) {
				change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;
			}
		}
		if (change.y || change.x) this.fireEvent('change', [scroll.x + change.x, scroll.y + change.y]);
	}

});

/*
---

script: Tips.js

description: Class for creating nice tips that follow the mouse cursor when hovering an element.

license: MIT-style license

authors:
- Valerio Proietti
- Christoph Pojer

requires:
- core:1.2.4/Options
- core:1.2.4/Events
- core:1.2.4/Element.Event
- core:1.2.4/Element.Style
- core:1.2.4/Element.Dimensions
- /MooTools.More

provides: [Tips]

...
*/

(function(){

var read = function(option, element){
	return (option) ? ($type(option) == 'function' ? option(element) : element.get(option)) : '';
};

this.Tips = new Class({

	Implements: [Events, Options],

	options: {
		/*
		onAttach: $empty(element),
		onDetach: $empty(element),
		*/
		onShow: function(){
			this.tip.setStyle('display', 'block');
		},
		onHide: function(){
			this.tip.setStyle('display', 'none');
		},
		title: 'title',
		text: function(element){
			return element.get('rel') || element.get('href');
		},
		showDelay: 100,
		hideDelay: 100,
		className: 'tip-wrap',
		offset: {x: 16, y: 16},
		windowPadding: {x:0, y:0},
		fixed: false
	},

	initialize: function(){
		var params = Array.link(arguments, {options: Object.type, elements: $defined});
		this.setOptions(params.options);
		if (params.elements) this.attach(params.elements);
		this.container = new Element('div', {'class': 'tip'});
	},

	toElement: function(){
		if (this.tip) return this.tip;

		return this.tip = new Element('div', {
			'class': this.options.className,
			styles: {
				position: 'absolute',
				top: 0,
				left: 0
			}
		}).adopt(
			new Element('div', {'class': 'tip-top'}),
			this.container,
			new Element('div', {'class': 'tip-bottom'})
		).inject(document.body);
	},

	attach: function(elements){
		$$(elements).each(function(element){
			var title = read(this.options.title, element),
				text = read(this.options.text, element);
			
			element.erase('title').store('tip:native', title).retrieve('tip:title', title);
			element.retrieve('tip:text', text);
			this.fireEvent('attach', [element]);
			
			var events = ['enter', 'leave'];
			if (!this.options.fixed) events.push('move');
			
			events.each(function(value){
				var event = element.retrieve('tip:' + value);
				if (!event) event = this['element' + value.capitalize()].bindWithEvent(this, element);
				
				element.store('tip:' + value, event).addEvent('mouse' + value, event);
			}, this);
		}, this);
		
		return this;
	},

	detach: function(elements){
		$$(elements).each(function(element){
			['enter', 'leave', 'move'].each(function(value){
				element.removeEvent('mouse' + value, element.retrieve('tip:' + value)).eliminate('tip:' + value);
			});
			
			this.fireEvent('detach', [element]);
			
			if (this.options.title == 'title'){ // This is necessary to check if we can revert the title
				var original = element.retrieve('tip:native');
				if (original) element.set('title', original);
			}
		}, this);
		
		return this;
	},

	elementEnter: function(event, element){
		this.container.empty();
		
		['title', 'text'].each(function(value){
			var content = element.retrieve('tip:' + value);
			if (content) this.fill(new Element('div', {'class': 'tip-' + value}).inject(this.container), content);
		}, this);
		
		$clear(this.timer);
		this.timer = (function(){
			this.show(this, element);
			this.position((this.options.fixed) ? {page: element.getPosition()} : event);
		}).delay(this.options.showDelay, this);
	},

	elementLeave: function(event, element){
		$clear(this.timer);
		this.timer = this.hide.delay(this.options.hideDelay, this, element);
		this.fireForParent(event, element);
	},

	fireForParent: function(event, element){
		element = element.getParent();
		if (!element || element == document.body) return;
		if (element.retrieve('tip:enter')) element.fireEvent('mouseenter', event);
		else this.fireForParent(event, element);
	},

	elementMove: function(event, element){
		this.position(event);
	},

	position: function(event){
		if (!this.tip) document.id(this);

		var size = window.getSize(), scroll = window.getScroll(),
			tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight},
			props = {x: 'left', y: 'top'},
			obj = {};
		
		for (var z in props){
			obj[props[z]] = event.page[z] + this.options.offset[z];
			if ((obj[props[z]] + tip[z] - scroll[z]) > size[z] - this.options.windowPadding[z]) obj[props[z]] = event.page[z] - this.options.offset[z] - tip[z];
		}
		
		this.tip.setStyles(obj);
	},

	fill: function(element, contents){
		if(typeof contents == 'string') element.set('html', contents);
		else element.adopt(contents);
	},

	show: function(element){
		if (!this.tip) document.id(this);
		this.fireEvent('show', [this.tip, element]);
	},

	hide: function(element){
		if (!this.tip) document.id(this);
		this.fireEvent('hide', [this.tip, element]);
	}

});

})();

/*
---

script: Date.English.US.js

description: Date messages for US English.

license: MIT-style license

authors:
- Aaron Newton

requires:
- /Lang
- /Date

provides: [Date.English.US]

...
*/

MooTools.lang.set('en-US', 'Date', {

	months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
	//culture's date order: MM/DD/YYYY
	dateOrder: ['month', 'date', 'year'],
	shortDate: '%m/%d/%Y',
	shortTime: '%I:%M%p',
	AM: 'AM',
	PM: 'PM',

	/* Date.Extras */
	ordinal: function(dayOfMonth){
		//1st, 2nd, 3rd, etc.
		return (dayOfMonth > 3 && dayOfMonth < 21) ? 'th' : ['th', 'st', 'nd', 'rd', 'th'][Math.min(dayOfMonth % 10, 4)];
	},

	lessThanMinuteAgo: 'less than a minute ago',
	minuteAgo: 'about a minute ago',
	minutesAgo: '{delta} minutes ago',
	hourAgo: 'about an hour ago',
	hoursAgo: 'about {delta} hours ago',
	dayAgo: '1 day ago',
	daysAgo: '{delta} days ago',
	weekAgo: '1 week ago',
	weeksAgo: '{delta} weeks ago',
	monthAgo: '1 month ago',
	monthsAgo: '{delta} months ago',
	yearAgo: '1 year ago',
	yearsAgo: '{delta} years ago',
	lessThanMinuteUntil: 'less than a minute from now',
	minuteUntil: 'about a minute from now',
	minutesUntil: '{delta} minutes from now',
	hourUntil: 'about an hour from now',
	hoursUntil: 'about {delta} hours from now',
	dayUntil: '1 day from now',
	daysUntil: '{delta} days from now',
	weekUntil: '1 week from now',
	weeksUntil: '{delta} weeks from now',
	monthUntil: '1 month from now',
	monthsUntil: '{delta} months from now',
	yearUntil: '1 year from now',
	yearsUntil: '{delta} years from now'

});

var noobSlide=new Class({initialize:function(a){this.items=a.items;this.mode=a.mode||'horizontal';this.modes={horizontal:['left','width'],vertical:['top','height']};this.size=a.size||240;this.box=a.box.setStyle(this.modes[this.mode][1],(this.size*this.items.length)+'px');this.button_event=a.button_event||'click';this.handle_event=a.handle_event||'click';this.onWalk=a.onWalk||null;this.currentIndex=null;this.previousIndex=null;this.nextIndex=null;this.interval=a.interval||5000;this.autoPlay=a.autoPlay||false;this._play=null;this.handles=a.handles||null;if(this.handles){this.addHandleButtons(this.handles)}this.buttons={previous:[],next:[],play:[],playback:[],stop:[]};if(a.addButtons){for(var b in a.addButtons){this.addActionButtons(b,$type(a.addButtons[b])=='array'?a.addButtons[b]:[a.addButtons[b]])}}this.fx=new Fx.Tween(this.box,$extend((a.fxOptions||{duration:1000,wait:false}),{property:this.modes[this.mode][0]}));this.walk((a.startItem||0),true,true)},addHandleButtons:function(a){for(var i=0;i<a.length;i++){a[i].addEvent(this.handle_event,this.walk.bind(this,[i,true]))}},addActionButtons:function(a,b){for(var i=0;i<b.length;i++){switch(a){case'previous':b[i].addEvent(this.button_event,this.previous.bind(this,[true]));break;case'next':b[i].addEvent(this.button_event,this.next.bind(this,[true]));break;case'play':b[i].addEvent(this.button_event,this.play.bind(this,[this.interval,'next',false]));break;case'playback':b[i].addEvent(this.button_event,this.play.bind(this,[this.interval,'previous',false]));break;case'stop':b[i].addEvent(this.button_event,this.stop.bind(this));break}this.buttons[a].push(b[i])}},previous:function(a){this.walk((this.currentIndex>0?this.currentIndex-1:this.items.length-1),a)},next:function(a){this.walk((this.currentIndex<this.items.length-1?this.currentIndex+1:0),a)},play:function(a,b,c){this.stop();if(!c){this[b](false)}this._play=this[b].periodical(a,this,[false])},stop:function(){$clear(this._play)},walk:function(a,b,c){if(a!=this.currentIndex){this.currentIndex=a;this.previousIndex=this.currentIndex+(this.currentIndex>0?-1:this.items.length-1);this.nextIndex=this.currentIndex+(this.currentIndex<this.items.length-1?1:1-this.items.length);if(b){this.stop()}if(c){this.fx.cancel().set((this.size*-this.currentIndex)+'px')}else{this.fx.start(this.size*-this.currentIndex)}if(b&&this.autoPlay){this.play(this.interval,'next',true)}if(this.onWalk){this.onWalk((this.items[this.currentIndex]||null),(this.handles&&this.handles[this.currentIndex]?this.handles[this.currentIndex]:null))}}}});
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
/*File: AC_QuickTime.jsAbstract: This file contains functions to generate OBJECT and EMBED tags for QuickTime content.Version: <1.1>Disclaimer: IMPORTANT:  This Apple software is supplied to you by AppleComputer, Inc. ("Apple") in consideration of your agreement to thefollowing terms, and your use, installation, modification orredistribution of this Apple software constitutes acceptance of theseterms.  If you do not agree with these terms, please do not use,install, modify or redistribute this Apple software.In consideration of your agreement to abide by the following terms, andsubject to these terms, Apple grants you a personal, non-exclusivelicense, under Apple's copyrights in this original Apple software (the"Apple Software"), to use, reproduce, modify and redistribute the AppleSoftware, with or without modifications, in source and/or binary forms;provided that if you redistribute the Apple Software in its entirety andwithout modifications, you must retain this notice and the followingtext and disclaimers in all such redistributions of the Apple Software. Neither the name, trademarks, service marks or logos of Apple Computer,Inc. may be used to endorse or promote products derived from the AppleSoftware without specific prior written permission from Apple.  Exceptas expressly stated in this notice, no other rights or licenses, expressor implied, are granted by Apple herein, including but not limited toany patent rights that may be infringed by your derivative works or byother works in which the Apple Software may be incorporated.The Apple Software is provided by Apple on an "AS IS" basis.  APPLEMAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATIONTHE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESSFOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE ANDOPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTALOR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSEDAND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.Copyright © 2006 Apple Computer, Inc., All Rights Reserved*/ /* * This file contains functions to generate OBJECT and EMBED tags for QuickTime content.  *//************** LOCALIZABLE GLOBAL VARIABLES ****************/var gArgCountErr =	'The "%%" function requires an even number of arguments.'				+	'\nArguments should be in the form "atttributeName", "attributeValue", ...';/******************** END LOCALIZABLE **********************/var gTagAttrs				= null;var gQTGeneratorVersion		= 1.0;function AC_QuickTimeVersion()	{ return gQTGeneratorVersion; }function _QTComplain(callingFcnName, errMsg){    errMsg = errMsg.replace("%%", callingFcnName);	alert(errMsg);}function _QTAddAttribute(prefix, slotName, tagName){	var		value;	value = gTagAttrs[prefix + slotName];	if ( null == value )		value = gTagAttrs[slotName];	if ( null != value )	{		if ( 0 == slotName.indexOf(prefix) && (null == tagName) )			tagName = slotName.substring(prefix.length); 		if ( null == tagName ) 			tagName = slotName;		return '' + tagName + '="' + value + '"';	}	else		return "";}function _QTAddObjectAttr(slotName, tagName){	// don't bother if it is only for the embed tag	if ( 0 == slotName.indexOf("emb#") )		return "";	if ( 0 == slotName.indexOf("obj#") && (null == tagName) )		tagName = slotName.substring(4); 	return _QTAddAttribute("obj#", slotName, tagName);}function _QTAddEmbedAttr(slotName, tagName){	// don't bother if it is only for the object tag	if ( 0 == slotName.indexOf("obj#") )		return "";	if ( 0 == slotName.indexOf("emb#") && (null == tagName) )		tagName = slotName.substring(4); 	return _QTAddAttribute("emb#", slotName, tagName);}function _QTAddObjectParam(slotName, generateXHTML){	var		paramValue;	var		paramStr = "";	var		endTagChar = (generateXHTML) ? ' />' : '>';	if ( -1 == slotName.indexOf("emb#") )	{		// look for the OBJECT-only param first. if there is none, look for a generic one		paramValue = gTagAttrs["obj#" + slotName];		if ( null == paramValue )			paramValue = gTagAttrs[slotName];		if ( 0 == slotName.indexOf("obj#") )			slotName = slotName.substring(4); 			if ( null != paramValue )			paramStr = '<param name="' + slotName + '" value="' + paramValue + '"' + endTagChar;	}	return paramStr;}function _QTDeleteTagAttrs(){	for ( var ndx = 0; ndx < arguments.length; ndx++ )	{		var attrName = arguments[ndx];		delete gTagAttrs[attrName];		delete gTagAttrs["emb#" + attrName];		delete gTagAttrs["obj#" + attrName];	}}		// generate an embed and object tag, return as a stringfunction _QTGenerate(callingFcnName, generateXHTML, args){	// is the number of optional arguments even?	if ( args.length < 4 || (0 != (args.length % 2)) )	{		_QTComplain(callingFcnName, gArgCountErr);		return "";	}		// allocate an array, fill in the required attributes with fixed place params and defaults	gTagAttrs = new Object();	gTagAttrs["src"] = args[0];	gTagAttrs["width"] = args[1];	gTagAttrs["height"] = args[2];	gTagAttrs["classid"] = "clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";		//Impportant note: It is recommended that you use this exact classid in order to ensure a seamless experience for all viewers	gTagAttrs["pluginspage"] = "http://www.apple.com/quicktime/download/";	// set up codebase attribute with specified or default version before parsing args so	//  anything passed in will override	var activexVers = args[3]	if ( (null == activexVers) || ("" == activexVers) )		activexVers = "6,0,2,0";	gTagAttrs["codebase"] = "http://www.apple.com/qtactivex/qtplugin.cab#version=" + activexVers;	var	attrName,		attrValue;	// add all of the optional attributes to the array	for ( var ndx = 4; ndx < args.length; ndx += 2)	{		attrName = args[ndx].toLowerCase();		attrValue = args[ndx + 1];		// "name" and "id" should have the same value, the former goes in the embed and the later goes in		//  the object. use one array slot 		if ( "name" == attrName || "id" == attrName )			gTagAttrs["name"] = attrValue;		else 			gTagAttrs[attrName] = attrValue;	}	// init both tags with the required and "special" attributes	var objTag =  '<object '					+ _QTAddObjectAttr("classid")					+ _QTAddObjectAttr("width")					+ _QTAddObjectAttr("height")					+ _QTAddObjectAttr("codebase")					+ _QTAddObjectAttr("name", "id")					+ _QTAddObjectAttr("tabindex")					+ _QTAddObjectAttr("hspace")					+ _QTAddObjectAttr("vspace")					+ _QTAddObjectAttr("border")					+ _QTAddObjectAttr("align")					+ _QTAddObjectAttr("class")					+ _QTAddObjectAttr("title")					+ _QTAddObjectAttr("accesskey")					+ _QTAddObjectAttr("noexternaldata")					+ '>'					+ _QTAddObjectParam("src", generateXHTML);	var embedTag = '<embed '					+ _QTAddEmbedAttr("src")					+ _QTAddEmbedAttr("width")					+ _QTAddEmbedAttr("height")					+ _QTAddEmbedAttr("pluginspage")					+ _QTAddEmbedAttr("name")					+ _QTAddEmbedAttr("align")					+ _QTAddEmbedAttr("tabindex");	// delete the attributes/params we have already added	_QTDeleteTagAttrs("src","width","height","pluginspage","classid","codebase","name","tabindex",					"hspace","vspace","border","align","noexternaldata","class","title","accesskey");	// and finally, add all of the remaining attributes to the embed and object	for ( var attrName in gTagAttrs )	{		attrValue = gTagAttrs[attrName];		if ( null != attrValue )		{			embedTag += _QTAddEmbedAttr(attrName);			objTag += _QTAddObjectParam(attrName, generateXHTML);		}	} 	// end both tags, we're done	return objTag + embedTag + '></em' + 'bed></ob' + 'ject' + '>';}// return the object/embed as a stringfunction QT_GenerateOBJECTText(){	return _QTGenerate("QT_GenerateOBJECTText", false, arguments);}function QT_GenerateOBJECTText_XHTML(){	return _QTGenerate("QT_GenerateOBJECTText_XHTML", true, arguments);}function QT_WriteOBJECT(){	document.writeln(_QTGenerate("QT_WriteOBJECT", false, arguments));}function QT_WriteOBJECT_XHTML(){	document.writeln(_QTGenerate("QT_WriteOBJECT_XHTML", true, arguments));}
function loggi(myvar) {
  try{
    console.log(myvar);
  } catch(e){}
}

var Has = {
  Init: function() {
  
    $$('.swapInput').each(
    function(ele){
      ele.addEvent('blur', function(){
        if( ele.value == '' ) ele.value = ele.originalText;
      });
      ele.addEvent('focus', function(){
        if( typeof ele.originalText == 'undefined' ) ele.originalText = ele.value;
        if( ele.value == ele.originalText  ) ele.value = '';
      });
    }
    );
  
    $$('.topMenu a').each(
      function(link){
        if(link.hasClass('active') ) return;
        link.addEvents(
          {
            'mouseenter': function(){link.addClass('active'); },
            'mouseleave': function(){link.removeClass('active');}
          }
        );
      }
    );
    
/*
    $$('.boxThumb').each(
      function(ele){
        var img = ele.getElement('.boxImage img');
        img.addEvent('load',
          function(){

            var opacity = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.linear});
            opacity.start({
                'opacity': [0, 0.99]
                });
          }
        );
      }
    );
*/
    
    $$('.typeCb').each(
      function(ele){
        var parent = ele.getParent();
        if( ele.checked == true ) parent.addClass('active');
        ele.addEvent('click',
          function(event){
            
            var hideThumb = function(typeArray){
            
              $$('.boxThumb').each(
                function(t){
                  var classes = t.get('class').split(' ');
                  
                  var has1Class = classes.some(function(item, index){
                      return typeArray.contains(item);
                  },typeArray);
                                    
                  if( !has1Class ) t.addClass('hideThumb');
                  else t.removeClass('hideThumb');             
                }
              );
				      event.preventDefault();
            }
          
          
            ele.getParent().toggleClass('active');
                        
            var checkboxID = ele.get('id');
            var types = Cookie.read("typesActive");
            
            var typeArray = ( !$defined(types) )? new Array(): types.split('|');
                        
            typeArray.erase( checkboxID.toString() );
            if( parent.hasClass('active') ) {
              typeArray.push(checkboxID.toString());
            }
                
            typeArray.erase('');
                        
            hideThumb(typeArray);
     
            Cookie.write('typesActive', typeArray.join('|') );
            
          }.bind(ele)
        );
      }
    );
    
/*
    window.addEvent('scroll',
      function(){
        if( $('goTop') ){
          var myY = $('goTop').getPosition().y;
          if( !$defined( $('goTop').startPos ) ) $('goTop').startPos = myY;
          var scrollY = window.getScroll().y;
                          
          if( scrollY > $('goTop').startPos ){
            $('goTop').setStyle('top', scrollY - $('goTop').startPos);
          } else {
            $('goTop').setStyle('top', 0);
          }
        }
      }
    );
*/
    
    var scroll = new Fx.SmoothScroll({
        links: '.scrollTo',
        wheelStops: false,
        //delay: 1000,
        delay: 200,
        duration: 1300,
        onComplete:function(event){
          Has.setProjectContent();
        }
    }); 
       
    var scroll = new Fx.SmoothScroll({
        duration: 1500,
        links: '.goTop a',
        wheelStops: false
    });

    $$('.overText').each(
      function(ele){
        var parent = ele.getParent();
        parent.addEvents({
          'mouseenter':
            function(event){
              var height = ( parent.hasClass('boxThumb') )? '55':'90';
              if( $defined(ele.close) ) ele.close.cancel();
              ele.open = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.Sine.easeOut});
              ele.open.start({'height': height});           
            }.bind(ele),
          'mouseleave':
            function(event){
              var open = parent.getElement('.activeThumbDivOn');
              if(  !$defined(open) && $defined(ele.open) ) ele.open.cancel()
              ele.close = new Fx.Morph(ele, {duration: 500, transition: Fx.Transitions.Sine.easeOut});
              if( !$defined(open) ) ele.close.start({'height': 0});           
            }.bind(ele)
        });
      }
    );
    
    $$('.scrollTo').each(
      function(ele){
        ele.addEvent('click',
          function(){
            var rel = ele.get('rel');
            $('projects').set('rel', rel);
            
            $$('.activeThumbDivOn').each(function(ele){ 
              var parent = ele.getParent();
              parent.removeClass('thumbActive');            
              new Fx.Morph((ele), {duration: 1000}).start('.activeThumbDivOff');
              ele.removeClass('activeThumbDivOn');
            });
            
            var parent = ele.getParent();
            parent.addClass('thumbActive');
            var activeDiv = parent.getElement('.activeThumbDiv');
            //new Fx.Morph(activeDiv, {duration: 1000}).start('.activeThumbDivOn');
            new Fx.Morph(activeDiv, {duration: 0}).start('.activeThumbDivOn');
            activeDiv.addClass('activeThumbDivOn');
            

            $$('.scrollTo').each(function(ele_){ 
              var scrollTo_ = ele_.getParent();
              scrollTo_.fireEvent('mouseleave'); 
            });
            
          }.bind(ele)
        );
      }
    );
    
    
    $$('.gallery').each(
      function(ele){  
        
        var extra = ele.get('rel');
    		var handles = ele.getElements('.toolbar .paging span');
    		var thumbHandles = $$('#'+extra+'_extra div.relative');
    		    		
    		var ns = new noobSlide({

    			box: ele.getElement('.galleryCont'),
    			items: ele.getElements('.items'),
    			size: 660,
    			handles: ele.getElements('.toolbar .paging span'),
    			addButtons: {previous: ele.getElement('.btnLeft'), next: ele.getElement('.btnRight') },   			
    			onWalk: function(currentItem,currentHandle){
    		    handles.each(
    		      function(ele,index){
    		        if( this.currentIndex == index) ele.addClass('active');
    		        else ele.removeClass('active');
    		      }.bind(this)
    		    );
    		    thumbHandles.each(
    		      function(ele_,index_){
    		        if( this.currentIndex == index_) ele_.addClass('active');
    		        else ele_.removeClass('active');
    		      }.bind(this)
    		    );    				

    			}
    		});
    		ns.addHandleButtons(thumbHandles);     		
      }
    );  
    
    $$('.homeBox').each(
      function(ele){  
        
    		var handles = ele.getElements('.hbHandles');
    		var hg = new noobSlide({
    		  autoPlay: true,
    		  interval: 10000,  		
    			box: ele.getElement('.homeBoxLeft'),
    			items: ele.getElements('.leftBox'),
    			size: 539,
    		  handles: ele.getElements('.hbHandles'),
    			onWalk: function(currentItem,currentHandle){
    		    handles.each(
    		      function(ele,index){
    		        if( this.currentIndex == index) ele.addClass('active');
    		        else ele.removeClass('active');
    		      }.bind(this)
    		    );  				
    			}
    		});
      }
    );      

  },

  InitLoad: function() {

    if( $('projects') ){
    
      var href = window.location.href;
      var newHref = '';
      var hrefArray = href.split('&');
      var sep = '';
      hrefArray.each(
        function(token){
          if( !token.contains('type=')) newHref = newHref + sep + token;
          sep = '&';
        }
      );  
      
      var loadList  = function(){
        window.location = newHref + '&type=listView';
      };
      var loadThumb  = function(){
        window.location = newHref + '&type=thumbView';
      };
  
      
      var myKeyboardEvents = new Keyboard({
        defaultEventType: 'keyup', 
        events: { 
            'l': loadList,
            't': loadThumb
        }
      });
      myKeyboardEvents.activate();
    }

  },
  
  setProjectContent: function(){
    var nextID = $('projects').get('rel');
    var box = $(nextID);
    var oldID = $('projects').get('lang');
    
    if( nextID != oldID ){
      
      var newEles = $$('.'+nextID);
      
      $('projects').set('lang',nextID);  
          
      $('projects').getElements('.'+oldID).each(
        function(ele,index){        
          var newEle = newEles[index];  
          
          if( newEle.hasClass('gallery') ) {
            var images = newEle.getElements('.itemImg');   
            var items = newEle.getElements('.items');   
                        
            images.each(
              function(img,index){
                img.set('src', img.get('alt') );
                img.set('alt', '');
                img.removeClass('itemImg');
                img.addEvent('load',
                  function(){
                    var item = items[index];
                    var itemScroll = item.getSize();
                  },index
                );
              }
            );
            images.each(
              function(img){
                img.removeClass('hide');
              }
            );
            
            items.each(
              function(item){
                if( !$defined( item.getElement('.imgScroll') ) ) return;
                
                var img = item.getElement('.imgScroll');
                                
                var myDrag = new Drag(img, {
                snap: 0,
                limit: {'x':[0,0],'y':[ (img.get('lang') ).toInt() ,0]}
                });
                
                
/*
                var gotop = new Fx.Morph($('goTop'), {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut});
                out.start({'opacity': 1});
*/


                
                
/*
                var scroll = new Fx.Scroll(item, {
                wait: false,
	              offset: {'x': 0, 'y': 0},
                duration: 500,
                transition: Fx.Transitions.Quad.easeInOut
                });
                
                scroll.start(0,0);   
                             
                item.getElement('.scrollImage').addEvent('click', function(event) {
                  event = new Event(event).stop();
                                    
                  if( event.target.hasClass('pleaseTop') ) { 
                    scroll.toElement(item.getElement('.goBottomImage'));
                    event.target.removeClass('pleaseTop');
                  } else {
                    scroll.toElement(item.getElement('.goTopImage'));
                    event.target.addClass('pleaseTop');
                  }
                });
*/

              
              }
            );
            
          }
          
          
                    
          if( newEle.hasClass('marginTopThumbsGallery') ) {
            var images = newEle.getElements('img');   
            images.each(
              function(img){
                var src =img.get('alt');
                if( src != '' ) img.set('src', src );
                img.set('alt', '');
              }
            );
          }          
          var out = new Fx.Morph(ele, {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut,onComplete: function(){
            ele.addClass('hide');
            newEle.setStyle('opacity',0);
            newEle.removeClass('hide');
            var inn = new Fx.Morph(newEle, {duration: 500 * (index+1), transition: Fx.Transitions.Sine.easeOut,onComplete: function(){ }});
            inn.start({'opacity': 1});       
          }});
          
          out.start({'opacity': 0});
        }
      );
      
      
    }
  }
}



window.addEvent('load', Has.InitLoad);
window.addEvent('domready', Has.Init);



/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());
Cufon.registerFont({"w":163,"face":{"font-family":"Zag Normal","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 3 3 0 0 2 0 4","ascent":"288","descent":"-72","bbox":"-35 -315 283 77","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":99},"\u00de":{"d":"17,-252r0,48v73,-9,111,18,103,96v-5,48,-47,62,-103,56r0,51r-17,1r0,-252r17,0xm103,-148v0,-41,-43,-41,-86,-39r0,118v43,2,87,2,86,-39r0,-40","w":152,"k":{"X":22,"x":22,"a":19,"V":33,"W":33,"Y":41,"\u0178":41,"\u00dd":41,"y":41,"\u00fd":41,"\u00ff":41}},"\u00fe":{"d":"17,-40r0,81v0,3,-17,3,-17,0r0,-282v0,-2,17,-2,17,0r0,60v25,-43,91,-12,91,34r0,75v2,47,-65,77,-91,32xm17,-149v1,48,-11,114,37,114v49,0,36,-65,37,-112v0,-21,-16,-38,-37,-38v-19,0,-37,16,-37,36","w":142},"!":{"d":"3,-39r0,-210r17,0r0,210r-17,0xm0,-11v0,-7,6,-11,12,-11v6,0,12,4,12,11v0,15,-24,16,-24,0","w":59},"\"":{"d":"-1,-174r0,-75r17,0r0,75r-17,0xm31,-174r0,-75r17,0r0,75r-17,0","w":69},"#":{"d":"93,-159r-39,0v-6,28,-9,48,-14,77r39,0xm37,-65r-11,65r-18,0v3,-20,8,-46,12,-65r-34,0r0,-17r37,0r14,-77r-37,0r0,-17r40,0r14,-73r17,0r-13,73r37,0r14,-73r17,0r-13,73r35,0r0,17r-38,0v-5,25,-8,54,-15,77r40,0r0,17r-42,0r-13,65r-17,0r13,-65r-39,0","w":188},"%":{"d":"154,-249r19,0r-159,249r-19,0xm161,-55v1,-23,-11,-44,-29,-44v-19,0,-29,18,-29,40v0,23,10,42,28,43v19,1,29,-17,30,-39xm177,-56v0,31,-17,57,-46,57v-28,0,-44,-29,-44,-60v0,-31,15,-58,45,-57v27,1,45,28,45,60xm71,-186v1,-23,-11,-44,-29,-44v-19,0,-30,19,-30,40v0,23,11,42,29,43v19,1,29,-18,30,-39xm87,-186v0,31,-17,56,-46,56v-28,0,-45,-28,-45,-60v0,-31,16,-57,46,-57v27,0,45,29,45,61","w":216},"&":{"d":"55,-16v47,0,39,-59,39,-106v-53,-6,-77,9,-77,67v0,22,17,39,38,39xm111,-56v0,37,20,39,28,39r0,17v-19,0,-35,-10,-39,-28v-19,50,-100,29,-100,-27v0,-37,3,-62,30,-75v-45,-20,-36,-119,25,-119v19,0,36,12,47,27r-13,10v-23,-39,-82,-16,-70,36v-1,36,36,41,75,37r0,-17r17,0r0,17r24,0r0,17r-24,0r0,66","w":159,"k":{"7":4}},"'":{"d":"3,-170r0,-79r16,0r0,79r-16,0","w":57},"(":{"d":"58,7r-9,14v-66,-55,-68,-236,0,-291r10,13v-56,48,-58,216,-1,264","w":80,"k":{"7":4}},"*":{"d":"60,-127r-16,0r1,-49r-38,28r-9,-15r41,-22r-41,-22r9,-14r39,25r-2,-46r16,0r-1,46r39,-26r9,15r-41,21r41,23r-9,15r-40,-29","w":146},"+":{"d":"59,-129r42,0r0,17r-42,0r0,44r-17,0r0,-44r-42,0r0,-17r42,0r0,-44r17,0r0,44","w":135},",":{"d":"12,-21v21,3,3,31,-3,43r-10,-4r7,-18v-11,-4,-6,-22,6,-21","w":50,"k":{"7":7,"1":18}},"-":{"d":"0,-115r106,0r0,17r-106,0r0,-17","w":146,"k":{"7":14,"3":4,"1":11}},".":{"d":"10,-24v8,0,13,5,13,12v0,8,-5,13,-13,13v-7,0,-13,-5,-13,-13v0,-7,6,-12,13,-12","w":44,"k":{"7":7,"1":18}},"\/":{"d":"93,-259r-89,273r-17,0r89,-273r17,0","w":134,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"1":{"d":"-11,-249v17,2,47,-8,47,10r0,239r-17,0r0,-233r-30,0r0,-16","w":74},"2":{"d":"61,-249v44,0,61,36,61,92v0,34,-24,54,-59,54v-24,0,-47,12,-47,39r0,47r101,0r0,17r-108,0v-8,0,-9,-2,-9,-10r0,-54v0,-38,30,-56,63,-56v39,0,46,-31,43,-73v-4,-53,-91,-52,-90,3r-16,0v0,-39,30,-59,61,-59","w":158,"k":{"7":2,"4":5}},"3":{"d":"0,-57r17,0v-1,55,90,58,93,4v2,-40,-6,-69,-42,-70r0,-17v28,-1,45,-21,42,-53v-4,-54,-93,-51,-93,4r-17,0v-1,-79,123,-79,127,-4v2,32,-11,52,-38,61v33,9,40,38,38,79v-4,75,-128,75,-127,-4","w":161,"k":{"7":7,"5":2,"\/":4}},"4":{"d":"102,-249r16,0r0,249r-16,0r0,-97r-92,0v-7,0,-10,-4,-10,-10r0,-142r17,0r0,136r85,0r0,-136","w":153,"k":{"7":11,"1":7,"\/":7}},"5":{"d":"67,-147v44,1,54,41,54,93v0,38,-31,56,-63,56v-31,0,-61,-19,-61,-57r17,0v0,55,88,53,90,1v1,-39,0,-74,-37,-76v-23,-1,-60,9,-67,-10r0,-99v0,-6,6,-10,11,-10r97,0r0,17r-91,0r0,85r50,0","w":156,"k":{"7":11,"3":2,"2":4,"\/":7}},"6":{"d":"0,-54r0,-141v1,-59,76,-72,112,-35r-12,10v-26,-26,-84,-16,-84,25r0,60v29,-40,110,-25,109,32r0,49v0,37,-31,56,-62,56v-32,0,-63,-19,-63,-56xm109,-54r0,-49v0,-26,-22,-38,-46,-38v-24,0,-47,12,-47,39r0,48v1,52,92,52,93,0","w":160,"k":{"7":5,"3":4,"1":4,"\/":4}},"7":{"d":"16,0v1,-33,-2,-65,11,-87v28,-46,78,-68,73,-146r-108,0r0,-16r115,0v17,2,6,33,9,49v-13,79,-98,92,-83,200r-17,0","w":151,"k":{"\u00fa":7,"\u00f2":7,"\u00f3":7,"\u00f4":7,"\u00f5":7,"\u00f6":7,"0":7,"o":7,"g":7,"c":7,"6":7,"\u2014":11,"\u2013":11,"8":4,"5":9,"4":31,"3":7,"2":5,"1":-4,"\/":50,".":36,"-":11,",":36,"(":4,"&":4}},"8":{"d":"2,-177v0,-50,23,-76,62,-76v62,0,86,98,31,123v26,8,34,39,32,76v-3,75,-127,76,-127,0v0,-37,4,-65,32,-76v-19,-4,-30,-27,-30,-47xm109,-177v0,-38,-15,-60,-45,-59v-31,0,-46,20,-46,59v0,27,22,39,54,39v21,0,37,-18,37,-39xm110,-54v0,-47,-10,-72,-56,-68v-32,3,-37,31,-37,68v0,26,22,41,46,41v23,0,47,-15,47,-41","w":158,"k":{"7":4}},"<":{"d":"83,-51r-80,-48v-5,-3,-6,-11,0,-14v25,-14,56,-33,80,-48r0,20v-20,11,-46,24,-65,35v22,12,43,22,65,35r0,20","w":132},"=":{"d":"-1,-114r107,0r0,17r-107,0r0,-17xm-1,-158r107,0r0,17r-107,0r0,-17","w":151},"?":{"d":"41,-89v-3,-48,50,-44,50,-103v0,-21,-18,-38,-39,-38v-20,0,-38,19,-38,42r-17,-3v0,-72,112,-72,111,-1v12,60,-50,60,-50,103r0,52r-17,0r0,-52xm50,-23v5,0,12,5,12,13v0,15,-26,15,-25,0v0,-8,5,-13,13,-13","w":142},"@":{"d":"0,-52r0,-70v-1,-111,171,-119,171,-7r0,115v-4,33,-52,36,-51,-5v-28,36,-85,8,-85,-34r0,-65v-2,-42,59,-68,85,-32r0,-11r16,0r0,147v0,7,4,10,9,10v4,0,9,-3,9,-10r0,-115v-2,-89,-139,-81,-137,7r0,70v0,56,53,83,103,64r5,17v-61,19,-125,-11,-125,-81xm51,-118v1,43,-9,99,34,98v17,0,35,-8,35,-25v0,-44,15,-105,-35,-105v-18,0,-34,14,-34,32","w":209},"[":{"d":"0,-260v5,-16,39,-5,57,-8r0,16r-40,0r0,253r40,0r0,17v-18,-3,-52,8,-57,-8r0,-270","w":61},"^":{"d":"72,-212r-35,-26v-10,8,-25,18,-34,26r-11,-13r39,-29v22,-5,34,21,51,29","w":115},"_":{"d":"-1,-12r157,0r0,17r-157,0r0,-17","w":189},"`":{"d":"42,-291r27,48r-18,0r-27,-36","w":142},"{":{"d":"35,-160v-1,14,-5,29,-16,37v11,8,15,20,16,34v4,30,15,75,40,95r-8,15v-30,-24,-46,-74,-49,-108v-1,-14,-9,-29,-27,-29r0,-16v18,0,26,-15,27,-29v3,-35,17,-85,48,-108r9,13v-26,22,-37,66,-40,96","w":87},"|":{"d":"22,-275r0,314r-17,0r0,-314r17,0","w":61},"~":{"d":"14,-119v13,26,30,-5,47,-4v11,0,21,8,30,21r-13,9v-15,-29,-31,1,-49,2v-9,0,-20,-7,-29,-20","w":129},"\u2020":{"d":"60,-198r43,0r1,16r-44,0r0,182r-16,0r0,-182r-44,0r1,-16r43,0r0,-50r16,0r0,50","w":138},"\u00b0":{"d":"133,-188v0,37,-31,67,-67,67v-37,0,-67,-30,-67,-67v0,-36,30,-67,67,-67v36,0,67,31,67,67xm116,-188v0,-28,-22,-50,-50,-50v-27,0,-50,22,-50,50v0,28,23,50,50,50v28,0,50,-22,50,-50","w":169},"\u00a2":{"d":"0,-157v0,-38,34,-63,74,-53v16,-36,2,-42,30,-37v-4,13,-10,33,-15,45v15,10,23,26,23,48r-17,0v0,-24,-18,-41,-39,-41v-48,0,-39,60,-39,108v0,21,18,38,39,38v21,0,39,-19,39,-43r17,0v-1,39,-34,70,-74,57v-4,12,-8,24,-12,35r-16,-4r13,-39v-31,-20,-23,-67,-23,-114","w":144},"\u00a3":{"d":"124,0r-130,0r6,-17r19,0r0,-83r-19,0r0,-17r19,0r0,-78v0,-31,24,-54,55,-54v32,0,55,29,54,62r-16,0v1,-24,-15,-46,-38,-46v-51,0,-38,66,-39,116r48,0r0,17r-48,0r0,83r89,0r0,17","w":166,"k":{"4":5}},"\u00a7":{"d":"57,-128v-15,0,-30,-4,-39,-12v-18,49,51,32,75,57v8,-26,-12,-44,-36,-45xm93,-190v-20,-33,-72,-21,-73,18v0,20,17,27,37,27v38,0,66,40,47,77v21,68,-70,97,-105,42r14,-9v19,30,77,29,77,-14v0,-22,-18,-33,-37,-33v-41,-1,-66,-32,-47,-72v-20,-63,67,-102,101,-44","w":146,"k":{"7":5}},"\u2022":{"d":"108,-126v0,31,-26,55,-56,55v-31,0,-55,-24,-55,-55v0,-30,24,-55,55,-55v30,0,56,25,56,55xm91,-126v0,-22,-17,-39,-39,-39v-21,0,-38,17,-38,39v0,21,17,39,38,39v22,0,39,-18,39,-39","w":141},"\u00b6":{"d":"108,-236r0,236r-17,0r0,-101v-67,8,-97,-21,-91,-92v4,-45,44,-60,97,-54v7,0,11,5,11,11xm91,-230v-39,-3,-74,2,-75,37v-2,39,2,76,38,76r37,0r0,-113","w":142},"\u00df":{"d":"0,-196v0,-31,24,-52,56,-52v58,0,72,90,29,118v46,25,36,136,-30,131r-24,0r0,-16v48,6,68,-18,64,-69v-3,-31,-29,-42,-65,-38r0,-17v43,4,63,-10,63,-55v0,-21,-16,-37,-37,-37v-22,0,-39,13,-39,35r0,195r-17,0r0,-195","w":136},"\u00ae":{"d":"97,-204v43,-2,53,72,21,91v21,12,18,37,18,67r-16,0v2,-30,0,-59,-28,-58r-27,0r0,58r-16,0r0,-144v0,-20,29,-13,48,-14xm65,-189v0,2,-4,2,0,2r0,-2xm119,-145v5,-40,-19,-46,-54,-42r0,66v26,2,51,0,54,-24xm164,-155v0,-100,-147,-100,-147,0r0,62v0,51,36,76,73,76v37,0,74,-25,74,-76r0,-62xm181,-155r0,62v0,124,-181,124,-181,0r0,-62v0,-123,181,-123,181,0","w":220},"\u00a9":{"d":"162,-155v0,-50,-36,-75,-73,-75v-37,0,-74,25,-74,75r0,62v0,101,147,102,147,0r0,-62xm126,-94r17,0v0,32,-25,57,-54,57v-29,0,-54,-23,-54,-54r0,-66v0,-31,26,-53,54,-53v28,0,54,24,54,56r-17,0v0,-23,-17,-39,-37,-39v-45,-1,-37,57,-37,102v0,21,17,37,37,37v20,0,37,-18,37,-40xm179,-155r0,62v0,124,-181,124,-181,0r0,-62v0,-123,181,-123,181,0","w":218},"\u2122":{"d":"47,-232r0,112r-16,0r0,-112r-31,0r0,-17r79,0r0,17r-32,0xm103,-211r2,93r-17,0r0,-121v0,-13,12,-13,16,-5r41,84r40,-82v4,-8,17,-10,17,3r0,121r-17,0r3,-93r-35,69v-6,8,-12,8,-16,-1v-22,-47,-25,-51,-34,-68","w":249},"\u00b4":{"d":"16,-240r26,-44r21,9r-29,35r-18,0","w":106},"\u00a8":{"d":"28,-268v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm73,-268v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12","w":142},"\u00a5":{"d":"98,-99r-26,0r0,21r26,0r0,16r-26,0r0,62r-17,0r0,-62r-24,0r0,-16r24,0r0,-21r-24,0r0,-16r20,0r-56,-134r18,-1v18,42,36,87,51,129v15,-42,34,-88,52,-128r18,0r-57,134r21,0r0,16","w":167,"k":{"4":7}},"\u00aa":{"d":"89,-83v-40,28,-92,0,-92,-56v0,-46,57,-72,92,-42v7,-42,-37,-66,-65,-38r-10,-14v33,-32,92,-7,92,40r0,120r-17,0r0,-10xm14,-139v0,29,13,49,37,50v32,1,38,-22,38,-57v0,-20,-17,-31,-38,-31v-20,0,-37,17,-37,38xm109,-37r-104,0r0,-17r104,0r0,17","w":140},"\u0192":{"d":"103,-96r-38,0v2,53,-17,96,-65,97r0,-17v39,0,50,-40,48,-80r-35,0r0,-16r37,0r6,-79v4,-30,33,-55,63,-55r-1,17v-53,0,-47,67,-51,117r36,0r0,16","w":138,"k":{"5":4,"4":11,"1":-11}},"\u00a0":{"w":108},"\u2013":{"d":"-1,-115r129,0r0,17r-129,0r0,-17","w":167,"k":{"7":14,"1":11}},"\u2014":{"d":"-1,-115r252,0r0,17r-252,0r0,-17","w":298,"k":{"7":14,"1":11}},"\u2018":{"d":"15,-208v-20,-3,-5,-31,-2,-44r17,1v-12,15,6,39,-15,43","w":63},"\u00a4":{"d":"22,-150r40,0r0,16r-40,0r0,23r40,0r0,17r-40,0v-5,45,6,80,46,80v23,0,47,-15,47,-43r17,0v1,78,-126,78,-127,3r0,-40r-14,0r0,-17r14,0r0,-23r-14,0r0,-16r14,0r0,-42v2,-74,127,-76,127,3r-17,0v1,-55,-91,-56,-93,-3r0,42","w":168,"k":{"1":-7}},"\u2039":{"d":"62,-178r-42,57r42,56r-13,12r-46,-64v-3,-4,-3,-5,1,-11r44,-60","w":106},"\u00b7":{"d":"32,-150v14,0,23,11,23,24v0,14,-9,23,-23,23v-13,0,-23,-9,-23,-23v0,-13,10,-24,23,-24","w":107},"\u2219":{"d":"32,-150v14,0,23,11,23,24v0,14,-9,23,-23,23v-13,0,-23,-9,-23,-23v0,-13,10,-24,23,-24","w":107},"\u02c6":{"d":"89,-235r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","w":156},"\u02dc":{"d":"22,-268v14,24,21,-4,37,-4v8,0,16,7,25,20r-13,9v-12,-27,-21,0,-37,1v-8,0,-16,-5,-24,-16","w":128},"\u00af":{"d":"0,-256r108,0r0,17r-108,0r0,-17","w":150},"\u017d":{"w":180},"a":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37","w":143,"k":{"\u00ff":71,"\u00f8":30,"\u00f9":30,"\u00fb":30,"\u00fc":30,"\u00fd":71,"\u00dd":71,"\u00d9":30,"\u00db":30,"\u00dc":30,"\u00d2":22,"\u00d3":22,"\u00d5":22,"\u00c7":23,"\u0178":71,"Y":71,"V":56,"U":30,"O":22,"C":23,"y":71,"u":30,"X":6,"W":56,"T":38,"Q":2,"J":2,"G":23,"z":6,"x":13,"w":21,"v":19,"o":23,"k":-6,"j":3,"g":23,"c":23,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"6":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23}},"b":{"d":"109,-51v3,44,-67,76,-92,35r0,16r-17,0r0,-251r17,0r0,96v27,-41,92,-10,92,34r0,70xm54,-14v48,-1,37,-59,39,-107v1,-41,-76,-51,-76,-6r0,85v0,18,20,28,37,28","w":144,"k":{"\u00dd":36,"\u0178":36,"Y":36,"V":34,"Z":9,"X":23,"W":32,"T":38,"A":19,"z":6,"x":22,"w":19,"v":23,"s":6,"c":4,"a":8}},"c":{"d":"92,-56r17,0v0,32,-24,58,-54,58v-30,0,-55,-25,-55,-55r0,-67v0,-31,25,-55,55,-55v29,0,54,26,54,58r-17,0v0,-23,-16,-41,-37,-41v-47,0,-38,58,-38,105v0,21,17,38,38,38v21,0,37,-18,37,-41","w":143,"k":{"\u00dd":42,"\u0178":42,"Y":42,"V":36,"Z":8,"X":27,"W":31,"T":44,"J":9,"A":15,"z":13,"x":21,"w":15,"v":26,"s":9,"a":9}},"e":{"d":"108,-120v-1,45,-41,58,-91,53v-9,47,44,69,71,36r14,9v-31,43,-102,22,-102,-31v0,-60,-4,-121,54,-122v30,0,54,25,54,55xm17,-82v39,3,75,-2,75,-38v0,-21,-17,-38,-38,-38v-36,0,-40,37,-37,76","w":143,"k":{"\u00ff":6,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":6,"\u00dd":34,"\u0178":34,"\u0153":6,"q":6,"\u00b5":6,"Y":34,"V":26,"y":6,"u":10,"Z":17,"X":23,"W":27,"T":57,"S":6,"R":6,"Q":6,"J":19,"H":6,"z":15,"x":23,"w":19,"v":25,"s":6,"r":2,"p":9,"o":6,"g":9,"a":15}},"f":{"d":"17,-115r0,115r-17,0r0,-196v0,-32,27,-56,59,-56r0,17v-49,-1,-43,55,-42,104r38,0r0,16r-38,0","w":82,"k":{"K":-6,"F":-6,"A":15,"z":8,"x":6,"w":6,"v":13,"o":6,"a":13}},"g":{"d":"109,23v1,48,-59,71,-94,39r9,-13v25,22,69,8,69,-26r0,-40v-28,40,-93,9,-93,-34r0,-71v-3,-45,69,-73,93,-34r0,-17r16,0r0,196xm55,-158v-48,0,-36,60,-38,107v-2,42,76,50,76,6r0,-85v0,-19,-20,-28,-38,-28","w":144,"k":{"\u00dd":27,"\u0178":27,"Y":27,"V":21,"X":13,"W":19,"T":40,"F":-6,"x":4,"w":15,"v":13,"k":-6,"a":6}},"h":{"d":"55,-157v-61,0,-31,99,-38,157r-17,0r0,-249r17,0r0,97v25,-45,92,-14,92,33r0,119r-17,0v-7,-58,23,-157,-37,-157","w":144,"k":{"\u00dd":34,"\u0178":34,"Y":34,"V":25,"X":15,"W":27,"T":44,"A":9,"z":8,"x":13,"w":15,"v":21,"a":4}},"i":{"d":"12,-211v7,0,12,4,12,12v0,7,-5,12,-12,12v-6,0,-12,-5,-12,-12v0,-8,6,-12,12,-12xm20,-172r0,172r-16,0r0,-172r16,0","w":58,"k":{"\u00dd":21,"\u0178":21,"Y":21,"V":15,"X":11,"W":15,"T":40,"x":15,"w":13,"v":15,"a":15}},"j":{"d":"3,23r0,-196r17,0r0,196v0,31,-24,54,-55,54r1,-17v22,0,37,-17,37,-37xm12,-211v7,0,12,4,12,12v0,7,-5,12,-12,12v-6,0,-12,-5,-12,-12v0,-8,6,-12,12,-12","w":63,"k":{"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u0178":21,"Y":21,"V":32,"u":6,"Z":6,"W":21,"T":49,"A":-2,"z":13,"w":21,"v":23,"e":13,"a":13}},"k":{"d":"91,0v-18,-31,-22,-84,-74,-78r0,78r-17,0r0,-249r17,0r0,155v52,6,56,-47,74,-79r18,0v-18,30,-21,77,-58,87v39,11,39,56,58,86r-18,0","w":139,"k":{"\u00ff":9,"\u00fa":30,"\u00f8":8,"\u00f9":8,"\u00fb":8,"\u00fc":8,"\u00fd":9,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":27,"\u00d2":8,"\u00d3":8,"\u00d5":8,"\u00c7":6,"\u0178":27,"\u0153":13,"0":30,"q":13,"Y":27,"V":25,"O":8,"C":6,"y":9,"u":8,"6":30,"\u00b5":30,"Z":8,"X":17,"W":26,"T":38,"S":9,"Q":6,"J":26,"G":4,"z":4,"x":17,"w":19,"v":19,"s":10,"o":13,"j":10,"g":9,"e":10,"c":10,"a":15}},"l":{"d":"17,-55v0,22,17,38,39,38r0,17v-32,0,-56,-23,-56,-55r0,-194r17,0r0,194","w":78,"k":{"\u00ff":2,"\u00fd":2,"\u00dd":36,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":36,"\u0153":6,"q":6,"\u00b5":6,"Y":36,"V":23,"O":6,"y":2,"W":28,"T":21,"J":6,"x":6,"w":25,"v":40,"s":4,"o":6,"j":4,"e":4,"a":6}},"m":{"d":"54,-158v-61,0,-30,100,-37,158r-17,0r0,-172r17,0r0,19v19,-34,70,-26,83,9v19,-52,100,-31,100,24r0,120r-16,0v-6,-59,24,-158,-38,-158v-61,0,-30,100,-37,158r-17,0v-6,-59,24,-158,-38,-158","w":240,"k":{"\u00dd":30,"\u0178":30,"Y":30,"V":23,"W":25,"T":46,"J":6,"A":9,"z":13,"x":8,"w":17,"v":19,"a":4}},"n":{"d":"54,-158v-61,0,-30,100,-37,158r-17,0r0,-173r17,0r0,20v24,-45,92,-13,92,33r0,120r-17,0v-6,-59,24,-158,-38,-158","w":143,"k":{"\u00dd":27,"\u0178":27,"Y":27,"V":28,"Z":6,"X":4,"W":26,"T":40,"J":6,"A":8,"x":17,"w":17,"v":21,"a":6}},"o":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0","w":146,"k":{"\u00dd":42,"\u0178":42,"Y":42,"V":34,"Z":10,"X":17,"W":30,"T":51,"A":13,"x":17,"w":21,"v":21,"a":8}},"p":{"d":"17,-158v26,-39,92,-9,92,35r0,71v2,45,-64,75,-92,35r0,90r-17,0r0,-246r17,0r0,15xm92,-52v-1,-47,11,-107,-38,-107v-17,0,-37,10,-37,28v0,48,-16,118,37,116v21,0,38,-17,38,-37","w":144,"k":{"\u00dd":30,"\u0178":30,"Y":30,"V":36,"Z":13,"X":27,"W":34,"T":44,"J":11,"A":15,"z":19,"x":15,"w":15,"v":23,"s":6,"a":6}},"r":{"d":"17,0r-17,0r0,-172r17,0r0,16v11,-20,36,-23,58,-12r-6,15v-24,-11,-51,0,-52,26r0,127","w":96,"k":{"\u00dd":19,"\u0178":19,"Y":19,"V":15,"Z":9,"X":13,"W":15,"T":26,"M":-6,"L":-10,"K":-9,"J":15,"F":-9,"A":19,"w":-2,"v":4,"o":13,"n":-8,"m":-6,"l":-4,"g":9,"f":-2,"e":13,"c":13,"a":17}},"s":{"d":"86,-48v0,-52,-91,-14,-88,-75v3,-56,74,-70,101,-26r-14,9v-19,-31,-70,-22,-70,18v0,19,16,25,35,26v27,1,53,16,53,48v-1,60,-82,66,-107,22r15,-8v16,30,75,26,75,-14","w":131,"k":{"\u00dd":30,"\u0178":30,"Y":30,"V":23,"X":8,"W":26,"T":42,"A":13,"x":15,"w":19,"v":15,"f":-9,"a":6}},"t":{"d":"17,-173r38,0r0,16r-38,0v4,56,-20,140,42,140r0,17v-31,0,-59,-23,-59,-55r0,-194r17,0r0,76","w":84,"k":{"\u00dd":13,"\u0178":13,"Y":13,"V":8,"X":-13,"W":15,"w":8,"v":11,"g":2,"e":11,"c":15,"a":14}},"u":{"d":"53,2v-30,0,-53,-25,-53,-54r0,-120r17,0v7,57,-24,157,36,157v61,0,30,-100,37,-157r17,0v-4,72,22,173,-54,174","w":141,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"v":{"d":"2,-172r18,0r44,159r4,0r44,-159r17,0r-45,159v-5,20,-31,20,-36,0","w":144,"k":{"\u00f8":-2,"\u00f9":-2,"\u00fb":-2,"\u00fc":-2,"\u00dd":10,"\u00d2":-6,"\u00d3":-6,"\u00d5":-6,"\u00c7":-4,"\u0178":10,"Y":10,"O":-6,"C":-4,"u":-2,"Z":9,"W":9,"T":13,"S":-2,"R":-4,"P":-2,"N":-4,"M":-6,"L":-9,"K":-4,"J":15,"H":-6,"G":-1,"F":-11,"E":-6,"B":-6,"A":15,"t":-6,"r":-4,"p":-6,"n":-11,"m":-6,"l":-6,"k":-4,"j":2,"h":-6,"g":2,"f":-8,"b":-6,"a":7}},"w":{"d":"21,-173v11,50,14,108,28,154v7,-24,14,-52,23,-76v5,-14,23,-13,28,1v9,22,11,56,24,75v7,-46,18,-108,26,-154r17,0r-30,160v-5,18,-25,17,-30,0v-5,-15,-8,-41,-22,-74v-8,23,-15,51,-22,74v-6,17,-27,18,-30,0r-29,-160r17,0","w":187,"k":{"\u00ff":-8,"\u00fa":19,"\u00fd":-8,"\u00f2":19,"\u00f3":19,"\u00f4":19,"\u00f5":19,"\u00f6":19,"\u00dd":15,"\u00d2":-2,"\u00d3":-2,"\u00d5":-2,"\u00c7":-2,"\u0178":15,"0":19,"Y":15,"W":9,"V":9,"O":-2,"G":-2,"C":-2,"y":-8,"6":19,"T":21,"P":-2,"N":-2,"M":-6,"L":-4,"J":6,"D":-9,"A":13,"z":-4,"t":-6,"p":-6,"o":-4,"n":-4,"m":-4,"l":-4,"k":-2,"j":5,"h":-4,"g":2,"f":-6,"c":4,"b":-4,"a":2}},"x":{"d":"98,0r-41,-73r-41,73r-20,0r52,-87r-50,-85r19,0r40,71r40,-71r19,0r-50,85r51,87r-19,0","w":127,"k":{"\u00ff":-13,"\u00fa":26,"\u00f8":-9,"\u00f9":-9,"\u00fb":-9,"\u00fc":-9,"\u00fd":-13,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":4,"\u00d9":-10,"\u00db":-10,"\u00dc":-10,"\u00d2":-13,"\u00d3":-13,"\u00d5":-13,"\u00c7":-13,"\u0178":4,"\u0153":-8,"0":26,"q":-8,"Y":4,"V":8,"U":-10,"O":-13,"C":-13,"y":-13,"u":-9,"6":26,"\u00b5":26,"W":6,"T":10,"S":-6,"R":-11,"Q":-13,"P":-10,"N":-13,"M":-10,"L":-9,"J":2,"I":-4,"H":-10,"G":-8,"F":-17,"E":-10,"D":-8,"B":-9,"z":-6,"t":-19,"r":-13,"p":-13,"o":-4,"n":-17,"m":-15,"l":-11,"k":-8,"j":-5,"h":-8,"g":-4,"f":-15,"e":-9,"c":-6,"b":-13}},"y":{"d":"108,23v1,49,-61,70,-95,38r11,-13v24,23,68,10,68,-25r0,-40v-27,39,-92,10,-92,-34r0,-121r17,0v7,58,-24,157,38,157v19,0,37,-11,37,-31r0,-126r16,0r0,195","w":143,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"z":{"d":"14,0v-13,0,-21,-11,-13,-23r92,-134r-93,1r0,-17r94,0v15,0,21,13,13,25r-93,132r90,-1r0,17r-90,0","w":141,"k":{"\u00dd":27,"\u0178":27,"\u0153":11,"q":11,"\u00b5":11,"Y":27,"V":23,"X":15,"W":23,"T":23,"S":11,"J":8,"E":6,"A":15,"x":17,"w":10,"v":21,"s":8,"m":6,"g":15,"e":8,"c":6,"a":23}},"A":{"d":"136,0r-23,-91r-76,0v-8,30,-16,61,-23,91r-18,0r61,-240v7,-21,30,-19,36,1r62,239r-19,0xm108,-108r-31,-130r-4,0r-32,130r67,0","w":179,"k":{"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00dd":46,"\u00d9":6,"\u00db":6,"\u00dc":6,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u00c7":6,"\u0178":46,"\u0153":4,"q":4,"\u00b5":4,"Y":46,"V":40,"U":6,"O":2,"C":6,"u":13,"0":19,"Z":17,"X":19,"W":40,"T":42,"S":8,"Q":6,"J":13,"G":13,"E":8,"z":9,"x":15,"w":26,"v":30,"s":6,"o":6,"l":10,"j":1,"g":15,"e":9,"c":13,"a":6}},"B":{"d":"109,-183v0,-56,-48,-56,-92,-51r0,90v44,1,92,6,92,-39xm70,-252v59,-4,79,96,26,117v33,8,36,41,34,80v-2,53,-55,60,-113,55v-11,0,-17,-7,-17,-18r0,-216v0,-29,44,-15,70,-18xm17,-18v41,4,96,5,96,-37v0,-39,-5,-72,-39,-72r-57,0r0,109","w":164,"k":{"\u00dd":41,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":41,"Y":41,"V":33,"O":6,"Z":10,"X":22,"W":33,"T":27,"J":10,"A":13,"x":22,"w":21,"v":17,"s":8,"o":7,"g":8,"e":6,"c":8,"a":11,"y":41,"\u00fd":41,"\u00ff":41}},"C":{"d":"112,-59r17,0v0,79,-128,82,-129,3r0,-141v2,-80,128,-76,129,3r-17,0v1,-57,-94,-59,-95,-3r0,141v2,55,95,55,95,-3","w":162,"k":{"\u00dd":23,"\u0178":23,"Y":23,"V":23,"Z":15,"X":25,"W":21,"T":19,"S":6,"M":6,"J":15,"A":15,"z":11,"x":19,"w":19,"v":23,"s":9,"a":6}},"D":{"d":"17,-235r0,218v45,1,96,6,96,-39r0,-139v0,-44,-50,-42,-96,-40xm75,0v-27,0,-74,11,-75,-18r0,-217v2,-29,48,-17,75,-17v29,0,55,25,55,56r0,140v0,32,-26,56,-55,56","w":164,"k":{"\u00dd":41,"\u0178":41,"Y":41,"V":33,"Z":15,"X":26,"W":33,"T":25,"J":9,"A":17,"x":17,"w":13,"v":17,"a":4,"y":41,"\u00fd":41,"\u00ff":41}},"E":{"d":"106,-252r0,17r-89,1r0,96r85,0r0,17r-85,0v0,47,-8,103,38,104r51,0r0,17v-57,5,-105,-5,-106,-57r0,-177v7,-35,71,-12,106,-18","w":145,"k":{"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u00d9":13,"\u00db":13,"\u00dc":13,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":11,"\u0178":21,"\u0153":8,"q":8,"\u00b5":8,"Y":21,"V":17,"U":13,"O":13,"C":11,"u":6,"Z":10,"X":13,"W":21,"T":9,"S":9,"R":8,"J":23,"G":17,"A":13,"z":15,"x":21,"w":21,"v":19,"s":8,"r":6,"o":11,"c":6,"a":11}},"F":{"d":"106,-252r0,17r-89,1r0,96r83,0r0,17r-83,0r0,121r-17,0r0,-234v7,-35,71,-12,106,-18","w":139,"k":{"\u00ff":15,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":15,"\u00dd":15,"\u00d9":4,"\u00db":4,"\u00dc":4,"\u00c7":4,"\u0178":15,"\u0153":15,"q":15,"\u00b5":15,"Y":15,"V":9,"U":4,"C":4,"y":15,"u":13,"Z":9,"X":13,"W":10,"T":15,"S":13,"Q":15,"J":36,"G":10,"A":34,"z":19,"x":19,"w":17,"v":17,"s":10,"p":13,"o":17,"i":10,"g":13,"e":13,"c":10,"b":8,"a":21}},"G":{"d":"69,-119r0,-17v24,2,60,-8,61,17r0,64v0,38,-32,57,-64,57v-33,0,-66,-19,-66,-58r0,-142v0,-38,31,-57,64,-57v32,0,65,20,65,60r-17,0v1,-56,-94,-58,-95,-3r0,142v0,54,96,55,96,1v0,-21,2,-45,-1,-64r-43,0","w":164,"k":{"\u00dd":17,"\u0178":17,"Y":17,"V":21,"Z":19,"X":19,"W":17,"T":32,"A":13,"x":13,"w":15,"v":21,"a":4}},"H":{"d":"120,0r-17,0r0,-116r-86,0r0,116r-17,0r0,-252r17,0r0,119r86,0r0,-119r17,0r0,252","w":154,"k":{"\u00dd":41,"\u0178":41,"Y":41,"V":33,"X":6,"W":33,"T":21,"x":15,"w":11,"v":13,"a":2,"y":41,"\u00fd":41,"\u00ff":41}},"I":{"d":"21,0r-17,0r0,-252r17,0r0,252","w":60,"k":{"Z":15,"T":27,"x":17,"w":15,"v":15,"s":10,"e":8}},"J":{"d":"67,-252v24,1,60,-7,61,17r0,179v-2,81,-131,80,-130,-3r17,0v-1,59,96,60,96,3r-1,-179r-43,0r0,-17","w":162,"k":{"X":6,"W":15,"T":19,"A":15,"w":10,"v":11,"a":2}},"K":{"d":"112,0v-17,-52,-15,-134,-95,-120r0,120r-17,0r0,-252r17,0r0,115v38,3,63,-6,73,-38r22,-77r18,0v-17,45,-14,109,-63,123v50,15,45,82,62,129r-17,0","w":162,"k":{"\u00ff":41,"\u00fa":30,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":41,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":41,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":8,"\u0178":41,"\u0153":10,"0":30,"q":10,"Y":41,"V":33,"O":10,"C":8,"y":41,"u":13,"6":30,"\u00b5":30,"X":15,"W":33,"T":19,"Q":6,"J":19,"I":11,"G":10,"E":9,"D":11,"A":15,"z":9,"x":22,"w":30,"v":27,"s":9,"r":2,"o":13,"n":4,"j":10,"i":9,"g":6,"e":9,"c":6,"a":13}},"L":{"d":"109,0r-91,0v-9,1,-18,-6,-18,-17r0,-235r17,0r0,235r92,0r0,17","w":135,"k":{"\u00ff":41,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":41,"\u00dd":41,"\u00d9":11,"\u00db":11,"\u00dc":11,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":17,"\u0178":41,"\u0153":10,"q":10,"\u00b5":10,"Y":41,"V":33,"U":11,"O":13,"C":17,"y":41,"u":13,"Z":8,"X":10,"W":33,"T":61,"S":17,"Q":9,"J":13,"G":10,"E":10,"A":6,"x":10,"w":36,"v":32,"o":13,"i":6,"g":8,"e":10,"c":13,"a":17}},"M":{"d":"134,0r0,-233r-47,146v-4,12,-20,14,-25,1v-17,-40,-28,-107,-47,-147r2,233r-17,0r0,-239v0,-20,23,-19,28,-4v19,51,26,101,47,149r47,-149v7,-15,28,-15,28,4r0,239r-16,0","w":185,"k":{"\u00dd":41,"\u0178":41,"Y":41,"W":33,"V":33,"X":15,"K":-6,"J":10,"A":8,"x":10,"w":15,"v":17,"a":4,"y":41,"\u00fd":41,"\u00ff":41}},"N":{"d":"114,-19r-2,-233r17,0r0,238v0,17,-20,20,-26,5r-88,-224r2,233r-17,0r0,-238v-1,-17,22,-20,28,-5","k":{"\u00dd":41,"\u0178":41,"Y":41,"V":33,"X":8,"W":33,"T":19,"J":6,"A":6,"x":11,"w":15,"v":13,"a":4,"y":41,"\u00fd":41,"\u00ff":41}},"O":{"d":"0,-55r0,-142v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,142v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm17,-197r0,142v0,27,24,40,48,40v24,0,47,-13,47,-40r0,-142v0,-26,-23,-40,-47,-40v-24,0,-48,14,-48,40","k":{"Z":15,"X":19,"W":19,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4}},"P":{"d":"0,-234v1,-29,44,-18,71,-18v44,0,54,42,54,94v0,29,-24,56,-54,56r-54,0r0,102r-17,0r0,-234xm17,-235r0,116v44,2,91,4,91,-39v0,-39,-2,-77,-37,-77r-54,0","w":152,"k":{"\u00ff":41,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":41,"\u00dd":41,"\u0178":41,"\u0153":15,"q":15,"\u00b5":15,"Y":41,"V":33,"y":41,"u":6,"Z":15,"X":19,"W":33,"T":28,"J":25,"A":36,"z":10,"x":9,"w":15,"v":13,"s":13,"o":10,"i":6,"g":13,"e":9,"c":10,"a":19}},"Q":{"d":"129,-197v0,59,12,136,-12,176v4,4,10,9,13,12v-9,13,-18,11,-26,-1v-39,26,-104,9,-104,-46r0,-141v0,-38,31,-57,64,-57v32,0,65,19,65,57xm17,-55v0,36,45,50,74,33v-4,-4,-9,-9,-13,-12r13,-13r14,14v17,-41,7,-111,7,-164v0,-27,-23,-40,-47,-40v-24,0,-48,13,-48,40r0,142","k":{"\u00dd":27,"\u0178":27,"Y":27,"V":22,"X":15,"W":19,"T":28,"J":11,"A":9,"w":15,"v":17,"a":6}},"R":{"d":"0,-234v1,-28,43,-16,69,-18v70,-6,79,127,16,143v43,7,44,58,41,109r-17,0r0,-61v-3,-39,-47,-43,-92,-40r0,101r-17,0r0,-234xm108,-197v1,-43,-52,-41,-91,-37r0,116v44,3,91,0,91,-39r0,-40","w":156,"k":{"\u00dd":41,"\u0178":41,"Y":41,"V":33,"X":13,"W":33,"T":25,"x":11,"w":15,"v":8,"a":2,"y":41,"\u00fd":41,"\u00ff":41}},"S":{"d":"109,-54v11,-116,-109,-19,-109,-144v0,-37,31,-57,63,-57v31,0,63,21,63,60r-17,0v1,-56,-89,-56,-93,-3v-7,109,124,14,110,144v-8,76,-127,76,-126,-4r16,0v-1,56,88,57,93,4","w":156,"k":{"\u00dd":17,"\u0178":17,"Y":17,"V":10,"W":15,"T":19,"A":13,"x":15,"w":17,"v":19,"f":-4}},"T":{"d":"0,-252r140,0r0,17r-62,0r0,235r-17,0r0,-235r-61,0r0,-17","w":177,"k":{"\u00ff":33,"\u00f8":36,"\u00f9":36,"\u00fb":36,"\u00fc":36,"\u00fd":33,"\u00dd":15,"\u00d2":33,"\u00d3":33,"\u00d5":33,"\u00c7":21,"\u0178":15,"\u0153":44,"q":44,"\u00b5":44,"Y":15,"V":13,"O":33,"C":21,"y":33,"u":36,"Z":17,"X":15,"W":19,"S":30,"R":17,"Q":28,"P":21,"N":13,"L":19,"K":17,"J":59,"I":19,"H":15,"G":32,"F":21,"E":11,"D":13,"B":15,"A":51,"z":42,"x":38,"w":48,"v":44,"s":46,"r":34,"p":38,"o":51,"n":40,"m":36,"l":17,"k":19,"j":42,"i":42,"h":26,"g":42,"f":25,"e":49,"c":51,"b":13,"a":44}},"U":{"d":"112,-252r17,0r0,197v0,39,-32,58,-64,58v-33,0,-65,-19,-65,-58r0,-197r17,0v0,44,-1,176,-1,197v2,53,96,56,96,0r0,-197","k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"V":{"d":"16,-252r60,238v0,1,2,1,2,0r60,-238r18,0r-61,240v-6,20,-30,20,-36,0r-61,-240r18,0","w":182,"k":{"Z":13,"X":9,"T":13,"S":11,"R":6,"Q":17,"P":8,"N":8,"L":4,"K":10,"J":32,"H":9,"G":15,"E":6,"D":11,"B":6,"A":44,"z":21,"x":21,"w":19,"v":21,"t":6,"s":26,"r":17,"p":15,"o":22,"n":17,"m":13,"l":6,"k":13,"j":23,"i":17,"h":6,"g":22,"e":32,"c":22,"a":34,"y":17,"\u00fd":17,"\u00ff":17,"6":22,"0":22,"\u00f6":22,"\u00f5":22,"\u00f4":22,"\u00f3":22,"\u00f2":22,"\u00fa":22,"C":15,"\u00c7":15,"O":17,"\u00d5":17,"\u00d3":17,"\u00d2":17,"\u00b5":23,"q":23,"\u0153":23,"u":19,"\u00fc":19,"\u00fb":19,"\u00f9":19,"\u00f8":19}},"W":{"d":"119,-15v-8,-47,-10,-102,-23,-145v-7,45,-14,101,-20,145v-3,21,-26,20,-30,0r-46,-237r17,0r42,235r3,0v7,-46,13,-104,20,-150v2,-13,28,-13,30,0r20,150r3,0r41,-235r18,0r-46,237v-4,21,-25,21,-29,0","w":226,"k":{"\u00ff":17,"\u00fa":22,"\u00f8":19,"\u00f9":19,"\u00fb":19,"\u00fc":19,"\u00fd":17,"\u00f2":22,"\u00f3":22,"\u00f4":22,"\u00f5":22,"\u00f6":22,"\u00d2":17,"\u00d3":17,"\u00d5":17,"\u00c7":15,"\u0153":23,"0":22,"q":23,"W":10,"V":10,"O":17,"C":15,"y":17,"u":19,"6":22,"\u00b5":23,"Z":13,"X":9,"T":15,"S":15,"R":6,"Q":17,"P":9,"N":6,"L":11,"K":6,"J":36,"H":8,"G":15,"F":9,"E":6,"D":11,"B":9,"A":38,"z":17,"x":19,"w":27,"v":17,"t":6,"s":25,"r":17,"p":13,"o":22,"n":15,"m":17,"l":6,"k":8,"j":21,"i":15,"h":4,"g":22,"e":23,"c":22,"b":6,"a":30}},"X":{"d":"114,0r-50,-107v-15,36,-33,72,-50,107r-18,0r59,-125r-60,-127r18,0r51,110r50,-110r20,0r-60,128r58,124r-18,0","w":157,"k":{"\u00ff":8,"\u00fa":26,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":8,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":8,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":6,"\u0178":8,"\u0153":6,"0":26,"q":6,"Y":8,"O":10,"C":6,"y":8,"u":6,"6":26,"\u00b5":26,"Z":13,"T":10,"S":6,"Q":4,"L":8,"K":8,"J":19,"G":4,"E":2,"D":6,"B":2,"A":17,"z":15,"w":30,"v":30,"t":-2,"s":6,"p":4,"o":13,"l":6,"j":8,"g":6,"e":8,"c":6,"a":10}},"Y":{"d":"134,-252r-61,143r0,109r-16,0r0,-109r-61,-143r18,0r51,124v16,-39,33,-84,50,-124r19,0","w":157,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17}},"Z":{"d":"15,0v-13,0,-21,-10,-15,-22r106,-213r-98,0r0,-17r101,0v14,0,19,9,13,22r-106,213r103,0r0,17r-104,0","w":148,"k":{"\u00ff":9,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":9,"\u00dd":4,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u0178":4,"Y":4,"O":2,"y":9,"u":10,"W":2,"J":10,"A":13,"x":17,"w":30,"v":31,"s":9,"o":8,"g":8,"e":13,"c":6,"a":13}},"\u00b5":{"d":"109,-63r-16,0r0,-28v-17,23,-60,27,-77,-1r0,93r-16,0r0,-250r16,0v6,59,-23,160,38,160v64,0,32,-101,39,-160r16,0r0,186","w":147,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":26,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"q":{"d":"55,-159v-49,0,-36,60,-38,107v-2,43,75,50,75,6r0,-85v0,-18,-20,-28,-37,-28xm0,-123v-2,-43,65,-74,92,-35r0,-15r17,0r0,246r-17,0r0,-90v-28,41,-92,9,-92,-35r0,-71","w":140,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"9":{"d":"125,-194r0,141v-1,59,-75,74,-112,36r13,-11v26,27,83,15,83,-25r0,-61v-28,45,-110,26,-109,-31r0,-49v0,-73,125,-74,125,0xm16,-194r0,49v1,51,93,51,93,-2r0,-47v-1,-52,-92,-52,-93,0","w":160},"0":{"d":"0,-54r0,-139v0,-37,31,-55,63,-55v31,0,64,18,64,55r0,139v-1,75,-127,75,-127,0xm17,-193r0,139v0,26,22,40,46,40v23,0,47,-14,47,-40r0,-139v0,-52,-94,-52,-93,0","w":162,"k":{"A":21}},"\u00bf":{"d":"56,1v-64,0,-75,-103,-25,-125v27,-12,18,-53,19,-89r17,0v0,45,6,90,-27,104v-36,16,-31,96,16,94v21,0,38,-18,39,-42r16,2v-2,32,-26,56,-55,56xm59,-230v-6,0,-11,-5,-11,-12v0,-7,5,-12,11,-12v6,0,11,5,11,12v0,7,-5,12,-11,12","w":143},")":{"d":"-1,21r-9,-14v57,-49,55,-217,-2,-264r10,-13v68,55,67,235,1,291","w":87},">":{"d":"80,-99r-80,48r0,-20v21,-13,40,-21,65,-35v-21,-11,-45,-23,-65,-35r0,-20v24,15,54,34,80,48v6,3,5,11,0,14","w":113},"\\":{"d":"5,-260r89,276r-17,0r-90,-276r18,0","w":123},"]":{"d":"26,10v-3,16,-36,5,-52,8r0,-17r35,0r0,-253r-35,0r0,-16v17,3,48,-8,52,8r0,270","w":60},"}":{"d":"-17,8v44,-29,26,-99,57,-133v-32,-34,-13,-98,-57,-130r9,-14v30,23,45,74,48,108v1,14,8,29,26,29r0,16v-18,0,-25,15,-26,29v-3,35,-17,85,-48,108","w":92},"\u203a":{"d":"49,-121r-42,-56r15,-10r44,60v5,5,3,8,0,12r-45,63r-13,-12v14,-20,28,-38,41,-57","w":110},"\u00ab":{"d":"16,-121r42,57r-13,12r-46,-64v1,-28,33,-47,45,-71r14,10xm60,-121r42,57r-13,12r-47,-64v-3,-5,-2,-5,2,-11r44,-60r14,10","w":131},"\u00bb":{"d":"86,-121r-42,-56r14,-10v14,20,31,40,45,60v5,5,3,8,0,12r-45,63r-13,-12v14,-20,28,-38,41,-57xm44,-121r-42,-56r15,-10r43,60v6,5,5,8,1,12r-45,63r-13,-12v14,-20,28,-38,41,-57","w":133},":":{"d":"10,-60v7,0,12,6,12,12v0,7,-5,11,-12,11v-6,0,-11,-4,-11,-11v0,-6,5,-12,11,-12xm10,-139v7,0,12,5,12,11v0,7,-5,12,-12,12v-6,0,-11,-5,-11,-12v0,-6,5,-11,11,-11","w":56},";":{"d":"10,-139v7,0,12,5,12,11v0,7,-5,12,-12,12v-6,0,-11,-5,-11,-12v0,-6,5,-11,11,-11xm10,-60v23,0,4,31,1,45r-10,-1r5,-21v-12,-4,-9,-23,4,-23","w":56},"\u201a":{"d":"4,0r0,-75r17,-1r0,76r-17,0","w":58},"\u201e":{"d":"7,0r0,-77r16,0r0,77r-16,0xm39,0r0,-77r16,0r0,77r-16,0","w":87},"\u2026":{"d":"14,-23v6,0,11,5,11,11v0,7,-5,12,-11,12v-7,0,-11,-5,-11,-12v0,-6,4,-11,11,-11xm41,-23v6,0,12,5,12,11v0,7,-6,12,-12,12v-7,0,-11,-5,-11,-12v0,-6,4,-11,11,-11xm68,-23v6,0,11,5,11,11v0,7,-5,12,-11,12v-7,0,-11,-5,-11,-12v0,-6,4,-11,11,-11","w":100},"\u0152":{"d":"113,-231v7,-40,68,-14,106,-21r0,17r-89,1r0,96r85,0r0,17r-85,0v0,47,-8,103,38,104r51,0r0,17v-46,1,-84,4,-97,-33v-23,54,-122,44,-122,-22r0,-142v0,-59,83,-77,113,-34xm17,-197r0,142v0,27,24,40,48,40v24,0,48,-13,48,-40r0,-142v0,-54,-96,-53,-96,0","w":268},"\u0153":{"d":"203,-120v-2,46,-41,60,-92,54v-8,47,45,67,72,35r14,9v-27,35,-78,30,-94,-8v-21,49,-103,39,-103,-23r0,-68v0,-61,83,-74,103,-22v18,-52,102,-33,100,23xm95,-53r0,-68v0,-50,-78,-49,-78,0r0,68v0,25,19,38,39,38v19,0,39,-13,39,-38xm111,-82v39,3,75,-1,75,-38v0,-21,-16,-38,-37,-38v-36,0,-41,36,-38,76","w":241,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"\u0160":{"d":"37,-307r25,19v7,-5,16,-13,23,-18r11,12v-13,6,-23,28,-41,21v-9,-7,-20,-14,-29,-21xm109,-58v11,-116,-109,-19,-109,-144v0,-37,31,-56,63,-56v31,0,63,20,63,59r-17,0v1,-56,-89,-56,-93,-3v-8,110,124,15,110,144v-8,76,-127,77,-126,-3r16,0v-1,56,88,56,93,3","w":155},"\u0161":{"d":"28,-226r24,18v8,-6,14,-11,23,-17r12,10v-13,7,-23,29,-42,23v-5,-6,-22,-16,-30,-23xm88,-51v0,-52,-91,-14,-88,-75v3,-56,74,-71,101,-27r-14,9v-20,-30,-69,-20,-70,18v0,19,16,25,35,26v27,1,53,17,53,49v-1,60,-82,65,-106,21r14,-7v16,29,75,25,75,-14","w":132},"\u2021":{"d":"46,-49r-44,0r0,-17r44,0r0,-116r-43,0r0,-16r43,0r0,-51r17,1r0,50r44,0r0,16r-44,0r0,116r43,0r-1,17r-42,0r0,49r-17,0r0,-49","w":140},"\u017e":{"d":"32,-228r24,18v8,-6,14,-11,23,-17r12,10v-14,7,-23,29,-42,23v-3,-5,-24,-16,-30,-22xm14,-4v-13,0,-21,-11,-13,-23r92,-133r-93,0r0,-16r94,0v15,0,20,12,12,24r-92,133r90,-1r0,16r-90,0","w":140},"\u00e7":{"d":"92,-56r17,0v0,29,-20,52,-46,57v3,11,16,20,29,16r8,14v-24,11,-52,-2,-53,-30v-52,-6,-47,-63,-47,-121v0,-31,25,-55,55,-55v29,0,54,26,54,58r-17,0v0,-23,-16,-41,-37,-41v-47,0,-38,58,-38,105v0,21,17,38,38,38v21,0,37,-18,37,-41","w":143},"\u00b8":{"d":"35,-9r17,-2v-1,26,19,44,41,34r2,18v-31,10,-65,-14,-60,-50","w":156},"\u00f0":{"d":"126,-194r0,141v-1,59,-76,74,-113,36r13,-11v26,27,84,16,84,-25r0,-61v-28,44,-111,27,-109,-31r0,-49v0,-74,125,-73,125,0xm17,-194r0,49v0,26,22,38,46,38v23,0,47,-13,47,-40r0,-47v-1,-52,-92,-52,-93,0","w":161},"\u201c":{"d":"16,-208v-22,-3,-6,-32,-2,-46r17,0v-14,16,6,40,-15,46xm50,-208v-22,-3,-6,-32,-2,-46r17,0v-14,15,7,42,-15,46","w":81},"\u2019":{"d":"15,-249v23,2,6,34,4,50r-17,-1r7,-29v-11,-4,-6,-21,6,-20","w":63},"\u201d":{"d":"47,-249v22,2,6,32,3,47r-17,1v3,-13,11,-26,3,-37v0,-6,4,-11,11,-11xm15,-249v22,3,6,33,2,47r-16,1v12,-18,-9,-44,14,-48","w":81},"\u0178":{"d":"68,-109r61,-143r-20,0v-17,40,-34,85,-50,124v-17,-41,-32,-82,-50,-124r-19,0r61,143r0,109r17,0r0,-109xm35,-290v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12xm81,-290v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":151,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17}},"\u00c6":{"d":"38,-91r-24,94r-17,-4r61,-238v5,-21,31,-21,36,0r31,127r0,-122v0,-10,7,-18,16,-18r89,0r0,17r-89,1r0,96r86,0r0,17r-86,0r1,64v2,48,44,40,88,40r0,17v-56,4,-97,-1,-105,-54v-5,-34,-10,-33,-11,-37r-76,0xm76,-238r-34,130r67,0r-33,-128r1,1v0,-1,-1,-3,-1,-3","w":262},"\u00e6":{"d":"91,-15v-33,40,-102,8,-92,-51v-3,-45,66,-78,92,-33v9,-46,-33,-75,-65,-46r-10,-15v25,-24,73,-15,83,18v14,-53,103,-35,100,22v-3,45,-40,60,-91,54v-8,46,45,68,71,35r14,9v-21,29,-61,30,-85,9r0,13r-17,0r0,-15xm16,-66v0,30,11,51,37,52v31,1,38,-22,38,-58v0,-21,-18,-31,-38,-31v-21,0,-37,16,-37,37xm108,-82v39,3,75,-2,75,-38v0,-21,-17,-38,-38,-38v-36,0,-40,37,-37,76","w":235},"\u00c5":{"d":"104,-278v0,18,-16,34,-35,34v-19,0,-33,-16,-33,-34v0,-19,14,-34,33,-34v19,0,35,15,35,34xm88,-278v0,-10,-9,-18,-19,-18v-10,0,-17,8,-17,18v0,10,7,18,17,18v10,0,19,-8,19,-18xm131,0r-23,-91r-76,0v-8,30,-16,61,-23,91r-18,0r61,-240v7,-20,30,-20,36,1r62,239r-19,0xm104,-108r-32,-130r-3,0r-33,130r68,0","w":176},"\u00c4":{"d":"108,-91r23,91r19,0r-62,-239v-6,-21,-31,-22,-36,-1r-61,240r18,0v7,-30,15,-61,23,-91r76,0xm36,-108r33,-130r3,0r32,130r-68,0xm48,-293v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm94,-293v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":176},"\u00c3":{"d":"131,0r-23,-91r-76,0v-8,30,-16,61,-23,91r-18,0r61,-240v7,-20,30,-20,36,1r62,239r-19,0xm104,-108r-32,-130r-3,0r-33,130r68,0xm45,-295v13,24,20,-4,36,-4v8,0,17,7,26,20r-13,10v-12,-28,-21,1,-37,1v-8,0,-17,-6,-25,-17","w":176},"\u00c2":{"d":"131,0r-23,-91r-76,0v-8,30,-16,61,-23,91r-18,0r61,-240v7,-20,30,-20,36,1r62,239r-19,0xm104,-108r-32,-130r-3,0r-33,130r68,0xm99,-263r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","w":176},"\u00c1":{"d":"108,-91r23,91r19,0r-62,-239v-6,-21,-31,-22,-36,-1r-61,240r18,0v7,-30,15,-61,23,-91r76,0xm36,-108r33,-130r3,0r32,130r-68,0xm60,-266r26,-44r21,9r-29,35r-18,0","w":174},"\u00c0":{"d":"131,0r-23,-91r-76,0v-8,30,-16,61,-23,91r-18,0r61,-240v7,-20,30,-20,36,1r62,239r-19,0xm104,-108r-32,-130r-3,0r-33,130r68,0xm53,-315r27,48r-18,1r-27,-37","w":176},"\u00c7":{"d":"112,-59r17,0v0,79,-128,82,-129,3r0,-141v2,-80,128,-76,129,3r-17,0v1,-57,-94,-59,-95,-3r0,141v2,55,95,55,95,-3xm54,-5r17,-3v-1,26,19,44,41,34r2,19v-31,10,-65,-14,-60,-50","w":162},"\u00cb":{"d":"106,-235r0,-17r-88,0v-9,0,-18,8,-18,18r0,177v1,51,49,63,106,57r0,-17v-44,2,-89,2,-89,-40r0,-64r85,0r0,-17r-85,0r1,-97r88,0xm33,-296v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12xm79,-296v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":136},"\u00ca":{"d":"106,-252r0,17r-89,1r0,96r85,0r0,17r-85,0v0,47,-8,103,38,104r51,0r0,17v-57,5,-105,-5,-106,-57r0,-177v7,-35,71,-12,106,-18xm82,-266r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","w":137},"\u00c9":{"d":"106,-235r0,-17r-88,0v-9,0,-18,8,-18,18r0,177v1,51,49,63,106,57r0,-17v-44,2,-89,2,-89,-40r0,-64r85,0r0,-17r-85,0r1,-97r88,0xm45,-265r27,-44r20,9r-29,35r-18,0","w":140},"\u00c8":{"d":"106,-252r0,17r-89,1r0,96r85,0r0,17r-85,0v0,47,-8,103,38,104r51,0r0,17v-57,5,-105,-5,-106,-57r0,-177v7,-35,71,-12,106,-18xm43,-314r26,48r-17,0r-28,-37","w":140},"\u00cf":{"d":"2,0r17,0r0,-252r-17,0r0,252xm-12,-293v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm33,-293v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12","w":52},"\u00ce":{"d":"19,0r-17,0r0,-252r17,0r0,252xm38,-263r-28,-21v-8,6,-22,17,-30,22r-10,-13v15,-7,25,-29,46,-25v9,7,25,18,33,25","w":52},"\u00cd":{"d":"2,0r17,0r0,-252r-17,0r0,252xm1,-266r27,-44r20,9r-29,35r-18,0","w":52,"k":{"X":22,"x":22,"a":19,"V":33,"W":33,"Y":41,"\u0178":41,"\u00dd":41,"y":41,"\u00fd":41,"\u00ff":41}},"\u00cc":{"d":"21,0r-17,0r0,-252r17,0r0,252xm-3,-315r26,48r-18,0r-27,-36","w":54},"\u00d0":{"d":"18,-235r0,218v45,1,96,6,96,-39r0,-139v0,-44,-50,-42,-96,-40xm76,0v-28,0,-75,11,-75,-18r0,-217v2,-29,48,-17,75,-17v29,0,55,25,55,56r0,140v0,32,-26,56,-55,56xm-11,-134r67,0r0,17r-67,0r0,-17","w":165,"k":{"X":22,"x":22,"a":19,"V":33,"W":33,"Y":41,"\u0178":41,"\u00dd":41,"y":41,"\u00fd":41,"\u00ff":41}},"\u00d1":{"d":"114,-19r-2,-233r17,0r0,238v0,17,-20,20,-26,5r-88,-224r2,233r-17,0r0,-238v-1,-17,22,-20,28,-5xm38,-294v13,24,20,-4,36,-4v8,0,17,7,26,20r-13,9v-13,-28,-22,1,-38,2v-8,0,-16,-6,-24,-17","k":{"X":22,"x":22,"a":19,"V":33,"W":33,"Y":41,"\u0178":41,"\u00dd":41,"y":41,"\u00fd":41,"\u00ff":41}},"\u00d6":{"d":"0,-197r0,142v0,39,32,57,65,57v32,0,64,-18,64,-57r0,-142v0,-38,-32,-57,-64,-57v-33,0,-65,19,-65,57xm17,-55r0,-142v0,-26,24,-40,48,-40v24,0,47,14,47,40r0,142v0,27,-23,40,-47,40v-24,0,-48,-13,-48,-40xm42,-292v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm87,-292v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12"},"\u00d5":{"d":"0,-55r0,-142v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,142v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm17,-197r0,142v0,27,24,40,48,40v24,0,47,-13,47,-40r0,-142v0,-26,-23,-40,-47,-40v-24,0,-48,14,-48,40xm39,-292v13,24,19,-5,36,-4v8,0,17,7,26,20r-13,9v-12,-27,-21,1,-38,1v-8,0,-16,-6,-24,-17","k":{"Z":15,"X":19,"W":19,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4}},"\u00d4":{"d":"0,-55r0,-142v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,142v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm17,-197r0,142v0,27,24,40,48,40v24,0,47,-13,47,-40r0,-142v0,-26,-23,-40,-47,-40v-24,0,-48,14,-48,40xm93,-263r-29,-22v-8,6,-22,18,-30,23r-10,-13v16,-7,26,-29,47,-25v9,7,24,17,32,24"},"\u00d3":{"d":"0,-197r0,142v0,39,32,57,65,57v32,0,64,-18,64,-57r0,-142v0,-38,-32,-57,-64,-57v-33,0,-65,19,-65,57xm17,-55r0,-142v0,-26,24,-40,48,-40v24,0,47,14,47,40r0,142v0,27,-23,40,-47,40v-24,0,-48,-13,-48,-40xm57,-265r26,-44r20,9r-28,35r-18,0","k":{"Z":15,"X":19,"W":19,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4}},"\u00d2":{"d":"0,-55r0,-142v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,142v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm17,-197r0,142v0,27,24,40,48,40v24,0,47,-13,47,-40r0,-142v0,-26,-23,-40,-47,-40v-24,0,-48,14,-48,40xm50,-314r26,48r-17,1r-28,-37","k":{"Z":15,"X":19,"W":19,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4}},"\u00d8":{"d":"0,-55r0,-142v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,142v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm17,-197r0,142v0,27,24,40,48,40v24,0,47,-13,47,-40r0,-142v0,-26,-23,-40,-47,-40v-24,0,-48,14,-48,40xm119,-259r-89,273r-17,0r89,-273r17,0"},"\u00dc":{"d":"129,-252r-17,0r0,197v0,56,-94,53,-96,0v0,-21,1,-153,1,-197r-17,0r0,197v0,39,32,58,65,58v32,0,64,-19,64,-58r0,-197xm42,-292v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm87,-292v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12","k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00db":{"d":"112,-252r17,0r0,197v0,39,-32,58,-64,58v-33,0,-65,-19,-65,-58r0,-197r17,0v0,44,-1,176,-1,197v2,53,96,56,96,0r0,-197xm91,-264r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00da":{"d":"129,-252r-17,0r0,197v0,56,-94,53,-96,0v0,-21,1,-153,1,-197r-17,0r0,197v0,39,32,58,65,58v32,0,64,-19,64,-58r0,-197xm49,-266r26,-44r20,9r-29,35r-17,0"},"\u00d9":{"d":"112,-252r17,0r0,197v0,39,-32,58,-64,58v-33,0,-65,-19,-65,-58r0,-197r17,0v0,44,-1,176,-1,197v2,53,96,56,96,0r0,-197xm54,-315r26,48r-18,0r-27,-36","k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00dd":{"d":"73,-109r61,-143r-20,0v-17,40,-34,85,-50,124v-17,-41,-32,-82,-50,-124r-19,0r61,143r0,109r17,0r0,-109xm52,-264r26,-43r21,8r-29,35r-18,0","w":156,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17}},"\u00e5":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37xm93,-203v0,18,-16,33,-35,33v-19,0,-34,-15,-34,-33v0,-19,15,-35,34,-35v19,0,35,16,35,35xm77,-203v0,-10,-9,-19,-19,-19v-10,0,-17,9,-17,19v0,10,7,18,17,18v10,0,19,-8,19,-18","w":143,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e4":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37xm34,-214v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12xm80,-214v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":143,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e3":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37xm35,-216v13,24,20,-4,36,-4v8,0,16,7,25,20r-12,10v-13,-28,-22,1,-38,1v-8,0,-16,-6,-24,-17","w":143,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e2":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,92,-6,92,40r0,120r-17,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37xm86,-184r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","w":144,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e1":{"d":"92,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-46,-34,-75,-65,-46r-10,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,11,51,37,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-37,16,-37,37xm47,-185r26,-44r21,9r-29,35r-18,0","w":143,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e0":{"d":"93,-15v-30,37,-104,8,-92,-51v-3,-46,68,-76,92,-33v10,-47,-34,-75,-66,-46r-9,-15v33,-31,91,-6,91,40r0,120r-16,0r0,-15xm17,-66v0,30,12,51,38,52v31,1,38,-23,38,-58v0,-20,-17,-31,-38,-31v-21,0,-38,16,-38,37xm42,-233r27,48r-18,0r-27,-36","w":144,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"y":71,"\u00fd":71,"\u00ff":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00eb":{"d":"108,-120v-1,45,-41,58,-92,53v-9,47,45,69,71,36r15,9v-31,43,-102,22,-102,-31v0,-60,-4,-121,54,-122v30,0,54,25,54,55xm16,-82v39,3,75,-1,75,-38v0,-21,-16,-38,-37,-38v-36,0,-41,36,-38,76xm31,-210v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12xm77,-210v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":137},"\u00ea":{"d":"108,-120v-1,45,-41,58,-92,53v-9,47,45,69,71,36r15,9v-31,43,-102,22,-102,-31v0,-60,-4,-121,54,-122v30,0,54,25,54,55xm16,-82v39,3,75,-1,75,-38v0,-21,-16,-38,-37,-38v-36,0,-41,36,-38,76xm82,-184r-28,-21v-8,6,-22,17,-30,22r-10,-12v15,-7,25,-30,46,-26v9,7,25,18,33,25","w":136},"\u00e9":{"d":"108,-120v-1,45,-41,58,-92,53v-9,47,45,69,71,36r15,9v-31,43,-102,22,-102,-31v0,-60,-4,-121,54,-122v30,0,54,25,54,55xm16,-82v39,3,75,-1,75,-38v0,-21,-16,-38,-37,-38v-36,0,-41,36,-38,76xm45,-183r26,-43r20,9r-29,34r-17,0","w":136},"\u00e8":{"d":"108,-120v-1,45,-41,58,-91,53v-9,47,44,69,71,36r14,9v-31,43,-102,22,-102,-31v0,-60,-4,-121,54,-122v30,0,54,25,54,55xm17,-82v39,3,75,-2,75,-38v0,-21,-17,-38,-38,-38v-36,0,-40,37,-37,76xm35,-233r26,48r-17,1r-28,-37","w":136},"\u00ef":{"d":"19,0r0,-173r-16,0r0,173r16,0xm-10,-216v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm35,-216v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":50},"\u00ee":{"d":"19,-173r0,173r-16,0r0,-173r16,0xm40,-186r-28,-22v-8,6,-23,18,-31,23r-9,-13v15,-7,25,-29,46,-25v9,7,24,17,32,24","w":50},"\u00ec":{"d":"19,-173r0,173r-16,0r0,-173r16,0xm-4,-233r24,45r-16,1r-25,-35","w":50},"\u00ed":{"d":"20,0r0,-173r-17,0r0,173r17,0xm3,-186r23,-39r18,8v-14,10,-14,34,-41,31","w":50},"\u00f1":{"d":"54,-158v-61,0,-30,100,-37,158r-17,0r0,-173r17,0r0,20v24,-44,92,-13,92,33r0,120r-16,0v-6,-59,23,-158,-39,-158xm28,-216v13,24,20,-4,36,-4v8,0,17,7,26,20r-13,10v-12,-28,-21,-1,-38,1v-8,0,-16,-6,-24,-17","w":144},"\u00f6":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0xm34,-215v6,0,12,6,12,12v0,7,-6,11,-12,11v-7,0,-11,-4,-11,-11v0,-7,4,-12,11,-12xm80,-215v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":146},"\u00f5":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0xm31,-218v14,24,21,-4,37,-4v8,0,16,7,25,20r-13,10v-12,-28,-21,1,-37,1v-8,0,-16,-6,-24,-17","w":146},"\u00f4":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0xm84,-184r-28,-22v-8,6,-22,18,-30,23r-10,-13v15,-7,25,-29,46,-25v9,7,25,17,33,24","w":146},"\u00f3":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0xm46,-185r26,-44r20,9r-29,35r-17,0","w":146},"\u00f2":{"d":"112,-121r0,68v0,73,-112,73,-112,0r0,-68v0,-71,112,-73,112,0xm95,-53r0,-68v0,-25,-19,-37,-39,-37v-19,0,-39,12,-39,37r0,68v0,50,78,51,78,0xm42,-231r26,48r-17,0r-28,-36","w":146},"\u00fd":{"d":"108,23r0,-195r-16,0r0,126v0,20,-18,31,-37,31v-61,-3,-31,-99,-38,-157r-17,0r0,121v-2,44,64,73,92,34v3,39,-1,77,-37,77v-10,0,-22,-5,-31,-12r-11,13v34,32,95,12,95,-38xm37,-185r27,-44r20,9r-29,35r-18,0","w":143,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"\u00fc":{"d":"54,2v75,0,49,-103,53,-174r-17,0v-7,57,24,157,-36,157v-61,0,-30,-100,-37,-157r-17,0v4,72,-21,174,54,174xm31,-214v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12xm76,-214v6,0,11,6,11,12v0,7,-5,11,-11,11v-7,0,-12,-4,-12,-11v0,-7,5,-12,12,-12","w":141,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fb":{"d":"53,2v-30,0,-53,-25,-53,-54r0,-120r17,0v7,57,-24,157,36,157v61,0,30,-100,37,-157r17,0v-4,72,22,173,-54,174xm80,-187r-28,-21v-8,6,-22,17,-30,22r-10,-13v15,-7,25,-29,46,-25v9,7,25,18,33,25","w":141,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f9":{"d":"53,2v-30,0,-53,-25,-53,-54r0,-120r16,0v7,58,-24,157,37,157v61,0,30,-100,37,-157r16,0v-4,71,22,172,-53,174xm41,-232r26,48r-17,0r-28,-36","w":140,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f8":{"d":"91,-167v29,17,21,68,21,111v0,44,-38,62,-77,51v-2,7,-5,17,-7,23r-15,-6r8,-24v-28,-17,-21,-69,-21,-112v0,-44,39,-64,76,-51v2,-5,4,-11,5,-16r16,4xm17,-124v0,33,-8,77,10,95v15,-44,30,-86,44,-130v-26,-10,-54,5,-54,35xm95,-56v0,-33,8,-76,-10,-94r-44,129v27,7,54,-4,54,-35","w":145,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fa":{"d":"53,2v75,0,50,-102,54,-174r-17,0v-7,58,24,157,-37,157v-60,0,-29,-101,-36,-157r-17,0v4,71,-21,174,53,174xm42,-184r26,-43r20,8r-29,35r-17,0","w":141},"\u00ff":{"d":"108,23r0,-195r-16,0r0,126v0,20,-18,31,-37,31v-61,-3,-31,-99,-38,-157r-17,0r0,121v-2,44,64,73,92,34v3,39,-1,77,-37,77v-10,0,-22,-5,-31,-12r-11,13v34,32,95,12,95,-38xm31,-212v7,0,12,5,12,11v0,6,-5,11,-12,11v-7,0,-12,-5,-12,-11v0,-7,5,-11,12,-11xm78,-212v7,0,12,5,12,11v0,6,-5,11,-12,11v-7,0,-12,-5,-12,-11v0,-7,5,-11,12,-11","w":143,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"$":{"d":"16,-196v-7,107,108,15,108,142v0,34,-26,53,-54,56r0,17r-17,0r0,-17v-29,-3,-53,-22,-53,-59r16,0v-1,57,87,56,92,3v10,-115,-108,-18,-108,-142v0,-34,25,-53,54,-56r0,-18r17,0r0,19v28,4,53,22,53,58r-16,0v1,-55,-88,-56,-92,-3","w":155},"d":{"d":"93,-16v-25,41,-93,9,-93,-35r0,-70v-1,-44,65,-75,93,-34r0,-96r16,0r0,251r-16,0r0,-16xm55,-157v-48,-1,-36,59,-38,106v-2,41,76,52,76,9r0,-85v0,-20,-19,-30,-38,-30","w":144,"k":{"v":13,"a":6}},"\u2030":{"d":"156,-249r18,0v-22,37,-117,183,-159,249r-19,0xm162,-55v1,-23,-10,-44,-28,-44v-19,0,-30,18,-30,40v0,23,10,42,28,43v19,1,29,-17,30,-39xm178,-56v0,31,-17,57,-46,57v-28,0,-44,-29,-44,-60v0,-31,16,-58,46,-57v27,1,44,28,44,60xm72,-186v1,-23,-11,-44,-29,-44v-19,0,-30,19,-30,40v0,23,11,42,29,43v19,1,29,-18,30,-39xm88,-186v0,31,-17,56,-46,56v-28,0,-45,-28,-45,-60v0,-31,16,-57,46,-57v27,0,45,29,45,61xm267,-55v1,-23,-11,-44,-29,-44v-19,0,-30,18,-30,40v0,23,11,42,29,43v19,1,29,-17,30,-39xm283,-56v0,31,-17,57,-46,57v-28,0,-45,-29,-45,-60v0,-31,16,-58,46,-57v27,1,45,28,45,60","w":303},"\u00a1":{"d":"21,0r0,-210r-17,0r0,210r17,0xm23,-238v0,7,-5,11,-11,11v-6,0,-12,-4,-12,-11v0,-16,23,-15,23,0","w":59}}});
Cufon.registerFont({"w":140,"face":{"font-family":"Zag Light","font-weight":300,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 3 3 0 0 2 0 4","ascent":"288","descent":"-72","bbox":"-41 -319 282 80","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":99},"\u00de":{"d":"10,-252r0,50v55,-5,106,3,106,54v0,51,-7,94,-53,94r-53,0r0,53r-10,1r0,-252r10,0xm106,-148v0,-45,-48,-47,-96,-44r0,128v48,3,96,2,96,-44r0,-40","w":150,"k":{"X":22,"x":22,"a":19}},"\u00fe":{"d":"10,-40r0,86v0,3,-10,3,-10,0r0,-293v0,-2,10,-2,10,0r0,66v26,-41,95,-16,95,32r0,77v2,49,-68,72,-95,32xm10,-69v2,22,21,40,42,40v53,0,43,-67,43,-120v0,-24,-19,-43,-43,-43v-21,0,-42,17,-42,40r0,83"},"!":{"d":"8,-26r0,-226r11,0r0,226r-11,0xm14,1v-11,0,-10,-15,0,-15v4,0,7,3,7,7v0,4,-3,8,-7,8","w":61},"\"":{"d":"5,-181r0,-71r10,0r0,71r-10,0xm27,-181r0,-71r10,0r0,71r-10,0","w":71},"#":{"d":"101,-166r-47,0v-6,30,-11,57,-16,88r47,0v5,-30,11,-57,16,-88xm4,-176r41,0v4,-21,10,-53,14,-76r10,0v-4,23,-10,53,-14,76r48,0v4,-22,9,-52,13,-76r10,0v-4,23,-9,55,-13,76r37,0r0,10r-38,0r-17,88r41,0r0,10r-42,0v-4,19,-9,47,-13,68r-11,0v4,-21,10,-49,14,-68r-48,0v-4,19,-9,47,-13,68r-10,0v4,-21,9,-49,13,-68r-37,0r0,-10r38,0v5,-30,11,-57,16,-88r-39,0r0,-10","w":190},"%":{"d":"161,-252r11,0r-161,252r-11,0xm170,-54v1,-26,-13,-49,-34,-49v-22,0,-34,21,-34,45v0,26,12,47,33,48v22,1,34,-20,35,-44xm179,-54v0,30,-16,55,-44,55v-27,0,-43,-28,-43,-59v0,-31,16,-57,44,-56v26,1,43,28,43,60xm76,-190v1,-26,-13,-49,-34,-49v-22,0,-34,21,-34,45v0,26,12,47,33,48v22,1,34,-20,35,-44xm85,-190v0,30,-16,55,-44,55v-27,0,-43,-28,-43,-59v0,-31,16,-57,44,-56v26,1,43,28,43,60","w":217},"&":{"d":"54,-9v52,-1,45,-65,44,-118v-59,-7,-88,9,-88,73v0,24,20,45,44,45xm108,-127v3,44,-14,109,29,116r0,11v-17,0,-30,-13,-35,-28v-23,47,-102,31,-102,-26v0,-39,5,-66,32,-78v-45,-18,-41,-120,22,-120v18,0,35,11,44,24r-8,6v-26,-40,-90,-14,-77,42v-1,41,40,48,85,43r0,-18r10,0r0,18r26,0r0,10r-26,0","w":157,"k":{"7":4}},"'":{"d":"6,-177r0,-75r11,0r0,75r-11,0","w":57},"(":{"d":"50,12r-6,8v-64,-52,-64,-240,1,-292r6,8v-58,48,-59,228,-1,276","w":75,"k":{"7":4}},"*":{"d":"56,-132r-10,0r0,-49r-41,26r-5,-10v13,-7,29,-17,41,-24r-41,-24r5,-9r41,25r0,-48r10,0v0,17,-1,31,-1,48r42,-25v2,4,3,5,5,9v-13,7,-30,18,-42,25v15,9,26,14,42,23r-5,9v-13,-8,-29,-16,-42,-24","w":144},"+":{"d":"54,-126r44,0r0,10r-44,0r0,45r-10,0r0,-45r-44,0r0,-10r44,0r0,-46r10,0r0,46","w":132},",":{"d":"8,-17v15,2,3,23,-2,31v-1,2,-5,1,-4,-1v5,-11,-10,-27,6,-30","w":47,"k":{"7":7,"1":18}},"-":{"d":"0,-112r103,0r0,10r-103,0r0,-10","w":143,"k":{"7":14,"3":4,"1":11}},".":{"d":"10,-18v6,0,10,4,10,9v0,5,-4,10,-10,10v-12,0,-11,-19,0,-19","w":42,"k":{"7":7,"1":18}},"\/":{"d":"86,-262r-91,277r-9,0r90,-277r10,0","w":129,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"1":{"d":"-9,-252v14,2,42,-7,42,7r0,245r-10,0r0,-242r-32,0r0,-10","w":74},"2":{"d":"60,-252v44,0,61,36,61,92v0,33,-24,53,-58,53v-27,0,-53,14,-53,44r0,53r106,0r0,10r-109,0v-6,0,-7,-2,-7,-7r0,-56v0,-37,31,-54,63,-54v42,1,50,-34,48,-80v-3,-59,-101,-60,-101,-1r-10,0v0,-36,30,-54,60,-54","w":156,"k":{"7":2,"4":5}},"3":{"d":"0,-52r10,0v0,58,104,60,104,0v0,-41,-7,-74,-43,-74r0,-11v29,-1,43,-25,43,-60v0,-30,-25,-44,-51,-44v-26,0,-53,14,-53,44r-10,0v0,-73,123,-74,125,0v1,34,-9,54,-36,66v31,10,37,38,36,79v-3,72,-125,73,-125,0","w":159,"k":{"7":7,"5":2,"\/":4}},"4":{"d":"105,-252r11,0r0,252r-11,0r0,-101r-98,0v-5,0,-7,-2,-7,-6r0,-145r10,0r0,141r95,0r0,-141","w":150,"k":{"7":11,"1":7,"\/":7}},"5":{"d":"66,-146v43,1,52,42,52,93v0,71,-120,75,-121,3r10,0v2,58,101,55,101,-3v0,-43,-3,-82,-42,-83r-58,0v-4,0,-8,-3,-8,-7r0,-102v0,-4,4,-7,8,-7r97,0r0,10r-95,0r0,96r56,0","w":154,"k":{"7":11,"3":2,"2":4,"\/":7}},"6":{"d":"0,-53r0,-146v0,-56,72,-70,108,-38v-4,3,-4,4,-8,7v-29,-26,-91,-14,-90,31r0,69v28,-45,113,-34,113,27r0,50v0,36,-30,55,-61,55v-31,0,-62,-19,-62,-55xm113,-53r0,-50v0,-30,-24,-44,-51,-44v-26,0,-52,14,-52,45r0,49v0,60,102,60,103,0","w":158,"k":{"7":5,"3":4,"1":4,"\/":4}},"7":{"d":"17,0v1,-32,-5,-66,11,-85v27,-51,83,-74,76,-157r-103,0r0,-10r107,0v36,108,-101,124,-81,252r-10,0","w":149,"k":{"\u00fa":7,"\u00f2":7,"\u00f3":7,"\u00f4":7,"\u00f5":7,"\u00f6":7,"0":7,"o":7,"g":7,"c":7,"\u2014":11,"\u2013":11,"8":4,"6":7,"5":9,"4":31,"3":7,"2":5,"1":-4,"\/":50,".":36,"-":11,",":36,"(":4,"&":4}},"8":{"d":"2,-180v0,-50,21,-76,61,-76v64,0,85,100,30,125v29,13,33,39,32,79v-2,73,-123,74,-125,0v-1,-39,2,-66,31,-79v-19,-8,-29,-27,-29,-49xm113,-180v0,-42,-16,-67,-50,-66v-35,0,-55,23,-51,66v3,30,25,44,60,44v24,0,41,-20,41,-44xm115,-52v3,-51,-13,-79,-62,-75v-34,3,-45,33,-43,75v3,60,102,59,105,0","w":155,"k":{"7":4}},"<":{"d":"80,-68r-2,0r2,0xm80,-56r-79,-47v-3,-2,-4,-6,0,-8v25,-14,55,-31,79,-46r0,11v-21,12,-48,26,-69,39v23,14,45,25,69,39r0,12","w":129},"=":{"d":"0,-113r104,0r0,10r-104,0r0,-10xm0,-154r104,0r0,10r-104,0r0,-10","w":149},"?":{"d":"43,-89v-1,-50,64,-46,52,-107v0,-24,-20,-44,-44,-44v-23,0,-44,19,-44,43v-4,-1,-6,0,-10,-1v1,-30,26,-52,54,-52v36,1,60,31,54,75v4,42,-51,47,-52,86r0,60r-10,0r0,-60xm49,-14v3,0,6,3,6,8v0,4,-3,7,-6,7v-4,0,-7,-3,-7,-7v0,-5,3,-8,7,-8"},"@":{"d":"0,-50r0,-69v-1,-114,168,-124,170,-6r0,113v0,33,-46,33,-46,1r0,-7v-29,30,-88,11,-88,-33r0,-68v-2,-42,60,-63,88,-33v-3,-8,4,-14,10,-9r0,150v0,9,6,15,13,15v6,0,13,-6,13,-16r0,-113v0,-50,-36,-74,-72,-74v-39,0,-78,26,-78,80r0,69v0,64,61,89,119,70r3,10v-65,19,-132,-7,-132,-80xm46,-119v0,48,-9,107,39,106v19,0,39,-10,39,-30v0,-48,15,-114,-39,-114v-21,0,-39,17,-39,38","w":207},"[":{"d":"0,-267v0,-3,1,-5,5,-5r46,0r0,10r-41,0r0,270r41,0r0,10r-46,0v-4,0,-5,-1,-5,-4r0,-281","w":58},"^":{"d":"73,-212r-35,-27v-11,9,-24,19,-35,27r-7,-8r37,-28v3,-3,6,-3,9,0v13,9,25,19,37,28","w":115},"_":{"d":"-3,-5r157,0r0,10r-157,0r0,-10","w":185},"`":{"d":"41,-294r24,41r-11,1r-25,-34","w":142},"{":{"d":"28,-163v-1,15,-6,31,-20,38v14,8,19,22,20,37v3,32,13,78,40,99r-5,9v-28,-23,-42,-72,-45,-107v-1,-17,-11,-34,-30,-34r0,-9v19,0,29,-17,30,-34v3,-36,15,-85,45,-107r6,7v-26,22,-38,69,-41,101","w":83},"|":{"d":"16,-279r0,319r-10,0r0,-319r10,0","w":58},"~":{"d":"11,-115v15,25,32,-6,49,-6v10,0,19,7,27,18r-8,5v-17,-28,-32,2,-52,4v-9,0,-18,-6,-25,-16","w":127},"\u2020":{"d":"58,-199r45,0r0,10r-45,0r0,189r-10,0r0,-189r-45,0r0,-10r45,0r0,-52r10,0r0,52","w":138},"\u00b0":{"d":"134,-192v0,36,-31,66,-67,66v-37,0,-66,-30,-66,-66v0,-36,29,-66,66,-66v36,0,67,30,67,66xm123,-192v0,-31,-24,-56,-56,-56v-31,0,-55,25,-55,56v0,31,24,56,55,56v32,0,56,-25,56,-56","w":169},"\u00a2":{"d":"0,-159v0,-38,38,-65,76,-51r14,-42r10,2v-4,13,-10,32,-15,45v15,10,24,25,24,45r-10,0v0,-25,-20,-43,-44,-43v-24,0,-45,20,-45,44r0,72v0,24,21,43,45,43v24,0,44,-19,44,-44r10,0v0,39,-39,67,-76,50v-4,12,-7,26,-11,38r-11,-3r13,-40v-33,-19,-24,-69,-24,-116","w":146},"\u00a3":{"d":"124,0r-128,0r0,-10r26,0r0,-94r-26,0r0,-10r26,0r0,-85v0,-30,24,-53,54,-53v31,0,54,26,53,57r-10,0v1,-26,-17,-47,-43,-47v-56,0,-43,73,-44,128r50,0r0,10r-50,0r0,94r92,0r0,10","w":166,"k":{"4":5}},"\u00a7":{"d":"93,-78v19,-63,-53,-46,-79,-69v-13,28,6,51,37,51v16,0,32,6,42,18xm94,-199v-23,-33,-82,-19,-81,24v0,23,19,32,42,32v38,0,66,40,45,76v24,63,-65,96,-100,45r9,-6v21,31,85,27,85,-20v-1,-60,-94,-16,-94,-80v0,-19,8,-27,3,-47v1,-55,74,-72,100,-28","w":144,"k":{"7":5}},"\u2022":{"d":"108,-127v0,30,-25,54,-55,54v-30,0,-53,-24,-53,-54v0,-30,23,-54,53,-54v30,0,55,24,55,54xm98,-127v0,-24,-21,-44,-45,-44v-24,0,-43,20,-43,44v0,24,19,43,43,43v24,0,45,-19,45,-43","w":141},"\u00b6":{"d":"105,-242r0,242r-10,0r0,-105v-69,8,-102,-18,-95,-92v4,-46,46,-57,98,-52v5,0,7,2,7,7xm95,-239v-44,-3,-83,2,-85,42v-3,44,4,82,43,82r42,0r0,-124"},"\u00df":{"d":"0,-198v0,-30,24,-53,55,-53v59,0,72,98,23,119v50,20,43,137,-24,133r-35,0r0,-10v56,6,85,-14,80,-74v-3,-38,-37,-49,-81,-44r0,-10v50,5,79,-8,79,-61v0,-24,-18,-42,-42,-42v-25,0,-45,17,-45,42r0,197r-10,0r0,-197","w":144},"\u00ae":{"d":"98,-211v45,-3,51,83,15,97v26,11,23,39,22,73r-10,0v3,-35,-1,-69,-33,-68r-32,0r0,68r-9,0r0,-159v1,-18,30,-10,47,-11xm62,-201v-6,22,0,56,-2,82v43,5,73,-6,64,-55v1,-28,-32,-29,-62,-27xm171,-158v0,-108,-161,-108,-161,0r0,65v0,110,161,111,161,0r0,-65xm181,-158r0,65v0,124,-181,124,-181,0r0,-65v0,-123,181,-123,181,0","w":218},"\u00a9":{"d":"171,-158v0,-108,-161,-108,-161,0r0,65v0,110,161,111,161,0r0,-65xm132,-90r11,0v0,29,-24,51,-52,51v-28,0,-52,-22,-52,-52r0,-68v0,-30,24,-52,52,-52v28,0,52,21,52,51r-11,0v0,-24,-18,-41,-41,-41v-22,0,-42,18,-42,42v-1,50,-8,110,42,110v23,0,41,-18,41,-41xm181,-158r0,65v0,124,-181,124,-181,0r0,-65v0,-123,181,-123,181,0","w":218},"\u2122":{"d":"43,-242r0,118r-10,0r0,-118r-32,0r0,-10r75,0r0,10r-33,0xm98,-226r1,103r-11,0r0,-122v0,-8,7,-8,11,-3r45,91r45,-90v1,-5,10,-6,10,2r0,122r-10,0r1,-103v-13,27,-28,55,-41,81v-4,5,-7,5,-10,-1v-14,-31,-26,-49,-41,-80","w":248},"\u00b4":{"d":"22,-250r24,-37r11,5r-24,32r-11,0","w":106},"\u00a8":{"d":"28,-272v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9xm75,-272v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9","w":142},"\u00a5":{"d":"92,-103r-22,0r0,19r22,0r0,10r-22,0r0,74r-10,0r0,-74r-21,0r0,-10r21,0r0,-19r-21,0r0,-9r18,0r-58,-140r11,-1r55,133r56,-132r11,0r-59,140r19,0r0,9","w":167,"k":{"4":7}},"\u00aa":{"d":"95,-92v-34,37,-95,11,-95,-49v0,-48,64,-72,95,-35v10,-49,-35,-82,-71,-53r-6,-9v31,-29,87,-5,87,40r0,122r-10,0r0,-16xm10,-141v0,33,14,55,42,56v34,1,43,-24,43,-63v0,-23,-20,-36,-43,-36v-23,0,-42,19,-42,43xm109,-46r-101,0r0,-11r101,0r0,11"},"\u0192":{"d":"0,-9v42,0,50,-49,50,-91r-37,0r0,-10r38,0r7,-85v4,-29,30,-53,58,-53r0,10v-24,0,-46,19,-48,44r-6,84r37,0r0,10r-39,0v2,53,-12,101,-61,101","k":{"5":4,"4":11,"1":-11}},"\u00a0":{"w":108},"\u2013":{"d":"1,-112r127,0r0,10r-127,0r0,-10","w":167,"k":{"7":14,"1":11}},"\u2014":{"d":"0,-112r255,0r0,10r-255,0r0,-10","w":298,"k":{"7":14,"1":11}},"\u2018":{"d":"16,-216v-16,-2,-5,-25,-3,-37r11,1v-10,14,8,32,-8,36","w":63},"\u00a4":{"d":"16,-144r41,0r0,10r-41,0r0,20r41,0r0,10r-41,0r0,51v0,59,104,61,104,1r10,0v-1,72,-124,72,-124,-1r0,-51r-15,0r0,-10r15,0r0,-20r-15,0r0,-10r15,0r0,-52v0,-72,124,-74,124,-1r-10,0v-1,-57,-104,-58,-104,1r0,52","w":169,"k":{"1":-7}},"\u2039":{"d":"56,-181r-43,58r43,59r-8,7r-45,-62v-2,-4,-2,-3,1,-8r44,-60","w":103},"\u00b7":{"d":"33,-148v10,0,18,9,18,19v0,10,-8,17,-18,17v-10,0,-17,-7,-17,-17v0,-10,7,-19,17,-19","w":107},"\u2219":{"d":"33,-148v10,0,18,9,18,19v0,10,-8,17,-18,17v-10,0,-17,-7,-17,-17v0,-10,7,-19,17,-19","w":107},"\u02c6":{"d":"95,-247r-27,-21r-27,20r-5,-8v12,-5,21,-23,36,-20v8,6,22,15,30,21","w":176},"\u02dc":{"d":"22,-271v13,24,24,-5,38,-5v7,0,14,5,22,16r-8,6v-13,-27,-25,3,-40,3v-7,0,-14,-6,-20,-14","w":128},"\u00af":{"d":"1,-258r105,0r0,10r-105,0r0,-10","w":149},"\u017d":{"w":180},"a":{"d":"95,-18v-30,45,-107,13,-95,-47v-2,-49,69,-73,95,-31v10,-51,-33,-87,-70,-57r-6,-9v32,-28,86,-3,86,41r0,121r-10,0r0,-18xm10,-65v0,33,15,56,43,57v34,1,42,-24,42,-63v0,-23,-19,-37,-42,-37v-23,0,-43,20,-43,43","w":141,"k":{"\u00ff":71,"\u00f8":30,"\u00f9":30,"\u00fb":30,"\u00fc":30,"\u00fd":71,"\u00dd":71,"\u00d9":30,"\u00db":30,"\u00dc":30,"\u00d2":22,"\u00d3":22,"\u00d5":22,"\u00c7":23,"\u0178":71,"Y":71,"X":6,"W":56,"V":56,"U":30,"T":38,"Q":2,"O":22,"J":2,"G":23,"C":23,"z":6,"y":71,"x":13,"w":21,"v":26,"u":30,"o":23,"k":-6,"j":3,"g":23,"c":23,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"6":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23}},"b":{"d":"106,-49v2,47,-71,73,-96,30r0,19r-10,0r0,-252r10,0r0,100v29,-43,96,-17,96,30r0,73xm96,-49v0,-52,9,-115,-43,-115v-22,0,-43,12,-43,35r0,89v6,49,86,37,86,-9","w":142,"k":{"\u00dd":36,"\u0178":36,"Z":9,"Y":36,"X":23,"W":32,"V":34,"T":38,"A":19,"z":6,"x":22,"w":19,"v":23,"s":6,"c":4,"a":8}},"c":{"d":"96,-51r10,0v0,29,-24,53,-53,53v-29,0,-53,-24,-53,-53r0,-70v0,-30,24,-53,53,-53v28,0,53,22,53,52r-10,0v0,-24,-20,-42,-43,-42v-23,0,-43,19,-43,43v0,52,-9,113,43,113v24,0,43,-20,43,-43","w":141,"k":{"\u00dd":42,"\u0178":42,"Z":8,"Y":42,"X":27,"W":31,"V":36,"T":44,"J":9,"A":15,"z":13,"x":21,"w":15,"v":26,"s":9,"a":9}},"e":{"d":"105,-121v-1,47,-43,58,-95,53v-10,51,47,77,79,44r9,6v-31,38,-98,17,-98,-33r0,-70v0,-29,23,-53,53,-53v29,0,52,23,52,53xm10,-78v44,3,85,-1,85,-43v0,-24,-18,-43,-42,-43v-41,0,-47,41,-43,86","k":{"d":6,"\u00ff":6,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":6,"\u00dd":34,"\u0178":34,"\u0153":6,"q":6,"\u00b5":6,"Z":17,"Y":34,"X":23,"W":27,"V":26,"T":57,"S":6,"R":6,"Q":6,"J":19,"H":6,"z":15,"y":6,"x":23,"w":19,"v":32,"u":10,"s":6,"r":2,"p":9,"o":6,"g":9,"a":15}},"f":{"d":"10,-120r0,120r-10,0r0,-198v0,-31,26,-54,55,-54r0,10v-24,0,-45,20,-45,44r0,68r40,0r0,10r-40,0","w":79,"k":{"K":-6,"F":-6,"A":15,"z":8,"x":6,"w":6,"v":13,"o":6,"a":13}},"g":{"d":"107,27v1,46,-57,69,-91,40r6,-8v28,22,74,5,74,-32r0,-47v-25,42,-96,15,-96,-30r0,-73v-2,-46,70,-73,96,-31r0,-18r11,0r0,199xm10,-123r0,73v-2,47,86,58,86,6r0,-87v-5,-55,-87,-37,-86,8","w":141,"k":{"\u00dd":27,"\u0178":27,"Y":27,"X":13,"W":19,"V":21,"T":40,"F":-6,"x":4,"w":15,"v":13,"k":-6}},"h":{"d":"53,-163v-66,0,-37,101,-43,163r-10,0r0,-252r10,0r0,100v25,-41,96,-18,96,32r0,120r-10,0v-6,-63,23,-163,-43,-163","w":141,"k":{"\u00dd":34,"\u0178":34,"Y":34,"X":15,"W":27,"V":25,"T":44,"A":9,"z":8,"x":13,"w":15,"v":21,"a":4}},"i":{"d":"4,-197v0,-11,16,-10,16,0v0,10,-16,10,-16,0xm17,0r0,-172r-10,0r0,172r10,0","w":58,"k":{"\u00dd":21,"\u0178":21,"Y":21,"X":11,"W":15,"V":15,"T":40,"x":15,"w":13,"v":15,"a":15}},"j":{"d":"7,27r0,-199r11,0r0,199v0,30,-25,53,-54,53r1,-11v23,0,42,-19,42,-42xm12,-205v4,0,8,3,8,8v0,11,-15,10,-15,0v0,-5,3,-8,7,-8","w":60,"k":{"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u0178":21,"Z":6,"Y":21,"W":21,"V":32,"T":49,"A":-2,"z":13,"w":21,"v":23,"u":6,"e":13,"a":13}},"k":{"d":"93,0v-19,-35,-26,-90,-83,-81r0,81r-10,0r0,-252r10,0r0,161v58,8,64,-47,84,-81r10,0v-17,31,-22,77,-60,86v38,10,43,55,60,86r-11,0","w":137,"k":{"d":13,"\u00ff":9,"\u00fa":30,"\u00f8":8,"\u00f9":8,"\u00fb":8,"\u00fc":8,"\u00fd":9,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":27,"\u00d2":8,"\u00d3":8,"\u00d5":8,"\u00c7":6,"\u0178":27,"\u0153":13,"0":30,"q":13,"\u00b5":30,"Z":8,"Y":27,"X":17,"W":26,"V":25,"T":38,"S":9,"Q":6,"O":8,"J":26,"G":4,"C":6,"z":4,"y":9,"x":17,"w":19,"v":19,"u":8,"s":10,"o":13,"j":10,"g":9,"e":10,"c":10,"a":15,"6":30}},"l":{"d":"10,-54v0,24,18,44,41,44r0,10v-30,0,-51,-23,-51,-54r0,-198r10,0r0,198","w":75,"k":{"d":8,"\u00ff":2,"\u00fd":2,"\u00dd":36,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":36,"\u0153":6,"q":6,"\u00b5":6,"Y":36,"W":28,"V":23,"T":21,"O":6,"J":6,"y":2,"x":6,"w":25,"v":40,"s":4,"o":6,"j":4,"e":4,"a":6}},"m":{"d":"53,-165v-65,0,-38,102,-43,165r-10,0r0,-172r10,0r0,24v18,-39,78,-34,91,7v18,-55,100,-36,100,20r0,121r-9,0v-5,-64,23,-165,-44,-165v-64,0,-36,102,-42,165r-10,0v-6,-64,23,-165,-43,-165","w":239,"k":{"\u00dd":30,"\u0178":30,"Y":30,"W":25,"V":23,"T":46,"J":6,"A":9,"z":13,"x":8,"w":17,"v":19,"a":4}},"n":{"d":"53,-165v-65,0,-38,102,-43,165r-10,0r0,-172r10,0r0,23v25,-47,96,-22,96,28r0,121r-10,0v-6,-64,23,-165,-43,-165","w":141,"k":{"\u00dd":27,"\u0178":27,"Z":6,"Y":27,"X":4,"W":26,"V":28,"T":40,"J":6,"A":8,"x":17,"w":17,"v":30,"a":6}},"o":{"d":"109,-122r0,71v0,70,-109,71,-109,0r0,-71v0,-71,109,-71,109,0xm99,-51r0,-71v0,-57,-89,-57,-89,0r0,71v0,56,89,56,89,0","w":143,"k":{"\u00dd":42,"\u0178":42,"Z":10,"Y":42,"X":17,"W":30,"V":34,"T":51,"A":13,"x":17,"w":21,"v":23,"a":4}},"p":{"d":"10,-156v27,-40,96,-15,96,32r0,74v1,46,-70,73,-96,29r0,97r-10,0r0,-248r10,0r0,16xm96,-50v0,-53,10,-116,-44,-116v-19,0,-42,11,-42,33v0,52,-16,124,42,124v23,0,44,-18,44,-41","w":141,"k":{"\u00dd":30,"\u0178":30,"Z":13,"Y":30,"X":27,"W":34,"V":36,"T":44,"J":11,"A":15,"z":19,"x":15,"w":15,"v":23,"s":6,"a":6}},"r":{"d":"10,0r-10,0r0,-171r10,0r0,17v13,-19,37,-25,59,-15r-3,9v-26,-9,-55,3,-56,31r0,129","w":93,"k":{"d":8,"\u00dd":19,"\u0178":19,"Z":9,"Y":19,"X":13,"W":15,"V":15,"T":26,"M":-6,"L":-10,"K":-9,"J":15,"F":-9,"A":19,"w":-2,"v":4,"o":13,"n":-8,"m":-6,"l":-4,"g":9,"f":-2,"e":3,"c":13,"a":15}},"s":{"d":"89,-46v0,-58,-91,-17,-91,-78v0,-53,70,-68,96,-29r-9,6v-22,-32,-76,-18,-77,23v0,22,18,30,40,31v26,1,51,16,51,47v0,56,-78,63,-102,24r9,-5v19,30,83,26,83,-19","w":128,"k":{"\u00dd":30,"\u0178":30,"Y":30,"X":8,"W":26,"V":23,"T":42,"A":13,"x":15,"w":19,"v":15,"f":-9,"a":6}},"t":{"d":"10,-173r40,0r0,10r-40,0v4,61,-20,151,44,153r0,10v-29,0,-54,-23,-54,-54r0,-198r10,0r0,79","w":81,"k":{"\u00dd":13,"\u0178":13,"Y":13,"X":-13,"W":15,"V":8,"w":8,"v":11,"g":2,"e":11,"c":15,"a":14}},"u":{"d":"52,2v-74,0,-48,-103,-52,-174r10,0v6,63,-23,164,42,164v65,0,36,-102,42,-164r10,0v-4,71,22,174,-52,174","w":138,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"v":{"d":"18,-172r45,161v2,6,7,7,9,0r44,-161r10,0r-44,162v-5,17,-24,16,-29,0r-44,-162r9,0","w":144,"k":{"\u00f8":-2,"\u00f9":-2,"\u00fb":-2,"\u00fc":-2,"\u00dd":10,"\u00d2":-6,"\u00d3":-6,"\u00d5":-6,"\u00c7":-4,"\u0178":10,"Z":9,"Y":10,"W":9,"T":13,"S":-2,"R":-4,"P":-2,"O":-6,"N":-4,"M":-6,"L":-9,"K":-4,"J":15,"H":-6,"G":-1,"F":-11,"E":-6,"C":-4,"B":-6,"A":15,"u":-2,"t":-6,"r":-4,"p":-6,"n":-11,"m":-6,"l":-6,"k":-4,"j":2,"h":-6,"g":2,"f":-8,"b":-6,"a":7}},"w":{"d":"73,-93v3,-13,18,-12,22,0r25,80v1,4,2,3,3,1r30,-160r12,0r-31,161v-3,15,-20,15,-24,1v-6,-26,-17,-56,-25,-82v-1,-2,-2,-2,-3,0r-25,82v-3,13,-21,15,-24,-1v-10,-51,-21,-110,-30,-161r11,0r29,160v1,3,4,4,5,1","w":182,"k":{"\u00ff":-8,"\u00fa":19,"\u00fd":-8,"\u00f2":19,"\u00f3":19,"\u00f4":19,"\u00f5":19,"\u00f6":19,"\u00dd":15,"\u00d2":-2,"\u00d3":-2,"\u00d5":-2,"\u00c7":-2,"\u0178":15,"0":19,"Y":15,"W":9,"V":9,"T":21,"P":-2,"O":-2,"N":-2,"M":-6,"L":-4,"J":6,"G":-2,"D":-9,"C":-2,"A":13,"z":-4,"y":-8,"t":-6,"p":-6,"o":-4,"n":-4,"m":-4,"l":-4,"k":-2,"j":5,"h":-4,"g":2,"f":-6,"c":4,"b":-4,"a":2,"6":19}},"x":{"d":"106,0r-48,-77r-49,77r-11,0r54,-86v-17,-26,-37,-60,-53,-86r11,0r48,77r47,-77r12,0r-54,86r55,86r-12,0","w":127,"k":{"d":-6,"\u00ff":-13,"\u00fa":26,"\u00f8":-9,"\u00f9":-9,"\u00fb":-9,"\u00fc":-9,"\u00fd":-13,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":4,"\u00d9":-10,"\u00db":-10,"\u00dc":-10,"\u00d2":-13,"\u00d3":-13,"\u00d5":-13,"\u00c7":-13,"\u0178":4,"\u0153":-8,"0":26,"q":-8,"\u00b5":26,"Y":4,"W":6,"V":8,"U":-10,"T":10,"S":-6,"R":-11,"Q":-13,"P":-10,"O":-13,"N":-13,"M":-10,"L":-9,"J":2,"I":-4,"H":-10,"G":-8,"F":-17,"E":-10,"D":-8,"C":-13,"B":-9,"z":-6,"y":-13,"u":-9,"t":-19,"r":-13,"p":-13,"o":-4,"n":-17,"m":-15,"l":-11,"k":-8,"j":-5,"h":-8,"g":-4,"f":-15,"e":-9,"c":-6,"b":-13,"6":26}},"y":{"d":"105,27v2,47,-57,68,-90,40r7,-8v27,22,73,5,73,-32r0,-46v-27,41,-96,14,-95,-31r0,-122r10,0v6,63,-23,161,44,163v22,0,41,-12,41,-35r0,-128r10,0r0,199","w":141,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"z":{"d":"95,-162r-94,0r0,-10r94,0v12,0,16,9,10,19r-95,140v-1,2,0,3,2,3r90,0r0,10r-90,0v-11,0,-17,-9,-11,-19r95,-139v1,-3,1,-4,-1,-4","w":139,"k":{"d":6,"\u00dd":27,"\u0178":27,"\u0153":11,"q":11,"\u00b5":11,"Y":27,"X":15,"W":23,"V":23,"T":23,"S":11,"J":8,"E":6,"A":15,"x":17,"w":10,"v":21,"s":8,"m":6,"g":15,"e":8,"c":6,"a":23}},"A":{"d":"142,0r-24,-94r-84,0r-24,94r-11,0r62,-242v5,-17,26,-17,30,0r62,242r-11,0xm115,-104r-34,-136v-2,-6,-7,-6,-9,0r-35,136r78,0","w":180,"k":{"d":6,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00dd":46,"\u00d9":6,"\u00db":6,"\u00dc":6,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u00c7":6,"\u0178":46,"\u0153":4,"0":19,"q":4,"\u00b5":4,"Z":17,"Y":46,"X":19,"W":40,"V":40,"U":6,"T":42,"S":8,"Q":6,"O":2,"J":13,"G":13,"E":8,"C":6,"z":9,"x":15,"w":26,"v":30,"u":13,"s":6,"o":6,"l":10,"j":1,"g":15,"e":9,"c":13,"a":6}},"B":{"d":"14,-242v-2,0,-4,1,-4,4r0,97r63,0v28,-1,41,-25,39,-57v-2,-46,-49,-47,-98,-44xm69,-252v59,-5,73,99,22,117v33,10,38,41,36,82v-2,52,-56,58,-113,53v-9,0,-14,-5,-14,-14r0,-224v2,-25,45,-12,69,-14xm14,-10v49,2,99,3,102,-43v2,-42,-6,-76,-43,-77r-63,0r0,116v0,3,2,4,4,4","w":161,"k":{"\u00dd":21,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":21,"Z":10,"Y":21,"X":22,"W":19,"V":30,"T":27,"O":6,"J":10,"A":13,"x":22,"w":21,"v":17,"s":8,"a":11}},"C":{"d":"115,-53r11,0v-1,74,-126,73,-126,-1r0,-145v0,-76,124,-74,126,0r-11,0v0,-61,-105,-61,-105,0r0,145v0,60,105,62,105,1","w":159,"k":{"\u00dd":23,"\u0178":23,"Z":15,"Y":23,"X":25,"W":21,"V":23,"T":19,"S":6,"M":6,"J":15,"A":15,"z":11,"x":19,"w":19,"v":23,"s":9,"a":6}},"D":{"d":"117,-198v2,-49,-70,-51,-107,-40r0,224v0,3,2,4,4,4v50,2,103,4,103,-44r0,-144xm74,0v-25,0,-74,12,-74,-14r0,-224v4,-26,49,-14,74,-14v28,0,53,24,53,54r0,144v0,31,-25,54,-53,54","w":162,"k":{"\u00dd":21,"\u0178":21,"Z":15,"Y":21,"X":26,"W":23,"V":23,"T":25,"J":9,"A":17,"x":17,"w":13,"v":17,"a":4}},"E":{"d":"102,-252r0,10r-88,0v-2,0,-4,1,-4,4r0,104r88,0r0,10r-88,0v-1,52,-7,113,43,114r49,0r0,10v-55,5,-101,-5,-102,-55r0,-183v0,-8,7,-14,14,-14r88,0","w":142,"k":{"d":4,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u00d9":13,"\u00db":13,"\u00dc":13,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":11,"\u0178":21,"\u0153":8,"q":8,"\u00b5":8,"Z":10,"Y":21,"X":13,"W":21,"V":17,"U":13,"T":9,"S":9,"R":8,"O":13,"J":23,"G":17,"C":11,"A":13,"z":15,"x":21,"w":21,"v":19,"u":6,"s":8,"r":6,"o":11,"c":6,"a":11}},"F":{"d":"102,-252r0,10r-88,0v-2,0,-4,1,-4,4r0,103r86,0r0,10r-86,0r0,125r-10,0r0,-238v0,-8,7,-14,14,-14r88,0","w":136,"k":{"d":10,"\u00ff":15,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":15,"\u00dd":15,"\u00d9":4,"\u00db":4,"\u00dc":4,"\u00c7":4,"\u0178":15,"\u0153":15,"q":15,"\u00b5":15,"Z":9,"Y":15,"X":13,"W":10,"V":9,"U":4,"T":15,"S":13,"Q":15,"J":36,"G":10,"C":4,"A":34,"z":19,"y":15,"x":19,"w":17,"v":17,"u":13,"s":10,"p":13,"o":17,"i":10,"g":13,"e":13,"c":10,"b":8,"a":21}},"G":{"d":"72,-122r0,-10v21,2,55,-8,55,14r0,65v-1,74,-127,73,-127,-1r0,-146v0,-37,31,-55,63,-55v31,0,63,18,63,55r-11,0v0,-60,-105,-60,-105,0r0,146v0,61,106,62,106,1r0,-65v-6,-9,-31,-2,-44,-4","w":161,"k":{"\u00dd":17,"\u0178":17,"Z":19,"Y":17,"X":19,"W":17,"V":21,"T":32,"A":13,"x":13,"w":15,"v":21,"a":4}},"H":{"d":"117,0r-10,0r0,-120r-97,0r0,120r-10,0r0,-252r10,0r0,122r97,0r0,-122r10,0r0,252","w":151,"k":{"\u00dd":15,"\u0178":15,"Y":15,"X":6,"W":10,"V":11,"T":21,"x":15,"w":11,"v":13,"a":2}},"I":{"d":"16,0r-10,0r0,-252r10,0r0,252","w":58,"k":{"Z":15,"T":27,"x":17,"w":15,"v":15,"s":10,"e":8}},"J":{"d":"68,-252v21,2,54,-8,55,14r0,184v0,38,-31,58,-63,58v-32,0,-63,-19,-63,-58r11,0v0,63,105,62,105,0r0,-184v-7,-9,-31,-2,-45,-4r0,-10","w":158,"k":{"X":6,"W":15,"T":19,"A":15,"w":10,"v":11,"a":2}},"K":{"d":"0,0r0,-252r10,0r0,118v43,3,73,-4,83,-41r21,-77r11,0v-16,45,-15,105,-60,123v48,18,43,82,60,129r-11,0v-16,-58,-18,-138,-104,-123r0,123r-10,0","w":159,"k":{"d":13,"\u00ff":15,"\u00fa":30,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":15,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":19,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":8,"\u0178":19,"\u0153":10,"0":30,"q":10,"\u00b5":30,"Y":19,"X":15,"W":21,"V":21,"T":19,"Q":6,"O":10,"J":19,"I":11,"G":10,"E":9,"D":11,"C":8,"A":15,"z":9,"y":15,"x":22,"w":30,"v":27,"u":13,"s":9,"r":2,"o":13,"n":4,"j":10,"i":9,"g":6,"e":9,"c":6,"a":13,"6":30}},"L":{"d":"105,0r-91,0v-8,1,-14,-5,-14,-14r0,-238r10,0r0,238v0,2,2,4,4,4r91,0r0,10","w":132,"k":{"d":13,"\u00ff":23,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":23,"\u00dd":59,"\u00d9":11,"\u00db":11,"\u00dc":11,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":17,"\u0178":59,"\u0153":10,"q":10,"\u00b5":10,"Z":8,"Y":59,"X":10,"W":46,"V":46,"U":11,"T":61,"S":17,"Q":9,"O":13,"J":13,"G":10,"E":10,"C":17,"A":6,"y":23,"x":10,"w":36,"v":32,"u":13,"o":13,"i":6,"g":8,"e":10,"c":13,"a":17}},"M":{"d":"138,0r0,-242v0,-2,-3,-2,-3,-1r-53,161v-3,9,-16,10,-19,1r-52,-161v0,-1,-1,-1,-1,0r0,242r-10,0r0,-242v0,-15,18,-16,21,-4r52,164r52,-164v5,-13,23,-10,23,4r0,242r-10,0","w":183,"k":{"\u00dd":19,"\u0178":19,"Y":19,"X":15,"W":6,"V":6,"K":-6,"J":10,"A":8,"x":10,"w":15,"v":17,"a":4}},"N":{"d":"22,-244r92,234v0,1,2,1,2,0r-1,-242r11,0r0,241v0,13,-17,15,-22,3r-92,-235v-1,-1,-2,0,-2,1r0,242r-10,0r0,-241v0,-14,17,-16,22,-3","w":160,"k":{"\u00dd":13,"\u0178":13,"Y":13,"X":8,"W":13,"V":13,"T":19,"J":6,"A":6,"x":11,"w":15,"v":13,"a":4}},"O":{"d":"0,-53r0,-146v0,-36,31,-55,63,-55v31,0,63,19,63,55r0,146v0,74,-126,73,-126,0xm10,-199r0,146v0,30,26,45,53,45v26,0,53,-15,53,-45r0,-146v0,-60,-106,-60,-106,0","w":160,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"P":{"d":"0,-238v3,-25,45,-14,69,-14v44,0,53,42,53,93v0,28,-24,54,-53,54r-59,0r0,105r-10,0r0,-238xm10,-238r0,123v50,3,100,3,102,-44v2,-44,-5,-83,-43,-83r-55,0v-2,0,-4,1,-4,4","w":149,"k":{"d":13,"\u00ff":4,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":4,"\u00dd":21,"\u0178":21,"\u0153":15,"q":15,"\u00b5":15,"Z":15,"Y":21,"X":19,"W":15,"V":17,"T":28,"J":25,"A":36,"z":10,"y":4,"x":9,"w":15,"v":13,"u":6,"s":13,"o":10,"i":6,"g":13,"e":9,"c":10,"a":19}},"Q":{"d":"126,-199v0,61,14,143,-14,181v4,4,9,8,13,12r-8,8r-13,-13v-37,27,-104,11,-104,-43r0,-145v0,-37,31,-55,63,-55v31,0,63,18,63,55xm10,-53v0,43,55,56,86,35r-14,-14r8,-8r14,14v24,-38,11,-116,11,-173v0,-60,-105,-60,-105,0r0,146","w":160,"k":{"\u00dd":27,"\u0178":27,"Y":27,"X":15,"W":19,"V":22,"T":28,"J":11,"A":9,"w":15,"v":17,"a":6}},"R":{"d":"0,-238v2,-24,44,-12,68,-14v70,-7,75,128,14,144v43,9,44,56,41,108r-10,0r0,-59v-4,-44,-53,-49,-103,-45r0,104r-10,0r0,-238xm15,-242v-3,0,-5,1,-5,4r0,124v49,3,99,0,102,-44v4,-45,-2,-84,-44,-84r-53,0","w":154,"k":{"\u00dd":21,"\u0178":21,"Y":21,"X":13,"W":15,"V":15,"T":25,"x":11,"w":15,"v":8,"a":2}},"S":{"d":"112,-52v0,-123,-112,-23,-112,-149v0,-36,30,-54,61,-54v30,0,61,18,61,54r-10,0v0,-29,-25,-44,-51,-44v-35,-1,-55,24,-51,67v6,71,112,18,112,97v0,53,-20,85,-62,84v-31,0,-60,-19,-60,-55r10,0v0,30,25,44,50,44v26,0,52,-15,52,-44","w":154,"k":{"\u00dd":17,"\u0178":17,"Y":17,"W":15,"V":10,"T":19,"A":13,"x":15,"w":17,"v":19,"f":-4}},"T":{"d":"0,-252r136,0r0,10r-63,0r0,242r-10,0r0,-242r-63,0r0,-10","w":174,"k":{"d":42,"\u00ff":33,"\u00f8":36,"\u00f9":36,"\u00fb":36,"\u00fc":36,"\u00fd":33,"\u00dd":15,"\u00d2":33,"\u00d3":33,"\u00d5":33,"\u00c7":21,"\u0178":15,"\u0153":44,"q":44,"\u00b5":44,"Z":17,"Y":15,"X":15,"W":19,"V":13,"S":30,"R":17,"Q":28,"P":21,"O":33,"N":13,"L":19,"K":17,"J":59,"I":19,"H":15,"G":32,"F":21,"E":11,"D":13,"C":21,"B":15,"A":51,"z":42,"y":33,"x":38,"w":48,"v":44,"u":36,"s":46,"r":34,"p":38,"o":51,"n":40,"m":36,"l":17,"k":19,"j":42,"i":42,"h":26,"g":42,"f":25,"e":49,"c":51,"b":13,"a":44}},"U":{"d":"116,-252r10,0r0,199v0,74,-126,75,-126,0r0,-199r10,0r0,199v1,61,105,61,106,0r0,-199","w":160,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"V":{"d":"12,-252r62,241v2,7,6,7,8,0r62,-241r11,0r-62,242v-5,17,-24,17,-29,0r-62,-242r10,0","w":182,"k":{"d":31,"Z":13,"X":9,"T":13,"S":11,"R":6,"Q":17,"P":8,"N":8,"L":4,"K":10,"J":32,"H":9,"G":15,"E":6,"D":11,"B":6,"A":44,"z":21,"x":21,"w":19,"v":21,"t":6,"s":26,"r":17,"p":15,"o":22,"n":17,"m":13,"l":6,"k":13,"j":23,"i":17,"h":6,"g":22,"e":32,"c":22,"a":34,"y":17,"\u00fd":17,"\u00ff":17,"6":22,"0":22,"\u00f6":22,"\u00f5":22,"\u00f4":22,"\u00f3":22,"\u00f2":22,"\u00fa":22,"u":19,"\u00fc":19,"\u00fb":19,"\u00f9":19,"\u00f8":19,"C":15,"\u00c7":15,"O":17,"\u00d5":17,"\u00d3":17,"\u00d2":17,"\u00b5":23,"q":23,"\u0153":23}},"W":{"d":"125,-12r-24,-158v-1,-2,-3,-1,-3,1r-25,157v-3,16,-20,16,-23,0r-46,-240r10,0v15,78,32,163,46,241v1,3,4,3,4,1r23,-158v2,-15,22,-15,24,-1r24,158v0,3,3,2,3,0r46,-241r11,0r-47,240v-3,17,-20,16,-23,0","w":227,"k":{"d":23,"\u00ff":17,"\u00fa":22,"\u00f8":19,"\u00f9":19,"\u00fb":19,"\u00fc":19,"\u00fd":17,"\u00f2":22,"\u00f3":22,"\u00f4":22,"\u00f5":22,"\u00f6":22,"\u00d2":17,"\u00d3":17,"\u00d5":17,"\u00c7":15,"\u0153":23,"0":22,"q":23,"\u00b5":23,"Z":13,"X":9,"W":10,"V":10,"T":15,"S":15,"R":6,"Q":17,"P":9,"O":17,"N":6,"L":11,"K":6,"J":36,"H":8,"G":15,"F":9,"E":6,"D":11,"C":15,"B":9,"A":38,"z":17,"y":17,"x":19,"w":27,"v":17,"u":19,"t":6,"s":25,"r":17,"p":13,"o":22,"n":15,"m":17,"l":6,"k":8,"j":21,"i":15,"h":4,"g":22,"e":23,"c":22,"b":6,"a":30,"6":22}},"X":{"d":"118,0r-53,-113r-53,113r-11,0r59,-125r-60,-127r10,0r55,117v18,-37,37,-80,54,-117r12,0r-60,128r58,124r-11,0","w":157,"k":{"d":17,"\u00ff":8,"\u00fa":26,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":8,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":8,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":6,"\u0178":8,"\u0153":6,"0":26,"q":6,"\u00b5":26,"Z":13,"Y":8,"T":10,"S":6,"Q":4,"O":10,"L":8,"K":8,"J":19,"G":4,"E":2,"D":6,"C":6,"B":2,"A":17,"z":15,"y":8,"w":30,"v":30,"u":6,"t":-2,"s":6,"p":4,"o":13,"l":6,"j":8,"g":6,"e":8,"c":6,"a":10,"6":26}},"Y":{"d":"131,-252r-61,142r0,110r-10,0r0,-110r-61,-142r12,0r54,130r54,-130r12,0","w":156,"k":{"d":32,"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"Z":{"d":"111,-242r-101,0r0,-10r100,0v11,0,15,7,10,17r-109,221v-1,2,0,4,2,4r104,0r0,10r-103,0v-10,0,-17,-8,-12,-18r110,-221v1,-1,1,-3,-1,-3","w":147,"k":{"d":6,"\u00ff":9,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":9,"\u00dd":4,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u0178":4,"Y":4,"W":2,"O":2,"J":10,"A":13,"y":9,"x":17,"w":30,"v":31,"u":10,"s":9,"o":8,"g":8,"e":13,"c":6,"a":13}},"\u00b5":{"d":"107,-65r-11,0r0,-34v-17,30,-69,31,-86,-1r0,101r-10,0r0,-253r10,0v6,64,-24,167,43,167v68,0,38,-103,44,-167r10,0r0,187","w":145,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":26,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"q":{"d":"0,-124v-1,-47,69,-72,96,-32r0,-16r10,0r0,248r-10,0r0,-97v-26,44,-97,17,-96,-29r0,-74xm54,-166v-53,0,-44,63,-44,116v0,48,86,56,86,6r0,-89v0,-22,-23,-33,-42,-33","w":138,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"9":{"d":"123,-198r0,147v0,56,-73,70,-108,37r8,-7v28,26,91,15,90,-30r0,-70v-28,45,-113,33,-113,-27r0,-50v0,-36,31,-54,62,-54v31,0,61,18,61,54xm10,-198r0,50v0,30,25,44,52,44v26,0,51,-14,51,-45r0,-49v0,-59,-102,-59,-103,0","w":158},"0":{"d":"0,-53r0,-144v0,-72,125,-72,125,0r0,144v0,73,-125,74,-125,0xm10,-197r0,144v0,30,26,45,52,45v26,0,52,-15,52,-45r0,-144v0,-58,-104,-59,-104,0","w":160,"k":{"A":21}},"\u00bf":{"d":"62,-159v1,50,-65,46,-52,107v0,24,21,43,44,43v23,0,43,-19,44,-43r10,2v-1,29,-26,51,-54,51v-61,0,-76,-102,-23,-124v26,-11,21,-56,21,-93v0,-3,10,-3,10,0r0,57xm65,-242v0,11,-16,12,-16,0v0,-11,16,-12,16,0","w":143},")":{"d":"-7,20r-5,-8v58,-48,57,-228,-1,-276r6,-8v64,52,64,240,0,292","w":81},">":{"d":"78,-103r-78,47r0,-12v24,-14,46,-25,69,-39v-21,-13,-48,-27,-69,-39r0,-11v24,15,53,32,78,46v4,2,3,6,0,8","w":111},"\\":{"d":"0,-263r90,280r-10,0r-90,-280r10,0","w":122},"]":{"d":"10,14v-8,10,-35,1,-51,4r0,-10r41,0r0,-270r-41,0r0,-10r46,0v4,0,5,2,5,5r0,281","w":47},"}":{"d":"24,-88v1,-15,7,-31,21,-38v-14,-8,-19,-22,-21,-37v-3,-32,-14,-77,-41,-99r6,-9v28,23,43,72,46,107v1,17,10,34,29,34r0,9v-19,0,-28,17,-29,34v-3,36,-16,85,-46,107r-6,-8v26,-20,38,-64,41,-100","w":90},"\u203a":{"d":"21,-186r-1,-1xm54,-122r-44,-58r9,-6r44,60v4,4,3,4,1,8r-45,62r-8,-7","w":108},"\u00ab":{"d":"55,-180r-43,58r42,59r-8,7r-45,-62v-2,-4,-2,-3,1,-8r44,-60xm87,-180r-43,58r42,59r-8,7r-45,-62v-2,-4,-2,-3,1,-8r44,-60","w":126},"\u00bb":{"d":"47,-186r-1,-1xm16,-186r-1,-1xm82,-122r-43,-58r8,-6r44,60v4,4,3,4,1,8r-45,62r-8,-7xm50,-122r-44,-58r9,-6r44,60v4,4,3,4,1,8r-45,62r-8,-7","w":130},":":{"d":"10,-55v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-4,3,-9,8,-9xm10,-138v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-4,3,-9,8,-9","w":56},";":{"d":"10,-138v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-4,3,-9,8,-9xm10,-55v16,3,5,20,0,29v-1,2,-3,2,-3,0v3,-14,-15,-24,3,-29","w":56},"\u201a":{"d":"6,0r0,-71r10,0r0,71r-10,0","w":56},"\u201e":{"d":"10,0r0,-73r10,0r0,73r-10,0xm32,0r0,-73r10,0r0,73r-10,0","w":77},"\u2026":{"d":"14,-17v5,0,8,3,8,8v0,5,-3,9,-8,9v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8xm42,-17v5,0,8,3,8,8v0,5,-3,9,-8,9v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8xm70,-17v5,0,8,3,8,8v0,5,-3,9,-8,9v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8","w":100},"\u0152":{"d":"130,-252r88,0r0,10r-88,0v-2,0,-4,1,-4,4r0,104r88,0r0,10r-88,0v-1,52,-7,113,43,114r49,0r0,10v-44,1,-84,3,-97,-30v-23,49,-121,42,-121,-23r0,-146v0,-60,85,-71,116,-32v-2,-12,4,-21,14,-21xm10,-199r0,146v1,60,105,60,106,0r0,-146v-1,-60,-105,-60,-106,0","w":266},"\u0153":{"d":"204,-121v-2,47,-43,58,-95,53v-10,51,47,77,79,44r8,6v-26,31,-77,22,-92,-11v-21,46,-104,39,-104,-22r0,-71v0,-61,83,-68,104,-22v18,-47,102,-34,100,23xm99,-51r0,-71v0,-57,-89,-57,-89,0r0,71v0,56,89,56,89,0xm109,-78v44,3,85,-1,85,-43v0,-24,-19,-43,-42,-43v-41,0,-47,41,-43,86","w":239,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"\u0160":{"d":"37,-296r24,19v11,-5,21,-26,30,-11v-11,5,-20,22,-34,19v-8,-6,-19,-13,-27,-19xm112,-52v0,-123,-112,-23,-112,-149v0,-36,30,-54,61,-54v30,0,61,18,61,54r-10,0v0,-29,-25,-44,-51,-44v-35,-1,-55,24,-51,67v6,71,112,18,112,97v0,53,-20,85,-62,84v-31,0,-60,-19,-60,-55r10,0v0,30,25,44,50,44v26,0,52,-15,52,-44","w":154},"\u0161":{"d":"18,-213v10,-14,21,5,32,11v12,-5,24,-27,31,-11v-12,5,-21,23,-35,20xm91,-46v0,-57,-91,-17,-91,-78v0,-53,70,-68,95,-29r-8,6v-22,-32,-76,-18,-77,23v0,22,18,30,40,31v26,1,51,16,51,47v0,56,-78,63,-102,24r9,-5v19,30,83,26,83,-19","w":129},"\u2021":{"d":"51,-51r-46,0r-1,-10r47,0r0,-128r-46,0r0,-10r46,0r0,-53r10,1r0,52r45,0r1,10r-46,0r0,128r44,0r0,10r-44,0r0,51r-10,0r0,-51"},"\u017e":{"d":"24,-213v9,-14,21,6,31,11v11,-4,23,-26,32,-11v-12,5,-21,24,-36,20xm94,-162r-94,0r0,-10r94,0v12,0,16,9,10,19r-95,140v-1,2,-1,3,1,3r91,0r0,10r-91,0v-11,0,-16,-9,-10,-19r95,-139v1,-3,1,-4,-1,-4","w":138},"\u00e7":{"d":"96,-51r10,0v0,27,-21,49,-48,52v1,16,17,30,32,25r5,8v-23,10,-46,-8,-46,-33v-27,-3,-49,-25,-49,-52r0,-70v0,-30,24,-53,53,-53v28,0,53,22,53,52r-10,0v0,-24,-20,-42,-43,-42v-23,0,-43,19,-43,43v0,52,-9,113,43,113v24,0,43,-20,43,-43","w":141},"\u00b8":{"d":"39,-5r10,1v0,24,18,42,44,36r1,10v-32,9,-59,-15,-55,-47","w":156},"\u00f0":{"d":"123,-198r0,147v0,56,-73,70,-108,37r8,-7v28,26,91,15,90,-30r0,-70v-28,45,-113,33,-113,-27r0,-50v0,-36,31,-54,62,-54v31,0,61,18,61,54xm10,-198r0,50v0,30,25,44,52,44v26,0,51,-14,51,-45r0,-49v0,-59,-102,-59,-103,0","w":158},"\u201c":{"d":"16,-216v-16,-2,-5,-25,-2,-36r10,0v-1,6,-5,13,-6,19v9,2,7,18,-2,17xm42,-216v-16,-2,-5,-25,-2,-36r10,0v-1,6,-5,13,-6,19v10,1,7,18,-2,17","w":81},"\u2019":{"d":"16,-252v15,2,4,25,2,36r-10,-1v8,-13,-8,-32,8,-35","w":63},"\u201d":{"d":"41,-252v15,2,4,24,2,35r-10,0v1,-6,4,-13,5,-19v-9,-3,-7,-17,3,-16xm15,-252v15,2,4,24,2,35r-10,0v1,-6,4,-13,5,-19v-10,-2,-7,-17,3,-16","w":81},"\u0178":{"d":"65,-110r61,-142r-12,0r-54,130r-54,-130r-11,0r60,142r0,110r10,0r0,-110xm37,-284v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9xm84,-284v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9","w":151,"k":{"d":32,"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"\u00c6":{"d":"144,-252r87,0r0,10r-87,0v-1,0,-4,1,-4,4r0,104r88,0r0,10r-88,0v0,23,1,46,1,69v0,51,43,46,90,45r0,10v-53,3,-97,0,-101,-51r-12,-42r-84,0v-7,30,-17,65,-24,95v-4,0,-8,-4,-11,-2r63,-242v6,-17,24,-18,29,0r39,153r0,-149v0,-8,7,-14,14,-14xm37,-104r79,0v-14,-46,-21,-99,-39,-141v-2,0,-4,2,-5,5","w":273},"\u00e6":{"d":"96,-15v-35,39,-105,11,-95,-50v-2,-49,65,-72,95,-34v10,-49,-35,-83,-70,-54r-7,-9v26,-23,70,-10,82,19v17,-49,104,-35,101,22v-2,47,-44,58,-96,53v-10,53,47,77,79,44r9,6v-24,28,-69,24,-88,-3r0,21r-10,0r0,-15xm11,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm106,-78v45,3,85,-2,86,-43v0,-24,-19,-43,-43,-43v-41,0,-47,41,-43,86","w":235},"\u00c5":{"d":"114,-94r25,94r11,0r-63,-242v-4,-17,-25,-17,-29,0r-62,242r11,0r24,-94r83,0xm112,-104r-79,0r36,-136v2,-6,6,-6,8,0xm105,-286v0,17,-15,31,-33,31v-18,0,-32,-14,-32,-31v0,-18,14,-33,32,-33v18,0,33,15,33,33xm95,-286v0,-13,-10,-23,-23,-23v-12,0,-22,10,-22,23v0,12,10,22,22,22v13,0,23,-10,23,-22","w":176},"\u00c4":{"d":"114,-94r25,94r11,0r-63,-242v-4,-17,-25,-17,-29,0r-62,242r11,0r24,-94r83,0xm112,-104r-79,0r36,-136v2,-6,6,-6,8,0xm49,-284v5,0,8,4,8,8v0,5,-3,9,-8,9v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8xm96,-284v5,0,8,4,8,8v0,5,-3,9,-8,9v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8","w":176},"\u00c3":{"d":"139,0r-25,-94r-83,0r-24,94r-11,0r62,-242v5,-17,25,-17,29,0r63,242r-11,0xm112,-104r-35,-136v-2,-6,-6,-6,-8,0r-36,136r79,0xm45,-289v13,23,24,-7,39,-5v7,0,13,5,21,16r-8,6v-12,-27,-24,2,-39,2v-8,0,-29,-13,-13,-19","w":176},"\u00c2":{"d":"139,0r-25,-94r-83,0r-24,94r-11,0r62,-242v5,-17,25,-17,29,0r63,242r-11,0xm112,-104r-35,-136v-2,-6,-6,-6,-8,0r-36,136r79,0xm100,-265r-27,-20r-27,20r-6,-8v12,-5,22,-24,37,-21v8,6,22,15,30,21","w":176},"\u00c1":{"d":"114,-94r25,94r11,0r-63,-242v-4,-17,-25,-17,-29,0r-62,242r11,0r24,-94r83,0xm112,-104r-79,0r36,-136v2,-6,6,-6,8,0xm66,-266r24,-37r11,5r-24,32r-11,0","w":176},"\u00c0":{"d":"139,0r-25,-94r-83,0r-24,94r-11,0r62,-242v5,-17,25,-17,29,0r63,242r-11,0xm112,-104r-35,-136v-2,-6,-6,-6,-8,0r-36,136r79,0xm57,-309r24,42r-12,0r-24,-34","w":176},"\u00c7":{"d":"115,-53r11,0v-1,74,-126,73,-126,-1r0,-145v0,-74,125,-75,126,0r-11,0v0,-61,-104,-61,-104,0r0,145v0,60,104,62,104,1xm55,-1r11,0v-1,24,19,45,43,36r2,10v-31,9,-60,-14,-56,-46","w":160},"\u00cb":{"d":"102,-252r-88,0v-7,0,-14,6,-14,14r0,183v1,49,47,61,102,55r0,-10v-47,4,-92,-2,-92,-45r0,-69r88,0r0,-10r-88,0r0,-104v0,-3,2,-4,4,-4r88,0r0,-10xm31,-284v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9xm79,-284v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9","w":142},"\u00ca":{"d":"102,-252r0,10r-88,0v-2,0,-4,1,-4,4r0,104r88,0r0,10r-88,0v-1,52,-7,113,43,114r49,0r0,10v-55,5,-101,-5,-102,-55r0,-183v0,-8,7,-14,14,-14r88,0xm78,-265r-27,-20r-27,20r-6,-8v12,-5,22,-24,37,-21v8,6,22,15,30,21","w":142},"\u00c9":{"d":"102,-252r-88,0v-7,0,-14,6,-14,14r0,183v1,49,47,61,102,55r0,-10v-47,4,-92,-2,-92,-45r0,-69r88,0r0,-10r-88,0r0,-104v0,-3,2,-4,4,-4r88,0r0,-10xm48,-265r23,-37r12,6r-25,31r-10,0","w":142},"\u00c8":{"d":"102,-252r0,10r-88,0v-2,0,-4,1,-4,4r0,104r88,0r0,10r-88,0v-1,52,-7,113,43,114r49,0r0,10v-55,5,-101,-5,-102,-55r0,-183v0,-8,7,-14,14,-14r88,0xm42,-306r24,41r-11,1r-25,-34","w":142},"\u00cf":{"d":"16,0r0,-252r-10,0r0,252r10,0xm-13,-285v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9xm34,-285v10,0,11,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9","w":52},"\u00ce":{"d":"16,0r-10,0r0,-252r10,0r0,252xm37,-264r-27,-20r-27,20r-6,-8v12,-5,22,-24,37,-21r30,22","w":52},"\u00cd":{"d":"16,0r0,-252r-10,0r0,252r10,0xm5,-266r24,-37r11,5r-24,32r-11,0","w":52,"k":{"X":22,"x":22,"a":19}},"\u00cc":{"d":"18,0r-10,0r0,-252r10,0r0,252xm-5,-307r24,41r-11,1r-25,-34","w":54},"\u00d0":{"d":"117,-198v2,-49,-70,-51,-107,-40r0,224v0,3,2,4,4,4v50,2,103,4,103,-44r0,-144xm74,0v-25,0,-74,12,-74,-14r0,-224v4,-26,49,-14,74,-14v28,0,53,24,53,54r0,144v0,31,-25,54,-53,54xm-12,-131r62,0r0,10r-62,0r0,-10","w":162,"k":{"X":22,"x":22,"a":19}},"\u00d1":{"d":"22,-244r91,234v0,1,3,1,3,0r-1,-242r10,0r0,241v0,13,-16,15,-21,3r-92,-235v-1,-1,-2,0,-2,1r0,242r-10,0r0,-241v0,-14,17,-16,22,-3xm37,-288v13,24,24,-5,39,-5v7,0,13,6,21,17r-8,5v-12,-27,-25,2,-39,3v-8,1,-28,-14,-13,-20","w":160,"k":{"X":22,"x":22,"a":19}},"\u00d6":{"d":"0,-199r0,146v0,37,31,55,63,55v31,0,63,-18,63,-55r0,-146v0,-73,-126,-73,-126,0xm10,-53r0,-146v0,-30,26,-45,53,-45v26,0,52,15,52,45r0,146v0,30,-26,45,-52,45v-27,0,-53,-15,-53,-45xm38,-283v5,0,8,4,8,8v0,5,-3,9,-8,9v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8xm86,-283v5,0,8,4,8,8v0,5,-3,9,-8,9v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8","w":160},"\u00d5":{"d":"0,-53r0,-146v0,-36,31,-55,63,-55v31,0,63,19,63,55r0,146v0,74,-126,73,-126,0xm10,-199r0,146v0,30,26,45,53,45v26,0,53,-15,53,-45r0,-146v0,-60,-106,-60,-106,0xm36,-286v13,23,24,-7,39,-5v7,0,13,5,21,16r-8,6v-12,-27,-24,2,-39,2v-8,0,-29,-13,-13,-19","w":161,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d4":{"d":"0,-53r0,-146v0,-36,31,-55,63,-55v31,0,63,19,63,55r0,146v0,74,-126,73,-126,0xm10,-199r0,146v0,30,26,45,53,45v26,0,52,-15,52,-45r0,-146v0,-30,-26,-45,-52,-45v-27,0,-53,15,-53,45xm90,-266r-27,-21r-27,20r-6,-8v12,-5,22,-24,37,-21r29,22","w":160},"\u00d3":{"d":"0,-199r0,146v0,37,31,55,63,55v31,0,63,-18,63,-55r0,-146v0,-73,-126,-73,-126,0xm10,-53r0,-146v0,-30,26,-45,53,-45v26,0,52,15,52,45r0,146v0,30,-26,45,-52,45v-27,0,-53,-15,-53,-45xm55,-265r23,-37r12,6r-25,31r-10,0","w":160,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d2":{"d":"0,-53r0,-146v0,-36,31,-55,63,-55v31,0,63,19,63,55r0,146v0,74,-126,73,-126,0xm10,-199r0,146v0,30,26,45,53,45v26,0,52,-15,52,-45r0,-146v0,-30,-26,-45,-52,-45v-27,0,-53,15,-53,45xm46,-307r24,41r-11,0r-25,-34","w":160,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d8":{"d":"0,-53r0,-146v0,-36,31,-55,63,-55v31,0,63,19,63,55r0,146v0,74,-126,73,-126,0xm10,-199r0,146v0,30,26,45,53,45v26,0,52,-15,52,-45r0,-146v0,-30,-26,-45,-52,-45v-27,0,-53,15,-53,45xm114,-262r-91,277r-9,0r90,-277r10,0","w":160},"\u00dc":{"d":"116,-252r0,199v0,62,-105,60,-106,0r0,-199r-10,0r0,199v0,37,31,56,63,56v31,0,63,-19,63,-56r0,-199r-10,0xm37,-289v10,0,11,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9xm85,-289v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9","w":161,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00db":{"d":"115,-252r11,0r0,199v0,74,-126,75,-126,0r0,-199r10,0v0,45,-1,177,-1,199v1,60,106,62,106,0r0,-199xm88,-267r-27,-21r-27,21r-6,-8v12,-5,22,-24,37,-21r29,21","w":160,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00da":{"d":"115,-252r0,199v0,62,-105,60,-106,0v0,-22,1,-154,1,-199r-10,0r0,199v0,37,31,56,63,56v31,0,63,-19,63,-56r0,-199r-11,0xm51,-266r24,-37r11,5r-24,32r-11,0","w":160},"\u00d9":{"d":"115,-252r11,0r0,199v0,74,-126,75,-126,0r0,-199r10,0v0,45,-1,177,-1,199v1,60,106,62,106,0r0,-199xm50,-307r24,41r-11,0r-25,-34","w":160,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00dd":{"d":"69,-110r61,-142r-12,0r-54,130r-54,-130r-12,0r61,142r0,110r10,0r0,-110xm56,-265r24,-37r11,5r-24,32r-11,0","w":155,"k":{"d":32,"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"\u00e5":{"d":"95,-18v-30,44,-107,14,-95,-47v-2,-50,68,-73,95,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm10,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm87,-198v0,17,-15,32,-33,32v-18,0,-32,-15,-32,-32v0,-18,14,-32,32,-32v18,0,33,14,33,32xm77,-198v0,-13,-10,-23,-23,-23v-12,0,-22,10,-22,23v0,12,10,22,22,22v13,0,23,-10,23,-22","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e4":{"d":"95,-18v-30,44,-107,14,-95,-47v-2,-50,68,-73,95,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm10,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm31,-205v5,0,9,4,9,8v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8xm79,-205v5,0,8,4,8,8v0,5,-3,9,-8,9v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e3":{"d":"95,-18v-30,44,-107,14,-95,-47v-2,-50,68,-73,95,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm10,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm29,-207v13,22,23,-6,38,-5v7,0,14,5,22,16r-8,6v-17,-34,-40,27,-60,-11","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e2":{"d":"93,-18v-30,44,-108,14,-96,-47v-2,-49,69,-73,96,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm8,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm84,-178r-27,-21r-27,20r-6,-8v12,-5,21,-24,36,-21r30,22","w":138,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e1":{"d":"95,-18v-30,44,-107,14,-95,-47v-2,-50,68,-73,95,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm10,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm46,-185r24,-37r11,5r-24,32r-11,0","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e0":{"d":"95,-18v-30,44,-107,14,-95,-47v-2,-50,68,-73,95,-31v10,-51,-34,-87,-71,-57r-6,-9v32,-28,87,-3,87,41r0,121r-10,0r0,-18xm10,-65v0,33,14,56,42,57v34,1,43,-24,43,-63v0,-23,-20,-37,-43,-37v-23,0,-42,20,-42,43xm42,-224r24,41r-11,0r-25,-34","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00eb":{"d":"105,-121v-1,47,-43,58,-95,53v-10,51,47,77,79,44r9,6v-31,38,-98,17,-98,-33r0,-70v0,-29,23,-53,53,-53v29,0,52,23,52,53xm10,-78v44,3,85,-1,85,-43v0,-24,-18,-43,-42,-43v-41,0,-47,41,-43,86xm28,-202v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9xm76,-202v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9"},"\u00ea":{"d":"105,-121v-1,47,-43,58,-95,53v-10,51,47,77,79,44r9,6v-31,38,-98,17,-98,-33r0,-70v0,-29,23,-53,53,-53v29,0,52,23,52,53xm10,-78v44,3,85,-1,85,-43v0,-24,-18,-43,-42,-43v-41,0,-47,41,-43,86xm78,-183r-27,-20r-27,20r-5,-8v12,-5,21,-24,36,-21r30,22"},"\u00e9":{"d":"105,-121v-1,47,-43,58,-95,53v-10,51,47,77,79,44r9,6v-31,38,-98,17,-98,-33r0,-70v0,-29,23,-53,53,-53v29,0,52,23,52,53xm10,-78v44,3,85,-1,85,-43v0,-24,-18,-43,-42,-43v-41,0,-47,41,-43,86xm47,-183r24,-37r11,5r-24,32r-11,0"},"\u00e8":{"d":"105,-121v-1,47,-43,58,-95,53v-10,51,47,77,79,44r9,6v-31,38,-98,17,-98,-33r0,-70v0,-29,23,-53,53,-53v29,0,52,23,52,53xm10,-78v44,3,85,-1,85,-43v0,-24,-18,-43,-42,-43v-41,0,-47,41,-43,86xm37,-225r24,41r-11,0r-25,-33"},"\u00ef":{"d":"16,0r0,-172r-10,0r0,172r10,0xm-12,-213v5,0,8,4,8,8v0,5,-3,8,-8,8v-5,0,-9,-3,-9,-8v0,-5,4,-8,9,-8xm35,-213v5,0,9,4,9,8v0,5,-4,8,-9,8v-5,0,-8,-3,-8,-8v0,-5,3,-8,8,-8","w":50},"\u00ee":{"d":"16,-172r0,172r-10,0r0,-172r10,0xm37,-183r-27,-21r-27,20r-5,-8v12,-5,21,-24,36,-21r30,22","w":50},"\u00ec":{"d":"16,-172r0,172r-10,0r0,-172r10,0xm-7,-226r24,41r-11,0r-25,-34","w":50},"\u00ed":{"d":"17,0r0,-172r-11,0r0,172r11,0xm8,-186r23,-38r11,6r-24,32r-10,0","w":50},"\u00f1":{"d":"53,-165v-65,0,-38,102,-43,165r-10,0r0,-172r10,0r0,23v25,-47,96,-22,96,28r0,121r-10,0v-6,-64,23,-165,-43,-165xm24,-208v13,23,24,-7,39,-5v7,0,13,5,21,16r-8,5v-13,-26,-26,3,-39,3v-8,1,-27,-13,-13,-19","w":141},"\u00f6":{"d":"106,-122r0,71v0,71,-109,70,-109,0r0,-71v0,-71,109,-71,109,0xm96,-51r0,-71v0,-58,-88,-57,-88,0r0,71v0,56,88,56,88,0xm29,-208v5,0,8,4,8,8v0,5,-3,8,-8,8v-5,0,-8,-3,-8,-8v0,-5,3,-8,8,-8xm77,-208v5,0,8,4,8,8v0,5,-3,8,-8,8v-5,0,-9,-3,-9,-8v0,-5,4,-8,9,-8","w":141},"\u00f5":{"d":"106,-122r0,71v0,71,-109,70,-109,0r0,-71v0,-71,109,-71,109,0xm96,-51r0,-71v0,-58,-88,-57,-88,0r0,71v0,56,88,56,88,0xm26,-210v13,22,23,-6,38,-5v7,0,14,5,22,16r-8,6v-13,-26,-24,2,-40,2v-7,0,-14,-5,-20,-13","w":141},"\u00f4":{"d":"106,-122r0,71v0,71,-109,70,-109,0r0,-71v0,-71,109,-71,109,0xm96,-51r0,-71v0,-58,-88,-57,-88,0r0,71v0,56,88,56,88,0xm77,-187r-27,-21r-27,20r-5,-8v12,-5,21,-24,36,-21r30,22","w":141},"\u00f3":{"d":"109,-122r0,71v0,70,-109,71,-109,0r0,-71v0,-71,109,-71,109,0xm99,-51r0,-71v0,-57,-89,-57,-89,0r0,71v0,56,89,56,89,0xm48,-184r24,-37r11,5r-24,32r-11,0","w":143},"\u00f2":{"d":"109,-122r0,71v0,70,-109,71,-109,0r0,-71v0,-71,109,-71,109,0xm99,-51r0,-71v0,-57,-89,-57,-89,0r0,71v0,56,89,56,89,0xm38,-224r24,41r-11,0r-25,-33","w":143},"\u00fd":{"d":"105,27r0,-199r-10,0r0,128v0,23,-19,35,-41,35v-23,0,-44,-18,-44,-41r0,-122r-10,0r0,122v-1,45,68,72,95,31v3,45,-1,86,-42,88v-16,1,-31,-18,-38,-2v33,28,90,7,90,-40xm41,-186r23,-37r12,6r-25,31r-10,0","w":141,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"\u00fc":{"d":"52,2v74,0,48,-103,52,-174r-10,0v-6,63,24,164,-42,164v-64,0,-36,-102,-42,-164r-10,0v4,71,-22,174,52,174xm28,-209v10,0,11,18,0,17v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9xm75,-209v11,0,12,18,0,17v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9","w":138,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fb":{"d":"52,2v-74,0,-48,-103,-52,-174r10,0v6,63,-23,164,42,164v65,0,36,-102,42,-164r10,0v-4,71,22,174,-52,174xm78,-189r-27,-21r-27,21r-6,-8v12,-5,22,-24,37,-21v8,6,22,15,30,21","w":138,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f9":{"d":"52,2v-74,0,-48,-103,-52,-174r10,0v6,63,-23,164,42,164v65,0,36,-102,42,-164r10,0v-4,71,22,174,-52,174xm36,-227r24,41r-11,1r-25,-34","w":138,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f8":{"d":"86,-169v31,15,23,69,23,114v0,43,-41,62,-78,49r-8,23v-15,-2,-1,-17,0,-27v-31,-16,-23,-70,-23,-115v0,-45,41,-64,78,-49r5,-17r10,3xm10,-125v0,38,-9,88,16,104r49,-143v-30,-12,-65,3,-65,39xm99,-55v0,-38,9,-88,-16,-104r-49,143v30,12,65,-4,65,-39xm84,-191r-1,0r1,0","w":142,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fa":{"d":"52,2v74,0,48,-103,52,-174r-10,0v-6,63,24,164,-42,164v-64,0,-36,-102,-42,-164r-10,0v4,71,-22,174,52,174xm42,-187r24,-37r11,5r-24,32r-11,0","w":138},"\u00ff":{"d":"105,27r0,-199r-10,0r0,128v0,23,-19,35,-41,35v-23,0,-44,-18,-44,-41r0,-122r-10,0r0,122v-1,45,68,72,95,31v3,45,-1,86,-42,88v-16,1,-31,-18,-38,-2v33,28,90,7,90,-40xm29,-208v5,0,8,4,8,8v0,5,-3,8,-8,8v-5,0,-8,-3,-8,-8v0,-5,3,-8,8,-8xm78,-208v5,0,8,4,8,8v0,5,-3,8,-8,8v-5,0,-9,-3,-9,-8v0,-5,4,-8,9,-8","w":141,"k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"$":{"d":"10,-201v0,118,112,15,112,149v0,34,-27,52,-56,54r0,17r-10,0r0,-17v-29,-2,-56,-19,-56,-54r10,0v0,30,25,44,50,44v37,1,57,-27,52,-73v-8,-75,-112,-9,-112,-120v0,-34,27,-53,57,-54r0,-19r10,0r0,19v28,2,55,21,55,54r-10,0v0,-29,-25,-44,-51,-44v-26,0,-51,15,-51,44","w":154,"k":{"7":4}},"d":{"d":"96,-19v-24,44,-96,17,-96,-30r0,-73v0,-47,68,-74,96,-30r0,-100r10,0r0,252r-10,0r0,-19xm10,-122r0,73v-3,46,86,58,86,9r0,-89v0,-23,-20,-35,-42,-35v-23,0,-44,19,-44,42","w":142,"k":{"\u00dd":17,"\u0178":17,"Y":17,"X":6,"W":15,"V":17,"T":19,"A":10,"x":4,"w":13,"v":13,"b":-4,"a":4}},"\u2030":{"d":"161,-252r11,0r-161,252r-11,0xm170,-54v1,-26,-13,-49,-34,-49v-22,0,-34,21,-34,45v0,26,12,47,33,48v22,1,34,-20,35,-44xm179,-54v0,30,-16,55,-44,55v-27,0,-43,-28,-43,-59v0,-31,16,-57,44,-56v26,1,43,28,43,60xm76,-190v1,-26,-13,-49,-34,-49v-22,0,-34,21,-34,45v0,26,12,47,33,48v22,1,34,-20,35,-44xm85,-190v0,30,-16,55,-44,55v-27,0,-43,-28,-43,-59v0,-31,16,-57,44,-56v26,1,43,28,43,60xm273,-54v1,-26,-13,-49,-34,-49v-22,0,-34,21,-34,45v0,26,12,47,33,48v22,1,34,-20,35,-44xm282,-54v0,30,-16,55,-44,55v-27,0,-43,-28,-43,-59v0,-31,16,-57,44,-56v26,1,43,28,43,60","w":303},"\u00a1":{"d":"19,1r0,-226r-10,0r0,226r10,0xm21,-244v0,4,-3,7,-7,7v-4,0,-8,-3,-8,-7v0,-11,15,-10,15,0","w":61}}});Cufon.registerFont({"w":146,"face":{"font-family":"Zag Regular","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 3 3 0 0 2 0 4","ascent":"288","descent":"-72","bbox":"-35 -321 296 74","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":99},"\u00de":{"d":"24,-252r0,47v72,-9,107,21,100,97v-4,46,-45,64,-100,57r0,50r-24,1r0,-252r24,0xm100,-147v0,-36,-38,-38,-76,-35r0,108v37,2,76,2,76,-34r0,-39","w":155,"k":{"X":22,"x":22,"a":19}},"\u00fe":{"d":"23,-30r0,66v0,3,-23,3,-23,0r0,-271r23,0r0,47v32,-32,88,0,88,43r0,72v1,42,-54,76,-88,43xm23,-147v2,44,-12,107,32,107v45,0,31,-62,33,-105v0,-18,-15,-32,-33,-32v-16,0,-32,13,-32,30xm29,-54r-1,-1","w":145},"!":{"d":"4,-45r0,-202r23,0r0,202r-23,0xm1,-14v0,-9,6,-15,14,-15v9,0,16,6,16,15v0,9,-7,16,-16,16v-8,0,-14,-7,-14,-16","w":66},"\"":{"d":"0,-167r0,-80r23,0r0,80r-23,0xm40,-167r0,-80r23,0r0,80r-23,0","w":93},"#":{"d":"89,-153r-30,0v-5,25,-8,44,-13,68r31,0v3,-16,11,-61,12,-68xm1,-176r38,0r13,-71r24,0r-13,71r30,0r13,-71r23,0r-12,71r32,0r0,23r-37,0r-11,68r36,0r0,22r-41,0r-12,63r-24,0r12,-63r-30,0r-11,63r-23,0r10,-63r-31,0r0,-22r35,0r14,-68r-35,0r0,-23","w":182},"%":{"d":"155,-247r26,0r-158,247r-26,0xm135,-22v35,0,32,-73,1,-73v-17,0,-25,16,-25,35v0,20,9,37,24,38xm182,-57v0,32,-16,58,-47,58v-28,0,-46,-29,-46,-61v0,-32,16,-60,47,-59v28,1,46,30,46,62xm67,-183v0,-20,-9,-38,-24,-38v-17,0,-25,16,-25,35v0,20,8,38,23,38v17,0,26,-16,26,-35xm89,-183v0,31,-16,58,-47,58v-29,0,-47,-29,-47,-61v0,-32,17,-59,48,-59v28,0,46,29,46,62","w":222},"&":{"d":"57,-22v41,-1,33,-54,33,-95v-47,-6,-67,8,-67,60v0,19,16,35,34,35xm113,-58v0,32,20,35,27,35r0,23v-18,0,-38,-12,-41,-31v-15,55,-99,30,-99,-26v0,-35,3,-57,25,-72v-39,-26,-28,-117,32,-117v19,0,38,13,50,30r-19,13v-21,-38,-74,-17,-63,30v0,30,31,37,65,33r0,-17r23,0r0,17r24,0r0,23r-24,0r0,59","w":161,"k":{"7":4}},"'":{"d":"3,-163r0,-84r23,0r0,84r-23,0","w":60},"(":{"d":"66,3r-13,19v-69,-58,-70,-231,0,-289r14,18v-57,47,-57,204,-1,252","w":85,"k":{"7":4}},"*":{"d":"67,-122r-23,0r1,-44v-10,8,-25,18,-35,26r-11,-22r36,-19v-12,-6,-26,-14,-37,-20r12,-20r35,23v0,-12,-1,-31,-1,-42r23,0r-2,42r35,-23r12,20r-36,19v12,7,24,14,36,20r-12,21r-36,-26v1,15,2,31,3,45","w":150},"+":{"d":"61,-130r41,0r0,22r-41,0r0,43r-23,0r0,-43r-41,0r0,-22r41,0r0,-43r23,0r0,43","w":135},",":{"d":"11,-27v25,2,8,36,0,49r-16,-6r6,-17v-10,-8,-5,-27,10,-26","w":50,"k":{"7":7,"1":18}},"-":{"d":"-2,-117r108,0r0,23r-108,0r0,-23","k":{"7":14,"3":4,"1":11}},".":{"d":"9,-31v10,0,17,7,17,16v0,9,-7,16,-17,16v-9,0,-15,-7,-15,-16v0,-9,6,-16,15,-16","w":44,"k":{"7":7,"1":18}},"\/":{"d":"95,-256r-88,270r-24,0r88,-270r24,0","w":134,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"1":{"d":"-12,-247v20,2,54,-8,53,14r0,233r-23,0r0,-224r-30,0r0,-23","w":77},"2":{"d":"63,-246v43,0,62,35,62,91v0,35,-25,56,-61,56v-21,0,-42,11,-42,34r0,42r98,0r0,23r-107,0v-26,-1,-8,-44,-13,-65v0,-39,31,-57,64,-57v35,0,41,-29,38,-67v-4,-47,-80,-45,-80,6r-22,0v0,-42,31,-63,63,-63","w":161,"k":{"7":2,"4":5}},"3":{"d":"0,-62r22,0v-2,51,79,55,83,7v3,-37,-6,-62,-41,-63r0,-24v27,-2,44,-18,41,-47v-5,-48,-84,-44,-83,7r-22,0v-3,-82,125,-86,128,-7v1,28,-8,46,-29,59v26,15,29,38,29,75v0,39,-32,58,-64,58v-33,0,-64,-23,-64,-65","w":163,"k":{"7":7,"5":2,"\/":4}},"4":{"d":"98,-247r23,0r0,247r-23,0r0,-93r-85,0v-9,0,-13,-4,-13,-13r0,-141r23,0r0,131r75,0r0,-131","w":155,"k":{"7":11,"1":7,"\/":7}},"5":{"d":"23,-148v73,-9,106,20,100,92v-6,77,-126,79,-125,-3r23,0v-1,52,77,49,79,3v1,-35,1,-69,-32,-69v-24,0,-68,11,-68,-14r0,-94v0,-8,7,-13,14,-13r97,0r0,23r-88,0r0,75","w":159,"k":{"7":11,"3":2,"2":4,"\/":7}},"6":{"d":"117,-225r-18,15v-25,-27,-77,-18,-77,19r0,56v27,-43,107,-23,105,33r0,47v0,77,-127,76,-127,0r0,-136v2,-61,77,-74,117,-34xm104,-55v2,-41,2,-80,-40,-80v-21,0,-42,11,-42,34r0,46v0,46,80,45,82,0","w":162,"k":{"7":5,"3":4,"1":4,"\/":4}},"7":{"d":"15,0v-1,-42,-3,-81,20,-102v21,-39,65,-57,60,-122r-103,0r0,-23r113,0v21,0,11,32,13,51v-13,77,-97,90,-81,196r-22,0","w":153,"k":{"\u00fa":7,"\u00f2":7,"\u00f3":7,"\u00f4":7,"\u00f5":7,"\u00f6":7,"0":7,"o":7,"g":7,"c":7,"\u2014":11,"\u2013":11,"8":4,"6":7,"5":9,"4":31,"3":7,"2":5,"1":-4,"\/":50,".":36,"-":11,",":36,"(":4,"&":4}},"8":{"d":"2,-174v0,-50,24,-76,63,-76v38,0,62,26,62,76v0,18,-10,42,-31,45v31,7,34,38,33,74v-2,77,-129,78,-129,0v0,-36,4,-63,31,-73v-17,-6,-29,-29,-29,-46xm104,-174v0,-34,-12,-53,-39,-53v-29,0,-45,18,-41,53v2,24,19,35,48,35v19,0,32,-17,32,-35xm106,-55v0,-43,-9,-66,-51,-62v-29,3,-32,29,-32,62v0,23,20,35,41,35v21,0,42,-12,42,-35","w":160,"k":{"7":4}},"<":{"d":"29,-105v21,9,40,21,59,32r0,27r-83,-49v-8,-5,-4,-19,0,-21v24,-14,60,-34,83,-48r0,26","w":136},"=":{"d":"0,-116r109,0r0,22r-109,0r0,-22xm0,-159r109,0r0,23r-109,0r0,-23","w":154},"?":{"d":"54,-245v62,0,80,102,26,128v-21,9,-17,39,-17,68r-23,0v-2,-41,-1,-76,28,-89v32,-14,28,-85,-14,-83v-18,0,-33,18,-33,40r-24,-3v2,-35,27,-61,57,-61xm52,-30v7,0,15,8,15,17v0,8,-8,15,-15,15v-10,0,-16,-7,-16,-15v0,-9,6,-17,16,-17","w":145},"@":{"d":"-1,-53r0,-63v-1,-57,48,-95,92,-95v41,0,92,29,92,84r0,110v0,36,-54,40,-61,4v-34,26,-83,-1,-83,-41r0,-63v-1,-38,50,-66,82,-40r0,-4r25,-2v-40,-46,-124,-21,-124,47r0,63v1,52,52,79,101,62r7,22v-65,21,-129,-13,-131,-84xm160,-17v-3,-50,10,-114,-13,-145r-3,145v0,11,16,13,16,0xm62,-117v2,38,-11,91,29,91v46,0,30,-57,30,-95v0,-15,-14,-24,-30,-24v-15,0,-29,13,-29,28","w":217},"[":{"d":"0,-254v2,-21,41,-7,61,-11r0,23r-38,0r0,236r38,0r0,23r-49,0v-9,0,-12,-3,-12,-11r0,-260","w":71},"^":{"d":"44,-228v-10,8,-24,17,-33,26r-16,-18r41,-30v24,-7,39,22,56,29r-14,19","w":122},"_":{"d":"-3,-19r158,0r0,24r-158,0r0,-24","w":189},"`":{"d":"43,-288r30,54r-25,1r-29,-40","w":142},"{":{"d":"82,-249v-41,33,-29,90,-54,127v25,34,15,94,53,123r-11,21v-32,-25,-47,-76,-51,-109v-1,-13,-9,-25,-26,-25r0,-22v17,0,25,-13,26,-25v4,-34,18,-85,51,-108","w":92},"|":{"d":"27,-271r0,308r-23,0r0,-308r23,0","w":63},"~":{"d":"19,-122v13,27,28,-6,44,-3v12,0,24,9,34,24r-19,14v-14,-31,-27,0,-46,0v-10,0,-22,-9,-33,-25","w":132},"\u2020":{"d":"63,-198r41,0r0,23r-41,0r0,175r-23,0r0,-175r-42,0r0,-23r42,0r0,-47r23,0r0,47","w":138},"\u00b0":{"d":"133,-184v0,38,-33,67,-69,67v-38,0,-67,-29,-67,-67v0,-36,29,-68,67,-68v36,0,69,32,69,68xm109,-184v0,-25,-20,-45,-45,-45v-24,0,-44,20,-44,45v0,25,20,45,44,45v25,0,45,-20,45,-45","w":169},"\u00a2":{"d":"43,-33r-11,34r-23,-5r13,-40v-28,-20,-21,-65,-21,-110v0,-38,32,-63,72,-56r12,-37r24,3r-15,45v14,10,22,28,22,51r-24,0v3,-50,-68,-51,-68,-6v0,43,-11,100,34,100v19,0,34,-18,34,-41r24,0v-1,41,-33,72,-73,62","w":147},"\u00a3":{"d":"124,0r-134,0r9,-23r17,0r0,-73r-18,0r0,-23r18,0r0,-72v0,-31,24,-56,56,-56v33,0,57,31,56,67r-23,0v7,-49,-66,-59,-66,-11r0,72r46,0r0,23r-46,0r0,73r85,0r0,23","w":166,"k":{"4":5}},"\u00a7":{"d":"88,-89v8,-39,-47,-29,-68,-44v-10,38,49,25,68,44xm89,-182v-18,-31,-65,-21,-65,13v0,17,14,23,31,23v38,0,71,41,49,78v22,68,-74,98,-109,39r20,-12v17,29,70,27,70,-10v0,-19,-16,-28,-33,-28v-43,-1,-68,-36,-48,-73v-19,-66,71,-102,105,-40","k":{"7":5}},"\u2022":{"d":"116,-124v0,32,-27,56,-58,56v-31,0,-56,-24,-56,-56v0,-31,25,-57,56,-57v31,0,58,26,58,57xm93,-124v0,-19,-16,-34,-35,-34v-18,0,-33,15,-33,34v0,18,15,33,33,33v19,0,35,-15,35,-33","w":148},"\u00b6":{"d":"108,-230r0,230r-23,0r0,-97v-65,8,-94,-23,-88,-92v4,-45,43,-55,97,-55v9,0,14,6,14,14xm85,-221v-33,-2,-64,1,-65,32v-1,35,0,69,33,69r32,0r0,-101","w":142},"\u00df":{"d":"1,-192v0,-32,24,-53,57,-53v58,0,73,84,34,116v42,29,29,135,-34,130r-27,0r0,-23v46,6,66,-14,61,-62v-3,-28,-29,-37,-62,-33r0,-23v40,4,60,-7,60,-50v0,-18,-14,-32,-32,-32v-19,0,-34,11,-34,30r0,191r-23,0r0,-191","w":139},"\u00ae":{"d":"95,-195v41,-2,55,62,26,83v17,12,16,33,15,60r-23,0v2,-25,1,-49,-23,-48r-23,0r0,48r-22,0r0,-126v-1,-21,29,-16,50,-17xm113,-143v4,-31,-20,-31,-46,-29r0,49v22,1,43,1,46,-20xm156,-93r0,-60v0,-45,-33,-68,-67,-68v-33,0,-68,23,-68,68r0,60v1,93,135,94,135,0xm179,-153r0,60v0,124,-181,124,-181,0r0,-60v0,-123,181,-123,181,0","w":220},"\u00a9":{"d":"158,-153v-1,-90,-133,-91,-134,0r0,60v1,93,133,93,134,0r0,-60xm121,-100r22,0v0,32,-24,58,-52,58v-50,1,-51,-53,-51,-108v0,-30,23,-53,51,-53v28,0,52,26,52,59r-22,0v4,-43,-59,-48,-58,-6v1,37,-9,86,28,87v17,0,30,-17,30,-37xm181,-153r0,60v0,124,-181,124,-181,0r0,-60v0,-123,181,-123,181,0","w":222},"\u2122":{"d":"56,-223r0,108r-23,0r0,-108r-29,0r0,-23r83,0r0,23r-31,0xm116,-201r4,87r-24,0r0,-119v1,-17,17,-18,23,-6r36,78v10,-27,22,-53,35,-77v5,-11,22,-12,22,5r0,119r-22,0r4,-86r-28,61v-5,12,-17,12,-22,0","w":254},"\u00b4":{"d":"10,-231r30,-50r27,12r-32,38r-25,0","w":106},"\u00a8":{"d":"28,-265v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm72,-265v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":142},"\u00a5":{"d":"99,-95r-25,0r0,13r25,0r0,23r-25,0r0,59r-23,0r0,-59r-24,0r0,-23r24,0r0,-13r-24,0r0,-22r18,0r-54,-130r25,0v17,40,32,76,47,117v14,-40,32,-80,48,-117r24,1v-18,40,-38,89,-55,129r19,0r0,22","w":167,"k":{"4":7}},"\u00aa":{"d":"84,-87v-31,40,-99,6,-89,-51v-2,-44,62,-77,89,-37v6,-41,-35,-63,-61,-33r-13,-21v35,-33,96,-10,96,40r0,118r-18,0xm18,-138v0,27,9,45,32,46v30,1,33,-21,33,-52v0,-17,-15,-26,-33,-26v-18,0,-32,14,-32,32xm109,-27r-107,0r0,-23r107,0r0,23","w":140},"\u0192":{"d":"67,-92v2,53,-21,92,-69,93r0,-23v36,0,47,-32,46,-70r-34,0r0,-23v11,-1,27,2,36,-1r6,-72v4,-30,35,-55,67,-55r-1,23v-50,1,-45,59,-49,105r35,0r0,23r-37,0xm44,-92r0,0r0,0","w":138,"k":{"5":4,"4":11,"1":-11}},"\u00a0":{"w":108},"\u2013":{"d":"2,-117r130,0r0,23r-130,0r0,-23","w":171,"k":{"7":14,"1":11}},"\u2014":{"d":"1,-117r249,0r0,23r-249,0r0,-23","w":301,"k":{"7":14,"1":11}},"\u2018":{"d":"17,-200v-27,-3,-8,-39,-2,-55r19,0v-11,21,9,51,-17,55","w":65},"\u00a4":{"d":"26,-151r38,0r0,22r-38,0r0,16r38,0r0,23r-38,0v-4,39,5,69,41,69v21,0,41,-14,41,-41r23,0v2,82,-125,86,-128,7r0,-35r-13,0r0,-23r13,0r0,-16r-13,0r0,-22r13,0v-8,-57,17,-94,64,-94v32,0,64,21,64,63r-23,0v2,-52,-80,-53,-82,-6r0,37","w":168,"k":{"1":-7}},"\u2039":{"d":"67,-175r-40,55r40,55r-18,16r-46,-65v-9,-18,18,-29,23,-44r23,-31","w":108},"\u00b7":{"d":"31,-153v17,0,28,14,28,30v0,17,-11,28,-28,28v-16,0,-28,-11,-28,-28v0,-16,12,-30,28,-30","w":107},"\u2219":{"d":"31,-153v17,0,28,14,28,30v0,17,-11,28,-28,28v-16,0,-28,-11,-28,-28v0,-16,12,-30,28,-30","w":107},"\u02c6":{"d":"66,-246r-30,22r-14,-18v19,-11,42,-43,64,-16v8,5,16,11,22,16r-15,17","w":162},"\u02dc":{"d":"25,-266v9,21,20,-2,35,-3v9,0,18,8,29,23r-17,14v-7,-4,-8,-19,-17,-11v-17,19,-32,11,-47,-10","w":131},"\u00af":{"d":"-3,-253r111,0r0,24r-111,0r0,-24","w":150},"\u017d":{"w":180},"a":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32","k":{"\u00ff":71,"\u00f8":30,"\u00f9":30,"\u00fb":30,"\u00fc":30,"\u00fd":71,"\u00dd":71,"\u00d9":30,"\u00db":30,"\u00dc":30,"\u00d2":22,"\u00d3":22,"\u00d5":22,"\u00c7":23,"\u0178":71,"Y":71,"X":6,"W":56,"V":56,"U":30,"T":38,"Q":2,"O":22,"J":2,"G":23,"C":23,"z":6,"y":71,"x":13,"w":21,"v":19,"u":30,"o":23,"k":-6,"j":3,"g":23,"c":23,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"6":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23}},"b":{"d":"112,-52v2,41,-64,80,-89,36r-3,16r-20,0r0,-248r23,0r0,91v26,-41,89,-5,89,37r0,68xm55,-21v45,0,33,-56,34,-99v0,-18,-16,-31,-34,-31v-49,-1,-32,61,-32,103v0,15,14,27,32,27","w":147,"k":{"\u00dd":36,"\u0178":36,"Z":9,"Y":36,"X":23,"W":32,"V":34,"T":38,"A":19,"z":6,"x":22,"w":19,"v":23,"s":6,"c":4,"a":8}},"c":{"d":"89,-61r23,0v0,34,-25,63,-56,63v-31,0,-56,-26,-56,-56r0,-65v0,-32,26,-56,56,-56v30,0,56,28,56,63r-23,0v3,-48,-66,-52,-66,-7v0,42,-10,98,33,98v18,0,33,-18,33,-40","k":{"\u00dd":42,"\u0178":42,"Z":8,"Y":42,"X":27,"W":31,"V":36,"T":44,"J":9,"A":15,"z":13,"x":21,"w":15,"v":26,"s":9,"a":9}},"e":{"d":"109,-119v-1,44,-39,58,-88,53v-7,43,41,59,64,27r19,14v-32,47,-105,27,-107,-29v-2,-61,-2,-120,56,-121v30,0,56,25,56,56xm21,-86v34,3,65,-2,65,-33v0,-18,-15,-33,-33,-33v-30,1,-35,32,-32,66","w":143,"k":{"\u00ff":6,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":6,"\u00dd":34,"\u0178":34,"\u0153":6,"q":6,"\u00b5":6,"Z":17,"Y":34,"X":23,"W":27,"V":26,"T":57,"S":6,"R":6,"Q":6,"J":19,"H":6,"z":15,"y":6,"x":23,"w":19,"v":25,"u":10,"s":6,"r":2,"p":9,"o":6,"g":9,"a":15}},"f":{"d":"23,-111r0,111r-23,0r0,-192v0,-33,30,-57,64,-57r0,23v-22,0,-41,15,-41,34r0,59r37,0r0,22r-37,0","w":84,"k":{"K":-6,"F":-6,"A":15,"z":8,"x":6,"w":6,"v":13,"o":6,"a":13}},"g":{"d":"112,18v0,51,-62,74,-99,39r13,-18v23,21,62,10,63,-21r0,-36v-26,41,-89,11,-89,-35r0,-68v-3,-41,67,-78,90,-34r3,-18r19,0r0,191xm57,-152v-44,0,-33,56,-34,99v-1,39,66,42,66,4v0,-43,12,-103,-32,-103","k":{"\u00dd":27,"\u0178":27,"Y":27,"X":13,"W":19,"V":21,"T":40,"F":-6,"x":4,"w":15,"v":13,"k":-6,"a":6}},"h":{"d":"56,-151v-56,0,-26,97,-33,151r-23,0r0,-247r23,0r0,95v20,-46,88,-12,88,34r1,118r-23,0v-7,-54,23,-151,-33,-151","k":{"\u00dd":34,"\u0178":34,"Y":34,"X":15,"W":27,"V":25,"T":44,"A":9,"z":8,"x":13,"w":15,"v":21,"a":4}},"i":{"d":"14,-216v8,0,16,7,16,16v0,20,-31,19,-31,0v0,-9,7,-16,15,-16xm25,-173r0,173r-22,0r0,-173r22,0","w":60,"k":{"\u00dd":21,"\u0178":21,"Y":21,"X":11,"W":15,"V":15,"T":40,"x":15,"w":13,"v":15,"a":15}},"j":{"d":"4,18r0,-191r23,0r0,191v0,31,-26,56,-60,56r1,-24v21,0,36,-14,36,-32xm15,-215v9,0,16,7,16,16v0,9,-7,15,-16,15v-8,0,-15,-6,-15,-15v0,-9,7,-16,15,-16","w":67,"k":{"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u0178":21,"Z":6,"Y":21,"W":21,"V":32,"T":49,"A":-2,"z":13,"w":21,"v":23,"u":6,"e":13,"a":13}},"k":{"d":"89,0v-18,-28,-19,-79,-66,-75r0,75r-23,0r0,-246r23,0r0,148v47,4,48,-47,66,-75r25,0v-19,30,-18,74,-56,87v38,11,36,57,55,86r-24,0","w":142,"k":{"\u00ff":9,"\u00fa":30,"\u00f8":8,"\u00f9":8,"\u00fb":8,"\u00fc":8,"\u00fd":9,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":27,"\u00d2":8,"\u00d3":8,"\u00d5":8,"\u00c7":6,"\u0178":27,"\u0153":13,"0":30,"q":13,"\u00b5":30,"Z":8,"Y":27,"X":17,"W":26,"V":25,"T":38,"S":9,"Q":6,"O":8,"J":26,"G":4,"C":6,"z":4,"y":9,"x":17,"w":19,"v":19,"u":8,"s":10,"o":13,"j":10,"g":9,"e":10,"c":10,"a":15,"6":30}},"l":{"d":"23,-57v0,19,16,34,38,34r0,23v-35,0,-61,-24,-61,-57r0,-190r23,0r0,190","w":81,"k":{"\u00ff":2,"\u00fd":2,"\u00dd":36,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":36,"\u0153":6,"q":6,"\u00b5":6,"Y":36,"W":28,"V":23,"T":21,"O":6,"J":6,"y":2,"x":6,"w":25,"v":40,"s":4,"o":6,"j":4,"e":4,"a":6}},"m":{"d":"55,-152v-55,6,-24,99,-32,152r-23,0r0,-173r19,0r3,17v19,-31,65,-24,78,12v20,-57,99,-28,99,25r0,119r-22,0v-7,-55,23,-146,-33,-152v-56,5,-26,98,-33,152r-22,0v-7,-55,23,-147,-34,-152","w":242,"k":{"\u00dd":30,"\u0178":30,"Y":30,"W":25,"V":23,"T":46,"J":6,"A":9,"z":13,"x":8,"w":17,"v":19,"o":6,"a":4}},"n":{"d":"55,-152v-55,6,-24,99,-32,152r-23,0r0,-173r19,0r3,17v27,-43,90,-6,90,37r0,119r-23,0v-7,-55,23,-147,-34,-152","k":{"\u00dd":27,"\u0178":27,"Z":6,"Y":27,"X":4,"W":26,"V":28,"T":40,"J":6,"A":8,"x":17,"w":17,"v":21,"a":6}},"o":{"d":"111,-120r0,66v-1,74,-115,75,-115,0r0,-66v0,-74,115,-73,115,0xm87,-54v0,-42,9,-98,-34,-98v-43,0,-34,56,-34,98v0,43,68,43,68,0","w":144,"k":{"\u00dd":42,"\u0178":42,"Z":10,"Y":42,"X":17,"W":30,"V":34,"T":51,"A":13,"x":17,"w":21,"v":21,"a":8}},"p":{"d":"23,-158v25,-42,89,-5,89,36r0,68v2,42,-62,78,-89,37r0,91r-23,0r0,-248r20,0xm55,-23v45,1,33,-57,34,-99v0,-17,-16,-31,-34,-31v-47,0,-32,59,-32,101v0,17,11,29,32,29","k":{"\u00dd":30,"\u0178":30,"Z":13,"Y":30,"X":27,"W":34,"V":36,"T":44,"J":11,"A":15,"z":19,"x":15,"w":15,"v":23,"s":6,"a":6}},"r":{"d":"23,0r-23,0r0,-172r21,0r2,16v14,-23,34,-22,57,-10r-8,20v-20,-12,-49,-4,-49,20r0,126","w":99,"k":{"\u00dd":19,"\u0178":19,"Z":9,"Y":19,"X":13,"W":15,"V":15,"T":26,"M":-6,"L":-10,"K":-9,"J":15,"F":-9,"A":19,"w":-2,"v":4,"o":13,"n":-8,"m":-6,"l":-4,"g":9,"f":-2,"e":13,"c":13,"a":17}},"s":{"d":"84,-133v-18,-31,-63,-24,-63,12v0,16,13,20,30,21v28,1,54,18,54,51v0,64,-85,67,-110,19r20,-10v15,27,65,27,67,-9v0,-18,-15,-27,-31,-27v-29,-1,-53,-13,-53,-45v0,-60,78,-73,105,-25","w":133,"k":{"\u00dd":30,"\u0178":30,"Y":30,"X":8,"W":26,"V":23,"T":42,"A":13,"x":15,"w":19,"v":15,"f":-9,"a":6}},"t":{"d":"23,-174r37,0r0,24r-37,0v4,52,-18,128,40,127r0,23v-34,0,-63,-24,-63,-57r0,-190r23,0r0,73","w":87,"k":{"\u00dd":13,"\u0178":13,"Y":13,"X":-13,"W":15,"V":8,"w":8,"v":11,"g":2,"e":11,"c":15,"a":14}},"u":{"d":"55,2v-31,0,-55,-26,-55,-56r0,-119r23,0v7,54,-23,145,32,152v55,-6,24,-99,32,-152r22,0v-4,72,22,173,-54,175","w":143,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"v":{"d":"1,-173r25,0v13,54,33,101,41,160v9,-50,28,-108,42,-160r24,0r-45,159v-6,21,-35,22,-41,-1v-14,-51,-32,-107,-46,-158","k":{"\u00f8":-2,"\u00f9":-2,"\u00fb":-2,"\u00fc":-2,"\u00dd":10,"\u00d2":-6,"\u00d3":-6,"\u00d5":-6,"\u00c7":-4,"\u0178":10,"Z":9,"Y":10,"W":9,"T":13,"S":-2,"R":-4,"P":-2,"O":-6,"N":-4,"M":-6,"L":-9,"K":-4,"J":15,"H":-6,"G":-1,"F":-11,"E":-6,"C":-4,"B":-6,"A":15,"u":-2,"t":-6,"r":-4,"p":-6,"n":-11,"m":-6,"l":-6,"k":-4,"j":2,"h":-6,"g":2,"f":-8,"b":-6,"a":7}},"w":{"d":"25,-173r24,153v2,-28,11,-53,18,-76v5,-17,28,-15,34,1v7,24,12,50,19,75v2,-54,16,-107,23,-153r24,0r-30,158v-4,20,-32,20,-36,1v-5,-21,-14,-46,-16,-77r-2,0v-2,30,-10,53,-17,77v-6,18,-32,20,-36,-1r-29,-158r24,0","w":187,"k":{"\u00ff":-8,"\u00fa":19,"\u00fd":-8,"\u00f2":19,"\u00f3":19,"\u00f4":19,"\u00f5":19,"\u00f6":19,"\u00dd":15,"\u00d2":-2,"\u00d3":-2,"\u00d5":-2,"\u00c7":-2,"\u0178":15,"0":19,"Y":15,"W":9,"V":9,"T":21,"P":-2,"O":-2,"N":-2,"M":-6,"L":-4,"J":6,"G":-2,"D":-9,"C":-2,"A":13,"z":-4,"y":-8,"t":-6,"p":-6,"o":-4,"n":-4,"m":-4,"l":-4,"k":-2,"j":5,"h":-4,"g":2,"f":-6,"c":4,"b":-4,"a":2,"6":19}},"x":{"d":"96,0r-37,-68r-38,68r-27,0r51,-87r-49,-85r26,0r36,65r37,-65r27,0r-50,85r51,87r-27,0","w":130,"k":{"\u00ff":-13,"\u00fa":26,"\u00f8":-9,"\u00f9":-9,"\u00fb":-9,"\u00fc":-9,"\u00fd":-13,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":4,"\u00d9":-10,"\u00db":-10,"\u00dc":-10,"\u00d2":-13,"\u00d3":-13,"\u00d5":-13,"\u00c7":-13,"\u0178":4,"\u0153":-8,"0":26,"q":-8,"\u00b5":26,"Y":4,"W":6,"V":8,"U":-10,"T":10,"S":-6,"R":-11,"Q":-13,"P":-10,"O":-13,"N":-13,"M":-10,"L":-9,"J":2,"I":-4,"H":-10,"G":-8,"F":-17,"E":-10,"D":-8,"C":-13,"B":-9,"z":-6,"y":-13,"u":-9,"t":-19,"r":-13,"p":-13,"o":-4,"n":-17,"m":-15,"l":-11,"k":-8,"j":-5,"h":-8,"g":-4,"f":-15,"e":-9,"c":-6,"b":-13,"6":26}},"y":{"d":"111,18v0,52,-64,73,-99,37r15,-17v21,22,61,12,61,-20r0,-35v-26,42,-88,5,-88,-36r0,-120r23,0r0,120v-3,36,65,43,65,5r0,-125r23,0r0,191","k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"z":{"d":"17,0v-16,0,-25,-14,-16,-27r86,-124v-28,0,-60,1,-87,1r0,-23r94,0v19,0,23,16,14,29r-85,122v27,0,56,-1,84,-1r0,23r-90,0","w":143,"k":{"\u00dd":27,"\u0178":27,"\u0153":11,"q":11,"\u00b5":11,"Y":27,"X":15,"W":23,"V":23,"T":23,"S":11,"J":8,"E":6,"A":15,"x":17,"w":10,"v":21,"s":8,"m":6,"g":15,"e":8,"c":6,"a":23}},"A":{"d":"135,0r-23,-89r-67,0v-12,47,-19,70,-23,89r-25,0r61,-237v8,-24,35,-24,41,-1r62,238r-26,0xm80,-231r0,2r0,-2xm107,-112r-27,-117r-30,117r57,0","w":184,"k":{"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00dd":46,"\u00d9":6,"\u00db":6,"\u00dc":6,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u00c7":6,"\u0178":46,"\u0153":4,"0":19,"q":4,"\u00b5":4,"Z":17,"Y":46,"X":19,"W":40,"V":40,"U":6,"T":42,"S":8,"Q":6,"O":2,"J":13,"G":13,"E":8,"C":6,"z":9,"x":15,"w":26,"v":30,"u":13,"s":6,"o":6,"l":10,"j":1,"g":15,"e":9,"c":13,"a":6}},"B":{"d":"23,-231v-2,1,-4,2,0,2r0,-2xm106,-181v0,-51,-38,-51,-83,-48r0,82v39,1,83,6,83,-34xm72,-252v57,-5,84,96,26,116v62,17,41,141,-22,136v-29,-3,-77,12,-76,-21r0,-210v-1,-31,44,-19,72,-21xm21,-23v2,0,2,4,2,0r-2,0xm23,-23v40,1,85,4,87,-34v2,-35,-3,-66,-34,-66r-53,0r0,100","w":166,"k":{"\u00dd":21,"\u00d2":6,"\u00d3":6,"\u00d5":6,"\u0178":21,"Z":10,"Y":21,"X":22,"W":19,"V":30,"T":27,"O":6,"J":10,"A":13,"x":22,"w":21,"v":17,"s":8,"o":7,"g":8,"e":6,"c":8,"a":11}},"C":{"d":"108,-64r24,0v1,86,-132,88,-132,6r0,-137v5,-82,131,-80,132,6r-24,0v2,-54,-85,-55,-85,-6r0,137v4,51,86,49,85,-6","w":164,"k":{"\u00dd":23,"\u0178":23,"Z":15,"Y":23,"X":25,"W":21,"V":23,"T":19,"S":6,"M":6,"J":15,"A":15,"z":11,"x":19,"w":19,"v":23,"s":9,"a":6}},"D":{"d":"23,-232v-1,1,-5,4,0,3r0,-3xm110,-194v0,-41,-46,-36,-87,-35r1,206v40,1,86,6,86,-35r0,-136xm77,0v-29,0,-78,11,-77,-21r0,-211v0,-32,48,-20,77,-20v30,0,57,27,57,58r0,136v0,33,-27,58,-57,58","w":167,"k":{"\u00dd":21,"\u0178":21,"Z":15,"Y":21,"X":26,"W":23,"V":23,"T":25,"J":9,"A":17,"x":17,"w":13,"v":17,"a":4}},"E":{"d":"111,-252r0,23r-88,1r0,87r84,0r0,24r-84,0v0,43,-7,93,35,94r53,0r0,23v-59,6,-111,-6,-111,-58r0,-173v7,-38,73,-15,111,-21","w":147,"k":{"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00dd":21,"\u00d9":13,"\u00db":13,"\u00dc":13,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":11,"\u0178":21,"\u0153":8,"q":8,"\u00b5":8,"Z":10,"Y":21,"X":13,"W":21,"V":17,"U":13,"T":9,"S":9,"R":8,"O":13,"J":23,"G":17,"C":11,"A":13,"z":15,"x":21,"w":21,"v":19,"u":6,"s":8,"r":6,"o":11,"c":6,"a":11}},"F":{"d":"111,-252r0,23r-87,1r0,87r81,0r0,23r-81,0r0,118r-24,0r0,-231v7,-38,73,-15,111,-21","w":142,"k":{"\u00ff":15,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":15,"\u00dd":15,"\u00d9":4,"\u00db":4,"\u00dc":4,"\u00c7":4,"\u0178":15,"\u0153":15,"q":15,"\u00b5":15,"Z":9,"Y":15,"X":13,"W":10,"V":9,"U":4,"T":15,"S":13,"Q":15,"J":36,"G":10,"C":4,"A":34,"z":19,"y":15,"x":19,"w":17,"v":17,"u":13,"s":10,"p":13,"o":17,"i":10,"g":13,"e":13,"c":10,"b":8,"a":21}},"G":{"d":"67,-116r0,-23v27,2,66,-9,66,20r0,62v0,39,-33,59,-66,59v-34,0,-67,-20,-67,-60r0,-138v0,-40,32,-59,66,-59v33,0,66,22,66,66r-23,0v2,-54,-86,-58,-86,-7r0,138v0,48,87,49,87,1r0,-59r-43,0","w":166,"k":{"\u00dd":17,"\u0178":17,"Z":19,"Y":17,"X":19,"W":17,"V":21,"T":32,"A":13,"x":13,"w":15,"v":21,"a":4}},"H":{"d":"124,0r-24,0r0,-113r-77,0r0,113r-23,0r0,-252r23,0r0,116r77,0r0,-116r24,0r0,252","w":156,"k":{"\u00dd":15,"\u0178":15,"Y":15,"X":6,"W":10,"V":11,"T":21,"x":15,"w":11,"v":13,"a":2}},"I":{"d":"27,0r-23,0r0,-252r23,0r0,252","w":63,"k":{"Z":15,"T":27,"x":17,"w":15,"v":15,"s":10,"e":8}},"J":{"d":"66,-252v27,1,66,-7,66,20r0,174v-5,85,-135,82,-133,-7r24,0v-2,57,85,60,85,7r0,-171r-42,0r0,-23","w":165,"k":{"X":6,"W":15,"T":19,"A":15,"w":10,"v":11,"a":2}},"K":{"d":"109,0v-17,-48,-12,-129,-86,-117r0,117r-23,0r0,-252r23,0r0,112v73,12,70,-64,86,-112r25,0v-19,46,-9,109,-63,123v55,15,42,80,63,129r-25,0","w":164,"k":{"\u00ff":15,"\u00fa":30,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":15,"\u00f2":30,"\u00f3":30,"\u00f4":30,"\u00f5":30,"\u00f6":30,"\u00dd":19,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":8,"\u0178":19,"\u0153":10,"0":30,"q":10,"\u00b5":30,"Y":19,"X":15,"W":21,"V":21,"T":19,"Q":6,"O":10,"J":19,"I":11,"G":10,"E":9,"D":11,"C":8,"A":15,"z":9,"y":15,"x":22,"w":30,"v":27,"u":13,"s":9,"r":2,"o":13,"n":4,"j":10,"i":9,"g":6,"e":9,"c":6,"a":13,"6":30}},"L":{"d":"114,0r-92,0v-11,1,-22,-8,-22,-20r0,-232r24,0r0,229r90,0r0,23","w":138,"k":{"\u00ff":23,"\u00f8":13,"\u00f9":13,"\u00fb":13,"\u00fc":13,"\u00fd":23,"\u00dd":59,"\u00d9":11,"\u00db":11,"\u00dc":11,"\u00d2":13,"\u00d3":13,"\u00d5":13,"\u00c7":17,"\u0178":59,"\u0153":10,"q":10,"\u00b5":10,"Z":8,"Y":59,"X":10,"W":46,"V":46,"U":11,"T":61,"S":17,"Q":9,"O":13,"J":13,"G":10,"E":10,"C":17,"A":6,"y":23,"x":10,"w":36,"v":32,"u":13,"o":13,"i":6,"g":8,"e":10,"c":13,"a":17}},"M":{"d":"130,0r2,-214r-41,124v-5,15,-26,17,-31,1r-39,-128v4,69,1,145,2,217r-23,0r0,-233v0,-24,31,-24,37,-5r38,134v15,-44,27,-92,41,-135v7,-21,37,-20,37,5r0,234r-23,0","w":188,"k":{"\u00dd":19,"\u0178":19,"Y":19,"X":15,"W":6,"V":6,"K":-6,"J":10,"A":8,"x":10,"w":15,"v":17,"a":4}},"N":{"d":"33,-241r83,217v-11,-68,-4,-153,-7,-228r23,0r0,234v0,22,-25,23,-32,7v-27,-66,-56,-147,-82,-214v10,66,3,150,5,225r-23,0r0,-235v0,-23,29,-23,34,-5","w":165,"k":{"\u00dd":13,"\u0178":13,"Y":13,"X":8,"W":13,"V":13,"T":19,"J":6,"A":6,"x":11,"w":15,"v":13,"a":4}},"O":{"d":"0,-57r0,-138v0,-79,132,-78,132,0r0,138v0,78,-132,79,-132,0xm23,-195r0,138v0,24,21,36,43,36v22,0,43,-12,43,-36r0,-138v0,-23,-21,-36,-43,-36v-22,0,-43,13,-43,36","w":165,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"P":{"d":"0,-231v1,-31,43,-21,72,-21v45,0,61,42,57,95v-4,49,-49,65,-106,58r0,99r-23,0r0,-231xm23,-228r0,105v39,1,82,5,82,-34v0,-36,-1,-72,-33,-72","w":154,"k":{"\u00ff":4,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":4,"\u00dd":21,"\u0178":21,"\u0153":15,"q":15,"\u00b5":15,"Z":15,"Y":21,"X":19,"W":15,"V":17,"T":28,"J":25,"A":36,"z":10,"y":4,"x":9,"w":15,"v":13,"u":6,"s":13,"o":10,"i":6,"g":13,"e":9,"c":10,"a":19}},"Q":{"d":"132,-195v0,57,11,130,-10,171v4,4,10,9,13,12r-18,17v-4,-5,-7,-10,-13,-14v-42,25,-103,6,-104,-49r0,-137v0,-39,32,-59,66,-59v33,0,66,20,66,59xm23,-57v0,30,38,44,64,31v-4,-4,-9,-8,-12,-11r17,-17r12,12v12,-41,5,-103,5,-153v0,-23,-20,-36,-42,-36v-22,0,-44,13,-44,36r0,138","w":165,"k":{"\u00dd":27,"\u0178":27,"Y":27,"X":15,"W":19,"V":22,"T":28,"J":11,"A":9,"w":15,"v":17,"a":6}},"R":{"d":"0,-231v0,-30,43,-18,71,-21v69,-7,84,126,19,142v47,9,41,58,40,110r-24,0r0,-63v-3,-35,-43,-38,-83,-35r0,98r-23,0r0,-231xm21,-229v0,0,2,0,2,-1v0,1,-1,1,-2,1xm105,-195v0,-38,-43,-36,-82,-34r0,108v39,2,82,0,82,-35r0,-39","w":159,"k":{"\u00dd":21,"\u0178":21,"Y":21,"X":13,"W":15,"V":15,"T":25,"x":11,"w":15,"v":8,"a":2}},"S":{"d":"23,-196v-6,101,120,15,106,139v-9,82,-130,79,-129,-6r23,0v-2,55,79,54,83,6v3,-40,-11,-57,-44,-60v-38,-3,-66,-23,-62,-79v6,-80,130,-79,129,6r-23,0v2,-53,-80,-54,-83,-6","w":159,"k":{"\u00dd":17,"\u0178":17,"Y":17,"W":15,"V":10,"T":19,"A":13,"x":15,"w":17,"v":19,"f":-4}},"T":{"d":"-3,-252r143,0r0,23r-60,0r0,229r-23,0r0,-229r-60,0r0,-23","w":177,"k":{"\u00ff":33,"\u00f8":36,"\u00f9":36,"\u00fb":36,"\u00fc":36,"\u00fd":33,"\u00dd":15,"\u00d2":33,"\u00d3":33,"\u00d5":33,"\u00c7":21,"\u0178":15,"\u0153":44,"q":44,"\u00b5":44,"Z":17,"Y":15,"X":15,"W":19,"V":13,"S":30,"R":17,"Q":28,"P":21,"O":33,"N":13,"L":19,"K":17,"J":59,"I":19,"H":15,"G":32,"F":21,"E":11,"D":13,"C":21,"B":15,"A":51,"z":42,"y":33,"x":38,"w":48,"v":44,"u":36,"s":46,"r":34,"p":38,"o":51,"n":40,"m":36,"l":17,"k":19,"j":42,"i":42,"h":26,"g":42,"f":25,"e":49,"c":51,"b":13,"a":44}},"U":{"d":"109,-252r23,0r0,195v0,80,-132,80,-132,0r0,-195r23,0r0,195v2,45,86,50,86,0r0,-195","w":165,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"V":{"d":"133,-252r25,0r-62,238v-8,22,-35,24,-41,0r-60,-238r24,0r54,216r3,24v10,-63,49,-206,57,-240","w":182,"k":{"Z":13,"X":9,"T":13,"S":11,"R":6,"Q":17,"P":8,"N":8,"L":4,"K":10,"J":32,"H":9,"G":15,"E":6,"D":11,"B":6,"A":44,"z":21,"x":21,"w":19,"v":21,"t":6,"s":26,"r":17,"p":15,"o":22,"n":17,"m":13,"l":6,"k":13,"j":23,"i":17,"h":6,"g":22,"e":32,"c":22,"a":34,"y":17,"\u00fd":17,"\u00ff":17,"6":22,"0":22,"\u00f6":22,"\u00f5":22,"\u00f4":22,"\u00f3":22,"\u00f2":22,"\u00fa":22,"u":19,"\u00fc":19,"\u00fb":19,"\u00f9":19,"\u00f8":19,"C":15,"\u00c7":15,"O":17,"\u00d5":17,"\u00d3":17,"\u00d2":17,"\u00b5":23,"q":23,"\u0153":23}},"W":{"d":"113,-18v-8,-46,-8,-99,-19,-141v-2,50,-10,96,-16,141v-4,24,-32,24,-36,1r-45,-235r24,0r40,230r17,-144v3,-17,33,-17,35,-2r19,146v8,-81,26,-153,38,-230r24,0r-45,234v-5,25,-31,25,-36,0","w":226,"k":{"\u00ff":17,"\u00fa":22,"\u00f8":19,"\u00f9":19,"\u00fb":19,"\u00fc":19,"\u00fd":17,"\u00f2":22,"\u00f3":22,"\u00f4":22,"\u00f5":22,"\u00f6":22,"\u00d2":17,"\u00d3":17,"\u00d5":17,"\u00c7":15,"\u0153":23,"0":22,"q":23,"\u00b5":23,"Z":13,"X":9,"W":10,"V":10,"T":15,"S":15,"R":6,"Q":17,"P":9,"O":17,"N":6,"L":11,"K":6,"J":36,"H":8,"G":15,"F":9,"E":6,"D":11,"C":15,"B":9,"A":38,"z":17,"y":17,"x":19,"w":27,"v":17,"u":19,"t":6,"s":25,"r":17,"p":13,"o":22,"n":15,"m":17,"l":6,"k":8,"j":21,"i":15,"h":4,"g":22,"e":23,"c":22,"b":6,"a":30,"6":22}},"X":{"d":"63,-104r-46,104r-26,0r60,-125r-61,-127r26,0r47,106r47,-106r26,0r-60,128r58,124r-25,0","w":157,"k":{"\u00ff":8,"\u00fa":26,"\u00f8":6,"\u00f9":6,"\u00fb":6,"\u00fc":6,"\u00fd":8,"\u00f2":26,"\u00f3":26,"\u00f4":26,"\u00f5":26,"\u00f6":26,"\u00dd":8,"\u00d2":10,"\u00d3":10,"\u00d5":10,"\u00c7":6,"\u0178":8,"\u0153":6,"0":26,"q":6,"\u00b5":26,"Z":13,"Y":8,"T":10,"S":6,"Q":4,"O":10,"L":8,"K":8,"J":19,"G":4,"E":2,"D":6,"C":6,"B":2,"A":17,"z":15,"y":8,"w":30,"v":30,"u":6,"t":-2,"s":6,"p":4,"o":13,"l":6,"j":8,"g":6,"e":8,"c":6,"a":10,"6":26}},"Y":{"d":"137,-252r-61,143r0,109r-24,0r0,-109r-60,-143r25,0v15,35,39,84,47,124v7,-39,35,-92,47,-124r26,0","w":157,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"Z":{"d":"15,0v-16,0,-24,-13,-16,-28r99,-201r-93,0r0,-23r102,0v18,0,22,11,15,26r-100,203r98,0r0,23r-105,0","w":148,"k":{"\u00ff":9,"\u00f8":10,"\u00f9":10,"\u00fb":10,"\u00fc":10,"\u00fd":9,"\u00dd":4,"\u00d2":2,"\u00d3":2,"\u00d5":2,"\u0178":4,"Y":4,"W":2,"O":2,"J":10,"A":13,"y":9,"x":17,"w":30,"v":31,"u":10,"s":9,"o":8,"g":8,"e":13,"c":6,"a":13}},"\u00b5":{"d":"109,-60r-23,0r0,-22v-18,15,-48,17,-66,1r0,82r-23,0r0,-248r23,0v7,55,-23,154,33,154v59,0,26,-99,34,-153r23,0","w":147,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":26,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"q":{"d":"0,-122v-2,-41,64,-78,89,-36r3,-16r20,0r0,248r-23,0r0,-91v-26,41,-89,5,-89,-37r0,-68xm57,-153v-45,0,-33,56,-34,99v0,18,16,31,34,31v49,1,32,-61,32,-103v0,-15,-14,-27,-32,-27","w":143,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"9":{"d":"127,-190r0,136v-3,63,-79,75,-117,33r18,-15v24,26,77,19,77,-18r0,-56v-5,19,-26,23,-41,23v-33,0,-64,-17,-64,-56r0,-47v0,-75,127,-78,127,0xm22,-190r0,47v0,22,20,33,42,33v21,0,41,-11,41,-34r0,-46v-1,-46,-83,-45,-83,0","w":163},"0":{"d":"0,-55r0,-134v0,-38,32,-57,65,-57v32,0,64,19,64,57r0,134v0,39,-32,57,-64,57v-33,0,-65,-18,-65,-57xm23,-189r0,134v0,45,83,46,83,0r0,-134v0,-45,-83,-45,-83,0","w":165,"k":{"A":21}},"\u00bf":{"d":"55,1v-63,0,-80,-103,-25,-127r-1,1v23,-11,16,-45,17,-76r23,0v1,43,3,83,-28,96v-32,13,-27,83,14,83v18,0,33,-17,34,-40r23,3v-2,35,-27,60,-57,60xm72,-237v0,23,-28,19,-28,0v0,-19,28,-18,28,0","w":143},")":{"d":"-2,22r-12,-19v56,-48,56,-205,-1,-252r13,-18v70,58,69,231,0,289","w":87},">":{"d":"82,-95r-82,49r0,-27r58,-32v-20,-10,-40,-23,-58,-33r0,-26r82,48v9,4,8,17,0,21","w":116},"\\":{"d":"8,-256r88,271r-24,0r-88,-271r24,0","w":123},"]":{"d":"38,6v-1,21,-39,7,-57,11r0,-23r34,0r0,-236r-34,0r0,-23r46,0v9,0,11,3,11,11r0,260","w":70},"}":{"d":"-18,3v42,-30,28,-90,55,-126v-27,-35,-15,-94,-55,-125r12,-19v31,24,47,75,51,108v1,12,8,25,25,25r0,22v-17,0,-23,12,-25,25v-4,33,-20,86,-51,109","w":95},"\u203a":{"d":"47,-120r-41,-55r20,-13r44,61v11,12,-7,20,-10,29v-12,15,-25,35,-35,49r-19,-15","w":113},"\u00ab":{"d":"62,-175r-41,55v12,18,29,38,41,56r-19,15r-46,-64v-3,-30,34,-49,46,-75xm40,-111v-2,-5,-8,-10,0,-17v15,-15,31,-42,45,-60r19,13r-41,55r41,56r-19,15","w":131},"\u00bb":{"d":"40,-64r40,-56r-41,-55r19,-13r45,61v7,5,2,9,1,14r-46,64xm-1,-64r41,-56r-42,-55r20,-13r44,61v12,14,-15,31,-21,45v-8,10,-18,24,-24,33","w":133},":":{"d":"12,-64v9,0,15,6,15,14v0,9,-6,15,-15,15v-8,0,-13,-6,-13,-15v0,-8,5,-14,13,-14xm12,-141v9,0,15,8,15,15v0,9,-6,14,-15,14v-8,0,-13,-5,-13,-14v0,-7,5,-15,13,-15","w":59},";":{"d":"12,-141v9,0,15,8,15,15v0,9,-6,14,-15,14v-8,0,-13,-5,-13,-14v0,-7,5,-15,13,-15xm12,-64v28,1,8,36,4,50r-16,-2r4,-21v-13,-8,-7,-27,8,-27","w":59},"\u201a":{"d":"1,0r0,-79r22,-1r0,80r-22,0","w":58},"\u201e":{"d":"4,0r0,-81r23,0r0,81r-23,0xm48,0r0,-81r22,0r0,81r-22,0","w":98},"\u2026":{"d":"14,-30v8,0,14,7,14,15v0,9,-6,15,-14,15v-9,0,-14,-6,-14,-15v0,-8,5,-15,14,-15xm59,-30v8,0,14,7,14,15v0,9,-6,15,-14,15v-9,0,-15,-6,-15,-15v0,-8,6,-15,15,-15xm105,-30v8,0,14,7,14,15v0,9,-6,15,-14,15v-9,0,-15,-6,-15,-15v0,-8,6,-15,15,-15","w":140},"\u0152":{"d":"112,-237v16,-31,70,-9,108,-15r0,23r-87,1r0,87r83,0r0,24r-83,0v0,42,-7,93,34,94r53,0r0,23v-46,0,-85,6,-98,-33v-22,56,-122,42,-122,-24r0,-138v0,-58,75,-76,112,-42xm24,-195r0,138v0,48,86,48,86,0r0,-138v0,-23,-21,-36,-43,-36v-21,0,-43,13,-43,36","w":270},"\u0153":{"d":"204,-119v-1,45,-38,62,-88,56v-5,41,43,55,65,24r19,14v-26,35,-73,35,-95,1v-26,42,-102,30,-102,-30r0,-66v0,-61,76,-72,102,-28v23,-48,102,-25,99,29xm94,-54v0,-42,9,-98,-35,-98v-43,0,-34,56,-34,98v0,43,69,43,69,0xm116,-86v34,3,66,-2,66,-33v0,-18,-15,-33,-33,-33v-30,1,-37,32,-33,66","w":245,"k":{"X":6,"W":21,"T":30,"J":6,"x":6,"w":8,"v":21,"j":-8,"V":21,"Y":21,"\u0178":21,"\u00dd":21}},"\u0160":{"d":"39,-317r24,19r23,-18r16,16v-15,6,-26,34,-47,24r-32,-24xm23,-203v-7,93,106,28,106,113v0,55,-23,87,-65,86v-33,0,-64,-23,-64,-66r23,0v-2,54,79,55,83,7v4,-40,-10,-58,-44,-61v-38,-3,-66,-23,-62,-79v6,-80,130,-79,129,6r-23,0v2,-53,-79,-54,-83,-6","w":157},"\u0161":{"d":"33,-231r21,15v6,-5,13,-10,21,-15r15,13v-16,14,-39,38,-59,10v-4,-3,-12,-8,-14,-10xm87,-140v-17,-30,-60,-23,-62,12v0,16,13,20,30,21v28,1,54,18,54,51v0,64,-85,67,-110,19r20,-10v14,28,65,27,67,-9v0,-18,-16,-27,-32,-27v-29,-1,-52,-13,-52,-45v2,-61,78,-72,105,-25","w":135},"\u2021":{"d":"42,-47r-42,0r-1,-23r43,0r0,-105r-42,0r0,-23r42,0r0,-48r23,0r0,48r42,0r0,23r-42,0r0,105r41,0r0,23r-41,0r0,47r-23,0r0,-47","w":140},"\u017e":{"d":"36,-230r21,16v6,-5,13,-10,20,-15r16,13v-14,6,-23,30,-43,23v-7,-7,-21,-16,-30,-23xm18,-7v-16,0,-25,-14,-16,-27r86,-124v-28,0,-60,1,-87,1r0,-23r94,0v19,0,23,16,14,29r-85,123v27,0,56,-2,84,-2r0,23r-90,0","w":142},"\u00e7":{"d":"89,-61r23,0v0,30,-19,55,-43,61v4,7,15,12,25,8r10,20v-26,14,-56,2,-59,-27v-49,-8,-45,-63,-45,-120v0,-32,26,-56,56,-56v30,0,56,28,56,63r-23,0v3,-48,-66,-52,-66,-7v0,42,-10,98,33,98v18,0,33,-18,33,-40"},"\u00b8":{"d":"32,-15r23,-3v0,27,17,45,39,31r2,26v-37,12,-69,-15,-64,-54","w":156},"\u00f0":{"d":"126,-190r0,136v-3,63,-79,75,-117,33r18,-15v23,26,76,20,76,-18r0,-56v-5,19,-26,23,-41,23v-33,0,-63,-17,-63,-56r0,-47v0,-39,31,-57,63,-57v32,0,64,18,64,57xm21,-190v-2,42,-2,80,41,80v21,0,41,-11,41,-34r0,-46v0,-46,-80,-45,-82,0","w":161},"\u201c":{"d":"17,-200v-27,-3,-8,-39,-2,-55r19,0v-2,14,-11,30,-2,40v0,8,-6,15,-15,15xm56,-200v-28,0,-7,-39,-1,-55r18,0v-1,14,-9,29,-2,40v0,8,-6,15,-15,15","w":95},"\u2019":{"d":"16,-253v28,2,7,41,5,61r-16,-1r4,-35v-14,-5,-8,-26,7,-25","w":63},"\u201d":{"d":"57,-255v27,0,6,39,1,55r-18,-1v2,-14,10,-29,2,-39v0,-8,6,-15,15,-15xm17,-255v27,3,8,39,2,55r-19,-1v2,-13,10,-28,3,-39v0,-8,5,-15,14,-15","w":92},"\u0178":{"d":"-14,-252r60,143r0,109r24,0r0,-109r61,-143r-26,0v-12,31,-40,86,-47,124v-8,-41,-32,-88,-47,-124r-25,0xm35,-293v8,0,15,7,15,15v0,9,-7,14,-15,14v-9,0,-14,-5,-14,-14v0,-9,5,-15,14,-15xm79,-293v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":151,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"\u00c6":{"d":"119,-231v0,-39,72,-15,110,-21r0,23r-87,1r0,87r84,0r0,24r-84,0r1,59v2,46,45,34,86,35r0,23v-58,3,-105,1,-109,-55v-8,-22,-6,-26,-11,-33r-68,0r-23,91r-24,-5r60,-235v6,-23,37,-24,42,0r26,110v0,-28,-3,-76,-3,-104xm47,-112r56,0r-28,-108v-5,16,-25,99,-28,108","w":262},"\u00e6":{"d":"89,-17v-29,46,-89,7,-89,-50v0,-42,53,-73,89,-44v4,-37,-36,-53,-60,-27r-14,-20v27,-24,71,-26,85,16v17,-58,101,-32,99,23v-2,45,-38,62,-88,56v-4,41,43,55,65,24r19,14v-23,32,-64,36,-84,7r-3,18r-16,0xm23,-67v0,27,10,45,33,46v28,1,32,-21,32,-51v0,-17,-14,-27,-32,-27v-18,0,-33,14,-33,32xm111,-86v34,3,66,-2,66,-33v0,-18,-15,-33,-33,-33v-31,0,-36,32,-33,66","w":238},"\u00c5":{"d":"107,-277v0,19,-18,36,-38,36v-21,0,-36,-17,-36,-36v0,-20,15,-37,36,-37v20,0,38,17,38,37xm84,-277v0,-8,-7,-15,-15,-15v-7,0,-13,7,-13,15v0,8,6,14,13,14v8,0,15,-6,15,-14xm127,-4r-23,-88r-68,0v-12,47,-18,69,-22,88r-25,0r60,-237v8,-23,36,-22,42,0r62,237r-26,0xm71,-233v1,-1,2,-2,0,-3r0,3xm98,-115r-27,-118r-29,118r56,0","w":176},"\u00c4":{"d":"103,-89r23,89r26,0r-62,-238v-8,-22,-36,-24,-42,1r-60,237r25,0v4,-19,10,-42,22,-89r68,0xm70,-229v1,-2,1,-3,-1,-4xm70,-229r27,117r-56,0xm48,-296v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm92,-296v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":176},"\u00c3":{"d":"126,0r-23,-89r-68,0v-12,47,-18,70,-22,89r-25,0r60,-237v8,-24,36,-23,42,-1r62,238r-26,0xm70,-229v1,-2,1,-3,-1,-4xm97,-112r-27,-117r-29,117r56,0xm48,-295v9,16,19,-2,32,-3v8,0,18,6,28,20r-17,13v-6,-4,-7,-17,-15,-10v-17,16,-29,10,-44,-9","w":176},"\u00c2":{"d":"126,0r-23,-89r-68,0v-12,47,-18,70,-22,89r-25,0r60,-237v8,-24,36,-23,42,-1r62,238r-26,0xm70,-229v1,-2,1,-3,-1,-4xm97,-112r-27,-117r-29,117r56,0xm70,-283r-30,23r-14,-18v18,-11,42,-45,64,-17v8,5,16,11,22,16r-15,17","w":176},"\u00c1":{"d":"103,-89r23,89r26,0r-62,-238v-8,-22,-36,-24,-42,1r-60,237r25,0v4,-19,10,-42,22,-89r68,0xm70,-229v1,-2,1,-3,-1,-4xm70,-229r27,117r-56,0xm58,-267r30,-50r26,12r-31,38r-25,0","w":174},"\u00c0":{"d":"126,0r-23,-89r-68,0v-12,47,-18,70,-22,89r-25,0r60,-237v8,-24,36,-23,42,-1r62,238r-26,0xm70,-229v1,-2,1,-3,-1,-4xm97,-112r-27,-117r-29,117r56,0xm55,-321r29,54r-24,1r-30,-40","w":176},"\u00c7":{"d":"108,-64r24,0v1,86,-132,88,-132,6r0,-137v5,-82,131,-80,132,6r-24,0v2,-54,-85,-55,-85,-6r0,137v4,51,86,49,85,-6xm53,-12r23,-3v0,27,16,45,39,32r3,26v-39,10,-69,-16,-65,-55","w":164},"\u00cb":{"d":"111,-229r0,-23v-39,6,-111,-18,-111,21r0,173v1,51,52,65,111,58r0,-23v-41,1,-88,4,-87,-35r0,-59r83,0r0,-24r-83,0r0,-87xm37,-298v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm81,-298v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":140},"\u00ca":{"d":"111,-252r0,23r-87,1r0,87r83,0r0,24r-83,0v0,0,-8,93,34,94r53,0r0,23v-59,6,-111,-6,-111,-58r0,-173v7,-38,73,-15,111,-21xm85,-265r-27,-21r-30,23r-14,-18v18,-11,41,-43,64,-17v8,5,16,11,22,16","w":140},"\u00c9":{"d":"111,-229r0,-23v-39,6,-111,-18,-111,21r0,173v1,51,52,65,111,58r0,-23v-41,1,-88,4,-87,-35r0,-59r83,0r0,-24r-83,0r0,-87xm46,-264r31,-50r26,12r-32,38r-25,0","w":143},"\u00c8":{"d":"111,-252r0,23r-87,1r0,87r83,0r0,24r-83,0v0,0,-8,93,34,94r53,0r0,23v-59,6,-111,-6,-111,-58r0,-173v7,-38,73,-15,111,-21xm47,-319r30,55r-25,0r-29,-40","w":143},"\u00cf":{"d":"-1,0r23,0r0,-252r-23,0r0,252xm-12,-296v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm32,-296v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":52},"\u00ce":{"d":"22,0r-23,0r0,-252r23,0r0,252xm36,-265r-27,-21r-30,23r-14,-18v19,-11,41,-42,65,-17v8,5,15,11,21,16","w":52},"\u00cd":{"d":"-1,0r23,0r0,-252r-23,0r0,252xm-5,-265r31,-50r26,12r-32,38r-25,0","w":52,"k":{"X":22,"x":22,"a":19}},"\u00cc":{"d":"24,0r-23,0r0,-252r23,0r0,252xm-3,-321r30,55r-24,0r-30,-40","w":54},"\u00d0":{"d":"23,-232v-1,1,-5,4,0,3r0,-3xm110,-194v1,-40,-46,-36,-87,-35r1,206v40,1,87,5,86,-35r0,-136xm76,0v-30,0,-76,10,-76,-21r0,-211v2,-31,47,-20,76,-20v30,0,58,27,58,58r0,136v0,33,-28,58,-58,58xm-12,-138r72,0r0,24r-72,0r0,-24","w":167,"k":{"X":22,"x":22,"a":19}},"\u00d1":{"d":"33,-241r83,217v-11,-68,-4,-153,-7,-228r23,0r0,234v0,22,-25,23,-32,7v-27,-66,-56,-147,-82,-214v10,66,3,150,5,225r-23,0r0,-235v0,-23,29,-23,34,-5xm45,-298v9,18,20,-2,35,-3v9,0,18,8,29,23r-17,14v-7,-4,-8,-19,-17,-11v-17,17,-32,11,-47,-10","w":165,"k":{"X":22,"x":22,"a":19}},"\u00d6":{"d":"0,-195r0,138v0,78,132,79,132,0r0,-138v0,-79,-132,-78,-132,0xm23,-57r0,-138v0,-23,21,-36,43,-36v22,0,43,13,43,36r0,138v0,24,-21,36,-43,36v-22,0,-43,-12,-43,-36xm44,-298v8,0,15,7,15,15v0,9,-7,14,-15,14v-9,0,-14,-5,-14,-14v0,-9,5,-15,14,-15xm88,-298v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":165},"\u00d5":{"d":"0,-57r0,-138v0,-79,132,-78,132,0r0,138v0,78,-132,79,-132,0xm23,-195r0,138v0,24,21,36,43,36v22,0,43,-12,43,-36r0,-138v0,-23,-21,-36,-43,-36v-22,0,-43,13,-43,36xm42,-300v10,19,21,-4,34,-3v9,0,19,8,30,23r-18,14v-7,-4,-8,-19,-16,-11v-18,17,-33,10,-48,-10","w":165,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d4":{"d":"0,-57r0,-138v0,-79,132,-78,132,0r0,138v0,78,-132,79,-132,0xm23,-195r0,138v0,24,21,36,43,36v22,0,43,-12,43,-36r0,-138v0,-23,-21,-36,-43,-36v-22,0,-43,13,-43,36xm66,-286r-30,22r-14,-18v18,-11,42,-43,64,-16v8,5,16,11,22,16r-15,17","w":165},"\u00d3":{"d":"0,-195r0,138v0,78,132,79,132,0r0,-138v0,-79,-132,-78,-132,0xm23,-57r0,-138v0,-23,21,-36,43,-36v22,0,43,13,43,36r0,138v0,24,-21,36,-43,36v-22,0,-43,-12,-43,-36xm53,-264r31,-50r26,12r-32,38r-25,0","w":165,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d2":{"d":"0,-57r0,-138v0,-79,132,-78,132,0r0,138v0,78,-132,79,-132,0xm23,-195r0,138v0,24,21,36,43,36v22,0,43,-12,43,-36r0,-138v0,-23,-21,-36,-43,-36v-22,0,-43,13,-43,36xm53,-319r30,54r-25,0r-29,-40","w":165,"k":{"Z":15,"X":19,"W":23,"T":30,"J":15,"A":11,"x":10,"w":17,"v":19,"a":4,"V":23,"Y":23,"\u0178":23,"\u00dd":23}},"\u00d8":{"d":"0,-57r0,-138v0,-79,132,-78,132,0r0,138v0,78,-132,79,-132,0xm23,-195r0,138v0,24,21,36,43,36v22,0,43,-12,43,-36r0,-138v0,-23,-21,-36,-43,-36v-22,0,-43,13,-43,36xm124,-256r-88,270r-24,0r87,-270r25,0","w":165},"\u00dc":{"d":"132,-252r-23,0r0,195v0,50,-84,45,-86,0r0,-195r-23,0r0,195v0,80,132,80,132,0r0,-195xm44,-297v8,0,15,7,15,15v0,9,-7,14,-15,14v-9,0,-14,-5,-14,-14v0,-9,5,-15,14,-15xm88,-297v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":165,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00db":{"d":"109,-252r23,0r0,195v0,80,-132,80,-132,0r0,-195r23,0r0,195v2,45,86,50,86,0r0,-195xm98,-265r-28,-22r-30,23r-13,-18v18,-12,41,-42,64,-17v8,5,15,12,21,17","w":165,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00da":{"d":"132,-252r-23,0r0,195v0,50,-84,45,-86,0r0,-195r-23,0r0,195v0,80,132,80,132,0r0,-195xm49,-264r30,-50r26,12r-31,38r-25,0","w":165},"\u00d9":{"d":"109,-252r23,0r0,195v0,80,-132,80,-132,0r0,-195r23,0r0,195v2,45,86,50,86,0r0,-195xm57,-320r29,54r-24,1r-30,-40","w":165,"k":{"Z":8,"W":9,"J":13,"A":10,"x":8,"w":15,"v":15,"a":4}},"\u00dd":{"d":"77,-109r61,-143r-26,0v-12,31,-40,86,-47,124v-8,-41,-32,-88,-47,-124r-26,0r61,143r0,109r24,0r0,-109xm53,-263r30,-50r26,11r-31,39r-25,0","w":158,"k":{"Z":15,"X":10,"T":8,"S":13,"R":11,"Q":17,"P":8,"N":9,"M":10,"L":6,"K":8,"J":49,"H":8,"G":13,"F":6,"E":13,"A":48,"z":27,"x":23,"w":32,"v":32,"s":26,"r":15,"p":17,"o":30,"n":13,"m":15,"l":9,"k":8,"j":21,"i":11,"h":8,"g":30,"f":10,"e":25,"c":30,"b":9,"a":36,"y":21,"\u00fd":21,"\u00ff":21,"6":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30,"u":17,"\u00fc":17,"\u00fb":17,"\u00f9":17,"\u00f8":17,"C":13,"\u00c7":13,"O":19,"\u00d5":19,"\u00d3":19,"\u00d2":19,"\u00b5":27,"q":27,"\u0153":27}},"\u00e5":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32xm97,-190v0,19,-17,36,-37,36v-21,0,-36,-17,-36,-36v0,-19,15,-36,36,-36v20,0,37,17,37,36xm74,-190v0,-8,-6,-14,-14,-14v-7,0,-14,6,-14,14v0,8,7,14,14,14v8,0,14,-6,14,-14","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e4":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32xm38,-215v8,0,15,7,15,15v0,9,-7,14,-15,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm82,-215v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e3":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32xm37,-218v7,17,18,-1,31,-2v8,0,17,7,27,21r-16,12v-6,-4,-7,-18,-15,-10v-17,16,-30,11,-43,-9","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e2":{"d":"89,-16v-31,43,-98,4,-89,-51v-3,-43,64,-79,89,-36v8,-42,-33,-63,-60,-35r-14,-20v33,-35,97,-11,97,39r0,119r-21,0xm23,-67v0,27,10,45,33,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-33,14,-33,32xm59,-204v-7,6,-20,17,-28,22r-13,-17v17,-11,39,-41,61,-16v7,5,15,11,20,16r-14,15","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e1":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32xm46,-186r27,-45r22,10r-27,35r-22,0","k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00e0":{"d":"89,-16v-32,42,-98,4,-89,-51v-3,-44,64,-78,89,-36v6,-40,-34,-64,-61,-35r-13,-20v33,-35,96,-10,96,39r0,119r-20,0xm23,-67v0,27,9,45,32,46v28,1,33,-20,33,-51v0,-17,-15,-27,-33,-27v-18,0,-32,14,-32,32xm46,-234r29,48r-24,0r-29,-35","w":145,"k":{"T":33,"Q":26,"J":22,"G":23,"w":57,"j":22,"8":5,"7":4,"5":7,"4":34,"3":4,"2":7,"1":-4,"\/":58,"(":5,"&":5,"y":71,"\u00fd":71,"\u00ff":71,"V":56,"W":56,"Y":71,"\u0178":71,"\u00dd":71,"6":23,"c":23,"g":23,"o":23,"0":23,"\u00f6":23,"\u00f5":23,"\u00f4":23,"\u00f3":23,"\u00f2":23,"\u00fa":23,"u":30,"\u00fc":30,"\u00fb":30,"\u00f9":30,"\u00f8":30,"C":23,"\u00c7":23,"O":22,"\u00d5":22,"\u00d3":22,"\u00d2":22,"U":30,"\u00dc":30,"\u00db":30,"\u00d9":30}},"\u00eb":{"d":"112,-119v-1,44,-40,58,-89,53v-7,43,42,59,65,27r19,14v-32,47,-105,27,-107,-29v-2,-61,-2,-120,56,-121v30,0,56,25,56,56xm23,-86v34,3,66,-2,66,-33v0,-18,-15,-33,-33,-33v-30,1,-37,32,-33,66xm39,-213v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm82,-213v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":140},"\u00ea":{"d":"112,-119v-1,44,-40,58,-89,53v-7,43,42,59,65,27r19,14v-32,47,-105,27,-107,-29v-2,-61,-2,-120,56,-121v30,0,56,25,56,56xm23,-86v34,3,66,-2,66,-33v0,-18,-15,-33,-33,-33v-30,1,-37,32,-33,66xm82,-183r-24,-18r-26,20r-12,-16v16,-10,36,-38,56,-15v6,4,14,10,19,15","w":139},"\u00e9":{"d":"108,-119v-1,45,-39,58,-88,53v-7,43,42,59,65,27r19,14v-32,47,-105,27,-107,-29v-2,-61,-2,-120,56,-121v30,0,55,25,55,56xm20,-86v34,3,65,-1,65,-33v0,-18,-14,-33,-32,-33v-30,1,-37,32,-33,66xm39,-185r27,-45r23,11r-29,34r-21,0","w":136},"\u00e8":{"d":"111,-119v-1,45,-39,58,-88,53v-7,42,41,59,64,27r20,14v-32,47,-105,27,-107,-29v-2,-61,-2,-120,56,-121v30,0,55,25,55,56xm23,-86v34,3,65,-1,65,-33v0,-18,-14,-33,-32,-33v-30,1,-37,32,-33,66xm42,-234r26,49r-22,0r-26,-36","w":139},"\u00ef":{"d":"27,0r0,-173r-23,0r0,173r23,0xm-3,-225v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm41,-225v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":54},"\u00ee":{"d":"27,-173r0,173r-23,0r0,-173r23,0xm15,-205r-30,22r-14,-18v18,-11,42,-43,64,-16v8,5,16,11,22,16r-15,17","w":54},"\u00ec":{"d":"27,-173r0,173r-23,0r0,-173r23,0xm1,-239r27,51r-22,1r-27,-38","w":55},"\u00ed":{"d":"27,0r0,-173r-23,0r0,173r23,0xm5,-188r26,-45r24,10r-28,35r-22,0","w":54},"\u00f1":{"d":"56,-152v-56,5,-26,98,-33,152r-23,0r0,-173r20,0r3,17v27,-43,89,-6,89,37r0,119r-23,0v-7,-55,23,-146,-33,-152xm35,-218v8,17,19,-2,32,-2v8,0,18,7,28,21r-17,12v-6,-4,-7,-17,-15,-10v-16,16,-31,10,-45,-9"},"\u00f6":{"d":"118,-120r0,66v0,74,-114,75,-114,0r0,-66v0,-74,114,-74,114,0xm95,-54v0,-42,9,-98,-34,-98v-43,0,-34,56,-34,98v0,43,68,43,68,0xm36,-218v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15xm80,-218v8,0,14,7,14,15v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-15,15,-15","w":149},"\u00f5":{"d":"118,-120r0,66v-1,74,-115,75,-115,0r0,-66v0,-74,115,-73,115,0xm95,-54v0,-42,9,-98,-35,-98v-43,0,-34,56,-34,98v0,43,69,43,69,0xm32,-221v10,19,20,-4,34,-3v9,0,19,8,30,23r-18,13v-7,-4,-8,-18,-16,-10v-18,17,-33,11,-48,-10","w":148},"\u00f4":{"d":"118,-120r0,66v0,74,-114,75,-114,0r0,-66v0,-74,114,-74,114,0xm95,-54v0,-42,9,-98,-34,-98v-43,0,-34,56,-34,98v0,43,68,43,68,0xm59,-208v-9,5,-23,15,-30,22r-14,-18v18,-11,41,-43,64,-17v8,5,16,12,22,17r-15,17","w":149},"\u00f3":{"d":"118,-120r0,66v-1,74,-115,75,-115,0r0,-66v0,-74,115,-73,115,0xm95,-54v0,-42,9,-98,-35,-98v-43,0,-34,56,-34,98v0,43,69,43,69,0xm45,-187r31,-43r27,10r-32,33r-26,0","w":148},"\u00f2":{"d":"118,-120r0,66v-1,74,-115,75,-115,0r0,-66v0,-74,115,-73,115,0xm95,-54v0,-42,9,-98,-35,-98v-43,0,-34,56,-34,98v0,43,69,43,69,0xm42,-230r28,44r-23,0r-28,-32","w":148},"\u00fd":{"d":"111,18r0,-191r-23,0r0,125v0,17,-14,26,-31,26v-18,0,-34,-13,-34,-31r0,-120r-23,0r0,120v-2,42,61,78,88,36v2,34,0,67,-32,67v-9,0,-20,-4,-29,-12r-15,17v36,36,99,16,99,-37xm34,-188r30,-50r26,11r-31,39r-25,0","k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"\u00fc":{"d":"55,2v76,-1,52,-102,55,-175r-23,0v-7,54,23,145,-32,152v-55,-6,-24,-99,-32,-152r-23,0r0,119v0,30,24,56,55,56xm33,-219v8,0,15,8,15,16v0,9,-7,14,-15,14v-9,0,-15,-5,-15,-14v0,-9,6,-16,15,-16xm77,-219v8,0,14,8,14,16v0,9,-6,14,-14,14v-9,0,-15,-5,-15,-14v0,-9,6,-16,15,-16","w":144,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fb":{"d":"55,2v-31,0,-55,-26,-55,-56r0,-119r23,0v7,54,-23,145,32,152v55,-6,24,-99,32,-152r22,0v-4,72,22,173,-54,175xm59,-210r-27,21r-13,-16v17,-11,36,-38,59,-16v6,6,15,10,20,15r-14,16","w":143,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f9":{"d":"55,2v-31,0,-55,-26,-55,-56r0,-119r23,0v7,54,-23,145,32,152v55,-6,24,-99,32,-152r23,0v-4,73,21,174,-55,175xm45,-232r26,49r-22,0r-27,-36","w":144,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00f8":{"d":"96,-166v25,17,19,67,19,108v0,43,-36,62,-74,54v-3,7,-6,17,-8,22r-20,-8r8,-24v-27,-17,-20,-66,-20,-108v0,-45,38,-65,75,-54r5,-16r21,6xm68,-154v-57,-17,-49,81,-39,116xm48,-26v56,14,49,-71,39,-115","w":148,"k":{"Z":13,"X":17,"W":26,"T":34,"A":17,"z":9,"x":17,"w":15,"v":15,"a":6,"V":26,"Y":21,"\u0178":21,"\u00dd":21}},"\u00fa":{"d":"55,2v75,-1,50,-103,54,-175r-22,0v-7,54,23,145,-32,152v-55,-6,-24,-99,-32,-152r-23,0r0,119v0,30,24,56,55,56xm43,-183r25,-41r22,9r-27,32r-20,0","w":143},"\u00ff":{"d":"111,18r0,-191r-23,0r0,125v0,17,-14,26,-31,26v-18,0,-34,-13,-34,-31r0,-120r-23,0r0,120v-2,42,61,78,88,36v2,34,0,67,-32,67v-9,0,-20,-4,-29,-12r-15,17v36,36,99,16,99,-37xm34,-218v8,0,15,7,15,14v0,8,-7,14,-15,14v-9,0,-15,-6,-15,-14v0,-8,6,-14,15,-14xm80,-218v9,0,14,7,14,14v0,8,-5,14,-14,14v-9,0,-16,-6,-16,-14v0,-8,7,-14,16,-14","k":{"X":11,"W":21,"T":25,"J":19,"A":9,"x":4,"w":15,"v":13,"l":-2,"j":-6,"V":21,"Y":21,"\u0178":21,"\u00dd":21,"6":30,"c":30,"g":30,"o":30,"0":30,"\u00f6":30,"\u00f5":30,"\u00f4":30,"\u00f3":30,"\u00f2":30,"\u00fa":30}},"$":{"d":"22,-192v-6,97,104,14,104,137v0,34,-24,53,-52,57r0,16r-23,0r0,-16v-28,-4,-51,-25,-51,-64r22,0v-2,53,76,53,81,7v4,-40,-10,-56,-43,-59v-37,-3,-60,-23,-60,-78v0,-33,23,-53,52,-56r0,-18r23,0r0,18v26,5,51,26,51,63r-23,0v2,-53,-79,-54,-81,-7","w":158},"d":{"d":"89,-16v-24,44,-89,5,-89,-36r0,-68v-2,-42,62,-78,89,-37r0,-91r23,0r0,248r-20,0xm57,-151v-45,-1,-33,57,-34,99v0,17,16,31,34,31v47,0,32,-59,32,-101v0,-17,-11,-29,-32,-29","k":{"v":13,"a":6}},"\u2030":{"d":"161,-247r25,0r-157,247r-26,0xm144,-22v35,0,32,-73,1,-73v-17,0,-25,16,-25,35v0,20,9,37,24,38xm192,-57v0,32,-17,58,-48,58v-29,0,-46,-29,-46,-61v0,-32,16,-60,47,-59v28,1,47,30,47,62xm69,-183v0,-20,-9,-38,-24,-38v-17,0,-25,16,-25,35v0,20,9,38,24,38v17,0,25,-16,25,-35xm91,-183v0,31,-17,58,-47,58v-29,0,-47,-29,-47,-61v0,-32,17,-59,48,-59v28,0,46,29,46,62xm248,-22v37,0,32,-73,1,-73v-17,0,-25,16,-25,35v0,20,9,37,24,38xm296,-57v0,32,-17,58,-48,58v-29,0,-46,-29,-46,-61v0,-32,16,-60,47,-59v28,1,47,30,47,62","w":326},"\u00a1":{"d":"28,3r0,-202r-23,0r0,202r23,0xm31,-230v0,9,-6,15,-14,15v-9,0,-16,-6,-16,-15v0,-9,7,-16,16,-16v8,0,14,7,14,16","w":66}}});
/**
 * edge.js 1.41 (21-Mar-2009)
 * (c) by Christian Effenberger 
 * All Rights Reserved
 * Source: edge.netzgesta.de
 * Distributed under Netzgestade Software License Agreement
 * http://www.netzgesta.de/cvi/LICENSE.txt
 * License permits free of charge
 * use on non-commercial and 
 * private web sites only
**/

// the mask images must be set before loading "edge.js" !

if(typeof mask2load=="undefined") {var ina = true; var mask2load = new Array("");}

var tmp = navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('Opera') < 1 ? 1 : 0;
if(tmp) var isIE = document.namespaces ? 1 : 0;

if(isIE) {
	if(document.namespaces['v']==null) {
		var e=["shape","shapetype","group","background","path","formulas","handles","fill","stroke","shadow","textbox","textpath","imagedata","line","polyline","curve","roundrect","oval","rect","arc","image"],s=document.createStyleSheet(); 
		for(var i=0; i<e.length; i++) {s.addRule("v\\:"+e[i],"behavior: url(#default#VML);");} document.namespaces.add("v","urn:schemas-microsoft-com:vml");
	} 
}

if(document.images) {
	var maskimg = new Array();
	var mimgCount = 0; var mi, mtimerID;
	var loadedmask = new Array();
}

function preloadImages() {
	for(mi=0; mi<mask2load.length; mi++) {
		maskimg[mi] = new Image();
		maskimg[mi].src = mask2load[mi];
	}
	for(mi=0; mi<maskimg.length; mi++) {
		loadedmask[mi] = false;
	}
	checkMaskImgLoad();
}

function checkMaskImgLoad() {
	if(ina==true || mimgCount==maskimg.length || maskimg[0].src=='') {
		if(isIE){
			addIEdges(); 
			return;
		}else {
			addEdges(); 
			return;
		}
	}
	for(mi=0; mi<=maskimg.length; mi++) {
		if(loadedmask[mi] == false && maskimg[mi].complete) {
			loadedmask[mi] = true; mimgCount++;
		}
	}
	mtimerID = setTimeout("checkMaskImgLoad()",10); 
}

function getImages(className){
	var children = document.getElementsByTagName('img'); 
	var elements = new Array(); var i = 0;
	var child; var classNames; var j = 0;
	for (i=0;i<children.length;i++) {
		child = children[i];
		classNames = child.className.split(' ');
		for (var j = 0; j < classNames.length; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}

function getClasses(classes,string){
	var temp = '';
	for (var j=0;j<classes.length;j++) {
		if (classes[j] != string) {
			if (temp) {
				temp += ' '
			}
			temp += classes[j];
		}
	}
	return temp;
}

function getClassValue(classes,string){
	var temp = 0; var pos = string.length;
	for (var j=0;j<classes.length;j++) {
		if (classes[j].indexOf(string) == 0) {
			temp = Math.min(classes[j].substring(pos),100);
			break;
		}
	}
	return Math.max(0,temp);
}

function getClassAttribute(classes,string){
	var temp = 0; var pos = string.length;
	for (var j=0;j<classes.length;j++) {
		if (classes[j].indexOf(string) == 0) {
			temp = 1; break;
		}
	}
	return temp;
}

function setRadialStyle(ctx,x1,y1,r1,x2,y2,r2,o,c,i) {
	var sg = (i==true?o:0), eg = (i==true?0:o);
	var tmp = ctx.createRadialGradient(x1,y1,r1,x2,y2,r2);
	tmp.addColorStop(0,'rgba('+c+','+c+','+c+','+sg+')');
	tmp.addColorStop(1,'rgba('+c+','+c+','+c+','+eg+')');
	return tmp;
}

function setLinearStyle(ctx,x,y,w,h,o,c,i) {
	var sg = (i==true?o:0), eg = (i==true?0:o);
	var tmp = ctx.createLinearGradient(x,y,w,h);
	tmp.addColorStop(0,'rgba('+c+','+c+','+c+','+sg+')');
	tmp.addColorStop(1,'rgba('+c+','+c+','+c+','+eg+')');
	return tmp;
}

function addMask(ctx,x,y,w,h,r,o,c,i){
	var style; var os = r, p = Math.round(r/8);
	ctx.fillStyle = 'rgba('+c+','+c+','+c+','+o+')';
	if(i) {ctx.beginPath(); ctx.rect(x+r,y+r,w-(r*2),h-(r*2)); ctx.closePath(); ctx.fill();}
	if(window.opera && !i) {
		ctx.beginPath(); ctx.moveTo(x,y); ctx.lineTo(x,y+r); ctx.quadraticCurveTo(x+p,y+p,x+r,y); ctx.closePath(); ctx.fill();
		ctx.beginPath(); ctx.moveTo(x+w,y); ctx.lineTo(x+w,y+r); ctx.quadraticCurveTo(x+w-p,y+p,x+w-r,y); ctx.closePath(); ctx.fill();
		ctx.beginPath(); ctx.moveTo(x+w,y+h); ctx.lineTo(x+w,y+h-r); ctx.quadraticCurveTo(x+w-p,y+h-p,x+w-r,y+h); ctx.closePath(); ctx.fill();
		ctx.beginPath(); ctx.moveTo(x,y+h); ctx.lineTo(x,y+h-r); ctx.quadraticCurveTo(x+p,y+h-p,x+r,y+h); ctx.closePath(); ctx.fill();
	}
	ctx.beginPath(); ctx.rect(x+r,y,w-(r*2),os); ctx.closePath(); style = setLinearStyle(ctx,x+r,y+os,x+r,y,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x,y,r,r); ctx.closePath(); style = setRadialStyle(ctx,x+r,y+r,r-os,x+r,y+r,r,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x,y+r,os,h-(r*2)); ctx.closePath(); style = setLinearStyle(ctx,x+os,y+r,x,y+r,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x,y+h-r,r,r); ctx.closePath(); style = setRadialStyle(ctx,x+r,y+h-r,r-os,x+r,y+h-r,r,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x+r,y+h-os,w-(r*2),os); ctx.closePath(); style = setLinearStyle(ctx,x+r,y+h-os,x+r,y+h,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x+w-r,y+h-r,r,r); ctx.closePath(); style = setRadialStyle(ctx,x+w-r,y+h-r,r-os,x+w-r,y+h-r,r,o,c,i); ctx.fillStyle = style; ctx.fill();
	ctx.beginPath(); ctx.rect(x+w-os,y+r,os,h-(r*2)); ctx.closePath(); style = setLinearStyle(ctx,x+w-os,y+r,x+w,y+r,o,c,i); ctx.fillStyle = style; ctx.fill(); 
	ctx.beginPath(); ctx.rect(x+w-r,y,r,r); ctx.closePath(); style = setRadialStyle(ctx,x+w-r,y+r,r-os,x+w-r,y+r,r,o,c,i); ctx.fillStyle = style; ctx.fill();
}

function checkGifVersion(num) {
	var tmp, str, i, t, n, p, s;
	t = maskimg[num].src.split("/"); n = t[t.length-1].toLowerCase();
	p = n.split("."); s = p[p.length-1]; p = n.slice(0, n.length-s.length-1);
	if(s!='gif') {
		for(i=0; i<maskimg.length; i++) {
			tmp = maskimg[i].src.toLowerCase(); str = tmp.lastIndexOf(p+'.gif'); if(str >= 0) {return i; }
		} return -1;
	}else {return num;}
}

function applyMask() {
	var ia = document.getElementById("img_a"); var ib = document.getElementById("img_b");
	if(ia!=null && ib!=null){
		ia.filters[0].Apply(); ia.innerHTML = ib.innerHTML; ia.filters[0].Play(); 
		ia.filters['DXImageTransform.Microsoft.Compositor'].Function=6; ia.id = ""; ib.id = "";
		return;
	}else {setTimeout("applyMask()",10);}
}

function addIEdges() {
	var theimages = getImages('edges');
	var image, object, canvas, display, head, fill, foot, map, flt, i, pos, tpa, tpb, ia, ib, source;
	var inbuilt = 0; var imask = 0; var classes = ''; var newClasses = '';
	for (i=0;i<theimages.length;i++) {
		image = theimages[i]; object = image.parentNode;
		classes = image.className.split(' '); map = '';
		imask = getClassValue(classes,"imask");
		inbuilt = getClassAttribute(classes,"inbuilt");
		newClasses = getClasses(classes,"edges");
		display = (image.currentStyle.display.toLowerCase()=='block')?'block':'inline-block';
		canvas = document.createElement(['<var style="zoom:1;overflow:hidden;display:' + display + ';width:' + image.width + 'px;height:' + image.height + 'px;padding:0;">'].join(''));
		flt = image.currentStyle.styleFloat.toLowerCase();
		display = (flt=='left'||flt=='right')?'inline':display;
		head = '<v:group style="zoom:1; display:' + display + '; margin:-1px 0 0 -1px; padding:0; position:relative; width:' + image.width + 'px;height:' + image.height + 'px;" coordsize="' + image.width + ',' + image.height + '">';
		fill = '<v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="zoom:1;margin:-1px 0 0 -1px;padding: 0;display:block;position:absolute;top:0px;left:0px;width:' + image.width + 'px;height:' + image.height + 'px; filter:Alpha(opacity=100, finishopacity=0, style=3);"><v:fill src="' + image.src + '" type="frame" /></v:rect>'; 
		if(image.getAttribute("usemap")) map = '<img usemap="'+image.getAttribute('usemap')+'" src="'+image.src+'" border="0" style="filter:Alpha(opacity=0); position:absolute; margin:0; padding:0; top:0; left:0; width:'+image.width+'px; height:'+image.height+'px;" />';
		foot = '</v:group>';
		if(typeof(window['mask2load'])!="undefined" && !ina && imask>=0) { pos = checkGifVersion(imask);
			if(maskimg[pos].width>0 && maskimg[pos].height>0 && inbuilt!=1 && pos>=0) {
				source = maskimg[pos].src;
				head = '<v:group style="zoom:1; display:'+display+';margin:0;padding:0;position:relative;width:'+image.width+'px;height:'+image.height+'px;" coordsize="'+image.width+','+image.height+'">';
				tpb = '<div id="img_b" style="margin:0;padding:0;position:absolute;top:0;left:0;width:'+image.width+'px;height:'+image.height+'px;display:none;"><img src="'+source+'" width="'+image.width+'" height="'+image.height+'" /></div>';	
				tpa = '<div id="img_a" style="margin:0;padding:0;position:absolute;top:0;left:0;width:'+image.width+'px;height:'+image.height+'px; filter:progid:DXImageTransform.Microsoft.Compositor(Function=4);"><img src="'+image.src+'" width="'+image.width+'" height="'+image.height+'" /></div>';
				canvas.innerHTML = head+tpb+tpa+map+foot; applyMask();
			} else {
				canvas.innerHTML = head+fill+fill+fill+fill+fill+fill+map+foot;
			}
		} else {
			canvas.innerHTML = head+fill+fill+fill+fill+fill+fill+map+foot;
		}
		canvas.className = newClasses;
		canvas.style.cssText = image.style.cssText;
		canvas.style.height = image.height+'px';
		canvas.style.width = image.width+'px';
		canvas.height = image.height;
		canvas.width = image.width;
		canvas.src = image.src; canvas.alt = image.alt;
		if(image.id!='') canvas.id = image.id; map = '';
		if(image.title!='') canvas.title = image.title;
		if(image.getAttribute('onclick')!='') canvas.setAttribute('onclick',image.getAttribute('onclick'));
		object.replaceChild(canvas,image);
	}
}

function addEdges() {
	var theimages = getImages('edges');
	var image; var object; var canvas; var context; 
	var isize = 0; var inbuilt = 0; var imask = 0;
	var classes = ''; var newClasses = ''; var radius;
	var maxdim = 0; var mindim = 0; var i; 
	for (i=0;i<theimages.length;i++) {
		image = theimages[i]; object = image.parentNode;
		radius = Math.round((image.width+image.height)/20);
		canvas = document.createElement('canvas');
		if (canvas.getContext) {
			classes = image.className.split(' ');
			isize = getClassValue(classes,"isize");
			imask = getClassValue(classes,"imask");
			inbuilt = getClassAttribute(classes,"inbuilt");
			newClasses = getClasses(classes,"edges");
			canvas.className = newClasses;
			canvas.style.cssText = image.style.cssText;
			canvas.style.height = image.height+'px';
			canvas.style.width = image.width+'px';
			canvas.height = image.height;
			canvas.width = image.width;
			canvas.src = image.src; canvas.alt = image.alt;
			if(image.id!='') canvas.id = image.id;
			if(image.title!='') canvas.title = image.title;
			if(image.getAttribute('onclick')!='') canvas.setAttribute('onclick',image.getAttribute('onclick'));
			maxdim = Math.min(canvas.width,canvas.height)/2;
			mindim = (isize==0?radius:isize);
			isize = Math.min(maxdim,mindim);
			imask = Math.min(imask,maskimg.length-1);
			context = canvas.getContext("2d");
			if(image.getAttribute("usemap")) {
				object.style.position = 'relative';
				object.style.height = image.height+'px';
				object.style.width = image.width+'px';
				canvas.left = 0; canvas.top = 0;
				canvas.style.position = 'absolute';
				canvas.style.left = 0 + 'px';
				canvas.style.top = 0 + 'px';
				image.left = 0; image.top = 0;
				image.style.position = 'absolute';
				image.style.height = image.height+'px';
				image.style.width = image.width+'px';
				image.style.left = 0 + 'px';
				image.style.top = 0 + 'px';
				image.style.opacity = 0;
				object.insertBefore(canvas,image);
			}else {
				object.replaceChild(canvas,image);
			}
			context.clearRect(0,0,canvas.width,canvas.height);
			context.globalCompositeOperation = "source-over";
			context.drawImage(image,0,0,canvas.width,canvas.height);
			context.globalCompositeOperation = "destination-out";
			if(maskimg[imask].width>0 && maskimg[imask].height>0 && inbuilt!=1) {
				context.drawImage(maskimg[imask],0,0,canvas.width,canvas.height);
			} else {
				addMask(context,0,0,canvas.width,canvas.height,isize,1,0);
			}
			canvas.style.visibility = 'visible';
		}
	}
}

var edgesOnload = window.onload;
window.onload = function () { if(edgesOnload) edgesOnload(); preloadImages();}
