/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09
 */
/*!
 * Copyright (c) 2011 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version ${Version}
 */

var Cufon = (function() {

	var api = function() {
		return api.replace.apply(null, arguments);
	};

	var DOM = api.DOM = {

		ready: (function() {

			var complete = false, readyStatus = { loaded: 1, complete: 1 };

			var queue = [], perform = function() {
				if (complete) return;
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};

			// Gecko, Opera, WebKit r26101+

			if (document.addEventListener) {
				document.addEventListener('DOMContentLoaded', perform, false);
				window.addEventListener('pageshow', perform, false); // For cached Gecko pages
			}

			// Old WebKit, Internet Explorer

			if (!window.opera && document.readyState) (function() {
				readyStatus[document.readyState] ? perform() : setTimeout(arguments.callee, 10);
			})();

			// Internet Explorer

			if (document.readyState && document.createStyleSheet) (function() {
				try {
					document.body.doScroll('left');
					perform();
				}
				catch (e) {
					setTimeout(arguments.callee, 1);
				}
			})();

			addEvent(window, 'load', perform); // Fallback

			return function(listener) {
				if (!arguments.length) perform();
				else complete ? listener() : queue.push(listener);
			};

		})(),

		root: function() {
			return document.documentElement || document.body;
		},

		strict: (function() {
			var doctype;
			// no doctype (doesn't always catch it though.. IE I'm looking at you)
			if (document.compatMode == 'BackCompat') return false;
			// WebKit, Gecko, Opera, IE9+
			doctype = document.doctype;
			if (doctype) {
				return !/frameset|transitional/i.test(doctype.publicId);
			}
			// IE<9, firstChild is the doctype even if there's an XML declaration
			doctype = document.firstChild;
			if (doctype.nodeType != 8 || /^DOCTYPE.+(transitional|frameset)/i.test(doctype.data)) {
				return false;
			}
			return true;
		})()

	};

	var CSS = api.CSS = {

		Size: function(value, base) {

			this.value = parseFloat(value);
			this.unit = String(value).match(/[a-z%]*$/)[0] || 'px';

			this.convert = function(value) {
				return value / base * this.value;
			};

			this.convertFrom = function(value) {
				return value / this.value * base;
			};

			this.toString = function() {
				return this.value + this.unit;
			};

		},

		addClass: function(el, className) {
			var current = el.className;
			el.className = current + (current && ' ') + className;
			return el;
		},

		color: cached(function(value) {
			var parsed = {};
			parsed.color = value.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function($0, $1, $2) {
				parsed.opacity = parseFloat($2);
				return 'rgb(' + $1 + ')';
			});
			return parsed;
		}),

		// has no direct CSS equivalent.
		// @see http://msdn.microsoft.com/en-us/library/system.windows.fontstretches.aspx
		fontStretch: cached(function(value) {
			if (typeof value == 'number') return value;
			if (/%$/.test(value)) return parseFloat(value) / 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
			}[value] || 1;
		}),

		getStyle: function(el) {
			var view = document.defaultView;
			if (view && view.getComputedStyle) return new Style(view.getComputedStyle(el, null));
			if (el.currentStyle) return new Style(el.currentStyle);
			return new Style(el.style);
		},

		gradient: cached(function(value) {
			var gradient = {
				id: value,
				type: value.match(/^-([a-z]+)-gradient\(/)[1],
				stops: []
			}, colors = value.substr(value.indexOf('(')).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);
			for (var i = 0, l = colors.length, stop; i < l; ++i) {
				stop = colors[i].split('=', 2).reverse();
				gradient.stops.push([ stop[1] || i / (l - 1), stop[0] ]);
			}
			return gradient;
		}),

		quotedList: cached(function(value) {
			// doesn't work properly with empty quoted strings (""), but
			// it's not worth the extra code.
			var list = [], re = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, match;
			while (match = re.exec(value)) list.push(match[3] || match[1]);
			return list;
		}),

		recognizesMedia: cached(function(media) {
			var el = document.createElement('style'), sheet, container, supported;
			el.type = 'text/css';
			el.media = media;
			try { // this is cached anyway
				el.appendChild(document.createTextNode('/**/'));
			} catch (e) {}
			container = elementsByTagName('head')[0];
			container.insertBefore(el, container.firstChild);
			sheet = (el.sheet || el.styleSheet);
			supported = sheet && !sheet.disabled;
			container.removeChild(el);
			return supported;
		}),

		removeClass: function(el, className) {
			var re = RegExp('(?:^|\\s+)' + className +  '(?=\\s|$)', 'g');
			el.className = el.className.replace(re, '');
			return el;
		},

		supports: function(property, value) {
			var checker = document.createElement('span').style;
			if (checker[property] === undefined) return false;
			checker[property] = value;
			return checker[property] === value;
		},

		textAlign: function(word, style, position, wordCount) {
			if (style.get('textAlign') == 'right') {
				if (position > 0) word = ' ' + word;
			}
			else if (position < wordCount - 1) word += ' ';
			return word;
		},

		textShadow: cached(function(value) {
			if (value == 'none') return null;
			var shadows = [], currentShadow = {}, result, offCount = 0;
			var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
			while (result = re.exec(value)) {
				if (result[0] == ',') {
					shadows.push(currentShadow);
					currentShadow = {};
					offCount = 0;
				}
				else if (result[1]) {
					currentShadow.color = result[1];
				}
				else {
					currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2];
				}
			}
			shadows.push(currentShadow);
			return shadows;
		}),

		textTransform: (function() {
			var map = {
				uppercase: function(s) {
					return s.toUpperCase();
				},
				lowercase: function(s) {
					return s.toLowerCase();
				},
				capitalize: function(s) {
					return s.replace(/(?:^|\s)./g, function($0) {
						return $0.toUpperCase();
					});
				}
			};
			return function(text, style) {
				var transform = map[style.get('textTransform')];
				return transform ? transform(text) : text;
			};
		})(),

		whiteSpace: (function() {
			var ignore = {
				inline: 1,
				'inline-block': 1,
				'run-in': 1
			};
			var wsStart = /^\s+/, wsEnd = /\s+$/;
			return function(text, style, node, previousElement, simple) {
				if (simple) return text.replace(wsStart, '').replace(wsEnd, ''); // @fixme too simple
				if (previousElement) {
					if (previousElement.nodeName.toLowerCase() == 'br') {
						text = text.replace(wsStart, '');
					}
				}
				if (ignore[style.get('display')]) return text;
				if (!node.previousSibling) text = text.replace(wsStart, '');
				if (!node.nextSibling) text = text.replace(wsEnd, '');
				return text;
			};
		})()

	};

	CSS.ready = (function() {

		// don't do anything in Safari 2 (it doesn't recognize any media type)
		var complete = !CSS.recognizesMedia('all'), hasLayout = false;

		var queue = [], perform = function() {
			complete = true;
			for (var fn; fn = queue.shift(); fn());
		};

		var links = elementsByTagName('link'), styles = elementsByTagName('style');

		var checkTypes = {
			'': 1,
			'text/css': 1
		};

		function isContainerReady(el) {
			if (!checkTypes[el.type.toLowerCase()]) return true;
			return el.disabled || isSheetReady(el.sheet, el.media || 'screen');
		}

		function isSheetReady(sheet, media) {
			// in Opera sheet.disabled is true when it's still loading,
			// even though link.disabled is false. they stay in sync if
			// set manually.
			if (!CSS.recognizesMedia(media || 'all')) return true;
			if (!sheet || sheet.disabled) return false;
			try {
				var rules = sheet.cssRules, rule;
				if (rules) {
					// needed for Safari 3 and Chrome 1.0.
					// in standards-conforming browsers cssRules contains @-rules.
					// Chrome 1.0 weirdness: rules[<number larger than .length - 1>]
					// returns the last rule, so a for loop is the only option.
					search: for (var i = 0, l = rules.length; rule = rules[i], i < l; ++i) {
						switch (rule.type) {
							case 2: // @charset
								break;
							case 3: // @import
								if (!isSheetReady(rule.styleSheet, rule.media.mediaText)) return false;
								break;
							default:
								// only @charset can precede @import
								break search;
						}
					}
				}
			}
			catch (e) {} // probably a style sheet from another domain
			return true;
		}

		function allStylesLoaded() {
			// Internet Explorer's style sheet model, there's no need to do anything
			if (document.createStyleSheet) return true;
			// standards-compliant browsers
			var el, i;
			for (i = 0; el = links[i]; ++i) {
				if (el.rel.toLowerCase() == 'stylesheet' && !isContainerReady(el)) return false;
			}
			for (i = 0; el = styles[i]; ++i) {
				if (!isContainerReady(el)) return false;
			}
			return true;
		}

		DOM.ready(function() {
			// getComputedStyle returns null in Gecko if used in an iframe with display: none
			if (!hasLayout) hasLayout = CSS.getStyle(document.body).isUsable();
			if (complete || (hasLayout && allStylesLoaded())) perform();
			else setTimeout(arguments.callee, 10);
		});

		return function(listener) {
			if (complete) listener();
			else queue.push(listener);
		};

	})();

	function Font(data) {

		var face = this.face = data.face, wordSeparators = {
			'\u0020': 1,
			'\u00a0': 1,
			'\u3000': 1
		};

		this.glyphs = (function(glyphs) {
			var key, fallbacks = {
				'\u2011': '\u002d',
				'\u00ad': '\u2011'
			};
			for (key in fallbacks) {
				if (!hasOwnProperty(fallbacks, key)) continue;
				if (!glyphs[key]) glyphs[key] = glyphs[fallbacks[key]];
			}
			return glyphs;
		})(data.glyphs);

		this.w = data.w;
		this.baseSize = parseInt(face['units-per-em'], 10);

		this.family = face['font-family'].toLowerCase();
		this.weight = face['font-weight'];
		this.style = face['font-style'] || 'normal';

		this.viewBox = (function () {
			var parts = face.bbox.split(/\s+/);
			var box = {
				minX: parseInt(parts[0], 10),
				minY: parseInt(parts[1], 10),
				maxX: parseInt(parts[2], 10),
				maxY: parseInt(parts[3], 10)
			};
			box.width = box.maxX - box.minX;
			box.height = box.maxY - box.minY;
			box.toString = function() {
				return [ this.minX, this.minY, this.width, this.height ].join(' ');
			};
			return box;
		})();

		this.ascent = -parseInt(face.ascent, 10);
		this.descent = -parseInt(face.descent, 10);

		this.height = -this.ascent + this.descent;

		this.spacing = function(chars, letterSpacing, wordSpacing) {
			var glyphs = this.glyphs, glyph,
				kerning, k,
				jumps = [],
				width = 0, w,
				i = -1, j = -1, chr;
			while (chr = chars[++i]) {
				glyph = glyphs[chr] || this.missingGlyph;
				if (!glyph) continue;
				if (kerning) {
					width -= k = kerning[chr] || 0;
					jumps[j] -= k;
				}
				w = glyph.w;
				if (isNaN(w)) w = +this.w; // may have been a String in old fonts
				if (w > 0) {
					w += letterSpacing;
					if (wordSeparators[chr]) w += wordSpacing;
				}
				width += jumps[++j] = ~~w; // get rid of decimals
				kerning = glyph.k;
			}
			jumps.total = width;
			return jumps;
		};

	}

	function FontFamily() {

		var styles = {}, mapping = {
			oblique: 'italic',
			italic: 'oblique'
		};

		this.add = function(font) {
			(styles[font.style] || (styles[font.style] = {}))[font.weight] = font;
		};

		this.get = function(style, weight) {
			var weights = styles[style] || styles[mapping[style]]
				|| styles.normal || styles.italic || styles.oblique;
			if (!weights) return null;
			// we don't have to worry about "bolder" and "lighter"
			// because IE's currentStyle returns a numeric value for it,
			// and other browsers use the computed value anyway
			weight = {
				normal: 400,
				bold: 700
			}[weight] || parseInt(weight, 10);
			if (weights[weight]) return weights[weight];
			// http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight
			// Gecko uses x99/x01 for lighter/bolder
			var up = {
				1: 1,
				99: 0
			}[weight % 100], alts = [], min, max;
			if (up === undefined) up = weight > 400;
			if (weight == 500) weight = 400;
			for (var alt in weights) {
				if (!hasOwnProperty(weights, alt)) continue;
				alt = parseInt(alt, 10);
				if (!min || alt < min) min = alt;
				if (!max || alt > max) max = alt;
				alts.push(alt);
			}
			if (weight < min) weight = min;
			if (weight > max) weight = max;
			alts.sort(function(a, b) {
				return (up
					? (a >= weight && b >= weight) ? a < b : a > b
					: (a <= weight && b <= weight) ? a > b : a < b) ? -1 : 1;
			});
			return weights[alts[0]];
		};

	}

	function HoverHandler() {

		function contains(node, anotherNode) {
			try {
				if (node.contains) return node.contains(anotherNode);
				return node.compareDocumentPosition(anotherNode) & 16;
			}
			catch(e) {} // probably a XUL element such as a scrollbar
			return false;
		}

		// mouseover/mouseout (standards) mode
		function onOverOut(e) {
			var related = e.relatedTarget;
			// there might be no relatedTarget if the element is right next
			// to the window frame
			if (related && contains(this, related)) return;
			trigger(this, e.type == 'mouseover');
		}

		// mouseenter/mouseleave (probably ie) mode
		function onEnterLeave(e) {
			if (!e) e = window.event;
			// ie model, we don't have access to "this", but
			// mouseenter/leave doesn't bubble so it's fine.
			trigger(e.target || e.srcElement, e.type == 'mouseenter');
		}

		function trigger(el, hoverState) {
			// A timeout is needed so that the event can actually "happen"
			// before replace is triggered. This ensures that styles are up
			// to date.
			setTimeout(function() {
				var options = sharedStorage.get(el).options;
				if (hoverState) {
					options = merge(options, options.hover);
					options._mediatorMode = 1;
				}
				api.replace(el, options, true);
			}, 10);
		}

		this.attach = function(el) {
			if (el.onmouseenter === undefined) {
				addEvent(el, 'mouseover', onOverOut);
				addEvent(el, 'mouseout', onOverOut);
			}
			else {
				addEvent(el, 'mouseenter', onEnterLeave);
				addEvent(el, 'mouseleave', onEnterLeave);
			}
		};

		this.detach = function(el) {
			if (el.onmouseenter === undefined) {
				removeEvent(el, 'mouseover', onOverOut);
				removeEvent(el, 'mouseout', onOverOut);
			}
			else {
				removeEvent(el, 'mouseenter', onEnterLeave);
				removeEvent(el, 'mouseleave', onEnterLeave);
			}
		};

	}

	function ReplaceHistory() {

		var list = [], map = {};

		function filter(keys) {
			var values = [], key;
			for (var i = 0; key = keys[i]; ++i) values[i] = list[map[key]];
			return values;
		}

		this.add = function(key, args) {
			map[key] = list.push(args) - 1;
		};

		this.repeat = function() {
			var snapshot = arguments.length ? filter(arguments) : list, args;
			for (var i = 0; args = snapshot[i++];) api.replace(args[0], args[1], true);
		};

	}

	function Storage() {

		var map = {}, at = 0;

		function identify(el) {
			return el.cufid || (el.cufid = ++at);
		}

		this.get = function(el) {
			var id = identify(el);
			return map[id] || (map[id] = {});
		};

	}

	function Style(style) {

		var custom = {}, sizes = {};

		this.extend = function(styles) {
			for (var property in styles) {
				if (hasOwnProperty(styles, property)) custom[property] = styles[property];
			}
			return this;
		};

		this.get = function(property) {
			return custom[property] != undefined ? custom[property] : style[property];
		};

		this.getSize = function(property, base) {
			return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base));
		};

		this.isUsable = function() {
			return !!style;
		};

	}

	function addEvent(el, type, listener) {
		if (el.addEventListener) {
			el.addEventListener(type, listener, false);
		}
		else if (el.attachEvent) {
			// we don't really need "this" right now, saves code
			el.attachEvent('on' + type, listener);
		}
	}

	function attach(el, options) {
		if (options._mediatorMode) return el;
		var storage = sharedStorage.get(el);
		var oldOptions = storage.options;
		if (oldOptions) {
			if (oldOptions === options) return el;
			if (oldOptions.hover) hoverHandler.detach(el);
		}
		if (options.hover && options.hoverables[el.nodeName.toLowerCase()]) {
			hoverHandler.attach(el);
		}
		storage.options = options;
		return el;
	}

	function cached(fun) {
		var cache = {};
		return function(key) {
			if (!hasOwnProperty(cache, key)) cache[key] = fun.apply(null, arguments);
			return cache[key];
		};
	}

	function getFont(el, style) {
		var families = CSS.quotedList(style.get('fontFamily').toLowerCase()), family;
		for (var i = 0; family = families[i]; ++i) {
			if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight'));
		}
		return null;
	}

	function elementsByTagName(query) {
		return document.getElementsByTagName(query);
	}

	function hasOwnProperty(obj, property) {
		return obj.hasOwnProperty(property);
	}

	function merge() {
		var merged = {}, arg, key;
		for (var i = 0, l = arguments.length; arg = arguments[i], i < l; ++i) {
			for (key in arg) {
				if (hasOwnProperty(arg, key)) merged[key] = arg[key];
			}
		}
		return merged;
	}

	function process(font, text, style, options, node, el) {
		var fragment = document.createDocumentFragment(), processed;
		if (text === '') return fragment;
		var separate = options.separate;
		var parts = text.split(separators[separate]), needsAligning = (separate == 'words');
		if (needsAligning && HAS_BROKEN_REGEXP) {
			// @todo figure out a better way to do this
			if (/^\s/.test(text)) parts.unshift('');
			if (/\s$/.test(text)) parts.push('');
		}
		for (var i = 0, l = parts.length; i < l; ++i) {
			processed = engines[options.engine](font,
				needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i],
				style, options, node, el, i < l - 1);
			if (processed) fragment.appendChild(processed);
		}
		return fragment;
	}

	function removeEvent(el, type, listener) {
		if (el.removeEventListener) {
			el.removeEventListener(type, listener, false);
		}
		else if (el.detachEvent) {
			el.detachEvent('on' + type, listener);
		}
	}

	function replaceElement(el, options) {
		var name = el.nodeName.toLowerCase();
		if (options.ignore[name]) return;
		if (options.ignoreClass && options.ignoreClass.test(el.className)) return;
		if (options.onBeforeReplace) options.onBeforeReplace(el, options);
		var replace = !options.textless[name], simple = (options.trim === 'simple');
		var style = CSS.getStyle(attach(el, options)).extend(options);
		// may cause issues if the element contains other elements
		// with larger fontSize, however such cases are rare and can
		// be fixed by using a more specific selector
		if (parseFloat(style.get('fontSize')) === 0) return;
		var font = getFont(el, style), node, type, next, anchor, text, lastElement;
		var isShy = options.softHyphens, anyShy = false, pos, shy, reShy = /\u00ad/g;
		var modifyText = options.modifyText;
		if (!font) return;
		for (node = el.firstChild; node; node = next) {
			type = node.nodeType;
			next = node.nextSibling;
			if (replace && type == 3) {
				if (isShy && el.nodeName.toLowerCase() != TAG_SHY) {
					pos = node.data.indexOf('\u00ad');
					if (pos >= 0) {
						node.splitText(pos);
						next = node.nextSibling;
						next.deleteData(0, 1);
						shy = document.createElement(TAG_SHY);
						shy.appendChild(document.createTextNode('\u00ad'));
						el.insertBefore(shy, next);
						next = shy;
						anyShy = true;
					}
				}
				// Node.normalize() is broken in IE 6, 7, 8
				if (anchor) {
					anchor.appendData(node.data);
					el.removeChild(node);
				}
				else anchor = node;
				if (next) continue;
			}
			if (anchor) {
				text = anchor.data;
				if (!isShy) text = text.replace(reShy, '');
				text = CSS.whiteSpace(text, style, anchor, lastElement, simple);
				// modify text only on the first replace
				if (modifyText) text = modifyText(text, anchor, el, options);
				el.replaceChild(process(font, text, style, options, node, el), anchor);
				anchor = null;
			}
			if (type == 1) {
				if (node.firstChild) {
					if (node.nodeName.toLowerCase() == 'cufon') {
						engines[options.engine](font, null, style, options, node, el);
					}
					else arguments.callee(node, options);
				}
				lastElement = node;
			}
		}
		if (isShy && anyShy) {
			updateShy(el);
			if (!trackingShy) addEvent(window, 'resize', updateShyOnResize);
			trackingShy = true;
		}
		if (options.onAfterReplace) options.onAfterReplace(el, options);
	}

	function updateShy(context) {
		var shys, shy, parent, glue, newGlue, next, prev, i;
		shys = context.getElementsByTagName(TAG_SHY);
		// unfortunately there doesn't seem to be any easy
		// way to avoid having to loop through the shys twice.
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = C_SHY_DISABLED;
			glue = parent = shy.parentNode;
			if (glue.nodeName.toLowerCase() != TAG_GLUE) {
				newGlue = document.createElement(TAG_GLUE);
				newGlue.appendChild(shy.previousSibling);
				parent.insertBefore(newGlue, shy);
				newGlue.appendChild(shy);
			}
			else {
				// get rid of double glue (edge case fix)
				glue = glue.parentNode;
				if (glue.nodeName.toLowerCase() == TAG_GLUE) {
					parent = glue.parentNode;
					while (glue.firstChild) {
						parent.insertBefore(glue.firstChild, glue);
					}
					parent.removeChild(glue);
				}
			}
		}
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = '';
			glue = shy.parentNode;
			parent = glue.parentNode;
			next = glue.nextSibling || parent.nextSibling;
			// make sure we're comparing same types
			prev = (next.nodeName.toLowerCase() == TAG_GLUE) ? glue : shy.previousSibling;
			if (prev.offsetTop >= next.offsetTop) {
				shy.className = C_SHY_DISABLED;
				if (prev.offsetTop < next.offsetTop) {
					// we have an annoying edge case, double the glue
					newGlue = document.createElement(TAG_GLUE);
					parent.insertBefore(newGlue, glue);
					newGlue.appendChild(glue);
					newGlue.appendChild(next);
				}
			}
		}
	}

	function updateShyOnResize() {
		if (ignoreResize) return; // needed for IE
		CSS.addClass(DOM.root(), C_VIEWPORT_RESIZING);
		clearTimeout(shyTimer);
		shyTimer = setTimeout(function() {
			ignoreResize = true;
			CSS.removeClass(DOM.root(), C_VIEWPORT_RESIZING);
			updateShy(document);
			ignoreResize = false;
		}, 100);
	}

	var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;
	var TAG_GLUE = 'cufonglue';
	var TAG_SHY = 'cufonshy';
	var C_SHY_DISABLED = 'cufon-shy-disabled';
	var C_VIEWPORT_RESIZING = 'cufon-viewport-resizing';

	var sharedStorage = new Storage();
	var hoverHandler = new HoverHandler();
	var replaceHistory = new ReplaceHistory();
	var initialized = false;
	var trackingShy = false;
	var shyTimer;
	var ignoreResize = false;

	var engines = {}, fonts = {}, defaultOptions = {
		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,
			noscript: 1,
			optgroup: 1,
			option: 1,
			script: 1,
			select: 1,
			style: 1,
			textarea: 1,
			title: 1,
			pre: 1
		},
		ignoreClass: null,
		modifyText: null,
		onAfterReplace: null,
		onBeforeReplace: null,
		printable: true,
		selector: (
				window.Sizzle
			||	(window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues
			||	(window.dojo && dojo.query)
			||	(window.glow && glow.dom && glow.dom.get)
			||	(window.Ext && Ext.query)
			||	(window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query)
			||	(window.$$ && function(query) { return $$(query); })
			||	(window.$ && function(query) { return $(query); })
			||	(document.querySelectorAll && function(query) { return document.querySelectorAll(query); })
			||	elementsByTagName
		),
		separate: 'words', // 'none' and 'characters' are also accepted
		softHyphens: true,
		textless: {
			dl: 1,
			html: 1,
			ol: 1,
			table: 1,
			tbody: 1,
			thead: 1,
			tfoot: 1,
			tr: 1,
			ul: 1
		},
		textShadow: 'none',
		trim: 'advanced'
	};

	var separators = {
		// The first pattern may cause unicode characters above
		// code point 255 to be removed in Safari 3.0. Luckily enough
		// Safari 3.0 does not include non-breaking spaces in \s, so
		// we can just use a simple alternative pattern.
		words: /\s/.test('\u00a0') ? /[^\S\u00a0]+/ : /\s+/,
		characters: '',
		none: /^/
	};

	api.now = function() {
		DOM.ready();
		return api;
	};

	api.refresh = function() {
		replaceHistory.repeat.apply(replaceHistory, arguments);
		return api;
	};

	api.registerEngine = function(id, engine) {
		if (!engine) return api;
		engines[id] = engine;
		return api.set('engine', id);
	};

	api.registerFont = function(data) {
		if (!data) return api;
		var font = new Font(data), family = font.family;
		if (!fonts[family]) fonts[family] = new FontFamily();
		fonts[family].add(font);
		return api.set('fontFamily', '"' + family + '"');
	};

	api.replace = function(elements, options, ignoreHistory) {
		options = merge(defaultOptions, options);
		if (!options.engine) return api; // there's no browser support so we'll just stop here
		if (!initialized) {
			CSS.addClass(DOM.root(), 'cufon-active cufon-loading');
			CSS.ready(function() {
				// fires before any replace() calls, but it doesn't really matter
				CSS.addClass(CSS.removeClass(DOM.root(), 'cufon-loading'), 'cufon-ready');
			});
			initialized = true;
		}
		if (options.hover) options.forceHitArea = true;
		if (options.autoDetect) delete options.fontFamily;
		if (typeof options.ignoreClass == 'string') {
			options.ignoreClass = new RegExp('(?:^|\\s)(?:' + options.ignoreClass.replace(/\s+/g, '|') + ')(?:\\s|$)');
		}
		if (typeof options.textShadow == 'string') {
			options.textShadow = CSS.textShadow(options.textShadow);
		}
		if (typeof options.color == 'string' && /^-/.test(options.color)) {
			options.textGradient = CSS.gradient(options.color);
		}
		else delete options.textGradient;
		if (!ignoreHistory) replaceHistory.add(elements, arguments);
		if (elements.nodeType || typeof elements == 'string') elements = [ elements ];
		CSS.ready(function() {
			for (var i = 0, l = elements.length; i < l; ++i) {
				var el = elements[i];
				if (typeof el == 'string') api.replace(options.selector(el), options, true);
				else replaceElement(el, options);
			}
		});
		return api;
	};

	api.set = function(option, value) {
		defaultOptions[option] = value;
		return api;
	};

	return api;

})();

Cufon.registerEngine('vml', (function() {

	var ns = document.namespaces;
	if (!ns) return;
	ns.add('cvml', 'urn:schemas-microsoft-com:vml');
	ns = null;

	var check = document.createElement('cvml:shape');
	check.style.behavior = 'url(#default#VML)';
	if (!check.coordsize) return; // VML isn't supported
	check = null;

	var HAS_BROKEN_LINEHEIGHT = (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:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +
			'cufon cufontext{position:absolute;left:-10000in;font-size:1px;text-align:left;}' +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
			'a cufon{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'cufon cufoncanvas{display:none;}' +
		'}' +
	'</style>').replace(/;/g, '!important;'));

	function getFontSizeInPixels(el, value) {
		return getSizeInPixels(el, /(?:em|ex|%)$|^[a-z-]+$/i.test(value) ? '1em' : value);
	}

	// Original by Dead Edwards.
	// Combined with getFontSizeInPixels it also works with relative units.
	function getSizeInPixels(el, value) {
		if (!isNaN(value) || /px$/i.test(value)) return parseFloat(value);
		var style = el.style.left, runtimeStyle = el.runtimeStyle.left;
		el.runtimeStyle.left = el.currentStyle.left;
		el.style.left = value.replace('%', 'em');
		var result = el.style.pixelLeft;
		el.style.left = style;
		el.runtimeStyle.left = runtimeStyle;
		return result;
	}

	function getSpacingValue(el, style, size, property) {
		var key = 'computed' + property, value = style[key];
		if (isNaN(value)) {
			value = style.get(property);
			style[key] = value = (value == 'normal') ? 0 : ~~size.convertFrom(getSizeInPixels(el, value));
		}
		return value;
	}

	var fills = {};

	function gradientFill(gradient) {
		var id = gradient.id;
		if (!fills[id]) {
			var stops = gradient.stops, fill = document.createElement('cvml:fill'), colors = [];
			fill.type = 'gradient';
			fill.angle = 180;
			fill.focus = '0';
			fill.method = 'none';
			fill.color = stops[0][1];
			for (var j = 1, k = stops.length - 1; j < k; ++j) {
				colors.push(stops[j][0] * 100 + '% ' + stops[j][1]);
			}
			fill.colors = colors.join(',');
			fill.color2 = stops[k][1];
			fills[id] = fill;
		}
		return fills[id];
	}

	return function(font, text, style, options, node, el, hasNext) {

		var redraw = (text === null);

		if (redraw) text = node.alt;

		var viewBox = font.viewBox;

		var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize));

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-vml';
			wrapper.alt = text;

			canvas = document.createElement('cufoncanvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(text));
				wrapper.appendChild(print);
			}

			// ie6, for some reason, has trouble rendering the last VML element in the document.
			// we can work around this by injecting a dummy element where needed.
			// @todo find a better solution
			if (!hasNext) wrapper.appendChild(document.createElement('cvml:shape'));
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height), roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var minX = viewBox.minX, minY = viewBox.minY;

		cStyle.height = roundedHeight;
		cStyle.top = Math.round(size.convert(minY - font.ascent));
		cStyle.left = Math.round(size.convert(minX));

		wStyle.height = size.convert(font.height) + 'px';

		var color = style.get('color');
		var chars = Cufon.CSS.textTransform(text, style).split('');

		var jumps = font.spacing(chars,
			getSpacingValue(el, style, size, 'letterSpacing'),
			getSpacingValue(el, style, size, 'wordSpacing')
		);

		if (!jumps.length) return null;

		var width = jumps.total;
		var fullWidth = -minX + width + (viewBox.width - jumps[jumps.length - 1]);

		var shapeWidth = size.convert(fullWidth * stretchFactor), roundedShapeWidth = Math.round(shapeWidth);

		var coordSize = fullWidth + ',' + viewBox.height, coordOrigin;
		var stretch = 'r' + coordSize + 'ns';

		var fill = options.textGradient && gradientFill(options.textGradient);

		var glyphs = font.glyphs, offsetX = 0;
		var shadows = options.textShadow;
		var i = -1, j = 0, chr;

		while (chr = chars[++i]) {

			var glyph = glyphs[chars[i]] || font.missingGlyph, shape;
			if (!glyph) continue;

			if (redraw) {
				// some glyphs may be missing so we can't use i
				shape = canvas.childNodes[j];
				while (shape.firstChild) shape.removeChild(shape.firstChild); // shadow, fill
			}
			else {
				shape = document.createElement('cvml:shape');
				canvas.appendChild(shape);
			}

			shape.stroked = 'f';
			shape.coordsize = coordSize;
			shape.coordorigin = coordOrigin = (minX - offsetX) + ',' + minY;
			shape.path = (glyph.d ? 'm' + glyph.d + 'xe' : '') + 'm' + coordOrigin + stretch;
			shape.fillcolor = color;

			if (fill) shape.appendChild(fill.cloneNode(false));

			// it's important to not set top/left or IE8 will grind to a halt
			var sStyle = shape.style;
			sStyle.width = roundedShapeWidth;
			sStyle.height = roundedHeight;

			if (shadows) {
				// due to the limitations of the VML shadow element there
				// can only be two visible shadows. opacity is shared
				// for all shadows.
				var shadow1 = shadows[0], shadow2 = shadows[1];
				var color1 = Cufon.CSS.color(shadow1.color), color2;
				var shadow = document.createElement('cvml:shadow');
				shadow.on = 't';
				shadow.color = color1.color;
				shadow.offset = shadow1.offX + ',' + shadow1.offY;
				if (shadow2) {
					color2 = Cufon.CSS.color(shadow2.color);
					shadow.type = 'double';
					shadow.color2 = color2.color;
					shadow.offset2 = shadow2.offX + ',' + shadow2.offY;
				}
				shadow.opacity = color1.opacity || (color2 && color2.opacity) || 1;
				shape.appendChild(shadow);
			}

			offsetX += jumps[j++];
		}

		// addresses flickering issues on :hover

		var cover = shape.nextSibling, coverFill, vStyle;

		if (options.forceHitArea) {

			if (!cover) {
				cover = document.createElement('cvml:rect');
				cover.stroked = 'f';
				cover.className = 'cufon-vml-cover';
				coverFill = document.createElement('cvml:fill');
				coverFill.opacity = 0;
				cover.appendChild(coverFill);
				canvas.appendChild(cover);
			}

			vStyle = cover.style;

			vStyle.width = roundedShapeWidth;
			vStyle.height = roundedHeight;

		}
		else if (cover) canvas.removeChild(cover);

		wStyle.width = Math.max(Math.ceil(size.convert(width * stretchFactor)), 0);

		if (HAS_BROKEN_LINEHEIGHT) {

			var yAdjust = style.computedYAdjust;

			if (yAdjust === undefined) {
				var lineHeight = style.get('lineHeight');
				if (lineHeight == 'normal') lineHeight = '1em';
				else if (!isNaN(lineHeight)) lineHeight += 'em'; // no unit
				style.computedYAdjust = yAdjust = 0.5 * (getSizeInPixels(el, lineHeight) - parseFloat(wStyle.height));
			}

			if (yAdjust) {
				wStyle.marginTop = Math.ceil(yAdjust) + 'px';
				wStyle.marginBottom = yAdjust + 'px';
			}

		}

		return wrapper;

	};

})());

Cufon.registerEngine('canvas', (function() {

	// Safari 2 doesn't support .apply() on native methods

	var check = document.createElement('canvas');
	if (!check || !check.getContext || !check.getContext.apply) return;
	check = null;

	var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block');

	// Firefox 2 w/ non-strict doctype (almost standards mode)
	var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId));

	var styleSheet = document.createElement('style');
	styleSheet.type = 'text/css';
	styleSheet.appendChild(document.createTextNode((
		'cufon{text-indent:0;}' +
		'@media screen,projection{' +
			'cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;' +
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: 'font-size:1px;line-height:1px;') +
			'}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;text-align:left;text-indent:-10000in;}' +
			(HAS_INLINE_BLOCK
				? 'cufon canvas{position:relative;}'
				: 'cufon canvas{position:absolute;}') +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
		'}' +
		'@media print{' +
			'cufon{padding:0;}' + // Firefox 2
			'cufon canvas{display:none;}' +
		'}'
	).replace(/;/g, '!important;')));
	document.getElementsByTagName('head')[0].appendChild(styleSheet);

	function generateFromVML(path, context) {
		var atX = 0, atY = 0;
		var code = [], re = /([mrvxe])([^a-z]*)/g, match;
		generate: for (var i = 0; match = re.exec(path); ++i) {
			var c = match[2].split(',');
			switch (match[1]) {
				case 'v':
					code[i] = { m: 'bezierCurveTo', a: [ atX + ~~c[0], atY + ~~c[1], atX + ~~c[2], atY + ~~c[3], atX += ~~c[4], atY += ~~c[5] ] };
					break;
				case 'r':
					code[i] = { m: 'lineTo', a: [ atX += ~~c[0], atY += ~~c[1] ] };
					break;
				case 'm':
					code[i] = { m: 'moveTo', a: [ atX = ~~c[0], atY = ~~c[1] ] };
					break;
				case 'x':
					code[i] = { m: 'closePath' };
					break;
				case 'e':
					break generate;
			}
			context[code[i].m].apply(context, code[i].a);
		}
		return code;
	}

	function interpret(code, context) {
		for (var i = 0, l = code.length; i < l; ++i) {
			var line = code[i];
			context[line.m].apply(context, line.a);
		}
	}

	return function(font, text, style, options, node, el) {

		var redraw = (text === null);

		if (redraw) text = node.getAttribute('alt');

		var viewBox = font.viewBox;

		var size = style.getSize('fontSize', font.baseSize);

		var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0;
		var shadows = options.textShadow, shadowOffsets = [];
		if (shadows) {
			for (var i = shadows.length; i--;) {
				var shadow = shadows[i];
				var x = size.convertFrom(parseFloat(shadow.offX));
				var y = size.convertFrom(parseFloat(shadow.offY));
				shadowOffsets[i] = [ x, y ];
				if (y < expandTop) expandTop = y;
				if (x > expandRight) expandRight = x;
				if (y > expandBottom) expandBottom = y;
				if (x < expandLeft) expandLeft = x;
			}
		}

		var chars = Cufon.CSS.textTransform(text, style).split('');

		var jumps = font.spacing(chars,
			~~size.convertFrom(parseFloat(style.get('letterSpacing')) || 0),
			~~size.convertFrom(parseFloat(style.get('wordSpacing')) || 0)
		);

		if (!jumps.length) return null; // there's nothing to render

		var width = jumps.total;

		expandRight += viewBox.width - jumps[jumps.length - 1];
		expandLeft += viewBox.minX;

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-canvas';
			wrapper.setAttribute('alt', text);

			canvas = document.createElement('canvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(text));
				wrapper.appendChild(print);
			}
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height);
		var roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var stretchedWidth = width * stretchFactor;

		var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft));
		var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom));

		canvas.width = canvasWidth;
		canvas.height = canvasHeight;

		// needed for WebKit and full page zoom
		cStyle.width = canvasWidth + 'px';
		cStyle.height = canvasHeight + 'px';

		// minY has no part in canvas.height
		expandTop += viewBox.minY;

		cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px';
		cStyle.left = Math.round(size.convert(expandLeft)) + 'px';

		var wrapperWidth = Math.max(Math.ceil(size.convert(stretchedWidth)), 0) + 'px';

		if (HAS_INLINE_BLOCK) {
			wStyle.width = wrapperWidth;
			wStyle.height = size.convert(font.height) + 'px';
		}
		else {
			wStyle.paddingLeft = wrapperWidth;
			wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px';
		}

		var g = canvas.getContext('2d'), scale = height / viewBox.height;

		// proper horizontal scaling is performed later
		g.scale(scale, scale * roundingFactor);
		g.translate(-expandLeft, -expandTop);
		g.save();

		function renderText() {
			var glyphs = font.glyphs, glyph, i = -1, j = -1, chr;
			g.scale(stretchFactor, 1);
			while (chr = chars[++i]) {
				var glyph = glyphs[chars[i]] || font.missingGlyph;
				if (!glyph) continue;
				if (glyph.d) {
					g.beginPath();
					if (glyph.code) interpret(glyph.code, g);
					else glyph.code = generateFromVML('m' + glyph.d, g);
					g.fill();
				}
				g.translate(jumps[++j], 0);
			}
			g.restore();
		}

		if (shadows) {
			for (var i = shadows.length; i--;) {
				var shadow = shadows[i];
				g.save();
				g.fillStyle = shadow.color;
				g.translate.apply(g, shadowOffsets[i]);
				renderText();
			}
		}

		var gradient = options.textGradient;
		if (gradient) {
			var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY);
			for (var i = 0, l = stops.length; i < l; ++i) {
				fill.addColorStop.apply(fill, stops[i]);
			}
			g.fillStyle = fill;
		}
		else g.fillStyle = style.get('color');

		renderText();

		return wrapper;

	};

})());


Cufon.registerFont({"w":166,"face":{"font-family":"Helvetica Condensed","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 5 6 3 5 2 3 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-8 -276 278 68.0176","underline-thickness":"18","underline-position":"-18","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":86,"k":{"Y":13,"W":13,"V":13,"T":13,"A":13}},"!":{"d":"30,-35r33,0r0,35r-33,0r0,-35xm30,-257r33,0r-6,190r-21,0","w":92},"\"":{"d":"91,-257r24,0r0,91r-24,0r0,-91xm31,-257r24,0r0,91r-24,0r0,-91","w":146},"#":{"d":"64,-98r39,0r6,-55r-38,0xm38,-74r-30,0r0,-24r33,0r7,-55r-32,0r0,-24r35,0r9,-73r24,0r-9,73r38,0r9,-73r23,0r-9,73r29,0r0,24r-32,0r-7,55r30,0r0,24r-33,0r-9,74r-24,0r10,-74r-38,0r-10,74r-24,0","w":172},"$":{"d":"54,-124v-65,-17,-52,-138,24,-131r0,-21r15,0r0,21v44,1,64,26,65,70r-32,0v1,-27,-10,-41,-33,-44r0,88v35,13,72,22,72,72v0,48,-29,70,-72,74r0,34r-15,0r0,-34v-51,-1,-71,-30,-70,-83r31,0v-1,32,8,56,39,57r0,-94xm78,-229v-33,-1,-43,46,-25,68v6,6,15,11,25,15r0,-83xm93,-21v43,1,52,-68,15,-83r-15,-6r0,89","w":172},"%":{"d":"257,-64v0,38,-7,69,-47,69v-41,0,-48,-30,-48,-69v0,-39,7,-69,48,-69v40,0,47,31,47,69xm111,-186v0,40,-6,69,-47,69v-41,0,-47,-30,-47,-69v0,-40,7,-69,47,-69v39,0,47,29,47,69xm189,-84v0,28,-8,70,21,70v28,0,20,-42,20,-70v0,-17,-4,-30,-20,-30v-16,0,-21,12,-21,30xm179,-255r25,0r-112,260r-25,0xm43,-206v-1,28,-7,70,21,70v28,0,19,-42,20,-70v-1,-16,-3,-29,-20,-29v-17,0,-20,13,-21,29","w":273},"&":{"d":"89,-257v58,-7,71,66,32,94r-22,19r51,73v5,-15,8,-29,10,-50r28,0v-1,28,-11,56,-21,75r33,46r-34,0r-17,-24v-36,50,-140,32,-140,-42v0,-43,28,-63,54,-81v-9,-19,-27,-33,-27,-60v0,-32,23,-46,53,-50xm41,-69v0,55,71,61,93,23r-57,-81v-19,11,-36,29,-36,58xm90,-233v-42,1,-21,55,-4,70v11,-14,29,-22,30,-45v0,-13,-11,-26,-26,-25","w":200},"'":{"d":"31,-257r24,0r0,91r-24,0r0,-91","w":86},"(":{"d":"15,-95v0,-66,23,-119,53,-162r17,0v-52,83,-51,240,0,323r-17,0v-31,-41,-53,-96,-53,-161","w":86},")":{"d":"19,-257v67,77,67,246,0,323r-18,0v55,-82,50,-240,0,-323r18,0","w":86},"*":{"d":"53,-257r21,0r0,43r39,-15r8,21r-41,12r27,34r-18,13r-26,-36r-26,36r-18,-13r28,-34r-41,-12r8,-21r39,15r0,-43","w":126},"+":{"d":"96,-79r-79,0r0,-24r79,0r0,-79r24,0r0,79r79,0r0,24r-79,0r0,79r-24,0r0,-79","w":216},",":{"d":"27,36v14,-5,15,-17,15,-36r-15,0r0,-38r33,0v-1,40,5,84,-33,91r0,-17","w":86,"k":{" ":13}},"-":{"d":"19,-116r88,0r0,28r-88,0r0,-28","w":126},".":{"d":"27,-38r33,0r0,38r-33,0r0,-38","w":86,"k":{" ":13}},"\/":{"d":"80,-262r24,0r-84,267r-24,0","w":100},"0":{"d":"86,-231v-44,0,-41,59,-41,107v0,47,-3,105,41,105v44,0,41,-58,41,-105v0,-48,4,-107,-41,-107xm159,-124v0,68,-7,129,-73,129v-75,0,-75,-81,-72,-158v2,-54,16,-102,72,-102v67,0,73,62,73,131","w":172},"1":{"d":"24,-213v34,-1,63,-7,63,-42r22,0r0,255r-31,0r0,-192r-54,0r0,-21","w":172},"2":{"d":"88,-255v75,-4,84,93,43,134v-29,29,-71,48,-83,93r110,0r0,28r-143,0v1,-89,80,-102,108,-164v6,-31,-3,-66,-35,-65v-30,1,-42,23,-40,55r-32,0v0,-50,22,-78,72,-81","w":172},"3":{"d":"127,-71v0,-36,-21,-53,-62,-49r0,-24v37,5,55,-14,55,-45v0,-24,-9,-42,-34,-42v-28,0,-36,22,-36,50r-32,0v0,-46,23,-70,68,-74v73,-7,88,108,26,121v26,9,48,23,47,60v-2,48,-24,78,-73,79v-49,0,-71,-27,-72,-74r32,0v1,28,12,49,40,50v30,0,41,-21,41,-52","w":172},"4":{"d":"103,-255r30,0r0,168r29,0r0,25r-29,0r0,62r-30,0r0,-62r-92,0r0,-28xm38,-87r65,0r-1,-118","w":172},"5":{"d":"84,-143v-19,0,-30,13,-36,25r-27,-1r14,-131r114,0r0,28r-90,0v-2,24,-9,52,-9,75v41,-44,120,-5,108,65v15,90,-120,121,-141,36v-2,-8,-3,-15,-3,-20r32,0v1,26,12,47,39,47v35,1,42,-34,42,-66v0,-32,-11,-57,-43,-58","w":172},"6":{"d":"88,-137v-31,0,-40,28,-40,59v0,31,8,59,40,59v32,0,41,-28,41,-59v0,-31,-9,-59,-41,-59xm13,-89v-3,-82,-2,-166,77,-166v41,0,62,22,64,61r-31,0v0,-21,-13,-37,-34,-37v-42,0,-47,54,-44,97v9,-15,24,-29,49,-29v46,2,65,34,66,81v0,51,-23,86,-72,87v-56,1,-73,-43,-75,-94","w":172},"7":{"d":"159,-224v-41,57,-76,132,-85,224r-35,0v12,-86,46,-163,91,-222r-116,0r0,-28r145,0r0,26","w":172},"8":{"d":"86,-124v-29,1,-41,22,-41,53v0,31,12,50,41,52v31,1,42,-23,42,-52v0,-29,-11,-54,-42,-53xm120,-189v0,-23,-9,-43,-34,-42v-24,0,-33,19,-33,42v0,23,8,41,33,41v25,0,34,-18,34,-41xm86,5v-83,5,-99,-123,-28,-141v-23,-9,-36,-24,-37,-54v0,-41,26,-61,65,-65v71,-6,90,103,28,119v30,10,45,32,45,66v-1,46,-25,72,-73,75","w":172},"9":{"d":"85,-113v32,0,40,-29,40,-59v0,-31,-8,-59,-40,-59v-32,0,-41,28,-41,59v0,31,8,59,41,59xm159,-161v3,80,3,165,-76,166v-42,0,-62,-24,-65,-61r32,0v0,21,12,38,34,37v42,-3,47,-54,44,-97v-9,15,-24,29,-49,29v-47,-1,-66,-33,-66,-81v0,-51,22,-87,72,-87v55,0,72,41,74,94","w":172},":":{"d":"27,-38r33,0r0,38r-33,0r0,-38xm27,-182r33,0r0,38r-33,0r0,-38","w":86,"k":{" ":13}},";":{"d":"27,-182r33,0r0,38r-33,0r0,-38xm27,36v14,-5,15,-17,15,-36r-15,0r0,-38r33,0v-1,40,5,84,-33,91r0,-17","w":86},"<":{"d":"17,-102r182,-83r0,24r-154,70r154,70r0,24r-182,-83r0,-22","w":216},"=":{"d":"17,-66r182,0r0,24r-182,0r0,-24xm17,-140r182,0r0,24r-182,0r0,-24","w":216},">":{"d":"17,-21r154,-70r-154,-70r0,-24r182,83r0,22r-182,83r0,-24","w":216},"?":{"d":"59,-35r34,0r0,35r-34,0r0,-35xm81,-234v-30,0,-38,25,-38,53r-30,0v1,-47,20,-76,67,-79v68,-4,84,85,44,125v-17,17,-38,32,-34,68r-28,0v-9,-65,54,-68,54,-127v0,-22,-11,-40,-35,-40","w":159},"@":{"d":"147,-205v23,0,33,13,42,30r8,-23r20,0r-34,118v0,6,6,9,11,9v39,-5,60,-37,60,-78v0,-61,-47,-91,-110,-91v-68,0,-110,45,-110,111v0,67,41,112,110,112v45,0,78,-13,98,-40r22,0v-22,40,-60,64,-120,62v-81,-2,-134,-54,-134,-134v0,-79,53,-133,134,-133v77,0,134,38,134,111v0,59,-37,102,-93,102v-16,0,-24,-7,-26,-22v-25,36,-100,24,-96,-32v4,-55,28,-102,84,-102xm147,-183v-40,0,-61,39,-61,78v0,20,15,34,34,34v36,0,56,-39,56,-76v0,-19,-10,-36,-29,-36","w":288},"A":{"d":"56,-96r69,0r-34,-125xm71,-257r43,0r69,257r-33,0r-19,-71r-82,0r-19,71r-33,0","w":180,"k":{"p":-4,"Y":20,"W":7,"V":7,"T":20,"Q":-4}},"B":{"d":"132,-189v0,-43,-36,-44,-79,-42r0,85v43,2,79,1,79,-43xm174,-73v4,79,-75,75,-153,73r0,-257v72,-2,149,-8,145,66v-1,28,-16,46,-38,54v30,7,45,29,46,64xm141,-73v0,-48,-39,-52,-88,-49r0,96v48,3,88,0,88,-47","w":186},"C":{"d":"100,-21v37,0,44,-31,45,-67r33,0v-3,53,-23,92,-78,93v-71,0,-83,-64,-83,-134v1,-70,13,-132,83,-133v53,-1,74,30,76,80r-33,0v-2,-30,-10,-55,-43,-54v-50,2,-50,57,-50,107v0,51,0,108,50,108","w":186},"D":{"d":"183,-129v-2,69,-17,129,-87,129r-72,0r0,-257r69,0v75,-2,91,54,90,128xm150,-128v0,-53,-6,-104,-61,-103r-33,0r0,205r33,0v54,0,61,-50,61,-102","w":200,"k":{"Y":7}},"E":{"d":"21,-257r133,0r0,28r-101,0r0,81r95,0r0,28r-95,0r0,92r105,0r0,28r-137,0r0,-257"},"F":{"d":"21,-257r133,0r0,28r-101,0r0,81r95,0r0,28r-95,0r0,120r-32,0r0,-257","w":159,"k":{"r":7,"o":7,"i":6,"e":9,"a":7,"A":19,".":40,",":40}},"G":{"d":"100,-262v49,0,76,27,76,76r-33,0v-2,-29,-12,-50,-43,-50v-50,2,-50,57,-50,107v0,51,0,108,50,108v42,0,47,-44,47,-87r-51,0r0,-26r80,0r0,134r-24,0r0,-35v-6,21,-29,41,-56,40v-69,-1,-79,-65,-79,-134v0,-70,13,-133,83,-133","w":193},"H":{"d":"172,0r-31,0r0,-124r-88,0r0,124r-32,0r0,-257r32,0r0,105r88,0r0,-105r31,0r0,257","w":193},"I":{"d":"21,-257r32,0r0,257r-32,0r0,-257","w":73},"J":{"d":"68,-21v31,0,33,-24,33,-54r0,-182r31,0r0,183v2,50,-16,79,-64,79v-46,0,-64,-30,-60,-80r30,0v-1,29,0,54,30,54","w":153},"K":{"d":"21,-257r32,0r0,125r89,-125r35,0r-77,107r84,150r-35,0r-70,-124r-26,37r0,87r-32,0r0,-257","w":180,"k":{"y":4,"u":7,"o":7}},"L":{"d":"21,-257r32,0r0,229r104,0r0,28r-136,0r0,-257","w":159,"k":{"y":13,"Y":33,"W":27,"V":27,"T":34}},"M":{"d":"22,-257r53,0r52,204r52,-204r53,0r0,257r-32,0r-1,-225r-56,225r-32,0r-58,-225r0,225r-31,0r0,-257","w":253},"N":{"d":"21,-257r41,0r86,215r0,-215r31,0r0,257r-43,0r-83,-208r0,208r-32,0r0,-257","w":200},"O":{"d":"150,-129v0,-50,0,-107,-50,-107v-50,0,-50,57,-50,107v0,51,0,108,50,108v50,0,50,-57,50,-108xm17,-129v0,-70,13,-133,83,-133v70,0,83,63,83,133v0,70,-13,134,-83,134v-70,0,-83,-64,-83,-134","w":200,"k":{"Y":9,"X":9}},"P":{"d":"133,-185v0,-43,-34,-49,-80,-46r0,96v47,4,80,-4,80,-50xm166,-183v0,63,-46,79,-113,74r0,109r-32,0r0,-257v76,-3,145,-5,145,74","w":173,"k":{"o":6,"e":6,"a":6,"A":13,".":46,",":46}},"Q":{"d":"50,-129v-2,59,11,128,73,102r-24,-22r17,-20r24,22v9,-21,10,-51,10,-82v0,-50,0,-107,-50,-107v-50,0,-47,57,-50,107xm100,-262v96,-1,92,133,73,213v-2,8,-7,16,-11,22r26,24r-18,18r-26,-23v-11,9,-24,13,-44,13v-70,-1,-83,-64,-83,-134v0,-70,13,-132,83,-133","w":200},"R":{"d":"137,-190v0,-41,-41,-43,-84,-41r0,91v47,2,84,-1,84,-50xm144,0v-22,-30,15,-117,-49,-114r-42,0r0,114r-32,0r0,-257v71,-1,149,-9,149,64v0,35,-14,57,-40,66v38,3,39,46,39,87v0,19,2,34,14,40r-39,0","w":186,"k":{"Y":6,"W":-7,"U":-7,"T":6}},"S":{"d":"53,-129v-63,-25,-45,-133,37,-133v50,0,70,24,72,72r-32,0v0,-28,-11,-46,-40,-46v-28,0,-44,14,-42,42v5,75,121,35,121,123v0,88,-137,104,-154,27v-3,-11,-4,-23,-4,-37r32,0v-1,37,9,60,48,60v45,0,59,-61,26,-82v-18,-11,-43,-18,-64,-26","w":180},"T":{"d":"99,0r-32,0r0,-229r-64,0r0,-28r161,0r0,28r-65,0r0,229","k":{"y":20,"w":27,"u":27,"r":27,"o":27,"i":6,"e":27,"a":27,"A":20,";":27,":":27,".":33,"-":20,",":33}},"U":{"d":"93,5v-53,0,-75,-28,-75,-81r0,-181r32,0r0,181v0,35,9,55,43,55v35,0,43,-19,44,-55r0,-181r32,0r0,181v0,49,-26,81,-76,81","w":186},"V":{"d":"-1,-257r33,0r52,221r50,-221r33,0r-65,257r-40,0","k":{"u":6,"o":6,"e":6,"a":6,"A":13,";":6,":":6,".":33,"-":6,",":33}},"W":{"d":"3,-257r32,0r40,210r36,-210r38,0r37,210r39,-210r32,0r-53,257r-38,0r-36,-208r-37,208r-39,0","w":259,"k":{"o":6,"e":6,"a":6,"A":6,".":27,"-":6,",":27}},"X":{"d":"6,-257r35,0r47,96r47,-96r33,0r-64,126r68,131r-35,0r-51,-103r-52,103r-33,0r68,-131","w":173},"Y":{"d":"-1,-257r35,0r49,120r51,-120r33,0r-68,156r0,101r-32,0r0,-101","k":{"u":22,"o":27,"i":11,"e":27,"a":27,"A":20,";":13,":":13,".":40,"-":27,",":40}},"Z":{"d":"8,-27r116,-202r-109,0r0,-28r142,0r0,29r-116,200r117,0r0,28r-150,0r0,-27"},"[":{"d":"28,-257r65,0r0,24r-37,0r0,275r37,0r0,24r-65,0r0,-323","w":93},"\\":{"d":"-4,-262r24,0r84,267r-24,0","w":100},"]":{"d":"65,66r-64,0r0,-24r36,0r0,-275r-36,0r0,-24r64,0r0,323","w":93},"^":{"d":"99,-250r18,0r82,156r-24,0r-67,-130r-67,130r-24,0","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"`":{"d":"30,-270r25,51r-22,0r-39,-51r36,0","w":73},"a":{"d":"69,-19v41,0,41,-42,39,-86v-21,19,-68,12,-66,53v0,20,7,33,27,33xm78,-174v-24,0,-32,17,-33,39r-30,0v0,-45,19,-60,65,-63v83,-5,54,92,59,163v-2,12,5,20,16,14v3,18,-1,26,-26,23v-13,-1,-18,-12,-20,-25v-7,15,-25,26,-46,28v-64,6,-71,-98,-16,-109v22,-13,62,-5,62,-42v0,-19,-10,-28,-31,-28","w":159,"k":{"w":-4,"v":-4,"t":-4,"p":-4,"g":-4}},"b":{"d":"91,5v-22,0,-36,-13,-42,-29r0,24r-29,0r0,-257r30,0r1,86v5,-15,23,-28,44,-27v51,1,59,52,59,102v0,51,-12,99,-63,101xm87,-172v-36,0,-39,40,-39,76v0,36,3,75,39,75v34,0,35,-39,35,-75v0,-38,-1,-76,-35,-76"},"c":{"d":"12,-94v0,-56,12,-104,68,-104v41,0,61,24,62,64r-30,0v-2,-21,-7,-41,-31,-40v-43,2,-38,56,-37,102v1,26,8,53,36,53v26,1,30,-25,32,-48r30,0v-2,41,-21,72,-64,72v-55,0,-65,-40,-66,-99","w":153,"k":{"y":7,"l":7}},"d":{"d":"73,-198v21,-1,37,14,44,27r0,-86r30,0r0,257r-29,0v-1,-7,2,-18,-1,-24v-5,17,-20,29,-41,29v-53,0,-62,-47,-63,-101v-1,-52,9,-101,60,-102xm80,-172v-36,0,-36,39,-36,76v0,36,1,75,36,75v37,0,38,-38,38,-75v0,-37,-3,-76,-38,-76","k":{"y":-4}},"e":{"d":"82,-198v57,0,66,48,65,105r-102,0v1,34,1,74,37,74v24,-1,32,-20,33,-44r30,0v-3,38,-22,68,-65,68v-55,-1,-67,-40,-67,-99v0,-55,13,-103,69,-104xm81,-174v-29,1,-35,28,-35,57r69,0v0,-30,-4,-57,-34,-57","w":159},"f":{"d":"93,-234v-18,0,-34,-1,-34,18r0,23r33,0r0,24r-33,0r0,169r-30,0r0,-169r-28,0r0,-24r28,0v-5,-49,11,-74,64,-67r0,26","w":93},"g":{"d":"76,-198v22,0,36,14,42,30r0,-25r29,0r0,181v11,72,-73,102,-119,58v-6,-7,-9,-16,-10,-28r30,0v1,17,14,24,31,24v39,0,41,-34,37,-68v-6,15,-24,26,-44,26v-49,-2,-58,-47,-59,-96v0,-54,11,-102,63,-102xm118,-96v0,-37,-3,-76,-38,-76v-36,0,-36,39,-36,76v0,32,3,70,35,70v36,0,39,-34,39,-70","k":{"y":-4}},"h":{"d":"88,-172v-23,1,-38,15,-38,39r0,133r-30,0r0,-257r30,0r1,86v15,-37,95,-37,95,15r1,156r-30,0r-1,-145v-1,-17,-10,-27,-28,-27"},"i":{"d":"22,-257r30,0r0,35r-30,0r0,-35xm22,-193r30,0r0,193r-30,0r0,-193","w":73},"j":{"d":"52,-222r-30,0r0,-35r30,0r0,35xm-8,39v21,6,30,-7,30,-31r0,-201r30,0r0,212v1,37,-22,51,-60,46r0,-26","w":73},"k":{"d":"164,0r-35,0r-54,-95r-25,30r0,65r-30,0r0,-257r30,0r1,153r67,-89r36,0r-59,73","w":159},"l":{"d":"22,-257r30,0r0,257r-30,0r0,-257","w":73,"k":{"w":-4}},"m":{"d":"89,-172v-23,1,-35,15,-36,39r0,133r-30,0r0,-193r28,0v1,7,-2,18,1,23v6,-16,26,-28,47,-28v25,0,36,11,42,31v7,-15,23,-31,45,-31v39,0,51,21,51,61r0,137r-30,0r-1,-145v-1,-15,-8,-27,-25,-27v-23,1,-35,15,-36,39r0,133r-30,0r-1,-145v-1,-15,-8,-27,-25,-27","w":259},"n":{"d":"88,-172v-23,1,-38,15,-38,39r0,133r-30,0r0,-193r29,0r0,23v6,-16,26,-28,47,-28v40,-1,52,23,51,61r0,137r-30,0r-1,-145v-1,-17,-10,-27,-28,-27","k":{"y":-4}},"o":{"d":"80,5v-57,0,-70,-46,-70,-101v0,-55,13,-102,70,-102v57,0,69,46,69,102v0,56,-13,101,-69,101xm42,-96v0,36,1,77,37,77v37,0,39,-40,39,-77v0,-37,-2,-78,-39,-78v-36,0,-37,42,-37,78","w":159,"k":{"y":-4,"w":-4}},"p":{"d":"91,5v-21,1,-33,-14,-41,-27r0,85r-30,0r0,-256r29,0r0,24v6,-17,21,-29,42,-29v52,0,63,45,63,98v0,51,-12,103,-63,105xm87,-172v-37,0,-39,39,-39,76v0,35,3,75,39,75v35,0,35,-41,35,-79v0,-36,-2,-72,-35,-72"},"q":{"d":"80,-21v35,0,38,-39,38,-75v0,-38,-2,-76,-38,-76v-34,0,-36,37,-36,72v0,37,0,79,36,79xm76,-198v21,0,35,13,42,29r0,-24r29,0r0,256r-30,0r-1,-85v-6,15,-20,27,-40,27v-52,-2,-64,-50,-63,-105v1,-53,11,-98,63,-98"},"r":{"d":"106,-166v-32,-7,-57,12,-56,44r0,122r-30,0r0,-193r30,0v1,9,-2,22,1,29v8,-20,26,-40,55,-32r0,30","w":106,"k":{"y":-6,"v":-6,".":27,"-":13,",":27}},"s":{"d":"13,-145v-6,-58,87,-69,112,-31v7,10,8,25,8,40r-30,0v0,-24,-5,-38,-29,-38v-46,0,-34,52,-1,59v33,7,65,17,65,60v0,66,-94,78,-121,33v-7,-10,-8,-27,-8,-41r30,0v1,25,8,45,36,44v20,-1,34,-10,32,-32v-6,-55,-100,-25,-94,-94","w":146,"k":{"w":-4}},"t":{"d":"92,0v-34,5,-63,3,-63,-36r0,-133r-28,0r0,-24r28,0r0,-56r30,0r0,56r34,0r0,24r-34,0r0,124v-2,21,14,23,33,20r0,25","w":93},"u":{"d":"78,-21v66,-4,30,-111,39,-172r30,0r0,193r-29,0v-1,-7,2,-18,-1,-23v-6,16,-26,28,-46,28v-40,1,-52,-23,-51,-61r0,-137r30,0r1,145v1,16,9,27,27,27"},"v":{"d":"4,-193r33,0r36,155r36,-155r34,0r-53,193r-34,0","w":146,"k":{".":20,",":20}},"w":{"d":"4,-193r31,0r32,158r33,-158r35,0r33,158r30,-158r32,0r-46,193r-33,0r-35,-158r-32,158r-35,0","w":233,"k":{".":13,",":13}},"x":{"d":"6,-193r33,0r35,69r35,-69r33,0r-50,93r52,100r-33,0r-39,-76r-37,76r-33,0r53,-100","w":146},"y":{"d":"4,-193r33,0r39,155r33,-155r34,0r-62,225v-7,25,-33,36,-68,30r0,-23v29,7,44,-11,47,-35","w":146,"k":{"a":-4,".":20,",":20}},"z":{"d":"14,-193r116,0r0,25r-86,142r86,0r0,26r-120,0r0,-24r87,-143r-83,0r0,-26","w":140},"{":{"d":"93,66v-120,21,-25,-140,-92,-151r0,-21v68,-9,-29,-173,92,-151r0,24v-78,-18,0,123,-69,138v43,6,29,71,33,118v-3,20,16,20,36,19r0,24","w":93},"|":{"d":"28,-262r24,0r0,267r-24,0r0,-267","w":79},"}":{"d":"1,-257v119,-20,22,143,92,151r0,21v-69,8,27,173,-92,151r0,-24v76,18,-1,-123,68,-138v-43,-6,-32,-69,-32,-118v0,-18,-16,-21,-36,-19r0,-24","w":93},"~":{"d":"125,-95v23,16,48,-4,56,-21r15,17v-14,38,-77,41,-105,12v-23,-15,-47,4,-56,20r-15,-16v14,-39,77,-41,105,-12","w":216},"\u00a0":{"w":86,"k":{"Y":13,"W":13,"V":13,"T":13,"A":13}}}});

/*Helvetica Light*/
Cufon.registerFont({"w":200,"face":{"font-family":"Helvetica Light","font-weight":300,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 4 3 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-11 -291 325 77","underline-thickness":"18","underline-position":"-18","stemh":"19","stemv":"23","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":100},"!":{"d":"59,0r-31,0r0,-38r31,0r0,38xm37,-64r-6,-116r0,-77r25,0r0,77r-6,116r-13,0","w":86},"\"":{"d":"79,-170r0,-87r23,0r0,87r-23,0xm31,-170r0,-87r23,0r0,87r-23,0","w":133},"#":{"d":"131,-153r-51,0r-8,57r51,0xm179,-96r0,16r-40,0r-11,80r-18,0r11,-80r-51,0r-11,80r-18,0r11,-80r-39,0r0,-16r41,0r8,-57r-39,0r0,-16r41,0r12,-80r18,0r-12,80r51,0r11,-80r18,0r-11,80r38,0r0,16r-40,0r-8,57r38,0"},"$":{"d":"10,-82r23,0v0,42,22,64,60,68r0,-106v-41,-9,-76,-22,-76,-72v0,-43,34,-70,76,-70r0,-29r14,0r0,29v42,0,77,31,76,78r-23,0v0,-36,-21,-59,-53,-59r0,103v41,9,83,23,83,73v0,48,-41,72,-83,72r0,31r-14,0r0,-31v-56,-5,-81,-32,-83,-87xm93,-143r0,-100v-29,0,-53,15,-53,53v0,33,26,40,53,47xm107,-117r0,103v30,0,60,-15,60,-52v0,-34,-32,-44,-60,-51"},"%":{"d":"82,-254v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-114v-31,0,-38,29,-38,52v0,23,7,51,38,51v30,0,38,-28,38,-51v0,-23,-8,-52,-38,-52xm240,-131v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm68,12r163,-273r17,0r-162,273r-18,0xm82,-238v-31,0,-38,29,-38,52v0,23,7,52,38,52v30,0,38,-29,38,-52v0,-23,-8,-52,-38,-52","w":320},"&":{"d":"102,-238v-19,0,-34,11,-34,33v0,18,17,38,29,52v18,-12,39,-27,39,-52v0,-22,-15,-33,-34,-33xm195,0r-28,-33v-37,58,-154,50,-153,-34v0,-36,34,-61,63,-76v-14,-18,-32,-37,-32,-62v0,-31,26,-52,57,-52v31,0,57,21,57,52v0,32,-24,51,-50,67r56,67v6,-13,7,-23,7,-43r23,0v0,14,-3,40,-15,62r43,52r-28,0xm153,-50r-64,-78v-25,13,-52,33,-52,64v0,30,27,50,56,50v26,0,46,-15,60,-36","w":219},"(":{"d":"87,69r-18,0v-67,-97,-67,-235,0,-331r18,0v-60,97,-62,235,0,331","w":86},")":{"d":"0,-262r18,0v67,97,66,235,0,331r-18,0v61,-97,61,-235,0,-331","w":86},"*":{"d":"51,-200r-41,-14r5,-14r41,15r0,-44r14,0r0,44r42,-15r5,14r-42,14r25,35r-11,8r-26,-36r-27,36r-11,-8","w":126},"+":{"d":"99,-100r0,-81r19,0r0,81r81,0r0,19r-81,0r0,81r-19,0r0,-81r-81,0r0,-19r81,0","w":216},",":{"d":"35,-38r30,0v1,41,1,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38","w":100},"-":{"d":"112,-89r-90,0r0,-20r90,0r0,20","w":133},".":{"d":"65,0r-30,0r0,-38r30,0r0,38","w":100},"\/":{"d":"15,5r-20,0r111,-267r19,0","w":119},"0":{"d":"100,-254v73,0,88,70,88,129v0,59,-15,130,-88,130v-73,0,-88,-70,-88,-129v0,-59,15,-130,88,-130xm100,-235v-58,0,-65,66,-65,110v0,44,7,111,65,111v58,0,65,-67,65,-111v0,-44,-7,-110,-65,-110"},"1":{"d":"35,-187r0,-16v40,-1,64,-3,71,-49r18,0r0,252r-22,0r0,-187r-67,0"},"2":{"d":"178,-183v-1,86,-117,92,-139,162r140,0r0,21r-166,0v1,-75,77,-96,121,-136v37,-33,21,-99,-35,-99v-41,0,-58,33,-57,70r-23,0v-1,-52,26,-89,81,-89v44,0,78,24,78,71"},"3":{"d":"12,-80r23,0v-2,40,23,66,63,66v33,0,64,-19,64,-55v-1,-43,-35,-58,-80,-54r0,-19v38,3,71,-6,71,-46v0,-33,-25,-47,-55,-47v-37,0,-59,27,-58,64r-22,0v0,-48,30,-83,79,-83v39,0,78,19,78,64v0,27,-15,49,-42,56v33,5,52,30,52,63v0,49,-41,76,-87,76v-52,0,-90,-31,-86,-85"},"4":{"d":"31,-82r96,0r-1,-137xm11,-63r0,-22r116,-167r21,0r0,170r38,0r0,19r-38,0r0,63r-21,0r0,-63r-116,0"},"5":{"d":"13,-72r23,0v1,35,27,58,62,58v39,0,63,-31,63,-68v0,-65,-90,-89,-121,-36r-19,0r24,-131r126,0r0,21r-110,0r-16,84v48,-51,138,-11,138,64v0,49,-39,85,-87,85v-47,0,-82,-29,-83,-77"},"6":{"d":"182,-188r-23,0v-4,-28,-23,-47,-52,-47v-58,-1,-72,69,-69,113v12,-25,38,-42,67,-42v50,0,83,35,83,84v0,49,-35,85,-85,85v-61,0,-89,-36,-89,-134v0,-30,8,-125,90,-125v45,0,73,22,78,66xm104,-145v-40,0,-62,30,-62,67v0,36,19,64,63,64v36,0,60,-29,60,-64v0,-37,-22,-67,-61,-67"},"7":{"d":"18,-228r0,-21r162,0r0,21v-32,33,-96,111,-102,228r-24,0v6,-85,34,-148,104,-228r-140,0"},"8":{"d":"100,-144v28,0,54,-15,54,-47v0,-29,-24,-44,-54,-44v-28,0,-54,15,-54,44v0,33,27,47,54,47xm176,-191v1,28,-17,46,-41,56v33,7,52,30,52,64v0,51,-39,76,-87,76v-48,0,-87,-25,-87,-76v0,-34,22,-57,51,-65v-26,-8,-41,-27,-41,-55v1,-84,152,-85,153,0xm100,-14v36,0,64,-18,64,-57v0,-36,-30,-54,-64,-54v-35,0,-64,17,-64,54v0,38,28,57,64,57"},"9":{"d":"18,-60r23,0v4,28,24,46,53,46v58,1,71,-68,68,-112v-12,25,-38,41,-67,41v-50,0,-83,-35,-83,-84v0,-49,36,-85,86,-85v61,0,88,36,88,134v0,30,-8,125,-90,125v-45,0,-73,-21,-78,-65xm96,-104v40,0,62,-29,62,-66v0,-36,-19,-65,-63,-65v-36,0,-60,30,-60,65v0,37,22,66,61,66"},":":{"d":"65,0r-30,0r0,-38r30,0r0,38xm65,-142r-30,0r0,-38r30,0r0,38","w":100},";":{"d":"65,-142r-30,0r0,-38r30,0r0,38xm35,-38r30,0v1,41,1,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38","w":100},"<":{"d":"199,-17r0,20r-182,-84r0,-20r182,-84r0,20r-160,74","w":216},"=":{"d":"199,-65r0,19r-181,0r0,-19r181,0xm199,-136r0,19r-181,0r0,-19r181,0","w":216},">":{"d":"17,-17r160,-74r-160,-74r0,-20r182,84r0,20r-182,84r0,-20","w":216},"?":{"d":"83,0r0,-38r30,0r0,38r-30,0xm87,-64v-12,-64,65,-75,65,-131v0,-29,-24,-48,-52,-48v-39,0,-59,28,-58,65r-23,0v0,-51,30,-84,82,-84v40,0,73,24,73,66v0,61,-77,69,-65,132r-22,0","w":193},"@":{"d":"221,-196r-35,104v-5,15,-7,30,5,30v32,0,61,-50,61,-90v0,-59,-46,-94,-102,-94v-67,0,-114,53,-114,119v0,65,48,116,114,116v35,0,72,-18,93,-48r19,0v-22,39,-67,64,-112,64v-78,0,-133,-59,-133,-135v0,-75,59,-132,132,-132v69,0,122,46,122,112v0,58,-43,104,-83,104v-13,0,-24,-8,-25,-24v-26,39,-94,26,-94,-29v0,-50,35,-104,86,-104v16,0,30,9,38,31r9,-24r19,0xm153,-184v-37,0,-61,51,-61,84v0,22,13,34,30,34v33,0,60,-52,60,-84v0,-17,-15,-34,-29,-34","w":288},"A":{"d":"114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0","w":226,"k":{"y":6,"w":6,"v":6,"Y":27,"W":2,"V":18,"T":24}},"B":{"d":"50,-236r0,92v57,0,143,9,143,-44v0,-62,-84,-46,-143,-48xm26,0r0,-257v81,4,188,-23,191,63v0,27,-18,52,-45,58v33,4,55,30,55,63v0,24,-8,73,-92,73r-109,0xm50,-123r0,102v66,-4,149,19,152,-53v2,-62,-90,-48,-152,-49","w":240},"C":{"d":"238,-179r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83r25,0v-7,63,-47,103,-107,103v-81,0,-121,-63,-121,-134v0,-71,40,-133,121,-133v49,0,96,29,103,83","w":253},"D":{"d":"26,0r0,-257r89,0v78,2,118,43,118,128v0,85,-40,129,-118,129r-89,0xm50,-236r0,215v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107","w":246},"E":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0","w":213},"F":{"d":"26,0r0,-257r163,0r0,21r-139,0r0,93r124,0r0,21r-124,0r0,122r-24,0","w":193,"k":{"A":20,".":46,",":46}},"G":{"d":"246,-131r0,131r-18,0v-2,-15,0,-34,-4,-47v-17,37,-52,52,-89,52v-81,0,-121,-63,-121,-134v0,-71,40,-133,121,-133v54,0,97,29,107,85r-24,0v-3,-30,-34,-65,-83,-65v-132,1,-130,226,0,227v57,0,90,-40,89,-95r-88,0r0,-21r110,0","w":266},"H":{"d":"26,0r0,-257r24,0r0,112r153,0r0,-112r25,0r0,257r-25,0r0,-125r-153,0r0,125r-24,0","w":253},"I":{"d":"28,0r0,-257r24,0r0,257r-24,0","w":79},"J":{"d":"130,-82r0,-175r24,0r0,185v0,52,-20,77,-75,77v-59,0,-71,-42,-71,-87r24,0v1,22,-2,67,49,67v39,0,49,-20,49,-67","w":180},"K":{"d":"26,0r0,-257r24,0r0,138r150,-138r33,0r-115,106r120,151r-31,0r-107,-134r-50,46r0,88r-24,0","w":233},"L":{"d":"26,0r0,-257r24,0r0,236r144,0r0,21r-168,0","w":193,"k":{"y":13,"Y":40,"W":20,"V":33,"T":33}},"M":{"d":"25,0r0,-257r36,0r89,225r89,-225r36,0r0,257r-25,0r-1,-222r-87,222r-23,0r-89,-222r0,222r-25,0","w":299},"N":{"d":"26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0","w":253},"O":{"d":"134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134","w":266},"P":{"d":"50,-236r0,105v63,-2,142,16,142,-53v0,-68,-79,-50,-142,-52xm26,0r0,-257r114,0v46,0,76,27,76,73v0,46,-30,74,-76,74r-90,0r0,110r-24,0","w":226,"k":{"A":27,".":55,",":55}},"Q":{"d":"252,1r-12,16r-40,-31v-18,13,-39,19,-66,19v-81,0,-122,-63,-122,-134v0,-71,41,-133,122,-133v125,0,155,163,82,235xm160,-69r37,28v59,-60,42,-201,-63,-201v-132,1,-130,226,0,227v18,0,34,-5,47,-13r-34,-26","w":266},"R":{"d":"50,-236r0,101v63,-2,144,15,147,-50v3,-66,-85,-49,-147,-51xm202,0v-16,-45,6,-114,-59,-114r-93,0r0,114r-24,0r0,-257v85,3,195,-22,196,67v1,34,-19,57,-50,66v62,5,34,81,57,124r-27,0","w":240,"k":{"y":-9,"Y":5,"W":-2,"V":-2,"T":-2}},"S":{"d":"13,-85r24,0v-1,53,37,70,84,70v27,0,68,-16,68,-53v0,-83,-167,-24,-168,-122v0,-25,17,-72,89,-72v51,0,95,26,95,79r-25,0v2,-72,-134,-84,-134,-7v0,47,64,42,101,54v35,12,67,26,67,68v0,18,-7,73,-98,73v-61,0,-106,-27,-103,-90","w":226},"T":{"d":"-2,-236r0,-21r204,0r0,21r-90,0r0,236r-24,0r0,-236r-90,0","k":{"y":40,"w":40,"u":33,"s":40,"r":33,"o":40,"i":-9,"e":40,"c":40,"a":40,"A":24,";":40,":":40,".":40,"-":46,",":40}},"U":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262","w":246},"V":{"d":"93,0r-96,-257r27,0r84,230r83,-230r26,0r-96,257r-28,0","w":213,"k":{"y":6,"u":13,"r":13,"o":20,"i":-2,"e":20,"a":20,"A":20,";":27,":":27,".":46,"-":20,",":46}},"W":{"d":"71,0r-71,-257r26,0r59,225r63,-225r31,0r63,225r59,-225r24,0r-70,257r-26,0r-66,-230r-65,230r-27,0","w":326,"k":{"u":6,"r":6,"o":6,"i":-9,"e":6,"a":13,"A":6,";":6,":":6,".":27,",":27}},"X":{"d":"88,-132r-87,-125r29,0r73,108r75,-108r27,0r-88,125r93,132r-29,0r-78,-113r-80,113r-27,0","w":206},"Y":{"d":"98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0","w":219,"k":{"v":20,"u":27,"q":33,"p":27,"o":33,"i":3,"e":33,"a":33,"A":27,";":33,":":33,".":36,"-":40,",":44}},"Z":{"d":"13,-236r0,-21r185,0r0,22r-169,214r173,0r0,21r-200,0r0,-22r169,-214r-158,0","w":206},"[":{"d":"85,69r-58,0r0,-331r58,0r0,19r-35,0r0,293r35,0r0,19","w":86},"\\":{"d":"125,5r-20,0r-110,-267r19,0","w":119},"]":{"d":"1,-262r58,0r0,331r-58,0r0,-19r36,0r0,-293r-36,0r0,-19","w":86},"^":{"d":"37,-86r-21,0r83,-163r18,0r83,163r-20,0r-72,-140","w":216},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88","w":186},"b":{"d":"22,0r0,-257r22,0r1,107v9,-27,37,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-31,1,-55,-16,-67,-40r0,35r-20,0xm109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158","w":206},"c":{"d":"175,-127r-22,0v-6,-28,-23,-45,-53,-45v-86,1,-87,157,0,158v28,0,51,-22,54,-53r23,0v-6,45,-35,72,-77,72v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98v40,0,70,21,75,64","w":186},"d":{"d":"185,-257r0,257r-21,0v-1,-11,2,-26,-1,-35v-10,24,-39,40,-66,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v27,0,56,14,65,41r0,-107r23,0xm97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158","w":206},"e":{"d":"35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104","w":186},"f":{"d":"93,-186r0,19r-36,0r0,167r-23,0r0,-167r-32,0r0,-19r32,0v-5,-48,11,-79,64,-70r0,20v-36,-9,-46,13,-41,50r36,0","w":93,"k":{"f":6}},"g":{"d":"179,-186v-9,107,39,260,-83,260v-37,0,-74,-17,-77,-56r23,0v5,27,29,37,54,37v50,0,66,-42,59,-95v-10,23,-32,38,-59,38v-59,0,-84,-43,-84,-96v0,-51,30,-93,84,-93v28,-1,49,18,60,37r0,-32r23,0xm96,-21v79,-1,82,-151,0,-151v-43,0,-61,38,-61,77v0,37,19,74,61,74"},"h":{"d":"21,0r0,-257r23,0r1,103v9,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0","w":193},"i":{"d":"22,-221r0,-36r23,0r0,36r-23,0xm22,0r0,-186r23,0r0,186r-23,0","w":66},"j":{"d":"22,-221r0,-36r23,0r0,36r-23,0xm22,23r0,-209r23,0r0,203v2,34,-16,59,-56,51r0,-19v21,5,33,-6,33,-26","w":66},"k":{"d":"22,0r0,-257r22,0r0,161r103,-90r30,0r-79,69r85,117r-29,0r-73,-101r-37,30r0,71r-22,0","w":180},"l":{"d":"22,0r0,-257r23,0r0,257r-23,0","w":66},"m":{"d":"22,0r0,-186r20,0v2,10,-3,26,2,32v16,-45,99,-52,114,-1v11,-24,35,-36,59,-36v87,0,55,114,61,191r-22,0r0,-125v0,-31,-11,-47,-44,-47v-74,0,-45,103,-51,172r-22,0r0,-126v0,-25,-10,-46,-39,-46v-76,0,-53,100,-56,172r-22,0","w":299},"n":{"d":"21,0r0,-186r23,0v1,10,-2,24,1,32v9,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0","w":193},"o":{"d":"100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98"},"p":{"d":"22,69r0,-255r20,0v1,11,-2,27,1,36v10,-26,36,-41,66,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-28,1,-53,-15,-65,-40r0,104r-22,0xm109,-14v83,-1,82,-157,0,-158v-50,0,-65,37,-65,79v0,39,17,79,65,79","w":206},"q":{"d":"185,-186r0,255r-23,0r0,-104v-10,27,-38,40,-65,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v28,-1,55,19,67,41r0,-36r21,0xm97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158","w":206},"r":{"d":"22,0r0,-186r20,0v1,14,-2,32,1,44v12,-30,37,-47,70,-46r0,22v-41,-2,-69,28,-69,67r0,99r-22,0","w":113,"k":{"q":6,"o":6,"n":-6,"e":6,"d":6,"c":6,".":33,"-":20,",":33}},"s":{"d":"156,-131r-23,0v-1,-28,-23,-41,-49,-41v-20,0,-44,8,-44,32v15,55,123,17,122,90v0,40,-40,55,-75,55v-44,0,-72,-19,-76,-65r23,0v2,31,25,46,55,46v22,0,50,-9,50,-35v0,-58,-121,-21,-121,-90v0,-38,36,-52,69,-52v37,0,67,20,69,60","w":173},"t":{"d":"58,-242r0,56r37,0r0,19r-37,0r0,126v-4,23,16,27,37,23r0,19v-36,3,-60,0,-60,-41r0,-127r-32,0r0,-19r32,0r0,-56r23,0","w":106},"u":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0","w":193},"v":{"d":"72,0r-71,-186r25,0r59,163r58,-163r23,0r-70,186r-24,0","w":166,"k":{".":27,",":27}},"w":{"d":"63,0r-60,-186r24,0r48,159r46,-159r25,0r46,159r48,-159r24,0r-60,186r-25,0r-46,-156r-46,156r-24,0","w":266,"k":{".":20,",":20}},"x":{"d":"0,0r72,-96r-66,-90r28,0r53,71r52,-71r28,0r-67,89r73,97r-29,0r-58,-78r-58,78r-28,0","w":173},"y":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49","w":166,"k":{".":33,",":33}},"z":{"d":"156,-170r-123,151r128,0r0,19r-156,0r0,-18r122,-149r-113,0r0,-19r142,0r0,16","w":166},"{":{"d":"105,69v-56,11,-50,-48,-49,-99v0,-29,-5,-57,-26,-57r0,-19v62,-6,-21,-170,75,-156r0,19v-37,-4,-27,51,-27,87v0,41,-21,54,-25,60v5,3,25,18,25,58v0,34,-12,91,27,88r0,19","w":119},"|":{"d":"31,77r0,-360r19,0r0,360r-19,0","w":79},"}":{"d":"14,-262v55,-11,51,46,50,98v0,29,5,57,26,57r0,20v-62,6,21,170,-76,156r0,-19v38,5,27,-52,27,-88v0,-41,22,-53,26,-59v-5,-3,-26,-19,-26,-59v0,-34,12,-91,-27,-87r0,-19","w":119},"~":{"d":"70,-112v24,-1,56,23,77,23v14,0,23,-11,31,-24r13,13v-10,15,-23,31,-45,31v-37,0,-90,-50,-108,1r-13,-13v8,-15,21,-31,45,-31","w":216},"'":{"d":"39,-170r0,-87r23,0r0,87r-23,0","w":100},"`":{"d":"36,-212r-47,-50r28,0r38,50r-19,0","w":66},"\u00a0":{"w":100}}});

/*Helvetica Condensed Bold*/
Cufon.registerFont({"w":172,"face":{"font-family":"Helvetica Condensed Bold","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 7 6 3 5 2 3 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-9 -280 278 66.6998","underline-thickness":"18","underline-position":"-18","stemh":"38","stemv":"50","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":86},"!":{"d":"28,-48r50,0r0,48r-50,0r0,-48xm71,-72r-36,0r-7,-102r0,-83r50,0v1,65,-2,126,-7,185","w":106},"\"":{"d":"26,-141r0,-116r45,0r0,116r-45,0xm96,-141r0,-116r45,0r0,116r-45,0","w":166},"#":{"d":"72,-147r-6,44r35,0r6,-44r-35,0xm0,-63r0,-40r31,0r6,-44r-26,0r0,-40r31,0r8,-63r34,0r-7,63r35,0r8,-63r34,0r-7,63r26,0r0,40r-31,0r-6,44r26,0r0,40r-31,0r-8,63r-34,0r7,-63r-35,0r-7,63r-35,0r8,-63r-27,0"},"$":{"d":"74,36r0,-31v-62,-7,-72,-37,-71,-81r50,0v0,20,2,38,21,43r0,-73v-39,-10,-68,-35,-68,-75v0,-44,25,-69,68,-74r0,-25r23,0r0,25v55,6,67,36,66,73r-49,0v0,-18,-4,-31,-17,-35r0,68v35,16,73,23,73,77v0,52,-25,74,-73,77r0,31r-23,0xm74,-159r0,-58v-24,6,-24,49,0,58xm97,-97r0,64v31,-7,25,-56,0,-64"},"%":{"d":"50,11r147,-272r32,0r-147,272r-32,0xm48,-188v0,29,2,43,16,43v14,0,16,-14,16,-43v0,-26,-2,-40,-16,-40v-14,0,-16,14,-16,40xm10,-186v0,-46,9,-69,54,-69v45,0,54,23,54,69v0,46,-9,69,-54,69v-45,0,-54,-23,-54,-69xm162,-64v0,-46,9,-68,54,-68v45,0,54,22,54,68v0,46,-9,69,-54,69v-45,0,-54,-23,-54,-69xm201,-65v0,29,1,43,15,43v14,0,16,-14,16,-43v0,-26,-2,-40,-16,-40v-14,0,-15,14,-15,40","w":280},"&":{"d":"115,-137r38,52v5,-11,9,-27,9,-38r45,0v0,28,-11,53,-26,75r34,48r-56,0r-14,-20v-13,15,-36,25,-62,25v-65,0,-79,-45,-79,-74v0,-30,20,-54,52,-74v-39,-40,-37,-116,39,-114v85,2,80,87,20,120xm123,-51r-43,-62v-20,15,-26,28,-26,44v0,31,52,48,69,18xm94,-225v-35,2,-19,42,-3,57v23,-11,42,-54,3,-57","w":213},"(":{"d":"68,-257r39,0v-56,102,-56,221,0,323r-39,0v-68,-115,-68,-208,0,-323","w":106},")":{"d":"0,-257r38,0v69,115,69,208,0,323r-38,0v56,-102,56,-221,0,-323","w":106},"*":{"d":"55,-257r30,0r0,46r44,-14r9,28r-44,14r27,38r-24,17r-27,-38r-27,38r-24,-17r27,-38r-43,-14r9,-28r43,14r0,-46","w":140},"+":{"d":"86,0r0,-69r-69,0r0,-44r69,0r0,-69r44,0r0,69r69,0r0,44r-69,0r0,69r-44,0","w":216},",":{"d":"19,-56r48,0v0,56,8,112,-48,115r0,-25v15,-4,20,-17,19,-34r-19,0r0,-56","w":86,"k":{" ":13}},"-":{"d":"16,-125r101,0r0,42r-101,0r0,-42","w":133},".":{"d":"19,-56r48,0r0,56r-48,0r0,-56","w":86,"k":{" ":13}},"\/":{"d":"-1,5r81,-267r41,0r-82,267r-40,0","w":119},"0":{"d":"6,-119v0,-71,4,-136,80,-136v62,0,80,34,80,124v0,71,-4,136,-80,136v-62,0,-80,-34,-80,-124xm58,-135r0,27v0,64,6,79,28,79v23,0,28,-19,28,-85r0,-28v0,-64,-6,-79,-28,-79v-23,0,-28,20,-28,86"},"1":{"d":"117,0r-51,0r0,-180r-51,0r0,-34v36,1,59,-12,64,-41r38,0r0,255"},"2":{"d":"163,-40r0,40r-157,0v-4,-53,39,-98,78,-131v23,-20,26,-32,26,-58v0,-21,-8,-32,-25,-32v-26,0,-29,23,-29,50r-50,0v-3,-55,21,-83,80,-84v94,-2,94,106,36,151v-19,15,-50,44,-55,64r96,0"},"3":{"d":"7,-75r50,0v0,30,5,46,28,46v25,0,29,-19,29,-41v0,-30,-15,-48,-51,-43r0,-34v32,5,46,-13,46,-41v0,-24,-7,-33,-24,-33v-22,0,-27,17,-27,41r-47,0v0,-50,26,-75,75,-75v46,0,73,21,73,66v1,32,-17,50,-39,57v33,5,46,28,46,60v0,35,-14,77,-85,77v-50,0,-75,-30,-74,-80"},"4":{"d":"5,-53r0,-42r85,-160r53,0r0,162r25,0r0,40r-25,0r0,53r-47,0r0,-53r-91,0xm96,-93r-1,-97r-50,97r51,0"},"5":{"d":"153,-250r0,40r-94,0r-5,58v10,-13,25,-19,47,-19v49,0,62,42,62,82v0,56,-16,94,-81,94v-68,0,-77,-41,-76,-78r50,0v0,17,3,42,25,42v21,0,31,-17,31,-50v0,-42,-7,-54,-30,-54v-15,0,-23,10,-25,24r-46,0r9,-139r133,0"},"6":{"d":"59,-79v0,29,5,50,29,50v25,0,28,-21,28,-50v0,-35,-8,-48,-28,-48v-21,0,-29,13,-29,48xm162,-190r-50,0v0,-20,-6,-31,-23,-31v-30,0,-35,41,-31,77v9,-13,24,-22,47,-22v45,0,63,34,63,80v0,59,-26,91,-83,91v-71,0,-80,-57,-80,-119v0,-72,2,-141,86,-141v37,0,70,16,71,65"},"7":{"d":"8,-250r157,0r0,40v-42,59,-66,138,-75,210r-54,0v8,-62,29,-137,79,-205r-107,0r0,-45"},"8":{"d":"57,-73v0,24,6,44,29,44v23,0,30,-20,30,-44v0,-24,-7,-44,-30,-44v-23,0,-29,20,-29,44xm61,-186v0,24,10,36,25,36v15,0,26,-12,26,-36v0,-23,-9,-35,-26,-35v-17,0,-25,12,-25,35xm5,-72v-1,-33,16,-56,43,-64v-69,-24,-32,-132,38,-119v71,-12,107,93,39,119v27,9,43,31,43,64v0,29,-11,77,-82,77v-71,0,-81,-48,-81,-77"},"9":{"d":"57,-171v0,35,8,49,28,49v21,0,28,-14,28,-49v0,-29,-4,-50,-28,-50v-25,0,-28,21,-28,50xm11,-59r50,0v0,19,6,30,23,30v30,0,35,-41,31,-77v-9,13,-25,22,-48,22v-45,0,-62,-34,-62,-80v0,-59,25,-91,82,-91v71,0,81,57,81,119v0,72,-2,141,-86,141v-37,0,-70,-15,-71,-64"},":":{"d":"19,-131r0,-57r48,0r0,57r-48,0xm19,0r0,-56r48,0r0,56r-48,0","w":86},";":{"d":"19,-188r48,0r0,57r-48,0r0,-57xm19,-56r48,0v0,56,8,112,-48,115r0,-25v15,-4,20,-17,19,-34r-19,0r0,-56","w":86},"\u037e":{"d":"19,-188r48,0r0,57r-48,0r0,-57xm19,-56r48,0v0,56,8,112,-48,115r0,-25v15,-4,20,-17,19,-34r-19,0r0,-56","w":86},"<":{"d":"17,-72r0,-38r182,-75r0,45r-122,49r122,49r0,45","w":216},"=":{"d":"17,-30r0,-44r182,0r0,44r-182,0xm17,-108r0,-45r182,0r0,45r-182,0","w":216},">":{"d":"17,3r0,-45r122,-49r-122,-49r0,-45r182,75r0,38","w":216},"?":{"d":"58,-48r50,0r0,48r-50,0r0,-48xm60,-177r-47,0v-2,-50,20,-82,71,-83v77,-2,97,77,54,126v-15,17,-37,32,-33,63r-44,0v-4,-41,14,-65,36,-86v20,-19,21,-68,-11,-69v-21,0,-27,23,-26,49","w":173},"@":{"d":"188,-176r5,-19r31,0r-23,105v0,5,2,7,7,7v14,0,38,-24,38,-62v0,-48,-46,-83,-96,-83v-57,0,-99,48,-99,100v0,55,47,99,102,99v33,0,58,-11,78,-23r32,0v-26,36,-65,57,-119,57v-74,0,-134,-60,-134,-134v0,-74,60,-133,134,-133v72,0,134,43,134,109v0,76,-68,103,-91,103v-15,1,-20,-8,-24,-19v-31,34,-96,20,-96,-42v0,-63,79,-124,121,-65xm148,-162v-38,-2,-58,69,-15,74v40,3,61,-70,15,-74","w":288},"A":{"d":"75,-97r50,0r-25,-115xm0,0r68,-257r64,0r68,257r-54,0r-12,-54r-68,0r-12,54r-54,0","w":200,"k":{"y":6,"w":6,"v":6,"Y":20,"W":4,"V":4,"T":20}},"B":{"d":"70,-116r0,78v35,1,62,-1,62,-39v0,-39,-27,-40,-62,-39xm70,-219r0,67v33,2,56,-3,56,-33v0,-31,-23,-36,-56,-34xm18,0r0,-257v75,2,160,-18,160,65v0,29,-15,48,-39,57v29,4,47,25,47,60v0,40,-21,75,-81,75r-87,0","w":200},"C":{"d":"180,-170r-52,0v0,-37,-8,-54,-31,-54v-26,0,-33,26,-33,99v0,78,12,92,34,92v18,0,32,-9,32,-65r52,0v0,56,-14,103,-82,103v-78,0,-87,-56,-87,-134v0,-78,9,-133,87,-133v74,0,80,55,80,92","w":193,"k":{"A":6}},"D":{"d":"72,-219r0,181v58,4,66,-10,67,-93v0,-69,-9,-94,-67,-88xm21,0r0,-257r84,0v72,0,85,49,85,125v0,91,-19,132,-88,132r-81,0","w":206,"k":{"Y":20,"A":12,".":9,",":9}},"E":{"d":"18,-257r144,0r0,42r-92,0r0,61r86,0r0,42r-86,0r0,70r95,0r0,42r-147,0r0,-257","w":173},"F":{"d":"18,0r0,-257r144,0r0,42r-92,0r0,61r86,0r0,42r-86,0r0,112r-52,0","w":166,"k":{"e":7,"a":7,"A":13,".":40,",":40}},"G":{"d":"182,-181r-50,0v0,-19,-8,-43,-29,-43v-25,0,-36,26,-36,90v0,62,6,101,36,101v21,0,38,-32,32,-67r-34,0r0,-39r84,0r0,139r-38,0v-1,-7,2,-18,-1,-24v-13,20,-30,29,-54,29v-64,0,-77,-47,-77,-136v0,-86,21,-131,87,-131v57,0,80,29,80,81","w":200},"H":{"d":"18,0r0,-257r52,0r0,98r60,0r0,-98r52,0r0,257r-52,0r0,-114r-60,0r0,114r-52,0","w":200},"I":{"d":"72,0r-51,0r0,-257r51,0r0,257","w":92},"J":{"d":"99,-257r52,0r0,185v0,55,-26,77,-78,77v-59,0,-69,-38,-68,-86r48,0v-1,27,1,48,23,48v19,0,23,-13,23,-40r0,-184","w":166},"K":{"d":"18,-257r52,0r1,103r65,-103r56,0r-70,110r78,147r-58,0r-53,-105r-19,29r0,76r-52,0r0,-257","w":193},"L":{"d":"162,0r-144,0r0,-257r52,0r0,215r92,0r0,42","w":166,"k":{"y":13,"Y":33,"W":27,"V":27,"T":27}},"M":{"d":"19,0r0,-257r77,0r38,181r37,-181r76,0r0,257r-47,0r-1,-205r-46,205r-40,0r-46,-205r0,205r-48,0","w":266},"N":{"d":"18,-257r60,0r63,176r0,-176r48,0r0,257r-59,0r-64,-180r0,180r-48,0r0,-257","w":206},"O":{"d":"13,-129v0,-78,9,-133,87,-133v78,0,88,55,88,133v0,78,-10,134,-88,134v-78,0,-87,-56,-87,-134xm64,-129v0,69,5,96,36,96v31,0,36,-27,36,-96v0,-69,-5,-95,-36,-95v-31,0,-36,26,-36,95","w":200,"k":{"Y":9,"T":9,"A":9,".":9,",":9}},"P":{"d":"70,-219r0,78v34,2,57,-2,57,-38v0,-35,-21,-43,-57,-40xm18,0r0,-257r91,0v53,0,70,38,70,77v0,64,-44,82,-109,77r0,103r-52,0","w":186,"k":{"o":9,"e":9,"a":9,"A":19,".":54,",":54}},"Q":{"d":"64,-129v0,69,5,96,36,96v31,0,36,-27,36,-96v0,-69,-5,-95,-36,-95v-31,0,-36,26,-36,95xm134,0v-11,4,-20,5,-34,5v-78,0,-87,-56,-87,-134v0,-78,9,-133,87,-133v78,0,88,55,88,133v0,44,-3,81,-20,105r27,28r-30,28","w":200},"R":{"d":"18,0r0,-257v76,1,164,-16,164,66v0,35,-14,58,-43,64v35,5,42,25,42,79v0,29,3,39,11,48r-56,0v-19,-30,13,-108,-38,-109r-28,0r0,109r-52,0xm70,-219r0,74v35,2,60,-1,60,-38v0,-34,-26,-38,-60,-36","w":200,"k":{"Y":6,"W":-4,"U":-4,"T":6}},"S":{"d":"8,-80r52,0v-1,28,4,47,34,47v16,0,31,-10,31,-32v0,-23,-11,-32,-46,-44v-46,-15,-67,-35,-67,-77v0,-50,30,-76,79,-76v48,0,83,22,80,76r-50,0v0,-24,-8,-38,-28,-38v-42,0,-40,52,-3,65v40,14,89,37,89,85v0,54,-33,79,-89,79v-63,0,-84,-30,-82,-85","w":186},"T":{"d":"4,-257r164,0r0,42r-56,0r0,215r-52,0r0,-215r-56,0r0,-42","k":{"y":20,"w":27,"u":27,"r":27,"o":27,"i":6,"e":27,"a":27,"A":20,";":27,":":27,".":33,"-":20,",":33}},"U":{"d":"15,-257r52,0r0,179v0,26,6,45,30,45v24,0,30,-19,30,-45r0,-179r52,0r0,179v0,65,-40,83,-82,83v-42,0,-82,-14,-82,-83r0,-179","w":193},"V":{"d":"1,-257r56,0r37,190r38,-190r54,0r-59,257r-67,0","w":186,"k":{"u":11,"o":9,"i":9,"e":9,"a":6,"A":13,";":6,":":6,".":26,"-":6,",":33}},"W":{"d":"50,0r-47,-257r50,0r29,190r30,-190r50,0r31,190r28,-190r50,0r-47,257r-58,0r-30,-186r-28,186r-58,0","w":273,"k":{"o":6,"e":6,"a":6,"A":6,".":27,"-":6,",":27}},"X":{"d":"66,-130r-59,-127r57,0r34,83r32,-83r57,0r-60,127r64,130r-58,0r-37,-87r-37,87r-57,0","w":193},"Y":{"d":"1,-257r58,0r35,99r36,-99r56,0r-66,156r0,101r-52,0r0,-101","w":187,"k":{"u":22,"o":29,"i":9,"e":29,"a":29,"S":6,"O":7,"A":20,";":13,":":13,".":40,"-":27,",":40}},"Z":{"d":"9,0r0,-38r94,-177r-88,0r0,-42r148,0r0,39r-96,176r98,0r0,42r-156,0","w":173},"[":{"d":"29,66r0,-323r82,0r0,36r-38,0r0,251r38,0r0,36r-82,0","w":113},"\\":{"d":"80,5r-81,-267r40,0r82,267r-41,0","w":119},"]":{"d":"2,66r0,-36r38,0r0,-251r-38,0r0,-36r83,0r0,323r-83,0","w":113},"^":{"d":"65,-111r-45,0r68,-139r40,0r68,139r-45,0r-43,-89","w":216},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"61,-134r-45,0v-2,-48,29,-65,68,-65v119,0,46,114,77,199r-48,0v-4,-5,-3,-15,-7,-20v-12,20,-25,25,-49,25v-35,0,-47,-29,-47,-55v0,-49,36,-61,77,-68v29,-5,27,-49,-3,-47v-17,0,-24,12,-23,31xm107,-97v-19,14,-49,12,-49,41v0,15,5,27,18,27v13,0,31,-8,31,-30r0,-38","w":173,"k":{"w":-4}},"b":{"d":"17,0r0,-257r49,0v1,26,-2,57,1,81v10,-15,23,-23,42,-23v41,0,59,30,59,102v0,72,-18,102,-59,102v-21,1,-32,-10,-45,-26r0,21r-47,0xm66,-97v0,42,5,64,27,64v22,0,25,-22,25,-64v0,-42,-3,-64,-25,-64v-22,0,-27,22,-27,64","w":180},"c":{"d":"157,-124r-47,0v0,-19,-4,-39,-23,-39v-24,0,-28,22,-28,67v0,48,5,67,27,67v17,0,24,-13,24,-45r47,0v0,51,-20,79,-73,79v-50,0,-75,-24,-75,-102v0,-80,33,-102,79,-102v46,0,69,29,69,75","w":166,"k":{"y":4,"l":7}},"d":{"d":"116,0v-1,-6,2,-16,-1,-21v-11,18,-24,26,-44,26v-41,0,-59,-30,-59,-102v0,-72,18,-102,59,-102v20,-1,31,10,43,23r0,-81r49,0r0,257r-47,0xm62,-97v0,42,3,64,25,64v22,0,27,-22,27,-64v0,-42,-5,-64,-27,-64v-22,0,-25,22,-25,64","w":180},"e":{"d":"157,-89r-98,0v-1,28,3,60,25,60v17,0,23,-12,26,-36r44,0v-2,45,-22,70,-70,70v-72,0,-75,-56,-75,-104v0,-52,10,-100,77,-100v62,-1,72,46,71,110xm59,-119r51,0v-1,-30,-4,-46,-25,-46v-22,1,-27,24,-26,46","w":166,"k":{"x":4}},"f":{"d":"27,0r0,-160r-25,0r0,-34r25,0v-7,-57,24,-75,79,-67r0,35v-25,-3,-33,7,-29,32r29,0r0,34r-29,0r0,160r-50,0","w":106,"k":{"a":7}},"g":{"d":"62,-91v0,27,4,51,25,51v21,0,27,-23,27,-56v0,-47,-6,-65,-26,-65v-22,0,-26,18,-26,70xm63,14v-1,12,12,21,24,21v29,2,30,-34,26,-61v-42,49,-100,23,-100,-74v0,-45,6,-99,60,-99v15,-1,29,9,41,27r0,-22r48,0r0,184v0,51,-23,76,-81,76v-42,0,-66,-19,-66,-52r48,0","w":180,"k":{"y":-4}},"h":{"d":"17,0r0,-257r49,0r1,83v23,-40,96,-35,96,30r0,144r-49,0r0,-134v0,-20,-6,-27,-21,-27v-18,0,-27,11,-27,32r0,129r-49,0","w":180},"i":{"d":"18,-217r0,-43r50,0r0,43r-50,0xm18,0r0,-194r50,0r0,194r-50,0","w":86},"j":{"d":"18,-217r0,-43r50,0r0,43r-50,0xm18,-4r0,-190r50,0r0,207v4,40,-28,54,-77,50r0,-36v23,2,27,-5,27,-31","w":86},"k":{"d":"18,-257r50,0r1,136r50,-73r55,0r-56,77r64,117r-55,0r-41,-80r-18,23r0,57r-50,0r0,-257","w":180},"l":{"d":"18,0r0,-257r50,0r0,257r-50,0","w":86},"m":{"d":"17,0r0,-194r47,0v1,6,-2,16,1,20v21,-36,83,-32,94,6v18,-49,97,-40,97,27r0,141r-49,0r0,-135v0,-16,-6,-26,-20,-26v-16,0,-26,11,-26,34r0,127r-49,0r0,-135v0,-16,-6,-26,-20,-26v-16,0,-26,11,-26,34r0,127r-49,0","w":272},"n":{"d":"17,0r0,-194r47,0v1,7,-2,18,1,23v22,-43,98,-40,98,27r0,144r-49,0r0,-134v0,-20,-6,-27,-21,-27v-18,0,-27,11,-27,32r0,129r-49,0","w":180,"k":{"y":-4}},"o":{"d":"10,-97v0,-66,19,-102,76,-102v59,0,77,34,77,102v0,66,-20,102,-77,102v-59,0,-76,-34,-76,-102xm60,-97v0,40,2,68,26,68v20,0,27,-19,27,-68v0,-49,-7,-68,-27,-68v-24,0,-26,28,-26,68","k":{"v":-4}},"p":{"d":"17,63r0,-257r47,0v1,6,-2,16,1,21v11,-18,24,-26,44,-26v41,0,59,30,59,102v0,72,-18,102,-59,102v-20,1,-31,-10,-43,-23r0,81r-49,0xm66,-97v0,42,5,64,27,64v22,0,25,-22,25,-64v0,-42,-3,-64,-25,-64v-22,0,-27,22,-27,64","w":180,"k":{".":6,",":6}},"q":{"d":"114,63v-1,-26,2,-57,-1,-81v-10,15,-23,23,-42,23v-41,0,-59,-30,-59,-102v0,-72,18,-102,59,-102v21,-1,32,10,45,26r0,-21r47,0r0,257r-49,0xm114,-97v0,-42,-5,-64,-27,-64v-22,0,-25,22,-25,64v0,42,3,64,25,64v22,0,27,-22,27,-64","w":180},"r":{"d":"17,0r0,-194r47,0v1,8,-2,20,1,26v11,-21,26,-35,53,-30r0,48v-27,-4,-52,2,-52,34r0,116r-49,0","w":119,"k":{"y":-6,"v":-6,"q":6,".":27,"-":13,",":27}},"s":{"d":"8,-63r45,0v-1,21,7,33,26,34v30,2,32,-39,7,-45v-35,-8,-76,-24,-76,-66v0,-32,20,-59,71,-59v48,1,68,21,66,63r-44,0v6,-37,-44,-37,-46,-8v-2,20,34,28,52,33v73,20,46,122,-29,116v-58,-4,-73,-26,-72,-68","w":159},"t":{"d":"27,-194r0,-55r50,0r0,55r29,0r0,34r-29,0r0,105v-2,20,12,23,29,20r0,35v-45,5,-79,6,-79,-49r0,-111r-25,0r0,-34r25,0","w":106},"u":{"d":"116,0v-1,-7,2,-18,-1,-23v-22,43,-98,40,-98,-27r0,-144r49,0r0,134v0,20,6,27,21,27v18,0,27,-11,27,-32r0,-129r49,0r0,194r-47,0","w":180},"v":{"d":"81,-55v12,-44,17,-94,27,-139r50,0r-49,194r-57,0r-50,-194r52,0","w":159,"k":{"a":6,".":20,",":20}},"w":{"d":"45,0r-42,-194r49,0r24,138r24,-138r54,0r26,138r23,-138r48,0r-42,194r-56,0r-27,-138r-24,138r-57,0","w":253,"k":{".":13,",":13}},"x":{"d":"83,-135r27,-59r52,0r-51,94r53,100r-52,0r-29,-63r-29,63r-51,0r52,-100r-50,-94r52,0","w":166},"y":{"d":"17,63r0,-37v23,5,39,-4,39,-26r-54,-194r52,0r29,134r25,-134r50,0r-47,181v-19,76,-31,77,-94,76","w":159,"k":{"a":6,".":20,",":20}},"z":{"d":"9,0r0,-38r77,-115r-74,0r0,-41r133,0r0,38r-78,116r78,0r0,40r-136,0","w":153},"{":{"d":"11,-81r0,-29v55,-5,-10,-150,61,-147r32,0r0,36v-57,-7,6,112,-51,126v33,5,26,60,26,99v-1,19,5,29,25,26r0,36v-43,3,-69,-2,-69,-48v0,-37,10,-97,-24,-99","w":113},"|":{"d":"18,5r0,-267r44,0r0,267r-44,0","w":79},"}":{"d":"9,66r0,-36v57,7,-5,-112,51,-126v-33,-4,-26,-60,-26,-99v0,-19,-5,-29,-25,-26r0,-36v43,-3,70,2,70,48v0,37,-11,97,24,99r0,29v-54,6,10,150,-62,147r-32,0","w":113},"~":{"d":"69,-126v24,0,61,25,77,25v14,0,28,-16,32,-25r13,39v-10,18,-23,30,-44,30v-25,0,-61,-24,-77,-24v-14,0,-28,15,-32,24r-13,-38v10,-18,23,-31,44,-31","w":216},"'":{"d":"24,-141r0,-116r45,0r0,116r-45,0","w":93},"`":{"d":"63,-217r-33,0r-36,-52r50,0","w":79},"\u00a0":{"w":86}}});

Cufon.replace('.content .items, .content .items, .leftheader_top h3, .rightside h1, .news_item h2, .news_main .item h2, .brands_detail h3, .content_main .item h2', { hover:'true', fontFamily: 'Helvetica Condensed' });
Cufon.replace('.leftmenu_top_blue h3, .categories ul li h2 a, .brands_detail .bigpic h2', { hover:'true', fontFamily: 'Helvetica Condensed Bold' });
Cufon.replace('.menu ul li a', { hover:'true', fontFamily: 'Helvetica Light' });
